/* ===== LOER UGC — design system ===== */
/* Philosophy: would Rolls-Royce do this? If not, it doesn't go on the page. */

:root{
  --ink:#141210;
  --paper:#FAF9F5;
  --paper2:#F1EFE9;
  --bg:#0A0A09;
  --bg2:#141311;
  --cream:#F2EFE7;
  --sub-l:#6B6558;
  --sub-d:#9C9686;
  --line-l:rgba(20,18,16,.14);
  --line-d:rgba(245,240,230,.16);
  --gold:#AD8A2E;
  --gold-hi:#C4A344;
  --gold-ink:#141210;
  --font: 'Jost', -apple-system, "Helvetica Neue", Arial, sans-serif;
  --ease: cubic-bezier(.4,0,.2,1);
}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }

body{
  font-family:var(--font);
  font-weight:400;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--gold);color:#fff}

.wrap{max-width:1080px;margin:0 auto;padding:0 28px}
.center{text-align:center}
.tight{max-width:660px;margin-left:auto;margin-right:auto}

h1,h2,h3{font-weight:300;letter-spacing:-.01em;line-height:1.08;text-wrap:balance}

.eyebrow{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold); font-weight:500;
}
.light .eyebrow, .paper .eyebrow{color:#8A6D1F}

.lead{color:var(--sub-d);font-size:clamp(15.5px,1.5vw,17.5px);line-height:1.75;font-weight:300}
.light .lead, .paper .lead{color:var(--sub-l)}

.small-print{
  font-size:11px; line-height:1.7; color:var(--sub-d); letter-spacing:.01em;
  max-width:64ch;
}
.light .small-print, .paper .small-print{color:var(--sub-l)}

/* ---------- buttons: square, restrained ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  border:1px solid currentColor; border-radius:0;
  padding:16px 34px; font-family:var(--font); font-size:12.5px; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase;
  cursor:pointer; background:transparent; color:inherit;
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
  white-space:nowrap;
}
.btn-fill{background:var(--gold); border-color:var(--gold); color:var(--gold-ink)}
.btn-fill:hover{background:transparent; color:var(--gold)}
.dark .btn-fill:hover, .bg .btn-fill:hover{color:var(--gold-hi)}
.btn-line{background:transparent}
.dark .btn-line, .bg .btn-line{color:var(--paper); border-color:var(--line-d)}
.dark .btn-line:hover, .bg .btn-line:hover{background:var(--paper); color:var(--ink); border-color:var(--paper)}
.light .btn-line, .paper .btn-line{color:var(--ink); border-color:var(--line-l)}
.light .btn-line:hover, .paper .btn-line:hover{background:var(--ink); color:var(--paper); border-color:var(--ink)}

/* ---------- nav ---------- */
nav{position:sticky; top:0; z-index:50; background:rgba(10,10,9,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line-d)}
.nav-in{display:flex; align-items:center; justify-content:space-between; height:82px; gap:24px}
.brand{font-size:19px; letter-spacing:.24em; font-weight:500; color:var(--paper); display:flex; align-items:baseline; gap:9px}
.brand span{font-size:10px; letter-spacing:.2em; color:var(--sub-d); font-weight:400}
.navlinks{display:flex; gap:38px; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--sub-d)}
.navlinks a{transition:color .2s}
.navlinks a:hover{color:var(--paper)}
@media (max-width:800px){ .navlinks{display:none} }
nav .btn{padding:12px 24px; font-size:11px}

/* ---------- sections ---------- */
section{position:relative}
.sec{padding:clamp(72px,9vw,120px) 0}
.dark, .bg{background:var(--bg); color:var(--paper)}
.dark .sub, .bg .sub{color:var(--sub-d)}
.light{background:var(--cream); color:var(--ink)}
.paper{background:var(--paper); color:var(--ink)}
.hr{height:1px; background:var(--line-l)}
.dark .hr, .bg .hr{background:var(--line-d)}

