/* La Fontana Cafe — Luxury Stylesheet
   Palette inspired by La Fontana's gold and espresso identity:
   cream, deep espresso, warm terracotta, aged brass gold
*/
:root{
  --cream:#f7f0e3;
  --paper:#fbf7ef;
  --sand:#e8dcc5;
  --espresso:#21140c;
  --coffee:#3d2819;
  --terracotta:#8d5c35;
  --brass:#a8792b;
  --brass-soft:#e3cc8b;
  --olive:#5a6141;
  --ink:#160d08;
  --muted:#5f5143;
  --serif:'Cormorant Garamond', serif;
  --display:'Italiana', serif;
  --sans:'Inter', system-ui, sans-serif;
}

/* ---------- base ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}

/* subtle paper grain */
body::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:1;
  background-image:radial-gradient(rgba(74,46,28,.04) 1px, transparent 1px);
  background-size:3px 3px; mix-blend-mode:multiply;
}

h1,h2,h3,h4,h5{font-family:var(--serif);font-weight:400;color:var(--espresso);letter-spacing:.005em}
h1{font-size:clamp(3rem, 8vw, 7.5rem); line-height:.95; font-family:var(--display);font-weight:400}
h2{font-size:clamp(2rem, 4.5vw, 3.75rem); line-height:1.05}
h3{font-size:clamp(1.4rem, 2.2vw, 2rem)}
h5{font-family:var(--sans);font-size:.82rem;letter-spacing:.24em;text-transform:uppercase;color:var(--brass);margin-bottom:1rem;font-weight:600}
p{line-height:1.75;color:var(--coffee)}
.muted{color:var(--muted);font-size:1rem}

/* container */
.wrap{max-width:1280px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}
section{padding:clamp(4rem,10vw,9rem) 0;position:relative}

/* ---------- preloader ---------- */
.preloader{position:fixed;inset:0;background:var(--espresso);z-index:9999;display:flex;align-items:center;justify-content:center;transition:opacity .45s ease, visibility .45s ease;animation:preloaderFailsafe .45s ease 1.2s forwards}
.preloader-seen .preloader{display:none}
.preloader.done{opacity:0;visibility:hidden;animation:none}
@keyframes preloaderFailsafe{to{opacity:0;visibility:hidden;pointer-events:none}}
.preloader-inner{text-align:center;color:var(--cream)}
.pre-mark{font-family:var(--display);font-size:4rem;color:var(--brass);letter-spacing:.08em}
.pre-logo{width:min(360px,72vw);height:auto;margin:0 auto}
.pre-line{width:200px;height:1px;background:rgba(201,161,91,.25);margin:1.5rem auto;overflow:hidden}
.pre-line span{display:block;width:0;height:100%;background:var(--brass);animation:fill 1.4s ease forwards}
@keyframes fill{to{width:100%}}
.pre-text{font-family:var(--serif);letter-spacing:.5em;font-size:.85rem;text-transform:uppercase;color:var(--brass-soft);margin-left:.5em}

