:root{
  --paper:#EDEEE9; --surface:#FFFFFF; --surface-2:#F7F8F4;
  --ink:#15191A; --ink-2:#2C3331; --muted:#59615C; --hair:#D3D6CF; --hair-2:#E2E4DE;
  --navy:#22384C; --navy-ink:#22384C; --moss:#4E6250; --moss-2:#3E4F41; --sand:#C3AA82;
  --shadow:0 1px 2px rgba(21,25,26,.05), 0 8px 24px -12px rgba(21,25,26,.18);
  --maxw:1180px;
  --f-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-body:"Source Serif 4",Georgia,"Times New Roman",serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#11161A; --surface:#192026; --surface-2:#151B20;
    --ink:#E9ECE7; --ink-2:#D2D7D0; --muted:#97A099; --hair:#2A343B; --hair-2:#222B31;
    --navy:#A9C4DA; --navy-ink:#0E1418; --moss:#93AE90; --moss-2:#A7BFA3; --sand:#C8B189;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px -14px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  --paper:#11161A; --surface:#192026; --surface-2:#151B20;
  --ink:#E9ECE7; --ink-2:#D2D7D0; --muted:#97A099; --hair:#2A343B; --hair-2:#222B31;
  --navy:#A9C4DA; --navy-ink:#0E1418; --moss:#93AE90; --moss-2:#A7BFA3; --sand:#C8B189;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px -14px rgba(0,0,0,.7);
}

*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--moss);outline-offset:3px;border-radius:2px}
h1,h2,h3,h4,.ui{font-family:var(--f-display)}
h1,h2,h3{text-wrap:balance;margin:0;letter-spacing:-.02em;line-height:1.08;font-weight:700}
p{margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:28px}
.label{font-family:var(--f-display);font-size:11.5px;font-weight:600;letter-spacing:.10em;
  text-transform:uppercase;color:var(--muted)}
.num{font-variant-numeric:tabular-nums}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--hair)}
.bar{display:flex;align-items:center;gap:22px;height:64px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;margin-right:auto}
.brand svg{width:26px;height:31px;flex:none}
.brand .bt{font-family:var(--f-display);font-weight:800;font-size:16px;letter-spacing:.01em;line-height:1}
.brand .bs{font-family:var(--f-display);font-weight:500;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);line-height:1;margin-top:3px}
nav{display:flex;align-items:center;gap:2px}
nav a{font-family:var(--f-display);font-size:13.5px;font-weight:600;text-decoration:none;
  padding:7px 11px;border-radius:3px;color:var(--ink-2)}
nav a:hover{background:var(--hair-2)}
nav a.on{color:var(--moss);background:color-mix(in srgb,var(--moss) 12%,transparent)}
nav a.ent{border:1px solid var(--hair);margin-left:8px}
nav a.ent:hover{border-color:var(--moss);color:var(--moss);background:none}
.menubtn{display:none;background:none;border:1px solid var(--hair);border-radius:3px;padding:6px 10px;
  font-family:var(--f-display);font-size:13px;font-weight:600;cursor:pointer}
@media (max-width:940px){
  nav{position:absolute;top:64px;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--hair);
    flex-direction:column;align-items:stretch;padding:8px;gap:0;display:none;box-shadow:var(--shadow)}
  nav.open{display:flex}
  nav a{padding:11px 12px}
  nav a.ent{margin-left:0;margin-top:6px}
  .menubtn{display:block}
}

/* ---------- generic ---------- */
section{padding-block:76px}
section.tight{padding-block:52px}
.rule{height:1px;background:var(--hair);border:0;margin:0}
.eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.eyebrow::after{content:"";height:1px;flex:1;background:var(--hair)}
.sec{font-size:clamp(26px,3.4vw,38px);margin-bottom:14px}
.sec.top{font-size:clamp(32px,4.4vw,48px);letter-spacing:-.028em}
.lede{font-size:19px;color:var(--ink-2);max-width:63ch}
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--f-display);font-weight:600;
  font-size:14px;text-decoration:none;padding:12px 20px;border-radius:3px;border:1px solid transparent;cursor:pointer}
.btn.p{background:var(--moss);color:#F4F6F1;border-color:var(--moss)}
:root[data-theme="dark"] .btn.p{color:#101613}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn.p{color:#101613}}
.btn.p:hover{background:var(--moss-2);border-color:var(--moss-2)}
.btn.s{border-color:var(--hair);color:var(--ink)}
.btn.s:hover{border-color:var(--ink);}
.btnrow{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--surface-2);border-bottom:1px solid var(--hair)}
.hero .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:56px;align-items:center;
  padding-block:70px 78px}
