
:root{
  box-sizing:border-box;
  --paper:#ffffff;
  --mist:#f2f5f9;
  --ink:#14213d;
  --text:#3d4a63;
  --soft:#5f7391;
  --statement:#3e6a9c;
  --hair:#d9e1ec;
  --drop-deep:#0b2f86;
  --drop:#3784c4;
  --night:#14213d;
  --display:"Jost", "Century Gothic", "Futura", "Avenir Next", sans-serif;
  --body:"Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0e1526; --mist:#141d33; --ink:#eef2f8; --text:#c3cbda; --soft:#9aa8bf; --statement:#8fb4de; --hair:#26324d; --night:#0a0f1c;
  }
}
:root[data-theme="dark"]{
  --paper:#0e1526; --mist:#141d33; --ink:#eef2f8; --text:#c3cbda; --soft:#9aa8bf; --statement:#8fb4de; --hair:#26324d; --night:#0a0f1c;
}
html{ scroll-padding-top:calc(env(safe-area-inset-top,0px) + 72px); scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
*,*::before,*::after{ box-sizing:inherit; }
body{ margin:0; background:var(--paper); color:var(--text); font-family:var(--body); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; }
img{ max-width:100%; display:block; }
a{ color:inherit; }
:focus-visible{ outline:2px solid var(--drop); outline-offset:4px; }

/* type */
.display, h1, h2, h3{ font-family:var(--display); font-weight:300; color:var(--statement); text-transform:uppercase; letter-spacing:.045em; margin:0; }
h1{ font-size:clamp(28px,3.3vw,44px); line-height:1.22; }
h2{ font-size:clamp(26px,3vw,40px); line-height:1.24; }
h3{ font-size:20px; line-height:1.3; letter-spacing:.06em; color:var(--ink); font-weight:400; }
.small-caps{ font-family:var(--display); font-size:12px; letter-spacing:.18em; text-transform:uppercase; font-weight:500; color:var(--soft); }
.lede{ font-size:16px; line-height:1.7; color:var(--text); max-width:34ch; }


/* buttons and text links */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:0 26px;
  background:var(--drop-deep); color:#fff; text-decoration:none; font-family:var(--display); font-size:13px; font-weight:500; letter-spacing:.16em; text-transform:uppercase;
}
.btn:hover{ background:#082567; }
.btn svg{ width:16px; height:16px; }
.tlink{
  display:inline-flex; align-items:center; gap:14px; min-height:44px; text-decoration:none;
  font-family:var(--display); font-size:12px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--ink);
  border-bottom:1px solid var(--hair); padding-bottom:2px;
}
.tlink:hover{ border-bottom-color:var(--ink); }
.tlink span{ display:inline-block; width:28px; height:1px; background:currentColor; position:relative; }
.tlink span::after{ content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg); }

/* section marker diamond, from the reference */
.diamond{ width:34px; height:34px; border:1px solid #a9bdd6; transform:rotate(45deg); flex:none; }

/* ---------- nav ---------- */
.nav{ position:fixed; inset:0 0 auto 0; z-index:50; background:var(--paper); border-bottom:1px solid var(--hair); padding-top:env(safe-area-inset-top,0px); }
.nav-in{ max-width:1240px; margin:0 auto; height:68px; padding:0 28px; display:flex; align-items:center; gap:32px; }
.nav-brand{ display:flex; align-items:center; gap:12px; text-decoration:none; margin-right:auto; }
.nav-brand img{ height:34px; width:auto; }
.nav-links{ display:flex; gap:28px; }
.nav-links a{ font-family:var(--display); font-size:12px; letter-spacing:.16em; text-transform:uppercase; text-decoration:none; color:var(--soft); padding:6px 0; border-bottom:1px solid transparent; }
.nav-links a:hover{ color:var(--ink); border-bottom-color:var(--ink); }
.nav .btn{ min-height:40px; padding:0 18px; font-size:12px; }
.menu-btn{ display:none; width:44px; height:44px; background:none; border:0; color:var(--ink); cursor:pointer; padding:0; }
.menu-btn svg{ width:26px; height:26px; }
.mobile-menu{ display:none; }
@media (max-width:900px){
  .nav-links, .nav .btn{ display:none; }
  .menu-btn{ display:inline-flex; align-items:center; justify-content:center; }
  .mobile-menu{ position:fixed; inset:calc(68px + env(safe-area-inset-top,0px)) 0 auto 0; background:var(--paper); border-bottom:1px solid var(--hair); padding:8px 28px 28px; z-index:49; }
  .mobile-menu.open{ display:block; }
  .mobile-menu a:not(.btn){ display:block; padding:14px 0; border-bottom:1px solid var(--hair); font-family:var(--display); font-size:14px; letter-spacing:.16em; text-transform:uppercase; text-decoration:none; color:var(--ink); }
  .mobile-menu .btn{ margin-top:20px; width:100%; }
}

/* ---------- hero ---------- */
.hero{ min-height:100svh; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); padding-top:calc(68px + env(safe-area-inset-top,0px)); }
.hero-text{ display:flex; flex-direction:column; justify-content:center; padding:64px clamp(28px,6vw,96px) 48px; gap:28px; position:relative; }
.hero-logo{ width:min(340px,78%); }
.hero-text h1{ max-width:17ch; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:18px 28px; align-items:center; }
.scroll-cue{ position:absolute; left:clamp(28px,6vw,96px); bottom:32px; display:flex; align-items:center; gap:14px; }
.scroll-cue i{ display:block; width:1px; height:34px; background:var(--soft); }
.hero-photo{ position:relative; overflow:hidden; background:var(--mist); }
.hero-photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 40%; }
@media (max-width:900px){
  .hero{ grid-template-columns:1fr; min-height:0; }
  .hero-photo{ order:-1; height:62svh; min-height:340px; }
  .hero-text{ padding:40px 24px 56px; gap:22px; }
  .scroll-cue{ display:none; }
}

