/* =========================================================
   Lili Lakásétterem — stíluslap
   Színvilág a logóból: bordó alap, arany tipográfia,
   pink–narancs akvarell akcentusok.
   ========================================================= */

:root{
  /* alap */
  --ink:            #120107;
  --wine-950:       #1A0209;
  --wine-900:       #250510;
  --wine-850:       #2E0714;
  --wine-800:       #3A0917;
  --wine-700:       #520C1E;
  --wine-600:       #6E1026;

  /* akcentusok */
  --gold:           #E7B24A;
  --gold-bright:    #FFD98A;
  --gold-deep:      #B9822A;
  --pink:           #F0508A;
  --magenta:        #C13B93;
  --flame:          #FF7A45;

  /* szöveg */
  --cream:          #F7ECE2;
  --cream-dim:      rgba(247,236,226,.72);
  --cream-faint:    rgba(247,236,226,.46);
  --line:           rgba(231,178,74,.22);
  --line-soft:      rgba(247,236,226,.10);

  --grad-flame: linear-gradient(100deg,var(--pink) 0%,var(--flame) 45%,var(--gold) 100%);
  --grad-gold:  linear-gradient(180deg,var(--gold-bright),var(--gold) 55%,var(--gold-deep));

  --shadow-lg: 0 30px 70px -30px rgba(0,0,0,.85);
  --shadow-md: 0 16px 40px -22px rgba(0,0,0,.8);

  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-pill: 999px;

  --header-h: 84px;
  --wrap: 1200px;

  --f-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --f-body: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-script: 'Great Vibes', 'Cormorant Garamond', cursive;
  --f-hand: 'Caveat', 'Segoe Script', 'Bradley Hand', cursive;
  /* a kézírásos széljegyzetek meleg, agyagos színe — az arany és a
     narancs között, hogy kiváljon, de ne kiabáljon */
  --hand: #E89A79;
}

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

/* a hidden attribútum mindig erősebb, mint a display beállítások */
[hidden]{ display:none !important; }

html{
  scroll-behavior:smooth;
  scroll-padding-top: calc(var(--header-h) + 12px);
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--wine-950);
  color:var(--cream);
  font-family:var(--f-body);
  font-size:17px;
  line-height:1.72;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body.no-scroll{ overflow:hidden; }

img{ max-width:100%; display:block; height:auto; }
a{ color:var(--gold); text-decoration:none; transition:color .2s ease; }
a:hover{ color:var(--gold-bright); }

::selection{ background:var(--wine-600); color:var(--gold-bright); }

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
  border-radius:4px;
}

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--gold); color:var(--wine-900);
  padding:.7rem 1.1rem; border-radius:0 0 var(--r-sm) 0; font-weight:700;
}
.skip-link:focus{ left:0; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(20px,5vw,40px); }

/* ---------- tipográfia ---------- */
.h-display{
  font-family:var(--f-display);
  font-weight:600;
  font-size:clamp(2.1rem,4.4vw,3.5rem);
  line-height:1.12;
  letter-spacing:-.01em;
  margin:0 0 1rem;
  color:var(--cream);
}
.h-display em{
  font-style:italic;
  background:var(--grad-gold);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.eyebrow{
  font-size:.76rem; font-weight:700; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold); margin:0 0 .9rem; display:flex; align-items:center; gap:.85rem;
}
.eyebrow::after{
  content:''; height:1px; flex:1; max-width:110px;
  background:linear-gradient(90deg,var(--gold),transparent);
}
.lead{ font-size:1.09rem; color:var(--cream-dim); max-width:62ch; margin:0; }
.script{ font-family:var(--f-script); font-size:2rem; line-height:1.35; color:var(--gold-bright); margin:0 0 1.2rem; }
.script.small{ font-size:1.5rem; }
.note{
  font-size:.9rem; color:var(--cream-faint); margin-top:2rem;
  border-left:2px solid var(--line); padding-left:1rem;
}
.note.small{ font-size:.82rem; margin-top:1rem; }
.note code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.85em;
  background:rgba(231,178,74,.1); padding:.1em .4em; border-radius:4px; color:var(--gold);
}

/* ---------- gombok ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--f-body); font-weight:700; font-size:.95rem; letter-spacing:.02em;
  padding:.95rem 1.9rem; border-radius:var(--r-pill); border:1px solid transparent;
  cursor:pointer; transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s ease, background .22s ease, color .22s ease;
  text-align:center; line-height:1.2;
}
.btn-gold{
  background:var(--grad-gold); color:#3A0917;
  box-shadow:0 12px 30px -14px rgba(231,178,74,.75), inset 0 1px 0 rgba(255,255,255,.45);
}
.btn-gold:hover{ transform:translateY(-2px); color:#2E0714; box-shadow:0 18px 40px -14px rgba(231,178,74,.9), inset 0 1px 0 rgba(255,255,255,.6); }
.btn-gold:disabled{ opacity:.4; cursor:not-allowed; transform:none; box-shadow:none; }
.btn-ghost{
  background:rgba(247,236,226,.05); color:var(--cream);
  border-color:rgba(247,236,226,.28); backdrop-filter:blur(6px);
}
.btn-ghost:hover{ background:rgba(247,236,226,.12); border-color:var(--gold); color:var(--gold-bright); transform:translateY(-2px); }
.btn-block{ display:flex; width:100%; }
.btn-link{
  background:none; border:none; color:var(--cream-faint); font-size:.86rem;
  text-decoration:underline; text-underline-offset:3px; padding:.6rem; width:100%; cursor:pointer;
  font-family:var(--f-body);
}
.btn-link:hover{ color:var(--pink); }

/* =========================================================
   FEJLÉC
   ========================================================= */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  height:var(--header-h);
  display:flex; align-items:center;
  background:linear-gradient(180deg, rgba(18,1,7,.72), rgba(18,1,7,.22) 70%, transparent);
  transition:background .35s ease, box-shadow .35s ease, height .35s ease;
}
.site-header.is-stuck{
  height:70px;
  background:rgba(26,2,9,.94);
  backdrop-filter:blur(14px) saturate(140%);
  box-shadow:0 1px 0 var(--line), 0 18px 40px -30px #000;
}
.header-inner{
  width:100%; max-width:1320px; margin-inline:auto;
  padding-inline:clamp(16px,4vw,36px);
  display:flex; align-items:center; gap:clamp(12px,2.5vw,32px);
}
.brand{ flex:0 0 auto; display:block; }
.brand img{
  height:clamp(38px,4.4vw,52px); width:auto;
  filter:drop-shadow(0 4px 14px rgba(0,0,0,.6));
  transition:height .35s ease;
}
.site-header.is-stuck .brand img{ height:clamp(34px,3.6vw,42px); }

.main-nav{ margin-left:auto; }
.main-nav ul{
  display:flex; align-items:center; gap:clamp(4px,1.4vw,10px);
  list-style:none; margin:0; padding:0;
}
.main-nav a{
  position:relative; display:block;
  padding:.55rem .8rem; border-radius:var(--r-pill);
  font-size:.92rem; font-weight:600; letter-spacing:.01em;
  color:var(--cream); white-space:nowrap;
}
.main-nav a::after{
  content:''; position:absolute; left:.8rem; right:.8rem; bottom:.28rem;
  height:1.5px; background:var(--grad-flame);
  transform:scaleX(0); transform-origin:left; transition:transform .28s cubic-bezier(.2,.7,.3,1);
  border-radius:2px;
}
.main-nav a:hover{ color:var(--gold-bright); }
.main-nav a:hover::after,
.main-nav a.is-active::after{ transform:scaleX(1); }
.main-nav a.is-active{ color:var(--gold-bright); }

.header-actions{ display:flex; align-items:center; gap:.5rem; flex:0 0 auto; }

.icon-btn{
  position:relative;
  width:42px; height:42px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(247,236,226,.07);
  border:1px solid rgba(247,236,226,.16);
  color:var(--cream); cursor:pointer;
  transition:all .22s ease;
}
.icon-btn:hover{
  background:var(--grad-flame); border-color:transparent; color:#fff;
  transform:translateY(-2px);
  box-shadow:0 10px 24px -12px rgba(240,80,138,.8);
}
.icon-btn svg{ width:19px; height:19px; fill:currentColor; }
.cart-btn svg{ fill:none; }

.cart-count{
  position:absolute; top:-3px; right:-3px;
  min-width:20px; height:20px; padding:0 5px;
  border-radius:var(--r-pill);
  background:var(--grad-gold); color:#3A0917;
  font-size:.72rem; font-weight:800; line-height:20px; text-align:center;
  box-shadow:0 2px 8px rgba(0,0,0,.5);
}
.cart-btn.bump{ animation:bump .45s ease; }
@keyframes bump{ 0%,100%{transform:scale(1)} 35%{transform:scale(1.18)} }

