:root {
  --gereni-brown:#5B3A29;
  --gereni-green:#4B6A3D;
  --gereni-cream:#F3E8D5;
  --gereni-card:#FFFFFF;
  --gereni-text:#1C1A18;
  --gereni-muted:#6B625A;
  --gereni-line:#C9B7A4;
  --card-shadow:0 32px 60px rgba(91,58,41,0.16);
  --home-highlight-bg:rgba(243,232,213,0.78);
  --home-highlight-border:rgba(91,58,41,0.28);
  --home-highlight-chip:rgba(91,58,41,0.12);
  --home-highlight-card:rgba(255,255,255,0.88);
  --home-highlight-card-border:rgba(91,58,41,0.22);
  --home-highlight-card-glow:rgba(255,214,162,0.28);
  --home-highlight-card-glow-secondary:rgba(146,176,135,0.32);
  --home-background-image:url('../assets/El_Rancho.jpg');
  --home-background-overlay:linear-gradient(rgba(243,232,213,0.18), rgba(243,232,213,0.28));
  --home-background-blend-mode:normal;
  --home-background-position:center 8%;
  --home-background-position-mobile:center 18%;
  --home-promos-video-bg:rgba(19,19,18,0.85);
  --holiday-accent:#C41E3A;
  --holiday-accent-2:#F5B841;
  --holiday-accent-soft:rgba(196, 30, 58, 0.12);
  --holiday-glow:0 18px 38px rgba(196, 30, 58, 0.35);
}

:root[data-seasonal-holiday="true"] {
  --gereni-brown:#7A1F2A;
  --gereni-green:#3F6F4A;
  --gereni-cream:#F8F2E7;
  --gereni-card:#FFFFFF;
  --gereni-text:#201312;
  --home-background-overlay:linear-gradient(rgba(248,242,231,0.72), rgba(248,242,231,0.92));
  --home-highlight-card-glow:rgba(245,184,65,0.28);
  --home-highlight-card-glow-secondary:rgba(62,143,102,0.28);
}

:root[data-seasonal-holiday="true"][data-theme="dark"] {
  --gereni-brown:#F7D7C7;
  --gereni-green:#8EC6A4;
  --gereni-cream:#0E0908;
  --gereni-card:#161412;
  --gereni-text:#F4EAE4;
  --home-highlight-card:rgba(25,22,19,0.9);
  --home-highlight-card-border:rgba(244,234,228,0.18);
  --home-background-overlay:linear-gradient(rgba(14,9,8,0.82), rgba(14,9,8,0.92));
}

:root[data-theme="dark"] {
  --gereni-brown:#EAD7C0;
  --gereni-green:#92B087;
  --gereni-cream:#0F0E0D;
  --gereni-card:#191816;
  --gereni-text:#F3EDE5;
  --gereni-muted:#B0A69C;
  --gereni-line:rgba(234,215,192,0.24);
  --card-shadow:0 20px 48px rgba(0,0,0,0.36);
  --home-highlight-bg:rgba(25,24,22,0.7);
  --home-highlight-border:rgba(234,215,192,0.25);
  --home-highlight-chip:rgba(234,215,192,0.12);
  --home-highlight-card:rgba(33,31,29,0.8);
  --home-highlight-card-border:rgba(234,215,192,0.28);
  --home-highlight-card-glow:rgba(111,147,98,0.32);
  --home-highlight-card-glow-secondary:rgba(255,214,162,0.18);
  --home-background-overlay:linear-gradient(rgba(20,14,10,0.55), rgba(12,9,7,0.68));
  --home-background-blend-mode:soft-light;
  --home-background-position:center 8%;
  --home-background-position-mobile:center 18%;
  --home-promos-video-bg:rgba(12,9,7,0.82);
}

:root[data-theme="light"] {
  --gereni-brown:#5B3A29;
  --gereni-green:#4B6A3D;
  --gereni-cream:#F3E8D5;
  --gereni-card:#FFFFFF;
  --gereni-text:#1C1A18;
  --gereni-muted:#6B625A;
  --gereni-line:#C9B7A4;
  --card-shadow:0 32px 60px rgba(91,58,41,0.16);
  --home-highlight-bg:rgba(243,232,213,0.78);
  --home-highlight-border:rgba(91,58,41,0.28);
  --home-highlight-chip:rgba(91,58,41,0.12);
  --home-highlight-card:rgba(255,255,255,0.88);
  --home-highlight-card-border:rgba(91,58,41,0.22);
  --home-highlight-card-glow:rgba(255,214,162,0.28);
  --home-highlight-card-glow-secondary:rgba(146,176,135,0.32);
}

html {
  background-color: var(--gereni-cream);
}

* {
  box-sizing:border-box;
}

body {
  font-family:'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  margin:0;
  min-height:100vh;
  background-color:var(--gereni-cream);
  color:var(--gereni-text);
  line-height:1.5;
}

@supports (min-height: 100dvh) {
  body {
    min-height: 100dvh;
  }
}

.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;
}

body.inicio {
  position:relative;
  display:flex;
  flex-direction:column;
  text-align:center;
  background-color:transparent;
}

.holiday-ribbon {
  position:sticky;
  top:0;
  z-index:12;
  padding:0.65rem 1rem;
  background:linear-gradient(90deg, rgba(196,30,58,0.12), rgba(245,184,65,0.16));
  color:var(--gereni-text);
  font-weight:600;
  letter-spacing:0.02em;
  border-bottom:1px solid rgba(196,30,58,0.24);
  box-shadow:var(--holiday-glow, 0 10px 26px rgba(0,0,0,0.22));
}

.holiday-toast {
  position:fixed;
  right:clamp(0.75rem, 3vw, 1.5rem);
  bottom:clamp(0.75rem, 3vw, 1.5rem);
  z-index:18;
  display:flex;
  flex-direction:column;
  gap:0.25rem;
  padding:0.85rem 1rem;
  background:rgba(33,26,24,0.88);
  color:#fffaf5;
  border-radius:14px;
  box-shadow:0 12px 32px rgba(0,0,0,0.35);
  border:1px solid rgba(255,255,255,0.06);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

:root[data-theme="light"] .holiday-toast {
  background:rgba(255,255,255,0.9);
  color:#2c1f1d;
  border-color:rgba(196,30,58,0.28);
}

.holiday-toast strong {
  font-size:0.95rem;
}

.holiday-toast span {
  font-size:0.9rem;
}

body.inicio::before {
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background-image:var(--home-background-overlay), var(--home-background-image);
  background-size:cover;
  background-position:var(--home-background-position);
  background-repeat:no-repeat;
  background-blend-mode:var(--home-background-blend-mode);
  transform: translateZ(0);
  opacity:0.8;
}

@media (max-width: 640px) {
  body.inicio::before {
    background-position: var(--home-background-position-mobile);
  }
}

main {
  padding:2rem 1rem 3rem;
}

body.inicio main {
  flex:1;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  width:100%;
  padding:clamp(2.5rem, 10vh, 5.5rem) clamp(1.5rem, 5vw, 3rem) clamp(2.5rem, 8vh, 4rem);
  margin-top:clamp(1rem, 4vh, 2.5rem);
  box-sizing:border-box;
}

@media (max-width: 720px) {
  body.inicio main {
    margin-top:clamp(0.75rem, 6vw, 1.5rem);
    padding-top:clamp(2.5rem, 18vw, 4rem);
    padding-bottom:clamp(2.25rem, 16vw, 3.5rem);
  }
}

@media (max-width: 520px) {
  body.inicio main {
    margin-top:clamp(0.5rem, 8vw, 1.25rem);
    padding-top:clamp(2.25rem, 24vw, 3.5rem);
  }
}

.home-hero {
  width:100%;
  max-width:min(1120px, 100%);
  margin:0 auto;
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:center;
  gap:clamp(1.5rem, 5vw, 2.75rem);
  padding-inline:clamp(0.5rem, 3vw, 1.5rem);
  box-sizing:border-box;
}

.holiday-lights {
  position:absolute;
  top:-1.2rem;
  left:0;
  right:0;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(16px, 1fr));
  gap:0.3rem;
  padding-inline:1rem;
  pointer-events:none;
  z-index:4;
}

.holiday-lights::after {
  content:"";
  position:absolute;
  top:0.7rem;
  left:0.4rem;
  right:0.4rem;
  height:2px;
  background:linear-gradient(90deg, rgba(196,30,58,0.6), rgba(245,184,65,0.7));
  opacity:0.8;
}

.holiday-lights__bulb {
  width:16px;
  height:22px;
  background:var(--bulb-color, #FAD643);
  border-radius:50% 50% 40% 40%;
  box-shadow:0 8px 18px rgba(0,0,0,0.18);
  margin:0 auto;
  transform-origin:50% -8px;
  animation:holidayTwinkle 2.8s ease-in-out infinite;
}

@keyframes holidayTwinkle {
  0%, 100% { opacity:0.9; transform:rotate(-2deg); }
  50% { opacity:0.55; transform:rotate(2deg) scale(1.04); }
}

@media (min-width: 900px) {
  .home-hero {
    flex-direction:row;
    align-items:stretch;
    justify-content:flex-end;
  }
}

.home-promos {
  width:100%;
  max-width:min(520px, 100%);
  margin:0;
  padding:clamp(1.15rem, 3vw, 1.75rem);
  display:flex;
  flex-direction:column;
  gap:clamp(0.85rem, 2vw, 1.2rem);
  border-radius:28px;
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.28);
  box-shadow:0 32px 70px rgba(32, 24, 18, 0.3);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  overflow:hidden;
}

