: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}

/* The reading column is centred on the page. Without the auto margin it sits
   against the left edge of the viewport, which is what made the body text and
   the page heading start at different places. */
.prose{padding:84px 0;max-width:720px;margin-inline:auto}
.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}

/* The grid sat against the window while every other section on the page sits
   in the 1140px column, which is what made it read as unaligned. It is now
   constrained and centred, and the cells are centred within it. */
.feat{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);max-width:1088px;margin:0 auto;text-align:center}
.feat article{background:var(--paper);padding:48px 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:40ch;margin-inline:auto}

.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}
}

/* effective date on the legal pages */
.legal-date{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  opacity:.55;padding-bottom:26px;margin-bottom:30px;border-bottom:1px solid var(--line)}

/* Legal pages set the heading to the same 720px column as the prose beneath it,
   so the title, the lede and the body all begin on one line. */
.phead--legal .wrap{max-width:720px}

/* =========================================================================
   AGENT VERIFICATION  —  reached by scanning a poster, so read on a phone
   ========================================================================= */
.vf-top{background:var(--ink);color:var(--paper);padding:70px 0 62px;text-align:center}
.vf-mark{font-size:19px;font-weight:700;letter-spacing:2px;opacity:.6}
.vf-top h1{margin-top:20px;font-size:clamp(2rem,6vw,3.4rem);font-weight:800;
  letter-spacing:-.045em;line-height:1.06;max-width:14ch;margin-inline:auto}
.vf-sub{margin-top:16px;font-size:15.5px;color:var(--paper);opacity:.72}

.vf-who{padding:44px 0;border-bottom:1px solid var(--line);text-align:center}
.vf-who .tag{display:block;opacity:.5;margin-bottom:14px}
.vf-name{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700;letter-spacing:-.035em}
.vf-meta{margin-top:12px;font-size:15px;line-height:1.7;opacity:.65}

.vf-can{padding:44px 0;border-bottom:1px solid var(--line)}
.vf-can h2{font-size:17px;font-weight:700;letter-spacing:-.02em;margin-bottom:16px}
.vf-can ul{list-style:none;margin:0;max-width:44ch}
.vf-can li{position:relative;padding:10px 0 10px 26px;font-size:16px;line-height:1.5;
  border-bottom:1px solid var(--line)}
.vf-can li:last-child{border-bottom:none}
.vf-can li::before{content:"\2192";position:absolute;left:0;top:10px;font-family:var(--mono);font-size:13px}

.vf-cant{background:var(--ink);color:var(--paper);padding:64px 0}
.vf-cant h2{font-size:17px;font-weight:700;letter-spacing:-.02em;margin-bottom:16px}
.vf-cant ul{list-style:none;margin:0;max-width:44ch}
.vf-cant li{position:relative;padding:11px 0 11px 26px;font-size:16.5px;line-height:1.5;
  border-bottom:1px solid rgba(255,255,255,.18)}
.vf-cant li:last-child{border-bottom:none}
.vf-cant li::before{content:"\00d7";position:absolute;left:0;top:11px;font-family:var(--mono);font-size:14px}
/* The statement now stands on its own in the black band, so it carries no rule
   above it and sits larger. */
.vf-warn{font-size:clamp(1.2rem,3vw,1.8rem);font-weight:700;line-height:1.35;
  color:var(--paper);max-width:26ch}
.vf-warn-light{margin-top:26px;padding:18px 20px;border-left:3px solid var(--ink);
  font-size:17px;font-weight:700;line-height:1.4}

.vf-lic{padding:44px 0;border-bottom:1px solid var(--line)}
.vf-lic dl{margin:0;max-width:46ch}
.vf-lic dl div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;
  border-bottom:1px solid var(--line)}
.vf-lic dl div:last-child{border-bottom:none}
.vf-lic dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;opacity:.5;padding-top:4px}
.vf-lic dd{font-size:15.5px;font-weight:600;text-align:right}
.vf-lic dd a{border-bottom:1px solid var(--line)}
.vf-check{margin-top:22px;font-size:15px;line-height:1.6;opacity:.72;max-width:48ch}

.vf-do{padding:40px 0 70px;display:flex;gap:12px;flex-wrap:wrap}
.vf-do--flat{padding:34px 0 0}
.vf-do .btn-dark,.vf-do .btn-line{margin-top:0}

.vf-none p{margin-bottom:16px}
.vf-manual{padding:0 0 76px}
.vf-manual h2{font-size:18px;font-weight:700;letter-spacing:-.025em;margin-bottom:8px}
.vf-manual p{font-size:15px;opacity:.72;margin-bottom:18px}
.vf-form{display:flex;gap:10px;max-width:420px;flex-wrap:wrap}
.vf-form input{flex:1;min-width:180px;padding:14px;border:1px solid var(--line);background:none;
  font-family:var(--mono);font-size:17px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);border-radius:0}
.vf-form input:focus{outline:none;border-color:var(--ink)}
.vf-form .btn-dark{margin-top:0}

