
:root{
  --accent:#65478A;--accent-light:#B49BD6;--accent-deep:#4E3570;--accent-soft:rgba(101,71,138,.12);--accent-line:rgba(101,71,138,.36);
  /* from the swatch board */
  --glacial:#D5E4DA;      /* Glacial Green · backgrounds only */
  --arsenic:#83A793;      /* Arsenic · muted structure, borders, grids */
  --echo:#3F9A66;         /* Eco Green · primary accent */
  --echo-deep:#2C7A4E;
  --ink:#17201B;
  --paper:#F8F6F0;
  --card:#FDFCF9;
  --line:rgba(23,32,27,.10);
  --soft:#5C6E64;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--paper);color:var(--ink);
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:1280px;margin:0 auto;padding:0 clamp(20px,3.2vw,46px)}
h1,h2,h3{font-family:'Outfit',sans-serif;letter-spacing:-.03em}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:11px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.eyebrow i{width:22px;height:1.5px;background:var(--echo);display:block}
.rv{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}

/* ================= nav ================= */

html{scroll-behavior:smooth}
.wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 clamp(20px,3.2vw,46px)}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:var(--paper);
  padding:12px 20px;border-radius:0 0 10px 0;font-family:'Outfit',sans-serif;font-weight:600}
.skip:focus{left:0}
h1,h2,h3,h4{font-family:'Outfit',sans-serif;letter-spacing:-.03em;line-height:1.06}
a{color:inherit}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:'Outfit',sans-serif;
  font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--soft)}
.eyebrow i{width:22px;height:2px;background:var(--echo);border-radius:2px}

/* ============ header + mega menu ============ */
header.site{position:sticky;top:0;z-index:80}
nav#nav{display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:14px clamp(20px,3.2vw,46px);background:rgba(248,246,240,.88);
  backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}
nav#nav .brand{flex:none}
nav#nav img{height:26px;width:auto;display:block}
nav#nav .lk{display:flex;gap:4px}
.mmtop,.mmtoplink{display:inline-flex;align-items:center;gap:6px;font-family:'Inter',sans-serif;
  font-size:14.5px;font-weight:500;color:rgba(23,32,27,.72);background:none;border:0;cursor:pointer;
  padding:9px 13px;border-radius:9px;transition:background .2s ease,color .2s ease}
.mmtoplink{text-decoration:none}
.mmtop svg{width:13px;height:13px;opacity:.5;transition:transform .28s cubic-bezier(.2,.7,.3,1)}
.mmtop:hover{color:var(--ink);background:rgba(23,32,27,.045)}
.mmtop.on{color:var(--ink);background:rgba(23,32,27,.06)}
.mmtop.on svg{transform:rotate(180deg)}
.navr{display:flex;align-items:center;gap:10px;flex:none}
.navbtn{font-family:'Outfit',sans-serif;font-size:13.5px;font-weight:600;text-decoration:none;
  color:var(--paper);padding:10px 18px;border-radius:999px;background:var(--ink);white-space:nowrap;
  transition:transform .25s ease}
.navbtn:hover{transform:translateY(-1px)}
.burger{display:none;width:40px;height:36px;border:1px solid var(--line);border-radius:9px;
  background:var(--card);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.burger i{display:block;width:16px;height:1.6px;background:var(--ink);border-radius:2px;
  transition:transform .28s cubic-bezier(.2,.7,.3,1),opacity .2s ease}
.burger.on i:first-child{transform:translateY(3.3px) rotate(45deg)}
.burger.on i:last-child{transform:translateY(-3.3px) rotate(-45deg)}

.mm{position:absolute;left:0;right:0;top:100%;background:var(--card);
  border-bottom:1px solid var(--line);box-shadow:0 26px 46px -20px rgba(23,32,27,.16);
  max-height:0;overflow:hidden;transition:max-height .38s cubic-bezier(.2,.7,.3,1)}
.mm.open{max-height:480px}
.mmpanel{display:none;padding:clamp(20px,2.6vw,34px) 0}
.mmpanel.on{display:block}
.mmgrid{display:grid;grid-template-columns:1fr minmax(280px,32%);gap:clamp(20px,3vw,48px);align-items:start}
.mmlinks{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}
.mmlinks a{display:block;text-decoration:none;padding:12px 14px;border-radius:12px;
  transition:background .18s ease}
.mmlinks a:hover{background:var(--paper)}
.mmlinks b{display:block;font-family:'Outfit',sans-serif;font-weight:600;font-size:15px;
  letter-spacing:-.02em;color:var(--ink);margin-bottom:3px}
.mmlinks span{display:block;font-size:12.5px;line-height:1.5;color:var(--soft)}
.mmfeat{display:block;text-decoration:none;border-radius:16px;padding:clamp(16px,1.7vw,22px);
  background:linear-gradient(165deg,var(--glacial),rgba(213,228,218,.35));
  border:1px solid rgba(63,154,102,.2);transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.mmfeat:hover{transform:translateY(-2px)}
.mmftag{display:inline-block;font-family:ui-monospace,Menlo,monospace;font-size:9.5px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--echo-deep);margin-bottom:9px}
.mmfeat b{display:block;font-family:'Outfit',sans-serif;font-weight:700;font-size:17px;
  letter-spacing:-.026em;color:var(--ink);line-height:1.15;margin-bottom:7px}
.mmfd{display:block;font-size:12.5px;line-height:1.55;color:var(--soft)}
.mmgo{display:block;margin-top:12px;font-family:'Outfit',sans-serif;font-weight:600;
  font-size:13.5px;color:var(--echo-deep)}

.mnav{position:fixed;inset:56px 0 0;z-index:70;background:var(--paper);overflow-y:auto;
  transform:translateY(-8px);opacity:0;pointer-events:none;transition:all .3s ease}
.mnav.open{transform:none;opacity:1;pointer-events:auto}
.mnin{padding:16px clamp(20px,4vw,28px) 60px}
.mnacc{border-bottom:1px solid var(--line)}
.mnacc summary{list-style:none;cursor:pointer;padding:17px 0;font-family:'Outfit',sans-serif;
  font-weight:600;font-size:17px;letter-spacing:-.02em;display:flex;justify-content:space-between}
.mnacc summary::-webkit-details-marker{display:none}
.mnacc summary:after{content:"+";color:var(--echo);font-weight:500}
.mnacc[open] summary:after{content:"\2212"}
.mnacc div{padding-bottom:12px;display:grid;gap:2px}
.mnacc div a{text-decoration:none;color:var(--soft);font-size:15px;padding:9px 0 9px 14px;
  border-left:2px solid var(--line)}
.mnbtn{display:block;text-align:center;margin-top:22px;text-decoration:none;color:var(--paper);
  background:var(--ink);padding:15px;border-radius:999px;font-family:'Outfit',sans-serif;font-weight:600}

@media(max-width:1080px){
  nav#nav .lk{display:none}.burger{display:flex}.mm{display:none}
}

/* ============ shared page furniture ============ */
main{min-height:60vh}
.crumbs{background:var(--paper);border-bottom:1px solid var(--line);padding:11px 0;font-size:12.5px}
.crumbs .wrap{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--soft)}
.crumbs a{color:var(--soft);text-decoration:none}
.crumbs a:hover{color:var(--echo-deep)}
.crumbs i{font-style:normal;opacity:.35}
.crumbs span{color:var(--ink);font-weight:500}

