@font-face { font-family:'Cormorant Garamond'; font-style:normal; font-weight:300; font-display:swap; src:url('fonts/cormorant-normal.woff2') format('woff2'); }
@font-face { font-family:'Cormorant Garamond'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/cormorant-normal.woff2') format('woff2'); }
@font-face { font-family:'Cormorant Garamond'; font-style:italic; font-weight:300; font-display:swap; src:url('fonts/cormorant-italic.woff2') format('woff2'); }
@font-face { font-family:'Cormorant Garamond'; font-style:italic; font-weight:400; font-display:swap; src:url('fonts/cormorant-italic.woff2') format('woff2'); }
@font-face { font-family:'Jost'; font-style:normal; font-weight:200; font-display:swap; src:url('fonts/jost.woff2') format('woff2'); }
@font-face { font-family:'Jost'; font-style:normal; font-weight:300; font-display:swap; src:url('fonts/jost.woff2') format('woff2'); }
@font-face { font-family:'Jost'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/jost.woff2') format('woff2'); }

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --cream: #F5F0E8;
  --forest: #2B0A1C;
  --clay: #9B1F5A;
  --gold: #C8A96B;
  --warm: #EDD8E5;
  --dark: #14080F;
  --mid: #5A4452;
  --light: #9A8290;
}

html { scroll-behavior: smooth; }
body { font-family: 'Jost', Georgia, sans-serif; background: var(--cream); color: var(--dark); overflow-x: clip; font-weight: 300; }
img { display: block; max-width: 100%; }
a { color: inherit; }

/* NAV */
.nav {
  background: rgba(43,10,28,0.97); backdrop-filter: blur(8px);
  display: flex; justify-content: space-between; align-items: center;
  padding: 20px 48px; position: sticky; top: 0; z-index: 100;
  border-bottom: 1px solid rgba(200,169,107,0.15);
}
.nav-logo { font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:400; letter-spacing:0.18em; text-transform:uppercase; color:var(--cream); text-decoration:none; }
.nav-links { display:flex; gap:32px; list-style:none; }
.nav-links a { font-size:10px; font-weight:300; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.65); text-decoration:none; transition:color 0.2s; }
.nav-links a:hover, .nav-links a.active { color:var(--gold); }
.nav-btn { font-size:10px; font-weight:400; letter-spacing:0.22em; text-transform:uppercase; background:var(--gold); color:var(--forest); padding:10px 24px; text-decoration:none; transition:opacity 0.2s; }
.nav-btn:hover { opacity:0.85; }
.nav-burger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; }
.nav-burger span { display:block; width:24px; height:1px; background:var(--cream); transition:all 0.3s; }
.nav-mobile { display:none; position:fixed; inset:0; background:var(--forest); z-index:99; flex-direction:column; align-items:center; justify-content:center; gap:36px; }
.nav-mobile.open { display:flex; }
.nav-mobile a { font-family:'Cormorant Garamond',serif; font-size:36px; font-weight:300; color:var(--cream); text-decoration:none; letter-spacing:0.04em; }
.nav-mobile a:hover { color:var(--gold); }
.nav-mobile .nav-btn { font-family:'Jost',sans-serif; font-size:11px; }

