:root{
  --green:#404F43; --green-deep:#2B352E; --green-darker:#1E251F;
  --cream:#EBE6E0; --cream-2:#F5F2EC;
  --gold:#C79147; --gold-bright:#DBAE6C;
  --text-on-green:#F0ECE3; --text-on-green-dim:#C7C2B4;
  --text-on-cream:#33402F; --text-on-cream-dim:#5E6959;
  --line-gold:rgba(199,145,71,0.35);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--cream); color:var(--text-on-cream); font-family:'EB Garamond',Georgia,serif; overflow-x:hidden; font-size:18px;}
h1,h2,h3,.display{font-family:'Playfair Display',serif; font-weight:700; letter-spacing:0.04em;}
a{color:inherit; text-decoration:none;}
::selection{background:var(--gold); color:var(--green-darker);}
:focus-visible{outline:2px solid var(--gold-bright); outline-offset:3px;}

.lang-pill{position:static; display:flex; gap:6px; background:rgba(0,0,0,0.25); border:1px solid rgba(255,255,255,0.4); border-radius:26px; padding:6px 8px; transition:all .3s ease; width:fit-content; justify-self:start;}
.lang-pill button{width:26px; height:20px; display:flex; align-items:center; justify-content:center; border-radius:3px; cursor:pointer; background:none; border:1px solid transparent; padding:0; overflow:hidden; transition:all .25s ease; opacity:0.65;}
.lang-pill button svg{width:100%; height:100%; display:block;}
.lang-pill button.active{opacity:1; border-color:var(--gold); box-shadow:0 0 0 2px rgba(199,145,71,0.3);}
.lang-pill button:hover:not(.active){opacity:1;}
header.scrolled .lang-pill{background:rgba(30,37,31,0.5); border-color:var(--gold);}

/* Flourish divider — matches the gold rule + ornament used throughout the real menu */
.flourish{display:flex; align-items:center; justify-content:center; gap:14px; margin:0 auto; max-width:340px; padding:0 0 6px;}
.flourish .ln{flex:1; height:1px; background:var(--gold);}
.flourish svg{width:34px; height:14px; color:var(--gold); flex-shrink:0;}
.flourish.on-cream .ln{background:var(--gold);}

/* Header — transparent floating over the hero video, solidifies on scroll (index.php only) */
header{position:fixed; top:0; left:0; right:0; z-index:200; padding:22px 5% 16px; background:transparent; transition:background .35s ease, padding .35s ease, box-shadow .35s ease;}
header:not(.header-transparent){position:sticky; background:rgba(24,29,25,0.98); border-bottom:1px solid var(--line-gold); padding:16px 5%; display:flex; align-items:center; justify-content:space-between;}
header.scrolled{background:rgba(24,29,25,0.97); padding:14px 5%; box-shadow:0 4px 20px rgba(0,0,0,0.25);}
.header-row{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; max-width:1400px; margin:0 auto;}
.header-actions{display:flex; align-items:center; gap:16px; justify-content:flex-end;}
.brand{display:flex; justify-content:center;}
.brand img{height:116px; width:auto; animation:logoFloat 3s ease-in-out infinite;}
@keyframes logoFloat{
  0%,100%{transform:translateY(0) rotate(0deg); filter:drop-shadow(0 2px 4px rgba(199,145,71,0.2));}
  50%{transform:translateY(-8px) rotate(-1.5deg); filter:drop-shadow(0 14px 18px rgba(199,145,71,0.5));}
}
@media(prefers-reduced-motion:reduce){.brand img{animation:none;}}

.btn-cta{border:1px solid var(--gold-bright); color:var(--gold-bright); font-family:'Playfair Display',serif; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; padding:11px 22px; transition:all .3s ease;}
.btn-cta:hover{background:var(--gold-bright); color:var(--green-darker);}