/* ---------- header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.5rem clamp(1.5rem,4vw,3.5rem);
  background:rgba(255,255,255,.95);backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(74,46,28,.08);
  transition:background .4s ease, padding .4s ease, backdrop-filter .4s ease;
}
.site-header.scrolled{background:rgba(255,255,255,.96);backdrop-filter:blur(14px);padding:1rem clamp(1.5rem,4vw,3.5rem);border-bottom:1px solid rgba(74,46,28,.08)}
.brand{display:flex;align-items:center;gap:.85rem;color:var(--espresso)}
.brand-logo{width:clamp(160px,14vw,230px);height:auto}
.brand-mark{
  font-family:var(--display);font-size:1.6rem;color:var(--brass);
  border:1px solid var(--brass);width:42px;height:42px;
  display:grid;place-items:center;border-radius:50%;letter-spacing:.02em
}
.brand-mark.big{width:64px;height:64px;font-size:2rem;margin-bottom:1rem}
.brand-name{font-family:var(--serif);font-size:1.3rem;letter-spacing:.04em}
.brand-name em{font-style:italic;color:var(--terracotta);font-weight:400}
.nav{display:flex;gap:2.2rem}
.nav-link{
  position:relative;font-size:.86rem;letter-spacing:.18em;
  text-transform:uppercase;font-weight:600;color:var(--coffee);
  padding:.4rem 0;transition:color .3s
}
.nav-link::after{
  content:'';position:absolute;left:50%;bottom:0;width:0;height:1px;
  background:var(--brass);transition:width .35s ease, left .35s ease
}
.nav-link:hover,.nav-link.active{color:var(--espresso)}
.nav-link:hover::after,.nav-link.active::after{width:100%;left:0}
.header-actions{display:flex;align-items:center;gap:.8rem}
.language-switch{display:inline-flex;align-items:center;border:1px solid rgba(168,121,43,.45);background:rgba(255,255,255,.55)}
.language-switch a{min-width:38px;padding:.55rem .6rem;font-size:.72rem;letter-spacing:.12em;color:var(--coffee);font-weight:700;text-align:center}
.language-switch a.active{background:var(--espresso);color:var(--brass-soft)}
.header-reserve{
  border:1px solid var(--brass);padding:.65rem 1.05rem;color:var(--espresso);
  font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;background:rgba(201,161,91,.08)
}
.header-reserve:hover{background:var(--brass);color:var(--espresso)}
.menu-toggle{display:none;width:40px;height:40px;flex-direction:column;justify-content:center;gap:5px;align-items:center}
.menu-toggle span{display:block;width:22px;height:1px;background:var(--espresso);transition:.3s}
.menu-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-toggle.open span:nth-child(2){opacity:0}
.menu-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.mobile-nav{
  position:fixed;inset:0;background:var(--espresso);z-index:90;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2rem;opacity:0;visibility:hidden;transition:.5s;transform:translateY(-20px);
}
.mobile-nav.open{opacity:1;visibility:visible;transform:none}
.mobile-nav a{color:var(--cream);font-family:var(--serif);font-size:2rem;letter-spacing:.05em}
.mobile-language-switch{background:rgba(255,255,255,.08)}
.mobile-language-switch a{color:var(--cream)}
.mobile-language-switch a.active{background:var(--brass);color:var(--espresso)}
.mobile-nav-foot{position:absolute;bottom:2rem;color:var(--brass-soft);letter-spacing:.2em;font-size:.7rem;text-transform:uppercase}

@media (max-width:900px){
  .nav{display:none}
  .header-reserve{display:none}
  .menu-toggle{display:flex}
}
@media (max-width:520px){.language-switch a{min-width:34px;padding:.5rem .45rem}}

html[dir="rtl"] body{font-family:'Noto Naskh Arabic', var(--sans);text-align:right}
html[dir="rtl"] h1,html[dir="rtl"] h2,html[dir="rtl"] h3,html[dir="rtl"] h4,html[dir="rtl"] h5,
html[dir="rtl"] .hero h1,html[dir="rtl"] .menu-cover h1,html[dir="rtl"] .menu-chapter-head h2{
  font-family:'Noto Naskh Arabic', var(--serif);letter-spacing:0;line-height:1.2
}
html[dir="rtl"] .nav,html[dir="rtl"] .hero-cta,html[dir="rtl"] .location-actions,html[dir="rtl"] .contact-actions{direction:rtl}
html[dir="rtl"] .hero-inner{text-align:right}
html[dir="rtl"] .hero-media{right:auto;left:0}
html[dir="rtl"] .hero-media::after{background:linear-gradient(270deg, rgba(250,246,238,1) 0%, transparent 30%)}
html[dir="rtl"] .hero p.lead{margin-right:0;margin-left:auto}
html[dir="rtl"] .hero-scroll{right:auto;left:clamp(1.5rem,4vw,3rem)}
html[dir="rtl"] .section-label,html[dir="rtl"] .hero-eyebrow,html[dir="rtl"] .title-rule{flex-direction:row-reverse}
html[dir="rtl"] .story-letter{border-left:0;border-right:1px solid rgba(198,160,82,.55)}
html[dir="rtl"] .story-letter .dropcap::first-letter{float:right;margin:.18rem 0 0 .65rem}
html[dir="rtl"] .menu-luxe .item .price{text-align:left;justify-self:start;justify-content:flex-start}
html[dir="rtl"] .menu-luxe .item .idx{direction:ltr}
html[dir="rtl"] .field label{left:auto;right:0}
html[dir="rtl"] .footer-bottom,html[dir="rtl"] .footer-grid{text-align:right}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.8rem;
  padding:1.05rem 2.4rem;border:1px solid var(--espresso);
  font-size:.8rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--espresso);background:transparent;position:relative;overflow:hidden;
  transition:color .4s ease
}
.btn::before{
  content:'';position:absolute;inset:0;background:var(--espresso);
  transform:translateY(101%);transition:transform .5s cubic-bezier(.7,0,.3,1);z-index:-1
}
.btn:hover{color:var(--cream)}
.btn:hover::before{transform:translateY(0)}
.btn.gold{border-color:var(--brass);color:var(--brass)}
.btn.gold::before{background:var(--brass)}
.btn.gold:hover{color:var(--espresso)}
.btn.ghost-light{border-color:var(--cream);color:var(--cream)}
.btn.ghost-light::before{background:var(--cream)}
.btn.ghost-light:hover{color:var(--espresso)}

/* ---------- hero ---------- */
.hero{
  min-height:100vh;position:relative;display:flex;align-items:center;
  padding:8rem clamp(1.25rem,4vw,3rem) 4rem;
  overflow:hidden;background:var(--paper)
}
.hero-media{
  position:absolute;top:0;right:0;bottom:0;width:55%;
  background:linear-gradient(160deg, #6d542d 0%, #21140c 100%);
  overflow:hidden
}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85}
.hero-media::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(250,246,238,1) 0%, transparent 30%);
}
.hero-inner{position:relative;z-index:2;max-width:1280px;margin:0 auto;width:100%}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:1rem;
  font-size:.82rem;letter-spacing:.32em;text-transform:uppercase;color:var(--brass);
  margin-bottom:2rem
}
.hero-eyebrow::before{content:'';display:block;width:40px;height:1px;background:var(--brass)}
.hero h1 .word{display:inline-block;overflow:hidden}
.hero h1 .word span{display:inline-block}
.hero h1{font-size:clamp(2.65rem, 6vw, 5.85rem)}
.hero h1 em{font-style:italic;color:var(--terracotta)}
.hero p.lead{
  max-width:440px;margin-top:2rem;font-family:var(--serif);
  font-size:1.25rem;line-height:1.55;color:var(--coffee)
}
.hero-cta{display:flex;gap:1rem;margin-top:2.5rem;flex-wrap:wrap}
.hero-meta{
  position:absolute;left:clamp(1.25rem,4vw,3rem);bottom:2rem;
  display:flex;gap:2rem;font-size:.72rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--muted);z-index:2
}
.hero-scroll{
  position:absolute;right:clamp(1.5rem,4vw,3rem);bottom:2rem;z-index:3;
  writing-mode:vertical-rl;font-size:.7rem;letter-spacing:.4em;
  text-transform:uppercase;color:var(--cream);display:flex;align-items:center;gap:1rem
}
.hero-scroll::after{content:'';width:1px;height:60px;background:var(--brass);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}

@media (max-width:900px){
  .hero-media{width:100%;opacity:.35}
  .hero-media::after{background:linear-gradient(180deg, rgba(250,246,238,.9) 0%, rgba(250,246,238,.7) 100%)}
}

/* ---------- marquee ---------- */
.marquee{
  overflow:hidden;background:var(--espresso);color:var(--cream);
  padding:1.4rem 0;border-block:1px solid rgba(201,161,91,.2)
}
.marquee-track{display:flex;gap:4rem;white-space:nowrap;animation:scroll 40s linear infinite}
.marquee span{font-family:var(--display);font-size:1.6rem;letter-spacing:.15em;color:var(--brass-soft)}
.marquee span::after{content:'✦';color:var(--brass);margin-left:4rem}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- reveal animations ---------- */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s ease, transform 1s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal-x{opacity:0;transform:translateX(-50px);transition:opacity 1s ease, transform 1s cubic-bezier(.2,.7,.3,1)}
.reveal-x.in{opacity:1;transform:none}

/* ---------- sections ---------- */
.section-label{
  display:flex;align-items:center;gap:1rem;
  font-size:.82rem;letter-spacing:.26em;text-transform:uppercase;color:var(--brass);
  margin-bottom:1.5rem
}
.section-label::before{content:'';width:30px;height:1px;background:var(--brass)}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,7rem);align-items:center}
@media (max-width:900px){.two-col{grid-template-columns:1fr}}

.image-frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--sand)}
.image-frame::before{
  content:'';position:absolute;inset:-1rem;border:1px solid var(--brass);z-index:-1;
  transform:translate(1.5rem,1.5rem)
}
.image-frame img,.image-frame video{width:100%;height:100%;object-fit:cover;transition:transform 1.4s ease}
.image-frame video{display:block}
.image-frame:hover img,.image-frame:hover video{transform:scale(1.06)}
.experience-section{max-width:none;margin:0;padding-left:0;padding-right:0;overflow:hidden}
.experience-grid{
  grid-template-columns:minmax(0,calc((100vw - min(1280px, 100vw))/2 + min(560px, 46vw))) minmax(0,1fr);
  gap:clamp(3rem,5vw,5rem);align-items:start
}
.experience-grid .reveal-x{justify-self:end;width:min(560px,calc(100vw - 2.5rem));padding-left:clamp(1.25rem,4vw,3rem)}
.experience-grid > .reveal{margin-top:0}
.experience-grid > .reveal .image-frame{height:min(680px,70vh);min-height:520px;aspect-ratio:auto;width:100%}
.experience-grid > .reveal .image-frame::before{display:none}
@media (max-width:900px){
  .experience-section{padding-left:clamp(1.25rem,4vw,3rem);padding-right:clamp(1.25rem,4vw,3rem)}
  .experience-grid{grid-template-columns:1fr}
  .experience-grid .reveal-x{width:auto;padding-left:0;justify-self:stretch}
  .experience-grid > .reveal{margin-top:0}
  .experience-grid > .reveal .image-frame{height:auto;min-height:0;aspect-ratio:4/5}
  .experience-grid > .reveal .image-frame::before{display:block}
}
.home-media-carousel img{
  position:absolute;inset:0;opacity:0;transition:opacity .9s ease, transform 1.4s ease
}
.home-media-carousel img.active{opacity:1}
.home-media-carousel:hover img.active{transform:scale(1.06)}

