/* =========================================================
   ZOFIGE — Type-Driven Editorial Stylesheet
   Sections: Reset, Tokens, Base, Layout, Header/Nav,
   Mobile Menu, Buttons, Hero, Stats, Sections, Cards,
   Gallery, Table, FAQ, CTA, Footer, Forms, Cookie, Legal,
   Thanks, Utilities, Responsive
   ========================================================= */


*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
button{font:inherit;cursor:pointer;border:none;background:none;}
ul,ol{list-style:none;}
input,textarea{font:inherit;color:inherit;}


:root{
  --ink:#16201d;
  --ink-2:#3c453f;
  --ink-3:#6a726c;
  --paper:#faf6f0;
  --paper-2:#f1ece1;
  --paper-3:#e9e1d2;
  --accent:#d9491f;
  --accent-2:#b8862e;
  --accent-soft:rgba(217,73,31,.12);
  --teal:#182f2c;
  --teal-2:#22423d;
  --gold-light:#e0b968;
  --line:rgba(22,32,29,.12);
  --line-light:rgba(250,246,240,.18);

  --shadow-sm:0 1px 2px rgba(22,32,29,.07), 0 1px 1px rgba(22,32,29,.05);
  --shadow-md:0 10px 26px rgba(22,32,29,.09), 0 3px 8px rgba(22,32,29,.06);
  --shadow-lg:0 28px 64px rgba(22,32,29,.16), 0 10px 22px rgba(22,32,29,.09);
  --shadow-inset:inset 0 1px 0 rgba(255,255,255,.4);

  --r-sm:8px;
  --r-md:16px;
  --r-lg:28px;
  --r-xl:44px;
  --r-pill:999px;

  --sp-1:.5rem;
  --sp-2:1rem;
  --sp-3:1.5rem;
  --sp-4:2.25rem;
  --sp-5:3.5rem;
  --sp-6:5rem;
  --sp-7:7.5rem;

  --ff-h:'Sora',sans-serif;
  --ff-b:'DM Sans',sans-serif;

  --fs-h1:clamp(2.6rem, 1.6rem + 4.6vw, 6.4rem);
  --fs-h2:clamp(2rem, 1.4rem + 2.6vw, 3.6rem);
  --fs-h3:clamp(1.3rem, 1.15rem + .7vw, 1.7rem);
  --fs-lead:clamp(1.1rem, 1rem + .5vw, 1.35rem);
  --fs-body:1.05rem;

  --ease:cubic-bezier(.22,1,.36,1);
}


body{
  font-family:var(--ff-b);
  color:var(--ink-2);
  background:var(--paper);
  line-height:1.7;
  font-size:var(--fs-body);
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:var(--ff-h);
  color:var(--ink);
  line-height:1.08;
  font-weight:700;
  letter-spacing:-.01em;
}
p{max-width:66ch;}
.acc{color:var(--accent);}

.wrap{
  width:100%;
  max-width:1220px;
  margin-inline:auto;
  padding-inline:1.5rem;
}


.hdr{
  position:relative;
  z-index:200;
  background:transparent;
  padding-block:1.25rem .5rem;
  transition:background .4s var(--ease), box-shadow .4s var(--ease), padding .4s var(--ease);
}
.hdr--scrolled{
  position:fixed;
  top:0;left:0;right:0;
  background:rgba(250,246,240,.92);
  backdrop-filter:blur(14px) saturate(140%);
  box-shadow:var(--shadow-md);
  padding-block:.7rem .4rem;
}
.hdr-bar{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  padding-inline:1.5rem;
}
.hdr-logo{display:inline-flex;transition:opacity .3s;}
.hdr-logo:hover{opacity:.75;}
.hdr-nav{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:2.2rem;
  padding-block:.9rem .2rem;
  font-family:var(--ff-h);
  font-weight:600;
  font-size:.92rem;
  letter-spacing:.01em;
}
.hdr-nav a{
  position:relative;
  color:var(--ink-2);
  padding:.3rem .1rem;
  transition:color .3s var(--ease);
}
.hdr-nav a::after{
  content:'';
  position:absolute;
  left:0;bottom:-2px;
  width:0;height:2px;
  background:var(--accent);
  transition:width .3s var(--ease);
}
.hdr-nav a:hover{color:var(--ink);}
.hdr-nav a:hover::after,
.hdr-nav a[aria-current="page"]::after{width:100%;}
.hdr-nav a[aria-current="page"]{color:var(--ink);}
.hdr-cta{
  background:var(--ink);
  color:var(--paper)!important;
  padding:.6rem 1.3rem!important;
  border-radius:var(--r-pill);
  transition:background .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
  box-shadow:var(--shadow-sm);
}
.hdr-cta::after{display:none;}
.hdr-cta:hover{background:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md);}