.hero h1{font-size:clamp(38px,5.4vw,62px);letter-spacing:-.033em}
.hero .lede{margin-top:22px}
.heroimg{position:relative;border-radius:4px;overflow:hidden;box-shadow:var(--shadow);background:var(--surface)}
.heroimg img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:center 62%}
.heroimg figcaption{position:absolute;left:0;bottom:0;right:0;padding:26px 18px 12px;
  background:linear-gradient(to top,rgba(10,14,16,.72),transparent);color:#EFF1EC;
  font-family:var(--f-display);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
@media (max-width:900px){.hero .grid{grid-template-columns:1fr;gap:34px;padding-block:46px 52px}}

.strip{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--hair)}
.strip div{padding:20px 18px;border-right:1px solid var(--hair)}
.strip div:last-child{border-right:0}
.strip b{display:block;font-family:var(--f-display);font-size:21px;font-weight:700;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.strip span{display:block;font-family:var(--f-display);font-size:10.5px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted);margin-top:4px}
@media (max-width:860px){.strip{grid-template-columns:repeat(2,1fr)}
  .strip div{border-bottom:1px solid var(--hair)}
  .strip div:nth-child(2n){border-right:0}}

/* ---------- model cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:34px}
@media (max-width:900px){.cards{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--hair);border-radius:4px;overflow:hidden;
  display:flex;flex-direction:column;text-decoration:none;transition:border-color .18s,transform .18s}
.card:hover{border-color:var(--moss);transform:translateY(-2px)}
.card .ph{aspect-ratio:16/10;overflow:hidden;background:var(--surface-2);border-bottom:1px solid var(--hair)}
.card .ph img{width:100%;height:100%;object-fit:cover}
.card .bd{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;gap:12px}
.tier{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-display);font-size:10.5px;
  font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.tier i{width:9px;height:9px;border-radius:50%;display:inline-block}
.t1{background:var(--sand)} .t2{background:#8C7A5C} .t3{background:var(--moss)}
.card h3{font-size:25px}
.card .price{font-family:var(--f-display);font-weight:700;font-size:17px;font-variant-numeric:tabular-nums}
.card .price s{color:var(--muted);font-weight:500;font-size:12px;text-decoration:none;letter-spacing:.06em;
  text-transform:uppercase;display:block;margin-bottom:1px}
.card ul{margin:0;padding:0;list-style:none;font-size:15px;color:var(--ink-2);display:grid;gap:6px}
.card ul li{padding-left:16px;position:relative}
.card ul li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:1px;background:var(--moss)}
.card .go{margin-top:auto;padding-top:6px;font-family:var(--f-display);font-weight:600;font-size:13.5px;color:var(--moss)}

/* ---------- table ---------- */
.tablewrap{overflow-x:auto;border:1px solid var(--hair);border-radius:4px;background:var(--surface);margin-top:30px}
table{border-collapse:collapse;width:100%;min-width:720px;font-size:15px}
th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--hair-2);vertical-align:top}
thead th{font-family:var(--f-display);font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  background:var(--surface-2);border-bottom:1px solid var(--hair);position:sticky;top:0}
tbody th{font-family:var(--f-display);font-size:13px;font-weight:600;color:var(--muted);width:210px}
tr:last-child td,tr:last-child th{border-bottom:0}

/* ---------- model page ---------- */
.mhero{position:relative;border-bottom:1px solid var(--hair)}
.mhero img{width:100%;height:min(58vh,520px);object-fit:cover;object-position:center 60%}
.mhero .cap{position:absolute;inset:auto 0 0 0;padding:60px 0 26px;
  background:linear-gradient(to top,rgba(9,13,15,.82),rgba(9,13,15,.25) 55%,transparent)}