/* ---------- signature cards (home features) ---------- */
.signature{background:linear-gradient(180deg, var(--paper) 0%, var(--sand) 100%)}
.sig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
@media (max-width:900px){.sig-grid{grid-template-columns:1fr}}
.sig{
  background:var(--paper);padding:2.5rem 2rem;
  border:1px solid rgba(74,46,28,.1);
  transition:.5s;position:relative;overflow:hidden
}
.sig::before{
  content:'';position:absolute;top:0;left:0;width:100%;height:2px;
  background:var(--brass);transform:scaleX(0);transform-origin:left;transition:.6s
}
.sig:hover{transform:translateY(-6px);border-color:var(--brass)}
.sig:hover::before{transform:scaleX(1)}
.sig-num{font-family:var(--display);font-size:2.5rem;color:var(--brass);margin-bottom:1rem}
.sig h3{margin-bottom:.8rem}

/* ---------- menu page ---------- */
.menu-hero{padding:12rem 0 4rem;text-align:center;background:var(--paper)}
.menu-hero h1{font-size:clamp(3rem,7vw,6rem)}
.menu-tabs{
  display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;
  padding:2rem 0;border-block:1px solid rgba(74,46,28,.12);
  margin-bottom:4rem
}
.menu-tab{
  font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);
  padding:.6rem 0;position:relative;cursor:pointer;transition:color .3s
}
.menu-tab.active,.menu-tab:hover{color:var(--espresso)}
.menu-tab.active::after{
  content:'';position:absolute;left:50%;bottom:-.5rem;transform:translateX(-50%);
  width:6px;height:6px;background:var(--brass);border-radius:50%
}
.menu-section{margin-bottom:5rem}
.menu-section h2{text-align:center;margin-bottom:.5rem;font-style:italic}
.menu-section .section-sub{text-align:center;color:var(--muted);margin-bottom:3rem;letter-spacing:.15em;font-size:.8rem;text-transform:uppercase}
.menu-list{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 4rem;max-width:1000px;margin:0 auto}
@media (max-width:800px){.menu-list{grid-template-columns:1fr}}
.menu-item{
  padding:1.2rem 0;border-bottom:1px dashed rgba(74,46,28,.18);
  display:grid;grid-template-columns:1fr auto;gap:.4rem 1rem
}
.menu-item .name{font-family:var(--serif);font-size:1.3rem;color:var(--espresso)}
.menu-item .price{font-family:var(--serif);font-size:1.2rem;color:var(--brass);white-space:nowrap}
.menu-item .desc{grid-column:1/-1;color:var(--muted);font-size:1rem;line-height:1.65}

/* ---------- history ---------- */
.chapter{padding:6rem 0}
.chapter:nth-child(even){background:linear-gradient(0deg, var(--paper) 0%, rgba(230,217,193,.4) 100%)}
.story-hero{padding:9.5rem 0 2rem}
.story-intro{max-width:640px;margin:2rem auto 0;font-family:var(--serif);font-size:1.35rem;color:var(--coffee);font-style:italic}
.story-page{padding-top:1.5rem;background:linear-gradient(180deg,var(--paper),rgba(232,220,197,.35))}
.story-feature{
  display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,.85fr);
  gap:clamp(2rem,5vw,4rem);align-items:center;margin-bottom:2rem
}
.story-feature img,.story-gallery img,.location-card img{
  width:100%;height:100%;object-fit:cover;display:block
}
.story-feature img{aspect-ratio:4/3;box-shadow:0 24px 70px rgba(33,20,12,.12)}
.story-feature h2{font-size:clamp(2.6rem,5vw,4.25rem)}
.story-feature p{margin-top:1.2rem;font-family:var(--serif);font-size:1.25rem;line-height:1.8;color:var(--coffee)}
.story-letter{
  max-width:900px;margin:0 auto;padding:clamp(1.75rem,4vw,3.5rem);
  border-left:1px solid rgba(198,160,82,.55);
  background:rgba(251,247,239,.72);box-shadow:0 26px 70px rgba(33,20,12,.07)
}
.story-letter p{font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.74;color:var(--coffee);margin:0 0 1.15rem}
.story-letter .dropcap::first-letter{font-family:var(--display);font-size:4.4rem;line-height:.85;color:var(--brass);float:left;margin:.18rem .65rem 0 0}
.story-promises{display:grid;gap:.8rem;margin:2rem 0;padding:1.5rem 0;border-block:1px solid rgba(198,160,82,.35)}
.story-promises span{font-family:var(--sans);font-size:.9rem;letter-spacing:.18em;text-transform:uppercase;color:var(--espresso);font-weight:600}
.story-letter .story-ending{font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.5;color:var(--espresso);font-style:italic;margin-bottom:0}
.story-timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:2.25rem auto;max-width:980px;background:rgba(198,160,82,.35)}
.story-timeline div{background:var(--paper);padding:1.5rem}
.story-timeline span{display:block;font-family:var(--display);font-size:1.8rem;color:var(--brass);margin-bottom:.75rem}
.story-timeline p{color:var(--coffee);line-height:1.75}
.story-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:2.25rem}
.story-gallery img{aspect-ratio:4/3;filter:sepia(10%)}
@media (max-width:800px){.story-feature,.story-timeline,.story-gallery{grid-template-columns:1fr}.story-page{padding-top:2rem}}
.timeline{position:relative;max-width:900px;margin:4rem auto 0;padding-left:3rem}
.timeline::before{content:'';position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--brass)}
.timeline-item{position:relative;padding-bottom:3rem}
.timeline-item::before{
  content:'';position:absolute;left:-3.4rem;top:.5rem;width:11px;height:11px;
  border-radius:50%;background:var(--paper);border:2px solid var(--brass)
}
.timeline-year{font-family:var(--display);color:var(--brass);font-size:1.4rem;margin-bottom:.5rem;letter-spacing:.15em}
.timeline-item h3{margin-bottom:.5rem}

