:root{
  --blue:#00AFF0;
  --ink:#000;
  --paper:#ffffff;
  --dim:#8c8c8c;
  --faint:#5c5c5c;
  --rule:#232323;
  --rule-soft:#171717;
  --ui:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --gut:clamp(20px,4vw,56px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--paper);
  font-family:var(--ui);font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  display:flex;flex-direction:column;min-height:100vh;
}
main{flex:1 0 auto}
a{color:inherit;text-decoration:none}
::selection{background:var(--blue);color:#000}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--gut);width:100%}

/* ---- type ---- */
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.035em;line-height:.98}
.display{font-size:clamp(2.9rem,8.2vw,7.4rem);letter-spacing:-.045em;line-height:.92}
.display .b{color:var(--blue)}
h1{font-size:clamp(2.4rem,6.4vw,5.4rem);letter-spacing:-.045em;line-height:.94}
h2{font-size:clamp(1.9rem,4.6vw,3.5rem);letter-spacing:-.042em;line-height:.96}
h3{font-size:clamp(1.3rem,2.4vw,1.9rem);letter-spacing:-.03em;line-height:1.05}
p{margin:0 0 1.15em}
.label{font-size:.68rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--blue);margin:0 0 18px}
.label.n{color:var(--faint)}
.lede{font-size:clamp(1.02rem,1.35vw,1.19rem);line-height:1.55;color:var(--dim);letter-spacing:-.012em}
.body{color:var(--dim);max-width:56ch}
.body strong,.body b{color:var(--paper);font-weight:600}
.fine{font-size:.78rem;line-height:1.6;color:var(--faint);letter-spacing:.005em}

/* ---- links / buttons ---- */
.lnk{
  font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:.7em;padding-bottom:5px;
  border-bottom:1px solid var(--rule);transition:border-color .2s,color .2s;
}
.lnk:hover{color:var(--blue);border-color:var(--blue)}
.btn{
  display:inline-flex;align-items:center;gap:.75em;
  font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;
  padding:15px 26px;border:1px solid var(--rule);background:transparent;color:var(--paper);
  cursor:pointer;transition:background .18s,color .18s,border-color .18s;border-radius:0;
}
.btn:hover{border-color:var(--blue);color:var(--blue)}
.btn-fill{background:var(--blue);border-color:var(--blue);color:#000}
.btn-fill:hover{background:var(--paper);border-color:var(--paper);color:#000}
.btn svg{width:14px;height:14px;flex:none}
.ctarow{display:flex;flex-wrap:wrap;gap:12px}

/* ---- header ---- */
header{position:sticky;top:0;z-index:60;background:var(--ink);border-bottom:1px solid var(--rule)}
.hd{display:flex;align-items:center;justify-content:space-between;height:62px;gap:24px}
.mark{font-size:.86rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.mark span{color:var(--blue)}
.hd nav{display:flex;gap:clamp(16px,2.2vw,32px);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.hd nav a{padding:4px 0;border-bottom:1px solid transparent;transition:color .18s,border-color .18s}
.hd nav a:hover{color:var(--paper)}
.hd nav a.on{color:var(--paper);border-bottom-color:var(--blue)}
.hd .cta{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;gap:.6em;white-space:nowrap}
.hd .cta:hover{color:var(--blue)}
.hd .cta svg{width:13px;height:13px}
@media(max-width:1040px){.hd nav{display:none}}

/* mobile nav */
.burger{display:none;background:none;border:0;color:var(--paper);cursor:pointer;padding:8px;margin-right:-8px}
.burger span{display:block;width:20px;height:1.5px;background:currentColor;margin:4px 0;transition:transform .2s,opacity .2s}
.burger.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
#mnav{display:none;border-bottom:1px solid var(--rule);background:var(--ink)}
#mnav.open{display:block}
#mnav a{
  display:block;padding:16px 0;border-bottom:1px solid var(--rule-soft);
  font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);
}
#mnav a:last-child{border-bottom:0}
#mnav a.on{color:var(--blue)}
@media(max-width:1040px){.burger{display:block}.hd .cta{display:none}}

/* ---- page head ---- */
.phead{padding:clamp(46px,7vw,92px) 0 clamp(34px,4vw,54px);border-bottom:1px solid var(--rule)}
.phead h1{max-width:17ch}
.phead .lede{margin:26px 0 0;max-width:56ch}
.crumb{font-size:.68rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);margin:0 0 20px}
.crumb a:hover{color:var(--blue)}
.crumb i{font-style:normal;padding:0 .55em;color:var(--rule)}
.crumb b{color:var(--blue);font-weight:600}

/* ---- hero (home) ---- */
.hero{padding:clamp(52px,8vw,112px) 0 0}
.hero .display{max-width:15ch;margin:26px 0 0}
.hero-foot{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,80px);align-items:end;margin-top:clamp(40px,6vw,72px)}
.hero-foot .lede{max-width:46ch}
@media(max-width:820px){.hero-foot{grid-template-columns:1fr;align-items:start}}
.strip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(46px,7vw,86px);border-top:1px solid var(--rule)}
.strip div{padding:20px 22px 20px 0;font-size:.68rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--dim)}
.strip div + div{border-left:1px solid var(--rule);padding-left:22px}
@media(max-width:820px){
  .strip{grid-template-columns:1fr 1fr}
  .strip div:nth-child(3){border-left:0;padding-left:0;border-top:1px solid var(--rule)}
  .strip div:nth-child(4){border-top:1px solid var(--rule)}
}
@media(max-width:480px){.strip{grid-template-columns:1fr}.strip div + div{border-left:0;padding-left:0;border-top:1px solid var(--rule)}}

