@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600;700&display=swap');

/* ============================================
   ZELMORA — CLAYMORPHISM DESIGN SYSTEM
   ============================================ */

:root{
  --clay-bg: #f2ede0;
  --clay-bg-alt: #ebe3d0;
  --clay-surface: #f8f4ea;
  --clay-surface-2: #f1ead8;

  --primary: #6f8f6e;
  --primary-dark: #4d6a4f;
  --primary-light: #a9c2a3;

  --accent: #e2794f;
  --accent-dark: #bd5c37;
  --accent-light: #f4ab7d;

  --secondary: #b39cc7;
  --secondary-dark: #83679e;
  --secondary-light: #dccbe8;

  --ink: #372f27;
  --ink-soft: #6c6153;
  --ink-faint: #948a7a;

  --cream: #fbf8f0;
  --white-warm: #fffdf8;

  --shadow-out-sm: 5px 5px 12px rgba(55,47,39,0.14), -5px -5px 12px rgba(255,255,255,0.75);
  --shadow-out-md: 10px 10px 22px rgba(55,47,39,0.16), -9px -9px 20px rgba(255,255,255,0.85);
  --shadow-out-lg: 16px 16px 36px rgba(55,47,39,0.18), -12px -12px 28px rgba(255,255,255,0.85);
  --shadow-in: inset 6px 6px 12px rgba(55,47,39,0.14), inset -6px -6px 12px rgba(255,255,255,0.7);
  --shadow-in-soft: inset 3px 3px 7px rgba(55,47,39,0.10), inset -3px -3px 7px rgba(255,255,255,0.65);

  --radius-sm: 14px;
  --radius-md: 22px;
  --radius-lg: 34px;
  --radius-xl: 50px;
  --radius-pill: 999px;

  --space-2xs: .4rem;
  --space-xs: .8rem;
  --space-sm: 1.2rem;
  --space-md: 1.8rem;
  --space-lg: 2.8rem;
  --space-xl: 4.5rem;
  --space-2xl: 7rem;

  --ease: cubic-bezier(.25,.9,.35,1);
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: 'Lexend', sans-serif;
  background: var(--clay-bg);
  color: var(--ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
button{ font-family: inherit; cursor:pointer; border:none; background:none; }
ul{ margin:0; padding:0; list-style:none; }

.canvas{
  position: relative;
  min-height: 100vh;
  background:
    radial-gradient(circle at 8% 12%, rgba(178,196,163,.28), transparent 42%),
    radial-gradient(circle at 92% 6%, rgba(226,121,79,.14), transparent 40%),
    radial-gradient(circle at 85% 85%, rgba(179,156,199,.22), transparent 45%),
    var(--clay-bg);
}

h1,h2,h3,h4{
  font-family:'Lexend', sans-serif;
  color: var(--ink);
  font-weight:600;
  line-height:1.18;
  margin:0 0 .6em;
}
h1{ font-size: clamp(2.4rem, 3.2vw + 1.4rem, 4.4rem); font-weight:700; letter-spacing:-.02em; }
h2{ font-size: clamp(1.9rem, 1.8vw + 1.2rem, 2.9rem); font-weight:700; letter-spacing:-.01em; }
h3{ font-size: clamp(1.25rem, .8vw + 1rem, 1.65rem); }
p{ margin:0 0 1em; color: var(--ink-soft); }
.lede{ font-size: clamp(1.05rem, .4vw + 1rem, 1.25rem); color: var(--ink-soft); }

.container{ width:100%; max-width:1240px; margin:0 auto; padding:0 clamp(1.2rem, 4vw, 2.5rem); }
.section{ padding: var(--space-2xl) 0; position:relative; }
.section-tight{ padding: var(--space-xl) 0; }
.center{ text-align:center; }
.kicker{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color: var(--primary-dark);
  background: rgba(111,143,110,.14);
  padding:.5rem 1.1rem; border-radius: var(--radius-pill);
  margin-bottom: var(--space-sm);
}
.kicker i{ font-size:.7rem; }


.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding: 1rem 1.8rem; border-radius: var(--radius-pill);
  font-weight:600; font-size:1rem; white-space:nowrap;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
  min-height:48px;
}
.btn-primary{
  background: linear-gradient(155deg, var(--accent-light), var(--accent));
  color: var(--white-warm);
  box-shadow: var(--shadow-out-sm), inset 0 1px 0 rgba(255,255,255,.4);
}
.btn-primary:hover{ transform: translateY(-3px); box-shadow: var(--shadow-out-md); }
.btn-primary:active{ transform: translateY(0); box-shadow: var(--shadow-in-soft); }
.btn-secondary{
  background: var(--clay-surface);
  color: var(--primary-dark);
  box-shadow: var(--shadow-out-sm);
}
.btn-secondary:hover{ transform: translateY(-3px); box-shadow: var(--shadow-out-md); }
.btn-ghost{
  background: transparent; color: var(--ink); border:2px solid rgba(55,47,39,.14);
}
.btn-ghost:hover{ background: rgba(55,47,39,.05); border-color: rgba(55,47,39,.24); }
.btn-ghost-light{
  background: rgba(255,255,255,.14); color: var(--white-warm); border:2px solid rgba(255,255,255,.5);
  backdrop-filter: blur(4px);
}
.btn-ghost-light:hover{ background: rgba(255,255,255,.24); transform: translateY(-3px); }
.btn-sm{ padding:.7rem 1.3rem; font-size:.9rem; min-height:40px; }
.btn-block{ width:100%; }


.topbar{
  position: fixed; top:0; left:0; right:0; z-index:60;
  transition: background .4s var(--ease), box-shadow .4s var(--ease), padding .4s var(--ease);
  padding: 1.4rem 0;
}
.topbar-inner{
  max-width:1240px; margin:0 auto; padding:0 clamp(1.2rem,4vw,2.5rem);
  display:flex; align-items:center; justify-content:space-between;
}
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand-mark{ width:42px; height:42px; }
.brand-name{ font-weight:700; font-size:1.3rem; color: var(--white-warm); transition:color .4s var(--ease); letter-spacing:-.01em; }
.nav-desktop{ display:none; align-items:center; gap:2.2rem; }
.nav-desktop a{
  color: rgba(255,255,255,.9); font-weight:500; font-size:.98rem; position:relative; padding:.3rem 0;
  transition: color .35s var(--ease);
}
.nav-desktop a::after{
  content:''; position:absolute; left:0; bottom:-2px; height:2px; width:0; background: var(--accent-light);
  transition: width .35s var(--ease);
}
.nav-desktop a:hover::after, .nav-desktop a.active::after{ width:100%; }
.nav-desktop a.active{ color: var(--white-warm); font-weight:600; }

.topbar.is-scrolled{
  background: rgba(251,248,240,.92);
  backdrop-filter: blur(14px);
  box-shadow: 0 10px 30px rgba(55,47,39,.12);
  padding: .8rem 0;
}
.topbar.is-scrolled .brand-name{ color: var(--ink); }
.topbar.is-scrolled .nav-desktop a{ color: var(--ink-soft); }
.topbar.is-scrolled .nav-desktop a.active{ color: var(--primary-dark); }
.topbar.is-scrolled .hamburger span{ background: var(--ink); }
.topbar.is-scrolled .btn-ghost-light{ background: var(--primary); border-color: var(--primary); color:#fff; }

.hamburger{
  width:48px; height:48px; border-radius: var(--radius-md);
  background: rgba(255,255,255,.16); box-shadow: var(--shadow-out-sm);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  transition: background .35s var(--ease), transform .35s var(--ease);
}
.topbar.is-scrolled .hamburger{ background: var(--clay-surface); }
.hamburger span{ width:22px; height:2px; background: var(--white-warm); border-radius:2px; transition: background .35s var(--ease); }
.hamburger:hover{ transform: translateY(-2px); }


#pageShell{
  transition: transform .48s var(--ease);
  transform-origin: left center;
  will-change: transform;
}
body.menu-open #pageShell{ transform: translateX(-260px) scale(.95); }

.stage-curtain{
  position: fixed; inset:0; z-index:45;
  background: rgba(55,47,39,.35);
  opacity:0; pointer-events:none;
  transition: opacity .45s var(--ease);
  backdrop-filter: blur(2px);
}
body.menu-open .stage-curtain{ opacity:1; pointer-events:auto; }

.drawer{
  position: fixed; top:0; right:0; height:100%; width: min(320px, 84vw);
  background: var(--cream);
  z-index:55; transform: translateX(100%);
  transition: transform .48s var(--ease);
  box-shadow: -14px 0 40px rgba(55,47,39,.25);
  display:flex; flex-direction:column;
  padding: 1.6rem 1.6rem 2.5rem;
}
body.menu-open .drawer{ transform: translateX(0); }
.drawer-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom: 2rem; }
.drawer-head .brand-name{ color: var(--ink); }
.drawer-close{
  width:42px; height:42px; border-radius: var(--radius-md); background: var(--clay-surface);
  box-shadow: var(--shadow-out-sm); display:flex; align-items:center; justify-content:center;
  color: var(--ink); transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.drawer-close:hover{ transform: rotate(90deg); box-shadow: var(--shadow-in-soft); }
.drawer-nav{ display:flex; flex-direction:column; gap:.5rem; }
.drawer-nav a{
  padding: 1rem 1.1rem; border-radius: var(--radius-md); font-weight:500; color: var(--ink-soft);
  transition: background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
}
.drawer-nav a:hover{ background: var(--clay-surface); box-shadow: var(--shadow-out-sm); color: var(--primary-dark); transform: translateX(4px); }
.drawer-nav a.active{ background: var(--clay-surface); box-shadow: var(--shadow-in-soft); color: var(--accent-dark); font-weight:600; }
.drawer-foot{ margin-top:auto; padding-top:1.5rem; border-top:1px solid rgba(55,47,39,.1); }
.drawer-foot a{ display:flex; align-items:center; gap:.6rem; color: var(--ink-soft); font-size:.92rem; margin-bottom:.6rem; }


.stage{
  position: relative; overflow:hidden;
  min-height: 92vh;
  display:flex; align-items:center; justify-content:center;
  padding: 8rem 1.2rem 5rem;
  background: linear-gradient(150deg, #4d6a4f 0%, #5c7d63 38%, #83679e 78%, #6f4f7a 100%);
}
.stage-icons{
  position:absolute; inset:0;
  display:grid; grid-template-columns: repeat(8, 1fr); gap:2rem;
  padding: 2rem; opacity:.14; color:#fff; pointer-events:none;
}
.stage-icons i{ font-size: clamp(1.2rem, 2vw, 2rem); justify-self:center; align-self:center; }
.stage-content{
  position:relative; z-index:2;
  max-width: 760px; width:100%;
  background: rgba(251,248,240,.96);
  border-radius: var(--radius-xl);
  padding: clamp(2rem, 4vw, 3.4rem);
  box-shadow: var(--shadow-out-lg);
  text-align:center;
}
.stage-content .kicker{ background: rgba(226,121,79,.12); color: var(--accent-dark); }
.stage-content h1{ margin-bottom:.5rem; }
.stage-content .lede{ max-width:56ch; margin-inline:auto; }
.stage-cta{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; margin-top:1.8rem; }
.stage-meta{
  display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; margin-top:2rem;
  padding-top:1.8rem; border-top:1px solid rgba(55,47,39,.1);
}
.stage-tag{
  display:flex; align-items:center; gap:.5rem; font-size:.85rem; font-weight:500;
  padding:.55rem 1rem; border-radius: var(--radius-pill); background: var(--clay-surface-2);
  color: var(--ink-soft); box-shadow: var(--shadow-in-soft);
}
.stage-tag i{ color: var(--primary-dark); }

.page-stage{
  min-height: 46vh; padding: 8.5rem 1.2rem 4rem;
}
.page-stage .stage-content{ max-width:820px; }


.clay-card{
  background: var(--clay-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-out-md);
  padding: var(--space-lg);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.clay-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-out-lg); }

.spotlight{
  background: linear-gradient(160deg, var(--clay-surface) 0%, var(--clay-surface-2) 100%);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-out-lg);
  padding: clamp(1.8rem, 3vw, 3.2rem);
  position:relative;
}
.spotlight::before{
  content:''; position:absolute; top:1.2rem; right:1.2rem; width:64px; height:64px;
  border-radius:50%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.8), rgba(255,255,255,0));
  opacity:.6; pointer-events:none;
}


