/* ===========================================================
   RentAWeb concept v6 - "The Wall"
   v4's emerald palette. No metaphor: the work fills the screen
   and the range of it IS the argument.
   =========================================================== */

:root {
  --emerald:   #12B76A;
  --emerald-d: #0E9457;
  --emerald-l: #34D089;
  --ink:       #07352A;   /* deep green ink */
  --ink-2:     #0B4A3A;
  --mint:      #D7F5E6;
  --mint-2:    #EAFBF2;
  --paper:     #FFFFFF;
  --off:       #F3FAF6;
  --text:      #0A2E25;
  --muted:     #5B7A70;
  --muted-2:   #85A096;
  --line:      #DCEBE4;
  --line-2:    rgba(255,255,255,.18);

  --sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --disp: "Bricolage Grotesque", var(--sans);

  --shell: 1240px;
  --r: 14px;
  --r-s: 10px;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--paper);
  color: var(--text);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; }

.shell { width: min(100% - 40px, var(--shell)); margin-inline: auto; }
@media (max-width: 700px) { .shell { width: calc(100% - 32px); } }

/* ---------- type ---------- */
.h1, .h2, .h3 {
  font-family: var(--disp);
  font-weight: 700;
  font-variation-settings: "wdth" 100, "opsz" 40;
  line-height: 1.03;
  letter-spacing: -0.028em;
  margin: 0;
  text-wrap: balance;
}
.h1 { font-size: clamp(2.5rem, 6vw, 4.6rem); }
.h2 { font-size: clamp(1.95rem, 4vw, 3.1rem); }
.h3 { font-size: clamp(1.2rem, 1.9vw, 1.5rem); letter-spacing: -.018em; }

.lede { font-size: clamp(1.05rem, 1.4vw, 1.2rem); color: var(--muted); max-width: 56ch; }

.eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .74rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase;
  color: var(--emerald-d);
}
.eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--emerald); }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  font-size: .95rem; font-weight: 600; white-space: nowrap;
  padding: .92rem 1.6rem; border-radius: 100px; text-decoration: none;
  border: 1.5px solid transparent; cursor: pointer;
  transition: transform .16s, background .2s, border-color .2s, color .2s, box-shadow .2s;
}
.btn:active { transform: translateY(1px); }
.btn-em { background: var(--emerald); color: #fff; box-shadow: 0 8px 22px -10px rgba(18,183,106,.9); }
.btn-em:hover { background: var(--emerald-d); }
.btn-ink { background: var(--ink); color: #fff; }
.btn-ink:hover { background: var(--ink-2); }
.btn-out { border-color: var(--line); color: var(--text); background: var(--paper); }
.btn-out:hover { border-color: var(--emerald); color: var(--emerald-d); }
.btn-glass {
  border-color: rgba(255,255,255,.45); color: #fff;
  background: rgba(255,255,255,.12); backdrop-filter: blur(8px);
}
.btn-glass:hover { background: rgba(255,255,255,.22); border-color: #fff; }

/* ---------- nav ---------- */
.nav {
  position: sticky; top: 0; z-index: 60;
  background: rgba(255,255,255,.88);
  backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color .25s;
}
.nav.stuck { border-bottom-color: var(--line); }
.nav .in-nav { display: flex; align-items: center; gap: 1.6rem; height: 70px; }
.brand {
  display: inline-flex; align-items: center; gap: .55rem;
  font-family: var(--disp); font-size: 1.24rem; font-weight: 700;
  letter-spacing: -.03em; text-decoration: none; color: var(--ink);
}
.brand .dot {
  width: 10px; height: 10px; border-radius: 50%; background: var(--emerald); flex: none;
}
.nav nav { margin-left: auto; display: flex; align-items: center; gap: 1.7rem; }
.nav nav a {
  font-size: .95rem; font-weight: 500; text-decoration: none; color: var(--muted);
  white-space: nowrap; transition: color .2s;
}
.nav nav a:hover { color: var(--ink); }
@media (max-width: 860px) { .nav nav a.hide-sm { display: none; } }
@media (max-width: 620px) {
  .nav nav a.hide-xs { display: none; }
  .nav nav { gap: .8rem; } .nav .in-nav { gap: .8rem; }
}

/* ===========================================================
   HERO - the wall
   =========================================================== */
.hero {
  position: relative;
  min-height: min(92vh, 880px);
  display: grid; place-items: center;
  overflow: hidden;
  /* near-neutral, so gaps between tiles do not cast green over the work */
  background: #05140F;
  isolation: isolate;
}

/* the drifting mosaic */
.wall-bg {
  position: absolute; inset: -6% -2%;
  display: grid; grid-template-columns: repeat(6, 1fr);
  gap: 14px;
  z-index: 0;
}
@media (max-width: 1100px) { .wall-bg { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 720px)  { .wall-bg { grid-template-columns: repeat(3, 1fr); gap: 10px; } }

.wcol {
  display: flex; flex-direction: column; gap: 14px;
  animation: drift var(--dur, 60s) linear infinite;
  will-change: transform;
}
@media (max-width: 720px) { .wcol { gap: 10px; } }
.wcol.rev { animation-direction: reverse; }
@keyframes drift {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(0, -50%, 0); }
}
.wall-bg.paused .wcol { animation-play-state: paused; }
.wall-bg.still .wcol { animation: none; }

.wtile {
  border-radius: var(--r-s);
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 30px -14px rgba(0,0,0,.5);
  flex: none;
}
.wtile img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.wtile.t1 { aspect-ratio: 4 / 3; }
.wtile.t2 { aspect-ratio: 3 / 4; }
.wtile.t3 { aspect-ratio: 1 / 1; }
.wtile.t4 { aspect-ratio: 9 / 16; }

/* Scrim so the headline reads, WITHOUT tinting the work green.
   Near-neutral ink and a tight radial, so the outer wall keeps each
   client site's own colours. That contrast is the whole argument. */
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(ellipse 46% 42% at 50% 50%,
      rgba(5,20,15,.93) 0%, rgba(5,20,15,.80) 38%, rgba(5,20,15,.34) 66%, transparent 88%),
    linear-gradient(to bottom,
      rgba(5,20,15,.52) 0%, transparent 16%, transparent 82%, rgba(5,20,15,.78) 100%);
}
/* On a phone the copy block fills far more of the viewport, so the tight
   desktop radial leaves body text fighting the tiles. Widen and deepen it. */
@media (max-width: 720px) {
  .hero::before {
    background:
      radial-gradient(ellipse 96% 54% at 50% 52%,
        rgba(5,20,15,.95) 0%, rgba(5,20,15,.90) 46%, rgba(5,20,15,.55) 74%, rgba(5,20,15,.2) 100%),
      linear-gradient(to bottom,
        rgba(5,20,15,.55) 0%, transparent 14%, transparent 84%, rgba(5,20,15,.8) 100%);
  }
}

.hero-in {
  position: relative; z-index: 2; text-align: center; padding: 5rem 0;
}
.hero-in .h1 {
  color: #fff; margin: 1.15rem auto .95rem; max-width: none;
  text-shadow: 0 2px 30px rgba(5,20,15,.75);   /* holds up over a busy tile */
}
.hero-in .h1 em { font-style: normal; color: var(--emerald-l); }
.hero-in p {
  color: rgba(255,255,255,.9); font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  max-width: 46ch; margin: 0 auto;
  text-shadow: 0 1px 18px rgba(5,20,15,.85);
}
.hero-in .cta { display: flex; gap: .7rem; justify-content: center; flex-wrap: wrap; margin: 1.9rem 0 1.1rem; }
.hero-in .noc {
  font-size: .85rem; color: rgba(255,255,255,.8); letter-spacing: .02em;
  text-shadow: 0 1px 14px rgba(5,20,15,.9);
}
.hero-in .noc b { color: var(--mint); font-weight: 600; }

/* count strip sitting on the hero foot */
.wall-count {
  position: absolute; z-index: 2; left: 0; right: 0; bottom: 0;
  padding: 3.4rem 1.2rem 1.5rem;
  text-align: center; font-size: .82rem; letter-spacing: .09em;
  text-transform: uppercase; font-weight: 600;
  color: rgba(255,255,255,.96);
  text-shadow: 0 1px 14px rgba(5,20,15,.95), 0 1px 3px rgba(5,20,15,.8);
  background: linear-gradient(180deg,
    rgba(7,53,42,0) 0%, rgba(7,53,42,.55) 45%, rgba(7,53,42,.85) 100%);
  pointer-events: none;
}

/* ===========================================================
   WHAT YOU GET  (replaces the old flat proof strip)
   =========================================================== */
.value{
  background:
    radial-gradient(ellipse 70% 60% at 15% 0%, rgba(18,183,106,.16), transparent 62%),
    radial-gradient(ellipse 60% 55% at 90% 100%, rgba(18,183,106,.1), transparent 60%),
    var(--ink);
  color:#fff;padding:clamp(3.2rem,6.5vw,5rem) 0;
}
.vhead{max-width:56ch;margin-bottom:clamp(2rem,3.5vw,2.8rem)}
.vhead .eyebrow{color:var(--mint)}
.vhead .eyebrow::before{background:var(--emerald-l)}
.vhead .h2{color:#fff;margin:.8rem 0 .7rem}
.vhead .lede{color:rgba(255,255,255,.72)}

.vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media(max-width:900px){.vgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.vgrid{grid-template-columns:1fr}}

.vcard{
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.13);
  border-radius:var(--r);padding:1.4rem 1.4rem 1.5rem;
  transition:border-color .22s, background .22s, transform .22s;
}
.vcard:hover{border-color:rgba(52,208,137,.55);background:rgba(255,255,255,.085);
  transform:translateY(-3px)}
.vicon{
  display:grid;place-items:center;width:42px;height:42px;border-radius:12px;
  background:rgba(52,208,137,.16);border:1px solid rgba(52,208,137,.35);
  color:var(--emerald-l);margin-bottom:1rem;
}
.vicon svg{width:23px;height:23px}
.vcard b{display:block;font-family:var(--disp);font-weight:700;font-size:1.12rem;
  letter-spacing:-.02em;margin-bottom:.4rem;color:#fff}
.vcard p{margin:0;color:rgba(255,255,255,.7);font-size:.94rem;line-height:1.6}

.vcta{
  margin-top:clamp(1.8rem,3vw,2.4rem);
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  border-radius:var(--r);padding:1.4rem 1.6rem;
}
.vcta b{display:block;font-family:var(--disp);font-weight:700;font-size:1.15rem;
  letter-spacing:-.02em;margin-bottom:.2rem}
.vcta span{color:rgba(255,255,255,.68);font-size:.94rem}
.vcta .btn{flex:none}
@media(max-width:700px){
  .vcta{flex-direction:column;align-items:stretch;text-align:center}
  .vcta .btn{width:100%}
}

/* ---------- sections ---------- */
.pad { padding: clamp(4rem, 8.5vw, 7rem) 0; }
.pad-t0 { padding-top: 0; }
.sec-head { max-width: 62ch; margin-bottom: clamp(2.2rem, 4vw, 3.2rem); }
.sec-head .h2 { margin: .85rem 0 .8rem; }
.sec-head.mid { margin-inline: auto; text-align: center; }
.sec-head.mid .lede { margin-inline: auto; }
.tint { background: var(--off); }

/* ---------- the work grid ---------- */
.work {
  display: grid; gap: clamp(1.2rem, 2.2vw, 1.8rem);
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}
@media (max-width: 640px) { .work { grid-template-columns: 1fr; } }

.wsheet {
  appearance: none; border: 1px solid var(--line); padding: 0; margin: 0;
  background: var(--paper); cursor: pointer; text-align: left; color: inherit; font: inherit;
  display: block; border-radius: var(--r); overflow: hidden;
  opacity: 0; transform: translateY(16px);
  transition: opacity .6s ease, transform .6s ease, box-shadow .28s ease, border-color .28s;
}
.wsheet.in { opacity: 1; transform: none; }
.wsheet:hover { box-shadow: 0 22px 44px -24px rgba(7,53,42,.45); border-color: var(--emerald); }

.wsheet .wshot { display: block; overflow: hidden; aspect-ratio: 10 / 7; background: var(--off); }
.wsheet .wshot img {
  width: 100%; height: 100%; object-fit: cover; object-position: top center;
  transition: transform .6s cubic-bezier(.2,.7,.2,1);
}
.wsheet:hover .wshot img { transform: scale(1.04); }

.wsheet .wbar { display: flex; height: 5px; }
.wsheet .wbar i { width: 100%; display: block; }

.wsheet .wmeta { display: block; padding: 1.1rem 1.2rem 1.25rem; }
.wsheet .wname { display: block; font-family: var(--disp); font-weight: 700; font-size: 1.12rem; letter-spacing: -.02em; }
.wsheet .wjob  { display: block; font-size: .76rem; font-weight: 600; letter-spacing: .1em;
  text-transform: uppercase; color: var(--emerald-d); margin-bottom: .35rem; }
.wsheet .wspec { display: block; font-size: .88rem; color: var(--muted); margin-top: .3rem; line-height: 1.5; }
.wsheet .wprice {
  display: inline-block; margin-top: .8rem; font-size: .84rem; font-weight: 600;
  color: var(--ink); background: var(--mint); padding: .3rem .7rem; border-radius: 100px;
}

/* ---------- included ---------- */
.inc-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.inc-cell {
  background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--r); padding: 1.4rem 1.35rem;
}
.inc-cell .tick {
  width: 26px; height: 26px; border-radius: 50%; background: var(--mint);
  display: grid; place-items: center; margin-bottom: .85rem;
  color: var(--emerald-d); font-weight: 700; font-size: .82rem;
}
.inc-cell b { display: block; font-weight: 700; font-size: 1.03rem; margin-bottom: .25rem; }
.inc-cell small { color: var(--muted); font-size: .89rem; line-height: 1.55; display: block; }
.inc-cell .zero {
  display: inline-block; margin-top: .7rem; font-size: .78rem; font-weight: 700;
  color: var(--emerald-d); letter-spacing: .04em;
}

/* ---------- steps ---------- */
.steps { display: grid; gap: 1.1rem; grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .steps { grid-template-columns: 1fr; } }
.stp { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); padding: 1.6rem 1.4rem; }
.stp .n {
  width: 30px; height: 30px; border-radius: 50%; background: var(--ink); color: #fff;
  display: grid; place-items: center; font-size: .84rem; font-weight: 700; margin-bottom: 1.1rem;
}
.stp h3 { font-family: var(--disp); font-size: 1.2rem; font-weight: 700; letter-spacing: -.02em; margin: 0 0 .45rem; }
.stp p { margin: 0; color: var(--muted); font-size: .94rem; line-height: 1.6; }
.stp .when { display: block; margin-top: 1rem; font-size: .78rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; color: var(--emerald-d); }

/* ---------- pricing ---------- */
.ptog {
  display: inline-flex; gap: 3px; padding: 4px; background: var(--mint-2);
  border: 1px solid var(--line); border-radius: 100px; margin-bottom: 2.2rem;
}
.ptog button {
  font-size: .92rem; font-weight: 600; padding: .6rem 1.3rem; border: 0;
  border-radius: 100px; cursor: pointer; background: transparent; color: var(--muted);
  transition: background .2s, color .2s;
}
.ptog button.on { background: var(--ink); color: #fff; }

.prow { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.pcard {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r);
  padding: 1.8rem 1.5rem; position: relative; display: flex; flex-direction: column;
}
.pcard.pop { border-color: var(--emerald); border-width: 2px; box-shadow: 0 20px 44px -26px rgba(18,183,106,.7); }
.pcard .pop-lab {
  position: absolute; top: -11px; left: 1.4rem;
  background: var(--emerald); color: #fff; font-size: .7rem; font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase; padding: .28rem .7rem; border-radius: 100px;
}
.pcard h3 { font-family: var(--disp); font-size: 1.2rem; font-weight: 700; letter-spacing: -.02em; margin: 0 0 .2rem; }
.pcard .sub { font-size: .89rem; color: var(--muted); }
.pcard .amt {
  font-family: var(--disp); font-size: 2.7rem; font-weight: 700; letter-spacing: -.045em;
  margin: 1rem 0 .1rem; line-height: 1; color: var(--ink);
}
.pcard .amt small { font-family: var(--sans); font-size: .88rem; font-weight: 500; color: var(--muted); letter-spacing: 0; }
.pcard .out { font-size: .84rem; color: var(--muted); margin-bottom: 1.4rem; }
.pcard .go { margin-top: auto; }
.pcard .go .btn { width: 100%; }
.pnote { margin-top: 1.6rem; font-size: .9rem; color: var(--muted); line-height: 1.75; }

/* ---------- terms ---------- */
.terms { display: grid; gap: 1rem; }
.term {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r);
  padding: 1.4rem 1.5rem; display: grid; grid-template-columns: 150px 1fr; gap: 1.5rem; align-items: start;
}
@media (max-width: 640px) { .term { grid-template-columns: 1fr; gap: .5rem; } }
.term .code { font-size: .8rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--emerald-d); }
.term p { margin: 0; color: var(--muted); font-size: .97rem; }
.term p b { color: var(--text); font-weight: 700; }