.home-promos[data-promos-state="empty"],
.home-promos:not([data-promos-state]) {
  display:none;
}

.home-promos[data-promos-state="loading"],
.home-promos[data-promos-state="ready"] {
  display:flex;
}

.home-promos[data-promos-state="loading"] {
  visibility:hidden;
  min-block-size:24rem;
  aspect-ratio:3 / 4;
}

.home-promos[data-promos-state="ready"] {
  visibility:visible;
  min-block-size:auto;
  aspect-ratio:auto;
}

@media (min-width: 900px) {
  .home-promos {
    margin-right:auto;
  }
}

.home-promos__item {
  border-radius:22px;
  overflow:hidden;
  background:rgba(0,0,0,0.18);
  border:1px solid rgba(255,255,255,0.18);
  box-shadow:0 18px 46px rgba(0,0,0,0.22);
}

.home-promos__media {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3 / 4;
  object-fit:cover;
  transition:transform 0.4s ease;
}

.home-promos__media--video {
  object-fit:contain;
  background-color:var(--home-promos-video-bg);
  aspect-ratio:auto;
  padding:5px;
  box-sizing:border-box;
}

.home-promos__media:hover,
.home-promos__media:focus-visible {
  transform:scale(1.01);
}

.home-panel {
  background:linear-gradient(155deg, rgba(243,232,213,0.94), rgba(255,247,236,0.85));
  border-radius:32px;
  padding:clamp(1.75rem, 4.5vw, 2.75rem);
  box-shadow:0 28px 65px rgba(33, 22, 15, 0.25);
  width:min(100%, 420px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  text-align:left;
  gap:0.5rem;
  backdrop-filter:blur(10px);
  border:1px solid rgba(91,58,41,0.14);
  margin:0;
}

.home-panel__eyebrow {
  margin:0 0 0.5rem;
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.32em;
  text-transform:uppercase;
  color:var(--gereni-muted);
}

.home-panel__title {
  margin:0 0 0.75rem;
  font-family:'Alegreya', 'Times New Roman', serif;
  font-size:clamp(1.6rem, 3.6vw, 2.1rem);
  color:var(--gereni-brown);
  line-height:1.2;
}

.home-panel__subtitle {
  margin:0 0 clamp(1.25rem, 3vw, 1.75rem);
  color:var(--gereni-muted);
  font-size:0.95rem;
  line-height:1.6;
}

.home-actions[data-variant="primary"] {
  gap:clamp(1rem, 2.6vw, 1.4rem);
  margin-bottom:clamp(1.5rem, 4vw, 2.5rem);
}

.home-actions {
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:clamp(0.85rem, 2.2vw, 1.2rem);
  padding:0;
  margin:0;
}

.home-actions__item {
  display:flex;
}

.home-actions__link {
  flex:1;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:clamp(0.9rem, 2.4vw, 1.25rem);
  padding:clamp(1rem, 3vw, 1.3rem) clamp(1.2rem, 4vw, 1.8rem);
  border-radius:24px;
  font-weight:600;
  letter-spacing:0.01em;
  text-transform:none;
  text-decoration:none;
  color:var(--gereni-brown);
  background:linear-gradient(160deg, rgba(255,255,255,0.92), rgba(248,238,223,0.8));
  box-shadow:0 18px 40px rgba(91,58,41,0.18);
  position:relative;
  overflow:hidden;
  transition:transform 0.25s ease, box-shadow 0.25s ease, background 0.3s ease, color 0.3s ease;
}

.home-actions__link::after {
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 20% 20%, rgba(255,255,255,0.35), transparent 65%);
  opacity:0;
  transition:opacity 0.35s ease;
}

.home-actions__link:hover,
.home-actions__link:focus {
  transform:translateY(-3px);
  box-shadow:0 24px 46px rgba(91,58,41,0.24);
}

.home-actions__link:hover::after,
.home-actions__link:focus::after {
  opacity:1;
}

.home-actions__link--primary {
  background:linear-gradient(140deg, rgba(75,106,61,0.94), rgba(130,161,112,0.85));
  color:#fff;
  box-shadow:0 24px 44px rgba(75,106,61,0.3);
}

.home-actions__link--primary::after {
  background:radial-gradient(circle at 25% 25%, rgba(255,255,255,0.5), transparent 60%);
}

.home-actions__link--secondary {
  background:linear-gradient(150deg, rgba(255,255,255,0.92), rgba(243,232,213,0.82));
  border:1px solid rgba(91,58,41,0.18);
}

.home-actions__icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(2.75rem, 5.5vw, 3.25rem);
  height:clamp(2.75rem, 5.5vw, 3.25rem);
  border-radius:18px;
  background:rgba(255,255,255,0.18);
  color:inherit;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.4), 0 10px 20px rgba(0,0,0,0.08);
  flex-shrink:0;
}

.home-actions__content {
  display:flex;
  flex-direction:column;
  gap:0.35rem;
  align-items:flex-start;
}

.home-actions__title {
  font-size:1.05rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
}

.home-actions__description {
  font-size:0.9rem;
  font-weight:500;
  color:var(--gereni-muted);
  line-height:1.55;
}

.home-actions__link--primary .home-actions__description {
  color:rgba(255,255,255,0.82);
}

.wifi-card {
  position:relative;
  width:100%;
  margin-top:clamp(1.5rem, 4vw, 2.5rem);
  padding:clamp(1.25rem, 3.5vw, 1.75rem);
  border-radius:24px;
  background:linear-gradient(145deg, rgba(75,106,61,0.96), rgba(130,161,112,0.9));
  color:#fff;
  border:1px solid rgba(255,255,255,0.1);
  box-shadow:0 24px 46px rgba(0,0,0,0.32);
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:clamp(0.85rem, 2vw, 1.25rem);
  text-align:left;
  overflow:hidden;
}

.wifi-card::before {
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 12% 18%, rgba(255,255,255,0.12), transparent 35%),
    radial-gradient(circle at 80% 75%, rgba(255,255,255,0.1), transparent 45%);
  pointer-events:none;
}

.wifi-card__icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(3rem, 5vw, 3.5rem);
  height:clamp(3rem, 5vw, 3.5rem);
  border-radius:18px;
  background:rgba(255,255,255,0.14);
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.3), 0 16px 32px rgba(0,0,0,0.28);
  position:relative;
  z-index:1;
}

.wifi-card__body {
  display:flex;
  flex-direction:column;
  gap:clamp(0.75rem, 2vw, 1rem);
  position:relative;
  z-index:1;
}

.wifi-card__header {
  display:flex;
  flex-direction:column;
  gap:0.35rem;
}

.wifi-card__title {
  margin:0;
  font-family:'Alegreya', 'Times New Roman', serif;
  font-size:clamp(1.2rem, 2.8vw, 1.6rem);
  color:#fff;
}

.wifi-card__instructions {
  margin:0;
  font-size:0.95rem;
  color:rgba(255,255,255,0.82);
}

.wifi-card__actions {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:0.85rem;
  margin-top:0.35rem;
}

.wifi-card__qr {
  display:block;
  width:clamp(5.25rem, 16vw, 7.5rem);
  height:clamp(5.25rem, 16vw, 7.5rem);
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(255,255,255,0.4);
  box-shadow:0 14px 28px rgba(0,0,0,0.35);
}

.wifi-card__qr[hidden] {
  display:none;
}

.wifi-card__button {
  width:100%;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:clamp(0.8rem, 2vw, 1rem);
  padding:clamp(1rem, 3vw, 1.3rem) clamp(1.1rem, 3.5vw, 1.6rem);
  border-radius:20px;
  border:1px solid rgba(75,106,61,0.42);
  background:linear-gradient(140deg, rgba(75,106,61,0.94), rgba(130,161,112,0.85));
  color:#fff;
  font-weight:700;
  font-size:0.95rem;
  text-decoration:none;
  cursor:pointer;
  transition:transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, border-color 0.25s ease;
  min-width:0;
  box-shadow:0 24px 44px rgba(75,106,61,0.3);
  text-align:left;
  letter-spacing:0.01em;
  position:relative;
  overflow:hidden;
}

.wifi-card__button::after {
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 22% 22%, rgba(255,255,255,0.4), transparent 60%);
  opacity:0;
  transition:opacity 0.35s ease;
}

.wifi-card__button:hover,
.wifi-card__button:focus-visible {
  transform:translateY(-3px);
  box-shadow:0 28px 52px rgba(75,106,61,0.35);
}

.wifi-card__button:focus-visible {
  outline:3px solid rgba(255,255,255,0.32);
  outline-offset:2px;
}

.wifi-card__button:hover::after,
.wifi-card__button:focus-visible::after {
  opacity:1;
}

.wifi-card__button-icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(2.6rem, 5vw, 3rem);
  height:clamp(2.6rem, 5vw, 3rem);
  border-radius:16px;
  background:rgba(255,255,255,0.18);
  color:#0f130d;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.35), 0 14px 28px rgba(0,0,0,0.2);
  flex-shrink:0;
}

.wifi-card__button-content {
  display:flex;
  flex-direction:column;
  gap:0.25rem;
  align-items:flex-start;
  text-align:left;
}

.wifi-card__button-title {
  font-size:1.05rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:#0f130d;
  margin:0;
}

.wifi-card__button-line {
  display:block;
  font-size:0.95rem;
  line-height:1.5;
  color:#ffffff;
}

.wifi-card__button-line--muted {
  color:rgba(255,255,255,0.86);
  font-weight:500;
}

.wifi-card__button--secondary {
  width:auto;
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:0.4rem;
  padding:0.75rem 1.25rem;
  border-radius:14px;
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,0.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.2), 0 18px 40px rgba(0,0,0,0.28);
}

