/* ============ Tokens ============ */
:root{
  --bg:#FFFBF5;
  --bg-tint:#FBF2E6;
  --surface:#FFFFFF;
  --surface-2:#FFF7EC;
  --ink:#241F1A;
  --ink-2:#5C5147;
  --ink-3:#8A7C6E;
  --line:#EADCC8;
  --brand:#0F6F63;
  --brand-ink:#0A544A;
  --brand-soft:#E3F1EE;
  --accent:#E2653F;
  --accent-soft:#FDEBE2;
  --wa:#25D366;
  --wa-dark:#12A150;
  --r-sm:10px; --r:16px; --r-lg:24px; --r-xl:34px;
  --sh-1:0 1px 2px rgba(60,40,20,.06), 0 4px 14px rgba(60,40,20,.05);
  --sh-2:0 10px 34px rgba(60,40,20,.10);
  --sh-3:0 22px 60px rgba(40,25,10,.16);
  --max:1200px;
  --f-head:'Fraunces', Georgia, serif;
  --f-body:'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#15120F; --bg-tint:#1B1713; --surface:#211C17; --surface-2:#282119;
    --ink:#F6EFE6; --ink-2:#C7B9A9; --ink-3:#9C8C7B;
    --line:#39301F; --brand:#4FBFAC; --brand-ink:#8FE0D0; --brand-soft:#14312D;
    --accent:#F4885F; --accent-soft:#3A2016;
    --sh-1:0 1px 2px rgba(0,0,0,.4), 0 4px 14px rgba(0,0,0,.3);
    --sh-2:0 10px 34px rgba(0,0,0,.45);
    --sh-3:0 22px 60px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"]{
  --bg:#15120F; --bg-tint:#1B1713; --surface:#211C17; --surface-2:#282119;
  --ink:#F6EFE6; --ink-2:#C7B9A9; --ink-3:#9C8C7B;
  --line:#39301F; --brand:#4FBFAC; --brand-ink:#8FE0D0; --brand-soft:#14312D;
  --accent:#F4885F; --accent-soft:#3A2016;
  --sh-1:0 1px 2px rgba(0,0,0,.4), 0 4px 14px rgba(0,0,0,.3);
  --sh-2:0 10px 34px rgba(0,0,0,.45);
  --sh-3:0 22px 60px rgba(0,0,0,.6);
}

