/* Calnan AI Labs — shared stylesheet. Follows DESIGN.md: near-black sections that alternate --bg / --bg-2,
   charcoal panels, one teal accent, amber only for "a person on your team handles this".
   One family (Libre Franklin), no mono, no eyebrows, no italics, no gradients, glows or background shapes. */
/* Fallback shown while Libre Franklin loads: Arial resized to Libre Franklin's width and line metrics (measured in Chrome),
   so the font swap doesn't move the page. Bold weights use Arial Bold; without this, Windows picks the much wider Arial Black. */
@font-face{font-family:"Libre Franklin Fallback";src:local("Arial"),local("ArialMT");font-weight:400 500;size-adjust:104.2%;ascent-override:93.1%;descent-override:24%;line-gap-override:0%}
@font-face{font-family:"Libre Franklin Fallback";src:local("Arial"),local("ArialMT");font-weight:600;size-adjust:106.4%;ascent-override:91.2%;descent-override:23.5%;line-gap-override:0%}
@font-face{font-family:"Libre Franklin Fallback";src:local("Arial Bold"),local("Arial-BoldMT");font-weight:700 800;size-adjust:100%;ascent-override:97%;descent-override:25%;line-gap-override:0%}
:root{
--bg:#08090B; --bg-2:#0D0F12; --surface:#15181D; --surface-2:#1B1F25;
--border:#24272D; --border-2:#2F333A; --footer:#050506; --cta-band:#111316;
--text:#F2F3F5; --text-soft:#C9CDD3; --text-2:#A3A9B3; --text-3:#8A919C; --heading:#FFFFFF;
--teal:#45D3C6; --teal-text:#6FDDD2; --teal-deep:#2B8A82; --teal-tint:#0F2624;
--amber:#F2B84B;
--red:#F0716B;
--sans:"Libre Franklin","Libre Franklin Fallback","Helvetica Neue",system-ui,-apple-system,"Segoe UI",sans-serif;
--section-y:clamp(56px,7vw,88px);
color-scheme:dark;
}
*{box-sizing:border-box}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4{margin:0;color:var(--heading);text-wrap:balance}
p{margin:0}
a{color:var(--teal-text)}
a:hover{color:var(--heading)}
:focus-visible{outline:3px solid var(--teal-text);outline-offset:3px}
img{max-width:100%;height:auto}
[hidden]{display:none !important}
.wrap{max-width:1220px;margin:0 auto;padding-inline:20px}
.hl{color:var(--teal-text)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.num{font-variant-numeric:tabular-nums}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 26px;background:var(--teal);color:var(--bg);border:0;border-radius:8px;font:inherit;font-size:18px;font-weight:700;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .15s}
.btn:hover{background:var(--teal-text);color:var(--bg)}
.btn-sm{min-height:44px;padding:0 18px;font-size:16px}
.btn-block{display:flex;width:100%;padding-inline:20px}
.btn-secondary{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1px var(--border-2)}
.btn-secondary:hover{background:transparent;color:var(--heading);box-shadow:inset 0 0 0 1px var(--teal-deep)}

/* ---------- header ---------- */
.site-header{background:var(--bg);border-bottom:1px solid var(--border)}
.site-header .bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding-block:16px}
.brand{display:flex;align-items:center;gap:10px;color:var(--heading);text-decoration:none;font-weight:700;font-size:18px;letter-spacing:-0.01em}
.brand:hover{color:var(--heading)}
.brand img{width:32px;height:32px}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;font-size:16px}
.nav a:not(.btn){color:var(--text-2);text-decoration:none;padding-block:4px;border-bottom:2px solid transparent}
.nav a:not(.btn):hover{color:var(--heading)}
.nav a[aria-current="page"]{color:var(--heading);font-weight:600;border-bottom-color:var(--teal)}
.menu-btn{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:1px solid var(--border-2);border-radius:8px;color:var(--text);cursor:pointer}
.menu-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.menu-btn .i-close,.menu-btn[aria-expanded="true"] .i-open{display:none}
.menu-btn[aria-expanded="true"] .i-close{display:block}
.menu-panel{display:none}
@media (max-width:640px){
/* without JavaScript the links stay visible; site.js adds .js and the menu button takes over */
.js .site-header .nav{display:none}
.js .menu-btn{display:inline-flex}
.js .menu-panel:not([hidden]){display:flex;flex-direction:column;border-top:1px solid var(--border);padding-block:8px 16px}
.menu-panel a{display:flex;align-items:center;min-height:52px;font-size:18px;font-weight:600;color:var(--text);text-decoration:none;border-bottom:1px solid var(--surface-2)}
.menu-panel a:last-child{border-bottom:0}
.menu-panel a[aria-current="page"]{color:var(--teal-text);font-weight:700}
}

