:root{
  --overlay:rgba(0,0,0,.55);
  --nav-bg:rgba(255,255,255,.88);
  --tile-bg:rgba(255,255,255,.95);
  --tile-hover:#ffffff;
  --accent:#f59e0b;
  --text:#1f2937;
}

body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  line-height:1.65;
  scroll-behavior:smooth;

  background-position:center top;
  background-size:cover;
  background-repeat:no-repeat;
  background-attachment:fixed;
}

.section{padding:4rem 1rem}
section{scroll-margin-top:200px;}

/* HERO */
.hero{
  min-height:90vh;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  position:relative;
  color:#fff;
  display:flex;
  align-items:center;

  background-attachment:fixed;
  background-position:center top;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--overlay);
}

/* NAVBAR wrapper */
.top-bar{
  position:fixed;
  top:12px;
  left:50%;
  transform:translateX(-50%);
  width:calc(100% - 40px);
  max-width:1200px;
  display:flex;
  justify-content:center;
  z-index:1100;
  transition:top .12s ease;
}
.top-bar.is-sticky{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  z-index:1100;
}

/* NAV – alle Kacheln gleich, Anmeldung CTA anders */
.nav-clean{
  background:var(--nav-bg);
  backdrop-filter:blur(6px);
  border-radius:999px;
  padding:16px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  box-shadow:0 10px 26px rgba(0,0,0,.14);
}

.nav-clean a{
  width:170px;                 /* ALLE gleich groß */
  height:46px;                 /* ALLE gleich hoch */
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  border-radius:999px;
  background:var(--tile-bg);
  color:#1f2937;
  text-decoration:none;

  font-size:1.08rem;
  font-weight:800;

  box-shadow:0 6px 16px rgba(0,0,0,.10);
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
}
.nav-clean a:hover{
  background:var(--tile-hover);
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(0,0,0,.14);
}
.nav-clean a.is-active{
  background:rgba(245,158,11,.22);
  box-shadow:0 0 0 2px rgba(245,158,11,.38) inset, 0 10px 22px rgba(0,0,0,.14);
  transform:none;
}

/* CTA (Anmeldung) – darf anders sein */
.nav-clean .nav-cta{
  background:linear-gradient(135deg,#fde047,#f59e0b);
  color:#111827;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.nav-clean .nav-cta:hover{
  background:linear-gradient(135deg,#fef08a,#fbbf24);
}

/* HERO CONTENT (Logo + Text mittig) */
.hero-content{
  position:relative;
  z-index:2;
  max-width:900px;
  margin:0 auto;
  text-align:center;
  padding:0 16px;
}
.hero-logo{
  width:min(680px, 94vw);       /* noch etwas größer */
  height:auto;
  margin:0 auto 28px;
  display:block;
  filter:drop-shadow(0 18px 36px rgba(0,0,0,.45));
}
.hero h1{
  font-weight:900;
  font-size:2.9rem;
  letter-spacing:.3px;
}
.hero p{
  font-size:1.65rem;
  opacity:.95;
}


/* DOWNLOAD BUTTON HIGHLIGHT */
#downloads .btn-warning{
  font-weight:700;
  box-shadow:0 10px 22px rgba(0,0,0,.18);
  transition:all .15s ease;
}
#downloads .btn-warning:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(0,0,0,.25);
}
/* POPUP */
.popup{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.35);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:999;
}
.popup-box{
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(6px);
  border-radius:18px;
  padding:2rem;
  max-width:440px;
  text-align:center;
  box-shadow:0 20px 40px rgba(0,0,0,.25);
}

/* Section Emojis */
.section-emoji{
  font-size:1.15em;
  margin-right:.45em;
}

/* ÜBER UNS größer */
#ueberuns p{
  font-size:1.15rem;
  line-height:1.75;
}

/* GALERIE */
.gallery img{
  width:100%;
  border-radius:14px;
  cursor:pointer;
  box-shadow:0 10px 25px rgba(0,0,0,.12);
}

/* LIGHTBOX */
.lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.85);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:1000;
}
.lightbox img{
  max-width:90%;
  max-height:90%;
  border-radius:12px;
}

/* FAQ */
.faq details{
  margin-bottom:.75rem;
  background:#f9fafb;
  padding:1rem;
  border-radius:10px;
}
.faq summary{
  font-weight:700;
  cursor:pointer;
}
.faq-category{
  margin-bottom:1.5rem;
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:1rem;
}