/* ============ Base ============ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:86px;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--f-body);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
h1,h2,h3{font-family:var(--f-head);line-height:1.12;letter-spacing:-.02em;margin:0 0 .5em;font-weight:600}
h1{font-size:clamp(2.3rem,6vw,4rem)}
h2{font-size:clamp(1.85rem,4vw,2.9rem)}
h3{font-size:1.28rem;letter-spacing:-.01em}
p{margin:0 0 1em}
a{color:var(--brand-ink);text-decoration-color:color-mix(in srgb,var(--brand) 40%,transparent);text-underline-offset:3px}
em{font-style:italic;color:var(--accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.sr,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;top:12px;left:12px;width:auto;height:auto;clip:auto;background:var(--brand);color:#fff;padding:12px 18px;border-radius:10px;z-index:200}

.wrap{width:min(100% - 40px,var(--max));margin-inline:auto}
.wrap--narrow{width:min(100% - 40px,800px)}
.sec{padding:clamp(64px,9vw,120px) 0}
.sec--tint{background:var(--bg-tint)}
.center{text-align:center}

.eyebrow{
  font-size:.79rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brand-ink);margin:0 0 .85em;display:flex;align-items:center;gap:.5em;
}
.sechead{max-width:660px;margin-bottom:clamp(36px,5vw,58px)}
.sechead .eyebrow{justify-content:flex-start}
.sub{color:var(--ink-2);font-size:1.08rem;margin:0}
.fineprint{font-size:.88rem;color:var(--ink-3);margin:0}
.fineprint.center{margin-top:22px}

/* ============ Buttons ============ */
.btn{
  --bg-b:var(--brand);--fg-b:#fff;
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  background:var(--bg-b);color:var(--fg-b);
  font-family:var(--f-body);font-weight:700;font-size:.97rem;
  padding:13px 22px;border:0;border-radius:100px;cursor:pointer;
  text-decoration:none;box-shadow:var(--sh-1);
  transition:transform .18s cubic-bezier(.2,.8,.3,1), box-shadow .18s, filter .18s;
}
.btn:hover{transform:translateY(-2px);box-shadow:var(--sh-2);filter:brightness(1.05)}
.btn:active{transform:translateY(0)}
.btn--lg{padding:16px 30px;font-size:1.04rem}
.btn--block{width:100%}
.btn--wa{--bg-b:var(--wa);--fg-b:#08301A}
.btn--ghost{--bg-b:transparent;--fg-b:var(--ink);border:2px solid var(--line);box-shadow:none}
.btn--ghost:hover{border-color:var(--brand);color:var(--brand-ink)}
.wa{width:1.25em;height:1.25em;fill:currentColor;flex:none}

/* ============ Nav ============ */
.nav{
  position:sticky;top:0;z-index:100;
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .25s, box-shadow .25s;
}
.nav.is-stuck{border-bottom-color:var(--line);box-shadow:0 4px 20px rgba(60,40,20,.05)}
.nav__in{display:flex;align-items:center;gap:20px;min-height:74px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--f-head);font-weight:700;line-height:1.02;font-size:1.02rem;flex:none}
.brand__paw{font-size:1.5rem;transform:rotate(-12deg)}
.brand em{color:var(--brand-ink);font-style:normal}
.nav__links{display:flex;gap:4px;margin-left:auto}
.nav__links a{
  padding:9px 13px;border-radius:100px;font-size:.93rem;font-weight:600;
  color:var(--ink-2);text-decoration:none;transition:background .18s,color .18s;
}
.nav__links a:hover,.nav__links a.is-active{background:var(--brand-soft);color:var(--brand-ink)}
.nav__right{display:flex;align-items:center;gap:10px;margin-left:auto}
.nav__links+.nav__right{margin-left:0}
.iconbtn{
  width:42px;height:42px;display:grid;place-items:center;border-radius:50%;
  background:var(--surface-2);border:1px solid var(--line);cursor:pointer;color:var(--ink-2);
}
.iconbtn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.iconbtn .moon{display:none;fill:currentColor;stroke:none}
:root[data-theme="dark"] .iconbtn .sun{display:none}
:root[data-theme="dark"] .iconbtn .moon{display:block}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .iconbtn .sun{display:none}
  :root:not([data-theme="light"]) .iconbtn .moon{display:block}
}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line);background:var(--surface-2);border-radius:12px;cursor:pointer;padding:0;flex-direction:column;gap:5px;align-items:center;justify-content:center}
.burger span{width:19px;height:2px;background:var(--ink);border-radius:2px;transition:.25s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media (max-width:980px){
  .nav__cta{display:none}
  .burger{display:flex}
  .nav__links{
    position:fixed;inset:74px 0 auto;flex-direction:column;gap:2px;padding:14px 20px 26px;
    background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--sh-2);
    transform:translateY(-130%);transition:transform .32s cubic-bezier(.3,.9,.3,1);
  }
  .nav__links.is-open{transform:translateY(0)}
  .nav__links a{padding:13px 14px;font-size:1.05rem}
}