/* ---------- catering ---------- */
.catering-hero{
  min-height:70vh;display:grid;place-items:center;text-align:center;
  background:linear-gradient(rgba(42,26,16,.7),rgba(42,26,16,.85)),
    url('https://images.unsplash.com/photo-1519671482749-fd09be7ccebf?w=1600&q=80') center/cover;
  color:var(--cream);padding:8rem 2rem
}
.catering-hero h1{color:var(--cream)}
.catering-hero .hero-eyebrow{color:var(--brass-soft)}
.catering-hero .hero-eyebrow::before{background:var(--brass-soft)}
.catering-hero p.lead{color:var(--brass-soft);font-family:var(--serif);font-size:1.3rem;max-width:600px;margin:2rem auto 0}
.packages{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:4rem}
@media (max-width:900px){.packages{grid-template-columns:1fr}}
.pack{
  padding:3rem 2rem;border:1px solid rgba(74,46,28,.15);
  background:var(--paper);text-align:center;transition:.5s;position:relative
}
.pack:hover{border-color:var(--brass);transform:translateY(-8px);box-shadow:0 30px 60px -30px rgba(42,26,16,.2)}
.pack .tag{font-family:var(--display);color:var(--brass);font-size:1.8rem;margin-bottom:.5rem;letter-spacing:.08em}
.pack .price{font-family:var(--serif);font-size:2rem;color:var(--espresso);margin:1rem 0}
.pack .price small{font-size:.85rem;color:var(--muted);letter-spacing:.15em;text-transform:uppercase;font-family:var(--sans)}
.pack ul{list-style:none;margin:2rem 0;text-align:left}
.pack li{padding:.6rem 0;border-bottom:1px dashed rgba(74,46,28,.12);color:var(--coffee);font-size:.95rem}
.pack li::before{content:'✦';color:var(--brass);margin-right:.75rem}

/* ---------- media (gallery) ---------- */
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:2rem}
.gallery figure{overflow:hidden;position:relative;background:var(--sand);display:block;margin:0}
.gallery figure,.gallery figure img,.gallery figure video{aspect-ratio:1/1}
.gallery figure img,.gallery figure video{width:100%;height:100%;object-fit:cover;transition:1.2s;display:block}
.gallery figure:hover img{transform:scale(1.08)}
.gallery figure::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(42,26,16,.5));opacity:0;transition:.4s;pointer-events:none
}
.gallery figure:hover::after{opacity:1}
.gallery .media-video{background:var(--espresso)}
.g1,.g2,.g3,.g4,.g5,.g6,.g7,.g8,.g9{grid-column:auto}
@media (max-width:800px){
  .gallery{grid-template-columns:1fr}
}
.press-row{display:grid;grid-template-columns:repeat(5,1fr);gap:3rem;align-items:center;margin-top:4rem;opacity:.7}
.press-row span{font-family:var(--display);font-size:1.3rem;color:var(--espresso);letter-spacing:.1em;text-align:center;font-style:italic}
@media (max-width:800px){.press-row{grid-template-columns:repeat(2,1fr);gap:2rem}}

/* ---------- location ---------- */
.map-wrap{position:relative;height:520px;background:var(--sand);overflow:hidden;margin-top:3rem;border:1px solid var(--brass)}
.map-wrap iframe{width:100%;height:100%;border:0;filter:sepia(20%) contrast(.95)}
.hours-summary{margin-top:1.5rem;max-width:400px;padding:1.25rem 0;border-top:1px solid rgba(74,46,28,.12);border-bottom:1px solid rgba(74,46,28,.12);display:grid;grid-template-columns:1fr auto;gap:.35rem 2rem;align-items:baseline}
.hours-summary span{font-family:var(--serif);font-size:1.2rem;color:var(--espresso)}
.hours-summary strong{font-size:1rem;font-weight:500;color:var(--coffee);text-align:right}
.hours-summary small{grid-column:1/-1;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;font-size:.78rem}
.hours-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 3rem;margin-top:2rem;max-width:400px}
.hours-grid div:nth-child(odd){color:var(--espresso);font-family:var(--serif);font-size:1.1rem}
.hours-grid div:nth-child(even){color:var(--muted);text-align:right;font-size:1rem}
.service-hours{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid rgba(74,46,28,.12)}
.location-actions{margin-top:2.5rem;margin-bottom:4rem;display:flex;gap:1rem;flex-wrap:wrap}
.location-card{background:var(--espresso);color:var(--cream);min-height:640px;display:grid;grid-template-rows:1fr auto}
.location-card img{min-height:420px}
.location-map{width:100%;min-height:420px;height:100%;border:0;display:block;background:var(--sand)}
.location-card > div{padding:2rem}
.location-card h3{color:var(--cream);margin-bottom:1rem}
.location-card p{color:var(--brass-soft);line-height:1.8;margin-bottom:1.5rem}
@media (max-width:520px){.hours-summary{grid-template-columns:1fr}.hours-summary strong{text-align:left}.location-actions .btn{width:100%;justify-content:center}}

/* ---------- contact ---------- */
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem}
.hp-field{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

.contact-form .full{grid-column:1/-1}
.field{position:relative}
.field input,.field textarea,.field select{
  width:100%;background:transparent;border:none;border-bottom:1px solid rgba(74,46,28,.25);
  padding:1rem 0;font:inherit;color:var(--espresso);font-size:1rem;
  transition:border-color .3s
}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--brass)}
.field label{
  position:absolute;left:0;top:1rem;color:var(--muted);
  pointer-events:none;transition:.3s;font-size:.95rem;letter-spacing:.1em
}
.field input:focus+label,.field input:not(:placeholder-shown)+label,
.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label,
.field select:focus+label,.field select:valid+label{
  top:-.6rem;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);font-weight:600
}
@media (max-width:700px){.contact-form{grid-template-columns:1fr}}

.contact-actions{margin:1.5rem 0 2rem;display:flex;gap:.75rem;flex-wrap:wrap}
.contact-actions .btn{padding:.85rem 1.4rem}
.thank{
  padding:3rem;border:1px solid var(--brass);text-align:center;
  background:linear-gradient(180deg,var(--paper),rgba(230,217,193,.5))
}
.thank h3{color:var(--brass);font-family:var(--display);font-size:2.5rem;margin-bottom:1rem}

