/* =================================================================
   MUNDANO CENADOR · Landing (prototipo)
   Identidad tomada de mundanocenador.es:
   cálido crema + navy · Merriweather (titulares) + Open Sans (cuerpo)
   ================================================================= */

:root{
  /* Paleta OFICIAL de marca (mini manual): navy #033853 · dorado #BD8B60 */
  --ink:        #2c2c30;   /* texto principal */
  --ink-soft:   #6c6c73;   /* texto secundario */
  --bg:         #faf7f2;   /* fondo de página (blanco cálido) */
  --bg-soft:    #f1eadf;   /* fondo de sección alterno */
  --paper:      #ffffff;   /* tarjetas */
  --paper-2:    #f7f2ea;   /* tarjetas cálidas */
  --cream:      #f3ecdf;   /* claro sobre oscuro */

  --brown:      #BD8B60;   /* acento (dorado oficial) */
  --brown-dk:   #a5744a;
  --orange:     #BD8B60;   /* CTA (dorado) */
  --navy:       #033853;   /* primario oscuro de marca (Pantone 2955C) */
  --navy-dk:    #022638;
  --navy-2:     #0a4f6e;
  --olive:      #BD8B60;   /* acento (dorado) */
  --accent-lt:  #d4ad84;   /* dorado claro sobre oscuro */
  --gold:       #BD8B60;   /* dorado oficial (Pantone 7510C) */

  --line:       rgba(3,56,83,.14);
  --line-light: rgba(243,236,223,.22);

  /* Gradientes */
  --grad-warm:  linear-gradient(135deg, #cf9a6c 0%, #a5744a 100%);
  --grad-navy:  radial-gradient(125% 130% at 80% 0%, #0a4f6e 0%, #033853 55%, #022638 100%);

  /* Tipografía de marca: Aaux Next → sustituto geométrico cuadrado (Archivo) */
  --font-head: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* Radios cuadrados (la marca usa líneas rectas) */
  --r-sm: 2px; --r-md: 3px; --r-lg: 4px; --r-xl: 6px; --r-pill: 3px;
  --sh-sm:  0 4px 16px rgba(3,56,83,.09);
  --sh-md:  0 18px 44px -16px rgba(3,56,83,.22);
  --sh-lg:  0 40px 80px -28px rgba(2,26,40,.42);
  --sh-warm:0 14px 32px -14px rgba(189,139,96,.42);

  --container: 1180px;
  --nav-h: 76px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ----------------------------- Reset ----------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:clamp(15.5px, .35vw + 14.6px, 17px);
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{ font-family:var(--font-head); color:var(--navy); line-height:1.12; margin:0 0 .5em; font-weight:800; text-transform:uppercase; letter-spacing:.01em; }
p{ margin:0 0 1rem; }
a{ color:inherit; text-decoration:none; }
img,svg,iframe{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
::selection{ background:var(--brown); color:var(--cream); }
:focus-visible{ outline:2px solid var(--orange); outline-offset:3px; border-radius:4px; }

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(1.1rem, 4vw, 2.4rem); }
section[id], main > *[id]{ scroll-margin-top:calc(var(--nav-h) + 12px); }

.ico{ width:1.15em; height:1.15em; flex:0 0 auto; }

/* ----------------------------- Botones ----------------------------- */
.btn{
  --b-bg:var(--grad-warm); --b-fg:#fff;
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  padding:.82em 1.6em; border:0; border-radius:var(--r-pill);
  font-family:var(--font-body); font-weight:600; font-size:.95rem; letter-spacing:.01em;
  background:var(--b-bg); color:var(--b-fg);
  box-shadow:var(--sh-warm);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background-color .3s, color .3s;
  will-change:transform;
}
.btn:hover{ transform:translateY(-3px); box-shadow:0 20px 42px -14px rgba(189,139,96,.5); }
.btn--lg{ padding:1em 2em; font-size:1.02rem; }
.btn--ghost{
  background:transparent; color:var(--brown);
  border:1.6px solid var(--brown); box-shadow:none;
}
.btn--ghost:hover{ background:var(--brown); color:var(--cream); box-shadow:var(--sh-md); }

/* ----------------------------- Header / nav ----------------------------- */
.nav{
  --nav-fg:#f4efe9;
  position:fixed; top:0; left:0; right:0; z-index:60; height:var(--nav-h);
  display:flex; align-items:center;
  background:transparent;
  transition:background .4s var(--ease), box-shadow .4s var(--ease), backdrop-filter .4s;
}
.nav.is-stuck{
  background:rgba(3,56,83,.92);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  box-shadow:0 10px 30px rgba(2,26,40,.34);
}
.nav__inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }

/* Logo: imagen exacta de la marca (recoloreada en dorado) */
.brand{ display:inline-flex; align-items:center; line-height:0; }
.brand__img{ height:46px; width:auto; display:block; }

.nav__menu{ display:flex; align-items:center; gap:2rem; }
.nav__list{ display:flex; align-items:center; gap:1.6rem; }
.nav__list a{ position:relative; color:var(--nav-fg); font-weight:500; font-size:.93rem; padding:.3rem 0; transition:color .3s, opacity .3s; opacity:.92; }
.nav__list a::after{ content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0; background:var(--grad-warm); transition:width .35s var(--ease); }
.nav__list a:hover{ opacity:1; }
.nav__list a:hover::after{ width:100%; }

.nav__tools{ display:flex; align-items:center; gap:1rem; }
.langswitch{ display:inline-flex; gap:.2rem; padding:.2rem; border:1px solid color-mix(in srgb, var(--nav-fg) 35%, transparent); border-radius:var(--r-pill); }
.langswitch__btn{
  display:inline-flex; align-items:center; gap:.38em;
  background:transparent; border:0; border-radius:var(--r-pill);
  padding:.3em .7em; color:var(--nav-fg); font-size:.78rem; font-weight:600; letter-spacing:.04em;
  opacity:.7; transition:.3s var(--ease);
}
.langswitch__btn .fi{ border-radius:2px; width:1.05em; height:.78em; }
.langswitch__btn.is-active{ background:var(--grad-warm); color:#fff; opacity:1; box-shadow:var(--sh-sm); }
.nav__cta{ padding:.62em 1.25em; font-size:.9rem; }

.nav__burger{ display:none; flex-direction:column; gap:5px; width:46px; height:46px; align-items:center; justify-content:center; background:transparent; border:0; }
.nav__burger span{ width:25px; height:2.4px; border-radius:3px; background:var(--nav-fg); transition:.32s var(--ease); }
.nav__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7.4px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.4px) rotate(-45deg); }

/* ----------------------------- Hero ----------------------------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  padding-top:var(--nav-h); overflow:hidden; color:var(--cream); text-align:center;
}
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__media .ph{ width:100%; height:100%; border-radius:0; animation:kenburns 24s ease-in-out infinite alternate; }
.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(2,26,40,.48) 0%, rgba(3,56,83,.5) 45%, rgba(2,26,40,.88) 100%),
    radial-gradient(120% 80% at 50% 8%, transparent 40%, rgba(2,26,40,.55) 100%);
}
.hero__inner{ position:relative; z-index:2; max-width:1000px; margin-inline:auto; padding-block:5rem; }
.hero__title{ margin:0 auto 1.4rem; line-height:0; }
.hero__logo{ width:clamp(270px, 42vw, 470px); height:auto; display:inline-block; filter:drop-shadow(0 6px 26px rgba(0,0,0,.45)); }
.hero__subtitle{
  font-size:clamp(.9rem, 1.15vw, 1.08rem); font-weight:300; color:rgba(243,237,231,.94);
  max-width:52ch; margin:0 auto 1.6rem; padding-inline:1.2rem; line-height:1.55;
}
.hero__badges{ display:flex; flex-wrap:wrap; justify-content:center; gap:.55rem; margin-bottom:1.7rem; }
.badge{
  font-size:.8rem; font-weight:500; letter-spacing:.03em; padding:.46em 1em; border-radius:var(--r-pill);
  background:rgba(243,237,231,.1); border:1px solid rgba(243,237,231,.28); color:#f3ede7;
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
}
.hero__address{
  display:inline-flex; align-items:center; gap:.5em; margin:0 auto 2rem;
  color:var(--accent-lt); font-weight:600; font-size:.96rem; letter-spacing:.01em;
}
.hero__address .ico{ width:1.2em; height:1.2em; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.9rem; justify-content:center; }

.hero__scroll{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:2; width:26px; height:42px; border:2px solid rgba(243,237,231,.55); border-radius:14px; display:grid; place-items:start center; padding-top:7px; }
.hero__scroll span{ width:3px; height:8px; border-radius:3px; background:var(--accent-lt); animation:scrolldot 1.7s var(--ease) infinite; }
@keyframes scrolldot{ 0%{ opacity:0; transform:translateY(-3px);} 40%{opacity:1;} 80%{opacity:0; transform:translateY(10px);} 100%{opacity:0;} }
@keyframes kenburns{ from{ transform:scale(1); } to{ transform:scale(1.1); } }

/* ----------------------------- Secciones (común) ----------------------------- */
.section{ padding-block:clamp(4rem, 9vh, 7.5rem); position:relative; }
.section__title{ font-size:clamp(1.8rem, 3.4vw, 2.95rem); }
.section__body{ color:var(--ink-soft); max-width:60ch; }
.section__body--lead{ font-size:1.1rem; }
.section__head{ margin-bottom:clamp(2rem,4vw,3.2rem); }
.section__head--center{ max-width:760px; margin-inline:auto; text-align:center; }
.section__head--center .section__body{ margin-inline:auto; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  font-size:.78rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--brown); margin-bottom:1rem;
}
.eyebrow::before{ content:""; width:30px; height:2px; background:var(--grad-warm); border-radius:2px; }
.section__head--center .eyebrow{ justify-content:center; }
.eyebrow--light{ color:var(--accent-lt); }
.eyebrow--light::before{ background:var(--accent-lt); }
/* Dorado del logo solo en los bloques oscuros (chefs y reseñas) */
.section--chefs .eyebrow, .section--reviews .eyebrow{ color:var(--gold); }
.section--chefs .eyebrow::before, .section--reviews .eyebrow::before{ background:var(--gold); }