.wifi-card__button--secondary::after {
  content:none;
}

.wifi-card__button--secondary:hover,
.wifi-card__button--secondary:focus-visible {
  background:rgba(255,255,255,0.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.25), 0 22px 48px rgba(0,0,0,0.32);
}

.wifi-card__feedback {
  margin:0;
  font-size:0.85rem;
  font-weight:700;
  color:rgba(255,255,255,0.9);
}

@media (max-width: 899px) {
  .home-highlight {
    /* The `order` property only works if the parent container uses `display: flex` or `display: grid`. */
    order:-1;
    margin-top:0;
  }
}

.home-highlight {
  margin-top:1.75rem;
  padding:1.5rem;
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(0, 1.35fr);
  gap:1.5rem;
  background:var(--home-highlight-bg);
  border:1px solid var(--home-highlight-border);
  border-radius:20px;
  position:relative;
  overflow:hidden;
  box-shadow:0 24px 48px rgba(22, 15, 9, 0.18);
}

.home-highlight::before {
  content:'';
  position:absolute;
  inset:-25% -35% -45% -10%;
  background:radial-gradient(circle at 10% 20%, rgba(255,214,162,0.45) 0%, rgba(255,214,162,0) 55%),
    radial-gradient(circle at 85% 35%, rgba(146,176,135,0.35) 0%, rgba(146,176,135,0) 60%);
  opacity:0.9;
  mix-blend-mode:screen;
  z-index:0;
}

.home-highlight__media {
  position:relative;
  border-radius:18px;
  overflow:hidden;
  background:var(--home-highlight-card);
  border:1px solid var(--home-highlight-card-border);
  box-shadow:0 16px 32px rgba(27, 19, 13, 0.16);
  z-index:1;
}

.home-highlight__media::after {
  content:'';
  position:absolute;
  inset:10% 8%;
  border-radius:16px;
  box-shadow:0 0 60px var(--home-highlight-card-glow), 0 0 120px var(--home-highlight-card-glow-secondary);
  opacity:0.65;
  pointer-events:none;
}

.home-highlight__image {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.home-highlight__content {
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  text-align:left;
}

.home-highlight__eyebrow {
  margin:0;
  font-size:0.75rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gereni-muted);
}

.home-highlight__title {
  margin:0;
  font-size:clamp(1.5rem, 2.8vw, 1.9rem);
  font-family:'Alegreya', serif;
  font-weight:700;
  letter-spacing:0.02em;
}

.home-highlight__description {
  margin:0;
  font-size:1rem;
  color:var(--gereni-text);
}

.home-highlight__cta {
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  margin-top:0.5rem;
  padding:0.65rem 1.5rem;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(255,214,162,0.9), rgba(146,176,135,0.85));
  color:#2a1a12;
  font-weight:600;
  letter-spacing:0.03em;
  text-decoration:none;
  transition:transform 0.25s ease, box-shadow 0.25s ease;
  box-shadow:0 12px 25px rgba(22, 15, 9, 0.22);
}

.home-highlight__cta:hover,
.home-highlight__cta:focus-visible {
  transform:translateY(-2px);
  box-shadow:0 18px 30px rgba(22, 15, 9, 0.28);
  text-decoration:none;
}

.home-highlight[data-seasonal-effect]::after {
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  border:1px solid rgba(255,214,162,0.18);
  box-shadow:0 0 0 1px rgba(255,214,162,0.24);
  pointer-events:none;
  mix-blend-mode:screen;
}

@media (max-width: 960px) {
  .home-highlight {
    grid-template-columns:1fr;
    padding:1.25rem;
  }

  .home-highlight__media::after {
    inset:8% 10%;
  }

  .home-highlight__content {
    text-align:center;
    align-items:center;
  }

  .home-highlight__cta {
    align-self:center;
  }
}

.home-social {
  display:flex;
  flex-direction:column;
  gap:0.85rem;
  align-items:flex-start;
}

.home-social__title {
  margin:0;
  font-size:0.85rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--gereni-muted);
}

.home-social__buttons {
  display:flex;
  gap:0.75rem;
  flex-wrap:wrap;
}

.home-social__hashtag {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  white-space:nowrap;
  border:0;
}

.home-social__link {
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  padding:0.65rem 1.1rem;
  border-radius:999px;
  text-decoration:none;
  font-weight:600;
  letter-spacing:0.02em;
  background:rgba(255,255,255,0.85);
  color:var(--gereni-brown);
  border:1px solid rgba(91,58,41,0.12);
  box-shadow:0 12px 26px rgba(27,19,13,0.12);
  transition:transform 0.2s ease, box-shadow 0.2s ease, background 0.3s ease;
}

.home-social__link:hover,
.home-social__link:focus-visible {
  transform:translateY(-2px);
  box-shadow:0 16px 32px rgba(27,19,13,0.18);
  background:rgba(255,255,255,0.95);
  outline:none;
}

.home-actions__link--social {
  text-transform:none;
}

.holiday-action {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(245,184,65,0.5);
  box-shadow:var(--holiday-glow, 0 16px 28px rgba(0,0,0,0.25));
}

.holiday-action::before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(196,30,58,0.14), rgba(245,184,65,0.16));
  opacity:1;
  pointer-events:none;
}

.holiday-action .home-actions__content {
  position:relative;
}

.holiday-action .home-actions__title {
  color:var(--holiday-accent, #C41E3A);
}

.home-social__icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2rem;
  height:2rem;
  border-radius:50%;
  background:rgba(91,58,41,0.08);
  color:var(--gereni-brown);
}

.home-social__link--facebook {
  background:linear-gradient(140deg, rgba(59,89,152,0.92), rgba(80,110,180,0.85));
  color:#fff;
  border:none;
}

.home-social__link--facebook .home-social__icon {
  background:rgba(255,255,255,0.18);
  color:#fff;
}

.home-social__link--instagram {
  background:linear-gradient(135deg, rgba(245,133,41,0.9), rgba(235,68,90,0.92) 55%, rgba(99,84,186,0.95));
  color:#fff;
  border:none;
}

.home-social__link--instagram .home-social__icon {
  background:rgba(255,255,255,0.24);
  color:#fff;
}

html[data-theme="dark"] .home-panel {
  background:linear-gradient(155deg, rgba(25,24,22,0.92), rgba(37,34,32,0.88));
  border:1px solid rgba(234,215,192,0.2);
  box-shadow:0 24px 70px rgba(0,0,0,0.45);
}

html[data-theme="dark"] .home-panel__title {
  color:var(--gereni-brown);
}

html[data-theme="dark"] .home-panel__subtitle,
html[data-theme="dark"] .home-actions__description,
html[data-theme="dark"] .home-panel__eyebrow,
html[data-theme="dark"] .home-social__title {
  color:rgba(234,215,192,0.75);
}

html[data-theme="dark"] .home-actions__link {
  background:linear-gradient(160deg, rgba(33,31,29,0.95), rgba(45,42,39,0.85));
  color:var(--gereni-brown);
  border:1px solid rgba(234,215,192,0.12);
  box-shadow:0 20px 46px rgba(0,0,0,0.4);
}

html[data-theme="dark"] .home-actions__link--primary {
  background:linear-gradient(140deg, rgba(111,147,98,0.92), rgba(146,176,135,0.85));
  box-shadow:0 24px 44px rgba(0,0,0,0.45);
}

html[data-theme="dark"] .home-actions__icon {
  background:rgba(234,215,192,0.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.06), 0 12px 22px rgba(0,0,0,0.28);
}

html[data-theme="dark"] .home-actions__link--primary .home-actions__description {
  color:rgba(255,255,255,0.78);
}

html[data-theme="dark"] .wifi-card {
  background:linear-gradient(150deg, rgba(26,30,24,0.95), rgba(45,52,43,0.88));
  border:1px solid rgba(234,215,192,0.18);
  box-shadow:0 28px 60px rgba(0,0,0,0.5);
}

html[data-theme="dark"] .wifi-card__button {
  background:linear-gradient(140deg, rgba(130,161,112,0.92), rgba(90,122,74,0.82));
  border-color:rgba(130,161,112,0.5);
  color:#0f130d;
  box-shadow:0 26px 50px rgba(0,0,0,0.48);
}

html[data-theme="dark"] .wifi-card__button-icon {
  background:rgba(234,215,192,0.08);
  color:#0f130d;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08), 0 12px 22px rgba(0,0,0,0.35);
}

html[data-theme="dark"] .wifi-card__button-line {
  color:#f7f8f7;
}

html[data-theme="dark"] .wifi-card__button-line--muted {
  color:rgba(247,248,247,0.82);
}

html[data-theme="dark"] .wifi-card__instructions {
  color:rgba(234,215,192,0.78);
}

html[data-theme="dark"] .wifi-card__button--secondary {
  background:rgba(255,255,255,0.04);
  color:#fff;
  border-color:rgba(234,215,192,0.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.12), 0 20px 42px rgba(0,0,0,0.42);
}

html[data-theme="dark"] .wifi-card__button--secondary:hover,
html[data-theme="dark"] .wifi-card__button--secondary:focus-visible {
  background:rgba(255,255,255,0.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.18), 0 24px 48px rgba(0,0,0,0.45);
}

html[data-theme="dark"] .wifi-card__qr {
  background:#ffffff;
  border-color:rgba(234,215,192,0.35);
  box-shadow:0 16px 32px rgba(0,0,0,0.42);
}