.burger{
  display:none; width:44px; height:44px; border-radius:12px;
  background:rgba(247,236,226,.07); border:1px solid rgba(247,236,226,.16);
  cursor:pointer; padding:0; position:relative;
}
.burger span{
  position:absolute; left:12px; right:12px; height:2px; border-radius:2px;
  background:var(--cream); transition:.28s cubic-bezier(.2,.7,.3,1);
}
.burger span:nth-child(1){ top:15px; }
.burger span:nth-child(2){ top:21px; }
.burger span:nth-child(3){ top:27px; }
.burger[aria-expanded="true"] span:nth-child(1){ top:21px; transform:rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ top:21px; transform:rotate(-45deg); }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  isolation:isolate;
  text-align:center;
  padding:calc(var(--header-h) + 3rem) 0 5rem;
}
.hero-bg{ position:absolute; inset:0; z-index:-3; }
.hero-bg img{
  width:100%; height:100%; object-fit:cover; object-position:center 55%;
  transform:scale(1.06);
  filter:saturate(.86) contrast(1.05) brightness(.82);
}
/* elsötétítés a logó színvilágában */
.hero-veil{
  position:absolute; inset:0; z-index:-2;
  background:
    radial-gradient(120% 92% at 50% 44%, rgba(86,14,34,.30) 0%, rgba(38,5,15,.68) 50%, rgba(16,1,8,.92) 100%),
    linear-gradient(180deg, rgba(20,1,8,.80) 0%, rgba(50,8,22,.42) 32%, rgba(32,3,13,.68) 74%, var(--wine-950) 100%);
  mix-blend-mode:multiply;
}
.hero-glow{
  position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(46% 40% at 50% 40%, rgba(240,80,138,.20), transparent 70%),
    radial-gradient(38% 34% at 22% 74%, rgba(255,122,69,.14), transparent 72%),
    radial-gradient(34% 30% at 80% 24%, rgba(193,59,147,.16), transparent 72%);
}

.hero-content{
  position:relative;
  max-width:min(880px,92vw);
  margin-inline:auto;
  padding-inline:clamp(20px,5vw,40px);
  display:flex; flex-direction:column; align-items:center;
}
.hero-logo{
  width:clamp(210px,26vw,330px); height:auto;
  filter:drop-shadow(0 20px 60px rgba(0,0,0,.7)) drop-shadow(0 0 40px rgba(240,80,138,.22));
  animation:heroIn 1s cubic-bezier(.2,.7,.3,1) both;
}
.hero-text{
  margin:2.1rem 0 0;
  font-family:var(--f-display);
  font-size:clamp(1.16rem,2.05vw,1.6rem);
  line-height:1.62;
  color:var(--cream);
  max-width:44ch;
  text-shadow:0 2px 24px rgba(0,0,0,.8);
  animation:heroIn 1s .18s cubic-bezier(.2,.7,.3,1) both;
}
.hero-cta{
  display:flex; flex-wrap:wrap; gap:.9rem; justify-content:center;
  margin-top:2.4rem;
  animation:heroIn 1s .34s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes heroIn{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }

.scroll-hint{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
  width:26px; height:42px; border:1.5px solid rgba(231,178,74,.45); border-radius:var(--r-pill);
  display:grid; place-items:center;
}
.scroll-hint span{
  width:4px; height:8px; border-radius:2px; background:var(--gold);
  animation:wheel 1.7s ease-in-out infinite;
}
@keyframes wheel{ 0%{transform:translateY(-7px);opacity:0} 40%{opacity:1} 100%{transform:translateY(8px);opacity:0} }

/* =========================================================
   SZEKCIÓK
   ========================================================= */
.section{ position:relative; padding:clamp(4.5rem,9vw,8rem) 0; }
.section-head{ margin-bottom:clamp(2.4rem,4.5vw,3.6rem); max-width:66ch; }
.section-head-mid{ margin-top:clamp(3.6rem,7vw,6rem); }

.sub-title{
  font-family:var(--f-display); font-weight:600;
  font-size:clamp(1.5rem,2.6vw,2.1rem); line-height:1.2;
  margin:clamp(2.8rem,5vw,4rem) 0 1.6rem; color:var(--cream);
}
.sub-title:first-child{ margin-top:0; }

/* =========================================================
   VILÁGOSABB SZEKCIÓ — ugyanaz a bordó paletta,
   két árnyalattal feljebb emelve. Nem világos háttér:
   csak levegősebb, kevésbé komor bordó.
   ========================================================= */
.section-alt{
  --line:        rgba(231,178,74,.26);
  --line-soft:   rgba(247,236,226,.13);
  background:
    radial-gradient(88% 66% at 10% 0%, rgba(140,26,56,.42), transparent 62%),
    radial-gradient(72% 60% at 94% 100%, rgba(193,59,147,.20), transparent 60%),
    linear-gradient(180deg, #3E0B1D 0%, #340919 100%);
  border-block:1px solid rgba(231,178,74,.18);
}

/* --- Rólunk --- */
.about-grid{
  display:grid; grid-template-columns:1.55fr .95fr; gap:clamp(1.8rem,4vw,3.4rem);
  align-items:start;
}
/* a bal hasáb tartalmazza a szekció fejlécét is, így a jobb oldali
   kártya teteje egy vonalban van a főcímmel */
.about-main .section-head{ margin-bottom:clamp(1.6rem,3vw,2.4rem); }
.about-grid + .sub-title{ margin-top:clamp(2.8rem,5vw,4rem); }
.about-copy p{ margin:0 0 1.15rem; color:var(--cream-dim); }
.about-copy p:first-child{
  font-size:1.12rem; color:var(--cream);
}
.value-list{ list-style:none; margin:2rem 0 0; padding:0; display:grid; gap:.85rem; }
.value-list li{
  position:relative; padding-left:2rem; color:var(--cream-dim); font-size:.98rem;
}
.value-list li::before{
  content:''; position:absolute; left:0; top:.62em;
  width:11px; height:11px; border-radius:3px;
  background:var(--grad-flame); transform:rotate(45deg);
  box-shadow:0 0 14px rgba(240,80,138,.6);
}
.value-list strong{ color:var(--gold-bright); font-weight:700; }

.about-card{
  position:sticky; top:calc(var(--header-h) + 24px);
  border-radius:var(--r-lg);
  padding:2px;
  background:linear-gradient(150deg, rgba(231,178,74,.5), rgba(240,80,138,.28) 45%, rgba(231,178,74,.12));
  box-shadow:var(--shadow-lg);
}
.about-card-inner{
  border-radius:calc(var(--r-lg) - 2px);
  padding:clamp(1.6rem,3vw,2.2rem);
  background:
    radial-gradient(120% 90% at 20% 0%, rgba(110,16,38,.7), transparent 60%),
    var(--wine-850);
  text-align:center;
}
.mini-facts{ margin:0 0 1.6rem; padding:0; text-align:left; display:grid; gap:.9rem; }
.mini-facts div{ display:grid; gap:.1rem; padding-bottom:.85rem; border-bottom:1px solid var(--line-soft); }
.mini-facts div:last-child{ border-bottom:0; padding-bottom:0; }
.mini-facts dt{
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold);
  font-weight:700;
}
.mini-facts dd{ margin:0; color:var(--cream); font-size:.98rem; }

/* --- „Három dolgot csinálunk” kártyák --- */
.mode-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.mode-card{
  position:relative; border-radius:var(--r-md); padding:1.9rem 1.7rem 1.6rem; overflow:hidden;
  background:rgba(247,236,226,.055); border:1px solid var(--line-soft);
  transition:transform .28s cubic-bezier(.2,.7,.3,1), background .28s ease, border-color .28s ease, box-shadow .28s ease;
  display:flex; flex-direction:column;
}
.mode-card::before{
  content:''; position:absolute; inset:0 0 auto 0; height:3px;
  background:var(--grad-flame);
}
.mode-card:hover{
  transform:translateY(-5px); background:rgba(247,236,226,.09);
  border-color:rgba(231,178,74,.4); box-shadow:var(--shadow-md);
}
/* a sorszám (01/02/03) nem jelenik meg — a jelölést a felső arany csík adja */
.mode-num{ display:none; }
.mode-card{ padding-top:2.1rem; }
.mode-card h4{
  font-family:var(--f-display); font-size:1.42rem; font-weight:600; line-height:1.22;
  margin:0 0 .6rem; color:var(--gold-bright);
}
.mode-card p{ margin:0 0 1.2rem; font-size:.95rem; color:var(--cream-dim); flex:1; }
.mode-card strong{ color:var(--gold-bright); }
.mode-link{ font-size:.9rem; font-weight:700; }

/* --- max. 25 fő jelzés --- */
.cap-badge{
  margin:1.5rem 0 0; padding:.85rem 1.3rem;
  border-radius:var(--r-pill); display:inline-block;
  background:rgba(231,178,74,.1); border:1px solid rgba(231,178,74,.3);
  font-size:.95rem; color:var(--cream-dim);
}
.cap-badge strong{ color:var(--gold-bright); }

/* --- Ételrendelés --- */
.order-info{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
  margin-bottom:2.4rem;
}
.oi{
  background:rgba(247,236,226,.04); border:1px solid var(--line-soft);
  border-radius:var(--r-md); padding:1.05rem 1.2rem; display:grid; gap:.2rem;
}
.oi-k{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:700; }
.oi-v{ font-size:.98rem; color:var(--cream); }

.menu-filters{ display:flex; flex-wrap:wrap; gap:.55rem; margin-bottom:2rem; }
.chip{
  font-family:var(--f-body); font-size:.88rem; font-weight:600;
  padding:.6rem 1.15rem; border-radius:var(--r-pill); cursor:pointer;
  background:rgba(247,236,226,.05); border:1px solid rgba(247,236,226,.16);
  color:var(--cream-dim); transition:all .2s ease;
}
.chip:hover{ color:var(--gold-bright); border-color:var(--gold); }
.chip.is-active{
  background:var(--grad-gold); border-color:transparent; color:#3A0917;
  box-shadow:0 10px 24px -14px rgba(231,178,74,.8);
}

.menu-grid{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.1rem;
}
@media (max-width:1180px){ .menu-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:900px){ .menu-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* Az ajánlatok is ugyanabban a 4-es rácsban futnak, mint az állandó kínálat. */
.menu-grid.featured{ margin-bottom:0; }

.dish{
  position:relative; display:flex; flex-direction:column;
  border-radius:var(--r-md);
  background:
    radial-gradient(130% 100% at 100% 0%, rgba(110,16,38,.46), transparent 58%),
    var(--wine-850);
  border:1px solid var(--line-soft);
  transition:transform .28s cubic-bezier(.2,.7,.3,1), border-color .28s ease, box-shadow .28s ease;
  overflow:hidden;
}
.dish{ cursor:pointer; }
.dish:hover{ transform:translateY(-5px); border-color:rgba(231,178,74,.42); box-shadow:var(--shadow-md); }
.dish:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.dish-body h3{ transition:color .2s ease; }
.dish:hover .dish-body h3{ color:var(--gold-bright); }

/* kép a kártya tetején */
.dish-media{
  position:relative; aspect-ratio:4/3; overflow:hidden;
  background:var(--wine-800); flex:0 0 auto;
}
.dish-media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.7,.3,1), filter .4s ease;
  filter:saturate(.95) brightness(.94);
}
.dish:hover .dish-media img{ transform:scale(1.05); filter:saturate(1.05) brightness(1); }
.dish-media::after{
  content:''; position:absolute; inset:auto 0 0 0; height:45%;
  background:linear-gradient(180deg,transparent,rgba(37,5,16,.85));
  pointer-events:none;
}
.dish-body{ padding:1.3rem 1.4rem 1.35rem; display:flex; flex-direction:column; flex:1; }