/* ---- sections ---- */
section{padding:clamp(58px,8vw,112px) 0}
.sec-top{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,90px);align-items:start;margin-bottom:clamp(36px,4.5vw,64px)}
.sec-top .label{white-space:nowrap;padding-top:.75em;margin:0}
.sec-top .lede{margin:22px 0 0;max-width:52ch}
@media(max-width:760px){.sec-top{grid-template-columns:1fr;gap:14px}.sec-top .label{padding-top:0}}

/* ---- index rows ---- */
.index{border-top:1px solid var(--rule)}
.row{
  display:grid;grid-template-columns:58px 1.35fr 2fr 160px 30px;
  gap:clamp(14px,2.4vw,36px);align-items:baseline;
  padding:clamp(24px,3vw,36px) 0;border-bottom:1px solid var(--rule);
  transition:background .2s,padding-left .2s;
}
.row:hover{background:#080808;padding-left:14px}
.row:hover .row-t{color:var(--blue)}
.row:hover .arw{color:var(--blue);transform:translateX(4px)}
.row-n{font-size:.72rem;font-weight:600;color:var(--faint);letter-spacing:.08em}
.row-t{font-size:clamp(1.3rem,2.5vw,1.95rem);font-weight:600;letter-spacing:-.032em;line-height:1.1;transition:color .2s}
.row-d{color:var(--dim);font-size:.93rem;line-height:1.5;letter-spacing:-.005em}
.row-p{font-size:.82rem;font-weight:600;color:var(--blue);letter-spacing:.02em;line-height:1.5}
.row-p em{display:block;font-style:normal;font-weight:600;color:var(--faint);font-size:.74rem;margin-top:5px;letter-spacing:.04em}
.arw{color:var(--faint);font-size:1.05rem;justify-self:end;transition:transform .2s,color .2s}
@media(max-width:1000px){.row{grid-template-columns:44px 1fr;row-gap:12px}.row-d,.row-p{grid-column:2}.arw{display:none}}

/* ---- stats ---- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.stats > div{padding:clamp(28px,4vw,50px) 26px clamp(28px,4vw,50px) 0}
.stats > div + div{border-left:1px solid var(--rule);padding-left:26px}
.stats .k{font-variant-numeric:tabular-nums;font-size:clamp(2.1rem,4.4vw,3.5rem);font-weight:600;letter-spacing:-.045em;line-height:1;color:var(--blue)}
.stats .v{margin-top:16px;font-size:.86rem;line-height:1.5;color:var(--dim);max-width:26ch}
@media(max-width:900px){
  .stats{grid-template-columns:1fr 1fr}
  .stats > div:nth-child(3){border-left:0;padding-left:0;border-top:1px solid var(--rule)}
  .stats > div:nth-child(4){border-top:1px solid var(--rule)}
}
@media(max-width:520px){.stats{grid-template-columns:1fr}.stats > div + div{border-left:0;padding-left:0;border-top:1px solid var(--rule)}}

/* ---- service detail ---- */
.svc-grid{display:grid;grid-template-columns:1.25fr .85fr;gap:clamp(30px,5vw,88px);align-items:start}
@media(max-width:900px){.svc-grid{grid-template-columns:1fr;gap:38px}}
ul.pts{list-style:none;padding:0;margin:clamp(28px,3vw,40px) 0 0;border-top:1px solid var(--rule-soft);counter-reset:pt}
ul.pts li{
  padding:15px 0;border-bottom:1px solid var(--rule-soft);color:var(--dim);
  font-size:.93rem;line-height:1.55;display:grid;grid-template-columns:26px 1fr;gap:10px;
}
ul.pts li::before{content:counter(pt,decimal-leading-zero);counter-increment:pt;font-size:.66rem;font-weight:600;color:var(--faint);letter-spacing:.06em;padding-top:.35em}
ul.pts b{color:var(--paper);font-weight:600}
.spec{border-top:1px solid var(--blue);padding-top:22px;position:sticky;top:86px}
@media(max-width:900px){.spec{position:static}}
.spec .rate{font-variant-numeric:tabular-nums;font-size:clamp(2.2rem,4.4vw,3.2rem);font-weight:600;letter-spacing:-.05em;line-height:1;color:var(--blue)}
.spec .rate small{font-size:.85rem;letter-spacing:0;color:var(--dim);font-weight:400;margin-left:.5em}
.spec dl{margin:28px 0 0;display:grid}
.spec dl > div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-top:1px solid var(--rule-soft);font-size:.85rem}
.spec dt{color:var(--faint);font-size:.68rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;padding-top:.25em}
.spec dd{margin:0;text-align:right;color:var(--paper);letter-spacing:-.01em}
.spec .go{margin-top:26px;display:block}
.spec .fine{margin-top:20px}

