/* ============ TOKENS ============ */
:root{
  --bg:#ffffff;
  --bg-soft:#f7f6f3;
  --ink:#1a1a1a;
  --ink-2:#3a3a3a;
  --muted:#6b6b6b;
  --line:#e6e4de;
  --sand:#c7c2b6;
  --sage:#6b7a6e;
  --sage-dark:#4f5e52;
  /* Forest-Green Brand seit 2026-04-26 — siehe Brand-Kit.md */
  --forest:#2F5945;
  --forest-deep:#1F4030;
  --forest-light:#5C8068;
  --forest-tint:#E8EFEA;
  --gold:#B58946;
  --gold-deep:#8E6A35;
  --accent:var(--forest);
  --accent-light:var(--forest-tint);
  --accent-hover:var(--forest-deep);
  --wa:#25D366;
  --radius:2px;
  --shadow:0 30px 80px -40px rgba(20,20,20,.25);
  --max:1240px;
  --pad:clamp(20px,4vw,48px);
  --section-y:clamp(72px,10vw,140px);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Outfit',-apple-system,system-ui,sans-serif;
  font-weight:300;
  color:var(--ink);
  background:var(--bg);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01","ss02";
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.section{padding:var(--section-y) 0}

/* Headings */
h1,h2,h3{font-weight:300;letter-spacing:-.02em;line-height:1.08;color:var(--ink)}
h1{font-size:clamp(2.4rem,6vw,5.4rem)}
h1 em{font-style:italic;font-weight:200;color:var(--sage-dark)}
h2{font-size:clamp(2rem,4.4vw,3.6rem)}
h3{font-size:1.25rem;font-weight:400;letter-spacing:-.01em}
p{color:var(--ink-2);font-size:1.05rem}
.lede{font-size:clamp(1.1rem,1.6vw,1.3rem);max-width:56ch;color:var(--ink-2);font-weight:300}
.muted{color:var(--muted);font-size:.92rem}

.eyebrow{
  display:inline-block;
  text-transform:uppercase;
  font-size:.72rem;letter-spacing:.22em;
  color:var(--sage-dark);font-weight:500;
  margin-bottom:1.4rem;
}
.eyebrow.light{color:rgba(255,255,255,.7)}
.section-head{max-width:780px;margin-bottom:clamp(40px,5vw,72px)}
.section-head h2{margin-bottom:1rem}
.section-lede{font-size:1.15rem;color:var(--muted);max-width:60ch}
.section-lede.light{color:rgba(255,255,255,.7)}
.section-cta{margin-top:48px;display:flex;flex-wrap:wrap;gap:14px;justify-content:center}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 24px;
  font:inherit;font-weight:500;font-size:.92rem;
  letter-spacing:.02em;
  border:1px solid var(--ink);
  border-radius:var(--radius);
  cursor:pointer;
  transition:all .25s ease;
  white-space:nowrap;
}
.btn-lg{padding:18px 32px;font-size:1rem}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-wa{color:var(--ink)}
.btn-wa svg{color:var(--wa)}

.link-arrow{
  display:inline-block;margin-top:1.6rem;
  font-weight:500;border-bottom:1px solid var(--accent);
  padding-bottom:2px;font-size:.95rem;
  color:var(--accent);
  transition:opacity .2s;
}
.link-arrow.light{color:#fff;border-color:rgba(255,255,255,.5)}
.link-arrow:hover{opacity:.7}

/* ============ HEADER ============ */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;height:72px;
}
.brand{display:flex;flex-direction:row;align-items:center;gap:12px;line-height:1}
.brand-logo{height:48px;width:48px;display:block;flex-shrink:0}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-name{font-weight:500;letter-spacing:.18em;font-size:1.05rem}
.brand-sub{font-size:.68rem;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin-top:4px}
.nav{display:flex;gap:32px;font-size:.93rem;color:var(--ink-2)}
.nav a{position:relative;padding:4px 0}
.nav a:hover{color:var(--ink)}
.header-cta{display:flex;gap:10px;align-items:center}

@media (max-width:980px){
  .nav{display:none}
  .header-cta .btn-wa{display:none}
}