.phero{background:var(--paper);padding:clamp(34px,6vh,68px) 0 clamp(26px,4vh,44px);
  border-bottom:1px solid var(--line)}
.phero h1{font-weight:700;font-size:clamp(30px,5vw,60px);max-width:19ch;margin-top:13px}
.phero h1 b{color:var(--echo);font-weight:700}
.phero .lede{font-size:clamp(15px,1.5vw,18.5px);line-height:1.6;color:var(--soft);
  max-width:60ch;margin-top:16px}
.pstats{display:flex;flex-wrap:wrap;gap:clamp(20px,3.4vw,54px);margin-top:clamp(20px,3vh,32px)}
.pstat b{display:block;font-family:'Outfit',sans-serif;font-weight:700;
  font-size:clamp(24px,3vw,38px);letter-spacing:-.03em;color:var(--ink);line-height:1}
.pstat span{display:block;font-size:12.5px;color:var(--soft);margin-top:5px}

section.sec{padding:clamp(38px,6.5vh,80px) 0}
section.sec.alt{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec h2{font-weight:700;font-size:clamp(23px,3vw,40px);max-width:20ch}
.sec h2 b{color:var(--echo);font-weight:700}
.sec>.wrap>p,.prose p{font-size:15.5px;line-height:1.68;color:var(--soft);max-width:68ch;margin-top:14px}
.prose h3{font-weight:700;font-size:clamp(18px,2vw,25px);margin-top:30px}
.prose ul{margin-top:13px;padding-left:20px;max-width:66ch}
.prose li{font-size:15.5px;line-height:1.65;color:var(--soft);margin-bottom:8px}
.prose strong{color:var(--ink);font-weight:600}
.prose a{color:var(--echo-deep);text-decoration:underline;text-underline-offset:3px}

.srcline{font-size:12px;line-height:1.6;color:var(--soft);margin-top:18px;max-width:76ch;
  padding-left:13px;border-left:2px solid var(--glacial)}
.srcline b{color:var(--ink)}
.srcline a{color:var(--echo-deep);text-decoration:underline;text-underline-offset:2px}
.prose h3{scroll-margin-top:96px}
.prose h3 .cnt{display:inline-block;font-family:ui-monospace,Menlo,monospace;font-size:11px;
  letter-spacing:.06em;color:var(--soft);background:var(--glacial);border-radius:99px;
  padding:3px 9px;margin-left:9px;vertical-align:middle;font-weight:500}
.sampleflag{font-size:12.5px;line-height:1.55;color:var(--soft);background:rgba(192,138,46,.09);
  border:1px solid rgba(192,138,46,.28);border-radius:11px;padding:12px 15px;margin-top:18px;max-width:70ch}
.sampleflag b{color:#8A6520}

.grid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:clamp(12px,1.5vw,18px);margin-top:clamp(20px,3vh,32px)}
.gcard{display:block;text-decoration:none;border:1px solid var(--line);border-radius:18px;
  background:var(--card);padding:clamp(18px,2vw,26px);
  transition:transform .3s cubic-bezier(.2,.7,.3,1),border-color .3s ease,box-shadow .3s ease}
.gcard:hover{transform:translateY(-3px);border-color:rgba(63,154,102,.42);
  box-shadow:0 16px 34px -16px rgba(44,90,64,.25)}
.gcard .gtag{font-family:ui-monospace,Menlo,monospace;font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--echo-deep)}
.gcard h3{font-weight:700;font-size:clamp(17px,1.7vw,21px);margin:9px 0 7px}
.gcard p{font-size:13.5px;line-height:1.58;color:var(--soft)}
.gcard .gmore{display:inline-block;margin-top:13px;font-family:'Outfit',sans-serif;
  font-weight:600;font-size:13.5px;color:var(--echo-deep)}

.ccard{padding:0;overflow:hidden;display:flex;flex-direction:column}
.ccard img{display:block;width:100%;height:auto;border-bottom:1px solid var(--line);
  background:var(--paper)}
.ccard .gtag,.ccard h3,.ccard p,.ccard .gmore{padding-left:clamp(18px,2vw,24px);padding-right:clamp(18px,2vw,24px)}
.ccard .gtag{display:block;padding-top:clamp(15px,1.8vw,20px)}
.ccard .gmore{padding-bottom:clamp(18px,2vw,24px);margin-top:auto;padding-top:13px}
table.dt{width:100%;border-collapse:collapse;margin-top:22px;font-size:14.5px}
table.dt th{text-align:left;font-family:'Outfit',sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.11em;text-transform:uppercase;color:var(--soft);padding:0 14px 11px 0;
  border-bottom:1px solid var(--line)}
table.dt td{padding:14px 14px 14px 0;border-bottom:1px solid var(--line);color:var(--soft)}
table.dt td:first-child{color:var(--ink);font-weight:500}
table.dt tr:hover td{background:rgba(63,154,102,.035)}
.pill{display:inline-block;font-family:ui-monospace,Menlo,monospace;font-size:10.5px;
  letter-spacing:.07em;padding:4px 10px;border-radius:99px;white-space:nowrap}