/* ============ Hero ============ */
.hero{position:relative;padding:clamp(40px,6vw,76px) 0 clamp(60px,8vw,104px);overflow:hidden}
.hero__blob{
  position:absolute;top:-28%;right:-18%;width:min(72vw,880px);aspect-ratio:1;z-index:0;
  background:radial-gradient(circle at 35% 35%, color-mix(in srgb,var(--brand) 22%,transparent), transparent 62%),
             radial-gradient(circle at 70% 70%, color-mix(in srgb,var(--accent) 18%,transparent), transparent 60%);
  filter:blur(32px);border-radius:50%;
}
.hero__in{position:relative;z-index:1;display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(30px,5vw,68px);align-items:center}
.hero__copy .eyebrow{justify-content:flex-start}
.lede{font-size:1.14rem;color:var(--ink-2);max-width:53ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 26px}
.hero__chips{list-style:none;display:flex;flex-wrap:wrap;gap:9px;padding:0;margin:0}
.hero__chips li{
  display:inline-flex;align-items:center;gap:7px;font-size:.87rem;font-weight:600;color:var(--ink-2);
  background:var(--surface);border:1px solid var(--line);padding:8px 15px;border-radius:100px;
}
.hero__art{position:relative}
.hero__photo{margin:0;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-3);transform:rotate(1.6deg);border:8px solid var(--surface)}
.hero__photo img{aspect-ratio:4/5;object-fit:cover;width:100%}
.hero__badge{
  position:absolute;left:-14px;bottom:26px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);padding:12px 18px;box-shadow:var(--sh-2);transform:rotate(-2.5deg);
}
.hero__badge strong{display:block;font-size:1.3rem;letter-spacing:.06em}
.hero__badge span{font-size:.79rem;font-weight:600;color:var(--ink-3)}
@media (max-width:900px){
  .hero__in{grid-template-columns:1fr;gap:38px}
  .hero__art{order:-1;max-width:430px;margin-inline:auto;width:100%}
  .hero__photo{transform:none}
}

