:root{
  --ink:#0A0A0A;
  --paper:#FFFFFF;
  --mist:#FFFFFF;
  --gray:#0A0A0A;
  --line:#DEDEDE;
  --serif:'Manrope','Helvetica Neue',Arial,sans-serif;   /* display */
  --sans:'Manrope','Helvetica Neue',Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --nav-h:76px;
  /* One easing curve for the whole site. A different curve per effect is the
     tell that they were added separately. */
  --ease:cubic-bezier(.62,.02,.16,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden}
body{overflow-x:hidden}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid currentColor;outline-offset:4px}

.wrap{max-width:1140px;margin:0 auto;padding:0 26px}

.tag{
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ink);
}

.serif{font-family:var(--serif);font-weight:600;letter-spacing:-.035em}

/* ---------------- NAV ---------------- */
.nav{
  position:sticky;top:0;z-index:80;height:var(--nav-h);
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--line);
}
.nav-in{max-width:1140px;margin:0 auto;padding:0 26px;height:100%;display:flex;align-items:center}
.nav-logo{height:30px;width:auto}
.nav-links{display:flex;align-items:center;gap:34px;margin-left:auto}
.nav-links a:not(.nav-pill){font-size:15px;font-weight:500;color:var(--ink);padding:12px 0;transition:opacity .18s ease}
.nav-links a:not(.nav-pill):hover{opacity:.55}
.nav-links a.nav-pill{
  display:inline-flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:600;color:var(--paper) !important;
  background:var(--ink);padding:0 24px;min-height:44px;line-height:1;
  border-radius:100px;white-space:nowrap;
  transition:transform .42s var(--ease),opacity .18s ease;
}
.nav-links a.nav-pill:active{transform:scale(.965)}
.nav-links a.nav-pill:hover{opacity:.78}

/* ---------------- HERO ---------------- */
.hero{padding:92px 0 76px;text-align:center}
.hero .tag{display:block;margin-bottom:30px}
.hero h1{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(2.2rem,5.8vw,4.6rem);
  line-height:1.04;letter-spacing:-.035em;
  max-width:16ch;margin:0 auto;
}
.hero h1 span{color:inherit}
.hero-say{margin:32px auto 0;max-width:26ch}
.hero-say .lead-in{
  font-size:clamp(1.05rem,2vw,1.45rem);font-weight:500;
  letter-spacing:-.02em;line-height:1.35;color:var(--ink);
}
.hero-say .word{
  font-size:clamp(3.6rem,12vw,9rem);font-weight:800;
  letter-spacing:-.06em;line-height:.92;margin-top:6px;color:var(--ink);
}

/* Entrances removed. Nothing moves because a page loaded. */
.rise,.d1,.d2,.d3,.d4{opacity:1;transform:none;animation:none}

/* ---------------- DOORS ---------------- */
.doors{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--line)}
.door{
  min-height:clamp(320px,42vh,460px);padding:52px 44px;
  display:flex;flex-direction:column;
  justify-content:center;align-items:center;text-align:center;
  transition:background .3s ease;
}
.door--light{border-right:1px solid var(--line)}
.door--light:hover{background:var(--paper)}
.door--dark{background:var(--ink);color:var(--paper)}
.door--dark:hover{background:var(--ink)}
.door--dark .tag{color:var(--paper)}
.door h2{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(1.8rem,3.2vw,2.6rem);
  line-height:1.1;letter-spacing:-.035em;margin:16px 0 14px;
}
.door p{font-size:15px;color:var(--gray);max-width:30ch;margin-left:auto;margin-right:auto}
.door--dark p{color:var(--paper)}
.door-go{
  align-self:center;margin-top:34px;
  display:inline-flex;align-items:center;gap:10px;
  font-size:15px;font-weight:500;padding:13px 26px;border-radius:100px;
  transition:opacity .2s ease,gap .3s cubic-bezier(.2,.7,.3,1);
}
.door-go i{font-style:normal;font-size:14px;line-height:1}
.door--dark .door-go{background:var(--paper);color:var(--ink)}
.door--light .door-go{background:var(--ink);color:var(--paper)}
.door:hover .door-go{opacity:.82;gap:16px}

/* ---------------- SECTIONS ---------------- */
.sec{padding:88px 0}
.sec--mist{background:var(--paper)}
.sec-head{max-width:54ch;margin-bottom:44px}
.sec-head .tag{display:block;margin-bottom:18px}
.sec-head h2{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.08;letter-spacing:-.035em;
}
.sec-head p{margin-top:18px;color:var(--gray);font-size:17px;max-width:48ch}

/* ---------------- TILES ---------------- */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tile{
  background:var(--paper);border:1px solid var(--line);border-radius:16px;
  padding:34px 30px 28px;min-height:300px;display:flex;flex-direction:column;
  transition:transform .32s cubic-bezier(.2,.7,.3,1),border-color .32s ease;
}
.tile:hover{transform:translateY(-5px);border-color:var(--ink)}
.tile--dark{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.tile--dark .tag{color:var(--paper)}
.tile--dark p{color:var(--paper)}
.tile--dark:hover{border-color:var(--paper)}
.tile h3{
  font-family:var(--sans);font-weight:600;font-size:21px;letter-spacing:-.02em;
  line-height:1.14;margin:20px 0 12px;
}
.tile p{font-size:14.5px;color:var(--gray);flex:1}
.tile .go{
  align-self:flex-start;margin-top:26px;
  display:inline-flex;align-items:center;gap:9px;
  font-size:14px;font-weight:500;padding:11px 22px;border-radius:100px;
  transition:opacity .2s ease,gap .3s cubic-bezier(.2,.7,.3,1);
}
.tile .go i{font-style:normal;font-size:13px;line-height:1}
.tile .go{background:var(--ink);color:var(--paper)}
.tile--dark .go{background:var(--paper);color:var(--ink)}
.tile:hover .go{opacity:.82;gap:14px}

/* ---------------- BAND ---------------- */
.band{background:var(--ink);color:var(--paper);padding:90px 0;text-align:center}
.band .tag{display:block;margin-bottom:22px;color:var(--paper)}
.band h2{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(2rem,4.4vw,3.3rem);line-height:1.08;letter-spacing:-.035em;
}
.band-sub{margin:22px auto 0;max-width:42ch;color:var(--paper);font-size:17px}
.btn{
  display:inline-block;margin-top:38px;background:var(--paper);color:var(--ink);
  font-size:16px;font-weight:500;padding:15px 32px;border-radius:100px;
  transition:opacity .18s ease;
}
.btn:hover{opacity:.8}
.band-fine{margin-top:18px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--paper)}

/* ---------------- ISHA ---------------- */

.creds{list-style:none;margin-top:34px;border-top:1px solid var(--line)}
.creds li{
  display:flex;justify-content:space-between;gap:20px;
  padding:15px 0;border-bottom:1px solid var(--line);font-size:14.5px;
}
.creds li b{font-weight:500}
.creds li span{font-family:var(--mono);font-size:12px;color:var(--ink);letter-spacing:.05em;text-align:right}

/* ---------------- FAQ ---------------- */
.faq{max-width:820px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer;list-style:none;padding:22px 40px 22px 0;position:relative;
  font-size:18px;font-weight:500;letter-spacing:-.015em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:6px;top:24px;
  font-size:22px;font-weight:400;color:var(--ink);transition:transform .25s ease;
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{padding:0 60px 28px 0;color:var(--gray);font-size:15.5px}

/* ---------------- CLOSER ---------------- */
.closer{padding:104px 0;text-align:center;border-top:1px solid var(--line)}
.closer h2{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.08;letter-spacing:-.035em;
}
.closer p{margin:20px auto 0;max-width:40ch;color:var(--gray);font-size:17px}
.btn-dark{
  display:inline-flex;align-items:center;justify-content:center;
  margin-top:34px;background:var(--ink);color:var(--paper);
  font-size:16px;font-weight:600;line-height:1.2;
  padding:15px 30px;border-radius:100px;transition:opacity .18s ease;
}
.btn-dark:hover{opacity:.78}
.closer .alt{margin-top:20px;font-size:14px}
.closer .alt a{border-bottom:1px solid var(--line);padding-bottom:2px}

/* ---------------- FOOTER ---------------- */
.foot{background:var(--ink);color:var(--paper);padding:72px 0 40px;font-size:13.5px}
.foot-logo{height:22px;width:auto;filter:invert(1)}
.foot-grid{
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:44px;
  padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.16);
}
.foot h5{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--paper);font-weight:400;margin-bottom:18px;
}
.foot ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.foot ul a{color:var(--paper);transition:opacity .18s ease}
.foot ul a:hover{opacity:.6}
.foot-addr{margin-top:22px;color:var(--paper);line-height:1.85}
.foot-base{
  padding-top:26px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 30px;
  color:var(--paper);font-size:12px;
}