/* ---------- faq ---------- */
.faq details { border-bottom: 1px solid var(--line); }
.faq details:first-child { border-top: 1px solid var(--line); }
.faq summary {
  cursor: pointer; list-style: none; padding: 1.35rem 2.5rem 1.35rem 0;
  font-weight: 600; font-size: 1.06rem; position: relative;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+"; position: absolute; right: .4rem; top: 50%; transform: translateY(-50%);
  color: var(--emerald-d); font-size: 1.3rem; font-weight: 400;
}
.faq details[open] summary::after { content: "\\2212"; }
.faq .ans { padding: 0 0 1.4rem; color: var(--muted); max-width: 72ch; }
.faq .ans p { margin: 0 0 .8rem; }
.faq .ans p:last-child { margin: 0; }

/* ---------- closing band ---------- */
.band { background: var(--ink); color: #fff; padding: clamp(3.5rem, 7vw, 5.5rem) 0; text-align: center; position: relative; overflow: hidden; }
.band .h2 { color: #fff; margin-bottom: .8rem; }
.band p { color: rgba(255,255,255,.8); max-width: 52ch; margin: 0 auto 1.9rem; }
.band .eyebrow { color: var(--mint); justify-content: center; }
.band .eyebrow::before { background: var(--emerald-l); }

/* ---------- footer ---------- */
.foot-main { padding: 2.6rem 0 3rem; border-top: 1px solid var(--line); }
.foot-main .cols { display: flex; gap: 2rem; flex-wrap: wrap; align-items: center; }
.foot-main .fm { color: var(--muted); font-size: .9rem; }
.foot-main nav { margin-left: auto; display: flex; gap: 1.4rem; flex-wrap: wrap; }
.foot-main nav a { font-size: .9rem; color: var(--muted); text-decoration: none; }
.foot-main nav a:hover { color: var(--ink); }

/* ---------- IP pill ---------- */
.ip-notice {
  position: fixed; right: 14px; bottom: 14px; z-index: 90;
  background: rgba(7,53,42,.9); color: rgba(255,255,255,.8);
  border-radius: 100px; padding: .5rem .95rem; font-size: .7rem; font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase; backdrop-filter: blur(8px); pointer-events: none;
}
@media (max-width: 620px) { .ip-notice { display: none; } }

/* ---------- lightbox ---------- */
#lb { position: fixed; inset: 0; z-index: 100; display: none; }
#lb.open { display: block; }
#lb .bg { position: absolute; inset: 0; background: rgba(7,53,42,.86); backdrop-filter: blur(6px); }
#lb .panel {
  position: absolute; inset: 3vh 4vw; display: grid; grid-template-rows: auto 1fr;
  background: var(--paper); border-radius: var(--r); overflow: hidden;
}
@media (max-width: 700px) { #lb .panel { inset: 2vh 3vw; } }
#lb .lbhead { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); }
#lb .lbhead .t { min-width: 0; }
#lb #lbJob { font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--emerald-d); display: block; }
#lb #lbName { font-family: var(--disp); font-weight: 700; font-size: 1.1rem; letter-spacing: -.02em; display: block; }
#lb #lbType, #lb #lbSpec { font-size: .86rem; color: var(--muted); }
#lb #lbSpec { display: block; }
#lb .lbnav { margin-left: auto; display: flex; gap: .4rem; flex: none; }
#lb button.ic {
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line);
  background: var(--paper); color: var(--ink); cursor: pointer; font-size: .95rem;
  display: grid; place-items: center; transition: background .2s, border-color .2s;
}
#lb button.ic:hover { background: var(--mint-2); border-color: var(--emerald); }
#lb .lbscroll { overflow: auto; background: var(--off); -webkit-overflow-scrolling: touch; position: relative; }
#lb .lbscroll img { width: 100%; height: auto; display: block; opacity: 0; transition: opacity .35s; }
#lb .spin {
  position: absolute; top: 50%; left: 50%; width: 26px; height: 26px; margin: -13px 0 0 -13px;
  border: 2px solid var(--line); border-top-color: var(--emerald); border-radius: 50%;
  animation: sp .7s linear infinite;
}
@keyframes sp { to { transform: rotate(360deg); } }

