/* Dunlin Bar – shared styles (alle Seiten). Auto-generiert aus dem Entwurf. */

:root{
    --deep:#071A26;
    --petrol:#0D3B52;
    --petrol-light:#15536F;
    --cream:#F2E3B4;
    --gold:#C2A05C;
    --mist:#7FA6B5;
    --hairline:rgba(242,227,180,.16);
    --display:'Fraunces', Georgia, serif;
    --body:'Archivo', -apple-system, 'Segoe UI', sans-serif;
    /* Nav-Höhe (Logo + Padding) – EINE Quelle. Muss zu nav-padding + .nav-logo img passen.
       --nav-h = nicht gescrollt, --nav-h-min = gescrollt. Genutzt von der Karte-Leiste + JS. */
    --nav-h:112px;
    --nav-h-min:80px;
  }
  @media (max-width:1200px){
    :root{--nav-h:84px;--nav-h-min:64px}
  }
  *{margin:0;padding:0;box-sizing:border-box}
  body{
    background:var(--deep);color:var(--cream);
    font-family:var(--body);font-weight:300;line-height:1.6;
    overflow-x:clip;-webkit-font-smoothing:antialiased;
  }
  body::before{
    content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
    /* eigene GPU-Ebene: wird einmal komponiert statt bei jedem Scroll-Frame neu gezeichnet (iOS) */
    transform:translateZ(0);backface-visibility:hidden;
    background:
      radial-gradient(90% 70% at 20% 10%, rgba(21,83,111,.45) 0%, transparent 60%),
      radial-gradient(80% 60% at 85% 35%, rgba(13,59,82,.5) 0%, transparent 65%),
      radial-gradient(100% 80% at 50% 100%, rgba(4,14,21,.95) 0%, transparent 75%),
      var(--petrol);
  }
  body::after{
    content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.25;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012 0.016' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0.05  0 0 0 0 0.09  0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size:400px 400px;mix-blend-mode:overlay;
  }
  ::selection{background:var(--gold);color:var(--deep)}
  a{color:inherit;text-decoration:none}
  img{display:block;max-width:100%}
  a:focus-visible,button:focus-visible{outline:none}
  /* fokussierte Overlay-Container brauchen keinen sichtbaren Rahmen (nur für Focus-Trap fokussiert) */
  .mobile-menu:focus,.award-pop:focus{outline:none}
  /* Nav/Logo/Burger: jeglichen Fokus-Rahmen unterdrücken – auch den blauen Browser-Default
     (:focus, nicht nur :focus-visible) und etwaige Box-Shadow/Tap-Highlights */
  .nav-links a,.mobile-menu a,.nav-logo,.burger{-webkit-tap-highlight-color:transparent}
  .nav-links a:focus,.nav-links a:focus-visible,
  .mobile-menu a:focus,.mobile-menu a:focus-visible,
  .nav-logo:focus,.nav-logo:focus-visible,
  .burger:focus,.burger:focus-visible{outline:0 !important;box-shadow:none !important;border-color:transparent !important}

  /* ---------- ferment gauge ---------- */
  .gauge{position:fixed;top:0;right:28px;height:100svh;width:1px;background:var(--hairline);z-index:90}
  /* scaleY statt height animieren -> GPU-kompositiert, KEIN Layout-Recalc pro Scroll-Frame */
  .gauge-fill{position:absolute;bottom:0;left:0;width:1px;height:100%;transform:scaleY(0);transform-origin:bottom;background:var(--gold)}
  .gauge-label{
    position:absolute;bottom:14px;right:8px;writing-mode:vertical-rl;
    font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);opacity:.9;
  }

  /* ---------- nav ---------- */
  nav{
    position:fixed;top:0;left:0;right:0;z-index:100;
    display:flex;justify-content:space-between;align-items:center;
    padding:12px clamp(20px,5vw,64px);
    background:linear-gradient(180deg, rgba(7,26,38,.9), rgba(7,26,38,0));
    transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
  }
  /* Beim Scrollen kleiner werden (Padding + Logo schrumpfen) */
  nav.scrolled{
    background:rgba(7,26,38,.92);
    padding-top:8px;padding-bottom:8px;
    box-shadow:0 1px 0 var(--hairline), 0 18px 40px -28px rgba(0,0,0,.9);
  }
  nav.scrolled .nav-logo img{height:64px}
  /* Logo darf im Flex nicht schrumpfen und die Breite nicht gekappt werden
     (sonst staucht es: Höhe fix, Breite beschnitten). */
  .nav-logo{flex:0 0 auto}
  .nav-logo img{height:88px;width:auto;max-width:none;transition:height .4s ease}
  /* Nav-Items ganz nach rechts schieben (Logo bleibt links), direkt an die Flagge – kein Abstand. */
  .nav-links{margin-left:auto;display:flex;align-items:center;gap:clamp(16px,3vw,40px);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream)}
  .nav-links > a, .nav-drop > a{opacity:.8;transition:opacity .25s,color .25s}
  .nav-links > a:hover,.nav-links > a:focus-visible,
  .nav-drop > a:hover,.nav-drop > a:focus-visible{opacity:1;color:var(--gold)}
  .nav-drop{position:relative}
  .nav-drop-menu{
    position:absolute;top:100%;left:50%;transform:translateX(-50%);
    display:none;flex-direction:column;min-width:180px;
    background:var(--deep);border:1px solid var(--hairline);padding:8px 0;margin-top:10px;
  }
  /* invisible bridge across the gap so the menu stays open while moving to it */
  .nav-drop-menu::before{content:"";position:absolute;bottom:100%;left:0;right:0;height:14px}
  .nav-drop-menu a{white-space:nowrap}
  .nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{display:flex}
  .nav-drop-menu a{padding:8px 18px;opacity:.8}
  .nav-drop-menu a:hover{opacity:1;color:var(--gold)}

  /* Sprachschalter = nur die Flagge der Zielsprache (DE-Seite zeigt UK, EN-Seite zeigt DE) */
  .lang-switch{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
    padding:6px;opacity:.85;transition:opacity .25s,transform .25s}
  .lang-switch:hover,.lang-switch:focus-visible{opacity:1;transform:translateY(-1px);outline:none}
  .lang-switch .flag{display:block;width:26px;height:auto;border-radius:2px;
    box-shadow:0 0 0 1px rgba(255,255,255,.25)}
  .mobile-lang.lang-switch{padding:14px 0}
  .mobile-lang.lang-switch .flag{width:34px}

  .burger{display:none;background:none;border:0;cursor:pointer;padding:10px;flex-direction:column;gap:6px}
  .burger span{display:block;width:26px;height:2px;background:var(--cream);transform-origin:center;
    backface-visibility:hidden;transition:transform .3s ease,opacity .2s ease}
  .mobile-menu{
    position:fixed;inset:0;z-index:99;background:rgba(7,26,38,.98);
    display:flex;flex-direction:column;justify-content:center;align-items:center;gap:28px;
    opacity:0;pointer-events:none;transition:opacity .3s;
  }
  .mobile-menu.open{opacity:1;pointer-events:auto}
  .mobile-menu a{font-family:var(--display);font-size:32px;font-weight:300;color:var(--cream)}
  .mobile-menu a:hover{color:var(--gold)}
  .mobile-menu .mm-sub{font-family:var(--body);font-size:13px;letter-spacing:.2em;text-transform:uppercase;opacity:.7}
  body.menu-open .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  body.menu-open .burger span:nth-child(2){opacity:0}
  body.menu-open .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

  /* ---------- hero (100vh Szene 1) ---------- */
  .hero{
    min-height:100svh;display:flex;flex-direction:column;justify-content:center;
    padding:0 clamp(20px,5vw,64px);position:relative;overflow:hidden;
  }
  .bubbles{position:absolute;inset:0;pointer-events:none}
  .bubble{
    position:absolute;bottom:-30px;border-radius:50%;
    border:1px solid rgba(194,160,92,.4);background:rgba(194,160,92,.06);
  }
  .hero-eyebrow{
    display:flex;align-items:center;gap:14px;
    font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);
    margin-bottom:clamp(20px,3vh,36px);
  }
  .hero-eyebrow::before{content:"";width:48px;height:1px;background:var(--gold)}
  .hero h1{
    font-family:var(--display);font-weight:300;
    font-size:clamp(56px,15vw,200px);line-height:.92;letter-spacing:-.02em;color:var(--cream);
  }
  /* Zeilen-Maske für den Buchstaben-Reveal. Großzügiges Padding rundum (+ ausgleichendes
     negatives Margin) gibt kursiven Glyphen genug Platz, damit die overflow-Kante nichts
     beschneidet (auch nicht das gedrehte "B" während der Animation auf iOS). */
  /* nowrap: jede Zeile bleibt zusammen (Umbruch nur über die zwei .line-Spans). Sonst brechen
     die inline-block-Buchstaben mitten im Wort um ("Dunlin Ba"/"r"). */
  .hero h1 .line{display:block;overflow:hidden;white-space:nowrap;padding:.18em .24em;margin:-.18em -.24em}
  /* Index-Hero Desktop: Abstand zwischen „Dunlin" und „Bar" enger (nur Startseite) */
  @media (min-width:901px){
    .hero:not(.page-hero) h1{word-spacing:-.14em;font-size:clamp(50px,13.3vw,178px)}
    /* Hero-Logo vertikal etwas unter der Mitte (10% nach unten) */
    .hero:not(.page-hero) .hero-badge{transform:translate(-50%,-40%)}
  }
  .hero h1 .ch{display:inline-block}
  .hero h1 em{font-style:italic;color:var(--gold)}
  .hero-sub{
    margin-top:clamp(24px,4vh,48px);display:flex;flex-wrap:wrap;gap:10px 28px;
    font-size:clamp(12px,1.4vw,16px);letter-spacing:.12em;text-transform:uppercase;opacity:.85;
  }
  .hero-sub span+span::before{content:"·";margin-right:28px;color:var(--gold)}
  .scroll-cue{
    position:absolute;bottom:32px;left:clamp(20px,5vw,64px);z-index:3;
    font-size:11px;letter-spacing:.28em;text-transform:uppercase;opacity:.6;
    display:flex;align-items:center;gap:12px;
  }
  .scroll-cue::after{content:"";width:1px;height:42px;background:var(--cream);opacity:.5}
  /* FOUC vermeiden: Hero-Inhalt erst zeigen, wenn die Intro startet (JS macht sichtbar).
     Fallback: falls JS nicht läuft, nach 2.5s trotzdem einblenden. */
  .js .hero-eyebrow,.js .hero h1,.js .hero-sub,.js .scroll-cue{visibility:hidden;animation:dunlin-reveal 0s 2.5s forwards}
  /* Hero-Logo (Index + Unterseiten, Desktop + Mobil) vor dem ersten Paint verstecken -> kein Flash;
     GSAP blendet es ein, Fallback nach 2.5s falls JS fehlt. */
  .js .hero .hero-badge{visibility:hidden;animation:dunlin-reveal 0s 2.5s forwards}
  @keyframes dunlin-reveal{to{visibility:visible}}

  /* ---------- shared ---------- */
  /* Anker-Scroll wird komplett in dunlin.js gehandhabt (manuell mit Nav-Offset) – daher kein
     scroll-margin-top mehr nötig. */
  section{position:relative}
  .kicker{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--mist);margin-bottom:24px}
  .btn{
    display:inline-block;font-size:12px;letter-spacing:.24em;text-transform:uppercase;
    border:1px solid var(--gold);color:var(--cream);padding:16px 36px;
    transition:background .3s,color .3s,transform .3s;
  }
  .btn:hover,.btn:focus-visible{background:var(--gold);color:var(--deep);transform:translateY(-2px)}
  /* natives <button> auf denselben Look wie die <a class="btn">-CTAs bringen (transparent, kein
     UA-Hintergrund/-Font/-Rundung) */
  button.btn{appearance:none;-webkit-appearance:none;background:transparent;font-family:inherit;cursor:pointer}
  .js .reveal{opacity:0;transform:translateY(40px)}

  /* ---------- about (100vh Szene 2) ---------- */
  .about{
    display:grid;grid-template-columns:1.1fr .9fr;
    gap:clamp(32px,6vw,96px);align-items:center;
    min-height:100svh;
    padding:clamp(96px,16vh,180px) clamp(20px,5vw,64px);
    max-width:1440px;margin:0 auto;
  }
  .about h2{
    font-family:var(--display);font-weight:300;
    font-size:clamp(30px,4.2vw,56px);line-height:1.15;letter-spacing:-.01em;margin-bottom:32px;
  }
  .about h2 em{font-style:italic;color:var(--gold)}
  .about p{max-width:52ch;opacity:.86;margin-bottom:18px;font-size:clamp(15px,1.2vw,17px)}
  .about-actions{display:flex;align-items:center;gap:24px;margin-top:32px;flex-wrap:wrap}
  .about-media{
    position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:2px;
    background:linear-gradient(160deg,#0B3247,#06141E);border:1px solid var(--hairline);
  }
  .about-media img{width:100%;height:115%;object-fit:cover}
  .about-media::after{
    content:"DAS TEAM";position:absolute;bottom:16px;left:16px;
    font-size:10px;letter-spacing:.3em;color:var(--cream);opacity:.65;
  }

  .socials{display:flex;gap:14px}
  .socials a{
    width:44px;height:44px;display:flex;align-items:center;justify-content:center;
    background:var(--gold);color:var(--deep);border-radius:2px;transition:background .3s,transform .3s;
  }
  .socials a:hover,.socials a:focus-visible{background:var(--cream);transform:translateY(-2px)}
  .socials svg{width:20px;height:20px;fill:currentColor}

  /* ---------- award marquee ---------- */
  .award{
    padding:20px 0;
    border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
    overflow:hidden;white-space:nowrap;background:rgba(4,16,24,.45);
  }
  .marquee{display:inline-flex;will-change:transform}
  .marquee span{
    font-family:var(--display);font-weight:300;font-style:italic;
    font-size:clamp(34px,6vw,80px);line-height:1;color:var(--cream);
  }
  /* Trennstrich mit gleichem Abstand auf beiden Seiten */
  .marquee span::after{content:'—';margin:0 clamp(28px,4vw,56px);color:var(--cream)}
  .marquee span b{font-style:normal;font-weight:600;color:var(--gold)}

  /* ---------- award detail (100vh Szene 3) ---------- */
  .award-detail{
    display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center;
    min-height:100svh;
    padding:clamp(80px,12vh,150px) clamp(20px,5vw,64px);
    max-width:1440px;margin:0 auto;
  }
  .award-detail h2{
    font-family:var(--display);font-weight:300;
    font-size:clamp(30px,4.2vw,56px);line-height:1.15;margin-bottom:24px;
  }
  .award-detail h2 em{font-style:italic;color:var(--gold)}
  .award-detail p{opacity:.86;max-width:48ch}
  .award-media{
    overflow:hidden;border-radius:2px;border:1px solid var(--hairline);
    aspect-ratio:768/523;
  }
  .award-media img{width:100%;height:100%;object-fit:cover}

  /* ---------- statement ---------- */
  /* sticky Slide-over (Mobil + Desktop identisch): Statement bleibt stehen, Karte gleitet per
     z-index darüber (nativer, perfekt reversibler Overlap). Der Fade kommt aus dunlin.js. */
  .statement{
    position:sticky;top:0;height:100svh;z-index:0;pointer-events:none;
    display:flex;align-items:center;justify-content:center;
    text-align:center;border-top:1px solid var(--hairline);
    padding:0 clamp(20px,8vw,120px);
  }
  /* eigene Compositing-Ebene -> das Überlappen mit dem gestuckten Statement wird auf der GPU
     kompositiert statt pro Frame neu gemalt (deutlich smoother beim Drüberscrollen). */
  .statement + .karte{position:relative;z-index:1;will-change:transform}
  .statement p{
    font-family:var(--display);font-weight:300;
    font-size:clamp(26px,4vw,54px);line-height:1.35;max-width:24ch;
  }
  .statement em{font-style:italic;color:var(--gold)}

  /* ---------- signatures (gepinnte Szene 5, mobil vertikal) ---------- */
  .signatures{overflow:hidden}
  .sig-head{
    min-height:38svh;display:flex;flex-direction:column;justify-content:flex-end;
    padding:clamp(80px,12vh,140px) clamp(20px,5vw,64px) clamp(32px,5vh,56px);
  }
  .sig-head h2{
    font-family:var(--display);font-weight:300;
    font-size:clamp(36px,6vw,84px);letter-spacing:-.02em;line-height:1.05;
  }
  .sig-head p{margin-top:20px;max-width:60ch;opacity:.82}
  .sig-track{
    display:flex;gap:clamp(20px,3vw,40px);
    padding:0 clamp(20px,5vw,64px) clamp(80px,12vh,140px);
    width:max-content;align-items:stretch;
  }
  .sig-card{
    width:clamp(240px,25vw,360px);min-height:50vh;flex-shrink:0;
    border:1px solid var(--hairline);border-radius:2px;
    padding:clamp(24px,2.5vw,40px);
    background:linear-gradient(180deg,rgba(11,50,71,.55),rgba(4,16,24,.3));
    display:flex;flex-direction:column;justify-content:space-between;
    transition:border-color .3s;
  }
  .sig-card:hover{border-color:rgba(194,160,92,.5)}
  .sig-card .num{font-size:11px;letter-spacing:.3em;color:var(--mist);text-transform:uppercase}
  .sig-card h3{
    font-family:var(--display);font-weight:300;font-style:italic;
    font-size:clamp(32px,3.4vw,52px);color:var(--gold);line-height:1.05;
    overflow-wrap:break-word;hyphens:auto;
  }
  .sig-card .sub{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--mist)}

  /* ---------- karte / flipbook (100vh Szene 6) ---------- */
  .karte{
    border-top:1px solid var(--hairline);
    min-height:100svh;display:flex;flex-direction:column;justify-content:center;
    padding:clamp(80px,14vh,160px) clamp(20px,5vw,64px);
    max-width:1440px;margin:0 auto;text-align:center;
  }
  .karte h2{
    font-family:var(--display);font-weight:300;
    font-size:clamp(30px,4.5vw,64px);line-height:1.15;margin-bottom:clamp(36px,6vh,56px);
  }
  .karte h2 em{font-style:italic;color:var(--gold)}
  .flipbook-stage{
    position:relative;
    max-width:1000px;width:100%;margin:0 auto clamp(28px,4vh,44px);
    min-height:640px;display:flex;align-items:center;justify-content:center;
  }
  /* sicher ausblenden, bis der Nutzer „Karte anschauen" klickt (überschreibt display:flex) */
  .flipbook-stage[hidden]{display:none}
  .flip-cta{margin:clamp(10px,1.6vh,16px) 0}
  #flipbook{width:100%;max-width:900px;margin:0 auto}
  #flipbook canvas,#flipbook img{box-shadow:0 20px 60px rgba(0,0,0,.5)}
  /* Lade-Text mittig in der Stage (unabhängig von der #flipbook-Breite) */
  .flip-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:90%;
    text-align:center;font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.6}
  .flip-controls{
    display:flex;align-items:center;justify-content:center;gap:24px;
    margin-bottom:clamp(32px,5vh,48px);
  }
  /* keep the controls' space reserved while hidden so building the flipbook
     doesn't shift the sections below (which would mis-place their scroll triggers) */
  .flip-controls[hidden]{display:flex;visibility:hidden}
  .flip-controls button{
    background:none;border:1px solid var(--gold);color:var(--cream);
    width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:18px;line-height:1;
    transition:background .3s,color .3s;
  }
  .flip-controls button:hover{background:var(--gold);color:var(--deep)}
  .flip-controls .pageinfo{font-size:12px;letter-spacing:.2em;opacity:.7;min-width:80px}
  .karte .note{font-size:12px;letter-spacing:.18em;text-transform:uppercase;opacity:.6;margin-bottom:28px}

  /* ---------- Karte 2026: Kategorie-Sprungleiste (fixed unter der Nav) ----------
     In Elementor liegt die Leiste in einer kurzen Sektion → position:sticky hält dort
     nicht über die Drinks-Sektionen. Daher fixed; JS reserviert die Höhe per Platzhalter
     und schaltet .compact synchron zur (schrumpfenden) Nav (Scroll > 60). */
  .karte-cats{
    position:fixed;left:0;right:0;top:var(--nav-h);z-index:80;
    display:flex;flex-wrap:wrap;justify-content:center;gap:8px;
    padding:12px clamp(12px,4vw,40px);
    background:rgba(7,26,38,.96);border-bottom:1px solid var(--hairline);
    transition:top .4s ease;
  }
  .karte-cats.compact{top:var(--nav-h-min)}
  .karte-cats a{
    font-family:var(--display);font-weight:300;font-size:clamp(12px,1.3vw,15px);
    letter-spacing:.12em;text-transform:uppercase;color:var(--cream);opacity:.6;
    padding:8px 16px;border:1px solid var(--hairline);border-radius:999px;white-space:nowrap;
    transition:opacity .25s,color .25s,border-color .25s,background .25s;
  }
  .karte-cats a:hover{opacity:1;color:var(--gold);border-color:rgba(194,160,92,.5)}
  .karte-cats a.active{opacity:1;color:var(--deep);background:var(--gold);border-color:var(--gold)}
  /* Anker-Ziele unter der Sprungleiste freihalten (Fallback, falls JS nicht greift) */
  .elementor-menu-anchor{scroll-margin-top:150px}
  @media (max-width:900px){
    .karte-cats{gap:6px;padding:10px 12px}
    .karte-cats a{padding:7px 12px;font-size:12px;letter-spacing:.08em}
  }

  /* ---------- wine (100vh Szene 7) ---------- */
  .wine{
    display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,96px);align-items:center;
    min-height:100svh;
    padding:clamp(96px,16vh,200px) clamp(20px,5vw,64px);
    max-width:1440px;margin:0 auto;
  }
  .wine-media{
    overflow:hidden;border-radius:2px;border:1px solid var(--hairline);
    aspect-ratio:3/4;
  }
  .wine-media img{width:100%;height:108%;object-fit:cover}
  .wine h2{
    font-family:var(--display);font-weight:300;
    font-size:clamp(30px,4.5vw,64px);line-height:1.15;letter-spacing:-.01em;margin-bottom:24px;
  }
  .wine h2 em{font-style:italic;color:var(--gold)}
  .wine p{opacity:.84;max-width:48ch;margin-bottom:36px}

  /* ---------- contact (100vh Szene 8) ---------- */
  .contact-wrap{
    border-top:1px solid var(--hairline);
    min-height:100svh;display:flex;flex-direction:column;justify-content:center;
    padding:clamp(80px,12vh,140px) clamp(20px,5vw,64px);
    max-width:1440px;margin:0 auto;width:100%;
  }
  .contact-head{text-align:center;margin-bottom:clamp(48px,8vh,80px)}
  .contact-head h2{font-family:var(--display);font-weight:300;font-size:clamp(36px,5vw,72px);margin-bottom:18px}
  .contact-head h2 em{font-style:italic;color:var(--gold)}
  .contact-head p{opacity:.82;max-width:52ch;margin:0 auto}
  .contact{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,64px);margin-bottom:clamp(48px,8vh,72px)}
  .contact h4{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--mist);margin-bottom:18px;font-weight:500}
  .contact p,.contact a{font-size:15px;opacity:.88;line-height:1.8}
  .contact a:hover{color:var(--gold);opacity:1}
  .map{
    position:relative;width:100%;aspect-ratio:21/9;min-height:340px;
    border:1px solid var(--hairline);border-radius:2px;
    overflow:hidden;background:rgba(4,16,24,.5);
  }
  .map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;
    filter:grayscale(.45) sepia(.1) hue-rotate(160deg) saturate(.85) brightness(.92)}
  /* Desktop: Infos (Adresse · Kontakt · Öffnungszeiten) links untereinander, Karte rechts daneben */
  @media (min-width:901px){
    .contact-wrap{display:grid;align-content:center;justify-content:center;
      grid-template-columns:max-content minmax(0,560px);
      grid-template-areas:"head head" "info map";
      gap:clamp(28px,4vh,52px) clamp(20px,2.4vw,40px)}
    .contact-head{grid-area:head;margin-bottom:0}
    .contact{grid-area:info;grid-template-columns:1fr;gap:clamp(26px,4vh,44px);margin-bottom:0;align-self:center}
    .map{grid-area:map;align-self:stretch;aspect-ratio:auto;min-height:clamp(380px,52vh,540px)}
  }

  /* ---------- footer ---------- */
  footer{border-top:1px solid var(--hairline);padding:32px clamp(20px,5vw,64px)}
  .foot-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px}
  .foot-brand{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
  .foot-brand img{height:50px;width:auto;opacity:.9}
  .legal{display:flex;gap:24px;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
  .legal a{opacity:.65;transition:opacity .25s,color .25s}
  .legal a:hover{opacity:1;color:var(--gold)}
  .payments{
    display:flex;flex-wrap:wrap;gap:10px;align-items:center;
    margin-top:24px;padding-top:20px;border-top:1px solid var(--hairline);
  }
  .payments img{height:26px;width:auto;background:var(--cream);border-radius:3px;padding:3px 6px}
  .payments .pay-label{font-size:10px;letter-spacing:.26em;text-transform:uppercase;opacity:.55;margin-right:10px}

  /* ---------- mobile layout ---------- */
  @media (max-width:900px){
    .about,.award-detail,.wine{grid-template-columns:1fr;min-height:auto;padding-top:96px;padding-bottom:96px}
    .about-media{order:-1;max-width:420px}
    .wine-media{max-width:420px;margin:0 auto}
    /* Adresse links · Kontakt rechts · Öffnungszeiten zentriert darunter */
    .contact{grid-template-columns:1fr 1fr;gap:30px 24px}
    .contact-col:nth-child(1){text-align:left}
    .contact-col:nth-child(2){text-align:right}
    .contact-col:nth-child(3){grid-column:1/-1;text-align:center}
    .contact-wrap{min-height:auto;padding-top:96px;padding-bottom:96px}
    .karte{min-height:auto;padding-top:96px;padding-bottom:96px}
    .gauge{display:none}
    .nav-links{display:none}
    .nav-lang{display:none}   /* Top-Bar-Flagge aus -> nicht mittig; Flagge bleibt im Mobilmenü */
    .burger{display:flex}
    .map{aspect-ratio:4/3}
    /* Signatures: mobil vertikal statt horizontal gepinnt */
    .sig-head{min-height:auto;justify-content:flex-start}
    .sig-track{flex-direction:column;width:auto;padding:0 20px 80px}
    .sig-card{width:100%;min-height:34vh}
    .statement p{max-width:18ch}
  }
  @media (prefers-reduced-motion:reduce){
    .js .reveal{opacity:1;transform:none}
    .bubble{display:none}
  }

  /* ---------- Mobile-Performance (iPhone): teure Compositing-Effekte beim Scrollen vermeiden ---------- */
  @media (max-width:900px){
    /* fixe Rausch-Textur mit mix-blend-mode wird sonst jeden Scroll-Frame neu komponiert (teuer auf iOS) */
    body::after{display:none}
  }


  /* ---------- subpage additions ---------- */
  .page-hero{min-height:64svh;padding-top:clamp(120px,18vh,200px)}
  .page-hero h1{font-size:clamp(44px,10vw,140px)}
  /* fifty-best: Hintergrund-Logo passend/kleiner halten (nicht aus dem Container) */
  .page-hero .hero-badge{width:clamp(180px,30vw,360px);opacity:.5}
  /* Desktop-Unterseiten: Hero wieder wie ursprünglich (volle 64svh, normaler Abstand,
     keine Fade-Logik). Kein Scroll-Icon (nur Mobil). fifty-best-Logo etwas tiefer. */
  @media (min-width:901px){
    .page-hero .hero-badge{transform:translate(-50%,-25%)}
    /* Unterseiten-Hero-Logos auf Desktop: Dunlin und fifty-best je nochmals +20% */
    .page-hero .hero-badge:not(.hero-badge--award){width:clamp(281px,47vw,562px)}
    .page-hero .hero-badge--award{width:clamp(216px,36vw,432px)}
    /* Volle Höhe, Inhalt vertikal zentriert; Scroll-Icon sitzt am unteren Bildschirmrand. */
    .page-hero{min-height:100svh;justify-content:center;padding-top:0}
    /* CTAs in der Section direkt nach dem Hero nur auf Mobil zeigen */
    .page-hero + section .about-actions{display:none}
  }
  .page-media{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:2px;
    background:linear-gradient(160deg,#0B3247,#06141E);border:1px solid var(--hairline)}
  .page-media img{width:100%;height:108%;object-fit:cover}
  .features{max-width:1280px;margin:0 auto;padding:clamp(40px,9vh,110px) clamp(20px,5vw,64px)}
  .feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:clamp(16px,2vw,26px);margin-top:clamp(28px,4vh,44px)}
  .feature{border:1px solid var(--hairline);border-radius:2px;overflow:hidden;
    padding:clamp(20px,1.8vw,28px);min-height:124px;
    display:flex;flex-direction:column;justify-content:space-between;
    background:linear-gradient(180deg,rgba(11,50,71,.5),rgba(4,16,24,.28));
    transition:border-color .35s,transform .35s}
  .feature:hover{border-color:rgba(194,160,92,.5);transform:translateY(-3px)}
  .feature .n{font-size:11px;letter-spacing:.3em;color:var(--mist);text-transform:uppercase}
  .feature h3{font-family:var(--display);font-weight:300;
    font-size:clamp(16px,1.35vw,20px);line-height:1.2;margin-top:16px;color:var(--cream);
    overflow-wrap:anywhere;word-break:break-word;hyphens:auto}
  .shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    gap:clamp(16px,2vw,26px);margin-top:clamp(28px,4vh,44px)}
  .product{border:1px solid var(--hairline);border-radius:2px;overflow:hidden;
    display:flex;flex-direction:column;
    background:linear-gradient(180deg,rgba(11,50,71,.5),rgba(4,16,24,.28));
    transition:border-color .35s,transform .35s}
  .product:hover{border-color:rgba(194,160,92,.5);transform:translateY(-3px)}
  .product .thumb{position:relative;aspect-ratio:1/1;overflow:hidden;border-bottom:1px solid var(--hairline);
    background:linear-gradient(135deg,rgba(21,83,111,.45),rgba(4,16,24,.5))}
  .product .thumb .pimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
  .product .thumb .pimg-2{opacity:0;transition:opacity .45s ease}
  /* Desktop: 2. Bild beim Hover einblenden (nur auf Geräten mit echtem Hover) */
  @media (hover:hover){ .product:hover .thumb .pimg-2{opacity:1} }
  /* Mobil/JS: aktives Bild über Klasse */
  .product .thumb.show-2 .pimg-2{opacity:1}
  /* Swipe-Dots (nur Mobil, nur bei 2 Bildern – siehe Mobile-Block) */
  .product .thumb .dots{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);
    display:none;gap:7px;z-index:2}
  .product .thumb .dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.45);
    border:0;padding:0;cursor:pointer;transition:background .25s}
  .product .thumb .dot.active{background:var(--gold)}
  .product .body{padding:clamp(16px,1.4vw,22px);display:flex;flex-direction:column;gap:10px;flex:1}
  .product h3{font-family:var(--display);font-weight:300;font-size:clamp(17px,1.4vw,21px);
    line-height:1.2;color:var(--cream);overflow-wrap:anywhere;hyphens:auto}
  .product .meta{font-size:12px;letter-spacing:.03em;line-height:1.7;opacity:.72;margin-top:auto}
  .product .meta .price{display:block;color:var(--gold);opacity:.95;
    text-transform:uppercase;letter-spacing:.12em;font-size:11px;margin-bottom:4px}
  .image-band{max-width:1280px;margin:0 auto;padding:clamp(20px,4vh,60px) clamp(20px,5vw,64px)}
  .image-band .frame{overflow:hidden;border-radius:2px;border:1px solid var(--hairline);aspect-ratio:16/9}
  .image-band img{width:100%;height:110%;object-fit:cover}
  .prose-section{max-width:880px;margin:0 auto;padding:clamp(32px,6vh,80px) clamp(20px,5vw,64px);text-align:center}
  .prose-section h2{font-family:var(--display);font-weight:300;
    font-size:clamp(26px,3.6vw,46px);line-height:1.2;margin-bottom:24px}
  .prose-section h2 em{font-style:italic;color:var(--gold)}
  .prose-section p{opacity:.86;margin:0 auto 18px;max-width:72ch;font-size:clamp(15px,1.2vw,17px)}
  .note-band{max-width:880px;margin:0 auto;padding:clamp(10px,2vh,24px) clamp(20px,5vw,64px) clamp(20px,4vh,48px);
    font-size:13px;letter-spacing:.04em;opacity:.7;text-align:center}
  .hero-logo{margin-top:clamp(24px,4vh,40px)}
  .hero-logo img{width:clamp(150px,18vw,230px);filter:drop-shadow(0 10px 30px rgba(0,0,0,.5))}
  .fifty-logo{max-width:200px;margin:clamp(24px,4vh,40px) auto 0;filter:drop-shadow(0 8px 30px rgba(0,0,0,.5))}
  .page-cta{border-top:1px solid var(--hairline);text-align:center;
    padding:clamp(60px,12vh,140px) clamp(20px,5vw,64px)}
  .page-cta h2{font-family:var(--display);font-weight:300;
    font-size:clamp(28px,4vw,56px);margin-bottom:28px}
  .page-cta h2 em{font-style:italic;color:var(--gold)}

  /* ---------- award popup (Europe's 50 Best Bars) ---------- */
  .award-pop{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
    padding:24px;background:rgba(4,12,18,.72);backdrop-filter:blur(4px);
    opacity:0;pointer-events:none;transition:opacity .5s ease}
  .award-pop.show{opacity:1;pointer-events:auto}
  .award-pop-card{position:relative;max-width:440px;width:100%;text-align:center;
    background:linear-gradient(180deg,#0C2E40,#06141E);border:1px solid var(--hairline);border-radius:3px;
    padding:clamp(30px,5vw,52px);box-shadow:0 40px 100px -30px rgba(0,0,0,.9);
    max-height:90vh;overflow-y:auto;
    transform:translateY(22px) scale(.96);transition:transform .5s ease}
  .award-pop.show .award-pop-card{transform:none}
  .award-pop-logo{width:clamp(150px,42vw,190px);height:auto;margin:0 auto 22px}
  .award-pop-eyebrow{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
  .award-pop-card h3{font-family:var(--display) !important;font-weight:300;color:var(--cream) !important;
    font-size:clamp(22px,3vw,30px);line-height:1.2;margin-bottom:14px}
  .award-pop-text{color:var(--cream) !important;opacity:.85;font-size:15px;line-height:1.6;margin:0 auto 26px;max-width:34ch}
  .award-pop-close{position:absolute;top:8px;right:8px;width:40px;height:40px;
    display:flex;align-items:center;justify-content:center;background:none;border:0;color:var(--cream);
    font-family:var(--body);font-size:26px;line-height:1;cursor:pointer;opacity:.6;transition:opacity .25s,color .25s}
  .award-pop-close:hover,.award-pop-close:focus-visible{opacity:1;color:var(--gold)}

  /* ---------- Fix: Elementor erzwingt img{height:auto} – feste/relative Bildhöhen zurückholen ---------- */
  .about-media img{height:115% !important}
  .award-media img{height:100% !important}
  .wine-media img{height:108% !important}
  .page-media img{height:108% !important}
  .image-band img{height:110% !important}
  .foot-brand img{height:50px !important}
  .payments img{height:26px !important}
  /* Flipbook-Seiten nie verzerren (überschreibt Elementor img-Regeln) */
  #flipbook img,#flipbook canvas{width:100% !important;height:100% !important;max-width:none !important;object-fit:contain !important}

  /* ---------- Überschriften: feste Creme-Farbe (OceanWP setzt sonst h2{color:#929292}) ---------- */
  .about h2,.award-detail h2,.sig-head h2,.karte h2,.wine h2,.contact-head h2,
  .page-cta h2,.prose-section h2,.features h2,.statement p{color:var(--cream)}

  /* ---------- Sektions-Überschrift auf Unterseiten (z.B. "Unsere Leistungen") ---------- */
  .features h2{font-family:var(--display);font-weight:300;
    font-size:clamp(30px,4.6vw,60px);line-height:1.12;letter-spacing:-.01em;
    margin-bottom:clamp(28px,4.5vh,52px)}
  .features h2 em{font-style:italic;color:var(--gold)}
  /* größerer Hinweis-/Untertitel-Satz (z.B. Abhol-Hinweis) */
  .lead-note{max-width:62ch;margin:0 auto clamp(22px,3.5vh,38px);text-align:center;
    font-family:var(--body);font-size:clamp(16px,1.5vw,20px);line-height:1.55;
    color:var(--cream);opacity:.8}
  .features h2:has(+ .lead-note){margin-bottom:14px}

  /* ---------- Aufzählungsliste (Unterseiten – ersetzt das Karten-Grid) ---------- */
  .dunlin-list{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 clamp(40px,6vw,96px);margin-top:clamp(28px,4vh,44px)}
  .dunlin-list li{position:relative;padding:20px 0 20px 40px;border-bottom:1px solid var(--hairline);
    font-size:clamp(17px,1.7vw,24px);line-height:1.4;opacity:.92;font-family:var(--body);color:var(--cream)}
  .dunlin-list li::before{content:"";position:absolute;left:0;top:33px;width:22px;height:1px;background:var(--gold)}
  @media (max-width:600px){.dunlin-list{grid-template-columns:1fr;gap:0}
    .dunlin-list li{padding:16px 0 16px 32px;font-size:clamp(16px,4.5vw,19px)}
    .dunlin-list li::before{top:27px;width:16px}}

  /* ---------- Leistungs-Sektion (Unterseiten): zentrierte Überschrift, oben bündig ---------- */
  .features{padding-top:0}
  .features h2{text-align:center}
  /* Abschnitt direkt vor der Leistungs-Sektion enger (nur Unterseiten, nicht Startseite) */
  .about:has(+ .features){padding-bottom:50px}

  /* ---------- Großes überlappendes Hero-Logo (nur Startseite) ---------- */
  .hero-badge{position:absolute;z-index:2;pointer-events:none;
    left:73%;right:auto;top:50%;transform:translate(-50%,-38%);
    width:clamp(504px,70vw,1030px);opacity:.55}
  .hero-badge img{width:100%;height:auto !important;display:block}
  /* Hero-Texte über dem Logo halten, Logo überlappt nur die rechte Leerfläche */
  .hero-eyebrow,.hero h1,.hero-sub{position:relative;z-index:3}
  @media (max-width:900px){
    .hero-badge{width:clamp(264px,70vw,430px);opacity:.55;left:auto;right:-28px;top:auto;bottom:4%;transform:none}
    /* Unterseiten (nicht Index, nicht Award): Hero-Logo mobil ~50% größer + horizontal zentriert */
    .page-hero .hero-badge:not(.hero-badge--award){
      width:clamp(317px,80vw,516px);left:52%;right:auto;bottom:0%;transform:translateX(-50%)}
    /* fifty-best: Logo auf Mobil etwas weiter nach links + 20% größer */
    .hero-badge--award{right:5%;width:clamp(317px,84vw,516px)}
  }

  /* responsive Zeilenumbrüche: .brk-d nur Desktop, .brk-m nur Mobil */
  .brk-d{display:none}
  @media (min-width:901px){ .brk-d{display:inline} .brk-m{display:none} }

  /* zwei gestapelte Hero-Eyebrows (nur Startseite): enger Abstand + etwas höher */
  .hero-eyebrow:has(+ .hero-eyebrow){margin-top:clamp(-44px,-5vh,-18px);margin-bottom:10px}
  /* mehr Abstand zwischen (unterster) Eyebrow und Titel */
  .hero-eyebrow:not(:has(+ .hero-eyebrow)){margin-bottom:clamp(26px,4vh,46px)}

  /* ---------- Karte/Signatures-Intro über dem Flipbook ---------- */
  .karte h2{margin-bottom:20px}
  .karte-intro{max-width:60ch;margin:0 auto clamp(40px,6vh,60px);
    opacity:.86;font-size:clamp(15px,1.2vw,18px)}
  .prose-section h2{text-align:center}

  /* ---------- Rechtstext-Seiten (Datenschutz / Impressum) ---------- */
  .legal-prose{max-width:840px;margin:0 auto;
    padding:clamp(16px,4vh,48px) clamp(20px,5vw,64px) clamp(56px,10vh,110px);color:var(--cream)}
  .legal-prose h2{font-family:var(--display);font-weight:300;color:var(--cream);
    font-size:clamp(22px,3vw,34px);line-height:1.2;margin:clamp(30px,4.5vh,48px) 0 14px}
  .legal-prose h3{font-family:var(--display);font-weight:400;color:var(--gold);
    font-size:clamp(17px,2vw,22px);line-height:1.25;margin:24px 0 10px}
  .legal-prose h4{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--mist);margin:18px 0 8px}
  .legal-prose p{opacity:.82;font-size:clamp(14px,1.05vw,16px);line-height:1.75;margin-bottom:14px}
  .legal-prose a{color:var(--gold);text-decoration:underline;text-underline-offset:2px;word-break:break-word}
  .legal-prose ul,.legal-prose ol{margin:0 0 14px 22px;opacity:.82;
    font-size:clamp(14px,1.05vw,16px);line-height:1.75}
  .legal-prose li{margin-bottom:6px}
  .legal-prose strong,.legal-prose b{color:var(--cream);font-weight:500}

  /* ---------- Event-/Termin-Liste (Events-Seite) ---------- */
  .event-list{list-style:none;max-width:780px;margin:clamp(28px,4vh,46px) auto 0}
  .event-list li{display:flex;gap:clamp(14px,2.5vw,32px);align-items:baseline;
    padding:18px 0;border-bottom:1px solid var(--hairline)}
  .event-list .ev-date{flex:0 0 auto;min-width:104px;color:var(--gold);font-weight:500;
    font-size:clamp(12px,1vw,14px);letter-spacing:.14em;text-transform:uppercase}
  .event-list .ev-name{color:var(--cream);opacity:.92;font-size:clamp(15px,1.3vw,19px);line-height:1.4}
  @media (max-width:560px){.event-list li{flex-direction:column;gap:4px;padding:14px 0}}

  /* ---------- Elementor Price List im Dunlin-Stil (Karte-Seite /karte-2026/) ---------- */
  .elementor-price-list{list-style:none;margin:0;padding:0}
  .elementor-price-list-item{padding:16px 0;border-bottom:1px solid var(--hairline)}
  .elementor-price-list-item:hover{background:transparent}
  .elementor-price-list-title{font-family:var(--display) !important;font-weight:300;
    color:var(--cream) !important;font-size:clamp(17px,1.4vw,22px)}
  .elementor-price-list-price{font-family:var(--body) !important;color:var(--gold) !important;
    font-weight:500;letter-spacing:.06em;font-size:clamp(14px,1.1vw,16px)}
  .elementor-price-list-separator{border-bottom-style:dotted !important;border-bottom-color:var(--hairline) !important}
  .elementor-price-list-description{color:var(--cream) !important;opacity:.6;
    font-family:var(--body) !important;font-size:clamp(12px,1vw,14px);line-height:1.5}
  /* Elementor-Überschriften (Kategorien wie „Gin & Tonic") im Display-Font/Creme */
  .elementor-heading-title{font-family:var(--display) !important;color:var(--cream) !important}

  /* HTML-Widget immer volle Breite: verhindert versehentlich gesetzte Widget-Breiten
     (z. B. 89.631% auf der DE-Seite -> Versatz/Leerraum rechts). */
  .elementor-widget-html{width:100% !important;max-width:100% !important;--container-widget-width:100% !important}

  /* ---------- Desktop-Navigation: flach, rechtsbündig, feine Trenner ---------- */
  /* Logo links, Nav-Items per margin-left:auto ganz nach rechts – bündig an der Flagge (gap:0). */
  nav{justify-content:flex-start;gap:0}
  .nav-links{gap:0;font-size:clamp(10px,.82vw,12px);letter-spacing:.09em;flex-wrap:nowrap}
  .nav-links > a{padding:5px clamp(8px,.9vw,15px);white-space:nowrap;position:relative}
  .nav-links > a:not(:last-child)::after{content:"";position:absolute;right:0;top:50%;
    transform:translateY(-50%);width:1px;height:12px;background:var(--hairline)}
  /* Pipe zwischen Kontakt/Contact und der Flagge (gleicher Trenner-Stil) */
  .nav-lang.lang-switch{position:relative;padding-left:clamp(10px,1vw,16px)}
  .nav-lang.lang-switch::before{content:"";position:absolute;left:0;top:50%;
    transform:translateY(-50%);width:1px;height:12px;background:var(--hairline)}
  .nav-links > a[aria-current="page"],
  .mobile-menu a[aria-current="page"]{color:var(--gold);opacity:1}
  /* zu schmal für 10 Reiter -> Burger-Menü */
  @media (max-width:1200px){
    nav{justify-content:space-between}   /* Burger bleibt rechts (flex-start gilt nur für die volle Nav >1200) */
    .nav-links{display:none}
    .nav-lang{display:none}   /* Top-Bar-Flagge aus -> nicht mittig; Flagge bleibt im Mobilmenü */
    .burger{display:flex}
    /* Mobilmenü-Styling gilt ab dem Burger-Breakpoint (1200), nicht erst ab 900:
       sonst hat das Menü auf Tablets (901–1200) zu große, nicht scrollbare Items. */
    .mobile-menu{justify-content:flex-start;gap:clamp(6px,1.4vh,12px);
      padding:96px 24px 40px;overflow-y:auto;-webkit-overflow-scrolling:touch}
    .mobile-menu a{font-size:clamp(19px,5.4vw,26px)}
    .nav-logo img{height:60px}
    nav.scrolled .nav-logo img{height:48px}
  }

  /* ---------- zentrierte CTA unter einer Liste (z.B. "Zu den Artikeln") ---------- */
  .list-cta{text-align:center;margin-top:clamp(24px,4vh,46px)}

  /* fifty-best: auf Mobil Reihenfolge tauschen — "Dunlin und Tirol" über das Bild.
     Desktop bleibt normaler Fluss (Bild zuerst, dann Text). */
  @media (max-width:900px){
    .mtirol{display:flex;flex-direction:column}
    .mtirol #mehr{order:1}
    .mtirol .image-band{order:2}
  }
  /* Merchandise: Produkt-Grid auf dem Handy zweispaltig (statt einspaltig) */
  @media (max-width:600px){
    .shop-grid{grid-template-columns:1fr 1fr;gap:clamp(12px,3vw,18px)}
    /* Mobil: Swipe-Dots zeigen, wenn ein Produkt 2 Bilder hat */
    .product .thumb.has-two .dots{display:flex}
  }

  /* ---------- Produkt-Lightbox (Merchandise) ---------- */
  .shop-grid .product{cursor:pointer}
  .dl-lightbox{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;
    gap:clamp(8px,2vw,28px);padding:clamp(16px,4vw,52px);
    background:rgba(4,12,18,.85);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
  .dl-lightbox.show{display:flex}
  .dl-lb-fig{margin:0;max-width:min(92vw,680px);text-align:center}
  .dl-lb-media{width:100%;max-width:560px;margin:0 auto;border:1px solid var(--hairline);border-radius:2px;
    overflow:hidden;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg,rgba(21,83,111,.45),rgba(4,16,24,.5)),
      radial-gradient(circle at 30% 28%,rgba(194,160,92,.18),transparent 62%)}
  .dl-lb-media img{width:100%;height:100%;object-fit:contain;display:block}
  .dl-lb-ph{font-size:13px;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);opacity:.6}
  .dl-lb-cap{font-family:var(--display);font-weight:300;color:var(--cream);
    font-size:clamp(20px,3vw,34px);margin-top:clamp(16px,2.5vh,28px)}
  .dl-lb-close{position:absolute;top:clamp(12px,3vw,28px);right:clamp(16px,3vw,34px);
    background:none;border:0;color:var(--cream);font-size:34px;line-height:1;cursor:pointer;opacity:.7;transition:opacity .25s,color .25s}
  .dl-lb-close:hover,.dl-lb-close:focus-visible{opacity:1;color:var(--gold)}
  .dl-lb-nav{flex:0 0 auto;background:none;border:1px solid var(--gold);color:var(--cream);
    width:48px;height:48px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;opacity:.85;
    transition:background .3s,color .3s}
  .dl-lb-nav:hover,.dl-lb-nav:focus-visible{background:var(--gold);color:var(--deep)}
  @media (max-width:640px){.dl-lb-nav{width:40px;height:40px;font-size:18px}}

  /* ============================================================
     MOBILE-FEINSCHLIFF
     ============================================================ */
  /* Hero-Titel: "Bar" wird auf Mobil in Zeile 1 gezogen */
  .hero-bar-m{display:none}
  /* Scroll-Lock, wenn Mobilmenü offen */
  body.menu-open{overflow:hidden}

  @media (max-width:900px){
    /* (Mobilmenü-/Nav-Logo-Styling steht im 1200er-Block oben — passt zum Burger) */
    /* Mobil: größerer Text (sticky kommt aus der Basis). */
    .statement p{font-size:clamp(30px,8vw,46px)}

    /* --- Hero --- */
    .hero-eyebrow{font-size:10px;letter-spacing:.22em;margin-bottom:clamp(10px,2vh,18px)}
    .hero-eyebrow::before{width:30px}
    .hero-eyebrow:not(:has(+ .hero-eyebrow)){margin-bottom:clamp(16px,2.6vh,26px)}
    .hero h1{font-size:clamp(52px,17vw,96px)}
    .hero-sub{flex-direction:column;gap:8px;margin-top:clamp(18px,3vh,30px)}
    .hero-sub span+span::before{content:none}
    /* "Dunlin Bar" / "Innsbruck" auf Mobil */
    .hero-bar-d{display:none}
    .hero-bar-m{display:inline}
    /* weniger Abstand Hero -> nächste Sektion */
    .about{padding-top:clamp(40px,7vh,60px)}

    /* --- Karte / Flipbook: kompakter, weniger Abstände --- */
    .karte{padding-top:clamp(48px,8vh,72px);padding-bottom:clamp(48px,8vh,72px)}
    .karte h2{margin-bottom:12px}
    .karte-intro{margin-bottom:18px}
    .flipbook-stage{min-height:clamp(380px,64vh,540px);margin-bottom:14px}

    /* Footer: "Wir akzeptieren" zentriert; Karten 3 (Reihe 1) + 4 (Reihe 2), zentriert.
       12-Spalten-Grid: erste 3 Bilder span 4 (=volle Reihe), restl. 4 span 3 (=volle Reihe). */
    /* Flex statt Grid (kein Verzerren); zentriert, 3 (Reihe 1) + 4 (Reihe 2) via Umbruch. */
    .payments{justify-content:center;gap:10px 8px}
    .payments .pay-label{flex-basis:100%;text-align:center;margin:0 0 6px}

    /* Award-Slider (50 Best / Mixology) randlos über die volle Viewport-Breite */
    .award{width:100vw;margin-left:calc(50% - 50vw)}
    .flip-controls{margin-bottom:22px}

    /* --- Map passt: rein breitenbasiert, kein Mindesthöhen-Zwang --- */
    .map{aspect-ratio:4/3;min-height:0}

    /* --- Sektions-Überschriften & Hero auf Unterseiten kompakter --- */
    /* Unterseiten-Hero auf Mobil: volle Höhe (für den Fade-Übergang) */
    /* Hero-Inhalt höher (ca. 30% nach oben statt mittig zentriert) */
    .page-hero{min-height:100svh;justify-content:flex-start;padding-top:clamp(150px,26svh,230px)}
    .page-hero h1{font-size:clamp(42px,12vw,76px)}
    .features h2,.prose-section h2,.karte h2,.about h2,.contact-head h2{font-size:clamp(26px,7vw,40px)}
    .lead-note,.karte-intro{font-size:clamp(15px,4vw,18px)}

    /* --- Footer: kleiner; Datenschutz | Impressum in einer Zeile, Cookie darunter --- */
    .foot-row{justify-content:center;text-align:center}
    .legal{flex-wrap:wrap;justify-content:center;gap:10px 18px;font-size:10px}
    .legal a[data-cmplz-action]{flex-basis:100%;text-align:center}
  }

  /* "Scroll"-Hinweis im Unterseiten-Hero unten zentriert */
  /* Scroll-Hinweis unten links (wie auf der Index-Desktop) */
  .page-hero .scroll-cue{left:clamp(20px,5vw,64px);right:auto;transform:none}
  /* ---------- NUR Mobil: sticky Hero, nächste Sektion gleitet darüber (Hero faded via JS) ---------- */
  @media (max-width:900px){
    .page-hero{position:sticky;top:0;height:100svh;z-index:0;pointer-events:none}
    .page-hero + section{position:relative;z-index:1}
  }