/* ============ Trust strip ============ */
.strip{background:var(--brand);color:#fff;padding:26px 0}
:root[data-theme="dark"] .strip,
:root:not([data-theme="light"]) .strip{color:#06221E}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]) .strip{color:#fff}}
.strip__in{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.strip__item{display:flex;gap:12px;align-items:flex-start}
.strip__ico{font-size:1.4rem;line-height:1.2;flex:none}
.strip__item strong{font-size:.97rem;display:block}
.strip__item p{margin:2px 0 0;font-size:.85rem;opacity:.86;line-height:1.45}
@media (max-width:860px){.strip__in{grid-template-columns:1fr 1fr;gap:18px}}
@media (max-width:520px){.strip__in{grid-template-columns:1fr}}

/* ============ Cards ============ */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;box-shadow:var(--sh-1);display:flex;flex-direction:column;
  transition:transform .25s cubic-bezier(.2,.8,.3,1), box-shadow .25s;
}
.card:hover{transform:translateY(-5px);box-shadow:var(--sh-2)}
.card__img{overflow:hidden;background:var(--surface-2)}
.card__img img{aspect-ratio:16/10;object-fit:cover;width:100%;transition:transform .5s cubic-bezier(.2,.8,.3,1)}
.card:hover .card__img img{transform:scale(1.05)}
.card__body{padding:26px;display:flex;flex-direction:column;flex:1}
.card__body h3{display:flex;align-items:center;gap:.5em;margin-bottom:.4em}
.card__body>p{color:var(--ink-2);font-size:.97rem}
.ticks{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:8px}
.ticks li{position:relative;padding-left:26px;font-size:.93rem;color:var(--ink-2)}
.ticks li::before{
  content:"";position:absolute;left:0;top:.42em;width:15px;height:15px;border-radius:50%;
  background:var(--brand-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F6F63' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/10px no-repeat;
}
.ticks--price li{color:var(--ink)}
.ticks b{color:var(--brand-ink);white-space:nowrap}
.card__price{margin-top:auto;display:flex;flex-wrap:wrap;gap:10px;padding-top:16px;border-top:1px dashed var(--line)}
.card__price span{background:var(--surface-2);border:1px solid var(--line);border-radius:100px;padding:7px 15px;font-size:.88rem;color:var(--ink-2);font-weight:600}
.card__price b{font-family:var(--f-head);font-size:1.16rem;color:var(--ink)}
.card--accent{background:linear-gradient(155deg,var(--accent-soft),var(--surface) 70%);border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.card--accent .btn{margin-top:auto;align-self:flex-start}

/* ============ Calculator ============ */
.calc{display:grid;grid-template-columns:1.25fr .75fr;gap:26px;align-items:start}
.calc__form{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(20px,3vw,32px);box-shadow:var(--sh-1);display:grid;gap:26px;
}
.field{border:0;padding:0;margin:0;min-width:0}
.field legend,.field .lg{
  font-family:var(--f-head);font-size:1.03rem;font-weight:600;color:var(--ink);
  padding:0;margin-bottom:12px;display:block;
}
.field[hidden]{display:none}
.field .lg i{font-style:normal;color:var(--ink-3);font-weight:400;font-size:.88rem}
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip input{position:absolute;opacity:0;width:0;height:0}
.chip span{
  display:inline-flex;align-items:center;gap:.5em;cursor:pointer;
  border:1.5px solid var(--line);background:var(--surface-2);color:var(--ink-2);
  padding:10px 17px;border-radius:100px;font-size:.92rem;font-weight:600;
  transition:.18s;user-select:none;
}
.chip span b{font-weight:400;font-size:1.05em}
.chip span:hover{border-color:var(--brand)}
.chip input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:var(--sh-1)}
.chip input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}
:root[data-theme="dark"] .chip input:checked+span{color:#06221E}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chip input:checked+span{color:#06221E}}

.stepper{display:inline-flex;align-items:center;gap:0;border:1.5px solid var(--line);border-radius:100px;background:var(--surface-2);overflow:hidden}
.step{width:46px;height:46px;border:0;background:transparent;font-size:1.4rem;color:var(--brand-ink);cursor:pointer;font-weight:700;line-height:1}
.step:hover{background:var(--brand-soft)}
.stepper input{
  width:62px;height:46px;border:0;background:transparent;text-align:center;
  font-family:var(--f-head);font-size:1.22rem;font-weight:700;color:var(--ink);
  -moz-appearance:textfield;
}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.hint{margin:9px 0 0;font-size:.85rem;color:var(--ink-3)}

.switch{display:flex;align-items:center;gap:13px;cursor:pointer;padding:9px 0}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch__ui{width:48px;height:28px;border-radius:100px;background:var(--line);position:relative;flex:none;transition:.22s}
.switch__ui::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.3);transition:.22s}
.switch input:checked+.switch__ui{background:var(--brand)}
.switch input:checked+.switch__ui::after{transform:translateX(20px)}
.switch input:focus-visible+.switch__ui{outline:3px solid var(--accent);outline-offset:2px}
.switch__lbl{font-size:.94rem;color:var(--ink-2)}
.switch__lbl b{color:var(--ink);font-weight:600}
.field--text input[type=text]{
  width:100%;padding:13px 17px;border:1.5px solid var(--line);border-radius:var(--r);
  background:var(--surface-2);color:var(--ink);font:inherit;font-size:.97rem;
}
.field--text input::placeholder{color:var(--ink-3)}
.field--text input:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}

.calc__out{position:relative}
.calc__sticky{
  position:sticky;top:92px;background:linear-gradient(165deg,var(--brand-soft),var(--surface) 62%);
  border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));
  border-radius:var(--r-lg);padding:clamp(22px,3vw,30px);box-shadow:var(--sh-2);
}
.calc__label{font-size:.78rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--brand-ink);margin:0}
.calc__total{font-family:var(--f-head);font-size:clamp(2.5rem,5vw,3.3rem);font-weight:700;line-height:1.05;margin:.08em 0 .1em;letter-spacing:-.03em}
.calc__per{font-size:.94rem;color:var(--ink-2);margin:0 0 18px;font-weight:600}
.calc__lines{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:9px;border-top:1px dashed color-mix(in srgb,var(--brand) 35%,var(--line));padding-top:16px}
.calc__lines li{display:flex;justify-content:space-between;gap:14px;font-size:.9rem;color:var(--ink-2)}
.calc__lines li b{color:var(--ink);font-weight:600;white-space:nowrap}
.calc__lines li.is-note{color:var(--accent);font-weight:600}
.calc__note{font-size:.79rem;color:var(--ink-3);margin:14px 0 0;line-height:1.5}
@media (max-width:900px){
  .calc{grid-template-columns:1fr}
  .calc__sticky{position:static}
}