/* MAP */
.map-wrap{
  border-radius:16px;
  overflow:hidden;
  height:100%;
  box-shadow:0 12px 28px rgba(0,0,0,.12);
}

/* ANFAHRT Text größer wie Über uns */
#anfahrt .card{
  font-size:1.15rem;
  line-height:1.75;
}

/* VISITOR */
.visitor{
  text-align:center;
  font-size:.85rem;
  color:#6b7280;
  margin:2rem 0 1rem;
}

/* FOOTER */
.site-footer{
  background:#111827;
  color:#fff;
  padding:2.2rem 1rem;
  font-size:.95rem;
}
.site-footer a{
  color:#facc15;
  text-decoration:none;
  font-weight:600;
}
.site-footer a:hover{ text-decoration:underline; }

.footer-grid{
  display:grid;
  grid-template-columns: 1fr 2fr 1fr;
  align-items:center;
  gap:1.5rem;
  text-align:center;
}
.footer-logo{
  display:flex;
  justify-content:center;
}
.footer-logo img{
  height:96px;                 /* größer */
  width:auto;
  max-width:100%;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.35));
}
.footer-center{ line-height:1.55; }
.footer-right{
  font-weight:800;
  opacity:.9;
}

/* Mobile */
@media(max-width:768px){
  section{scroll-margin-top:260px;}
  .nav-clean a{ width:160px; height:44px; font-size:1.02rem; }
  .footer-grid{ grid-template-columns:1fr; }
  .footer-logo img{ height:82px; }
  .hero h1{ font-size:2.4rem; }
  .hero p{ font-size:1.35rem; }
}

/* ===========================
   WARMES PASTELL-OVERRIDE (SICHER)
   -> nur Variablen/Background überschreiben
   =========================== */
:root{
  --nav-bg:rgba(255,255,255,.88);
  --tile-hover:#fff4e6;
  --accent:#E9A23B;
  --text:#2A2A2A;
}
.section.bg-light{ background:#F4EFE9!important; }


/* ===== CONTENT SLAB (ab Downloads bis Kontakt) ===== */
.content-slab{
  background:transparent;
}
/* etwas Luft links/rechts auf kleinen Screens */
@media(max-width:1240px){
  .section-slab{
  max-width:1200px;
  margin:0 auto 30px auto;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  border-radius:22px;
  box-shadow:0 18px 50px rgba(0,0,0,.14);
  padding:2.5rem 1.5rem;
}
}
}
/* damit die slab sauber wirkt */
.content-slab .section{ padding-left:0; padding-right:0; }



/* ===== SECTION SLABS ===== */
.section-slab{
  max-width:1200px;
  margin:0 auto 30px auto;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  border-radius:22px;
  box-shadow:0 18px 50px rgba(0,0,0,.14);
  padding:2.5rem 1.5rem;
}

/* transparenter Abstand zwischen Bereichen */
.section-gap{
  height:30px;
  background:transparent;
}

@media(max-width:1240px){
  .section-slab{
  max-width:1200px;
  margin:0 auto 30px auto;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  border-radius:22px;
  box-shadow:0 18px 50px rgba(0,0,0,.14);
  padding:2.5rem 1.5rem;
}
}
}



/* Einheitliches Innen-Padding in Slabs (damit Abstände wirklich homogen sind) */
.section-slab{
  max-width:1200px;
  margin:0 auto 30px auto;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  border-radius:22px;
  box-shadow:0 18px 50px rgba(0,0,0,.14);
  padding:2.5rem 1.5rem;
}
.section-slab > section{ padding:2.5rem 1.5rem; }
@media(max-width:768px){
  .section-slab > section{ padding:2rem 1rem; }
}


/* FINAL: Abstand komplett transparent */
.section-gap{
  height:30px;
  background:transparent !important;
}

.section-slab + .section-gap{
  background:transparent !important;
}


/* Gleich große Polaroids */
.gallery img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  background:#fff;
  padding:10px 10px 40px 10px;
  border-radius:6px;
  box-shadow:0 12px 28px rgba(0,0,0,.25);
  transition:transform .25s ease, box-shadow .25s ease;
}
.gallery .col-6:nth-child(odd) img{ transform:rotate(-2deg); }
.gallery .col-6:nth-child(even) img{ transform:rotate(2deg); }
.gallery img:hover{ transform:rotate(0deg) scale(1.06); box-shadow:0 20px 45px rgba(0,0,0,.35); z-index:5; position:relative;}


