/*
Theme Name: Getaway Rental
Theme URI: https://getaway-rental.com
Author: Studio Danami
Author URI: https://studiodanami.com
Description: Tema custom para Getaway Rental — alquiler vacacional en Antigua y Ciudad de Guatemala. Codeado a mano por Studio Danami. Base reutilizable.
Version: 0.53.0 — Eventos rediseñada (editorial): fotos reales de eventos (evento-03..16), declaración, mosaico con lightbox, tipos de evento en splits, proceso en 3 pasos. (0.52.0: villas Ermita 3-6 individuales.)
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: getaway
*/

/* ==========================================================================
   Base — diagramación (low-fi). El diseño REAL (colores/tipografía) se
   define tras elegir dirección en Figma. Esto solo ordena la información.
   ========================================================================== */

:root {
  /* Dirección A — "Antigua Cálida" (boutique colonial) */
  --container: 1520px;
  --ink: #3a2e26;       /* café */
  --muted: #8a7a6b;     /* café suave */
  --bg: #ffffff;        /* blanco (cuerpo del sitio) */
  --line: #e6dccb;
  --alt: #f4ece0;       /* crema (navbar y bandas) */
  --accent: #d43a28;    /* terracota-rojo del logo Getaway */
  --accent-2: #c9a24b;  /* ocre */
  --green: #2e4034;     /* verde profundo */
  --stone: #ded5c6;     /* piedra (neutro cálido, tercer color) */
  --font-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-sans: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

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

html { scrollbar-gutter: stable; } /* reserva el ancho del scroll → el header no se "mueve" entre páginas */

body {
  margin: 0;
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--bg);
  line-height: 1.6;
  overflow-x: hidden; /* evita el "asomo" de elementos fijos fuera de pantalla */
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--accent); }
h1, h2, h3 { line-height: 1.14; font-family: var(--font-serif); font-weight: 500; color: var(--ink); letter-spacing: .005em; }
h1 { font-weight: 600; }

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

/* ===== Header (logo centrado: links · logo · idioma+hamburguesa) ===== */
.site-header { border-bottom: 1px solid var(--line); position: sticky; top: 0; background: rgba(244, 236, 224, .82); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); z-index: 1000; }
.site-header .container {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  min-height: 84px;
}
.nav-left  { justify-self: start; }
.nav-center{ justify-self: center; }
.nav-right { justify-self: end; display: flex; align-items: center; gap: 1.1rem; }

/* Marca / logo centrado */
.site-brand { display: inline-flex; align-items: center; gap: .55rem; text-decoration: none; color: var(--ink); }
.site-brand img { height: 42px; width: auto; }
.site-brand .brand-word { font-family: var(--font-serif); font-size: 1.7rem; font-weight: 600; letter-spacing: .02em; line-height: 1; }