.mhero h1{color:#F2F4EF;font-size:clamp(34px,5vw,54px)}
.mhero .sub{color:#D4D9D0;font-family:var(--f-display);font-weight:600;font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;margin-bottom:12px}
.split{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:52px;align-items:start}
@media (max-width:920px){.split{grid-template-columns:1fr;gap:34px}}
.rail{position:sticky;top:84px}
@media (max-width:920px){.rail{position:static}}
.specbox{background:var(--surface);border:1px solid var(--hair);border-radius:4px;padding:22px}
.specbox h4{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  margin:0 0 12px}
.specbox dl{margin:0;display:grid;gap:0}
.specbox .row{display:grid;grid-template-columns:118px 1fr;gap:12px;padding:9px 0;border-top:1px solid var(--hair-2);
  font-size:14.5px}
.specbox .row:first-of-type{border-top:0}
.specbox dt{font-family:var(--f-display);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted);padding-top:2px}
.specbox dd{margin:0;color:var(--ink-2)}
.bigprice{font-family:var(--f-display);font-weight:800;font-size:30px;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;margin-bottom:2px}

.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:26px}
@media (max-width:620px){.gal{grid-template-columns:1fr}}
.gal figure{margin:0;border:1px solid var(--hair);border-radius:4px;overflow:hidden;background:var(--surface);cursor:zoom-in}
.gal img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.gal figure:hover img{transform:scale(1.035)}
.gal figcaption{padding:10px 13px;font-family:var(--f-display);font-size:11.5px;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--hair-2)}
.gal figure.wide{grid-column:1/-1}
.gal figure.wide img{aspect-ratio:16/9}

.feat{display:grid;grid-template-columns:repeat(2,1fr);gap:26px 40px;margin-top:8px}
@media (max-width:700px){.feat{grid-template-columns:1fr}}
.feat h4{font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:0 0 7px;color:var(--moss)}
.feat p{font-size:15.5px;color:var(--ink-2)}

/* ---------- process ---------- */
.steps{counter-reset:s;display:grid;gap:0;margin-top:26px;border-top:1px solid var(--hair)}
.steps li{list-style:none;counter-increment:s;display:grid;grid-template-columns:56px 240px 1fr;gap:22px;
  padding:20px 0;border-bottom:1px solid var(--hair-2);align-items:baseline}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--f-display);font-weight:700;
  font-size:13px;color:var(--moss);letter-spacing:.06em}
.steps h4{font-size:17px;font-weight:700;margin:0}
.steps p{font-size:15.5px;color:var(--muted)}
@media (max-width:760px){.steps li{grid-template-columns:44px 1fr;gap:14px}
  .steps li h4{grid-column:2} .steps li p{grid-column:2}}
.steps ul{margin:0;padding:0}

/* ---------- faq ---------- */
.faqcat{margin-top:44px}
.faqcat > h3{font-size:14px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--moss);
  padding-bottom:10px;border-bottom:1px solid var(--hair)}
details{border-bottom:1px solid var(--hair-2)}
details summary{cursor:pointer;list-style:none;padding:16px 34px 16px 0;position:relative;
  font-family:var(--f-display);font-weight:600;font-size:16.5px;letter-spacing:-.005em}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"";position:absolute;right:8px;top:24px;width:9px;height:9px;
  border-right:1.6px solid var(--muted);border-bottom:1.6px solid var(--muted);transform:rotate(45deg);
  transition:transform .2s}
details[open] summary::after{transform:rotate(-135deg)}
details .ans{padding:0 40px 20px 0;color:var(--ink-2);font-size:16px;max-width:72ch}
details .ans p + p{margin-top:12px}
details .ans ul{margin:10px 0 0;padding-left:20px}
details .ans li{margin:4px 0}