/* ---------- footer ---------- */
.site-footer{background:var(--espresso);color:var(--brass-soft);padding:6rem 0 2rem}
.site-footer .wrap,.footer-grid{max-width:1280px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:3rem}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.footer-grid{grid-template-columns:1fr}}
.site-footer h5{color:var(--brass);margin-bottom:1.2rem}
.site-footer p,.site-footer a{color:var(--brass-soft);font-size:.95rem;line-height:1.9}
.site-footer a:hover{color:var(--cream)}
.footer-logo{width:min(300px,72vw);height:auto;margin-bottom:1.5rem}
.foot-tag{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--cream);max-width:280px}
.foot-tag.bottom{font-size:.95rem;letter-spacing:0;text-transform:none;color:var(--cream)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.social-links{display:flex;flex-direction:row;align-items:center;gap:.85rem}
.social-links.inline{display:inline-flex;flex-direction:row;flex-wrap:wrap;gap:.85rem;line-height:1.7}
.social-links a{position:relative;display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid rgba(198,160,82,.45);border-radius:50%;transition:color .3s ease,border-color .3s ease,background .3s ease,transform .3s ease}
.social-links a:hover{border-color:var(--brass);background:rgba(198,160,82,.08);transform:translateY(-2px)}
.social-icon{width:1.15rem;height:1.15rem;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.social-icon path{fill:none;stroke:currentColor}
.foot-form{display:flex;gap:0;margin-top:1rem;border-bottom:1px solid var(--brass)}
.foot-form input{flex:1;background:transparent;border:none;padding:.8rem 0;color:var(--cream);font:inherit;font-size:.9rem}
.foot-form input:focus{outline:none}
.foot-form input::placeholder{color:rgba(224,196,138,.5)}
.foot-form button{padding:.8rem 1.4rem;color:var(--brass);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;border-left:1px solid var(--brass)}
.footer-bottom{
  max-width:1280px;margin:5rem auto 0;padding:2rem clamp(1.25rem,4vw,3rem) 0;
  border-top:1px solid rgba(201,161,91,.2);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(232,211,148,.86)
}
.footer-bottom a{font-size:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--brass)}

.mobile-action-bar{display:none}
@media (max-width:760px){
  body{padding-bottom:64px}
  .mobile-action-bar{
    position:fixed;left:0;right:0;bottom:0;z-index:120;display:grid;grid-template-columns:repeat(4,1fr);
    background:rgba(33,20,12,.96);border-top:1px solid rgba(201,161,91,.45);backdrop-filter:blur(12px)
  }
  .mobile-action-bar a{
    color:var(--brass);text-align:center;padding:.9rem .35rem;font-size:.68rem;
    letter-spacing:.1em;text-transform:uppercase;border-right:1px solid rgba(201,161,91,.2);font-weight:600
  }
  .mobile-action-bar a:last-child{border-right:0}
}
.crest{color:var(--brass)}

/* ===================================================================
   ENHANCED ANIMATIONS — v2
   =================================================================== */

/* Custom cursor */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9998;border-radius:50%;transform:translate(-50%,-50%);mix-blend-mode:difference}
.cursor-dot{width:6px;height:6px;background:var(--brass);transition:transform .15s ease, opacity .3s}
.cursor-ring{width:36px;height:36px;border:1px solid var(--brass);transition:transform .35s cubic-bezier(.2,.7,.3,1), opacity .3s, width .3s, height .3s, background .3s}
.cursor-ring.hover{width:70px;height:70px;background:rgba(201,161,91,.12)}
@media (max-width:900px){.cursor-dot,.cursor-ring{display:none}}

/* Split-word hero */
.split-line{display:block;overflow:hidden;padding:.1em 0}
.split-line .char{display:inline-block;transform:translateY(105%);opacity:0}
.split-line .char.in{transform:translateY(0);opacity:1;transition:transform 1.1s cubic-bezier(.19,1,.22,1), opacity .6s ease}

/* Ken-burns hero image */
@keyframes kenburns{
  0%{transform:scale(1.15) translate(-1%,1%)}
  100%{transform:scale(1.25) translate(1%,-1%)}
}
.hero-media img{animation:kenburns 18s ease-in-out infinite alternate}
.hero-scene img{animation:none}

/* --- Animated scene hero (no image) --- */
.hero-scene{overflow:hidden;background:#21140c}
.hero-scene::after{
  content:'';position:absolute;inset:0;z-index:20;pointer-events:none;
  background:linear-gradient(90deg, rgba(250,246,238,1) 0%, rgba(250,246,238,.5) 12%, transparent 35%)
}

/* Sky gradient — sunset over the Gulf */
.scene-sky{
  position:absolute;inset:0;z-index:0;
  background:
    linear-gradient(180deg,
      #f1dba0 0%,
      #d7bd7a 22%,
      #c6a052 42%,
      #6d542d 64%,
      #3d2819 82%,
      #21140c 100%);
  animation:skyDrift 20s ease-in-out infinite alternate
}
@keyframes skyDrift{
  0%{filter:hue-rotate(0deg) brightness(1)}
  100%{filter:hue-rotate(-8deg) brightness(1.05)}
}

/* Stars twinkling */
.scene-stars{position:absolute;inset:0;z-index:1;pointer-events:none}
.scene-stars span{
  position:absolute;width:2px;height:2px;background:#f7f0e3;border-radius:50%;
  box-shadow:0 0 4px rgba(255,240,200,.8);
  animation:twinkle 3s ease-in-out infinite
}
.scene-stars span:nth-child(1){top:8%;left:20%;animation-delay:0s}
.scene-stars span:nth-child(2){top:12%;left:45%;animation-delay:.6s}
.scene-stars span:nth-child(3){top:6%;left:65%;animation-delay:1.2s}
.scene-stars span:nth-child(4){top:15%;left:82%;animation-delay:1.8s;width:1px;height:1px}
.scene-stars span:nth-child(5){top:20%;left:15%;animation-delay:.3s;width:1px;height:1px}
.scene-stars span:nth-child(6){top:5%;left:35%;animation-delay:2.4s}
.scene-stars span:nth-child(7){top:18%;left:55%;animation-delay:.9s;width:1px;height:1px}
.scene-stars span:nth-child(8){top:22%;left:75%;animation-delay:1.5s}
.scene-stars span:nth-child(9){top:9%;left:88%;animation-delay:2.1s;width:1px;height:1px}
.scene-stars span:nth-child(10){top:14%;left:5%;animation-delay:.4s}
@keyframes twinkle{
  0%,100%{opacity:.2;transform:scale(1)}
  50%{opacity:1;transform:scale(1.5)}
}

/* Sun with breathing halo */
.scene-sun{
  position:absolute;top:32%;right:18%;z-index:2;
  width:150px;height:150px;pointer-events:none;
  animation:sunSink 30s ease-in-out infinite alternate
}
@keyframes sunSink{
  0%{transform:translateY(-30px)}
  100%{transform:translateY(20px)}
}
.sun-core{
  position:absolute;inset:35px;border-radius:50%;
  background:radial-gradient(circle, #fff3cf 0%, #e3cc8b 44%, #c6a052 82%);
  box-shadow:0 0 40px rgba(255,200,120,.9), 0 0 80px rgba(255,180,90,.5);
  animation:sunPulse 4s ease-in-out infinite alternate
}
.sun-halo{
  position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle, rgba(255,220,150,.55) 0%, rgba(255,180,90,.2) 35%, transparent 70%);
  animation:haloPulse 5s ease-in-out infinite alternate
}
@keyframes sunPulse{
  0%{transform:scale(1);opacity:.95}
  100%{transform:scale(1.08);opacity:1}
}
@keyframes haloPulse{
  0%{transform:scale(1);opacity:.6}
  100%{transform:scale(1.3);opacity:1}
}

/* Distant mountain silhouettes */
.scene-mountains{
  position:absolute;left:0;right:0;bottom:38%;width:100%;height:15%;z-index:3;pointer-events:none
}

/* Birds flying */
.scene-birds{
  position:absolute;top:22%;left:0;width:100%;height:60px;z-index:4;pointer-events:none
}
.bird{transform-origin:center}
.bird-1{animation:flyBird 22s linear infinite, flap .5s ease-in-out infinite alternate}
.bird-2{animation:flyBird 28s linear infinite 5s, flap .55s ease-in-out infinite alternate}
.bird-3{animation:flyBird 26s linear infinite 12s, flap .48s ease-in-out infinite alternate}
@keyframes flyBird{
  0%{transform:translate(-40px,0)}
  50%{transform:translate(700px,-20px)}
  100%{transform:translate(1500px,10px)}
}
@keyframes flap{
  0%{transform:scaleY(1)}
  100%{transform:scaleY(.5)}
}

/* Sea layers */
.scene-waves{
  position:absolute;left:0;right:0;bottom:0;width:100%;height:42%;z-index:5;pointer-events:none
}
.sea{transform-origin:center}
.sea-back{animation:seaMove 14s ease-in-out infinite alternate}
.sea-mid{animation:seaMove 10s ease-in-out infinite alternate-reverse}
.sea-front{animation:seaMove 8s ease-in-out infinite alternate}
.foam{animation:foamMove 6s ease-in-out infinite alternate}
@keyframes seaMove{
  0%{transform:translateX(0) translateY(0)}
  100%{transform:translateX(-40px) translateY(-6px)}
}
@keyframes foamMove{
  0%{transform:translateX(0);opacity:.4}
  100%{transform:translateX(30px);opacity:.7}
}

/* Sun reflection on water */
.scene-shimmer{
  position:absolute;bottom:0;right:12%;
  width:200px;height:38%;z-index:6;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(255,220,150,.55) 0%,
    rgba(255,180,90,.25) 40%,
    transparent 100%);
  filter:blur(6px);
  animation:reflect 3s ease-in-out infinite alternate;
  mix-blend-mode:screen
}
@keyframes reflect{
  0%{opacity:.5;transform:scaleY(1)}
  100%{opacity:.9;transform:scaleY(1.05)}
}

/* Foreground coffee cup with steam */
.scene-cup{
  position:absolute;bottom:8%;left:10%;
  width:130px;z-index:8;pointer-events:none;
  animation:cupFloat 5s ease-in-out infinite alternate;
  filter:drop-shadow(0 20px 30px rgba(0,0,0,.4))
}
@keyframes cupFloat{
  0%{transform:translateY(0)}
  100%{transform:translateY(-6px)}
}
.cup-steam{
  position:absolute;top:-70px;left:50%;transform:translateX(-50%);
  width:40px;height:70px
}
.cup-steam span{
  position:absolute;bottom:0;left:50%;
  width:14px;height:14px;border-radius:50%;
  background:rgba(255,240,220,.55);
  filter:blur(6px);
  animation:steamRise 3.5s linear infinite
}
.cup-steam span:nth-child(1){animation-delay:0s;transform:translateX(-8px)}
.cup-steam span:nth-child(2){animation-delay:1.2s;transform:translateX(0)}
.cup-steam span:nth-child(3){animation-delay:2.4s;transform:translateX(8px)}
@keyframes steamRise{
  0%{opacity:0;transform:translate(0,0) scale(1)}
  20%{opacity:.9}
  100%{opacity:0;transform:translate(-10px,-80px) scale(3)}
}

/* Palm frond swaying */
.scene-palm{
  position:absolute;top:-40px;right:-40px;
  width:340px;height:auto;z-index:9;pointer-events:none;
  transform-origin:top right;
  animation:palmSway 6s ease-in-out infinite alternate;
  filter:drop-shadow(0 5px 15px rgba(0,0,0,.3))
}
@keyframes palmSway{
  0%{transform:rotate(-2deg)}
  100%{transform:rotate(2deg)}
}

@media (max-width:900px){
  .scene-cup{left:5%;width:90px}
  .scene-palm{width:200px;top:-20px;right:-30px}
  .scene-sun{width:100px;height:100px;right:8%}
}

/* Floating steam */
.steam{position:absolute;pointer-events:none;z-index:2}
.steam span{position:absolute;bottom:0;width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.35);filter:blur(8px);animation:rise 5s linear infinite}
.steam span:nth-child(2){left:20px;animation-delay:1.2s;animation-duration:6s}
.steam span:nth-child(3){left:40px;animation-delay:2.4s;animation-duration:5.5s}
@keyframes rise{
  0%{opacity:0;transform:translateY(0) scale(1)}
  10%{opacity:.6}
  100%{opacity:0;transform:translateY(-120px) scale(2.5)}
}