.clamp-ueberuns{
  display:-webkit-box;
  -webkit-line-clamp:6;
  -webkit-box-orient:vertical;
  overflow:hidden;
}


/* BREAKING NEWS TICKER */
.ticker-wrap{
  width:100%;
  overflow:hidden;
  background:#d62828;
  color:#fff;
  font-weight:700;
  letter-spacing:.3px;
  border-top:3px solid #a4161a;
  border-bottom:3px solid #a4161a;
}

.ticker{overflow:hidden;white-space:nowrap;}
.ticker-track{display:flex;width:max-content;animation:tickerMove 28s linear infinite;}
.ticker-track span{padding-right:60px;}
@keyframes tickerMove{from{transform:translateX(0);}to{transform:translateX(-50%);}}

  to   { transform:translateX(-100%); }
}

/* =================================
   MOBILE OPTIMIERUNG
   ================================= */

@media (max-width: 900px){

  /* generelle Abstände */
  body{
    font-size:15px;
  }

  .section-slab{
    margin:20px 12px;
    padding:22px 16px;
    border-radius:18px;
  }

  /* Navbar */
  nav{
    padding:10px 14px !important;
  }

  .nav-links{
    gap:12px !important;
    font-size:14px;
  }

  /* Titelbereiche */
  h1{font-size:32px !important;}
  h2{font-size:24px !important;}
  h3{font-size:20px !important;}

  /* Hero */
  .hero{
    height:auto !important;
    padding:80px 15px 60px;
    text-align:center;
  }

  .hero-logo{
    width:120px !important;
    margin-bottom:15px;
  }

  /* Polaroid Galerie */
  .gallery{
    display:grid !important;
    grid-template-columns:1fr 1fr;
    gap:18px;
  }

  .gallery .col-6{
    margin:0 !important;
    padding:0 !important;
  }

  .gallery img{
    aspect-ratio:3/4;
    padding:8px 8px 30px 8px;
    transform:none !important;
  }

  /* Kontaktformular */
  input, textarea{
    font-size:16px !important; /* verhindert iOS Zoom */
    padding:12px !important;
  }

  textarea{
    min-height:130px;
  }

  button{
    width:100%;
    padding:14px;
    font-size:16px;
  }

  /* Popup Über uns */
  #ueberunsModal div{
    width:95% !important;
    max-height:85vh !important;
    padding:20px !important;
  }

  /* Lightbox Bild */
  .lightbox img{
    max-width:92% !important;
    max-height:85vh !important;
  }

  /* Ticker */
  .ticker{
    animation-duration:40s;
    font-size:14px;
  }

}

/* =========================
   MOBILE NAV FIX (WICHTIG)
   ========================= */

@media (max-width: 900px){

  /* Navbar Container */
  .top-bar{
    top:10px !important;
    width:calc(100% - 20px);
  }

  .top-bar.is-sticky{
    top:8px !important;
  }

  /* Nav selbst */
  .nav-clean{
    flex-wrap:nowrap !important;
    justify-content:flex-start !important;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    gap:8px;
    padding:10px;
  }

  /* Scrollbar verstecken */
  .nav-clean::-webkit-scrollbar{
    display:none;
  }

  /* Buttons */
  .nav-clean a{
    flex:0 0 auto;
    width:auto !important;
    height:auto !important;
    padding:10px 14px !important;
    font-size:0.95rem;
    white-space:nowrap;
  }

  /* Hero Abstand (damit nix überlappt) */
  .hero-content{
    padding-top:80px;
  }

}



/* ==============================
   MOBILE REAL FIXES (auto inserted)
   ============================== */
@media (max-width:900px){
  .hero, body{ background-attachment:scroll; }
  .hero{ min-height:auto; padding-top:140px; padding-bottom:60px; }
  .hero h1{ font-size:clamp(1.7rem, 6vw, 2.9rem); }
  .hero p{ font-size:clamp(1.1rem, 3.8vw, 1.65rem); }

  .nav-clean{ scroll-snap-type:x mandatory; padding-bottom:4px; }
  .nav-clean a{ scroll-snap-align:start; min-height:44px; padding:12px 16px !important; }

  .section-slab{ margin:18px 10px 26px 10px; padding:20px 14px; border-radius:16px; }
  .gallery.row{ --bs-gutter-x:12px; --bs-gutter-y:12px; }

  input, textarea, select, button{ font-size:16px !important; }
  section{ scroll-margin-top:120px; }
}