.dish-tag{
  position:absolute; top:.85rem; left:.85rem; z-index:2;
  font-size:.66rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-bright); background:rgba(26,2,9,.72);
  border:1px solid rgba(231,178,74,.42); backdrop-filter:blur(6px);
  padding:.3rem .7rem; border-radius:var(--r-pill);
}
.dish-badge{
  position:absolute; top:.85rem; right:.85rem; z-index:2;
  font-size:.66rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:#3A0917; background:var(--grad-gold);
  padding:.32rem .75rem; border-radius:var(--r-pill);
  box-shadow:0 6px 18px -8px rgba(0,0,0,.7);
}
.dish h3{
  font-family:var(--f-display); font-weight:600; font-size:1.42rem; line-height:1.22;
  margin:0 0 .5rem; color:var(--cream);
}
.dish-desc{ font-size:.93rem; color:var(--cream-dim); margin:0 0 .9rem; flex:1; }
.dish-meta{ display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.1rem; }
.dish-meta span{
  font-size:.72rem; letter-spacing:.06em; color:var(--cream-faint);
  border:1px solid var(--line-soft); border-radius:var(--r-pill); padding:.2rem .6rem;
}
.dish-foot{
  display:flex; flex-direction:column; align-items:center; gap:.85rem;
  margin-top:auto; text-align:center;
}
.dish-price{
  font-family:var(--f-display); font-size:1.5rem; font-weight:700; line-height:1.1;
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  display:block; text-align:center;
}
.dish-price small{ font-size:.6em; font-weight:400; }
.add-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
  font-family:var(--f-body); font-size:.86rem; font-weight:700;
  padding:.65rem 1.1rem; border-radius:var(--r-pill); cursor:pointer;
  background:rgba(231,178,74,.12); border:1px solid rgba(231,178,74,.4); color:var(--gold-bright);
  transition:all .2s ease; white-space:nowrap;
}
.add-btn:hover{ background:var(--grad-gold); color:#3A0917; border-color:transparent; }
.add-btn.added{ background:var(--grad-flame); color:#fff; border-color:transparent; }

/* --- Rendezvények --- */
.event-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:1.2rem; }
.event-card{
  position:relative; border-radius:var(--r-md); padding:1.7rem 1.6rem;
  background:rgba(247,236,226,.035);
  border:1px solid var(--line-soft);
  transition:transform .28s cubic-bezier(.2,.7,.3,1), background .28s ease, border-color .28s ease;
}
.event-card:hover{ transform:translateY(-5px); background:rgba(110,16,38,.32); border-color:rgba(231,178,74,.4); }
.event-card h3{
  font-family:var(--f-display); font-size:1.5rem; font-weight:600; margin:0 0 .65rem; color:var(--gold-bright);
}
.event-card p{ margin:0 0 1.1rem; font-size:.95rem; color:var(--cream-dim); }
.event-card ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.4rem; }
.event-card li{
  font-size:.74rem; letter-spacing:.05em; color:var(--cream-faint);
  border:1px solid var(--line-soft); border-radius:var(--r-pill); padding:.25rem .65rem;
}

.cta-band{
  margin-top:clamp(2.6rem,5vw,4rem);
  border-radius:var(--r-lg);
  padding:clamp(1.8rem,4vw,3rem);
  display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
  background:
    radial-gradient(100% 140% at 0% 0%, rgba(240,80,138,.28), transparent 58%),
    radial-gradient(100% 140% at 100% 100%, rgba(255,122,69,.2), transparent 56%),
    var(--wine-800);
  border:1px solid rgba(231,178,74,.28);
  box-shadow:var(--shadow-lg);
}
.cta-band h3{ font-size:clamp(1.5rem,2.8vw,2.15rem); margin:0 0 .4rem; }
.cta-band p{ margin:0; color:var(--cream-dim); font-size:.98rem; }

.section-alt .event-card{ background:rgba(247,236,226,.05); }
.section-alt .event-card:hover{ background:rgba(247,236,226,.09); }

/* =========================================================
   RENDEZVÉNYEK — bal oldalon az alkalmak listája,
   mellette a naptár. A lista hajszálvonalakkal tagolt, nem
   kártyás: így a naptár marad a szekció súlypontja.
   ========================================================= */
.ev-split{
  display:grid; grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);
  gap:clamp(1.8rem,3.6vw,3.4rem); align-items:start;
}
/* a bal hasáb felső margója a naptár belső margójához illeszkedik,
   így a két oldal címe egy vonalban indul */
.ev-types{ padding-top:clamp(1.4rem,3vw,2.2rem); }
.ev-types .sub-title{ margin:0 0 1.15rem; font-size:clamp(1.35rem,2.1vw,1.7rem); }
.ev-split .cal-block{ margin-top:0; }

.event-list{ border-top:1px solid var(--line-soft); }
.event-row{
  padding:1.05rem 0 1.1rem; border-bottom:1px solid var(--line-soft);
  transition:padding-left .34s cubic-bezier(.2,.7,.3,1);
}
.event-row:hover{ padding-left:.7rem; }
.event-row h3{
  font-family:var(--f-display); font-weight:600; font-size:1.24rem; line-height:1.22;
  margin:0 0 .3rem; color:var(--gold-bright);
}
.event-row p{ margin:0 0 .58rem; font-size:.92rem; color:var(--cream-dim); }
.event-row p:last-child{ margin-bottom:0; }
.event-row ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.35rem; }
.event-row li{
  font-size:.71rem; letter-spacing:.05em; color:var(--cream-faint);
  border:1px solid var(--line-soft); border-radius:var(--r-pill); padding:.22rem .6rem;
}
.event-list .empty-block{ margin-top:1rem; }