.hdr-burger{
  display:none;
  position:absolute;
  right:1.5rem;
  top:50%;
  transform:translateY(-50%);
  width:46px;height:46px;
  align-items:center;justify-content:center;
  flex-direction:column;
  gap:6px;
  border-radius:var(--r-sm);
  z-index:210;
}
.hdr-burger span{
  width:22px;height:2px;background:var(--ink);
  transition:transform .35s var(--ease), opacity .25s var(--ease);
}
.hdr-burger.is-active span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.hdr-burger.is-active span:nth-child(2){opacity:0;}
.hdr-burger.is-active span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}


.hdr-mobile{
  position:fixed;
  inset:0;
  background:var(--teal);
  z-index:190;
  clip-path:polygon(100% 0%, 100% 0%, 100% 0%, 100% 0%);
  transition:clip-path .7s var(--ease);
  pointer-events:none;
}
.hdr-mobile.is-open{
  clip-path:polygon(100% 0%, 100% 100%, 0% 100%, 0% 0%);
}
.hdr-mobile-links{
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2rem;
  opacity:0;
  transition:opacity .5s var(--ease);
}
.hdr-mobile-links.is-visible{opacity:1;}
.hdr-mobile-links a{
  font-family:var(--ff-h);
  font-size:clamp(1.6rem,6vw,2.4rem);
  font-weight:700;
  color:var(--paper);
  transition:color .3s var(--ease);
}
.hdr-mobile-links a:hover{color:var(--gold-light);}
body.no-scroll{overflow:hidden;}


.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  font-family:var(--ff-h);
  font-weight:600;
  font-size:.98rem;
  padding:.95rem 1.9rem;
  border-radius:var(--r-pill);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
  min-height:44px;
}
.btn-primary{
  background:var(--ink);
  color:var(--paper);
  box-shadow:var(--shadow-sm);
}
.btn-primary:hover{background:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow-md);}
.btn-outline{
  background:transparent;
  color:var(--ink);
  border:1.5px solid var(--ink);
}
.btn-outline:hover{background:var(--ink);color:var(--paper);transform:translateY(-3px);}


.hero{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:center;
  gap:var(--sp-5);
  padding:var(--sp-5) 1.5rem var(--sp-6);
  max-width:1400px;
  margin-inline:auto;
}
.hero-wrap{max-width:640px;}
.hero-eyebrow{
  font-family:var(--ff-h);
  font-weight:600;
  color:var(--accent);
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:.82rem;
  margin-bottom:1rem;
}
.hero-h1{
  font-size:var(--fs-h1);
  margin-bottom:1.5rem;
}
.hero-lead{
  font-size:var(--fs-lead);
  color:var(--ink-2);
  margin-bottom:2rem;
  max-width:52ch;
}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;}
.hero-media{
  position:relative;
  border-radius:var(--r-xl);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
  aspect-ratio:4/5;
  transform:rotate(1.2deg);
}
.hero-media img{width:100%;height:100%;object-fit:cover;}


.stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:var(--ink);
  color:var(--paper);
  border-radius:var(--r-lg);
  max-width:1220px;
  margin:0 auto var(--sp-6);
  box-shadow:var(--shadow-lg);
  overflow:hidden;
}
.stats-item{
  padding:2.2rem 1.5rem;
  text-align:center;
  border-right:1px solid var(--line-light);
  display:flex;flex-direction:column;gap:.4rem;
}
.stats-item:last-child{border-right:none;}
.stats-num{
  font-family:var(--ff-h);
  font-weight:800;
  font-size:clamp(2rem,4vw,3rem);
  color:var(--gold-light);
}
.stats-lbl{
  font-size:.85rem;
  color:rgba(250,246,240,.78);
  line-height:1.4;
}


