:root{
  --paper:#F5F5F2;
  --stone:#E7E8E2;
  --ink:#1C2420;
  --emerald:#0E8A5F;
  --deep:#0A6B4A;
  --hush:#7E837B;
  --hair:#DCDDD6;
}
html{box-sizing:border-box;overflow-x:clip;-webkit-text-size-adjust:100%;}
*,*::before,*::after{box-sizing:inherit;}
html,body{margin:0;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:Inter,system-ui,sans-serif;
  font-size:17px;
  font-weight:400;
  line-height:1.62;
  overflow-wrap:break-word;
}
body.is-locked{overflow:hidden;}
img,svg,video{max-width:100%;height:auto;}
img{display:block;}
iframe{border:0;max-width:100%;}
h1,h2,h3,.head-big,.head-mid,.lede__h,.cell__num,.cell__title,.veil__link,.topline__mark{
  font-family:"Bricolage Grotesque",system-ui,sans-serif;
  letter-spacing:-0.02em;
}
h1,.head-big,.lede__h{
  font-weight:800;
  font-size:clamp(2.15rem,5.4vw,4.05rem);
  line-height:1.05;
  text-wrap:balance;
  margin:0 0 16px;
}
h2,.head-mid{
  font-weight:700;
  font-size:clamp(1.55rem,3vw,2.35rem);
  line-height:1.15;
  text-wrap:balance;
  margin:0 0 12px;
}
h3,.cell__title{
  font-weight:700;
  font-size:clamp(1.05rem,1.6vw,1.28rem);
  line-height:1.25;
  margin:0 0 8px;
}
p{margin:0 0 12px;}
p:last-child{margin-bottom:0;}
a{color:var(--deep);text-decoration-thickness:1px;text-underline-offset:3px;}
a:hover{color:var(--ink);}
:focus-visible{outline:2.5px solid var(--emerald);outline-offset:3px;}

/* skip */
.skip{
  position:absolute;
  left:-9999px;
  top:12px;
  z-index:90;
  background:var(--ink);
  color:#F5F5F2;
  padding:10px 14px;
  border-radius:10px;
  font-weight:500;
  text-decoration:none;
}
.skip:focus{left:16px;}

