/* ============================================================
   HIVE TYPE — one scale, loaded last on every page
   Display: SF Pro Display · UI/body: Figtree
   Product mockups keep their own small type on purpose and are
   never targeted here (only editorial classes are).
   ============================================================ */

/* ---- 1 · page headline ---- */
.pghero h1,header.hero h1,.hero h1,.prhero h1,.flowhero h1{
  font-family:var(--f-display)!important;font-weight:460!important;
  font-size:clamp(34px,3.95vw,56px)!important;line-height:1.06!important;letter-spacing:-.015em!important;
}
.pghero p,header.hero p.lede,.hero p.lede,.flowhero p{
  font-family:var(--f-ui)!important;font-weight:400!important;
  font-size:clamp(15.5px,1.15vw,17.5px)!important;line-height:1.62!important;letter-spacing:normal!important;
}

/* ---- 2 · section headline ---- */
.lsec,.sec,.pq-h,.cr-band h2,#mission h2,.lhead h2,.teamhead h2,.introduo h2,.nw-head h2,
.sechome h2,.solband h2,.ab-band h2,.flowband h2,.cibreak h2,.pe-band h2{
  font-family:var(--f-display)!important;font-weight:460!important;
  font-size:clamp(30px,3.4vw,48px)!important;line-height:1.1!important;letter-spacing:-.015em!important;
}
/* quote-scale statements: one notch bigger, one notch lighter */
.cibreak h2,#roigap .mline,.qline,.quote h2{
  font-size:clamp(29px,3.5vw,50px)!important;font-weight:400!important;line-height:1.07!important;letter-spacing:-.02em!important;
}

/* ---- 3 · subhead under a headline ---- */
.lsub,.sec-sub,.pq-sub,.lhead>p,.pq-head>p,.nw-head>p,.cibreak p,.pe-band .pq-sub,#mission p,.cr-band p,.flowband p,.ab-band p{
  font-family:var(--f-ui)!important;font-weight:400!important;
  font-size:clamp(15.5px,1.15vw,17.5px)!important;line-height:1.62!important;letter-spacing:normal!important;
}

/* ---- 4 · card and row headings ---- */
.seccard h3,.newscard h3,.nw-card h3,.xtile h3,.scard h3,.stcard h3,.cap-head h3,.seclist h3,
.pq-plist h3,.rdrow h3,.cr-card h3,.cr-open h3,.faqcard h3,.jobcard h3,.ig-card h3,.dp-card b,
.pq-roles .t,.pq-stage h3,.block h3,.tile h3,.solcard h3,.teamcard h3,.ab-card h3{
  font-family:var(--f-display)!important;font-weight:460!important;
  font-size:clamp(18px,1.6vw,24px)!important;line-height:1.22!important;letter-spacing:-.015em!important;
}

/* ---- 5 · body copy ---- */
.seccard p,.newscard p,.nw-card p,.xtile p,.scard p,.stcard p,.cap-head p,.seclist p,
.pq-plist p,.rdrow p,.cr-card p,.cr-open p,.faqcard p,.jobcard p,.ig-card p,.dp-card p,
.pq-roles p,.pq-stage p,.solcard p,.teamcard p,.ab-card p,.block p{
  font-family:var(--f-ui)!important;font-weight:400!important;
  font-size:15.5px!important;line-height:1.65!important;letter-spacing:normal!important;
}
@media(max-width:700px){
  .seccard p,.newscard p,.nw-card p,.xtile p,.scard p,.stcard p,.seclist p,.pq-plist p,.rdrow p,
  .cr-card p,.cr-open p,.faqcard p,.jobcard p,.dp-card p,.pq-roles p,.block p{font-size:15px!important}
}

/* ---- 6 · eyebrows and small caps ---- */
.kicker,.pq-k,.sec-kick,.band-kicker,.pl-n,.rd-when,.cr-tag,.nw-card .k,.dp-card .n,.st-k,
.tlabel,.ex-n,.fh,.fcols h6{
  font-family:var(--f-mono,var(--f-ui))!important;font-size:11px!important;font-weight:500!important;
  letter-spacing:.2em!important;text-transform:uppercase!important;line-height:1.5!important;
}
footer .fcols .fh,footer .fcols h6{font-size:10px!important;letter-spacing:.18em!important}

/* ---- 7 · CTA + footer ---- */
#waitlist .cta-band h2{font-size:clamp(27px,2.95vw,42px)!important;font-weight:460!important;line-height:1.1!important;letter-spacing:-.015em!important}
#waitlist .ctaline{font-size:15.5px!important;font-weight:500!important}
footer .fcols a{font-size:14.5px!important;line-height:1.35!important}
footer .ftag{font-size:15px!important;line-height:1.5!important}
footer .fnote,footer .fmeta,footer .flegal a{font-size:10.5px!important}
footer .flegal a{font-family:var(--f-ui)!important;font-size:14px!important;letter-spacing:normal!important;text-transform:none!important}
footer .typeline{font-size:clamp(20px,2.4vw,34px)!important;font-weight:330!important;line-height:1.2!important;letter-spacing:-.02em!important}

