/* ============================================================
   Central — clon estructural (plantilla de demostración)
   Paleta: bone / off-white con tinta casi negra (estilo minimalista)
   ============================================================ */

/* ------------------------------------------------------------
   TIPOGRAFÍA — PP Editorial Sans (Pangram Pangram)
   NOTA DE LICENCIA: los archivos provistos son "Personal Use Only"
   (Befonts). Para el sitio publicado (uso comercial) se necesita la
   licencia comercial de Pangram Pangram.
   Rangos de peso: 200 = Ultralight · 300–600 = Medium · 700–900 = Ultrabold
   ------------------------------------------------------------ */
@font-face {
  font-family: "PP Editorial Sans";
  src: url("assets/fonts/PPEditorialSans-Ultralight.woff2") format("woff2");
  font-weight: 100 250;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "PP Editorial Sans";
  src: url("assets/fonts/PPEditorialSans-UltralightItalic.woff2") format("woff2");
  font-weight: 100 250;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "PP Editorial Sans";
  src: url("assets/fonts/PPEditorialSans-Medium.woff2") format("woff2");
  font-weight: 300 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "PP Editorial Sans";
  src: url("assets/fonts/PPEditorialSans-Ultrabold.woff2") format("woff2");
  font-weight: 700 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "PP Editorial Sans";
  src: url("assets/fonts/PPEditorialSans-UltraboldItalic.woff2") format("woff2");
  font-weight: 700 900;
  font-style: italic;
  font-display: swap;
}

/* PP Editorial New (serif) — usada en cursiva ultralight para los titulares
   tipo "lead" (framer-18ykh1x). */