.pill.y{color:var(--echo-deep);background:rgba(63,154,102,.13)}
.pill.n{color:#9B4A2E;background:rgba(180,87,58,.12)}

.faqs{margin-top:22px;max-width:78ch}
.faq{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:17px 0;font-family:'Outfit',sans-serif;
  font-weight:600;font-size:16.5px;letter-spacing:-.02em;color:var(--ink);
  display:flex;justify-content:space-between;gap:18px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";color:var(--echo);font-weight:500;flex:none}
.faq[open] summary:after{content:"\2212"}
.faq div{padding-bottom:19px}
.faq p{font-size:15px;line-height:1.68;color:var(--soft);max-width:68ch}
.faq a{color:var(--echo-deep);text-decoration:underline;text-underline-offset:3px}

.toolstrip{background:var(--ink);color:var(--paper);border-radius:22px;
  padding:clamp(22px,2.8vw,38px);margin-top:clamp(22px,3vh,34px);
  display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.toolstrip h3{font-weight:700;font-size:clamp(19px,2.1vw,27px);max-width:22ch}
.toolstrip p{font-size:14px;line-height:1.55;color:rgba(248,246,240,.62);max-width:52ch;margin-top:9px}
.toolstrip a{font-family:'Outfit',sans-serif;font-weight:600;font-size:14.5px;text-decoration:none;
  color:#0E1512;background:#7FCBA4;padding:14px 24px;border-radius:999px;white-space:nowrap;
  transition:transform .22s ease}
.toolstrip a:hover{transform:translateY(-1px)}
@media(max-width:760px){.toolstrip{grid-template-columns:1fr}}

.chero{display:grid;grid-template-columns:1fr minmax(0,46%);gap:clamp(22px,3.4vw,56px);align-items:center}
.cheroR{margin:0}
.cheroR img{display:block;width:100%;height:auto;border-radius:16px;
  border:1px solid var(--line);background:var(--paper)}
.cheroR figcaption{font-size:11.5px;color:var(--soft);margin-top:9px;text-align:right;letter-spacing:.01em}
@media(max-width:900px){
  .chero{grid-template-columns:1fr;gap:22px}
  .cheroR{order:-1}
  .cheroR figcaption{text-align:left}
}
.costbar{margin-top:26px;max-width:70ch}
.cbtrack{position:relative;height:56px;border-radius:14px;overflow:hidden;
  background:linear-gradient(90deg,rgba(63,154,102,.16),rgba(63,154,102,.34),rgba(192,138,46,.28))}
.cbmid{position:absolute;top:0;bottom:0;width:2px;background:var(--ink)}
.cbmid:after{content:attr(data-l);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  white-space:nowrap;font-family:'Outfit',sans-serif;font-weight:700;font-size:14px;color:var(--paper);
  background:var(--ink);padding:6px 13px;border-radius:99px}
.cbends{display:flex;justify-content:space-between;margin-top:9px;font-family:ui-monospace,Menlo,monospace;
  font-size:12px;color:var(--soft)}

.alpha{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}
.alpha a{text-decoration:none;font-family:ui-monospace,Menlo,monospace;font-size:13px;
  width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);
  border-radius:9px;color:var(--soft);background:var(--card)}
.alpha a:hover{border-color:var(--echo);color:var(--echo-deep)}
.clist{columns:4;column-gap:26px;margin-top:22px}
.clist a{display:block;break-inside:avoid;text-decoration:none;color:var(--soft);font-size:14.5px;
  padding:7px 0;border-bottom:1px solid var(--line)}
.clist a:hover{color:var(--echo-deep)}
.clist b{color:var(--ink);font-weight:500}
@media(max-width:980px){.clist{columns:2}}
@media(max-width:560px){.clist{columns:1}}

/* ============ booking cta ============ */
.cta{background:radial-gradient(70% 66% at 50% 108%,rgba(63,154,102,.5),rgba(44,122,78,0) 66%),
  var(--echo-deep);color:#fff;padding:clamp(56px,10vh,116px) 0;scroll-margin-top:88px}
.cta .eyebrow{color:rgba(255,255,255,.62)}.cta .eyebrow i{background:#CFE8DA}
.cgrid{display:grid;grid-template-columns:1fr minmax(380px,46%);gap:clamp(26px,4vw,64px);align-items:center}
.cta h2{font-weight:700;font-size:clamp(28px,3.5vw,50px);max-width:15ch;margin-top:12px}
.cta .clead{font-size:15px;color:rgba(255,255,255,.74);max-width:40ch;margin-top:15px;line-height:1.56}
.creas{list-style:none;margin-top:clamp(20px,3vh,30px);border-top:1px solid rgba(255,255,255,.2)}
.creas li{display:flex;align-items:center;gap:12px;padding:13px 0;
  border-bottom:1px solid rgba(255,255,255,.2);font-size:14px;color:rgba(255,255,255,.9)}
.creas svg{width:17px;height:17px;flex:none;color:#CFE8DA}
.bkcard{background:var(--card);border-radius:24px;padding:clamp(20px,2.4vw,32px);
  box-shadow:0 30px 70px rgba(12,40,26,.28);transition:box-shadow .5s ease}
.bkcard.ping{box-shadow:0 0 0 4px rgba(207,232,218,.55),0 30px 70px rgba(12,40,26,.32)}
.bkcard h3{font-weight:700;font-size:clamp(19px,1.8vw,23px);color:var(--ink)}
.bkcard>p{font-size:13px;color:var(--soft);margin-top:5px;line-height:1.5}
.bkf{margin-top:16px;display:grid;gap:10px}
.bkrow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bkin{width:100%;height:50px;border-radius:12px;border:1px solid var(--line);background:var(--paper);
  padding:0 16px;font-family:'Outfit',sans-serif;font-size:15px;font-weight:500;color:var(--ink);outline:none;
  transition:border-color .22s ease,box-shadow .22s ease}
.bkin::placeholder{color:rgba(23,32,27,.36)}
.bkin:focus{border-color:var(--echo);box-shadow:0 0 0 4px rgba(63,154,102,.13)}
.bklab{font-family:'Outfit',sans-serif;font-size:11px;font-weight:600;letter-spacing:.11em;
  text-transform:uppercase;color:var(--soft);margin-top:6px}
.bkchips{display:flex;flex-wrap:wrap;gap:7px}
.bkc{font-family:'Outfit',sans-serif;font-size:13px;font-weight:500;cursor:pointer;padding:9px 14px;
  border-radius:999px;border:1px solid var(--line);background:var(--paper);color:rgba(23,32,27,.76);
  transition:all .2s ease}
.bkc:hover{border-color:rgba(63,154,102,.5)}
.bkc.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.bkgo{margin-top:6px;height:54px;border-radius:999px;border:0;cursor:pointer;width:100%;
  font-family:'Outfit',sans-serif;font-size:15.5px;font-weight:600;color:var(--paper);background:var(--ink);
  transition:transform .22s cubic-bezier(.2,.7,.3,1)}
.bkgo:hover{transform:translateY(-1px)}
.bknote{font-size:11.5px;color:var(--soft);text-align:center;margin-top:9px;line-height:1.5}
.bkdone{display:none;text-align:center;padding:clamp(16px,2vw,26px) 0}
.bkdone svg{width:46px;height:46px;color:var(--echo);margin-bottom:12px}
.bkdone p{font-size:13.5px;color:var(--soft);line-height:1.55;max-width:34ch;margin:7px auto 0}
.bkcard.sent .bkf,.bkcard.sent>h3,.bkcard.sent>p,.bkcard.sent .bknote{display:none}
.bkcard.sent .bkdone{display:block}
@media(max-width:900px){.cgrid{grid-template-columns:1fr;gap:26px}.cta h2{max-width:100%}}
@media(max-width:420px){.bkrow{grid-template-columns:1fr}}

/* ============ footer ============ */
footer.site{background:var(--ink);color:rgba(248,246,240,.62);padding:clamp(40px,6vh,72px) 0 26px}
.fgrid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:clamp(18px,2.4vw,38px)}
.fbrand img{height:26px;filter:brightness(0) invert(1);opacity:.92}
.fbrand p{font-size:13px;line-height:1.62;margin-top:14px;max-width:34ch}
footer h4{font-family:'Outfit',sans-serif;font-size:11px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:rgba(248,246,240,.4);margin-bottom:13px}
footer .fgrid a{display:block;text-decoration:none;color:rgba(248,246,240,.72);font-size:13.5px;
  padding:5px 0;transition:color .2s ease}
footer .fgrid a:hover{color:#7FCBA4}
.fbot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:clamp(28px,4vh,48px);
  padding-top:20px;border-top:1px solid rgba(248,246,240,.14);font-size:12px;color:rgba(248,246,240,.42)}
@media(max-width:1000px){.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}}

.toolframe{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--card);
  box-shadow:0 20px 46px -22px rgba(44,90,64,.22);margin-bottom:clamp(34px,5vh,64px)}
.toolframe iframe{display:block;width:100%;height:min(84vh,860px);border:0}
@media(max-width:820px){.toolframe iframe{height:150vh}}

.sc{border:1px solid var(--line);border-radius:22px;background:var(--card);
  padding:clamp(20px,2.6vw,34px);box-shadow:0 20px 46px -24px rgba(44,90,64,.22);
  margin-bottom:clamp(34px,5vh,64px)}
.sclab{font-family:'Outfit',sans-serif;font-size:11px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--soft)}
.scrow{display:flex;gap:9px;margin-top:10px;flex-wrap:wrap}
.scin{flex:1;min-width:200px;height:58px;border-radius:14px;border:1.5px solid var(--line);
  background:var(--paper);padding:0 20px;font-family:'Outfit',sans-serif;font-size:19px;
  font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);outline:none;
  transition:border-color .22s ease,box-shadow .22s ease}