.nav-toggle{display:none;position:absolute;right:14px;top:12px;z-index:1200;border:none;background:rgba(255,255,255,.9);backdrop-filter:blur(6px);border-radius:12px;padding:10px 14px;font-size:22px;box-shadow:0 6px 18px rgba(0,0,0,.18);}
@media(max-width:900px){
  .nav-toggle{display:block;}
  .top-bar{position:fixed!important;top:10px;}
  .nav-clean{position:fixed;top:0;right:-100%;height:100vh;width:260px;flex-direction:column;justify-content:flex-start;padding:90px 18px 30px;border-radius:0;transition:right .35s ease;}
  .nav-clean.open{right:0;}
  .nav-clean a{width:100%;padding:14px;justify-content:flex-start;}
}


/* =========================
   INFO POPUP
   ========================= */
.site-popup{
  position:fixed;
  inset:0;
  z-index:5000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}

.site-popup.is-visible{
  display:flex;
}

.site-popup__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.58);
  backdrop-filter:blur(3px);
}

.site-popup__box{
  position:relative;
  z-index:1;
  width:min(560px, 100%);
  background:rgba(255,255,255,.98);
  border-radius:22px;
  padding:32px 30px 28px;
  text-align:center;
  box-shadow:0 24px 70px rgba(0,0,0,.32);
}

.site-popup__box h2{
  margin:0 35px 18px;
  font-weight:900;
}

.site-popup__box p{
  margin:0 auto 24px;
  max-width:460px;
  font-size:1.08rem;
  line-height:1.65;
}

.site-popup__close{
  position:absolute;
  top:12px;
  right:14px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#f3f4f6;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.site-popup__button{
  min-width:170px;
  font-weight:800;
}

body.popup-open{
  overflow:hidden;
}

@media(max-width:600px){
  .site-popup__box{
    padding:28px 18px 22px;
    border-radius:18px;
  }

  .site-popup__box h2{
    font-size:1.5rem !important;
  }
}


/* =========================
   ANMELDUNG GESPERRT / SPRECHBLASE
   ========================= */
.anmeldung-wrap{
  position:relative;
  display:inline-flex;
}

.anmeldung-gesperrt{
  cursor:not-allowed;
  opacity:.95;
}

.anmeldung-tooltip{
  position:absolute;
  left:50%;
  top:calc(100% + 14px);
  transform:translateX(-50%) translateY(-4px);
  width:min(330px, 80vw);
  padding:12px 14px;
  background:#111827;
  color:#fff;
  border-radius:12px;
  font-size:.95rem;
  font-weight:600;
  line-height:1.45;
  text-align:center;
  box-shadow:0 12px 30px rgba(0,0,0,.28);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index:3000;
}

.anmeldung-tooltip::before{
  content:"";
  position:absolute;
  left:50%;
  top:-8px;
  transform:translateX(-50%);
  border-left:8px solid transparent;
  border-right:8px solid transparent;
  border-bottom:8px solid #111827;
}

.anmeldung-tooltip.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateX(-50%) translateY(0);
}

@media(max-width:900px){
  .anmeldung-wrap{
    width:100%;
  }

  .anmeldung-wrap .nav-cta{
    width:100% !important;
  }

  .anmeldung-tooltip{
    left:12px;
    right:12px;
    top:calc(100% + 10px);
    width:auto;
    transform:translateY(-4px);
  }

  .anmeldung-tooltip.is-visible{
    transform:translateY(0);
  }

  .anmeldung-tooltip::before{
    left:28px;
    transform:none;
  }
}


/* =========================
   V7 MOBILE BACKGROUND FIX
   ========================= */
@media(max-width:900px){
  body{
    background-image:url("../../images/background.png") !important;
    background-position:center top !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
    background-attachment:scroll !important;
  }

  .hero{
    background-image:url("../../images/background.png") !important;
    background-position:center top !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
    background-attachment:scroll !important;
  }

  /* Damit die Sprechblase im geöffneten mobilen Menü sichtbar bleibt */
  .nav-clean{
    overflow:visible !important;
  }

  .anmeldung-wrap{
    position:relative;
    overflow:visible;
  }

  .anmeldung-tooltip{
    z-index:5005;
  }
}


/* =========================
   PDF VIEWER
   ========================= */
.pdf-viewer{
  position:fixed;
  inset:0;
  z-index:6000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}

.pdf-viewer.is-visible{
  display:flex;
}