/* ---------------- RESPONSIVE ---------------- */
@media(max-width:940px){
  .tiles{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .isha{grid-template-columns:1fr;gap:44px}
  
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .doors{grid-template-columns:1fr}
  .door{min-height:auto;padding:44px 26px}
  .door--light{border-right:none;border-bottom:1px solid var(--line)}
  .hero{padding:56px 0 48px}
  .sec,.closer{padding:60px 0}
  .band{padding:64px 0}
}
@media(max-width:560px){
}
@media(max-width:520px){
  .foot-grid{grid-template-columns:1fr}
  .faq .ans{padding-right:20px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
  .rise{opacity:1;transform:none}
}

/* ================= INNER PAGES ================= */
.phead{padding:118px 0 70px;border-bottom:1px solid var(--line)}
.crumb{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;margin-bottom:22px}
.crumb a{opacity:.6}
.crumb a:hover{opacity:1}
.phead h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.1rem,4.8vw,3.6rem);line-height:1.06;letter-spacing:-.035em;max-width:19ch}
.phead .lede{margin-top:24px;font-size:18px;max-width:56ch}

.prose{padding:84px 0;max-width:720px}
.prose h2{font-family:var(--serif);letter-spacing:-.035em;font-weight:600;font-size:clamp(1.45rem,2.7vw,1.95rem);line-height:1.12;margin:52px 0 18px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:17px;font-weight:600;margin:30px 0 10px;letter-spacing:-.015em}
.prose p{font-size:16.5px;margin-bottom:16px}
.prose ul{margin:0 0 18px 20px}
.prose li{font-size:16.5px;margin-bottom:9px}
.prose .todo{border:1px solid var(--line);padding:18px 20px;font-family:var(--mono);font-size:12px;line-height:1.8;margin:26px 0}

.deck{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-block:1px solid var(--line)}
.deck div{background:var(--paper);padding:34px 28px}
.deck dt{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;margin-bottom:12px}
.deck dd{font-size:15.5px}

.cta-strip{padding:76px 0;text-align:center;border-top:1px solid var(--line)}
.cta-strip h2{font-family:var(--serif);letter-spacing:-.035em;font-weight:600;font-size:clamp(1.75rem,3.6vw,2.6rem);line-height:1.08}
.cta-strip p{margin:18px auto 0;max-width:44ch;font-size:16.5px}
.cta-strip .btn-dark{margin-top:30px}

@media(max-width:900px){.deck{grid-template-columns:1fr}}
@media(max-width:760px){.phead{padding:66px 0 48px}.prose{padding:56px 0}.cta-strip{padding:64px 0}}

/* ================= BOOKING FLOW ================= */
.flow{padding:64px 0 100px}

.steps-bar{list-style:none;display:flex;gap:0;margin:0 0 52px;border:1px solid var(--line)}
.steps-bar li{
  flex:1;padding:16px 20px;display:flex;align-items:center;gap:10px;
  font-size:13.5px;font-weight:500;border-right:1px solid var(--line);
  opacity:.4;transition:opacity .25s ease,background .25s ease;
}
.steps-bar li:last-child{border-right:none}
.steps-bar li span{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em}
.steps-bar li.on{opacity:1;background:var(--ink);color:var(--paper)}
.steps-bar li.done{opacity:1}

.panel h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.1;letter-spacing:-.035em}
.panel-sub{margin:14px 0 34px;font-size:16px;max-width:56ch}

/* --- type picker --- */
.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.type{display:block;cursor:pointer}
.type input{position:absolute;opacity:0;width:0;height:0}
.type-in{
  display:block;border:1px solid var(--line);padding:22px 22px 20px;min-height:118px;
  transition:border-color .22s ease,background .22s ease,color .22s ease;
}
.type:hover .type-in{border-color:var(--ink)}
.type input:focus-visible + .type-in{outline:2px solid var(--ink);outline-offset:3px}
.type input:checked + .type-in{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.type-name{display:block;font-size:17px;font-weight:600;letter-spacing:-.015em;margin-bottom:8px}
.type-blurb{display:block;font-size:13.5px;line-height:1.5}

.other-wrap{margin-top:22px;max-width:520px}

/* --- calendar --- */
.cal-days{display:flex;gap:10px;overflow-x:auto;padding-bottom:10px;scrollbar-width:thin}
.cal-day{
  flex:none;width:92px;padding:16px 10px;background:var(--paper);
  border:1px solid var(--line);cursor:pointer;text-align:center;font-family:var(--sans);
  transition:border-color .2s ease,background .2s ease,color .2s ease;
}
.cal-day:hover{border-color:var(--ink)}
.cal-day.sel{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cal-day span{display:block}
.cal-day .dow{font-family:var(--mono);font-size:10px;letter-spacing:.16em}
.cal-day .dnum{font-family:var(--serif);font-weight:700;letter-spacing:-.04em;font-size:29px;line-height:1.15;margin:4px 0}
.cal-day .mon{font-family:var(--mono);font-size:10px;letter-spacing:.16em}
.cal-day .cnt{font-size:11px;margin-top:8px;opacity:.6}

.cal-times{margin-top:34px;padding-top:30px;border-top:1px solid var(--line)}
.times-head{font-size:16px;font-weight:600;letter-spacing:-.015em;margin-bottom:18px}
.times-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.time{
  padding:13px 8px;border:1px solid var(--line);background:var(--paper);
  font-family:var(--sans);font-size:14.5px;cursor:pointer;
  transition:border-color .2s ease,background .2s ease,color .2s ease;
}
.time:hover{border-color:var(--ink)}
.time.sel{background:var(--ink);color:var(--paper);border-color:var(--ink)}

.empty-state{border:1px solid var(--line);padding:34px}
.empty-state p{font-size:16px;margin-bottom:10px}

/* --- fields --- */
.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:760px}
.fld{display:block}
.fld--wide{grid-column:1 / -1}
.fld span{
  display:block;font-family:var(--mono);font-size:10.5px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;margin-bottom:9px;
}
.fld input,.fld textarea{
  width:100%;padding:14px;border:1px solid var(--line);background:var(--paper);
  font-family:var(--sans);font-size:16px;color:var(--ink);border-radius:0;
}
.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--ink)}
.fld textarea{resize:vertical}

/* --- summary --- */
.summary{margin-top:44px;border:1px solid var(--line);padding:30px 30px 26px;max-width:760px}
.summary h3{font-family:var(--sans);font-weight:600;font-size:17px;letter-spacing:-.015em;margin-bottom:20px}
.sum-rows{border-top:1px solid var(--line)}
.sum-rows div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line);font-size:15px}
.sum-rows dt{font-weight:400}
.sum-rows dd{font-weight:500;text-align:right}
.sum-rows--money{margin-top:26px}
.sum-total{font-size:17px !important;font-weight:600}
.sum-total dt,.sum-total dd{font-weight:600}
.sum-note{margin-top:16px;font-family:var(--mono);font-size:11px;letter-spacing:.06em}

.agree{display:flex;gap:12px;align-items:flex-start;margin-top:30px;max-width:640px;font-size:14.5px}
.agree input{margin-top:3px;width:17px;height:17px;flex:none;accent-color:#0A0A0A}
.agree a{border-bottom:1px solid var(--line)}

.flow-nav{display:flex;gap:12px;align-items:center;margin-top:40px}
.btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;
  background:none;border:1px solid var(--line);color:var(--ink);
  font-family:var(--sans);font-size:16px;font-weight:600;line-height:1.2;
  padding:15px 30px;border-radius:100px;cursor:pointer;
  transition:border-color .2s ease;
}
.btn-ghost:hover{border-color:var(--ink)}
.flow-nav .btn-dark{border:none;cursor:pointer;font-family:var(--sans);margin-top:0}
.flow-nav .btn-dark:disabled{opacity:.25;cursor:not-allowed}

@media(max-width:900px){
  .type-grid{grid-template-columns:1fr 1fr}
  .steps-bar li{font-size:12px;padding:13px 12px}
}
@media(max-width:640px){
  .type-grid{grid-template-columns:1fr}
  .fields{grid-template-columns:1fr}
  .steps-bar li span{display:none}
  .flow{padding:44px 0 72px}
}

/* ================= PLATFORM PAGE ================= */
.pf-hero{padding:104px 0 0;text-align:center}
.pf-hero .crumb{margin-bottom:26px}
.pf-hero .tag{display:block;margin-bottom:24px}
.pf-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,5.6vw,4.4rem);line-height:1.05;letter-spacing:-.04em}
.pf-hero .lede{margin:26px auto 0;max-width:46ch;font-size:18px}
.pf-cta{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:34px}
/* the primary button carries a top margin from its base rule; without this the
   secondary stretches to match and renders as a tall oval */
.pf-cta .btn-dark,.pf-cta .btn-ghost-link{margin-top:0}
.btn-ghost-link{
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);padding:15px 30px;border-radius:100px;
  font-size:16px;font-weight:600;line-height:1.2;
  transition:border-color .2s ease,background .2s ease;
}
.btn-ghost-link:hover{border-color:var(--ink)}
.btn-ghost-link:hover{border-color:var(--ink)}
.pf-note{margin-top:18px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}

