/* Long-form pages share the portfolio's paper, type, and navigation. */
.about-opening { display:grid; grid-template-columns:minmax(0,1fr) 280px; align-items:start; gap:80px; padding-top:60px; padding-bottom:56px; }
.about-opening h1 { max-width:790px; margin:27px 0 27px; font:400 clamp(3.2rem,5.5vw,5.3rem)/.98 var(--serif); letter-spacing:-.055em; text-wrap:balance; }
.about-opening h1 em,.research-opening h1 em { color:var(--red); font-weight:400; }
.about-opening .opening-lede { max-width:580px; color:var(--muted); font-size:1rem; line-height:1.85; }
.opening-disciplines { display:block; margin-bottom:12px; color:var(--ink); }
.about-opening .portrait-note { padding-top:0; }
.about-opening .portrait-note figcaption { display:block; }
.about-opening .portrait-frame img { aspect-ratio:4/5; }
.about-opening .portrait-name { font-size:1.6rem; }
.story-layout { display:grid; grid-template-columns:220px minmax(0,760px); justify-content:space-between; gap:80px; padding-top:55px; padding-bottom:76px; border-top:1px solid var(--ink); }
.story-contents { position:sticky; top:118px; align-self:start; }
.story-contents nav { display:block; margin-top:22px; }
.story-contents a { display:flex; align-items:center; gap:15px; min-height:48px; padding:11px 0; border-bottom:1px solid var(--stone); font:400 .72rem/1.5 var(--sans); letter-spacing:0; text-transform:none; color:var(--muted); }
.story-contents a:hover { color:var(--red); }
.story-contents a span { font:.57rem var(--mono); color:var(--red); }
.story-chapter { padding:0 0 48px; margin-bottom:42px; border-bottom:1px solid var(--stone); scroll-margin-top:20px; }
.story-chapter h2 { margin:16px 0 24px; max-width:620px; font:400 clamp(2rem,3.2vw,3.1rem)/1.08 var(--serif); letter-spacing:-.04em; text-wrap:balance; }
.story-chapter .story-prose p { max-width:665px; color:#515d54; font-size:1rem; line-height:1.9; }
.story-chapter .story-prose p + p { margin-top:20px; }
.story-prose a { text-decoration:underline; text-underline-offset:4px; text-decoration-color:#a1aa9d; }
.story-chapter .story-prose .story-emphasis { color:var(--ink); font-weight:500; }
.story-chapter .story-prose .independence-note { margin-top:24px; font-size:.8rem; color:var(--muted); }
.chapter-links { display:flex; flex-wrap:wrap; gap:14px 30px; margin-top:15px; }
.chapter-links .inline-link { font-size:.72rem; }
.about-projects { margin-top:24px; }
.about-project { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 32px; gap:24px; align-items:center; padding:25px 0; border-top:1px solid var(--stone); }
.about-project h3 { margin:9px 0 11px; font:500 clamp(1.5rem,2.3vw,2rem)/1.12 var(--serif); letter-spacing:-.035em; }
.about-project-description { max-width:590px; color:var(--muted); font-size:.98rem; line-height:1.8; }
.about-project svg.arrow { width:32px; height:32px; padding:6px; border:1px solid var(--stone); border-radius:50%; }
.about-project:hover svg.arrow { background:var(--ink); color:var(--paper); }
.about-skills { display:grid; grid-template-columns:1fr 1fr; gap:27px 36px; margin:0; }
.about-skills > div { padding-top:18px; border-top:1px solid var(--stone); }
.about-skills dt { font:500 1.35rem/1.15 var(--serif); letter-spacing:-.02em; }
.about-skills dd { margin:11px 0 0; color:var(--muted); font-size:.98rem; line-height:1.8; }
.story-quote { margin:28px 0 0; max-width:630px; padding:27px 0 4px 25px; border-left:2px solid var(--red); color:var(--red); font:400 clamp(2rem,3.4vw,3rem)/1.16 var(--serif); letter-spacing:-.04em; }
.story-signature { padding-top:0; }
.story-signature .signature-name { color:var(--ink); font:500 2.05rem/1.2 var(--serif); letter-spacing:-.04em; }
.story-signature .signature-role { margin-top:8px; color:var(--muted); font-size:.83rem; line-height:1.8; }
.story-signature .signature-license { display:block; color:var(--ink); font:400 .7rem/1.8 var(--mono); }
.story-signature .signature-actions { display:flex; flex-wrap:wrap; gap:14px 28px; margin-top:22px; align-items:center; }
.story-signature .signature-actions .inline-link { font-size:.8rem; }
.about-next { padding:43px 0; border-top:1px solid var(--stone); background:#eae7de; }
.about-next .editorial-container { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.about-next h2 { margin-top:13px; font:400 clamp(2rem,3.7vw,3.25rem)/1.07 var(--serif); letter-spacing:-.045em; }
.research-opening { padding-top:66px; padding-bottom:49px; }
.research-opening h1 { max-width:900px; margin:25px 0 24px; font:400 clamp(3.2rem,5.8vw,5.4rem)/.98 var(--serif); letter-spacing:-.055em; }
.research-opening .opening-lede { max-width:600px; color:var(--muted); font-size:.96rem; line-height:1.8; }
.research-collection { padding-bottom:62px; }
.research-collection .collection-label { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:19px; }
.research-collection .collection-label span { font:.6rem var(--mono); color:var(--muted); }
.research-note { display:grid; grid-template-columns:.7fr 1.3fr; gap:90px; padding-top:40px; margin-top:15px; }
.research-note h2 { font:400 2rem/1.1 var(--serif); letter-spacing:-.04em; }
.research-note p { max-width:650px; color:var(--muted); font-size:.85rem; line-height:1.85; }
.research-note p+p { margin-top:15px; }
.research-collection [id] { scroll-margin-top:24px; }
@media(max-width:1050px) {
  .about-opening { grid-template-columns:minmax(0,1fr) 240px; gap:45px; }
  .about-opening h1 { font-size:clamp(3.25rem,6.7vw,5.1rem); }
  .story-layout { grid-template-columns:180px minmax(0,1fr); gap:45px; }
  .story-contents a { font-size:.66rem; gap:10px; }
}
@media(max-width:760px) {
  .about-opening { grid-template-columns:1fr; gap:29px; padding-top:37px; padding-bottom:35px; }
  .about-opening h1 { max-width:600px; font-size:clamp(3rem,8vw,4.6rem); margin-block:20px; }
  .about-opening .opening-lede { font-size:1rem; }
  .about-opening .portrait-note { display:flex; gap:17px; align-items:center; }
  .about-opening .portrait-frame { width:88px; padding:5px; flex-shrink:0; }
  .about-opening .portrait-frame img { aspect-ratio:1; object-position:center 20%; }
  .about-opening .portrait-note figcaption { margin:0; }
  .about-opening .portrait-name { font-size:1.5rem; }
  .story-layout { grid-template-columns:1fr; gap:40px; padding-top:27px; padding-bottom:47px; }
  .story-contents { position:static; }
  .story-contents nav { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; margin-top:13px; }
  .story-contents a { font-size:.71rem; }
  .story-chapter { padding-bottom:33px; margin-bottom:33px; }
  .story-chapter h2 { font-size:2.2rem; margin:13px 0 20px; }
  .story-chapter .story-prose p { font-size:1rem; line-height:1.85; }
  .story-chapter .story-prose p+p { margin-top:17px; }
  .chapter-links .inline-link { font-size:.82rem; min-height:46px; }
  .about-project { gap:15px; padding-block:22px; }
  .about-project .project-category { font-size:.58rem; }
  .about-project h3 { font-size:1.65rem; }
  .about-project-description { font-size:.98rem; }
  .about-skills { grid-template-columns:1fr; gap:22px; }
  .story-quote { margin-top:23px; padding:16px 0 8px 19px; font-size:2rem; }
  .about-next .editorial-container { flex-direction:column; align-items:flex-start; gap:24px; }
  .about-next { padding-block:33px; }
  .research-opening { padding-top:40px; padding-bottom:36px; }
  .research-opening h1 { font-size:clamp(2.8rem,8.8vw,4.25rem); margin-block:20px; }
  .research-opening .opening-lede { font-size:.98rem; }
  .research-collection { padding-bottom:41px; }
  .research-note { grid-template-columns:1fr; gap:19px; padding-top:28px; margin-top:5px; }
  .research-note h2 { font-size:1.9rem; }
  .research-note p { font-size:.8rem; }
}
@media(max-width:360px) {
  .about-opening h1 { font-size:2.8rem; }
  .story-contents nav { column-gap:14px; }
  .story-contents a { font-size:.64rem; }
  .story-chapter h2 { font-size:2rem; }
}

/* Mortgage and Contact use the same editorial scale and shared page frame. */
.service-opening { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:80px; align-items:start; padding-block:60px; }
.service-opening h1,.contact-opening h1 { margin:23px 0; font:400 clamp(3.2rem,5.8vw,5.3rem)/1.02 var(--serif); letter-spacing:-.05em; }
.service-opening h1 em,.contact-opening h1 em { color:var(--red); font-weight:400; }
.service-opening .opening-lede,.contact-opening .opening-lede { max-width:570px; color:var(--muted); font-size:1.05rem; line-height:1.8; }
.practice-identity { padding:25px; background:#eae7de; border:1px solid var(--stone); }
.practice-identity img { display:block; width:145px; height:96px; object-fit:contain; mix-blend-mode:multiply; margin-bottom:24px; }
.practice-identity .identity-name { font:500 1.9rem/1.1 var(--serif); letter-spacing:-.035em; margin-bottom:9px; }
.practice-identity p { font-size:.85rem; color:var(--muted); line-height:1.8; }
.practice-identity .identity-license { font:.72rem/1.8 var(--mono); color:var(--ink); margin-top:4px; }
.practice-identity .identity-location { border-top:1px solid var(--stone); padding-top:17px; margin-top:22px; font-size:.76rem; }
.practice-services { border-top:1px solid var(--ink); padding-top:36px; padding-bottom:48px; }
.section-intro h2 { margin:16px 0 32px; font:400 clamp(2.2rem,3.6vw,3.25rem)/1.07 var(--serif); letter-spacing:-.04em; }
.practice-list article { display:grid; grid-template-columns:24px minmax(0,1fr) minmax(0,1fr); align-items:start; gap:30px; padding:29px 0; border-top:1px solid var(--stone); }
.practice-number { color:var(--red); font:.7rem/1.8 var(--mono); }
.practice-list h3 { margin-top:12px; font:500 clamp(1.65rem,2.5vw,2.15rem)/1.12 var(--serif); letter-spacing:-.035em; }
.practice-list article > p { color:var(--muted); font-size:1rem; line-height:1.85; }
.practice-program { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-top:27px; padding:28px; background:#eae7de; border:1px solid var(--stone); }
.practice-program h3 { margin:13px 0; font:500 1.9rem/1.15 var(--serif); letter-spacing:-.03em; }
.practice-program p:not(.eyebrow) { color:var(--muted); font-size:.95rem; }
.practice-program > svg { width:28px; height:28px; }
.practice-disclosure { max-width:920px; margin-top:27px; font-size:.78rem; line-height:1.85; color:var(--muted); }
.practice-disclosure a { text-decoration:underline; text-underline-offset:3px; }
.contact-opening { padding-top:60px; padding-bottom:42px; }
.contact-details { display:grid; grid-template-columns:1.05fr 1fr; gap:70px; align-items:start; padding-bottom:65px; }
.contact-direct { background:var(--ink); color:var(--paper); padding:35px; }
.contact-direct .eyebrow { color:#c6d1c5; }
.contact-direct h2 { font:400 2.7rem/1.05 var(--serif); margin:22px 0 12px; letter-spacing:-.04em; }
.contact-role { color:#d4dbd1; font-size:.9rem; line-height:1.8; }
.contact-role span { font:.73rem var(--mono); }
.contact-method { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:20px 0; border-bottom:1px solid #667468; font-size:clamp(.95rem,1.5vw,1.12rem); }
.contact-method span { min-width:0; overflow-wrap:anywhere; }
.contact-method small { display:block; color:#c6d1c5; font:.64rem/1.8 var(--mono); text-transform:uppercase; margin-bottom:6px; }
.contact-method:first-of-type { margin-top:13px; border-top:1px solid #667468; }
.contact-direct .inline-link { margin-top:25px; color:#f4f1ea; }
.contact-direct a:hover { color:#e1c8ad; }
.contact-direct :focus-visible { outline-color:var(--paper); }
.contact-routes > .eyebrow { margin-bottom:21px; }
.contact-routes > a { position:relative; display:flex; align-items:center; justify-content:space-between; gap:25px; padding:24px 0; border-top:1px solid var(--stone); }
.contact-routes h2 { font:500 1.85rem/1.15 var(--serif); letter-spacing:-.035em; }
.contact-routes p { margin-top:11px; color:var(--muted); font-size:.96rem; line-height:1.75; }
@media(max-width:1050px) {
  .service-opening { grid-template-columns:minmax(0,1fr) 245px; gap:40px; }
  .contact-details { gap:35px; }
}
@media(max-width:760px) {
  .service-opening { grid-template-columns:1fr; gap:30px; padding-block:37px; }
  .service-opening h1,.contact-opening h1 { font-size:clamp(2.8rem,9vw,4.5rem); }
  .service-opening .opening-lede,.contact-opening .opening-lede { font-size:1rem; }
  .practice-identity { display:grid; grid-template-columns:92px minmax(0,1fr); gap:3px 22px; padding:22px; }
  .practice-identity img { grid-row:1 / 5; width:92px; height:75px; align-self:center; margin:0; }
  .practice-identity .identity-name { font-size:1.55rem; margin:0; }
  .practice-identity .identity-location { grid-column:1 / -1; margin-top:14px; padding-top:12px; }
  .practice-list article { grid-template-columns:22px 1fr; gap:12px 15px; padding:24px 0; }
  .practice-list article > p { grid-column:2; font-size:.98rem; }
  .practice-program { padding:22px; gap:20px; }
  .practice-program h3 { font-size:1.7rem; }
  .practice-services { padding-bottom:36px; }
  .contact-opening { padding-top:37px; padding-bottom:30px; }
  .contact-details { grid-template-columns:1fr; gap:35px; padding-bottom:40px; }
  .contact-direct { padding:26px; }
  .contact-method { font-size:1rem; }
}