.sec{padding:var(--sp-6) 0;}
.sec--alt{background:var(--paper-2);}
.sec--dark{background:var(--teal);color:var(--paper);}
.sec-eyebrow{
  font-family:var(--ff-h);
  font-weight:600;
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.82rem;
  margin-bottom:.9rem;
}
.sec-eyebrow.light{color:var(--gold-light);}
.sec-eyebrow.center{text-align:center;}
.sec-title{font-size:var(--fs-h2);margin-bottom:1.25rem;max-width:18ch;}
.sec-title.center{margin-inline:auto;text-align:center;max-width:22ch;}
.sec-title.light{color:var(--paper);}
.sec-sub{color:var(--ink-3);font-size:1.1rem;max-width:60ch;margin-bottom:2.5rem;}
.sec-sub.center{margin-inline:auto;text-align:center;}
.light-txt{color:rgba(250,246,240,.82);max-width:58ch;}

.sec-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--sp-5);
  align-items:center;
}
.sec-split--rev .sec-split-media{order:2;}
.sec-split--rev .sec-split-txt{order:1;}
.sec-split-media img{
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg);
  aspect-ratio:4/3;
  object-fit:cover;
  width:100%;
}
.sec-split-txt p{margin-bottom:1.1rem;}
.sec-split-txt p:last-child{margin-bottom:0;}


.crd-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.75rem;
}
.crd-grid--2{grid-template-columns:repeat(2,1fr);}
.crd{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:2.2rem 1.9rem;
  box-shadow:var(--shadow-sm);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.crd:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:transparent;}
.crd-ico{
  width:56px;height:56px;
  border-radius:var(--r-md);
  background:var(--accent-soft);
  color:var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-size:1.35rem;
  margin-bottom:1.3rem;
}
.crd-h{font-size:var(--fs-h3);margin-bottom:.7rem;}
.crd-txt{color:var(--ink-3);font-size:.98rem;}


.gal-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1.25rem;
}
.gal-item{
  display:block;
  border-radius:var(--r-md);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  aspect-ratio:3/4;
  position:relative;
}
.gal-item img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .5s var(--ease);
}
.gal-item:hover img{transform:scale(1.06);}


.tbl-wrap{
  overflow-x:auto;
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-md);
  background:var(--paper);
}
.tbl{
  width:100%;
  border-collapse:collapse;
  min-width:680px;
}
.tbl th,.tbl td{
  padding:1.1rem 1.3rem;
  text-align:left;
  border-bottom:1px solid var(--line);
  font-size:.95rem;
}
.tbl thead th{
  font-family:var(--ff-h);
  font-weight:700;
  background:var(--ink);
  color:var(--paper);
}
.tbl .tbl-feat{font-weight:600;color:var(--ink);}
.tbl td.tbl-rec,.tbl th.tbl-rec{
  background:var(--accent-soft);
  position:relative;
}
.tbl th.tbl-rec{background:var(--accent);color:var(--paper);}
.tbl-badge{
  display:block;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--paper);
  font-weight:600;
  margin-top:.3rem;
}
.tbl i.fa-check{color:var(--accent-2);}
.tbl tbody tr:last-child td{border-bottom:none;}
.tbl-note{margin-top:1.5rem;color:var(--ink-3);font-size:.92rem;}


