:root{--ink:#163326;--ink2:#23483a;--green:#5fbe86;--mint:#eaf5ee;--paper:#fbfcfb;--white:#fff;--line:#dfe8e2;--muted:#64746b;--max:1180px;--shadow:0 18px 55px rgba(22,51,38,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.55}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.shell{width:min(calc(100% - 40px),var(--max));margin:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;background:#fff;padding:10px;z-index:99}.site-header{position:sticky;top:0;z-index:30;background:rgba(251,252,251,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(223,232,226,.8)}.nav-wrap{height:76px;display:flex;align-items:center;justify-content:space-between}.brand img{width:290px;height:auto}.menu-button{display:none;background:none;border:0}.site-header nav{display:flex;align-items:center;gap:28px;font-size:.94rem;font-weight:650}.nav-cta{padding:12px 17px;border-radius:999px;background:var(--ink);color:#fff}.hero{padding:104px 0 52px;background:linear-gradient(180deg,#fff 0%,#f2f7f4 100%)}.hero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:70px;align-items:end}.eyebrow{margin:0 0 22px;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:750;color:var(--ink2)}h1,h2,h3{margin:0;line-height:1.03;letter-spacing:-.045em}h1{font-size:clamp(3.4rem,7vw,6.5rem);max-width:820px}.lead{font-size:clamp(1.1rem,2vw,1.35rem);max-width:720px;color:#43584d;margin:30px 0 0;line-height:1.7}.hero-actions{display:flex;gap:20px;align-items:center;margin-top:38px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;padding:15px 21px;border-radius:999px;font-weight:720}.button.primary{background:var(--green);color:#10281d}.button.secondary{border:1px solid #b8c9bf;background:#fff}.decision-panel{border-top:1px solid #aebfb5;padding-top:24px}.decision-panel p{margin:0 0 22px;color:var(--muted)}.decision-list{display:grid;gap:18px}.decision-list div{display:grid;grid-template-columns:34px 1fr;gap:10px;font-size:1.05rem}.decision-list span{font-variant-numeric:tabular-nums;color:var(--green);font-weight:760}.trust-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:72px;border:1px solid var(--line);background:var(--line)}.trust-strip span{background:#fff;padding:18px;text-align:center;font-size:.9rem;font-weight:650}.pause{padding:120px 0;background:#fff}.pause p{font-size:clamp(2.3rem,5vw,5.2rem);line-height:1.08;letter-spacing:-.05em;max-width:1000px;margin:0}.pause em{font-style:normal;color:var(--green)}.section{padding:110px 0}.section-head{display:grid;grid-template-columns:.7fr 1.3fr;gap:60px;margin-bottom:64px}.section-head h2{font-size:clamp(2.6rem,5vw,4.7rem)}.section-head p{font-size:1.16rem;color:var(--muted);max-width:620px;margin:10px 0 0}.decision-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}.decision-card{padding:34px 24px 38px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:55px 1fr;gap:18px}.decision-card:nth-child(odd){border-right:1px solid var(--line);padding-right:34px}.decision-card:nth-child(even){padding-left:34px}.decision-card .num{color:var(--green);font-weight:800}.decision-card h3{font-size:1.5rem;letter-spacing:-.025em}.decision-card p{margin:12px 0 0;color:var(--muted)}.perspective{background:var(--ink);color:#fff}.perspective .section-head p{color:#b9c8c0}.observations{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.observation{min-height:250px;padding:28px;border:1px solid rgba(255,255,255,.16);border-radius:22px;display:flex;flex-direction:column;justify-content:space-between}.observation p{font-size:1.5rem;line-height:1.25;letter-spacing:-.025em;margin:0}.observation span{font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;color:#a9c1b5}.capabilities{background:#fff}.cap-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.cap{padding:30px;border:1px solid var(--line);border-radius:20px;background:#fff}.cap h3{font-size:1.45rem}.cap ul{padding:0;margin:22px 0 0;list-style:none;display:grid;gap:12px;color:var(--muted)}.cap li{padding-top:12px;border-top:1px solid var(--line)}.framework-wrap{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;align-items:start}.framework-copy{position:sticky;top:120px}.framework-copy h2{font-size:clamp(2.8rem,5vw,4.8rem)}.framework-copy p{color:var(--muted);font-size:1.12rem}.steps{display:grid}.step{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:28px 0;border-top:1px solid var(--line)}.step:last-child{border-bottom:1px solid var(--line)}.step span{color:var(--green);font-weight:800}.step h3{font-size:1.55rem}.step p{color:var(--muted);margin:8px 0 0}.story{background:#eef4f0}.story-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}.portrait{aspect-ratio:4/5;border-radius:24px;overflow:hidden;background:linear-gradient(145deg,#d9e8df,#a7cbb5);box-shadow:var(--shadow)}.portrait img{width:100%;height:100%;object-fit:cover}.story-copy h2{font-size:clamp(2.7rem,5vw,4.8rem)}.story-copy p{font-size:1.1rem;color:var(--muted);max-width:650px}.signature{margin-top:28px}.signature strong,.signature span{display:block}.insights-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:18px}.insight{min-height:290px;padding:28px;border-radius:20px;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}.insight:first-child{background:var(--mint)}.insight h3{font-size:1.55rem}.insight small{text-transform:uppercase;letter-spacing:.11em;color:var(--muted)}.contact{background:var(--ink);color:#fff}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.contact-copy h2{font-size:clamp(3rem,5vw,5rem)}.contact-copy p{color:#b8c7bf;font-size:1.1rem}.contact-form{background:#fff;color:var(--ink);padding:30px;border-radius:24px;display:grid;gap:16px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{font-size:.85rem;font-weight:700;display:grid;gap:7px}input,select,textarea{width:100%;font:inherit;padding:13px 14px;border:1px solid #cdd9d2;border-radius:10px;background:#fff;color:var(--ink)}textarea{resize:vertical}.contact-form button{border:0;background:var(--green);color:#10281d;padding:15px 18px;border-radius:999px;font-weight:800;font-size:1rem}.form-note{font-size:.8rem!important;color:var(--muted)!important;margin:0}.site-footer{padding:50px 0;background:#10281d;color:#fff}.footer-grid{display:grid;grid-template-columns:1.5fr .6fr .6fr;gap:50px}.footer-brand img{width:285px;filter:brightness(0) invert(1)}.footer-brand p{color:#aebfb5;max-width:420px}.footer-grid small{color:#8fa79b;text-transform:uppercase;letter-spacing:.11em}.footer-grid a{display:block;margin-top:10px;color:#dce6e0}.footer-meta{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.12);margin-top:38px;padding-top:22px;color:#91a59a;font-size:.82rem}.reveal{opacity:0;transform:translateY(18px);transition:.7s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:860px){.shell{width:min(calc(100% - 30px),var(--max))}.nav-wrap{height:68px}.brand img{width:235px}.menu-button{display:block;width:42px;height:42px}.menu-button:before,.menu-button:after{content:"";display:block;width:22px;height:2px;background:var(--ink);margin:6px auto}.site-header nav{position:absolute;top:68px;left:0;right:0;background:#fff;padding:22px 20px 28px;display:none;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.hero{padding:70px 0 36px}.hero-grid,.section-head,.framework-wrap,.story-grid,.contact-grid{grid-template-columns:1fr;gap:34px}.hero-grid{align-items:start}h1{font-size:clamp(3rem,13vw,4.7rem)}.trust-strip{grid-template-columns:1fr 1fr;margin-top:44px}.pause{padding:84px 0}.section{padding:82px 0}.section-head{margin-bottom:38px}.decision-grid,.observations,.cap-list,.insights-grid{grid-template-columns:1fr}.decision-card,.decision-card:nth-child(odd),.decision-card:nth-child(even){border-right:0;padding:26px 0}.framework-copy{position:static}.story-grid{gap:36px}.portrait{max-height:560px}.field-row{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-meta{flex-direction:column}.hero-actions{align-items:stretch}.button{width:100%}.decision-panel{margin-top:18px}.observations{gap:12px}.observation{min-height:200px}.cap-list{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

/* Search clarity additions */
.cap-intro{margin:.75rem 0 1rem;max-width:34rem;}

/* Footer logo aspect-ratio safeguard */
.footer-brand img{width:220px!important;height:auto!important;max-height:none!important;object-fit:contain!important;display:block!important;}

.contact-reassurance{font-weight:600;margin-top:1.15rem;}


/* ATP conversion pathways */
.pathways{background:#f8f7f2}
.pathway-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.pathway-card{display:flex;gap:22px;min-height:310px;padding:30px;border:1px solid #dedfd8;border-radius:20px;background:#fff;color:inherit;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.pathway-card:hover{transform:translateY(-4px);box-shadow:0 18px 46px rgba(21,45,37,.10);border-color:#9caf9f}
.pathway-number{font-size:.72rem;letter-spacing:.16em;color:#8a735b;padding-top:7px}
.pathway-label{margin:0 0 18px;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:700;color:#3f6a5a}
.pathway-card h3{font-size:1.42rem;line-height:1.28;margin:0 0 32px;font-weight:520}
.pathway-link{font-weight:700;color:#2f5d4f}
.partner-strip{margin-top:20px;padding:30px 34px;border-radius:20px;background:#1f3d34;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:36px}
.partner-strip .eyebrow{color:#d6b08a;margin-bottom:8px}.partner-strip h3{font-size:1.55rem;margin:0 0 8px}.partner-strip p{max-width:760px;margin:0;color:rgba(255,255,255,.78)}
.partner-strip .button.secondary{color:#fff;border-color:rgba(255,255,255,.42);white-space:nowrap}
.partner-strip .button.secondary:hover{background:#fff;color:#1f3d34}
.page-hero{padding:150px 0 72px;background:#eef2ed}.page-hero .narrow{max-width:800px}.page-hero h1{font-size:clamp(2.8rem,6vw,5.5rem);line-height:.98;margin:.25em 0}.page-hero .lead{max-width:750px}
.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.choice-card{padding:32px;border:1px solid #dedfd8;border-radius:20px;background:#fff}.choice-card h2{font-size:1.55rem}.choice-card p{min-height:90px}.choice-card .button{margin-top:12px}
.partner-page-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start}.partner-points{display:grid;gap:14px}.partner-point{padding:22px 0;border-top:1px solid #d8dcd5}.partner-point h3{margin:0 0 5px;font-size:1.1rem}.partner-point p{margin:0}.commitment{padding:28px;border-radius:18px;background:#f3ede4;border:1px solid #e5d6c5}.commitment h3{margin-top:0}
@media(max-width:900px){.pathway-grid,.choice-grid{grid-template-columns:1fr}.pathway-card{min-height:auto}.partner-strip{align-items:flex-start;flex-direction:column}.partner-page-grid{grid-template-columns:1fr}.choice-card p{min-height:0}}

/* ATP final refinement: quieter partner CTA and compact FAQ */
.partner-strip{padding:25px 30px;gap:28px}
.partner-strip h3{font-size:1.38rem}
.partner-strip .button.secondary{
  width:auto!important;
  min-width:0;
  padding:11px 17px;
  background:transparent!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.55)!important;
  box-shadow:none!important;
  font-size:.9rem;
}
.partner-strip .button.secondary:hover,
.partner-strip .button.secondary:focus-visible{
  background:rgba(255,255,255,.1)!important;
  color:#fff!important;
  border-color:#fff!important;
}

#questions.section{padding:78px 0}
#questions .section-head{margin-bottom:34px;grid-template-columns:.8fr 1.2fr;gap:44px}
#questions .section-head h2{font-size:clamp(2.25rem,4.25vw,3.8rem);max-width:720px}
#questions .section-head p{font-size:1rem;max-width:540px}
#questions .decision-card{padding-top:24px;padding-bottom:25px;grid-template-columns:42px 1fr;gap:14px}
#questions .decision-card:nth-child(odd){padding-right:26px}
#questions .decision-card:nth-child(even){padding-left:26px}
#questions .decision-card h3{font-size:1.22rem;line-height:1.15}
#questions .decision-card p{font-size:.95rem;line-height:1.55;margin-top:8px}

.insights-section-footer{display:flex;justify-content:flex-end;margin-top:24px}
.insights-section-footer .text-link{font-weight:750;color:var(--ink2)}

@media(max-width:860px){
  .partner-strip{padding:24px}
  .partner-strip .button.secondary{width:auto!important}
  #questions.section{padding:64px 0}
  #questions .section-head{gap:22px}
  #questions .decision-card,#questions .decision-card:nth-child(odd),#questions .decision-card:nth-child(even){padding:21px 0;grid-template-columns:36px 1fr}
}


/* ATP v1 final: understated partner CTA, compact FAQ, publication navigation */
.partner-strip .button.secondary{background:transparent!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.5)!important;border-radius:0!important;padding:4px 0!important;color:#fff!important;font-size:.9rem;white-space:nowrap}
.partner-strip .button.secondary:hover,.partner-strip .button.secondary:focus-visible{background:transparent!important;border-color:#fff!important;transform:none}
.partner-strip .button.secondary::after{content:"  →";margin-left:.35rem}

#questions.section{padding:64px 0 72px}
#questions .section-head{margin-bottom:24px}
#questions .section-head h2{font-size:clamp(2rem,3.8vw,3.35rem);max-width:650px}
.faq-list{border-top:1px solid var(--line);max-width:980px;margin-left:auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;display:grid;grid-template-columns:44px 1fr 24px;gap:14px;align-items:center;padding:20px 0;cursor:pointer}
.faq-item summary::-webkit-details-marker{display:none}
.faq-num{color:var(--green);font-weight:800;font-size:.84rem}
.faq-question{font-size:1.1rem;font-weight:760;letter-spacing:-.02em}
.faq-icon{font-size:1.3rem;color:var(--muted);transition:transform .2s ease}
.faq-item[open] .faq-icon{transform:rotate(45deg)}
.faq-answer{padding:0 38px 20px 58px;max-width:760px}
.faq-answer p{margin:0;color:var(--muted);font-size:.96rem;line-height:1.6}

.insights-topics{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px}
.insights-topics a{padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.6);font-size:.82rem;font-weight:700}
.insights-topics a:hover{border-color:#9caf9f;background:#fff}
@media(max-width:860px){.faq-list{margin-left:0}.faq-item summary{grid-template-columns:34px 1fr 22px}.faq-answer{padding-left:48px}.partner-strip .button.secondary{width:auto!important}.insights-topics{margin-top:24px}}


/* ------------------------------------------------------------------
   FAILSAFE: .reveal starts at opacity:0 and is only revealed by
   launch.js via IntersectionObserver. If launch.js does not run
   (JS disabled, script blocked, or the file fails to load) every
   .reveal block stays invisible and the page renders as a header and
   footer wrapped around nothing, while still returning HTTP 200.

   The inline head script adds .atp-js, and the launch.js <script> tag
   carries an onerror that removes it again. So content is visible by
   default and only hidden once we know the animation can actually run.
   Do not remove this without replacing the guard.
   ------------------------------------------------------------------ */
html:not(.atp-js) .reveal{opacity:1!important;transform:none!important}

/* Mobile nav links were 23px tall, below the 24px minimum touch target
   in WCAG 2.5.8. Padding brings them to a comfortable tap size. */
@media(max-width:860px){
  .site-header nav a{padding:11px 0;width:100%}
  .site-header nav a.nav-cta{width:auto;padding:12px 22px;margin-top:6px}
}


/* ------------------------------------------------------------------
   Merged audience section. The old homepage described the same three
   audiences three separate times: "Choose your path", "What we help
   clarify", and "Capabilities". Those are now one section, with the
   capability detail living inside each pathway card so the same block
   both explains the work and routes to the right intake form.
   ------------------------------------------------------------------ */
.pathway-card h3{margin:0 0 16px}
.pathway-card{min-height:0}
.pathway-list{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:8px}
.pathway-list li{position:relative;padding-left:17px;font-size:.91rem;line-height:1.45;color:var(--muted)}
.pathway-list li:before{content:"";position:absolute;left:0;top:.52em;width:6px;height:6px;border-radius:50%;background:var(--green)}
.pathway-card>div{display:flex;flex-direction:column}
.pathway-card .pathway-link{margin-top:auto}


/* Partner page: single centred closing CTA. The page previously carried three
   CTAs with three different labels pointing at two destinations, which is what
   made it feel crowded. One label, used twice, in the hero and here. */
.partner-close{text-align:center}
.partner-close .lead{margin-left:auto;margin-right:auto}
.partner-close .hero-actions{justify-content:center}
.page-hero .form-note{margin-top:16px;font-size:.88rem}

/* The professions list was reusing .trust-strip, which is a bordered 4-column
   box. With 8 items it wrapped to two rows and read like a spreadsheet. This
   is a single quiet line instead: lighter, and it stops competing with the
   CTAs directly above it. */
.who-line{margin:44px 0 0;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:.94rem;line-height:1.85;max-width:660px}
.who-line span{display:block;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;font-weight:800;color:var(--ink2);margin-bottom:6px}
@media(max-width:860px){.who-line{margin-top:34px;font-size:.9rem;line-height:1.8}}


/* Homepage trust strip. Was a bordered 4-cell grid, which read as a table
   sitting under the hero. Same fix as the partner page: drop the box, keep
   a hairline rule and let the four attributes read as one quiet line.
   Only index.html uses this component. */
.trust-strip{display:flex;flex-wrap:wrap;align-items:baseline;gap:0;border:0;background:transparent;border-top:1px solid var(--line);padding-top:20px;margin-top:60px}
.trust-strip span{background:transparent;padding:0;text-align:left;font-size:.95rem;font-weight:650;color:var(--ink2)}
.trust-strip span+span::before{content:"·";margin:0 14px;color:var(--green);font-weight:800}

@media(max-width:860px){
  /* Two columns on mobile rather than a wrapped line, so a separator dot
     never orphans at the start of a row. */
  .trust-strip{display:grid;grid-template-columns:1fr 1fr;gap:11px 20px;margin-top:40px;padding-top:18px}
  .trust-strip span{font-size:.9rem}
  .trust-strip span+span::before{content:none}
}


/* ------------------------------------------------------------------
   FAQ mobile fix.

   `#questions .section-head { grid-template-columns:.8fr 1.2fr }` was
   declared with ID specificity and no media query, so it outranked the
   generic `.section-head { grid-template-columns:1fr }` inside the
   860px breakpoint. Result: on a 390px phone the heading rendered in a
   134px column beside a 200px column. The earlier mobile block only
   reset `gap`, which is why it was never caught.

   These rules carry the same ID specificity so they actually win.
   ------------------------------------------------------------------ */
@media(max-width:860px){
  #questions .section-head{grid-template-columns:1fr;gap:12px;margin-bottom:26px}
  #questions .section-head h2{font-size:clamp(1.7rem,7.2vw,2.3rem);line-height:1.12;max-width:none}
  #questions .section-head p{font-size:.95rem;max-width:none}
  #questions.section{padding:52px 0 60px}

  /* Reclaim horizontal space: the answer had 86px of padding on a 356px
     column, leaving 270px for text. */
  .faq-item summary{grid-template-columns:24px 1fr 22px;gap:10px;padding:17px 0}
  .faq-question{font-size:1rem;line-height:1.35}
  .faq-num{font-size:.78rem}
  .faq-icon{font-size:1.15rem;justify-self:end}
  .faq-answer{padding:0 2px 18px 34px}
  .faq-answer p{font-size:.94rem;line-height:1.62}
}

@media(max-width:420px){
  .faq-item summary{grid-template-columns:20px 1fr 20px;gap:8px}
  .faq-answer{padding-left:28px}
}


/* ------------------------------------------------------------------
   Anchor offset. .site-header is position:sticky and 77px tall (68px
   on mobile), so every in-page jump was landing with the target's
   heading hidden underneath it. scroll-margin-top reserves the space.

   Applies to section anchors (#capabilities, #approach, #story,
   #questions, #contact) and to the three audience cards, which have
   their own ids so the Advisors / CPAs / Firms nav links each land on
   the right card. Before this they all pointed at #capabilities, which
   on mobile meant every one of them landed on the Advisor card.
   ------------------------------------------------------------------ */
main section[id],.pathway-card[id]{scroll-margin-top:96px}
@media(max-width:860px){
  main section[id],.pathway-card[id]{scroll-margin-top:84px}
}