html[data-theme="dark"] .home-social__link {
  background:rgba(33,31,29,0.85);
  color:var(--gereni-brown);
  border:1px solid rgba(234,215,192,0.18);
  box-shadow:0 16px 38px rgba(0,0,0,0.35);
}

html[data-theme="dark"] .home-social__link:hover,
html[data-theme="dark"] .home-social__link:focus-visible {
  background:rgba(43,39,36,0.95);
}

html[data-theme="dark"] .home-social__icon {
  background:rgba(234,215,192,0.08);
  color:var(--gereni-brown);
}

html[data-theme="dark"] .home-social__link--facebook,
html[data-theme="dark"] .home-social__link--instagram {
  border:none;
}

@media (max-width: 640px) {
  .home-panel {
    width:100%;
    padding:clamp(1.5rem, 8vw, 2.4rem);
  }

  .home-actions[data-variant="primary"] .home-actions__link {
    align-items:center;
  }

  .home-actions__icon {
    width:3rem;
    height:3rem;
  }

  .home-social__buttons {
    width:100%;
  }

  .home-social__link {
    flex:1 1 calc(50% - 0.6rem);
    justify-content:center;
    text-align:center;
  }
}

@media (max-width: 440px) {
  .home-actions[data-variant="primary"] .home-actions__link {
    flex-direction:column;
    align-items:flex-start;
  }

  .home-actions__icon {
    width:2.75rem;
    height:2.75rem;
  }

  .home-social__link {
    flex:1 1 100%;
  }
}

h1,
h2 {
  font-family:'Alegreya', 'Times New Roman', serif;
  color:var(--gereni-brown);
  letter-spacing:0.02em;
}

h1 {
  font-size:2.5rem;
  margin:0.5rem 0 0;
}

h2 {
  font-size:1.75rem;
  margin:0 0 0.75rem;
}

p {
  margin:0.25rem 0 0.75rem;
  color:var(--gereni-muted);
}

body.inicio header {
  position:relative;
  padding:2.5rem 1.5rem 1.25rem;
  background:rgba(243,232,213,0.85);
  backdrop-filter:blur(6px);
  text-align:center;
  overflow:visible;
  isolation:isolate;
  z-index:0;
}

.header-controls {
  position:absolute;
  top:1rem;
  right:1.5rem;
  z-index:3;
}

.preference-controls {
  display:flex;
  gap:0.65rem;
  align-items:stretch;
}

.preference-button {
  display:flex;
  align-items:center;
  gap:0.55rem;
  padding:0.55rem 0.9rem 0.55rem 0.65rem;
  border-radius:999px;
  border:1px solid rgba(91,58,41,0.16);
  background:rgba(255,255,255,0.92);
  color:var(--gereni-brown);
  font-size:0.82rem;
  font-weight:600;
  line-height:1.1;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(27,19,13,0.14);
  backdrop-filter:blur(8px);
  transition:transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.preference-button:hover,
.preference-button:focus-visible {
  transform:translateY(-2px);
  box-shadow:0 18px 32px rgba(27,19,13,0.22);
  outline:none;
}

.preference-button:focus-visible {
  border-color:var(--gereni-green);
  box-shadow:0 18px 32px rgba(75,106,61,0.28);
}

.preference-button__icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:2.5rem;
  height:2.5rem;
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,0.95), rgba(255,255,255,0.55));
  color:var(--gereni-green);
  transition:transform 0.3s ease, background 0.3s ease, color 0.3s ease;
}

.preference-button__icon svg {
  width:1.45rem;
  height:1.45rem;
}

.preference-button__text {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.2rem;
}

.preference-button__hint {
  font-size:0.65rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gereni-muted);
}

.preference-button__value {
  font-size:0.9rem;
  color:var(--gereni-brown);
  transition:color 0.25s ease;
}

.preference-button--theme[data-theme-state="light"] .preference-button__icon {
  transform:rotate(180deg);
  color:var(--gereni-brown);
  background:radial-gradient(circle at 30% 30%, rgba(255,248,234,0.95), rgba(255,214,162,0.55));
}

.preference-button--theme .yin-light {
  opacity:0.35;
  fill:rgba(255,255,255,0.85);
  transition:opacity 0.3s ease, fill 0.3s ease;
}

.preference-button--theme[data-theme-state="light"] .yin-light {
  opacity:0.85;
  fill:rgba(91,58,41,0.85);
}

.preference-button--theme[data-theme-state="light"] .preference-button__value {
  color:var(--gereni-green);
}

.preference-button--language .preference-button__icon {
  color:var(--gereni-brown);
  background:radial-gradient(circle at 70% 30%, rgba(255,248,234,0.96), rgba(195,221,184,0.55));
}

.preference-button--language[data-lang-state="en"] .preference-button__icon {
  color:var(--gereni-green);
  transform:translateY(-1px);
}

.preference-button--language[data-lang-state="en"] .preference-button__value {
  color:var(--gereni-green);
}

body[data-theme="dark"] .header-controls {
  right:1.25rem;
}

body[data-theme="dark"] .preference-button {
  background:rgba(33,27,23,0.88);
  border-color:rgba(234,215,192,0.12);
  color:var(--gereni-text);
  box-shadow:0 16px 32px rgba(0,0,0,0.45);
}

body[data-theme="dark"] .preference-button__hint {
  color:rgba(234,215,192,0.68);
}

body[data-theme="dark"] .preference-button__value {
  color:var(--gereni-text);
}

body[data-theme="dark"] .preference-button__icon {
  background:radial-gradient(circle at 30% 30%, rgba(91,58,41,0.45), rgba(33,27,23,0.9));
}

body[data-theme="dark"] .preference-button--theme .yin-light {
  fill:rgba(234,215,192,0.82);
}

body[data-theme="dark"] .preference-button--theme[data-theme-state="light"] .yin-light {
  fill:rgba(33,27,23,0.92);
}

body[data-theme="dark"] .preference-button--language[data-lang-state="en"] .preference-button__icon {
  background:radial-gradient(circle at 70% 30%, rgba(91,58,41,0.52), rgba(33,27,23,0.9));
}

body[data-theme="dark"] .preference-button:hover,
body[data-theme="dark"] .preference-button:focus-visible {
  background:rgba(44,35,29,0.95);
}

.menu-header__controls {
  position:absolute;
  top:1rem;
  right:1rem;
  z-index:3;
}

.menu-header__controls .preference-button {
  box-shadow:0 14px 32px rgba(91,58,41,0.2);
}

body[data-theme="dark"] .menu-header__controls .preference-button {
  box-shadow:0 20px 34px rgba(0,0,0,0.48);
}

@media (max-width: 720px) {
  .preference-controls {
    flex-direction:column;
    align-items:flex-end;
  }

  .header-controls {
    right:1rem;
    top:0.75rem;
  }

  .menu-header__controls {
    right:0.75rem;
    top:0.75rem;
  }

  .preference-controls {
    gap:0.4rem;
  }

  .preference-button {
    justify-content:center;
    padding:0.4rem;
    min-width:0;
  }

  .preference-button__icon {
    width:2.75rem;
    height:2.75rem;
  }

  .preference-button__text {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    clip-path:inset(50%);
    white-space:nowrap;
    border:0;
  }
}

.menu-header::before,
body.inicio header::before {
  content:'';
  position:absolute;
  top:-48%;
  right:max(-32%, 0px);
  bottom:44%;
  left:max(-32%, 0px);
  background:radial-gradient(circle at 50% -15%, rgba(255,248,234,0.92) 0%, rgba(255,248,234,0.48) 42%, rgba(255,248,234,0) 75%);
  pointer-events:none;
  z-index:-1;
}

.menu-header::after,
body.inicio header::after {
  content:'';
  position:absolute;
  top:-62%;
  right:max(-45%, 0px);
  bottom:40%;
  left:max(-45%, 0px);
  background:repeating-conic-gradient(from -90deg at 50% -22%, rgba(255,214,162,0.42) 0deg, rgba(255,214,162,0.42) 7deg, rgba(255,214,162,0) 14deg);
  opacity:0.7;
  pointer-events:none;
  z-index:-2;
  clip-path:ellipse(125% 70% at 50% 0%);
  mix-blend-mode:screen;
}

.menu-header {
  text-align:center;
}

.home-link {
  display:inline-block;
  margin-top:0.75rem;
  color:var(--gereni-green);
  font-weight:600;
  text-decoration:none;
  letter-spacing:0.03em;
  transition:color 0.2s ease;
}

.home-link:hover,
.home-link:focus {
  color:var(--gereni-brown);
  text-decoration:underline;
}

.logo-link {
  display:inline-block;
  margin:0 auto;
  border-radius:16px;
  transition:transform 0.2s ease;
  text-decoration:none;
}

.logo-link:focus-visible {
  outline:3px solid var(--gereni-green);
  outline-offset:6px;
  text-decoration:none;
}

.logo-link:hover {
  transform:scale(1.02);
}

.logo {
  max-width:200px;
  margin:0 auto;
  display:block;
  height:auto;
  filter:drop-shadow(0 4px 8px rgba(91,58,41,0.18));
}

.home-panel {
  isolation:isolate;
}

body.inicio section {
  margin:1.5rem auto;
  padding:1.25rem;
  max-width:900px;
  background-color:var(--gereni-card);
  border-radius:18px;
  box-shadow:var(--card-shadow);
  text-align:left;
}

.home-panel section {
  margin:0;
  padding:0;
  background:none;
  box-shadow:none;
}

.menu-page .dish {
  display:grid;
  grid-template-columns:1fr;
  row-gap:0.5rem;
  column-gap:0;
  padding:0.85rem 0;
}