@media(max-width:600px){
  .vf-top{padding:52px 0 46px}
  .vf-who,.vf-can,.vf-lic{padding:34px 0}
  .vf-cant{padding:40px 0}
  .vf-do{flex-direction:column;padding-bottom:52px}
  .vf-do a{width:100%;text-align:center}
}

/* =========================================================================
   SMART QUESTIONNAIRE  —  the product name
   Two weights, one word each. Set with <span class="sq">Smart <em>Questionnaire</em></span>
   so it is one element wherever it appears and can never drift apart.
   ========================================================================= */
.sq{font-weight:800;letter-spacing:-.04em;white-space:nowrap}
.sq em{font-style:normal;font-weight:400}

/* Below about 16px the light word thins out and starts to disappear, so it
   steps up a weight rather than vanishing. The contrast survives, the legibility
   does not suffer. */
@media(max-width:600px){
  .sq em{font-weight:500}
}
.sq--small em{font-weight:500}

/* The name is two long words. On a narrow screen it may need to break, and if
   it does it should break between the words rather than inside one. */
@media(max-width:420px){
  .sq{white-space:normal}
}

/* =========================================================================
   SMART QUESTIONNAIRE  —  the product page
   All prefixed sqp- so nothing here reaches another page.
   ========================================================================= */
.sqp-hero{padding:96px 0 84px;text-align:center}
/* The eyebrow carries the product name, so it is set in the name treatment
   rather than the mono label style used for section headings elsewhere. */
.sqp-eyebrow{display:block;margin-bottom:22px;font-size:15px;opacity:.55}
.sqp-eyebrow .sq em{font-weight:500}
.sqp-hero h1{font-size:clamp(2.4rem,6.6vw,5rem);font-weight:700;letter-spacing:-.05em;
  line-height:1.02;max-width:13ch;margin:0 auto}
.sqp-lede{margin:28px auto 0;max-width:42ch;font-size:clamp(1.1rem,2.2vw,1.5rem);
  line-height:1.42;opacity:.72}

.sqp-band{background:var(--ink);color:var(--paper);padding:96px 0;text-align:center}
.sqp-huge{font-size:clamp(3.4rem,13vw,10rem);font-weight:800;letter-spacing:-.06em;line-height:.9}
.sqp-cap{margin-top:16px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;opacity:.5}
.sqp-say{margin:32px auto 0;max-width:44ch;font-size:clamp(1.05rem,2vw,1.3rem);
  line-height:1.5;color:var(--paper);opacity:.75}

.sqp-sec{padding:92px 0;text-align:center}
.sqp-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}
.sqp-sub{margin:22px auto 0;max-width:48ch;font-size:17px;line-height:1.6;opacity:.75}

.sqp-card{background:#F5F5F7;border-radius:20px;padding:42px;margin:46px auto 0;
  max-width:640px;text-align:left}
.sqp-card .sqp-row{display:flex;gap:20px;padding:15px 0;border-bottom:1px solid #E4E4E4}
.sqp-card .sqp-row:last-of-type{border-bottom:none}
.sqp-card .sqp-k{flex:0 0 32%;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;opacity:.5;padding-top:5px}
.sqp-card .sqp-v{flex:1;font-size:16.5px;font-weight:600;letter-spacing:-.015em}
.sqp-found{margin-top:26px;padding-top:24px;border-top:2px solid var(--ink);
  font-size:clamp(1.25rem,2.8vw,1.7rem);font-weight:800;letter-spacing:-.03em;line-height:1.25}
.sqp-note{margin-top:14px;font-size:15.5px;line-height:1.6;opacity:.72}
.sqp-turn{margin:34px auto 0;max-width:34ch;font-size:clamp(1.1rem,2.4vw,1.5rem);
  font-weight:700;letter-spacing:-.025em;line-height:1.35}

.sqp-three{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border-block:1px solid var(--line)}
.sqp-three > div{background:var(--paper);padding:48px 34px;text-align:center}
.sqp-three .sqp-n{font-size:clamp(1.5rem,3.4vw,2.1rem);font-weight:800;letter-spacing:-.04em;
  display:block;margin-bottom:14px}
.sqp-three p{font-size:15px;line-height:1.55;opacity:.72;max-width:30ch;margin:0 auto}

/* the feature, in her voice */
.sqp-feat{padding:100px 0;border-top:1px solid var(--line);text-align:center}
.sqp-name{font-size:clamp(1.4rem,3vw,2rem);font-weight:700;letter-spacing:-.035em;margin-bottom:18px}
.sqp-feat h2{font-size:clamp(2rem,5vw,3.4rem);font-weight:700;letter-spacing:-.048em;
  line-height:1.06;max-width:16ch;margin-inline:auto}
.sqp-body{margin:34px auto 0;max-width:52ch}
.sqp-body p{font-size:17.5px;line-height:1.7;margin-bottom:20px}
.sqp-body p:last-child{margin-bottom:0}
.sqp-sig{margin-top:30px;padding-top:22px;border-top:1px solid var(--line);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;opacity:.5}
.sqp-spec{margin:40px auto 0;padding-top:28px;border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:760px;text-align:center}
.sqp-spec .sqp-n{font-size:clamp(1.5rem,3.4vw,2.2rem);font-weight:800;letter-spacing:-.045em;
  line-height:1;margin-bottom:10px}
.sqp-spec .sqp-t{font-size:14px;line-height:1.55;opacity:.68}

/* how it works */
.sqp-how{padding:92px 0;border-top:1px solid var(--line);text-align:center}
.sqp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:46px;text-align:left}
.sqp-steps > div{background:var(--paper);padding:34px 28px}
.sqp-steps .sqp-n{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;
  text-transform:uppercase;opacity:.45;display:block;margin-bottom:12px}