/* HERO */
.hero { height:680px; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; padding:0 64px 80px; }
.hero-img { position:absolute; inset:0; }
.hero-img img { width:100%; height:100%; object-fit:cover; object-position:center 40%; }
.hero-img::after { content:''; position:absolute; inset:0; background:linear-gradient(160deg,rgba(28,4,18,0.85) 0%,rgba(32,6,22,0.5) 40%,rgba(30,18,8,0.45) 70%,rgba(8,6,3,0.9) 100%); }
.hero-vline { position:absolute; top:0; bottom:0; left:62%; width:1px; background:linear-gradient(to bottom,transparent 10%,rgba(200,169,107,0.3) 40%,rgba(200,169,107,0.15) 80%,transparent); z-index:2; }
.hero-inner { position:relative; z-index:3; }
.hero-eye { display:flex; align-items:center; gap:14px; font-size:9px; font-weight:300; letter-spacing:0.38em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.hero-eye::before { content:''; width:28px; height:1px; background:var(--gold); opacity:0.6; }
.hero-h1 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:100px; line-height:0.88; color:#FAF5EC; letter-spacing:0.01em; text-transform:uppercase; margin-bottom:8px; }
.hero-h1 em { font-style:italic; color:#FAF5EC; -webkit-text-fill-color:#FAF5EC; }
.hero-sub { font-family:'Cormorant Garamond',serif; font-size:22px; font-style:italic; font-weight:300; color:rgba(250,245,236,0.45); margin-bottom:52px; letter-spacing:0.06em; }
.hero-btns { display:flex; align-items:center; gap:28px; }
.btn-gold { font-size:10px; font-weight:400; letter-spacing:0.22em; text-transform:uppercase; background:var(--gold); color:var(--forest); padding:16px 40px; text-decoration:none; transition:opacity 0.2s; display:inline-block; }
.btn-gold:hover { opacity:0.85; }
.btn-line { font-size:10px; font-weight:300; letter-spacing:0.2em; text-transform:uppercase; color:rgba(250,245,236,0.65); text-decoration:none; display:flex; align-items:center; gap:8px; transition:color 0.2s; }
.btn-line:hover { color:var(--gold); }
.btn-line::after { content:'→'; font-size:13px; }
.scroll-hint { position:absolute; bottom:36px; right:64px; z-index:3; display:flex; flex-direction:column; align-items:center; gap:6px; }
.scroll-hint span { font-size:8px; letter-spacing:0.32em; text-transform:uppercase; color:rgba(255,255,255,0.25); writing-mode:vertical-rl; }
.scroll-bar { width:1px; height:48px; background:linear-gradient(to bottom,rgba(200,169,107,0.5),transparent); animation:pulse 2.2s ease-in-out infinite; }
@keyframes pulse { 0%,100%{opacity:.4} 50%{opacity:1} }

/* PAGE HERO */
.page-hero { height:400px; position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:0 64px 68px; }
.page-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 40%; }
.page-hero::after { content:''; position:absolute; inset:0; background:linear-gradient(160deg,rgba(28,4,18,0.88) 0%,rgba(32,6,22,0.6) 60%,rgba(8,6,3,0.78) 100%); }
.page-hero.hero-photo { height:520px; }
.page-hero.hero-photo img { object-position:center 30%; }
.page-hero-inner { position:relative; z-index:2; }
.page-eye { font-size:9px; font-weight:300; letter-spacing:0.38em; text-transform:uppercase; color:var(--gold); margin-bottom:12px; display:flex; align-items:center; gap:14px; }
.page-eye::before { content:''; width:24px; height:1px; background:var(--gold); opacity:0.6; }
.page-h1 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:72px; line-height:0.92; color:#FAF5EC; letter-spacing:-0.01em; }
.page-h1 em { font-style:italic; color:var(--gold); }

/* META BAR */
.meta { background:var(--forest); display:flex; border-bottom:1px solid rgba(200,169,107,0.12); }
.meta-item { flex:1; padding:22px 32px; border-right:1px solid rgba(255,255,255,0.06); }
.meta-item:last-child { border-right:none; }
.ml { font-size:8px; letter-spacing:0.28em; text-transform:uppercase; color:rgba(255,255,255,0.28); margin-bottom:5px; }
.mv { font-family:'Cormorant Garamond',serif; font-size:15px; font-weight:300; color:var(--gold); letter-spacing:0.04em; }

/* TYPOGRAPHY */
.sec-eye { display:flex; align-items:center; gap:13px; font-size:9px; letter-spacing:0.35em; text-transform:uppercase; color:var(--gold); margin-bottom:24px; }
.sec-eye::before { content:''; width:24px; height:1px; background:var(--gold); opacity:0.6; }
.sec-h { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:46px; line-height:1.1; color:var(--forest); margin-bottom:28px; }
.sec-h em { font-style:italic; color:var(--clay); }
.sec-p { font-size:14px; font-weight:300; line-height:1.9; color:var(--mid); margin-bottom:14px; }
.txt-link { display:inline-flex; align-items:center; gap:9px; font-size:10px; font-weight:300; letter-spacing:0.2em; text-transform:uppercase; color:var(--clay); text-decoration:none; margin-top:18px; padding-bottom:2px; border-bottom:1px solid rgba(139,94,60,0.3); transition:border-color 0.2s; }
.txt-link:hover { border-color:var(--clay); }
.txt-link::after { content:'→'; font-size:12px; }

/* SPLITS */
.intro { display:grid; grid-template-columns:1fr 1fr; }
.intro-img { height:540px; position:relative; overflow:hidden; }
.intro-img img { width:100%; height:100%; object-fit:cover; transition:transform 8s ease; }
.intro-img:hover img { transform:scale(1.04); }
.intro-badge { position:absolute; bottom:0; right:0; background:var(--gold); padding:14px 24px; font-family:'Cormorant Garamond',serif; font-size:12px; font-style:italic; color:var(--forest); letter-spacing:0.08em; }
.intro-text { background:var(--cream); padding:80px 64px; display:flex; flex-direction:column; justify-content:center; }

.split { display:grid; grid-template-columns:1fr 1fr; }
.split-img { position:relative; overflow:hidden; min-height:500px; }
.split-img img { width:100%; height:100%; object-fit:cover; transition:transform 8s ease; position:absolute; inset:0; }
.split-img:hover img { transform:scale(1.03); }
.split-img::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(28,4,18,0.5) 0%,transparent 55%); }
.split-caption { position:absolute; bottom:28px; left:28px; z-index:2; font-size:9px; letter-spacing:0.28em; text-transform:uppercase; color:rgba(255,255,255,0.4); }
.split-text { padding:80px 64px; display:flex; flex-direction:column; justify-content:center; }
.bg-warm { background:var(--warm); }
.bg-cream { background:var(--cream); }
.bg-forest { background:var(--forest); }