/* ---- 8 · controls ---- */
.btn,.btn.primary,.btn.secondary{font-family:var(--f-ui)!important;font-size:14.5px!important;font-weight:500!important;letter-spacing:0!important}
.ndl,.tn-links a,.tn-cta,.tn-ghost{font-size:15px!important}
.ndpanel b{font-size:15.5px!important}
.ndpanel span:not(.ndthumb){font-size:13.5px!important;line-height:1.45!important}

/* ---- 9 · base ---- */
body{font-family:var(--f-ui)!important;font-size:15.5px;line-height:1.65}
/* every body-copy slot lands on one size */
main p:not(.lede):not(.kicker):not(.band-note):not(.pq-cap):not(.pq-lab):not(.mline):not(.sec-sub):not(.lsub):not(.pq-sub):not(.mq),main li,main .sub{font-size:15.5px}
/* the homepage hero is the one deliberate exception */
.opener header.hero h1{font-size:clamp(44px,5.4vw,86px)!important;line-height:1.02!important;letter-spacing:-.025em!important}

/* ---- 10 · final pass: beats any page-level !important at 1-class specificity ---- */
main .lsec,main .sec,main .pq-h,main .lhead h2,main .nw-head h2,main .cr-band h2,main #mission h2,
main .teamhead h2,main .introduo h2,main .sechome h2,main .pe-band h2{
  font-size:clamp(27px,2.95vw,42px)!important;line-height:1.1!important;font-weight:460!important;letter-spacing:-.015em!important;
}
main .cibreak h2,main #roigap .mline,main .mline,#why .mline{font-size:clamp(29px,3.5vw,50px)!important;font-weight:400!important;line-height:1.12!important;letter-spacing:-.015em!important}
main .sec-sub,main .lsub{font-size:clamp(15.5px,1.15vw,17.5px)!important}
main .pghero h1,main header.hero h1,body .pghero h1{font-size:clamp(34px,3.95vw,56px)!important}
body .opener header.hero h1{font-size:clamp(44px,5.4vw,86px)!important;line-height:1.02!important;letter-spacing:-.025em!important}
main .pghero p,main header.hero p.lede,main .flowhero p{font-size:clamp(15.5px,1.15vw,17.5px)!important}
main .lsub,main .sec-sub,main .pq-sub,main .lhead>p,main .pq-head>p,main .cibreak p,main .flowband p{font-size:clamp(15.5px,1.15vw,17.5px)!important}
main .seccard h3,main .newscard h3,main .nw-card h3,main .xtile h3,main .scard h3,main .stcard h3,
main .cap-head h3,main .seclist h3,main .pq-plist h3,main .rdrow h3,main .cr-card h3,main .cr-open h3,
main .faqcard h3,main .jobcard h3,main .ig-card h3,main .pq-stage h3,main .block h3{
  font-size:clamp(18px,1.6vw,24px)!important;line-height:1.22!important;
}
main .seccard p,main .newscard p,main .nw-card p,main .xtile p,main .scard p,main .stcard p,
main .cap-head p,main .seclist p,main .pq-plist p,main .rdrow p,main .cr-card p,main .cr-open p,
main .faqcard p,main .jobcard p,main .ig-card p,main .pq-roles p,main .block p,main .dp-card p{font-size:15.5px!important}
main #waitlist .cta-band h2{font-size:clamp(27px,2.95vw,42px)!important}

/* ---- 9 · footer opens on a hairline, on every page ---- */
footer .fgrid{border-top:1px solid rgba(247,245,242,.14)!important;padding-top:clamp(34px,3.6vw,56px)!important}

/* ---- 11 · forms: one spec on every page ----
   Underline only. No boxes, no fills: a single hairline under each field
   on white. One type size, one ink, one placeholder grey. */
.apf-card,.ct-form,#fGet,#fContact,.wz-card,.gcard{background:#FFFFFF!important}