/* ============ Pricing table ============ */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--sh-1)}
.ptable{width:100%;border-collapse:collapse;min-width:520px}
.ptable thead th{
  text-align:left;font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3);font-weight:700;padding:16px 22px;border-bottom:1px solid var(--line);background:var(--surface-2);
}
.ptable th[scope=row]{
  text-align:left;font-family:var(--f-head);font-size:1.02rem;font-weight:600;
  padding:15px 22px;vertical-align:top;white-space:nowrap;
}
.ptable td{padding:15px 22px;font-size:.95rem;color:var(--ink-2);border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.ptable td:last-child{text-align:right;white-space:nowrap;color:var(--ink)}
.ptable td b{font-family:var(--f-head);font-size:1.1rem}
.ptable tbody tr:hover td{background:var(--surface-2)}
.ptable__extra th[scope=row],.ptable__extra td{background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}
.ptable__extra td b{color:var(--accent)}

/* ============ About ============ */
.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,64px);align-items:center}
.about__img{margin:0;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-3);border:8px solid var(--surface);transform:rotate(-1.6deg)}
.about__img img{aspect-ratio:3/4;object-fit:cover;width:100%}
.about__copy .eyebrow{justify-content:flex-start}
.about__copy>p{color:var(--ink-2)}
.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:28px 0 24px}
.about__grid b{display:block;font-size:.97rem;margin-bottom:3px;color:var(--ink)}
.about__grid p{margin:0;font-size:.88rem;color:var(--ink-3);line-height:1.5}
.disclaimer{
  font-size:.85rem;color:var(--ink-3);background:var(--surface);border:1px solid var(--line);
  border-left:4px solid var(--accent);border-radius:var(--r-sm);padding:14px 18px;margin:0;line-height:1.55;
}
.disclaimer b{color:var(--ink-2)}
@media (max-width:860px){
  .about{grid-template-columns:1fr}
  .about__img{max-width:400px;transform:none}
  .about__grid{grid-template-columns:1fr}
}

/* ============ Gallery ============ */
.gal{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;
  width:min(100% - 40px,1400px);margin-inline:auto;
}
.gal__i{
  border:0;padding:0;background:var(--surface-2);cursor:zoom-in;overflow:hidden;
  border-radius:var(--r);position:relative;aspect-ratio:1;
}
.gal__i img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.2,.8,.3,1),filter .3s}
.gal__i:hover img{transform:scale(1.07)}
.gal__i::after{
  content:"";position:absolute;inset:0;border-radius:var(--r);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);pointer-events:none;
}
.gal__i:nth-child(7n+1){grid-column:span 2;grid-row:span 2;aspect-ratio:1}
@media (max-width:640px){.gal__i:nth-child(7n+1){grid-column:span 2;grid-row:auto}}