@font-face {
  font-family: "PP Editorial New";
  src: url("assets/fonts/PPEditorialNew-Ultralight.woff2") format("woff2");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "PP Editorial New";
  src: url("assets/fonts/PPEditorialNew-UltralightItalic.woff2") format("woff2");
  font-weight: 200;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "PP Editorial New";
  src: url("assets/fonts/PPEditorialNew-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "PP Editorial New";
  src: url("assets/fonts/PPEditorialNew-Italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

:root {
  --bg: #f2f2f2;          /* fondo */
  --bg-2: #ece8df;        /* tono ligeramente más oscuro para bloques */
  --ink: #1b1916;         /* tinta casi negra */
  --ink-soft: #5c574d;    /* texto secundario */
  --line: #d8d2c5;        /* líneas/divisores */
  --accent: #1b1916;
  --serif: "PP Editorial Sans", Georgia, serif;
  --sans: "PP Editorial Sans", "Helvetica Neue", Arial, sans-serif;
  --maxw: 1240px;
  --ph: #ddd7ca;          /* placeholder de imagen */
}

* { margin: 0; padding: 0; box-sizing: border-box; }

/* Fondo del documento oscuro: la zona de rebote/barra inferior de iOS (abajo
   del todo) queda como el footer, en vez de mostrar blanco. El contenido claro
   lo cubre el <body>, así que no cambia. */
html { scroll-behavior: smooth; background-color: rgb(34, 34, 34); }

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 300;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

.container { max-width: var(--maxw); margin: 0 auto; padding: 0 32px; }

.eyebrow {
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 18px;
}

/* ---------- placeholders de imagen ---------- */
[data-ph] {
  position: relative;
  background: var(--ph);
  background-image:
    linear-gradient(135deg, rgba(0,0,0,.03) 25%, transparent 25%, transparent 50%, rgba(0,0,0,.03) 50%, rgba(0,0,0,.03) 75%, transparent 75%);
  background-size: 22px 22px;
}
[data-ph]::after {
  content: attr(data-ph);
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(0,0,0,.32);
}

/* ============================================================
   NAV
   ============================================================ */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  transition: background .4s ease, box-shadow .4s ease;
}
.nav__inner {
  width: 100%;
  padding: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: padding .4s ease;
}
/* Estado scrolled: el nav sigue transparente (igual que Central);
   solo cambia el color del texto. La altura/padding no varían. */
.nav.is-scrolled { background: transparent; }

.nav__logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: rgb(242, 242, 242);
  transition: color .4s ease;
}
.nav__logo-svg {
  display: block;
  height: 32px;
  width: auto;
  fill: currentColor;
}
.nav__links { display: flex; align-items: center; gap: 28px; }
.nav__links a {
  text-decoration: none;
  color: rgb(242, 242, 242);
  font-family: var(--sans);
  font-weight: 400;
  font-size: 10px;
  line-height: 14.4px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  position: relative;
  transition: color .4s ease;
}
.nav__links a { transition: color .4s ease, opacity .3s ease; }
.nav__links a:hover { opacity: .6; }

.nav__lang-globe {
  display: flex; align-items: center; justify-content: center;
  width: 18px; height: 18px;
  padding: 0; background: none; border: none; cursor: pointer;
  color: rgb(242, 242, 242);
  transition: color .4s ease, opacity .3s ease;
}
.nav__lang-globe:hover { opacity: .65; }
.nav__lang-globe svg { display: block; width: 18px; height: 18px; }
.nav__lang-text { display: none; }   /* "ESP" solo se muestra en el menú móvil */

/* Selector de idioma: desplegable con las dos opciones (✓ en la activa) */
.nav__lang { position: relative; display: inline-flex; align-items: center; }
.nav__lang-menu {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  display: none;
  flex-direction: column;
  min-width: 88px;
  background: rgb(242, 242, 242);
  border: 1px solid rgba(0, 0, 0, .12);
  box-shadow: 0 6px 24px rgba(0, 0, 0, .12);
  padding: 6px 0;
  z-index: 200;
}
.nav__lang.is-open .nav__lang-menu { display: flex; }
.nav__lang-opt {
  position: relative;
  background: none; border: none; cursor: pointer;
  font-family: var(--sans); font-weight: 400;
  font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase;
  color: rgb(34, 34, 34);
  text-align: left;
  padding: 8px 18px 8px 30px;
  transition: opacity .2s ease;
}
.nav__lang-opt:hover { opacity: .55; }
.nav__lang-opt.is-active::before { content: "✓"; position: absolute; left: 13px; }

/* Estado con scroll: fondo claro → texto oscuro para legibilidad */
.nav.is-scrolled .nav__logo,
.nav.is-scrolled .nav__links a,
.nav.is-scrolled .nav__lang-globe { color: rgb(34, 34, 34); }
.nav.is-scrolled .nav__burger span { background: rgb(34, 34, 34); }

.nav__burger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; }
.nav__burger span { width: 24px; height: 1.5px; background: rgb(242, 242, 242); transition: .3s; }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position: relative;
  height: 100vh;
  min-height: 620px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
}
.hero__split {
  position: absolute; inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.hero__half { position: relative; overflow: hidden; }
.hero__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.hero__overlay {
  position: absolute; inset: 0;
  background: transparent;
  pointer-events: none;
}

/* Etiquetas de las esquinas inferiores del hero (dirección / Instagram) */
.hero__address,
.hero__ig {
  position: absolute;
  bottom: 32px;
  z-index: 2;
  font-family: var(--sans);
  font-weight: 400;
  font-size: 10px;
  line-height: 14.4px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgb(242, 242, 242);
  text-decoration: none;
}
.hero__address { left: 32px; max-width: 60vw; }
.hero__ig { right: 32px; transition: opacity .3s ease; }
.hero__ig:hover { opacity: .65; }
.addr-br { display: none; }   /* salto de la dirección: oculto en escritorio, visible en móvil */
.hero__content { position: relative; z-index: 2; color: #f6f3ec; padding: 0 24px; }
.hero__eyebrow {
  font-size: 13px; letter-spacing: 0.34em; text-transform: uppercase;
  margin-bottom: 26px; opacity: .9;
}
.hero__title {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(38px, 6.5vw, 92px);
  line-height: 1.05;
  letter-spacing: 0.01em;
}
.hero__sub {
  margin-top: 26px;
  font-size: clamp(15px, 1.6vw, 19px);
  letter-spacing: 0.04em;
  font-weight: 300;
  opacity: .92;
}
/* ============================================================
   SECCIÓN VERTICAL  (réplica EXACTA de framer-b1mdq4)
   grid-template-columns: repeat(3, minmax(50px, 1fr))  (3 columnas fluidas)
   grid-template-rows: repeat(2, min-content) + auto-rows min-content
   gap 24px · padding 72px · centrado · tinta rgb(34,34,34)
   ============================================================ */
.vrt {
  display: grid;
  grid-template-columns: repeat(3, minmax(50px, 1fr));
  grid-template-rows: repeat(2, min-content);
  grid-auto-rows: min-content;
  justify-content: center;
  align-items: start;
  gap: 40px 24px;    /* huecos pequeños; la altura la crea el contenido apilado */
  padding: 72px 72px 236px;   /* más aire abajo antes del footer, como el original (~208px) */
  background: var(--bg);
  color: rgb(34, 34, 34);
}
.vrt--span3 { grid-column: 1 / -1; }

/* Intro centrado (Ultralight 28/40) */
.vrt__intro {
  font-family: var(--sans);
  font-weight: 200;
  font-size: 28px;
  line-height: 40px;
  text-align: center;
  text-transform: uppercase;
  color: rgb(34, 34, 34);
}

/* Lead = framer-18ykh1x: título 4 líneas (343px) + párrafo (~318px),
   flex column alineado a la izquierda */
.vrt__lead {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  /* sin margen extra: el lead arranca justo donde acaba el video de arriba,
     igual que Central ("En nuestra mesa..." pegado al borde inferior de la imagen) */
}
.vrt__lead h1 {
  max-width: 343px;
  font-family: "PP Editorial New", Georgia, serif;
  font-weight: 200;
  font-style: italic;
  font-size: 32px;
  line-height: 40px;
  text-align: left;
  margin-bottom: 0;
}
.vrt__lead p { max-width: 318px; margin-left: 100px; }  /* párrafo indentado a la derecha, como el original */

/* Cuerpo justificado (Ultralight 14/20) */
.vrt__lead p,
.vrt__body {
  font-family: var(--sans);
  font-weight: 200;
  font-size: 14px;
  line-height: 20px;
  text-align: justify;
  color: rgb(34, 34, 34);
}
.vrt__body { align-self: start; }
/* Párrafos a un lado del video: centrados verticalmente con la imagen */
.vrt__body.vrt--c3,
.vrt__block.vrt--c3 { align-self: center; }

/* Colocación por columnas (spine central de videos + textos a los lados) */
.vrt--c1 { grid-column: 1; }
.vrt--c2 { grid-column: 2; }
.vrt--c3 { grid-column: 3; }

/* Bloque de texto (columna izq/der) */
.vrt__block {
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
/* Último bloque (columna derecha continua): título y enlace a la derecha,
   párrafos justificados ocupando el ancho de la columna — igual que INVESTIGACIÓN. */
.vrt__block.vrt__block--end { align-self: start; }      /* texto arriba; el título queda cerca del video de la fila anterior */
.vrt__block--end .vrt__h5 { text-align: right; margin-bottom: 49px; }  /* aire bajo el título, como INVESTIGACIÓN */
.vrt__block--end .vrt__link { align-self: flex-end; }
/* El video del último bloque baja para dejar aire respecto al video anterior */
.vrt__video--low { align-self: start; margin-top: 208px; }

/* Etiqueta-enlace pequeña (Medium 10/13 · ls 1.5 · rgb(51,51,51)),
   subrayada con línea de 1px del ancho del texto, centrada verticalmente
   con el video de su fila — igual que EXPERIENCIAS / RESERVAS en el original. */
.vrt__label {
  align-self: start;          /* pegado a la parte de arriba del video */
  justify-self: center;       /* centrado en el espacio vacío de su columna */
  display: inline-block;
  width: max-content;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 10px;
  line-height: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgb(51, 51, 51);
  text-decoration: none;
  border-bottom: 1px solid rgb(51, 51, 51);
  padding-bottom: 6px;
  transition: opacity .3s ease;
}
.vrt__label:hover { opacity: .6; }

/* Enlace pequeño en mayúsculas (Medium 10 · ls 1.5) */
.vrt__link {
  align-self: start;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 10px;
  line-height: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgb(34, 34, 34);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  transition: opacity .3s ease;
}
.vrt__link:hover { opacity: .6; }

/* Subtítulo h5 (PP Editorial New cursiva 16/18 · ls .5), igual que "CENTRAL" en el original */
.vrt__h5 {
  font-family: "PP Editorial New", Georgia, serif;
  font-weight: 200;
  font-style: italic;
  font-size: 16px;
  line-height: 18px;
  letter-spacing: 0.5px;
  text-align: left;
  text-transform: uppercase;
  color: rgb(34, 34, 34);
}

/* Columna pequeña (izquierda) con su contenido centrado vertical */
.vrt__col {
  align-self: start;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
}

/* CTA grande (PP Editorial New cursiva 36 · ls 10 · derecha), igual que "MATER" en el original */
.vrt__cta {
  align-self: center;
  justify-self: end;
  font-family: "PP Editorial New", Georgia, serif;
  font-weight: 200;
  font-style: italic;
  font-size: 36px;
  line-height: 43.2px;
  letter-spacing: 10px;
  text-align: right;
  color: rgb(34, 34, 34);
  text-decoration: none;
  transition: opacity .3s ease;
}
.vrt__cta:hover { opacity: .6; }

/* Bloques de video (cuadrados, columna central) */
.vrt__video {
  width: 280px;
  height: 280px;
  max-width: 100%;
  justify-self: center;
  align-self: center;
  overflow: hidden;   /* recorta el video que sobresale por el zoom */
}
/* El <video> llena el cuadro y se amplía un poco anclado arriba-izquierda,
   así la esquina inferior derecha (donde está la marca de agua) queda fuera. */
.vrt__video > video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.22);
  transform-origin: top left;
}
/* Video grande a 3 columnas */
.vrt__video--full {
  width: 100%;
  height: 640px;
  justify-self: stretch;
}

/* El original mantiene 3 columnas fluidas; solo reducimos el padding al
   estrechar y dejamos que las columnas (1fr) y los videos encojan. */
.vrt__video { max-width: 100%; }
.vrt__video--full { max-height: 640px; }

@media (max-width: 800px) {
  .vrt { padding: 48px 24px; gap: 16px; }
  .vrt__video--full { height: clamp(280px, 60vw, 640px); }
}

/* Solo en móvil estrecho colapsa a 1 columna por legibilidad */
@media (max-width: 520px) {
  .vrt { grid-template-columns: 1fr; }
  .vrt__cta { justify-self: start; text-align: left; font-size: 30px; letter-spacing: 6px; }
}

/* ============================================================
   ECOSISTEMAS
   ============================================================ */
.ecosystems { padding: 100px 0; background: var(--bg-2); }
.ecosystems__title {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(30px, 4vw, 56px);
  margin-bottom: 60px;
}
.ecosystems__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.eco__alt {
  font-size: 13px; letter-spacing: 0.18em; color: var(--ink-soft);
  margin-bottom: 14px;
}
.eco__media { aspect-ratio: 3/4; margin-bottom: 18px; }
.eco h4 {
  font-family: var(--serif); font-weight: 500;
  font-size: 24px; margin-bottom: 8px;
}
.eco p { font-size: 14px; color: var(--ink-soft); }

/* ============================================================
   RESERVAS
   ============================================================ */
.reservas { padding: clamp(90px, 14vh, 160px) 0; text-align: center; }
.reservas__inner { max-width: 720px; }
.reservas h3 {
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(30px, 4vw, 56px); margin-bottom: 24px;
}
.reservas p { color: var(--ink-soft); margin-bottom: 40px; font-size: 17px; }
.reservas__cta { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }

.btn {
  display: inline-block;
  padding: 15px 38px;
  font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase;
  text-decoration: none;
  transition: .3s;
}
.btn--solid { background: var(--ink); color: var(--bg); }
.btn--solid:hover { background: #000; }
.btn--ghost { border: 1px solid var(--ink); color: var(--ink); }
.btn--ghost:hover { background: var(--ink); color: var(--bg); }

/* ============================================================
   MATER
   ============================================================ */
.mater { padding: 110px 0; border-top: 1px solid var(--line); }
.mater__grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 64px; align-items: center;
}
.mater__body h3 {
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(30px, 4vw, 52px); margin-bottom: 24px;
}
.mater__body p { color: var(--ink-soft); margin-bottom: 22px; max-width: 46ch; }
.mater__media { aspect-ratio: 1/1; }
.mater__sister { font-size: 14px; }
.link-arrow {
  display: inline-block;
  color: var(--ink); text-decoration: none;
  font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase;
  border-bottom: 1px solid var(--ink); padding-bottom: 4px;
  margin-bottom: 30px;
  transition: opacity .3s;
}
.link-arrow:hover { opacity: .55; }

/* ============================================================
   FOOTER
   ============================================================ */
/* Réplica de framer-JqCbn: barra oscura, grid 3 col centrado, texto Ultralight 12/16 */
.footer {
  background: rgb(34, 34, 34);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  padding: 40px;
}
.footer__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 419px));
  justify-content: center;
  gap: 24px;
  width: 100%;
  padding: 20px 0;
}
.footer__col {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
/* Alineación por columna (igual que Central): izq · centro · derecha */
.footer__col:nth-child(1) { align-items: flex-start; text-align: left; }
.footer__col:nth-child(2) { align-items: center; text-align: center; }
.footer__col:nth-child(3) { align-items: flex-end; text-align: right; }
.footer__col a,
.footer__col span {
  font-family: var(--sans);
  font-weight: 200;
  font-size: 12px;
  line-height: 16px;
  color: rgb(242, 242, 242);
  text-decoration: none;
}
.footer__col a { transition: opacity .3s ease; }
.footer__col a:hover { opacity: .6; }

/* ============================================================
   REVEAL (scroll animations)
   ============================================================ */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s ease, transform .9s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .hero__scroll span { animation: none; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 900px) {
  .concept__grid, .mater__grid { grid-template-columns: 1fr; gap: 40px; }
  .ecosystems__list { grid-template-columns: repeat(2, 1fr); }
  .footer__grid { grid-template-columns: repeat(2, 1fr); }

  .nav__burger { display: flex; }
  /* Overlay del menú: oscuro, enlaces abajo a la izquierda (igual que Central) */
  .nav__links {
    position: fixed; inset: 0;
    z-index: 1;
    background: rgb(26, 26, 26);
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 34px;
    padding: 0 32px 112px;
    transform: translateX(100%);
    transition: transform .4s ease;
  }
  .nav.menu-open .nav__links { transform: none; }
  .nav__links a {
    color: rgb(242, 242, 242);
    font-size: 18px;
    line-height: 1;
    letter-spacing: 2px;
  }
  /* logo y botón (X) por encima del overlay y en blanco mientras está abierto */
  .nav.menu-open .nav__logo,
  .nav.menu-open .nav__burger { position: relative; z-index: 2; }
  .nav.menu-open .nav__logo { color: rgb(242, 242, 242); }
  .nav.menu-open .nav__burger span { background: rgb(242, 242, 242); }
  /* las 2 rayas se cruzan en una X */
  .nav.menu-open .nav__burger span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); }
  .nav.menu-open .nav__burger span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }
  /* globo + "ESP" abajo, en blanco */
  .nav__links .nav__lang-globe { color: rgb(242, 242, 242); width: auto; height: auto; gap: 8px; }
  .nav__lang-text { display: none; }
  .nav.menu-open .nav__lang-text {
    display: inline;
    font-family: var(--sans); font-weight: 400;
    font-size: 18px; letter-spacing: 2px; color: rgb(242, 242, 242);
  }
  /* En el menú móvil el globo está abajo: el desplegable abre hacia ARRIBA */
  .nav__lang-menu { top: auto; bottom: calc(100% + 12px); left: 0; right: auto; }
  .nav__lang-opt { font-size: 14px; padding: 10px 22px 10px 34px; }
  .nav__lang-opt.is-active::before { left: 16px; }
}