.pdf-viewer__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.68);
  backdrop-filter:blur(3px);
}

.pdf-viewer__panel{
  position:relative;
  z-index:1;
  width:min(1100px, 96vw);
  height:min(850px, 92vh);
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 24px 70px rgba(0,0,0,.38);
  display:flex;
  flex-direction:column;
}

.pdf-viewer__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 18px;
  border-bottom:1px solid #e5e7eb;
  background:#fff;
}

.pdf-viewer__close{
  width:40px;
  height:40px;
  border:none;
  border-radius:50%;
  background:#f3f4f6;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.pdf-viewer__frame{
  flex:1;
  width:100%;
  border:0;
  background:#f3f4f6;
}

.pdf-viewer__fallback{
  display:none;
  padding:12px 16px;
  font-size:.9rem;
  text-align:center;
  background:#fff;
  border-top:1px solid #e5e7eb;
}

body.pdf-viewer-open{
  overflow:hidden;
}

@media(max-width:700px){
  .pdf-viewer{
    padding:8px;
  }

  .pdf-viewer__panel{
    width:100%;
    height:95vh;
    border-radius:14px;
  }

  .pdf-viewer__header{
    padding:10px 12px;
  }
}


/* =========================
   V12 MOBILE BACKGROUND – ROBUSTER FALLBACK
   ========================= */
@media(max-width:900px){
  html{
    min-height:100%;
    background:#111827;
  }

  body{
    position:relative;
    min-height:100vh;
    background-image:url("../../images/background.png") !important;
    background-position:center top !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
    background-attachment:scroll !important;
  }

  .hero{
    background-image:
      linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.55)),
      url("../../images/background.png") !important;
    background-position:center top !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
    background-attachment:scroll !important;
  }
}


/* =========================================================
   V12.6 – LOGO + NAVIGATION + MOBILE FIX
   ========================================================= */

/* Wird nur angezeigt, falls auf dem Server keine Logo-Datei gefunden wird. */
.hero-logo-fallback{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  max-width:min(680px,94vw);
  margin:0 auto 28px;
  padding:15px 22px;
  border-radius:18px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.28);
  color:#fff;
  font-weight:800;
  font-size:clamp(1rem,2vw,1.35rem);
  backdrop-filter:blur(5px);
  box-shadow:0 12px 30px rgba(0,0,0,.2);
}

.footer-logo-fallback{
  font-weight:800;
  text-align:center;
}

/* Die Navigation bleibt ab dem ersten Pixel Scrollen sichtbar. */
.top-bar{
  position:fixed !important;
  z-index:4000 !important;
}

/* Desktop: genug Abstand im Hero, damit die feste Navigation nichts verdeckt. */
@media(min-width:901px){
  .hero-content{
    padding-top:110px;
  }
}

@media(max-width:900px){
  /* Hamburger bleibt kompakt und nicht 100 % breit. */
  .nav-toggle{
    display:block;
    width:auto !important;
    min-width:52px;
    height:48px;
    padding:8px 14px !important;
    right:0;
    top:0;
  }

  .top-bar{
    position:fixed !important;
    width:calc(100% - 24px) !important;
    max-width:none;
    top:8px;
    z-index:4000 !important;
    justify-content:flex-end;
    pointer-events:none;
  }

  .top-bar .nav-toggle,
  .top-bar .nav-clean{
    pointer-events:auto;
  }

  /* Seitliches Menü */
  .nav-clean{
    position:fixed !important;
    top:0 !important;
    right:-100%;
    left:auto !important;
    width:min(82vw,300px) !important;
    height:100dvh !important;
    max-height:100dvh;
    padding:84px 18px 30px !important;
    border-radius:0 !important;
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    justify-content:flex-start !important;
    align-items:stretch !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    transition:right .3s ease;
  }

  .nav-clean.open{
    right:0 !important;
  }

  .nav-clean a,
  .anmeldung-wrap,
  .anmeldung-wrap .nav-cta{
    width:100% !important;
    flex:0 0 auto !important;
  }

  .nav-clean a{
    min-height:48px;
    justify-content:flex-start !important;
  }

  /* Logo auf dem Handy ausreichend groß */
  .hero-logo{
    width:min(360px,82vw) !important;
    max-height:180px;
    object-fit:contain;
    margin-bottom:22px;
  }

  .hero-logo-fallback{
    max-width:82vw;
    margin-bottom:22px;
    padding:12px 16px;
  }

  .hero{
    min-height:82vh !important;
    padding:105px 15px 55px !important;
  }

  .hero-content{
    padding-top:35px !important;
  }

  section{
    scroll-margin-top:90px;
  }
}