.gallery{ display:grid; gap: 1.8rem; }
.gallery--modules{ grid-template-columns: repeat(1, 1fr); }
.gallery--images{ grid-template-columns: repeat(2, 1fr); }
.gallery--certs{ grid-template-columns: repeat(2, 1fr); }

@media(min-width:700px){
  .gallery--modules{ grid-template-columns: repeat(2,1fr); }
  .gallery--certs{ grid-template-columns: repeat(2,1fr); }
}
@media(min-width:1000px){
  .gallery--modules{ grid-template-columns: repeat(3,1fr); }
  .gallery--images{ grid-template-columns: repeat(3,1fr); }
  .gallery--certs{ grid-template-columns: repeat(4,1fr); }
}

.module-card{ display:flex; flex-direction:column; gap:.8rem; }
.module-number{
  width:52px; height:52px; border-radius: var(--radius-md);
  background: linear-gradient(150deg, var(--primary-light), var(--primary));
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:1.1rem; box-shadow: var(--shadow-out-sm);
}
.module-card h3{ margin-bottom:.3rem; }
.module-card p{ margin-bottom:0; font-size:.96rem; }
.module-card .module-format{
  margin-top:auto; display:flex; align-items:center; gap:.5rem; font-size:.82rem; color: var(--ink-faint);
  padding-top:.8rem; border-top:1px dashed rgba(55,47,39,.15);
}