/* ---------- statement blocks, Montfort rhythm ---------- */
.wrap{ max-width:1240px; margin:0 auto; padding:0 28px; }
.statement{ padding:clamp(96px,14vw,180px) 0; }
.statement-grid{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:40px 24px; }
.statement h2{ grid-column:4 / span 8; font-size:clamp(28px,3.6vw,48px); line-height:1.2; }
.statement .copy{ grid-column:2 / span 4; display:flex; flex-direction:column; gap:28px; }
.statement.alt h2{ grid-column:1 / span 8; }
.statement.alt .copy{ grid-column:8 / span 4; }
@media (max-width:900px){
  .statement-grid{ grid-template-columns:1fr; }
  .statement h2, .statement .copy, .statement.alt h2, .statement.alt .copy{ grid-column:1; }
}

/* ---------- pipe story ---------- */
.story{ position:relative; height:500vh; background:var(--mist); }
.stage{ position:sticky; top:0; height:100vh; height:100svh; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); align-items:center; gap:32px; max-width:1240px; margin:0 auto; padding:calc(68px + env(safe-area-inset-top,0px) + 24px) 28px 40px; overflow:hidden; }
.steps{ position:relative; min-height:300px; }
.step{ position:absolute; inset:0 0 auto 0; opacity:0; transform:translateY(14px); transition:opacity .45s ease, transform .45s ease; }
.step.on{ opacity:1; transform:none; }
.step .num{ font-family:var(--display); font-size:15px; color:var(--soft); margin-bottom:18px; display:flex; align-items:center; gap:14px; }
.step .num::after{ content:""; width:48px; height:1px; background:var(--hair); }
.step h3{ font-size:clamp(24px,2.8vw,36px); line-height:1.2; color:var(--statement); font-weight:300; letter-spacing:.045em; margin-bottom:20px; max-width:16ch; }
.step p{ margin:0 0 24px; max-width:36ch; }
.pipe-wrap{ position:relative; width:100%; max-width:640px; aspect-ratio:1; justify-self:center; max-height:calc(100svh - 160px); }
.pipe-wrap svg{ width:100%; height:100%; display:block; overflow:visible; }
.ticks{ position:absolute; left:28px; bottom:28px; display:flex; gap:8px; width:min(380px,60%); }
.ticks span{ flex:1; height:1px; background:var(--hair); position:relative; }
.ticks i{ position:absolute; inset:0 auto 0 0; width:0; background:var(--ink); }
@media (max-width:900px){
  .stage{ grid-template-columns:1fr; grid-template-rows:auto 1fr; align-items:start; gap:4px; padding-top:calc(68px + env(safe-area-inset-top,0px) + 12px); }
  .pipe-wrap{ width:min(78vw,44svh); }
  .steps{ min-height:250px; }
  .step h3{ font-size:24px; margin-bottom:10px; }
  .step .num{ margin-bottom:10px; }
  .step p{ font-size:15px; margin-bottom:14px; }
}