.scin::placeholder{color:rgba(23,32,27,.3);letter-spacing:.04em;font-weight:500}
.scin:focus{border-color:var(--echo);box-shadow:0 0 0 4px rgba(63,154,102,.13)}
.scgo{height:58px;padding:0 30px;border-radius:14px;border:0;cursor:pointer;color:var(--paper);
  background:var(--ink);font-family:'Outfit',sans-serif;font-size:16px;font-weight:600;
  white-space:nowrap;transition:transform .22s cubic-bezier(.2,.7,.3,1),opacity .2s ease}
.scgo:hover{transform:translateY(-1px)}
.scgo[disabled]{opacity:.5;cursor:wait;transform:none}
.schint{font-size:12.5px;color:var(--soft);margin-top:11px}
.scerr{display:none;font-size:13.5px;color:#9B4A2E;background:rgba(180,87,58,.09);
  border:1px solid rgba(180,87,58,.25);border-radius:11px;padding:12px 15px;margin-top:12px}
.scerr.on{display:block}
.scerr a{color:#9B4A2E;text-decoration:underline}

.scres{display:none;margin-top:clamp(18px,2.4vw,28px);padding-top:clamp(18px,2.4vw,28px);
  border-top:1px solid var(--line)}
.scres.on{display:block;animation:scfade .5s cubic-bezier(.2,.7,.3,1)}
@keyframes scfade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.scwho{font-family:'Outfit',sans-serif;font-size:clamp(21px,2.4vw,30px);font-weight:700;
  letter-spacing:-.03em;color:var(--ink)}
.scwho span{color:var(--echo-deep)}
.scsub{font-size:13.5px;color:var(--soft);margin-top:6px}
.scstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:clamp(12px,1.6vw,20px);margin-top:clamp(16px,2vw,24px)}
.scstat{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.scstat b{display:block;font-family:'Outfit',sans-serif;font-weight:700;
  font-size:clamp(22px,2.6vw,32px);letter-spacing:-.03em;color:var(--ink);line-height:1}
.scstat span{display:block;font-size:11.5px;color:var(--soft);margin-top:6px;line-height:1.4}
.scstat.warn b{color:#B4573A}
.scread{font-size:14.5px;line-height:1.65;color:var(--soft);margin-top:18px;max-width:64ch}
.scread b{color:var(--ink);font-weight:600}
.scacts{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}
.scact{display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  font-family:'Outfit',sans-serif;font-size:14.5px;font-weight:600;padding:13px 22px;
  border-radius:999px;transition:transform .22s ease}
.scact:hover{transform:translateY(-1px)}
.scact.p{background:var(--echo);color:#fff}
.scact.s{border:1px solid var(--line);color:var(--ink)}
.scmore{margin-top:22px;padding:18px 20px;border-radius:16px;background:var(--glacial)}
.scmore h4{font-family:'Outfit',sans-serif;font-weight:700;font-size:16px;letter-spacing:-.02em;
  color:var(--ink);margin-bottom:5px}
.scmore p{font-size:13px;line-height:1.55;color:var(--soft);max-width:52ch}
.scmrow{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap}
.scmin{flex:1;min-width:190px;height:48px;border-radius:999px;border:1px solid rgba(23,32,27,.14);
  background:var(--card);padding:0 18px;font-family:'Outfit',sans-serif;font-size:15px;
  font-weight:500;color:var(--ink);outline:none}
.scmin:focus{border-color:var(--echo);box-shadow:0 0 0 3px rgba(63,154,102,.14)}
.scmgo{height:48px;padding:0 22px;border-radius:999px;border:0;cursor:pointer;color:#fff;
  background:var(--echo-deep);font-family:'Outfit',sans-serif;font-size:14.5px;font-weight:600;
  white-space:nowrap}
.scmdone{display:none;font-family:'Outfit',sans-serif;font-weight:600;font-size:15px;
  color:var(--echo-deep);padding:6px 0}
.scmore.sent .scmrow,.scmore.sent p{display:none}
.scmore.sent .scmdone{display:block}
.scload{display:none;align-items:center;gap:11px;margin-top:16px;font-size:14px;color:var(--soft)}
.scload.on{display:flex}
.scspin{width:17px;height:17px;border:2px solid var(--glacial);border-top-color:var(--echo);
  border-radius:50%;animation:scspin .7s linear infinite}
@keyframes scspin{to{transform:rotate(360deg)}}

.fs{border:1px solid var(--line);border-radius:22px;background:var(--card);
  padding:clamp(20px,2.6vw,34px);box-shadow:0 20px 46px -24px rgba(44,90,64,.22);
  margin-bottom:clamp(34px,5vh,64px)}
.fsbar{display:flex;gap:6px;margin-bottom:clamp(18px,2.2vw,26px)}
.fsbar i{flex:1;height:3px;border-radius:3px;background:rgba(23,32,27,.1);transition:background .4s ease}
.fsbar i.on{background:var(--echo)}
.fsstep{display:none}
.fsstep.on{display:block;animation:fsin .45s cubic-bezier(.2,.7,.3,1)}
@keyframes fsin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.fsstep h3{font-family:'Outfit',sans-serif;font-weight:700;font-size:clamp(20px,2.3vw,28px);
  letter-spacing:-.03em;color:var(--ink)}
.fsstep h3 b{color:var(--echo);font-weight:700}
.fsstep>p{font-size:14px;line-height:1.6;color:var(--soft);margin-top:7px;max-width:56ch}
.fsq{display:block;font-family:'Outfit',sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin:clamp(18px,2.2vw,24px) 0 10px}
.fsdrop{position:relative;display:block;width:100%;aspect-ratio:2/1;border-radius:16px;cursor:pointer;
  border:1.5px dashed rgba(23,32,27,.22);background:var(--paper);overflow:hidden;margin-top:16px;
  transition:border-color .25s ease,background .25s ease}
.fsdrop:hover,.fsdrop.over{border-color:var(--echo);background:rgba(63,154,102,.05)}
.fsin{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:7px;text-align:center;padding:20px;color:var(--soft)}
.fsin svg{width:26px;height:26px;color:var(--echo);margin-bottom:3px}
.fsin b{font-family:'Outfit',sans-serif;font-weight:600;font-size:15.5px;color:var(--ink)}
.fsin em{font-style:normal;font-size:12.5px}
.fspv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s ease}
.fsdrop.has .fspv{opacity:1}
.fsdrop.has .fsin{opacity:0;pointer-events:none}
.fsswap{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);opacity:0;
  font-family:'Outfit',sans-serif;font-weight:600;font-size:12.5px;color:var(--ink);
  background:rgba(248,246,240,.92);border:1px solid var(--line);padding:7px 14px;border-radius:99px;
  backdrop-filter:blur(8px);transition:opacity .3s ease;white-space:nowrap}
.fsdrop.has:hover .fsswap{opacity:1}
.fschips{display:flex;flex-wrap:wrap;gap:7px}
.fsc{font-family:'Outfit',sans-serif;font-size:13.5px;font-weight:500;cursor:pointer;
  padding:11px 17px;border-radius:999px;border:1px solid var(--line);background:var(--paper);
  color:rgba(23,32,27,.76);transition:all .2s ease}
.fsc:hover{border-color:rgba(63,154,102,.5)}
.fsc.on{background:var(--echo);border-color:var(--echo);color:#fff}
.fstext{width:min(300px,100%);height:52px;border-radius:12px;border:1px solid var(--line);
  background:var(--paper);padding:0 18px;font-family:'Outfit',sans-serif;font-size:16px;
  font-weight:500;color:var(--ink);outline:none;transition:border-color .22s ease,box-shadow .22s ease}
.fstext.wide{width:100%}
.fstext#fsPost{text-transform:uppercase;letter-spacing:.06em}
.fstext:focus{border-color:var(--echo);box-shadow:0 0 0 4px rgba(63,154,102,.13)}
.fshint{font-size:12.5px;color:var(--soft);margin-top:9px;line-height:1.5}
.fshint b{color:var(--echo-deep)}
.fsnav{display:flex;gap:9px;align-items:center;margin-top:clamp(20px,2.6vw,28px);flex-wrap:wrap}
.fsgo{height:52px;padding:0 28px;border-radius:999px;border:0;cursor:pointer;color:var(--paper);
  background:var(--ink);font-family:'Outfit',sans-serif;font-size:15px;font-weight:600;
  transition:transform .22s cubic-bezier(.2,.7,.3,1),opacity .2s ease}
.fsgo:hover{transform:translateY(-1px)}
.fsgo[disabled]{opacity:.42;cursor:not-allowed;transform:none}
.fsback{background:none;border:0;cursor:pointer;font-family:'Inter',sans-serif;font-size:14px;
  color:var(--soft);padding:10px 6px}
.fsback:hover{color:var(--ink)}
.fsdone{text-align:center;padding:clamp(16px,2.4vw,30px) 0}
.fsdone svg{width:52px;height:52px;color:var(--echo);margin-bottom:14px}
.fsdone h3{margin-bottom:9px}
.fsdone p{max-width:44ch;margin:0 auto}
.fsdone .scacts{justify-content:center}

.calc{border:1px solid var(--line);border-radius:24px;background:var(--card);overflow:hidden;
  box-shadow:0 24px 54px -28px rgba(44,90,64,.24);margin-top:clamp(20px,3vh,32px)}
.calcgrid{display:grid;grid-template-columns:1fr minmax(0,40%)}
.calcL{padding:clamp(20px,2.6vw,34px)}
.calcR{padding:clamp(20px,2.6vw,34px);background:var(--ink);color:var(--paper);
  display:flex;flex-direction:column;justify-content:center}
.clab{display:block;font-family:'Outfit',sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin-bottom:10px}
.clab.sp{margin-top:clamp(18px,2.2vw,26px)}
.cchips{display:flex;flex-wrap:wrap;gap:10px}
.cc{font-family:'Outfit',sans-serif;font-size:13.5px;font-weight:500;cursor:pointer;
  padding:10px 15px;border-radius:999px;border:1px solid var(--line);background:var(--paper);
  color:rgba(23,32,27,.76);transition:all .2s ease}
.cc:hover{border-color:rgba(63,154,102,.5)}
.cc.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.crow{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.crow b{font-family:ui-monospace,Menlo,monospace;font-size:13px;font-weight:500;color:var(--ink)}
.csize{-webkit-appearance:none;appearance:none;width:100%;height:24px;background:transparent;
  cursor:pointer;margin-top:4px}
.csize::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:rgba(23,32,27,.13)}
.csize::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;
  background:var(--card);border:2.5px solid var(--echo);margin-top:-8px;
  box-shadow:0 2px 6px rgba(23,32,27,.2)}
.csize::-moz-range-track{height:4px;border-radius:4px;background:rgba(23,32,27,.13)}
.csize::-moz-range-thumb{width:17px;height:17px;border-radius:50%;background:var(--card);
  border:2.5px solid var(--echo)}
.chint{font-size:12px;color:var(--soft);margin-top:7px;line-height:1.5}
.cspecd{font-size:12.5px;line-height:1.55;color:var(--soft);margin-top:10px;min-height:2.6em}

.cout{font-family:ui-monospace,Menlo,monospace;font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:rgba(248,246,240,.45)}
.cbig{font-family:'Outfit',sans-serif;font-weight:700;letter-spacing:-.04em;line-height:1;
  font-size:clamp(30px,4.4vw,54px);margin:12px 0 6px;
  font-variant-numeric:tabular-nums}
.crange{font-family:ui-monospace,Menlo,monospace;font-size:13px;color:rgba(248,246,240,.6)}
.cper{font-size:12.5px;color:rgba(248,246,240,.5);margin-top:14px;padding-top:14px;
  border-top:1px solid rgba(248,246,240,.16);line-height:1.6}
.cper b{color:#7FCBA4;font-weight:600}
.cbreak{margin-top:16px;display:flex;height:9px;border-radius:9px;overflow:hidden}
.cbreak i{display:block;height:100%}
.ckey{display:flex;flex-wrap:wrap;gap:9px 16px;margin-top:11px;font-size:11px;
  color:rgba(248,246,240,.6)}
.ckey span{display:flex;align-items:center;gap:6px}
.ckey em{width:8px;height:8px;border-radius:2px;font-style:normal}
.cgo{margin-top:18px;display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  font-family:'Outfit',sans-serif;font-size:14px;font-weight:600;color:#0E1512;background:#7FCBA4;
  padding:12px 20px;border-radius:999px;align-self:flex-start;transition:transform .22s ease}
.cgo:hover{transform:translateY(-1px)}
@media(max-width:900px){.calcgrid{grid-template-columns:1fr}}

/* range comparison chart */
.rchart{margin-top:clamp(20px,3vh,30px)}
.rrow{display:grid;grid-template-columns:minmax(120px,20%) 1fr;gap:clamp(10px,1.6vw,22px);
  align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.rrow a{text-decoration:none;font-family:'Outfit',sans-serif;font-weight:600;font-size:14px;
  letter-spacing:-.02em;color:var(--ink)}
.rrow a:hover{color:var(--echo-deep)}
.rtrack{position:relative;height:30px}
.rbar{position:absolute;top:7px;height:16px;border-radius:16px;
  background:linear-gradient(90deg,rgba(63,154,102,.3),rgba(63,154,102,.55));
  transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.7,.3,1)}
.rchart.vis .rbar{transform:scaleX(1)}
.rdot{position:absolute;top:9px;width:12px;height:12px;border-radius:50%;background:var(--ink);
  border:2.5px solid var(--card);opacity:0;transition:opacity .5s ease .5s}
.rchart.vis .rdot{opacity:1}
.rval{position:absolute;top:50%;transform:translateY(-50%);font:11.5px ui-monospace,Menlo,monospace;
  color:var(--soft);white-space:nowrap;opacity:0;transition:opacity .5s ease .6s}
.rchart.vis .rval{opacity:1}
.rscale{display:flex;justify-content:space-between;margin-top:9px;padding-left:calc(20% + 22px);
  font:11px ui-monospace,Menlo,monospace;color:var(--soft)}
@media(max-width:640px){
  .rrow{grid-template-columns:1fr;gap:4px}
  .rscale{padding-left:0}
  .rval{display:none}
}


/* ---- announcement bar, switched on from the back office ---- */
.siteBanner{background:var(--echo-deep);color:#fff;font-size:13.5px;font-weight:500;text-align:center;padding:10px 0;position:relative;z-index:90}
.siteBanner a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:2px;margin-left:8px}

/* the post-end CTA: text beside a designed mini-app, same object as the homepage uses */
.toolstrip.shot{grid-template-columns:1fr minmax(0,44%);padding:clamp(24px,3vw,40px);gap:clamp(24px,3vw,44px);align-items:center}
.toolstrip.shot>div:first-child{display:flex;flex-direction:column;justify-content:center}
.pbody .toolstrip a,.toolstrip.shot a{text-decoration:none !important;align-self:flex-start}
.pbody .toolstrip p,.toolstrip.shot p{color:rgba(248,246,240,.68) !important;font-size:14.5px !important;line-height:1.6 !important;margin:9px 0 0 !important}
.toolstrip.shot .tsList{list-style:none;margin:14px 0 18px;display:grid;gap:7px}
.toolstrip.shot .tsList li{display:flex;gap:9px;align-items:center;font-size:13.5px;color:rgba(248,246,240,.72)}
.toolstrip.shot .tsList li:before{content:"";width:6px;height:6px;border-radius:50%;background:#7FCBA4;flex:none}
.tsApp{background:var(--paper);border-radius:16px;overflow:hidden;box-shadow:0 24px 50px -18px rgba(0,0,0,.5);
  border:1px solid rgba(248,246,240,.14);transform:rotate(-1.2deg);transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.toolstrip.shot:hover .tsApp{transform:rotate(0) translateY(-3px)}
.tsBar{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--card)}
.tsBar span{width:8px;height:8px;border-radius:50%;background:rgba(23,32,27,.14)}
.tsApp img{display:block;width:100%;height:auto}
.tsVerdict{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 16px;border-top:3px solid var(--echo);background:var(--card)}
.tsVerdict small{display:block;font-family:ui-monospace,Menlo,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.tsVerdict b{display:block;font-family:'Outfit',sans-serif;font-weight:700;font-size:15px;letter-spacing:-.025em;color:var(--ink);margin-top:2px}
.tsVerdict em{font-style:normal;font-family:'Outfit',sans-serif;font-weight:700;font-size:17px;letter-spacing:-.03em;color:var(--ink);
  filter:blur(4px);user-select:none}
.tsVerdict i{font-style:normal;display:inline-flex;align-items:center;gap:5px;font-family:ui-monospace,Menlo,monospace;font-size:9.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--echo-deep);background:rgba(63,154,102,.12);padding:4px 8px;border-radius:99px;margin-left:8px}
@media(max-width:760px){.toolstrip.shot{grid-template-columns:1fr}.tsApp{transform:none}}


/* ============ accent, used only for the Project Calculator and hover states ============ */
.mmtop:hover,.mmtoplink:hover{color:var(--accent-deep)}
.mmlinks a:hover b{color:var(--accent-deep)}
.crumbs a:hover{color:var(--accent-deep)}
.navbtn:hover{background:var(--accent-deep)}
footer .fgrid a:hover{color:#C9B3E6}
.gcard:hover .gmore,.gcard:hover .gtag{color:var(--accent-deep)}
.gcard:hover{border-color:var(--accent-line)}

/* the calculator hook: one component, every page, always coral */
.calcHook{position:relative;display:grid;grid-template-columns:1fr minmax(0,42%);gap:clamp(22px,3vw,44px);align-items:center;
  background:var(--ink);color:var(--paper);border-radius:24px;padding:clamp(24px,3vw,40px);margin:clamp(28px,4vh,44px) 0;overflow:hidden}
.calcHook:before{content:"";position:absolute;right:-20%;top:-60%;width:70%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,var(--accent-soft),transparent 66%);pointer-events:none}
.calcHook>*{position:relative}
.chTag{display:inline-flex;align-items:center;gap:8px;font-family:ui-monospace,Menlo,monospace;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-light);margin-bottom:12px}
  .chTag i{width:7px;height:7px;border-radius:50%;background:var(--accent-light);animation:chPulse 2.2s infinite}
@keyframes chPulse{0%,100%{box-shadow:0 0 0 0 rgba(101,71,138,.5)}60%{box-shadow:0 0 0 8px rgba(101,71,138,0)}}
.calcHook h3{font-family:'Outfit',sans-serif;font-weight:700;font-size:clamp(20px,2.3vw,29px);letter-spacing:-.03em;line-height:1.1;max-width:22ch;color:var(--paper)}
.calcHook h3 b{color:var(--accent-light);font-weight:700}
.calcHook p{font-size:14.5px;line-height:1.6;color:rgba(248,246,240,.66);max-width:48ch;margin-top:10px}
.prose .chBtn,.pbody .chBtn,.calcHook .chBtn{color:#fff !important;text-decoration:none !important}
.chBtn{display:inline-flex;align-items:center;gap:9px;margin-top:20px;text-decoration:none;font-family:'Outfit',sans-serif;font-weight:700;
  font-size:15px;color:#fff;background:var(--accent);padding:14px 24px;border-radius:999px;
  box-shadow:0 10px 26px -10px rgba(101,71,138,.55);transition:transform .22s cubic-bezier(.2,.7,.3,1),background .22s ease}
.chBtn:hover{transform:translateY(-2px);background:var(--accent-deep)}
.chBtn em{font-style:normal;opacity:.7;font-weight:500;font-size:13px}
.chApp{background:var(--paper);border-radius:16px;overflow:hidden;box-shadow:0 24px 50px -18px rgba(0,0,0,.55);
  border:1px solid rgba(248,246,240,.14);transform:rotate(-1.2deg);transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.calcHook:hover .chApp{transform:rotate(0) translateY(-3px)}
.chBar{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--card)}
.chBar span{width:8px;height:8px;border-radius:50%;background:rgba(23,32,27,.14)}
.chApp img{display:block;width:100%;height:auto}
.chVerdict{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 16px;border-top:3px solid var(--echo);background:var(--card)}
.chVerdict small{display:block;font-family:ui-monospace,Menlo,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.chVerdict b{display:block;font-family:'Outfit',sans-serif;font-weight:700;font-size:15px;letter-spacing:-.025em;color:var(--ink);margin-top:2px}
.chVerdict em{font-style:normal;font-family:'Outfit',sans-serif;font-weight:700;font-size:18px;letter-spacing:-.03em;color:var(--accent-deep)}
@media(max-width:760px){.calcHook{grid-template-columns:1fr}.chApp{transform:none}}


/* ============ Extnd Assistant: a modal, not a chatbot ============ */
#regRoot{position:fixed;right:clamp(14px,2.2vw,26px);bottom:clamp(14px,2.2vw,26px);z-index:9999;font-family:'Inter',sans-serif}
#regBtn{position:relative;width:56px;height:56px;border-radius:50%;border:0;cursor:pointer;background:var(--accent);color:#fff;
  display:grid;place-items:center;box-shadow:0 14px 34px -10px rgba(78,53,112,.6);
  transition:transform .3s cubic-bezier(.2,.7,.3,1),background .25s ease}
#regBtn svg{width:24px;height:24px}
#regBtn:hover{transform:translateY(-2px) scale(1.04);background:var(--accent-deep)}
.regTip{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(6px);white-space:nowrap;
  font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line);
  padding:7px 12px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}
#regBtn:hover .regTip{opacity:1;transform:translateY(-50%) translateX(0)}
#regRoot.open #regBtn,#regRoot.closing #regBtn{opacity:0;pointer-events:none;transform:scale(.6)}
#regRoot.landing #regBtn{animation:regLand .55s cubic-bezier(.2,.7,.3,1)}
@keyframes regLand{0%{transform:scale(.5)}60%{transform:scale(1.12)}100%{transform:scale(1)}}

#regScrim{position:fixed;inset:0;background:rgba(23,32,27,.42);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .35s ease}
#regRoot.open #regScrim{opacity:1;pointer-events:auto}

#regPanel{position:fixed;left:50%;top:50%;width:min(780px,calc(100vw - 32px));height:min(760px,calc(100svh - 48px));
  background:var(--paper);border-radius:24px;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 40px 100px -24px rgba(23,32,27,.55);opacity:0;pointer-events:none;
  transform:translate(-50%,-50%) scale(.96);transform-origin:center;
  transition:opacity .32s ease,transform .42s cubic-bezier(.2,.7,.3,1)}
#regRoot.open #regPanel{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
/* closing: shrink towards the bottom-left icon so the eye can follow it */
#regRoot.closing #regPanel{opacity:0;pointer-events:none;
  transform:translate(calc(50vw - 100px),calc(50vh - 40px)) scale(.06);transition:opacity .38s ease,transform .48s cubic-bezier(.4,0,.2,1)}