/* Magnetic buttons */
.btn.mag{transition:transform .3s cubic-bezier(.2,.7,.3,1)}

/* Section title with animated brass rule */
.title-rule{display:flex;align-items:center;gap:1.2rem;margin-bottom:1.5rem}
.title-rule .rule{height:1px;background:var(--brass);flex:1;max-width:60px;transform:scaleX(0);transform-origin:left;transition:transform 1s ease .3s}
.title-rule.in .rule{transform:scaleX(1)}
.title-rule .kicker{font-size:.72rem;letter-spacing:.36em;text-transform:uppercase;color:var(--brass);font-weight:500}

/* Ambient orbs */
.orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.4;pointer-events:none;z-index:0}
.orb.orb-brass{background:radial-gradient(circle,var(--brass) 0%,transparent 70%)}
.orb.orb-terra{background:radial-gradient(circle,var(--terracotta) 0%,transparent 70%)}
.orb.orb-espresso{background:radial-gradient(circle,var(--espresso) 0%,transparent 70%)}

/* Enhanced marquee — dual line */
.marquee.dual{padding:0;position:relative}
.marquee.dual .line{padding:1.1rem 0;overflow:hidden}
.marquee.dual .line:last-child{border-top:1px solid rgba(201,161,91,.15)}
.marquee.dual .marquee-track.reverse{animation-direction:reverse;animation-duration:55s}
.marquee.dual .line:last-child span{color:var(--terracotta);font-family:var(--serif);font-style:italic;font-size:1.4rem}

/* Card 3D tilt */
.tilt{transition:transform .5s cubic-bezier(.2,.7,.3,1);transform-style:preserve-3d;will-change:transform}

/* Sticky number strip (home stats) */
.stats{
  padding:4.5rem 0 4rem;
  border-block:1px solid rgba(74,46,28,.1);
  background:linear-gradient(180deg,var(--paper),rgba(230,217,193,.3));
  position:relative;overflow:hidden
}
.stats::before,.stats::after{
  content:'';position:absolute;top:50%;height:1px;width:60px;background:var(--brass);opacity:.4
}
.stats::before{left:0}
.stats::after{right:0}
.stats-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  align-items:center;max-width:1100px;margin:0 auto;
  padding:0 clamp(1.25rem,4vw,3rem)
}
.stat{
  text-align:center;padding:.5rem 1rem;position:relative
}
.stat + .stat::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:1px;height:60%;background:linear-gradient(180deg,transparent,rgba(201,161,91,.35),transparent)
}
.stat .num{
  font-family:var(--display);font-size:clamp(2.75rem,5.5vw,4.75rem);
  color:var(--brass);line-height:1;letter-spacing:.02em
}
.stat .lbl{
  margin-top:.9rem;font-size:.7rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--muted);
  white-space:nowrap
}
@media (max-width:700px){
  .stats{padding:3.5rem 0 3rem}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:2.5rem 0}
  .stat + .stat::before{display:none}
  .stat:nth-child(3)::before,.stat:nth-child(4)::before{display:none}
  .stat .lbl{white-space:normal}
}