/* ===========================================================
   BUILDER / CHECKOUT
   =========================================================== */
.build-grid { display: grid; grid-template-columns: 1fr 400px; gap: clamp(1.6rem, 3vw, 2.6rem); align-items: start; }
@media (max-width: 1000px) { .build-grid { grid-template-columns: 1fr; } }

.step {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r);
  padding: 1.7rem 1.6rem; margin-bottom: 1.1rem;
}
.step > .no { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--emerald-d); margin-bottom: .5rem; }
.step h2 { font-family: var(--disp); font-size: 1.32rem; font-weight: 700; letter-spacing: -.025em; margin: 0 0 .35rem; }
.step .hint { color: var(--muted); font-size: .94rem; margin: 0 0 1.3rem; }

.opts { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fit, minmax(195px, 1fr)); }
.opt {
  position: relative; text-align: left; cursor: pointer;
  background: var(--paper); border: 1.5px solid var(--line); border-radius: var(--r-s);
  padding: 1rem 1.1rem; color: inherit; font: inherit;
  transition: border-color .2s, background .2s, box-shadow .2s;
}
.opt:hover { border-color: var(--emerald-l); }
.opt.sel { border-color: var(--emerald); background: var(--mint-2); box-shadow: 0 10px 26px -18px rgba(18,183,106,.9); }
.opt b { display: block; font-weight: 700; font-size: 1rem; margin-bottom: .18rem; }
.opt small { color: var(--muted); font-size: .86rem; line-height: 1.5; display: block; }
.opt .pr { display: block; margin-top: .55rem; font-size: .88rem; font-weight: 700; color: var(--ink); }
.opt .rec, .opt .rec2 {
  position: absolute; top: -9px; right: 10px; z-index: 2;
  font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  background: var(--emerald); color: #fff; padding: .2rem .55rem; border-radius: 100px;
}
.opt input { position: absolute; opacity: 0; pointer-events: none; }

.kinds { display: inline-flex; gap: 3px; padding: 4px; background: var(--mint-2);
  border: 1px solid var(--line); border-radius: 100px; margin-bottom: 1.2rem; }
.kind-opt {
  font-size: .88rem; font-weight: 600; padding: .55rem 1.1rem; border: 0; border-radius: 100px;
  cursor: pointer; background: transparent; color: var(--muted); transition: background .2s, color .2s;
}
.kind-opt.sel { background: var(--ink); color: #fff; }

.stepper { display: flex; align-items: center; gap: .8rem; margin-top: 1.2rem; }
.stepper button {
  width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--line);
  background: var(--paper); color: var(--ink); font-size: 1.1rem; cursor: pointer;
  transition: border-color .2s, background .2s;
}
.stepper button:hover { border-color: var(--emerald); background: var(--mint-2); }
.stepper .lab { font-size: .95rem; color: var(--muted); }
.stepper .lab b { color: var(--ink); }

.fld { display: block; margin-bottom: 1rem; }
.fld span { display: block; font-size: .8rem; font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; color: var(--muted); margin-bottom: .45rem; }
.fld input, .fld textarea {
  width: 100%; background: var(--paper); border: 1.5px solid var(--line);
  border-radius: var(--r-s); padding: .82rem .95rem; color: var(--text);
  font-family: var(--sans); font-size: 1rem;
}
.fld input:focus, .fld textarea:focus { outline: none; border-color: var(--emerald); background: var(--mint-2); }
.fld input:disabled { background: var(--off); color: var(--muted-2); }
.fld textarea { min-height: 110px; resize: vertical; }

/* running spec card */
.specsheet {
  position: sticky; top: 90px;
  background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--r); overflow: hidden;
  box-shadow: 0 26px 60px -34px rgba(7,53,42,.5);
}
@media (max-width: 1000px) { .specsheet { position: static; } }
.specsheet .sshead { padding: 1.2rem 1.3rem 1rem; background: var(--ink); color: #fff; }
.specsheet .sshead .k { display: block; font-size: .74rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--emerald-l); margin-bottom: .25rem; }
.specsheet .sshead b { font-family: var(--disp); font-size: 1.16rem; font-weight: 700; letter-spacing: -.025em; }
.specsheet .ssbody { padding: .3rem 1.3rem; max-height: 42vh; overflow: auto; }
@media (max-width: 1000px) { .specsheet .ssbody { max-height: none; } }

.sline { display: flex; gap: 1rem; align-items: baseline; padding: .82rem 0; border-bottom: 1px solid var(--line); }
.sline:last-child { border-bottom: 0; }
.sline .n { flex: 1; font-size: .95rem; font-weight: 600; }
.sline .n small { display: block; color: var(--muted); font-size: .82rem; font-weight: 400; margin-top: .12rem; line-height: 1.45; }
.sline .v { font-size: .92rem; font-weight: 700; white-space: nowrap; }
.sline.inc .v { color: var(--emerald-d); }
.sline.note { border-bottom: 0; }
.sline.note .n { font-size: .87rem; color: var(--muted); font-weight: 400; }

.specsheet .sstot { padding: 1.2rem 1.3rem; background: var(--mint-2); border-top: 1px solid var(--line); }
.specsheet .sstot .big {
  font-family: var(--disp); font-size: 2.5rem; font-weight: 700; letter-spacing: -.045em;
  line-height: 1; color: var(--ink);
}
.specsheet .sstot .big small { font-family: var(--sans); font-size: .85rem; font-weight: 500; color: var(--muted); letter-spacing: 0; }
.specsheet .sstot .row { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline;
  font-size: .87rem; color: var(--muted); margin-top: .7rem; }
.specsheet .sstot .row b { color: var(--ink); }
.specsheet .ssgo { padding: 1.1rem 1.3rem 1.3rem; background: var(--mint-2); }
.specsheet .ssgo .btn { width: 100%; }
.specsheet .ssgo .fine { display: block; text-align: center; margin-top: .75rem; font-size: .8rem; color: var(--muted); }

.mobbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
  background: rgba(255,255,255,.96); backdrop-filter: blur(10px);
  border-top: 1px solid var(--line); padding: .7rem 1rem; display: none; align-items: center; gap: 1rem;
}
@media (max-width: 1000px) { .mobbar { display: flex; } body { padding-bottom: 76px; } }
.mobbar .t { font-family: var(--disp); font-size: 1.4rem; font-weight: 700; letter-spacing: -.03em; color: var(--ink); }
.mobbar .t small { font-family: var(--sans); font-size: .74rem; font-weight: 500; color: var(--muted); }
.mobbar .btn { margin-left: auto; }

.demo-pill {
  display: inline-flex; align-items: center; gap: .5rem; font-size: .78rem; font-weight: 600;
  border: 1px dashed var(--line); color: var(--muted);
  padding: .45rem .85rem; border-radius: 100px; margin-bottom: 1.2rem;
}
.demo-pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #F5A623; }

/* ---------- done page ---------- */
.timeline { border-left: 2px solid var(--line); padding-left: 1.9rem; margin: 2.5rem 0 0; }
.tl { position: relative; padding-bottom: 2rem; }
.tl:last-child { padding-bottom: 0; }
.tl::before {
  content: ""; position: absolute; left: calc(-1.9rem - 6px); top: .4rem;
  width: 10px; height: 10px; border-radius: 50%; background: var(--emerald);
  box-shadow: 0 0 0 4px var(--mint);
}
.tl .when { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--emerald-d); margin-bottom: .3rem; }
.tl b { display: block; font-family: var(--disp); font-size: 1.12rem; font-weight: 700; letter-spacing: -.02em; margin-bottom: .25rem; }
.tl p { margin: 0; color: var(--muted); font-size: .95rem; }