/* ---------- enterprise ---------- */
.entwrap{background:var(--navy);color:#E6EBEF}
:root[data-theme="dark"] .entwrap{background:#0D141A;color:#DCE4E9}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .entwrap{background:#0D141A;color:#DCE4E9}}
.entwrap .label,.entwrap .muted{color:#9FB2C0}
.entwrap h1{color:#F2F5F7;font-size:clamp(36px,5vw,58px)}
.entwrap .lede{color:#C9D5DD;margin-top:22px}
.entwrap .eyebrow::after{background:rgba(255,255,255,.18)}
.entgrid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:52px;align-items:center;
  padding-block:74px}
@media (max-width:900px){.entgrid{grid-template-columns:1fr;gap:34px;padding-block:48px}}
.entstats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.16);border-radius:4px;overflow:hidden}
.entstats div{background:var(--navy);padding:22px}
:root[data-theme="dark"] .entstats div{background:#0D141A}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .entstats div{background:#0D141A}}
.entstats b{display:block;font-family:var(--f-display);font-weight:700;font-size:27px;color:#F2F5F7;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.entstats span{display:block;font-family:var(--f-display);font-size:10.5px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:#9FB2C0;margin-top:5px}

.calc{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:34px;margin-top:30px;align-items:start;
  background:var(--surface);border:1px solid var(--hair);border-radius:4px;padding:26px}
@media (max-width:820px){.calc{grid-template-columns:1fr}}
.calc .in{display:grid;gap:14px}
.field{display:grid;gap:5px}
.field label,.field>span{font-family:var(--f-display);font-size:11.5px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted)}
.field input{font-family:var(--f-display);font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;
  padding:9px 11px;border:1px solid var(--hair);border-radius:3px;background:var(--surface-2);color:var(--ink);width:100%}
.out{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);
  border-radius:3px;overflow:hidden;align-content:start}
@media (max-width:520px){.out{grid-template-columns:1fr}}
.out div{background:var(--surface-2);padding:20px}
.out b{display:block;font-family:var(--f-display);font-weight:700;font-size:26px;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;color:var(--moss)}
.out span{display:block;font-family:var(--f-display);font-size:10.5px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted);margin-top:5px}
.disc{margin-top:14px;font-size:14px;color:var(--muted);max-width:70ch}

.two{display:grid;grid-template-columns:repeat(2,1fr);gap:44px}
@media (max-width:820px){.two{grid-template-columns:1fr;gap:30px}}
.checklist{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:9px;font-size:16px;color:var(--ink-2)}
.checklist li{padding-left:24px;position:relative}
.checklist li::before{content:"";position:absolute;left:2px;top:.45em;width:10px;height:5px;
  border-left:1.8px solid var(--moss);border-bottom:1.8px solid var(--moss);transform:rotate(-45deg)}
.checklist.x li::before{border:0;background:var(--muted);height:1.6px;width:11px;transform:none;top:.72em;left:2px}

/* ---------- contact / footer ---------- */
.contact{background:var(--surface);border:1px solid var(--hair);border-radius:4px;padding:34px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px}
@media (max-width:820px){.contact{grid-template-columns:1fr;padding:24px;gap:26px}}
.form{display:grid;gap:13px}
.form textarea{font-family:var(--f-body);font-size:15px;padding:10px 11px;border:1px solid var(--hair);
  border-radius:3px;background:var(--surface-2);color:var(--ink);min-height:96px;resize:vertical;width:100%}
.form select{font-family:var(--f-display);font-size:15px;padding:9px 11px;border:1px solid var(--hair);
  border-radius:3px;background:var(--surface-2);color:var(--ink);width:100%}
footer{border-top:1px solid var(--hair);background:var(--surface-2);margin-top:0}
.foot{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:38px;padding-block:54px 30px}
@media (max-width:820px){.foot{grid-template-columns:1fr;gap:26px}}
.foot h5{font-family:var(--f-display);font-size:11.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:var(--muted);margin:0 0 12px}
.foot a{display:block;text-decoration:none;font-size:15.5px;padding:3px 0;color:var(--ink-2)}
.foot a:hover{color:var(--moss)}
.plaque{border:1px solid var(--hair);border-radius:4px;overflow:hidden;max-width:300px;margin-bottom:16px}
.legal{border-top:1px solid var(--hair);padding-block:16px 40px;font-size:13.5px;color:var(--muted);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* ---------- lightbox ---------- */
#lb{position:fixed;inset:0;z-index:200;background:rgba(8,11,13,.94);display:none;
  align-items:center;justify-content:center;padding:28px;cursor:zoom-out}
#lb.on{display:flex}
#lb img{max-width:min(1100px,94vw);max-height:88vh;object-fit:contain;border-radius:3px}
#lb .x{position:absolute;top:16px;right:20px;color:#E9ECE7;font-family:var(--f-display);font-size:13px;
  font-weight:600;letter-spacing:.09em;text-transform:uppercase;background:none;border:0;cursor:pointer}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(12px)}
.rv.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.3,1)}
@media (prefers-reduced-motion:reduce){
  .rv,.rv.in{opacity:1;transform:none;transition:none}
  .gal img,.card{transition:none}
}
/* ---------- static-site additions ---------- */
.skip{position:absolute;left:-9999px;top:0;background:var(--surface);color:var(--ink);
  padding:10px 16px;z-index:200;font-family:var(--f-display);font-weight:600;font-size:14px;
  border:1px solid var(--hair);border-radius:0 0 3px 0}
.skip:focus{left:0}
.foot h2{font-family:var(--f-display);font-size:11.5px;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.form span.note{font-size:13px;color:var(--muted)}