/* ---------- hero ---------- */
.hero{padding:clamp(48px,5vw,72px) 0 clamp(70px,8vw,96px); text-align:center}
.hero .eyebrow{display:block; margin-bottom:22px}
.hero h1{font-size:clamp(34px,5.6vw,58px); max-width:18ch; margin:0 auto; color:var(--paper)}
.hero .lead{margin:26px auto 0; max-width:52ch}
.cta-row{display:flex; gap:14px; flex-wrap:wrap; justify-content:center; align-items:center; margin-top:40px}
.hero .small-print{margin:34px auto 0; text-align:center}
.rule-mini{width:36px; height:1px; background:var(--gold); margin:0 auto 22px}

.demo-wrap{max-width:620px; margin:48px auto 0}
.demo-pair{display:grid; grid-template-columns:1fr 1fr; gap:14px; text-align:left}
.demo-card{position:relative; border:1px solid var(--line-d); overflow:hidden; background:#000}
.demo-card img{width:100%; display:block; aspect-ratio:4/5; object-fit:cover}
.demo-cap{position:absolute; left:0; bottom:0; right:0; padding:10px 12px; background:linear-gradient(0deg, rgba(10,10,9,.82), transparent); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--paper)}
.demo-note{text-align:center; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--sub-d); margin-top:16px}

/* ---------- problem list + table ---------- */
.plain-list{list-style:none; max-width:640px; margin:30px auto 0; text-align:left}
.plain-list li{display:flex; gap:14px; padding:13px 0; font-size:15px; color:var(--sub-l); border-top:1px solid var(--line-l)}
.plain-list li:first-child{border-top:0}
.plain-list li::before{content:"–"; color:var(--gold); flex:none}

.rr-table{max-width:640px; margin:44px auto 0; border-top:1px solid var(--line-l)}
.rr-table .cap{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--sub-l); padding:16px 0 12px}
.rr-row{display:flex; justify-content:space-between; align-items:baseline; padding:17px 0; border-bottom:1px solid var(--line-l); font-size:15px}
.rr-row .k{color:var(--ink)}
.rr-row .v{font-variant-numeric:tabular-nums; letter-spacing:.02em; color:var(--sub-l)}

/* ---------- statement ---------- */
.statement{text-align:center}
.statement h2{font-size:clamp(26px,4vw,40px); font-weight:300; max-width:20ch; margin:0 auto}
.statement .lead{margin-top:22px}

/* ---------- vs / before-after ---------- */
.vs{display:grid; grid-template-columns:1fr 1fr; gap:1px; max-width:800px; margin:40px auto 0; background:var(--line-d); border:1px solid var(--line-d)}
@media (max-width:640px){ .vs{grid-template-columns:1fr} }
.vs .col{background:var(--bg); padding:32px 30px; text-align:left}
.vs .col .tag{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--sub-d)}
.vs .col.good .tag{color:var(--gold)}
.vs .col .price-line{font-size:19px; font-weight:300; margin-top:10px; color:var(--paper)}
.vs .col ul{list-style:none; margin-top:24px}
.vs .col li{padding:11px 0; border-top:1px solid var(--line-d); font-size:14px; color:var(--sub-d); display:flex; gap:10px}
.vs .col li:first-child{border-top:0}
.vs .col.bad li::before{content:"–"; color:var(--sub-d)}
.vs .col.good li::before{content:"–"; color:var(--gold)}

/* ---------- how it works / steps ---------- */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; max-width:900px; margin:44px auto 0; background:var(--line-l); border:1px solid var(--line-l)}
@media (max-width:800px){ .steps{grid-template-columns:1fr} }
.step{background:var(--cream); padding:34px 28px; text-align:left}
.step .no{font-size:11px; letter-spacing:.16em; color:var(--sub-l)}
.step h3{font-size:19px; font-weight:400; margin-top:16px; letter-spacing:0}
.step p{font-size:14px; color:var(--sub-l); margin-top:10px; line-height:1.65}