nav{margin-top:16px; text-align:center;}
nav ul{list-style:none; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:34px;}
nav a{font-family:'EB Garamond',serif; font-size:0.78rem; letter-spacing:0.2em; text-transform:uppercase; color:rgba(240,236,227,0.85); transition:color .3s ease; position:relative; padding-bottom:5px;}
nav a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold-bright); transition:width .3s ease;}
nav a:hover, nav a.active{color:var(--gold-bright);}
nav a:hover::after, nav a.active::after{width:100%;}
header:not(.header-transparent) nav{margin-top:0;}
.nav-toggle{display:none; background:none; border:1px solid var(--gold-bright); color:var(--gold-bright); font-size:1.2rem; width:38px; height:38px; cursor:pointer;}
@media(max-width:900px){
  nav{position:fixed; inset:0; top:0; background:var(--green-darker); display:none; padding:110px 8% 40px; z-index:999; margin:0;}
  nav.open{display:block;}
  nav ul{flex-direction:column; align-items:flex-start; gap:22px; font-size:1.1rem;}
  .nav-toggle{display:block;}
  .brand img{height:88px;}
  .header-row{grid-template-columns:auto 1fr auto;}
}

/* Hero — full-bleed video with overlaid text, header floats transparently on top */
.hero-full{position:relative; height:100vh; min-height:560px; overflow:hidden; display:flex; align-items:center; justify-content:center; text-align:center; background:var(--green-darker);}
.hero-full-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.hero-full-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,24,20,0.55) 0%, rgba(20,24,20,0.35) 40%, rgba(20,24,20,0.75) 100%);}
.hero-full-content{position:relative; z-index:2; padding:0 6%; max-width:800px;}
.hero-full-content .hero-eyebrow{font-family:'Playfair Display',serif; letter-spacing:0.35em; font-size:0.75rem; color:var(--gold-bright); text-transform:uppercase; display:block; margin-bottom:20px;}
.hero-full-content h1{font-size:clamp(2.4rem,6vw,4.2rem); color:#fff; line-height:1.15; margin-bottom:20px; text-shadow:0 4px 20px rgba(0,0,0,0.3);}
.hero-full-content .tagline{max-width:560px; margin:22px auto 0; color:rgba(240,236,227,0.92); font-size:1.1rem; line-height:1.85; font-style:italic;}
.hero-cta{display:flex; gap:18px; margin-top:38px; justify-content:center; flex-wrap:wrap;}
.btn-ghost-light{display:inline-block; padding:14px 32px; font-family:'Playfair Display',serif; font-size:0.8rem; letter-spacing:0.1em; cursor:pointer; transition:all .3s ease; border:1px solid rgba(255,255,255,0.7); color:#fff; background:transparent;}
.btn-ghost-light:hover{background:rgba(255,255,255,0.12); transform:translateY(-2px);}

.hero-secondary{background:var(--cream); padding:70px 6% 0;}
.hero-photo{max-width:900px; margin:0 auto; border:6px solid var(--cream-2); box-shadow:0 20px 50px rgba(0,0,0,0.25); position:relative;}
.hero-photo img{width:100%; display:block;}
.hero-photo::after{content:''; position:absolute; inset:0; border:1px solid var(--gold); pointer-events:none;}

.btn{display:inline-block; padding:14px 32px; font-family:'Playfair Display',serif; font-size:0.8rem; letter-spacing:0.1em; cursor:pointer; transition:all .3s ease; border:1px solid var(--gold);}
.btn-solid{background:var(--gold); color:var(--green-darker); font-weight:700;}
.btn-solid:hover{background:var(--gold-bright); transform:translateY(-2px);}
.btn-ghost{color:var(--green); background:transparent; border-color:var(--green);}
.btn-ghost:hover{background:rgba(64,79,67,0.08); transform:translateY(-2px);}
.btn-ghost-gold{color:var(--gold-bright); background:transparent; border-color:var(--gold);}
.visit-section{background:var(--cream);}
.map-wrap{max-width:900px; margin:0 auto; border:1px solid var(--gold); padding:6px; background:var(--cream-2);}
.map-wrap iframe{display:block;}
.payment-wrap{max-width:700px; margin:40px auto 0; text-align:center;}
.payment-label{display:block; font-family:'Playfair Display',serif; font-size:0.7rem; letter-spacing:0.2em; color:var(--gold); text-transform:uppercase; margin-bottom:16px;}
.payment-badges{display:grid; grid-template-columns:repeat(4,1fr); justify-content:center; gap:12px; max-width:420px; margin:0 auto;}
@media(max-width:480px){.payment-badges{grid-template-columns:repeat(4,1fr); max-width:320px; gap:8px;}}
.payment-badge{border:1px solid var(--gold); background:var(--cream-2); padding:6px; line-height:0; border-radius:4px; transition:transform .25s ease, box-shadow .25s ease; justify-self:center;}
.payment-badge:hover{transform:translateY(-2px); box-shadow:0 6px 14px rgba(0,0,0,0.12);}
.payment-badge svg{width:48px; height:29px; display:block; border-radius:2px;}

/* Newsletter & Prize Draw */
.newsletter-section{background:var(--cream);}
.prize-card{max-width:560px; margin:0 auto 34px; background:var(--green-deep); border:1px solid var(--gold); padding:30px 34px; text-align:center;}
.prize-tag{display:inline-block; font-family:'Playfair Display',serif; font-size:0.68rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-bright); border:1px solid var(--gold); padding:4px 14px; margin-bottom:14px;}
.prize-card h3{color:var(--gold-bright); font-size:1.3rem; margin-bottom:10px;}
.prize-card p{color:var(--text-on-green-dim); line-height:1.8; font-style:italic;}
.newsletter-form .consent-row{display:flex; align-items:flex-start; gap:10px; margin:6px 0 20px; text-align:left;}
.newsletter-form .consent-row input{margin-top:4px; flex-shrink:0;}
.newsletter-form .consent-row span{font-size:0.82rem; color:var(--text-on-green-dim); line-height:1.6;}

.footer-legal{margin-top:14px; display:flex; justify-content:center; gap:10px; font-size:0.76rem; color:var(--text-on-green-dim);}
.footer-legal a{color:var(--text-on-green-dim); transition:color .3s ease;}
.footer-legal a:hover{color:var(--gold-bright);}

.hero-video-banner{width:min(520px,90%); margin:0 auto 30px; border:1px solid var(--gold); box-shadow:0 14px 34px rgba(0,0,0,0.18); overflow:hidden; aspect-ratio:16/9; background:var(--green-darker);}
.hero-video-banner video{width:100%; height:100%; object-fit:cover; display:block;}

.hero{background:var(--cream); color:var(--text-on-cream); text-align:center; padding:80px 6% 90px; position:relative;}
.hero-logo{width:min(210px,50%); margin:0 auto 30px;}
.hero h1{font-size:clamp(2.1rem,5vw,3.4rem); color:var(--green); line-height:1.2; margin-bottom:22px;}
.hero-eyebrow{font-family:'Playfair Display',serif; letter-spacing:0.3em; font-size:0.7rem; color:var(--gold); text-transform:uppercase; display:block; margin-bottom:16px;}
.hero p.tagline{max-width:560px; margin:24px auto 0; color:var(--text-on-cream-dim); font-size:1.15rem; line-height:1.9; font-style:italic;}
.hero-cta{display:flex; gap:18px; margin-top:40px; justify-content:center; flex-wrap:wrap;}
.hero-photo{max-width:900px; margin:50px auto 0; border:6px solid var(--cream-2); box-shadow:0 20px 50px rgba(0,0,0,0.25); position:relative;}
.hero-photo img{width:100%; display:block;}
.hero-photo::after{content:''; position:absolute; inset:0; border:1px solid var(--gold); pointer-events:none;}

.btn{display:inline-block; padding:14px 32px; font-family:'Playfair Display',serif; font-size:0.8rem; letter-spacing:0.1em; cursor:pointer; transition:all .3s ease; border:1px solid var(--gold);}
.btn-solid{background:var(--gold); color:var(--green-darker); font-weight:700;}
.btn-solid:hover{background:var(--gold-bright); transform:translateY(-2px);}
.btn-ghost{color:var(--green); background:transparent; border-color:var(--green);}
.btn-ghost:hover{background:rgba(64,79,67,0.08); transform:translateY(-2px);}
.btn-ghost-gold{color:var(--gold-bright); background:transparent; border-color:var(--gold);}
.btn-ghost-gold:hover{background:rgba(199,145,71,0.12); transform:translateY(-2px);}

section{padding:90px 6%;}
.section-head{text-align:center; max-width:640px; margin:0 auto 20px;}
.section-head .eyebrow{font-family:'Playfair Display',serif; letter-spacing:0.28em; font-size:0.7rem; color:var(--gold); text-transform:uppercase; display:block; margin-bottom:14px;}
.section-head h2{font-size:clamp(1.9rem,4vw,2.6rem); color:var(--gold-bright);}
.section-head.on-cream h2{color:var(--green);}
.section-head p{color:var(--text-on-green-dim); margin-top:18px; line-height:1.8; font-style:italic;}
.section-head.on-cream p{color:var(--text-on-cream-dim);}

/* About */
.about-section{background:var(--cream);}
.about{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; max-width:1140px; margin:40px auto 0;}
.about-visual{position:relative; border:6px solid var(--green-deep);}
.about-visual img{width:100%; height:100%; object-fit:cover; display:block;}
.about-visual::after{content:''; position:absolute; inset:0; border:1px solid var(--gold); pointer-events:none;}
.about-text p{color:var(--text-on-cream-dim); line-height:2; margin-bottom:18px;}
.about-stats{display:flex; gap:40px; margin-top:26px; flex-wrap:wrap;}
.about-stats div strong{display:block; font-family:'Playfair Display',serif; font-size:1.4rem; color:var(--gold);}
.about-stats div span{font-size:0.8rem; color:var(--text-on-cream-dim); font-style:italic;}
@media(max-width:860px){.about{grid-template-columns:1fr; gap:34px;}}

/* Menu — mirrors the real printed menu pages */
.menu-section{background:var(--green);}
.menu-tabs{display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin:36px 0 50px;}
.menu-tab{padding:10px 20px; border:1px solid var(--line-gold); color:var(--text-on-green-dim); font-family:'Playfair Display',serif; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; background:var(--green-deep); transition:all .3s ease;}
.menu-tab.active,.menu-tab:hover{border-color:var(--gold); color:var(--gold-bright); background:rgba(199,145,71,0.1);}
.menu-grid{max-width:820px; margin:0 auto; display:none;}
.menu-grid.active{display:block;}
.menu-item{display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:18px 0; border-bottom:1px solid rgba(199,145,71,0.15);}
.menu-item:last-child{border-bottom:none;}
.menu-item-main{display:flex; flex-direction:column; gap:4px; flex:1;}
.menu-item-name{font-size:1.12rem; color:var(--text-on-green); font-weight:700; letter-spacing:0.01em;}
.menu-item-desc{font-size:0.86rem; color:var(--text-on-green-dim); line-height:1.6; font-style:italic;}
.menu-item-price{color:var(--gold-bright); font-family:'Playfair Display',serif; font-weight:700; font-size:1rem; white-space:nowrap;}

/* Gallery — cream section with gold-framed photos, matching print elegance */
.gallery-section{background:var(--cream);}
.gallery-grid{display:flex; flex-wrap:wrap; justify-content:center; gap:40px 34px; max-width:1140px; margin:40px auto 0;}
.gallery-card{position:relative; width:230px; height:230px; border-radius:50%; flex-shrink:0; margin-bottom:24px;}
.gallery-card::before{content:''; position:absolute; inset:-9px; border:1px solid var(--gold); border-radius:50%; pointer-events:none;}
.gallery-card .frame{width:100%; height:100%; border-radius:50%; overflow:hidden; display:block;}
.gallery-card img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease;}
.gallery-card:hover img{transform:scale(1.1);}
.gallery-card span{position:absolute; bottom:-34px; left:50%; transform:translateX(-50%); white-space:nowrap; text-align:center; font-family:'Playfair Display',serif; font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--green);}
@media(max-width:600px){.gallery-card{width:150px; height:150px;} .gallery-card::before{inset:-6px;}}