.menu-page .dish--featured {
  position:relative;
  padding:clamp(1.1rem, 2vw, 1.45rem) clamp(1rem, 2.5vw, 1.6rem);
  margin:clamp(0.35rem, 1vw, 0.6rem) 0;
  border-radius:26px;
  background:linear-gradient(135deg, rgba(243,232,213,0.92), rgba(255,255,255,0.96));
  box-shadow:0 26px 56px rgba(91,58,41,0.18);
  border:1px solid rgba(91,58,41,0.2);
  row-gap:clamp(0.6rem, 1.4vw, 1rem);
}

.menu-page .dish--featured.dish--with-image {
  grid-template-columns:minmax(150px, 32%) 1fr;
  column-gap:clamp(1.1rem, 2.5vw, 1.6rem);
  align-items:stretch;
}

.menu-page .dish--with-image {
  grid-template-columns:120px 1fr;
  column-gap:1.1rem;
  align-items:start;
}

.menu-page .dish--wings {
  grid-template-columns:clamp(190px, 24vw, 260px) 1fr;
  column-gap:clamp(1.2rem, 2.8vw, 2rem);
  align-items:stretch;
}

.menu-page .dish--wings .dish-media {
  aspect-ratio:1;
}

.menu-page .dish-options {
  margin:0.75rem 0 0;
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:0.45rem;
}

.menu-page .dish-option {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:0.55rem 0.9rem;
  border-radius:14px;
  background:rgba(91,58,41,0.06);
  box-shadow:inset 0 0 0 1px rgba(91,58,41,0.08);
}

.menu-page .dish-option-label {
  display:flex;
  flex-direction:column;
  gap:0.1rem;
  font-weight:600;
}

.menu-page .dish-option-secondary {
  font-size:0.85rem;
  color:rgba(91,58,41,0.7);
  font-weight:500;
}

.menu-page .dish-option-price {
  font-weight:700;
  font-variant-numeric:tabular-nums;
}

.menu-page .menu-section .dish:first-of-type {
  padding-top:0;
}

.menu-page .menu-section .dish:last-of-type {
  padding-bottom:0;
}

.menu-page .dish-media {
  margin:0;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 14px 28px rgba(91,58,41,0.18);
  background:linear-gradient(135deg, rgba(243,232,213,0.45), rgba(91,58,41,0.18));
}

.menu-page .dish--featured .dish-media {
  border-radius:24px;
  box-shadow:0 24px 48px rgba(91,58,41,0.26);
  background:linear-gradient(135deg, rgba(255,214,162,0.32), rgba(91,58,41,0.18));
}

.menu-page .dish-media img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  cursor:zoom-in;
}

.menu-page .dish-media img:focus-visible {
  outline:3px solid var(--gereni-green);
  outline-offset:4px;
}

.menu-image-lightbox {
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(1.25rem, 4vw, 2.5rem);
  background:rgba(12,9,7,0.72);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  opacity:0;
  pointer-events:none;
  transition:opacity 0.25s ease;
  z-index:1400;
}

.menu-image-lightbox[data-active="true"] {
  opacity:1;
  pointer-events:auto;
}

.menu-image-lightbox__content {
  position:relative;
  max-width:min(92vw, 780px);
  max-height:min(92vh, 780px);
  display:flex;
  align-items:center;
  justify-content:center;
}

.menu-image-lightbox__image {
  display:block;
  max-width:100%;
  max-height:100%;
  border-radius:24px;
  box-shadow:0 34px 68px rgba(0,0,0,0.32);
}

.menu-image-lightbox__close {
  position:absolute;
  top:clamp(0.75rem, 2vw, 1.25rem);
  right:clamp(0.75rem, 2vw, 1.25rem);
  width:2.5rem;
  height:2.5rem;
  border:none;
  border-radius:999px;
  background:rgba(25,24,22,0.82);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 16px 32px rgba(0,0,0,0.3);
  transition:background 0.2s ease, transform 0.2s ease;
}

.menu-image-lightbox__close:hover,
.menu-image-lightbox__close:focus-visible {
  background:rgba(25,24,22,0.92);
  transform:scale(1.05);
}

.menu-image-lightbox__close svg {
  width:1.15rem;
  height:1.15rem;
}

body[data-theme="light"] .menu-image-lightbox__close {
  background:rgba(91,58,41,0.85);
}

body[data-theme="light"] .menu-image-lightbox__close:hover,
body[data-theme="light"] .menu-image-lightbox__close:focus-visible {
  background:rgba(91,58,41,0.95);
}

body[data-image-lightbox-open="true"] {
  overflow:hidden;
}

.menu-page .dish-featured-meta {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:0.45rem;
}

.menu-page .dish-featured-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0.35rem 0.9rem;
  border-radius:999px;
  background:var(--gereni-green);
  color:var(--gereni-card);
  font-weight:700;
  font-size:0.72rem;
  letter-spacing:0.24em;
  text-transform:uppercase;
  box-shadow:0 12px 24px rgba(75,106,61,0.32);
}

.menu-page .dish-featured-note {
  font-weight:600;
  color:var(--gereni-brown);
  font-size:0.97rem;
  line-height:1.35;
  flex:1 1 220px;
}

.menu-page .dish-featured-note--alt {
  font-weight:500;
  color:var(--gereni-muted);
  font-size:0.86rem;
  font-style:italic;
}

.menu-page .dish--featured .dish-media img {
  transform:scale(1.03);
  transform-origin:center;
}

.menu-page .dish-content {
  display:flex;
  flex-direction:column;
  gap:0.3rem;
}

.menu-page .dish--featured .dish-content {
  gap:clamp(0.45rem, 1vw, 0.85rem);
}

.menu-page .dish-header {
  display:flex;
  align-items:flex-end;
  gap:0.75rem;
  width:100%;
}

.menu-page .dish--featured .dish-header {
  align-items:baseline;
  gap:clamp(0.85rem, 2vw, 1.4rem);
}

.menu-page .dish-name {
  font-weight:700;
  color:var(--gereni-text);
  font-size:1.05rem;
  line-height:1.35;
  letter-spacing:0.01em;
}

.menu-page .dish--featured .dish-name {
  font-size:clamp(1.18rem, 2vw, 1.35rem);
  letter-spacing:0.02em;
}

.menu-page .dish-leader {
  flex:1;
  border-bottom:1px dotted rgba(91,58,41,0.35);
  margin-bottom:0.22rem;
}

.menu-page .dish--featured .dish-leader {
  border-bottom:1px dotted rgba(91,58,41,0.25);
  margin-bottom:0.3rem;
}

.menu-page .dish-price {
  font-weight:700;
  color:var(--gereni-brown);
  letter-spacing:0.08em;
  white-space:nowrap;
}

.menu-page .dish--featured .dish-price {
  font-size:clamp(1.02rem, 1.7vw, 1.1rem);
  letter-spacing:0.1em;
}

.menu-page .dish-name-alt {
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.24em;
  color:var(--gereni-muted);
}

.menu-page .dish-description {
  font-style:italic;
  font-size:0.95rem;
  color:var(--gereni-text);
  margin:0;
}

.menu-page .dish--featured .dish-description {
  font-size:clamp(1rem, 1.6vw, 1.08rem);
}

.menu-page .dish-description--alt {
  font-style:normal;
  font-size:0.82rem;
  color:var(--gereni-muted);
}

.menu-page .dish--featured .dish-description--alt {
  font-size:0.88rem;
}

.note {
  font-size:0.95rem;
  color:var(--gereni-muted);
  margin:0.5rem 0;
}

footer {
  text-align:center;
  padding:1.5rem;
  color:var(--gereni-muted);
  font-size:0.9rem;
}

.holiday-sparkle-container,
.sparkle-container {
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:18;
}

.holiday-snow {
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:2;
  mix-blend-mode:screen;
  opacity:0.8;
}

.holiday-sparkle,
.sparkle {
  position:fixed;
  width:10px;
  height:10px;
  border-radius:50%;
  pointer-events:none;
  background:conic-gradient(from 45deg, hsla(var(--sparkle-hue, 16), 82%, 65%, 0.95), hsla(var(--sparkle-hue, 16), 72%, 72%, 0.4));
  filter:drop-shadow(0 0 6px rgba(255,255,255,0.8));
  animation:sparklePop 900ms ease-out forwards;
  z-index:20;
}

@keyframes sparklePop {
  0% { transform:scale(0.6); opacity:0.9; }
  60% { transform:scale(1.4); opacity:1; }
  100% { transform:scale(0.4); opacity:0; }
}

/* Hero graphic */
.hero-graphic {
  display:flex;
  justify-content:center;
  margin:1.5rem auto 2.75rem;
  padding:0;
  max-width:640px;
}

.hero-graphic img {
  width:100%;
  max-width:520px;
  height:auto;
  display:block;
  margin:0 auto;
}

.flag-badge {
  position:absolute;
  top:clamp(0.65rem, 2.2vw, 1.35rem);
  left:clamp(0.85rem, 5vw, 3.5rem);
  width:clamp(110px, 28vw, 180px);
  aspect-ratio:16 / 10;
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(27,19,13,0.08);
  box-shadow:0 8px 18px rgba(27,19,13,0.18);
  background:var(--gereni-card);
  padding:4px;
  z-index:2;
  display:block;
  object-fit:cover;
}

/* Hide flag on narrow viewports so it doesn't obscure content */
@media (max-width: 640px) {
  .flag-badge {
    display:none;
  }
}

.social-section {
  background-color:transparent;
  border-radius:18px;
  padding:0;
  max-width:none;
  width:100%;
  text-align:center;
}

