/* SEVEN — geteiltes Design-System (Cocktail-Noir) */
:root{
  --bg:#0b0806;--panel:#120d09;--panel2:#171009;--ink:#f4ece0;--mut:#a99f90;--faint:#6b6153;
  --acc:#d7a34a;--acc-soft:#e6c07f;--wine:#7d2a29;--line:rgba(244,236,224,.1);
  --fd:'Bodoni Moda',Georgia,serif;--fb:'Jost',system-ui,sans-serif;
  --ease:cubic-bezier(.19,1,.22,1);--pad:clamp(20px,5vw,90px);--maxw:1360px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto;overflow-x:clip}
body{background:var(--bg);color:var(--ink);font-family:var(--fb);font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:clip;line-height:1.65;max-width:100%}
::selection{background:var(--acc);color:#0b0806}
a{color:inherit;text-decoration:none}
img,video{max-width:100%;display:block}
button{font-family:inherit}
h1,h2,h3,h4{font-family:var(--fd);font-weight:400;line-height:1.04;letter-spacing:.005em}
.acc{color:var(--acc)}
.serif-i{font-style:italic;font-family:var(--fd)}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.lead{font-size:clamp(16px,1.7vw,20px);color:var(--ink);opacity:.9}

/* Overlays */
.vig{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 90% at 50% 0%,transparent 42%,rgba(11,8,6,.5) 100%),radial-gradient(90% 70% at 80% 100%,rgba(215,163,74,.05),transparent 60%)}
.grain{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)'/%3E%3C/svg%3E");background-size:100px}
#embers{position:fixed;inset:0;z-index:3;pointer-events:none;opacity:.55}
/* langsam driftender Umgebungs-Glow */
.glowfx{position:fixed;z-index:0;pointer-events:none;width:60vmax;height:60vmax;border-radius:50%;filter:blur(80px);opacity:.14;background:radial-gradient(circle,var(--acc),transparent 70%);animation:drift 26s ease-in-out infinite alternate}
@keyframes drift{0%{transform:translate(-10vw,-6vh) scale(1)}100%{transform:translate(14vw,10vh) scale(1.25)}}

/* Loader */
#pre{position:fixed;inset:0;z-index:80;background:#0b0806;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;transition:opacity 1s var(--ease),visibility 1s}
#pre.gone{opacity:0;visibility:hidden}
#pre .s{font-family:var(--fd);font-size:clamp(70px,16vw,150px);color:var(--acc);line-height:1}
#pre small{font-family:var(--fb);font-size:11px;letter-spacing:.5em;text-transform:uppercase;color:var(--faint)}
#pre .bar{width:120px;height:1px;background:rgba(215,163,74,.2);position:relative;overflow:hidden}
#pre .bar::after{content:"";position:absolute;inset:0;width:40%;background:var(--acc);animation:load 1.3s var(--ease) infinite}
@keyframes load{0%{left:-40%}100%{left:100%}}

/* Nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;height:70px;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--pad);transition:background .5s,backdrop-filter .5s,height .4s}
.nav.solid{background:rgba(11,8,6,.72);backdrop-filter:blur(12px);height:62px}
.nav .logo{font-family:var(--fd);font-size:26px;letter-spacing:.22em;padding-left:.22em;z-index:60}
.nav .r{display:flex;align-items:center;gap:30px}
.nav .r a.lnk{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);transition:color .3s;position:relative}
.nav .r a.lnk::after{content:"";position:absolute;left:0;bottom:-5px;height:1px;width:0;background:var(--acc);transition:width .4s var(--ease)}
.nav .r a.lnk:hover{color:var(--ink)}.nav .r a.lnk:hover::after,.nav .r a.lnk.active::after{width:100%}
.nav .r a.lnk.active{color:var(--ink)}
.btn{font-family:var(--fb);font-weight:400;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--acc);border:1px solid rgba(215,163,74,.4);padding:12px 24px;border-radius:999px;transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);display:inline-flex;align-items:center;gap:10px;cursor:pointer;white-space:nowrap;will-change:transform}
.btn[data-mag]{transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease),transform .18s ease-out}
.btn:hover{background:var(--acc);color:#0b0806;border-color:var(--acc)}
.btn.solid{background:var(--acc);color:#0b0806}.btn.solid:hover{background:var(--acc-soft)}
.btn.lg{padding:16px 34px;font-size:12.5px}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;z-index:60;padding:8px}
.burger span{width:26px;height:1.5px;background:var(--ink);transition:.4s var(--ease)}
.menu-open .burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.overlay-menu{position:fixed;inset:0;z-index:55;background:var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility .5s}
.menu-open .overlay-menu{opacity:1;visibility:visible}
.overlay-menu a{font-family:var(--fd);font-size:clamp(34px,8vw,64px);color:var(--ink);transition:color .3s}
.overlay-menu a:hover{color:var(--acc)}
.overlay-menu .mm-foot{margin-top:34px;font-size:12px;letter-spacing:.2em;color:var(--faint);text-transform:uppercase}
@media(max-width:860px){.nav .r a.lnk{display:none}.nav .r .btn{display:none}.burger{display:flex}}

.prog{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--acc),var(--acc-soft));z-index:70}

section{position:relative;z-index:10}
.reveal{opacity:0;transform:translateY(34px)}
.clip{overflow:hidden}
.clip img{transform:scale(1.14);transition:transform 1.5s var(--ease)}
.clip.in img{transform:scale(1)}

/* Section header */
.shead{margin-bottom:clamp(30px,5vh,60px)}
.lbl{font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--acc);margin-bottom:22px;display:block}
.shead h2{font-size:clamp(34px,5.4vw,80px);line-height:1.02}
.pad{padding:clamp(70px,12vh,150px) 0}