/* ---------- reveal ---------- */
.rv { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.rv.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .rv, .wsheet { opacity: 1 !important; transform: none !important; transition: none !important; }
  .wcol { animation: none !important; }
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* The nav link colour (.nav nav a) out-specifies .btn-em, so a button in the
   nav was rendering muted-green text on green. Restore white. */
.nav nav a.btn, .nav nav a.btn-em, .nav nav a.btn-r { color: #fff; }

/* ===========================================================
   BUILDER: feature cards with previews, so each option is shown
   =========================================================== */
.opt.custom{display:block;text-decoration:none;border-style:dashed}
.opt.custom:hover{border-color:var(--emerald);background:var(--mint-2)}

.feats2{display:grid;gap:.7rem;grid-template-columns:repeat(2,1fr)}
@media(max-width:700px){.feats2{grid-template-columns:1fr}}
.feat2{display:grid;grid-template-columns:74px 1fr;gap:.9rem;align-items:start;
  padding:.85rem .95rem;cursor:pointer}
.feat2.incfree{cursor:default;background:var(--mint-2);border-color:rgba(18,183,106,.32)}
.fbody b{display:block;font-weight:700;font-size:.98rem;margin-bottom:.15rem}
.fbody small{display:block;color:var(--muted);font-size:.83rem;line-height:1.45}
.fbody .pr{display:block;margin-top:.5rem;font-weight:700;font-size:.88rem;color:var(--ink)}
.fbody .pr.free{color:var(--emerald-d)}

.fdemo{width:74px;height:62px;border-radius:8px;overflow:hidden;padding:7px;
  background:var(--ink);border:1px solid rgba(0,0,0,.15);display:grid;place-items:center}
.fdemo > *{pointer-events:none}
.d-blog{display:flex;flex-direction:column;gap:5px;width:100%}
.d-blog i{display:block;height:6px;border-radius:2px;background:rgba(255,255,255,.3)}
.d-blog i:first-child{background:var(--emerald-l);width:60%}
.d-blog i:last-child{width:78%}
.d-book{display:grid;grid-template-columns:1fr 1fr;gap:3px;width:100%}
.d-book b{font-size:7.5px;text-align:center;padding:3px 0;border-radius:3px;
  background:rgba(255,255,255,.14);color:rgba(255,255,255,.72);font-weight:600}
.d-book b.on{background:var(--emerald);color:#fff}
.d-calc{display:flex;flex-direction:column;align-items:center;gap:7px;width:100%}
.d-calc em{display:block;width:100%;height:4px;border-radius:3px;
  background:linear-gradient(90deg,var(--emerald-l) 0 62%,rgba(255,255,255,.2) 62%)}
.d-calc b{font-weight:800;font-size:14px;color:#fff}
.d-map{position:relative;width:100%;height:100%;border-radius:5px;
  background:radial-gradient(circle at 40% 45%,rgba(18,183,106,.35),transparent 62%),
             repeating-linear-gradient(90deg,rgba(255,255,255,.09) 0 1px,transparent 1px 13px),
             repeating-linear-gradient(0deg,rgba(255,255,255,.09) 0 1px,transparent 1px 13px)}
.d-map i{position:absolute;left:38%;top:34%;width:9px;height:9px;border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);background:var(--emerald-l);box-shadow:0 0 8px rgba(52,208,137,.9)}
.d-gal{display:grid;grid-template-columns:1fr 1fr;gap:3px;width:100%;height:100%}
.d-gal i{display:block;border-radius:3px;background:rgba(255,255,255,.22)}
.d-gal i:nth-child(2){background:rgba(255,255,255,.36)}
.d-gal i:nth-child(3){background:rgba(255,255,255,.14)}
.d-rev{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%}
.d-rev b{color:#FFC53D;font-size:10.5px;letter-spacing:1px}
.d-rev i{display:block;height:5px;width:80%;border-radius:2px;background:rgba(255,255,255,.28)}
.d-rev i:last-child{width:56%}
.d-faq{display:flex;flex-direction:column;gap:5px;width:100%}
.d-faq i{display:flex;align-items:center;justify-content:space-between;
  padding:5px 6px;border-radius:4px;background:rgba(255,255,255,.14)}
.d-faq i em{font-style:normal;color:var(--emerald-l);font-size:10px;font-weight:700}
.d-faq i::before{content:"";display:block;height:4px;width:60%;border-radius:2px;background:rgba(255,255,255,.42)}
.d-bar{display:flex;align-items:flex-end;justify-content:center;width:100%;height:100%;padding-bottom:2px}
.d-bar b{display:block;width:100%;text-align:center;font-size:7.5px;font-weight:700;
  padding:5px 0;border-radius:4px;background:var(--emerald);color:#fff}
.stepper button:disabled{opacity:.35;cursor:not-allowed;border-color:var(--line)}
.stepper button:disabled:hover{background:transparent;border-color:var(--line)}

/* ---------- domain search ---------- */
.dsearch{display:flex;gap:.6rem;margin-bottom:.6rem}
.dsearch input{flex:1;min-width:0;background:var(--paper);border:1.5px solid var(--line);
  border-radius:var(--r-s);padding:.85rem .95rem;font-family:var(--sans);font-size:1rem;color:var(--text)}
.dsearch input:focus{outline:none;border-color:var(--emerald);background:var(--mint-2)}
.dsearch .btn{flex:none}
.dnote{margin:0 0 .9rem;color:var(--muted);font-size:.85rem}
.dnote.err{color:#C0442E}

.dresults{display:grid;gap:.5rem;margin-bottom:1rem}
.drow{display:flex;align-items:center;gap:.9rem;padding:.8rem .95rem;
  border:1.5px solid var(--line);border-radius:var(--r-s);background:var(--paper)}
.drow.gone{opacity:.55}
.drow.sel{border-color:var(--emerald);background:var(--mint-2);box-shadow:0 0 0 1px rgba(18,183,106,.35)}
.drow .dn{font-weight:700;flex:1;min-width:0;overflow-wrap:anywhere}
.drow .dp{font-weight:700;white-space:nowrap}
.drow .dp.free{color:var(--emerald-d)}
.drow .dstate{font-size:.85rem;color:var(--muted);white-space:nowrap}
.drow button{flex:none;border:1.5px solid var(--emerald);background:transparent;color:var(--emerald-d);
  font-family:var(--sans);font-weight:600;font-size:.86rem;padding:.42rem .9rem;
  border-radius:100px;cursor:pointer}
.drow button:hover{background:var(--emerald);color:#fff}
.drow.sel button{background:var(--emerald);color:#fff}
@media(max-width:560px){
  .dsearch{flex-direction:column}.dsearch .btn{width:100%}
  .drow{flex-wrap:wrap;gap:.5rem}.drow .dn{flex:1 0 100%}
}
.dhave{display:block;margin-top:.4rem}
.dhave b{display:block;font-weight:700;margin-bottom:.15rem}
.dhave small{display:block;color:var(--muted);font-size:.86rem}
.dhave.sel{border-color:var(--emerald);background:var(--mint-2)}

/* ---------- brief: style + palette pickers ---------- */
.sublab{font-weight:700;font-size:.9rem;margin:.2rem 0 .7rem}
.feats2.styles .styleopt{cursor:pointer}
.styleopt.sel{border-color:var(--emerald);background:var(--mint-2);
  box-shadow:0 0 0 1px rgba(18,183,106,.35)}

/* tiny layout thumbnails, so a "direction" is something you can see */
.s-clean{display:flex;flex-direction:column;gap:6px;width:100%}
.s-clean i{display:block;height:5px;border-radius:2px;background:rgba(255,255,255,.34)}
.s-clean i:first-child{width:52%;background:rgba(255,255,255,.72)}
.s-clean i:last-child{width:72%}
.s-bold{display:flex;flex-direction:column;gap:5px;width:100%}
.s-bold i:first-child{display:block;height:15px;border-radius:3px;background:var(--emerald-l)}
.s-bold i:last-child{display:block;height:6px;width:64%;border-radius:2px;background:rgba(255,255,255,.45)}
.s-trust{display:flex;flex-direction:column;gap:4px;width:100%;align-items:center}
.s-trust i{display:block;height:4px;border-radius:2px;background:rgba(255,255,255,.4)}
.s-trust i:first-child{width:70%;height:6px;background:rgba(255,255,255,.8)}
.s-trust i:nth-child(2){width:90%}
.s-trust i:last-child{width:80%}
.s-prem{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.s-prem i{display:block;width:34%;height:4px;border-radius:2px;background:rgba(255,255,255,.75)}

.pals{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1.3rem}
@media(max-width:640px){.pals{grid-template-columns:repeat(2,1fr)}}
.palopt{display:flex;align-items:center;gap:.6rem;cursor:pointer;
  border:1.5px solid var(--line);border-radius:var(--r-s);padding:.6rem .7rem;background:var(--paper)}
.palopt:hover{border-color:var(--emerald-l)}
.palopt.sel{border-color:var(--emerald);background:var(--mint-2)}
.palopt .sw{display:flex;flex:none;border-radius:5px;overflow:hidden;border:1px solid rgba(0,0,0,.1)}
.palopt .sw i{display:block;width:13px;height:22px}
.palopt .pl{font-size:.86rem;font-weight:600;line-height:1.25}
.fld textarea{width:100%;background:var(--paper);border:1.5px solid var(--line);
  border-radius:var(--r-s);padding:.85rem .95rem;font-family:var(--sans);font-size:1rem;
  color:var(--text);resize:vertical;min-height:96px}
.fld textarea:focus{outline:none;border-color:var(--emerald);background:var(--mint-2)}

/* ---------- custom colour picker ---------- */
.custpal{border:1.5px solid var(--emerald);background:var(--mint-2);
  border-radius:var(--r-s);padding:1.1rem 1.2rem;margin:0 0 1.3rem}
.cpicks{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
@media(max-width:640px){.cpicks{grid-template-columns:1fr}}
.cpick{display:flex;flex-direction:column;gap:.45rem}
.cpick .cl{font-size:.82rem;font-weight:600;color:var(--muted)}
.cwrap{position:relative;display:block;height:52px;border-radius:8px;overflow:hidden;
  border:1.5px solid var(--line);cursor:pointer}
.cwrap input[type=color]{position:absolute;inset:-6px;width:calc(100% + 12px);
  height:calc(100% + 12px);border:0;padding:0;background:none;cursor:pointer}
.cwrap input[type=color]::-webkit-color-swatch-wrapper{padding:0}
.cwrap input[type=color]::-webkit-color-swatch{border:0}
.hex{width:100%;border:1.5px solid var(--line);border-radius:7px;padding:.45rem .55rem;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;
  text-transform:uppercase;background:var(--paper);color:var(--text)}
.hex:focus{outline:none;border-color:var(--emerald)}
.hex.bad{border-color:#C0442E;color:#C0442E}

/* live preview so three hex codes mean something */
.cprev{margin-top:1rem;border-radius:8px;overflow:hidden;border:1px solid var(--line)}
.cp-bar{display:block;height:34px;background:var(--c1,#12B76A)}
.cp-body{display:block;padding:.9rem 1rem;background:var(--c3,#F3FAF6)}
.cp-body b{display:block;font-weight:800;font-size:1rem;color:var(--c2,#0A2E25);margin-bottom:.5rem}
.cp-body i{display:block;height:6px;border-radius:3px;margin-bottom:5px;
  background:var(--c2,#0A2E25);opacity:.28}
.cp-body i:last-of-type{width:64%}
.cp-body em{display:inline-block;margin-top:.6rem;font-style:normal;font-weight:700;
  font-size:.82rem;padding:.42rem .9rem;border-radius:100px;
  background:var(--c1,#12B76A);color:#fff}

/* ---------- rent vs buy ---------- */
.paychoice{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-bottom:1.4rem}
@media(max-width:760px){.paychoice{grid-template-columns:1fr}}
.pc{display:block;text-align:left;font:inherit;color:inherit;cursor:pointer;
  background:var(--paper);border:2px solid var(--line);border-radius:var(--r);
  padding:1.2rem 1.3rem;transition:border-color .18s,background .18s,box-shadow .18s}
.pc:hover{border-color:var(--emerald-l)}
.pc[aria-pressed="true"]{border-color:var(--emerald);background:var(--mint-2);
  box-shadow:0 0 0 1px rgba(18,183,106,.3)}
.pchead{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}
.pchead b{font-weight:800;font-size:1.05rem}
.pcpill{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  background:var(--emerald);color:#fff;padding:.2rem .5rem;border-radius:100px}
.pcamt{display:block;font-family:var(--disp);font-weight:800;font-size:2rem;
  letter-spacing:-.035em;line-height:1;color:var(--ink)}
.pcamt i{font-family:var(--sans);font-style:normal;font-size:.85rem;font-weight:600;color:var(--muted)}
.pcsub{display:block;margin:.45rem 0 .8rem;color:var(--muted);font-size:.88rem;line-height:1.5}
.pclist{margin:0;padding:0;list-style:none;border-top:1px solid var(--line);padding-top:.7rem}
.pclist li{position:relative;padding-left:1.2rem;margin-bottom:.35rem;
  font-size:.86rem;color:var(--muted);line-height:1.45}
.pclist li::before{content:"\2713";position:absolute;left:0;color:var(--emerald-d);font-weight:700}
.pc[data-pay="own"] .pclist li:nth-child(3)::before{content:"\2013";color:var(--muted-2)}

/* ---------- terms highlights ---------- */
.terms-hl{background:var(--off);border:1px solid var(--line);border-radius:var(--r);
  padding:1.3rem 1.4rem;margin-bottom:1.4rem}
.thh{display:block;font-family:var(--disp);font-weight:700;font-size:1.05rem;margin-bottom:1rem}
.thgrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.6rem}
@media(max-width:700px){.thgrid{grid-template-columns:1fr}}
.th .thk{display:block;font-weight:700;font-size:.9rem;color:var(--ink);margin-bottom:.25rem}
.th .thk::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--emerald);margin-right:.5rem;vertical-align:middle}
.th p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.55}
.th p b{color:var(--ink);font-weight:700}

/* ---------- who hosts it ---------- */
.hostchoice{background:var(--paper);border:2px solid var(--emerald);
  border-radius:var(--r);padding:1.2rem 1.3rem;margin-bottom:1.4rem}
.hch{display:block;font-family:var(--disp);font-weight:700;font-size:1.02rem;margin-bottom:.9rem}
.hcgrid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
@media(max-width:700px){.hcgrid{grid-template-columns:1fr}}
.hc{display:block;text-align:left;font:inherit;color:inherit;cursor:pointer;
  background:var(--off);border:1.5px solid var(--line);border-radius:var(--r-s);
  padding:.95rem 1.05rem;transition:border-color .18s,background .18s}
.hc:hover{border-color:var(--emerald-l)}
.hc[aria-pressed="true"]{border-color:var(--emerald);background:var(--mint-2)}
.hcname{display:block;font-weight:700;font-size:.98rem;margin-bottom:.15rem}
.hcamt{display:block;font-family:var(--disp);font-weight:800;font-size:1.15rem;color:var(--ink)}
.hcamt i{font-family:var(--sans);font-style:normal;font-weight:600;font-size:.82rem;color:var(--muted)}
.hcsub{display:block;margin-top:.4rem;color:var(--muted);font-size:.85rem;line-height:1.5}

/* ---------- handing off to stripe ---------- */
.stripe-hand{display:flex;gap:.85rem;align-items:flex-start;background:var(--mint-2);
  border:1px solid var(--line);border-radius:var(--r-s);padding:1rem 1.1rem;margin:.2rem 0 1.1rem}
.stripe-hand svg{color:var(--emerald-d);flex:none;margin-top:.1rem}
.stripe-hand p{margin:0;font-size:.9rem;line-height:1.6;color:var(--muted)}
.stripe-hand b{color:var(--ink)}
.paysum{margin:0 0 .9rem;font-size:.92rem;line-height:1.6;color:var(--muted);text-align:center}
.paysum b{color:var(--ink)}
.payerr{margin:.85rem 0 0;padding:.75rem .95rem;border-radius:var(--r-s);
  background:#fdf1f1;border:1px solid #f0c9c9;color:#8f2a2a;font-size:.88rem;line-height:1.55}
.btn.is-busy{opacity:.72;pointer-events:none}

/* ================= BLOG ================= */
.shell.narrow{max-width:760px}

/* --- index hero --- */
.blog-hero{padding:clamp(3.4rem,8vw,6rem) 0 clamp(1.6rem,3vw,2.4rem);
  background:linear-gradient(180deg,var(--mint-2),var(--paper))}
.blog-hero h1{font-family:var(--disp);font-weight:700;letter-spacing:-.035em;
  font-size:clamp(2.1rem,5.2vw,3.5rem);line-height:1.06;margin:.7rem 0 0;color:var(--ink)}
.blog-lede{max-width:60ch;margin:1.1rem 0 0;color:var(--muted);
  font-size:clamp(1rem,1.5vw,1.14rem);line-height:1.65}

/* --- lead post --- */
.lead-wrap{padding:clamp(1.4rem,3vw,2.2rem) 0 0}
.leadpost{display:block;text-decoration:none;color:inherit;background:var(--ink);
  border-radius:var(--r);padding:clamp(1.8rem,4vw,3rem);
  transition:transform .22s ease,box-shadow .22s ease}
.leadpost:hover{transform:translateY(-3px);box-shadow:0 30px 60px -34px rgba(7,53,42,.65)}
.lead-c{display:block;max-width:62ch}
.leadpost .pk{color:var(--emerald-l);border-color:rgba(52,208,137,.4)}
.leadpost b{display:block;font-family:var(--disp);font-weight:700;letter-spacing:-.03em;
  font-size:clamp(1.5rem,3.4vw,2.4rem);line-height:1.12;color:#fff;margin:.85rem 0 .7rem}
.leadpost .px{display:block;color:rgba(255,255,255,.76);font-size:1.02rem;line-height:1.65}
.leadpost .pm{display:flex;gap:1rem;align-items:center;margin-top:1.3rem;
  color:rgba(255,255,255,.55);font-size:.86rem}
.readon{color:var(--emerald-l);font-weight:600}
.readon::after{content:" \2192"}

/* --- the rest --- */
.plist{padding:clamp(1.6rem,3.5vw,2.6rem) 0 clamp(2.6rem,6vw,4rem)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:0;
  border-top:1px solid var(--line);border-left:1px solid var(--line);
  border-radius:var(--r);overflow:hidden}
.pcardb{display:flex;flex-direction:column;text-decoration:none;color:inherit;
  background:var(--paper);padding:1.6rem 1.5rem 1.4rem;transition:background .2s;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.pcardb:hover{background:var(--off)}
.pcardb b{font-family:var(--disp);font-weight:700;letter-spacing:-.024em;font-size:1.16rem;
  line-height:1.28;color:var(--ink);margin:.75rem 0 .55rem}
.pcardb:hover b{color:var(--emerald-d)}
.px{color:var(--muted);font-size:.93rem;line-height:1.62}
.pm{margin-top:auto;padding-top:1.1rem;color:var(--muted-2);font-size:.83rem}
.pk{display:inline-block;align-self:flex-start;font-size:.7rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--emerald-d);
  border:1px solid var(--line);border-radius:4px;padding:.28rem .55rem}

/* --- post page --- */
.post-head{padding:clamp(2.4rem,6vw,4.4rem) 0 clamp(1.4rem,3vw,2rem);
  background:linear-gradient(180deg,var(--mint-2),var(--paper))}
.crumbs{font-size:.83rem;color:var(--muted-2);margin:0 0 1.4rem}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--emerald-d)}
.crumbs span{margin:0 .45rem;opacity:.5}
.post-kicker{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--emerald-d);border:1px solid var(--line);
  border-radius:4px;padding:.28rem .55rem;background:var(--paper)}
.post-head h1{font-family:var(--disp);font-weight:700;letter-spacing:-.035em;
  font-size:clamp(1.95rem,4.6vw,3.05rem);line-height:1.08;color:var(--ink);margin:.9rem 0 0}
.post-lede{margin:1.1rem 0 0;color:var(--muted);font-size:1.1rem;line-height:1.65;max-width:58ch}
.post-meta{margin:1.4rem 0 0;color:var(--muted-2);font-size:.86rem;
  display:flex;gap:.6rem;align-items:center}

.post-body{padding:clamp(1.4rem,3vw,2.2rem) 0 clamp(2.6rem,6vw,4rem);
  font-size:1.075rem;line-height:1.78;color:var(--text)}
.post-body p{margin:0 0 1.35rem}
.post-body h2{font-family:var(--disp);font-weight:700;letter-spacing:-.028em;
  font-size:clamp(1.4rem,2.9vw,1.9rem);line-height:1.2;color:var(--ink);
  margin:2.9rem 0 1rem;padding-top:.4rem;scroll-margin-top:90px}
.post-body h2::before{content:"";display:block;width:44px;height:3px;
  background:var(--emerald);margin-bottom:1rem}
.post-body h3{font-family:var(--disp);font-weight:700;letter-spacing:-.02em;
  font-size:1.16rem;color:var(--ink);margin:2rem 0 .7rem}
.post-body ul,.post-body ol{margin:0 0 1.45rem;padding-left:1.3rem}
.post-body li{margin-bottom:.6rem;padding-left:.2rem}
.post-body li::marker{color:var(--emerald-d);font-weight:700}
.post-body strong{color:var(--ink);font-weight:700}
.post-body a{color:var(--emerald-d);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1.5px}
.post-body a:hover{color:var(--ink)}
.post-body blockquote{margin:2rem 0;padding:.2rem 0 .2rem 1.5rem;
  border-left:3px solid var(--emerald);font-family:var(--disp);font-weight:500;
  font-size:clamp(1.16rem,2.3vw,1.4rem);line-height:1.42;letter-spacing:-.02em;color:var(--ink)}
.post-body blockquote p{margin:0}

.post-toc{background:var(--off);border:1px solid var(--line);border-radius:var(--r);
  padding:1.3rem 1.5rem;margin:0 0 2.4rem}
.post-toc b{display:block;font-family:var(--disp);font-size:.98rem;margin-bottom:.7rem;color:var(--ink)}
.post-toc ol{margin:0;padding-left:1.15rem;font-size:.95rem;line-height:1.5}
.post-toc li{margin-bottom:.45rem}
.post-toc li::marker{color:var(--muted-2)}
.post-toc a{color:var(--muted);text-decoration:none}
.post-toc a:hover{color:var(--emerald-d);text-decoration:underline}

/* --- foot of post --- */
.blog-cta{padding:0 0 clamp(2.4rem,5vw,3.6rem)}
.bcta{display:flex;gap:1.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap;
  background:var(--mint-2);border:1px solid var(--line);border-radius:var(--r);
  padding:clamp(1.5rem,3.4vw,2.3rem)}
.bcta h2{font-family:var(--disp);font-weight:700;letter-spacing:-.028em;
  font-size:clamp(1.25rem,2.6vw,1.7rem);color:var(--ink);margin:0 0 .45rem}
.bcta p{margin:0;color:var(--muted);font-size:.98rem;line-height:1.6;max-width:52ch}
.bcta .btn{flex:none}
.bcta-fine{margin:.9rem 0 0;color:var(--muted-2);font-size:.83rem;line-height:1.6;text-align:center}

.relwrap{padding:0 0 clamp(3rem,7vw,5rem);border-top:1px solid var(--line);
  padding-top:clamp(2.4rem,5vw,3.4rem)}
.rel-h{font-family:var(--disp);font-weight:700;letter-spacing:-.028em;
  font-size:clamp(1.3rem,2.6vw,1.7rem);color:var(--ink);margin:0 0 1.4rem}
.relgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.1rem}
.rel{display:block;text-decoration:none;color:inherit;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r);padding:1.3rem 1.35rem;
  transition:border-color .2s,transform .2s}
.rel:hover{border-color:var(--emerald);transform:translateY(-2px)}
.rel-k{display:block;font-size:.7rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--emerald-d);margin-bottom:.6rem}
.rel b{display:block;font-family:var(--disp);font-weight:700;letter-spacing:-.022em;
  font-size:1.05rem;line-height:1.3;color:var(--ink);margin-bottom:.5rem}
.rel-x{display:block;color:var(--muted);font-size:.88rem;line-height:1.6}

/* ---------- the explainer section ---------- */
.narrow-sec{max-width:860px;margin-inline:auto}
.explain{font-size:1.04rem;line-height:1.75;color:var(--text)}
.explain p{margin:0 0 1.25rem}
.explain strong{color:var(--ink);font-weight:700}
.explain h3{font-family:var(--disp);font-weight:700;letter-spacing:-.022em;font-size:1.18rem;
  color:var(--ink);margin:2rem 0 .65rem}
.explain-go{margin-top:1.7rem;padding-top:1.3rem;border-top:1px solid var(--line);font-size:.98rem}
.explain-go a{color:var(--emerald-d);font-weight:600;text-decoration:underline;
  text-underline-offset:3px;text-decoration-thickness:1.5px}
.explain-go a:hover{color:var(--ink)}
.bcta-fine a{color:var(--emerald-d);font-weight:600;text-decoration:underline;
  text-underline-offset:2px;text-decoration-thickness:1.5px}
.bcta-fine a:hover{color:var(--ink)}