.gallery-frame{
  position:relative; border-radius: var(--radius-lg); overflow:hidden;
  box-shadow: var(--shadow-out-md); aspect-ratio: 4/3;
}
.gallery-frame img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease), filter .5s var(--ease); }
.gallery-frame:hover img{ transform: scale(1.07); filter: saturate(1.1); }
.gallery-frame figcaption{
  position:absolute; left:0; right:0; bottom:0; padding: 1rem 1.2rem;
  background: linear-gradient(0deg, rgba(55,47,39,.72), transparent);
  color:#fff; font-size:.85rem; font-weight:500;
  opacity:0; transform: translateY(8px); transition: all .4s var(--ease);
}
.gallery-frame:hover figcaption{ opacity:1; transform: translateY(0); }

.cert-card{
  text-align:center; display:flex; flex-direction:column; align-items:center; gap:.7rem;
  padding: var(--space-md); border-radius: var(--radius-lg); background: var(--clay-surface);
  box-shadow: var(--shadow-out-sm);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.cert-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-out-md); }
.cert-icon{
  width:60px; height:60px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background: linear-gradient(150deg, var(--secondary-light), var(--secondary));
  color:#fff; font-size:1.4rem; box-shadow: var(--shadow-out-sm);
}
.cert-card h4{ font-size:1rem; margin-bottom:.2rem; }
.cert-card p{ font-size:.85rem; margin-bottom:0; }