#regRoot.closing #regScrim{opacity:0}

.regTop{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line);flex:none}
.regTitle{font-family:'Outfit',sans-serif;font-weight:700;font-size:15px;letter-spacing:-.02em;color:var(--ink)}
.regTitle em{font-style:normal;font-weight:400;font-size:12.5px;color:var(--soft);margin-left:10px}
.regX{width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;background:rgba(23,32,27,.06);display:grid;place-items:center;transition:background .2s ease}
.regX:hover{background:rgba(23,32,27,.12)}
.regX svg{width:15px;height:15px;stroke:var(--ink);stroke-width:2.2;fill:none;stroke-linecap:round}

.regBody{flex:1;overflow-y:auto;padding:clamp(18px,3vh,30px) clamp(18px,4vw,60px) 10px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.regEmpty{text-align:center;padding:clamp(24px,8vh,80px) 0 20px}
.regEmpty h3{font-family:'Outfit',sans-serif;font-weight:700;font-size:clamp(22px,3vw,30px);letter-spacing:-.03em}
.regEmpty p{font-size:14.5px;line-height:1.6;color:var(--soft);max-width:44ch;margin:10px auto 0}
.regM{margin-bottom:22px;animation:regUp .38s cubic-bezier(.2,.7,.3,1)}
@keyframes regUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.regM.me{display:flex;justify-content:flex-end}
.regM.me p{background:rgba(23,32,27,.07);color:var(--ink);padding:11px 16px;border-radius:18px 18px 4px 18px;font-size:15px;line-height:1.5;max-width:78%}
.regM.reg .rb p{font-size:16px;line-height:1.7;color:var(--ink);margin-bottom:12px;max-width:66ch}
.regM.reg .rb p:last-child{margin-bottom:0}
.regStats{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 14px}
.regStats div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 15px;min-width:96px}
.regStats b{display:block;font-family:'Outfit',sans-serif;font-weight:700;font-size:19px;letter-spacing:-.03em}
.regStats span{display:block;font-size:11px;color:var(--soft);margin-top:2px}
.regImg{margin:12px 0 14px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card);max-width:520px}
.regImg img{display:block;width:100%;height:auto}
.regMore{font-size:14px;line-height:1.6;color:var(--soft);margin-top:12px}
.regMore a{color:var(--accent-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.regMore span{opacity:.4;margin:0 7px}
.regActs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.regActs a,.regActs button{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-family:'Outfit',sans-serif;font-size:13.5px;font-weight:600;cursor:pointer;
  padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink)}
.regActs .primary{background:var(--accent);border-color:var(--accent);color:#fff}
.regActs em{font-style:normal;opacity:.5}
.regThink{display:flex;gap:5px;padding:6px 0}
.regThink i{width:6px;height:6px;border-radius:50%;background:var(--arsenic);animation:regBl 1.3s infinite}
.regThink i:nth-child(2){animation-delay:.18s}.regThink i:nth-child(3){animation-delay:.36s}
@keyframes regBl{0%,60%,100%{opacity:.25}30%{opacity:1}}
.regBook{border:1px solid rgba(101,71,138,.3);background:rgba(101,71,138,.06);border-radius:14px;padding:16px;margin-top:10px;max-width:420px}
.regBook b{display:block;font-family:'Outfit',sans-serif;font-weight:700;font-size:15px;letter-spacing:-.02em;margin-bottom:4px}
.regBook p{font-size:13px;line-height:1.5;color:var(--soft);margin-bottom:11px}
.regBook input{width:100%;height:42px;border-radius:10px;border:1px solid rgba(23,32,27,.12);background:var(--card);padding:0 13px;font-family:'Outfit',sans-serif;font-size:14.5px;color:var(--ink);outline:none;margin-bottom:7px}
.regBook button{width:100%;height:44px;border-radius:10px;border:0;cursor:pointer;background:var(--accent);color:#fff;font-family:'Outfit',sans-serif;font-size:14.5px;font-weight:600}
.regBook.done .f{display:none}.regBook .ok{display:none;font-family:'Outfit',sans-serif;font-weight:600;font-size:14px;color:var(--accent-deep)}.regBook.done .ok{display:block}

.regChips{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;padding:0 clamp(18px,4vw,60px) 12px;flex:none}
.regChips button{font-family:'Inter',sans-serif;font-size:13px;cursor:pointer;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--soft);transition:all .2s ease}
.regChips button:hover{border-color:var(--accent);color:var(--accent-deep)}
#regRoot.used .regChips{display:none}
.regDock{flex:none;padding:0 clamp(18px,4vw,60px) 16px}
.regBar{display:flex;gap:8px;align-items:flex-end;background:var(--card);border:1.5px solid var(--line);border-radius:22px;padding:8px 8px 8px 20px;transition:border-color .2s ease,box-shadow .2s ease}
.regBar:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px rgba(101,71,138,.12)}
.regBar textarea{flex:1;border:0;outline:0;resize:none;background:transparent;font-family:'Inter',sans-serif;font-size:16px;line-height:1.5;color:var(--ink);padding:10px 0;max-height:140px}
.regBar textarea::placeholder{color:rgba(23,32,27,.36)}
.regSend{flex:none;width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;background:var(--ink);display:grid;place-items:center;transition:opacity .2s ease,background .2s ease}
.regSend:hover{background:var(--accent)}
.regSend svg{width:17px;height:17px;stroke:var(--paper);fill:none;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.regSend[disabled]{opacity:.28;cursor:default}
.regFoot{font-size:11px;color:var(--soft);text-align:center;margin-top:10px}
body.regLock{position:fixed;left:0;right:0;width:100%;overflow:hidden}
@media(max-width:640px){
  #regPanel{width:100vw;height:100svh;border-radius:0;left:0;top:0;transform:translate(0,0) scale(1)}
  #regRoot.open #regPanel{transform:none}
  #regRoot.closing #regPanel{transform:translate(40vw,40vh) scale(.08)}
  #regBtn{width:52px;height:52px}
}


/* ============ form language, shared by every tool and form ============ */
.scmin,.bkin,.fstext,.rgForm input,.regBook input{height:54px !important;border-radius:12px !important;border:1.5px solid var(--line) !important;
  background:var(--card) !important;padding:0 16px !important;font-family:'Outfit',sans-serif !important;font-size:15.5px !important;font-weight:500 !important;color:var(--ink) !important;outline:none !important;
  transition:border-color .2s ease,box-shadow .2s ease}
.scmin:focus,.bkin:focus,.fstext:focus{border-color:var(--accent) !important;box-shadow:0 0 0 4px rgba(101,71,138,.12) !important}
.scbtn,.bkgo,.fsgo{min-height:54px !important;border-radius:12px !important;font-size:15.5px !important;font-weight:700 !important}

/* cost calculator chips become the same cards as the Project Calculator */
.cchips .cc{flex:1 1 auto;min-height:56px;padding:12px 16px;display:flex;align-items:center;justify-content:center;text-align:center;border-radius:12px;border:1.5px solid var(--line);background:var(--card);
  font-size:14px;font-weight:600;color:var(--ink)}
.cchips .cc:hover{border-color:rgba(63,154,102,.5);transform:translateY(-1px)}
.cchips .cc.on{border-color:var(--echo);background:rgba(63,154,102,.08);box-shadow:inset 0 0 0 1px var(--echo);color:var(--ink)}
.clab{display:block;font-family:'Outfit',sans-serif;font-weight:700;font-size:16px;letter-spacing:-.02em;color:var(--ink);margin-bottom:12px}
.clab.sp{margin-top:26px}

/* mobile menu rows and the calculator button */
.mnlink{display:flex;align-items:center;justify-content:space-between;text-decoration:none;padding:17px 0;font-family:'Outfit',sans-serif;font-weight:600;font-size:17px;
  letter-spacing:-.02em;color:var(--ink);border-bottom:1px solid var(--line)}
.mnlink span{color:var(--echo);font-weight:700}
.mnbtn.calc{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;margin-top:10px;text-align:center;
  background:var(--accent);color:#fff;border-radius:999px;text-decoration:none}
.mnbtn.calc b{font-family:'Outfit',sans-serif;font-weight:700;font-size:inherit;line-height:1.15}
.mnbtn.calc span{font-size:12px;opacity:.8;line-height:1.2}

/* landline in the header */
.hphone{display:inline-flex;align-items:center;gap:8px;text-decoration:none;margin-right:10px;padding:9px 14px;border-radius:999px;
  font-family:'Outfit',sans-serif;font-weight:600;font-size:14px;color:var(--ink);border:1.5px solid rgba(23,32,27,.14);background:var(--card);transition:border-color .2s ease,background .2s ease}
.hphone:hover{border-color:var(--echo);background:rgba(63,154,102,.08)}
.hphone svg{width:16px;height:16px;fill:var(--echo)}
@media(max-width:1180px){.hphone span{display:none}.hphone{padding:9px 11px;margin-right:8px}}
@media(max-width:980px){.hphone{display:none}}
.mnphone{display:flex;align-items:center;justify-content:center;margin-top:10px;padding:15px;border-radius:999px;text-decoration:none;
  font-family:'Outfit',sans-serif;font-weight:600;font-size:16px;color:var(--ink);border:1.5px solid rgba(23,32,27,.14)}

.fcontact{display:flex;flex-direction:column;gap:4px;margin-top:14px}
.fcontact a{font-family:'Outfit',sans-serif;font-weight:600;font-size:14px;color:var(--ink);text-decoration:none}
.fcontact a:hover{color:var(--echo-deep)}
footer:not(.site) a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.mnmail{display:block;text-align:center;margin-top:10px;font-size:14px;color:var(--soft);text-decoration:none}
.regBook.done{max-width:none}