.shot{margin-top:72px;background:var(--ink);padding:34px 34px 0}
.shot-in{background:var(--paper);border-radius:10px 10px 0 0;overflow:hidden;text-align:left}
.shot-bar{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--line)}
.shot-dots{display:flex;gap:6px}
.shot-dots i{width:9px;height:9px;border-radius:100px;border:1px solid var(--line);display:block}
.shot-url{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;opacity:.55}
.dash{padding:26px 26px 34px}
.dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.dash-head h3{font-family:var(--sans);font-weight:600;font-size:19px;letter-spacing:-.02em}
.dash-head .who{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.55}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:24px}
.kpi{background:var(--paper);padding:18px}
.kpi dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.6;margin-bottom:8px}
.kpi dd{font-family:var(--serif);font-weight:700;letter-spacing:-.04em;font-size:30px;line-height:1.06}
.kpi dd em{font-style:normal;font-family:var(--sans);font-size:12px;margin-left:6px;opacity:.6}
table.roster{width:100%;border-collapse:collapse;font-size:13.5px}
.roster th{text-align:left;font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;opacity:.6;padding:0 12px 10px 0;border-bottom:1px solid var(--line)}
.roster td{padding:13px 12px 13px 0;border-bottom:1px solid var(--line);vertical-align:middle}
.roster td:last-child,.roster th:last-child{text-align:right;padding-right:0}
.roster .nm{font-weight:600;letter-spacing:-.01em}
.roster .sub{font-size:11.5px;opacity:.6;margin-top:2px}
.pill{display:inline-block;font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;border:1px solid var(--ink)}
.pill--now{background:var(--ink);color:var(--paper)}
.pill--soon{background:var(--paper);color:var(--ink)}
.pill--ok{border-color:var(--line);opacity:.55}
.tl{margin-top:34px;border-top:1px solid var(--line);padding-top:26px}
.tl h4{font-size:13px;font-weight:600;margin-bottom:20px}
.tl-track{position:relative;height:2px;background:var(--line);margin-top:38px}
.tl-fill{position:absolute;left:0;top:0;height:2px;width:38%;background:var(--ink)}
.tl-marks{display:flex;justify-content:space-between;margin-top:-5px}
.tl-mk{text-align:center;flex:1}
.tl-mk i{display:block;width:9px;height:9px;border-radius:100px;background:var(--line);margin:0 auto}
.tl-mk.done i,.tl-mk.now i{background:var(--ink)}
.tl-mk.now i{box-shadow:0 0 0 4px rgba(10,10,10,.12)}
.tl-mk span{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;margin-top:10px;opacity:.7}
.tl-mk b{display:block;font-size:12px;font-weight:600;margin-top:4px}

.proof{padding:96px 0;text-align:center}
.proof-lede{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:34px}
.proof-grid div{background:var(--paper);padding:44px 20px}
.proof-grid dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px}
.proof-grid dd{font-family:var(--serif);font-weight:700;letter-spacing:-.045em;font-size:clamp(2.6rem,5.8vw,4.2rem);line-height:1.02}
.proof-note{margin-top:28px;font-size:17px}

.feat{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border-block:1px solid var(--line)}
.feat article{background:var(--paper);padding:44px 40px}
.feat .n{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.18em;margin-bottom:16px;display:block}
.feat h3{font-family:var(--serif);letter-spacing:-.035em;font-weight:600;font-size:25px;line-height:1.12;margin-bottom:14px}
.feat p{font-size:15.5px;max-width:44ch}

.free{background:var(--ink);color:var(--paper);padding:100px 0;text-align:center}
.free .tag{display:block;color:var(--paper);margin-bottom:22px}
.free h2{font-family:var(--serif);letter-spacing:-.035em;font-weight:600;font-size:clamp(1.9rem,4.2vw,3.1rem);line-height:1.08}
.free p{margin:22px auto 0;max-width:52ch;font-size:17px;color:var(--paper)}
.free-claim{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase}
.free .btn{margin-top:34px}

/* ================= FORMS ================= */
.fld select{width:100%;padding:14px;border:1px solid var(--line);background:var(--paper);font-family:var(--sans);font-size:16px;color:var(--ink);border-radius:0;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-size:5px 5px;background-repeat:no-repeat}
.fld select:focus{outline:none;border-color:var(--ink)}
.emp-form h2,.flow h2.mt{font-family:var(--serif);letter-spacing:-.035em;font-weight:600;font-size:clamp(1.45rem,2.7vw,1.95rem);line-height:1.12;margin:0 0 26px}
.flow h2.mt{margin-top:56px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.err-box{border:1px solid var(--ink);padding:22px 24px;margin-bottom:34px}
.err-box strong{display:block;margin-bottom:10px;font-size:15.5px}
.err-box ul{margin:0 0 0 20px;font-size:14.5px}
.err-box li{margin-bottom:5px}
.free-note{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}
.confirm{border:1px solid var(--line);padding:48px}
.confirm .tag{display:block;margin-bottom:18px}
.type-flag{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;margin-top:12px}

@media(max-width:1000px){.kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){
  .feat{grid-template-columns:1fr}
  .shot{padding:20px 20px 0}
  .dash{padding:20px 18px 26px}
  .roster .hide-sm{display:none}
  .tl-mk b{font-size:10.5px}
}
@media(max-width:760px){
  .proof-grid{grid-template-columns:1fr}
  .proof-grid div{padding:30px 20px}
  .pf-hero{padding:64px 0 0}
  .proof,.free{padding:68px 0}
  .confirm{padding:30px 24px}
}

.promise{border-left:2px solid var(--ink);padding:2px 0 2px 18px;margin:0 0 34px;font-size:15.5px;max-width:58ch}

/* ================= SHARED: reveal + nav inversion ================= */
/* Scroll reveals removed. The hairline below is the only ambient motion. */
.rv,.rv.in{opacity:1;transform:none}
.nav.on-dark{background:rgba(10,10,10,.9);border-color:rgba(255,255,255,.14);color:var(--paper)}
.nav.on-dark .nav-logo{filter:invert(1)}
.nav.on-dark .nav-links a:not(.nav-pill){color:var(--paper)}
.nav.on-dark .nav-links a.nav-pill{background:var(--paper);color:var(--ink) !important}

/* ================= ABOUT ================= */
.ab-grid{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:0 64px;align-items:start}
.ab-rail{position:sticky;top:110px}
.ab-rail .tag{display:block;opacity:.85}
.ab-rail .num{font-size:clamp(3rem,5vw,4.6rem);font-weight:800;letter-spacing:-.05em;
  line-height:.9;margin-top:12px;opacity:.14}
.ab-rail .rule{height:1px;background:var(--line);margin-top:20px}

.ab-open{padding:80px 0 72px;border-bottom:1px solid var(--line)}
.ab-open .crumb{margin-bottom:26px}
.ab-open .who{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  opacity:.55;margin-bottom:26px}
.ab-open h1{font-size:clamp(2.2rem,5.6vw,4.4rem);font-weight:700;letter-spacing:-.045em;
  line-height:1.04;max-width:17ch}
.ab-open .after{margin-top:30px;font-size:clamp(1.05rem,1.9vw,1.3rem);line-height:1.5;max-width:52ch}

.ab-pivot{background:var(--ink);color:var(--paper);padding:82px 0}
.ab-pivot .ab-grid{align-items:center}
.ab-pivot .ab-rail .tag{color:var(--paper);opacity:.55}
.ab-pivot .ab-rail .rule{background:rgba(255,255,255,.25)}
.ab-pivot h2{font-size:clamp(3.4rem,11vw,8rem);font-weight:800;letter-spacing:-.06em;line-height:.9}
.ab-pivot .sub{margin-top:24px;font-size:clamp(1.05rem,1.8vw,1.25rem);max-width:44ch;opacity:.75;color:var(--paper)}

.ab-sec{padding:82px 0;border-bottom:1px solid var(--line)}
.ab-sec p{font-size:17.5px;line-height:1.62;margin-bottom:22px;max-width:60ch}
.ab-sec p:last-child{margin-bottom:0}
.ab-sec h2{font-size:clamp(1.7rem,3.6vw,2.6rem);font-weight:700;letter-spacing:-.04em;
  line-height:1.1;margin-bottom:28px;max-width:20ch}
.ab-sec .kicker{font-size:20px !important;font-weight:700;letter-spacing:-.025em;
  line-height:1.35;max-width:44ch !important}

.ab-say{padding:64px 0;border-bottom:1px solid var(--line);background:#FAFAFA}
.ab-say .ab-grid{align-items:center}
.ab-say p{font-size:clamp(1.5rem,3.6vw,2.6rem);font-weight:700;letter-spacing:-.04em;
  line-height:1.16;max-width:26ch}

.ab-dark{background:var(--ink);color:var(--paper);border-color:transparent}
.ab-dark p,.ab-dark h2{color:var(--paper)}
.ab-dark .ab-rail .tag{color:var(--paper);opacity:.55}
.ab-dark .ab-rail .num{opacity:.2}
.ab-dark .ab-rail .rule{background:rgba(255,255,255,.25)}
.ab-dark a{border-bottom:1px solid rgba(255,255,255,.45)}

.twin{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:52px 0 48px;width:100%;max-width:none}
.tw{background:var(--ink);border:1px solid rgba(255,255,255,.3);padding:36px 34px 32px}
.tw-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  opacity:.6;display:block;margin-bottom:14px}
.tw h3{font-size:25px;font-weight:700;letter-spacing:-.03em;line-height:1.16;
  margin-bottom:26px;min-height:2.32em}
.tw-rows div{display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:14px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:15px}
.tw-rows div:last-child{border-bottom:none}
.tw-rows .a{font-weight:600}
.tw-rows .b{font-family:var(--mono);font-size:12px;opacity:.62}
.tw-rows .c{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid rgba(255,255,255,.55);padding:5px 10px;white-space:nowrap}
.tw-steps{display:flex;gap:9px;margin-bottom:20px}
.tw-steps i{width:30px;height:30px;border-radius:100px;border:1px solid rgba(255,255,255,.35);
  display:flex;align-items:center;justify-content:center;font-style:normal;
  font-family:var(--mono);font-size:11.5px;opacity:.5}
.tw-steps i.on{background:var(--paper);color:var(--ink);border-color:var(--paper);opacity:1}
.tw-p{font-size:14.5px !important;opacity:.72;margin:22px 0 0 !important;line-height:1.55;max-width:none !important}

.ab-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border-bottom:1px solid var(--line)}
.ab-stats div{background:var(--paper);padding:48px 26px;text-align:center}
.ab-stats dt{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;margin-bottom:14px;opacity:.7}
.ab-stats dd{font-size:clamp(2.4rem,5.4vw,3.8rem);font-weight:800;letter-spacing:-.05em;line-height:1}