/* Home hero */
.hero{height:100svh;min-height:640px;position:relative;display:flex;align-items:flex-end;overflow:hidden}
.hero .bg{position:absolute;inset:0;z-index:0}
.hero .bg video,.hero .bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.82) saturate(1.08)}
.hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,8,6,.32) 0%,transparent 34%,rgba(11,8,6,.78) 100%)}
.hero .wrap{position:relative;z-index:2;width:100%;padding-bottom:8vh}
.hero .kicker{font-size:12px;letter-spacing:.42em;text-transform:uppercase;color:var(--acc);margin-bottom:22px}
.hero h1{font-size:clamp(90px,23vw,340px);line-height:.9;letter-spacing:.02em}
.hero .lead{margin-top:20px;max-width:34ch}
.hero .cta-row{margin-top:34px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.scrollcue{position:absolute;bottom:28px;right:var(--pad);z-index:3;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--faint);writing-mode:vertical-rl}

/* Page hero (Subpages) */
.phero{min-height:66svh;display:flex;align-items:flex-end;position:relative;overflow:hidden;padding-bottom:clamp(30px,6vh,70px)}
.phero .bg{position:absolute;inset:0;z-index:0}
.phero .bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.66) saturate(1.08)}
.phero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,8,6,.6),transparent 40%,rgba(11,8,6,.9))}
.phero .wrap{position:relative;z-index:2;width:100%}
.phero h1{font-size:clamp(52px,10vw,150px);line-height:.94}
.phero .kicker{font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:var(--acc);margin-bottom:20px}
.phero .lead{margin-top:18px;max-width:44ch}

/* Intro / manifest */
.intro .wrap{max-width:1120px}
.intro h2{font-size:clamp(28px,4.4vw,62px);line-height:1.14;font-weight:400}
.intro h2 .mut{color:var(--faint)}

/* Split */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}
.split.rev .visual{order:2}
.split .visual{position:relative;aspect-ratio:4/5;border-radius:3px;overflow:hidden;background:#000}
.split .visual>img,.split .visual>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split .visual canvas{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity 1s}
/* Colorway-Swatches */
.swatches{position:absolute;left:0;right:0;bottom:16px;z-index:3;display:flex;gap:12px;justify-content:center}
.swatches button{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.35);cursor:pointer;padding:0;transition:transform .3s var(--ease),border-color .3s;box-shadow:0 2px 8px rgba(0,0,0,.4)}
.swatches button:hover{transform:scale(1.12)}
.swatches button.on{border-color:#fff;transform:scale(1.18)}
.split h2{font-size:clamp(32px,4.6vw,68px);margin-bottom:14px;line-height:1.04}
.split .desc{color:var(--mut);max-width:42ch;margin-bottom:26px}
.split p{color:var(--mut);max-width:46ch;margin-bottom:16px}
@media(max-width:880px){.split{grid-template-columns:1fr}.split.rev .visual{order:-1}.split .visual{aspect-ratio:3/4}}

/* Menu */
.menu{display:grid;gap:0}
.menu-cat{font-family:var(--fd);font-size:14px;letter-spacing:.28em;text-transform:uppercase;color:var(--acc);margin:44px 0 6px}
.menu-cat:first-child{margin-top:0}
.drink{padding:20px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:6px 20px;align-items:baseline}
.drink:hover .dn{color:var(--acc)}
.dn{font-family:var(--fd);font-size:clamp(20px,2.4vw,26px);transition:color .3s}
.dp{font-family:var(--fd);font-size:20px;color:var(--acc)}
.dd{grid-column:1/-1;color:var(--faint);font-size:13.5px}

/* Cards / bento */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.card{position:relative;border-radius:4px;overflow:hidden;background:var(--panel);border:1px solid var(--line)}
.card.img{aspect-ratio:4/5}
.card.img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);filter:brightness(.8)}
.card.img:hover img{transform:scale(1.06)}
.card .cap{position:absolute;left:0;right:0;bottom:0;padding:26px;background:linear-gradient(transparent,rgba(11,8,6,.9))}
.card .cap h3{font-size:26px;margin-bottom:6px}
.card .cap p{color:var(--mut);font-size:13.5px}
.card.pad-card{padding:34px;aspect-ratio:auto}
.card.pad-card .num{font-family:var(--fd);font-size:30px;color:var(--acc);margin-bottom:16px}
.card.pad-card h3{font-size:24px;margin-bottom:10px}
.card.pad-card p{color:var(--mut);font-size:14px}
@media(max-width:880px){.grid3{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}}