/* ---------- stats ---------- */
.stat-row{display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-d); border-bottom:1px solid var(--line-d); max-width:900px; margin:44px auto 0}
@media (max-width:700px){ .stat-row{grid-template-columns:repeat(2,1fr)} }
.stat{padding:28px 20px; text-align:left; border-left:1px solid var(--line-d)}
.stat:first-child{border-left:0}
@media (max-width:700px){ .stat:nth-child(odd){border-left:0} }
.stat b{font-size:clamp(30px,3.6vw,40px); font-weight:300; display:block; color:var(--paper)}
.stat span{font-size:12px; color:var(--sub-d); display:block; margin-top:8px; letter-spacing:.02em}

.benefit-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px 40px; max-width:820px; margin:56px auto 0; text-align:left}
@media (max-width:680px){ .benefit-grid{grid-template-columns:1fr} }
.benefit{border-top:1px solid var(--line-d); padding-top:18px; padding-bottom:6px}
.benefit h4{font-size:16px; font-weight:400; margin-bottom:8px}
.benefit p{font-size:13.5px; color:var(--sub-d); line-height:1.7}

/* ---------- gallery placeholder ---------- */
.gal-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:44px}
@media (max-width:800px){ .gal-grid{grid-template-columns:repeat(2,1fr)} }
.gal-frame{
  aspect-ratio:3/4; border:1px solid var(--line-l); display:flex; align-items:center; justify-content:center;
  position:relative; background:
    linear-gradient(135deg, transparent calc(50% - 1px), var(--line-l) 50%, transparent calc(50% + 1px));
}
.gal-frame span{font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--sub-l); background:var(--cream); padding:6px 10px}
.gal-note{max-width:560px; margin:34px auto 0; font-size:13.5px; color:var(--sub-l); line-height:1.7; text-align:center}

.gal-photo{aspect-ratio:3/4; border:1px solid var(--line-l); overflow:hidden; position:relative; background:#000}
.gal-photo img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease)}
.gal-photo:hover img{transform:scale(1.04)}
.gal-photo .cap{position:absolute; left:0; bottom:0; right:0; padding:10px 12px; background:linear-gradient(0deg, rgba(10,10,9,.78), transparent); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--paper)}

/* ---------- offer / pricing ---------- */
.sample-box{max-width:720px; margin:44px auto 0; border:1px solid var(--line-l); padding:clamp(28px,4vw,42px); text-align:center}
.sample-box .eyebrow{display:block; margin-bottom:14px}
.sample-box h3{font-size:24px; font-weight:300}
.sample-box p{margin-top:14px; color:var(--sub-l); font-size:14.5px; line-height:1.7; max-width:52ch; margin-left:auto; margin-right:auto}
.sample-box .btn{margin-top:26px}

.plans{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; max-width:960px; margin:52px auto 0; background:var(--line-l); border:1px solid var(--line-l)}
@media (max-width:880px){ .plans{grid-template-columns:1fr; max-width:460px} }
.plan{background:var(--cream); padding:32px 28px; text-align:left; display:flex; flex-direction:column}
.plan.rec{background:var(--ink); color:var(--paper)}
.plan-rec-label{font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:10px}
.plan-name{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--sub-l)}
.plan.rec .plan-name{color:var(--sub-d)}
.plan-for{font-size:13px; color:var(--sub-l); margin-top:10px; line-height:1.6}
.plan.rec .plan-for{color:var(--sub-d)}
.plan .amt{font-size:32px; font-weight:300; margin:18px 0 2px}
.plan .per{font-size:11.5px; color:var(--sub-l); letter-spacing:.04em}
.plan.rec .per{color:var(--sub-d)}
.plan-list{list-style:none; margin:22px 0 0; display:flex; flex-direction:column; gap:11px; flex:1}
.plan-list li{font-size:13px; color:var(--sub-l); padding-top:11px; border-top:1px solid var(--line-l)}
.plan.rec .plan-list li{color:var(--sub-d); border-top:1px solid var(--line-d)}
.plan-list li:first-child{border-top:0; padding-top:0}
.plan .btn{margin-top:26px; width:100%}
.guarantee-row{display:flex; flex-wrap:wrap; justify-content:center; gap:1px; max-width:720px; margin:40px auto 0; background:var(--line-l); border:1px solid var(--line-l)}
.guarantee-row span{flex:1; min-width:200px; text-align:center; padding:16px; font-size:12px; letter-spacing:.06em; color:var(--sub-l); background:var(--paper)}