/* =========================================================
   KÉZÍRÁSOS SZÉLJEGYZETEK
   Apró, kézzel írt megjegyzés egy rajzolt nyíllal. Nem dísz:
   azt a fél mondatot mondja el, amit a vendéglátós élőben
   odaszúrna. A szövegek a CMS-ből szerkeszthetők, és ha egy
   jegyzetet kiürítenek, a nyilával együtt eltűnik.
   ========================================================= */
.hnote{
  display:flex; align-items:flex-start; gap:.75rem;
  margin-top:1.6rem; max-width:44ch;
}
.hnote__a{ flex:0 0 auto; color:var(--hand); opacity:.8; margin-top:.3rem; }
.hnote__t{
  font-family:var(--f-hand); font-weight:500;
  font-size:1.36rem; line-height:1.32; color:var(--hand);
}
.hnote--center{ margin-inline:auto; align-items:center; text-align:left; }
.hnote--tight{ margin-top:1.1rem; }
/* ha a jegyzet után rögtön a kategóriaszűrő jön, kell egy kis levegő */
.hnote + .menu-filters{ margin-top:1.7rem; }
.hnote[hidden]{ display:none !important; }
.section-alt .cta-band{
  background:
    radial-gradient(100% 140% at 0% 0%, rgba(240,80,138,.26), transparent 58%),
    radial-gradient(100% 140% at 100% 100%, rgba(255,122,69,.2), transparent 56%),
    #4A0E22;
}

/* =========================================================
   NAPTÁR
   ========================================================= */