.shelf{ display:grid; gap: 1.6rem; grid-template-columns: 1fr; }
@media(min-width:800px){ .shelf--dual{ grid-template-columns: 1.15fr .85fr; } }
.shelf-card{
  border-radius: var(--radius-lg); padding: var(--space-lg);
  box-shadow: var(--shadow-out-md); position:relative; overflow:hidden;
}
.shelf-card--primary{ background: linear-gradient(150deg, var(--primary), var(--primary-dark)); color:#fff; }
.shelf-card--primary h3, .shelf-card--primary p{ color:#fff; }
.shelf-card--secondary{ background: var(--clay-surface); }
.shelf-card i.shelf-icon{ font-size:2rem; margin-bottom:1rem; display:block; color: inherit; opacity:.9; }


.feature-split{
  display:grid; gap: 2.5rem; align-items:center;
  grid-template-columns: 1fr;
}
@media(min-width:900px){
  .feature-split{ grid-template-columns: 1.05fr .95fr; }
  .feature-split.reverse{ grid-template-columns: .95fr 1.05fr; }
  .feature-split.reverse .feature-media{ order:2; }
}
.feature-media{ position:relative; }
.feature-media img{
  border-radius: var(--radius-xl); box-shadow: var(--shadow-out-lg); width:100%; aspect-ratio: 5/4; object-fit:cover;
}
.feature-media::after{
  content:''; position:absolute; width:120px; height:120px; border-radius:50%;
  background: radial-gradient(circle, var(--accent-light), transparent 70%);
  opacity:.5; top:-30px; right:-30px; z-index:-1; filter: blur(4px);
}
.feature-text .disclaimer{
  margin-top:1.4rem; padding:1rem 1.3rem; border-radius: var(--radius-md);
  background: rgba(226,121,79,.08); border:1px solid rgba(226,121,79,.2);
  font-size:.88rem; color: var(--accent-dark); display:flex; gap:.7rem; align-items:flex-start;
}
.disclaimer i{ margin-top:.15rem; }


.process{ position:relative; padding-left: 2.2rem; }
.process::before{
  content:''; position:absolute; left:9px; top:6px; bottom:6px; width:2px;
  background: repeating-linear-gradient(to bottom, var(--primary-light) 0 8px, transparent 8px 14px);
}
.process-step{ position:relative; margin-bottom: 2rem; }
.process-step:last-child{ margin-bottom:0; }
.process-step::before{
  content:''; position:absolute; left:-2.2rem; top:4px; width:20px; height:20px; border-radius:50%;
  background: var(--accent); box-shadow: 0 0 0 5px var(--clay-bg), var(--shadow-out-sm);
}
.process-step h4{ margin-bottom:.3rem; }
.process-step p{ margin-bottom:0; font-size:.95rem; }




.chatform{ display:flex; flex-direction:column; gap:1.4rem; max-width:600px; margin: 0 auto; }
.bubble-row{ display:flex; flex-direction:column; gap:.5rem; }
.bubble-q{
  align-self:flex-start; max-width:88%;
  background: var(--secondary-light); color: var(--ink);
  padding: 1rem 1.3rem; border-radius: 22px 22px 22px 6px;
  box-shadow: var(--shadow-out-sm); font-size:.96rem; display:flex; gap:.6rem; align-items:center;
}
.bubble-q i{ color: var(--secondary-dark); }
.bubble-a{ align-self:flex-end; width:88%; }
.bubble-a input, .bubble-a textarea{
  width:100%; border:none; border-radius: 22px 22px 6px 22px; padding: 1rem 1.3rem;
  background: var(--clay-surface); box-shadow: var(--shadow-in); font-family:inherit; font-size:.96rem;
  color: var(--ink); transition: box-shadow .3s var(--ease);
  resize: vertical;
}
.bubble-a input:focus, .bubble-a textarea:focus{ outline:none; box-shadow: var(--shadow-in), 0 0 0 3px rgba(111,143,110,.3); }
.bubble-a textarea{ min-height:120px; }
.bubble-privacy{
  align-self:flex-end; width:88%; display:flex; align-items:flex-start; gap:.7rem;
  background: var(--clay-surface); border-radius: 22px 22px 6px 22px; padding: 1rem 1.3rem;
  box-shadow: var(--shadow-in); font-size:.85rem; color: var(--ink-soft);
}
.bubble-privacy input{ width:20px; height:20px; margin-top:.15rem; accent-color: var(--primary); flex-shrink:0; }
.chatform-send{ align-self:flex-end; margin-top:.4rem; }


.footer-line{ border-top:1px solid rgba(55,47,39,.12); padding: 1.6rem 0; }
.footer-inner{
  max-width:1240px; margin:0 auto; padding:0 clamp(1.2rem,4vw,2.5rem);
  display:flex; flex-wrap:wrap; gap:1rem 1.6rem; align-items:center; justify-content:space-between;
}
.footer-brand{ display:flex; align-items:center; gap:.5rem; font-weight:600; }
.footer-brand img{ width:26px; height:26px; }
.footer-links{ display:flex; gap:1.3rem; flex-wrap:wrap; }
.footer-links a{ font-size:.88rem; color: var(--ink-soft); transition: color .3s var(--ease); }
.footer-links a:hover{ color: var(--primary-dark); }
.footer-copy{ font-size:.82rem; color: var(--ink-faint); }


.side-contact{
  position: fixed; right: 1.4rem; top:50%; transform: translateY(-50%); z-index:40;
  display:none; flex-direction:column; gap:.8rem;
}
@media(min-width:1024px){ .side-contact{ display:flex; } }
.side-contact-btn{
  width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background: var(--clay-surface); box-shadow: var(--shadow-out-md); color: var(--primary-dark); font-size:1.2rem;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
}
.side-contact-btn:hover{ transform: scale(1.1) translateX(-4px); background: var(--accent); color:#fff; box-shadow: var(--shadow-out-lg); }


.cookie-card{
  position: fixed; left:50%; bottom: 1.4rem; transform: translateX(-50%);
  width: min(560px, 92vw); z-index:200;
  background: var(--cream); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-out-lg);
  padding: 1.4rem 1.6rem;
  transition: all .5s var(--ease);
  display:none;
}
.cookie-card.visible{ display:block; }
.cookie-compact{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem; justify-content:space-between; }
.cookie-compact p{ margin:0; font-size:.9rem; flex:1 1 260px; color: var(--ink-soft); }
.cookie-actions{ display:flex; gap:.7rem; flex-wrap:wrap; }
.cookie-full{ margin-top:1.2rem; padding-top:1.2rem; border-top:1px solid rgba(55,47,39,.12); }
.cookie-cat{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding: .8rem 0; border-bottom:1px solid rgba(55,47,39,.08);
}
.cookie-cat:last-child{ border-bottom:none; }
.cookie-cat-info h5{ margin:0 0 .2rem; font-size:.94rem; font-weight:600; }
.cookie-cat-info p{ margin:0; font-size:.8rem; color: var(--ink-faint); }
.switch{ position:relative; width:46px; height:26px; flex-shrink:0; }
.switch input{ opacity:0; width:0; height:0; }
.switch label{
  position:absolute; inset:0; background: rgba(55,47,39,.18); border-radius: var(--radius-pill);
  cursor:pointer; transition: background .3s var(--ease); box-shadow: var(--shadow-in-soft);
}
.switch label::after{
  content:''; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%;
  background:#fff; box-shadow: var(--shadow-out-sm); transition: transform .3s var(--ease);
}
.switch input:checked + label{ background: var(--primary); }
.switch input:checked + label::after{ transform: translateX(20px); }
.switch input:disabled + label{ opacity:.6; cursor:not-allowed; }
.cookie-full-actions{ display:flex; gap:.7rem; margin-top:1.1rem; flex-wrap:wrap; }


.legal-hero{ padding: 8.5rem 0 2rem; }
.legal-doc{ padding-bottom: var(--space-2xl); }
.legal-timeline{ position:relative; padding-left: 2.6rem; }
.legal-timeline::before{
  content:''; position:absolute; left:11px; top:6px; bottom:6px; width:2px; background: rgba(111,143,110,.35);
}
.legal-item{ position:relative; margin-bottom: 2.4rem; }
.legal-item:last-child{ margin-bottom:0; }
.legal-dot{
  position:absolute; left:-2.6rem; top:2px; width:24px; height:24px; border-radius:50%;
  background: var(--clay-surface); box-shadow: var(--shadow-out-sm); display:flex; align-items:center; justify-content:center;
  font-size:.7rem; font-weight:700; color: var(--primary-dark);
}
.legal-date{
  display:inline-block; font-size:.76rem; font-weight:600; color: var(--accent-dark);
  background: rgba(226,121,79,.1); padding:.25rem .7rem; border-radius: var(--radius-pill); margin-bottom:.6rem;
}
.legal-item h3{ margin-bottom:.5rem; }
.legal-item p, .legal-item li{ font-size:.96rem; }
.legal-item ul{ padding-left:1.2rem; list-style: disc; margin-bottom:1em; }
.legal-item table{ width:100%; border-collapse:collapse; margin: 1rem 0; font-size:.9rem; }
.legal-item table td, .legal-item table th{ padding:.6rem .8rem; border:1px solid rgba(55,47,39,.14); text-align:left; }
.legal-item table th{ background: var(--clay-surface-2); }

.legal-compact .legal-item{ margin-bottom: 1.6rem; }
.legal-compact .legal-timeline::before{ background: rgba(179,156,199,.4); }


.impressum-block{ margin-bottom: 2.2rem; }
.impressum-block h3{ display:flex; align-items:center; gap:.6rem; }
.impressum-block h3 span{ width:30px; height:30px; border-radius:50%; background: var(--primary); color:#fff; font-size:.85rem; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.impressum-block table{ width:100%; border-collapse:collapse; margin-top: .8rem; }
.impressum-block td{ padding:.65rem .9rem; border-bottom:1px solid rgba(55,47,39,.1); font-size:.94rem; }
.impressum-block td:first-child{ font-weight:600; color: var(--ink); width:38%; }


.thanks-stage{ min-height: 78vh; display:flex; align-items:center; justify-content:center; padding: 8rem 1.2rem; text-align:center; }
.thanks-stage h1{ font-size: clamp(2.4rem, 4vw + 1rem, 4rem); }


.map-frame{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-out-md); }
.map-frame iframe{ width:100%; height:340px; border:0; display:block; }


.mt-lg{ margin-top: var(--space-lg); }
.mb-0{ margin-bottom:0; }
.two-col{ display:grid; gap: 2rem; grid-template-columns:1fr; }
@media(min-width:850px){ .two-col{ grid-template-columns: 1fr 1fr; } }
.tag-row{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1rem; }
.pill-tag{ font-size:.8rem; padding:.4rem .9rem; border-radius: var(--radius-pill); background: var(--clay-surface-2); color: var(--ink-soft); box-shadow: var(--shadow-in-soft); }


.swiper{ padding-bottom: 3rem; }
.swiper-slide{ height:auto; }
.swiper-pagination-bullet{ background: var(--primary); opacity:.4; }
.swiper-pagination-bullet-active{ opacity:1; background: var(--accent); }
.swiper-button-next, .swiper-button-prev{
  width:44px; height:44px; border-radius:50%; background: var(--clay-surface); box-shadow: var(--shadow-out-sm); color: var(--primary-dark);
}
.swiper-button-next::after, .swiper-button-prev::after{ font-size:1rem; }


@media(min-width:960px){
  .nav-desktop{ display:flex; }
  .hamburger{ display:none; }
}
@media(max-width:959px){
  .drawer-foot{ display:flex; flex-direction:column; }
}

@media(max-width:640px){
  .stage-content{ padding: 1.8rem 1.4rem; }
  .cookie-card{ width:94vw; padding:1.1rem 1.2rem; }
  .bubble-a, .bubble-privacy{ width:100%; }
}