/* =========================================================
   POPUP – POLISHED DESIGN
   ========================================================= */

.site-popup{
  padding:20px;
}

.site-popup__backdrop{
  background:rgba(20,15,28,.72);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}

.site-popup__box{
  width:min(92vw,540px);
  max-height:calc(100dvh - 40px);
  overflow-y:auto;
  padding:30px 30px 26px;
  border-radius:26px;
  background:linear-gradient(180deg,rgba(255,251,244,.99),rgba(255,255,255,.99));
  box-shadow:0 28px 80px rgba(0,0,0,.34);
  border:1px solid rgba(255,255,255,.9);
}

.site-popup__close{
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  border-radius:50%;
  background:rgba(49,35,72,.08);
  color:#332742;
  font-size:1.45rem;
  line-height:1;
}

.site-popup__eyebrow{
  margin-bottom:10px;
  text-align:center;
  color:#84748d;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.site-popup__season-badge{
  width:max-content;
  max-width:100%;
  margin:0 auto 14px;
  padding:8px 14px;
  border-radius:999px;
  background:#f4eadf;
  color:#6f4d2f;
  font-size:.92rem;
  font-weight:800;
}

.site-popup__box h2{
  margin:0 40px 5px;
  text-align:center;
  color:#2b2340;
  font-size:clamp(1.7rem,4vw,2.35rem);
  line-height:1.1;
  letter-spacing:-.02em;
}

.site-popup__time{
  margin-bottom:22px;
  text-align:center;
  color:#6f6578;
  font-size:1.04rem;
  font-weight:700;
}

.site-popup__cards{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(49,35,72,.09);
  border-radius:18px;
  background:#fff;
  box-shadow:0 9px 28px rgba(34,24,52,.07);
}

.site-popup__card{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:14px;
  align-items:center;
  padding:17px 18px;
}

.site-popup__card + .site-popup__card{
  border-top:1px solid rgba(49,35,72,.075);
}

.site-popup__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:14px;
  background:#f4eff8;
  font-size:1.3rem;
}

.site-popup__label{
  margin-bottom:4px;
  color:#80758a;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
}

.site-popup__value{
  color:#2b2340;
  font-size:1rem;
  font-weight:800;
  line-height:1.4;
}

.site-popup__bis{
  display:inline-block;
  margin:0 5px;
  color:#9b8ea3;
  font-weight:700;
}

.site-popup__limit{
  margin:17px 0 0;
  padding:12px 16px;
  border-radius:14px;
  background:#fff3d5;
  border:1px solid #efd290;
  text-align:center;
  color:#63480c;
  font-size:.96rem;
}

.site-popup__note{
  margin:14px 5px 19px;
  text-align:center;
  color:#766d7e;
  font-size:.89rem;
  line-height:1.5;
}

.site-popup__button{
  width:100%;
  min-height:50px;
  border-radius:14px;
  font-weight:800;
}

@media(max-width:600px){
  .site-popup{padding:12px;}

  .site-popup__box{
    width:100%;
    max-height:calc(100dvh - 24px);
    padding:24px 16px 18px;
    border-radius:21px;
  }

  .site-popup__close{
    top:10px;
    right:10px;
    width:35px;
    height:35px;
  }

  .site-popup__eyebrow{font-size:.66rem;}

  .site-popup__season-badge{
    margin-bottom:12px;
    padding:7px 12px;
    font-size:.84rem;
  }

  .site-popup__box h2{
    margin:0 36px 4px;
    font-size:1.52rem;
  }

  .site-popup__time{
    margin-bottom:17px;
    font-size:.95rem;
  }

  .site-popup__card{
    grid-template-columns:42px 1fr;
    gap:10px;
    padding:14px 13px;
  }

  .site-popup__icon{
    width:40px;
    height:40px;
    border-radius:12px;
    font-size:1.15rem;
  }

  .site-popup__value{font-size:.93rem;}

  .site-popup__bis{
    display:block;
    margin:1px 0;
  }

  .site-popup__limit{
    margin-top:13px;
    padding:11px 12px;
    font-size:.89rem;
  }

  .site-popup__note{
    margin-bottom:15px;
    font-size:.84rem;
  }

  .site-popup__button{min-height:48px;}
}