.facebook-card {
  position:relative;
  background:rgba(243,232,213,0.55);
  border-radius:18px;
  padding:1.5rem;
  border:1px solid rgba(91,58,41,0.12);
  box-shadow:var(--card-shadow);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1.25rem;
}

.facebook-card .fb-page {
  max-width:640px;
  width:100%;
  margin:0 auto;
}

.facebook-link,
.instagram-link {
  background-color:var(--gereni-green);
  color:#fff;
  padding:0.65rem 1.5rem;
  border-radius:999px;
  text-decoration:none;
  font-weight:600;
  letter-spacing:0.03em;
  transition:background-color 0.2s ease, transform 0.2s ease;
  display:inline-flex;
  align-items:center;
  gap:0.55rem;
}

.facebook-link,
.instagram-link {
  align-self:center;
}

.facebook-link:hover,
.facebook-link:focus-visible,
.instagram-link:hover,
.instagram-link:focus-visible {
  background-color:var(--gereni-brown);
  color:#fff;
  transform:translateY(-1px);
}

.social-section h2 {
  font-size:1.6rem;
  margin-bottom:0.35rem;
}

.social-section p {
  color:var(--gereni-muted);
  margin-bottom:0.75rem;
}

.social-section .fb-page {
  margin:0;
  width:100%;
}

/* Dark theme overrides */
body[data-theme="dark"] {
  background-color:var(--gereni-cream);
  color:var(--gereni-text);
}

body[data-theme="dark"] .control-dropdown__trigger {
  background-color:rgba(25,23,21,0.88);
  color:var(--gereni-text);
  box-shadow:0 14px 28px rgba(0,0,0,0.45);
}

body[data-theme="dark"] .control-dropdown.is-open .control-dropdown__trigger {
  background-color:var(--gereni-green);
  color:#0f110d;
}

body[data-theme="dark"] .control-dropdown__panel {
  background-color:rgba(19,19,18,0.95);
  box-shadow:0 30px 58px rgba(0,0,0,0.55);
}

body[data-theme="dark"] .control-section__title {
  color:rgba(234,215,192,0.75);
}

body[data-theme="dark"] .theme-toggle,
body[data-theme="dark"] .language-toggle {
  background-color:rgba(32,30,28,0.9);
  box-shadow:0 10px 24px rgba(0,0,0,0.45);
}

body[data-theme="dark"] .theme-toggle button:hover,
body[data-theme="dark"] .theme-toggle button:focus-visible,
body[data-theme="dark"] .language-toggle button:hover,
body[data-theme="dark"] .language-toggle button:focus-visible {
  background-color:rgba(234,215,192,0.22);
  color:var(--gereni-brown);
}

body[data-theme="dark"] .theme-toggle button.active,
body[data-theme="dark"] .language-toggle button.active {
  background-color:var(--gereni-brown);
  color:#0f110d;
}

body[data-theme="dark"].inicio {
  background-color:transparent;
}

body[data-theme="dark"].inicio header {
  background:rgba(37,34,32,0.86);
  color:var(--gereni-text);
  box-shadow:0 26px 54px rgba(0,0,0,0.55);
  border:1px solid rgba(234,215,192,0.24);
}

body[data-theme="dark"].inicio header::before {
  top:-42%;
  right:max(-38%, -12px);
  bottom:52%;
  left:max(-38%, -12px);
  background:radial-gradient(circle at 50% -12%, rgba(244,228,205,0.92) 0%, rgba(244,228,205,0.45) 46%, rgba(244,228,205,0) 78%);
  filter:drop-shadow(0 10px 26px rgba(0,0,0,0.35));
  opacity:1;
}

body[data-theme="dark"].inicio header::after {
  opacity:0.55;
  mix-blend-mode:screen;
  filter:blur(0.5px);
  background:repeating-conic-gradient(from -90deg at 50% -18%, rgba(146,176,135,0.45) 0deg, rgba(146,176,135,0.45) 7deg, rgba(146,176,135,0) 14deg);
}

body[data-theme="dark"].inicio .home-panel {
  background:linear-gradient(145deg, rgba(30,28,26,0.88), rgba(44,41,38,0.76));
  box-shadow:0 28px 60px rgba(0,0,0,0.5);
  border:1px solid rgba(234,215,192,0.22);
}

body[data-theme="dark"].inicio .home-promos {
  background:rgba(24,22,20,0.72);
  border:1px solid rgba(234,215,192,0.24);
  box-shadow:0 34px 74px rgba(0,0,0,0.55);
}

body[data-theme="dark"].inicio .home-promos__item {
  background:rgba(0,0,0,0.26);
  border-color:rgba(234,215,192,0.2);
  box-shadow:0 20px 48px rgba(0,0,0,0.45);
}

body[data-theme="dark"].inicio .home-actions__link {
  color:var(--gereni-text);
  background:linear-gradient(160deg, rgba(44,41,38,0.92), rgba(36,34,32,0.82));
  border:1px solid rgba(234,215,192,0.16);
  box-shadow:0 22px 48px rgba(0,0,0,0.45);
}

body[data-theme="dark"].inicio .home-actions__link::after {
  background:radial-gradient(circle at 20% 20%, rgba(234,215,192,0.32), transparent 65%);
}

body[data-theme="dark"].inicio .home-actions__link--primary {
  background:linear-gradient(140deg, rgba(130,161,112,0.92), rgba(90,122,74,0.82));
  color:#101410;
  box-shadow:0 24px 52px rgba(75,106,61,0.45);
}

body[data-theme="dark"].inicio .home-actions__link--primary::after {
  background:radial-gradient(circle at 25% 25%, rgba(255,255,255,0.45), transparent 60%);
}

body[data-theme="dark"].inicio .home-actions__link--secondary {
  background:linear-gradient(155deg, rgba(48,45,42,0.96), rgba(37,35,32,0.78));
}

body[data-theme="dark"].inicio .home-actions__link--social {
  background:linear-gradient(150deg, rgba(46,43,40,0.94), rgba(37,35,32,0.78));
}

body[data-theme="dark"].inicio .logo {
  padding:clamp(0.45rem, 1.8vw, 0.85rem);
  border-radius:clamp(18px, 5vw, 26px);
  background:radial-gradient(circle at 50% 45%, rgba(244,228,205,0.88) 0%, rgba(244,228,205,0.6) 42%, rgba(244,228,205,0.16) 74%, rgba(244,228,205,0) 88%);
  filter:drop-shadow(0 6px 22px rgba(0,0,0,0.55)) drop-shadow(0 0 12px rgba(255,252,245,0.38));
  box-shadow:0 12px 28px rgba(0,0,0,0.45);
}

body[data-theme="dark"].inicio .facebook-card,
body[data-theme="dark"].inicio section {
  border:1px solid rgba(234,215,192,0.18);
  background:rgba(19,19,18,0.85);
  box-shadow:var(--card-shadow);
}

body[data-theme="dark"].inicio .home-link {
  color:var(--gereni-text);
  text-shadow:0 1px 3px rgba(0,0,0,0.45);
}

body[data-theme="dark"].inicio .home-link:hover,
body[data-theme="dark"].inicio .home-link:focus {
  color:var(--gereni-brown);
}

body[data-theme="dark"].menu-page {
  background-image:none;
  padding:clamp(1.5rem, 5vw, 3.25rem);
}

body[data-theme="dark"].menu-page .menu-surface {
  background:var(--gereni-card);
  box-shadow:0 26px 62px rgba(0,0,0,0.5);
  border:1px solid rgba(234,215,192,0.16);
}

body[data-theme="dark"].menu-page .menu-surface::before {
  background:rgba(146,176,135,0.25);
}

body[data-theme="dark"].menu-page .menu-surface::after {
  background:rgba(234,215,192,0.18);
}

body[data-theme="dark"].menu-page .dish-option {
  background:rgba(234,215,192,0.08);
  box-shadow:inset 0 0 0 1px rgba(234,215,192,0.16);
}

body[data-theme="dark"].menu-page .dish-option-secondary {
  color:rgba(234,215,192,0.75);
}

body[data-theme="dark"].menu-page .menu-header__location,
body[data-theme="dark"].menu-page .menu-qr__description,
body[data-theme="dark"].menu-page .menu-footer__legal,
body[data-theme="dark"].menu-page .menu-footer .note {
  color:var(--gereni-muted);
}

body[data-theme="dark"].menu-page .menu-header__tagline {
  color:var(--gereni-brown);
  text-shadow:0 0 10px rgba(234,215,192,0.32);
}

body[data-theme="dark"].menu-page .home-link {
  color:#121110;
}

body[data-theme="dark"].menu-page .menu-qr {
  background-color:rgba(32,30,28,0.85);
  border-color:var(--gereni-line);
}

body[data-theme="dark"].menu-page .dish-leader {
  border-bottom:1px dotted var(--gereni-line);
}

body[data-theme="dark"].menu-page .dish-description {
  color:var(--gereni-text);
}

body[data-theme="dark"].menu-page .dish-description--alt {
  color:rgba(234,215,192,0.72);
}

body[data-theme="dark"].menu-page .dish--featured {
  background:linear-gradient(135deg, rgba(33,31,29,0.92), rgba(73,52,39,0.82));
  border-color:rgba(234,215,192,0.24);
  box-shadow:0 28px 60px rgba(0,0,0,0.5);
}

body[data-theme="dark"].menu-page .dish--featured .dish-media {
  box-shadow:0 24px 48px rgba(0,0,0,0.6);
  background:linear-gradient(135deg, rgba(146,176,135,0.32), rgba(33,31,29,0.88));
}