/* Gallery masonry */
.masonry{columns:3;column-gap:16px}
.masonry a{display:block;margin-bottom:16px;border-radius:3px;overflow:hidden;break-inside:avoid;position:relative}
.masonry img{width:100%;transition:transform 1s var(--ease),filter .6s;filter:brightness(.82)}
.masonry a:hover img{transform:scale(1.05);filter:brightness(1)}
@media(max-width:880px){.masonry{columns:2}}
@media(max-width:520px){.masonry{columns:1}}

/* Timeline */
.tl{display:grid;gap:0;max-width:840px}
.tl .row{display:grid;grid-template-columns:120px 1fr;gap:30px;padding:30px 0;border-top:1px solid var(--line)}
.tl .yr{font-family:var(--fd);font-size:26px;color:var(--acc)}
.tl h3{font-size:24px;margin-bottom:8px}
.tl p{color:var(--mut);font-size:14.5px;max-width:52ch}
@media(max-width:600px){.tl .row{grid-template-columns:1fr;gap:8px}}

/* Atmosphere full-bleed */
.atmo{height:90svh;min-height:520px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.atmo .bg{position:absolute;inset:0;z-index:0}
.atmo .bg img{width:100%;height:110%;object-fit:cover;filter:brightness(.5) saturate(1.05)}
.atmo .bg::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 30%,rgba(11,8,6,.78))}
.atmo blockquote{position:relative;z-index:2;text-align:center;font-family:var(--fd);font-size:clamp(28px,5vw,66px);line-height:1.14;max-width:18ch;padding-inline:var(--pad)}
.atmo cite{display:block;margin-top:26px;font-family:var(--fb);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--acc);font-style:normal}

/* Marquee */
.marq{border-block:1px solid var(--line);padding-block:22px;overflow:hidden;white-space:nowrap}
.marq-in{display:inline-flex;gap:40px;animation:marq 30s linear infinite}
.marq span{font-family:var(--fd);font-size:clamp(24px,3.4vw,46px);letter-spacing:.02em}
.marq span.o{color:transparent;-webkit-text-stroke:1px var(--faint)}
@keyframes marq{to{transform:translateX(-50%)}}

/* CTA band */
.ctaband{text-align:center;padding:clamp(80px,14vh,170px) 0}
.ctaband h2{font-size:clamp(40px,7vw,110px);line-height:1;margin-bottom:26px}
.ctaband p{color:var(--mut);max-width:40ch;margin:0 auto 34px}

/* Reservation / forms */
.res .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px)}
.res h2{font-size:clamp(40px,6vw,86px);line-height:1;margin-bottom:26px}
.info{display:grid;gap:22px;margin-top:10px}
.info div span{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}
.info div b{font-family:var(--fd);font-weight:400;font-size:19px;overflow-wrap:anywhere}
.fcol a,.fcol div{overflow-wrap:anywhere}
form{display:grid;gap:16px;align-content:start}
.fld{display:grid;gap:8px}
.fld label{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--mut)}
.fld input,.fld select,.fld textarea{background:rgba(244,236,224,.04);border:1px solid rgba(244,236,224,.16);border-radius:2px;padding:14px 15px;color:var(--ink);font-family:var(--fb);font-size:15px;width:100%}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(215,163,74,.14)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:880px){.res .wrap{grid-template-columns:1fr}}

/* Footer */
footer{border-top:1px solid var(--line);padding-top:clamp(50px,8vh,90px);padding-bottom:40px;position:relative;z-index:10;background:var(--panel)}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;margin-bottom:60px}
.fgrid .flogo{font-family:var(--fd);font-size:40px;letter-spacing:.18em;margin-bottom:16px}
.fgrid p{color:var(--mut);font-size:14px;max-width:30ch}
.fcol h4{font-family:var(--fb);font-weight:500;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);margin-bottom:18px}
.fcol a,.fcol div{display:block;color:var(--mut);font-size:14.5px;margin-bottom:11px;transition:color .3s}
.fcol a:hover{color:var(--acc)}
.fbot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:26px;border-top:1px solid var(--line);color:var(--faint);font-size:12.5px}
@media(max-width:880px){.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.fgrid{grid-template-columns:1fr}}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .split .visual canvas,#embers,.glowfx{display:none}
  .reveal{opacity:1!important;transform:none!important}.clip img{transform:none!important}
}