.faq{max-width:800px;margin-inline:auto;display:flex;flex-direction:column;gap:1rem;}
.faq-item{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:1.3rem 1.6rem;
  box-shadow:var(--shadow-sm);
}
.faq-item summary{
  font-family:var(--ff-h);
  font-weight:600;
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:'+';
  font-size:1.4rem;
  color:var(--accent);
  transition:transform .3s var(--ease);
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{margin-top:.9rem;color:var(--ink-3);}


.cta-band{
  background:linear-gradient(120deg,var(--teal),var(--teal-2));
  color:var(--paper);
  padding:var(--sp-6) 0;
}
.cta-band-in{text-align:center;max-width:700px;margin-inline:auto;}
.cta-band-in h2{color:var(--paper);font-size:var(--fs-h2);margin-bottom:1rem;}
.cta-band-in p{color:rgba(250,246,240,.82);margin-inline:auto;margin-bottom:2rem;}


.pg-hero{padding:var(--sp-6) 0 var(--sp-5);}
.pg-hero--legal{padding-bottom:var(--sp-4);}
.pg-h1{font-size:var(--fs-h1);max-width:16ch;margin-bottom:1.3rem;}
.pg-lead{font-size:var(--fs-lead);max-width:60ch;color:var(--ink-2);}


.ftr{
  background:var(--ink);
  color:rgba(250,246,240,.85);
  padding-top:var(--sp-6);
  margin-top:auto;
}
.ftr-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:2.5rem;
  padding-bottom:var(--sp-5);
  border-bottom:1px solid var(--line-light);
}
.ftr-brand p{color:rgba(250,246,240,.65);font-size:.92rem;margin-block:1rem .8rem;max-width:32ch;}
.ftr-addr{font-size:.9rem;color:rgba(250,246,240,.75);}
.ftr-col h3{
  font-family:var(--ff-h);
  color:var(--paper);
  font-size:.9rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:1.1rem;
}
.ftr-col a{
  display:block;
  color:rgba(250,246,240,.7);
  font-size:.92rem;
  padding:.35rem 0;
  transition:color .3s var(--ease), transform .3s var(--ease);
}
.ftr-col a:hover{color:var(--gold-light);transform:translateX(3px);}
.ftr-bottom{padding-block:1.6rem;text-align:center;font-size:.85rem;color:rgba(250,246,240,.5);}


.con-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5);align-items:start;}
.con-img{border-radius:var(--r-lg);box-shadow:var(--shadow-lg);aspect-ratio:16/10;object-fit:cover;margin-bottom:2rem;}
.con-block{margin-bottom:2rem;}
.con-block p{margin-bottom:.6rem;color:var(--ink-2);}
.con-block p i{color:var(--accent);width:20px;}
.con-h{font-size:var(--fs-h3);margin-bottom:1rem;}
.con-form-wrap{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:2.4rem;
  box-shadow:var(--shadow-md);
}
.con-form-lead{color:var(--ink-3);margin-bottom:1.6rem;}
.frm-row{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.4rem;}
.frm-row label{font-family:var(--ff-h);font-weight:600;font-size:.9rem;color:var(--ink);}
.frm-row input,.frm-row textarea{
  border:1.5px solid var(--line);
  border-radius:var(--r-sm);
  padding:.85rem 1rem;
  background:var(--paper-2);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
  min-height:44px;
}
.frm-row textarea{min-height:130px;resize:vertical;}
.frm-row input:focus,.frm-row textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);
}
.frm-check{
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  margin-bottom:1.6rem;
  font-size:.88rem;
  color:var(--ink-3);
}
.frm-check input{width:20px;height:20px;flex-shrink:0;margin-top:.15rem;accent-color:var(--accent);}
.frm-check a{color:var(--accent);text-decoration:underline;}
.frm-submit{width:100%;}
.frm-note{margin-top:1rem;font-size:.9rem;color:var(--accent);min-height:1.2rem;}
.map-wrap{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md);}