/* Home testimonial slider */
.testimonials{background:var(--espresso);color:var(--cream);position:relative;overflow:hidden}
.testimonials::before{content:'"';position:absolute;top:-4rem;left:5%;font-family:var(--display);font-size:22rem;color:rgba(201,161,91,.08);line-height:1;pointer-events:none}
.testi-wrap{max-width:900px;margin:0 auto;text-align:center;position:relative;z-index:1}
.testi{position:absolute;inset:0;opacity:0;transition:opacity 1s ease;padding:0 2rem}
.testi.active{opacity:1;position:relative}
.testi blockquote{font-family:var(--serif);font-size:clamp(1.4rem,2.5vw,2.1rem);font-style:italic;line-height:1.5;color:var(--cream)}
.testi cite{display:block;margin-top:2rem;font-family:var(--sans);font-style:normal;font-size:.75rem;letter-spacing:.32em;text-transform:uppercase;color:var(--brass)}
.testi-dots{display:flex;gap:.6rem;justify-content:center;margin-top:2.5rem}
.testi-dot{width:8px;height:8px;border-radius:50%;background:rgba(224,196,138,.25);cursor:pointer;transition:.3s}
.testi-dot.active{background:var(--brass);width:26px;border-radius:4px}

/* ===================================================================
   MENU PAGE — LUXURY REDESIGN
   =================================================================== */

.menu-cover{
  min-height:0;position:relative;display:flex;align-items:center;justify-content:center;
  text-align:center;overflow:hidden;
  background:linear-gradient(180deg,var(--paper) 0%,rgba(230,217,193,.6) 100%)
}
.menu-cover .cover-bg{
  position:absolute;inset:0;z-index:0;opacity:.14;
  background:url('https://images.unsplash.com/photo-1495474472287-4d71bcdd2085?w=1800&q=80') center/cover;
  filter:sepia(50%) contrast(.9)
}
.menu-cover .cover-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center, transparent 30%, var(--paper) 90%);z-index:1}
.menu-cover-inner{position:relative;z-index:2;padding:5.25rem 2rem 1.25rem}
.menu-hero-logo{
  width:min(420px,70vw);height:auto;margin:0 auto 1.8rem;filter:drop-shadow(0 18px 36px rgba(42,26,16,.15))
}
.menu-cover .crest-mark{
  font-family:var(--display);color:var(--brass);font-size:2rem;letter-spacing:.15em;
  width:90px;height:90px;border:1px solid var(--brass);border-radius:50%;
  display:grid;place-items:center;margin:0 auto 2.5rem;position:relative
}
.menu-cover .crest-mark::before,.menu-cover .crest-mark::after{
  content:'';position:absolute;width:60px;height:1px;background:var(--brass);top:50%
}
.menu-cover .crest-mark::before{left:-90px}
.menu-cover .crest-mark::after{right:-90px}
.menu-cover h1{font-size:clamp(3.4rem,9vw,7rem);line-height:.95}
.menu-cover .sub{font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--coffee);margin-top:1.3rem;letter-spacing:.05em}
.menu-cover .edition{margin-top:1.2rem;font-size:.82rem;letter-spacing:.34em;text-transform:uppercase;color:var(--brass);font-weight:700}
.menu-note{max-width:680px;margin:.75rem auto 0;color:var(--coffee);font-size:.95rem;line-height:1.6}

.menu-nav{
  position:sticky;top:0;z-index:50;background:rgba(250,246,238,.92);backdrop-filter:blur(14px);
  border-block:1px solid rgba(74,46,28,.1);padding:.9rem 0
}
.menu-nav-inner{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;max-width:1200px;margin:0 auto;padding:0 1rem}
.menu-nav .menu-tab{
  padding:.65rem 1.5rem;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);cursor:pointer;transition:.35s;border-radius:2rem;border:1px solid transparent;position:relative;font-weight:600
}
.menu-nav .menu-tab:hover{color:var(--espresso)}
.menu-nav .menu-tab.active{color:var(--espresso);border-color:var(--brass);background:rgba(201,161,91,.08)}

/* Chapter header */
.menu-chapter{padding:8rem 0 6rem;position:relative;overflow:hidden}
.menu-chapter:nth-child(even){background:linear-gradient(180deg,rgba(230,217,193,.25),var(--paper))}
.menu-chapter-head{text-align:center;margin-bottom:5rem;position:relative}
.menu-chapter-visual{
  width:min(190px,42vw);aspect-ratio:1/1;margin:0 auto 1.8rem;border-radius:50%;
  overflow:hidden;border:1px solid rgba(201,161,91,.55);box-shadow:0 18px 48px rgba(55,35,24,.12)
}
.menu-chapter-visual img{width:100%;height:100%;object-fit:cover;display:block}
.menu-chapter-head .num{
  font-family:var(--display);font-size:clamp(5.5rem,9vw,7.25rem);color:transparent;
  -webkit-text-stroke:1px var(--brass);
  line-height:.8;letter-spacing:.08em;margin-bottom:.6rem;opacity:.38
}
.menu-chapter-head h2{font-size:clamp(3rem,6vw,5rem);font-family:var(--display);color:var(--espresso);position:relative;z-index:1;letter-spacing:0}
.menu-chapter-head .accent{
  display:inline-flex;align-items:center;gap:1rem;margin-top:1.5rem;
  font-size:.82rem;letter-spacing:.28em;text-transform:uppercase;color:var(--terracotta);font-weight:600
}
.menu-chapter-head .accent::before,.menu-chapter-head .accent::after{content:'';width:30px;height:1px;background:var(--brass)}

/* Luxury menu item */
.menu-luxe{max-width:1100px;margin:0 auto;padding:0 clamp(1rem,3vw,2rem)}
.menu-luxe .item{
  display:grid;grid-template-columns:auto minmax(0,1fr) 132px;gap:1.5rem;align-items:baseline;
  padding:1.8rem 0;border-bottom:1px solid rgba(74,46,28,.08);
  position:relative;opacity:0;transform:translateY(30px);
  transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.3,1)
}
.menu-luxe .item.in{opacity:1;transform:none}
.menu-luxe .item::before{
  content:'';position:absolute;left:0;top:0;height:100%;width:2px;background:var(--brass);
  transform:scaleY(0);transform-origin:top;transition:transform .5s ease
}
.menu-luxe .item:hover::before{transform:scaleY(1)}
.menu-luxe .item:hover{padding-left:1.2rem}
.menu-luxe .item{transition:padding-left .4s ease, opacity .9s, transform .9s}