/* ---------- sections ---------- */
.section{background:var(--bg);padding-block:var(--section-y)}
.section.alt{background:var(--bg-2)}
.h2{font-size:clamp(30px,3.6vw,44px);line-height:1.1;font-weight:800;letter-spacing:-0.02em}
.intro{font-size:19px;color:var(--text-2);max-width:36em}

/* ---------- closing call-to-action band ---------- */
.cta-band{background:var(--cta-band);border-top:1px solid var(--teal-deep);padding-block:var(--section-y)}
.cta-band .wrap{display:flex;flex-wrap:wrap;gap:32px 72px;align-items:center;justify-content:space-between}
.cta-band .copy{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;gap:16px}
.cta-band h2{font-size:clamp(36px,5vw,60px);line-height:1.03;font-weight:800;letter-spacing:-0.025em}
.cta-band .copy p{font-size:19px;color:var(--text-soft);max-width:32em}
.cta-band .act{flex:0 1 340px;min-width:0;display:flex;flex-direction:column;gap:12px}
.cta-band .act p{font-size:15px;color:var(--text-soft);text-align:center}

/* ---------- footer ---------- */
.site-footer{background:var(--footer);font-size:15px;color:var(--text-3)}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:24px 48px;justify-content:space-between;padding-block:36px}
.site-footer .who{display:flex;flex-direction:column;gap:6px;min-width:0}
.site-footer .brand{font-size:16px}
.site-footer .brand img{width:24px;height:24px}
.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 24px;align-content:flex-start}
.site-footer .legal-links{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:8px 24px;border-top:1px solid var(--border);padding-top:20px;font-size:14px}
.site-footer .legal-links a{color:var(--text)}
.site-footer .legal-links a:hover{color:var(--heading)}