.stats { display:flex; gap:48px; margin-top:44px; padding-top:36px; border-top:1px solid rgba(139,94,60,0.2); }
.sn { font-family:'Cormorant Garamond',serif; font-size:44px; font-weight:300; color:var(--clay); line-height:1; }
.sl { font-size:9px; font-weight:300; letter-spacing:0.2em; text-transform:uppercase; color:var(--light); margin-top:3px; }

/* MENU CARDS */
.menu-section { background:var(--forest); padding:88px 64px; }
.menu-hd { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; }
.menu-hd h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:60px; color:var(--cream); line-height:1; }
.menu-hd h2 em { font-style:italic; color:var(--gold); }
.menu-hd a { font-size:10px; font-weight:300; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); text-decoration:none; padding-bottom:2px; border-bottom:1px solid rgba(200,169,107,0.3); }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; }
.card { height:340px; position:relative; overflow:hidden; cursor:pointer; }
.card img { width:100%; height:100%; object-fit:cover; transition:transform 0.7s cubic-bezier(.4,0,.2,1); }
.card:hover img { transform:scale(1.06); }
.card-ov { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,0.8) 0%,rgba(0,0,0,0.1) 55%,transparent 100%); }
.card-body { position:absolute; bottom:28px; left:28px; right:28px; }
.c-tag { font-size:8px; letter-spacing:0.28em; text-transform:uppercase; color:var(--gold); margin-bottom:6px; }
.c-name { font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:300; color:#fff; line-height:1.1; }
.c-desc { font-size:11px; font-weight:300; color:rgba(255,255,255,0.5); margin-top:5px; }

/* QUOTE */
.quote-band { position:relative; height:440px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.quote-band img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.quote-band::after { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(28,4,18,0.9) 0%,rgba(30,18,8,0.8) 100%); }
.quote-inner { position:relative; z-index:2; text-align:center; max-width:720px; padding:0 40px; }
.q-mark { font-family:'Cormorant Garamond',serif; font-size:110px; color:var(--gold); opacity:0.18; line-height:0.6; display:block; margin-bottom:-16px; }
blockquote { font-family:'Cormorant Garamond',serif; font-size:29px; font-style:italic; font-weight:300; color:#FAF5EC; line-height:1.55; letter-spacing:0.02em; }
.q-attr { font-size:9px; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold); margin-top:28px; opacity:0.6; }

/* EVENTS */
.events-section { padding:88px 64px; }
.events-hd { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; }
.events-hd h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:52px; color:var(--forest); line-height:1.05; }
.events-hd h2 em { font-style:italic; color:var(--gold); }
.ev { display:grid; grid-template-columns:96px 1fr auto; align-items:center; gap:36px; padding:26px 0; border-bottom:1px solid var(--warm); cursor:pointer; transition:padding 0.25s,background 0.25s,margin 0.25s; }
.ev:hover { padding-left:10px; padding-right:10px; margin:0 -10px; background:var(--warm); }
.ev-d { background:var(--forest); padding:12px; text-align:center; }
.ev-day { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:300; color:var(--gold); line-height:1; }
.ev-mon { font-size:8px; letter-spacing:0.25em; text-transform:uppercase; color:rgba(255,255,255,0.3); margin-top:2px; }
.ev-name { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:300; color:var(--forest); margin-bottom:4px; }
.ev-desc { font-size:12px; font-weight:300; color:var(--light); letter-spacing:0.03em; }
.ev-tag { font-size:8px; letter-spacing:0.2em; text-transform:uppercase; color:var(--clay); background:rgba(139,94,60,0.1); padding:7px 14px; white-space:nowrap; }