/* ---------- work ---------- */
.work{ padding:clamp(96px,12vw,160px) 0; }
.work-head{ display:flex; align-items:center; gap:28px; margin-bottom:56px; }
.work-grid{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:24px; align-items:end; }
.work figure{ margin:0; }
.work figure img{ width:100%; object-fit:cover; }
.work figcaption{ margin-top:14px; display:flex; justify-content:space-between; gap:16px; font-size:14px; color:var(--soft); border-top:1px solid var(--hair); padding-top:12px; }
.work figcaption b{ font-family:var(--display); font-weight:400; letter-spacing:.14em; text-transform:uppercase; font-size:13px; color:var(--ink); }
.w-bath{ grid-column:1 / span 7; }
.w-bath img{ aspect-ratio:4/5; }
.w-shower{ grid-column:9 / span 4; margin-bottom:120px !important; }
.w-shower img{ aspect-ratio:9/14; }
@media (max-width:900px){
  .work-grid{ grid-template-columns:1fr; gap:48px; }
  .w-bath, .w-shower{ grid-column:1; margin-bottom:0 !important; }
}

/* ---------- services ---------- */
.services{ padding:0 0 clamp(96px,12vw,160px); }
.svc-list{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 48px; margin-top:56px; }
.svc{ padding:30px 0 34px; border-top:1px solid var(--hair); }
.svc h3{ font-size:16px; letter-spacing:.14em; margin-bottom:10px; }
.svc p{ margin:0; font-size:15px; color:var(--text); max-width:32ch; }
@media (max-width:1000px){ .svc-list{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px){ .svc-list{ grid-template-columns:1fr; } }

/* ---------- about ---------- */
.about{ display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); background:var(--mist); }
.about-photo{ min-height:520px; }
.about-photo img{ width:100%; height:100%; object-fit:cover; object-position:60% 50%; }
.about-text{ padding:clamp(56px,8vw,120px) clamp(28px,6vw,96px); display:flex; flex-direction:column; gap:28px; justify-content:center; }
.lic{ display:flex; flex-wrap:wrap; gap:10px 28px; padding:0; margin:0; list-style:none; font-family:var(--display); font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); }
.lic li{ display:flex; align-items:center; gap:10px; }
.lic li::before{ content:""; width:7px; height:7px; border:1px solid var(--drop); transform:rotate(45deg); }
@media (max-width:900px){ .about{ grid-template-columns:1fr; } .about-photo{ min-height:300px; height:52vw; } }