/* ---------- home: hero ---------- */
.hero{background:var(--bg)}
.hero .wrap{display:flex;flex-wrap:wrap;gap:40px 64px;align-items:stretch;padding-block:clamp(32px,5vw,56px) clamp(56px,7vw,80px)}
.hero-copy{flex:1 1 340px;min-width:0;display:flex;flex-direction:column;gap:28px}
.hero h1{font-size:clamp(38px,5.2vw,64px);line-height:1.04;font-weight:800;letter-spacing:-0.025em}
.hero .lede{font-size:clamp(18px,2vw,20px);color:var(--text-2);max-width:32em}
.picker{display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--border);padding-top:28px}
.picker h2{font-size:21px;line-height:1.3;font-weight:700}
.picker h2 span{font-weight:500;color:var(--text-3)}
.options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.option{min-height:56px;padding:12px 16px;text-align:left;font:inherit;font-size:17px;font-weight:600;line-height:1.3;border-radius:10px;border:1.5px solid var(--border-2);background:var(--surface);color:var(--text);cursor:pointer;transition:border-color .15s,background-color .15s}
.option:hover{border-color:var(--teal-deep)}
.option[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:var(--bg)}
.example-card{flex:1 1 340px;max-width:540px;min-width:0;background:var(--surface);border:1px solid var(--border-2);border-radius:20px;padding:clamp(20px,5vw,32px);display:flex;flex-direction:column}
.example{display:flex;flex-direction:column;gap:24px;flex:1}
.example[hidden]{display:none}
@media (prefers-reduced-motion:no-preference){
.example.fade{animation:fade-up .45s ease both}
@keyframes fade-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
}
.example h3{font-size:clamp(22px,2vw,26px);line-height:1.2;font-weight:700}
.example .today{display:flex;flex-direction:column;gap:6px}
.example .label{font-size:14px;font-weight:600;color:var(--text-3)}
.example .today p{color:var(--text-soft)}
.example .with{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--border-2);padding-top:22px}
.example .with .label{color:var(--teal-text)}
.example .with p{display:flex;gap:12px;color:var(--heading)}
.mark{flex:none;width:18px;height:18px;margin-top:6px;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.mark.auto{stroke:var(--teal)}
.mark.person{stroke:var(--amber)}
.mark.stop{stroke:var(--red);stroke-width:1.8}
.example .estimate{margin-top:auto;background:var(--surface-2);border-radius:10px;padding:14px 16px;font-size:15px;color:var(--text-soft)}
.example .estimate strong{color:var(--heading)}
.example .estimate a{font-weight:600}

/* ---------- home: calculator ---------- */
.calc-head{display:flex;flex-direction:column;gap:10px;margin-bottom:32px}
.calc{display:flex;flex-wrap:wrap;gap:32px;align-items:stretch}
.calc-est{flex:1 1 340px;max-width:460px;min-width:0;background:var(--surface);border:1px solid var(--border-2);border-radius:16px;padding:clamp(20px,5vw,32px);display:flex;flex-direction:column;gap:24px}
.calc-est .cap{font-size:16px;color:var(--text-3)}
.calc-est .total{font-size:clamp(48px,5.4vw,72px);line-height:1.05;font-weight:800;letter-spacing:-0.03em;color:var(--heading);font-variant-numeric:tabular-nums}
.calc-est .per{font-size:17px;color:var(--text-2)}
.parts{display:flex;flex-direction:column;gap:16px;font-variant-numeric:tabular-nums}
.part{display:flex;flex-direction:column;gap:6px}
.part .row{display:flex;justify-content:space-between;gap:16px;font-size:16px}
.part .row strong{color:var(--heading)}
.track{height:6px;background:var(--border);border-radius:3px}
.track i{display:block;height:6px;background:var(--teal);border-radius:3px;transition:width .2s}
.track.lost i{background:var(--teal-deep)}
.fix{border-top:1px solid var(--border-2);padding-top:20px;display:flex;flex-direction:column;gap:6px;font-size:16px}
.fix .cap{color:var(--text-3)}
.fix strong{font-size:18px;color:var(--heading)}
.fix .payback{color:var(--text-soft)}
.calc-est .talk{display:flex;flex-direction:column;gap:10px;margin-top:auto}
.calc-est .talk .btn{min-height:54px;font-size:17px}
.calc-est .talk p{font-size:14px;color:var(--text-3);text-align:center}
.sliders{flex:1 1 520px;min-width:0;background:var(--bg);border:1px solid var(--border);border-radius:16px;padding:clamp(20px,5vw,32px);display:flex;flex-direction:column;gap:26px}
.sliders h3{font-size:20px;font-weight:700}
.sliders h3.split{margin-top:8px;border-top:1px solid var(--border);padding-top:26px}
.slider{display:flex;flex-direction:column;gap:6px}
.slider .row{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.slider label{font-size:17px}
.slider .help{display:block;font-size:15px;color:var(--text-3)}
.slider output{flex:none;white-space:nowrap;font-size:20px;font-weight:800;color:var(--heading);font-variant-numeric:tabular-nums}
.slider input{width:100%;height:32px;margin:0;accent-color:var(--teal);cursor:pointer}
.sliders .note{font-size:15px;color:var(--text-3)}
.sm-only{display:none}
@media (max-width:640px){
.lg-only{display:none}
.sm-only{display:inline}
.calc-est{order:2}
}

/* ---------- home: three steps ---------- */
.steps-sec .wrap{display:flex;flex-direction:column;gap:40px}
.steps{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:32px}
.steps li{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:10px}
.step-num{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--teal-tint);border:1px solid var(--teal-deep);color:var(--teal-text);font-weight:800;font-size:19px}
.steps h3{font-size:22px;line-height:1.25;font-weight:700}
.steps p,.steps-sec .more{color:var(--text-2)}
.steps-sec .more a{font-weight:600}

/* ---------- home: Matt ---------- */
.matt .wrap{display:flex;flex-wrap:wrap;gap:40px 64px;align-items:center}
.matt-photo{flex:1 1 300px;max-width:400px;aspect-ratio:4/5;margin:0;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--surface)}
.matt-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.matt-copy{flex:1 1 460px;min-width:0;display:flex;flex-direction:column;gap:22px}
.matt blockquote{margin:0;font-size:clamp(21px,2.2vw,26px);line-height:1.45;font-weight:500;color:var(--text)}
.matt .byline strong{color:var(--heading)}
.matt .byline span{color:var(--text-2)}
.points{margin:8px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px 28px}
.points li{display:flex;flex-direction:column;gap:2px;min-width:0}
.points strong{font-size:17px;color:var(--heading)}
.points span{font-size:16px;color:var(--text-2)}

/* ---------- interior page hero ---------- */
.page-hero{background:var(--bg)}
.page-hero .wrap{display:flex;flex-direction:column;gap:22px;padding-block:clamp(40px,6vw,80px) clamp(40px,5vw,64px)}
.page-hero h1{font-size:clamp(38px,5vw,60px);line-height:1.04;font-weight:800;letter-spacing:-0.025em;max-width:15em}
.page-hero .lede{font-size:clamp(18px,2vw,20px);color:var(--text-2);max-width:34em}
.page-hero .actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding-top:6px}
.text-link{font-weight:600;font-size:17px}

/* ---------- split section: heading on the left, content on the right ---------- */
.split-sec .wrap{display:flex;flex-wrap:wrap;gap:32px 72px}
.split-sec .side{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:14px}
.split-sec .side p{color:var(--text-2);max-width:26em}
.split-sec .main{flex:2 1 520px;min-width:0}