/* GALERIE */
.gallery-hero { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:320px 320px; gap:3px; }
.gi { overflow:hidden; position:relative; }
.gi.tall { grid-row:span 2; }
.gi img { width:100%; height:100%; object-fit:cover; transition:transform 0.7s ease; display:block; }
.gi:hover img { transform:scale(1.05); }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:3px; padding:3px 0; }
.gallery-grid .gi { height:260px; }
.gallery-grid .gi.wide { grid-column:span 2; }
.gallery-placeholder { width:100%; height:100%; background:linear-gradient(135deg,rgba(232,221,208,0.8) 0%,rgba(200,169,107,0.12) 100%); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; }
.gallery-placeholder span { font-size:9px; letter-spacing:0.25em; text-transform:uppercase; color:var(--light); }

/* RESERVATION CTA */
.res { position:relative; overflow:hidden; padding:120px 64px; text-align:center; }
.res-bg { position:absolute; inset:0; }
.res-bg img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.res-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(90,40,10,0.9) 0%,rgba(43,10,28,0.85) 100%); }
.res-inner { position:relative; z-index:2; }
.res-eye { font-size:9px; letter-spacing:0.38em; text-transform:uppercase; color:rgba(255,255,255,0.45); margin-bottom:16px; }
.res-h { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:80px; color:#fff; letter-spacing:-0.01em; line-height:0.9; margin-bottom:20px; }
.res-sub { font-family:'Cormorant Garamond',serif; font-size:18px; font-style:italic; font-weight:300; color:rgba(255,255,255,0.5); margin-bottom:44px; }
.btn-w { font-size:10px; font-weight:400; letter-spacing:0.22em; text-transform:uppercase; background:#fff; color:var(--clay); padding:18px 52px; text-decoration:none; display:inline-block; transition:opacity 0.2s; }
.btn-w:hover { opacity:0.9; }
.res-tel { font-family:'Cormorant Garamond',serif; font-size:15px; font-style:italic; color:rgba(255,255,255,0.35); margin-top:22px; }

/* SPEISEKARTE */
.menu-page { background:var(--cream); padding:88px 64px; }
.menu-category { max-width:980px; margin:0 auto 72px; }
.menu-cat-hd { display:flex; align-items:baseline; gap:24px; margin-bottom:36px; padding-bottom:16px; border-bottom:1px solid rgba(43,10,28,0.12); }
.menu-cat-hd h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:42px; color:var(--forest); }
.menu-cat-hd h2 em { font-style:italic; color:var(--clay); }
.menu-cat-sub { font-size:9px; letter-spacing:0.22em; text-transform:uppercase; color:var(--light); }
.menu-item { display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:24px; padding:18px 0; border-bottom:1px solid rgba(43,10,28,0.06); }
.menu-item:last-child { border-bottom:none; }
.mi-name { font-family:'Cormorant Garamond',serif; font-size:21px; font-weight:300; color:var(--forest); margin-bottom:3px; }
.mi-desc { font-size:12px; font-weight:300; color:var(--light); line-height:1.6; }
.mi-price { font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:300; color:var(--clay); white-space:nowrap; }
.menu-note { max-width:980px; margin:0 auto; font-size:11px; font-weight:300; color:var(--light); line-height:1.9; padding:28px 0; border-top:1px solid rgba(43,10,28,0.1); }

/* FEATURES */
.features-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.feature-item { padding:48px 44px; border-top:1px solid rgba(43,10,28,0.1); border-right:1px solid rgba(43,10,28,0.06); }
.feature-item:nth-child(3n) { border-right:none; }
.feature-num { font-family:'Cormorant Garamond',serif; font-size:44px; font-weight:300; color:var(--gold); opacity:0.35; line-height:1; margin-bottom:14px; }
.feature-h { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:300; color:var(--forest); margin-bottom:10px; }
.feature-p { font-size:13px; font-weight:300; color:var(--mid); line-height:1.8; }

/* PACKAGES */
.packages-section { background:var(--forest); padding:88px 64px; }
.packages-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; margin-top:52px; }
.pkg { padding:44px 36px; background:rgba(255,255,255,0.04); border-top:2px solid rgba(200,169,107,0.25); }
.pkg-name { font-family:'Cormorant Garamond',serif; font-size:30px; font-weight:300; color:var(--cream); margin-bottom:6px; }
.pkg-sub { font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); opacity:0.6; margin-bottom:28px; display:block; }
.pkg-list { list-style:none; }
.pkg-list li { font-size:13px; font-weight:300; color:rgba(255,255,255,0.48); padding:7px 0; border-bottom:1px solid rgba(255,255,255,0.05); display:flex; gap:12px; }
.pkg-list li::before { content:'—'; color:var(--gold); opacity:0.45; flex-shrink:0; }

