/* ════════════════════════════════════════════════════════════
   GRUPO OCEAN PACIFIC'S / VIKINGOS — Cartas digitales
   Temas: body.theme-op (crema+oro+azul océano)
          body.theme-vik (roca+pergamino+cobre+rojo rúnico)
   ════════════════════════════════════════════════════════════ */

:root{
  --serif:"Source Serif 4", Georgia, serif;
  --sans:"Jost", "Avenir Next", sans-serif;
  --display:var(--sans);
  --page-w:min(720px, 94vw);
}

/* ——— TEMA OCEAN PACIFIC'S (paleta del PDF) ——— */
body.theme-op{
  --bg-deep:#081E38;            /* océano profundo */
  --bg-grad:radial-gradient(120% 90% at 50% 0%, #14406F 0%, #0B2747 38%, #081E38 100%);
  --accent:#B5952B;             /* oro títulos */
  --accent-bright:#C8A435;
  --accent-soft:#D8BC5F;
  --c-name:#1B66B0;             /* azul platos */
  --c-price:#B5952B;
  --panel:#F7F4EC;              /* crema */
  --panel-grad:linear-gradient(180deg, #F7F4EC 0%, #F4F0E6 100%);
  --panel-frame:transparent;
  --ink:#3D4654; --ink-soft:#5A6373; --ink-italic:#2E3744;
  --particle-a:rgba(255,255,255,.55); --particle-b:rgba(255,255,255,.04);
  --on-dark:#F4EFE2; --on-dark-soft:rgba(238,240,245,.65);
  --wave-fill:#F7F4EC;
  --f-title:var(--sans); --title-weight:600; --title-spacing:.34em;
  --f-name:var(--serif); --name-transform:none; --name-variant:normal;
}

/* ——— TEMA VIKINGOS (roca, pergamino, cobre, rojo) ——— */
body.theme-vik{
  --bg-deep:#0C0B09;            /* roca volcánica */
  --bg-grad:radial-gradient(130% 100% at 50% 0%, #232019 0%, #14120E 45%, #0C0B09 100%);
  --accent:#B3372A;             /* rojo rúnico títulos */
  --accent-bright:#C87B4A;      /* cobre */
  --accent-soft:#D9A05E;
  --c-name:#3E4A5E;             /* tinta azulada de los platos */
  --c-price:#2F3A4C;
  --panel:#E9D9B8;              /* pergamino */
  --panel-grad:linear-gradient(165deg, #EDDfC2 0%, #E6D4AE 55%, #E0CBA0 100%);
  --panel-frame:#B3372A;
  --ink:#4A4438; --ink-soft:#6B6252; --ink-italic:#41506B;
  --particle-a:rgba(217,160,94,.85); --particle-b:rgba(200,123,74,.06);
  --on-dark:#E8D5B0; --on-dark-soft:rgba(232,213,176,.6);
  --wave-fill:#E9D9B8;
  --f-title:"Metamorphous", var(--serif); --title-weight:400; --title-spacing:.12em;
  --f-name:"Cinzel", var(--serif); --name-transform:none; --name-variant:normal;
  --serif:"Alegreya", Georgia, serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }
[hidden]{ display:none !important; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--serif);
  background:var(--bg-deep, #081E38);
  color:var(--ink, #3D4654);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.001s !important; transition-duration:.001s !important; }
}

/* ════════ FONDO ATMOSFÉRICO ════════ */
.ocean-bg{ position:fixed; inset:0; z-index:-2; background:var(--bg-grad); }
.ocean-layer{ position:absolute; inset:-60% -30%; opacity:.35; background-repeat:repeat;
  background-image:radial-gradient(ellipse 280px 90px at 20% 30%, rgba(255,255,255,.045) 0%, transparent 60%),
                   radial-gradient(ellipse 220px 70px at 70% 60%, rgba(255,255,255,.035) 0%, transparent 60%),
                   radial-gradient(ellipse 340px 110px at 45% 85%, rgba(0,0,0,.28) 0%, transparent 60%),
                   radial-gradient(ellipse 260px 80px at 85% 15%, rgba(0,0,0,.22) 0%, transparent 60%);
  background-size:620px 420px; }
.ocean-layer--1{ animation:drift 46s linear infinite; }
.ocean-layer--2{ background-size:480px 330px; opacity:.25; animation:drift 64s linear infinite reverse; }
@keyframes drift{ from{ transform:translate3d(0,0,0);} to{ transform:translate3d(620px,420px,0);} }
.caustics{ position:absolute; inset:0; mix-blend-mode:screen; opacity:.10;
  background-image:radial-gradient(ellipse 160px 60px at 30% 20%, rgba(200,164,53,.5) 0%, transparent 70%),
                   radial-gradient(ellipse 200px 80px at 75% 70%, rgba(120,180,255,.45) 0%, transparent 70%);
  background-size:900px 700px; animation:causticsPulse 11s ease-in-out infinite alternate; }
body.theme-vik .caustics{
  background-image:radial-gradient(ellipse 200px 70px at 30% 25%, rgba(200,123,74,.55) 0%, transparent 70%),
                   radial-gradient(ellipse 240px 90px at 72% 70%, rgba(179,55,42,.35) 0%, transparent 70%); }
@keyframes causticsPulse{ from{ opacity:.06; transform:scale(1);} to{ opacity:.14; transform:scale(1.06);} }
/* veta de roca para VIK */
body.theme-vik .ocean-layer{ opacity:.5;
  background-image:radial-gradient(ellipse 200px 60px at 25% 30%, rgba(0,0,0,.5) 0%, transparent 65%),
                   radial-gradient(ellipse 160px 260px at 70% 60%, rgba(0,0,0,.4) 0%, transparent 60%),
                   radial-gradient(ellipse 280px 90px at 45% 85%, rgba(255,235,200,.03) 0%, transparent 60%),
                   radial-gradient(ellipse 120px 200px at 88% 20%, rgba(0,0,0,.45) 0%, transparent 60%); }

/* ════════ PARTÍCULAS (burbujas OP / brasas VIK) ════════ */
.bubble-rail{ position:fixed; top:0; bottom:0; width:64px; z-index:-1; pointer-events:none; }
.bubble-rail--left{ left:0; } .bubble-rail--right{ right:0; }
.bubble{ position:absolute; bottom:-30px; border-radius:50%;
  background:radial-gradient(circle at 32% 30%, var(--particle-a) 0%, rgba(255,255,255,.12) 45%, var(--particle-b) 100%);
  box-shadow:inset 0 0 4px rgba(255,255,255,.25);
  animation:bubbleRise linear infinite; }
body.theme-vik .bubble{ box-shadow:0 0 6px rgba(217,160,94,.55); }
@keyframes bubbleRise{
  0%{ transform:translate3d(0,0,0) scale(.6); opacity:0; }
  8%{ opacity:.85; }
  50%{ transform:translate3d(var(--sway,8px),-52vh,0) scale(.95); }
  100%{ transform:translate3d(calc(var(--sway,8px) * -1),-108vh,0) scale(1.1); opacity:0; }
}

/* ════════ PORTADA ════════ */
.cover{ position:relative; min-height:100svh; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center; padding:44px 24px 120px;
  color:#fff; overflow:hidden; }

.cover__fauna{ position:absolute; inset:0; pointer-events:none; }
.fauna{ position:absolute; animation:swim 26s linear infinite; }
.fauna svg{ width:100%; height:auto; display:block; }
/* fauna con ilustraciones grabadas (OP) */
.fauna--img{ opacity:var(--fop,.2); }
.fauna--img img{ width:100%; height:auto; display:block;
  animation:undulate 5.5s ease-in-out infinite; }
@keyframes undulate{ 0%,100%{ transform:rotate(-2.2deg) translateY(0);}
  50%{ transform:rotate(2.2deg) translateY(-5px);} }
@keyframes swim{
  0%{ transform:translateX(-14vw) scaleX(-1) translateY(0); }
  25%{ transform:translateX(28vw) scaleX(-1) translateY(-12px); }
  50%{ transform:translateX(64vw) scaleX(-1) translateY(8px); }
  75%{ transform:translateX(90vw) scaleX(-1) translateY(-8px); }
  100%{ transform:translateX(114vw) scaleX(-1) translateY(0); }
}
@keyframes sail{
  0%{ transform:translateX(-24vw) translateY(0) rotate(-1.5deg); }
  50%{ transform:translateX(45vw) translateY(-8px) rotate(1.5deg); }
  100%{ transform:translateX(116vw) translateY(0) rotate(-1.5deg); }
}
.fauna--sail{ animation-name:sail; }

.cover__emblem{ position:relative; width:min(280px,72vw); aspect-ratio:1; margin-bottom:26px;
  filter:drop-shadow(0 10px 36px rgba(0,0,0,.45)); animation:emblemIn 1.6s cubic-bezier(.2,.8,.2,1) both; }
@keyframes emblemIn{ from{ opacity:0; transform:translateY(26px) scale(.92);} to{ opacity:1; transform:none;} }
.emblem-svg{ display:block; width:100%; height:100%; }
.emblem-wheel{ color:var(--accent-bright); }
.emblem-svg text{ fill:#fff; font-family:var(--sans); }
.emblem-text__main{ font-size:23px; font-weight:600; letter-spacing:.16em; }
.emblem-text__sub{ font-size:12.5px; font-weight:500; letter-spacing:.3em; }
.emblem-text__sub textPath{ fill:#E8DFC8; }
@keyframes wheelTurn{ to{ transform:rotate(360deg);} }

/* monograma Vikingos */
.cover__emblem--vik{ aspect-ratio:auto; display:flex; flex-direction:column; align-items:center; }
.vik-mono{ display:flex; flex-direction:column; align-items:center; }
.vik-mono__v{ font-family:"Metamorphous", serif; font-size:clamp(96px,26vw,150px); line-height:1;
  background:linear-gradient(160deg, #E4B77E 0%, #C87B4A 42%, #8A4F2C 75%, #D9A05E 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 4px 18px rgba(200,123,74,.35));
  animation:emberGlow 5s ease-in-out infinite alternate; }
@keyframes emberGlow{ from{ filter:drop-shadow(0 4px 14px rgba(200,123,74,.25));}
  to{ filter:drop-shadow(0 4px 26px rgba(217,160,94,.55));} }
.vik-mono__name{ font-family:"Metamorphous", serif; font-size:clamp(34px,9.5vw,54px);
  letter-spacing:.14em; text-indent:.14em; margin-top:4px;
  background:linear-gradient(120deg, #E4B77E 0%, #C8845A 50%, #A9683B 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent; }
.vik-mono__sub{ font-family:var(--sans); font-size:clamp(11px,2.8vw,14px); font-weight:500;
  letter-spacing:.5em; text-indent:.5em; color:#D9A05E; margin-top:8px; }
.vik-mono__runes{ margin-top:16px; font-size:clamp(14px,3.6vw,18px); letter-spacing:.4em;
  color:rgba(217,160,94,.5); }

.cover__loc{ font-family:var(--sans); font-size:13.5px; font-weight:500; letter-spacing:.3em;
  text-indent:.3em; text-transform:uppercase; color:var(--on-dark-soft); margin-bottom:10px;
  animation:fadeUp 1.4s .35s cubic-bezier(.2,.8,.2,1) both; }
.cover__title{ font-family:var(--sans); font-weight:500; letter-spacing:.45em; text-indent:.45em;
  font-size:clamp(16px,4vw,22px); text-transform:uppercase; color:var(--on-dark);
  animation:fadeUp 1.4s .45s cubic-bezier(.2,.8,.2,1) both; }
.cover__title span{ color:var(--accent-bright); }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:none;} }

/* ——— SELECTOR DE CARTAS ——— */
.menu-picker{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px;
  margin-top:26px; width:min(560px, 92vw);
  animation:fadeUp 1.4s .6s cubic-bezier(.2,.8,.2,1) both; }
.picker-card{ flex:1 1 150px; max-width:210px; cursor:pointer; text-decoration:none;
  border:1.5px solid color-mix(in srgb, var(--accent-bright) 55%, transparent);
  border-radius:10px; padding:16px 12px 14px; background:rgba(255,255,255,.045);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  transition:transform .3s cubic-bezier(.2,.8,.2,1), border-color .3s, background .3s, box-shadow .3s; }
.picker-card:hover, .picker-card:focus-visible{ transform:translateY(-3px);
  border-color:var(--accent-bright); background:rgba(255,255,255,.09);
  box-shadow:0 12px 30px -12px rgba(0,0,0,.6); }
.picker-card.is-active{ border-color:var(--accent-bright);
  background:color-mix(in srgb, var(--accent-bright) 16%, transparent); }
.picker-card__icon{ display:block; width:30px; height:30px; margin:0 auto 8px; color:var(--accent-bright); }
.picker-card__icon svg{ display:block; width:100%; height:100%; }
.picker-card__label{ display:block; font-family:var(--sans); font-weight:600; font-size:15.5px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--on-dark); }
.picker-card__en{ display:block; font-style:italic; font-size:12.5px; color:var(--on-dark-soft); margin-top:3px; }
body.theme-vik .picker-card__label{ font-family:"Cinzel", serif; letter-spacing:.1em; }

.cover__arrow{ margin-top:22px; font-size:26px; color:var(--accent-bright);
  animation:bob 2.2s ease-in-out infinite; }
@keyframes bob{ 0%,100%{ transform:translateY(0); opacity:.85;} 50%{ transform:translateY(8px); opacity:.4;} }

.cover__wave{ position:absolute; left:0; right:0; bottom:-1px; line-height:0; }
.cover__wave svg{ width:100%; height:64px; display:block; }
.wave{ fill:var(--wave-fill); }
.wave--back{ opacity:.5; animation:waveSlide 9s ease-in-out infinite alternate; }
.wave--front{ animation:waveSlide 7s ease-in-out infinite alternate-reverse; }
@keyframes waveSlide{ from{ transform:translateX(0);} to{ transform:translateX(-46px);} }
/* VIK: silueta de montaña/roca en vez de ola suave */
body.theme-vik .cover__wave svg{ height:52px; }

/* ════════ NAV PEGAJOSA ════════ */
.section-nav{ position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--bg-deep) 92%, transparent);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid color-mix(in srgb, var(--accent-bright) 30%, transparent); }
.menu-switch{ display:flex; justify-content:center; gap:6px; padding:9px 12px 0;
  flex-wrap:wrap; }
.menu-switch:empty{ display:none; }
.switch-btn{ font-family:var(--sans); font-size:12.5px; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:var(--on-dark-soft); background:transparent;
  border:1.5px solid color-mix(in srgb, var(--accent-bright) 35%, transparent);
  border-radius:999px; padding:7px 16px 6px; cursor:pointer;
  transition:all .3s cubic-bezier(.2,.8,.2,1); }
.switch-btn:hover{ color:var(--accent-soft); border-color:var(--accent-bright); }
.switch-btn.is-active{ color:var(--bg-deep);
  background:linear-gradient(120deg, var(--accent-bright), var(--accent-soft));
  border-color:transparent; }
.section-nav__track{ display:flex; gap:4px; overflow-x:auto;
  padding:8px max(14px, env(safe-area-inset-right, 0px)) 9px max(14px, env(safe-area-inset-left, 0px));
  scrollbar-width:none; -webkit-overflow-scrolling:touch; scroll-behavior:smooth; }
.section-nav__track::-webkit-scrollbar{ display:none; }
.nav-chip{ flex:0 0 auto; font-family:var(--sans); font-size:12.5px; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:#D9DEE8; text-decoration:none;
  padding:7px 14px; border-radius:999px; border:1px solid transparent;
  transition:color .3s, border-color .3s, background .3s; white-space:nowrap; }
body.theme-vik .nav-chip{ color:#CBB795; }
.nav-chip:hover{ color:var(--accent-soft); }
.nav-chip.is-active{ color:var(--accent-bright);
  border-color:color-mix(in srgb, var(--accent-bright) 55%, transparent);
  background:color-mix(in srgb, var(--accent-bright) 10%, transparent); }

/* ════════ CUERPO DEL MENÚ ════════ */
.menu{ position:relative; padding:34px 0 50px; display:flex; flex-direction:column;
  align-items:center; gap:34px; min-height:40vh; }
.menu.is-switching{ opacity:0; transform:translateY(10px); }
.menu{ transition:opacity .35s ease, transform .35s ease; }

.menu__loading{ color:#C9D2E0; text-align:center; padding:80px 20px; font-family:var(--sans);
  letter-spacing:.2em; text-transform:uppercase; font-size:13px; }
.wheel--loader{ display:inline-block; width:54px; height:54px; color:var(--accent-bright, #C8A435);
  animation:wheelTurn 3s linear infinite; margin-bottom:18px; }

/* —— panel de sección —— */
.menu-section{ width:var(--page-w); background:var(--panel-grad);
  border-radius:6px; padding:clamp(30px,6vw,56px) clamp(22px,5.4vw,58px) clamp(38px,6vw,60px);
  box-shadow:0 26px 60px -18px rgba(2,12,26,.65), 0 4px 14px rgba(2,12,26,.35);
  position:relative; overflow:hidden;
  opacity:0; transform:translateY(34px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
.menu-section.in-view{ opacity:1; transform:none; }
.menu-section::before{ content:""; position:absolute; top:14px; left:8%; right:8%;
  height:1px; background:linear-gradient(90deg, transparent, rgba(61,70,84,.35), transparent); }
.menu-section::after{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:radial-gradient(rgba(120,100,40,.05) 1px, transparent 1.4px);
  background-size:26px 26px; }
/* VIK: marco de filete rojo como la carta impresa + textura pergamino */
body.theme-vik .menu-section{ border-radius:3px;
  box-shadow:0 26px 60px -18px rgba(0,0,0,.85), 0 4px 14px rgba(0,0,0,.5); }
body.theme-vik .menu-section::before{ inset:10px; top:10px; left:10px; right:10px; height:auto;
  border:1px solid color-mix(in srgb, var(--panel-frame) 55%, transparent);
  background:none; border-radius:2px; }
body.theme-vik .menu-section::after{ opacity:.65;
  background-image:radial-gradient(rgba(120,90,40,.07) 1px, transparent 1.5px),
                   radial-gradient(ellipse 300px 200px at 15% 8%, rgba(140,100,50,.10) 0%, transparent 60%),
                   radial-gradient(ellipse 260px 220px at 88% 90%, rgba(140,100,50,.10) 0%, transparent 60%);
  background-size:22px 22px, auto, auto; }
.menu-section > *{ position:relative; z-index:1; }

/* encabezado de sección */
.menu-section__head{ text-align:center; margin-bottom:clamp(22px,4.5vw,34px); }
.menu-section__title{ font-family:var(--f-title); font-weight:var(--title-weight); color:var(--accent);
  letter-spacing:var(--title-spacing); text-indent:var(--title-spacing); text-transform:uppercase;
  font-size:clamp(19px,4.6vw,30px); line-height:1.45; }
.menu-section__subtitle{ font-family:var(--serif); font-style:italic; color:var(--accent);
  font-size:clamp(14px,3vw,18px); letter-spacing:.22em; margin-top:6px; }
.menu-section__flourish{ display:flex; align-items:center; justify-content:center; gap:12px;
  margin-top:14px; color:var(--accent-soft); }
.menu-section__flourish::before, .menu-section__flourish::after{ content:"";
  height:1px; width:min(90px,18vw); background:linear-gradient(90deg, transparent, currentColor); }
.menu-section__flourish::after{ background:linear-gradient(90deg, currentColor, transparent); }
.menu-section__flourish svg{ width:17px; height:17px; animation:bobble 5s ease-in-out infinite; }
.menu-section__flourish .runes{ font-size:15px; letter-spacing:.3em; color:var(--accent-soft);
  animation:none; }
@keyframes bobble{ 0%,100%{ transform:rotate(-7deg);} 50%{ transform:rotate(7deg);} }

.menu-sub{ font-family:var(--f-title); font-weight:var(--title-weight); color:var(--accent);
  letter-spacing:.26em; text-transform:uppercase; font-size:clamp(15px,3.4vw,20px);
  margin:26px 0 10px; }
.menu-sub em{ font-family:var(--serif); font-style:italic; text-transform:none;
  letter-spacing:.06em; font-weight:400; font-size:.86em; }

/* —— ítems —— */
.dish{ padding:13px 0 11px;
  opacity:0; transform:translateY(14px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.dish.in-view{ opacity:1; transform:none; }
.dish__row{ display:flex; align-items:baseline; gap:14px; }
.dish__name{ font-family:var(--f-name); font-weight:700; color:var(--c-name);
  font-size:clamp(16.5px,3.9vw,20px); line-height:1.3; }
body.theme-vik .dish__name{ font-weight:600; font-size:clamp(15.5px,3.7vw,19px); letter-spacing:.02em; }
.dish__name em{ font-weight:600; font-style:italic; color:var(--c-name); opacity:.92; }
.dish__dots{ flex:1; border-bottom:1.5px dotted color-mix(in srgb, var(--accent) 38%, transparent);
  transform:translateY(-4px); min-width:18px; }
.dish__price{ font-family:var(--f-name); font-weight:700; color:var(--c-price);
  font-size:clamp(15.5px,3.8vw,19px); white-space:nowrap; }
.dish__badge{ display:inline-block; font-family:var(--sans); font-size:10.5px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--panel);
  background:linear-gradient(135deg, var(--accent) 0%, var(--accent-soft) 100%);
  border-radius:3px; padding:3px 8px 2px; margin-left:10px; vertical-align:2px; }
.dish__desc{ margin-top:5px; color:var(--ink-soft); font-size:clamp(14px,3.4vw,16px);
  line-height:1.5; max-width:58ch; }
.dish__desc-en{ margin-top:4px; font-style:italic; color:var(--ink-italic);
  font-size:clamp(12.5px,3vw,13.8px); line-height:1.45; max-width:58ch; opacity:.85; }

/* precios múltiples (pesos de centolla, copa/botella) */
.weights{ margin-top:12px; display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr));
  gap:3px 26px; }
.weights--inline{ margin-top:6px; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); }
.weights__row{ display:flex; align-items:baseline; gap:8px; font-size:clamp(13.5px,3.2vw,15.5px); }
.weights__kg{ font-weight:600; color:var(--ink); white-space:nowrap; }
.weights__dots{ flex:1; border-bottom:1px dotted color-mix(in srgb, var(--accent) 35%, transparent);
  transform:translateY(-3px); }
.weights__price{ font-weight:700; color:var(--c-price); white-space:nowrap; }

.menu-section__note{ text-align:center; margin:-12px 0 20px; color:var(--ink); font-size:15px; }
.menu-section__note em{ display:block; font-size:13.5px; color:var(--ink-soft); }

/* —— NOVEDADES (OP): cuerda + brújula —— */
.rope-frame{ position:absolute; inset:10px; border-radius:4px; pointer-events:none; z-index:1;
  border:3px solid transparent;
  border-image:repeating-linear-gradient(45deg, #C7B077 0 5px, #A98F4F 5px 10px) 3; opacity:.65; }
.compass{ position:absolute; top:26px; right:26px; width:54px; height:54px; color:var(--accent);
  opacity:.6; z-index:1; animation:compassSway 7s ease-in-out infinite; }
@keyframes compassSway{ 0%,100%{ transform:rotate(-9deg);} 50%{ transform:rotate(9deg);} }
.novedades-banner{ display:inline-block; font-family:var(--sans); font-weight:600;
  background:linear-gradient(120deg, #C03A2B 0%, #A52E20 100%); color:#FBF6EA;
  letter-spacing:.3em; text-indent:.3em; text-transform:uppercase;
  padding:10px 26px 9px; font-size:clamp(16px,4vw,22px); border-radius:2px;
  box-shadow:0 6px 18px rgba(160,40,25,.35); }
.novedades-banner small{ display:block; font-size:.52em; letter-spacing:.5em; color:#F2D9A8; }

/* ════════ PIE ════════ */
.footer{ text-align:center; color:#B9C4D6; position:relative;
  padding:30px 22px calc(60px + env(safe-area-inset-bottom, 0px)); }
body.theme-vik .footer{ color:#B7A98A; }
.footer__rope{ height:3px; width:min(420px,80vw); margin:0 auto 26px;
  background:repeating-linear-gradient(45deg, #C7B077 0 5px, #8E7740 5px 10px); border-radius:2px; opacity:.5; }
body.theme-vik .footer__rope{
  background:repeating-linear-gradient(90deg, #C87B4A 0 3px, transparent 3px 9px); height:2px; opacity:.55; }

/* selector de idioma */
.lang-bar{ margin:4px auto 26px; }
.lang-bar__label{ display:block; font-family:var(--sans); font-size:11.5px; letter-spacing:.24em;
  text-transform:uppercase; opacity:.65; margin-bottom:10px; }
.lang-bar__btns{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
.lang-btn{ font-family:var(--sans); font-size:13px; font-weight:500; letter-spacing:.1em;
  color:var(--on-dark-soft); background:transparent; cursor:pointer;
  border:1.5px solid color-mix(in srgb, var(--accent-bright) 35%, transparent);
  border-radius:999px; padding:7px 15px 6px;
  transition:all .3s cubic-bezier(.2,.8,.2,1); }
.lang-btn:hover{ color:var(--accent-soft); border-color:var(--accent-bright); }
.lang-btn.is-active{ color:var(--bg-deep);
  background:linear-gradient(120deg, var(--accent-bright), var(--accent-soft));
  border-color:transparent; }
.lang-btn.is-loading{ opacity:.5; pointer-events:none; }
.lang-bar__note{ margin-top:10px; font-size:11.5px; font-style:italic; opacity:.55; }

.footer__wifi{ margin-top:6px; font-family:var(--sans); }
.footer__wifi-title{ font-size:13px; letter-spacing:.12em; text-transform:uppercase; opacity:.7; }
.footer__wifi-title span{ opacity:.6; }
.footer__wifi-pass{ margin-top:6px; font-size:15px; }
.footer__wifi-pass strong{ color:var(--accent-bright); letter-spacing:.08em; }
.footer__brand{ margin-top:26px; font-family:var(--sans); letter-spacing:.34em; text-indent:.34em;
  text-transform:uppercase; font-size:13px; color:var(--on-dark); }
body.theme-vik .footer__brand{ font-family:"Cinzel", serif; }
.footer__note{ margin-top:10px; font-size:12px; font-style:italic; opacity:.6; }

@media (max-width:560px){
  .bubble-rail{ width:34px; }
  .menu-section{ width:min(94vw, 720px); }
  .picker-card{ flex:1 1 130px; }
}