/* Links de la izquierda */
.nav-left ul { display: flex; gap: 1.6rem; list-style: none; margin: 0; padding: 0; align-items: center; }
.nav-left a { text-decoration: none; color: var(--ink); font-size: .78rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 500; }
.nav-left a:hover { color: var(--accent); }
.nav-left .gw-btn { color: #fff; }

/* Dropdown "Antigua" (hover, con puente invisible para no perder el cursor) */
.nav-left .has-sub { position: relative; }
.nav-left .sub-menu {
  position: absolute; top: 100%; left: 0; margin: 0;
  display: flex; flex-direction: column; min-width: 240px; list-style: none; padding: .5rem 0;
  background: #fff; border: 1px solid var(--line); border-radius: 2px;
  box-shadow: 0 14px 30px rgba(58, 46, 38, .12); z-index: 1001;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .28s ease, transform .28s ease, visibility 0s .28s;
}
/* Puente invisible que cubre el espacio entre el link y el menú */
.nav-left .sub-menu::before { content: ""; position: absolute; top: -16px; left: 0; right: 0; height: 16px; }
.nav-left .has-sub:hover .sub-menu,
.nav-left .has-sub:focus-within .sub-menu {
  opacity: 1; visibility: visible; transform: none;
  transition: opacity .28s ease, transform .28s ease, visibility 0s 0s;
}
.nav-left .sub-menu li { width: 100%; margin: 0; }
.nav-left .sub-menu a { display: block; padding: .6rem 1.2rem; text-transform: none; letter-spacing: 0; font-size: .92rem; white-space: nowrap; }
.nav-left .sub-menu a:hover { background: var(--alt); color: var(--accent); }

/* Idioma + hamburguesa */
.gw-lang { font-size: .78rem; letter-spacing: .12em; color: var(--muted); white-space: nowrap; }
.gw-lang strong { color: var(--ink); }
.gw-lang a { color: var(--muted); text-decoration: none; }
.gw-lang a:hover { color: var(--accent); }
.gw-lang a.is-active { color: var(--ink); font-weight: 600; }
.nav-toggle { background: none; border: 0; cursor: pointer; display: inline-flex; flex-direction: column; gap: 5px; padding: .4rem 0; }
.nav-toggle span { width: 26px; height: 2px; background: var(--ink); display: block; }

/* ===== Overlay de menú (hamburguesa) ===== */
/* Panel lateral (~1/3 del ancho) — deja ver el fondo */
.nav-overlay {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 2000;
  width: clamp(300px, 33vw, 460px);
  background: var(--green); color: #f4ece0;
  display: flex; flex-direction: column;
  padding: 1.5rem 2rem 2.5rem;
  overflow-y: auto;
  transform: translateX(100%); transition: transform .42s cubic-bezier(.7, 0, .2, 1);
}
/* La sombra solo cuando está abierto, para que no se asome en el borde derecho */
.nav-overlay.is-open { transform: translateX(0); box-shadow: -24px 0 60px rgba(58, 46, 38, .28); }

/* Fondo semitransparente: atenúa pero deja ver el diseño */
.nav-backdrop {
  position: fixed; inset: 0; z-index: 1999;
  background: rgba(58, 46, 38, .28);
  opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s;
}
.nav-backdrop.is-open { opacity: 1; visibility: visible; }
.nav-overlay-top { display: flex; justify-content: space-between; align-items: center; }
.nav-overlay-top .gw-lang, .nav-overlay-top .gw-lang strong, .nav-overlay-top .gw-lang a { color: #d9cbb8; }
.nav-close { background: none; border: 0; color: #f4ece0; font-size: 2.2rem; line-height: 1; cursor: pointer; padding: 0 .2rem; }
.nav-overlay-links { list-style: none; margin: 2.5rem 0 0; padding: 0; }
.nav-overlay-links a { font-family: var(--font-serif); font-size: clamp(1.7rem, 3vw, 2.3rem); color: #f4ece0; text-decoration: none; display: inline-block; padding: .06em 0; font-weight: 500; }
.nav-overlay-links a:hover { color: var(--accent-2); }
.nav-overlay-sub { list-style: none; margin: 1.75rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.nav-overlay-sub a { color: #d9cbb8; text-decoration: none; font-size: .95rem; }
.nav-overlay-sub a:hover { color: var(--accent-2); }
.nav-overlay-foot { margin-top: auto; padding-top: 2rem; color: #c9b8a3; font-size: .9rem; }
.nav-overlay-foot a { color: #f4ece0; }
body.nav-open { overflow: hidden; }

/* ===== Botones ===== */
.gw-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem; white-space: nowrap;
  background: var(--accent); color: #fff;
  padding: .85rem 1.7rem; border-radius: 2px; text-decoration: none;
  font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .1em;
  transition: background .2s, transform .2s;
}
.gw-btn .gw-arrow { font-size: 1.1rem; transition: transform .4s cubic-bezier(.16, 1, .3, 1); }
.gw-btn:hover .gw-arrow { transform: translateX(5px); }
.gw-btn:hover, .gw-btn:focus { background: #b22f1e; color: #fff; transform: translateY(-1px); }
.gw-btn--ghost { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.gw-btn--ghost:hover { background: var(--ink); color: var(--bg); }
.gw-btn--sm { padding: .55rem 1.05rem; font-size: .72rem; }
.gw-cta-row { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 1.5rem; }

/* ===== Secciones ===== */
.gw-section { padding: clamp(6rem, 11vw, 13rem) 0; } /* mucho aire = high-end */
.gw-section--alt { background: var(--alt); }
.gw-section--stone { background: var(--stone); }

/* Encabezado de sección editorial (alineado a la izquierda, jerarquía con espacio) */
.gw-sec-head { max-width: 50ch; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.gw-sec-head .gw-eyebrow { margin-bottom: .8rem; }
.gw-sec-head h2 { font-size: clamp(2rem, 3.8vw, 3.1rem); letter-spacing: -.01em; margin: 0; }
.gw-sec-head .gw-lead { margin-top: 1rem; }
.gw-sec-head--center { max-width: 64ch; margin-left: auto; margin-right: auto; text-align: center; }
.gw-sec-head--center .gw-lead { margin-left: auto; margin-right: auto; max-width: 52ch; }

/* Intro editorial de páginas internas */
.gw-page-intro { padding: clamp(5rem, 9vw, 9rem) 0 clamp(2.5rem, 5vw, 4rem); }
.gw-page-title { font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.08; letter-spacing: -.01em; margin: .4rem 0 0; max-width: 18ch; }
.gw-page-intro .gw-lead { margin-top: 1.2rem; }

/* Páginas de propiedad: encabezado + galería editorial */
.gw-prop-loc { margin-bottom: .6rem; }
.gw-prop-title { font-size: clamp(2.2rem, 4.5vw, 3.6rem); line-height: 1.08; letter-spacing: -.01em; margin: .3rem 0 .7rem; }
.gw-prop-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-bottom: 1.2rem; }
.gw-prop-rating { display: inline-flex; align-items: center; gap: .35rem; color: var(--muted); font-size: .95rem; }
.gw-prop-rating .material-symbols-outlined { font-size: 1.3rem; color: #e6a700; }
.gw-prop-meta .gw-badge-fav { margin: 0; }
/* Descripción centrada bajo el hero (antes de la galería) */
.gw-section--has-cover { padding-top: clamp(1.5rem, 3vw, 2.5rem); }
.gw-prop-lead-desc { max-width: 64rem; margin: clamp(2.75rem, 5.5vw, 5rem) auto; text-align: center; }
.gw-prop-lead-desc p { font-size: clamp(1.05rem, 1.5vw, 1.35rem); line-height: 1.6; color: var(--ink); margin: 0 0 1rem; }
.gw-prop-lead-desc p:last-child { margin-bottom: 0; }

.gw-prop-gallery { margin-top: 2rem; }
.gw-prop-hero { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 2px; display: block; }
.gw-prop-thumbs { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .6rem; margin-top: .6rem; }
.gw-prop-thumbs img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; display: block; }
/* Encabezado de propiedad sin portada: texto (izq) + imagen (der), asimétrico */
.gw-prop-hero-split { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.gw-prop-hero-split--text { grid-template-columns: 1fr; max-width: 62rem; }
.gw-prop-hero-split-text .gw-prop-title { margin-top: 0; }
.gw-prop-hero-split-text .gw-lead { margin: 0; max-width: 44ch; }
.gw-prop-hero-split-media { border-radius: 2px; overflow: hidden; box-shadow: 0 24px 50px rgba(58, 46, 38, .16); position: relative; aspect-ratio: 4 / 5; }
.gw-prop-hero-split-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gw-prop-slideshow { cursor: zoom-in; }
.gw-prop-slideshow .gw-slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.1s ease; }
.gw-prop-slideshow .gw-slide.is-active { opacity: 1; }
/* Hero de propiedad a pantalla completa (slideshow izq + panel de color der) */
.gw-prop-hero2 { display: grid; grid-template-columns: 1fr 1fr; min-height: min(86vh, 760px); }
.gw-prop-hero2-media { position: relative; overflow: hidden; cursor: zoom-in; background: var(--ink); }
.gw-prop-hero2-panel { background: var(--green); color: #fff; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(2rem, 4.5vw, 5rem); }
.gw-prop-hero2-panel .gw-eyebrow { color: #fff; margin: 0; }
.gw-prop-hero2-title { font-family: var(--font-serif); font-size: clamp(2.4rem, 4.6vw, 4.6rem); line-height: 1.06; letter-spacing: .03em; text-transform: uppercase; margin: 1rem 0 0; color: #fff; }
.gw-prop-hero2-foot { margin-top: auto; padding-top: 2rem; }
.gw-prop-hero2-foot .gw-lead { color: #fff; margin: 0; max-width: 46ch; }
.gw-prop-meta--panel { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; margin: 0 0 1rem; }
.gw-prop-meta--panel .gw-prop-rating, .gw-prop-meta--panel .gw-badge-fav { color: #fff; }
/* Controles del slideshow (referencia Ballena): barras de tiempo arriba + flechas abajo */
.gw-slide-bars { position: absolute; top: clamp(1rem, 2vw, 1.6rem); left: clamp(1rem, 2vw, 2rem); width: min(42%, 420px); display: flex; gap: .4rem; z-index: 2; }
.gw-slide-bar { flex: 1; height: 3px; border-radius: 2px; background: rgba(255, 255, 255, .35); overflow: hidden; }
.gw-slide-bar > i { display: block; height: 100%; width: 0; background: #fff; }
.gw-slide-nav { position: absolute; left: clamp(1rem, 2vw, 2rem); bottom: clamp(1rem, 2vw, 1.6rem); display: flex; gap: .6rem; z-index: 2; }
.gw-slide-arrow { width: 46px; height: 46px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .75); background: rgba(0, 0, 0, .18); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .25s ease; }
.gw-slide-arrow:hover { background: rgba(0, 0, 0, .42); }
.gw-slide-arrow .material-symbols-outlined { font-size: 1.4rem; }
@media (max-width: 860px) {
  .gw-prop-hero2 { grid-template-columns: 1fr; min-height: 0; }
  .gw-prop-hero2-media { min-height: 58vh; }
  .gw-prop-hero2-panel { padding: 2rem 1.5rem; gap: 1.5rem; }
  .gw-prop-hero2-foot { margin-top: 0; padding-top: 0; }
  .gw-slide-bars { width: calc(100% - 3rem); }
}
.gw-prop-gallery--grid .gw-prop-thumbs { margin-top: 0; }
/* Galería estilo Airbnb: imágenes clicables + botón + lightbox */
.gw-lb { cursor: zoom-in; }
.gw-gallery-all { display: flex; width: fit-content; margin-left: auto; align-items: center; gap: .5rem; margin-top: 1.1rem; cursor: pointer; background: var(--bg); color: var(--ink); border: 1px solid var(--ink); border-radius: 2px; padding: .65rem 1.2rem; font-family: var(--font-body); font-weight: 600; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; transition: background .25s, color .25s; }
.gw-gallery-all:hover { background: var(--ink); color: #fff; }
.gw-gallery-all .material-symbols-outlined { font-size: 1.1rem; }
.gw-lightbox { position: fixed; inset: 0; z-index: 5000; display: none; background: rgba(20, 14, 10, .95); }
.gw-lightbox.is-open { display: flex; align-items: center; justify-content: center; }
.gw-lightbox-img { max-width: 92vw; max-height: 84vh; object-fit: contain; border-radius: 2px; box-shadow: 0 24px 70px rgba(0, 0, 0, .55); }
.gw-lb-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255, 255, 255, .12); color: #fff; border: 0; width: 52px; height: 52px; border-radius: 999px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.gw-lb-btn:hover { background: rgba(255, 255, 255, .26); }
.gw-lb-prev { left: 2vw; }
.gw-lb-next { right: 2vw; }
.gw-lb-close { position: absolute; top: 1.4rem; right: 1.4rem; background: none; border: 0; color: #fff; cursor: pointer; padding: .3rem; }
.gw-lb-close .material-symbols-outlined { font-size: 2rem; }
.gw-lb-btn .material-symbols-outlined { font-size: 2rem; }
.gw-lb-count { position: absolute; bottom: 1.4rem; left: 50%; transform: translateX(-50%); color: #fff; font-size: .85rem; letter-spacing: .12em; }
@media (max-width: 640px) { .gw-lb-btn { width: 44px; height: 44px; } .gw-lb-prev { left: .5rem; } .gw-lb-next { right: .5rem; } .gw-lightbox-img { max-width: 96vw; } }
@media (prefers-reduced-motion: reduce) { .gw-lb-btn, .gw-gallery-all { transition: none; } }
@media (max-width: 860px) {
  .gw-prop-hero-split { grid-template-columns: 1fr; gap: 1.4rem; }
  .gw-prop-hero-split-media { aspect-ratio: 16 / 10; }
}

/* Cuerpo de propiedad: contenido (izq, separado por líneas) + reserva sticky (der) */
.gw-prop-body { display: grid; grid-template-columns: 1.7fr 1fr; gap: clamp(2.5rem, 5vw, 5rem); align-items: start; margin-top: clamp(3rem, 6vw, 5rem); }
.gw-prop-main > .gw-prop-block + .gw-prop-block { margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid var(--line); }
.gw-prop-h { font-size: 1.4rem; font-weight: 600; margin: 0 0 1.2rem; }
.gw-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem 1.5rem; }
.gw-facts li { display: flex; align-items: center; gap: .6rem; }
.gw-facts .material-symbols-outlined { color: var(--accent); font-size: 1.5rem; }
.gw-amenity-grid--3 { grid-template-columns: repeat(3, 1fr); }
.gw-tarifas-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(1.5rem, 3vw, 3rem); margin-top: 1.2rem; max-width: 640px; }
.gw-tarifa-h { font-size: .95rem; margin: 0 0 .4rem; }
.gw-prop-reviews { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(2rem, 3.5vw, 3.5rem); }
.gw-prop-review { margin: 0; }
.gw-prop-review blockquote { font-family: var(--font-serif); font-size: 1.3rem; line-height: 1.4; color: var(--ink); margin: .7rem 0 1.1rem; }
.gw-prop-review figcaption { display: flex; align-items: center; gap: .7rem; color: var(--muted); font-size: .9rem; line-height: 1.4; }
.gw-prop-review figcaption strong { color: var(--ink); }

/* Bloque de reserva (sticky) */
.gw-prop-aside { position: sticky; top: 100px; }
.gw-booking { border: 1px solid var(--line); border-radius: 4px; padding: 1.5rem; background: #fff; box-shadow: 0 16px 40px rgba(58, 46, 38, .07); }
.gw-booking-h { font-size: 1.3rem; margin: 0 0 .4rem; }
.gw-booking-price { margin: 0 0 1rem; }
.gw-booking .gw-btn { display: block; width: 100%; text-align: center; margin-top: 1rem; }
.gw-booking-note { color: var(--muted); font-size: .8rem; margin: .9rem 0 0; }

@media (min-width: 901px) and (max-width: 1200px) { .gw-amenity-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) {
  .gw-prop-body { grid-template-columns: 1fr; gap: 2.5rem; }
  .gw-prop-aside { position: static; }
  .gw-facts, .gw-amenity-grid--3, .gw-tarifas-grid, .gw-prop-reviews { grid-template-columns: 1fr; }
}
.gw-section-title { font-size: clamp(1.9rem, 4vw, 2.6rem); margin: 0 0 2rem; }
.gw-eyebrow { text-transform: uppercase; letter-spacing: .18em; font-size: .78rem; color: var(--accent); font-weight: 600; margin: 0 0 .6rem; }
.gw-lead { font-size: 1.15rem; color: var(--muted); max-width: 52ch; }

/* ===== Hero ===== */
.gw-hero { padding: 4.5rem 0 0; }
.gw-hero h1 { font-size: clamp(2.8rem, 6.5vw, 4.6rem); font-weight: 700; margin: 0 0 1rem; }
.gw-ph--hero { height: 340px; margin-top: 2.5rem; }

/* ===== Grids ===== */
.gw-grid { display: grid; gap: 1.5rem; }
.gw-grid--2 { grid-template-columns: repeat(2, 1fr); }
.gw-grid--3 { grid-template-columns: repeat(3, 1fr); }
.gw-grid--4 { grid-template-columns: repeat(4, 1fr); }

/* ===== Placeholder de imagen ===== */
.gw-ph {
  background: #ece7df;
  border: 1px dashed #c9bfae;
  border-radius: 2px;
  min-height: 170px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8a7f6d;
  font-size: .9rem;
  text-align: center;
  padding: 1rem;
}

/* ===== Cards ===== */
.gw-card, .gw-destino {
  border: 1px solid var(--line);
  border-radius: 2px;
  padding: 1rem;
  text-decoration: none;
  color: var(--ink);
  display: block;
  background: var(--bg);
}
.gw-card h3, .gw-destino h3 { margin: .75rem 0 .25rem; font-size: 1.1rem; }
.gw-card p, .gw-destino p { color: var(--muted); font-size: .95rem; }
.gw-card .gw-btn { margin-top: .75rem; }
.gw-meta { display: flex; align-items: center; gap: .3rem; font-size: .85rem; color: var(--muted); margin: .25rem 0; }

/* ===== Beneficios / amenidades (íconos Material) ===== */
.gw-benefit { text-align: center; }
.gw-benefit h3 { margin: .5rem 0 .25rem; font-size: 1.05rem; }
.gw-benefit p { color: var(--muted); font-size: .9rem; margin: 0; }
.material-symbols-outlined { font-size: 2rem; color: var(--accent); line-height: 1; font-variation-settings: 'wght' 300, 'opsz' 32; }
.gw-amenities { display: flex; flex-wrap: wrap; gap: 1.5rem 2rem; justify-content: center; }
.gw-amenity { display: flex; align-items: center; gap: .5rem; color: var(--ink); font-size: .95rem; }
.gw-amenity .material-symbols-outlined { font-size: 1.5rem; }

/* Grid editorial de amenidades (home) */
.gw-amenity-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.75rem 2rem; }
.gw-amenity-grid .gw-amenity { font-size: 1rem; }
@media (max-width: 860px) { .gw-amenity-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .gw-amenity-grid { grid-template-columns: 1fr; } }

/* ===== "Ver todas las amenidades" (botón → pop-up) ===== */
.gw-amenities-more {
  display: inline-flex; align-items: center; gap: .5rem;
  margin-top: 1.5rem; padding: .7rem 1.4rem;
  background: none; border: 1px solid var(--ink); border-radius: 2px;
  font-family: inherit; font-size: .95rem; font-weight: 600; color: var(--ink);
  cursor: pointer; transition: background .3s ease, color .3s ease;
}
.gw-amenities-more .material-symbols-outlined { font-size: 1.15rem; transition: transform .4s cubic-bezier(.16, 1, .3, 1); }
.gw-amenities-more:hover { background: var(--ink); color: #fff; }
.gw-amenities-more:hover .material-symbols-outlined { transform: translateX(4px); }

/* ===== Pop-up / modal ===== */
.gw-modal { position: fixed; inset: 0; z-index: 3000; display: none; }
.gw-modal.is-open { display: block; }
.gw-modal-backdrop { position: absolute; inset: 0; background: rgba(34, 25, 19, .55); animation: gw-fade .3s ease; }
.gw-modal-panel {
  position: relative; z-index: 1;
  max-width: 720px; width: calc(100% - 2.5rem); max-height: 84vh; overflow-y: auto;
  margin: 8vh auto 0; background: #fff; border-radius: 2px;
  padding: clamp(1.75rem, 4vw, 3rem);
  box-shadow: 0 30px 80px rgba(34, 25, 19, .3);
  animation: gw-modal-rise .45s cubic-bezier(.16, 1, .3, 1);
}
.gw-modal-close {
  position: absolute; top: .9rem; right: .9rem; width: 40px; height: 40px;
  border: 0; background: none; font-size: 1.7rem; line-height: 1; cursor: pointer;
  color: var(--ink); border-radius: 50%; transition: background .25s ease;
}
.gw-modal-close:hover { background: var(--alt); }
.gw-modal-title { margin: 0 0 1.5rem; font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
.gw-modal .gw-amenity-grid--modal { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.1rem 1.75rem; }
body.gw-modal-open { overflow: hidden; }
@keyframes gw-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gw-modal-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@media (max-width: 560px) { .gw-modal .gw-amenity-grid--modal { grid-template-columns: 1fr; } }
/* Amenidades agrupadas por categoría (estilo Airbnb) */
.gw-amen-group + .gw-amen-group { margin-top: clamp(1.6rem, 3vw, 2.5rem); }
.gw-amen-group-h { margin: 0 0 1rem; padding-bottom: .6rem; border-bottom: 1px solid var(--line); font-family: var(--font-sans); font-size: 1.05rem; font-weight: 600; letter-spacing: .01em; color: var(--ink); }

/* ===== Reseñas a ancho completo (debajo de la grilla de la ficha) ===== */
.gw-prop-reviews-section { border-top: 1px solid var(--line); margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: clamp(2.5rem, 5vw, 4rem); }

/* ===== Reseñas editoriales (una a la vez, con flechas) ===== */
.gw-quotes .gw-sec-head { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.gw-quote-mark { display: block; font-family: var(--font-serif); font-size: clamp(3.5rem, 7vw, 6rem); line-height: .5; color: var(--ink); }
.gw-quotes-texts { display: grid; margin: clamp(1.25rem, 2.5vw, 2rem) 0 clamp(2rem, 4vw, 3rem); }
.gw-quote-text {
  grid-area: 1 / 1; margin: 0; max-width: 64ch;
  font-family: var(--font-serif); font-size: clamp(1.35rem, 2.3vw, 2.1rem); line-height: 1.4; color: var(--ink);
  opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility 0s .5s;
}
.gw-quote-text.is-active { opacity: 1; visibility: visible; transition: opacity .5s ease; }
.gw-quote-rule { border: 0; border-top: 1px solid var(--line); margin: 0; }
.gw-quotes-foot { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: clamp(1.1rem, 2.4vw, 1.75rem); }
.gw-quotes-authors { display: grid; }
.gw-quote-author { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility 0s .5s; }
.gw-quote-author.is-active { opacity: 1; visibility: visible; transition: opacity .5s ease; }
.gw-quote-author strong { display: block; font-size: 1.05rem; }
.gw-quote-role { color: var(--muted); font-size: .9rem; }
.gw-quote-nav { display: flex; gap: .75rem; flex: 0 0 auto; }
.gw-quote-arrow {
  width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 50%;
  background: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
  color: var(--ink); transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.gw-quote-arrow:hover { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ===== Reseñas (avatar de inicial — sin fotos reales, por privacidad) ===== */
.gw-review-head { display: flex; align-items: center; gap: .7rem; margin-bottom: .6rem; }
.gw-avatar {
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--accent); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 1.1rem; flex: 0 0 auto;
}
.gw-review-name { margin: 0; font-weight: 600; font-size: .95rem; color: var(--ink); }
.gw-review-stars { margin: 0; color: #e6a700; font-size: .85rem; }
.gw-via { color: var(--muted); font-size: .8rem; font-weight: 400; }

/* ===== Badge "Favorito entre huéspedes" (recreado, no captura de Airbnb) ===== */
.gw-badge-fav {
  display: inline-flex; align-items: center; gap: .4rem;
  background: var(--alt); border: 1px solid var(--line);
  border-radius: 2px; padding: .3rem .6rem;
  font-size: .8rem; font-weight: 600; color: var(--ink); margin: .4rem 0; text-transform: uppercase; letter-spacing: .06em;
}
.gw-badge-fav .material-symbols-outlined { font-size: 1.2rem; color: var(--accent); }

/* ===== Tarifas y cargos ===== */
.gw-tarifa-list { list-style: none; margin: 0; padding: 0; }
.gw-tarifa-list li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--line); }
.gw-tarifa-list li:last-child { border-bottom: 0; }
.gw-tarifa-list span { color: var(--muted); }
.gw-tarifa-list strong { white-space: nowrap; }

/* ===== Galería de fotos (imágenes reales) ===== */
.gw-gimg { width: 100%; height: 170px; object-fit: cover; border-radius: 2px; display: block; }

/* ===== Destinos (split alternado full-bleed, estilo editorial) ===== */
.gw-destinos { display: flex; flex-direction: column; }
.gw-split { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; text-decoration: none; color: var(--ink); background: var(--alt); }
.gw-split + .gw-split { border-top: 1px solid var(--line); } /* línea fina entre filas, una sola paleta */
.gw-split-text { display: flex; flex-direction: column; justify-content: center; padding: clamp(2.5rem, 6vw, 6.5rem); }
.gw-split-text h2 { font-size: clamp(2rem, 3.6vw, 3.4rem); letter-spacing: -.01em; margin: .4rem 0 1rem; }
.gw-split-text > p { color: var(--muted); max-width: 46ch; font-size: 1.05rem; line-height: 1.7; margin: 0; }
.gw-split-img { position: relative; overflow: hidden; min-height: 560px; }
.gw-split-img-inner { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .8s cubic-bezier(.16, 1, .3, 1); }
.gw-split:hover .gw-split-img-inner { transform: scale(1.06); }
.gw-arrow-link { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.75rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 600; color: var(--accent); }
.gw-arrow-link .material-symbols-outlined { font-size: 1.2rem; color: var(--accent); transition: transform .4s cubic-bezier(.16, 1, .3, 1); }
.gw-split:hover .gw-arrow { transform: translateX(7px); }

/* ===== Beneficios (editorial: alineado a la izquierda, con línea superior) ===== */
.gw-benefits .gw-benefit { text-align: left; border-top: 1px solid rgba(58, 46, 38, .16); padding-top: 1.3rem; }
.gw-benefits .gw-benefit h3 { margin: .9rem 0 .35rem; }
.gw-benefits .material-symbols-outlined { font-size: 1.9rem; }

/* ===== Propiedades destacadas (galería editorial 2 col, sin cajas) ===== */
.gw-feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 5vw, 5rem) clamp(2rem, 4vw, 4rem); }
.gw-feature { text-decoration: none; color: var(--ink); display: block; }
.gw-feature-img { position: relative; overflow: hidden; aspect-ratio: 16 / 11; }
.gw-feature-img-inner { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .8s cubic-bezier(.16, 1, .3, 1); }
.gw-feature:hover .gw-feature-img-inner { transform: scale(1.05); }
.gw-feature-body { padding-top: 1.3rem; }
.gw-feature-top { display: flex; align-items: center; gap: .8rem; color: var(--muted); font-size: .76rem; text-transform: uppercase; letter-spacing: .14em; }
.gw-feature-num { color: var(--accent); font-weight: 700; }
.gw-feature h3 { font-size: clamp(1.5rem, 2.2vw, 2.05rem); margin: .55rem 0 .5rem; letter-spacing: -.01em; }
.gw-feature-body > p { color: var(--muted); margin: 0 0 1rem; max-width: 46ch; }
@media (max-width: 760px) { .gw-feature-grid { grid-template-columns: 1fr; } }

/* ===== Tarjetas de unidades (villas / casas) — editorial, sin caja ===== */
.gw-units { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.75rem, 3.2vw, 3rem) clamp(1.5rem, 3vw, 2.5rem); margin-top: clamp(2.5rem, 5vw, 4rem); }
.gw-units--2 { grid-template-columns: repeat(2, 1fr); }
.gw-unit { display: block; }
.gw-unit-img { position: relative; overflow: hidden; aspect-ratio: 4 / 3; border-radius: 2px; }
.gw-unit-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s cubic-bezier(.16, 1, .3, 1); }
.gw-unit:hover .gw-unit-img img { transform: scale(1.05); }
.gw-unit-body { padding-top: 1.1rem; }
.gw-unit-head { display: flex; align-items: baseline; gap: .5rem .9rem; flex-wrap: wrap; }
.gw-unit-head h3 { font-size: clamp(1.3rem, 1.8vw, 1.55rem); margin: 0; letter-spacing: -.01em; }
.gw-unit-head .gw-badge-fav { margin: 0; }
.gw-unit .gw-meta { margin: .45rem 0 0; }
.gw-unit-extra { color: var(--muted); margin: .55rem 0 0; }
.gw-unit-na { display: inline-block; margin-top: .9rem; color: var(--muted); font-size: .82rem; text-transform: uppercase; letter-spacing: .12em; }
.gw-unit .gw-arrow-link { margin-top: .9rem; }
@media (max-width: 860px) { .gw-units { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .gw-units, .gw-units--2 { grid-template-columns: 1fr; } }

/* ===== Amenidades: marquee con fotos de diagramación variada ===== */
.gw-amenities { padding-top: clamp(3.25rem, 6vw, 6rem); padding-bottom: clamp(3.25rem, 6vw, 6rem); }
.gw-amenities .gw-sec-head--center { margin-bottom: clamp(1.75rem, 3.5vw, 2.75rem); }
.gw-marquee { position: relative; width: 100%; overflow: hidden; padding: clamp(1.5rem, 3vw, 2.4rem) 0; }
.gw-marquee-track { display: flex; align-items: center; gap: clamp(1rem, 2.1vw, 1.9rem); width: max-content; animation: gw-marquee 44s linear infinite; }
.gw-marquee:hover .gw-marquee-track { animation-play-state: paused; }
@keyframes gw-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.gw-mq-label { flex: 0 0 auto; font-size: clamp(.78rem, 1.05vw, 1rem); font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: var(--ink); white-space: nowrap; }
.gw-mq-dot { flex: 0 0 auto; color: var(--accent-2); font-size: .72rem; line-height: 1; }
.gw-mq-photo { flex: 0 0 auto; background-size: cover; background-position: center; background-repeat: no-repeat; background-color: #4a3c33; }
.gw-mq-photo--circle { width: 98px; height: 98px; border-radius: 50%; }
.gw-mq-photo--tall { width: 92px; height: 138px; border-radius: 999px; }
.gw-mq-photo--wide { width: 188px; height: 108px; border-radius: 12px; }
.gw-amenities-note { margin-top: clamp(2.2rem, 4vw, 3.2rem); text-align: center; }

/* ===== Preguntas frecuentes (acordeón) ===== */
.gw-faq-layout { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.gw-faq-intro h2 { font-size: clamp(1.8rem, 3.2vw, 2.8rem); line-height: 1.12; letter-spacing: -.01em; margin: .8rem 0 0; max-width: 16ch; }
.gw-faq-note { margin-top: 1.5rem; }
.gw-faq { max-width: 60rem; margin: clamp(2.5rem, 5vw, 4rem) auto 0; }
.gw-faq-layout .gw-faq { max-width: none; margin: 0; }
@media (max-width: 860px) { .gw-faq-layout { grid-template-columns: 1fr; gap: clamp(1.5rem, 4vw, 2.5rem); } }
.gw-faq-item { border-bottom: 1px solid var(--line); }
.gw-faq-q { width: 100%; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: clamp(1.05rem, 2vw, 1.5rem) 0; background: none; border: 0; text-align: left; font-family: var(--font-serif); font-size: clamp(1.15rem, 1.8vw, 1.4rem); color: var(--ink); }
.gw-faq-q::after { content: "+"; flex: 0 0 auto; font-size: 1.6rem; line-height: 1; color: var(--accent); transition: transform .35s cubic-bezier(.16, 1, .3, 1); }
.gw-faq-item.is-open .gw-faq-q::after { transform: rotate(45deg); }
.gw-faq-q:hover { color: var(--accent); }
.gw-faq-aw { overflow: hidden; max-height: 0; opacity: 0; visibility: hidden; transition: max-height .5s cubic-bezier(.16, 1, .3, 1), opacity .35s ease, visibility 0s linear .5s; }
.gw-faq-item.is-open .gw-faq-aw { max-height: 40rem; opacity: 1; visibility: visible; transition: max-height .55s cubic-bezier(.16, 1, .3, 1), opacity .45s ease .1s, visibility 0s; }
.gw-faq-a { padding-bottom: clamp(1.2rem, 2.2vw, 1.6rem); max-width: 72ch; color: var(--muted); line-height: 1.65; }
@media (prefers-reduced-motion: reduce) { .gw-faq-aw { transition: max-height 0s, opacity 0s, visibility 0s; } .gw-faq-q::after { transition: none; } }
@media (max-width: 640px) {
  .gw-mq-photo--circle { width: 78px; height: 78px; }
  .gw-mq-photo--tall { width: 74px; height: 112px; }
  .gw-mq-photo--wide { width: 148px; height: 88px; }
  .gw-mq-label { font-size: .82rem; }
}
@media (prefers-reduced-motion: reduce) { .gw-marquee-track { animation: none; } }

/* Utilidad: visible solo para lectores de pantalla */
.gw-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Accesibilidad: foco visible para teclado + saltar al contenido */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px;
}
.gw-skip {
  position: fixed; top: -100px; left: 1rem; z-index: 4000;
  background: var(--ink); color: #fff; padding: .7rem 1.2rem; border-radius: 2px;
  text-decoration: none; font-size: .9rem; transition: top .25s ease;
}
.gw-skip:focus { top: 1rem; }
#site-main:focus { outline: none; }

/* ===== Blog / Guía ===== */
.gw-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.75rem, 3.5vw, 3rem); }
.gw-blog-card { text-decoration: none; color: var(--ink); display: block; }
.gw-blog-img { aspect-ratio: 16 / 11; background: var(--alt); background-size: cover; background-position: center; border-radius: 2px; overflow: hidden; transition: transform .7s cubic-bezier(.16, 1, .3, 1); }
.gw-blog-card:hover .gw-blog-img { transform: scale(1.03); }
.gw-blog-body { padding-top: 1.1rem; }
.gw-blog-body h3 { font-size: clamp(1.3rem, 1.9vw, 1.6rem); margin: .5rem 0 .5rem; letter-spacing: -.01em; }
.gw-blog-body p { color: var(--muted); margin: 0 0 1rem; }
.gw-blog-body .gw-arrow-link { margin-top: 0; }
.gw-blog-pagination { margin-top: clamp(2.5rem, 5vw, 4rem); display: flex; gap: .4rem; }
.gw-blog-pagination a, .gw-blog-pagination .current { padding: .4rem .85rem; text-decoration: none; color: var(--ink); border: 1px solid var(--line); border-radius: 2px; }
.gw-blog-pagination .current { color: #fff; background: var(--ink); border-color: var(--ink); }
@media (max-width: 860px) { .gw-blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .gw-blog-grid { grid-template-columns: 1fr; } }
.gw-home-blog-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.gw-home-blog-head h2 { margin: .6rem 0 0; font-size: clamp(1.8rem, 3.2vw, 2.8rem); letter-spacing: -.01em; }
.gw-home-blog-wa { margin: clamp(1.5rem, 3vw, 2.5rem) 0 0; color: var(--muted); text-align: center; }
.gw-home-blog-wa a { color: var(--accent); text-decoration: underline; }

/* Fan de tarjetas (blog en home) */
.gw-fan { display: flex; justify-content: center; align-items: flex-end; margin: clamp(2.5rem, 6vw, 5rem) 0 0; padding: 1.5rem 0; }
.gw-fan-card { position: relative; flex: 0 0 auto; width: clamp(180px, 16vw, 240px); aspect-ratio: 3 / 4; border-radius: 6px; overflow: hidden; text-decoration: none; background-size: cover; background-position: center; background-color: var(--ink); box-shadow: 0 14px 30px rgba(58, 46, 38, .18); transform-origin: bottom center; transition: transform .5s cubic-bezier(.16, 1, .3, 1), box-shadow .5s ease; }
.gw-fan-card:not(:first-child) { margin-left: clamp(-3.5rem, -3.5vw, -2rem); }
.gw-fan-card:nth-child(1) { transform: rotate(-9deg) translateY(16px); z-index: 1; }
.gw-fan-card:nth-child(2) { transform: rotate(-4.5deg) translateY(5px); z-index: 2; }
.gw-fan-card:nth-child(3) { transform: rotate(0) translateY(0); z-index: 3; }
.gw-fan-card:nth-child(4) { transform: rotate(4.5deg) translateY(5px); z-index: 4; }
.gw-fan-card:nth-child(5) { transform: rotate(9deg) translateY(16px); z-index: 5; }
.gw-fan-card:hover { transform: rotate(0) translateY(-16px) scale(1.06); z-index: 10; box-shadow: 0 30px 60px rgba(58, 46, 38, .32); }
.gw-fan-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 14, 10, 0) 22%, rgba(20, 14, 10, .5) 52%, rgba(20, 14, 10, .94) 100%); }
.gw-fan-body { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.1rem; display: flex; flex-direction: column; gap: .25rem; color: #fff; }
.gw-fan-cat { font-size: .64rem; text-transform: uppercase; letter-spacing: .14em; color: #f0e6d6; }
.gw-fan-title { font-family: var(--font-serif); font-size: clamp(1.05rem, 1.25vw, 1.25rem); line-height: 1.15; }
.gw-fan-more { margin-top: .4rem; font-size: .68rem; text-transform: uppercase; letter-spacing: .14em; opacity: .85; }
@media (max-width: 860px) {
  .gw-fan { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; gap: 1rem; padding: 1rem .25rem 1.5rem; -webkit-overflow-scrolling: touch; }
  .gw-fan-card { width: 60vw; max-width: 260px; margin-left: 0 !important; transform: none !important; box-shadow: 0 10px 24px rgba(58, 46, 38, .18); }
}
@media (prefers-reduced-motion: reduce) { .gw-fan-card { transition: none; } }

/* Página Blog: destacado + filtros */
.gw-blog-cat { display: inline-block; font-size: .7rem; text-transform: uppercase; letter-spacing: .14em; color: var(--accent); margin-bottom: .4rem; }
.gw-blog-featured { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; text-decoration: none; color: var(--ink); margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.gw-blog-featured-media { aspect-ratio: 4 / 3; background: var(--alt); background-size: cover; background-position: center; border-radius: 2px; overflow: hidden; transition: transform .8s cubic-bezier(.16, 1, .3, 1); }
.gw-blog-featured:hover .gw-blog-featured-media { transform: scale(1.03); }
.gw-blog-featured-flag { display: inline-block; font-size: .68rem; text-transform: uppercase; letter-spacing: .18em; color: var(--muted); margin-bottom: 1rem; }
.gw-blog-featured-body h2 { font-size: clamp(1.8rem, 3.4vw, 3rem); line-height: 1.08; letter-spacing: -.01em; margin: 0 0 1rem; }
.gw-blog-featured-body p { color: var(--muted); font-size: 1.08rem; line-height: 1.7; margin: 0 0 1.4rem; max-width: 46ch; }
@media (max-width: 860px) { .gw-blog-featured { grid-template-columns: 1fr; gap: 1.25rem; } .gw-blog-featured-media { aspect-ratio: 16 / 10; } }
.gw-blog-tools { display: flex; align-items: center; justify-content: space-between; gap: 1rem 1.5rem; flex-wrap: wrap; padding-bottom: clamp(1.5rem, 3vw, 2.25rem); margin-bottom: clamp(2rem, 4vw, 3rem); border-bottom: 1px solid var(--line); }
.gw-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.gw-chip { cursor: pointer; font-family: var(--font-body); font-size: .82rem; letter-spacing: .02em; color: var(--muted); background: none; border: 1px solid var(--line); border-radius: 999px; padding: .5rem 1.05rem; transition: color .3s ease, background .3s ease, border-color .3s ease; }
.gw-chip:hover { color: var(--ink); border-color: var(--ink); }
.gw-chip.is-active { color: #fff; background: var(--ink); border-color: var(--ink); }
.gw-blog-search { display: flex; align-items: center; gap: .5rem; border: 1px solid var(--line); border-radius: 999px; padding: .45rem 1rem; min-width: 230px; transition: border-color .3s ease; }
.gw-blog-search:focus-within { border-color: var(--ink); }
.gw-blog-search .material-symbols-outlined { font-size: 1.15rem; color: var(--muted); }
.gw-blog-search input { border: 0; background: none; outline: none; font-family: var(--font-body); font-size: .92rem; color: var(--ink); width: 100%; }
.gw-blog-empty { color: var(--muted); margin-top: 1rem; }
.gw-blog-card[hidden], .gw-blog-featured[hidden] { display: none; }
@media (max-width: 560px) { .gw-blog-search { width: 100%; min-width: 0; } }

/* Artículo individual */
.gw-article-inner { max-width: 760px; }
.gw-article .gw-eyebrow a { color: inherit; text-decoration: none; }
.gw-article-title { font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.1; letter-spacing: -.01em; margin: .4rem 0 0; }
.gw-article-meta { color: var(--accent); font-size: .72rem; text-transform: uppercase; letter-spacing: .16em; margin: 1rem 0 0; }
.gw-article-cover { margin: clamp(1.5rem, 3vw, 2.5rem) 0; border-radius: 2px; overflow: hidden; }
.gw-article-cover img { width: 100%; height: auto; display: block; }
.gw-article-body { margin-top: clamp(1.25rem, 3vw, 2rem); font-size: 1.08rem; line-height: 1.75; color: var(--ink); }
.gw-article-body h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin: 2.2rem 0 .8rem; }
.gw-article-body h3 { font-size: clamp(1.2rem, 2vw, 1.45rem); margin: 1.8rem 0 .6rem; }
.gw-article-body p { margin: 0 0 1.1rem; }
.gw-article-body ul, .gw-article-body ol { margin: 0 0 1.1rem; padding-left: 1.3rem; }
.gw-article-body li { margin: .35rem 0; }
.gw-article-body a { color: var(--accent); text-decoration: underline; }
.gw-article-body blockquote { margin: 1.5rem 0; padding-left: 1.2rem; border-left: 3px solid var(--accent); color: var(--muted); font-style: italic; }
.gw-article-foot { margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--line); }
.gw-article-foot .gw-cta-row { justify-content: flex-start; margin-top: 1.25rem; }

/* ===== 404 ===== */
.gw-404 { min-height: 64vh; display: flex; align-items: center; text-align: center; }
.gw-404 .container { max-width: 640px; }
.gw-404 .gw-eyebrow { display: block; }
.gw-404-code { font-family: var(--font-serif); font-weight: 500; font-size: clamp(4.5rem, 14vw, 9rem); line-height: 1; color: var(--accent); margin: .3rem 0 0; }
.gw-404 h1 { margin: .4rem 0 0; }
.gw-404 .gw-lead { margin: 1rem auto 0; max-width: 46ch; }
.gw-404 .gw-cta-row { justify-content: center; margin-top: 2rem; }
.gw-404-links { margin-top: 1.5rem; }
.gw-404-links .gw-arrow-link { margin-top: 0; }

/* ===== Portada de página interna (imagen full-bleed + título abajo-izquierda) ===== */
.gw-cover { position: relative; width: 100%; min-height: calc(100vh - 84px); min-height: calc(100svh - 84px); display: flex; align-items: flex-end; background-size: cover; background-position: center; }
.gw-cover-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(34, 25, 19, .25), rgba(34, 25, 19, .45) 42%, rgba(34, 25, 19, .92)); }
.gw-cover-content { position: relative; z-index: 2; max-width: 1520px; width: 100%; margin: 0 auto; padding: 0 clamp(20px, 5vw, 72px) clamp(3rem, 7vh, 6rem); color: #fff; }
.gw-cover-content .gw-eyebrow { color: #f0e6d6; letter-spacing: .26em; }
.gw-cover-content h1 { color: #fff; font-size: clamp(2.6rem, 6.4vw, 5.4rem); font-weight: 500; line-height: 1.04; letter-spacing: -.01em; margin: .55rem 0 .9rem; max-width: 18ch; text-shadow: 0 2px 30px rgba(0, 0, 0, .35); }
.gw-cover-content .gw-lead { color: #f4ece0; max-width: 52ch; text-shadow: 0 1px 14px rgba(0, 0, 0, .3); }
.gw-js .gw-cover-content > * { opacity: 0; animation: gw-hero-rise 1.1s cubic-bezier(.16, 1, .3, 1) forwards; }
.gw-js .gw-cover-content > *:nth-child(1) { animation-delay: .15s; }
.gw-js .gw-cover-content > *:nth-child(2) { animation-delay: .3s; }
.gw-js .gw-cover-content > *:nth-child(3) { animation-delay: .45s; }
.gw-js .gw-cover-content > *:nth-child(4) { animation-delay: .6s; }
.gw-cover-content h2 { color: #fff; font-size: clamp(2.6rem, 6.4vw, 5.4rem); font-weight: 500; line-height: 1.04; letter-spacing: -.01em; margin: .55rem 0 .9rem; max-width: 18ch; text-shadow: 0 2px 30px rgba(0, 0, 0, .35); }
.gw-prop-meta--cover { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; margin: .5rem 0 1.1rem; }
.gw-cover-content .gw-prop-meta--cover,
.gw-cover-content .gw-prop-rating { color: #f4ece0; }
.gw-cover-content .gw-prop-rating .material-symbols-outlined { color: var(--accent-2); }
.gw-cover-content .gw-badge-fav { background: rgba(255, 255, 255, .15); border-color: rgba(255, 255, 255, .4); color: #f4ece0; }
.gw-cover-content .gw-badge-fav .material-symbols-outlined { color: var(--accent-2); }

/* Callout editorial (p. ej. "2 apartamentos idénticos") */
.gw-callout { display: flex; align-items: center; gap: clamp(1rem, 2vw, 1.6rem); max-width: 760px; margin-inline: auto; }
.gw-callout-icon { flex: 0 0 auto; font-size: 2.6rem; color: var(--accent); }
.gw-callout h3 { margin: 0 0 .3rem; font-size: clamp(1.2rem, 1.9vw, 1.55rem); letter-spacing: -.01em; }
.gw-callout p { margin: 0; color: var(--muted); }
@media (max-width: 560px) { .gw-callout { flex-direction: column; text-align: center; } }

/* ===== Acordeón de beneficios (lista + galería vertical sincronizada) ===== */
.gw-acc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: stretch; }
.gw-acc-text h2 { font-size: clamp(1.7rem, 3vw, 2.7rem); line-height: 1.12; letter-spacing: -.01em; margin: .8rem 0 0; max-width: 17ch; }
.gw-acc-list { list-style: none; margin: clamp(2rem, 4vw, 3.25rem) 0 0; padding: 0; border-top: 1px solid var(--line); }
.gw-acc-list li { margin: 0; }
.gw-acc-item { display: flex; align-items: center; gap: .9rem; width: 100%; background: none; border: 0; border-bottom: 1px solid var(--line); padding: clamp(.95rem, 1.7vw, 1.35rem) 0; text-align: left; cursor: pointer; font-family: inherit; font-size: clamp(1.05rem, 1.5vw, 1.3rem); color: var(--muted); transition: color .4s ease; }
.gw-acc-dash { flex: 0 0 auto; width: 1.4rem; height: 1px; background: currentColor; opacity: 0; transition: opacity .4s ease, background-color .4s ease; }
.gw-acc-item:hover { color: var(--ink); }
.gw-acc-item.is-active { color: var(--ink); }
.gw-acc-item.is-active .gw-acc-dash { opacity: 1; background: var(--accent); }

.gw-acc-media { display: flex; flex-direction: column; gap: 0; min-height: clamp(360px, 50vh, 520px); border-radius: 2px; overflow: hidden; }
.gw-acc-img { flex: 1 1 0; min-height: 0; background-size: cover; background-position: center; background-repeat: no-repeat; background-color: var(--alt); transition: flex-grow .8s cubic-bezier(.16, 1, .3, 1); }
.gw-acc-img.is-active { flex-grow: 8; }
.gw-acc-img:not(.is-active) { flex-grow: .7; }
@media (max-width: 860px) {
  .gw-acc-grid { grid-template-columns: 1fr; gap: clamp(1.75rem, 5vw, 2.5rem); }
  .gw-acc-media { min-height: clamp(380px, 80vw, 540px); }
}

/* ===== Formulario editorial (consulta de eventos / contacto) ===== */
.gw-inquiry { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.gw-inquiry-intro h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); letter-spacing: -.01em; margin: .6rem 0 0; }
.gw-inquiry-intro .gw-lead { margin-top: 1rem; }
.gw-inquiry-wa { margin-top: 1.75rem; }
.gw-footer-lbl { font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; color: var(--muted); }
.gw-form--editorial { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem 1.4rem; }
.gw-form--editorial .gw-field-full { grid-column: 1 / -1; margin: 0; }
.gw-form--editorial input,
.gw-form--editorial textarea { width: 100%; border: 0; border-bottom: 1px solid var(--line); background: transparent; padding: .7rem 0; font-family: inherit; font-size: 1rem; color: var(--ink); border-radius: 0; }
.gw-form--editorial input::placeholder,
.gw-form--editorial textarea::placeholder { color: var(--muted); }
.gw-form--editorial input:focus,
.gw-form--editorial textarea:focus { outline: none; border-bottom-color: var(--accent); }
.gw-form--editorial textarea { resize: vertical; }
@media (max-width: 760px) {
  .gw-inquiry { grid-template-columns: 1fr; }
  .gw-form--editorial { grid-template-columns: 1fr; }
}

/* ===== Reseñas (home, destacada + lista al lado) ===== */
.gw-reviews-feature { display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(2.5rem, 5vw, 5rem); align-items: start; }
.gw-review-stars-top { color: #e6a700; font-size: .85rem; letter-spacing: .15em; }
.gw-review-lead { margin: 0; }
.gw-review-lead blockquote { font-family: var(--font-serif); font-size: clamp(1.6rem, 2.7vw, 2.5rem); line-height: 1.3; color: var(--ink); margin: 1rem 0 1.5rem; letter-spacing: -.005em; }
.gw-review-lead figcaption { display: flex; align-items: center; gap: .7rem; color: var(--muted); font-size: .95rem; line-height: 1.4; }
.gw-review-lead figcaption strong { color: var(--ink); font-weight: 600; }
.gw-review-list { display: flex; flex-direction: column; }
.gw-review-mini { margin: 0; padding: 1.5rem 0; border-top: 1px solid rgba(58, 46, 38, .16); }
.gw-review-mini:first-child { border-top: 0; padding-top: 0; }
.gw-review-mini blockquote { margin: .6rem 0 .5rem; font-size: 1rem; line-height: 1.5; color: var(--ink); }
.gw-review-mini figcaption { font-size: .85rem; color: var(--muted); }
.gw-review-mini figcaption strong { color: var(--ink); font-weight: 600; }
@media (max-width: 860px) { .gw-reviews-feature { grid-template-columns: 1fr; gap: 2.5rem; } }
/* Bucle de reseñas: fundido + leve desplazamiento hacia arriba */
.gw-review-lead, .gw-review-list { transition: opacity .45s ease, transform .45s ease; }
.gw-reviews-feature.is-fading .gw-review-lead,
.gw-reviews-feature.is-fading .gw-review-list { opacity: 0; transform: translateY(10px); }
.gw-review-mini--more { opacity: .4; } /* gris: insinúa que hay más reseñas */

/* ===== CTA final (cambia de blanco a verde al hover; botones siempre visibles) ===== */
.gw-cta-final { background: #fff; color: var(--ink); text-align: center; padding: clamp(7rem, 14vw, 17rem) 0; transition: background 1s cubic-bezier(.16, 1, .3, 1), color 1s ease; }
.gw-cta-final.is-active { background: var(--green); color: #f4ece0; }
.gw-cta-final-inner { max-width: 820px; margin-inline: auto; transition: transform 1s cubic-bezier(.16, 1, .3, 1); transform-origin: center; }
.gw-cta-final.is-active .gw-cta-final-inner { transform: scale(1.05); } /* el texto crece al hover */
.gw-cta-final .gw-eyebrow { color: var(--accent); transition: color 1s ease; }
.gw-cta-final.is-active .gw-eyebrow { color: var(--accent-2); }
.gw-cta-final h2 { color: var(--ink); font-size: clamp(2rem, 4.2vw, 3.4rem); line-height: 1.16; margin: .5rem 0 1.2rem; transition: color 1s ease; }
.gw-cta-final.is-active h2 { color: #f9f3ea; }
.gw-cta-final h2 em { font-style: italic; }
.gw-cta-final-text { color: var(--muted); max-width: 60ch; margin: 0 auto 1.3rem; line-height: 1.7; transition: color 1s ease; }
.gw-cta-final.is-active .gw-cta-final-text { color: #e7dcc9; }
.gw-cta-cats { text-transform: uppercase; letter-spacing: .2em; font-size: .75rem; color: var(--muted); margin: 0 0 2.2rem; transition: color 1s ease; }
.gw-cta-final.is-active .gw-cta-cats { color: #c9b8a3; }
.gw-cta-final .gw-btn { transition: background .6s, color .6s, border-color .6s, transform .2s; }
.gw-cta-final.is-active .gw-btn:not(.gw-btn--ghost) { background: #f4ece0; color: var(--green); }
.gw-cta-final .gw-btn--ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.gw-cta-final.is-active .gw-btn--ghost { color: #f4ece0; border-color: #f4ece0; }

@media (max-width: 860px) {
  .gw-split { grid-template-columns: 1fr; }
  .gw-split-img { order: -1; min-height: 300px; }
}

/* ===== Eventos (banda full-bleed, imagen cambia al hover) ===== */
.gw-events { position: relative; overflow: hidden; min-height: clamp(440px, 62vh, 640px); display: flex; align-items: center; }
.gw-events-media { position: absolute; inset: 0; background: #1b1714; }
.gw-events-img { position: absolute; inset: 0; background-size: cover; background-position: center; filter: grayscale(1) contrast(1.05); transition: opacity .8s cubic-bezier(.16, 1, .3, 1); }
.gw-events-img--hover { opacity: 0; }
.gw-events:hover .gw-events-img--hover { opacity: 1; }
.gw-events-duo { display: none; } /* sin tinte verde: foto en blanco y negro */
/* Degradado neutro oscuro a la izquierda (legibilidad), se difumina a la derecha */
.gw-events-scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(26, 22, 18, .82) 0%, rgba(26, 22, 18, .5) 42%, rgba(26, 22, 18, .12) 72%, rgba(26, 22, 18, 0) 100%); }
.gw-events-content { position: relative; z-index: 2; color: #f4ece0; }
.gw-events-content .gw-eyebrow { color: #f0e6d6; }
.gw-events-content h2 { color: #fff; font-size: clamp(2.2rem, 4.6vw, 3.7rem); margin: .4rem 0 1rem; }
.gw-events-lead { color: #f4ece0; font-size: 1.1rem; max-width: 44ch; margin: 0 0 1.9rem; }
@media (max-width: 700px) {
  .gw-events-scrim { background: linear-gradient(180deg, rgba(34, 25, 19, .5), rgba(34, 25, 19, .78)); }
}

/* ===== Bandas (eventos / CTA) ===== */
.gw-band { background: var(--green); color: #f4ece0; text-align: center; }
.gw-band h2 { color: #f4ece0; }
.gw-band p { color: #e7dcc9; max-width: 52ch; margin-inline: auto; }
.gw-band .gw-cta-row { justify-content: center; }
.gw-band .gw-btn--ghost { color: #fff; border-color: #fff; }

/* ===== Footer ===== */
.site-footer { background: var(--green); padding: clamp(3rem, 5vw, 4.5rem) 0 2rem; color: #c9b8a3; font-size: .9rem; }
.site-footer a { color: #e7dcc9; text-decoration: underline; }
.site-footer a:hover { color: #fff; }

/* Estructura del footer */
.gw-footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: clamp(2rem, 4vw, 3.5rem); }
.gw-footer-logo { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; }
.gw-footer-logo img { height: 34px; width: auto; }
.gw-footer-logo span { font-family: var(--font-serif); font-size: 1.45rem; color: #f4ece0; }
.gw-footer-brand p { max-width: 32ch; color: #c9b8a3; margin: 1rem 0 1.2rem; line-height: 1.6; }
.gw-footer-brand .gw-lang { font-size: .8rem; letter-spacing: .1em; }
.gw-footer-brand .gw-lang a { color: #c9b8a3; text-decoration: none; }
.gw-footer-brand .gw-lang a.is-active { color: #f4ece0; font-weight: 600; }
.gw-footer-col h4 { font-family: var(--font-sans); text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; color: #f0e6d6; margin: 0 0 1.1rem; font-weight: 600; }
.gw-footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.gw-footer-col a { color: #e7dcc9; text-decoration: none; }
.gw-footer-col a:hover { color: #fff; }
.gw-footer-lbl { color: #f4ece0; }
.gw-footer-bottom { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: clamp(2.5rem, 4vw, 3.5rem); padding-top: 1.5rem; border-top: 1px solid rgba(244, 236, 224, .15); }
.gw-footer-bottom p { margin: 0; }
@media (max-width: 860px) { .gw-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .gw-footer-grid { grid-template-columns: 1fr; } .gw-footer-bottom { flex-direction: column; } }

/* Footer: contenido en blanco; barra inferior más transparente */
.site-footer,
.site-footer a,
.gw-footer-brand p,
.gw-footer-brand .gw-lang a.is-active,
.gw-footer-col a,
.gw-footer-lbl { color: #fff; }
.gw-footer-brand .gw-lang a { color: rgba(255, 255, 255, .65); }
.gw-footer-brand .gw-lang a.is-active { color: #fff; }
.site-footer .gw-footer-logo,
.site-footer .gw-footer-logo:hover,
.site-footer .gw-footer-logo span { text-decoration: none; }
.gw-footer-bottom { color: rgba(255, 255, 255, .45); border-top-color: rgba(255, 255, 255, .12); }
.gw-footer-bottom a { color: rgba(255, 255, 255, .55); }
.gw-footer-bottom a:hover { color: rgba(255, 255, 255, .85); }

/* ===== Notas de diagramación (se quitan en el diseño final) ===== */
.gw-note { font-size: .8rem; color: #b06; background: #fff4f8; border: 1px dashed #f0b; border-radius: 6px; padding: .2rem .5rem; display: inline-block; }

/* ===== Formularios (low-fi) ===== */
.gw-form { max-width: 520px; }
.gw-form input, .gw-form textarea { width: 100%; padding: .7rem .8rem; margin: .4rem 0; border: 1px solid var(--line); border-radius: 2px; font: inherit; }
.gw-form .gw-btn { margin-top: .5rem; border: 0; cursor: pointer; }

/* ===== Hero slideshow (una imagen grande full-bleed que rota) ===== */
.hero-slideshow { position: relative; width: 100%; height: 100vh; min-height: 560px; overflow: hidden; }
.hero-slides { position: absolute; inset: 0; }
.hero-slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; transition: opacity 1.4s ease;
}
.hero-slide.is-active { opacity: 1; }
.hero-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(34, 25, 19, .58), rgba(34, 25, 19, .48) 45%, rgba(34, 25, 19, .72)); }
.hero-content {
  position: relative; z-index: 3; height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; color: #fff; padding: 0 1.5rem;
}
.hero-content .gw-eyebrow { color: #f0e6d6; letter-spacing: .24em; }
.hero-content h1 { color: #fff; font-size: clamp(2.8rem, 7vw, 5.6rem); font-weight: 500; line-height: 1.04; margin: .4rem 0 .65rem; text-shadow: 0 2px 26px rgba(0, 0, 0, .35); }
.hero-sub { color: #f4ece0; font-size: 1.15rem; margin: 0 auto 1.7rem; max-width: 48ch; text-shadow: 0 1px 14px rgba(0, 0, 0, .3); }
.hero-dots { position: absolute; left: 0; right: 0; bottom: 1.7rem; z-index: 4; display: flex; gap: .55rem; justify-content: center; }
.hero-dots button { width: 9px; height: 9px; border-radius: 50%; border: 0; padding: 0; cursor: pointer; background: rgba(255, 255, 255, .45); transition: background .25s; }
.hero-dots button.is-active { background: #fff; }

/* Botón outline sobre fondo oscuro (hero) */
.gw-btn--on-dark { color: #fff; border-color: #fff; }
.gw-btn--on-dark:hover { background: #fff; color: var(--ink); border-color: #fff; }

/* ===== Animaciones de entrada ===== */
/* Hero: entrada escalonada al cargar */
@keyframes gw-hero-rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
.gw-js .hero-content > * { opacity: 0; animation: gw-hero-rise 1.1s cubic-bezier(.16, 1, .3, 1) forwards; }
.gw-js .hero-content > *:nth-child(1) { animation-delay: .2s; }
.gw-js .hero-content > *:nth-child(2) { animation-delay: .35s; }
.gw-js .hero-content > *:nth-child(3) { animation-delay: .5s; }
.gw-js .hero-content > *:nth-child(4) { animation-delay: .65s; }

/* Scroll reveal: elementos suben y aparecen al entrar en pantalla */
.gw-js .gw-sec-head,
.gw-js .gw-page-intro,
.gw-js .gw-split,
.gw-js .gw-feature,
.gw-js .gw-unit,
.gw-js .gw-benefit,
.gw-js .gw-prop-hero-split,
.gw-js .gw-prop-gallery,
.gw-js .gw-prop-block,
.gw-js .gw-prop-title,
.gw-js .gw-acc-text,
.gw-js .gw-acc-media,
.gw-js .gw-events-content,
.gw-js .gw-reviews-feature,
.gw-js .gw-cta-final-inner,
.gw-js .gw-inquiry-intro,
.gw-js .gw-form--editorial {
  opacity: 0; transform: translateY(28px);
  transition: opacity 1s cubic-bezier(.16, 1, .3, 1), transform 1s cubic-bezier(.16, 1, .3, 1);
  will-change: opacity, transform;
}
.gw-js .is-visible { opacity: 1 !important; transform: none !important; }

/* Stagger en grillas */
.gw-js .gw-feature-grid > .gw-feature:nth-child(2),
.gw-js .gw-units > .gw-unit:nth-child(2),
.gw-js .gw-benefits > .gw-benefit:nth-child(2) { transition-delay: .08s; }
.gw-js .gw-feature-grid > .gw-feature:nth-child(3),
.gw-js .gw-units > .gw-unit:nth-child(3),
.gw-js .gw-benefits > .gw-benefit:nth-child(3) { transition-delay: .16s; }
.gw-js .gw-feature-grid > .gw-feature:nth-child(4),
.gw-js .gw-units > .gw-unit:nth-child(4),
.gw-js .gw-benefits > .gw-benefit:nth-child(4) { transition-delay: .24s; }
.gw-js .gw-units > .gw-unit:nth-child(5) { transition-delay: .32s; }
.gw-js .gw-units > .gw-unit:nth-child(6) { transition-delay: .40s; }

@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition: none; }
}

/* ===== Aviso de cookies ===== */
.gw-cookie {
  position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 2500;
  max-width: 560px; margin-inline: auto;
  display: flex; gap: 1rem; align-items: center; justify-content: space-between;
  background: var(--green); color: #f4ece0;
  padding: 1rem 1.2rem; border-radius: 2px;
  box-shadow: 0 16px 44px rgba(58, 46, 38, .3);
  transform: translateY(180%); transition: transform .45s cubic-bezier(.7, 0, .2, 1);
}
.gw-cookie.is-visible { transform: translateY(0); }
.gw-cookie p { margin: 0; font-size: .9rem; color: #f4ece0; }
.gw-cookie .gw-btn { flex: 0 0 auto; }
.gw-cookie a { color: #fff; text-decoration: underline; }

/* ===== Responsive ===== */
@media (max-width: 920px) {
  .gw-grid--3, .gw-grid--4 { grid-template-columns: repeat(2, 1fr); }
  /* Móvil: logo a la izquierda, idioma + hamburguesa a la derecha; todo lo demás en el overlay */
  .nav-left { display: none; }
  .site-header .container { display: flex; justify-content: space-between; min-height: 68px; }
}
@media (max-width: 600px) {
  .gw-grid--2, .gw-grid--3, .gw-grid--4 { grid-template-columns: 1fr; }
  .gw-section, .gw-hero { padding: 2.5rem 0; }
  .site-brand .brand-word { font-size: 1.4rem; }
  .site-brand img { height: 36px; }
  .nav-overlay { width: min(86vw, 360px); }
  .nav-right .gw-lang { display: none; } /* el idioma vive arriba del overlay en móvil */
}

/* ===== Eventos (editorial) ===== */
/* Declaración: frase grande en serif, centrada, mucho aire */
.gw-ev-statement { max-width: 900px; margin-left: auto; margin-right: auto; text-align: center; }
.gw-ev-statement .gw-lead { margin: 1.6rem auto 0; }
.gw-ev-phrase { font-family: var(--font-serif); font-weight: 500; font-size: clamp(1.9rem, 4vw, 3.4rem); line-height: 1.22; letter-spacing: -.01em; color: var(--ink); margin: 1rem 0 0; }

/* Mosaico de fotos reales: 3 columnas con celdas altas/anchas, flujo denso */
.gw-ev-mosaic { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 250px; grid-auto-flow: dense; gap: 14px; }
.gw-ev-cell { margin: 0; overflow: hidden; border-radius: 2px; position: relative; }
.gw-ev-cell--tall { grid-row: span 2; }
.gw-ev-cell--wide { grid-column: span 2; }
.gw-ev-cell img { width: 100%; height: 100%; object-fit: cover; display: block; cursor: zoom-in; transition: transform .8s cubic-bezier(.16, 1, .3, 1); }
.gw-ev-cell:hover img { transform: scale(1.05); }

/* Proceso: 3 pasos con números grandes en serif terracota */
.gw-ev-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 4vw, 4rem); counter-reset: none; }
.gw-ev-step { border-top: 1px solid var(--ink); padding-top: 1.4rem; }
.gw-ev-num { display: block; font-family: var(--font-serif); font-size: clamp(2.6rem, 4vw, 3.6rem); font-weight: 500; line-height: 1; color: var(--accent); }
.gw-ev-step h3 { font-size: 1.35rem; margin: .9rem 0 .5rem; }
.gw-ev-step p { color: var(--muted); font-size: 1rem; line-height: 1.7; margin: 0; max-width: 34ch; }

@media (max-width: 920px) {
  .gw-ev-mosaic { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 210px; }
}
@media (max-width: 600px) {
  .gw-ev-mosaic { grid-template-columns: 1fr; grid-auto-rows: 240px; gap: 10px; }
  .gw-ev-cell--tall { grid-row: span 1; }
  .gw-ev-cell--wide { grid-column: span 1; }
  .gw-ev-steps { grid-template-columns: 1fr; gap: 1.8rem; }
}

/* ===== Formularios: trampa antispam y avisos de estado ===== */
/* Campo trampa: invisible para personas, visible para bots. No usar display:none,
   algunos bots lo detectan; esto lo saca del flujo sin desaparecerlo del DOM. */
.gw-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px; height: 1px;
  overflow: hidden;
}

.gw-form-msg {
  margin: 0 0 1.25rem;
  padding: .85rem 1.1rem;
  border-left: 3px solid;
  border-radius: 2px;
  font-size: .95rem;
  line-height: 1.5;
}
.gw-form-msg--ok  { border-color: var(--green);  background: #f1f5f1; color: var(--green); }
.gw-form-msg--err { border-color: var(--accent); background: #fdf1ef; color: var(--accent); }