/* ---------- faq ---------- */
.faq{max-width:720px; margin:44px auto 0; border-top:1px solid var(--line-l)}
details{border-bottom:1px solid var(--line-l)}
summary{list-style:none; cursor:pointer; padding:24px 0; font-size:16px; font-weight:400; display:flex; justify-content:space-between; gap:20px; align-items:center}
summary::-webkit-details-marker{display:none}
summary .pl{font-size:18px; color:var(--gold); font-weight:300; transition:transform .25s var(--ease); flex:none}
details[open] summary .pl{transform:rotate(45deg)}
details .a{color:var(--sub-l); font-size:14.5px; padding:0 0 26px; max-width:62ch; line-height:1.75}

/* ---------- final ---------- */
.final{text-align:center}
.final h2{color:var(--paper); font-size:clamp(28px,4.6vw,44px); max-width:16ch; margin:0 auto}
.final .lead{margin:22px auto 0}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line-d); padding:60px 0 40px; background:var(--bg); color:var(--paper)}
.foot-top{display:flex; justify-content:space-between; align-items:flex-start; gap:32px; flex-wrap:wrap}
.foot-brand{font-size:20px; letter-spacing:.2em}
.foot-tag{font-size:11.5px; color:var(--sub-d); margin-top:10px; max-width:34ch; line-height:1.6}
.foot-links{display:flex; gap:28px; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--sub-d)}
.foot-links a:hover{color:var(--paper)}
.foot-legal{display:flex; gap:24px; font-size:11px; color:var(--sub-d); margin-top:14px}
.foot-legal a:hover{color:var(--paper)}
.foot-bottom{margin-top:44px; padding-top:24px; border-top:1px solid var(--line-d); display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px}
.foot-bottom span{font-size:11px; color:var(--sub-d)}

/* ---------- legal pages ---------- */
.legal{padding:clamp(120px,14vw,160px) 0 clamp(70px,8vw,100px)}
.legal h1{font-size:clamp(28px,4vw,40px); color:var(--paper)}
.legal .updated{font-size:12px; color:var(--sub-d); margin-top:14px; letter-spacing:.04em}
.legal-body{max-width:720px; margin:50px auto 0}
.legal-body h2{font-size:18px; font-weight:500; margin:38px 0 14px; letter-spacing:0}
.legal-body h2:first-child{margin-top:0}
.legal-body p, .legal-body li{font-size:14.5px; color:var(--sub-l); line-height:1.8}
.legal-body ul{margin-left:20px; margin-top:10px}
.legal-body li{margin-bottom:6px}
.legal-body a{color:var(--ink); text-decoration:underline}

/* ---------- cookie banner ---------- */
#cookie-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:200;
  background:var(--bg); color:var(--paper); border-top:1px solid var(--line-d);
  padding:20px 28px; display:none; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
#cookie-bar.show{display:flex}
#cookie-bar p{font-size:12.5px; color:var(--sub-d); max-width:64ch; line-height:1.6}
#cookie-bar a{text-decoration:underline; color:var(--paper)}
#cookie-bar .row{display:flex; gap:12px; flex:none}
#cookie-bar .btn{padding:12px 22px; font-size:11px}

/* ---------- reveal ---------- */
.js .rise{opacity:0; transition:opacity .8s var(--ease)}
.js .rise.in{opacity:1}
@media (prefers-reduced-motion: reduce){ .js .rise{opacity:1; transition:none} }

/* ---------- custom cursor (fine pointers only) ---------- */
.has-cursor, .has-cursor a, .has-cursor button, .has-cursor summary{cursor:none}
#cursor-dot{
  position:fixed; top:0; left:0; width:13px; height:13px; border-radius:50%;
  background:var(--gold); pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%); mix-blend-mode:difference;
  transition:width .2s var(--ease), height .2s var(--ease);
}
#cursor-dot.hover{width:42px; height:42px; background:transparent; border:1.5px solid var(--gold)}