/* ---------- timeline (How it works) ---------- */
.timeline{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.timeline li{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:20px}
.timeline .rail{display:flex;flex-direction:column;align-items:center}
.timeline .rail::after{content:"";flex:1;width:2px;background:var(--border);margin-block:6px}
.timeline li:last-child .rail::after{display:none}
.timeline .step-num{flex:none;font-size:18px}
.timeline .body{display:flex;flex-direction:column;gap:6px;padding-bottom:36px}
.timeline li:last-child .body{padding-bottom:0}
.timeline .when{font-size:15px;font-weight:600;color:var(--teal-text)}
.timeline h3{font-size:22px;line-height:1.25;font-weight:700}
.timeline p{color:var(--text-2)}

/* ---------- cards ---------- */
.stack{display:flex;flex-direction:column;gap:32px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:clamp(20px,4vw,28px);display:flex;flex-direction:column;gap:8px}
.card h3{font-size:20px;font-weight:700}
.card p{font-size:17px;color:var(--text-2)}
.card.tint{background:var(--teal-tint);border-color:var(--teal-deep)}
.card.tint p{color:var(--text-soft)}
.house-line{margin-top:8px;font-size:clamp(22px,2.6vw,30px);line-height:1.35;font-weight:700;color:var(--heading);max-width:30em}
.house-line .person{color:var(--amber)}

/* ---------- FAQ (How it works and /faq) ---------- */
.faq{border-top:1px solid var(--border)}
.faq details{border-bottom:1px solid var(--border);padding-block:20px}
.faq summary{display:flex;justify-content:space-between;gap:16px;font-size:19px;font-weight:700;color:var(--heading);cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{display:inline-block;color:var(--teal-text);transition:transform .15s}
.faq details[open] summary .pm{transform:rotate(45deg)}
.faq details p{margin-top:12px;color:var(--text-2)}
.faq-more{margin-top:24px}
.faq-more a{font-weight:600}

/* ---------- pricing ---------- */
.page-hero .aside{font-size:17px;color:var(--text-2)}
.page-hero .aside a{font-weight:600}
.tiers{display:flex;flex-direction:column;gap:clamp(40px,5vw,56px);font-variant-numeric:tabular-nums}
.tier{display:flex;flex-direction:column;gap:18px}
.tier-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px}
.tier-head h3{font-size:22px;font-weight:800}
.tier-head p{font-size:17px;color:var(--text-2)}
.offers{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
.offer{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:12px}
.icon-tile{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--teal-tint);border:1px solid #1F5F59}
.icon-tile svg{width:22px;height:22px;fill:none;stroke:var(--teal-text);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.offer h4{font-size:20px;line-height:1.3;font-weight:700}
.offer > p{font-size:16px;line-height:1.55;color:var(--text-soft)}
.offer .price{margin-top:auto;border-top:1px solid var(--border);padding-top:14px}
.offer .amount{font-size:26px;font-weight:800;letter-spacing:-0.01em;color:var(--heading)}
.offer .price-note{font-size:14px;color:var(--text-3)}
.tiers .fine{font-size:15px;color:var(--text-3)}
.care-head{display:flex;flex-direction:column;gap:10px}
.care-head p{color:var(--text-2);max-width:36em}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;align-items:stretch;font-variant-numeric:tabular-nums}
.plan{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:10px}
.plan .name{font-size:17px;font-weight:700;color:var(--heading)}
.plan .cost{line-height:1.1;white-space:nowrap}
.plan .cost strong{font-size:clamp(24px,2vw,28px);font-weight:800;letter-spacing:-0.02em;color:var(--heading)}
.plan .cost span{font-size:15px;font-weight:600;color:var(--text-2)}
.plan .what{font-size:15px;color:var(--text-2);border-top:1px solid var(--border);padding-top:12px}
.plan.tint{background:var(--teal-tint);border-color:var(--teal-deep)}
.plan.tint .cost span,.plan.tint .what{color:var(--text-soft)}
.plan.tint .what{border-top-color:var(--teal-deep)}

/* ---------- about ---------- */
.team{background:var(--bg)}
.team .wrap{display:flex;flex-direction:column;gap:clamp(28px,4vw,44px);padding-block:clamp(48px,7vw,96px) clamp(56px,7vw,88px)}
.team h1{font-size:clamp(38px,5.4vw,66px);line-height:1.03;font-weight:800;letter-spacing:-0.025em}
.team-head{display:flex;flex-direction:column;gap:16px}
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.team .person{background:var(--bg-2);border:1px solid var(--border);border-radius:20px;overflow:hidden;display:flex;flex-direction:column}
.person-photo{aspect-ratio:4/3;background:var(--surface);border-bottom:1px solid var(--border)}
.person-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 9%}
.person-body{flex:1;display:flex;flex-direction:column;gap:18px;padding:clamp(22px,3vw,32px)}
.person-head{display:flex;flex-direction:column;gap:2px}
.team .person h2{font-size:24px;line-height:1.25;font-weight:700;letter-spacing:-0.01em}
.team .person .role{font-size:17px;font-weight:600;color:var(--teal-text)}
.team .person .bio{font-size:17px;color:var(--text-2);text-align:justify;-webkit-hyphens:auto;hyphens:auto}
.cards.wide{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.ways{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;border-top:1px solid var(--border)}
.ways li{display:flex;gap:16px;padding-block:20px;border-bottom:1px solid var(--border)}
.ways .mark{width:20px;height:20px}
.ways .name{font-size:19px;font-weight:700;color:var(--heading)}
.ways .desc{margin-top:2px;color:var(--text-2)}
.who-head{display:flex;flex-direction:column;gap:24px}
.who-head p{color:var(--text-2);max-width:36em}
.industries{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.industries li{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:14px}
.industries .tile{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;border:1px solid}
.industries .tile svg{width:24px;height:24px;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.industries .name{font-size:18px;font-weight:700;line-height:1.3;color:var(--heading)}
.tile.trades{background:#2A1A12;border-color:#5C3420}.tile.trades svg{stroke:#F4925E}
.tile.wholesale{background:#121C2B;border-color:#284466}.tile.wholesale svg{stroke:#7DB2FF}
.tile.lending{background:#1C1730;border-color:#40356B}.tile.lending svg{stroke:#B49CFF}
.tile.property{background:#13261A;border-color:#2F5C3C}.tile.property svg{stroke:#7FD99A}

/* ---------- contact ---------- */
.contact-sec .wrap{display:flex;flex-direction:column;gap:36px;padding-block:clamp(40px,6vw,72px) clamp(56px,7vw,88px)}
.contact-sec .head{display:flex;flex-direction:column;gap:18px}
.contact-sec h1{font-size:clamp(38px,5vw,60px);line-height:1.04;font-weight:800;letter-spacing:-0.025em}
.contact-sec .lede{font-size:clamp(18px,2vw,20px);color:var(--text-2);max-width:34em}
.contact-grid{display:flex;flex-wrap:wrap;gap:24px;align-items:stretch}
.panel{border-radius:16px;padding:clamp(20px,4vw,32px);display:flex;flex-direction:column;gap:20px;min-width:0}
.panel.book{flex:1 1 560px;background:var(--surface);border:1px solid var(--border-2)}
.panel.note{flex:1 1 380px;background:var(--bg-2);border:1px solid var(--border)}
.panel .ph{display:flex;flex-direction:column;gap:8px}
.panel h2{font-size:24px;line-height:1.2;font-weight:700}
.panel .ph p{font-size:17px;color:var(--text-2)}
.calendar{display:block;width:100%;height:700px;border:1px solid var(--border-2);border-radius:12px;background:var(--bg-2)}
.form{display:flex;flex-direction:column;gap:18px}
.form .ph{gap:6px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:16px;font-weight:600}
.field input,.field textarea{min-height:48px;padding:0 14px;font:inherit;font-size:17px;color:var(--text);background:var(--surface);border:1px solid var(--border-2);border-radius:8px}
.field textarea{padding:12px 14px;line-height:1.5;resize:vertical;min-height:140px}
.field input::placeholder,.field textarea::placeholder{color:#6B7280}
.field [aria-invalid="true"]{border-color:var(--amber)}
.form .error{font-size:15px;color:var(--amber)}
.form .error a{color:inherit}
.btn-light{background:var(--text);color:var(--bg);min-height:52px;font-size:17px}
.btn-light:hover{background:var(--heading)}
.btn-light[disabled]{opacity:.6;cursor:progress}
.form .small{font-size:14px;color:var(--text-3)}
.consent{display:flex;gap:12px;align-items:flex-start;min-height:44px;padding:14px 16px;background:var(--teal-tint);border:1px solid var(--teal-deep);border-radius:10px;font-size:16px;line-height:1.55;color:var(--text-soft);cursor:pointer}
.consent input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:var(--teal);cursor:pointer}
.consent .req{color:var(--text-2)}
.consent:has([aria-invalid="true"]){border-color:var(--amber)}
.panel .fine{font-size:14px;color:var(--text-2)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.thanks{display:flex;flex-direction:column;gap:12px;padding-block:24px}
.thanks h2{font-size:26px}
.thanks p{color:var(--text-2)}
.on-call{display:flex;flex-direction:column;gap:16px;border-top:1px solid var(--border);padding-top:32px}
.on-call h2{font-size:22px;font-weight:700}
.on-call .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.on-call .grid p{display:flex;gap:12px;font-size:17px;color:var(--text-soft)}
.on-call .grid .mark{margin-top:5px}
.contact-sec .reach{font-size:16px;color:var(--text-3)}

/* ---------- FAQ page ---------- */
.faq-hero .wrap{display:flex;flex-direction:column;gap:20px;padding-block:clamp(40px,6vw,80px) clamp(32px,4vw,48px)}
.faq-hero h1{font-size:clamp(38px,5vw,60px);line-height:1.04;font-weight:800;letter-spacing:-0.025em}
.faq-hero .lede{font-size:clamp(18px,2vw,20px);color:var(--text-2);max-width:34em}
.faq-sec{background:var(--bg);padding-block:clamp(48px,6vw,72px)}
.faq-sec.alt{background:var(--bg-2)}
.faq-sec .wrap{display:flex;flex-wrap:wrap;gap:24px 72px}
.faq-sec h2{flex:1 1 260px;font-size:clamp(28px,3.2vw,38px);line-height:1.1;font-weight:800;letter-spacing:-0.02em}
.faq-sec .faq{flex:3 1 560px;min-width:0}
.faq-sec summary{align-items:flex-start}
.faq-sec summary .pm{flex:none;font-size:24px;line-height:1;transition:transform .2s ease}
.faq-sec details p{max-width:40em}
.faq-sec details p a{font-weight:600}
.faq .rule{color:var(--heading)}
.faq .person{color:var(--amber)}
@media (prefers-reduced-motion:reduce){.faq summary .pm{transition:none}}

/* ---------- legal pages (/privacy, /terms) ---------- */
.legal-sec .wrap{padding-block:clamp(40px,6vw,72px) clamp(56px,7vw,88px)}
.legal-sec .eyebrow{margin-bottom:12px;font-size:14px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--teal-text)}
.legal-sec h1{margin-bottom:12px;font-size:clamp(38px,5vw,48px);line-height:1.1;font-weight:800;letter-spacing:-0.025em}
.legal-sec .updated{margin-bottom:40px;font-size:15px;color:var(--text-2)}
.legal-layout{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}
.toc{flex:1 1 220px;max-width:260px;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:18px 20px}
.toc p{margin-bottom:8px;font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text)}
.toc ul{margin:0;padding:0;list-style:none}
.toc a{display:block;padding:6px 0;font-size:14px;line-height:1.4;color:var(--text-2);text-decoration:none}
.toc a:hover{color:var(--text)}
.legal{flex:999 1 560px;min-width:0;max-width:760px}
.legal h2{margin:0 0 14px;font-size:22px;line-height:1.3;font-weight:700;scroll-margin-top:24px}
.legal h2:has(+ dl){margin-bottom:22px}
.legal h3{margin:22px 0 8px;font-size:16px;font-weight:700}
.legal p,.legal ul,.legal dd{font-size:16px;line-height:1.7;color:var(--text-soft)}
.legal p{margin:0 0 14px}
.legal ul{margin:0 0 14px;padding-left:20px}
.legal li{margin:0 0 8px}
.legal strong{color:var(--text);font-weight:600}
.legal > section{padding:36px 0;border-top:1px solid var(--border)}
.legal .glance + section{border-top:0}
.legal .glance{margin-bottom:8px;background:var(--teal-tint);border:1px solid var(--teal-deep);border-radius:12px;padding:24px 26px}
.legal .glance h2{margin-bottom:12px;font-size:18px}
.legal .glance ul{margin:0}
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}
.table-wrap + p{margin-top:16px}
.legal table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.55}
.legal table.wide{min-width:560px}
.legal th{text-align:left;font-weight:600;color:var(--text);background:var(--surface);padding:12px 14px;border-bottom:1px solid var(--border-2)}
.legal td{vertical-align:top;color:var(--text-soft);padding:12px 14px;border-bottom:1px solid var(--border)}
.legal tbody tr:last-child td{border-bottom:0}
.legal .contact-box{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px 22px}
.legal .contact-box p{margin:0;line-height:1.8}
.legal dl{margin:0}
.legal dt{margin:0 0 6px;font-size:16px;font-weight:600;color:var(--text)}
.legal dd{margin:0 0 22px}
.legal dd:last-child{margin-bottom:0}
/* phones and narrow tablets: the section list sits above the text at full width, with bigger tap targets */
@media (max-width:860px){.toc{flex-basis:100%;max-width:none}.toc a{padding:11px 0}}

/* ---------- partners (/partners, noindex, not in the nav). Every rule is scoped to body.partners ---------- */
.partners .ticks{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px;color:var(--text-soft)}
.partners .ticks li{display:flex;gap:12px}
.partners .p-head{display:flex;flex-direction:column;gap:10px}
.partners .p-fine{font-size:15px;color:var(--text-3);max-width:60em}
.partners .p-note{font-size:16px;color:var(--text-3);max-width:60em}
/* hero */
.p-hero .hero-copy{gap:26px}
.p-hero .kicker{font-size:15px;font-weight:600;color:var(--text-3)}
.p-hero .actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.p-hero .text-link{display:inline-flex;align-items:center;min-height:44px}
.p-hero .fine{font-size:15px;color:var(--text-3)}
.partners .glance{gap:22px}
.partners .glance h2{font-size:clamp(22px,2vw,26px);line-height:1.2;font-weight:700}
.partners .glance .figs{display:flex;flex-wrap:wrap;gap:20px 32px}
.partners .glance .figs > div{flex:1 1 140px;min-width:0}
.partners .glance .figs p{margin-top:4px;font-size:16px;color:var(--text-2)}
.partners .glance .figs .fig{margin:0;font-size:44px;line-height:1.05;font-weight:800;letter-spacing:-0.03em;color:var(--heading)}
.partners .glance .figs .fig.plus{color:var(--teal-text)}
.partners .glance .paid{border-top:1px solid var(--border-2);padding-top:20px;font-size:16px;color:var(--text-soft)}
.partners .glance .ticks{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 20px;font-size:16px}
.partners .glance .ticks li{gap:10px}
.partners .glance .ticks .mark{margin-top:5px}
/* small cards */
.partners .minis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-content:start}
.partners .minis.rules{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px}
.partners .mini{background:var(--surface);border:1px solid var(--border-2);border-radius:16px;padding:22px}
.partners .mini .t{font-weight:700;color:var(--heading)}
.partners .mini .t + p{margin-top:4px;font-size:16px;color:var(--text-2)}
.partners .mini.tint{grid-column:1/-1;background:var(--teal-tint);border-color:var(--teal-deep);padding:22px 24px}
.partners .mini.tint .t + p{margin-top:8px;color:var(--text-soft)}
/* what you'd be introducing */
.p-intro .wrap{display:flex;flex-wrap:wrap;gap:32px 72px}
.p-intro .copy{flex:1 1 360px;min-width:0;display:flex;flex-direction:column;gap:16px}
.p-intro .copy p{color:var(--text-2)}
.p-intro .rule{color:var(--heading)}
.p-intro .person{color:var(--amber)}
.p-intro .minis{flex:1 1 480px;min-width:0}
/* what you'll do */
.partners .roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr));gap:24px}
.partners .role:last-child{grid-column:1/-1}
.partners .role{min-width:0;background:var(--surface);border:1px solid var(--border-2);border-radius:20px;padding:clamp(20px,5vw,32px);display:flex;flex-direction:column;gap:18px}
.partners .role .tag{font-size:14px;font-weight:600;color:var(--teal-text)}
.partners .role h3{font-size:clamp(22px,2vw,26px);line-height:1.2;font-weight:700}
.partners .role .ticks{gap:12px}
.partners .role .note{margin-top:auto;background:var(--surface-2);border-radius:10px;padding:14px 16px;font-size:16px;color:var(--text-soft)}
.partners .role .note strong{color:var(--heading)}
/* side by side, the two track cards share rows so their pay notes line up at the same size */
@media (min-width:900px){
.partners .role:not(:last-child){display:grid;grid-template-rows:subgrid;grid-row:span 5;row-gap:18px}
.partners .role:not(:last-child) .note{grid-row:-2;margin-top:0}
}
/* pay calculator: reuses the home calculator's layout */
.partners .calc-est .pill-wrap{margin-bottom:12px}
.partners .pill{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--amber);border:1px solid var(--amber);border-radius:999px;padding:2px 10px}
.partners .calc-est .foot{margin-top:auto;font-size:14px;color:var(--text-3)}
.partners .slider input{height:44px}
/* who fits / how we reach people */
.p-two .wrap{display:flex;flex-wrap:wrap;gap:40px 72px}
.p-two .col{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:20px}
/* steps: four across on wide screens */
.p-steps .steps li{flex-basis:230px}
.p-steps .steps a{font-weight:600}
/* FAQ: the padding moves onto <summary> so the whole row is the tap target; it looks the same */
.partners .faq details{padding-block:0}
.partners .faq summary{padding-block:20px}
.partners .faq details p{margin:-8px 0 20px}
/* 44px tap targets for header and footer links; no visual change */
.partners .site-header .brand,.partners .nav a:not(.btn){display:inline-flex;align-items:center;min-height:44px}
.partners .site-footer .brand,.partners .site-footer nav a,.partners .site-footer #privacy a{display:inline-flex;align-items:center;min-height:44px}
.partners .site-footer .terms{max-width:46em}
/* the draft keeps the earnings card above the sliders on phones (the home calculator moves its card below) */
@media (max-width:640px){.partners .calc-est{order:0}}