.menu-luxe .item .idx{
  font-family:var(--display);font-size:.9rem;color:var(--brass);
  min-width:2rem;letter-spacing:.1em;padding-top:.3rem
}
.menu-luxe .item .content{min-width:0}
.menu-luxe .item .name-row{display:flex;align-items:baseline;gap:1rem;flex-wrap:nowrap;min-width:0}
.menu-luxe .item .name{
  font-family:var(--serif);font-size:clamp(1.4rem,2.5vw,1.75rem);
  color:var(--espresso);font-weight:500;letter-spacing:.01em
}
.menu-luxe .item .badge{
  font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;
  padding:.25rem .6rem;border:1px solid var(--brass);color:var(--brass);border-radius:2px
}
.menu-luxe .item .badge.new{color:var(--terracotta);border-color:var(--terracotta)}
.menu-luxe .item .desc{
  margin-top:.5rem;color:var(--coffee);font-family:var(--serif);font-size:1.05rem;
  font-style:italic;line-height:1.6;max-width:600px
}
.menu-luxe .item .dots{
  flex:1;height:1px;background-image:radial-gradient(circle, var(--brass) 1px, transparent 1.5px);
  background-size:8px 8px;background-position:0 center;background-repeat:repeat-x;
  align-self:end;margin-bottom:.5rem;min-width:40px;opacity:.5
}
.menu-luxe .item .price{
  font-family:var(--display);font-size:1.65rem;color:var(--espresso);letter-spacing:.05em;
  white-space:nowrap;width:122px;text-align:right;justify-self:end;display:flex;justify-content:flex-end;align-items:flex-start;
  background:rgba(168,121,43,.13);border:1px solid rgba(168,121,43,.32);padding:.35rem .55rem;border-radius:4px
}
.menu-luxe .item .price .cur{font-size:.68rem;letter-spacing:.22em;color:var(--terracotta);vertical-align:top;margin-right:.3rem;font-family:var(--sans);font-weight:800}
.menu-luxe .item.has-image{grid-template-columns:78px auto minmax(0,1fr) 132px;align-items:center}
.menu-dish-thumb{
  width:78px;aspect-ratio:1/1;overflow:hidden;border-radius:4px;
  border:1px solid rgba(201,161,91,.38);background:rgba(250,246,238,.8)
}
.menu-dish-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease}
.menu-luxe .item.has-image:hover .menu-dish-thumb img{transform:scale(1.06)}

.menu-accordion{max-width:1120px;margin:0 auto;padding:0 clamp(1rem,3vw,2rem)}
.menu-group{border-bottom:1px solid rgba(74,46,28,.12);background:rgba(250,246,238,.45)}
.menu-group:first-child{border-top:1px solid rgba(74,46,28,.12)}
.menu-group summary{
  list-style:none;display:grid;grid-template-columns:minmax(0,1fr) 128px 24px;align-items:center;
  gap:1.5rem;padding:1.35rem 0;cursor:pointer;color:var(--espresso)
}
.menu-group summary::-webkit-details-marker{display:none}
.menu-group summary span{font-family:var(--serif);font-size:clamp(1.3rem,3vw,2rem);font-weight:400}
.menu-summary-main{display:inline-flex;align-items:center;gap:1rem;text-align:left;min-width:0}
.menu-summary-main b{font:inherit;font-weight:400}
.menu-summary-image{
  width:54px;aspect-ratio:1/1;object-fit:cover;border-radius:50%;
  border:1px solid rgba(201,161,91,.45);box-shadow:0 8px 24px rgba(55,35,24,.1);flex:0 0 auto
}
.menu-group summary small{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);white-space:nowrap;text-align:right;justify-self:end;font-weight:600}
.menu-group summary::after{content:'+';font-family:var(--display);font-size:1.6rem;color:var(--brass);transition:transform .25s ease;justify-self:end}
.menu-group[open] > summary::after{transform:rotate(45deg)}
.menu-subgroups{padding-left:clamp(1rem,3vw,2rem);border-left:1px solid rgba(201,161,91,.28)}
.menu-subgroups .menu-group{background:transparent}
.menu-luxe-accordion{padding:0 0 1.5rem;margin:0}
.menu-luxe-accordion .item{padding-block:1.2rem}

@media (max-width:700px){
  .menu-group summary{grid-template-columns:minmax(0,1fr) 94px 20px;gap:.8rem}
  .menu-summary-main{gap:.8rem}
  .menu-summary-image{width:46px}
  .menu-subgroups{padding-left:.8rem}
  .menu-luxe .item{grid-template-columns:auto minmax(0,1fr) 82px;gap:1rem;align-items:start}
  .menu-luxe .item .content{grid-column:2/3}
  .menu-luxe .item .name-row{gap:.7rem}
  .menu-luxe .item .dots{display:none}
  .menu-luxe .item .price{grid-column:3/4;grid-row:1;width:92px;font-size:1.28rem;justify-self:end}
  .menu-luxe .item .price .cur{display:block;margin-right:0;margin-bottom:.1rem;letter-spacing:.18em}
  .menu-luxe .item.has-image{grid-template-columns:64px minmax(0,1fr) 82px;align-items:start}
  .menu-luxe .item.has-image .menu-dish-thumb{width:64px;grid-column:1;grid-row:1/3}
  .menu-luxe .item.has-image .idx{display:none}
  .menu-luxe .item.has-image .content{grid-column:2/3;grid-row:1/3;padding-right:0}
  .menu-luxe .item.has-image .price{grid-column:3;grid-row:1;justify-self:end}
}

/* Featured pairing card between chapters */
.pairing{
  max-width:1000px;margin:5rem auto;padding:0 clamp(1rem,3vw,2rem);
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  background:var(--espresso);color:var(--cream);position:relative;overflow:hidden;
  border:1px solid var(--brass)
}
.pairing-img{aspect-ratio:1/1;overflow:hidden}
.pairing-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s ease}
.pairing:hover .pairing-img img{transform:scale(1.08)}
.pairing-copy{padding:clamp(2rem,4vw,3.5rem);display:flex;flex-direction:column;justify-content:center}
.pairing-copy .kicker{font-size:.7rem;letter-spacing:.4em;text-transform:uppercase;color:var(--brass);margin-bottom:1rem}
.pairing-copy h3{font-family:var(--display);color:var(--cream);font-size:2rem;margin-bottom:1rem}
.pairing-copy p{color:var(--brass-soft);font-family:var(--serif);font-style:italic;font-size:1.1rem;line-height:1.6}
@media (max-width:700px){.pairing{grid-template-columns:1fr}}

/* Chef's note */
.chef-note{
  text-align:center;max-width:640px;margin:6rem auto 0;padding:3rem 2rem;
  border-top:1px solid var(--brass);border-bottom:1px solid var(--brass);position:relative
}
.chef-note::before{content:'✦';position:absolute;top:-.8rem;left:50%;transform:translateX(-50%);background:var(--paper);padding:0 1rem;color:var(--brass);font-size:1.2rem}
.chef-note p{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--coffee)}
.chef-note .signature{font-family:var(--display);color:var(--terracotta);font-size:1.5rem;margin-top:1.5rem;letter-spacing:.08em}

/* Menu closing */
.menu-close{
  text-align:center;padding:8rem 2rem;background:var(--espresso);color:var(--cream);
  background-image:radial-gradient(circle at 20% 30%, rgba(201,161,91,.15) 0%, transparent 40%),
                   radial-gradient(circle at 80% 70%, rgba(168,83,43,.12) 0%, transparent 40%)
}
.menu-close-logo{width:min(360px,76vw);height:auto;margin:0 auto 2rem}
.menu-close h2{color:var(--cream);font-family:var(--display);font-size:clamp(2.5rem,5vw,4rem)}
.menu-close h2 em{color:var(--brass);font-style:italic}
.menu-close p{color:var(--brass-soft);max-width:500px;margin:1.5rem auto 2.5rem}

/* Scroll progress bar */
.progress{position:fixed;top:0;left:0;height:2px;background:var(--brass);width:0;z-index:200;transition:width .1s ease}
