/* Colours drawn from the roof, walls, trees and path in the TPP logo. */
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400 600;font-display:swap;src:url('/assets/fonts/hanken-normal.woff2') format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400 500;font-display:swap;src:url('/assets/fonts/newsreader-normal.woff2') format('woff2')}
:root{--brand-forest:#35452b;--brand-moss:#6e7e3d;--brand-sage:#d9dfc3;--brand-gold:#c2a55a;--brand-wheat:#ecdbab;--brand-clay:#bf7f57;--brand-peach:#efd2bb;--brand-sand:#efe3c8;--brand-cream:#faf7ef;--brand-brown:#70422d}
:where(a,button,summary):focus-visible{outline:3px solid var(--brand-brown);outline-offset:5px}
/* A cut corner and a rising colour fill make primary actions recognisable. */
.btn,.home-page .header-conversation,.home-page .service-action{position:relative;isolation:isolate;overflow:hidden;border-radius:2px 18px 2px 2px;min-height:48px;border:0;background:var(--brand-forest);color:#fff;padding:14px 24px;box-shadow:4px 4px 0 var(--brand-gold);transition:box-shadow .3s,background .3s,transform .3s,color .3s}
.btn::before,.home-page .service-action::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--brand-brown);transform:translateY(102%);transition:transform .45s cubic-bezier(.22,1,.36,1)}
.btn:hover,.btn:focus-visible,.home-page .header-conversation:hover,.home-page .service:hover .service-action,.home-page .service:focus-visible .service-action{color:#fff;background:var(--brand-forest);box-shadow:6px 6px 0 var(--brand-clay);transform:translate(-2px,-2px)}
.btn:hover::before,.btn:focus-visible::before,.home-page .service:hover .service-action::before,.home-page .service:focus-visible .service-action::before{transform:none}
.btn:active,.home-page .service:active .service-action{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--brand-gold)}
.btn-ghost{background:var(--brand-sand);color:var(--brand-forest);box-shadow:3px 3px 0 var(--brand-clay)}
.arrow::after{content:'';width:22px;height:1px;background:currentColor;transition:width .3s}.arrow:hover::after{width:34px}
/* Homepage colour sequence preserves the existing pinned stages. */
.home-page .practice-stage{background:var(--brand-cream)}
.home-page .practice-stage .section-note h2{color:var(--brand-brown)}
.home-page .practice-stage .practice-signature{color:var(--brand-brown)}
.home-page .expertise-stage{background:var(--brand-sand)}
.home-page .expertise .service:nth-child(n){background:var(--card-colour,var(--brand-sage));color:var(--brand-forest)}
.home-page .services>li:nth-child(1){--card-colour:var(--brand-sage)}
.home-page .services>li:nth-child(2){--card-colour:var(--brand-wheat)}
.home-page .services>li:nth-child(3){--card-colour:var(--brand-peach)}
.home-page .services>li:nth-child(4){--card-colour:#e5e6d8}
.home-page .service::before{background:transparent}
.home-page .service p{color:#3e4738}
.home-page .service-action{font-size:14px;box-shadow:4px 4px 0 #fff8}
.home-page .service-action-rule{display:none}
.home-page .service-action-note{color:var(--brand-brown)}
.home-page .header .header-conversation{background:var(--brand-wheat);color:var(--brand-forest);border:0;box-shadow:none;padding:13px 22px;min-height:48px}
.home-page .header-arrow{display:none}
.home-page .header .header-conversation:hover{background:var(--brand-gold);color:var(--brand-forest);transform:none}
.home-page .arrival.is-ready h1 em .hero-word{color:var(--brand-wheat)}
.home-page .approach-stage{background:var(--brand-forest);color:var(--brand-cream)}
.home-page .approach-heading h2,.home-page .approach-copy h3,.home-page .approach .dimension-name{color:var(--brand-cream)}
.home-page .approach-heading .eyebrow,.home-page .approach-heading h2>span,.home-page .approach .dimension-subtitle{color:var(--brand-wheat)}
.home-page .approach-copy>p:not(.eyebrow){color:#e1e5d4}
.home-page .approach .dimensions,.home-page .approach .dimensions li{border-color:#d9dfc340}
.home-page .approach .dimension-detail p,.home-page .approach .dimension-plus{color:var(--brand-wheat)}
.home-page .approach .dimension-toggle[aria-expanded=true] .dimension-name{color:var(--brand-wheat)}
.home-page .approach .aya-link{color:var(--brand-cream);border-color:var(--brand-gold);border-width:0 0 1px;padding-inline:0;gap:28px}
.home-page .approach .aya-link:hover{color:var(--brand-wheat)}
.home-page .approach :focus-visible{outline-color:var(--brand-wheat)}
.home-page .ownership{background:var(--brand-peach)}
.home-page .ownership h2{color:var(--brand-brown)}
.home-page .ownership p{color:#503c31}
.home-page .work-link{border-bottom:1px solid var(--brand-brown);padding:12px 0;color:var(--brand-brown)}
.home-page .work-arrow{display:none}
.home-page .conversation{background:var(--brand-wheat);width:100%;max-width:none}
.home-page .conversation h2{color:var(--brand-forest)}
.home-page .conversation .invitation-action{color:var(--brand-forest)}
.home-page .invitation-arrow{background:var(--brand-forest);color:var(--brand-wheat);border:0;border-radius:2px 22px 2px 2px}
.home-page .footer{background:var(--brand-forest);color:var(--brand-cream)}
.home-page .footer a,.home-page .footer-brand,.home-page .footer-navigation p{color:var(--brand-cream)}
.home-page .footer-brand small,.home-page .footer-bottom,.home-page .footer-top>p{color:var(--brand-wheat)}
/* Interior pages share typography but have a colour tied to their subject. */
.interior-page{--sans:'Hanken Grotesk',Arial,sans-serif;--serif:'Newsreader',Georgia,serif;--wrap:1360px;--gutter:clamp(24px,5vw,72px);--page-colour:var(--brand-sand);--page-accent:var(--brand-brown);background:var(--brand-cream);font-size:17px}
.interior-page[data-section=expertise]{--page-colour:var(--brand-wheat)}
.interior-page[data-section=approach]{--page-colour:var(--brand-sage);--page-accent:var(--brand-forest)}
.interior-page[data-section=experience]{--page-colour:var(--brand-peach)}
.interior-page[data-section=about]{--page-colour:var(--brand-sand)}
.interior-page[data-section=connect]{--page-colour:var(--brand-wheat)}
.interior-page .site-header{background:var(--brand-cream);border-bottom:1px solid #35452b20}
.interior-page .site-header .wrap{min-height:90px}
.interior-page .header-cta{font-size:13px;padding:12px 18px}
.interior-page .nav a,.interior-page .nav .nav-top{font-size:14px;padding:10px}
.interior-page .page-head{background:var(--page-colour);padding-block:clamp(50px,7vw,100px);border-radius:0 0 48px 0}
.interior-page .page-head .wrap{display:block}
.interior-page .page-head .wrap>div{display:grid;grid-template-columns:1.25fr 1fr;gap:30px 8%;align-items:end}
.interior-page .crumbs{grid-column:1/-1;font-size:13px;margin:0 0 20px;color:var(--page-accent)}
.interior-page .crumbs li+li::before{color:var(--page-accent)}
.interior-page .page-head h1{font-size:clamp(48px,6.4vw,90px);line-height:1.02;letter-spacing:-.035em;color:var(--page-accent);max-width:17ch}
.interior-page .page-head .lead{font:400 clamp(21px,2vw,28px)/1.45 var(--serif);color:#3d4234;margin:0;max-width:36ch}
.interior-page .case-meta{grid-column:1/-1;margin:0}
.interior-page .section{padding-block:clamp(60px,7vw,100px)}
.interior-page .marker{font:500 12px/1.5 var(--sans);text-transform:uppercase;letter-spacing:.12em;color:var(--page-accent)}
.interior-page .rooms{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.interior-page .room{display:flex;border-radius:4px 36px 4px 4px;min-height:380px;padding:40px;background:var(--brand-sage)}
.interior-page .rooms>li:nth-child(2) .room{background:var(--brand-wheat)}
.interior-page .rooms>li:nth-child(3) .room{background:var(--brand-peach)}
.interior-page .rooms>li:nth-child(4) .room{background:var(--brand-sand)}
.interior-page .room h3{font-size:clamp(30px,3vw,44px);margin-bottom:22px;max-width:20ch}
.interior-page .room p{font-size:17px;max-width:42ch;margin-bottom:40px;color:#3e4738}
.interior-page .room .go{display:inline-flex;align-self:start;border-radius:0;width:auto;height:auto;min-height:48px;padding:10px 0;border-bottom:2px solid var(--page-accent);background:none;color:var(--page-accent);font-size:14px}
.interior-page .room:hover .go{background:none;color:var(--page-accent);transform:translateX(6px)}
.interior-page .flow{max-width:1060px}
.interior-page .flow>p{font-size:19px;line-height:1.8;max-width:68ch}
.interior-page .flow>h2{font-size:clamp(30px,3.3vw,44px);color:var(--page-accent)}
.interior-page .payoff{background:var(--page-colour);padding:32px 36px;border:0;border-radius:0 28px 0 0}
.interior-page .payoff p{font-size:26px;line-height:1.4}
.interior-page .block{display:grid;grid-template-columns:.7fr 1.3fr;gap:9%;max-width:none;padding-block:32px 64px;border-top:1px solid #35452b30}
.interior-page .block h2{font-size:clamp(28px,3.5vw,44px);color:var(--page-accent)}
.interior-page .block .body{max-width:64ch}
.interior-page .belief{border-top:3px solid var(--brand-gold)}
.interior-page .belief:nth-child(3n+2){border-color:var(--brand-clay)}
.interior-page .belief:nth-child(3n){border-color:var(--brand-moss)}
.interior-page .case-card{border-radius:2px 30px 2px 2px;border:0;background:var(--brand-sand);padding:36px}
.interior-page .cases>li:nth-child(3n+2) .case-card{background:var(--brand-peach)}
.interior-page .cases>li:nth-child(3n) .case-card{background:var(--brand-sage)}
.interior-page .case-card h2,.interior-page .case-card h3{font-size:clamp(28px,2.7vw,38px)}
.interior-page .impact{background:var(--brand-forest);border-radius:0 32px 0 0;max-width:none}
.interior-page .walk::before{display:none}
.interior-page .stop{display:block;padding:36px 40px;margin-block:18px;background:var(--brand-sage);border-radius:0 28px 0 0}
.interior-page .stop:nth-child(2){background:var(--brand-wheat)}
.interior-page .stop:nth-child(3){background:var(--brand-peach)}
.interior-page .stop>div{display:grid;grid-template-columns:.8fr 1.2fr;column-gap:7%}
.interior-page .stop h3{font-size:38px;grid-column:1}
.interior-page .stop .sub{grid-column:1;font-size:18px}
.interior-page .stop>div>p:not(.sub){grid-column:2;grid-row:1/3}
.interior-page .stop .qs{grid-column:2}
.interior-page .aya-perspectives{display:grid;grid-template-columns:1fr 1fr;gap:8%}
.interior-page .aya-perspectives .lead{font-size:23px;margin-top:26px}
.perspective-list details{padding:22px 0;border-bottom:1px solid var(--brand-moss)}
.perspective-list summary{cursor:pointer;font:400 30px/1.3 var(--serif);color:var(--brand-forest);min-height:44px}
.perspective-list p{margin:20px 0 0;max-width:48ch}
.interior-page .onward{padding:clamp(64px,8vw,110px) 0;background:var(--brand-wheat)}
.interior-page .onward .ask{max-width:none;display:grid;grid-template-columns:1.2fr 1fr;column-gap:10%;align-items:center}
.interior-page .onward .marker{grid-column:1/-1}
.interior-page .onward h2{font-size:clamp(40px,5.6vw,76px);max-width:17ch;color:var(--brand-forest)}
.interior-page .onward .actions{justify-self:end;margin:0}
.interior-page .next-room{border-color:var(--brand-clay)}
.interior-page .person-initials{display:grid;place-items:center;aspect-ratio:1.15;background:var(--brand-sage);color:var(--brand-forest);font:400 110px/1 var(--serif);padding-bottom:50px}
.interior-page .person figcaption{background:var(--brand-forest);padding:24px}
.interior-page .contact-card{background:var(--brand-sage);border-radius:0 30px 0 0;position:sticky;top:120px}
.interior-page .field input,.interior-page .field textarea{border-radius:2px;border-color:#a9ac97;background:#fffdf7}
.interior-page .checks label{border-radius:2px;background:var(--brand-sand);border-color:transparent}
.interior-page .checks label:has(input:checked){background:var(--brand-sage);border-color:var(--brand-forest)}
.interior-page .site-footer{background:var(--brand-forest)}
@media(max-width:1100px){.interior-page .brand span{font-size:21px}.interior-page .site-header .wrap{gap:16px}.interior-page .nav a,.interior-page .nav .nav-top{padding-inline:7px}}
@media(max-width:760px){
 .interior-page .page-head .wrap>div,.interior-page .block,.interior-page .aya-perspectives,.interior-page .onward .ask{grid-template-columns:1fr;gap:24px}
 .interior-page .page-head{border-radius:0 0 28px 0}
 .interior-page .page-head h1{font-size:46px;overflow-wrap:break-word}
 .interior-page .page-head .lead{font-size:22px}
 .interior-page .crumbs{margin:0;font-size:12px}
 .interior-page .rooms{grid-template-columns:1fr}
 .interior-page .room{min-height:300px;padding:28px}
 .interior-page .room h3{font-size:32px}
 .interior-page .room p{font-size:16px}
 .interior-page .stop{padding:28px}
 .interior-page .stop>div{display:block}
 .interior-page .stop h3{font-size:32px}
 .interior-page .onward .actions{justify-self:start}
 .interior-page .onward h2{font-size:44px}
 .interior-page .payoff{padding:26px}.interior-page .payoff p{font-size:23px}
 .interior-page .contact-card{position:static}
 .home-page .service-action{min-height:44px;padding:9px 16px;font-size:12px;box-shadow:3px 3px 0 #fff8}
}
@media(max-height:500px) and (min-width:701px){.home-page .service-action{min-height:44px;padding:8px 14px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.btn,.btn::before,.home-page .service-action,.home-page .service-action::before{transition:none;transform:none!important}}

/* One colour family per page, with neutral surfaces and consistent actions. */
.home-page{--page-tone:#35452b;--page-light:#e5e9da;--page-surface:#f6f7f2}
.interior-page{--page-tone:#35452b;--page-light:#e5e9da;--page-surface:#f6f7f2}
.interior-page[data-section=expertise]{--page-tone:#66501f;--page-light:#eee3c4;--page-surface:#faf8f1}
.interior-page[data-section=approach]{--page-tone:#435339;--page-light:#dfe5d6;--page-surface:#f5f7f2}
.interior-page[data-section=experience]{--page-tone:#79462e;--page-light:#eedbce;--page-surface:#fbf6f2}
.interior-page[data-section=about]{--page-tone:#56533f;--page-light:#e7e4d8;--page-surface:#f8f7f2}
.interior-page[data-section=connect]{--page-tone:#665b32;--page-light:#ece6d4;--page-surface:#faf8f2}
.interior-page{--page-colour:var(--page-light);--page-accent:var(--page-tone);background:var(--page-surface)}
.interior-page .site-header{background:var(--page-surface)}
.interior-page .page-head,.interior-page .payoff,.interior-page .onward,.interior-page .contact-card,.interior-page .bg-path,.interior-page .bg-sky{background:var(--page-light)}
.interior-page .bg-paper{background:var(--page-surface)}
.interior-page .rooms>li:nth-child(n) .room,.interior-page .cases>li:nth-child(n) .case-card,.interior-page .stop:nth-child(n){background:var(--page-light)}
.interior-page .belief:nth-child(n){border-color:var(--page-tone)}
.interior-page .impact,.interior-page .site-footer,.interior-page .person figcaption{background:var(--page-tone)}
.interior-page .person-initials,.interior-page .checks label{background:var(--page-light);color:var(--page-tone)}
.interior-page .checks label:has(input:checked){background:var(--page-light);border-color:var(--page-tone)}
.interior-page .onward h2,.interior-page .aya-perspectives summary,.interior-page .stop .sub,.interior-page .stop .qs summary{color:var(--page-tone)}
.interior-page .next-room{border-color:var(--page-tone)}
.interior-page .btn,.home-page .service-action{background:var(--page-tone);color:#fff;box-shadow:3px 3px 0 #0002}
.interior-page .btn::before,.home-page .service-action::before{background:#0002}
.interior-page .btn:hover,.interior-page .btn:focus-visible,.home-page .service:hover .service-action,.home-page .service:focus-visible .service-action{background:var(--page-tone);box-shadow:5px 5px 0 #0002;color:#fff}
.interior-page .btn-ghost{background:var(--page-light);color:var(--page-tone);box-shadow:none;border:1px solid var(--page-tone)}
.home-page .practice-stage,.home-page .expertise-stage,.home-page .approach-stage,.home-page .ownership,.home-page .conversation{background:var(--page-surface);color:var(--page-tone)}
.home-page .expertise .services>li:nth-child(n){--card-colour:var(--page-light)}
.home-page .practice-stage .section-note h2,.home-page .practice-stage .practice-signature,.home-page .ownership h2,.home-page .approach-heading h2,.home-page .approach-copy h3,.home-page .approach .dimension-name,.home-page .approach .dimension-toggle[aria-expanded=true] .dimension-name,.home-page .approach .dimension-detail p{color:var(--page-tone)}
.home-page .approach-heading .eyebrow,.home-page .approach-heading h2>span,.home-page .approach .dimension-subtitle,.home-page .approach .dimension-plus,.home-page .service-action-note{color:#526049}
.home-page .approach-copy>p:not(.eyebrow),.home-page .ownership p{color:#454d3f}
.home-page .approach .dimensions,.home-page .approach .dimensions li{border-color:#35452b35}
.home-page .approach .aya-link,.home-page .work-link{color:var(--page-tone);border-color:var(--page-tone)}
.home-page .approach .aya-link:hover{color:#526049}
.home-page .approach :focus-visible{outline-color:var(--page-tone)}
.home-page .header .header-conversation,.home-page .header .header-conversation:hover{background:var(--page-light);color:var(--page-tone)}
.home-page .arrival.is-ready h1 em .hero-word{color:var(--brand-sage)}
.home-page .footer{background:var(--page-tone)}
.home-page .footer-brand small,.home-page .footer-bottom,.home-page .footer-top>p{color:var(--page-light)}
.home-page .invitation-arrow{background:var(--page-tone);color:var(--page-light)}
.interior-page .site-footer,.interior-page .site-footer a,.interior-page .footer-brand em,.interior-page .footer-bottom{color:#f5f4ed}
.interior-page{--olive-900:var(--page-tone);--olive-800:var(--page-tone);--olive-700:var(--page-tone);--olive-600:var(--page-tone);--olive-500:var(--page-tone);--olive-400:var(--page-tone);--olive-200:var(--page-light);--olive-100:var(--page-light);--olive-50:var(--page-light)}
.interior-page :where(a,button,summary):focus-visible{outline-color:var(--page-tone)}
.home-page :where(a,button,summary):focus-visible{outline-color:var(--page-tone)}
.home-page .footer :focus-visible{outline-color:var(--page-light)}

/* Neutral until read; the green ink and wash follow scroll position. */
.home-page .practice-word{color:var(--practice-ink,#777);transition:color .3s}
/* Two viewport-paced chapters, each with a distinct drop-in reveal. */
.motion-enabled .home-page .expertise{height:200svh}
.motion-enabled .home-page .expertise .services>li{clip-path:inset(0 0 100% 0);transform:translateY(-38px);transition:opacity .4s ease,transform .8s cubic-bezier(.22,1,.36,1),clip-path .8s cubic-bezier(.22,1,.36,1),visibility 0s .8s}
.motion-enabled .home-page .expertise .services>li.is-active{clip-path:inset(-8px -8px -8px -8px);opacity:1;transform:none;visibility:visible;transition-delay:0s}
.motion-enabled .home-page .expertise .services>li.is-active:nth-child(even){transition-delay:.14s,.14s,.14s,0s}
/* A small stack of tabs opens into a single invitation. */
.home-page .expertise .offer-ticket{position:relative;isolation:isolate;padding:0;margin:0 5px 5px 0;border:0;min-height:54px;min-width:172px;perspective:500px}
.offer-ticket::before,.offer-ticket::after{content:'';position:absolute;inset:0;border:1px solid #35452b75;background:var(--page-light);border-radius:2px 16px 2px 2px;z-index:-1;transform-origin:bottom left;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.offer-ticket::before{transform:translate(4px,4px)}
.offer-ticket::after{transform:translate(8px,8px)}
.offer-ticket-face{display:flex;flex-direction:column;justify-content:center;gap:3px;width:100%;padding:10px 22px;min-height:54px;background:var(--page-tone);color:white;border-radius:2px 16px 2px 2px;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.offer-ticket-note{font-size:10px;line-height:1.2;letter-spacing:.03em;opacity:.8}
.offer-ticket:hover::before,.offer-ticket:focus-visible::before{transform:translate(6px,6px) rotate(5deg)}
.offer-ticket:hover::after,.offer-ticket:focus-visible::after{transform:translate(10px,10px) rotate(10deg)}
.offer-ticket:hover .offer-ticket-face,.offer-ticket:focus-visible .offer-ticket-face{transform:translateY(-4px) rotate(-3deg)}
.offer-ticket:active .offer-ticket-face{transform:translate(3px,3px)}
@media(max-width:700px){.home-page .expertise .offer-ticket{min-width:114px;min-height:46px;font-size:12px;flex-shrink:0}.offer-ticket-face{min-height:46px;padding:8px 12px}.offer-ticket-note{font-size:9px}.home-page .expertise .section-heading h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){.home-page .practice-word{background:none}.offer-ticket::before,.offer-ticket::after,.offer-ticket-face{transition:none;transform:none!important}.motion-enabled .home-page .expertise{height:auto}.motion-enabled .home-page .expertise .services>li{clip-path:none;transform:none;opacity:1;visibility:visible;transition:none}}
/* Re-entering a section repeats a calm, staggered reveal. */
.js .interior-page .reveal{transform:translateY(48px);transition-duration:1s;transition-timing-function:cubic-bezier(.22,1,.36,1)}
.js .interior-page .reveal.is-in{transform:none}
.interior-page .btn{overflow:hidden}
@media(prefers-reduced-motion:reduce){.js .interior-page .reveal{transform:none!important;opacity:1!important;transition:none!important}}

/* Services: cards sized to their content and centred in the stage, not stretched to fill it. */
.motion-enabled .home-page .expertise .services{flex:0 0 auto;margin-block:auto;grid-template-rows:auto}
.home-page .expertise .service,.motion-enabled .home-page .expertise .service{height:auto;min-height:clamp(220px,30svh,290px);padding:30px 32px}
.home-page .expertise .service h3{font-size:clamp(28px,2.5vw,38px)}
.home-page .expertise .service p{margin:14px 0 26px}
@media(max-width:700px){.home-page .expertise .service,.motion-enabled .home-page .expertise .service{min-height:0;padding:20px 22px}}

/* The close of the page stacks: "Change is stronger" rises as its own card and holds,
   then the invitation slides up over it and the footer flows on. */
.home-page .ownership{background:var(--page-light);border-radius:28px 28px 0 0;box-shadow:0 -26px 60px -24px #2f3a1c55;transform-origin:50% 0}
.motion-enabled .home-page .ownership{position:sticky;top:100px;height:calc(100svh - 100px);display:flex;align-items:center;justify-content:center;padding-block:40px}
.home-page .conversation{position:relative;z-index:5;border-radius:28px 28px 0 0;box-shadow:0 -26px 60px -24px #2f3a1c55}
.motion-enabled .home-page .expertise-stage,.motion-enabled .home-page .approach-stage{transform-origin:50% 0}
@media(max-width:1050px){.motion-enabled .home-page .ownership{top:78px;height:calc(100svh - 78px)}}
@media(max-width:700px){.home-page .ownership,.home-page .conversation{border-radius:22px 22px 0 0}}
@media(prefers-reduced-motion:reduce){.home-page .ownership{position:relative;height:auto;transform:none!important;filter:none!important}}

/* Service pages lead back to the overview instead of a breadcrumb trail. */
.interior-page .back-link{grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;gap:10px;min-height:44px;margin:0 0 14px;font-size:14px;font-weight:600;color:var(--page-accent);text-decoration:none}
.interior-page .back-link i{font-style:normal;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.interior-page .back-link:hover i,.interior-page .back-link:focus-visible i{transform:translateX(-5px)}

/* ---------- shared interactions (every page) ---------- */
:root{--x-ink:#1f3d26;--x-gold:#e0a82e;--x-cream:#faf7ef;--x-ease:cubic-bezier(.22,1,.36,1);--x-serif:'Fraunces',Georgia,serif}

/* labels roll up to a fresh copy of themselves */
.roll{display:inline-grid;overflow:hidden;vertical-align:top;line-height:1.3}
.roll>span{grid-area:1/1;transition:transform .5s var(--x-ease)}
.roll>span+span{transform:translateY(105%)}
a:hover .roll>span:first-child,a:focus-visible .roll>span:first-child,button:hover .roll>span:first-child,button:focus-visible .roll>span:first-child{transform:translateY(-105%)}
a:hover .roll>span+span,a:focus-visible .roll>span+span,button:hover .roll>span+span,button:focus-visible .roll>span+span{transform:none}

/* one header button everywhere: forest with a gold edge, an arrow that turns, a press that gives */
.interior-page .nav .mobile-cta .btn{display:inline-flex;}
.interior-page .site-header .header-cta,.interior-page .nav .mobile-cta .btn{align-items:center;gap:12px;background:var(--x-ink);color:var(--x-cream);box-shadow:3px 3px 0 var(--x-gold)}
.interior-page .site-header .header-cta:hover,.interior-page .site-header .header-cta:focus-visible,.interior-page .nav .mobile-cta .btn:hover{background:var(--x-ink);color:var(--x-cream);box-shadow:6px 6px 0 var(--x-gold)}
.cta-arrow{display:inline-block;font-style:normal;transition:transform .5s var(--x-ease)}
.header-cta:hover .cta-arrow,.header-cta:focus-visible .cta-arrow{transform:rotate(-45deg)}
.btn:active,.ct-send:active,.cb-turn:active{scale:.96}

/* the email address sits behind an envelope */
.mail-icon{display:inline-flex;align-items:center;gap:0;color:inherit;text-decoration:none;min-height:48px}
.mail-icon:hover,.mail-icon:focus-visible{color:inherit}
.mail-icon-disc{display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;border-radius:50%;border:1px solid currentColor;transition:background .35s,color .35s,border-color .35s}
.mail-icon-disc svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;transition:transform .5s var(--x-ease)}
.mail-icon-text{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;font:400 clamp(17px,1.4vw,21px)/1 var(--x-serif);transition:max-width .7s var(--x-ease),opacity .4s,margin .7s var(--x-ease)}
.mail-icon:hover .mail-icon-text,.mail-icon:focus-visible .mail-icon-text{max-width:22em;opacity:1;margin-left:16px}
.mail-icon:hover .mail-icon-disc,.mail-icon:focus-visible .mail-icon-disc{background:var(--x-gold);border-color:var(--x-gold);color:var(--x-ink)}
.mail-icon:hover .mail-icon-disc svg,.mail-icon:focus-visible .mail-icon-disc svg{transform:translateY(-2px) rotate(-8deg)}

/* a closing question; a gold disc follows the pointer across it and carries the way in */
.ask{position:relative;overflow:hidden;color:var(--x-cream);background:radial-gradient(90% 90% at 15% 10%,#2e5838 0%,transparent 60%),var(--x-ink)}
.ask-link{position:relative;display:block;padding:clamp(80px,14svh,170px) var(--gutter,24px);max-width:1360px;margin:0 auto;color:inherit;text-decoration:none;cursor:none}
.ask-q{display:block;max-width:16ch;font:400 clamp(46px,6.6vw,118px)/1 var(--x-serif);letter-spacing:-.045em;transition:transform .8s var(--x-ease)}
.ask-q em{font-weight:300;color:var(--x-gold)}
.ask-disc{position:absolute;left:var(--dx,72%);top:var(--dy,50%);display:grid;place-items:center;align-content:center;gap:4px;width:clamp(140px,13vw,180px);aspect-ratio:1;border-radius:50%;background:var(--x-gold);color:var(--x-ink);font:600 14px/1.25 var(--sans,'Hanken Grotesk',sans-serif);text-align:center;translate:-50% -50%;scale:.82;transition:scale .5s var(--x-ease),left .18s linear,top .18s linear;pointer-events:none}
.ask-disc span{max-width:9ch}
.ask-disc i{font-style:normal;font-size:20px;transition:transform .5s var(--x-ease)}
.ask-link:hover .ask-disc,.ask-link:focus-visible .ask-disc{scale:1}
.ask-link:hover .ask-disc i{transform:rotate(-45deg)}
.ask-link:hover .ask-q{transform:translateX(-10px)}
.ask-link:focus-visible{outline:3px solid var(--x-gold);outline-offset:-12px}
@media(min-width:1081px){.interior-page .site-header .header-cta{display:inline-flex}}
@media(hover:none),(pointer:coarse),(max-width:820px){
  .ask-link{cursor:pointer}
  .ask-disc{position:relative;left:auto!important;top:auto!important;translate:none;scale:1;margin-top:28px;width:132px}
}
.js .ask .ask-q{opacity:0;transform:translateY(30px)}
.js .ask.is-in .ask-q{opacity:1;transform:none;transition:opacity .9s,transform 1s var(--x-ease)}

/* a page's own question above its slide */
.cta-q{margin:0;max-width:24ch;font:400 clamp(26px,2.9vw,46px)/1.12 var(--x-serif);letter-spacing:-.03em;color:inherit}
.svc-cta{flex-direction:column;align-items:center;gap:clamp(20px,3.5svh,32px);text-align:center}
.wwb-cta,.aya-cta{align-items:flex-start;text-align:left}
.offer-conversation{flex-direction:column;align-items:center;gap:clamp(20px,3.5svh,32px);text-align:center}
.offer-conversation .cta-q{color:var(--x-cream)}
@media(prefers-reduced-motion:reduce){.roll>span,.ask-q,.ask-disc,.mail-icon-text{transition:none!important}.js .ask .ask-q{opacity:1;transform:none}}