/* KONTAKT */
.kontakt-grid { display:grid; grid-template-columns:1fr 1fr; }
.kontakt-form-col { padding:80px 64px; background:var(--cream); }
.kontakt-info-col { padding:80px 64px; background:var(--warm); display:flex; flex-direction:column; gap:40px; }
.k-block h3 { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:300; color:var(--forest); margin-bottom:14px; }
.k-block p, .k-block address { font-size:13px; font-weight:300; color:var(--mid); line-height:1.9; font-style:normal; }
.k-block a { font-size:13px; font-weight:300; color:var(--mid); text-decoration:none; display:block; transition:color 0.2s; line-height:2; }
.k-block a:hover { color:var(--clay); }
.k-hours { display:grid; grid-template-columns:auto 1fr; gap:4px 20px; margin-top:4px; }
.k-hours dt { font-size:12px; font-weight:300; color:var(--light); white-space:nowrap; }
.k-hours dd { font-size:12px; font-weight:300; color:var(--mid); }
.form-group { margin-bottom:24px; }
.form-group label { display:block; font-size:9px; letter-spacing:0.28em; text-transform:uppercase; color:var(--mid); margin-bottom:8px; }
.form-group input, .form-group select, .form-group textarea { width:100%; padding:13px 0; border:none; border-bottom:1px solid rgba(43,10,28,0.2); background:transparent; font-family:'Jost',sans-serif; font-size:14px; font-weight:300; color:var(--dark); outline:none; transition:border-color 0.2s; border-radius:0; -webkit-appearance:none; }
.form-group select { cursor:pointer; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-bottom-color:var(--clay); }
.form-group textarea { resize:none; height:110px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.form-btn { font-size:10px; font-weight:400; letter-spacing:0.22em; text-transform:uppercase; background:var(--forest); color:var(--cream); border:none; padding:17px 48px; cursor:pointer; font-family:'Jost',sans-serif; transition:opacity 0.2s; margin-top:8px; }
.form-btn:hover { opacity:0.85; }
.form-btn:disabled { opacity:0.6; cursor:not-allowed; }
.form-error { display:none; margin-top:14px; font-size:12px; color:#a33; }
.form-success { display:none; margin-top:24px; padding:20px 24px; border:1px solid rgba(200,169,107,0.3); background:rgba(200,169,107,0.06); }
.form-success .fs-title { font-family:'Cormorant Garamond',serif; font-size:21px; color:var(--forest); margin-bottom:4px; }
.form-success .fs-sub { font-size:13px; color:var(--mid); }
.map-wrap { height:380px; overflow:hidden; }
.map-wrap iframe { width:100%; height:100%; border:0; display:block; filter:grayscale(20%); }
.map-consent { height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; background:var(--warm); padding:40px; text-align:center; }
.map-consent p { font-size:12px; font-weight:300; color:var(--mid); max-width:320px; line-height:1.7; }
.map-consent button { font-family:'Jost',sans-serif; font-size:10px; font-weight:400; letter-spacing:0.2em; text-transform:uppercase; color:#fff; background:var(--forest); border:none; padding:14px 28px; cursor:pointer; transition:background 0.25s; }
.map-consent button:hover { background:var(--clay); }

/* FOOTER */
footer { background:var(--dark); padding:72px 64px 40px; }
.ft-top { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:52px; padding-bottom:52px; border-bottom:1px solid rgba(255,255,255,0.07); }
.fbn { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:300; color:var(--cream); letter-spacing:0.12em; text-transform:uppercase; margin-bottom:5px; }
.fbs { font-family:'Cormorant Garamond',serif; font-size:12px; font-style:italic; color:var(--gold); letter-spacing:0.08em; margin-bottom:20px; }
.fbp { font-size:12px; font-weight:300; line-height:1.85; color:rgba(255,255,255,0.28); max-width:250px; }
.fct { font-size:8px; letter-spacing:0.3em; text-transform:uppercase; color:rgba(255,255,255,0.2); margin-bottom:18px; }
.fl { display:block; font-size:12px; font-weight:300; color:rgba(255,255,255,0.42); text-decoration:none; margin-bottom:10px; transition:color 0.2s; }
.fl:hover { color:var(--gold); }
.ft-bot { display:flex; justify-content:space-between; align-items:center; padding-top:26px; }
.fc { font-size:11px; font-weight:300; color:rgba(255,255,255,0.16); letter-spacing:0.06em; }
.ftag { font-family:'Cormorant Garamond',serif; font-size:12px; font-style:italic; color:rgba(255,255,255,0.16); }

/* ═══════════════════════════════════════════
   PREMIUM ANIMATIONS & 3D EFFECTS
   ═══════════════════════════════════════════ */

/* Cursor Glow */
.cursor-glow {
  position: fixed; width: 320px; height: 320px;
  border-radius: 50%; pointer-events: none; z-index: 9999;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, rgba(200,169,107,0.08) 0%, transparent 70%);
  transition: width 0.4s, height 0.4s, background 0.4s;
  mix-blend-mode: screen;
}
.cursor-glow.active {
  width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(200,169,107,0.18) 0%, transparent 70%);
}

/* Nav scrolled */
.nav { transition: padding 0.4s, background 0.4s, box-shadow 0.4s; }
.nav.scrolled {
  padding: 12px 48px;
  background: rgba(43,10,28,0.99);
  box-shadow: 0 4px 40px rgba(0,0,0,0.4);
}

/* ── SCROLL PROGRESS BAR ── */
.scroll-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 0;
  background: linear-gradient(90deg, var(--gold), var(--clay));
  z-index: 1000; pointer-events: none;
  box-shadow: 0 0 12px rgba(200,169,107,0.5);
  transition: width 0.08s linear;
}

