/* Shared pages and the audience navigation. */
html { scroll-padding-top:0; }
:where(section, [id]) { scroll-margin-top:7rem; }
.header-conversation { flex:none; white-space:nowrap; color:var(--white); }
.header-conversation>span,.conversation-action>span { color:var(--gold); }
.header-conversation:hover,.conversation-action:hover { background:var(--gold); color:var(--green); }
.header-conversation:hover>span,.conversation-action:hover>span { color:var(--green); }
.menu-toggle { display:none; }
#hero.home-hero { display:block; padding:64px 0 60px; background:var(--sage); width:100%; }
.home-intro h1 { font-size:clamp(2.5rem,4.2vw,4rem); max-width:none; line-height:1.13; letter-spacing:-.04em; margin:0; text-wrap:balance; }
.home-intro h1>span { display:block; }
.home-intro>p { margin-top:1.5rem; max-width:65ch; font-size:clamp(1.125rem,1.8vw,1.375rem); line-height:1.6; }
.audience-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; margin-top:2.5rem; }
.audience-panel { min-width:0; display:flex; flex-direction:column; align-items:flex-start; padding:2rem; border:1px solid #bdcec5; border-radius:12px; background:var(--paper); }
.audience-panel .eyebrow { margin:0 0 1rem; font-size:.75rem; line-height:1.5; letter-spacing:.07em; }
.audience-columns h2 { font-size:clamp(1.75rem,2.6vw,2.375rem); line-height:1.2; letter-spacing:-.025em; margin:0; text-wrap:pretty; }
.audience-panel .audience-summary { margin:1rem 0 1.75rem; max-width:40ch; font-size:1.0625rem; line-height:1.6; }
.audience-panel .audience-action { margin-top:auto; width:100%; justify-content:space-between; gap:1rem; font-size:.9375rem; min-height:52px; padding:.875rem 1rem; text-align:left; }
.audience-panel .audience-action>span { color:var(--gold); flex:none; }
.audience-enterprise { background:var(--green); color:var(--white); border-color:var(--green); }
.audience-enterprise .eyebrow,.audience-enterprise .audience-summary { color:var(--sage); }
.audience-enterprise .audience-action { background:transparent; border:1px solid #6e9085; }
.audience-panel .audience-action:hover { background:var(--gold); color:var(--green); border-color:var(--gold); }
.audience-panel .audience-action:hover>span { color:var(--green); }
.audience-panel .audience-action:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
.focus-accordion { border-top:1px solid #b3c9bf; }
.focus-accordion:last-child { border-bottom:1px solid #b3c9bf; }
.focus-accordion summary { list-style:none; display:flex; align-items:center; gap:.75rem; padding:1rem 0; cursor:pointer; color:var(--ink); font-size:1rem; font-weight:650; line-height:1.45; }
.focus-accordion summary::-webkit-details-marker { display:none; }
.focus-accordion .focus-check { display:grid; place-items:center; width:1.4rem; height:1.4rem; border-radius:50%; flex:none; background:var(--green); color:white; font-size:.8125rem; }
.focus-accordion .expand-icon { margin-left:auto; flex:none; }
.focus-accordion[open] summary { color:var(--green); }
.focus-accordion>p { margin:0 0 1.25rem 2.15rem; max-width:52ch; font-size:1rem; line-height:1.65; }
.focus-accordion summary:focus-visible { outline:2px solid var(--green); outline-offset:5px; border-radius:2px; }
.about-section { border-top:1px solid var(--line); background:var(--paper); }
.about-section .section-heading h2 { max-width:24ch; margin:0; }
.about-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:var(--space-column); align-items:start; }
.founder-portrait { margin:0; overflow:hidden; border-radius:12px; background:var(--sage); }
.founder-portrait>img { display:block; width:100%; height:auto; aspect-ratio:1.12; object-fit:cover; object-position:center 30%; }
.founder-portrait figcaption { display:flex; justify-content:space-between; gap:.5rem 1rem; padding:1.125rem 1.5rem; font-size:.9375rem; line-height:1.5; flex-wrap:wrap; }
.about-copy h3 { margin:0; font-size:clamp(1.5rem,2.4vw,2rem); line-height:1.25; letter-spacing:-.025em; text-wrap:pretty; }
.about-copy p { font-size:1.0625rem; line-height:1.7; margin-top:1.25rem; }
.conversation-action { margin-top:1.75rem; font-size:1rem; min-height:52px; }
.about-section .principals { margin-top:3rem; }
.principals-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.carousel-controls { display:flex; gap:.5rem; }
.carousel-controls button { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--mid); border-radius:50%; background:none; color:var(--green); font-size:1.5rem; cursor:pointer; }
.carousel-controls button:disabled { opacity:.35; cursor:default; }
.carousel-controls button:not(:disabled):hover { background:var(--sage); }
.principal-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 2rem)/3); gap:1rem; list-style:none; padding:2px 2px 14px; margin:0; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#8da99c transparent; }
.principal-track .principal-card { scroll-snap-align:start; flex-direction:row; align-items:center; min-height:168px; background:var(--sage); border-color:#bdd0c5; }
.principal-track .principal-card>img { width:76px; height:76px; }
.principal-track:focus-visible { outline:2px solid var(--green); outline-offset:5px; }
.service-links { margin-top:2.5rem; border-top:1px solid #6e9085; }
.service-links>a { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.5rem 0; border-bottom:1px solid #6e9085; color:white; font-size:clamp(1.125rem,2vw,1.5rem); font-weight:650; line-height:1.45; }
.service-links>a>span { color:var(--gold); font-size:1.75rem; }
.service-links>a:hover { color:var(--gold); }
.session-copy h2 { margin-top:0; }
.service-hero { background:var(--sage); }
.service-hero h1 { max-width:23ch; font-size:clamp(2.75rem,5vw,4.25rem); letter-spacing:-.04em; line-height:1.1; margin-top:1rem; }
.service-hero p:not(.eyebrow) { max-width:72ch; margin-top:1.5rem; font-size:1.0625rem; line-height:1.7; }
.service-hero p.service-lead { max-width:58ch; font-size:clamp(1.25rem,2vw,1.625rem); color:var(--ink); line-height:1.5; }
/* A shared purpose line supports the offer without competing with its headline. */
.simple-hero p.ac-hero-purpose,.service-hero p.ac-hero-purpose { max-width:72ch; margin:2.5rem 0 0; padding-left:1rem; border-left:3px solid var(--gold); font-size:.9375rem; line-height:1.6; color:var(--muted); }
.ac-hero-purpose strong { display:block; color:var(--green); font-size:1rem; font-weight:650; }
.ac-hero-purpose>span { display:block; margin-top:.25rem; }
.service-focus h2,.page-conversation h2 { font-size:clamp(2rem,3.4vw,3rem); letter-spacing:-.03em; line-height:1.15; }
.focus-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem 4rem; margin-top:2.5rem; }
.focus-grid article { border-top:1px solid var(--line); padding-top:1.5rem; }
.focus-grid h3 { font-size:1.375rem; letter-spacing:-.02em; line-height:1.3; text-wrap:pretty; }
.focus-grid p { margin-top:.75rem; font-size:1.0625rem; line-height:1.65; max-width:53ch; }
.path-heading h2 { margin-top:0; }
.page-conversation { background:var(--green); color:white; }
.page-conversation .shell { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.page-conversation h2 { max-width:20ch; }
.page-conversation .button { background:var(--gold); color:var(--green); margin:0; flex:none; }
.page-conversation .button>span { color:var(--green); }
.page-conversation .button:hover { background:white; }
.proof-heading h1 { font-size:clamp(2.5rem,4.8vw,4rem); max-width:22ch; letter-spacing:-.035em; line-height:1.13; margin-top:1rem; }
.anchor-alias { display:block; }
/* The SUD page presents one six-week offer with a direct owner conversation. */
.sud-hero { background:var(--sage); }
.sud-hero-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.85fr); gap:4rem; align-items:center; }
.sud-hero-copy .eyebrow { margin-bottom:1.5rem; }
.sud-hero h1 { font-size:clamp(2.75rem,4.5vw,4rem); letter-spacing:-.04em; line-height:1.12; margin:0; }
.sud-hero-copy>p:not(.eyebrow) { font-size:1.0625rem; line-height:1.65; margin-top:1.25rem; max-width:54ch; }
.sud-hero-copy>p.sud-lead { font-size:1.25rem; margin-top:1.75rem; }
.sud-text-link { display:inline-flex; align-items:center; gap:.75rem; margin:1rem 0 0 1.25rem; font-size:.9375rem; font-weight:650; text-decoration:underline; text-underline-offset:5px; }
.sud-blueprint-preview { background:var(--green); color:var(--white); padding:2.5rem; border-radius:12px; }
.sud-blueprint-preview>.eyebrow { color:var(--gold); font-size:.75rem; }
.sud-blueprint-preview h2 { font-size:clamp(1.75rem,3vw,2.5rem); letter-spacing:-.025em; line-height:1.2; margin:1.25rem 0 2rem; }
.sud-blueprint-preview dl { margin:0; }
.sud-blueprint-preview dl>div { border-top:1px solid #6e9085; padding:1.25rem 0; }
.sud-blueprint-preview dt { color:var(--gold); font-weight:650; margin-bottom:.4rem; }
.sud-blueprint-preview dd { margin:0; color:var(--sage); font-size:1rem; line-height:1.6; }
.sud-blueprint-preview .sud-preview-foot { color:var(--sage); font-size:.875rem; line-height:1.6; margin-top:1rem; }
.sud-two-column { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:5rem; align-items:start; }
.sud-section-copy h2 { font-size:clamp(2rem,3.2vw,2.75rem); line-height:1.18; letter-spacing:-.035em; margin-top:1.25rem; text-wrap:pretty; }
.sud-section-copy>p:not(.eyebrow) { max-width:58ch; font-size:1.0625rem; line-height:1.7; margin-top:1.5rem; }
.sud-inline-link { display:inline-flex; flex-wrap:wrap; align-items:center; gap:.5rem 1rem; margin-top:1.5rem; font-size:1rem; font-weight:650; text-decoration:underline; text-underline-offset:5px; }
.sud-inline-link>span[aria-hidden] { font-size:1.5rem; line-height:1; }
.sud-team-list article { display:flex; align-items:center; gap:1.5rem; border-top:1px solid var(--line); padding:1.75rem 0; }
.sud-team-list article:last-child { border-bottom:1px solid var(--line); }
.sud-team-list img { width:88px; height:88px; border-radius:50%; object-fit:cover; flex:none; }
.sud-team-list h3 { font-size:1.375rem; line-height:1.3; letter-spacing:-.02em; }
.sud-team-list p { font-size:1rem; margin-top:.375rem; }
.sud-team-list article div>span { display:block; color:var(--muted); font-size:.875rem; line-height:1.6; margin-top:.75rem; }
.sud-outputs { background:var(--sage); }
.sud-outputs .sud-section-copy { max-width:780px; }
.sud-output-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; margin-top:2.5rem; }
.sud-output-grid article { min-width:0; background:var(--paper); border:1px solid #bdcec5; border-radius:10px; padding:2rem; }
.sud-number { color:var(--mid); font-size:.8125rem; font-weight:650; }
.sud-output-grid h3 { font-size:1.5rem; line-height:1.3; letter-spacing:-.025em; margin-top:1rem; }
.sud-output-grid p { font-size:1.0625rem; line-height:1.7; margin-top:1rem; max-width:52ch; }
.sud-engagement-note { color:var(--ink); font-size:1rem; margin-top:2rem; }
.sud-supporting-tools { font-size:.9375rem; margin-top:.75rem; max-width:85ch; }
.sud-fit { background:var(--green); color:var(--white); }
.sud-fit .eyebrow { color:var(--gold); }
.sud-fit .sud-section-copy>p:not(.eyebrow) { color:var(--sage); }
.sud-fit-list { list-style:none; padding:0; margin:0; }
.sud-fit-list li { border-top:1px solid #6e9085; padding:1.5rem 0; }
.sud-fit-list strong { display:block; font-size:1.125rem; line-height:1.5; }
.sud-fit-list li>span { display:block; color:var(--sage); font-size:1rem; line-height:1.7; margin-top:.5rem; }
.sud-definition { border-top:1px solid #6e9085; }
.sud-definition summary { display:flex; justify-content:space-between; align-items:center; gap:1rem; cursor:pointer; list-style:none; padding:1.25rem 0; font-size:.9375rem; font-weight:650; }
.sud-definition>p { color:var(--sage); font-size:.9375rem; padding-bottom:1.25rem; }
.sud-fit .sud-inline-link>span,.sud-session .sud-inline-link>span { color:var(--gold); }
.sud-proof { border-bottom:1px solid var(--line); }
.sud-proof-copy { border-left:2px solid var(--gold); padding-left:2rem; }
.sud-client-name { color:var(--mid); font-size:.875rem; font-weight:650; }
.sud-proof-copy h3 { font-size:1.75rem; line-height:1.3; letter-spacing:-.025em; margin:1rem 0; }
.sud-proof-copy>p:not(.sud-client-name) { font-size:1.0625rem; line-height:1.7; }
.sud-file-type { font-size:.75rem; font-weight:400; }
.sud-faq-list details { border-top:1px solid var(--line); }
.sud-faq-list details:last-child { border-bottom:1px solid var(--line); }
.sud-faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.5rem 0; list-style:none; font-size:1.125rem; line-height:1.5; font-weight:650; cursor:pointer; }
.sud-faq-list .expand-icon,.sud-definition .expand-icon { flex:none; }
.sud-faq-list summary::-webkit-details-marker,.sud-definition summary::-webkit-details-marker { display:none; }
.sud-faq-list details>p { font-size:1rem; line-height:1.7; padding-bottom:1.5rem; }
.sud-session .session-copy h2 { margin-top:1.25rem; }
@media(max-width:1000px) {
  .sud-hero-grid { gap:2rem; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }
  .sud-blueprint-preview { padding:1.75rem; }
  .sud-text-link { margin-left:0; display:flex; width:max-content; }
  .sud-two-column { gap:2.5rem; }
  .sud-output-grid article { padding:1.5rem; }
  .sud-team-list article { gap:1rem; }
  .sud-team-list img { width:72px; height:72px; }
}
@media(max-width:760px) {
  .sud-hero-grid,.sud-two-column,.sud-session .session-grid { grid-template-columns:1fr; }
  .sud-hero h1 { font-size:clamp(2.4rem,7vw,3.5rem); }
  .sud-hero-copy>p.sud-lead { font-size:1.125rem; }
  .sud-section-copy h2 { font-size:2rem; }
  .sud-proof-copy { padding-left:1.5rem; }
}
@media(max-width:650px) {
  .sud-output-grid { grid-template-columns:1fr; gap:1rem; margin-top:2rem; }
  .sud-output-grid h3 { font-size:1.375rem; }
  .sud-hero .conversation-action { width:100%; }
  .sud-section-copy>p:not(.eyebrow),.sud-output-grid p { font-size:1rem; }
}

@media(max-width:1000px) {
  .audience-panel { padding:1.5rem; }
  .about-grid { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:2rem; }
  .founder-portrait>img { aspect-ratio:.8; }
  .principal-track { grid-auto-columns:calc((100% - 1rem)/2); }
}
@media(max-width:760px) {
  .about-grid { grid-template-columns:1fr; }
  .founder-portrait { max-width:500px; }
  .founder-portrait>img { aspect-ratio:1.4; }
  .focus-grid { gap:2rem; }
  .page-conversation .shell { display:block; }
  .page-conversation .button { margin-top:1.75rem; }
  .about-copy p { font-size:1rem; }
}
@media(max-width:650px) {
  html { scroll-padding-top:0; }
  :where(section, [id]) { scroll-margin-top:8rem; }
  #hero.home-hero { padding-block:36px 40px; }
  .home-intro h1 { font-size:clamp(2rem,7.5vw,2.75rem); max-width:24ch; }
  .home-intro>p { font-size:1.0625rem; margin-top:1.25rem; }
  .audience-columns { grid-template-columns:1fr; gap:1rem; margin-top:2rem; }
  .audience-columns h2 { font-size:1.875rem; }
  .audience-panel .audience-summary { font-size:1rem; }
  .focus-accordion summary { font-size:.9375rem; padding-block:.9375rem; }
  .principal-track { grid-auto-columns:90%; }
  .principal-track .principal-card { min-height:158px; padding:1rem; }
  .focus-grid { grid-template-columns:1fr; }
  .request-card>.form-heading { grid-template-columns:minmax(0,1fr) auto; gap:.75rem; }
  .request-card>.form-heading>h3 { font-size:1.375rem; }
  .request-card>.form-heading>#step-count { max-width:5rem; white-space:normal; text-align:right; }
  .footer-inner { grid-template-columns:1fr; gap:1rem; }
  .footer-inner>p { grid-row:auto; }
  .footer-inner>div { flex-wrap:wrap; }
}

/* The audience choices share equal space; the active route is explicit. */
.audience-header { box-shadow:0 3px 18px #0a3b3205; }
.audience-header .header-inner { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; height:88px; gap:1.5rem; }
.audience-header .brand { width:180px; }
.audience-header #main-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) auto; position:static; justify-self:end; align-items:stretch; gap:.375rem; width:100%; max-width:36rem; margin:0; padding:0; border:0; background:none; box-shadow:none; }
.audience-header #main-nav>a:not(.button) { display:flex; align-items:center; justify-content:center; position:relative; min-width:0; min-height:46px; padding:.625rem .75rem; font-size:.875rem; font-weight:600; line-height:1.35; color:#46645a; white-space:normal; text-align:center; border-radius:6px; text-decoration:none; }
.audience-header #main-nav>a:nth-child(-n+2) { background:#e5f0eb80; box-shadow:inset 0 0 0 1px var(--line); }
.audience-header #main-nav>a:hover { background:var(--sage); color:var(--green); }
.audience-header #main-nav>a:nth-child(-n+2)[aria-current=page] { background:var(--green); color:var(--paper); font-weight:750; box-shadow:inset 0 -3px 0 var(--gold); }
.audience-header #main-nav>a[href="/about"][aria-current=page] { color:var(--green); font-weight:750; text-decoration:underline; text-decoration-color:#99722c; text-underline-offset:7px; text-decoration-thickness:2px; }
.audience-header #main-nav>a:focus-visible { outline:2px solid #99722c; outline-offset:3px; }
.audience-header .header-conversation { margin:0; font-size:.875rem; }
.service-actions { display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; margin-top:2rem; }
.enterprise-page .service-hero h1 { max-width:23ch; }
.enterprise-process { background:var(--sage); }
.enterprise-process-heading { max-width:52rem; }
.enterprise-process-heading>p { margin-top:1.25rem; }
.enterprise-phases { list-style:none; padding:0; margin:2.75rem 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.25rem; }
.enterprise-phases>li { border-top:2px solid #a6bfb1; padding-top:1.5rem; }
.enterprise-phases h3 { font-size:1.5rem; line-height:1.3; margin:1rem 0; }
.enterprise-phases p,.enterprise-phases li { font-size:1rem; line-height:1.65; }
.enterprise-phases p.eyebrow { font-size:.8125rem; }
.enterprise-phases ul { padding-left:1.15rem; margin:1rem 0 0; }
.enterprise-phases ul li { margin-top:.75rem; color:var(--muted); }
.enterprise-phases .phase-note { font-size:.875rem; margin-top:1.5rem; }
.enterprise-page .service-focus h2 { font-size:clamp(2rem,3.7vw,3.25rem); }
.enterprise-page .focus-grid h3 { font-size:1.375rem; }
.footer-inner>p,.footer-inner>div { font-size:.875rem; }
/* Two rows keep the audience labels readable before the header gets tight. */
@media(max-width:1100px) {
  :where(section,[id]) { scroll-margin-top:10rem; }
  .audience-header .header-inner { grid-template-columns:1fr auto; height:auto; padding-block:12px; gap:10px 12px; }
  .audience-header .brand { grid-area:1/1; width:155px; }
  .audience-header #main-nav { grid-area:2/1/3/3; width:100%; max-width:none; justify-self:stretch; }
  .audience-header .header-conversation { grid-area:1/2; justify-self:end; min-width:0; padding:10px 14px; gap:12px; max-width:235px; white-space:normal; }
}
@media(max-width:950px) {
  .enterprise-phases { grid-template-columns:1fr; gap:2rem; }
  .enterprise-phases>li { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1fr); gap:0 2rem; }
  .enterprise-phases>li>p.eyebrow,.enterprise-phases>li>h3 { grid-column:1; }
  .enterprise-phases>li>p:not(.eyebrow),.enterprise-phases>li>ul { grid-column:2; }
  .enterprise-phases>li>p:not(.eyebrow) { grid-row:1/3; }
  .enterprise-phases>li>p.phase-note { grid-column:1/-1; grid-row:auto; }
}
@media(max-width:760px) {
  :where(section,[id]) { scroll-margin-top:10rem; }
  .audience-header .brand { width:145px; }
  .audience-header #main-nav>a:not(.button) { padding:.625rem .5rem; font-size:.875rem; }
  .audience-header .header-conversation { padding:10px 12px; gap:10px; max-width:205px; }
  .service-actions .button { font-size:1rem; }
}
@media(max-width:500px) {
  .audience-header .brand { width:120px; }
  .audience-header .header-conversation { font-size:.875rem; max-width:180px; }
  .enterprise-phases>li { display:block; }
  .service-actions { align-items:stretch; flex-direction:column; }
  .service-actions .ac-text-link { align-self:flex-start; }
}
@media(max-width:360px) {
  .audience-header .brand { width:106px; }
  .audience-header .header-conversation { max-width:150px; white-space:normal; }
}
