/* Shared layout density. Body copy and touch targets keep their readable size. */
html{scroll-padding-top:82px}
.frame{width:min(1280px,calc(100% - 80px))}
.header-inner{min-height:66px}
.brand-wordmark{font-size:1.65rem}
.brand-nav{gap:27px}
.hero{padding-block:26px 28px}
.hero-grid{width:min(1080px,calc(100% - 80px));grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:44px}
.hero-copy{padding:0}
.hero .eyebrow{margin-bottom:14px}
.hero h1{font-size:clamp(3.2rem,4.8vw,4.5rem);line-height:1}
.hero-statement{font-size:clamp(1.65rem,2.15vw,2rem);margin-top:15px}
.hero-description{font-size:.9rem;max-width:420px;margin-top:0;line-height:1.7}
.hero-actions{margin-top:17px;gap:18px}
.hero-credentials{display:flex;justify-content:space-between;gap:16px;margin-top:20px;padding-top:12px;border-top:1px solid #ffffff26;color:#d0d4c9;font-size:.7rem;line-height:1.8}
.hero-credentials div span{display:block;color:#b2bbac;font:.65rem/1.7 var(--mono);margin-top:3px}
.hero-credentials>span{max-width:105px;text-align:right;font:.58rem/1.8 var(--mono);color:#b6bfb1}
.section-heading{gap:32px;margin-bottom:24px}
.section-heading .eyebrow{margin-bottom:12px}
.section-heading h2,.about-grid h2{font-size:clamp(2.4rem,3.6vw,3.45rem);line-height:1.06}
.section-heading>p{line-height:1.7}
.story-section{padding-block:32px}
.story-section>.frame{width:min(1080px,calc(100% - 80px));display:grid;grid-template-columns:.85fr 1.15fr;gap:10px 40px;align-items:center}
.story-heading{display:block;grid-column:1;grid-row:1 / 3;margin:0}
.story-heading h2{font-size:clamp(2rem,2.8vw,2.65rem)}
.story-heading>p{margin-top:14px;max-width:320px}
.story-section .film-poster{grid-column:2;grid-row:1;aspect-ratio:2.15}
.story-section .film-footnote{grid-column:2;grid-row:2;margin:0}
.film-play{width:56px;height:56px}
.film-play .icon{width:22px;height:22px}
.film-caption{left:19px;right:19px;bottom:16px}
.film-dialog{width:min(960px,calc(100vw - 48px),calc((100dvh - 120px)*16/9))}
.work-section{padding-block:44px 40px}
.work-grid{column-gap:28px;row-gap:28px}
.preview-bar{min-height:34px;padding:8px 12px;gap:12px}
.work-copy{padding-top:14px}
.work-copy h3{font-size:clamp(1.85rem,2.5vw,2.35rem);line-height:1.08;margin-top:10px}
.project-description{margin-top:11px;line-height:1.7}
.work-copy>.text-link{margin-top:10px}
.project-secondary{margin-top:2px;font-size:.75rem}
.project-disclosure{margin-top:9px;padding-top:10px;line-height:1.7}
.work-note{margin-top:24px;padding-top:14px}
.about-section{padding-block:44px}
.about-grid{gap:48px}
.about-grid .eyebrow{margin-bottom:13px}
.about-copy{padding-top:0}
.about-copy p{line-height:1.75}
.about-copy .about-lead{font-size:1.45rem;line-height:1.35}
.about-copy p+p{margin-top:15px}
.about-copy>.text-link{margin-top:15px}
.insights-section{padding-block:44px}
.connect-section{padding-block:44px 32px}
.connect-section h2{font-size:clamp(3rem,5vw,4.6rem)}
.connect-section .section-heading{margin-bottom:24px}
.connect-routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.connect-routes>a{grid-template-columns:minmax(0,1fr) 20px;gap:12px;min-height:104px;padding:17px 0}
.connect-routes .route-number{display:none}
.connect-routes strong{font-size:1.5rem;line-height:1.15}
.connect-routes small{margin-top:7px;line-height:1.6}
.direct-contact{padding-top:17px;gap:12px 28px}
.brand-footer{padding-block:22px 26px}
.footer-top{padding-bottom:15px}
.footer-disclosures{margin-top:16px;gap:36px}

/* Full profile: smaller portrait and shorter, consistent chapter spacing. */
.profile-hero{padding-block:36px}
.profile-opening{gap:48px}
.profile-intro>.eyebrow{margin-bottom:18px}
.profile-intro h1{font-size:clamp(3.2rem,5.2vw,5rem)}
.profile-lead{font-size:clamp(1.4rem,1.8vw,1.65rem);margin-top:21px}
.profile-summary{margin-top:14px;line-height:1.75}
.profile-film-link{margin-top:15px}
.profile-portrait .portrait-window img{aspect-ratio:1.24;object-position:51% 36%}
.profile-portrait figcaption{padding-top:11px;margin-top:11px}
.profile-index{gap:18px}
.profile-index a{min-height:58px}
.profile-split{gap:48px}
.profile-practice,.profile-approach{padding-block:48px}
.profile-heading>.eyebrow{margin-bottom:14px}
.profile-heading h2{font-size:clamp(2.45rem,3.7vw,3.5rem)}
.profile-prose{padding-top:0}
.profile-prose>p{line-height:1.75}
.profile-prose>.profile-standfirst{font-size:1.5rem}
.profile-prose>p+p{margin-top:15px}
.profile-actions{margin-top:12px}
.profile-prose>.profile-disclosure{padding-top:13px;margin-top:18px}
.profile-projects{padding-block:46px 34px}
.profile-projects .section-heading{margin-bottom:26px}
.profile-project{gap:30px;padding-block:24px;grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr) 22px}
.profile-project-copy h3{font-size:clamp(2rem,2.7vw,2.5rem);margin-top:9px}
.profile-project-copy>p:not(.eyebrow){line-height:1.7;margin-top:11px}
.profile-project-copy>.text-link,.profile-project-links{margin-top:9px}
.profile-independence{margin-top:18px}
.profile-heading-note{margin-top:19px;line-height:1.7}
.profile-skills>div{padding:17px 0}
.profile-skills dt{font-size:1.5rem}
.profile-skills dd{margin-top:9px;line-height:1.7}
.profile-story{padding-block:46px}
.profile-story-grid{gap:44px}
.profile-story .eyebrow{margin-bottom:14px}
.profile-story h2{font-size:clamp(2.4rem,3.6vw,3.4rem)}
.profile-story p:not(.eyebrow){line-height:1.75;margin-top:17px}
.profile-story p.profile-story-last{margin-top:10px}
.profile-connect{padding-block:42px 34px}
.profile-connect h2{font-size:clamp(3rem,4.8vw,4.4rem)}
.profile-connect .eyebrow{margin-bottom:14px}
.profile-contact-copy .text-link{margin-top:12px}
.profile-contact-copy p.profile-contact-role{margin-top:16px}

/* Work, Research, Mortgage and Contact use the same spacing rhythm. */
.portfolio-page .site-header .shell{min-height:66px}
.portfolio-page .site-header .wordmark{width:170px;height:30px}
.portfolio-page .catalog-section{padding-block:40px}
.portfolio-page .catalog-heading,.portfolio-page .work-page-intro .catalog-heading{gap:36px;margin-bottom:24px}
.portfolio-page .catalog-heading h1,.portfolio-page .catalog-heading h2,.portfolio-page .work-page-intro .catalog-heading h1{font-size:clamp(2.6rem,4vw,3.8rem);margin-top:13px}
.portfolio-page .catalog-heading>p{line-height:1.7}
.portfolio-page .catalog-toolbar{padding-block:10px}
.portfolio-page .project-row{grid-template-columns:22px minmax(0,1fr) minmax(0,35%) 32px;gap:22px;padding-block:22px}
.portfolio-page .project-art{aspect-ratio:1.85}
.portfolio-page .project-copy h2,.portfolio-page .project-copy h3{font-size:clamp(1.75rem,2.5vw,2.25rem);margin-block:10px}
.portfolio-page .project-copy>p:not(.project-category){line-height:1.7}
.portfolio-page .project-skills{margin-top:13px}
.portfolio-page .catalog-footnote{margin-top:17px}
.portfolio-page .research-opening,.portfolio-page .contact-opening{padding-block:36px 28px}
.portfolio-page .research-opening h1,.portfolio-page .contact-opening h1,.portfolio-page .service-opening h1{font-size:clamp(2.6rem,4vw,3.8rem);margin-block:17px}
.portfolio-page .research-collection{padding-bottom:40px}
.portfolio-page .research-note{gap:44px;padding-top:26px}
.portfolio-page .service-opening{gap:42px;padding-block:36px}
.portfolio-page .practice-identity{padding:20px}
.portfolio-page .practice-identity img{margin-bottom:16px}
.portfolio-page .practice-services{padding-block:26px 36px}
.portfolio-page .section-intro h2{font-size:clamp(2rem,3vw,2.75rem);margin:13px 0 22px}
.portfolio-page .practice-list article{padding-block:20px;gap:22px}
.portfolio-page .practice-list h3{font-size:1.8rem;margin-top:9px}
.portfolio-page .practice-list article>p{line-height:1.7}
.portfolio-page .practice-program{margin-top:20px;padding:20px}
.portfolio-page .contact-band-inner{padding-block:40px;gap:28px}
.portfolio-page .contact-band h2{font-size:clamp(2.8rem,4.5vw,4rem);margin-top:14px}
.portfolio-page .contact-band p:not(.eyebrow){margin-top:12px}
.portfolio-page .contact-band .editorial-button{min-height:48px}
.portfolio-page .contact-details{gap:36px;padding-bottom:40px}
.portfolio-page .contact-direct{padding:26px}
.portfolio-page .contact-direct h2{font-size:2.3rem;margin-top:15px}
.portfolio-page .contact-method{padding-block:15px}
.portfolio-page .contact-direct .inline-link{margin-top:18px}
.portfolio-page .contact-routes>a{padding-block:18px}
.portfolio-page .contact-routes h2{font-size:1.6rem}
.portfolio-page .contact-routes p{margin-top:8px;line-height:1.7}
.portfolio-page .portfolio-footer{padding-block:24px}
.portfolio-page .footer-top{margin-bottom:17px;padding:0}

/* Program page keeps its own identity, with less space between sections. */
.ppc-hero-copy{padding-top:28px}
.ppc-hero h1{font-size:clamp(2.5rem,4.3vw,4rem)}
.ppc-video-card{max-width:760px;margin-top:24px}
.ppc-section{padding-block:48px}
.ppc-section-intro{gap:40px}
.ppc-journey{margin-top:30px}
.ppc-guarantee{padding-block:50px}
.ppc-guarantee .shell{gap:48px}
.ppc-guarantee h2{font-size:clamp(2.4rem,3.6vw,3.7rem)}
.ppc-contact{padding-block:48px}
.ppc-contact-card{gap:36px;padding:30px}
.ppc-contact h2{font-size:clamp(2.3rem,3.3vw,3.2rem)}

@media(min-width:1100px){
  .work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .work-copy h3{font-size:2.05rem}
}
@media(min-width:761px) and (max-width:1099px){
  .hero-grid,.profile-opening{gap:30px}
  .work-grid>.work-card:last-child:nth-child(odd){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}
  .work-grid>.work-card:last-child:nth-child(odd) .work-copy{padding-top:0}
  .story-section>.frame{gap:12px 28px}
  .connect-routes{gap:20px}
  .connect-routes strong{font-size:1.35rem}
  .portfolio-page .project-row{gap:16px}
}
@media(max-width:760px){
  html{scroll-padding-top:74px}
  .frame{width:calc(100% - 36px)}
  .header-inner{min-height:60px;gap:13px}
  .brand-wordmark{font-size:1.45rem}
  .brand-nav{gap:15px}
  .hero{padding-block:22px}
  .hero-grid{width:calc(100% - 36px);grid-template-columns:1fr;gap:18px}
  .hero .eyebrow{margin-bottom:12px}
  .hero h1{font-size:clamp(2.7rem,10.7vw,3.4rem)}
  .hero-statement{font-size:clamp(1.5rem,6vw,1.75rem);margin-top:13px}
  .hero-description{font-size:.875rem;margin-top:0;line-height:1.7}
  .hero-actions{margin-top:14px;gap:16px}
  .hero-credentials{margin-top:18px;padding-top:10px;font-size:.66rem}
  .hero-credentials div span{font-size:.62rem}
  .hero-credentials>span{font-size:.54rem}
  .section-heading,.connect-section .section-heading{margin-bottom:20px}
  .section-heading .eyebrow{margin-bottom:10px}
  .section-heading h2,.about-grid h2{font-size:clamp(2.15rem,8.8vw,3rem)}
  .section-heading>p{margin-top:13px;line-height:1.7}
  .story-section{padding-block:26px}
  .story-section>.frame{width:calc(100% - 36px);grid-template-columns:1fr;gap:10px}
  .story-heading,.story-section .film-poster,.story-section .film-footnote{grid-column:auto;grid-row:auto}
  .story-heading{margin-bottom:5px}
  .story-heading h2{font-size:clamp(1.9rem,7.5vw,2.4rem)}
  .story-section .film-poster,.story-section .film-footnote{width:min(400px,calc(100% - 24px))}
  .story-section .film-poster{aspect-ratio:2.2}
  .film-play{width:48px;height:48px}
  .film-caption{left:13px;right:13px;bottom:11px}
  .film-dialog{width:min(960px,calc(100vw - 32px),calc((100dvh - 120px)*16/9))}
  .work-section{padding-block:30px}
  .work-grid{gap:22px}
  .work-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:7px 15px;align-items:start;border-top:1px solid var(--line);padding-top:20px}
  .work-visual{grid-column:1;grid-row:1 / 3;align-self:center}
  .work-copy{display:contents}
  .work-card .preview-bar{display:none}
  .work-card .project-kicker{grid-column:2;grid-row:1;align-self:end;font-size:.55rem;gap:8px}
  .work-copy h3{grid-column:2;grid-row:2;font-size:1.75rem;line-height:1.07;margin:0}
  .work-card .project-description{grid-column:1/-1;grid-row:3;margin-top:6px;font-size:.89rem;line-height:1.7}
  .work-copy>.text-link{grid-column:1/-1;grid-row:4;justify-self:start;margin:0}
  .work-card .project-secondary{grid-column:1/-1;grid-row:5;margin:0}
  .work-card .project-disclosure{grid-column:1/-1;grid-row:6;margin:0;padding-top:9px}
  .work-note{margin-top:20px;padding-top:12px}
  .about-section,.insights-section{padding-block:30px}
  .about-grid{gap:19px}
  .about-grid .eyebrow{margin-bottom:12px}
  .about-copy .about-lead{font-size:1.4rem}
  .about-copy p+p{margin-top:13px}
  .about-copy>.text-link{margin-top:12px}
  .connect-section{padding-block:31px 24px}
  .connect-section h2{font-size:clamp(2.7rem,11vw,3.7rem)}
  .connect-routes{display:block}
  .connect-routes>a{grid-template-columns:minmax(0,1fr) 18px;min-height:80px;padding-block:14px}
  .connect-routes strong{font-size:1.4rem}
  .connect-routes small{margin-top:5px}
  .direct-contact{display:flex;flex-wrap:wrap;gap:0 18px;padding-top:13px}
  .direct-contact a:last-child{margin-left:0}
  .brand-footer{padding-block:20px}
  .footer-disclosures{gap:14px}
  .profile-hero{padding-block:26px}
  .profile-opening{gap:22px}
  .profile-intro>.eyebrow{margin-bottom:15px}
  .profile-intro h1{font-size:clamp(2.7rem,9.8vw,3.9rem)}
  .profile-lead{font-size:1.35rem;margin-top:18px}
  .profile-summary{margin-top:12px}
  .profile-film-link{margin-top:12px}
  .profile-portrait .portrait-window img{aspect-ratio:2;object-position:51% 35%}
  .profile-portrait figcaption{padding-top:9px;margin-top:9px}
  .profile-index{padding-block:5px;gap:0 16px}
  .profile-index a{min-height:44px}
  .profile-split{gap:20px}
  .profile-practice,.profile-approach{padding-block:32px}
  .profile-heading>.eyebrow{margin-bottom:11px}
  .profile-heading h2{font-size:clamp(2.25rem,9vw,3.2rem)}
  .profile-prose>.profile-standfirst{font-size:1.4rem}
  .profile-prose>p+p{margin-top:13px}
  .profile-projects{padding-block:32px 26px}
  .profile-projects .section-heading{margin-bottom:20px}
  .profile-project{grid-template-columns:108px minmax(0,1fr);gap:8px 15px;padding-block:22px}
  .profile-project-image{grid-column:1;grid-row:1 / 3;align-self:center}
  .profile-project-copy{display:contents}
  .profile-project-copy>.eyebrow{grid-column:2;grid-row:1;align-self:end;font-size:.54rem}
  .profile-project-copy h3{grid-column:2;grid-row:2;font-size:1.8rem;margin:0}
  .profile-project-copy>p:not(.eyebrow){grid-column:1/-1;grid-row:3;margin-top:6px;line-height:1.7}
  .profile-project-copy>.text-link,.profile-project-links{grid-column:1/-1;grid-row:4;justify-self:start;margin:0}
  .profile-project-number{display:none}
  .profile-heading-note{margin-top:16px}
  .profile-skills>div{padding-block:15px}
  .profile-skills dt{font-size:1.4rem}
  .profile-skills dd{margin-top:8px}
  .profile-story{padding-block:32px}
  .profile-story-grid{gap:21px}
  .profile-story h2{font-size:clamp(2.2rem,8.8vw,3.1rem)}
  .profile-story p:not(.eyebrow){margin-top:15px}
  .profile-connect{padding-block:31px 26px}
  .profile-connect h2{font-size:clamp(2.7rem,11vw,3.7rem)}
  .profile-contact-copy p.profile-contact-role{margin-top:15px}
  .portfolio-page .site-header .shell{min-height:62px}
  .portfolio-page .site-header .wordmark{width:154px;height:28px;margin-block:15px}
  .portfolio-page .catalog-section{padding-block:28px}
  .portfolio-page .catalog-heading,.portfolio-page .work-page-intro .catalog-heading{margin-bottom:18px}
  .portfolio-page .catalog-heading h1,.portfolio-page .catalog-heading h2,.portfolio-page .work-page-intro .catalog-heading h1{font-size:clamp(2.3rem,9vw,3.25rem);margin-top:12px}
  .portfolio-page .catalog-heading>p,.portfolio-page .work-page-intro .catalog-heading>p{margin-top:15px;line-height:1.7}
  .portfolio-page .catalog-toolbar{gap:8px;padding-block:10px}
  .portfolio-page .project-row{grid-template-columns:108px minmax(0,1fr) 24px;gap:7px 12px;padding-block:20px}
  .portfolio-page .project-number{display:none}
  .portfolio-page .project-art{grid-column:1;grid-row:1 / 3;aspect-ratio:1.77;margin:0;align-self:center}
  .portfolio-page .preview-caption{display:none}
  .portfolio-page .project-preview .preview-image{height:100%;object-fit:contain}
  .portfolio-page .project-copy{display:contents}
  .portfolio-page .project-category{grid-column:2;grid-row:1;font-size:.54rem;align-self:end}
  .portfolio-page .project-copy h2,.portfolio-page .project-copy h3{grid-column:2;grid-row:2;font-size:1.55rem;line-height:1.1;margin:0}
  .portfolio-page .project-copy>p:not(.project-category){grid-column:1/-1;grid-row:3;font-size:.94rem;line-height:1.7;margin:6px 0 0}
  .portfolio-page .project-skills{grid-column:1/-1;grid-row:4;font-size:.6rem;margin-top:5px}
  .portfolio-page .project-destination{grid-column:3;grid-row:1 / 3}
  .portfolio-page .project-destination svg.arrow{width:24px;height:24px;padding:3px}
  .portfolio-page .research-opening,.portfolio-page .contact-opening{padding-block:28px 22px}
  .portfolio-page .research-opening h1,.portfolio-page .contact-opening h1,.portfolio-page .service-opening h1{font-size:clamp(2.3rem,9vw,3.2rem);margin-block:15px}
  .portfolio-page .research-collection{padding-bottom:28px}
  .portfolio-page .research-note{gap:17px;padding-top:20px}
  .portfolio-page .service-opening{padding-block:28px;gap:22px}
  .portfolio-page .practice-identity{padding:17px;gap:3px 16px}
  .portfolio-page .practice-identity img{margin:0}
  .portfolio-page .practice-list article{padding-block:17px;gap:9px 14px}
  .portfolio-page .practice-list h3{font-size:1.6rem;margin-top:7px}
  .portfolio-page .practice-program{padding:17px;gap:16px;margin-top:18px}
  .portfolio-page .contact-band-inner{padding-block:29px;gap:20px}
  .portfolio-page .contact-band h2{font-size:2.9rem}
  .portfolio-page .contact-details{gap:24px;padding-bottom:28px}
  .portfolio-page .contact-direct{padding:21px}
  .portfolio-page .contact-routes>a{padding-block:16px}
  .portfolio-page .contact-routes>.eyebrow{margin-bottom:15px}
  .ppc-hero-copy{padding-top:22px}
  .ppc-hero h1{font-size:clamp(2.2rem,10vw,3rem)}
  .ppc-video-card{margin-top:20px}
  .ppc-section,.ppc-guarantee,.ppc-contact{padding-block:34px}
  .ppc-section-intro{gap:18px}
  .ppc-journey{margin-top:24px}
  .ppc-guarantee .shell{gap:25px}
  .ppc-guarantee h2{font-size:clamp(2.3rem,9vw,3rem)}
  .ppc-contact-card{padding:23px 19px;gap:23px}
  .ppc-contact h2{font-size:clamp(2.2rem,9vw,2.9rem)}
}
@media(max-width:370px){
  .frame{width:calc(100% - 32px)}
  .hero-grid,.story-section>.frame{width:calc(100% - 32px)}
  .header-inner{gap:9px}
  .brand-wordmark{font-size:1.35rem}
  .brand-nav{gap:12px}
  .hero-actions{gap:13px}
  .work-card,.profile-project{grid-template-columns:94px minmax(0,1fr);column-gap:12px}
  .work-copy h3,.profile-project-copy h3{font-size:1.6rem}
  .portfolio-page .project-row{grid-template-columns:88px minmax(0,1fr) 22px;column-gap:10px}
  .portfolio-page .project-copy h2,.portfolio-page .project-copy h3{font-size:1.4rem}
}
