/* V15. Shared finishing system: type roles, a measured rhythm and stable frames.
   Editorial imagery and the established drawer retain their own art direction. */
:root {
  --gutter: clamp(20px,4vw,64px);
  --content-width: 1280px;
  --section-space: clamp(80px,8vw,128px);
  --layout-gap: clamp(32px,5vw,72px);
  --space-heading: clamp(32px,4vw,56px);
  --type-display: clamp(40px,5.2vw,76px);
  --type-section: clamp(34px,4.1vw,58px);
  --type-feature: clamp(32px,3.6vw,48px);
  --type-card: clamp(26px,2.3vw,32px);
  --type-body: 17px;
  --type-small: 14px;
  --type-caption: 12px;
  --type-label: 11px;
  --body-leading: 1.8;
  --ink: #17202c;
  --muted: #596474;
  --paper-line: #dcd9d2;
}
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { font-family:var(--font); font-weight:400; letter-spacing:0; }
.container { width:min(var(--content-width),calc(100% - 2 * var(--gutter))); }
.nav-shell { width:min(var(--content-width),calc(100% - 2 * var(--gutter))); }
main :is(h1,h2,h3,h4) { font-synthesis:none; }
main :is(p,li,dd) { text-wrap:pretty; }
.section,.closing { padding-block:var(--section-space); }
.section.compact-top { padding-top:32px; }
.page-intro { padding-top:32px; padding-bottom:64px; }
.page-intro+.section:not(.compact-top) { padding-top:48px; }
.page-intro .breadcrumb { margin-bottom:40px; font-size:var(--type-caption); line-height:1.7; }
.inner-edition { margin-bottom:28px; padding-block:16px; font-size:var(--type-label); letter-spacing:.09em; }
.edition-rule { margin-bottom:var(--space-heading); padding-block:16px; font-size:var(--type-label); letter-spacing:.1em; }
.edition-rule>span:last-child { font-size:var(--type-caption); }
.section-heading { gap:var(--layout-gap); margin-bottom:var(--space-heading); padding-top:24px; align-items:flex-start; }
.section-heading>div { min-width:0; }
.section-heading>p { padding-top:6px; }
.split,.intro-grid,.faq-layout,.closing-grid,.contact-layout,.package-overview,.finder-layout,.roi-layout,.resource-teaser-grid,.scenario-detail-grid { gap:var(--layout-gap); }
.prose { padding-top:8px; }