.sqp-steps h4{font-size:17px;font-weight:700;letter-spacing:-.025em;line-height:1.25;margin-bottom:9px}
.sqp-steps p{font-size:14.5px;line-height:1.6;opacity:.72}
.sqp-steps .sqp-mine{background:var(--ink);color:var(--paper)}
.sqp-steps .sqp-mine .sqp-n{color:var(--paper);opacity:.55}
.sqp-steps .sqp-mine p{color:var(--paper);opacity:.75}

/* the three severities */
.sqp-sev{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px;
  text-align:left;max-width:860px;margin-left:auto;margin-right:auto}
.sqp-sev .sqp-m{width:16px;height:16px;border:2px solid var(--ink);margin-bottom:14px}
.sqp-sev .sqp-logical .sqp-m{background:var(--ink)}
.sqp-sev .sqp-error .sqp-m{background:var(--ink);border-radius:50%}
.sqp-sev .sqp-advisory .sqp-m{border-radius:50%}
.sqp-lv{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;
  opacity:.5;margin-bottom:8px}
.sqp-sev h4{font-size:16px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px;line-height:1.3}
.sqp-sev p{font-size:14.5px;line-height:1.6;opacity:.72}

.sqp-honest{padding:96px 0;text-align:center;border-top:1px solid var(--line)}

.sqp-close{background:var(--ink);color:var(--paper);padding:92px 0;text-align:center}
.sqp-close h2{font-size:clamp(1.8rem,4.2vw,2.8rem);font-weight:700;letter-spacing:-.045em;
  line-height:1.1;max-width:20ch;margin:0 auto}
.sqp-close p{margin:22px auto 0;max-width:44ch;font-size:17px;line-height:1.6;
  color:var(--paper);opacity:.75}
.sqp-fine{margin-top:22px;font-size:14px;opacity:.5;max-width:50ch;color:var(--paper)}
.sqp-close .btn{margin-top:34px}

@media(max-width:820px){
  .sqp-three,.sqp-steps,.sqp-sev,.sqp-spec{grid-template-columns:1fr}
  .sqp-card{padding:28px 22px}
  .sqp-card .sqp-row{display:block}
  .sqp-card .sqp-k{margin-bottom:6px}
}
@media(max-width:600px){
  .sqp-hero{padding:56px 0 50px}
  .sqp-band,.sqp-close{padding:64px 0}
  .sqp-sec,.sqp-feat,.sqp-how,.sqp-honest{padding:62px 0}
}

/* =========================================================================
   SECTION RHYTHM
   ========================================================================= */

/* The eyebrow tells a visitor which half of the practice they are reading.
   It recedes by size and tracking, never by opacity, because opacity on black
   is grey and this site has no grey. */
.sec-head .tag,
.band .tag,
.door .tag{font-size:12px;font-weight:500;letter-spacing:.24em;color:var(--ink);opacity:1}
.sec-head .tag{display:block;margin-bottom:20px}
.band .tag,.door .tag{color:var(--paper)}
.door--light .tag{color:var(--ink)}

/* A two pixel black rule divides the halves of the page. Twice the weight of
   any hairline here, and stopping where the content stops, so it reads as
   structure rather than as the edge of a component. */
.sec + .sec::before,
.sec--mist + .sec::before{
  content:"";display:block;height:2px;background:var(--ink);
  max-width:1088px;margin:0 auto 88px;
}
.sec + .sec,
.sec--mist + .sec{padding-top:0}

@media(max-width:600px){
  .sec + .sec::before,
  .sec--mist + .sec::before{margin-bottom:60px}
}

/* =========================================================================
   DARK TILES
   .tile--dark is a single class, so .tile--dark p and .tile p carry identical
   specificity and the later one wins. .tile p sits below it in this file, which
   is why dark tiles were rendering black text on black. Doubling the class
   raises the weight so ordering stops mattering.
   ========================================================================= */
.tile.tile--dark,
.tile.tile--dark h3,
.tile.tile--dark p,
.tile.tile--dark .tag{color:var(--paper)}
.tile.tile--dark p .sq,
.tile.tile--dark p .sq em,
.tile.tile--dark h3 .sq,
.tile.tile--dark h3 .sq em{color:var(--paper)}
.tile.tile--dark .go{background:var(--paper);color:var(--ink)}