/* L'Angolino Pfarrkirchen
   Layout: Vollbild-Video als Bühne, danach ruhige Bänder in Creme und Marmor wie eine aufgeschlagene Speisekarte.
   Werte 1:1 aus dem freigegebenen Entwurf (website/index.html). */

/* Schriften, selbst gehostet: exakt die Dateien, die Google Fonts für den Entwurf ausliefert (SIL Open Font License, siehe assets/fonts/OFL-*.txt) */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/barlow-condensed-latin-ext-500.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/barlow-condensed-latin-500.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/barlow-condensed-latin-ext-600.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/barlow-condensed-latin-600.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/barlow-condensed-latin-ext-700.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/barlow-condensed-latin-700.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(../assets/fonts/cormorant-garamond-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(../assets/fonts/cormorant-garamond-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:600;font-display:swap;src:url(../assets/fonts/cormorant-garamond-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:600;font-display:swap;src:url(../assets/fonts/cormorant-garamond-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/source-sans-3-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/source-sans-3-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/source-sans-3-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/source-sans-3-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Basis: entspricht der Dokumenthülle, in der der Entwurf veröffentlicht wurde */
:root{color-scheme:light;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}

:root{
  --bg:#F6EFE4; --card:#FFFCF7; --fg:#2A1C15; --muted:#76665B; --line:#E4D8C8;
  --rosso:#B9342C; --rosso-ink:#9E2A23; --oliva:#5E6B3A; --espresso:#2A1C15; --on-dark:#FBF6EE;
  --rosso-btn:#B9342C; --rosso-btn-hover:#9E2A23; /* roter Button mit weißer Schrift, in beiden Modi mind. 4,5:1 */
  --f-display:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;
  --f-it:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --f-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gut:max(16px,env(safe-area-inset-left,0px)); --gut-r:max(16px,env(safe-area-inset-right,0px));
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#1B1310; --card:#251A15; --fg:#F2E8DB; --muted:#B3A291; --line:#3A2C24;
  --rosso:#E46B60; --rosso-ink:#EE8A80; --oliva:#9FAE77; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#1B1310; --card:#251A15; --fg:#F2E8DB; --muted:#B3A291; --line:#3A2C24;
  --rosso:#E46B60; --rosso-ink:#EE8A80; --oliva:#9FAE77; color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font:400 17px/1.6 var(--f-body);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--espresso)}
h1,h2,h3{font-family:var(--f-display);font-weight:600;letter-spacing:.04em;text-transform:uppercase;line-height:1.05;text-wrap:balance;margin:0}
h2{font-size:clamp(34px,5vw,56px)}
.it{font-family:var(--f-it);font-style:italic;font-weight:500;text-transform:none;letter-spacing:0}
.wrap{max-width:1180px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gut-r)}
.eyebrow{font:600 14px/1 var(--f-display);letter-spacing:.22em;text-transform:uppercase;color:var(--rosso)}
.titles{display:grid;gap:12px}
a{color:inherit}
:focus-visible{outline:3px solid var(--rosso);outline-offset:3px}

/* Navigation */
.nav{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:50;transition:background .35s,box-shadow .35s}
.nav .wrap{display:flex;align-items:center;gap:24px;height:68px}
.nav .brand{display:block;width:132px;height:48px;position:relative;flex:none}
.nav .brand img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .35s}
.nav .brand .red{opacity:0}
.nav ul{display:flex;gap:26px;list-style:none;margin:0 0 0 auto;padding:0}
.nav a.l{white-space:nowrap;font:600 15px/1 var(--f-display);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--on-dark)}
.nav .tel{font:600 16px/1 var(--f-display);letter-spacing:.08em;color:var(--on-dark);text-decoration:none;border:1px solid rgba(251,246,238,.5);padding:10px 14px;border-radius:2px;white-space:nowrap}
.nav.solid{background:var(--bg);box-shadow:0 1px 0 var(--line)}
.nav.solid a.l,.nav.solid .tel{color:var(--fg)}
.nav.solid .tel{border-color:var(--line)}
.nav.solid .brand .white{opacity:0}.nav.solid .brand .red{opacity:1}
@media (max-width:900px){.nav ul{display:none}.nav .tel{margin-left:auto}}
/* Sprachschalter DE | IT: Schrift der Menüpunkte, aktive Sprache rot unterstrichen */
.nav .lang{display:flex;align-items:center;flex:none}
.nav .lang a{font:600 14px/1 var(--f-display);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--on-dark);opacity:.62;padding:6px 8px 5px;border-bottom:2px solid transparent;transition:opacity .2s}
.nav .lang a+a{border-left:1px solid rgba(251,246,238,.35)}
.nav .lang a:hover,.nav .lang a[aria-current]{opacity:1}
.nav .lang a[aria-current]{border-bottom-color:var(--rosso)}
.nav.solid .lang a{color:var(--fg)}
.nav.solid .lang a+a{border-left-color:var(--line)}
@media (max-width:900px){.nav .lang{margin-left:auto}.nav .lang~.tel{margin-left:0}}
@media (min-width:901px) and (max-width:1040px){.nav .wrap,.nav ul{gap:16px}}
@media (max-width:420px){.nav .wrap{gap:14px}.nav .lang a[aria-current]{display:none}.nav .lang a+a{border-left:0}}
@media (max-width:380px){.nav .tel{padding:10px 10px;letter-spacing:.04em}}
@media (max-width:340px){.nav .wrap{gap:10px}.nav .brand{width:112px}.nav .tel{font-size:14px;padding:9px 8px}}

/* Hero */
.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;background:var(--espresso);color:var(--on-dark);isolation:isolate}
.hero video,.hero .poster{position:absolute;inset:-12px;width:calc(100% + 24px);height:calc(100% + 24px);object-fit:cover;z-index:-3;filter:blur(1.6px) saturate(.92) contrast(1.02)}
.hero .poster{z-index:-4}
/* Breite Monitore (breiter als 2:1): Video höchstens 10 % beschnitten statt bis zu einem Drittel; die Seiten füllt
   ein weichgezeichnetes, mitlaufendes Abbild desselben Videos (canvas.ambient, gezeichnet in js/main.js) */