/* ── HERO PARALLAX ── */
.hero-img, .page-hero > img { will-change: transform; }
.hero-inner, .page-hero-inner { will-change: transform, opacity; }

/* ── SCROLL REVEAL BASE ── */
.reveal, .reveal-left, .reveal-right, .reveal-scale {
  opacity: 0;
  transition: opacity 0.9s cubic-bezier(0.16,1,0.3,1), transform 0.9s cubic-bezier(0.16,1,0.3,1);
  will-change: opacity, transform;
}
.reveal         { transform: translateY(48px); }
.reveal-left    { transform: translateX(-56px); }
.reveal-right   { transform: translateX(56px); }
.reveal-scale   { transform: scale(0.88); }
.reveal.revealed, .reveal-left.revealed, .reveal-right.revealed, .reveal-scale.revealed {
  opacity: 1; transform: none;
}

/* ── HERO ANIMATIONS ── */
.hero-eye { animation: fadeSlideUp 1s 0.2s both cubic-bezier(0.16,1,0.3,1); }
.hero-h1  { animation: fadeSlideUp 1.1s 0.4s both cubic-bezier(0.16,1,0.3,1); }
.hero-sub { animation: fadeSlideUp 1s 0.65s both cubic-bezier(0.16,1,0.3,1); }
.hero-btns{ animation: fadeSlideUp 1s 0.85s both cubic-bezier(0.16,1,0.3,1); }
.page-eye { animation: fadeSlideUp 0.9s 0.2s both cubic-bezier(0.16,1,0.3,1); }
.page-h1  { animation: fadeSlideUp 1s 0.4s both cubic-bezier(0.16,1,0.3,1); }