body[data-theme="dark"].menu-page .dish-media {
  box-shadow:0 18px 32px rgba(0,0,0,0.45);
  background:linear-gradient(135deg, rgba(146,176,135,0.28), rgba(34,32,30,0.82));
}

body[data-theme="dark"].menu-page .dish-featured-badge {
  background:rgba(146,176,135,0.28);
  color:var(--gereni-card);
  border:1px solid rgba(234,215,192,0.24);
  box-shadow:0 14px 28px rgba(146,176,135,0.4);
}

body[data-theme="dark"].menu-page .dish-featured-note {
  color:var(--gereni-cream);
}

body[data-theme="dark"].menu-page .dish-featured-note--alt {
  color:rgba(234,215,192,0.7);
}

body[data-theme="dark"] footer {
  border-top:1px solid rgba(234,215,192,0.18);
}

body.menu-page {
  background-color:var(--gereni-cream);
  background-image:radial-gradient(circle at 12% 18%, rgba(91,58,41,0.08) 0, rgba(91,58,41,0.08) 22%, transparent 22%), radial-gradient(circle at 88% 12%, rgba(75,106,61,0.1) 0, rgba(75,106,61,0.1) 18%, transparent 18%);
  background-repeat:no-repeat;
  background-size:240px 240px, 200px 200px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:center;
  padding:clamp(1.75rem, 5vw, 3.5rem);
  min-height:100vh;
  width:100%;
  box-sizing:border-box;
  gap:clamp(1rem, 2vw, 1.5rem);
}

body.menu-page > header,
body.menu-page > main,
body.menu-page > footer {
  width:100%;
  max-width:1080px;
}

body.menu-page > header {
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
}

body.menu-page > main {
  flex:1 0 auto;
}

body.menu-page > footer {
  margin-top:auto;
}

@supports (min-height: 100dvh) {
  body.menu-page {
    min-height: 100dvh;
  }
}

.pdf-document {
  display:none;
  flex-direction:column;
  gap:clamp(1.2rem, 3vw, 1.75rem);
  width:100%;
}

body.pdf-mode > header {
  display:none;
}

body.pdf-mode .menu-container,
body.pdf-mode .menu-columns {
  display:none;
}

body.pdf-mode .pdf-document {
  display:flex;
}

.pdf-page {
  width:var(--pdf-page-width, 8.5in);
  min-height:var(--pdf-page-height, 10.75in);
  padding:clamp(0.85in, 4vw, 1in) clamp(0.6in, 3vw, 0.85in);
  box-sizing:border-box;
  border-radius:28px;
  background:var(--gereni-card);
  box-shadow:0 18px 40px rgba(91,58,41,0.18);
  display:flex;
  flex-direction:column;
  gap:clamp(0.9rem, 2vw, 1.35rem);
  position:relative;
  page-break-after:always;
  overflow:hidden;
}

.pdf-page:last-of-type {
  page-break-after:auto;
}

.pdf-page__header {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(0.35rem, 1.2vw, 0.65rem);
  text-align:center;
  padding-bottom:clamp(0.45rem, 1.5vw, 0.85rem);
  margin-bottom:clamp(0.55rem, 1.8vw, 1.1rem);
  border-bottom:1px solid rgba(91,58,41,0.16);
  color:var(--gereni-brown);
  pointer-events:none;
}

.pdf-page__header .logo {
  width:min(100%, 3.9in);
  height:auto;
  filter:drop-shadow(0 12px 28px rgba(91,58,41,0.18));
}

.pdf-page__header .preference-controls,
.pdf-page__header .preference-button,
.pdf-page__header .flag-badge {
  display:none !important;
}

.pdf-page__header h1,
.pdf-page__header p {
  margin:0;
  color:inherit;
}

.pdf-page__content {
  display:flex;
  flex-direction:column;
  gap:clamp(0.75rem, 1.8vw, 1.2rem);
  flex:1 1 auto;
}

.pdf-page__content .menu-section {
  margin:0;
  padding:0;
  box-shadow:none;
  border:none;
  break-inside:avoid;
  page-break-inside:avoid;
}

.pdf-page__content .menu-section:not(:first-child) {
  border-top:1px solid rgba(91,58,41,0.12);
  padding-top:clamp(0.55rem, 1.4vw, 1rem);
}

.pdf-page__content .menu-section[data-pdf-continued] {
  border-top:1px dashed rgba(91,58,41,0.18);
  padding-top:clamp(0.35rem, 1vw, 0.65rem);
}

.pdf-page__content .menu-section[data-pdf-continued] .menu-section__toggle {
  padding-bottom:0.5rem;
}

.pdf-page__content .pdf-section-continued-label {
  font-size:0.72rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gereni-muted);
  margin:0 0 0.3rem;
}

.pdf-page .menu-section__toggle {
  border-bottom:1px solid rgba(91,58,41,0.18);
  cursor:default;
  padding:0 0 0.65rem;
  gap:0.3rem;
  pointer-events:none;
}

.pdf-page .menu-section__chevron {
  display:none;
}

.pdf-page .menu-section__content {
  display:flex !important;
}

.pdf-highlight {
  margin-top:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.65rem;
  padding-top:0.5rem;
}

.pdf-highlight__title {
  font-size:0.95rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--gereni-muted);
  margin:0;
}

.pdf-highlight__images {
  display:flex;
  justify-content:center;
  gap:clamp(0.6rem, 1.8vw, 1rem);
  width:100%;
}

.pdf-highlight__figure {
  flex:1 1 0;
  max-width:2.4in;
  aspect-ratio:4 / 3;
  border-radius:18px;
  overflow:hidden;
  background:rgba(243,232,213,0.45);
  box-shadow:0 14px 32px rgba(91,58,41,0.22);
}

.pdf-highlight__image {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.menu-surface {
  position:relative;
  width:100%;
  max-width:1080px;
  background:var(--gereni-card);
  border-radius:36px;
  padding:clamp(2rem, 4vw, 3.25rem) clamp(1.5rem, 3.5vw, 3.25rem) clamp(2.5rem, 5vw, 3.75rem);
  box-shadow:var(--card-shadow);
  overflow:hidden;
  isolation:isolate;
}

.menu-surface::before,
.menu-surface::after {
  content:'';
  position:absolute;
  border-radius:50%;
  z-index:0;
  pointer-events:none;
}

.menu-surface::before {
  width:360px;
  height:360px;
  top:-180px;
  right:-140px;
  background:rgba(75,106,61,0.12);
}

.menu-surface::after {
  width:420px;
  height:420px;
  bottom:-210px;
  left:-180px;
  background:rgba(91,58,41,0.08);
}

.menu-surface > * {
  position:relative;
  z-index:1;
}

.menu-header {
  position:relative;
  padding:0 0 clamp(2.5rem, 5vw, 3.25rem);
  text-align:center;
}

.menu-header__inner {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.35rem;
  padding-top:clamp(0.75rem, 2vw, 1.5rem);
}

.menu-header__logo {
  width:clamp(120px, 18vw, 180px);
  filter:drop-shadow(0 12px 24px rgba(91,58,41,0.22));
}

.menu-header__tagline {
  margin:0;
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.28em;
  color:var(--gereni-brown);
  text-shadow:0 2px 6px rgba(243,232,213,0.26);
}

.menu-header h1 {
  font-size:clamp(2.75rem, 6vw, 3.5rem);
  margin:0.85rem 0 0.45rem;
  text-transform:uppercase;
  letter-spacing:0.1em;
  color:var(--gereni-brown);
}

.menu-header__location {
  margin:0;
  font-size:0.9rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--gereni-muted);
}

.menu-page .home-link {
  position:absolute;
  top:clamp(0.5rem, 2.5vw, 1.5rem);
  left:clamp(0.5rem, 2.5vw, 1.5rem);
  margin:0;
  padding:0.45rem 1rem;
  background:linear-gradient(135deg, rgba(243,232,213,0.92), rgba(232,216,190,0.78));
  border-radius:999px;
  font-size:0.82rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.22em;
  color:#1C1A18;
  text-decoration:none;
  box-shadow:0 14px 28px rgba(91,58,41,0.22);
  border:1px solid rgba(91,58,41,0.18);
}

.menu-page .home-link:hover,
.menu-page .home-link:focus {
  color:var(--gereni-green);
  box-shadow:0 18px 32px rgba(91,58,41,0.28);
}

.menu-main {
  margin-top:clamp(0.5rem, 2vw, 1.5rem);
}

.menu-tools {
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  margin:0 auto clamp(1.25rem, 3vw, 2.25rem);
  padding:0 clamp(0.75rem, 3vw, 1.75rem);
  max-width:min(720px, 100%);
}


.menu-scroll-helper {
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:120;
}

.menu-scroll-helper__button {
  position:absolute;
  right:clamp(0.85rem, 3vw, 2rem);
  width:clamp(2.75rem, 5vw, 3.2rem);
  height:clamp(2.75rem, 5vw, 3.2rem);
  border-radius:999px;
  border:1px solid rgba(91,58,41,0.18);
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(243,232,213,0.88);
  color:var(--gereni-brown);
  cursor:pointer;
  box-shadow:0 16px 32px rgba(91,58,41,0.22);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  transition:background-color 0.2s ease, color 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
  pointer-events:auto;
}

:root[data-theme="dark"] .menu-scroll-helper__button {
  background:rgba(25,24,22,0.82);
  border-color:rgba(234,215,192,0.18);
  color:var(--gereni-cream);
  box-shadow:0 18px 40px rgba(0,0,0,0.45);
}

.menu-scroll-helper__button--up {
  top:clamp(1.1rem, 6vw, 2.25rem);
}