/* Forms */
.form-wrap{max-width:640px; margin:40px auto 0; background:var(--green-deep); border:1px solid var(--line-gold); padding:48px 40px; position:relative;}
.form-wrap::before{content:''; position:absolute; inset:10px; border:1px solid var(--gold); opacity:0.4; pointer-events:none;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px;}
.form-field{display:flex; flex-direction:column; gap:8px;}
.form-field.full{grid-column:1/-1;}
.form-field label{font-family:'Playfair Display',serif; font-size:0.7rem; letter-spacing:0.06em; color:var(--text-on-green-dim);}
.form-field input,.form-field select,.form-field textarea{background:transparent; border:none; border-bottom:1px solid var(--line-gold); color:var(--text-on-green); font-family:'EB Garamond',serif; font-size:1.05rem; padding:8px 2px; resize:vertical;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--gold);}
.form-field select option{background:var(--green-deep); color:var(--text-on-green);}
.form-wrap .btn{width:100%; margin-top:10px; text-align:center;}
.form-msg{margin-top:16px; font-size:0.9rem; text-align:center; line-height:1.8;}
.form-msg.error{color:#e0a99a;}
.form-msg.success{color:var(--gold-bright);}
.booking-code{display:inline-block; margin-top:8px; padding:8px 24px; border:1px dashed var(--gold); letter-spacing:0.2em; font-family:'Playfair Display',serif; font-size:1.2rem; color:var(--gold-bright);}
@media(max-width:560px){.form-row{grid-template-columns:1fr;}}

.status-badge{display:inline-block; padding:6px 18px; font-family:'Playfair Display',serif; font-size:0.75rem; letter-spacing:0.06em; margin-top:10px;}
.status-pending{background:rgba(199,145,71,.15); color:var(--gold-bright); border:1px solid var(--gold);}
.status-accepted{background:rgba(107,140,90,.25); color:#c3dbb2; border:1px solid #6B8C5A;}
.status-rejected{background:rgba(163,90,74,.2); color:#e0a99a; border:1px solid #A35A4A;}

footer{padding:64px 6% 36px; text-align:center; background:var(--green-darker); border-top:1px solid var(--line-gold);}
footer img.brand-logo{height:76px; margin-bottom:20px; animation:logoFloat 3s ease-in-out infinite;}
.footer-info{display:flex; justify-content:center; gap:46px; flex-wrap:wrap; margin:30px 0; color:var(--text-on-green-dim); font-size:0.94rem; line-height:1.9;}
.footer-info strong{display:block; font-family:'Playfair Display',serif; color:var(--gold); font-size:0.72rem; letter-spacing:0.14em; margin-bottom:6px; text-transform:uppercase;}
.footer-social{display:flex; justify-content:center; gap:16px; margin-bottom:26px;}
.footer-social a{width:38px; height:38px; border:1px solid var(--line-gold); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--text-on-green-dim); transition:.3s;}
.footer-social a svg{width:17px; height:17px; display:block;}
.footer-social a:hover{border-color:var(--gold); color:var(--gold-bright);}
footer .copy{font-size:0.76rem; color:var(--text-on-green-dim); opacity:.7; letter-spacing:0.05em;}

/* Promo modal — echoes the cream welcome-page look */
.promo-overlay{position:fixed; inset:0; background:rgba(20,24,20,0.85); z-index:999; display:flex; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(3px);}
.promo-modal{max-width:460px; width:100%; max-height:90vh; overflow-y:auto; background:var(--cream); border:1px solid var(--gold); text-align:center; position:relative; animation:promoIn .5s ease;}
@keyframes promoIn{from{opacity:0; transform:scale(.94) translateY(10px);} to{opacity:1; transform:scale(1) translateY(0);}}
.promo-modal .promo-img{width:100%; height:auto; max-height:60vh; object-fit:contain; display:block; background:var(--green-darker);}
.promo-modal .promo-body{padding:34px 34px 40px; color:var(--text-on-cream);}
.promo-modal .eyebrow{font-family:'Playfair Display',serif; letter-spacing:0.22em; font-size:0.64rem; color:var(--gold); text-transform:uppercase;}
.promo-modal h3{font-size:1.5rem; margin:14px 0 16px; color:var(--green);}
.promo-modal p{color:var(--text-on-cream-dim); line-height:1.8; margin-bottom:26px; font-style:italic;}
.promo-actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}

.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1; transform:none; transition:none;}}