/* ============ HERO ============ */
.hero{
  position:relative;
  min-height:min(92vh,820px);
  display:flex;align-items:flex-end;
  color:#fff;
  overflow:hidden;
  padding-bottom:clamp(60px,8vw,120px);
  padding-top:clamp(60px,8vw,120px);
}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero--offer .hero-media img{object-position:right center}
@media (max-width:640px){
  .hero--offer .hero-media img{object-position:center 30%}
}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.65) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,.1) 70%),
    linear-gradient(180deg,rgba(0,0,0,.2) 0%,rgba(0,0,0,.3) 60%,rgba(0,0,0,.6) 100%);
}
.hero-content{position:relative;z-index:1;width:100%}
.hero-content .eyebrow{color:rgba(255,255,255,.88)}
.hero h1{
  color:#fff;max-width:16ch;
  font-size:clamp(1.9rem,3.8vw,3.4rem);
  text-shadow:0 2px 24px rgba(0,0,0,.35);
}
.hero h1 em{color:var(--gold)}
.hero .lede{
  color:rgba(255,255,255,.92);margin-top:1.2rem;
  font-size:clamp(1rem,1.3vw,1.15rem);
  text-shadow:0 1px 14px rgba(0,0,0,.35);
  max-width:52ch;
}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:2.4rem}
.hero-cta .btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.hero-cta .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.hero-cta .btn-outline{color:#fff;border-color:rgba(255,255,255,.6)}
.hero-cta .btn-outline:hover{background:#fff;color:var(--ink);border-color:#fff}
.hero-meta{
  display:flex;flex-wrap:wrap;gap:14px;
  margin-top:2rem;font-size:.85rem;letter-spacing:.06em;
  color:rgba(255,255,255,.75);text-transform:uppercase;
}

/* ============ PILLARS ============ */
.pillars{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(32px,5vw,80px)}
.pillar{position:relative}
.pill-num{
  display:block;font-size:.78rem;letter-spacing:.2em;
  color:var(--accent);margin-bottom:1.2rem;font-weight:500;
}
.pillar h3{margin-bottom:.8rem}
.pillar p{color:var(--muted)}
@media (max-width:760px){.pillar-grid{grid-template-columns:1fr;gap:48px}}

/* ============ ABOUT ============ */
.about-grid{
  display:grid;grid-template-columns:1.05fr 1fr;
  gap:clamp(40px,6vw,100px);align-items:center;
}
.about-image{position:relative}
.about-image img{
  width:100%;aspect-ratio:4/5;object-fit:cover;
  border-radius:var(--radius);box-shadow:var(--shadow);
}
.about-text h2{margin-bottom:1.4rem}
.about-text p{margin-bottom:1.1rem;font-size:1.08rem}
@media (max-width:860px){
  .about-grid{grid-template-columns:1fr}
  .about-image{max-width:480px;margin:0 auto}
}

/* ============ TREATMENTS ============ */
.treatments{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.treat-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--line);
  border:1px solid var(--line);
}
.treat{
  background:#fff;padding:36px 32px;
  display:flex;flex-direction:column;gap:14px;
  transition:background .25s;
}
.treat:hover{background:#fafaf7}
.treat header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.treat h3{font-size:1.18rem}
.duration{font-size:.78rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.treat p{font-size:.96rem;color:var(--muted);flex:1}
.price{padding-top:14px;border-top:1px solid var(--line);font-size:.92rem;color:var(--muted)}
.price strong{font-size:1.4rem;color:var(--ink);font-weight:400;margin-left:4px}
@media (max-width:980px){.treat-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.treat-grid{grid-template-columns:1fr}}

/* ============ GALLERY ============ */
.gallery{
  display:grid;
  grid-template-columns:2fr 1fr;
  grid-template-rows:repeat(2,220px);
  gap:14px;
}
.gallery figure{margin:0;overflow:hidden;border-radius:var(--radius)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.gallery figure:hover img{transform:scale(1.05)}
.g-1{grid-row:span 2}
@media (max-width:760px){
  .gallery{grid-template-columns:1fr;grid-template-rows:auto;gap:12px}
  .g-1{grid-row:auto;aspect-ratio:16/10}
  .g-2,.g-3{aspect-ratio:4/3}
}

/* ============ FLOW ============ */
.flow{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.flow-steps{
  list-style:none;display:grid;
  grid-template-columns:repeat(3,1fr);gap:48px;
}
.flow-steps li{padding-top:32px;border-top:1px solid var(--ink)}
.step-num{display:block;font-size:.78rem;letter-spacing:.2em;color:var(--accent);font-weight:500;margin-bottom:1rem}
.flow-steps h3{margin-bottom:.6rem}
.flow-steps p{color:var(--muted);font-size:.98rem}
@media (max-width:760px){.flow-steps{grid-template-columns:1fr}}

/* ============ VOICES ============ */
.voice-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.voice{
  padding:36px 32px;
  border:1px solid var(--line);
  background:#fff;
  display:flex;flex-direction:column;gap:18px;
  border-radius:var(--radius);
}
.voice:nth-child(4),.voice:nth-child(5){grid-column:span 1}
.stars{color:var(--accent);font-size:.95rem;letter-spacing:.15em}
.voice blockquote{
  font-size:1.02rem;line-height:1.6;
  color:var(--ink-2);font-weight:300;
  flex:1;
}
.voice footer{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding-top:18px}
.voice footer img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.voice footer strong{display:block;font-weight:500;font-size:.95rem}
.voice footer span{font-size:.82rem;color:var(--muted)}
@media (max-width:980px){.voice-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.voice-grid{grid-template-columns:1fr}}

/* ============ BOOKING ============ */
.booking{background:var(--forest-deep);color:#fff}
.booking h2{color:#fff;max-width:18ch}
.booking .booking-inner{text-align:center;display:flex;flex-direction:column;align-items:center}
.booking .section-lede{margin:0 auto 56px}
.booking-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.12);
  width:100%;
}
.book-card{
  background:var(--forest-deep);padding:48px 32px;
  display:flex;flex-direction:column;gap:14px;
  text-align:left;transition:background .25s,border-color .25s;
  border:1px solid transparent;
}
.book-card:hover{background:rgba(255,255,255,.04);border-color:var(--gold)}
.book-card h3{color:#fff;font-size:1.4rem;font-weight:300}
.book-card p{color:rgba(255,255,255,.7);font-size:.96rem;flex:1}
.book-card .link-arrow{color:#fff;border-color:rgba(255,255,255,.5)}
.book-card:hover .link-arrow{color:var(--gold);border-color:var(--gold)}
@media (max-width:760px){.booking-grid{grid-template-columns:1fr}}

/* ============ VISIT ============ */
.visit-hero{
  margin-bottom:clamp(40px,6vw,80px);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  aspect-ratio:21/9;
}
.visit-hero img{
  width:100%;height:100%;object-fit:cover;
}
.visit-grid{
  display:grid;grid-template-columns:1fr 1.1fr;
  gap:clamp(40px,6vw,100px);align-items:center;
}
.visit h2{margin:1rem 0 2rem}
.hours{list-style:none;border-top:1px solid var(--line);margin-bottom:1.6rem}
.hours li{
  display:flex;justify-content:space-between;
  padding:14px 0;border-bottom:1px solid var(--line);
  font-size:.98rem;
}
.hours li span:first-child{color:var(--ink-2)}
.hours li span:last-child{color:var(--muted)}
.visit-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.map-embed{
  aspect-ratio:4/3;border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);
}
.map-embed iframe{width:100%;height:100%;border:0;filter:grayscale(.4) contrast(1.05)}
@media (max-width:860px){.visit-grid{grid-template-columns:1fr}}

/* ============ FOOTER ============ */
.site-footer{
  background:var(--bg-soft);
  border-top:1px solid var(--line);
  padding:64px 0 24px;
}
.footer-inner{
  display:grid;grid-template-columns:1fr auto auto;gap:48px;
  padding-bottom:48px;border-bottom:1px solid var(--line);
}
.footer-inner .brand{margin-bottom:1.2rem}
.footer-hours{font-size:.9rem;color:var(--ink-2);align-self:start}
.footer-heading{
  display:block;font-size:.72rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--muted);font-weight:500;
  margin-bottom:14px;
}
.footer-hours ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.footer-hours li{display:flex;justify-content:space-between;gap:24px;min-width:260px}
.footer-hours li span:last-child{color:var(--ink);font-variant-numeric:tabular-nums}
.footer-links{
  display:grid;grid-template-columns:repeat(2,auto);
  gap:14px 36px;font-size:.92rem;color:var(--ink-2);
  align-content:start;
}
.footer-links a:hover{color:var(--sage-dark)}
.footer-social{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.footer-social a{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;border:1px solid var(--line);border-radius:999px;
  font-size:.82rem;letter-spacing:.04em;color:var(--ink-2);
  text-decoration:none;transition:all .2s ease;
  background:rgba(255,255,255,.5);
}
.footer-social a:hover{color:var(--sage-dark);border-color:var(--sage-dark);background:#fff}
.footer-social svg{flex:none}
.copyright{padding-top:24px;font-size:.82rem;color:var(--muted);text-align:center}
@media (max-width:880px){
  .footer-inner{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
  .footer-inner{grid-template-columns:1fr}
  .footer-hours li{min-width:0}
  .footer-links{grid-template-columns:1fr 1fr}
}

/* ============ STICKY BAR ============ */
.sticky-bar{
  position:fixed;left:0;right:0;bottom:0;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);
  border-top:1px solid var(--line);
  padding:12px var(--pad);
  display:none;
  gap:10px;justify-content:space-between;
  z-index:60;
}
.sticky-bar .btn{flex:1;justify-content:center}
@media (max-width:760px){.sticky-bar{display:flex}body{padding-bottom:80px}}

/* ============ PRICE LIST ============ */
.price-list{display:flex;flex-direction:column;gap:0}
.price-item{
  padding:40px 0;
  border-bottom:1px solid var(--line);
}
.price-item:first-child{border-top:1px solid var(--line)}
.price-item-head{
  display:flex;justify-content:space-between;align-items:baseline;
  gap:16px;flex-wrap:wrap;margin-bottom:12px;
}
.price-item h3{font-size:1.25rem;font-weight:400}
.price-item h3 span{font-weight:300;color:var(--muted);font-size:1rem}
.price-item-desc{
  color:var(--muted);font-size:.98rem;
  max-width:65ch;margin-bottom:18px;line-height:1.6;
}
.price-row{
  display:flex;flex-wrap:wrap;gap:12px 32px;
}
.price-tag{
  font-size:.95rem;color:var(--ink-2);
}
.price-tag strong{
  font-weight:500;color:var(--accent);
}
.price-note{
  margin-top:32px;padding:24px 28px;
  background:var(--accent-light);
  border-left:3px solid var(--accent);
  font-size:.92rem;color:var(--ink-2);
  line-height:1.6;
}

/* ============ ABOUT TEAM IMAGE ============ */
.about-team{
  margin-top:2rem;
}
.about-team img{
  width:100%;border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.about-team-caption{
  margin-top:.8rem;font-size:.85rem;color:var(--muted);
  text-align:center;
}
.about-mgmt{
  margin-top:2rem;padding-top:1.4rem;
  border-top:1px solid var(--line);
  font-size:.92rem;color:var(--muted);
}

/* ============ EYEBROW ACCENT ============ */
.eyebrow::before{
  content:"";display:inline-block;
  width:24px;height:2px;
  background:var(--accent);
  margin-right:10px;
  vertical-align:middle;
}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}

/* ============ OPENING BAR ============ */
:root{ --opening-bar-h: 38px; }
.opening-bar{
  position:sticky;top:0;z-index:60;
  background:var(--ink);color:#fff;
  height:38px;overflow:hidden;
  font-size:.82rem;letter-spacing:.02em;font-weight:400;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.opening-bar[hidden]{display:none}
.opening-bar[data-state="running"]{background:var(--sage-dark)}
.opening-bar-inner{
  display:flex;align-items:center;justify-content:center;
  gap:clamp(8px,2vw,20px);
  height:100%;flex-wrap:nowrap;white-space:nowrap;overflow:hidden;
}
.opening-bar-label{
  color:rgba(255,255,255,.7);text-transform:uppercase;
  letter-spacing:.18em;font-size:.7rem;font-weight:500;
}
.opening-bar-timer{
  font-variant-numeric:tabular-nums;color:#fff;
}
.opening-bar-timer strong{font-weight:500}
.opening-bar-timer .unit{color:rgba(255,255,255,.55);margin:0 2px}
.opening-bar-timer .sep{color:rgba(255,255,255,.35);margin:0 6px}
.opening-bar-timer .secs{
  display:inline-block;min-width:2ch;
  animation:pulseSec 1s ease-in-out infinite;
}
@keyframes pulseSec{0%,100%{opacity:1}50%{opacity:.62}}
.opening-bar-offer{color:#fff;font-weight:400}
.opening-bar-offer strong{color:var(--accent);font-weight:500;letter-spacing:.01em}
.opening-bar[data-state="running"] .opening-bar-offer strong{color:#E8D9B8}
.opening-bar-offer s{color:rgba(255,255,255,.5);margin-left:4px;font-weight:300}
.opening-bar-cta{
  color:var(--accent);font-weight:500;
  border-bottom:1px solid transparent;
  transition:border-color .2s,color .2s;
}
.opening-bar[data-state="running"] .opening-bar-cta{color:#E8D9B8}
.opening-bar-cta:hover{color:#E8D9B8;border-color:currentColor}
.site-header{top:var(--opening-bar-h)}
@media (max-width:640px){
  :root{--opening-bar-h:44px}
  .opening-bar{height:44px;font-size:.72rem}
  .opening-bar-label{display:none}
  .opening-bar-offer s{display:none}
}
@media (max-width:480px){
  .opening-bar-timer [data-unit="secs"],
  .opening-bar-timer .sep + .unit + [data-unit="mins"] ~ .unit:last-of-type{display:none}
}

/* ============ HERO OFFER ============ */
.hero--offer{
  min-height:100vh;
  height:100vh;
  max-height:980px;
  padding-top:clamp(40px,5vw,80px);
  padding-bottom:clamp(30px,4vw,60px);
  align-items:center;
}
.hero--offer .hero-media::after{
  background:
    linear-gradient(90deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.45) 45%,rgba(0,0,0,.15) 75%,rgba(0,0,0,.35) 100%),
    linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.25) 60%,rgba(0,0,0,.55) 100%);
}
.hero--offer .hero-content{
  display:flex;flex-direction:column;align-items:flex-start;
}
.hero--offer .hero-badge{
  display:inline-flex;align-items:center;gap:10px;
  margin-bottom:1.2rem;
  padding:8px 16px;
  border:1px solid var(--gold);
  color:#fff;background:rgba(181,137,70,.16);
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  font-weight:500;backdrop-filter:blur(4px);
}
.hero--offer .hero-badge::before{
  content:"";width:7px;height:7px;border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 0 rgba(181,137,70,.7);
  animation:dotPulse 1.8s ease-out infinite;
}
@keyframes dotPulse{
  0%{box-shadow:0 0 0 0 rgba(181,137,70,.7)}
  70%{box-shadow:0 0 0 10px rgba(181,137,70,0)}
  100%{box-shadow:0 0 0 0 rgba(181,137,70,0)}
}
.hero--offer h1{
  display:flex;flex-direction:column;align-items:flex-start;gap:1.2rem;
  max-width:none;margin:0;line-height:1.05;
}

/* Price highlight */
.hero--offer .hero-price-row{
  display:inline-flex;align-items:flex-start;gap:clamp(10px,1.4vw,22px);
  line-height:.95;
}
.hero--offer .price-hl{
  position:relative;display:inline-block;
  padding:0 .12em .04em;
  font-size:clamp(4.4rem,11vw,9rem);
  font-weight:600;color:#fff;
  letter-spacing:-.02em;
  text-shadow:0 4px 24px rgba(0,0,0,.35);
  z-index:1;
  animation:priceIn 1s cubic-bezier(.2,1.4,.35,1) .2s both;
}
.hero--offer .price-hl-bar{
  position:absolute;inset:12% -.08em 8%;
  background:linear-gradient(92deg,var(--forest-deep) 0%,var(--forest) 35%,var(--forest-light) 60%,var(--forest) 100%);
  background-size:200% 100%;
  box-shadow:0 12px 40px -8px rgba(47,89,69,.7),0 2px 8px rgba(0,0,0,.25);
  transform:skewX(-7deg);
  z-index:-1;
  animation:
    barBreathe 3.2s ease-in-out infinite,
    barShift 5.5s linear infinite;
}
@keyframes barBreathe{
  0%,100%{transform:skewX(-7deg) scale(1)}
  50%    {transform:skewX(-4.5deg) scale(1.03,1.05)}
}
@keyframes barShift{
  0%  {background-position:0% 50%}
  100%{background-position:200% 50%}
}
@keyframes priceIn{
  0%  {opacity:0; transform:translateY(18px) scale(.92)}
  100%{opacity:1; transform:translateY(0) scale(1)}
}
.hero--offer .price-old{
  display:inline-block;
  font-size:clamp(1.1rem,1.6vw,1.5rem);
  color:rgba(255,255,255,.62);
  font-weight:300;
  margin-top:clamp(18px,3vw,40px);
  letter-spacing:.01em;
  animation:priceIn .9s ease-out .6s both;
}
.hero--offer .price-old s{text-decoration-thickness:2px;text-decoration-color:rgba(255,255,255,.5)}

.hero--offer .hero-sub{
  display:block;
  font-size:clamp(1.4rem,2.6vw,2.4rem);
  font-weight:300;color:rgba(255,255,255,.95);
  line-height:1.2;
}
.hero--offer .hero-sub em{
  color:var(--gold);font-style:italic;font-weight:300;
}

/* CTAs */
.hero--offer .lede{
  font-size:clamp(1rem,1.3vw,1.15rem);
  max-width:52ch;margin-top:1.2rem;
}
.hero--offer .hero-cta{margin-top:2rem;gap:14px}
.hero--offer .hero-cta .btn-primary{
  box-shadow:0 12px 32px -12px rgba(47,89,69,.7),0 2px 8px rgba(0,0,0,.2);
}
.hero-code{
  display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin-top:1.4rem;
  font-size:.95rem;color:rgba(255,255,255,.85);
}
.hero-code-chip{
  display:inline-flex;align-items:center;
  padding:6px 14px;
  border:1px dashed rgba(255,255,255,.55);
  background:rgba(47,89,69,.18);
  color:#fff;font-weight:600;
  letter-spacing:.22em;font-size:.82rem;
  text-transform:uppercase;
}

/* Ken Burns hero image */
.hero--offer .hero-media img{
  animation:kenBurns 32s ease-in-out infinite alternate;
  transform-origin:center 40%;
}
@keyframes kenBurns{
  from{transform:scale(1)}
  to{transform:scale(1.05)}
}

/* CTA Shine */
.btn-shine{position:relative;overflow:hidden;isolation:isolate}
.btn-shine::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.32) 50%,transparent 70%);
  transform:translateX(-100%);
  animation:shineSweep 4.5s ease-in-out infinite;
  pointer-events:none;
}
.btn-shine:hover::after{animation-play-state:paused}
@keyframes shineSweep{
  0%,35%{transform:translateX(-100%)}
  60%,100%{transform:translateX(100%)}
}

/* Mobile */
@media (max-width:640px){
  .hero--offer{height:auto;min-height:100vh;max-height:none}
  .hero--offer .hero-price-row{flex-wrap:wrap;gap:10px}
  .hero--offer .price-old{margin-top:8px}
  .hero--offer .hero-cta{flex-direction:column;align-items:stretch;gap:10px;width:100%}
  .hero--offer .hero-cta .btn-lg{padding:16px 22px;text-align:center}
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  .opening-bar-timer .secs,
  .hero--offer .hero-media img,
  .hero--offer .price-hl-bar,
  .hero--offer .hero-badge::before,
  .btn-shine::after{animation:none!important}
}

/* ============ LEGAL PAGES ============ */
.legal{
  padding:clamp(60px,8vw,120px) 0 clamp(80px,10vw,140px);
  background:var(--bg);
}
.legal-wrap{
  max-width:760px;
  margin:0 auto;
  padding:0 var(--pad);
}
.legal .breadcrumb{
  font-size:.82rem;color:var(--muted);
  margin-bottom:2rem;letter-spacing:.02em;
}
.legal .breadcrumb a{
  color:var(--muted);
  border-bottom:1px solid transparent;
  transition:border-color .2s,color .2s;
}
.legal .breadcrumb a:hover{color:var(--ink);border-color:var(--line)}
.legal h1{
  font-size:clamp(2rem,4vw,3rem);
  font-weight:300;letter-spacing:-.02em;
  margin:.6rem 0 2.4rem;
}
.legal h2{
  font-size:clamp(1.3rem,2.2vw,1.7rem);
  font-weight:400;letter-spacing:-.015em;
  margin:3rem 0 1rem;
  padding-top:2rem;border-top:1px solid var(--line);
}
.legal h2:first-of-type{border-top:0;padding-top:0;margin-top:2rem}
.legal h3{
  font-size:1.05rem;font-weight:500;
  letter-spacing:0;margin:1.8rem 0 .6rem;
}
.legal p{
  font-size:.98rem;line-height:1.7;
  color:var(--ink-2);margin-bottom:1rem;
}
.legal p strong{color:var(--ink);font-weight:500}
.legal a{
  color:var(--accent);
  text-decoration:underline;text-underline-offset:3px;
  word-break:break-word;
}
.legal a:hover{color:var(--accent-hover)}
.legal ul{
  list-style:disc;margin:1rem 0 1.2rem 1.4rem;
}
.legal li{
  font-size:.98rem;line-height:1.7;color:var(--ink-2);
  margin-bottom:.6rem;
}
.legal .legal-caps{
  font-size:.82rem;line-height:1.65;
  background:var(--bg-soft);
  padding:1rem 1.2rem;
  border-left:3px solid var(--accent);
  color:var(--ink-2);
}
.legal .legal-source{
  margin-top:3rem;padding-top:1.6rem;
  border-top:1px solid var(--line);
  font-size:.85rem;color:var(--muted);
}

/* ============ COOKIE BANNER ============ */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;
  z-index:1000;
  display:none;
  padding:clamp(12px,2vw,24px);
  pointer-events:none;
}
.cookie-banner.is-visible{display:block}
.cookie-banner-inner{
  max-width:var(--max);margin:0 auto;
  background:var(--bg-soft);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 30px 80px -20px rgba(20,20,20,.35);
  padding:clamp(20px,3vw,28px) clamp(20px,3vw,32px);
  display:grid;grid-template-columns:1fr auto;
  gap:clamp(20px,3vw,40px);
  align-items:center;
  pointer-events:auto;
  animation:cookieRise .45s cubic-bezier(.2,.8,.2,1);
}
@keyframes cookieRise{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:none}
}
.cookie-text .eyebrow{margin-bottom:.6rem}
.cookie-text h3{
  font-size:1.1rem;font-weight:400;
  letter-spacing:-.01em;margin-bottom:.5rem;line-height:1.3;
}
.cookie-text p{
  font-size:.88rem;color:var(--ink-2);
  max-width:72ch;line-height:1.55;
}
.cookie-text a{
  color:var(--accent);
  text-decoration:underline;text-underline-offset:3px;
}
.cookie-text a:hover{color:var(--accent-hover)}
.cookie-actions{
  display:flex;flex-wrap:wrap;gap:10px;
  align-items:center;
}
.cookie-actions .btn{padding:12px 22px;font-size:.88rem}

@media (max-width:820px){
  .cookie-banner-inner{
    grid-template-columns:1fr;
    gap:18px;
  }
  .cookie-actions{justify-content:stretch;width:100%}
  .cookie-actions .btn{flex:1;justify-content:center;text-align:center}
}