@keyframes fadeSlideUp {
  from { opacity:0; transform:translateY(36px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ── META BAR ITEMS ── */
.meta-item {
  transition: background 0.3s;
}
.meta-item:hover { background: rgba(200,169,107,0.07); }

/* ── 3D CARDS ── */
.card, .pkg, .feature-item, .k-block {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  transform-style: preserve-3d;
  will-change: transform;
}

/* ── CARD IMAGE ZOOM ── */
.card img { transition: transform 0.8s cubic-bezier(0.25,1,0.5,1); }
.card:hover img { transform: scale(1.08); }

/* ── FEATURE ITEMS ── */
.feature-item {
  position: relative; overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s;
}
.feature-item::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(200,169,107,0.06) 0%, transparent 60%);
  opacity: 0; transition: opacity 0.4s;
}
.feature-item:hover::before { opacity: 1; }
.feature-item:hover .feature-num {
  opacity: 0.7;
  transform: scale(1.1);
  transition: opacity 0.4s, transform 0.4s;
}
.feature-num { transition: opacity 0.4s, transform 0.4s; }

/* ── PACKAGE CARDS ── */
.pkg {
  position: relative; overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pkg::after {
  content: '';
  position: absolute; inset: 0; top: auto; height: 2px; bottom: 0;
  background: linear-gradient(90deg, var(--gold), var(--clay));
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.4s cubic-bezier(0.16,1,0.3,1);
}
.pkg:hover::after { transform: scaleX(1); }

/* ── MENU ITEMS ── */
.menu-item {
  transition: padding 0.3s, background 0.3s, transform 0.3s;
  border-radius: 2px;
}
.menu-item:hover {
  padding-left: 12px;
  background: rgba(155,31,90,0.04);
}
.mi-name { transition: color 0.3s; }
.menu-item:hover .mi-name { color: var(--clay); }

/* ── EVENTS LIST ── */
.ev {
  transition: padding 0.3s, background 0.3s, transform 0.3s;
  position: relative; overflow: hidden;
}
.ev::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
  background: linear-gradient(to bottom, var(--gold), var(--clay));
  transform: scaleY(0); transform-origin: top;
  transition: transform 0.4s cubic-bezier(0.16,1,0.3,1);
}
.ev:hover::before { transform: scaleY(1); }

/* ── GALLERY IMAGES ── */
.gi { cursor: pointer; position: relative; overflow: hidden; }
.gi img { transition: transform 0.8s cubic-bezier(0.25,1,0.5,1); }
.gi:hover img { transform: scale(1.06); }
.gi::after {
  content: '';
  position: absolute; inset: 0;
  background: rgba(43,10,28,0);
  transition: background 0.4s;
}
.gi:hover::after { background: rgba(43,10,28,0.15); }

/* ── BUTTONS ── */
.btn-gold, .btn-w, .nav-btn, .form-btn {
  position: relative; overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease, opacity 0.2s;
}
.btn-gold::before, .btn-w::before {
  content: '';
  position: absolute; inset: 0;
  background: rgba(255,255,255,0.12);
  transform: translateX(-110%) skewX(-15deg);
  transition: transform 0.5s cubic-bezier(0.16,1,0.3,1);
}
.btn-gold:hover::before, .btn-w:hover::before {
  transform: translateX(110%) skewX(-15deg);
}
.btn-gold:hover, .btn-w:hover {
  box-shadow: 0 8px 32px rgba(200,169,107,0.35);
}

/* ── NAV LINKS UNDERLINE ── */
.nav-links a {
  position: relative;
}
.nav-links a::after {
  content: '';
  position: absolute; left: 0; bottom: -3px; right: 0; height: 1px;
  background: var(--gold);
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.35s cubic-bezier(0.16,1,0.3,1);
}
.nav-links a:hover::after, .nav-links a.active::after { transform: scaleX(1); }

/* ── SPLIT IMAGE REVEAL ── */
.split-img, .intro-img {
  overflow: hidden;
}
.split-img img, .intro-img img {
  transition: transform 0.8s cubic-bezier(0.25,1,0.5,1);
}

/* ── QUOTE BAND PARALLAX ── */
.quote-band img { transition: transform 0.1s linear; }

/* ── RESERVATION CTA ── */
.res-bg img { transition: transform 8s ease; }
.res:hover .res-bg img { transform: scale(1.06); }

/* ── SECTION HEADINGS GRADIENT ── */
.sec-h em, .page-h1 em, .menu-hd h2 em {
  background: linear-gradient(135deg, var(--gold) 0%, var(--clay) 60%, var(--gold) 100%);
  background-size: 200%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shimmer 4s ease infinite;
}
@keyframes shimmer {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ── SCROLL BAR ANIMATION ── */
@keyframes pulse { 0%,100%{opacity:.3} 50%{opacity:1} }

/* ── K-BLOCK HOVER ── */
.k-block {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border-radius: 1px;
}
.k-block:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(43,10,28,0.1);
}

/* ── FORM INPUTS ANIMATION ── */
.form-group input, .form-group select, .form-group textarea {
  transition: border-color 0.3s, box-shadow 0.3s;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  box-shadow: 0 4px 16px rgba(155,31,90,0.08);
}

/* ── LOGO ANIMATION ── */
.nav-logo {
  position: relative;
  transition: letter-spacing 0.4s ease, color 0.3s;
}
.nav-logo:hover { letter-spacing: 0.28em; }

/* ── FOOTER LINKS ── */
.fl {
  position: relative;
  transition: color 0.25s, padding-left 0.3s;
}
.fl:hover { padding-left: 6px; }

/* ── INTRO BADGE PULSE ── */
.intro-badge {
  animation: badgePulse 3s ease-in-out infinite;
}
@keyframes badgePulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(200,169,107,0); }
  50%      { box-shadow: 0 0 0 8px rgba(200,169,107,0.15); }
}

/* ── HERO VLINE ANIMATION ── */
.hero-vline { animation: lineGrow 1.8s 1s both cubic-bezier(0.16,1,0.3,1); }
@keyframes lineGrow {
  from { opacity:0; transform:scaleY(0); transform-origin:top; }
  to   { opacity:1; transform:scaleY(1); }
}

/* ── SCROLL HINT ── */
.scroll-hint { animation: fadeIn 1s 1.5s both; }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }

/* ── GLASS CARD (for special sections) ── */
.glass {
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.08);
}

/* ── PAGE TRANSITION ── */
body { animation: pageIn 0.6s ease both; }
@keyframes pageIn {
  from { opacity:0; }
  to   { opacity:1; }
}