.cal-block{
  margin-top:clamp(2.6rem,5vw,4rem);
  border-radius:var(--r-lg); padding:clamp(1.4rem,3vw,2.2rem);
  background:
    radial-gradient(110% 80% at 100% 0%, rgba(110,16,38,.5), transparent 60%),
    rgba(18,1,7,.4);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
}
.cal-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem;
  flex-wrap:wrap; margin-bottom:1.2rem;
}
.cal-head .sub-title{ margin:0 0 .35rem; }
.cal-sub{ margin:0; font-size:.94rem; color:var(--cream-dim); max-width:52ch; }
.cal-nav{ display:flex; align-items:center; gap:.6rem; flex:0 0 auto; }
.cal-nav button{
  width:38px; height:38px; border-radius:50%; cursor:pointer; font-size:1.35rem; line-height:1;
  background:rgba(247,236,226,.07); border:1px solid rgba(247,236,226,.18); color:var(--cream);
  transition:all .2s ease;
}
.cal-nav button:hover:not(:disabled){ background:var(--grad-gold); border-color:transparent; color:#3A0917; }
.cal-nav button:disabled{ opacity:.32; cursor:not-allowed; }
.cal-nav strong{
  font-family:var(--f-display); font-size:1.2rem; font-weight:600;
  min-width:11ch; text-align:center; color:var(--cream);
}

.cal-legend{
  display:flex; flex-wrap:wrap; gap:.4rem 1.3rem; margin-bottom:1.1rem;
  font-size:.84rem; color:var(--cream-faint);
}
.cal-legend span{ display:inline-flex; align-items:center; gap:.45rem; }
.sw{ width:12px; height:12px; border-radius:4px; display:inline-block; }
.sw.free{ background:linear-gradient(160deg,#57C98C,#2E9160); }
.sw.booked{ background:linear-gradient(160deg,#F0508A,#B02458); }
.sw.closed{ background:rgba(247,236,226,.2); }
.sw.past{ background:rgba(247,236,226,.07); border:1px solid rgba(247,236,226,.14); }

.cal{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.4rem; }
.cal-dow{
  text-align:center; font-size:.72rem; font-weight:800; letter-spacing:.08em;
  text-transform:uppercase; color:var(--cream-faint); padding:.3rem 0 .5rem;
  overflow:hidden;
}
.cal-cell{
  aspect-ratio:1/.7; border-radius:10px; border:1px solid rgba(247,236,226,.11);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.05rem;
  font-family:var(--f-body); font-size:1.02rem; font-weight:700; color:var(--cream);
  background:rgba(247,236,226,.04); padding:.2rem; text-align:center;
}
.cal-cell.empty{ border:none; background:none; }
.cal-cell small{ font-size:.6rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }

.cal-cell.free{
  cursor:pointer; color:#CFF7E1;
  background:linear-gradient(180deg, rgba(72,196,132,.34), rgba(38,140,90,.40));
  border-color:rgba(102,214,156,.6);
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.cal-cell.free small{ color:#9BEEC4; }
.cal-cell.free:hover{
  transform:translateY(-3px); background:linear-gradient(180deg,#4FBF85,#2A8A5B); color:#062313;
  box-shadow:0 14px 26px -12px rgba(46,145,96,.8); border-color:transparent;
}
.cal-cell.free:hover small{ color:rgba(6,35,19,.75); }
.cal-cell.booked{
  color:#FFD3E2; cursor:not-allowed;
  background:linear-gradient(180deg, rgba(240,80,138,.34), rgba(176,36,88,.42));
  border-color:rgba(240,80,138,.58);
}
.cal-cell.booked small{ color:rgba(255,201,220,.78); }
.cal-cell.closed{
  color:rgba(247,236,226,.42); background:rgba(247,236,226,.03);
  border-color:rgba(247,236,226,.09); cursor:not-allowed;
}
.cal-cell.closed small{ color:rgba(247,236,226,.32); }
.cal-cell.past{ color:rgba(247,236,226,.2); background:transparent; border-color:rgba(247,236,226,.06); cursor:default; }
.cal-cell.today{ box-shadow:0 0 0 2px var(--gold) inset; }

.book-date{
  margin:0 0 1.5rem; padding:.9rem 1.2rem; border-radius:var(--r-sm);
  background:rgba(231,178,74,.1); border:1px solid rgba(231,178,74,.28);
  font-size:.96rem; color:var(--cream-dim);
}
.book-date strong{ color:var(--gold-bright); font-size:1.08rem; }
.field label .hint{ font-weight:400; text-transform:none; letter-spacing:0; opacity:.75; }
.field-hint{
  font-size:.8rem; line-height:1.5; color:var(--cream-faint);
  text-transform:none; letter-spacing:0;
}

/* --- Galéria --- */
.gallery{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:.85rem;
}
.g-item{
  position:relative; margin:0; border-radius:var(--r-md); overflow:hidden;
  cursor:zoom-in; aspect-ratio:4/3;
  border:1px solid var(--line-soft);
  background:var(--wine-850);
}
.g-item.g-wide{ grid-column:span 2; aspect-ratio:8/3; }
.g-item img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.7,.3,1), filter .4s ease;
  filter:saturate(.9) brightness(.86);
}
.g-item:hover img{ transform:scale(1.06); filter:saturate(1.05) brightness(1); }
.g-item figcaption{
  position:absolute; inset:auto 0 0 0;
  padding:1.6rem .95rem .8rem;
  background:linear-gradient(180deg,transparent,rgba(18,1,7,.9));
  font-size:.85rem; font-weight:600; color:var(--cream);
  transform:translateY(6px); opacity:.88; transition:.3s ease;
}
.g-item:hover figcaption{ transform:none; opacity:1; color:var(--gold-bright); }

/* =========================================================
   ÉTLAPOK — álló, A4 arányú lapok rácsban. A galériával
   közös a lightbox (.g-item), de itt a lapok azonos
   méretűek, és a felirat a kép ALATT áll, hogy ne takarja
   az étlap szövegét.
   ========================================================= */
.menusheets{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:clamp(.9rem,1.8vw,1.5rem);
}
.menusheets .g-item{
  aspect-ratio:auto;                 /* a magasságot a belső arány adja */
  display:flex; flex-direction:column;
  border-radius:var(--r-md); overflow:hidden;
  border:1px solid var(--line-soft);
  background:var(--wine-850);
  transition:border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.menusheets .g-item:hover{
  border-color:rgba(231,178,74,.45);
  transform:translateY(-3px);
  box-shadow:0 14px 34px rgba(0,0,0,.34);
}
.menusheets .g-item .ms-shot{
  position:relative; display:block; aspect-ratio:1/1.414;   /* A4 */
  overflow:hidden; background:var(--wine-900);
}
.menusheets .g-item img{
  width:100%; height:100%; object-fit:cover; object-position:top center;
  transition:transform .6s cubic-bezier(.2,.7,.3,1), filter .4s ease;
  filter:saturate(.95) brightness(.92);
}
.menusheets .g-item:hover img{ transform:scale(1.04); filter:none; }
.menusheets .g-item figcaption{
  position:static; inset:auto; transform:none; opacity:1;
  flex:1; display:flex; align-items:center; justify-content:center;
  padding:.75rem .9rem .85rem; background:none;
  font-size:.87rem; font-weight:600; line-height:1.35; color:var(--cream);
  text-align:center;
}
.menusheets .g-item:hover figcaption{ color:var(--gold-bright); }

/* Nagyító jel a lap sarkában — jelzi, hogy kattintható */
.menusheets .g-item .ms-shot::after{
  content:''; position:absolute; right:.6rem; bottom:.6rem;
  width:30px; height:30px; border-radius:50%;
  background:rgba(18,1,7,.62) center/14px 14px no-repeat;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E7B24A' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E");
  border:1px solid rgba(231,178,74,.35);
  opacity:0; transition:opacity .3s ease;
}
.menusheets .g-item:hover .ms-shot::after,
.menusheets .g-item:focus-visible .ms-shot::after{ opacity:1; }

@media (max-width:1080px){ .menusheets{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px){ .menusheets{ grid-template-columns:repeat(2,1fr); gap:.75rem; } }
@media (max-width:640px){ .menusheets .g-item figcaption{ font-size:.8rem; padding:.6rem .55rem .7rem; } }

/* --- Partnerek --- */
.partner-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:1.1rem;
}
.partner{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  border-radius:var(--r-md); padding:1.7rem 1.5rem 1.5rem;
  background:rgba(247,236,226,.05); border:1px solid var(--line-soft);
  color:var(--cream); text-decoration:none;
  transition:transform .26s cubic-bezier(.2,.7,.3,1), background .26s ease, box-shadow .26s ease, border-color .26s ease;
}
.partner:hover{
  transform:translateY(-5px); border-color:rgba(231,178,74,.42); color:var(--cream);
  background:rgba(247,236,226,.09); box-shadow:var(--shadow-md);
}
/* a partner logók sötét bordó rajzolatúak, ezért világos alapon ülnek */
.partner img{
  height:56px; width:auto; max-width:100%; object-fit:contain; object-position:center;
  margin:0 auto 1.2rem; padding:.5rem .9rem; border-radius:10px;
  background:#F7EFE6; box-sizing:content-box;
}
.partner h3{
  font-family:var(--f-display); font-size:1.3rem; font-weight:600; margin:0 0 .45rem; color:var(--gold-bright);
}
.partner p{ margin:0 0 1rem; font-size:.9rem; color:var(--cream-dim); flex:1; }
.p-go{
  font-size:.8rem; font-weight:700; letter-spacing:.03em; color:var(--gold);
  transition:color .2s ease;
}
.partner:hover .p-go{ color:var(--gold-bright); }

/* --- Kapcsolat --- */
.contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(1.8rem,4vw,3.4rem); align-items:start; }
.contact-list{ margin:0 0 2.4rem; padding:0; display:grid; gap:1.2rem; }
.contact-list div{ display:grid; gap:.2rem; }
.contact-list dt{
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); font-weight:700;
}
.contact-list dd{ margin:0; font-size:1.06rem; color:var(--cream); }

.hours{ width:100%; border-collapse:collapse; margin-bottom:.6rem; }
.hours caption{
  text-align:left; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); font-weight:700; padding-bottom:.7rem;
}
.hours th,.hours td{
  padding:.68rem 0; border-bottom:1px solid var(--line-soft); font-size:.96rem; font-weight:400;
}
.hours th{ text-align:left; color:var(--cream-dim); }
.hours td{ text-align:right; color:var(--cream); font-variant-numeric:tabular-nums; }

.map-holder{
  margin-top:1.8rem; border-radius:var(--r-md); overflow:hidden;
  border:1px solid var(--line); aspect-ratio:16/10;
  background:
    repeating-linear-gradient(45deg, rgba(231,178,74,.045) 0 10px, transparent 10px 20px),
    radial-gradient(90% 80% at 50% 0%, rgba(110,16,38,.5), transparent 60%),
    var(--wine-850);
  display:grid; place-items:center; text-align:center;
}
.map-holder iframe{ width:100%; height:100%; border:0; display:block; filter:saturate(.8) brightness(.92); }
.map-inner{ padding:1.6rem; color:var(--cream-faint); max-width:38ch; }
.map-inner svg{ width:32px; height:32px; margin:0 auto .8rem; color:var(--gold); }
.map-inner p{ margin:0; font-size:.88rem; line-height:1.6; }
.map-inner strong{ color:var(--gold-bright); }
.map-inner code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.85em;
  background:rgba(231,178,74,.1); padding:.1em .35em; border-radius:4px; color:var(--gold);
}

.contact-form{
  border-radius:var(--r-lg); padding:clamp(1.6rem,3.4vw,2.4rem);
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(110,16,38,.5), transparent 58%),
    var(--wine-850);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
}
.contact-form h3{ font-family:var(--f-display); font-size:1.7rem; font-weight:600; margin:0 0 1.4rem; color:var(--gold-bright); }
.field{ display:grid; gap:.4rem; margin-bottom:1.05rem; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field label{ font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--cream-faint); font-weight:700; }
.field input,.field select,.field textarea{
  font-family:var(--f-body); font-size:.98rem; color:var(--cream);
  background:rgba(18,1,7,.55); border:1px solid rgba(247,236,226,.16);
  border-radius:var(--r-sm); padding:.85rem 1rem; width:100%;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.field textarea{ resize:vertical; min-height:110px; }
.field input::placeholder,.field textarea::placeholder{ color:rgba(247,236,226,.3); }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(231,178,74,.16);
  background:rgba(18,1,7,.8);
}
.field input:invalid.touched,.field textarea:invalid.touched{ border-color:var(--pink); }
.field select{ appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:calc(100% - 18px) 52%, calc(100% - 12px) 52%;
  background-size:6px 6px,6px 6px; background-repeat:no-repeat;
}
.field select option{ background:var(--wine-850); color:var(--cream); }
.form-status{ margin:.9rem 0 0; font-size:.92rem; min-height:1.2em; }
.form-status.ok{ color:var(--gold-bright); }
.form-status.err{ color:var(--pink); }

/* =========================================================
   LÁBLÉC
   ========================================================= */
.site-footer{
  background:linear-gradient(180deg,var(--wine-950),var(--ink));
  border-top:1px solid var(--line);
  padding-top:clamp(3rem,6vw,4.5rem);
}
.footer-inner{
  display:grid; grid-template-columns:1.3fr .8fr 1fr; gap:2.4rem;
  padding-bottom:2.8rem;
}
.f-brand img{ height:52px; width:auto; margin-bottom:1rem; }
.site-footer h4{
  font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold);
  margin:0 0 1.1rem; font-weight:700;
}
.f-nav ul{ list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.f-nav a{ color:var(--cream-dim); font-size:.94rem; }
.f-nav a:hover{ color:var(--gold-bright); }
.f-contact p{ margin:0 0 .5rem; font-size:.94rem; color:var(--cream-dim); }
.f-fb{
  display:inline-flex; align-items:center; gap:.55rem; margin-top:1rem;
  font-size:.9rem; font-weight:700; color:var(--cream);
  border:1px solid var(--line); border-radius:var(--r-pill); padding:.55rem 1.1rem;
  transition:all .2s ease;
}
.f-fb svg{ width:17px; height:17px; fill:currentColor; }
.f-fb:hover{ background:var(--grad-flame); border-color:transparent; color:#fff; }

.footer-bottom{
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  border-top:1px solid var(--line-soft); padding-block:1.4rem;
}
.footer-bottom p{ margin:0; font-size:.84rem; color:var(--cream-faint); }

/* =========================================================
   KOSÁR
   ========================================================= */
.cart-overlay{
  position:fixed; inset:0; z-index:110;
  background:rgba(8,0,4,.7); backdrop-filter:blur(4px);
  opacity:0; transition:opacity .32s ease;
}
.cart-overlay.show{ opacity:1; }

.cart-panel{
  position:fixed; top:0; right:0; bottom:0; z-index:120;
  width:min(420px,92vw);
  display:flex; flex-direction:column;
  background:
    radial-gradient(90% 40% at 100% 0%, rgba(110,16,38,.6), transparent 60%),
    var(--wine-900);
  border-left:1px solid var(--line);
  box-shadow:-30px 0 70px -30px rgba(0,0,0,.9);
  transform:translateX(103%);
  transition:transform .38s cubic-bezier(.3,.8,.25,1);
  visibility:hidden;
}
.cart-panel.open{ transform:none; visibility:visible; }

.cart-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:1.4rem 1.5rem; border-bottom:1px solid var(--line-soft); flex:0 0 auto;
}
.cart-head h2{ font-family:var(--f-display); font-size:1.6rem; font-weight:600; margin:0; color:var(--gold-bright); }
.cart-close{
  width:36px; height:36px; border-radius:50%; cursor:pointer; font-size:1.5rem; line-height:1;
  background:rgba(247,236,226,.07); border:1px solid rgba(247,236,226,.16); color:var(--cream);
  transition:all .2s ease;
}
.cart-close:hover{ background:var(--pink); border-color:transparent; color:#fff; }

.cart-body{ flex:1 1 auto; overflow-y:auto; padding:1.2rem 1.5rem; }
.cart-empty{ color:var(--cream-faint); font-size:.95rem; text-align:center; padding:2.5rem 1rem; margin:0; }
.cart-items{ list-style:none; margin:0; padding:0; display:grid; gap:.9rem; }
.cart-item{
  display:grid; grid-template-columns:1fr auto; gap:.5rem .8rem;
  padding-bottom:.9rem; border-bottom:1px solid var(--line-soft);
  animation:itemIn .3s ease both;
}
@keyframes itemIn{ from{opacity:0; transform:translateX(14px)} to{opacity:1;transform:none} }
.ci-name{ font-family:var(--f-display); font-size:1.12rem; font-weight:600; color:var(--cream); line-height:1.25; }
.ci-unit{ font-size:.8rem; color:var(--cream-faint); }
.ci-line{ font-weight:700; color:var(--gold-bright); white-space:nowrap; font-variant-numeric:tabular-nums; }
.ci-controls{ display:flex; align-items:center; gap:.35rem; grid-column:1/-1; }
.qty{
  width:30px; height:30px; border-radius:8px; cursor:pointer; font-size:1.05rem; line-height:1;
  background:rgba(247,236,226,.07); border:1px solid rgba(247,236,226,.18); color:var(--cream);
  transition:all .18s ease;
}
.qty:hover{ background:var(--grad-gold); color:#3A0917; border-color:transparent; }
.ci-qty{ min-width:2.2ch; text-align:center; font-weight:700; font-variant-numeric:tabular-nums; }
.ci-remove{
  margin-left:auto; background:none; border:none; cursor:pointer;
  font-size:.8rem; color:var(--cream-faint); text-decoration:underline; text-underline-offset:3px;
  font-family:var(--f-body);
}
.ci-remove:hover{ color:var(--pink); }

.cart-foot{ flex:0 0 auto; padding:1.3rem 1.5rem 1.5rem; border-top:1px solid var(--line); background:rgba(18,1,7,.5); }

/* Átvétel módja — elvitel / kiszállítás váltó a kosár lábában */
.cart-mode{
  display:grid; grid-template-columns:1fr 1fr; gap:.25rem;
  margin:0 0 .95rem; padding:.25rem;
  border:1px solid var(--line); border-radius:999px; background:rgba(0,0,0,.22);
}
.cart-mode__btn{
  appearance:none; border:0; cursor:pointer;
  padding:.55rem .5rem; border-radius:999px;
  font-family:inherit; font-size:.85rem; font-weight:600; letter-spacing:.02em;
  color:var(--cream-faint); background:transparent;
  transition:background .18s ease, color .18s ease;
}
.cart-mode__btn:hover{ color:var(--cream); }
.cart-mode__btn.is-on{
  background:var(--grad-gold); color:#2A0512;
  box-shadow:0 2px 10px rgba(0,0,0,.3);
}
.cart-mode__btn:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }

.cart-sum{ display:flex; justify-content:space-between; gap:1rem; margin-bottom:.5rem; font-size:.95rem; color:var(--cream-dim); }
.cart-sum strong{ color:var(--cream); font-variant-numeric:tabular-nums; }
.cart-sum.small{ font-size:.82rem; color:var(--cream-faint); }
.cart-sum.total{
  margin:.9rem 0 1.1rem; padding-top:.9rem; border-top:1px solid var(--line-soft);
  font-size:1.05rem; color:var(--cream);
}
.cart-sum.total strong{
  font-family:var(--f-display); font-size:1.6rem; font-weight:700;
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.cart-warn{ margin:0 0 .8rem; font-size:.85rem; color:var(--pink); }

/* =========================================================
   MODAL
   ========================================================= */
.modal{ position:fixed; inset:0; z-index:140; display:grid; place-items:center; padding:1.2rem; }
.modal-backdrop{ position:absolute; inset:0; background:rgba(8,0,4,.82); backdrop-filter:blur(6px); }
.modal-box{
  position:relative; width:min(620px,100%); max-height:90svh; overflow-y:auto;
  border-radius:var(--r-lg); padding:clamp(1.6rem,4vw,2.6rem);
  background:
    radial-gradient(110% 80% at 100% 0%, rgba(110,16,38,.55), transparent 58%),
    var(--wine-850);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
  animation:modalIn .34s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes modalIn{ from{opacity:0; transform:translateY(20px) scale(.98)} to{opacity:1;transform:none} }
.modal-box .h-display{ font-size:clamp(1.6rem,3.2vw,2.1rem); }
.modal-close{
  position:absolute; top:1rem; right:1rem; width:36px; height:36px; border-radius:50%;
  cursor:pointer; font-size:1.5rem; line-height:1;
  background:rgba(247,236,226,.07); border:1px solid rgba(247,236,226,.16); color:var(--cream);
}
.modal-close:hover{ background:var(--pink); border-color:transparent; color:#fff; }
.co-list{ list-style:none; margin:0 0 1rem; padding:0; display:grid; gap:.5rem; }
.co-list li{ display:flex; justify-content:space-between; gap:1rem; font-size:.94rem; color:var(--cream-dim);
  padding-bottom:.5rem; border-bottom:1px solid var(--line-soft); }
.co-list li strong{ color:var(--cream); white-space:nowrap; font-variant-numeric:tabular-nums; }
.co-total{ text-align:right; font-size:1rem; color:var(--cream-dim); margin:0 0 1.6rem; }
.co-total strong{
  font-family:var(--f-display); font-size:1.7rem;
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.co-done{ text-align:center; padding:1rem 0; }
.co-tick{
  width:64px; height:64px; margin:0 auto 1.2rem; border-radius:50%;
  display:grid; place-items:center; font-size:1.9rem; color:#3A0917;
  background:var(--grad-gold); box-shadow:0 14px 34px -14px rgba(231,178,74,.8);
}
.co-done h3{ font-family:var(--f-display); font-size:1.8rem; font-weight:600; margin:0 0 .6rem; color:var(--gold-bright); }
.co-done p{ color:var(--cream-dim); margin:0 0 1.6rem; font-size:.96rem; }

/* =========================================================
   LIGHTBOX / TOAST
   ========================================================= */
.lightbox{
  position:fixed; inset:0; z-index:150;
  display:grid; place-items:center; grid-template-areas:'p i n';
  grid-template-columns:auto 1fr auto;
  background:rgba(8,0,4,.975); padding:1.5rem;
}
.lightbox img{ grid-area:i; max-width:100%; max-height:82svh; border-radius:var(--r-md); box-shadow:var(--shadow-lg); }
.lb-cap{ position:absolute; bottom:1.4rem; left:0; right:0; text-align:center; color:var(--cream-dim); font-size:.92rem; margin:0; }
.lb-close,.lb-prev,.lb-next{
  background:rgba(247,236,226,.08); border:1px solid rgba(247,236,226,.18); color:var(--cream);
  width:46px; height:46px; border-radius:50%; cursor:pointer; font-size:1.6rem; line-height:1;
  display:grid; place-items:center; transition:all .2s ease; flex:0 0 auto;
}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{ background:var(--grad-flame); border-color:transparent; color:#fff; }
.lb-close{ position:absolute; top:1.2rem; right:1.2rem; }
.lb-prev{ grid-area:p; }
.lb-next{ grid-area:n; }

/* --- Étlap nagy nézetben: ráközelítés ---
   Egy étlap sűrű szöveg, ezért a képre kattintva teljes szélességre
   nagyítható és görgethető. Újabb kattintás visszaáll. */
.lightbox.is-doc img{ cursor:zoom-in; }
.lightbox.is-doc.zoomed{
  display:block; place-items:initial; padding:0;
  overflow:auto; -webkit-overflow-scrolling:touch;
}
.lightbox.is-doc.zoomed img{
  display:block; margin:0 auto;
  width:min(1100px,100%); max-width:none; max-height:none;
  border-radius:0; cursor:zoom-out;
}
/* Kis kijelzőn az ablak szélessége kevés egy A4-es laphoz: ilyenkor
   a laptól szélesebbre nagyítunk, és oldalirányban is lehet görgetni. */
@media (max-width:760px){
  .lightbox.is-doc.zoomed img{ width:min(820px,200%); }
}
.lightbox.is-doc.zoomed .lb-prev,
.lightbox.is-doc.zoomed .lb-next,
.lightbox.is-doc.zoomed .lb-cap{ display:none; }
.lightbox.is-doc.zoomed .lb-close{ position:fixed; }
.lb-zoomhint{
  position:absolute; bottom:3.4rem; left:0; right:0; text-align:center;
  color:var(--cream-faint); font-size:.8rem; margin:0; letter-spacing:.02em;
}
.lightbox:not(.is-doc) .lb-zoomhint{ display:none; }
.lightbox.is-doc.zoomed .lb-zoomhint{ display:none; }

.toast{
  position:fixed; left:50%; bottom:26px; transform:translate(-50%,24px);
  z-index:160; max-width:min(420px,92vw);
  padding:.9rem 1.4rem; border-radius:var(--r-pill);
  background:var(--wine-800); border:1px solid rgba(231,178,74,.4); color:var(--cream);
  font-size:.93rem; font-weight:600; box-shadow:var(--shadow-lg);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:transform .4s cubic-bezier(.2,.7,.3,1), opacity .3s ease, visibility .4s;
}
.toast.show{ transform:translate(-50%,0); opacity:1; visibility:visible; }

/* =========================================================
   BELÉPTETŐ ANIMÁCIÓ
   ========================================================= */
.reveal{ opacity:0; transform:translateY(26px); }
.reveal.in{ opacity:1; transform:none; transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.3,1); }

/* =========================================================
   RESPONSZÍV
   ========================================================= */
@media (max-width:1080px){
  .ev-split{ grid-template-columns:1fr; }
  .ev-types{ padding-top:0; }
  .main-nav a{ padding:.5rem .55rem; font-size:.86rem; }
  .about-grid{ grid-template-columns:1fr; }
  .about-card{ position:static; }
  .contact-grid{ grid-template-columns:1fr; }
  .order-info{ grid-template-columns:repeat(2,1fr); }
  .footer-inner{ grid-template-columns:1fr 1fr; }
  .mode-grid{ grid-template-columns:1fr; }
}

@media (max-width:900px){
  :root{ --header-h:70px; }
  .burger{ display:block; }
  .main-nav{
    position:fixed; inset:var(--header-h) 0 auto 0;
    margin:0; padding:1rem clamp(20px,5vw,36px) 1.6rem;
    background:
      radial-gradient(120% 90% at 100% 0%, rgba(110,16,38,.55), transparent 62%),
      var(--wine-950);
    border-bottom:1px solid var(--line);
    box-shadow:0 30px 60px -30px #000;
    transform:translateY(-120%); opacity:0; visibility:hidden;
    transition:transform .36s cubic-bezier(.3,.8,.25,1), opacity .3s ease, visibility .36s;
    max-height:calc(100svh - var(--header-h)); overflow-y:auto;
  }
  .main-nav.open{ transform:none; opacity:1; visibility:visible; }
  .main-nav ul{ flex-direction:column; align-items:stretch; gap:.15rem; }
  .main-nav a{
    padding:.95rem .4rem; font-size:1.06rem;
    border-bottom:1px solid var(--line-soft);
  }
  .main-nav a::after{ display:none; }
  .gallery{ grid-template-columns:repeat(2,1fr); }
  .g-item.g-wide{ grid-column:span 2; aspect-ratio:16/9; }
  .footer-inner{ grid-template-columns:1fr; gap:2rem; }
  .cta-band{ flex-direction:column; align-items:flex-start; }
  .cal-head{ flex-direction:column; align-items:stretch; }
  .cal-nav{ justify-content:space-between; }
  .cal{ gap:.28rem; }
  .cal-cell{ font-size:.92rem; border-radius:8px; }
  .cal-cell small{ display:none; }
}

@media (max-width:560px){
  body{ font-size:16px; }
  .hnote{ gap:.55rem; margin-top:1.25rem; }
  .hnote__t{ font-size:1.2rem; }
  .hnote__a{ transform:scale(.86); transform-origin:left top; }
  .hero{ min-height:auto; padding:calc(var(--header-h) + 2.5rem) 0 4.5rem; }
  .hero-logo{ width:min(74vw,270px); }
  .hero-cta{ width:100%; flex-direction:column; }
  .hero-cta .btn{ width:100%; }
  .scroll-hint{ display:none; }
  .order-info{ grid-template-columns:1fr; }
  .field-row{ grid-template-columns:1fr; }
  .menu-grid{ grid-template-columns:1fr; }
  .gallery{ grid-template-columns:1fr; }
  .g-item,.g-item.g-wide{ grid-column:span 1; aspect-ratio:4/3; }
  .brand img{ height:34px; }
  .cal-block{ padding:1.1rem .8rem 1.3rem; }
  .cal-legend{ gap:.35rem .9rem; font-size:.78rem; }
  .cal{ gap:.22rem; }
  .cal-dow{ font-size:.62rem; letter-spacing:.02em; }
  .cal-cell{ font-size:.86rem; aspect-ratio:1/.9; }
  .lightbox{ grid-template-areas:'i'; grid-template-columns:1fr; }
  .lb-prev,.lb-next{ position:absolute; bottom:1.2rem; }
  .lb-prev{ left:1.2rem; } .lb-next{ right:1.2rem; }
  .lb-cap{ bottom:5rem; }
  .add-btn{ width:100%; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; }
}

@media print{
  .site-header,.cart-panel,.cart-overlay,.modal,.lightbox,.toast,.scroll-hint{ display:none !important; }
  body{ background:#fff; color:#000; }
}

/* --- rejtett spam-csapda mező --- */
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* --- biztonsági kérdés --- */
.captcha-field .q{
  font-weight:800; color:var(--gold-bright); letter-spacing:.04em;
  text-transform:none; margin-left:.35rem;
}

/* --- betöltés közbeni finom elhalványulás --- */
.is-loading{ opacity:.45; transition:opacity .25s ease; }

/* --- beágyazott térkép --- */
.map-holder iframe{ width:100%; height:100%; border:0; display:block; filter:saturate(.8) brightness(.92); }

/* =========================================================
   ÜRES BLOKK — ha egy szekcióhoz még nincs feltöltve tartalom
   ========================================================= */
.empty-block{
  grid-column:1/-1;
  display:flex; flex-direction:column; align-items:center; gap:.55rem;
  padding:clamp(2rem,5vw,3.2rem) 1.5rem;
  border-radius:var(--r-md);
  border:1px dashed var(--line);
  background:rgba(247,236,226,.035);
  text-align:center;
}
.empty-block__icon{ color:var(--gold); opacity:.7; }
.empty-block__icon svg{ width:34px; height:34px; }
.empty-block strong{
  font-family:var(--f-display); font-size:1.3rem; font-weight:600; color:var(--gold-bright);
}
.empty-block span{ font-size:.93rem; color:var(--cream-faint); max-width:48ch; line-height:1.6; }
.value-list li.empty-li{ list-style:none; padding-left:0; }
.value-list li.empty-li::before{ display:none; }

/* =========================================================
   JELSZÓ-KAPU
   ========================================================= */
html.site-locked{ overflow:hidden; }
html.site-locked body > *:not(.gate){ display:none !important; }
html:not(.site-locked) .gate{ display:none !important; }

.gate{
  position:fixed; inset:0; z-index:500;
  display:grid; place-items:center; padding:1.5rem;
  isolation:isolate; overflow:auto;
}
.gate-bg{ position:absolute; inset:0; z-index:-2; }
.gate-bg img{
  width:100%; height:100%; object-fit:cover;
  filter:saturate(.86) brightness(.8);
}
.gate-veil{
  position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(120% 92% at 50% 44%, rgba(86,14,34,.32) 0%, rgba(32,4,14,.72) 52%, rgba(16,1,8,.92) 100%),
    linear-gradient(180deg, rgba(20,1,8,.72), rgba(26,2,9,.84));
  mix-blend-mode:multiply;
}
.gate-box{
  position:relative; width:min(420px,100%);
  padding:clamp(1.8rem,4vw,2.6rem);
  border-radius:var(--r-lg);
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(110,16,38,.55), transparent 58%),
    var(--wine-850);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
  text-align:center;
  animation:heroIn .7s cubic-bezier(.2,.7,.3,1) both;
}
.gate-logo{
  width:min(190px,60%); height:auto; margin:0 auto 1.4rem;
  filter:drop-shadow(0 14px 40px rgba(0,0,0,.7));
}
.gate-box h1{
  font-family:var(--f-display); font-weight:600; font-size:1.8rem;
  margin:0 0 .4rem; color:var(--cream);
}
.gate-box > p{ margin:0 0 1.6rem; font-size:.95rem; color:var(--cream-dim); }
.gate-field{ display:block; text-align:left; margin-bottom:1rem; }
.gate-field span{
  display:block; margin-bottom:.4rem;
  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--cream-faint); font-weight:700;
}
.gate-field input{
  width:100%; font-family:var(--f-body); font-size:1rem; color:var(--cream);
  background:rgba(18,1,7,.6); border:1px solid rgba(247,236,226,.18);
  border-radius:var(--r-sm); padding:.9rem 1rem;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.gate-field input:focus{
  outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(231,178,74,.16);
}
.gate-remember{
  display:flex; align-items:center; gap:.55rem; justify-content:flex-start;
  font-size:.88rem; color:var(--cream-dim); margin-bottom:1.3rem; cursor:pointer;
}
.gate-error{ margin:.9rem 0 0; min-height:1.2em; font-size:.9rem; color:var(--pink); }
.gate-box.shake{ animation:gateShake .4s ease; }
@keyframes gateShake{
  0%,100%{ transform:translateX(0); }
  20%{ transform:translateX(-8px); } 40%{ transform:translateX(8px); }
  60%{ transform:translateX(-5px); } 80%{ transform:translateX(5px); }
}

/* =========================================================
   ÉTEL RÉSZLETEI — modal
   ========================================================= */
.dish-modal .modal-box{
  width:min(940px,100%);
  padding:0;
  /* Vízszintesen vágunk (a kép a lekerekített sarokhoz simuljon), de
     függőlegesen GÖRGETHETŐ kell legyen — korábban itt `overflow:hidden`
     volt, és mobilon ez levágta a kártya alját, így a megosztás rész
     egyszerűen nem volt elérhető. */
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.dish-modal .modal-close{
  top:.9rem; right:.9rem; z-index:3;
  background:rgba(18,1,7,.72); backdrop-filter:blur(6px);
}

.dm-grid{ display:grid; grid-template-columns:1fr 1fr; }

.dm-media{ position:relative; background:var(--wine-800); min-height:100%; }
.dm-media img{
  width:100%; height:100%; min-height:340px; object-fit:cover; display:block;
}
.dm-media::after{
  content:''; position:absolute; inset:auto 0 0 0; height:32%;
  background:linear-gradient(180deg,transparent,rgba(37,5,16,.55));
  pointer-events:none;
}
.dm-media .dish-tag,
.dm-media .dish-badge{ z-index:2; }

.dm-body{
  padding:clamp(1.6rem,3.4vw,2.4rem);
  display:flex; flex-direction:column;
}
.dm-cat{
  margin:0 0 .5rem;
  font-size:.72rem; font-weight:800; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold);
}
.dm-body .h-display{ font-size:clamp(1.6rem,3vw,2.3rem); margin:0 0 .8rem; }
.dm-desc{ margin:0 0 1.1rem; color:var(--cream-dim); font-size:1rem; }
.dm-body .dish-meta{ margin-bottom:1.3rem; }

.dm-price{ margin-bottom:1.4rem; }
.dm-price .dish-price{ font-size:2rem; }

.dm-actions{ display:flex; flex-wrap:wrap; gap:.7rem; margin-bottom:1.6rem; }
.dm-actions .btn{ padding:.85rem 1.5rem; font-size:.9rem; }

.dm-share{ margin-top:auto; padding-top:1.3rem; border-top:1px solid var(--line-soft); }
.dm-share__label{
  display:block; margin-bottom:.7rem;
  font-size:.72rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase;
  color:var(--cream-faint);
}
.dm-share__btns{ display:flex; flex-wrap:wrap; gap:.5rem; }
.share-btn{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--f-body); font-size:.85rem; font-weight:700;
  padding:.6rem 1.05rem; border-radius:var(--r-pill); cursor:pointer;
  background:rgba(247,236,226,.06); border:1px solid rgba(247,236,226,.18);
  color:var(--cream); transition:all .2s ease;
}
.share-btn svg{ width:17px; height:17px; fill:currentColor; }
.share-btn.share-ig svg,
.share-btn.share-link svg{ fill:none; }
.share-btn:hover{ transform:translateY(-2px); border-color:transparent; color:#fff; }
.share-fb:hover{ background:#1877F2; }
.share-ig:hover{ background:linear-gradient(45deg,#F58529,#DD2A7B 55%,#8134AF); }
.share-link:hover{ background:var(--grad-gold); color:#3A0917; }

@media (max-width:820px){
  .dm-grid{ grid-template-columns:1fr; }
  .dm-media img{ min-height:200px; max-height:32vh; }
  /* egy hajszállal kisebb belső margó, hogy a megosztás is beférjen */
  .dm-body{ padding:1.3rem 1.2rem 1.5rem; }
  .dm-actions{ margin-bottom:1.2rem; }
  .dm-actions .btn{ flex:1 1 100%; }
  .dm-share{ padding-top:1.1rem; }
  .dm-share__btns .share-btn{ flex:1 1 auto; justify-content:center; }
}

/* ha egy ételhez nincs (vagy törölték) a kép, a kártya akkor is rendben nézzen ki */
.dish-media:empty,
.dish-media:has(> .dish-tag:only-child){
  background:
    radial-gradient(120% 100% at 100% 0%, rgba(110,16,38,.5), transparent 60%),
    var(--wine-800);
}
.dm-media img[hidden] + .dish-tag{ position:static; margin:1rem; display:inline-block; }

/* =========================================================
   LÁBLÉC — dokumentumok és készítő
   ========================================================= */
.footer-inner{ grid-template-columns:1.2fr .8fr .9fr 1fr; }

.f-docs ul{ list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.f-doc-link{
  background:none; border:none; padding:0; cursor:pointer;
  font-family:var(--f-body); font-size:.94rem; font-weight:400; text-align:left;
  color:var(--cream-dim); transition:color .2s ease;
}
.f-doc-link:hover{ color:var(--gold-bright); text-decoration:underline; text-underline-offset:3px; }

.f-credit{
  display:inline-flex; align-items:center; gap:.7rem;
  padding:.55rem 1.1rem; border-radius:var(--r-pill);
  background:rgba(247,236,226,.05); border:1px solid var(--line-soft);
  transition:all .22s ease;
}
.f-credit__text{
  font-size:.8rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--cream-faint); white-space:nowrap;
}
.f-credit img{ height:17px; width:auto; display:block; }
.f-credit:hover{
  background:rgba(247,236,226,.1); border-color:rgba(231,178,74,.45);
  transform:translateY(-2px);
}
.f-credit:hover .f-credit__text{ color:var(--gold-bright); }

.footer-bottom{ align-items:center; }

/* =========================================================
   DOKUMENTUM-ABLAK (ÁSZF, adatvédelem)
   ========================================================= */
.doc-modal .modal-box{ width:min(760px,100%); }
.doc-modal .h-display{ font-size:clamp(1.5rem,3vw,2.1rem); padding-right:2.5rem; }
.doc-body{
  max-height:min(58vh,520px); overflow-y:auto;
  margin:1.2rem 0 1.6rem; padding-right:.6rem;
  color:var(--cream-dim); font-size:.98rem;
}
.doc-body h1,.doc-body h2,.doc-body h3,.doc-body h4{
  font-family:var(--f-display); font-weight:600; color:var(--gold-bright);
  margin:1.6rem 0 .6rem; line-height:1.25;
}
.doc-body h1{ font-size:1.5rem; } .doc-body h2{ font-size:1.32rem; }
.doc-body h3{ font-size:1.16rem; } .doc-body h4{ font-size:1.04rem; }
.doc-body h1:first-child,.doc-body h2:first-child,.doc-body h3:first-child{ margin-top:0; }
.doc-body p{ margin:0 0 .9rem; }
.doc-body ul,.doc-body ol{ margin:0 0 1rem; padding-left:1.3rem; }
.doc-body li{ margin-bottom:.35rem; }
.doc-body a{ text-decoration:underline; text-underline-offset:3px; }
.doc-body strong{ color:var(--cream); }
.doc-body table{ width:100%; border-collapse:collapse; margin:0 0 1rem; font-size:.92rem; }
.doc-body th,.doc-body td{ padding:.5rem .7rem; border:1px solid var(--line-soft); text-align:left; }
.doc-body img{ border-radius:var(--r-sm); margin:.6rem 0; }
.doc-loading{ color:var(--cream-faint); }
.doc-foot{ display:flex; justify-content:flex-end; padding-top:.4rem; border-top:1px solid var(--line-soft); }

@media (max-width:1080px){
  .footer-inner{ grid-template-columns:1fr 1fr; }
}
@media (max-width:900px){
  .footer-inner{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; gap:.9rem; }
}