/* ---------- call band ---------- */
.call{ background:var(--night); color:#e9eef6; padding:clamp(88px,11vw,150px) 0; }
.call-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:56px; align-items:start; }
.call-copy{ display:flex; flex-direction:column; gap:24px; padding-top:8px; }
.call-logo{ width:100%; max-width:320px; margin-bottom:16px; }
.call h2{ color:#cfe0f3; }
.call p{ margin:0; color:#b8c4d6; max-width:44ch; }
.call .tlink{ color:#fff; border-bottom-color:#3a4a6b; }
.call .tlink:hover{ border-bottom-color:#fff; }
.call .btn{ background:#2f75b5; }
.call .btn:hover{ background:#255f95; }
.call-actions{ display:flex; flex-wrap:wrap; gap:18px 28px; align-items:center; }
.cform{ background:#ffffff; color:#14213d; padding:clamp(24px,3.4vw,44px); display:flex; flex-direction:column; gap:18px; }
.cform h3{ color:#14213d; font-size:20px; margin-bottom:4px; }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{ font-family:var(--display); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#3d4a63; }
.field .opt{ text-transform:none; letter-spacing:.02em; color:#6b7a92; }
.field input, .field select, .field textarea{
  font:inherit; font-size:16px; color:#14213d; background:#f2f5f9; border:1px solid #d9e1ec; border-radius:0; padding:12px 14px; min-height:48px; width:100%;
}
.field textarea{ resize:vertical; min-height:110px; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid #3784c4; outline-offset:0; border-color:#3784c4; background:#fff; }
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"]{ border-color:#b3261e; }
.cform .btn{ background:#0b2f86; align-self:flex-start; min-width:200px; cursor:pointer; border:0; }
.cform .btn:hover{ background:#082567; }
.cform .btn[disabled]{ opacity:.6; cursor:default; }
.fstatus{ margin:0; font-size:15px; color:#3d4a63; min-height:1.5em; }
.fstatus.ok{ color:#1d6b3a; }
.fstatus.err{ color:#b3261e; }
@media (max-width:900px){ .call-grid{ grid-template-columns:1fr; gap:40px; } .call-logo{ max-width:240px; } }
@media (max-width:520px){ .row2{ grid-template-columns:1fr; } .cform .btn{ width:100%; } }

/* ---------- reviews ---------- */
.reviews{ padding:clamp(88px,11vw,150px) 0; background:var(--mist); }
.rev-head{ display:flex; flex-direction:column; align-items:flex-start; gap:22px; max-width:760px; }
.stars{ display:flex; gap:4px; color:#e3a008; }
.stars svg{ width:26px; height:26px; }
.rev-list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:24px; margin-top:56px; }
.rev{ background:var(--paper); padding:32px; display:flex; flex-direction:column; gap:16px; margin:0; }
.rev .stars svg{ width:16px; height:16px; }
.rev blockquote{ margin:0; font-size:17px; line-height:1.6; color:var(--ink); }
.rev figcaption{ font-family:var(--display); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--soft); margin-top:auto; }
@media (max-width:900px){ .rev-list{ grid-template-columns:1fr; } }

/* ---------- footer ---------- */
footer{ padding:72px 0 40px; background:var(--paper); }
.foot-grid{ display:grid; grid-template-columns:1.2fr 1fr 1fr 1.2fr; gap:40px 24px; padding-bottom:56px; }
.foot-grid h4{ margin:0 0 18px; font-family:var(--display); font-weight:400; font-size:15px; letter-spacing:.12em; text-transform:uppercase; color:var(--statement); }
.foot-grid ul{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.foot-grid a, .foot-grid li{ font-family:var(--display); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--soft); text-decoration:none; }
.foot-grid a:hover{ color:var(--ink); }
.foot-contact p{ margin:0 0 6px; font-size:14px; letter-spacing:.04em; color:var(--text); }
.foot-contact a{ font-family:var(--body); text-transform:none; letter-spacing:.02em; font-size:14px; color:var(--ink); }
.foot-base{ border-top:1px solid var(--hair); padding-top:28px; display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between; }
.foot-base .brand{ display:flex; align-items:center; gap:16px; }
.foot-base img{ height:30px; width:auto; }
.foot-base .sep{ width:1px; height:26px; background:var(--hair); }
.foot-base .word{ font-family:var(--display); font-size:15px; letter-spacing:.32em; text-transform:uppercase; color:var(--statement); }
.foot-base small{ font-size:12px; letter-spacing:.08em; color:var(--soft); }
@media (max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .foot-grid{ grid-template-columns:1fr; } .foot-base .word{ letter-spacing:.2em; font-size:13px; } }


/* nav wordmark */
.nav-sep{ width:1px; height:24px; background:var(--hair); }
.nav-word{ font-family:var(--display); font-size:13px; letter-spacing:.3em; text-transform:uppercase; color:var(--ink); }
@media (max-width:420px){ .nav-word{ letter-spacing:.2em; font-size:12px; } }

/* hero load reveal and parallax */
.rv{ opacity:0; transform:translateY(18px); animation:rv .9s cubic-bezier(.2,.7,.2,1) forwards; }
.rv:nth-child(2){ animation-delay:.12s } .rv:nth-child(3){ animation-delay:.24s } .rv:nth-child(4){ animation-delay:.36s } .rv:nth-child(5){ animation-delay:.48s }
@keyframes rv{ to{ opacity:1; transform:none; } }
.hero-photo img{ transform:scale(1.08); will-change:transform; }
.hero-photo::after{ content:""; position:absolute; left:0; top:0; bottom:0; width:1px; background:var(--hair); }

/* words that fill in as you scroll */
.fill-text .w{ color:#c3d1e3; transition:color .25s ease; }
.fill-text .w.lit{ color:var(--statement); }
:root[data-theme="dark"] .fill-text .w{ color:#2c3a58; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .fill-text .w{ color:#2c3a58; } }

/* problem picker */
.picker{ padding:0 0 clamp(96px,12vw,160px); }
.picker-head{ display:flex; align-items:center; gap:28px; margin-bottom:40px; }
.picker-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:48px; align-items:start; }
.chips{ display:flex; flex-wrap:wrap; gap:10px; }
.chip{
  min-height:48px; padding:0 20px; border:1px solid var(--hair); background:var(--paper); color:var(--ink); cursor:pointer;
  font-family:var(--display); font-size:13px; letter-spacing:.14em; text-transform:uppercase; display:inline-flex; align-items:center; gap:10px;
  transition:border-color .2s, background .2s, color .2s;
}
.chip svg{ width:18px; height:18px; color:var(--drop); }
.chip:hover{ border-color:var(--ink); }
.chip[aria-pressed="true"]{ background:var(--drop-deep); border-color:var(--drop-deep); color:#fff; }
.chip[aria-pressed="true"] svg{ color:#9cc6ec; }
.answer{ background:var(--mist); padding:clamp(28px,4vw,48px); min-height:300px; display:flex; flex-direction:column; gap:18px; position:relative; }
.answer::before{ content:""; position:absolute; left:0; top:0; width:56px; height:2px; background:var(--drop); }
.answer h3{ font-size:clamp(22px,2.4vw,30px); color:var(--statement); font-weight:300; letter-spacing:.045em; }
.answer p{ margin:0; max-width:46ch; }
.answer .note{ font-size:14px; color:var(--soft); }
.answer-actions{ display:flex; flex-wrap:wrap; gap:16px 28px; align-items:center; margin-top:auto; padding-top:8px; }
.answer.swap{ animation:swap .35s ease; }
@keyframes swap{ from{ opacity:.2; transform:translateY(8px); } to{ opacity:1; transform:none; } }
@media (max-width:900px){ .picker-grid{ grid-template-columns:1fr; gap:24px; } .answer{ min-height:0; } }

/* relining story */
.reline{ position:relative; height:620vh; background:var(--paper); border-top:1px solid var(--hair); }
.rstage{ position:sticky; top:0; height:100vh; height:100svh; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,2fr); align-items:center; gap:40px; max-width:1360px; margin:0 auto; padding:calc(68px + env(safe-area-inset-top,0px) + 24px) 28px 48px; overflow:hidden; }
.rsteps{ position:relative; min-height:330px; }
.rgraphic{ position:relative; width:100%; }
.rgraphic svg{ width:100%; height:auto; display:block; }
.rlabel{ position:absolute; right:0; top:-6px; }
.rticks{ position:absolute; left:28px; bottom:28px; display:flex; gap:8px; width:min(420px,60%); }
.rticks span{ flex:1; height:1px; background:var(--hair); position:relative; }
.rticks i{ position:absolute; inset:0 auto 0 0; width:0; background:var(--ink); }
#flow{ animation:flow 1s linear infinite; }
#flowLat{ animation:flow 1s linear infinite; }
@keyframes flow{ to{ stroke-dashoffset:-38; } }
@media (max-width:900px){
  .rstage{ grid-template-columns:1fr; grid-template-rows:auto 1fr; align-items:start; gap:8px; padding-top:calc(68px + env(safe-area-inset-top,0px) + 12px); }
  .rsteps{ min-height:240px; }
  .rgraphic svg{ max-height:52svh; }
  .rlabel{ display:none; }
  .rstep .btn, .steps .step .btn{ display:none; }
  .rsteps{ min-height:250px; }
}

/* work hover */
.work figure{ overflow:hidden; }
.work figure img{ transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.work figure:hover img{ transform:scale(1.035); }
.work figure > div{ overflow:hidden; }

/* mobile call bar */
.callbar{ display:none; }
@media (max-width:900px){
  body{ padding-bottom:calc(76px + env(safe-area-inset-bottom,0px)); }
  .callbar{ display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60; padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px)); background:var(--paper); border-top:1px solid var(--hair); transform:translateY(110%); transition:transform .35s ease; }
  .callbar.show{ transform:none; }
  .callbar .btn{ width:100%; }
}

@media (prefers-reduced-motion: reduce){
  .rv{ animation:none; opacity:1; transform:none; }
  .answer.swap{ animation:none; }
  #flow, #flowLat{ animation:none; }
  .work figure img, .callbar{ transition:none; }
}
@media (prefers-reduced-motion: reduce){ .step{ transition:none; } }

/* ---------- inner pages ---------- */
main{ padding-top:calc(68px + env(safe-area-inset-top,0px)); }
.crumbs{ padding-top:28px; display:flex; flex-wrap:wrap; gap:8px; }
.crumbs a{ text-decoration:none; color:var(--soft); }
.crumbs a:hover{ color:var(--ink); }
.crumbs [aria-current]{ color:var(--ink); }
.phero{ padding-top:clamp(40px,7vw,96px); padding-bottom:clamp(56px,8vw,112px); display:flex; flex-direction:column; gap:26px; }
.phero h1{ max-width:20ch; font-size:clamp(30px,4.4vw,58px); line-height:1.16; }
.phero .lede{ max-width:52ch; font-size:18px; }
.eyebrow{ margin:0; }
.pstatement{ background:var(--mist); padding:clamp(80px,10vw,140px) 0; }
.pstatement h2{ grid-column:1 / span 7; font-size:clamp(24px,2.8vw,38px); }
.pstatement .copy{ grid-column:8 / span 5; }
.prose p{ margin:0; }
.psection{ padding:clamp(80px,10vw,140px) 0 clamp(56px,8vw,112px); }
.psection .svc-list{ margin-top:0; }
.psteps, .pfaq, .plinks, .pjobs{ padding:0 0 clamp(80px,10vw,140px); }
.pjobs{ padding-top:clamp(80px,10vw,140px); }
.steplist{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.steplist li{ border-top:1px solid var(--hair); padding-top:22px; }
.steplist .n{ font-family:var(--display); font-size:15px; color:var(--soft); display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.steplist .n::after{ content:""; width:48px; height:1px; background:var(--hair); }
.steplist h3{ font-size:17px; letter-spacing:.1em; margin-bottom:10px; }
.steplist p{ margin:0; font-size:15px; }
.faq-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:24px 48px; align-items:start; }
.faqs details{ border-top:1px solid var(--hair); }
.faqs details:last-child{ border-bottom:1px solid var(--hair); }
.faqs summary{ list-style:none; cursor:pointer; padding:22px 40px 22px 0; position:relative; }
.faqs summary::-webkit-details-marker{ display:none; }
.faqs summary::after{ content:""; position:absolute; right:8px; top:50%; width:10px; height:10px; border-right:1px solid var(--ink); border-bottom:1px solid var(--ink); transform:translateY(-70%) rotate(45deg); transition:transform .2s; }
.faqs details[open] summary::after{ transform:translateY(-30%) rotate(-135deg); }
.faqs summary h3{ font-size:16px; letter-spacing:.1em; display:inline; }
.faqs details p{ margin:0 0 24px; max-width:60ch; }
.lcards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:0 24px; }
.lcard{ display:flex; flex-direction:column; gap:6px; padding:20px 40px 22px 0; border-top:1px solid var(--hair); text-decoration:none; position:relative; }
.lcard b{ font-family:var(--display); font-weight:400; font-size:17px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); }
.lcard i{ position:absolute; right:6px; top:50%; width:22px; height:1px; background:var(--soft); }
.lcard i::after{ content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-top:1px solid var(--soft); border-right:1px solid var(--soft); transform:rotate(45deg); }
.lcard:hover b{ color:var(--statement); }
.lcard:hover i{ background:var(--ink); }
.lcard:hover i::after{ border-color:var(--ink); }
.also{ margin-top:-48px; padding-bottom:clamp(64px,8vw,112px); color:var(--soft); font-size:15px; }
.jobs-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:24px 48px; align-items:start; }
.joblist{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; }
.joblist li{ border-top:1px solid var(--hair); padding:16px 0 16px 22px; position:relative; font-family:var(--display); letter-spacing:.08em; text-transform:uppercase; font-size:14px; color:var(--ink); }
.joblist li::before{ content:""; position:absolute; left:2px; top:23px; width:7px; height:7px; border:1px solid var(--drop); transform:rotate(45deg); }
.foot-grid h4 a{ color:inherit; font-size:inherit; letter-spacing:inherit; }
.foot-base small a{ color:inherit; }
/* policy */
.policy{ max-width:760px; }
.policy h2{ font-size:clamp(20px,2.2vw,26px); margin:44px 0 14px; }
.policy p, .policy li{ max-width:68ch; }
.policy ul{ padding-left:20px; }
.policy a{ color:var(--drop-deep); }
@media (max-width:900px){
  .pstatement h2, .pstatement .copy{ grid-column:1; }
  .steplist{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .faq-grid, .jobs-grid{ grid-template-columns:1fr; }
  .work-head{ margin-bottom:32px; }
}
@media (max-width:560px){ .steplist, .joblist{ grid-template-columns:1fr; } .phero .lede{ font-size:16px; } }
