/* Shared spacing roles across the public site. */
:root{--page-gutter:clamp(20px,4vw,32px);--section-space:clamp(64px,7.2vw,96px);--space-group:24px;--space-section-heading:32px}
*,*::before,*::after{box-sizing:border-box}
.wrap,.nav-bar{max-width:1180px;padding-inline:var(--page-gutter)}
.wrap{width:100%}
.page-home #about,.page-home #schedule,.page-home #contact,.page-careers .section{padding-block:var(--section-space)}
.page-home #services{padding-bottom:var(--section-space)}
.page-home .svc-head,.page-careers .section-head{margin-bottom:var(--space-section-heading)}
.page-home .svc-card{display:flex;flex-direction:column;align-items:flex-start}
.page-home .svc-top,.page-home .svc-title-row{width:100%}
.page-home .svc-link{margin-top:auto}
.page-home .careers-invite-link{min-height:48px}
.page-home .careers-invite-inner{column-gap:28px;row-gap:20px}
.page-home .flinks,.page-careers .flinks{column-gap:24px;row-gap:4px}
.page-home .flink,.page-careers .flink{display:inline-flex;align-items:center;min-height:40px;padding-block:8px}
.page-careers .benefit{padding:28px 24px}
.page-careers .team-grid{column-gap:28px;row-gap:40px}
.page-careers .team-member figcaption{padding-top:16px}
.page-careers .career-ctas{gap:12px}
.page-contact header{padding-inline:var(--page-gutter)!important}
.page-contact header>a:nth-of-type(2){white-space:nowrap}
.page-contact main{padding:clamp(28px,5vw,56px) var(--page-gutter) 48px!important}
.page-contact .funnel-card{padding:clamp(24px,4vw,40px)!important}
.page-contact .interest-btn{min-height:64px;padding:12px 14px;line-height:1.4}
.page-contact .pill-btn{min-height:44px;padding:10px 14px;line-height:1.3}
.page-contact .btn-gold,.page-contact .btn-outline-ink{min-height:48px}
.page-contact .btn-back{min-height:44px}
.page-contact #detailsForm>div:last-child,.page-contact #messageForm>div:has(>#sendBtn){gap:12px}
.page-contact #interestRecap,.page-contact #preRecap{row-gap:10px!important;line-height:1.6}
.page-contact .f-label{line-height:1.4}
.page-contact .consent summary{padding-block:6px;line-height:1.4}
.page-legal .hdr{width:100%;padding-inline:var(--page-gutter)}
.page-legal .hdr>a{min-width:0}
.page-legal .hdr>a:nth-of-type(2){white-space:nowrap}
.page-legal main{max-width:820px;padding:clamp(40px,6vw,64px) var(--page-gutter) clamp(56px,7vw,80px)}
.page-legal p,.page-legal li{overflow-wrap:anywhere}
.page-legal footer{padding:24px var(--page-gutter)}
.page-legal footer a{display:inline-flex;align-items:center;min-height:40px;margin:0 8px}
.page-not-found main{max-width:640px;padding:32px var(--page-gutter)!important}
.page-not-found .btn-gold{min-height:48px;justify-content:center}
@media(min-width:861px) and (max-width:1100px){.page-careers .career-intro{max-width:34ch}}
@media(min-width:600px) and (max-width:1000px){
 .page-careers .team-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}
}
@media(min-width:600px) and (max-width:860px){
 .page-careers .benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 .page-careers .recruiting-photo{aspect-ratio:2}
 .page-careers .career-copy .career-ctas{flex-direction:row;align-items:center;max-width:none}
 .page-careers .career-copy .career-ctas>a{min-width:180px}
 .page-careers .apply-layout .career-ctas{flex-direction:row;align-items:center}
 .page-careers .apply-layout .career-ctas>a{min-width:180px}
 .page-home .careers-invite-copy{flex-basis:300px}
}
@media(max-width:860px){
 :root{--page-gutter:24px;--section-space:56px;--space-section-heading:28px}
 .nav-bar{padding-inline:var(--page-gutter)}
 .page-home,.page-careers{padding-bottom:calc(80px + env(safe-area-inset-bottom));background:#0e1420}
 .page-careers main{background:#eef1f4}
 .page-home .svc-grid{margin-inline:calc(-1 * var(--page-gutter));padding-inline:var(--page-gutter);scroll-padding-inline:var(--page-gutter)}
 .page-home .sched-embed{margin-inline:calc(-1 * var(--page-gutter))}
 .page-home .about-h2{margin-bottom:24px}
 .page-home .about-photo{margin-bottom:28px}
 .page-home .careers-invite-link{padding:12px 20px}
 .page-home .flinks,.page-careers .flinks{column-gap:20px;row-gap:0}
 .page-careers .story-grid{gap:28px}
 .page-careers .team-grid{row-gap:32px}
 .page-contact .funnel-card{border-radius:16px}
}
@media(max-width:640px){
 .page-contact header{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:12px!important}
 .page-contact header .link-back{white-space:nowrap;align-self:center}
 .page-contact header>a:nth-of-type(2){justify-self:end;gap:8px!important}
 .page-contact #stepLabel{grid-column:1/-1;text-align:center;padding-top:10px;border-top:1px solid rgba(255,255,255,.12)}
 .page-legal .hdr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
 .page-legal .hdr .link-back{white-space:nowrap}
 .page-legal .hdr>span:last-child{display:none}
 .page-contact #messageForm>div:has(>#sendBtn){flex-wrap:nowrap!important}
 .page-contact #messageForm #sendBtn{padding-inline:16px}
}
@media(max-width:599px){
 .page-careers .team-grid{column-gap:20px}
}
@media(max-width:480px){:root{--page-gutter:20px}}
@media(max-width:380px){
 .page-contact header,.page-legal .hdr{grid-template-columns:1fr 1fr;row-gap:10px!important}
 .page-contact header>a:nth-of-type(2),.page-legal .hdr>a:nth-of-type(2){grid-column:1/-1;grid-row:1;justify-self:center}
 .page-contact header .link-back,.page-legal .hdr .link-back{grid-column:1;grid-row:2;min-height:32px}
 .page-contact #stepLabel{grid-column:2;grid-row:2;text-align:right;padding-top:0;border-top:0}
}

/* ── Button entrance motion ───────────────────────────────────────────────
   Shared across pages (each page's own prefers-reduced-motion rule disables
   it with !important). Buttons rise and settle on an expo curve, staggered
   within a group; gold ones catch a single sheen as they land. The sheen
   sits off-screen behind overflow:hidden until an animation is applied, so
   gold buttons that aren't animating show nothing. */
@keyframes btnIn{from{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:none}}
@keyframes btnSheen{from{transform:translateX(-130%) skewX(-18deg)}to{transform:translateX(240%) skewX(-18deg)}}
@keyframes barIn{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}

.btn-gold{position:relative;overflow:hidden}
.btn-gold::after{content:"";position:absolute;top:0;bottom:0;left:0;width:42%;pointer-events:none;
 background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);
 transform:translateX(-130%) skewX(-18deg)}

/* Hero pairs: stagger the buttons instead of sliding the whole row as a block. */
.page-home .hero-ctas,.page-careers .career-copy .career-ctas{animation:none}
.page-home .hero-ctas>a,.page-careers .career-copy .career-ctas>a{animation:btnIn .6s cubic-bezier(.16,1,.3,1) both}
.page-home .hero-ctas>a:nth-child(1),.page-careers .career-copy .career-ctas>a:nth-child(1){animation-delay:.26s}
.page-home .hero-ctas>a:nth-child(2),.page-careers .career-copy .career-ctas>a:nth-child(2){animation-delay:.38s}
.page-home .hero-ctas>.btn-gold::after,.page-careers .career-copy .career-ctas>.btn-gold::after{animation:btnSheen .9s ease-out .85s both}

/* Funnel: option rows cascade in as each step appears. */
.page-contact #interestGrid .interest-btn{animation:btnIn .46s cubic-bezier(.16,1,.3,1) both}
.page-contact #interestGrid .interest-btn:nth-child(1){animation-delay:.05s}
.page-contact #interestGrid .interest-btn:nth-child(2){animation-delay:.11s}
.page-contact #interestGrid .interest-btn:nth-child(3){animation-delay:.17s}
.page-contact #interestGrid .interest-btn:nth-child(4){animation-delay:.23s}
.page-contact #interestGrid .interest-btn:nth-child(5){animation-delay:.29s}
.page-contact #interestGrid .interest-btn:nth-child(6){animation-delay:.35s}
.page-contact #interestGrid .interest-btn:nth-child(7){animation-delay:.41s}
.page-contact #interestGrid .interest-btn:nth-child(n+8){animation-delay:.47s}
.page-contact .step.active .btn-gold::after{animation:btnSheen .9s ease-out .45s both}

@media(max-width:860px){
 #actionBar{animation:barIn .5s cubic-bezier(.16,1,.3,1) .55s both}
}