/* ---- pricing table ---- */
.tscroll{overflow-x:auto}
.ptable{width:100%;border-collapse:collapse;border-top:1px solid var(--rule)}
.ptable th,.ptable td{text-align:left;padding:clamp(20px,2.6vw,30px) 20px clamp(20px,2.6vw,30px) 0;border-bottom:1px solid var(--rule);vertical-align:baseline}
.ptable thead th{font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:700;padding-top:16px;padding-bottom:16px}
.ptable .nm{font-size:clamp(1.05rem,1.9vw,1.4rem);font-weight:600;letter-spacing:-.028em}
.ptable .sub{display:block;color:var(--dim);font-size:.85rem;font-weight:400;letter-spacing:-.005em;margin-top:7px;max-width:42ch;line-height:1.5}
.ptable .amt{font-weight:600;font-variant-numeric:tabular-nums;font-size:clamp(1.2rem,2.3vw,1.75rem);color:var(--blue);letter-spacing:-.03em;white-space:nowrap}
.ptable .was{display:block;font-size:.72rem;color:var(--faint);text-decoration:line-through;margin-top:7px}
.ptable .sv{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);white-space:nowrap}
.ptable tr.hl td{background:#080808}
@media(max-width:680px){
  .ptable thead{display:none}
  .ptable tr{display:grid;grid-template-columns:1fr auto;gap:4px 18px;padding:22px 0;border-bottom:1px solid var(--rule)}
  .ptable td{border:0;padding:0}
  .ptable td:nth-child(2){text-align:right}
  .ptable td:nth-child(3){grid-column:1/-1;margin-top:8px}
}

/* ---- faq ---- */
.faq{border-top:1px solid var(--rule)}
details{border-bottom:1px solid var(--rule)}
summary{
  list-style:none;cursor:pointer;display:grid;grid-template-columns:58px 1fr 26px;
  gap:clamp(14px,2.4vw,30px);align-items:baseline;padding:26px 0;
  font-size:clamp(1rem,1.6vw,1.22rem);font-weight:600;letter-spacing:-.024em;line-height:1.3;transition:color .2s;
}
summary::-webkit-details-marker{display:none}
summary:hover{color:var(--blue)}
summary .q{font-size:.72rem;color:var(--faint);font-weight:600;letter-spacing:.08em}
summary .pm{justify-self:end;color:var(--blue);font-size:1.1rem;line-height:1;transition:transform .2s}
details[open] summary .pm{transform:rotate(45deg)}
.ans{padding:0 60px 30px 0;margin-left:clamp(72px,calc(58px + 2.4vw),88px);color:var(--dim);font-size:.95rem;max-width:60ch}
.ans p:last-child{margin-bottom:0}
.ans b{color:var(--paper);font-weight:600}
@media(max-width:760px){.ans{margin-left:0;padding-right:0}}

/* ---- contact ---- */
.cgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,6vw,96px);align-items:start}
@media(max-width:900px){.cgrid{grid-template-columns:1fr;gap:52px}}
.tel{display:block;font-weight:600;font-variant-numeric:tabular-nums;font-size:clamp(1.5rem,3.2vw,2.3rem);letter-spacing:-.04em;color:var(--blue);margin:18px 0 30px;transition:color .2s}
.tel:hover{color:var(--paper)}
.cactions{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.cactions .btn{width:100%;justify-content:center}
.cmeta{margin-top:34px;border-top:1px solid var(--rule-soft);padding-top:20px}

/* ---- form ---- */
.f2{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(20px,3vw,40px)}
@media(max-width:600px){.f2{grid-template-columns:1fr}}
.fld{margin-bottom:30px}
.fld label{display:block;font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);margin-bottom:11px}
.fld label i{color:var(--blue);font-style:normal}
.fld input[type=text],.fld input[type=email],.fld textarea,.fld select{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--rule);
  padding:9px 0;color:var(--paper);font-family:var(--ui);font-size:1rem;letter-spacing:-.012em;
  transition:border-color .2s;border-radius:0;
}
.fld select{
  appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--faint) 50%),linear-gradient(135deg,var(--faint) 50%,transparent 50%);
  background-position:calc(100% - 11px) 18px,calc(100% - 6px) 18px;background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;padding-right:26px;
}
.fld select option{background:#0c0c0c;color:var(--paper)}
.fld textarea{min-height:76px;resize:vertical;line-height:1.6}
.fld input:focus,.fld textarea:focus,.fld select:focus{outline:none;border-bottom-color:var(--blue)}
.fld input::placeholder,.fld textarea::placeholder{color:#3d3d3d}
.picks{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(20px,3vw,40px);border-top:1px solid var(--rule-soft)}
@media(max-width:600px){.picks{grid-template-columns:1fr}}
.pick{display:flex;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid var(--rule-soft);cursor:pointer;font-size:.93rem;color:var(--dim);transition:color .18s}
.pick:hover{color:var(--paper)}
.pick input{appearance:none;-webkit-appearance:none;width:15px;height:15px;flex:none;border:1px solid var(--rule);background:transparent;cursor:pointer;transition:background .15s,border-color .15s;border-radius:0}
.pick input:checked{background:var(--blue);border-color:var(--blue)}
.pick:has(input:checked){color:var(--paper)}
.pick .pp{margin-left:auto;font-size:.7rem;font-weight:600;color:var(--faint);letter-spacing:.04em}
.agree{display:flex;gap:13px;align-items:flex-start;margin:34px 0 30px;padding-top:24px;border-top:1px solid var(--rule)}
.agree input{appearance:none;-webkit-appearance:none;width:15px;height:15px;flex:none;margin-top:3px;border:1px solid var(--rule);background:transparent;cursor:pointer;transition:background .15s,border-color .15s;border-radius:0}
.agree input:checked{background:var(--blue);border-color:var(--blue)}
.agree label{font-size:.8rem;line-height:1.65;color:var(--faint);cursor:pointer}
.agree label b{color:var(--dim);font-weight:600}
form .btn{width:100%;justify-content:center}
.alt{margin:16px 0 0;font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);text-align:center}
.alt a{border-bottom:1px solid var(--rule);padding-bottom:2px}
.alt a:hover{color:var(--blue);border-color:var(--blue)}
.err{display:none;margin-top:16px;padding:12px 0;border-top:1px solid #6b2020;color:#ff6b6b;font-size:.84rem}
.err.on{display:block}

/* ---- cta band ---- */
.band{border-top:1px solid var(--rule);background:#050505}
.bandin{display:grid;grid-template-columns:1.2fr auto;gap:clamp(26px,4vw,60px);align-items:center}
.bandin .lede{margin:16px 0 0;max-width:48ch}
@media(max-width:820px){.bandin{grid-template-columns:1fr}}

/* ---- next / prev ---- */
.np{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.np a{padding:30px 24px 30px 0;transition:background .2s}
.np a:hover{background:#080808}
.np a:hover .npt{color:var(--blue)}
.np a + a{border-left:1px solid var(--rule);padding-left:24px;text-align:right}
.np span{display:block;font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);margin-bottom:10px}
.np .npt{font-size:clamp(1.1rem,2vw,1.45rem);font-weight:600;letter-spacing:-.03em;transition:color .2s}
@media(max-width:600px){.np{grid-template-columns:1fr}.np a + a{border-left:0;border-top:1px solid var(--rule);padding-left:0;text-align:left}}

/* ---- footer ---- */
footer{border-top:1px solid var(--rule);padding:clamp(36px,4vw,54px) 0 40px;flex-shrink:0}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(26px,4vw,60px);padding-bottom:32px;border-bottom:1px solid var(--rule-soft)}
@media(max-width:760px){.fgrid{grid-template-columns:1fr 1fr;gap:34px}}
@media(max-width:460px){.fgrid{grid-template-columns:1fr}}
.fgrid h4{font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);margin-bottom:16px}
.fgrid a{display:block;font-size:.9rem;color:var(--dim);padding:5px 0;transition:color .18s}
.fgrid a:hover{color:var(--blue)}
.fgrid .blurb{font-size:.88rem;color:var(--dim);line-height:1.6;max-width:34ch;margin:0}
.fbot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.66rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);padding-top:24px}
.fbot a:hover{color:var(--blue)}

@media(prefers-reduced-motion:reduce){*{transition:none!important}}