/* RESPONSIVE */
@media (max-width:1024px) {
  .features-grid { grid-template-columns:1fr 1fr; }
  .features-grid .feature-item:nth-child(3n) { border-right:1px solid rgba(43,10,28,0.06); }
  .features-grid .feature-item:nth-child(2n) { border-right:none; }
}
@media (max-width:900px) {
  .nav { padding:16px 24px; }
  .nav-links, .nav-btn { display:none; }
  .nav-burger { display:flex; }
  .hero { height:560px; padding:0 24px 60px; }
  .hero-h1 { font-size:64px; }
  .hero-vline { display:none; }
  .page-hero { height:300px; padding:0 24px 48px; }
  .page-hero.hero-photo { height:360px; }
  .page-h1 { font-size:48px; }
  .meta { flex-wrap:wrap; }
  .meta-item { flex:1 1 50%; border-bottom:1px solid rgba(255,255,255,0.06); }
  .intro, .split, .kontakt-grid { grid-template-columns:1fr; }
  .intro-img { height:360px; }
  .split-img { min-height:300px; height:360px; position:relative; }
  .intro-text, .split-text, .kontakt-form-col, .kontakt-info-col { padding:52px 24px; }
  .menu-section, .events-section, .packages-section, .menu-page, .features-grid, .gallery-hero+.gallery-grid { padding-left:12px; padding-right:12px; }
  .events-section { padding:56px 24px; }
  .menu-section { padding:56px 24px; }
  .packages-section { padding:56px 24px; }
  .menu-page { padding:56px 24px; }
  .cards { grid-template-columns:1fr 1fr; }
  .packages-grid { grid-template-columns:1fr; }
  .features-grid { grid-template-columns:1fr; padding:0; }
  .feature-item { border-right:none !important; }
  .gallery-hero { grid-template-columns:1fr 1fr; grid-template-rows:240px 240px 240px; }
  .gi.tall { grid-row:span 1; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .gallery-grid .gi.wide { grid-column:span 1; }
  .res { padding:80px 24px; }
  .res-h { font-size:56px; }
  footer { padding:48px 24px 32px; }
  .ft-top { grid-template-columns:1fr 1fr; gap:32px; }
  .form-row { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .hero-h1 { font-size:48px; }
  .hero-sub { font-size:16px; margin-bottom:36px; }
  .hero-btns { flex-direction:column; align-items:stretch; gap:14px; }
  .hero-btns .btn-gold, .hero-btns .btn-line { text-align:center; }
  .meta { flex-direction:column; }
  .meta-item { border-right:none; }
  .cards { grid-template-columns:1fr; }
  .ev { grid-template-columns:60px 1fr; gap:20px; }
  .ev-tag { display:none; }
  .gallery-hero { grid-template-columns:1fr; grid-template-rows:repeat(5,220px); }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .ft-top { grid-template-columns:1fr; }
  .stats { flex-wrap:wrap; gap:28px; }
}

/* ─── EVENTS / KONTAKT — INLINE-GRID LAYOUTS ─── */
.ev-stats { background:var(--warm); padding:72px 64px; display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid rgba(43,10,28,0.1); }
.ev-stats > div { padding:40px 48px; border-right:1px solid rgba(43,10,28,0.1); }
.ev-stats > div:first-child { padding-left:0; }
.ev-stats > div:last-child { padding-right:0; border-right:none; }
.trauer-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; margin:48px 0; }
.trauer-included { display:grid; grid-template-columns:repeat(5,1fr); gap:24px; margin-bottom:48px; }
#trauerfeier { padding:88px 64px; }
#anfahrt { display:grid; grid-template-columns:1fr 1fr; }

@media (max-width:900px) {
  #trauerfeier { padding:56px 24px; }
  #trauerfeier > div { max-width:none; }
}
@media (max-width:760px) {
  .ev-stats { grid-template-columns:1fr; padding:48px 24px; gap:0; }
  .ev-stats > div { padding:26px 0 !important; border-right:none !important; border-bottom:1px solid rgba(43,10,28,0.1); }
  .ev-stats > div:first-child { padding-top:0 !important; }
  .ev-stats > div:last-child { border-bottom:none; padding-bottom:0 !important; }
  .trauer-grid { grid-template-columns:1fr; gap:14px; margin:32px 0; }
  .trauer-included { grid-template-columns:1fr 1fr; gap:12px; margin-bottom:36px; }
  #anfahrt { grid-template-columns:1fr; }
  #anfahrt .map-wrap { height:300px; }
  #anfahrt > div:last-child { padding:44px 24px !important; }
}
@media (max-width:420px) {
  .trauer-included { grid-template-columns:1fr; }
}
