/* Shared proportions and responsive corrections for all page families. */
:root {
  --content-width:1280px;
  --header-width:1440px;
  --footer-width:1280px;
  --gutter:clamp(20px,3vw,48px);
  --section-space:clamp(48px,5vw,76px);
  --layout-gap:clamp(28px,4vw,64px);
}
body { font-size:16px; line-height:1.6; }
main h1,main h2,main h3 { text-wrap:balance; overflow-wrap:break-word; }
main p,main li,main dd { overflow-wrap:break-word; }
main :is(section,article,aside,figure,form), .page-shell > * { min-width:0; }
main :is(input,select,textarea) { min-width:0; max-width:100%; }
:is(.page-hero,.hero,.fdnl-hero) { isolation:isolate; }
.page-hero:after,.hero-side { display:none; }
.page-hero .page-shell,.tools-hero .page-hero-content { position:relative; z-index:2; }
.page-hero { padding:60px 0; }
.page-hero h1,.guide-detail-hero h1,.guides-hero h1 {
  font-size:clamp(36px,4.6vw,64px); line-height:1.08; letter-spacing:-.045em;
  max-width:920px; margin:18px 0 22px;
}
.page-hero p:not(.kicker) { font-size:17px; line-height:1.65; max-width:72ch; }
.guides-hero,.guide-detail-hero,.tools-hero { min-height:0; display:block; }
.guides-hero .page-hero-content,.guide-detail-hero .page-hero-content { padding-top:0; padding-bottom:0; }
.hero { min-height:560px; }
.hero-content { padding:64px 0; }
.hero h1 { font-size:clamp(44px,5.5vw,80px); line-height:1.02; letter-spacing:-.05em; }
.hero-lead { font-size:17px; max-width:68ch; }
.kicker,.eyebrow { font-size:11px!important; line-height:1.5!important; letter-spacing:.1em; }
.brand-location small { font-size:7px; }
.main-nav { gap:20px; font-size:14px; }
.nav-cta { gap:18px; }
.section-pad,.home-project-guide,.employment-section { padding:var(--section-space) 0; }
.inner-section { padding:56px 0 var(--section-space); }
.section-heading { margin-bottom:32px; gap:24px; }
.section-heading h2,.manifesto-copy h2,.join-inner h2,
.home-project-copy h2,.home-faq-intro h2,.profile-faq-layout h2,.directory-faq-layout h2,
.guide-intro h2,.guide-method h2,.guide-summary h2,.guide-faq h2,.guide-final-cta h2,
.tools-intro h2,.resources-intro h2,.glossary-intro h2,
.family-intro h2,.family-data h2,.family-compare h2 {
  font-size:clamp(28px,3.2vw,44px); line-height:1.15; letter-spacing:-.035em;
}
.section-heading p:not(.kicker),.guide-track-grid p,.guide-intro p:not(.kicker),
.home-project-steps p,.home-guide-card p,.category-card p,.pro-description,
.article-card>div:last-child>p:not(.eyebrow),.directory-proof>p,
.directory-intent-grid p,.profile-contact-guide span,.profile-data-context p,
.resource-card>p:not(.resource-card__category),.glossary-card p,
.guide-faq-list details p,.guide-faq-layout>div:first-child>p:last-child,
.guide-step-grid p,.guide-journey p,.guide-checklist-grid li,
.family-count-list li,.profession-family li {
  font-size:15px; line-height:1.65;
}
.field-copy small,.form-field span,.profile-side dt,
.home-proof-grid div span,.directory-proof span,.guide-hero-meta,
.verified-badge,.tag-row span,.resource-card li,.resource-card__category,
.glossary-card dd>span,.home-region-grid span,.guide-related article>span {
  font-size:11px; line-height:1.45;
}
.field-copy input,.field-copy select,.form-field input,.form-field select,.form-field textarea { font-size:16px; }
.search-field { padding:16px 18px; }
.directory-search[data-directory-form] { grid-template-columns:minmax(0,1.6fr) minmax(180px,.9fr) minmax(180px,.9fr) 160px; }
.directory-search[data-directory-form] .search-button { grid-column:4; grid-row:1; justify-content:space-between; min-height:76px; padding:16px 18px; }
.directory-search[data-directory-form] .source-field { grid-column:1/-1; grid-row:2; }
.search-button,.dark-button,.white-button,.outline-link,.filter-pill,.text-link,
.profile-contact a,.directory-reset,.directory-toolbar p,.location,
.guide-aside a,.guide-track-grid a,.resource-card>a,.glossary-card a {
  font-size:14px;
}
.dark-button,.white-button,.outline-link { gap:20px; padding:14px 18px; max-width:100%; }
.outline-link { white-space:normal; line-height:1.5; }
.outline-link span { flex:none; }
.pro-card-body { padding:24px; }
.pro-card h3 { font-size:23px; line-height:1.2; }
.directory-results .pro-description { min-height:0; -webkit-line-clamp:4; }
.tag-row { margin:14px 0 20px; }
.article-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.article-visual { height:220px; }
.article-layout { grid-template-columns:minmax(0,760px) minmax(230px,300px); gap:var(--layout-gap); padding-top:56px; padding-bottom:var(--section-space); }
.article-copy { font-size:17px; line-height:1.75; }
.article-copy h2,.profile-body h2,.simple-copy h2 { font-size:clamp(26px,2.7vw,36px); line-height:1.2; }
.article-lead { font-size:20px; }
.simple-copy { max-width:820px; }
.simple-copy p { font-size:17px; line-height:1.75; }
.article-photo,.about-photo-frame img { aspect-ratio:16/9; max-height:400px; }
.content-photo-frame img,.resources-intro-photo img,.home-project-visual img { aspect-ratio:16/10; max-height:380px; }
.about-photo-grid img { max-height:260px; }
.article-photo-frame figcaption,.about-photo-frame figcaption,.content-photo-frame figcaption,
.about-photo-grid figcaption,.home-project-visual figcaption { font-size:12px; line-height:1.5; letter-spacing:.02em; text-transform:none; }
.manifesto-section { min-height:0; }
.manifesto-image { min-height:420px; }
.manifesto-copy { padding:64px clamp(28px,4vw,64px); }
.manifesto-metrics { margin-top:36px; gap:24px; }
.manifesto-metrics span { font-size:11px; }
.metier-photo-strip figure { height:220px; }
.metier-photo-strip figcaption { font-size:12px; line-height:1.5; }
.join-banner,.guide-final-cta,.home-employment-band { padding:56px 0; }
.join-inner { gap:var(--layout-gap); }
.home-project-layout,.home-faq-layout,.guide-intro-grid,.guide-summary-grid,
.guide-method-grid,.guide-faq-layout,.tools-intro-grid,.glossary-intro-grid,
.family-intro-grid,.family-data-grid,.directory-methodology-grid,.form-layout,
.profile-body { gap:var(--layout-gap); }
.guide-layout { grid-template-columns:minmax(0,820px) minmax(240px,280px); gap:var(--layout-gap); padding:64px 0; }
.guide-section { padding-bottom:36px; margin-bottom:40px; }
.guide-section h2,.guide-table-section h2,.guide-checklist>h2 { font-size:clamp(27px,2.8vw,36px); line-height:1.2; margin-bottom:20px; }
.guide-section p,.guide-section li { font-size:16px; line-height:1.75; }
.guide-table-section,.guide-checklist { padding-bottom:36px; margin-bottom:40px; }
.guide-table-section th { font-size:12px; line-height:1.5; }
.guide-table-section td { font-size:14px; line-height:1.6; }
.guide-checklist-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.guide-checklist-grid>div { padding:22px; }
.guide-checklist-grid>div:last-child:nth-child(odd) { grid-column:1/-1; }
.guide-checklist-grid li span { margin-top:5px; }
.guide-card { padding:28px; min-height:0; }
.guide-card h2 { font-size:28px; line-height:1.2; margin-top:20px; }
.guide-card-photo { max-height:210px; }
.guide-step-grid li,.guide-journey li { min-height:0; padding:24px; }
.home-guide-card { min-height:0; padding:24px; }
.home-guide-card h3 { font-size:23px; margin-top:22px; }
.home-guide-card>i { padding-top:16px; }
.home-guide-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.home-guide-photo { display:block; width:100%; height:150px; object-fit:cover; margin-bottom:18px; }
.guide-track-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.guide-related article { min-height:200px; }
.guide-related h3 { margin:24px 0; }
.resource-card { min-height:0; padding:24px; }
.resource-card h2 { margin-top:16px; }
.resource-card__art { height:130px; }
.resource-card>a { margin-top:24px; }
.glossary-card { min-height:0; }
.glossary-card a { margin-top:20px; }
.profile-header { grid-template-columns:170px minmax(0,1fr) auto; gap:28px; }
.profile-logo { height:170px; }
.profile-heading h1 { font-size:clamp(30px,3vw,44px); line-height:1.1; }
.profile-side dd { font-size:15px; overflow-wrap:anywhere; }
.footer-main { gap:32px; }
.footer-main>div:not(.footer-intro),.footer-intro p { font-size:14px; }
.footer-main h2,.footer-bottom { font-size:11px; line-height:1.5; }
.footer-main>div:last-child { display:flex; }
.footer-bottom { gap:20px; flex-wrap:wrap; }
.guide-jump,.family-nav { position:relative; top:auto; }
.guide-toc .page-shell { flex-wrap:wrap; gap:10px; padding-top:18px; padding-bottom:18px; }
.guide-toc span { width:100%; }
.guide-toc a { flex:1 1 220px; max-width:none; white-space:normal; overflow:visible; text-overflow:clip; font-size:14px; line-height:1.5; }
.guide-step-grid h3,.guide-journey h3 { margin-top:22px; font-size:24px; line-height:1.2; }
.guide-step-grid b { font-size:11px; line-height:1.5; }
.documentary-photo { margin:0 0 32px; }
.documentary-photo img { display:block; width:100%; aspect-ratio:16/10; max-height:340px; object-fit:cover; }
.documentary-photo figcaption { padding:12px 0; font-size:14px; line-height:1.5; border-bottom:1px solid var(--line); }
.documentary-photo figcaption span { display:block; font-size:12px; color:#615d56; margin-top:6px; }
.documentary-photo a { text-decoration:underline; text-underline-offset:3px; }
.photo-credit { font-size:13px; line-height:1.6; padding:0 0 20px; color:#615d56; }
.photo-credit a,.media-disclosure a { text-decoration:underline; text-underline-offset:3px; }
.field-notes { background:#fff; }
.field-note-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.field-note-grid h3 { font-size:24px; line-height:1.25; }
.field-note-grid p,.field-note-grid li { font-size:16px; line-height:1.65; }
.field-note-grid ul { padding-left:22px; }
.field-note-grid li { margin:10px 0; }
:is(.guide-section,.guide-checklist,.guide-table-section,section[id]) { scroll-margin-top:100px; }
.page-france .fdnl-hero { padding:64px max(var(--gutter),calc((100% - 1280px)/2)); }
.page-france .fdnl-hero h1 { font-size:clamp(36px,4.6vw,64px); line-height:1.08; letter-spacing:-.045em; }
.page-france .fdnl-section,.page-france .fdnl-content { padding:var(--section-space) max(var(--gutter),calc((100% - 1280px)/2)); }
.page-france .fdnl-heading h2 { font-size:clamp(28px,3.2vw,44px); line-height:1.15; }
.page-france :is(.fdnl-kicker,.fdnl-directory-date,.fdnl-card>span,.fdnl-card small,.fdnl-city-grid small,.fdnl-breadcrumbs) { font-size:12px; line-height:1.5; }
.page-france .fdnl-breadcrumbs { padding-left:var(--gutter); padding-right:var(--gutter); }
@media (max-width:1100px) {
  .directory-search[data-directory-form] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .directory-search[data-directory-form] .source-field { grid-column:auto; grid-row:auto; }
  .directory-search[data-directory-form] .search-button { grid-column:1/-1; grid-row:auto; min-height:56px; justify-content:center; }
  .main-nav { gap:12px; font-size:13px; }
  .guide-step-grid,.home-guide-grid,.family-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .guide-track-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .guide-checklist-grid,.guide-layout { grid-template-columns:minmax(0,1fr); }
  .guide-aside>div { position:static; }
  .profile-header { grid-template-columns:150px minmax(0,1fr); }
  .profile-contact { grid-column:1/-1; flex-direction:row; }
  .profile-contact a { flex:1; }
  .article-layout { grid-template-columns:minmax(0,1fr) 250px; gap:28px; }
}
@media (max-width:900px) {
  .article-layout,.form-layout,.profile-body,.tools-intro-grid,.guide-intro-grid,
  .guide-summary-grid,.guide-method-grid,.guide-faq-layout,.glossary-intro-grid { grid-template-columns:minmax(0,1fr); }
  .article-aside,.guide-faq-layout>div:first-child { position:static; }
  .profile-side { border-left:0; border-top:1px solid var(--line); padding:24px 0 0; }
  .footer-main { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .footer-intro { grid-column:1/-1; }
  .main-nav.open { max-height:calc(100dvh - 78px); overflow-y:auto; }
  .article-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px) {
  :root { --gutter:18px; --layout-gap:28px; --section-space:48px; }
  .page-shell,.header-inner,.footer-shell { width:calc(100% - 36px); }
  .page-hero { padding:42px 0; }
  .page-hero h1,.guides-hero h1,.guide-detail-hero h1 { font-size:clamp(32px,8.8vw,42px); line-height:1.12; }
  .page-hero p:not(.kicker),.hero-lead { font-size:16px; }
  .guides-hero .page-hero-content,.guide-detail-hero .page-hero-content { padding:0; }
  .hero { min-height:0; }
  .hero-content { padding:44px 0; }
  .hero h1 { font-size:clamp(38px,10vw,48px); }
  .section-heading h2,.manifesto-copy h2,.join-inner h2,.family-intro h2,.family-data h2,.family-compare h2 { font-size:30px; }
  .main-nav.open { max-height:calc(100dvh - 68px); }
  .directory-search { grid-template-columns:minmax(0,1fr); }
  .directory-search[data-directory-form] { grid-template-columns:minmax(0,1fr); }
  .directory-search[data-directory-form] .search-button { grid-column:auto; grid-row:auto; justify-content:space-between; }
  .search-button { min-height:56px; height:auto; padding:16px 18px; }
  .source-field { grid-row:auto!important; }
  .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .category-card { min-height:240px; padding:18px; }
  .category-card h3 { font-size:18px; }
  .category-card p { font-size:14px; }
  .category-icon { margin:20px 0; }
  .article-grid,.home-guide-grid,.guide-step-grid,.family-card-grid,.family-card-grid--three { grid-template-columns:minmax(0,1fr); }
  .guide-track-grid { grid-template-columns:minmax(0,1fr); }
  .article-card:first-child { grid-column:auto; }
  .guide-layout { padding:48px 0; }
  .guide-section { margin-bottom:32px; padding-bottom:28px; }
  .guide-section p { font-size:16px; }
  .guide-card { padding:22px; }
  .guide-card h2 { font-size:25px; margin-top:20px; }
  .article-photo,.about-photo-frame img,.content-photo-frame img,.resources-intro-photo img { max-height:300px; }
  .manifesto-image { min-height:280px; }
  .manifesto-copy { padding:42px 22px; }
  .manifesto-metrics { gap:12px; }
  .manifesto-metrics>div { flex-direction:column; }
  .manifesto-metrics span { font-size:11px; }
  .profile-header { grid-template-columns:90px minmax(0,1fr); gap:18px; }
  .profile-logo { height:90px; }
  .profile-heading h1 { font-size:30px; }
  .profile-hero { padding:36px 0; }
  .profile-contact { flex-direction:column; }
  .field-note-grid { grid-template-columns:minmax(0,1fr); }
  .documentary-photo img { max-height:260px; }
  .profile-contact a { padding:14px 18px; }
  .empty-state { padding:32px 20px; }
  .directory-pagination { font-size:14px; grid-template-columns:1fr 1fr; }
  .directory-pagination>span { grid-column:1/-1; grid-row:2; }
  .guide-faq-list details p,.home-faq-list p { padding-right:0; font-size:16px; }
  .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-main>div:last-child { grid-column:1/-1; }
  .footer-intro p { max-width:100%; }
  .brand-location small { font-size:6px; }
}
@media (max-width:360px) {
  .category-grid { grid-template-columns:minmax(0,1fr); }
  .category-card { min-height:220px; }
  .home-proof-grid { grid-template-columns:minmax(0,1fr); }
  .home-proof-grid>div { grid-column:1; border-top:1px solid var(--line); }
  .family-facts { grid-template-columns:minmax(0,1fr); }
}
@media print {
  .page-shell { width:100%; }
  .page-hero,.hero { padding:24px 0; min-height:0; }
  .guide-layout,.article-layout { display:block; }
}