.ct-form input,.ct-form select,.ct-form textarea,
.apf-fld input[type=text],.apf-fld input[type=email],.apf-fld input[type=tel],.apf-fld textarea,
.fld input[type=text],.fld input[type=email],.fld input[type=tel],.fld select,.fld textarea,
.wz-input,.wz-select,
form input[type=text],form input[type=email],form input[type=tel],form input[type=url],
form select,form textarea{
  width:100%;
  font-family:var(--f-ui)!important;font-size:15.5px!important;font-weight:400!important;
  line-height:1.5!important;letter-spacing:normal!important;
  color:#1B1B1B!important;
  background:transparent!important;background-color:transparent!important;
  border:0!important;border-bottom:1px solid rgba(27,27,27,.18)!important;border-radius:0!important;
  padding:10px 2px 12px!important;box-shadow:none!important;
  transition:border-color .16s ease!important;
}
.ct-form textarea,.apf-fld textarea,.fld textarea,textarea.wz-input,form textarea{
  min-height:132px!important;resize:vertical!important;
}
/* the select keeps its caret, on the same hairline */
.ct-form select,.fld select,.wz-select,form select{
  appearance:none;-webkit-appearance:none;padding-right:26px!important;
}
/* one placeholder grey */
.ct-form input::placeholder,.ct-form textarea::placeholder,
.apf-fld input::placeholder,.apf-fld textarea::placeholder,
.fld input::placeholder,.fld textarea::placeholder,
.wz-input::placeholder,form input::placeholder,form textarea::placeholder{
  color:#B4AFA6!important;opacity:1!important;font-weight:400!important;
}
/* focus: the hairline darkens to ink, nothing else moves */
.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus,
.apf-fld input:focus,.apf-fld textarea:focus,
.fld input:focus,.fld select:focus,.fld textarea:focus,
.wz-input:focus,.wz-select:focus,
form input:focus,form select:focus,form textarea:focus{
  border-bottom-color:#1B1B1B!important;box-shadow:none!important;
  background:transparent!important;outline:none!important;
}
/* one field label spec: sentence case, sitting on the field */
.ct-form label b,.apf-fld>label,.fld>label,.wz-label,
form .fld label:not(.chk label),form label>b{
  display:block;font-family:var(--f-ui)!important;font-weight:500!important;
  font-size:13.5px!important;letter-spacing:normal!important;text-transform:none!important;
  color:#1B1B1B!important;line-height:1.4!important;margin-bottom:2px!important;
}
.apf-fld>label i{font-size:13.5px!important;letter-spacing:normal!important;color:#9A958C!important;text-transform:none!important}
/* checkbox and radio rows read as body copy */
.chk,.chk label,.apf-seg span{
  font-family:var(--f-ui)!important;font-size:14.5px!important;font-weight:400!important;
  letter-spacing:normal!important;text-transform:none!important;line-height:1.5!important;color:#1B1B1B!important;
}
.apf-seg span{background:transparent!important;border:1px solid rgba(27,27,27,.18)!important}
.apf-seg input:checked+span{background:#1B1B1B!important;color:#F7F5F2!important;border-color:#1B1B1B!important}
.apf-fld>label.apf-file{background:transparent!important;border-color:rgba(27,27,27,.22)!important}
/* fine print and notes: one size, one grey */
.ct-note,.fine,.wz-fine,form .fine,form .ct-note{
  font-family:var(--f-ui)!important;font-size:13px!important;font-weight:400!important;
  line-height:1.6!important;color:#8A857C!important;letter-spacing:normal!important;text-transform:none!important;
}
/* submit button: the site's control spec */
.ct-send,#fGet button[type=submit],#fContact button[type=submit],.apf-card button[type=submit],form .btn.primary{
  font-family:var(--f-ui)!important;font-size:15px!important;font-weight:540!important;letter-spacing:0!important;
}
/* form-page headlines: SF Pro Display, never bold */
.pghero h1,#paneGet h1,#paneContact h1,.apf-wrap h1,h2.as-h1{
  font-family:var(--f-display)!important;font-weight:460!important;
}
/* the highlighted aside card keeps its dark ground and light ink */
.ct-card.hl{color:#F7F5F2!important}
.ct-card.hl b{color:#F7F5F2!important}
.ct-card.hl p{color:rgba(247,245,242,.78)!important}
.ct-card.hl .ct-chip{color:#F7F5F2!important;background:rgba(247,245,242,.1)!important;border-color:rgba(247,245,242,.22)!important}
@media(max-width:700px){
  /* 16px on phones so iOS does not zoom the viewport on focus */
  .ct-form input,.ct-form select,.ct-form textarea,
  .apf-fld input,.apf-fld textarea,.fld input,.fld select,.fld textarea,
  .wz-input,.wz-select,form input,form select,form textarea{
    font-size:16px!important;min-height:0!important;padding:10px 2px 14px!important;
  }
  .ct-form textarea,.apf-fld textarea,.fld textarea,form textarea{min-height:126px!important}
}

/* ---- 12 · page heroes on phones: real air above the headline ----
   Every page hero starts well clear of the nav instead of hugging it. */
@media(max-width:700px){
  html body main#main .pghero.pghero,
  html body main#main header.pghero.pghero,
  html body main#main .pghero.skyhero.skyhero,
  html body main#main .prhero.prhero,
  html body main#main .flowhero.flowhero,
  html body main#main .nw-hero.nw-hero{
    padding-top:calc(clamp(96px,10vw,140px) + 56px)!important;
  }
  html body main#main .pghero .kicker{margin-bottom:14px!important}
}