/* ============ Lightbox ============ */
.lb{position:fixed;inset:0;z-index:300;background:rgba(18,12,6,.92);backdrop-filter:blur(6px);display:grid;place-items:center;padding:24px}
.lb[hidden]{display:none}
.lb__fig{margin:0;max-width:min(94vw,1000px);max-height:88vh;display:flex;flex-direction:column;gap:12px;align-items:center}
.lb__fig img{max-height:80vh;width:auto;border-radius:var(--r);box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lb__fig figcaption{color:#F3E9DC;font-size:.92rem;font-weight:600;text-align:center}
.lb__x,.lb__nav{
  position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;cursor:pointer;
  width:52px;height:52px;border-radius:50%;font-size:1.5rem;line-height:1;display:grid;place-items:center;
  backdrop-filter:blur(6px);transition:background .2s;
}
.lb__x:hover,.lb__nav:hover{background:rgba(255,255,255,.26)}
.lb__x{top:20px;right:20px;font-size:1.15rem}
.lb__nav--p{left:16px;top:50%;transform:translateY(-50%);font-size:2.2rem}
.lb__nav--n{right:16px;top:50%;transform:translateY(-50%);font-size:2.2rem}
@media (max-width:600px){
  .lb__nav--p{left:8px} .lb__nav--n{right:8px}
  .lb__nav{width:44px;height:44px}
}

/* ============ FAQ ============ */
.faq{display:grid;gap:10px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:box-shadow .2s}
.faq details[open]{box-shadow:var(--sh-1)}
.faq summary{
  cursor:pointer;list-style:none;padding:19px 56px 19px 22px;position:relative;
  font-family:var(--f-head);font-size:1.04rem;font-weight:600;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);
  width:28px;height:28px;display:grid;place-items:center;border-radius:50%;
  background:var(--brand-soft);color:var(--brand-ink);font-size:1.15rem;font-weight:700;transition:.25s;
}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq summary:hover{color:var(--brand-ink)}
.faq details>div{padding:0 22px 20px;color:var(--ink-2);font-size:.96rem}
.faq details>div p{margin:0}

/* ============ CTA + Footer ============ */
.cta{background:
  radial-gradient(ellipse at 20% 0%, color-mix(in srgb,var(--brand) 16%,transparent), transparent 55%),
  radial-gradient(ellipse at 85% 100%, color-mix(in srgb,var(--accent) 14%,transparent), transparent 55%),
  var(--bg);
  text-align:center;
}
.cta__in{position:relative}
.cta__paw{font-size:2.6rem;display:block;margin-bottom:10px;transform:rotate(-10deg)}
.cta h2{margin-bottom:.3em}
.cta__in>p{color:var(--ink-2);font-size:1.08rem;max-width:52ch;margin-inline:auto}
.cta__btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:30px 0 22px}
.cta__sub{font-size:.9rem;color:var(--ink-3);font-weight:600;margin:0}

.foot{background:var(--bg-tint);border-top:1px solid var(--line);padding:46px 0 34px}
.foot__in{display:grid;gap:22px}
.foot__brand{font-family:var(--f-head);font-weight:700;font-size:1.1rem;margin:0 0 4px}
.foot__in>div p{margin:0;color:var(--ink-2);font-size:.94rem}
.foot__nav{display:flex;flex-wrap:wrap;gap:6px 20px}
.foot__nav a{font-size:.92rem;font-weight:600;color:var(--ink-2);text-decoration:none}
.foot__nav a:hover{color:var(--brand-ink);text-decoration:underline}
.foot__legal{font-size:.8rem;color:var(--ink-3);border-top:1px solid var(--line);padding-top:18px;margin:0;line-height:1.6}
.foot__legal span{display:block;margin-top:6px}

/* ============ FAB ============ */
.fab{
  position:fixed;right:18px;bottom:18px;z-index:90;display:inline-flex;align-items:center;gap:9px;
  background:var(--wa);color:#08301A;text-decoration:none;font-weight:700;font-size:.95rem;
  padding:13px 20px;border-radius:100px;box-shadow:0 8px 28px rgba(18,161,80,.42);
  transition:transform .2s,box-shadow .2s;
}
.fab:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(18,161,80,.5)}
.fab svg{width:22px;height:22px;fill:currentColor}
@media (max-width:520px){.fab span{display:none}.fab{padding:15px;right:14px;bottom:14px}}

/* ============ Reveal ============ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,.8,.3,1),transform .7s cubic-bezier(.2,.8,.3,1)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