/* layout */
.frame{max-width:1280px;margin:0 auto;padding-inline:clamp(18px,4vw,44px);}
.spread{padding-block:clamp(44px,6vw,86px);}
.spread__head{max-width:66ch;margin-bottom:clamp(22px,3vw,36px);}
.kicker{
  display:block;
  color:var(--hush);
  font-size:13px;
  font-weight:500;
  letter-spacing:0.08em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.tone-ink .kicker,.tone-emerald .kicker{color:#F5F5F2;}
.para{max-width:66ch;}
.para--lead{font-size:1.05rem;color:var(--ink);}

.duo{display:grid;grid-template-columns:0.61fr 1.39fr;gap:clamp(16px,1.8vw,28px);align-items:start;}
.duo--mirror{grid-template-columns:1.39fr 0.61fr;}
.duo > aside .shotframe{margin-bottom:14px;}
.duo > aside .cell + .cell{margin-top:14px;}
.bento{display:grid;grid-template-columns:0.61fr 1.39fr;grid-auto-rows:minmax(132px,auto);gap:clamp(12px,1.4vw,22px);}
.bento--mirror{grid-template-columns:1.39fr 0.61fr;}
.cell--lead{grid-column:1;}
.cell--wide{grid-column:2;}
.cell--full{grid-column:1/-1;}
.cell--tall{grid-row:span 2;}

/* tiles */
.cell{
  border-radius:14px;
  padding:clamp(18px,2vw,30px);
  min-width:0;
}
.tone-stone{background:var(--stone);}
.tone-ink{background:var(--ink);color:#F5F5F2;}
.tone-emerald{background:var(--deep);color:#F5F5F2;}
.tone-plain{background:var(--paper);border:1px solid var(--hair);}
.tone-ink a,.tone-emerald a{color:#F5F5F2;}
.tone-ink a:hover,.tone-emerald a:hover{color:var(--stone);}
a.cell{text-decoration:none;color:inherit;display:block;}
a.cell.tone-ink,a.cell.tone-emerald{color:#F5F5F2;}
a.cell.tone-stone,a.cell.tone-plain{color:var(--ink);}
a.cell:hover{color:inherit;}
.cell__num{
  font-weight:700;
  font-size:clamp(1.8rem,3.2vw,2.6rem);
  line-height:1;
  font-variant-numeric:tabular-nums;
  margin:0 0 10px;
  color:var(--emerald);
}
.tone-ink .cell__num,.tone-emerald .cell__num{color:#F5F5F2;}
.cell__body{color:inherit;}
.tone-stone .cell__body,.tone-plain .cell__body{color:var(--ink);}

/* header */
.topline{
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(245,245,242,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--hair);
}
.topline .frame{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:68px;
  padding-block:10px;
}
.topline__mark{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
  text-decoration:none;
  font-weight:700;
  font-size:1.02rem;
}
.topline__mark:hover{color:var(--ink);}
.topline__mark svg{flex:0 0 26px;width:26px;height:26px;}
.topline__dial{
  display:inline-flex;
  align-items:center;
  gap:14px;
}
.topline__dial a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--ink);
  text-decoration:none;
  font-weight:500;
  font-size:15px;
}
.topline__dial a:hover{color:var(--deep);}
.topline__dial svg{width:18px;height:18px;flex:0 0 18px;}
.menu-key{
  width:44px;
  height:44px;
  border:1px solid var(--ink);
  border-radius:10px;
  background:transparent;
  display:inline-flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  cursor:pointer;
  padding:0;
}
.menu-key span{
  display:block;
  width:18px;
  height:1.5px;
  background:var(--ink);
}
.menu-key:hover{background:var(--ink);}
.menu-key:hover span{background:#F5F5F2;}

/* veil menu */
.veil{
  position:fixed;
  inset:0;
  z-index:50;
  background:var(--ink);
  color:#F5F5F2;
  display:grid;
  grid-template-columns:0.61fr 1.39fr;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  overflow:auto;
  transition:opacity .28s ease,visibility .28s ease;
}
.veil.is-open{opacity:1;visibility:visible;pointer-events:auto;}
.veil__aside{
  padding:clamp(28px,5vw,64px) clamp(18px,3vw,40px);
  border-right:1px solid rgba(245,245,242,.12);
  display:flex;
  flex-direction:column;
  gap:16px;
  justify-content:center;
}
.veil__aside p{color:#F5F5F2;margin:0;}
.veil__aside a{color:#F5F5F2;}
.veil__aside a:hover{color:var(--stone);}
.veil__nav{
  padding:clamp(28px,5vw,64px) clamp(22px,4vw,56px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px;
  overflow:auto;
}
.veil__link{
  color:#F5F5F2;
  text-decoration:none;
  font-weight:700;
  font-size:clamp(28px,5vw,54px);
  line-height:1.15;
  letter-spacing:-0.02em;
  display:flex;
  align-items:center;
  gap:14px;
}
.veil__link:hover{color:var(--stone);}
.veil__link[aria-current="page"]::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--emerald);
  flex:0 0 10px;
}

/* hero */
.lede{padding-block:clamp(28px,5vw,64px);}
.lede__h{margin-bottom:14px;}
.lede__sub{font-size:1.05rem;max-width:46ch;}
.lede__shot{border-radius:14px;overflow:hidden;min-height:220px;}
.lede__shot img{width:100%;height:100%;object-fit:cover;min-height:280px;}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;}
.trust-line{margin-top:18px;color:var(--hush);font-size:14px;}

/* actions */
.act{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 20px;
  border-radius:12px;
  font-family:Inter,system-ui,sans-serif;
  font-weight:500;
  font-size:16px;
  line-height:1.2;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.act--fill{background:var(--deep);color:#F5F5F2;border-color:var(--deep);}
.act--fill:hover{background:var(--ink);color:#F5F5F2;border-color:var(--ink);}
.act--line{background:transparent;color:var(--ink);border-color:var(--ink);}
.act--line:hover{background:var(--ink);color:#F5F5F2;}
.act--onink{background:#F5F5F2;color:#1C2420;border-color:#F5F5F2;}
.act--onink:hover{background:var(--stone);color:#1C2420;border-color:var(--stone);}
.tone-ink a.act--onink,.tone-emerald a.act--onink{color:#1C2420;}
.tone-ink a.act--onink:hover,.tone-emerald a.act--onink:hover{color:#1C2420;}

/* lists and steps */
.runlist{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
.runlist__item{padding-left:18px;position:relative;}
.runlist__item::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--emerald);
  position:absolute;
  left:0;
  top:0.62em;
}
.dayline{list-style:none;margin:0;padding:0;display:grid;gap:14px;}
.dayline__step{
  display:grid;
  grid-template-columns:minmax(92px,0.28fr) 1fr;
  gap:16px;
  align-items:start;
}
.step__tag{
  display:inline-block;
  font-family:"Bricolage Grotesque",system-ui,sans-serif;
  font-weight:700;
  font-size:14px;
  color:var(--deep);
  letter-spacing:-0.01em;
}
.tone-ink .step__tag,.tone-emerald .step__tag{color:#F5F5F2;}

/* tags and notes */
.tagrow{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;}
.tag{
  display:inline-block;
  font-size:12px;
  font-weight:500;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--deep);
  border:1px solid var(--hair);
  background:var(--paper);
  border-radius:999px;
  padding:4px 10px;
}
.tone-ink .tag,.tone-emerald .tag{color:#F5F5F2;border-color:rgba(245,245,242,.24);background:transparent;}
.notebar{
  border-left:3px solid var(--emerald);
  padding:12px 0 12px 16px;
  color:var(--hush);
  font-size:15px;
}

/* media */
.shotframe{border-radius:14px;overflow:hidden;margin:0;}
.shotframe img{width:100%;height:100%;object-fit:cover;}
.cap{font-size:13px;color:var(--hush);margin-top:8px;}

/* articles */
.post{max-width:66ch;}
.post + .post{margin-top:clamp(36px,5vw,64px);padding-top:clamp(28px,4vw,48px);border-top:1px solid var(--hair);}
.post__meta{color:var(--hush);font-size:14px;margin-bottom:12px;}

/* faq */
.qa{border-bottom:1px solid var(--hair);padding:14px 0;}
.qa__q{
  font-family:"Bricolage Grotesque",system-ui,sans-serif;
  font-weight:700;
  font-size:1.05rem;
  letter-spacing:-0.02em;
  cursor:pointer;
  list-style:none;
}
.qa__q::-webkit-details-marker{display:none;}
.qa__a{padding:10px 0 6px;max-width:66ch;}

/* form */
.ask{display:grid;gap:16px;}
.ask__field{display:grid;gap:6px;}
.ask__label{font-weight:500;font-size:15px;}
.ask__input,.ask__area,.ask__pick{
  width:100%;
  border:1px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  border-radius:10px;
  padding:12px 14px;
  font:inherit;
}
.ask__area{min-height:140px;resize:vertical;}
.ask__agree{display:flex;gap:10px;align-items:flex-start;font-size:15px;}
.ask__agree input{margin-top:4px;accent-color:var(--deep);}
.ask__note{font-size:13px;color:var(--hush);}
.decoy{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.flash{padding:14px 16px;border-radius:14px;margin-bottom:16px;border:1px solid var(--hair);}
.flash.is-ok{background:var(--stone);border-color:var(--deep);}
.flash.is-bad{background:var(--stone);border-color:var(--ink);}

/* footer */
.footstrip{
  border-top:1px solid var(--hair);
  padding:22px 0 28px;
}
.footstrip__row{
  display:flex;
  flex-wrap:wrap;
  gap:10px 16px;
  align-items:center;
  font-size:14px;
}
.footstrip__row a{color:var(--deep);text-decoration:none;}
.footstrip__row a:hover{color:var(--ink);text-decoration:underline;}
.footstrip__sep{color:var(--hush);}
.footstrip__fine{font-size:13px;color:var(--hush);margin-top:10px;max-width:80ch;}

/* cookie */
.cbar{
  position:fixed;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:45;
  background:var(--stone);
  border:1px solid var(--hair);
  border-radius:14px;
  padding:16px 18px;
  display:flex;
  flex-wrap:wrap;
  gap:14px 20px;
  align-items:center;
  justify-content:space-between;
  opacity:1;
  visibility:visible;
  transform:none;
  transition:opacity .25s ease,visibility .25s ease,transform .25s ease;
}
.cbar.is-gone{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px);}
.cbar__text{margin:0;max-width:62ch;font-size:15px;}
.cbar__acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.footstrip__sep-link{color:var(--deep);font-size:15px;}

/* map */
.mapbox{width:100%;min-height:380px;border:0;border-radius:14px;display:block;}

/* motion */
.lift-in{opacity:1;transform:none;}
html.js .lift-in{opacity:0;transform:translateY(14px);transition:opacity .45s ease,transform .45s ease;}
html.js .lift-in.is-lifted{opacity:1;transform:none;}
.no-js .lift-in{opacity:1!important;transform:none!important;}
@media (prefers-reduced-motion: reduce){
  .lift-in{opacity:1!important;transform:none!important;}
  .veil{transition:none;}
}

@media (max-width:980px){
  .duo,.duo--mirror,.bento,.bento--mirror{grid-template-columns:1fr;}
  .cell--lead,.cell--wide,.cell--full{grid-column:auto;}
  .cell--tall{grid-row:auto;}
  .veil{grid-template-columns:1fr;}
  .veil__aside{border-right:0;border-bottom:1px solid rgba(245,245,242,.12);}
  .dayline__step{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .topline__dial a span{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
  }
  .cbar{left:10px;right:10px;bottom:10px;}
}