.ab-check{padding:82px 0;border-bottom:1px solid var(--line)}
.ab-lic{font-family:var(--mono);font-size:clamp(2rem,6.4vw,4.4rem);font-weight:500;
  letter-spacing:.02em;line-height:1}
.ab-reg{margin-top:16px;font-size:15px;opacity:.7}
.ab-dare{margin-top:28px;font-size:clamp(1.1rem,2vw,1.4rem);font-weight:700;
  letter-spacing:-.03em;max-width:30ch}
.ab-check .btn-dark{margin-top:28px}

.ab-close{padding:56px 0;border-bottom:1px solid var(--line)}
.ab-close p{font-size:17.5px;line-height:1.6;max-width:52ch}

@media(max-width:860px){
  .ab-grid{grid-template-columns:1fr;gap:20px}
  .ab-rail{position:static;display:flex;align-items:baseline;gap:16px}
  .ab-rail .num{margin-top:0;font-size:2.2rem;opacity:.2}
  .ab-rail .rule{display:none}
}
@media(max-width:640px){
  .ab-open,.ab-sec,.ab-pivot,.ab-check{padding:56px 0}
  .ab-say{padding:44px 0}
  .ab-stats{grid-template-columns:1fr}
  .ab-stats div{padding:32px 26px}
  .twin{grid-template-columns:1fr;gap:14px;margin:36px 0 34px}
  .tw h3{min-height:0}
}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}

/* ================= CLIENT PORTAL PAGE ================= */
.pstep{display:flex;align-items:flex-start;margin:0 0 26px}
.ps{flex:1;text-align:center;position:relative}
.ps::before{content:"";position:absolute;top:13px;left:-50%;width:100%;height:1px;background:var(--line)}
.ps:first-child::before{display:none}
.ps.done::before,.ps.now::before{background:var(--ink)}
.ps i{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;
  width:27px;height:27px;border-radius:100px;border:1px solid var(--line);background:var(--paper);
  font-family:var(--mono);font-size:11px;font-style:normal}
.ps.done i,.ps.now i{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ps span{display:block;margin-top:10px;font-size:11.5px;line-height:1.35;opacity:.55;padding:0 4px}
.ps.now span{opacity:1;font-weight:600}
.kpi dd em{font-style:normal;font-family:var(--sans);font-size:12px;font-weight:400;margin-left:7px;opacity:.6}
.proof-line{font-size:clamp(1.5rem,3.6vw,2.6rem);font-weight:700;letter-spacing:-.04em;
  line-height:1.16;max-width:26ch;margin:0 auto}
@media(max-width:760px){
  .pstep{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 0}
  .ps::before{display:none}
}


/* ================= MOBILE MENU ================= */
.burger{
  display:none;align-items:center;justify-content:center;flex-direction:column;gap:6px;
  width:44px;height:44px;margin-left:4px;padding:0;
  background:none;border:none;cursor:pointer;
}
.burger span{display:block;width:20px;height:1.5px;background:var(--ink);transition:background .35s ease}
.nav.on-dark .burger span{background:var(--paper)}

body.menu-open{position:fixed;left:0;right:0;width:100%;overflow:hidden}

.menu{
  position:fixed;inset:0;z-index:200;background:var(--paper);
  display:flex;flex-direction:column;overflow-y:auto;
  animation:menuIn .28s cubic-bezier(.2,.7,.3,1);
}
.menu[hidden]{display:none}
@keyframes menuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

.menu-top{
  display:flex;align-items:center;justify-content:space-between;
  height:76px;padding:0 26px;border-bottom:1px solid var(--line);flex:none;
}
.menu-x{
  width:44px;height:44px;position:relative;background:none;border:none;cursor:pointer;padding:0;
}
.menu-x span{
  position:absolute;left:12px;top:21px;width:20px;height:1.5px;background:var(--ink);
}
.menu-x span:first-child{transform:rotate(45deg)}
.menu-x span:last-child{transform:rotate(-45deg)}

.menu-body{flex:1;padding:32px 26px 24px}
.menu-label{
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.22em;
  text-transform:uppercase;opacity:.5;margin:28px 0 12px;
}
.menu-label:first-child{margin-top:0}
.menu-body a{
  display:block;font-size:21px;font-weight:600;letter-spacing:-.03em;
  padding:11px 0;border-bottom:1px solid var(--line);
}
.menu-body a:last-child{border-bottom:none}

.menu-foot{
  flex:none;padding:24px 26px 34px;border-top:1px solid var(--line);
  background:var(--paper);
}
.menu-foot .btn-dark{margin-top:0;width:100%}
.menu-call{
  margin-top:18px;text-align:center;font-size:14px;
}
.menu-call a{border-bottom:1px solid var(--line)}

@media(prefers-reduced-motion:reduce){.menu{animation:none}}

/* =========================================================================
   RESPONSIVE NAV  —  must stay at the end of this file.
   These override base rules of equal specificity, so if they appear earlier
   the base rules win and the menu button never shows.
   ========================================================================= */
@media(max-width:1000px){
  .nav-links .sm-hide{display:none}
}
@media(max-width:760px){
  .nav-links{gap:12px}
  .nav-links a:not(.nav-pill){display:none}
  .nav-links .burger{display:inline-flex}
}
@media(max-width:560px){
  .nav-links{gap:8px}
  .nav-links a.nav-pill{font-size:0;line-height:0;padding:0 20px}
  .nav-links a.nav-pill::after{
    content:"Book";font-size:15px;font-weight:600;line-height:1;white-space:nowrap;
  }
}


/* =========================================================================
   MOTION  —  four movements, one curve, nothing on a timer
   ========================================================================= */

/* Materials yield under a press and settle back. Not bounce. Settle. */
.btn-dark,.btn,.btn-ghost,.btn-ghost-link,.door-go,.tile .go,.slot,.time,.cal-day,
.type .type-in,button.replay{
  transition:transform .42s var(--ease),opacity .2s ease,
             background .45s var(--ease),color .45s var(--ease),border-color .3s var(--ease);
}
.btn-dark:active,.btn:active,.btn-ghost:active,.btn-ghost-link:active,
.time:active,.cal-day:active{transform:scale(.965)}
.tile:active{transform:scale(.995)}
.door:active:not(.chosen){transform:scale(.995)}

/* A choice should feel decided. The fill runs slower than the press. */
.time.sel,.cal-day.sel,.type input:checked + .type-in{
  transition:background .5s var(--ease),color .5s var(--ease),border-color .35s var(--ease);
}

/* The one piece of ambient motion: a hairline draws itself as a section arrives. */
.draw{position:relative}
.draw::after{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--ink);
  transform:scaleX(0);transform-origin:left;transition:transform .95s var(--ease);
}
.draw.drawn::after{transform:scaleX(1)}

/* The doors: the panel you press expands until it is the page. */
/* ---- the door opens ------------------------------------------------------
   The chosen panel widens and the other closes, by animating the grid columns.
   The previous version switched the panel to position:absolute mid animation,
   which moved it a pixel or two before it grew. That was the lurch.
   Animating grid-template-columns keeps everything in place while it changes. */
.doors{transition:grid-template-columns .52s var(--ease)}
.door{overflow:hidden;min-width:0}
.doors.leaving{pointer-events:none}
.doors.leaving.to-dark{grid-template-columns:1fr 0fr}
.doors.leaving.to-light{grid-template-columns:0fr 1fr}
.doors.leaving .door:not(.chosen){opacity:0;transition:opacity .26s var(--ease)}
.doors.leaving .door.chosen > *{transition:opacity .3s var(--ease) .1s}
.doors.leaving .door.chosen{transition:none}

@media(prefers-reduced-motion:reduce){
  .doors,.doors.leaving .door{transition:none}
  .doors.leaving.to-dark,.doors.leaving.to-light{grid-template-columns:1fr 1fr}
}


/* =========================================================================
   THE PAUSE  —  homepage hero
   A cursor waits, the word types, the full stop lands on its own beat.
   ========================================================================= */