.menu-scroll-helper__button--down {
  bottom:clamp(1.1rem, 6vw, 2.25rem);
}

.menu-scroll-helper__button svg {
  width:1.35rem;
  height:1.35rem;
}

.menu-scroll-helper__button:hover,
.menu-scroll-helper__button:focus-visible {
  background:rgba(91,58,41,0.22);
  color:var(--gereni-green);
  outline:none;
  transform:translateY(-1px);
}

.menu-scroll-helper__button:disabled {
  opacity:0.38;
  cursor:default;
  transform:none;
}

@media (max-width: 520px) {
  .menu-scroll-helper__button {
    right:clamp(0.65rem, 4vw, 1.5rem);
    width:2.5rem;
    height:2.5rem;
    box-shadow:0 12px 24px rgba(91,58,41,0.25);
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu-scroll-helper__button {
    transition:none;
  }
}

@media print {
  .menu-scroll-helper {
    display:none !important;
  }
}

.menu-search__label {
  font-size:0.82rem;
  letter-spacing:0.28em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--gereni-muted);
}

.menu-search__control {
  display:flex;
  align-items:center;
  gap:0.5rem;
  border-radius:999px;
  background-color:var(--gereni-card);
  border:1px solid var(--gereni-line);
  padding:0.45rem 0.65rem 0.45rem 0.95rem;
  box-shadow:var(--card-shadow);
  transition:border-color 0.2s ease, box-shadow 0.2s ease;
}

.menu-search__control:hover {
  border-color:var(--gereni-green);
}

:root[data-theme="dark"] .menu-search__control {
  background-color:rgba(25,24,22,0.88);
  border-color:rgba(234,215,192,0.24);
  box-shadow:0 20px 40px rgba(0,0,0,0.45);
}

.menu-search__control:focus-within {
  border-color:var(--gereni-green);
  box-shadow:0 0 0 3px rgba(75,106,61,0.18);
}

.menu-search__control input {
  flex:1;
  border:none;
  background:transparent;
  font-size:1rem;
  color:var(--gereni-text);
  padding:0.35rem 0.4rem;
}

.menu-search__control input:focus {
  outline:none;
}

.menu-search__control input::placeholder {
  color:var(--gereni-muted);
  opacity:0.85;
}

.menu-search__clear {
  border:none;
  background:transparent;
  color:var(--gereni-muted);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.25rem;
  height:2.25rem;
  border-radius:999px;
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
  transition:background-color 0.2s ease, color 0.2s ease;
  padding:0;
}

.menu-search__clear:hover,
.menu-search__clear:focus-visible {
  background-color:rgba(75,106,61,0.18);
  color:var(--gereni-brown);
  outline:none;
}

.menu-search__hint {
  margin:0;
  font-size:0.9rem;
  color:var(--gereni-muted);
}

.menu-empty {
  max-width:min(720px, 100%);
  margin:0 auto clamp(1rem, 2.5vw, 2rem);
  padding:0.85rem 1.1rem;
  text-align:center;
  color:var(--gereni-brown);
  font-weight:600;
  border:1px solid var(--gereni-line);
  border-radius:18px;
  background-color:rgba(243,232,213,0.55);
  box-shadow:var(--card-shadow);
}

:root[data-theme="dark"] .menu-empty {
  background-color:rgba(25,24,22,0.82);
}

.menu-columns {
  display:grid;
  gap:clamp(1.75rem, 3vw, 3rem);
  grid-template-columns:1fr;
  margin-top:clamp(1.5rem, 3vw, 2.75rem);
}

.menu-column {
  display:flex;
  flex-direction:column;
  gap:clamp(1.75rem, 2.5vw, 2.5rem);
}

.menu-section {
  display:flex;
  flex-direction:column;
  gap:clamp(0.9rem, 1.4vw, 1.25rem);
  padding-bottom:clamp(1.5rem, 2.2vw, 2rem);
  border-bottom:1px solid var(--gereni-line);
  break-inside:avoid;
  page-break-inside:avoid;
}

.menu-column .menu-section:last-of-type {
  border-bottom:none;
  padding-bottom:0;
}

.menu-section__title {
  margin:0;
}

.menu-section__toggle {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(0.75rem, 1.4vw, 1.15rem);
  padding:0 0 0.85rem;
  background:none;
  border:none;
  border-bottom:2px solid rgba(91,58,41,0.16);
  cursor:pointer;
  text-align:left;
  color:inherit;
  font:inherit;
  transition:border-color 0.2s ease;
}

.menu-section__toggle:hover {
  border-bottom-color:rgba(91,58,41,0.28);
}

.menu-section__toggle:focus-visible {
  outline:2px solid var(--gereni-green);
  outline-offset:4px;
}

.menu-section__label {
  display:flex;
  flex-direction:column;
  gap:0.3rem;
}

.menu-section__title-primary {
  font-family:'Alegreya', 'Times New Roman', serif;
  font-size:clamp(1.65rem, 3.3vw, 2.1rem);
  font-weight:700;
  letter-spacing:0.04em;
  color:var(--gereni-brown);
}

.menu-section__title-secondary {
  font-family:'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.28em;
  color:var(--gereni-muted);
}

.menu-section__chevron {
  flex-shrink:0;
  display:grid;
  place-items:center;
  width:2rem;
  height:2rem;
  border-radius:50%;
  background:rgba(91,58,41,0.12);
  color:var(--gereni-brown);
  transition:background 0.2s ease;
}

.menu-section__chevron svg {
  width:1rem;
  height:1rem;
  transition:transform 0.2s ease;
}

.menu-section__toggle:hover .menu-section__chevron {
  background:rgba(91,58,41,0.18);
}

.menu-section__content {
  display:flex;
  flex-direction:column;
  gap:clamp(0.9rem, 1.4vw, 1.25rem);
}

.menu-section[data-collapsed="true"] .menu-section__content {
  display:none;
}

.menu-section[data-collapsed="true"] .menu-section__chevron svg {
  transform:rotate(-90deg);
}

@media (prefers-reduced-motion: reduce) {
  .menu-section__toggle,
  .menu-section__chevron svg {
    transition:none;
  }
}

.menu-footer {
  margin-top:clamp(2rem, 4vw, 3rem);
  display:flex;
  flex-direction:column;
  gap:clamp(1rem, 2vw, 1.5rem);
  align-items:center;
  text-align:center;
}

.menu-qr {
  display:flex;
  align-items:center;
  gap:clamp(1rem, 2.5vw, 1.75rem);
  padding:1.1rem 1.5rem;
  border:1px solid var(--gereni-line);
  border-radius:24px;
  background-color:rgba(243,232,213,0.6);
  max-width:420px;
  width:100%;
  justify-content:center;
}

.menu-qr__image {
  width:clamp(90px, 13vw, 120px);
  height:auto;
}

.menu-qr__text {
  text-align:left;
  max-width:220px;
}

.menu-qr__title {
  margin:0;
  text-transform:uppercase;
  letter-spacing:0.24em;
  font-size:0.78rem;
  font-weight:700;
  color:var(--gereni-brown);
}

.menu-qr__description {
  margin:0.4rem 0 0;
  font-size:0.95rem;
  color:var(--gereni-muted);
}

.menu-footer .note {
  margin:0;
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.24em;
  color:var(--gereni-muted);
}

.menu-footer__legal {
  margin:0;
  font-size:0.85rem;
  color:var(--gereni-muted);
  letter-spacing:0.08em;
  text-transform:uppercase;
}

@media (max-width:600px) {
  body.inicio header {
    padding:1.5rem 1rem 0.75rem;
  }

  body.inicio .header-controls {
    top:0.75rem;
    right:1rem;
  }

  body.inicio h1 {
    font-size:2rem;
  }

  body.inicio section {
    border-radius:14px;
    padding:1.25rem;
    margin:1rem;
  }

  body.inicio .facebook-card {
    padding:1rem;
  }
}

@media (min-width: 960px) {
  .menu-columns {
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:clamp(2.5rem, 4vw, 3.5rem);
  }

  .menu-qr {
    align-self:flex-end;
    justify-content:flex-end;
  }
}

@media (min-width: 720px) {
  .menu-toolbar {
    flex-direction:row;
    align-items:flex-end;
    justify-content:space-between;
    gap:clamp(1rem, 2.5vw, 2rem);
  }

  .menu-search {
    flex-direction:row;
    align-items:center;
    gap:0.75rem;
  }

  .menu-search__label {
    font-size:0.9rem;
  }

  .menu-search__status {
    text-align:right;
  }
}

@media (max-width: 680px) {
  .menu-surface {
    border-radius:28px;
  }

  .menu-tools {
    padding:0 1rem;
    margin-bottom:clamp(1rem, 5vw, 1.5rem);
  }

  .menu-search__hint {
    font-size:0.82rem;
  }

  .menu-empty {
    margin:0.75rem 1rem 1.5rem;
    padding:0.75rem 0.85rem;
  }

  .menu-qr {
    flex-direction:column;
    text-align:center;
  }

  .menu-qr__text {
    text-align:center;
  }

  .menu-page .home-link {
    position:static;
    align-self:flex-start;
    margin-bottom:1rem;
  }

  .menu-header__controls {
    position:static;
    justify-content:flex-end;
    margin-bottom:1rem;
  }

  .menu-page .dish--with-image {
    grid-template-columns:1fr;
  }

  .menu-page .dish--wings {
    grid-template-columns:1fr;
  }

  .menu-page .dish-media {
    max-width:220px;
    justify-self:center;
  }

  .menu-page .dish-option {
    align-items:flex-start;
  }
}