@media (max-width: 540px) {
  .container, .nav__inner { padding-left: 22px; padding-right: 22px; }
  .ecosystems__list { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; }
}

/* ====== MÓVIL: misma estructura que Central en pantalla estrecha ====== */
@media (max-width: 768px) {
  /* HERO: los dos vídeos se apilan a ancho completo (mitad de alto cada uno) */
  .hero { min-height: 0; }
  .hero__split { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; background: #000; }
  /* Evitar la línea fina entre los dos vídeos: el de arriba sangra 1px hacia abajo */
  .hero__half:first-child { overflow: visible; position: relative; z-index: 1; }
  .hero__half:first-child .hero__video { bottom: auto; height: calc(100% + 1px); }

  /* Etiquetas del hero: centradas y apiladas (dirección arriba, @ debajo) */
  .hero__address,
  .hero__ig {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    text-align: center;
    max-width: 88vw;
    width: max-content;
  }
  .hero__address { bottom: 58px; }
  .hero__ig { bottom: 30px; }
  .addr-br { display: inline; }   /* en móvil, partir la dirección en 2 líneas */

  /* SECCIÓN a una columna a ancho completo. El lead va a ancho completo
     (sobresale); los vídeos y los bloques van centrados al ancho del vídeo. */
  .vrt {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    padding: 64px 48px 8px;   /* margen lateral generoso; el footer va casi pegado al último vídeo, como Central */
    gap: 42px;
  }
  /* anular la colocación por columnas (col 2/3 no existen en 1 columna) */
  .vrt--c1, .vrt--c2, .vrt--c3, .vrt--span3 { grid-column: 1 / -1; }
  /* el último vídeo ya no necesita el desfase de escritorio */
  .vrt__video--low { margin-top: 0; }
  /* los vídeos: 280px cuadrados, centrados */
  .vrt__video { width: min(280px, 100%); max-width: 100%; height: auto; aspect-ratio: 1 / 1; justify-self: center; }

  /* En móvil el párrafo "Apenas treinta cubiertos" (hijo 5) va ENCIMA del
     video de los calçots (hijo 4), como en Central. Solo afecta al móvil. */
  .vrt > * { order: 3; }
  .vrt > :nth-child(-n+3) { order: 0; }   /* intro, video 1, lead */
  .vrt > :nth-child(5) { order: 1; }      /* párrafo "Apenas…" sube */
  .vrt > :nth-child(4) { order: 2; }      /* video de calçots baja */
  .vrt > :nth-child(11) { order: 4; }     /* bloque Temporada (texto + enlace) primero */
  .vrt > :nth-child(10) { order: 5; }     /* último video, al fondo del todo */

  /* todo a ancho completo y, por defecto, arriba/izquierda */
  .vrt__body, .vrt__block,
  .vrt__body.vrt--c3, .vrt__block.vrt--c3,
  .vrt__block.vrt__block--end { align-self: start; }

  /* LEAD: única sección a ancho completo (sobresale del vídeo); párrafos indentados */
  .vrt__lead { margin-top: 0; gap: 26px; }
  .vrt__lead h1 { max-width: none; font-size: 30px; line-height: 38px; }
  .vrt__lead p { max-width: none; margin-left: 48px; }
  .vrt__body.vrt--c3 { margin-left: 48px; }
  /* Bloques (LA CASA, Temporada): a ancho completo (≈ ancho del vídeo por el margen de 48px) */
  .vrt__block { gap: 30px; }

  /* etiquetas (EXPERIENCIAS / RESERVAS) centradas en móvil, como Central */
  .vrt__label { justify-self: center; text-align: center; }
  .vrt__cta { justify-self: center; text-align: center; font-size: 30px; letter-spacing: 6px; }
  .vrt__block--end .vrt__h5 { text-align: left; }
  /* enlace "Reservar" centrado en el medio (como "IR A MATER" en Central) */
  .vrt__block--end .vrt__link { align-self: center; }

  /* FOOTER: una columna, todo centrado; el padding inferior cubre el área segura de iOS */
  .footer { padding: 48px 28px calc(48px + env(safe-area-inset-bottom)); }
  .footer__grid { grid-template-columns: 1fr; gap: 18px; padding: 8px 0; }
  .footer__col,
  .footer__col:nth-child(1),
  .footer__col:nth-child(2),
  .footer__col:nth-child(3) { align-items: center; text-align: center; }
  /* orden en móvil: contacto → horarios → legales (como Central) */
  .footer__col:nth-child(2) { order: 1; }   /* contacto */
  .footer__col:nth-child(3) { order: 2; }   /* horarios */
  .footer__col:nth-child(1) { order: 3; }   /* legales */
}

/* ============================================================
   PÁGINA RESERVAS — split: texto (izq) · video (der)
   ============================================================ */
.resv {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;     /* permite que el video haga sticky dentro de su celda */
  min-height: 100vh;
}
.resv__text {
  background: var(--bg);
  color: rgb(34, 34, 34);
  display: flex;
  flex-direction: column;
  align-items: center;          /* columna centrada horizontalmente */
  justify-content: flex-start;  /* alineada arriba (como el original) */
  gap: 64px;                    /* separación entre grupos */
  padding: 205px 40px 80px;     /* top: baja todo el contenido un poco más */
}
.resv__group {
  width: 400px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;                    /* separación dentro del grupo */
}
.resv__group--tight { gap: 24px; }
.resv__group--right { align-items: flex-end; gap: 24px; }

/* Experiencia: etiqueta + descripción + línea divisoria (1px) debajo */
.resv__exp {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  text-decoration: none;
  color: rgb(34, 34, 34);
}
.resv__exp-line {
  width: 100%;
  height: 1px;
  background: rgb(34, 34, 34);
}
.resv__exp:hover .resv__label { opacity: .55; }

/* Enlace de reservar (alineado a la derecha) */
.resv__reserve {
  font-family: var(--sans);
  font-weight: 500;
  font-size: 10px;
  line-height: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgb(34, 34, 34);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
  transition: opacity .3s ease;
}
.resv__reserve:hover { opacity: .6; }
.resv__heading {
  font-family: var(--sans);
  font-weight: 200;
  font-style: italic;
  font-size: 16px;
  line-height: 18px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: rgb(34, 34, 34);
  margin-bottom: 16px;     /* más separación entre el título y los items */
}
.resv__block { display: flex; flex-direction: column; gap: 12px; }
.resv__label {
  font-family: var(--sans);
  font-weight: 500;
  font-size: 10px;
  line-height: 14.4px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgb(34, 34, 34);
}
.resv__p {
  font-family: var(--sans);
  font-weight: 200;
  font-size: 14px;
  line-height: 20px;
  color: rgb(34, 34, 34);
}
.resv__p a { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
.resv__cta {
  align-self: start;
  margin-top: 8px;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 10px;
  line-height: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgb(34, 34, 34);
  text-decoration: none;
  border: 1px solid rgb(34, 34, 34);
  padding: 12px 26px;
  transition: background .3s ease, color .3s ease;
}
.resv__cta:hover { background: rgb(34, 34, 34); color: var(--bg); }
.resv__media {
  position: sticky;       /* el video se queda fijo a pantalla completa al hacer scroll */
  top: 0;
  height: 100vh;
  overflow: hidden;
}
.resv__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

/* Header en la página de reservas: logo oscuro (fondo claro izq),
   enlaces + globo claros (sobre el video der) */
.page-reservas .nav__logo { color: rgb(34, 34, 34); }
.page-reservas .nav__links a,
.page-reservas .nav__lang-globe { color: rgb(242, 242, 242); }
/* Hamburguesa oscura en páginas de fondo claro (si no, sería blanca sobre blanco) */
.page-reservas .nav__burger span,
.page-privacy .nav__burger span { background: rgb(34, 34, 34); }

/* Header en la página de contacto: espejado — logo claro (sobre el video izq),
   enlaces + globo oscuros (sobre el texto der) */
.page-contact .nav__logo { color: rgb(242, 242, 242); }
.page-contact .nav__links a,
.page-contact .nav__lang-globe { color: rgb(34, 34, 34); }
.page-contact .nav__burger span { background: rgb(242, 242, 242); }

/* ============================================================
   PÁGINA LEGAL (privacidad) — izq vacía sticky · der texto
   ============================================================ */
.legal {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  background: var(--bg);
  color: rgb(34, 34, 34);
  min-height: 100vh;
}
.legal__left { position: sticky; top: 0; height: 100vh; }
.legal__content {
  display: flex;
  flex-direction: column;
  gap: 32px;
  padding: 148px 80px 80px 54px;   /* igual que framer-x3hu70 */
  max-width: 693px;
}
.legal__intro {
  font-family: var(--sans);
  font-weight: 200;
  font-size: 18px;
  line-height: 21.6px;
  letter-spacing: 2.5px;
  color: rgb(34, 34, 34);
}
.legal__block { display: flex; flex-direction: column; gap: 12px; }
.legal__h {
  font-family: var(--sans);
  font-weight: 500;
  font-size: 10px;
  line-height: 14.4px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgb(34, 34, 34);
}
.legal__p {
  font-family: var(--sans);
  font-weight: 200;
  font-size: 14px;
  line-height: 20px;
  color: rgb(34, 34, 34);
  text-decoration: none;
}
a.legal__p { transition: opacity .3s ease; }
a.legal__p:hover { opacity: .6; }
.legal__date { opacity: .6; }

/* ---- Formulario (Libro de Reclamaciones) ---- */
.cform { display: flex; flex-direction: column; gap: 32px; }
.cform__section { display: flex; flex-direction: column; gap: 16px; }
.cform__row { display: flex; gap: 24px; }
.cform__field { display: flex; flex-direction: column; gap: 6px; flex: 1; min-width: 0; }
.cform__field > span {
  font-family: var(--sans); font-weight: 500;
  font-size: 10px; line-height: 14.4px; letter-spacing: 1.5px;
  text-transform: uppercase; color: rgb(34, 34, 34);
}
.cform input,
.cform select,
.cform textarea {
  font-family: var(--sans); font-weight: 200;
  font-size: 14px; line-height: 20px; color: rgb(34, 34, 34);
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(34, 34, 34, .35);
  padding: 8px 0;
  outline: none;
  width: 100%;
  border-radius: 0;
}
.cform input:focus,
.cform select:focus,
.cform textarea:focus { border-bottom-color: rgb(34, 34, 34); }
.cform textarea { resize: vertical; }
.cform__check {
  display: flex; align-items: flex-start; gap: 10px;
  font-family: var(--sans); font-weight: 200; font-size: 13px;
  line-height: 18px; color: rgb(34, 34, 34); cursor: pointer;
}
.cform__check input { width: 16px; height: 16px; margin-top: 1px; accent-color: rgb(34, 34, 34); }
.cform__submit {
  align-self: flex-start;
  font-family: var(--sans); font-weight: 500;
  font-size: 10px; line-height: 13px; letter-spacing: 1.5px;
  text-transform: uppercase; color: rgb(34, 34, 34);
  background: transparent;
  border: 1px solid rgb(34, 34, 34);
  padding: 14px 40px; cursor: pointer;
  transition: background .3s ease, color .3s ease;
}
.cform__submit:hover { background: rgb(34, 34, 34); color: var(--bg); }
@media (max-width: 800px) {
  .cform__row { flex-direction: column; gap: 16px; }
}

/* Header en página legal: todo el fondo es claro → texto oscuro */
.page-privacy .nav__logo,
.page-privacy .nav__links a,
.page-privacy .nav__lang-globe { color: rgb(34, 34, 34); }

@media (max-width: 800px) {
  .legal { grid-template-columns: 1fr; }
  .legal__left { display: none; }
  .legal__content { padding: 116px 24px 56px; }
}

/* Encabezado de contacto (p · UL 18/21.6 · ls 2.5) */
.contact__heading {
  font-family: var(--sans);
  font-weight: 200;
  font-style: italic;
  font-size: 18px;
  line-height: 21.6px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: rgb(34, 34, 34);
  margin-bottom: 16px;
}

/* Enlaces que usan el estilo de párrafo (contacto) */
a.resv__p { text-decoration: none; transition: opacity .3s ease; }
a.resv__p:hover { opacity: .6; }

@media (max-width: 800px) {
  /* minmax(0,1fr) + ancho 100% del grupo: evita que el width:400px fijo
     ensanche la columna y provoque scroll horizontal en móvil */
  .resv { grid-template-columns: minmax(0, 1fr); }
  .resv__text { padding: 116px 24px 48px; }
  .resv__group { width: 100%; }
  /* relative (no static): el vídeo es position:absolute y necesita un
     contenedor posicionado, si no se escapa y no se ve */
  .resv__media { position: relative; height: auto; min-height: 56vh; }
}

/* En móvil el menú es un overlay OSCURO a pantalla completa:
   los enlaces y el icono siempre en blanco (en cualquier página). */
@media (max-width: 900px) {
  .nav__links a,
  .nav__links .nav__lang-globe,
  .page-reservas .nav__links a,
  .page-reservas .nav__links .nav__lang-globe,
  .page-contact .nav__links a,
  .page-contact .nav__links .nav__lang-globe,
  .page-privacy .nav__links a,
  .page-privacy .nav__links .nav__lang-globe { color: rgb(242, 242, 242) !important; }
}