.ck{
  position:fixed;
  left:1.25rem;
  bottom:1.25rem;
  z-index:500;
  max-width:360px;
  width:calc(100% - 2.5rem);
  animation:ckIn .5s var(--ease);
}
@keyframes ckIn{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.ck-card{
  background:var(--paper);
  border-radius:var(--r-lg);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
  padding:1.5rem;
}
.ck-title{font-family:var(--ff-h);font-weight:700;font-size:1.02rem;margin-bottom:.6rem;color:var(--ink);}
.ck-txt{font-size:.86rem;color:var(--ink-3);margin-bottom:1.1rem;line-height:1.55;}
.ck-actions{display:flex;flex-direction:column;gap:.6rem;}
.ck-btn{
  border-radius:var(--r-pill);
  padding:.7rem 1rem;
  font-family:var(--ff-h);
  font-weight:600;
  font-size:.86rem;
  transition:all .3s var(--ease);
  min-height:44px;
}
.ck-btn-primary{background:var(--ink);color:var(--paper);}
.ck-btn-primary:hover{background:var(--accent);}
.ck-btn-ghost{background:var(--paper-2);color:var(--ink);border:1px solid var(--line);}
.ck-btn-ghost:hover{background:var(--paper-3);}
.ck-btn-link{background:none;color:var(--accent);text-decoration:underline;padding:.4rem;}
.ck-custom{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.8rem;}
.ck-opt{display:flex;flex-direction:column;gap:.15rem;font-size:.85rem;color:var(--ink-2);}
.ck-opt input{margin-right:.5rem;accent-color:var(--accent);}
.ck-opt span{font-size:.78rem;color:var(--ink-3);padding-left:1.6rem;}
.ck-more{display:inline-block;margin-top:1rem;font-size:.78rem;color:var(--ink-3);text-decoration:underline;}


.leg-wrap{max-width:760px;}
.leg h2{font-size:1.5rem;margin-top:2.6rem;margin-bottom:1rem;}
.leg h2:first-of-type{margin-top:0;}
.leg p{margin-bottom:1.2rem;color:var(--ink-2);max-width:none;}
.leg .term{color:var(--accent);font-weight:700;}
.def-box{
  background:var(--paper-2);
  border-left:3px solid var(--accent-2);
  border-radius:var(--r-sm);
  padding:1rem 1.3rem;
  font-size:.9rem;
  color:var(--ink-3);
  margin-bottom:1.6rem;
}
.leg--tech .tbl{min-width:560px;}


.thx-hero{
  background:linear-gradient(135deg,var(--teal) 0%, var(--accent) 100%);
  padding:var(--sp-7) 0 var(--sp-6);
  text-align:center;
  color:var(--paper);
}
.thx-eyebrow{
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.85rem;
  color:var(--gold-light);
  font-family:var(--ff-h);
  margin-bottom:1rem;
}
.thx-h1{color:var(--paper);font-size:var(--fs-h1);margin-bottom:1rem;max-width:18ch;margin-inline:auto;}
.thx-lead{color:rgba(250,246,240,.9);max-width:50ch;margin-inline:auto;font-size:var(--fs-lead);}
.thx-next{text-align:center;max-width:700px;margin-inline:auto;}
.thx-cta{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;margin-top:2rem;}


@media (max-width:980px){
  .hero{grid-template-columns:1fr;padding-top:var(--sp-4);}
  .hero-media{aspect-ratio:16/10;order:-1;transform:none;}
  .stats{grid-template-columns:repeat(2,1fr);}
  .stats-item:nth-child(2){border-right:none;}
  .sec-split,.sec-split--rev{grid-template-columns:1fr;}
  .sec-split--rev .sec-split-media,.sec-split--rev .sec-split-txt{order:0;}
  .crd-grid,.crd-grid--2{grid-template-columns:repeat(2,1fr);}
  .gal-grid{grid-template-columns:repeat(2,1fr);}
  .con-grid{grid-template-columns:1fr;}
  .ftr-grid{grid-template-columns:1fr 1fr;}
}

@media (max-width:760px){
  .hdr-nav{display:none;}
  .hdr-burger{display:flex;}
  .hdr-bar{justify-content:center;}
  .crd-grid,.crd-grid--2{grid-template-columns:1fr;}
  .gal-grid{grid-template-columns:1fr 1fr;}
  .ftr-grid{grid-template-columns:1fr;}
  .stats{grid-template-columns:1fr 1fr;}
  .wrap{padding-inline:1.25rem;}
  .con-form-wrap{padding:1.6rem;}
}

@media (max-width:480px){
  .gal-grid{grid-template-columns:1fr 1fr;}
  .hero-cta{flex-direction:column;align-items:stretch;}
  .btn{width:100%;}
  .thx-cta{flex-direction:column;}
  .thx-cta .btn{width:100%;}
}