.hero .ambient{position:absolute;inset:0;width:100%;height:100%;z-index:-3;filter:blur(32px) saturate(.9) brightness(.8);transform:scale(1.15)}
@media (min-aspect-ratio:2/1){
  .hero video{left:50%;right:auto;width:min(calc(100% + 24px),calc((100svh + 24px) * 1.9556));transform:translateX(-50%);
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;
  background:radial-gradient(120% 90% at 50% 45%,rgba(42,28,21,.38) 0%,rgba(42,28,21,.62) 60%,rgba(28,18,13,.86) 100%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.16;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero .inner{text-align:center;padding:120px var(--gut-r) 90px var(--gut);display:grid;justify-items:center;gap:22px;max-width:900px}
.hero .logo{width:min(620px,86vw);height:auto;filter:drop-shadow(0 4px 24px rgba(0,0,0,.35));
  clip-path:inset(0 0 0 0);animation:write 2.4s cubic-bezier(.65,.05,.25,1) .2s both}
.hero h1{font-size:1em}  /* nur Hülle fürs Logo; feste Größe, weil Chrome die Standardgröße von h1 in section ändert */
.hero h1 .logo{display:block}
@keyframes write{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.hero .claim{font-family:var(--f-it);font-style:italic;font-size:clamp(26px,3.6vw,40px);line-height:1.2;margin:0;animation:rise 1s ease 1.6s both}
.hero .sub{margin:0;max-width:34em;color:rgba(251,246,238,.86);animation:rise 1s ease 1.8s both}
@keyframes rise{from{opacity:.0;transform:translateY(10px)}to{opacity:1;transform:none}}
.status{display:inline-flex;align-items:center;gap:10px;font:600 15px/1 var(--f-display);letter-spacing:.14em;text-transform:uppercase;padding:9px 14px;border:1px solid rgba(251,246,238,.35);background:rgba(28,18,13,.35);backdrop-filter:blur(6px);animation:rise 1s ease 1.9s both}
.status i{width:9px;height:9px;border-radius:50%;background:#7BC27F;box-shadow:0 0 0 4px rgba(123,194,127,.22)}
.status.closed i{background:#E0806F;box-shadow:0 0 0 4px rgba(224,128,111,.22)}
.ctas{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;animation:rise 1s ease 2s both}
.btn{display:inline-flex;align-items:center;gap:10px;font:600 17px/1 var(--f-display);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:16px 24px;border-radius:2px;border:1px solid transparent;cursor:pointer}
.btn.red{background:var(--rosso-btn);color:#fff}
.btn.red:hover{background:var(--rosso-btn-hover)}
.btn.ghost{border-color:rgba(251,246,238,.6);color:var(--on-dark);background:transparent}
.btn.ghost:hover{background:rgba(251,246,238,.1)}
.scroll{position:absolute;bottom:calc(22px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);font:600 12px/1 var(--f-display);letter-spacing:.3em;color:rgba(251,246,238,.7);text-decoration:none;text-transform:uppercase;display:grid;justify-items:center;gap:10px}
.scroll span{width:1px;height:38px;background:linear-gradient(rgba(251,246,238,.8),transparent);animation:drip 2.2s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.vidtoggle{position:absolute;right:calc(var(--gut-r) + 4px);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:rgba(28,18,13,.45);color:var(--on-dark);border:1px solid rgba(251,246,238,.35);width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:14px}

section{padding-block:clamp(72px,10vw,120px)}
.hero{padding-block:0}  /* der Hero ist ein section: ohne diesen Abstand bleibt er genau fensterhoch, „Entdecken“ ist auch bei niedrigen Fenstern sichtbar */
.reveal{transition:transform .9s ease,opacity .9s ease}
.reveal.pre{opacity:.001;transform:translateY(24px)}

/* Benvenuti */
.intro .grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.intro .text{min-width:0;display:grid;gap:20px;max-width:34em}
.intro h2 .it{display:block;color:var(--rosso);font-size:.8em;margin-top:6px}
.intro p{margin:0}
.intro figure{margin:0;position:relative}
.intro figure img{display:block;width:100%;height:auto;border-radius:2px}
.intro figcaption{font:600 13px/1.3 var(--f-display);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:8px}
.facts div{background:var(--bg);padding:16px 14px;min-width:0}
.facts b{display:block;font:600 22px/1.1 var(--f-display);letter-spacing:.04em;text-transform:uppercase}
.facts span{font-size:14px;color:var(--muted)}
@media (max-width:860px){.intro .grid{grid-template-columns:1fr}.facts{grid-template-columns:1fr}}

/* La storia di Umberto: dunkles Band, Porträt bleibt beim Scrollen stehen, eine rote Linie wächst durch die Stationen */
.storia{background:var(--espresso);color:var(--on-dark);--rosso-hell:#E46B60}
.storia .grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,90px);align-items:start}
.storia .portrait{margin:0;position:sticky;top:calc(68px + 40px + env(safe-area-inset-top,0px))}
.storia .frame{position:relative;overflow:hidden;border-radius:2px;aspect-ratio:4/5;background:#1C120D;transition:clip-path 1.8s cubic-bezier(.65,.05,.25,1)}
.storia .frame img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 7s cubic-bezier(.2,.6,.2,1)}
.storia .frame::after{content:"";position:absolute;inset:0;opacity:.14;mix-blend-mode:overlay;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.storia .wipe.pre .frame{clip-path:inset(0 100% 0 0)}
.storia .wipe.pre .frame img{transform:scale(1.12)}
.storia figcaption{font:600 13px/1.3 var(--f-display);letter-spacing:.16em;text-transform:uppercase;color:rgba(251,246,238,.6);margin-top:12px}
.storia .story{min-width:0}
.storia .eyebrow{color:var(--rosso-hell)}
.storia h2 .it{display:block;color:var(--rosso-hell);font-size:.8em;margin-top:6px}
.storia .lead{margin:24px 0 0;font-size:19px;color:rgba(251,246,238,.9);max-width:32em}
.timeline{list-style:none;margin:48px 0 0;padding:0 0 0 38px;position:relative;display:grid;gap:clamp(36px,5vw,56px);--fortschritt:1}
.timeline::before,.timeline::after{content:"";position:absolute;left:5px;top:14px;width:1px}
.timeline::before{bottom:14px;background:rgba(251,246,238,.2)}
.timeline::after{height:calc((100% - 28px) * var(--fortschritt));background:var(--rosso-hell)}
.station{position:relative}
.station::before{content:"";position:absolute;left:-38px;top:clamp(14px,1.9vw,22px);width:11px;height:11px;border-radius:50%;border:1px solid var(--rosso-hell);background:var(--rosso-hell);transition:background .4s,border-color .4s}
.timeline.live .station:not(.erreicht)::before{background:var(--espresso);border-color:rgba(251,246,238,.45)}
.station .wann{display:block;font:600 clamp(44px,5.6vw,68px)/1 var(--f-display);letter-spacing:.02em;text-transform:uppercase}
.station .wann small{font-size:.3em;letter-spacing:.18em;color:rgba(251,246,238,.7)}
.station .wo{display:block;font-family:var(--f-it);font-style:italic;font-weight:500;font-size:clamp(23px,2.6vw,30px);line-height:1.2;color:var(--rosso-hell);margin-top:6px}
.station p{margin:10px 0 0;color:rgba(251,246,238,.82);max-width:32em}
.haltung{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px clamp(20px,3vw,40px);margin-top:clamp(48px,6vw,72px);padding-top:clamp(32px,4vw,44px);border-top:1px solid rgba(251,246,238,.18)}
.haltung .label{display:block;font-family:var(--f-it);font-style:italic;font-weight:500;font-size:clamp(30px,3.4vw,40px);line-height:1;color:var(--rosso-hell)}
.haltung p{margin:12px 0 0;color:rgba(251,246,238,.86)}
.haltung .ueberraschung{grid-column:1/-1;margin:8px 0 0;font-family:var(--f-it);font-style:italic;font-weight:500;font-size:clamp(24px,2.8vw,32px);line-height:1.3;color:var(--on-dark)}
@media (max-width:560px){.haltung{grid-template-columns:1fr}}
.kennzahlen{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(251,246,238,.18);border:1px solid rgba(251,246,238,.18);margin-top:clamp(48px,6vw,72px)}
.kennzahlen div{background:var(--espresso);padding:20px 18px;min-width:0;display:grid;gap:6px}
.kennzahlen b{font:600 clamp(56px,7vw,84px)/.9 var(--f-display);font-variant-numeric:tabular-nums}
.kennzahlen span{font:600 14px/1.3 var(--f-display);letter-spacing:.14em;text-transform:uppercase;color:rgba(251,246,238,.75)}
@media (max-width:900px){.storia .grid{grid-template-columns:1fr}.storia .portrait{position:static;max-width:560px}}

/* Speisekarte */
.menu{background:var(--card);border-block:1px solid var(--line)}
.menu .head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px;margin-bottom:28px}
.menu .head p{margin:0;color:var(--muted);max-width:30em}
.tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--line);margin-bottom:34px}
.tabs button{font:600 16px/1 var(--f-display);letter-spacing:.14em;text-transform:uppercase;background:none;border:0;color:var(--muted);padding:14px 14px 16px;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}
.tabs button[aria-selected="true"]{color:var(--rosso);border-bottom-color:var(--rosso)}
.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 64px}
.group{grid-column:1/-1;margin-top:18px}
.group:first-child{margin-top:0}
.group h3{font-size:24px;color:var(--rosso);display:flex;align-items:center;gap:14px}
.group h3::after{content:"";flex:1;height:1px;background:var(--line)}
.group p{margin:6px 0 0;color:var(--muted);font-size:15px}
.dish{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:12px 0;border-bottom:1px dashed var(--line);min-width:0}
.dish .n{font:600 21px/1.2 var(--f-display);letter-spacing:.02em}
.dish .n sup{font:400 12px/1 var(--f-body);color:var(--muted);letter-spacing:0;margin-left:6px;vertical-align:4px}
.dish .p{font:600 20px/1.2 var(--f-display);font-variant-numeric:tabular-nums;color:var(--fg);white-space:nowrap}
.dish .d{grid-column:1/-1;color:var(--muted);font-size:15px;line-height:1.4}
.legend{margin-top:34px;font-size:14px;color:var(--muted)}
.legend summary{cursor:pointer;font:600 15px/1 var(--f-display);letter-spacing:.14em;text-transform:uppercase;color:var(--fg)}
.legend p{margin:10px 0 0;max-width:70em}
.cols>.note,.cols>noscript{grid-column:1/-1}
@media (max-width:760px){.cols{grid-template-columns:1fr}}

/* Galerie */
.gal .head{display:grid;gap:12px;margin-bottom:30px}
.mosaic{columns:3 280px;column-gap:14px}
.mosaic button{display:block;width:100%;padding:0;border:0;background:none;margin:0 0 14px;cursor:zoom-in;break-inside:avoid;overflow:hidden;border-radius:2px}
.mosaic img{display:block;width:100%;height:auto;transition:transform .8s ease}
.mosaic button:hover img{transform:scale(1.04)}
.lb{position:fixed;inset:0;z-index:80;background:rgba(20,13,10,.92);display:grid;place-items:center;padding:calc(20px + env(safe-area-inset-top,0px)) var(--gut-r) calc(20px + env(safe-area-inset-bottom,0px)) var(--gut)}
.lb img{max-width:100%;max-height:86vh;object-fit:contain}
.lb button{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));background:none;border:1px solid rgba(251,246,238,.5);color:#FBF6EE;width:44px;height:44px;border-radius:50%;font-size:20px;cursor:pointer}

/* Stimmen */
.voices{background:var(--espresso);color:var(--on-dark)}
.voices .grid{display:grid;grid-template-columns:auto 1fr;gap:clamp(32px,6vw,90px);align-items:center}
.score{display:grid;gap:6px;justify-items:start}
.score b{font:600 clamp(88px,12vw,140px)/.9 var(--f-display)}
.stars{color:#E8B04B;font-size:24px;letter-spacing:4px}
.score span{font:600 15px/1.3 var(--f-display);letter-spacing:.14em;text-transform:uppercase;color:rgba(251,246,238,.75)}
.score a{color:var(--on-dark);font-size:15px}
.quote{min-width:0;min-height:220px;display:grid;align-content:center;gap:18px}
.quote blockquote{margin:0;font-family:var(--f-it);font-style:italic;font-size:clamp(24px,3vw,36px);line-height:1.3;transition:opacity .5s}
.quote cite{font:600 15px/1 var(--f-display);letter-spacing:.16em;text-transform:uppercase;font-style:normal;color:rgba(251,246,238,.7)}
.dots{display:flex;gap:8px}
.dots button{width:28px;height:4px;border:0;padding:0;background:rgba(251,246,238,.25);cursor:pointer}
.dots button[aria-current="true"]{background:var(--on-dark)}
@media (max-width:760px){.voices .grid{grid-template-columns:1fr}}

/* Besuch */
.visit .titles{margin-bottom:34px}
.visit .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px)}
.visit .box{background:var(--card);border:1px solid var(--line);padding:clamp(22px,3vw,36px);min-width:0;display:grid;gap:16px;align-content:start}
.visit .box h3{font-size:24px}
.visit .box .eyebrow{margin-bottom:10px}
.hours{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.hours td{padding:9px 0;border-bottom:1px solid var(--line)}
.hours td:last-child{text-align:right}
.hours tr.today td{color:var(--rosso);font-weight:600}
.hours tr.today td:first-child::after{content:" · heute";font-weight:400}
:lang(it) .hours tr.today td:first-child::after{content:" · oggi"}
.visit address{font-style:normal;font-size:19px;line-height:1.45}
.phone{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.phone .num{font:600 clamp(30px,4vw,40px)/1 var(--f-display);letter-spacing:.04em;user-select:all}
.copy{font:600 13px/1 var(--f-display);letter-spacing:.14em;text-transform:uppercase;background:none;border:1px solid var(--line);color:var(--fg);padding:9px 12px;cursor:pointer}
.visit .btn.red{justify-self:start}
.note{font-size:15px;color:var(--muted);margin:0}
@media (max-width:820px){.visit .grid{grid-template-columns:1fr}}

footer{background:var(--espresso);color:rgba(251,246,238,.75);padding-block:48px calc(48px + env(safe-area-inset-bottom,0px))}
footer .wrap{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
footer img{width:150px;height:auto}
footer nav{display:flex;gap:22px;font:600 14px/1 var(--f-display);letter-spacing:.14em;text-transform:uppercase}
footer a{text-decoration:none}
footer .powered{flex-basis:100%;margin:0;padding-top:20px;border-top:1px solid rgba(251,246,238,.12);font-size:13px;color:rgba(251,246,238,.7)}
footer .powered a{color:var(--on-dark);text-decoration:underline;text-underline-offset:3px}
footer .powered a:hover{color:var(--on-dark)}

/* Karriere: dunkles Einstiegsband mit Teamfoto, Stellen als Karten, Vorteile im Raster, Kennenlernen auf Espresso */
.job-hero{background:var(--espresso);color:var(--on-dark);padding-block:calc(68px + clamp(48px,7vw,96px)) clamp(64px,9vw,112px);--rosso-hell:#E46B60}
.job-hero .grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.job-hero .text{min-width:0}
.job-hero .eyebrow,.kennenlernen .eyebrow{color:var(--rosso-hell)}
.job-hero h1{font-size:clamp(44px,7vw,84px);margin-top:12px}
.job-hero h1 .it{display:block;color:var(--rosso-hell);font-size:.46em;margin-top:12px;line-height:1.15}
.job-hero .lead,.kennenlernen .lead{margin:22px 0 0;font-size:19px;color:rgba(251,246,238,.9);max-width:34em}
.job-hero .ctas{justify-content:flex-start;margin-top:30px;animation:none}
.job-hero figure{margin:0}
.job-hero figure img{display:block;width:100%;height:auto;border-radius:2px}
.jobs .cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,32px);margin-top:34px}
.jobs .card{background:var(--card);border:1px solid var(--line);padding:clamp(24px,3vw,40px);display:grid;gap:12px;align-content:start;min-width:0}
.jobs .label,.kennenlernen .label{font-family:var(--f-it);font-style:italic;font-weight:500;font-size:clamp(26px,3vw,34px);line-height:1;color:var(--rosso)}
.jobs .card h3{font-size:clamp(26px,3vw,34px)}
.jobs .card p,.vorteile p{margin:0;color:var(--muted)}
.vorteile{background:var(--card);border-block:1px solid var(--line)}
.vorteile .liste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:34px}
.vorteile .liste div{background:var(--card);padding:clamp(22px,3vw,36px);display:grid;gap:10px;align-content:start;min-width:0}
.vorteile b{font:600 clamp(22px,2.4vw,28px)/1.1 var(--f-display);letter-spacing:.04em;text-transform:uppercase}
.kennenlernen{background:var(--espresso);color:var(--on-dark);--rosso-hell:#E46B60}
.kennenlernen .label{color:var(--rosso-hell)}
.kennenlernen .wege{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,32px);margin-top:40px}
.kennenlernen .weg{border:1px solid rgba(251,246,238,.2);padding:clamp(22px,3vw,36px);display:grid;gap:16px;align-content:start;min-width:0}
.kennenlernen .num{font:600 clamp(30px,4vw,44px)/1 var(--f-display);letter-spacing:.04em;color:var(--on-dark);text-decoration:none}
.kennenlernen address{font-style:normal;font-size:19px;line-height:1.45}
.kennenlernen .btn{justify-self:start}
.kennenlernen .tipp{margin:36px 0 0;font-family:var(--f-it);font-style:italic;font-weight:500;font-size:clamp(23px,2.6vw,30px);line-height:1.3;max-width:30em}
.kennenlernen .gruss{margin:20px 0 0;font:600 15px/1.3 var(--f-display);letter-spacing:.16em;text-transform:uppercase;color:rgba(251,246,238,.75)}
@media (max-width:860px){.job-hero .grid,.jobs .cards,.vorteile .liste,.kennenlernen .wege{grid-template-columns:1fr}}

/* Rechtliche Seiten (Impressum, Datenschutz, 404): Navigation von Anfang an im Creme-Zustand */
.legal{padding-block:calc(68px + clamp(48px,8vw,96px)) clamp(72px,10vw,120px)}
.legal .titles{margin-bottom:34px}
.legal h1{font-size:clamp(34px,5vw,56px)}
.legal .text{max-width:46em;min-width:0}
.legal .text h2{font-size:24px;color:var(--rosso);margin-top:40px}
.legal .text h3{font-size:19px;margin-top:24px}
.legal .text p,.legal .text address,.legal .text ul{margin:10px 0 0}
.legal .text address{font-style:normal}
.legal .text ul{padding-left:1.2em}
.legal .text a{overflow-wrap:anywhere}
.legal .stand{color:var(--muted);font-size:15px}
.legal .hinweis{margin:0 0 16px;padding:12px 16px;border:1px solid var(--line);background:var(--card);font-size:15px;color:var(--muted)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero .logo,.hero .claim,.hero .sub,.status,.ctas{animation:none}
  .scroll span{animation:none}.reveal{transition:none}.reveal.pre{opacity:1;transform:none}
  .mosaic img{transition:none}
  .storia .frame,.storia .frame img,.station::before{transition:none}
}