/* ---------- partner application (/partners-apply, noindex). Every rule is scoped to body.apply ---------- */
.apply .site-header .back{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:16px;color:var(--text-soft);text-decoration:none}
.apply .site-header .back:hover{color:var(--heading)}
.apply .back svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.apply-sec{background:var(--bg)}
.apply-layout{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start;padding-block:clamp(40px,6vw,56px) clamp(56px,7vw,80px)}
.apply-side{flex:1 1 300px;max-width:380px;display:flex;flex-direction:column}
.apply-pill{align-self:flex-start;margin-bottom:14px;background:var(--teal-tint);color:var(--teal-text);border:1px solid var(--teal-deep);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}
.apply h1{margin-bottom:16px;font-size:clamp(34px,4vw,44px);line-height:1.1;font-weight:800;letter-spacing:-0.025em}
.apply .lede{font-size:17px;color:var(--text-soft)}
.apply-facts{display:flex;flex-direction:column;gap:12px;margin:28px 0}
.apply-facts p{display:flex;gap:14px;align-items:baseline;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px;font-size:15px;line-height:1.45;color:var(--text-soft)}
.apply-facts .fig{flex:none;min-width:72px;font-size:28px;font-weight:800;color:var(--teal)}
.apply-recap{border-top:1px solid var(--border);padding-top:20px}
.apply-recap h2{margin-bottom:10px;font-size:15px;font-weight:700}
.apply-recap ul{margin:0;padding-left:18px;font-size:15px;line-height:1.6;color:var(--text-2)}
.apply-recap li + li{margin-top:6px}
.apply-recap p{margin-top:10px;font-size:15px}
.apply-form{flex:999 1 560px;min-width:0;max-width:720px;background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:clamp(20px,4vw,32px);gap:0}
.apply-form fieldset{margin:0;padding:0 0 28px;border:0;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:20px}
.apply-form fieldset + fieldset{margin-top:28px}
.apply-form legend{margin-bottom:18px;padding:0;font-size:20px;font-weight:700;color:var(--heading)}
.apply-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:20px}
.apply-grid .span{grid-column:1/-1}
.apply-grid .field>input{margin-top:auto}
.apply-form .req{margin-left:2px;color:var(--amber)}
.apply-form .hint{font-size:14px;line-height:1.5;color:var(--text-2)}
.apply-form .us-ca{margin-bottom:24px}
.apply-form .field select{min-height:48px;padding:0 14px;font:inherit;font-size:17px;color:var(--text);background:var(--surface);border:1px solid var(--border-2);border-radius:8px}
.apply-form .field.narrow{max-width:340px}
.apply-form .radios{display:flex;flex-wrap:wrap;gap:12px}
.apply-form .radio{display:flex;align-items:center;gap:10px;min-height:48px;padding:12px 16px;border:1px solid var(--border-2);border-radius:10px;font-size:16px;color:var(--text-soft);cursor:pointer}
.apply-form .radio:has(:checked){border-color:var(--teal);background:var(--teal-tint);color:var(--text)}
.apply-form .radio input{width:18px;height:18px;margin:0;accent-color:var(--teal)}
.apply-form .radio:has([aria-invalid="true"]),.apply-form .chk:has([aria-invalid="true"]){outline:1px solid var(--amber);outline-offset:2px;border-radius:10px}
.apply-form .chk{display:flex;gap:12px;align-items:flex-start;min-height:44px;padding-block:6px;font-size:16px;line-height:1.55;color:var(--text-soft);cursor:pointer}
.apply-form .chk input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:var(--teal)}
.apply-form fieldset:last-of-type{gap:8px;padding-bottom:0;border-bottom:0}
.apply-form .error{margin-top:20px}
.apply-form .cf-turnstile{margin:20px 0 22px}
.apply-form .small{margin-top:16px;line-height:1.6;color:var(--text-2)}
.apply-done{max-width:640px;padding-block:clamp(56px,9vw,96px) clamp(72px,10vw,120px);display:flex;flex-direction:column;align-items:center;text-align:center}
.apply-done .tick{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:28px;border-radius:999px;background:var(--teal-tint);border:1px solid var(--teal-deep)}
.apply-done .tick svg{width:28px;height:28px;fill:none;stroke:var(--teal);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.apply-done h2{margin-bottom:16px;font-size:clamp(32px,4vw,40px);line-height:1.15;font-weight:800}
.apply-done .lede{margin-bottom:12px;font-size:18px}
.apply-done .next{margin-bottom:36px;font-size:15px;color:var(--text-2)}
.apply-done .btn{min-height:48px;font-size:16px}