/* Secciones oscuras: titulares e textos claros */
.section--dark{ background:var(--grad-navy); color:var(--cream); }
.section--dark h2,.section--dark h3{ color:#e9e5e6; }
.section--dark .section__body{ color:rgba(243,237,231,.86); }

/* ----------------------------- El concepto ----------------------------- */
.section--concept{ background:var(--bg); }
.concept__grid{ display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.concept__media .ph{ aspect-ratio:4/5; }
.defs{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; margin:1.6rem 0 1.8rem; }
.def{ padding-left:1.1rem; border-left:3px solid var(--olive); }
.def__word{ font-size:1.5rem; color:var(--brown); margin-bottom:.2em; font-style:italic; }
.def__text{ margin:0; color:var(--ink-soft); font-size:.98rem; line-height:1.6; }

/* ----------------------------- Los chefs ----------------------------- */
.section--chefs{ background:var(--grad-navy); color:var(--cream); }
.section--chefs h2{ color:#e9e5e6; }
.section--chefs .section__body{ color:rgba(243,237,231,.88); }
.chefs__grid{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.chefs__media{ position:relative; }
.chefs__media .ph{ aspect-ratio:4/5; }
.chefs__media .ph--portrait{ --ph-bg-a:#0a4f7a; --ph-bg-b:#012e4f; }
.chefs__caption{ position:absolute; left:1rem; bottom:1rem; right:1rem; display:flex; flex-direction:column; gap:.15rem; padding:.8rem 1.1rem; background:rgba(1,30,50,.62); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border:1px solid var(--line-light); border-radius:var(--r-md); }
.chefs__caption-name{ font-family:var(--font-head); font-weight:700; color:#fbf3ea; font-size:1.02rem; }
.chefs__caption-role{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-lt); }

/* ----------------------------- La experiencia ----------------------------- */
.section--exp{ background:var(--bg); }
.exp__grid{ display:grid; grid-template-columns:1fr 1.02fr; gap:clamp(2rem,5vw,4rem); align-items:stretch; }
.exp__text .hero__actions{ margin-top:1.8rem; justify-content:flex-start; }
/* Carta (caja de la carta, a la derecha) */
.cartabox{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-md); overflow:hidden; position:relative; min-height:0; }
.cartabox__scroll{ position:absolute; inset:0; overflow-y:auto; padding:clamp(1.3rem,2.4vw,2.1rem); }
@media (max-width:1000px){ .cartabox{ height:70vh; } }
.cartabox__scroll::-webkit-scrollbar{ width:8px; }
.cartabox__scroll::-webkit-scrollbar-track{ background:transparent; }
.cartabox__scroll::-webkit-scrollbar-thumb{ background:rgba(189,139,96,.4); border-radius:8px; }
.carta-cat{ margin-bottom:1.5rem; }
.carta-cat:last-child{ margin-bottom:0; }
.carta-cat__title{ font-family:var(--font-head); font-size:.92rem; letter-spacing:.16em; text-transform:uppercase; color:var(--brown); margin:0 0 .85rem; padding-bottom:.45rem; border-bottom:1px solid var(--line); }
.carta-item{ margin-bottom:.95rem; }
.carta-item:last-child{ margin-bottom:0; }
.carta-item__row{ display:flex; align-items:baseline; gap:.5rem; }
.carta-item__name{ font-weight:700; color:var(--ink); font-size:.96rem; }
.carta-item__name em{ font-style:normal; font-weight:400; color:var(--ink-soft); font-size:.8rem; }
.carta-item__dots{ flex:1; border-bottom:1px dotted rgba(56,56,56,.32); position:relative; top:-3px; }
.carta-item__price{ font-weight:700; color:var(--brown); white-space:nowrap; }
.carta-item__desc{ margin:.18rem 0 0; color:var(--ink-soft); font-size:.83rem; line-height:1.5; }
.carta-veg{ font-style:italic; color:var(--brown-dk); }

/* ----------------------------- Platos estrella ----------------------------- */
.section--dishes{ background:var(--bg-soft); }
.dishes__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.4vw,2rem); }
.dish{ background:var(--paper); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.dish:hover{ transform:translateY(-6px); box-shadow:var(--sh-md); }
.dish .ph--square{ aspect-ratio:4/3; border-radius:0; }
.dish__body{ padding:1.3rem 1.4rem 1.5rem; }
.dish__name{ font-size:1.18rem; margin-bottom:.3em; }
.dish__text{ margin:0; color:var(--ink-soft); font-size:.95rem; line-height:1.55; }
.dish--accent{ background:var(--navy); }
.dish--accent .dish__name{ color:var(--accent-lt); }
.dish--accent .dish__text{ color:rgba(243,237,231,.84); }

/* ----------------------------- La carta ----------------------------- */
.section--menu{ background:var(--bg); }
.menu__card{
  display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center;
  background:var(--grad-navy); color:var(--cream);
  border-radius:var(--r-xl); padding:clamp(2rem,5vw,4rem); box-shadow:var(--sh-lg); overflow:hidden;
}
.menu__card h2{ color:#e9e5e6; }
.menu__card .eyebrow{ color:var(--accent-lt); }
.menu__card .eyebrow::before{ background:var(--accent-lt); }
.menu__card .section__body{ color:rgba(243,237,231,.88); }
.menu__actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.6rem; }
.menu__card .btn--ghost{ color:var(--cream); border-color:rgba(243,237,231,.5); }
.menu__card .btn--ghost:hover{ background:rgba(243,237,231,.12); color:#fff; }
.menu__visual .ph{ aspect-ratio:3/4; --ph-bg-a:#0a4f7a; --ph-bg-b:#012e4f; }

/* ----------------------------- Reseñas ----------------------------- */
.section--reviews{ background:var(--grad-navy); color:var(--cream); }
.section--reviews h2{ color:#e9e5e6; }
.reviews{ position:relative; }
.reviews__viewport{ }
.reviews__track{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; align-items:stretch; }
.review{ display:grid; }
@media (max-width:820px){ .reviews__track{ grid-template-columns:1fr; max-width:480px; margin-inline:auto; } }
.review__card{ background:rgba(243,237,231,.07); border:1px solid var(--line-light); border-radius:var(--r-lg); padding:2rem 1.8rem; height:100%; display:flex; flex-direction:column; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.review__stars{ color:var(--accent-lt); letter-spacing:.18em; font-size:1.05rem; margin-bottom:.9rem; }
.review__text{ font-family:var(--font-head); font-style:italic; font-size:1rem; color:#f3ede7; line-height:1.55; }
.review__meta{ display:flex; align-items:center; gap:.7rem; margin-top:auto; padding-top:1.4rem; }
.review__avatar{ flex:0 0 42px; width:42px; height:42px; border-radius:50%; overflow:hidden; display:grid; place-items:center; background:var(--grad-warm); color:#fff; font-family:var(--font-head); font-weight:700; }
.review__avatar img{ width:100%; height:100%; object-fit:cover; }
.review__who{ display:flex; flex-direction:column; gap:.05rem; }
.review__name{ font-weight:600; color:rgba(243,237,231,.92); font-size:.92rem; }
.review__sub{ font-size:.76rem; color:rgba(243,237,231,.58); }
.reviews__dots{ display:flex; justify-content:center; gap:.5rem; margin-top:1.6rem; }
.reviews__dots button{ width:9px; height:9px; padding:0; border:0; border-radius:50%; background:rgba(243,237,231,.3); transition:.3s; }
.reviews__dots button.is-active{ background:var(--accent-lt); transform:scale(1.25); }
.reviews__note{ text-align:center; margin:1.4rem 0 0; font-size:.84rem; color:rgba(243,237,231,.55); font-style:italic; }

/* ----------------------------- FAQ ----------------------------- */
.section--faq{ background:var(--bg); }
.faq__list{ max-width:840px; margin-inline:auto; display:grid; gap:.85rem; }
.faqitem{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; transition:box-shadow .3s, border-color .3s; }
.faqitem.is-open{ box-shadow:var(--sh-md); border-color:color-mix(in srgb, var(--brown) 40%, transparent); }
.faqitem__q{
  width:100%; text-align:left; background:transparent; border:0;
  font-family:var(--font-head); font-weight:700; font-size:1.02rem; color:var(--ink);
  padding:1.15rem 3rem 1.15rem 1.4rem; position:relative;
}
.faqitem__q::after{
  content:""; position:absolute; right:1.3rem; top:50%; width:14px; height:14px; margin-top:-7px;
  background:
    linear-gradient(var(--brown),var(--brown)) center/14px 2px no-repeat,
    linear-gradient(var(--brown),var(--brown)) center/2px 14px no-repeat;
  transition:transform .35s var(--ease);
}
.faqitem.is-open .faqitem__q{ color:var(--brown); }
.faqitem.is-open .faqitem__q::after{ transform:rotate(135deg); }
.faqitem__a{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.faqitem__a p{ margin:0; padding:0 1.4rem 1.3rem; color:var(--ink-soft); }
.faq-pending__tag{
  display:inline-block; font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--brown-dk); background:color-mix(in srgb, var(--orange) 18%, transparent);
  border:1px solid color-mix(in srgb, var(--orange) 40%, transparent);
  padding:.18em .6em; border-radius:var(--r-pill); margin-right:.2em; vertical-align:middle;
}
.faq-pending{ font-style:italic; }

/* ----------------------------- Reserva + info ----------------------------- */
.section--reserve{ background:var(--bg); }
.reserve__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.reserve__info{ display:grid; gap:.9rem; margin-top:2rem; }
.reserve__info li{ display:flex; align-items:center; gap:.8rem; color:var(--ink); font-size:.98rem; }
.reserve__info .ico{ width:1.3em; height:1.3em; color:var(--brown); }
.reserve__info a:hover{ color:var(--brown); text-decoration:underline; }
.reserve__booking{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-md); border:1px solid var(--line); background:transparent; min-height:800px; margin-top:clamp(3rem,6vw,5rem); }
.reserve__booking iframe{ width:100%; min-height:800px; border:0; }

/* ----------------------------- Footer ----------------------------- */
.footer{ background:var(--navy-dk); color:rgba(243,237,231,.72); padding-top:clamp(3rem,6vh,5rem); }
.footer__grid{ display:grid; grid-template-columns:1.5fr 1fr 1.2fr; gap:clamp(2rem,5vw,4rem); padding-bottom:3rem; }
.brand--footer{ margin-bottom:1rem; }
.brand--footer .brand__img{ height:44px; }
.footer__tagline{ max-width:34ch; font-size:.95rem; color:rgba(243,237,231,.66); margin:0; }
.footer__col h4{ color:#fbf3ea; font-size:1.05rem; margin-bottom:1rem; }
.footer__col a, .footer__hours{ display:block; color:rgba(243,237,231,.72); padding:.28rem 0; font-size:.93rem; transition:color .3s; }
.footer__col a:hover{ color:var(--accent-lt); }
.footer__hours{ margin-top:.6rem; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--olive); }
.footer__bottom{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; padding:1.4rem 0 2rem; border-top:1px solid var(--line-light); font-size:.84rem; }
.footer__bottom p{ margin:0; }
.footer__legal{ display:flex; gap:1.2rem; }
.footer__legal a:hover{ color:var(--accent-lt); }

/* ----------------------------- Botón flotante ----------------------------- */
.floatcta{
  position:fixed; right:1rem; bottom:1rem; z-index:55; display:none; align-items:center; gap:.5em;
  padding:.85em 1.3em; border-radius:var(--r-pill); background:var(--grad-warm); color:#fff;
  font-weight:600; font-size:.95rem; box-shadow:var(--sh-warm);
}

/* ----------------------------- Placeholders de imagen ----------------------------- */
.ph{
  --ph-bg-a:#efe7df; --ph-bg-b:#e0d4c6;
  position:relative; display:grid; place-items:center; width:100%; border-radius:var(--r-lg);
  background:
    repeating-linear-gradient(45deg, rgba(149,79,0,.05) 0 12px, transparent 12px 24px),
    linear-gradient(135deg, var(--ph-bg-a), var(--ph-bg-b));
  border:1px dashed rgba(149,79,0,.35);
  overflow:hidden; color:var(--brown-dk);
}
.ph::before{
  content:""; position:absolute; width:46px; height:46px; opacity:.32; top:calc(50% - 42px); left:calc(50% - 23px);
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='4' width='18' height='16' rx='2.5' fill='none' stroke='black' stroke-width='1.4'/%3E%3Ccircle cx='8.5' cy='9.5' r='1.8' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M4 18l5-5 4 3 3-3 4 4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='4' width='18' height='16' rx='2.5' fill='none' stroke='black' stroke-width='1.4'/%3E%3Ccircle cx='8.5' cy='9.5' r='1.8' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M4 18l5-5 4 3 3-3 4 4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
.ph__tag{
  position:relative; margin-top:34px; font-size:.78rem; font-weight:600; letter-spacing:.02em;
  padding:.4em .9em; border-radius:var(--r-pill); text-align:center; max-width:88%;
  background:rgba(255,255,255,.72); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  color:var(--brown-dk); border:1px solid rgba(149,79,0,.2);
}
.ph--dark{ --ph-bg-a:#0a4f7a; --ph-bg-b:#012e4f; color:var(--accent-lt); border-color:rgba(255,157,90,.3); }
.ph--dark .ph__tag{ background:rgba(1,30,50,.5); color:var(--accent-lt); border-color:rgba(255,157,90,.25); }
.ph--hero{ --ph-bg-a:#0a4f7a; --ph-bg-b:#012e4f; color:rgba(243,237,231,.6); border:0; }
.ph--hero .ph__tag{ background:rgba(1,30,50,.4); color:rgba(243,237,231,.8); border-color:var(--line-light); }
/* Placeholder de plato sin foto disponible */
.ph--pending{ --ph-bg-a:#efe7df; --ph-bg-b:#e6dccb; }

/* ----------------------------- Imágenes reales ----------------------------- */
.hero__media img.heroimg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; animation:kenburns 24s ease-in-out infinite alternate; }
.chefs__media img{ width:100%; aspect-ratio:4/5; object-fit:cover; display:block; border-radius:var(--r-lg); box-shadow:var(--sh-md); }
/* Carrusel (bloque "El concepto") */
.carousel{ position:relative; aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-md); }
.carousel__track{ position:absolute; inset:0; margin:0; padding:0; list-style:none; }
.carousel__slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.1s var(--ease); }
.carousel__slide.is-active{ opacity:1; }
.carousel__slide img{ width:100%; height:100%; object-fit:cover; display:block; }
/* (sin indicadores: el carrusel cambia solo cada 3 s) */
.menu__visual img{ width:100%; aspect-ratio:3/4; object-fit:cover; display:block; border-radius:var(--r-lg); }
.dish img.dishimg{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
@media (prefers-reduced-motion:reduce){ .hero__media img.heroimg{ animation:none; } }

/* ----------------------------- Reveal on scroll ----------------------------- */
.scrollprogress{ position:fixed; top:0; left:0; height:3px; width:0; z-index:100; background:var(--grad-warm); transition:width .1s linear; }
/* Sólo se ocultan si hay JS (clase .js); sin JS el contenido se ve siempre */
.js [data-anim]{ opacity:0; transition:opacity .9s var(--ease), transform .9s var(--ease), filter .9s var(--ease); transition-delay:var(--rd,0s); will-change:opacity,transform; }
.js [data-anim="fade-up"]{ transform:translateY(42px); }
.js [data-anim="fade-right"]{ transform:translateX(-54px); }
.js [data-anim="fade-left"]{ transform:translateX(54px); }
.js [data-anim="zoom"]{ transform:scale(.92); }
.js [data-anim="blur"]{ filter:blur(14px); transform:translateY(20px); }
.js [data-anim].is-visible{ opacity:1; transform:none; filter:none; }
[data-d="1"]{ --rd:.08s; } [data-d="2"]{ --rd:.18s; } [data-d="3"]{ --rd:.28s; } [data-d="4"]{ --rd:.38s; }

/* ----------------------------- Responsive ----------------------------- */
@media (max-width:1000px){
  .dishes__grid{ grid-template-columns:repeat(2,1fr); }
  .concept__grid, .chefs__grid, .exp__grid, .menu__card, .reserve__grid{ grid-template-columns:1fr; }
  .chefs__grid .chefs__text{ order:2; }
  .concept__media, .chefs__media, .menu__visual{ max-width:520px; margin-inline:auto; }
  .reserve__booking{ min-height:800px; margin-top:0; }
}
@media (max-width:760px){
  .nav__burger{ display:flex; z-index:62; }
  .nav__menu{
    position:fixed; inset:0 0 0 auto; width:min(86vw,360px); height:100dvh;
    flex-direction:column; align-items:flex-start; justify-content:center; gap:2rem;
    padding:5rem 2rem 2rem; background:var(--grad-navy); --nav-fg:#f3ede7;
    transform:translateX(105%); transition:transform .45s var(--ease); box-shadow:var(--sh-lg);
  }
  .nav__menu.is-open{ transform:translateX(0); }
  .nav__list{ flex-direction:column; align-items:flex-start; gap:1.3rem; font-size:1.1rem; }
  .nav__list a{ font-size:1.15rem; }
  .nav__tools{ flex-direction:column; align-items:flex-start; gap:1.3rem; width:100%; }
  .nav.is-stuck .nav__menu{ --nav-fg:#f3ede7; }
  .floatcta{ display:inline-flex; }
  .defs{ grid-template-columns:1fr; }
  .footer__grid{ grid-template-columns:1fr; }
  .footer__bottom{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:520px){
  .dishes__grid{ grid-template-columns:1fr; }
  .hero__badges{ gap:.4rem; }
  .badge{ font-size:.74rem; }
  .btn{ width:100%; }
  .hero__actions{ width:100%; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  [data-anim]{ opacity:1 !important; transform:none !important; filter:none !important; }
  .hero__media .ph{ animation:none; }
  .carousel__slide{ transition-duration:1.1s !important; } /* el carrusel sí hace fundido aunque haya reduce-motion */
}


/* ============================ Ubicación (mapa 2 columnas) ============================ */
.section--map{ background:var(--navy); color:var(--cream); padding:clamp(4rem,8vh,6rem) 0; overflow:hidden; }
.section--map h2{ color:#fff; }
.section--map .eyebrow{ color:var(--gold); }
.section--map .eyebrow::before{ background:var(--gold); }
.section--map .section__body{ color:rgba(243,236,223,.82); }
.map__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.map__box{ aspect-ratio:1/1; border-radius:4px; overflow:hidden; box-shadow:var(--sh-lg); border:1px solid rgba(243,236,223,.14); }
.map__box iframe{ width:100%; height:100%; border:0; display:block; filter:saturate(.95); }
.map__text{ padding:0; }
.map__addr{ display:flex; align-items:center; gap:.6em; color:#fff; font-weight:600; margin:0 0 1.5rem; font-size:.98rem; }
.map__addr .ico{ color:var(--gold); width:1.2em; height:1.2em; }
.section--map .hero__actions{ justify-content:flex-start; }
@media (max-width:860px){
  .map__grid{ grid-template-columns:1fr; }
  .map__box{ aspect-ratio:4/3; max-width:560px; margin-inline:auto; width:100%; }
  .section--map .hero__actions{ justify-content:center; }
  .map__addr{ justify-content:center; text-align:center; }
  .map__text{ text-align:center; }
}

/* Botones de la carta (menú + vinos) */
.carta__btns{ display:flex; flex-wrap:wrap; gap:.75rem; }

/* Crédito de agencia en el footer */
.footer__credit{ font-size:.82rem; color:rgba(243,236,223,.5); letter-spacing:.02em; margin:0; }
.footer__credit a{ color:rgba(243,236,223,.7); font-weight:600; transition:color .3s var(--ease); }
.footer__credit a:hover{ color:var(--gold); }

/* Crédito Zink Marketing a la izquierda del footer */
.footer__credit{ order:-1; }

/* ================================
   Sección Chefs: reordenación con grid-areas
   Desktop: head+body a la izquierda, media a la derecha
   Móvil:   head → media → body en columna
   ================================ */
.chefs__grid{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  grid-template-areas:"head media" "body media";
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
}
.chefs__head{ grid-area:head; }
.chefs__media{ grid-area:media; align-self:center; }
.chefs__body{ grid-area:body; }
@media (max-width:1000px){
  .chefs__grid{
    grid-template-columns:1fr;
    grid-template-areas:"head" "media" "body";
  }
  .chefs__media{ max-width:520px; margin-inline:auto; }
}

/* ================================
   Bloque Reserva móvil:
   El botón "Reservar ahora" va encima de la info (horario, teléfono)
   Ya está en ese orden por HTML; aseguramos margen abajo del botón.
   ================================ */
@media (max-width:760px){
  .section--reserve .hero__actions{ margin-bottom:1.5rem; }
  .reserve__info{ margin-top:.5rem; }
}

/* ================================
   Reseñas móvil: carrusel horizontal con flechas
   ================================ */
.reviews{ position:relative; }
.reviews__nav{
  display:none;
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%;
  background:rgba(243,236,223,.14); border:1px solid rgba(243,236,223,.28);
  color:var(--cream); cursor:pointer; z-index:5;
  align-items:center; justify-content:center;
  transition:.3s var(--ease);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.reviews__nav:hover{ background:var(--gold); color:var(--navy); border-color:var(--gold); }
.reviews__nav svg{ width:22px; height:22px; display:block; }
.reviews__nav-prev{ left:-6px; }
.reviews__nav-next{ right:-6px; }
@media (max-width:820px){
  .reviews__track{
    display:flex !important; grid-template-columns:none !important;
    gap:1rem; max-width:none !important; margin-inline:0 !important;
    overflow-x:auto; scroll-snap-type:x mandatory;
    scrollbar-width:none; -ms-overflow-style:none;
    padding:.4rem 1.4rem;
  }
  .reviews__track::-webkit-scrollbar{ display:none; }
  .review{ flex:0 0 100%; scroll-snap-align:center; display:block !important; }
  .reviews__nav{ display:inline-flex; }
}

/* ================================
   Bloque reserva: grid con áreas para desktop y móvil
   Desktop: texto (izq arriba) + widget (der, 2 filas) + info (izq abajo)
   Móvil:   texto → widget → info
   ================================ */
.reserve__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-areas:"text booking" "info booking";
  gap:clamp(2rem,4vw,3.5rem);
  align-items:start;
}
.reserve__text{ grid-area:text; }
.reserve__booking{ grid-area:booking; align-self:stretch; }
.reserve__grid > .reserve__info{ grid-area:info; margin-top:0; }
@media (max-width:1000px){
  .reserve__grid{
    grid-template-columns:1fr;
    grid-template-areas:"text" "booking" "info";
  }
  .reserve__grid > .reserve__info{ text-align:center; }
  .reserve__grid > .reserve__info li{ justify-content:center; }
}

/* Corrige alineación del pin en el hero cuando el texto ocupa 2 líneas (móvil) */
.hero__address{ align-items:flex-start; }
.hero__address .ico{ margin-top:.18em; flex:0 0 auto; }

/* Título de "Los chefs" en móvil: salto de línea tras "Propietarios," */
.chefs__head .section__title{ text-wrap:balance; }
@media (max-width:640px){
  .chefs__head .section__title{ font-size:1.6rem; line-height:1.16; letter-spacing:.01em; }
}
@media (max-width:400px){
  .chefs__head .section__title{ font-size:1.42rem; }
}


/* ================================
   ARREGLO DE ESPACIADOS (desktop y móvil)
   Estructura: contenedor de columna (flex) + otra columna al lado.
   Los textos ya no se estiran para llenar la altura de la imagen/widget.
   ================================ */

/* Bloque CHEFS */
.chefs__grid{
  display:grid !important;
  grid-template-columns:1.08fr .92fr !important;
  grid-template-areas:none !important;
  gap:clamp(2rem,5vw,4.5rem);
  align-items:center;
}
.chefs__text-col{ display:flex; flex-direction:column; gap:1.4rem; }
.chefs__head{ margin:0; }
.chefs__body{ margin:0; }
.chefs__media{ margin:0; align-self:center; }

@media (max-width:1000px){
  .chefs__grid{
    grid-template-columns:1fr !important;
    grid-template-areas:none !important;
  }
  .chefs__text-col{ display:contents; }
  .chefs__head{ order:0; }
  .chefs__media{ order:1; max-width:520px; margin-inline:auto; width:100%; }
  .chefs__body{ order:2; }
}

/* Bloque RESERVA */
.reserve__grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  grid-template-areas:none !important;
  gap:clamp(2rem,4vw,3.5rem);
  align-items:start;
}
.reserve__left{ display:flex; flex-direction:column; gap:1.6rem; }
.reserve__left .reserve__text{ margin:0; }
.reserve__left .reserve__info{ margin:0; }
.reserve__booking{ align-self:start; }

@media (max-width:1000px){
  .reserve__grid{
    grid-template-columns:1fr !important;
    grid-template-areas:none !important;
  }
  .reserve__left{ display:contents; }
  .reserve__text{ order:0; }
  .reserve__booking{ order:1; }
  .reserve__info{ order:2; text-align:center; }
  .reserve__info li{ justify-content:center; }
}


/* ARREGLA COLUMNAS FANTASMA (grid-area vs grid-template-areas: none) */
.chefs__head, .chefs__body, .chefs__media,
.reserve__text, .reserve__booking, .reserve__grid > .reserve__info{
  grid-area:auto !important;
}


/* Título "Los chefs" desktop: reducir tamaño para 2 líneas balanceadas */
.chefs__head .section__title{
  font-size:clamp(1.6rem, 2.2vw, 2.3rem) !important;
  text-wrap:balance;
  line-height:1.12;
}


/* Arregla ancho del carrusel de "El concepto" y otros media items */
.concept__media, .chefs__media, .menu__visual{ width:100%; }
.carousel{ width:100%; }

/* Móvil: en "Sabores que viajan", los botones van DEBAJO de la carta */
@media (max-width:1000px){
  .exp__grid{ display:flex; flex-direction:column; gap:2rem; align-items:stretch; }
  .exp__grid > .exp__text{ order:1; }
  .exp__grid > .cartabox{ order:2; }
  .exp__grid > .carta__btns{ order:3; justify-content:center; }
  /* la caja de la carta con altura fija ya está definida */
}


/* Bloque reserva: items sólo visibles en desktop */
.reserve__info .desktop-only{ display:flex; }
@media (max-width:1000px){
  .reserve__info .desktop-only{ display:none !important; }
}


/* Subcategoría dentro de una categoría de la carta (p.ej. Noritacos) */
.carta-subcat__title{ font-family:var(--font-head); font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dk,var(--brown-dk)); margin:.9rem 0 .5rem; padding-left:.2rem; border-left:2px solid var(--brown); padding-left:.5rem; }
.carta-note{ font-size:.72rem; color:var(--ink-soft); font-style:italic; margin-top:1.2rem; text-align:right; }


/* Idioma activo: no es un enlace navegable */
span.langswitch__btn.is-active{ cursor:default; }