/* Shared hierarchy. Display, section, feature and card headings have distinct jobs. */
body main .intro-grid h1 { font-size:var(--type-display); line-height:1.12; letter-spacing:-.035em; font-weight:300; overflow-wrap:normal; }
body main .intro-grid h1 br { display:initial; }
body main .benefit-card h3 br { display:initial; }
body main :is(.section-heading h2,.split h2,.faq-layout h2,.closing h2,.dossier-copy h2,.presence-copy h2,.asset-feature-copy h2,.agency-banner-copy h2,.roi-layout h2,.scenario-detail-grid h2,.resource-teaser-grid h2) {
  font-size:var(--type-section); font-weight:300; line-height:1.16; letter-spacing:-.032em;
}
body main :is(.editorial-service h3,.atlas-copy h3,.journey-step h3) {
  font-size:var(--type-feature); font-weight:300; line-height:1.18; letter-spacing:-.025em;
}
body main :is(.benefit-card h3,.steps h3,.feature-grid h3,.capability-grid h3,.presence-use-grid h3,.detail-rows h3,.guide-links h3,.service-directory h2,.resource-downloads h2,.legal-content h2,.article-layout h2) {
  font-size:var(--type-card); font-weight:350; line-height:1.25; letter-spacing:-.022em;
}
body main :is(.price-card h3,.finder-result h3,.contact-layout aside>h2,.process-timeline h2) {
  font-size:var(--type-feature); font-weight:300; line-height:1.2; letter-spacing:-.025em;
}
body main :is(.hero-content>p:not(.label),.intro-grid>div>p,.section-heading>p,.prose>p:not(.lead),.benefit-card>p,.journey-step>p,.editorial-service-copy>p,.asset-feature-copy>p:not(.label),.agency-banner-copy>p:not(.label),.feature-body>p:not(.label),.dossier-copy>p:not(.label),.atlas-copy>p:not(.label-plain),.presence-copy>p:not(.label),.steps p,.price-card .price-description,.guide-links p,.service-directory p,.detail-rows p,.process-timeline p,.feature-grid p,.presence-use-grid p,.resource-downloads p,.resource-teaser-grid>div>p:not(.label),.closing-grid>div>p:not(.label),.engagement-notes p,.package-summary>p:not(.lead),.contact-layout aside>p,.roi-layout>div>p:not(.label),.legal-content p) {
  font-size:var(--type-body); line-height:var(--body-leading); font-weight:400; letter-spacing:0; max-width:62ch;
}
body main :is(.prose>p.lead,p.lead) { font-size:clamp(22px,2.1vw,28px); line-height:1.5; font-weight:350; letter-spacing:-.015em; max-width:35ch; }
body main :is(.accordion summary,.scope-detail-grid summary) { font-size:18px; line-height:1.55; font-weight:450; letter-spacing:-.01em; padding-block:26px; }
body main :is(.accordion details>div>p,.scope-detail-grid p) { font-size:var(--type-body); line-height:var(--body-leading); color:var(--muted); }
body main :is(.article-layout article p,.article-layout article li) { font-size:18px; line-height:1.85; max-width:66ch; color:var(--muted); }
.article-layout>article { min-width:0; }
.article-layout>article>section { margin-bottom:56px; }
.article-layout>article>section:last-child { margin-bottom:0; }
.article-layout>article>section:first-child>p:first-of-type::first-letter { float:none; font:inherit; color:inherit; margin:0; }
body main :is(.label,.label-plain,.hero .label,.feature-body .label,.price-card-top>.label-plain,.editorial-service-copy>.label-plain,.atlas-copy>.label-plain,.journey-step>.label-plain) {
  font-size:var(--type-label); line-height:1.7; font-weight:500; letter-spacing:.1em; color:#59677b;
}
body main :is(.hero,.editorial-feature,.closing,.dark,.asset-feature,.presence-showcase,.featured) :is(.label,.label-plain) { color:#c5cfde; }
.label { margin-bottom:24px; }
body main :is(.fineprint,.pricing-note,.journey-visual-caption,.network-bar .container>p,.service-deliverables,.package-portrait figcaption,.resource-format,.form-note) {
  font-size:var(--type-caption); line-height:1.75; letter-spacing:0;
}
body main :is(.benefit-outcome,.package-fit>p,.price-card li,.recurring>span,.finder-choices small,.report-formats p,.atlas-copy dd,.dossier-details dd,.dossier-visual figcaption p,.contact-next p) {
  font-size:var(--type-small); line-height:1.8; letter-spacing:0;
}
body main :is(.engagement-notes span,.presence-use-grid article>span,.capability-link,.package-fit>span,.journey-output>span,.asset-locations li,.format-index,.atlas-copy dt,.dossier-caption-label) {
  font-size:var(--type-label); line-height:1.7;
}
body main :is(.prose>p:not(.lead),.benefit-card>p,.detail-rows p,.service-directory p,.feature-grid p,.presence-use-grid p,.resource-downloads p,.engagement-notes p,.package-summary>p:not(.lead),.contact-layout aside>p,.contact-next p,.atlas-copy>p:not(.label-plain),.dossier-copy>p:not(.label)) { color:var(--muted); }
body main .dark .prose>p:not(.lead) { color:#c5cdd8; }
.hero-content>p:not(.label),.feature-body>p:not(.label) { color:#d2d9e3; }
.feature-body h2 { font-weight:300; }

/* Whitespace follows content, with a shared measure between comparable components. */
.benefit-grid,.scope-stats,.capability-grid,.presence-use-grid,.detail-rows,.engagement-notes { margin-top:var(--space-heading); }
.benefit-grid,.report-formats,.pricing-grid,.guide-links,.service-directory { gap:28px; }
.benefit-card { padding:0 0 32px; }
.benefit-card h3,.steps h3,.capability-grid h3,.presence-use-grid h3 { margin-top:24px; }
.benefit-card>p,.steps p,.capability-grid p,.presence-use-grid p { margin-top:16px; }
.editorial-services { gap:var(--layout-gap); }
.editorial-service { gap:var(--layout-gap); padding-bottom:var(--layout-gap); }
.editorial-service:last-child { padding-bottom:0; border-bottom:0; }
.editorial-service-copy>p,.atlas-copy>p:not(.label-plain),.dossier-copy>p:not(.label) { margin-top:24px; }
.detail-rows>article { padding-block:32px; }
.scope-detail-grid { margin-top:var(--space-heading); }
.price-card { display:flex; flex-direction:column; padding:32px; }
.price-card .price-description { min-height:0; }
.price-card>.btn { margin-top:auto; }
.price-card ul { margin-bottom:28px; }
.price-card .price { margin-top:28px; }
.price>strong,.package-investment>strong,.finder-price { font-variant-numeric:tabular-nums; }
.report-formats>a,.capability-grid>a { padding:28px; }
.report-formats>a { display:flex; flex-direction:column; }
.report-formats .format-link { margin-top:auto; padding-top:24px; }
.report-formats p { margin-bottom:0; }
.dossier-layout,.atlas-panel { gap:var(--layout-gap); }
.dossier-visual figcaption { padding:32px; }
.dossier-visual figcaption strong { font-size:var(--type-card); line-height:1.25; font-weight:300; letter-spacing:-.022em; }
.dossier-visual figcaption small { font-size:var(--type-caption); line-height:1.75; }
.asset-feature-copy,.agency-banner-copy { padding-block:var(--section-space); }
.presence-showcase { padding-top:var(--section-space); }
.resource-downloads>article { padding-block:32px; }

/* Explicit frames avoid percentage-height cycles around intrinsic image dimensions. */
.benefit-photograph,.editorial-visual,.guide-cover,.service-preview,.page-image { position:relative; overflow:hidden; }
.benefit-photograph>img,.editorial-visual>img,.guide-cover>img,.service-preview>img,.page-image>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.service-preview { height:auto; aspect-ratio:3 / 2; }
.page-image { height:auto; aspect-ratio:16 / 9; }
.page-image>figcaption,.page-image>span { z-index:1; }
.editorial-visual figcaption,.art-page-image>figcaption { font-size:11px; line-height:1.6; letter-spacing:.015em; max-width:calc(100% - 32px); left:16px; bottom:16px; padding:8px 12px; }

/* Buttons, links and input fields use the same rhythm and readable labels. */
body :is(.btn,.text-link,.editorial-link,.scenario-link) { font-size:14px; line-height:1.5; letter-spacing:0; font-weight:500; }
body .btn { min-height:52px; padding:16px 24px; gap:24px; border-radius:6px; }
body .btn.small { min-height:44px; padding:12px 18px; font-size:13px; }
body :is(.text-link,.editorial-link) { min-height:44px; align-items:center; }
.btn>span,.text-link>span,.editorial-link>i { line-height:1; }
body .hero-actions .btn,body .hero-actions .btn.ghost,body .closing .btn,body .price-card>.btn,body .intro-grid .btn { font-size:14px; }
body[data-page] :is(.btn,.btn.ghost,.btn.text,.btn.small) { font-size:14px; line-height:1.5; min-height:52px; padding:16px 24px; gap:24px; }
body[data-page] .btn.text { min-height:44px; padding:12px 0; }
body[data-page] .btn.small { min-height:44px; font-size:13px; padding:12px 18px; }
.menu-toggle { background:#ffffff0d; border-color:#ffffff45; box-shadow:none; }
.menu-toggle svg { color:#f3f4f6; }
.menu-toggle:hover { background:#ffffff20; box-shadow:none; }
:focus-visible { outline:2px solid #4567d7; outline-offset:4px; }
.hero :focus-visible,.dark :focus-visible,.closing :focus-visible,.topbar :focus-visible { outline-color:#b6c8ff; }
.brief-form { padding:32px; border-color:var(--paper-line); background:#f3f2ee; border-radius:8px; }
.brief-form label { font-size:14px; line-height:1.6; margin-bottom:24px; color:var(--ink); }
.brief-form input,.brief-form select,.brief-form textarea { font-size:16px; line-height:1.5; min-height:52px; padding:14px 16px; border-radius:5px; }
.brief-form textarea { min-height:160px; resize:vertical; }
.brief-form input::placeholder,.brief-form textarea::placeholder { color:#67717e; opacity:1; }
body main :is(.finder-result>p,.brief-dialog>p,.capability-grid p) { font-size:var(--type-body); line-height:var(--body-leading); font-weight:400; letter-spacing:0; }
body main :is(.section-end>p,.package-investment>p,.roi-result>div p,.roi-fields label) { font-size:14px; line-height:1.8; }
body main :is(.roi-caveat,.roi-result>span) { font-size:12px; line-height:1.75; }
.roi-result>div strong { font-size:22px; line-height:1.4; }
.contact-next { margin-top:32px; padding-top:24px; }
.contact-next b { font-size:12px; }
.footer { padding-top:64px; padding-bottom:48px; }
.footer-top { gap:32px; padding-bottom:32px; }
.footer-grid { gap:40px; padding-block:40px; }
.footer-grid h3 { font-size:12px; line-height:1.7; letter-spacing:.08em; margin-bottom:16px; }
.footer-grid>div>a:not(.btn),.footer-grid .footer-contact>a:not(.btn) { font-size:14px; line-height:1.65; margin-top:0; min-height:40px; padding-block:9px; }
.footer-contact p { font-size:14px; line-height:1.8; }
.footer-bottom,.footer-bottom a,.footer>.container>.fineprint { font-size:12px; line-height:1.8; }
.footer-bottom nav a { min-height:44px; display:inline-flex; align-items:center; }
.footer .btn.outline { font-size:14px; }
.chapter-nav a { font-size:12px; }

@media(min-width:761px) and (max-width:1100px) {
  :root { --layout-gap:40px; }
  .section-heading { flex-wrap:wrap; }
  .section-heading>p { max-width:50ch; }
  .capability-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:900px) {
  .dossier-layout,.atlas-panel,.editorial-service,.editorial-service:nth-child(even) { gap:var(--layout-gap); }
  .asset-feature-copy,.agency-banner-copy { padding:64px var(--gutter); max-width:none; }
  .presence-use-grid { grid-template-columns:minmax(0,1fr); }
  .capability-grid>a { min-height:0; }
  .footer .motion-control { margin-top:24px; }
}
@media(max-width:760px) {
  :root { --gutter:24px; --section-space:80px; --layout-gap:32px; --space-heading:32px; --type-display:clamp(38px,9.2vw,56px); --type-section:clamp(34px,8.2vw,46px); --type-feature:clamp(30px,7.5vw,40px); --type-card:28px; --type-body:16px; }
  .page-intro { padding-top:24px; padding-bottom:40px; }
  .page-intro .breadcrumb { margin-bottom:32px; }
  .page-intro+.section:not(.compact-top) { padding-top:32px; }
  .section.compact-top { padding-top:24px; }
  .inner-edition { margin-bottom:24px; font-size:10px; }
  .section-heading { gap:24px; padding-top:24px; }
  .section-heading>p { max-width:52ch; padding:0; }
  .prose { padding-top:0; }
  .benefit-grid,.pricing-grid,.report-formats,.guide-links { gap:32px; }
  .benefit-card { padding-bottom:32px; }
  .benefit-photograph { margin-bottom:24px; }
  .benefit-card h3 { margin-top:20px; }
  .capability-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  .price-card,.report-formats>a,.capability-grid>a { padding:28px; }
  .price-card h3 { margin-top:24px; }
  .price-card .price-description { margin-top:16px; }
  .detail-rows>article { grid-template-columns:24px minmax(0,1fr); gap:12px 16px; padding-block:28px; }
  .dossier-visual figcaption { padding:24px; }
  .page-image { aspect-ratio:4 / 3; }
  .article-layout { gap:32px; }
  body main :is(.article-layout article p,.article-layout article li) { font-size:17px; line-height:1.85; }
  .article-layout>article>section { margin-bottom:40px; }
  .article-layout>aside>a { font-size:13px; line-height:1.7; min-height:44px; }
  .scope-detail-grid details>div { padding-inline:0 8px; }
  .scope-detail-grid summary { gap:16px; }
  .scope-stats p { font-size:14px; line-height:1.8; }
  .brief-form { padding:24px; }
  .contact-layout aside>p,.contact-next { max-width:none; }
  .footer { padding-top:48px; padding-bottom:32px; }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; padding-block:32px; }
  .footer-contact { grid-column:1 / -1; }
  .footer-grid>div>a:not(.btn) { min-height:44px; }
  .footer-bottom nav { gap:20px; }
  .hero-content>.cover-edition { font-size:10px; letter-spacing:.08em; }
  .hero-bottom { font-size:11px; line-height:1.7; }
  .hero-bottom>a { font-size:12px; }
  .chapter-nav>.container { padding-inline:var(--gutter); gap:24px; }
  .chapter-nav a { font-size:12px; }
}
@media(max-width:374px) {
  :root { --gutter:20px; --section-space:72px; --type-display:36px; --type-section:32px; --type-feature:30px; --type-card:26px; }
  .price-card,.report-formats>a,.capability-grid>a,.brief-form { padding:24px; }
  .footer-grid { gap:32px 20px; }
  .scope-detail-grid summary,.accordion summary { font-size:17px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