.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;
}
.hero-say .word{min-height:1em}
.hero-say .cur{
  display:inline-block;width:.055em;height:.72em;background:var(--ink);
  vertical-align:baseline;
}
.hero-say .cur.blink{animation:cursorBlink 1.05s step-end infinite}
.hero-say .cur.gone{display:none}
@keyframes cursorBlink{0%,100%{opacity:1}50%{opacity:0}}

@media(prefers-reduced-motion:reduce){
  .hero-say .cur{display:none;animation:none}
}


/* ---- show or hide a password while typing it ---- */
.pw-wrap{position:relative;display:block}
.pw-wrap input{padding-right:74px}
.pw-see{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  background:none;border:none;cursor:pointer;
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
  padding:10px 8px;min-height:40px;
}
.pw-see:hover{opacity:.6}

/* ================= ADMIN CALENDAR ================= */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.cal-head strong{font-size:18px;font-weight:700;letter-spacing:-.02em}
.cal-nav{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--line);padding:9px 14px;border-radius:100px;transition:border-color .2s ease}
.cal-nav:hover{border-color:var(--ink)}

.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
.cal-dow{background:var(--paper);padding:10px 8px;text-align:center;
  font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;opacity:.6}
.cal-cell{background:var(--paper);min-height:104px;padding:8px;display:flex;flex-direction:column;gap:4px}
.cal-cell--empty{background:#FAFAFA}
.cal-cell.is-past{opacity:.42}
.cal-cell.is-today{box-shadow:inset 0 0 0 2px var(--ink)}
.cal-cell.is-closed{background:repeating-linear-gradient(135deg,#FAFAFA,#FAFAFA 6px,#F0F0F0 6px,#F0F0F0 12px)}
.cal-cell.is-full .cal-num{text-decoration:underline;text-underline-offset:3px}

.cal-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.cal-num{font-size:14px;font-weight:700;letter-spacing:-.02em}
.cal-toggle button{
  background:none;border:1px solid var(--line);cursor:pointer;
  font-family:var(--mono);font-size:8.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
  padding:3px 6px;color:var(--ink);opacity:0;transition:opacity .2s ease,border-color .2s ease;
}
.cal-cell:hover .cal-toggle button{opacity:.75}
.cal-toggle button:hover{opacity:1;border-color:var(--ink)}
.cal-cell.is-closed .cal-toggle button{opacity:.8}

.cal-flag{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;opacity:.6}
.cal-book{
  display:block;font-size:11px;line-height:1.3;padding:4px 6px;
  background:var(--ink);color:var(--paper);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cal-book b{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;font-weight:500}
.cal-book.is-emp{background:var(--paper);color:var(--ink);border:1px solid var(--ink)}

.cal-key{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:16px;
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.cal-key span{display:inline-flex;align-items:center;gap:7px}
.cal-key i{width:11px;height:11px;display:inline-block;border:1px solid var(--ink)}
.cal-key .k-book{background:var(--ink)}
.cal-key .k-emp{background:var(--paper)}
.cal-key .k-closed{background:repeating-linear-gradient(135deg,#FAFAFA,#FAFAFA 3px,#E0E0E0 3px,#E0E0E0 6px)}

@media(max-width:820px){
  .cal-cell{min-height:76px;padding:6px}
  .cal-book{font-size:10px;padding:3px 4px}
  .cal-toggle button{opacity:.7}
}
@media(max-width:560px){
  .cal-grid{font-size:11px}
  .cal-cell{min-height:62px}
  .cal-book b{display:block}
}

/* ================= ADMIN CALENDAR ================= */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.cal-head strong{font-size:18px;font-weight:700;letter-spacing:-.02em}
.cal-nav{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--line);padding:9px 14px;border-radius:100px;transition:border-color .2s ease}
.cal-nav:hover{border-color:var(--ink)}

.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
.cal-dow{background:var(--paper);padding:10px 8px;text-align:center;
  font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;opacity:.6}
.cal-cell{background:var(--paper);min-height:104px;padding:8px;display:flex;flex-direction:column;gap:4px}
.cal-cell--empty{background:#FAFAFA}
.cal-cell.is-past{opacity:.42}
.cal-cell.is-today{box-shadow:inset 0 0 0 2px var(--ink)}
.cal-cell.is-closed{background:repeating-linear-gradient(135deg,#FAFAFA,#FAFAFA 6px,#F0F0F0 6px,#F0F0F0 12px)}
.cal-cell.is-full .cal-num{text-decoration:underline;text-underline-offset:3px}

.cal-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.cal-num{font-size:14px;font-weight:700;letter-spacing:-.02em}
.cal-toggle button{
  background:none;border:1px solid var(--line);cursor:pointer;
  font-family:var(--mono);font-size:8.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
  padding:3px 6px;color:var(--ink);opacity:0;transition:opacity .2s ease,border-color .2s ease;
}
.cal-cell:hover .cal-toggle button{opacity:.75}
.cal-toggle button:hover{opacity:1;border-color:var(--ink)}
.cal-cell.is-closed .cal-toggle button{opacity:.8}

.cal-flag{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;opacity:.6}
.cal-book{
  display:block;font-size:11px;line-height:1.3;padding:4px 6px;
  background:var(--ink);color:var(--paper);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cal-book b{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;font-weight:500}
.cal-book.is-emp{background:var(--paper);color:var(--ink);border:1px solid var(--ink)}

.cal-key{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:16px;
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.cal-key span{display:inline-flex;align-items:center;gap:7px}
.cal-key i{width:11px;height:11px;display:inline-block;border:1px solid var(--ink)}
.cal-key .k-book{background:var(--ink)}
.cal-key .k-emp{background:var(--paper)}
.cal-key .k-closed{background:repeating-linear-gradient(135deg,#FAFAFA,#FAFAFA 3px,#E0E0E0 3px,#E0E0E0 6px)}

@media(max-width:820px){
  .cal-cell{min-height:76px;padding:6px}
  .cal-book{font-size:10px;padding:3px 4px}
  .cal-toggle button{opacity:.7}
}
@media(max-width:560px){
  .cal-grid{font-size:11px}
  .cal-cell{min-height:62px}
  .cal-book b{display:block}
}

/* ================= REACTIVE VS PROACTIVE ================= */
.vs{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);
  border-block:1px solid var(--line)}
.vs article{background:var(--paper);padding:52px 44px}
.vs .tag{display:block;margin-bottom:16px;opacity:.6}
.vs h2{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:700;letter-spacing:-.04em;
  line-height:1.1;margin-bottom:28px}
.vs ul{list-style:none;margin:0}
.vs li{position:relative;padding:13px 0 13px 30px;border-bottom:1px solid var(--line);font-size:15.5px;line-height:1.5}
.vs li:last-child{border-bottom:none}
.vs li::before{position:absolute;left:0;top:13px;font-family:var(--mono);font-size:13px}
.vs-a li{opacity:.62}
.vs-a li::before{content:"\00d7"}
.vs-b li::before{content:"\2713"}
.vs-b{background:var(--ink) !important;color:var(--paper)}
.vs-b .tag{color:var(--paper)}
.vs-b li{border-color:rgba(255,255,255,.18)}

/* ================= THE CYCLE ================= */
.cycle{list-style:none;margin:0;counter-reset:none}
.cycle li{
  display:grid;grid-template-columns:64px 1fr;gap:0 28px;align-items:start;
  padding:32px 0;border-top:1px solid var(--line);
}
.cycle li:last-child{border-bottom:1px solid var(--line)}
.cycle .n{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.16em;
  padding-top:5px;opacity:.5}
.cycle h3{font-size:21px;font-weight:700;letter-spacing:-.025em;line-height:1.2;margin-bottom:10px}
.cycle p{font-size:16px;line-height:1.6;max-width:60ch;margin:0}

@media(max-width:820px){
  .vs{grid-template-columns:1fr}
  .vs article{padding:40px 26px}
}
@media(max-width:560px){
  .cycle li{grid-template-columns:1fr;gap:8px}
  .cycle .n{padding-top:0}
}

/* =========================================================================
   LMIA PAGE  —  one idea per screen, centred, unafraid of empty space
   ========================================================================= */
.lm-hero{padding:88px 0 84px;text-align:center}
.lm-hero .crumb{margin-bottom:30px}
.lm-hero h1{
  font-size:clamp(2.1rem,5.4vw,4.4rem);font-weight:700;
  letter-spacing:-.045em;line-height:1.05;max-width:17ch;margin:0 auto;
}
.lm-sub{margin:28px auto 0;max-width:36ch;font-size:clamp(1.05rem,2vw,1.35rem);opacity:.78}

.lm-claim{background:var(--ink);color:var(--paper);padding:112px 0;text-align:center}
.lm-big{font-size:clamp(3.6rem,14vw,11rem);font-weight:800;letter-spacing:-.06em;line-height:.9}
.lm-claim-sub{margin:30px auto 0;max-width:32ch;font-size:clamp(1.05rem,2vw,1.3rem);
  color:var(--paper);opacity:.72;line-height:1.5}

.lm-split{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
.lm-half{padding:76px 44px;text-align:center;border-right:1px solid var(--line)}
.lm-half:last-child{border-right:none}
.lm-half .tag{display:block;margin-bottom:14px;opacity:.6}
.lm-half h2{font-size:clamp(1.5rem,3.2vw,2.2rem);font-weight:700;letter-spacing:-.04em;margin-bottom:20px}
.lm-word{font-size:clamp(2.4rem,6.4vw,4.6rem);font-weight:800;letter-spacing:-.055em;line-height:1}
.lm-half p:last-child{margin:22px auto 0;max-width:27ch;font-size:16px;opacity:.72;line-height:1.5}
.lm-half--dark{background:var(--ink);color:var(--paper)}
.lm-half--dark .tag,.lm-half--dark p{color:var(--paper)}

.lm-steps{padding:96px 0 0;text-align:center}
.lm-eyebrow{display:block;margin-bottom:18px;opacity:.6}
.lm-h2{font-size:clamp(1.9rem,4.4vw,3.2rem);font-weight:700;letter-spacing:-.042em;
  line-height:1.08;max-width:20ch;margin:0 auto}
.lm-step{padding:60px 0;border-top:1px solid var(--line);text-align:center}
.lm-steps > .wrap + .lm-step{margin-top:72px}
.lm-step .n{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.22em;
  text-transform:uppercase;display:block;margin-bottom:20px;opacity:.5}
.lm-step h3{font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:700;letter-spacing:-.04em;
  line-height:1.1;max-width:21ch;margin:0 auto}
.lm-step p{margin:18px auto 0;max-width:46ch;font-size:16.5px;line-height:1.6;opacity:.78}

.lm-note{padding:56px 0 0}
.lm-note .todo{max-width:64ch;margin:0 auto}

.lm-scope{padding:100px 0;text-align:center;border-top:1px solid var(--line)}
.lm-scope-sub{margin:24px auto 0;max-width:44ch;font-size:17px;line-height:1.6;opacity:.78}
.lm-scope .btn-dark{margin-top:32px}

.lm-tool{background:var(--ink);color:var(--paper);padding:104px 0;text-align:center}
.lm-tool .tag{color:var(--paper)}
.lm-tool-sub{margin:24px auto 0;max-width:46ch;font-size:17px;line-height:1.6;color:var(--paper);opacity:.75}
.lm-tool .btn{margin-top:32px}

@media(max-width:820px){
  .lm-split{grid-template-columns:1fr}
  .lm-half{border-right:none;border-bottom:1px solid var(--line);padding:52px 26px}
  .lm-half:last-child{border-bottom:none}
}
@media(max-width:640px){
  .lm-hero{padding:56px 0 56px}
  .lm-claim{padding:76px 0}
  .lm-steps{padding-top:64px}
  .lm-step{padding:44px 0}
  .lm-steps > .wrap + .lm-step{margin-top:48px}
  .lm-scope,.lm-tool{padding:68px 0}
}

/* ---- assessment answers in the admin ---- */
.assess{border:1px solid var(--line);margin:6px 0 14px}
.assess summary{cursor:pointer;padding:12px 16px;font-size:13.5px;font-weight:600;list-style:none}
.assess summary::-webkit-details-marker{display:none}
.assess summary::before{content:"+ ";font-family:var(--mono);opacity:.5}
.assess[open] summary::before{content:"\2212 "}
.assess-list{border-top:1px solid var(--line);padding:6px 16px 14px}
.assess-list div{display:flex;gap:18px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
.assess-list div:last-child{border-bottom:none}
.assess-list dt{flex:0 0 40%;opacity:.6}
.assess-list dd{flex:1;font-weight:600}

/* =========================================================================
   CONFIRMATION  —  the assessment is the point of this page
   ========================================================================= */
.cf-top{padding:80px 0 68px;text-align:center;border-bottom:1px solid var(--line)}
.cf-top .tag{display:block;margin-bottom:22px;opacity:.55}
.cf-top h1{font-size:clamp(2rem,5vw,3.6rem);font-weight:700;letter-spacing:-.045em;
  line-height:1.06;max-width:16ch;margin:0 auto}
.cf-when{margin-top:22px;font-size:clamp(1.05rem,2vw,1.35rem);font-weight:600;letter-spacing:-.02em}
.cf-sent{margin-top:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;opacity:.5}

.cf-ask{background:var(--ink);color:var(--paper);padding:96px 0;text-align:center}
.cf-ask .tag{display:block;color:var(--paper);opacity:.55;margin-bottom:24px}
.cf-ask h2{font-size:clamp(1.9rem,4.6vw,3.2rem);font-weight:700;letter-spacing:-.042em;line-height:1.1}
.cf-ask-sub{margin:26px auto 0;max-width:48ch;font-size:17px;line-height:1.6;color:var(--paper);opacity:.78}
.cf-ask .btn{margin-top:36px}
.cf-ask-note{margin-top:18px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--paper);opacity:.45}

.cf-detail{padding:76px 0}
.cf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
.cf-grid > div{background:var(--paper);padding:28px 24px}
.cf-grid dt{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;opacity:.55;margin-bottom:12px}
.cf-grid dd{font-size:16px;font-weight:600;letter-spacing:-.015em;line-height:1.4}
.cf-grid .cf-alt{margin-top:7px;font-size:13.5px;font-weight:400;opacity:.6}
.cf-grid .cf-alt a{border-bottom:1px solid var(--line)}

.cf-cal{margin-top:34px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.cf-cal .btn-dark{margin-top:0}
.cf-cal-note{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.5}

.cf-fine{padding:0 0 90px}
.cf-fine-grid{display:grid;grid-template-columns:1fr 1fr;gap:46px;
  border-top:1px solid var(--line);padding-top:40px}
.cf-fine h3{font-size:16px;font-weight:700;letter-spacing:-.02em;margin-bottom:10px}
.cf-fine p{font-size:15px;line-height:1.6;opacity:.75;max-width:46ch}
.cf-fine a{border-bottom:1px solid var(--line)}

@media(max-width:900px){
  .cf-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .cf-top{padding:52px 0 44px}
  .cf-ask{padding:64px 0}
  .cf-detail{padding:52px 0}
  .cf-grid{grid-template-columns:1fr}
  .cf-fine-grid{grid-template-columns:1fr;gap:30px}
  .cf-fine{padding-bottom:64px}
}

/* =========================================================================
   ASSESSMENT  —  sidebar rail, grouped cards
   Everything is prefixed as- so it cannot touch the rest of the site.
   ========================================================================= */
.as-top{border-bottom:1px solid var(--line)}
.as-top-in{max-width:1080px;margin:0 auto;padding:34px 26px 30px}
.as-kick{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;opacity:.5}
.as-top h1{margin-top:12px;font-size:clamp(1.6rem,3.2vw,2.2rem);font-weight:700;
  letter-spacing:-.038em;line-height:1.14}
.as-meta{margin-top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;opacity:.5}

.as-shell{max-width:1080px;margin:0 auto;padding:40px 26px 70px;display:grid;
  grid-template-columns:190px 1fr;gap:0 58px;align-items:start}

.as-rail{position:sticky;top:24px}
.as-rail ol{list-style:none;margin:0}
.as-rail li{padding:9px 0 9px 16px;border-left:2px solid var(--line);font-size:13.5px;opacity:.42;
  transition:opacity .3s var(--ease),border-color .3s var(--ease)}
.as-rail li.on{border-left-color:var(--ink);opacity:1;font-weight:600}
.as-rail li.done{opacity:.68}
.as-save{margin-top:24px;padding-left:18px;font-family:var(--mono);font-size:9.5px;
  letter-spacing:.14em;text-transform:uppercase;opacity:.38}

.as-step{display:none}
.as-step.show{display:block}
.as-step h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:700;letter-spacing:-.035em;line-height:1.15}
.as-sub{margin-top:10px;font-size:15.5px;opacity:.7;max-width:50ch}

.as-card{background:#F6F6F6;padding:28px 30px;margin-top:16px}
.as-card h3{font-size:15px;font-weight:700;letter-spacing:-.015em;margin-bottom:6px}
.as-cs{font-size:13.5px;opacity:.6;margin-bottom:20px;max-width:52ch}
.as-card h3 + .as-g,.as-card h3 + .as-lab,.as-card h3 + .as-seg{margin-top:18px}

.as-g{display:grid;gap:16px;margin-bottom:16px}
.as-g2{grid-template-columns:1fr 1fr}
.as-g3{grid-template-columns:1fr 1fr 1fr}
.as-g4{grid-template-columns:repeat(4,1fr)}
.as-g:last-child{margin-bottom:0}

.as-lab{display:block;font-size:12.5px;font-weight:600;opacity:.58;margin-bottom:7px}
.as-in{width:100%;border:1px solid transparent;background:#FFF;padding:13px 14px;
  font-size:15.5px;border-radius:0;font-family:var(--sans);color:var(--ink)}
.as-in:focus{outline:none;border-color:var(--ink)}
.as-in::placeholder{opacity:.32}
select.as-in{appearance:none;padding-right:32px;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 17px) 21px,calc(100% - 12px) 21px;background-size:5px 5px;background-repeat:no-repeat}
textarea.as-in{line-height:1.6;resize:vertical}

.as-seg{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}
.as-seg:last-child{margin-bottom:0}
.as-seg label{position:relative}
.as-seg input{position:absolute;opacity:0;width:0;height:0}
.as-seg span{display:inline-block;padding:9px 15px;background:#FFF;border:1px solid transparent;
  border-radius:100px;font-size:14.5px;cursor:pointer;
  transition:background .26s var(--ease),color .26s var(--ease),border-color .2s var(--ease)}
.as-seg label:hover span{border-color:var(--ink)}
.as-seg input:checked + span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.as-seg input:focus-visible + span{outline:2px solid var(--ink);outline-offset:2px}

.as-hint{font-size:13px;opacity:.58;margin-top:14px;line-height:1.55;max-width:56ch}
.as-check{display:inline-flex;align-items:center;gap:9px;font-size:14px;cursor:pointer;margin-top:4px}
.as-check input{width:16px;height:16px;accent-color:#0A0A0A}

.as-reveal{border-left:2px solid var(--ink);padding-left:18px;margin-top:18px}
.as-reveal.hidden,.hidden{display:none}

.as-entry-h{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}
.as-entry-h b{font-size:15px;font-weight:700;letter-spacing:-.015em}
.as-entry-h button{background:none;border:none;font-family:var(--mono);font-size:9.5px;
  letter-spacing:.14em;text-transform:uppercase;opacity:.45;padding:4px;cursor:pointer;color:var(--ink)}
.as-entry-h button:hover{opacity:1}
.as-add{margin-top:16px;background:none;border:1px dashed var(--line);width:100%;padding:16px;
  font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);cursor:pointer;transition:border-color .2s var(--ease)}
.as-add:hover{border-color:var(--ink);border-style:solid}

.as-nav{display:flex;gap:14px;align-items:center;margin-top:34px}
.as-btn{background:var(--ink);color:var(--paper);border:none;font-size:16px;font-weight:600;
  padding:15px 30px;border-radius:100px;cursor:pointer;font-family:var(--sans);
  transition:transform .42s var(--ease),opacity .2s ease}
.as-btn:active{transform:scale(.965)}
.as-btn:disabled{opacity:.4;cursor:not-allowed}
.as-ghost{background:none;border:none;font-size:16px;font-weight:600;opacity:.5;padding:15px 4px;
  cursor:pointer;font-family:var(--sans);color:var(--ink)}
.as-ghost:hover{opacity:1}

.as-privacy{margin-top:22px;font-size:13px;line-height:1.65;opacity:.66;max-width:58ch}
.as-privacy b{display:block;margin-bottom:5px;opacity:1;font-weight:600;font-size:13.5px}

.as-done{display:none;padding:70px 0}
.as-done.show{display:block}
.as-done .big{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800;letter-spacing:-.05em;line-height:1}
.as-done p{margin-top:20px;max-width:44ch;font-size:16.5px;opacity:.75}

@media(max-width:820px){
  .as-shell{grid-template-columns:1fr;gap:22px;padding-top:26px}
  .as-rail{position:static}
  .as-rail ol{display:flex;flex-wrap:wrap;gap:6px}
  .as-rail li{border-left:none;padding:7px 13px;border:1px solid var(--line);border-radius:100px;font-size:12px}
  .as-rail li.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .as-save{padding-left:0;margin-top:16px}
  .as-g2,.as-g3,.as-g4{grid-template-columns:1fr}
  .as-card{padding:22px 20px}
}

/* ---- assessment answers, grouped ---- */
.assess-step{font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;opacity:.5;padding:16px 16px 0}
.assess-group{font-size:14px;font-weight:700;letter-spacing:-.015em;padding:10px 16px 2px}

/* =========================================================================
   APPLICANTS  —  Apple structure, soft cards
   ========================================================================= */
.ap-hero{padding:88px 0 84px;text-align:center}
.ap-hero .crumb{margin-bottom:30px}
.ap-hero h1{font-size:clamp(2.3rem,6vw,4.6rem);font-weight:700;letter-spacing:-.05em;
  line-height:1.03;max-width:15ch;margin:0 auto}
.ap-lede{margin:28px auto 0;max-width:40ch;font-size:clamp(1.05rem,2.2vw,1.4rem);
  line-height:1.45;opacity:.72}
.ap-cta{margin-top:36px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.ap-cta .btn-dark{margin-top:0}
.btn-line{display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);font-size:16px;font-weight:600;line-height:1.2;
  padding:15px 30px;border-radius:100px;min-height:44px;
  transition:border-color .2s var(--ease),transform .42s var(--ease)}
.btn-line:hover{border-color:var(--ink)}
.btn-line:active{transform:scale(.965)}

.ap-band{padding:72px 0 0;text-align:center}
.ap-h2{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:700;letter-spacing:-.042em;
  line-height:1.08;max-width:22ch;margin:0 auto}
.ap-sub{margin:20px auto 0;max-width:48ch;font-size:17px;line-height:1.6;opacity:.75}
.ap-sub a{border-bottom:1px solid var(--line)}
.ap-eyebrow{display:block;margin-bottom:18px;opacity:.5}

.ap-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:46px;text-align:left}
.ap-tile--wide{grid-column:1 / -1}
.ap-tile{
  background:#F5F5F7;border-radius:20px;padding:44px 40px;display:block;
  transition:transform .5s var(--ease),background .4s var(--ease);
}
.ap-tile:hover{transform:translateY(-3px)}
.ap-tile:active{transform:translateY(-1px) scale(.995)}
.ap-tile .tag{display:block;opacity:.45;margin-bottom:18px}
.ap-tile h3{font-size:clamp(1.35rem,2.6vw,1.8rem);font-weight:700;letter-spacing:-.035em;
  line-height:1.12;margin-bottom:14px;max-width:17ch}
.ap-tile p{font-size:15.5px;line-height:1.6;opacity:.72;max-width:42ch}
.ap-go{display:inline-flex;align-items:center;gap:9px;margin-top:22px;
  font-size:15px;font-weight:600;transition:gap .34s var(--ease)}
.ap-tile:hover .ap-go{gap:15px}
.ap-tile--dark{background:var(--ink);color:var(--paper)}
.ap-tile--dark .tag{color:var(--paper)}
.ap-tile--dark p{color:var(--paper);opacity:.75}

.ap-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border-block:1px solid var(--line);margin-top:80px}
.ap-steps > div{background:var(--paper);padding:46px 34px;text-align:center}
.ap-steps .n{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  opacity:.45;display:block;margin-bottom:16px}
.ap-steps h4{font-size:19px;font-weight:700;letter-spacing:-.025em;margin-bottom:10px}
.ap-steps p{font-size:15px;line-height:1.55;opacity:.72;max-width:30ch;margin:0 auto}

.ap-claim{background:var(--ink);color:var(--paper);padding:96px 0;text-align:center}
.ap-claim h2{font-size:clamp(2rem,5vw,3.2rem);font-weight:700;letter-spacing:-.045em;
  line-height:1.08;max-width:18ch;margin:0 auto}
.ap-claim p{margin:24px auto 0;max-width:46ch;font-size:17px;line-height:1.6;
  color:var(--paper);opacity:.75}
.ap-claim .btn{margin-top:32px}

.ap-portal{padding:88px 0;text-align:center}
.ap-portal .btn-line{margin-top:30px}

.ap-close{padding:88px 0;text-align:center;border-top:1px solid var(--line)}
.ap-close h2{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:700;letter-spacing:-.04em;line-height:1.1}
.ap-close p{margin:18px auto 0;max-width:44ch;font-size:16.5px;opacity:.75}
.ap-close .btn-dark{margin-top:28px}

@media(max-width:860px){
  .ap-grid{grid-template-columns:1fr}
  .ap-steps{grid-template-columns:1fr}
  .ap-tile{padding:32px 26px}
}
@media(max-width:600px){
  .ap-hero{padding:54px 0 56px}
  .ap-band{padding-top:52px}
  .ap-steps{margin-top:52px}
  .ap-claim{padding:64px 0}
  .ap-portal,.ap-close{padding:60px 0}
  .ap-cta{flex-direction:column}
  .ap-cta a{width:100%}
}

/* =========================================================================
   FRANCOPHONE MOBILITY
   ========================================================================= */
.fr-hero{padding:88px 0 78px;text-align:center}
.fr-hero .crumb{margin-bottom:30px}
.fr-hero h1{font-size:clamp(2.1rem,5.4vw,4.2rem);font-weight:700;letter-spacing:-.045em;
  line-height:1.06;max-width:20ch;margin:0 auto}
.fr-sub{margin:28px auto 0;max-width:44ch;font-size:clamp(1.05rem,2vw,1.35rem);opacity:.78}

.fr-what{background:var(--ink);color:var(--paper);padding:96px 0;text-align:center}
.fr-what h2{font-size:clamp(1.8rem,4.4vw,3rem);font-weight:700;letter-spacing:-.042em;
  line-height:1.1;max-width:26ch;margin:0 auto}
.fr-what p{margin:26px auto 0;max-width:52ch;font-size:17px;line-height:1.65;
  color:var(--paper);opacity:.75}

.fr-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border-bottom:1px solid var(--line)}
.fr-facts > div{background:var(--paper);padding:34px 26px;text-align:center}
.fr-facts dt{font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;opacity:.5;margin-bottom:12px}
.fr-facts dd{font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.3}
.fr-facts .fr-alt{margin-top:7px;font-size:13px;font-weight:400;opacity:.6}

.fr-sec{padding:88px 0;border-bottom:1px solid var(--line)}
.fr-eyebrow{display:block;margin-bottom:18px;opacity:.55;text-align:center}
.fr-h2{font-size:clamp(1.8rem,4.2vw,2.9rem);font-weight:700;letter-spacing:-.042em;
  line-height:1.1;max-width:24ch;margin:0 auto;text-align:center}
.fr-lede{margin:22px auto 0;max-width:54ch;font-size:17px;line-height:1.62;opacity:.78;text-align:center}

.fr-reqs{max-width:780px;margin:46px auto 0}
.fr-req{display:grid;grid-template-columns:52px 1fr;gap:0 24px;padding:28px 0;
  border-top:1px solid var(--line)}
.fr-req:last-child{border-bottom:1px solid var(--line)}
.fr-req .n{font-family:var(--mono);font-size:11px;letter-spacing:.16em;opacity:.4;padding-top:4px}
.fr-req h3{font-size:19px;font-weight:700;letter-spacing:-.025em;margin-bottom:10px}
.fr-req p{font-size:15.5px;line-height:1.62;opacity:.75;max-width:58ch}
.fr-req p + p{margin-top:12px}

.fr-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:46px;text-align:left}
.fr-flow > div{background:var(--paper);padding:30px 24px}
.fr-flow .n{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;opacity:.45;
  display:block;margin-bottom:12px}
.fr-flow h4{font-size:16px;font-weight:700;letter-spacing:-.02em;line-height:1.25;margin-bottom:9px}
.fr-flow p{font-size:14px;line-height:1.55;opacity:.7}
.fr-who{margin-top:12px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;opacity:.45}

.fr-does{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:46px;text-align:left}
.fr-does > div{background:var(--paper);padding:38px 34px}
.fr-does .tag{display:block;margin-bottom:14px;opacity:.55}
.fr-does h3{font-size:19px;font-weight:700;letter-spacing:-.025em;margin-bottom:14px}
.fr-does ul{list-style:none;margin:0}
.fr-does li{position:relative;padding:10px 0 10px 24px;border-bottom:1px solid var(--line);
  font-size:14.5px;line-height:1.5}
.fr-does li:last-child{border-bottom:none}
.fr-does li::before{content:"\2192";position:absolute;left:0;top:10px;font-family:var(--mono);font-size:12px}

.fr-link{background:var(--ink);color:var(--paper);padding:92px 0;text-align:center}
.fr-link .tag{color:var(--paper)}
.fr-link-sub{margin:24px auto 0;max-width:50ch;font-size:17px;line-height:1.6;
  color:var(--paper);opacity:.75}
.fr-link-sub a{border-bottom:1px solid rgba(255,255,255,.35)}
.fr-link .btn{margin-top:32px}

@media(max-width:900px){
  .fr-facts,.fr-flow{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .fr-facts,.fr-flow,.fr-does{grid-template-columns:1fr}
  .fr-req{grid-template-columns:1fr;gap:8px}
  .fr-hero{padding:54px 0 50px}
  .fr-what{padding:66px 0}
  .fr-sec{padding:60px 0}
  .fr-link{padding:64px 0}
}

/* =========================================================================
   CONTACT
   ========================================================================= */
.ct-hero{padding:84px 0 66px;text-align:center}
.ct-hero .crumb{margin-bottom:28px}
.ct-hero h1{font-size:clamp(2.1rem,5.2vw,3.8rem);font-weight:700;letter-spacing:-.045em;
  line-height:1.06;max-width:18ch;margin:0 auto}
.ct-sub{margin:26px auto 0;max-width:46ch;font-size:clamp(1.05rem,2vw,1.3rem);opacity:.76}

.ct-routes{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border-block:1px solid var(--line)}
.ct-route{background:var(--paper);padding:44px 34px;display:block;transition:background .4s var(--ease)}
.ct-route:hover{background:#FAFAFA}
.ct-route:active{transform:scale(.995)}
.ct-route .tag{display:block;opacity:.5;margin-bottom:16px}
.ct-route h2{font-size:21px;font-weight:700;letter-spacing:-.03em;line-height:1.2;margin-bottom:12px}
.ct-route p{font-size:15px;line-height:1.6;opacity:.72;max-width:32ch}
.ct-go{display:inline-flex;align-items:center;gap:9px;margin-top:20px;font-size:15px;font-weight:600;
  transition:gap .34s var(--ease)}
.ct-route:hover .ct-go{gap:15px}
.ct-route--dark{background:var(--ink);color:var(--paper)}
.ct-route--dark:hover{background:#141414}
.ct-route--dark .tag{color:var(--paper)}
.ct-route--dark p{color:var(--paper);opacity:.75}

.ct-body{display:grid;grid-template-columns:1.15fr .85fr;gap:0 70px;padding:80px 0;align-items:start}
.ct-form h2{font-size:clamp(1.6rem,3.2vw,2.2rem);font-weight:700;letter-spacing:-.04em;line-height:1.12}
.ct-lede{margin-top:14px;font-size:16px;opacity:.75;max-width:48ch}
.ct-lede a{border-bottom:1px solid var(--line)}

/* Fields carry their own underline, so rows must not add a divider as well.
   Two hairlines a few pixels apart read as a mistake rather than a rule. */
.ct-fields{margin-top:30px}
.ct-f{margin-bottom:26px}
.ct-f:last-of-type{margin-bottom:0}
.ct-f label,.ct-lab{display:block;font-size:13px;font-weight:600;opacity:.6;margin-bottom:8px}
.ct-f input,.ct-f textarea{width:100%;border:none;border-bottom:1px solid var(--line);background:none;
  padding:9px 0;font-size:17px;border-radius:0;font-family:var(--sans);color:var(--ink);
  transition:border-color .25s var(--ease)}
.ct-f input:focus,.ct-f textarea:focus{outline:none;border-bottom-color:var(--ink)}
.ct-f input::placeholder,.ct-f textarea::placeholder{opacity:.32}
/* the message box is bordered, or it reads as one very tall underline */
.ct-f textarea{border:1px solid var(--line);padding:14px;font-size:16px;line-height:1.6;resize:vertical}
.ct-f textarea:focus{border-color:var(--ink)}
.ct-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}

.ct-chips{display:flex;flex-wrap:wrap;gap:8px}
.ct-chip{position:relative}
.ct-chip input{position:absolute;opacity:0;width:0;height:0}
.ct-chip span{display:inline-block;padding:9px 15px;border:1px solid var(--line);border-radius:100px;
  font-size:14.5px;cursor:pointer;
  transition:background .26s var(--ease),color .26s var(--ease),border-color .2s var(--ease)}
.ct-chip:hover span{border-color:var(--ink)}
.ct-chip input:checked + span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ct-chip input:focus-visible + span{outline:2px solid var(--ink);outline-offset:2px}

.ct-warn{border-left:2px solid var(--ink);padding-left:16px;margin-top:18px;
  font-size:13.5px;line-height:1.6;opacity:.78;max-width:52ch}
.ct-send{margin-top:28px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ct-send .btn-dark{margin-top:0}
.ct-send small{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;opacity:.45}

.ct-details{border-left:1px solid var(--line);padding-left:44px}
.ct-details dl{margin:0}
.ct-block{padding:26px 0;border-bottom:1px solid var(--line)}
.ct-block:first-child{padding-top:0}
.ct-block:last-child{border-bottom:none}
.ct-block dt{font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;opacity:.5;margin-bottom:10px}
.ct-block dd{font-size:16px;line-height:1.6}
.ct-block dd a{border-bottom:1px solid var(--line)}
.ct-small{font-size:14px;opacity:.68;margin-top:8px;line-height:1.55}

.ct-reg{background:var(--ink);color:var(--paper);padding:78px 0}
.ct-reg-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.ct-reg h2{font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:700;letter-spacing:-.04em;line-height:1.14}
.ct-reg p{margin-top:16px;font-size:16px;line-height:1.65;color:var(--paper);opacity:.78;max-width:46ch}
.ct-reg a{border-bottom:1px solid rgba(255,255,255,.4)}
.ct-reg dl{margin:0}
.ct-reg dl div{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.18);display:flex;gap:20px}
.ct-reg dl div:first-child{border-top:1px solid rgba(255,255,255,.18)}
.ct-reg dt{flex:0 0 40%;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;opacity:.55;padding-top:3px}
.ct-reg dd{flex:1;font-size:15.5px;font-weight:600}

@media(max-width:900px){
  .ct-routes{grid-template-columns:1fr}
  .ct-body{grid-template-columns:1fr;gap:50px}
  .ct-details{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:32px}
  .ct-reg-grid{grid-template-columns:1fr;gap:32px}
}
@media(max-width:600px){
  .ct-hero{padding:52px 0 44px}
  .ct-body{padding:54px 0}
  .ct-two{grid-template-columns:1fr;gap:22px}
  .ct-reg{padding:58px 0}
  .ct-route{padding:32px 26px}
}