﻿/* Seasonality Master Template â€” Design system (theme-agnostic structure) */
:root {
  /* â€”â€”â€” Paleta (cambiar por campaÃ±a: Halloween, Navidad, etc.) â€”â€”â€” */
  /* Primario: rosa pastel (uso puntual, no bloques grandes en home) */
  --color-primary: #F3D1DC;
  --color-primary-soft: #FAE8ED;
  --color-primary-muted: rgba(243, 209, 220, 0.4);

  /* Fondo: Colvin-style blanco y off-white para alternar secciones */
  --color-bg: #FFFFFF;
  --color-bg-card: #FFFFFF;
  --color-bg-elevated: #FFFFFF;
  --color-bg-soft: #F5F5F4;
  --color-surface: #FAFAF9;
  --color-footer-bg: #0B2319;
  /* Bordes: neutro suave (Colvin: lÃ­neas discretas) */
  --color-border: rgba(26, 26, 26, 0.08);
  --color-border-strong: rgba(26, 26, 26, 0.12);

  /* Brand: Colvin-inspired light green (principal, hover, soft) */
  --color-accent: #3d7a5a;
  --color-accent-hover: #356b4d;
  --color-accent-muted: rgba(61, 122, 90, 0.12);
  --color-accent-soft: #e8f5ee;
  --color-accent-dark: #2a5a42;
  --color-brand-primary: #3d7a5a;
  --color-brand-secondary: #F3D1DC;
  --color-bg-warm: #FAF8F6;

  /* Oro (valoraciones, badges, detalles premium) */
  --color-gold: #C9A227;
  --color-gold-soft: rgba(201, 162, 39, 0.14);

  /* Texto: Colvin-style negro/gris oscuro, gris medio secundario */
  --color-text: #1A1A1A;
  --color-text-secondary: #404040;
  --color-text-muted: #5C5C5C;
  --color-text-on-accent: #FFFFFF;
  /* Sombras: tinte neutro (Colvin: sutiles) */
  --shadow-tint: 26, 26, 26;
  --shadow-tint-alpha: 0.06;
  --shadow-tint-alpha-strong: 0.1;

  /* â€”â€”â€” TipografÃ­a: Colvin-style (una sola sans, premium pero cercana) â€”â€”â€” */
  /* Logo, headings y body: DM Sans (como Colvin: una familia limpia en todo el sitio) */
  --font-display: 'DM Sans', system-ui, -apple-system, sans-serif;
  --font-body: 'DM Sans', system-ui, -apple-system, sans-serif;

  /* Escala tipogrÃ¡fica: H1 mÃ¡s impactante, H2/H3 bien diferenciados */
  --text-display: clamp(2.75rem, 8vw, 4.75rem);
  --text-h1: clamp(2.25rem, 5vw, 3.25rem);
  --text-h2: clamp(1.5rem, 3.5vw, 2.25rem);
  --text-h3: clamp(1.25rem, 2.25vw, 1.5rem);
  --text-body: 1.0625rem;
  --text-body-lg: 1.125rem;
  --text-caption: 0.9375rem;
  --line-height-tight: 1.2;
  --line-height-body: 1.7;
  --line-height-readable: 1.75;
  --line-height-editorial: 1.8;
  --letter-spacing-tight: -0.02em;
  --letter-spacing-wide: 0.04em;

  /* â€”â€”â€” Espaciado (escala 4/8px, mobile first) â€”â€”â€” */
  --space-xs: 0.25rem;   /* 4px */
  --space-sm: 0.5rem;    /* 8px */
  --space-md: 1rem;      /* 16px */
  --space-lg: 1.5rem;    /* 24px */
  --space-xl: 2rem;      /* 32px */
  --space-2xl: 3rem;     /* 48px */
  --space-3xl: 4.5rem;   /* 72px */
  --space-4xl: 6rem;     /* 96px */
  --space-5xl: 8rem;     /* 128px */
  --section-padding-y: clamp(4.5rem, 12vw, 8rem);
  --container-max: 1280px;
  --container-gutter: clamp(1.5rem, 5vw, 2.5rem);
  --scroll-margin-below-header: 5.5rem;
  --scroll-margin-below-header-mobile: 6rem;

  /* Radii (unificado; cards mÃ¡s redondeados = look moderno) */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-full: 9999px;
  --card-radius: 16px;

  /* Sombras (mÃ¡s profundidad para sensaciÃ³n premium) */
  --shadow-sm: 0 2px 12px rgba(var(--shadow-tint), var(--shadow-tint-alpha));
  --shadow-md: 0 8px 30px rgba(var(--shadow-tint), 0.08), 0 2px 10px rgba(0, 0, 0, 0.04);
  --shadow-lg: 0 20px 50px rgba(var(--shadow-tint), var(--shadow-tint-alpha-strong));
  --shadow-hover: 0 16px 40px rgba(var(--shadow-tint), 0.14);
  --shadow-cta: 0 6px 24px rgba(61, 122, 90, 0.32);
  --shadow-cta-hover: 0 10px 32px rgba(61, 122, 90, 0.4);
  --shadow-cta-active: 0 2px 12px rgba(61, 122, 90, 0.25);
  /* Tarjetas */
  --card-shadow: var(--shadow-md);
  --card-shadow-hover: var(--shadow-hover);
  --card-lift-hover: -6px;

  /* Motion (transiciones suaves; cards un poco mÃ¡s lentas = mÃ¡s elegante) */
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --duration: 0.3s;
  --duration-slow: 0.4s;
  --transition-all: all 0.3s var(--ease);
  /* Hero overlay (cambiar por campaÃ±a si hace falta) */
  --hero-overlay-start: 0.15;
  --hero-overlay-mid: 0.45;
  --hero-overlay-end: 0.78;

  /* Hero */
  --hero-height: min(100vh, 900px);
  --hero-height-mobile: min(90vh, 680px);

  /* Mobile UX: contenedor, texto legible, touch targets (WCAG 2.5.5) */
  --container-gutter-mobile: 1.25rem;
  --text-body-mobile: 1rem;
  --section-padding-y-mobile: 3rem;
  --touch-target-min: 2.75rem;   /* 44px min tap/click area */
  --touch-target-comfortable: 3rem; /* 48px preferred */
  --outline-width: 2px;
  --outline-offset: 2px;
}

@supports (height: 100dvh) {
  :root {
    --hero-height: min(100dvh, 900px);
    --hero-height-mobile: min(90dvh, 680px);
  }
}

/* Self-hosted fonts - font-display: optional for LCP/CLS (README) */
/* Download: Invoke-WebRequest -Uri "https://rsms.me/inter/font-files/Inter-Regular.woff2" -OutFile "fonts/inter-regular.woff2" */
@font-face {
  font-family: 'Inter';
  src: url('/fonts/inter-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: optional;
}
@font-face {
  font-family: 'Inter';
  src: url('/fonts/inter-bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: optional;
}

.glide{position:relative;width:100%;box-sizing:border-box}.glide *{box-sizing:inherit}.glide__track{overflow:hidden}.glide__slides{position:relative;width:100%;list-style:none;backface-visibility:hidden;transform-style:preserve-3d;touch-action:pan-Y;overflow:hidden;margin:0;padding:0;white-space:nowrap;display:flex;flex-wrap:nowrap;will-change:transform}.glide__slides--dragging{user-select:none}.glide__slide{width:100%;height:100%;flex-shrink:0;white-space:normal;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.glide__slide a{user-select:none;-webkit-user-drag:none;-moz-user-select:none;-ms-user-select:none}.glide__arrows{-webkit-touch-callout:none;user-select:none}.glide__bullets{-webkit-touch-callout:none;user-select:none}.glide--rtl{direction:rtl}.glide__lazy__loaded{-webkit-animation:fadeInFromNone .5s ease-in 0s forwards;animation:fadeInFromNone .5s ease-in 0s forwards}@keyframes fadeInFromNone{0%{visibility:hidden;opacity:0}1%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}

/* Seasonality Master Template â€” CRO + UX, Mobile First */

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

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* ImÃ¡genes: no desbordar en mÃ³vil, responsivas */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--color-accent);
  text-decoration: none;
  transition: var(--transition-all);
}

a:hover {
  color: var(--color-accent-hover);
  text-decoration: none;
}

a:focus-visible {
  outline: var(--outline-width) solid var(--color-accent);
  outline-offset: var(--outline-offset);
}

.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-gutter);
}

.container--legal {
  max-width: 52rem;
}

.section--legal .section__title {
  margin-bottom: var(--space-xl);
}

.section--legal h2 {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: 700;
  margin: var(--space-2xl) 0 var(--space-md);
  color: var(--color-text);
}

.section--legal p,
.section--legal li {
  font-size: var(--text-body);
  line-height: var(--line-height-body);
  color: var(--color-text-secondary);
  margin: 0 0 var(--space-lg);
}

.section--legal ul {
  margin: 0 0 var(--space-lg);
  padding-left: var(--space-xl);
}

.section--legal a {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.section--legal a:hover {
  color: var(--color-accent-hover);
}

@media (max-width: 767px) {
  .section--legal {
    padding-top: var(--section-padding-y-mobile, var(--space-xl));
    padding-bottom: var(--space-2xl);
  }
  .section--legal .section__title {
    margin-bottom: var(--space-lg);
  }
  .section--legal p,
  .section--legal li {
    font-size: var(--text-body-mobile, 1rem);
    line-height: 1.6;
  }
  .section--legal h2 {
    margin: var(--space-xl) 0 var(--space-md);
  }
  .section--legal .link--back {
    min-height: var(--touch-target-min);
    display: inline-flex;
    align-items: center;
    -webkit-tap-highlight-color: transparent;
  }
}

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

/* Skip link: visible solo al focus (teclado / a11y) */
.skip-link {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 200;
  padding: var(--space-md) var(--space-xl);
  background: var(--color-accent);
  color: var(--color-text-on-accent);
  font-weight: 700;
  font-size: var(--text-caption);
  text-decoration: none;
  transform: translateY(-100%);
  transition: transform var(--duration) var(--ease);
}
.skip-link:focus {
  transform: translateY(0);
  outline: 2px solid var(--color-text-on-accent);
  outline-offset: 2px;
}

@media (max-width: 639px) {
  .skip-link {
    padding: var(--space-md) var(--space-xl);
    padding-left: max(var(--space-xl), env(safe-area-inset-left));
    min-height: var(--touch-target-comfortable);
    display: inline-flex;
    align-items: center;
    -webkit-tap-highlight-color: transparent;
  }
}

/* â€”â€”â€” Top bar: Colvin 4.1 â€” una lÃ­nea, oferta clara, color de marca â€”â€”â€” */
.top-bar {
  background: var(--color-accent);
  color: var(--color-text-on-accent);
  padding: var(--space-md) var(--container-gutter);
  text-align: center;
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 600;
  letter-spacing: 0.02em;
}

.top-bar__text {
  margin: 0;
}

.top-bar__link {
  color: var(--color-text-on-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  margin-left: var(--space-sm);
}

.top-bar__link:hover {
  color: var(--color-primary-soft);
}

.top-bar__link:focus-visible {
  outline: 2px solid var(--color-text-on-accent);
  outline-offset: 2px;
}

@media (max-width: 639px) {
  .top-bar {
    padding: var(--space-sm) var(--container-gutter-mobile);
    text-align: center;
    font-size: var(--text-caption);
    line-height: var(--line-height-readable);
  }
  .top-bar__text {
    margin: 0;
  }
}

/* â€”â€”â€” Header: sticky; over hero transparent, on scroll fixed bar with white bg + shadow â€”â€”â€” */
.site-header {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 50;
  padding: var(--space-md) 0;
  background: transparent;
  border-bottom: 1px solid transparent;
  -webkit-backdrop-filter: blur(0);
  backdrop-filter: blur(0);
  box-shadow: none;
  transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, backdrop-filter 0.25s ease;
}

.site-header.is-scrolled {
  background: rgba(255, 255, 255, 0.95);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom-color: rgba(0, 0, 0, 0.06);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.site-header__inner,
.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
}

.site-header__logo {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--text-h3);
  letter-spacing: var(--letter-spacing-tight);
  color: var(--color-text);
  min-height: var(--touch-target-min);
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  transition: var(--transition-all);
}

.site-header__logo:hover {
  color: var(--color-accent);
  text-decoration: none;
}

.site-header__logo-img {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
}

.site-header__logo-text {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: -0.02em;
  line-height: var(--line-height-tight);
}

.site-header__nav {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}

.site-header__nav a {
  color: var(--color-text-secondary);
  font-size: var(--text-caption);
  font-weight: 600;
  min-height: var(--touch-target-min);
  display: inline-flex;
  align-items: center;
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-sm);
  transition: var(--transition-all);
  cursor: pointer;
}

.site-header__nav a:not(.site-header__cta):hover {
  color: var(--color-accent);
  background: var(--color-accent-soft);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.site-header__nav .site-header__cta:hover {
  text-decoration: none;
}

.site-header__nav .site-header__cta {
  padding: var(--space-sm) var(--space-lg);
  min-height: var(--touch-target-min);
  font-size: var(--text-caption);
}

.site-header__nav .site-header__cta:hover {
  color: var(--color-text-on-accent) !important;
  background: var(--color-accent-hover);
}

.site-header__cta--dropdown {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
}
.site-header__cta-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform var(--duration) var(--ease);
}
.site-header__cta[aria-expanded="true"] .site-header__cta-arrow {
  transform: rotate(180deg);
}
.site-header__cta-arrow svg {
  display: block;
}

/* Header: desplegable de ciudades */
.site-header__dropdown {
  position: relative;
}
.site-header__dropdown-menu {
  position: absolute;
  right: 0;
  top: 100%;
  margin-top: var(--space-xs);
  min-width: 11rem;
  padding: var(--space-sm);
  background: var(--color-bg-card);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  z-index: 100;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.site-header__dropdown-menu[hidden] {
  display: none;
}
.site-header__dropdown-menu a {
  display: block;
  padding: var(--space-sm) var(--space-md);
  font-size: var(--text-body);
  font-weight: 600;
  color: var(--color-text);
  text-decoration: none;
  border-radius: var(--radius-sm);
  transition: background var(--duration) var(--ease), color var(--duration) var(--ease);
}
.site-header__dropdown-menu a:hover {
  background: var(--color-accent-soft);
  color: var(--color-accent);
  text-decoration: none;
}
.site-header__dropdown-menu a:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

@media (max-width: 639px) {
  .site-header__inner,
  .site-header .container {
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: var(--space-md);
    min-height: var(--touch-target-min);
    padding-top: var(--space-sm);
    padding-bottom: var(--space-sm);
    padding-left: var(--container-gutter-mobile);
    padding-right: var(--container-gutter-mobile);
  }
  .site-header__logo {
    min-height: var(--touch-target-min);
    flex: 0 1 auto;
    min-width: 0;
    align-items: center;
  }
  .site-header__logo-text {
    font-size: var(--text-caption);
    white-space: nowrap;
    line-height: var(--line-height-tight);
    display: inline;
  }
  .site-header__nav {
    flex: 0 0 auto;
    margin-left: 0;
  }
  .site-header__nav .site-header__cta {
    display: none;
  }
  .site-header__dropdown {
    display: none !important;
  }
  .site-header__nav a {
    min-height: var(--touch-target-min);
    display: inline-flex;
    align-items: center;
  }
}

@media (min-width: 640px) and (max-width: 767px) {
  .site-header__nav .site-header__cta {
    padding: var(--space-sm) var(--space-md);
    min-height: var(--touch-target-min);
    font-size: var(--text-caption);
  }
}


/* â€”â€”â€” Hero: impactante, overlay oscuro, H1 grande â€”â€”â€” */
.hero {
  height: var(--hero-height);
  min-height: var(--hero-height);
  max-height: var(--hero-height);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.hero__background {
  position: absolute;
  inset: 0;
  max-height: var(--hero-height);
  overflow: hidden;
}

.hero__img,
.hero__background img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-height: var(--hero-height);
  object-fit: cover;
  object-position: center center;
  animation: heroZoom 18s ease-in-out infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
  .hero__img,
  .hero__background img {
    animation: none;
  }
}

/* MÃ³vil: altura optimizada, imagen cover centrada y punto focal por pÃ¡gina */
@media (max-width: 767px) {
  .hero {
    height: var(--hero-height-mobile);
    min-height: var(--hero-height-mobile);
    max-height: var(--hero-height-mobile);
    overflow: hidden;
  }

  .hero__background,
  .hero__overlay {
    height: 100%;
    max-height: var(--hero-height-mobile);
  }

  .hero__img,
  .hero__background img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: var(--hero-height-mobile);
    object-fit: cover;
    object-position: center center;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  .hero__content {
    padding-left: var(--space-md);
    padding-right: var(--space-md);
  }
  .hero .hero__cta {
    min-height: var(--touch-target-comfortable);
    width: 100%;
    max-width: 20rem;
    justify-content: center;
  }
  .hero__city-inline {
    max-width: 100%;
  }
  .hero__city-input {
    min-height: var(--touch-target-comfortable);
  }
  .hero__hint {
    font-size: var(--text-caption);
    margin-top: var(--space-sm);
  }
  /* Home: sujeto a la izquierda â†’ priorizar zona izquierda-centro */
  .hero--home .hero__img,
  .hero--home .hero__background img {
    object-position: 35% 50%;
  }

  /* London: Tower Bridge + persona â†’ centro ligeramente bajo para puente y figura */
  .hero--london .hero__img,
  .hero--london .hero__background img {
    object-position: 50% 42%;
  }

  /* Manchester: sujeto a la derecha â†’ priorizar zona derecha */
  .hero--manchester .hero__img,
  .hero--manchester .hero__background img {
    object-position: 65% 50%;
  }

  /* Birmingham: imagen abstracta/difuminada â†’ centro */
  .hero--birmingham .hero__img,
  .hero--birmingham .hero__background img {
    object-position: 50% 50%;
  }
}

.hero__overlay {
  position: absolute;
  inset: 0;
  max-height: var(--hero-height);
  /* Gradiente reforzado (Colvin-style) para mejor contraste del tÃ­tulo */
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.78) 0%,
    rgba(0, 0, 0, 0.55) 35%,
    rgba(0, 0, 0, 0.3) 65%,
    rgba(0, 0, 0, 0.1) 100%
  );
}

.hero__content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: #fff;
  padding: var(--space-3xl) var(--space-xl);
  max-width: 44rem;
}

.hero__title {
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: 700;
  line-height: var(--line-height-tight);
  letter-spacing: 0.02em;
  margin: 0 0 var(--space-xl);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5), 0 4px 24px rgba(0, 0, 0, 0.5), 0 0 1px rgba(0, 0, 0, 0.4);
  transition: var(--transition-all);
}

@media (min-width: 768px) {
  .hero__title {
    font-size: var(--text-display);
  }
}
.hero__kicker {
  display: block;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.95);
  margin-bottom: var(--space-sm);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

.hero__subtitle {
  font-size: 1.3rem;
  font-weight: 400;
  line-height: var(--line-height-readable);
  opacity: 0.98;
  margin: 0 0 var(--space-2xl);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5), 0 2px 12px rgba(0, 0, 0, 0.45);
  letter-spacing: 0.01em;
}

.hero__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: var(--space-md);
  padding: var(--space-lg) var(--space-2xl);
  min-height: var(--touch-target-comfortable);
  border-radius: var(--radius-lg);
  font-family: var(--font-display);
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.hero__trust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35em;
  margin: var(--space-md) 0 0;
  font-size: 0.75rem;
  font-weight: 500;
  opacity: 0.92;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.4);
}
.hero__trust-stars {
  color: #f5c842;
  letter-spacing: 0.08em;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
.hero__trust-text {
  font-style: normal;
}
.hero__trust-verified {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.95);
  flex-shrink: 0;
}
.hero__trust-verified svg {
  display: block;
}
.hero__hint {
  margin: var(--space-lg) 0 0;
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: rgba(255, 255, 255, 0.9);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6), 0 2px 12px rgba(0, 0, 0, 0.5);
}
.hero__hint-prefix {
  font-weight: 500;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.92);
  margin-right: 0.15em;
}
.hero__hint a {
  color: inherit;
  text-decoration: none;
  text-underline-offset: 3px;
  transition: color var(--duration) var(--ease), text-decoration var(--duration) var(--ease);
}
.hero__hint a:hover {
  text-decoration: underline;
  color: #fff;
}
.hero__hint a:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.9);
  outline-offset: 2px;
}

/* Hero: city selector embedded (premium UX) */
.hero__city-inline {
  position: relative;
  margin: var(--space-xl) 0 var(--space-md);
  max-width: 26rem;
  margin-left: auto;
  margin-right: auto;
}
.hero__city-search-wrap {
  display: flex;
  align-items: center;
  gap: 0;
  border-radius: var(--card-radius);
  background: rgba(255, 255, 255, 0.96);
  border: 2px solid rgba(255, 255, 255, 0.5);
  padding: var(--space-xs);
  padding-right: var(--space-xs);
  overflow: hidden;
  transition: border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
}
.hero__city-search-wrap:focus-within {
  border-color: #fff;
  box-shadow: 0 0 0 4px rgba(61, 122, 90, 0.35);
}
.hero__city-input {
  flex: 1;
  min-width: 0;
  border: none;
  border-radius: 0;
  background: transparent;
}
.hero__city-search-wrap .hero__city-input {
  padding-right: var(--space-sm);
  padding-left: var(--space-md);
  border: none;
  background: transparent;
}
.hero__city-search-btn {
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-on-accent);
  background: var(--color-accent);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  transition: background var(--duration) var(--ease), transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.hero__city-search-btn:hover {
  background: var(--color-accent-hover);
  transform: scale(1.05);
  box-shadow: 0 2px 12px rgba(61, 122, 90, 0.4);
}
.hero__city-search-btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.hero__city-search-btn-icon {
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  color: inherit;
}
.hero__city-search-btn-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.hero__city-label {
  display: block;
  font-size: var(--text-body);
  font-weight: 600;
  color: rgba(255, 255, 255, 0.98);
  margin-bottom: var(--space-sm);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.4);
}
.hero__city-input {
  width: 100%;
  padding: var(--space-md) var(--space-lg);
  font-family: var(--font-body);
  font-size: var(--text-body);
  color: var(--color-text);
  transition: border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
}
.hero__city-inline:not([class*="wrap"]) .hero__city-input {
  border: 2px solid rgba(255, 255, 255, 0.5);
  border-radius: var(--card-radius);
  background: rgba(255, 255, 255, 0.96);
}
.hero__city-search-wrap .hero__city-input {
  border: none;
  background: transparent;
}
.hero__city-input::placeholder {
  color: var(--color-text-muted);
}
.hero__city-input:focus {
  outline: none;
}
.hero__city-search-wrap .hero__city-input:focus {
  box-shadow: none;
}
.hero__city-results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: var(--space-xs);
  background: var(--color-bg-card);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  max-height: 16rem;
  overflow-y: auto;
  z-index: 10;
}
.hero__city-results[hidden] {
  display: none;
}

.hero__browse {
  display: inline-block;
  margin-top: var(--space-md);
  font-size: 0.8125rem;
  font-weight: 500;
  opacity: 0.9;
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  text-underline-offset: 3px;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
  transition: color var(--duration) var(--ease);
}
.hero__browse:hover {
  color: #fff;
  text-decoration: underline;
}
.hero__browse:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.9);
  outline-offset: 3px;
}
.hero__browse.hero__browse--btn {
  padding: var(--space-md) var(--space-xl);
  font-size: var(--text-caption);
  font-weight: 700;
  border: 2px solid rgba(255, 255, 255, 0.9);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.1);
  color: #fff !important;
  text-decoration: none;
}
.hero__browse.hero__browse--btn:hover {
  background: rgba(255, 255, 255, 0.2);
  color: #fff !important;
  text-decoration: none;
}

/* â€”â€”â€” Section: mÃ¡s aire entre secciones; mÃ³vil mÃ¡s compacto (evitar infinite scroll) â€”â€”â€” */
.section {
  padding: var(--section-padding-y) 0;
}

@media (max-width: 767px) {
  .section {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
}

/* JerarquÃ­a clara (Colvin-style): H2 de secciÃ³n punchy y legible */
.section__title {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: var(--line-height-tight);
  color: var(--color-text);
  margin: 0 0 var(--space-2xl);
  padding-bottom: var(--space-md);
  border-bottom: 3px solid var(--color-accent-soft);
  display: inline-block;
}

.section__intro {
  font-size: var(--text-body-lg);
  line-height: var(--line-height-readable);
  color: var(--color-text-secondary);
  margin: 0 0 var(--space-3xl);
  max-width: 42rem;
}

.section--features {
  background: var(--color-surface);
}

/* â€”â€”â€” Value props: mÃ³dulo premium "Ways to treat Mum" â€”â€”â€” */
.section--value-props,
.section--ideas-module {
  background: var(--color-surface);
  overflow-x: hidden;
  padding: var(--space-2xl) 0;
}
.section--value-props {
  position: relative;
  padding-top: var(--space-3xl);
  padding-bottom: var(--space-4xl);
}
.value-props__bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(165deg, var(--color-bg-warm) 0%, var(--color-surface) 35%, rgba(232, 245, 238, 0.4) 100%);
  pointer-events: none;
}
.value-props__container {
  position: relative;
  min-width: 0;
}
.value-props__header {
  text-align: center;
  margin-bottom: var(--space-3xl);
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
}
.section--value-props .value-props__header .section__title {
  text-align: center;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.value-props__subtitle {
  font-size: var(--text-body-lg);
  font-weight: 500;
  color: var(--color-text-secondary);
  margin: 0 0 var(--space-lg);
  letter-spacing: 0.02em;
}
.value-props__lead {
  font-size: var(--text-body-lg);
  line-height: 1.6;
  color: var(--color-text-secondary);
  margin: 0 0 var(--space-xl);
}
.value-props__seo {
  text-align: left;
  background: var(--color-bg-card);
  padding: var(--space-xl) var(--space-lg);
  border-radius: var(--radius-lg);
  border-left: 4px solid var(--color-accent);
  box-shadow: 0 2px 16px rgba(26, 26, 26, 0.06);
}
.value-props__seo p {
  margin: 0;
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--color-text-secondary);
}
.value-props__seo strong {
  color: var(--color-text);
  font-weight: 600;
}
.value-props__grid {
  align-items: stretch;
}
@media (min-width: 768px) {
  .value-props__seo {
    padding: var(--space-xl) var(--space-2xl);
  }
  .value-props__seo p {
    font-size: var(--text-body-lg);
  }
}
@media (max-width: 767px) {
  .section--value-props {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
  .value-props__header {
    margin-bottom: var(--space-2xl);
  }
}

/* Ideas module (otras pÃ¡ginas): tÃ­tulo e intro */
.section--ideas-module .container {
  min-width: 0;
}
.section--ideas-module .section__title--serif {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: 700;
  color: var(--color-text);
  text-align: center;
  display: block;
  width: 100%;
  margin: 0 auto var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: 3px solid var(--color-accent-soft);
  letter-spacing: 0.02em;
  line-height: var(--line-height-tight);
}
.section--ideas-module .section__intro--ideas-module {
  margin: 0 auto var(--space-2xl);
  text-align: center;
  max-width: 36rem;
  color: var(--color-text-secondary);
  font-size: var(--text-body-lg);
  line-height: 1.6;
}
.ideas-module__city-wrap {
  margin-bottom: var(--space-2xl);
  max-width: 22rem;
}
.ideas-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  min-width: 0;
  align-items: stretch;
}
.section--value-props .ideas-grid {
  align-items: stretch;
}
@media (min-width: 640px) {
  .ideas-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-2xl);
  }
}
@media (min-width: 1024px) {
  .ideas-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
  }
}
.idea-card {
  background: var(--color-bg-card);
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);
  border: 1px solid var(--color-border-strong);
  overflow: hidden;
  transition: transform var(--duration-slow) var(--ease), box-shadow var(--duration-slow) var(--ease);
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.section--value-props .idea-card {
  height: 100%;
  min-height: 0;
  padding: 0;
  background: var(--color-bg-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: 0 4px 24px rgba(26, 26, 26, 0.06), 0 1px 3px rgba(26, 26, 26, 0.04);
  transition: box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
}
.section--value-props .idea-card__link {
  padding: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  flex: 1;
  cursor: pointer;
}
.section--value-props .idea-card {
  cursor: pointer;
}
.section--value-props .idea-card--informational {
  cursor: default;
}
.section--value-props .idea-card--informational:hover {
  transform: none;
  border-color: var(--color-border);
  box-shadow: 0 4px 24px rgba(26, 26, 26, 0.06), 0 1px 3px rgba(26, 26, 26, 0.04);
}
/* Sin zoom en imagen para no sugerir que la card es clicable */
.section--value-props .idea-card--informational:hover .idea-card__img {
  transform: none;
}
.section--value-props .idea-card__cta.cta-button,
.section--value-props .idea-card__cta--link {
  pointer-events: none;
}
.section--value-props .idea-card__img-wrap {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: none;
  flex-shrink: 0;
  aspect-ratio: 4 / 3;
  min-height: 14rem;
  overflow: hidden;
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  position: relative;
}
.section--value-props .idea-card__img-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(26, 26, 26, 0.15) 0%, transparent 45%);
  pointer-events: none;
}
@media (max-width: 767px) {
  .section--value-props .idea-card__img-wrap {
    min-height: 11rem;
    height: 11rem;
    aspect-ratio: auto;
  }
}
.section--value-props .idea-card__overlay {
  display: none;
}
.section--value-props .idea-card__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  vertical-align: middle;
  transition: transform 0.5s var(--ease);
}
.section--value-props .idea-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-height: 0;
  padding: var(--space-xl) var(--space-lg);
  padding-top: var(--space-lg);
  text-align: left;
  border-top: 3px solid var(--color-accent-soft);
}
@media (min-width: 640px) {
  .section--value-props .idea-card__body {
    padding: var(--space-xl);
    padding-top: var(--space-lg);
  }
}
.section--value-props .idea-card__title {
  font-family: var(--font-display);
  font-size: clamp(1.125rem, 1.5vw, 1.25rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0;
  text-align: left;
  line-height: 1.25;
  color: var(--color-text);
}
.section--value-props .idea-card__text {
  flex: 1;
  min-height: 0;
  font-size: var(--text-body);
  line-height: 1.6;
  margin: 0;
  text-align: left;
  color: var(--color-text-secondary);
}
.section--value-props .idea-card__cta {
  justify-content: flex-start;
  text-align: left;
}
.section--value-props .idea-card__cta--link {
  display: inline-flex;
  align-items: center;
  width: auto;
  min-width: 0;
  padding: 0;
  margin-top: auto;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--text-body);
  color: var(--color-accent) !important;
  background: none !important;
  border: none !important;
  border-radius: 0;
  box-shadow: none !important;
  text-decoration: none;
  transition: color var(--duration) var(--ease), text-decoration var(--duration) var(--ease);
}
.section--value-props .idea-card:hover .idea-card__cta--link {
  text-decoration: underline;
  color: var(--color-accent-hover) !important;
}
.idea-card:hover {
  transform: translateY(-6px) scale(1.02);
  box-shadow: var(--card-shadow-hover);
}
/* Hover solo en cards clicables; las informativas no cambian */
.section--value-props .idea-card:not(.idea-card--informational):hover {
  border-color: var(--color-accent-muted);
  box-shadow: 0 12px 40px rgba(26, 26, 26, 0.08), 0 4px 12px rgba(26, 26, 26, 0.04);
}
.idea-card__link {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  color: inherit;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.idea-card__link:hover {
  color: inherit;
  text-decoration: none;
}
.idea-card__link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}
.idea-card__img-wrap {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--color-bg-soft);
}
.idea-card__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform var(--duration-slow) var(--ease);
  vertical-align: middle;
}
.idea-card:hover .idea-card__img {
  transform: scale(1.05);
}
.idea-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.35) 0%, transparent 50%);
  pointer-events: none;
}
.idea-card__badge {
  position: absolute;
  top: var(--space-sm);
  left: var(--space-sm);
  z-index: 1;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #fff;
  background: var(--color-accent);
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.idea-card__badge--secondary {
  background: rgba(255, 255, 255, 0.95);
  color: var(--color-accent);
  border: 1px solid rgba(255, 255, 255, 0.8);
}
.idea-card__body {
  padding: var(--space-md) var(--space-lg);
  color: #2C2C2C;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.idea-card__title {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-tight);
  line-height: var(--line-height-tight);
  margin: 0 0 var(--space-xs);
  color: #2C2C2C;
  transition: color var(--duration) var(--ease);
}
.idea-card:hover .idea-card__title {
  color: var(--color-accent);
}
.idea-card__text {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.5;
  color: var(--color-text-secondary);
  margin: 0 0 var(--space-sm);
  flex: 1;
}
.idea-card__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  margin-top: auto;
}
/* Value-props: botones outline (pill), fondo transparente, borde verde; hover relleno verde */
.section--value-props .idea-card__cta.cta-button {
  width: 100%;
  min-width: 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  box-sizing: border-box;
  background: transparent;
  color: var(--color-accent) !important;
  border: 2px solid var(--color-accent);
  border-radius: var(--radius-full);
  box-shadow: none;
  transition: background var(--duration) var(--ease), color var(--duration) var(--ease), border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
}
.section--value-props .idea-card__cta.cta-button:hover {
  background: var(--color-accent);
  color: var(--color-text-on-accent) !important;
  border-color: var(--color-accent);
  box-shadow: var(--shadow-cta);
  transform: translateY(-2px);
}
.section--value-props .idea-card__cta.cta-button:active {
  transform: translateY(0);
}
@media (max-width: 639px) {
  .idea-card__link {
    min-height: var(--touch-target-comfortable);
  }
  .idea-card__body {
    padding: var(--space-lg) var(--space-xl);
  }
  .idea-card__cta {
    min-height: var(--touch-target-comfortable);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
  }
}

/* â€”â€”â€” City quick links (pills) â€”â€”â€” */
.section--city-pills {
  padding: var(--space-2xl) 0;
  background: var(--color-bg);
  scroll-margin-top: var(--scroll-margin-below-header);
}
.section--city-pills .section__title--serif {
  font-family: var(--font-display);
  color: #2C2C2C;
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: var(--space-md);
}
.section--city-pills .section__intro--compact {
  font-size: var(--text-caption);
  color: var(--color-text-muted);
  margin-bottom: var(--space-xl);
}
.section__intro--compact {
  margin-bottom: var(--space-2xl);
}
.city-pills {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-md);
}
@media (min-width: 640px) {
  .city-pills {
    grid-template-columns: repeat(4, 1fr);
  }
}
.city-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0 var(--space-xl);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--text-body);
  color: var(--color-text);
  background: #f5f5f4;
  border: none;
  border-radius: var(--radius-full);
  box-shadow: none;
  text-decoration: none;
  transition: background var(--duration) var(--ease), color var(--duration) var(--ease), transform var(--duration) var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.city-pill:hover {
  background: var(--color-accent-hover);
  color: var(--color-text-on-accent);
  transform: scale(1.05);
  text-decoration: none;
}
.city-pill:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.section--cities-compact .section__intro {
  display: none;
}

.section--trust {
  background: var(--color-surface);
  padding: var(--space-2xl) 0 var(--space-3xl);
}
.section--trust .section__title--center {
  text-align: center;
  display: block;
}
.section--trust .section__intro--center {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.section--cities {
  background: var(--color-bg);
  scroll-margin-top: var(--scroll-margin-below-header);
}

@media (max-width: 767px) {
  .section--cities,
  .section--city-pills {
    scroll-margin-top: var(--scroll-margin-below-header-mobile);
  }
  .section--cities .section__title {
    margin-bottom: var(--space-sm);
  }
  .section--cities .section__intro {
    margin-bottom: var(--space-xl);
    font-size: 1rem;
  }
}

.section--testimonials {
  background: var(--color-surface);
  padding: var(--space-2xl) 0 var(--space-3xl);
}
.section--testimonials .section__title--center {
  text-align: center;
  display: block;
  margin-bottom: var(--space-md);
}

.testimonials__subhead {
  text-align: center;
  margin: 0 auto var(--space-2xl);
  font-size: var(--text-body);
  font-weight: 600;
  color: var(--color-text-secondary);
  max-width: 28rem;
}

.section--faq {
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  padding: var(--space-2xl) 0 var(--space-3xl);
}
.section--faq .section__title--center {
  text-align: center;
  display: block;
  margin-bottom: var(--space-2xl);
  font-size: clamp(1.75rem, 4vw, 2rem);
}

.section--seo {
  background: var(--color-surface);
  padding-bottom: var(--space-4xl);
}

/* â€”â€”â€” Trust block: Colvin 4.5 â€” tres columnas, icono + tÃ­tulo + una lÃ­nea â€”â€”â€” */
.trust-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-2xl);
  align-items: start;
}

.trust-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-md);
  padding: var(--space-2xl) var(--space-lg);
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  transition: transform var(--duration-slow) var(--ease);
}

.trust-item:hover {
  transform: translateY(-2px);
}

.trust-item__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  min-width: 3.5rem;
  min-height: 3.5rem;
  flex-shrink: 0;
  background: var(--color-accent-soft);
  color: var(--color-accent);
  border-radius: var(--radius-md);
}

.trust-item__icon svg {
  width: 2rem;
  height: 2rem;
  display: block;
  vertical-align: middle;
}

.trust-item__content {
  min-width: 0;
  text-align: center;
}

.trust-item__label {
  margin: 0 0 var(--space-xs);
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-tight);
  line-height: var(--line-height-tight);
  color: var(--color-text);
  transition: color var(--duration) var(--ease);
}

.trust-item:hover .trust-item__label {
  color: var(--color-accent);
}

.trust-item__desc {
  margin: 0;
  font-size: var(--text-caption);
  line-height: 1.5;
  color: var(--color-text-secondary);
  text-align: center;
  max-width: 18rem;
  margin-left: auto;
  margin-right: auto;
}

/* â€”â€”â€” CTA buttons: atractivos, transiciÃ³n suave, hover con sombra â€”â€”â€” */
.cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-md) var(--space-xl);
  background: var(--color-accent);
  color: var(--color-text-on-accent) !important;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--text-caption);
  letter-spacing: 0.04em;
  text-transform: none;
  border-radius: var(--radius-lg);
  border: none;
  cursor: pointer;
  text-decoration: none;
  min-height: var(--touch-target-comfortable);
  box-shadow: var(--shadow-cta);
  transition: var(--transition-all);
}

.cta-button:hover {
  background: var(--color-accent-hover);
  color: var(--color-text-on-accent) !important;
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: var(--shadow-cta-hover);
}

.cta-button:active {
  transform: translateY(0);
  box-shadow: var(--shadow-cta-active);
}

.cta-button:focus-visible {
  outline: var(--outline-width, 2px) solid var(--color-accent);
  outline-offset: var(--outline-offset, 2px);
}

.cta-button--secondary {
  background: transparent !important;
  color: var(--color-accent) !important;
  border: 2px solid var(--color-accent);
  box-shadow: none;
}
.cta-button--secondary:hover {
  background: var(--color-accent) !important;
  color: var(--color-text-on-accent) !important;
  border-color: var(--color-accent);
  box-shadow: var(--shadow-cta);
}

.cta-button--card {
  margin-top: var(--space-md);
  width: 100%;
  min-height: var(--touch-target-min);
}

/* â€”â€”â€” Features grid: cards 12px, hover -5px â€”â€”â€” */
.features-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
}

@media (max-width: 639px) {
  .features-grid {
    gap: var(--space-lg);
  }
}

@media (min-width: 640px) {
  .features-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-2xl);
  }
}

@media (min-width: 1024px) {
  .features-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-2xl);
  }
}

.feature-card {
  background: var(--color-bg-card);
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);
  border: 1px solid var(--color-border-strong);
  overflow: hidden;
  transition: transform var(--duration-slow) var(--ease), box-shadow var(--duration-slow) var(--ease), border-color var(--duration) var(--ease);
}

.feature-card:hover {
  transform: translateY(var(--card-lift-hover));
  box-shadow: var(--card-shadow-hover);
  border-color: var(--color-border-strong);
}

.feature-card__link {
  display: block;
  height: 100%;
  min-height: 100%;
  color: inherit;
  text-decoration: none;
  transition: var(--transition-all);
  -webkit-tap-highlight-color: transparent;
}

.feature-card__link:hover {
  color: inherit;
  text-decoration: none;
}

.feature-card__link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.feature-card__inner {
  display: flex;
  flex-direction: column;
  padding: var(--space-xl);
  min-height: 100%;
  color: var(--color-text);
}

.feature-card__title {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-tight);
  line-height: var(--line-height-tight);
  margin: 0 0 var(--space-md);
  color: var(--color-text);
  transition: var(--transition-all);
}

.feature-card:hover .feature-card__title {
  color: var(--color-accent);
}

.feature-card__text {
  font-size: var(--text-body);
  line-height: var(--line-height-body);
  color: var(--color-text-secondary);
  margin: 0;
  flex: 1;
}

.section__cta-wrap {
  text-align: center;
  margin: var(--space-2xl) 0 0;
}
.section__cta-wrap--cities {
  margin-top: var(--space-lg);
  margin-bottom: var(--space-xl);
}
.section__intro--seo {
  margin-top: var(--space-lg);
  max-width: 52rem;
  color: var(--color-text-secondary);
  font-size: var(--text-body);
  line-height: 1.65;
}

/* CRO mÃ³vil: ocultar CTA tras features (hero es el principal); mostrar CTA tras FAQ para interlinking */
@media (max-width: 767px) {
  .section__cta-wrap {
    display: none;
  }
  .section__cta-wrap--after-faq,
  .section__cta-wrap--cities {
    display: block;
    text-align: center;
    margin-top: var(--space-xl);
  }
  .section__cta-wrap--cities {
    margin-top: var(--space-lg);
    margin-bottom: var(--space-lg);
  }
}

/* â€”â€”â€” City search (type-ahead) â€”â€”â€” */
.city-search-wrap {
  position: relative;
  margin-bottom: var(--space-xl);
  max-width: 20rem;
}
.city-search-label {
  display: block;
  font-size: var(--text-body);
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: var(--space-sm);
}
.city-search-input {
  width: 100%;
  padding: var(--space-md) var(--space-lg);
  font-family: var(--font-body);
  font-size: var(--text-body);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--card-radius);
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-appearance: none;
  appearance: none;
  touch-action: manipulation;
}
.city-search-input:focus {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  border-color: var(--color-accent);
}
.city-search-results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 2px;
  max-height: 16rem;
  overflow-y: auto;
  background: var(--color-bg-card);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);
  z-index: 10;
  touch-action: manipulation;
}
.city-search-results__item {
  display: block;
  padding: var(--space-md) var(--space-lg);
  font-size: var(--text-body);
  color: var(--color-text);
  text-decoration: none;
  border-bottom: 1px solid var(--color-border);
  transition: var(--transition-all);
}
.city-search-results__item:last-child {
  border-bottom: none;
}
.city-search-results__item:hover,
.city-search-results__item:focus-visible {
  background: var(--color-bg-soft);
  color: var(--color-accent);
}
.city-search-results__item:active {
  background: var(--color-border);
}

/* Cities section search (Choose your city) â€” mismo layout que hero: input + botÃ³n en la misma barra */
.cities-search-wrap {
  position: relative;
  max-width: 26rem;
  margin: 0 auto var(--space-xl);
}
.cities-search-wrap .hero__city-label {
  color: var(--color-text);
  font-weight: 700;
  font-size: 1rem;
  text-shadow: none;
  margin-bottom: var(--space-sm);
  letter-spacing: 0.02em;
}
.cities-search-wrap .hero__city-search-wrap {
  background: #fff;
  border: 2px solid var(--color-border-strong);
  box-shadow: 0 2px 12px rgba(26, 26, 26, 0.08);
}
.cities-search-wrap .hero__city-search-wrap:focus-within {
  border-color: var(--color-accent);
  box-shadow: 0 2px 12px rgba(26, 26, 26, 0.08), 0 0 0 4px rgba(61, 122, 90, 0.2);
}
.cities-search-wrap .hero__city-input {
  color: var(--color-text);
}
.cities-search-wrap .hero__city-input::placeholder {
  color: var(--color-text-muted);
}
.cities-search-wrap .hero__city-search-btn:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* City search: mÃ³vil â€” ancho completo, touch targets 48px */
@media (max-width: 639px) {
  .city-search-wrap {
    max-width: 100%;
    margin-bottom: var(--space-lg);
  }
  .city-search-label {
    font-size: 1rem;
    margin-bottom: var(--space-sm);
  }
  .city-search-input {
    min-height: var(--touch-target-comfortable);
    padding: var(--space-md) var(--space-lg);
    font-size: var(--text-body-mobile);
    -webkit-tap-highlight-color: transparent;
  }
  .city-search-results {
    max-height: min(70vh, 20rem);
    -webkit-overflow-scrolling: touch;
  }
  .city-search-results__item {
    min-height: var(--touch-target-comfortable);
    padding: var(--space-md) var(--space-lg);
    font-size: 1rem;
    display: flex;
    align-items: center;
    -webkit-tap-highlight-color: transparent;
  }
}

/* â€”â€”â€” City selector: 2 cols mÃ³vil (compacto), 4 cols desktop â€”â€”â€” */
.city-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
  grid-auto-rows: 1fr;
}

@media (min-width: 768px) {
  .city-grid {
    gap: var(--space-2xl);
  }
}

/* Desktop: otras secciones (no editorial) pueden usar auto-fill; editorial mantiene 4 cols por especificidad */
@media (min-width: 900px) {
  .city-grid {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  }
}

.city-card {
  background: var(--color-bg-card);
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);
  border: 1px solid var(--color-border-strong);
  overflow: hidden;
  transition: transform var(--duration-slow) var(--ease), box-shadow var(--duration-slow) var(--ease), border-color var(--duration) var(--ease);
}

.city-card:hover {
  transform: translateY(var(--card-lift-hover));
  box-shadow: var(--card-shadow-hover);
  border-color: var(--color-border-strong);
}

.city-card:active {
  transform: translateY(-2px);
}

.city-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  color: var(--color-text);
  text-decoration: none;
  transition: var(--transition-all);
}

.city-card__link:hover {
  color: var(--color-text);
  text-decoration: none;
}

.city-card__link:active {
  opacity: 0.95;
}

@media (max-width: 639px) {
  .city-card__link {
    -webkit-tap-highlight-color: transparent;
  }
  .city-card__body {
    padding: var(--space-lg);
  }
  .city-card__cta {
    min-height: var(--touch-target-comfortable);
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

.city-card__img-wrap {
  position: relative;
  flex: 0 0 auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--color-surface);
}

.city-card__img-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.4) 0%, transparent 50%);
  pointer-events: none;
  transition: opacity var(--duration) var(--ease);
}

.city-card:hover .city-card__img-wrap::after {
  opacity: 0.85;
}

.city-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}

.city-card:hover .city-card__img {
  transform: scale(1.06);
}

.city-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding: var(--space-lg);
  flex-shrink: 0;
}

.city-card__name {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: var(--letter-spacing-tight);
  color: var(--color-text);
  transition: var(--transition-all);
}

.city-card:hover .city-card__name {
  color: var(--color-accent);
}

.city-card__cta {
  width: 100%;
  min-height: var(--touch-target-min);
  justify-content: center;
  font-weight: 700;
}

/* â€”â€”â€” Cities section: editorial style (match Inspiration grid) â€”â€”â€” */
.section--cities-editorial {
  background: var(--color-bg);
  padding: var(--space-2xl) 0 var(--space-3xl);
  overflow-x: hidden;
}

@media (max-width: 767px) {
  .section--cities-editorial {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
}
.section--cities-editorial .section__title--serif {
  font-family: var(--font-display);
  color: #2C2C2C;
  margin-bottom: var(--space-md);
}
.section--cities-editorial .section__intro--compact {
  font-size: var(--text-caption);
  color: var(--color-text-muted);
  margin-bottom: var(--space-xl);
}
#city-grid {
  scroll-margin-top: var(--scroll-margin-below-header);
}
@media (max-width: 767px) {
  #city-grid {
    scroll-margin-top: var(--scroll-margin-below-header-mobile);
  }
}
.section--cities-editorial .city-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
}
@media (min-width: 768px) {
  .section--cities-editorial .city-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
  }
}
.section--cities-editorial .city-card {
  height: 100%;
  padding: 0;
  background: var(--color-bg-card);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.section--cities-editorial .city-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  padding: 0;
}
.section--cities-editorial .city-card__cta--link {
  pointer-events: none;
}
.section--cities-editorial .city-card__img-wrap {
  margin: -2px -2px 0 -2px;
  padding: 0;
  width: calc(100% + 4px);
  flex-shrink: 0;
  aspect-ratio: 4 / 3;
  min-height: 14rem;
  overflow: hidden;
  border-radius: var(--card-radius) var(--card-radius) 0 0;
}
.section--cities-editorial .city-card__img-wrap::after {
  display: none;
}
.section--cities-editorial .city-card__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform var(--duration-slow) var(--ease);
}
.section--cities-editorial .city-card:hover .city-card__img {
  transform: scale(1.05);
}
.section--cities-editorial .city-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: var(--space-xl);
  text-align: left;
}
.section--cities-editorial .city-card__name {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-tight);
  margin: 0 0 var(--space-sm);
  color: #2C2C2C;
  transition: color var(--duration) var(--ease);
}
.section--cities-editorial .city-card:hover .city-card__name {
  color: var(--color-accent);
}
.section--cities-editorial .city-card__cta {
  justify-content: flex-start;
  margin-top: auto;
}
.section--cities-editorial .city-card__cta--link {
  display: inline-flex;
  align-items: center;
  width: auto;
  min-height: 0;
  padding: 0;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--text-body);
  color: var(--color-accent) !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  text-decoration: none;
  transition: color var(--duration) var(--ease), text-decoration var(--duration) var(--ease);
}
.section--cities-editorial .city-card:hover .city-card__cta--link {
  text-decoration: underline;
  color: var(--color-accent-hover) !important;
}
.section--cities-editorial .city-card:hover {
  border-color: var(--color-accent-muted);
  box-shadow: var(--shadow-md);
}

/* â€”â€”â€” London local SEO block (tono crema, coherente con el resto del site) â€”â€”â€” */
.section__local {
  margin-top: var(--space-3xl);
  padding: var(--space-2xl);
  background: var(--color-surface);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
}

.section__local-title {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-md);
}

.section__local-text {
  font-size: var(--text-body);
  line-height: var(--line-height-body);
  color: var(--color-text-secondary);
  margin: 0;
}

/* â€”â€”â€” Testimonials (grid, editorial style) â€”â€”â€” */
.testimonials-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
}

@media (min-width: 768px) {
  .testimonials-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-xl);
    align-items: stretch;
  }
  .testimonials-grid .testimonial {
    min-height: 100%;
  }
}

.testimonial {
  position: relative;
  margin: 0;
  height: 100%;
  padding: var(--space-2xl);
  background: var(--color-bg-card);
  border-radius: var(--card-radius);
  box-shadow: var(--shadow-md);
  border: 1px solid var(--color-border);
  transition: box-shadow var(--duration) var(--ease);
  display: flex;
  flex-direction: column;
}

.testimonial::before {
  content: '"';
  position: absolute;
  top: 0.5rem;
  left: 1rem;
  font-family: var(--font-display);
  font-size: 5rem;
  line-height: 1;
  color: rgba(61, 122, 90, 0.08);
  pointer-events: none;
  z-index: 0;
}

.testimonial:hover {
  box-shadow: var(--card-shadow-hover);
}

.testimonial__text {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.625;
  color: var(--color-text-secondary);
  margin: 0 0 var(--space-lg);
  font-style: normal;
  position: relative;
  z-index: 1;
  padding-left: 0;
  text-indent: 0;
}

.testimonial__stars {
  margin: var(--space-md) 0 var(--space-sm);
  font-size: 1.125rem;
  letter-spacing: 0.15em;
  color: var(--color-gold);
  line-height: 1;
  position: relative;
  z-index: 1;
}

.testimonial__stars span {
  display: inline-block;
}

.testimonial__cite {
  display: block;
  font-style: normal;
  position: relative;
  z-index: 1;
}

.testimonial__author {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--text-body);
  color: var(--color-text);
}

.testimonial__location {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-caption);
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
}

/* â€”â€”â€” FAQ accordion (editorial style: clean lines, no cards) â€”â€”â€” */
.faq-list {
  max-width: 48rem;
  margin: 0 auto var(--space-2xl);
}

.faq-item {
  border: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 0;
  margin-bottom: 0;
  overflow: hidden;
  background: transparent;
  box-shadow: none;
  transition: border-color var(--duration) var(--ease);
}

.faq-item:last-child {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.faq-item:hover {
  border-color: rgba(0, 0, 0, 0.12);
}

.faq-item[open] {
  border-color: rgba(0, 0, 0, 0.08);
}

.faq-item__question {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 1.125rem;
  padding: var(--space-lg) var(--space-xl) var(--space-lg) 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  color: var(--color-text);
  transition: color var(--duration) var(--ease);
  text-align: left;
}

@media (max-width: 767px) {
  .faq-item__question {
    min-height: var(--touch-target-comfortable);
    padding: var(--space-lg) 0 var(--space-lg) 0;
  }
}

.faq-item__question::-webkit-details-marker {
  display: none;
}

.faq-item__question::after {
  content: "+";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
  font-size: 1.5rem;
  font-weight: 300;
  line-height: 1;
  color: var(--color-accent-hover);
  background: none;
  border-radius: 0;
  transition: transform 0.3s var(--ease), color var(--duration) var(--ease);
}

.faq-item__question:hover {
  color: var(--color-accent);
}

.faq-item__question:hover::after {
  color: var(--color-accent);
}

.faq-item[open] .faq-item__question::after {
  transform: rotate(45deg);
  color: var(--color-accent-hover);
}

.faq-item__answer {
  padding: 0 var(--space-xl) var(--space-lg) 0;
  animation: fadeIn 0.25s ease-out;
}

.faq-item__answer p {
  margin: 0;
  padding-top: 0;
  padding-bottom: var(--space-lg);
  font-size: var(--text-body);
  line-height: 1.625;
  color: var(--color-text-secondary);
}

/* FAQ CTA: outline / text link style */
.section__cta-link--outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-md) var(--space-xl);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--text-body);
  color: var(--color-accent) !important;
  background: transparent;
  border: 2px solid var(--color-accent);
  border-radius: var(--radius-full);
  text-decoration: none;
  transition: background var(--duration) var(--ease), color var(--duration) var(--ease), border-color var(--duration) var(--ease);
}

.section__cta-link--outline:hover {
  background: var(--color-accent);
  color: var(--color-text-on-accent) !important;
  border-color: var(--color-accent);
}

/* â€”â€”â€” SEO content block â€”â€”â€” */
.section__title--seo {
  margin-bottom: var(--space-xl);
}

.seo-content {
  max-width: 48rem;
  margin: 0 auto;
  padding: var(--space-2xl) var(--space-xl);
  background: var(--color-bg-card);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-strong);
  border-left: 4px solid var(--color-accent);
  box-shadow: var(--shadow-sm);
}

.seo-content p {
  font-size: var(--text-body);
  line-height: 1.8;
  color: var(--color-text-secondary);
  margin: 0 0 var(--space-lg);
}

.seo-content p:last-child {
  margin-bottom: 0;
}

.seo-content strong {
  color: var(--color-text);
  font-weight: 700;
}

/* â€”â€”â€” Sticky CTA: solo mÃ³vil â€”â€”â€” */
.sticky-cta {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 90;
  padding: var(--space-md) var(--container-gutter);
  padding-bottom: max(var(--space-md), env(safe-area-inset-bottom));
  background: rgba(250, 250, 249, 0.98);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-top: 1px solid var(--color-border);
  box-shadow: 0 -4px 24px rgba(var(--shadow-tint), 0.08);
}

@media (max-width: 767px) {
  .sticky-cta {
    display: block;
    padding-left: max(var(--container-gutter-mobile, 1.25rem), env(safe-area-inset-left));
    padding-right: max(var(--container-gutter-mobile, 1.25rem), env(safe-area-inset-right));
    padding-bottom: max(var(--space-md), env(safe-area-inset-bottom));
  }
  .sticky-cta__button {
    -webkit-tap-highlight-color: transparent;
  }
}

.sticky-cta__button {
  width: 100%;
  min-height: var(--touch-target-comfortable);
  font-size: var(--text-body-mobile);
}

/* Evitar que el footer quede tapado por el sticky CTA en mÃ³vil */
@media (max-width: 767px) {
  .site-footer {
    padding-bottom: calc(var(--space-3xl) + 80px);
  }
  /* Cuando el banner de cookies estÃ¡ visible, subir el sticky CTA para no solaparse */
  body.cookie-banner-visible .sticky-cta {
    bottom: 140px;
  }
}

/* â€”â€”â€” SEO Content Block (Colvin-style editorial: headline + body, 50â€“70 char lines) â€”â€”â€” */
.seo-content-block {
  background: var(--color-bg-warm, #fafaf9);
  padding: 3rem clamp(1.25rem, 5vw, 2.5rem);
  border-top: 1px solid var(--color-border);
}

@media (min-width: 768px) {
  .seo-content-block {
    padding: 5rem clamp(2rem, 6vw, 4rem);
  }
}

/* Caja centrada: ancho de lectura Ã³ptimo, texto nunca toca bordes */
.seo-content-block__inner {
  max-width: 50rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
}

@media (min-width: 640px) {
  .seo-content-block__inner {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

/* TÃ­tulo: serif destacado, centrado (Colvin editorial) */
.seo-content-block__title {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: -0.02em;
  margin: 0 0 2rem;
  text-align: center;
  line-height: var(--line-height-tight);
}

@media (min-width: 768px) {
  .seo-content-block__title {
    margin-bottom: 3rem;
    max-width: 28em;
    margin-left: auto;
    margin-right: auto;
  }
}

/* 2 columnas tipo editorial, lÃ­neas cortas */
.seo-content-block__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 768px) {
  .seo-content-block__grid {
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
  }
}

.seo-content-block__col {
  font-family: var(--font-body);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0;
}

/* En desktop cada columna tiene ancho mÃ¡ximo para ~65 caracteres por lÃ­nea */
@media (min-width: 768px) {
  .seo-content-block__col {
    max-width: 26rem;
  }
}

/* PÃ¡rrafos: ancho de lÃ­nea ~50â€“70 caracteres, line-height editorial */
.seo-content-block__p {
  font-size: 1rem;
  line-height: var(--line-height-editorial);
  color: var(--color-text-muted);
  margin: 0;
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 6 4 2;
}

.seo-content-block__p:first-of-type {
  color: var(--color-text-secondary);
}

/* Enlaces internos: acento, sin subrayado por defecto, hover elegante */
.seo-content-block__p a {
  color: var(--color-accent);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(61, 122, 90, 0.35);
  transition: color var(--duration) var(--ease), border-color var(--duration) var(--ease);
}

.seo-content-block__p a:hover {
  color: var(--color-accent-hover);
  border-bottom-color: var(--color-accent-hover);
}

.seo-content-block__p a:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  border-bottom-color: transparent;
}

.seo-content-block__cta-wrap {
  margin: 2.5rem 0 0;
  text-align: center;
}

.seo-content-block__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--touch-target-comfortable);
  padding: var(--space-md) var(--space-2xl);
  font-size: var(--text-body-lg);
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
}

@media (min-width: 768px) {
  .seo-content-block__cta-wrap {
    margin-top: 3.5rem;
  }
}

/* â€”â€”â€” Footer (brand coherente, legibilidad) â€”â€”â€” */
.site-footer {
  padding: var(--space-3xl) 0 var(--space-2xl);
  font-size: var(--text-caption);
  font-family: var(--font-body);
  background: var(--color-accent-dark);
  color: rgba(255, 255, 255, 0.85);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
  padding-bottom: var(--space-xl);
}

@media (min-width: 768px) {
  .site-footer__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-xl);
  }
}

.site-footer__col {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.site-footer__col--brand {
  gap: var(--space-md);
}

.site-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  color: #fff;
  text-decoration: none;
  transition: color var(--duration) var(--ease);
}

.site-footer__brand:hover {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
}

.site-footer__logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  color: #fff;
}

.site-footer__logo svg {
  display: block;
  width: 100%;
  height: 100%;
}

.site-footer__name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.125rem;
  letter-spacing: var(--letter-spacing-tight);
  color: inherit;
}

.site-footer__tagline {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.6);
  max-width: 20rem;
}

.site-footer__cta {
  display: inline-flex;
  margin-top: var(--space-lg);
}

.site-footer__cta--light {
  background: transparent !important;
  color: #fff !important;
  border: 2px solid rgba(255, 255, 255, 0.8);
}

.site-footer__cta--light:hover {
  background: rgba(255, 255, 255, 0.15) !important;
  color: #fff !important;
  border-color: #fff;
}

.site-footer__label {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  color: #fff;
  margin-bottom: var(--space-xs);
}

.site-footer__col a {
  font-size: var(--text-caption);
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  cursor: pointer;
  transition: color var(--duration) var(--ease), text-decoration var(--duration) var(--ease);
}

.site-footer__col a:hover {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-footer__payments {
  margin: 0 0 var(--space-lg);
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.7);
  text-align: center;
}

@media (min-width: 640px) {
  .site-footer__payments {
    text-align: left;
  }
}

.site-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-lg);
  padding-top: var(--space-xl);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

@media (min-width: 640px) {
  .site-footer__bottom {
    justify-content: space-between;
  }
}

.site-footer__copy {
  margin: 0;
  font-size: 0.875rem;
  color: #dcfce7;
}

.site-footer__legal {
  display: flex;
  gap: var(--space-lg);
}

.site-footer__legal a {
  font-size: 0.875rem;
  color: #dcfce7;
  text-decoration: none;
  transition: color var(--duration) var(--ease);
}

.site-footer__legal a:hover {
  color: #fff;
}

@media (max-width: 767px) {
  .site-footer__col a {
    padding: var(--space-xs) 0;
    min-height: var(--touch-target-min);
    display: inline-flex;
    align-items: center;
    -webkit-tap-highlight-color: transparent;
  }
}

.site-footer a:focus-visible,
.site-footer button:focus-visible,
.site-footer input:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.8);
  outline-offset: 2px;
}

/* â€”â€”â€” City page: breadcrumb, hero, picks, why, ideas, sticky CTA â€”â€”â€” */
.container--breadcrumb {
  padding-top: var(--space-lg);
  padding-bottom: 0;
}

.breadcrumb--hero {
  margin: 0;
  font-size: var(--text-caption);
  font-weight: 600;
  color: var(--color-text-muted);
}

.breadcrumb--hero a {
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: var(--transition-all);
}

.breadcrumb--hero a:hover {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.breadcrumb__sep {
  margin: 0 var(--space-xs);
  color: var(--color-border-strong);
}

.breadcrumb__current {
  color: var(--color-text);
}

@media (max-width: 639px) {
  .breadcrumb--hero a,
  .breadcrumb--subpage a {
    padding: var(--space-sm) 0;
    min-height: var(--touch-target-min);
    display: inline-flex;
    align-items: center;
    -webkit-tap-highlight-color: transparent;
  }
}

.hero--city .hero__content {
  padding: var(--space-3xl) var(--space-lg);
}

.hero__badge {
  display: inline-block;
  margin-bottom: var(--space-md);
  padding: var(--space-xs) var(--space-md);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  border-radius: var(--radius-full);
  backdrop-filter: blur(8px);
}

.sticky-cta--city .sticky-cta__button {
  width: 100%;
  min-height: var(--touch-target-comfortable);
  font-size: var(--text-body-mobile);
}

/* â€”â€”â€” City page: Top picks (plan cards con imagen Fever) â€”â€”â€” */
.section--picks {
  background: var(--color-surface);
  padding-top: var(--space-4xl);
  padding-bottom: var(--space-4xl);
}

.picks-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
}

@media (min-width: 640px) {
  .picks-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-2xl);
  }
}

@media (min-width: 900px) {
  .picks-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.pick-card {
  background: var(--color-bg-card);
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);
  border: 1px solid var(--color-border-strong);
  overflow: hidden;
  transition: transform var(--duration-slow) var(--ease), box-shadow var(--duration-slow) var(--ease), border-color var(--duration) var(--ease);
}

.pick-card:hover {
  transform: translateY(var(--card-lift-hover));
  box-shadow: var(--card-shadow-hover);
  border-color: var(--color-border-strong);
}

.pick-card:active {
  transform: translateY(-2px);
}

.pick-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  color: var(--color-text);
  text-decoration: none;
  cursor: pointer;
  transition: var(--transition-all);
}

.pick-card__link:hover {
  color: var(--color-text);
  text-decoration: none;
}

.pick-card__link:active {
  opacity: 0.95;
}

.pick-card__img-wrap {
  position: relative;
  flex: 0 0 auto;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--color-surface);
}

.pick-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}

.pick-card:hover .pick-card__img {
  transform: scale(1.06);
}

.pick-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: var(--space-xl);
  flex-shrink: 0;
}

.pick-card__badge {
  display: inline-block;
  align-self: flex-start;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: var(--letter-spacing-wide);
  color: var(--color-accent);
  padding: var(--space-xs) var(--space-sm);
  background: var(--color-accent-soft);
  border-radius: var(--radius-full);
}

.pick-card__title {
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-tight);
  line-height: 1.35;
  margin: 0;
  color: var(--color-text);
  transition: var(--transition-all);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.7em;
}

.pick-card:hover .pick-card__title {
  color: var(--color-accent);
}

.pick-card__price {
  font-size: var(--text-body);
  font-weight: 700;
  color: var(--color-accent);
}

.pick-card__rating {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--text-caption);
  font-weight: 600;
  color: var(--color-gold);
  margin-left: var(--space-sm);
}

.pick-card__cta {
  margin-top: auto;
  width: 100%;
  min-height: var(--touch-target-comfortable);
  justify-content: center;
  font-size: var(--text-caption);
  font-weight: 700;
}

@media (max-width: 767px) {
  .pick-card__link {
    -webkit-tap-highlight-color: transparent;
  }
  .pick-card__body {
    padding: var(--space-lg);
    gap: var(--space-sm);
  }
  .pick-card__title {
    font-size: var(--text-body-mobile);
    line-height: 1.35;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    min-height: 2.8em;
  }
  .pick-card__cta {
    min-height: var(--touch-target-comfortable);
    margin-top: var(--space-md);
  }
}

/* Why [City] is perfect â€” bloques con borde acento */
.section--why {
  background: var(--color-bg);
  padding-top: var(--space-4xl);
  padding-bottom: var(--space-4xl);
}

.why-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
}

@media (min-width: 640px) {
  .why-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-2xl);
  }
}

.why-block {
  padding: var(--space-2xl);
  background: var(--color-bg-card);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border-strong);
  border-left: 4px solid var(--color-accent);
  box-shadow: var(--shadow-md);
  transition: all 0.3s var(--ease);
}

.why-block:hover {
  border-left-color: var(--color-accent-hover);
  box-shadow: var(--shadow-hover);
}

.why-block__title {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-tight);
  margin: 0 0 var(--space-lg);
  color: var(--color-text);
}

.why-block__text {
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--color-text-secondary);
  margin: 0;
}

/* Mother's Day Ideas in [City] â€” 4 cards con mÃ¡s espacio */
.section--ideas {
  background: var(--color-surface);
  padding-top: var(--space-4xl);
  padding-bottom: var(--space-4xl);
}

.section--ideas .section__title {
  margin-bottom: var(--space-sm);
}

.section--ideas .section__intro {
  margin-bottom: var(--space-2xl);
}

.ideas-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
}

@media (min-width: 640px) {
  .ideas-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-2xl);
  }
}

@media (min-width: 900px) {
  .ideas-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.idea-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: var(--space-2xl);
  background: var(--color-bg-card);
  border-radius: var(--card-radius);
  border: 1px solid var(--color-border-strong);
  box-shadow: var(--card-shadow);
  color: var(--color-text);
  text-decoration: none;
  cursor: pointer;
  transition: all 0.3s var(--ease);
  min-height: 140px;
}

.idea-card:hover {
  transform: translateY(var(--card-lift-hover));
  box-shadow: var(--card-shadow-hover);
  border-color: var(--color-accent-muted);
  color: var(--color-text);
  text-decoration: none;
}

.idea-card:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.idea-card__title {
  font-family: var(--font-display);
  font-size: 1.125rem;
  font-weight: 700;
  margin: 0 0 var(--space-sm);
  color: var(--color-text);
  transition: var(--transition-all);
}

.idea-card:hover .idea-card__title {
  color: var(--color-accent);
}

.idea-card__desc {
  font-size: var(--text-caption);
  line-height: 1.5;
  color: var(--color-text-secondary);
  margin: 0;
  flex: 1;
}

@media (max-width: 767px) {
  .idea-card {
    min-height: 100px;
    padding: var(--space-xl);
    -webkit-tap-highlight-color: transparent;
  }
  .idea-card__title {
    font-size: 1.0625rem;
  }
  .why-block {
    padding: var(--space-xl);
  }
  .why-block__title {
    font-size: 1.125rem;
  }
}

.section--cta-fever {
  background: linear-gradient(180deg, var(--color-accent-soft) 0%, var(--color-bg-card) 100%);
  border-top: 1px solid var(--color-border);
  padding: var(--space-3xl) 0;
  text-align: center;
}

.section--cta-fever .section__intro {
  margin-bottom: var(--space-lg);
  font-size: var(--text-body-lg);
}

/* CRO mÃ³vil: ocultar botÃ³n duplicado "See all on Fever" en city/subpages; hero + sticky son suficientes */
@media (max-width: 767px) {
  .section--cta-fever p:last-of-type {
    display: none;
  }
  .section--picks p:has(.cta-button),
  .section--empty-state p:has(.cta-button) {
    display: none;
  }
}

/* â€”â€”â€” Gift Cards (estilo Fever: tÃ­tulo + See all + fila de cards) â€”â€”â€” */
.section--gift-cards {
  background: var(--color-bg-card);
  padding-top: var(--space-4xl);
  padding-bottom: var(--space-4xl);
  border-top: 1px solid var(--color-border);
}

.gift-cards-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-md);
  margin-bottom: var(--space-xl);
}

.section__title--inline {
  margin-bottom: 0;
}
.section__title--no-underline {
  border-bottom: none;
  padding-bottom: 0;
}

.section__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  margin-bottom: var(--space-md);
}

.section__title-row .section__title {
  margin-bottom: 0;
}

.section--value-props .section__title-row .section__title {
  flex: 1;
  text-align: center;
}

.section__title-link {
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 600;
  color: var(--color-accent);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--duration) var(--ease);
}

.section__title-link:hover {
  color: var(--color-accent-hover);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.gift-cards-see-all {
  font-size: var(--text-caption);
  font-weight: 700;
  color: var(--color-accent);
  text-decoration: none;
  transition: var(--transition-all);
}

.gift-cards-see-all:hover {
  color: var(--color-accent-hover);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.gift-cards-scroll {
  display: flex;
  gap: var(--space-xl);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: var(--space-md);
  -webkit-overflow-scrolling: touch;
  mask-image: linear-gradient(to right, transparent 0, black 24px, black calc(100% - 24px), transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, black 24px, black calc(100% - 24px), transparent 100%);
}

.gift-cards-scroll::-webkit-scrollbar {
  height: 6px;
}

.gift-cards-scroll::-webkit-scrollbar-track {
  background: var(--color-surface);
  border-radius: var(--radius-full);
}

.gift-cards-scroll::-webkit-scrollbar-thumb {
  background: var(--color-border-strong);
  border-radius: var(--radius-full);
}

.gift-card {
  flex: 0 0 auto;
  width: 260px;
  scroll-snap-align: start;
}

@media (max-width: 767px) {
  .gift-card {
    width: min(260px, 78vw);
  }
  .gift-card__link {
    -webkit-tap-highlight-color: transparent;
  }
  .gift-cards-see-all {
    min-height: var(--touch-target-min);
    display: inline-flex;
    align-items: center;
  }
}

.gift-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: var(--color-text);
  text-decoration: none;
  cursor: pointer;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-bg-card);
  border: 1px solid var(--color-border-strong);
  box-shadow: var(--shadow-md);
  transition: all 0.3s var(--ease);
}

.gift-card__link:hover {
  color: var(--color-text);
  text-decoration: none;
  border-color: var(--color-accent-muted);
  box-shadow: var(--shadow-hover);
  transform: translateY(-4px);
}

.gift-card__img-wrap {
  position: relative;
  aspect-ratio: 280 / 180;
  overflow: hidden;
  background: var(--color-surface);
}

.gift-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s var(--ease);
}

.gift-card__link:hover .gift-card__img {
  transform: scale(1.05);
}

.gift-card__title {
  display: block;
  padding: var(--space-md) var(--space-lg) 0;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text);
  transition: var(--transition-all);
}

.gift-card__link:hover .gift-card__title {
  color: var(--color-accent);
}

.gift-card__price {
  display: block;
  padding: var(--space-xs) var(--space-lg) var(--space-lg);
  font-size: var(--text-caption);
  font-weight: 700;
  color: var(--color-accent);
}

@media (min-width: 900px) {
  .gift-cards-scroll {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    overflow-x: visible;
    scroll-snap-type: none;
    mask-image: none;
    -webkit-mask-image: none;
  }

  .gift-card {
    width: auto;
    scroll-snap-align: none;
  }
}

/* â€”â€”â€” Utilidades (plan cards, breadcrumb, etc. para pÃ¡ginas de ciudad) â€”â€”â€” */
.breadcrumb {
  font-size: var(--text-caption);
  color: var(--color-text-muted);
  margin: 0 0 var(--space-md);
}

.breadcrumb--subpage {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-xs) var(--space-sm);
  margin-bottom: var(--space-xl);
  padding: var(--space-md) 0;
  border-bottom: 1px solid var(--color-border);
}

.breadcrumb--subpage a {
  color: var(--color-text-secondary);
  font-weight: 600;
  transition: var(--transition-all);
}

.breadcrumb--subpage a:hover {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.breadcrumb--subpage .breadcrumb__sep {
  margin: 0 var(--space-sm);
  color: var(--color-text-muted);
  font-weight: 400;
}

.breadcrumb--subpage .breadcrumb__current {
  color: var(--color-text);
  font-weight: 600;
}

.section--subpage .section__intro {
  margin-bottom: var(--space-xl);
}

/* â€”â€”â€” Subpage hero (ideas/experiences/events/candlelight): imagen ciudad + texto â€”â€”â€” */
.hero--subpage {
  height: 320px;
  min-height: 280px;
  max-height: 380px;
  display: flex;
  align-items: flex-end;
  padding-bottom: var(--space-2xl);
}
.hero--subpage .hero__background,
.hero--subpage .hero__overlay,
.hero--subpage .hero__background img {
  max-height: 380px;
  height: 100%;
}
.hero__overlay--subpage {
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.15) 0%,
    rgba(0, 0, 0, 0.5) 50%,
    rgba(0, 0, 0, 0.85) 100%
  );
}
.hero__content--subpage {
  text-align: left;
  padding: 0;
  max-width: none;
}
.hero__title--subpage {
  font-size: clamp(1.5rem, 4vw, 2.25rem);
  margin: var(--space-sm) 0 var(--space-md);
  color: #fff;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.4);
}
.hero__subtitle--subpage {
  font-size: var(--text-body);
  line-height: var(--line-height-body);
  color: rgba(255, 255, 255, 0.95);
  margin: 0 0 var(--space-lg);
  max-width: 36rem;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.3);
}
.hero--subpage .hero__cta {
  margin: 0;
}
/* Breadcrumb sobre hero: texto claro */
.breadcrumb--hero.breadcrumb--subpage a {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
}
.breadcrumb--hero.breadcrumb--subpage a:hover {
  color: #fff;
  text-decoration: underline;
}
.breadcrumb--hero .breadcrumb__sep {
  color: rgba(255, 255, 255, 0.7);
}
.breadcrumb--hero .breadcrumb__current {
  color: #fff;
  font-weight: 600;
}
.section--subpage-actions {
  padding-top: var(--space-lg);
  padding-bottom: var(--space-md);
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
}

@media (max-width: 767px) {
  .section--subpage-actions {
    padding-top: var(--space-md);
    padding-bottom: var(--space-md);
  }
}

@media (max-width: 767px) {
  .hero--subpage {
    height: 280px;
    min-height: 240px;
    padding-bottom: var(--space-xl);
  }
  .hero--subpage .hero__background,
  .hero--subpage .hero__overlay,
  .hero--subpage .hero__background img {
    max-height: 280px;
  }
  .hero--subpage .hero__content .container {
    padding-left: var(--space-md);
    padding-right: var(--space-md);
  }
  .hero__title--subpage {
    font-size: clamp(1.25rem, 5vw, 1.75rem);
    line-height: 1.3;
    word-wrap: break-word;
  }
  .hero__subtitle--subpage {
    font-size: var(--text-caption);
    line-height: 1.5;
  }
  .hero--subpage .hero__cta {
    min-height: var(--touch-target-comfortable);
    width: 100%;
    justify-content: center;
  }
}

.link--back {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  margin-top: var(--space-lg);
  padding: var(--space-sm) 0;
  font-size: var(--text-body);
  font-weight: 600;
  color: var(--color-text-secondary);
  text-decoration: none;
  transition: var(--transition-all);
}

@media (max-width: 767px) {
  .link--back {
    min-height: var(--touch-target-min);
    padding: var(--space-md) 0;
    align-items: center;
  }
}

.link--back:hover {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.link--back::before {
  content: "";
  display: inline-block;
  width: 0.5em;
  height: 0.5em;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  margin-right: 0.35em;
  vertical-align: middle;
  flex-shrink: 0;
}

.city-nav {
  margin: var(--space-lg) 0 0;
  font-size: var(--text-body);
}

.city-nav a {
  margin-right: var(--space-md);
  transition: var(--transition-all);
}

.glide__bullet {
  cursor: default;
  pointer-events: none;
}

.glide__slide {
  padding: 0 var(--space-sm);
}

.plan-card {
  display: block;
  background: var(--color-bg-card);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  border: 1px solid var(--color-border);
  color: var(--color-text);
  transition: var(--transition-all);
}

.plan-card:hover {
  transform: translateY(var(--card-lift-hover));
  box-shadow: var(--shadow-hover);
  text-decoration: none;
  color: var(--color-text);
}

.plan-card__image-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.plan-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}

.plan-card:hover .plan-card__image {
  transform: scale(1.05);
}

.plan-card__body {
  padding: var(--space-lg);
}

.plan-card__title {
  font-weight: 600;
  font-size: 1rem;
  margin: 0 0 var(--space-xs);
}

.plan-card__venue {
  font-size: var(--text-caption);
  color: var(--color-text-muted);
  margin: 0 0 var(--space-sm);
}

.plan-card__price {
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--color-accent);
}

/* â€”â€”â€” Responsive: mÃ³vil legible y paddings (no tocar bordes) â€”â€”â€” */
@media (max-width: 767px) {
  .container {
    padding-left: max(var(--container-gutter-mobile, 1.25rem), env(safe-area-inset-left));
    padding-right: max(var(--container-gutter-mobile, 1.25rem), env(safe-area-inset-right));
  }

  body {
    font-size: var(--text-body-mobile);
    line-height: 1.6;
  }

  .section__intro,
  .why-block__text,
  .idea-card__desc {
    font-size: clamp(1rem, 2.5vw, var(--text-body-lg));
    line-height: 1.6;
  }

  .section__title {
    margin-bottom: var(--space-md);
    font-size: clamp(1.375rem, 4vw, var(--text-h1));
    line-height: 1.25;
  }

  .section__intro {
    margin-bottom: var(--space-2xl);
  }

  .hero__content {
    padding-left: var(--space-lg);
    padding-right: var(--space-lg);
  }

  .hero__title {
    margin-bottom: var(--space-md);
  }

  .hero__subtitle {
    font-size: 1.2rem;
    line-height: 1.5;
    margin-bottom: var(--space-xl);
  }

  .hero .hero__cta {
    margin-top: var(--space-lg);
  }

  .hero--city .hero__content {
    padding-left: var(--space-xl);
    padding-right: var(--space-xl);
  }

  .pick-card__body,
  .idea-card {
    padding: var(--space-lg);
  }

  .feature-card__inner {
    padding: var(--space-xl);
  }

  .feature-card__title {
    font-size: clamp(1.125rem, 3.5vw, var(--text-h2));
  }

  .feature-card__text {
    font-size: 1rem;
    line-height: 1.6;
  }

}

/* Trust: tablet â€” 2 columnas */
@media (max-width: 900px) {
  .trust-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Trust module mÃ³vil: una columna, mismos espaciados reducidos */
@media (max-width: 767px) {
  .trust-grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }
  .trust-item {
    padding: var(--space-xl) var(--space-md);
  }
  .trust-item__icon {
    width: 3rem;
    height: 3rem;
    min-width: 3rem;
    min-height: 3rem;
  }
  .trust-item__icon svg {
    width: 1.75rem;
    height: 1.75rem;
  }
  .trust-item__label {
    font-size: 1.125rem;
  }
}

@media (max-width: 480px) {
  .container {
    padding-left: max(1.125rem, env(safe-area-inset-left));
    padding-right: max(1.125rem, env(safe-area-inset-right));
  }

  .section {
    padding-top: var(--space-3xl);
    padding-bottom: var(--space-3xl);
  }

  .section--picks,
  .section--why,
  .section--ideas,
  .section--gift-cards {
    padding-top: var(--space-3xl);
    padding-bottom: var(--space-3xl);
  }
}

/* â€”â€”â€” Cookie consent banner (GDPR/CCPA) â€”â€”â€” */
/* Misma paleta que footer y CTAs del sitio: verde acento, bordes neutros, tipografÃ­a coherente */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  padding: var(--space-xl) var(--container-gutter);
  padding-bottom: max(var(--space-xl), env(safe-area-inset-bottom));
  background: var(--color-footer-bg);
  border-top: 1px solid var(--color-border);
  box-shadow: 0 -4px 24px rgba(var(--shadow-tint), 0.06);
  font-family: var(--font-body);
}
.cookie-banner--hidden {
  display: none;
}
.cookie-banner__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-xl);
}
.cookie-banner__text {
  margin: 0;
  font-size: var(--text-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  flex: 1 1 300px;
}
.cookie-banner__text a {
  color: var(--color-accent);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: var(--transition-all);
}
.cookie-banner__text a:hover {
  color: var(--color-accent-hover);
  border-bottom-color: var(--color-accent-hover);
}
.cookie-banner__text a:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}
.cookie-banner__actions {
  display: flex;
  gap: var(--space-md);
  flex-shrink: 0;
  align-items: center;
}
.cookie-banner__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-md) var(--space-xl);
  min-height: var(--touch-target-comfortable);
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-wide);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: var(--transition-all);
}
.cookie-banner__btn--reject {
  border: 1px solid var(--color-border-strong);
  background: var(--color-surface);
  color: var(--color-text-secondary);
}
.cookie-banner__btn--reject:hover {
  background: var(--color-accent-soft);
  border-color: var(--color-accent-muted);
  color: var(--color-text);
}
.cookie-banner__btn--reject:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}
.cookie-banner__btn--reject:active {
  opacity: 0.9;
}
/* Accept usa el mismo estilo que el resto de CTAs del sitio (verde) â€” sin overrides */
.cookie-banner__btn--accept.cta-button {
  min-height: var(--touch-target-comfortable);
}
.cookie-banner__btn--accept.cta-button:active {
  transform: translateY(0);
  box-shadow: 0 2px 12px rgba(61, 122, 90, 0.25);
}
@media (max-width: 639px) {
  .cookie-banner {
    padding: var(--space-md) var(--container-gutter);
    padding-bottom: max(var(--space-md), env(safe-area-inset-bottom));
    max-height: 85vh;
    overflow-y: auto;
  }
  .cookie-banner__inner {
    flex-direction: column;
    align-items: stretch;
    align-content: flex-start;
    text-align: center;
    gap: var(--space-md);
    flex-wrap: nowrap;
  }
  .cookie-banner__text {
    font-size: var(--text-caption);
    flex: 0 0 auto;
    line-height: 1.4;
  }
  .cookie-banner__actions {
    justify-content: stretch;
    flex-direction: row;
    gap: var(--space-sm);
    flex-shrink: 0;
  }
  .cookie-banner__btn {
    flex: 1;
    min-width: 0;
    justify-content: center;
    padding: var(--space-sm) var(--space-md);
    min-height: var(--touch-target-min);
    -webkit-tap-highlight-color: transparent;
  }
}

/* Seasonality Master Template â€” Animations (respeta prefers-reduced-motion) */

/* Hero: zoom automÃ¡tico mÃ¡s marcado (estilo celebratevalentines.com) */
@keyframes heroZoom {
  from { transform: scale(1); }
  to { transform: scale(1.15); }
}

@media (prefers-reduced-motion: reduce) {
  @keyframes heroZoom {
    from { transform: scale(1); }
    to { transform: scale(1); }
  }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInUpShort {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  @keyframes fadeInUp {
    from { opacity: 0; }
    to { opacity: 1; }
  }
  @keyframes fadeInUpShort {
    from { opacity: 0; }
    to { opacity: 1; }
  }
}

.section--animate {
  animation: fadeIn 0.4s ease-out;
}

/* Entrada suave para secciones (opcional: aÃ±adir .section--reveal en HTML) */
.section--reveal {
  animation: fadeInUp 0.5s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)) forwards;
}

/* Stagger para grids: hijos se animan con delay */
.picks-grid--stagger .pick-card,
.ideas-grid--stagger .idea-card,
.features-grid--stagger .feature-card,
.city-grid--stagger .city-card {
  opacity: 0;
  animation: fadeInUpShort 0.45s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)) forwards;
}

@media (prefers-reduced-motion: no-preference) {
  .picks-grid--stagger .pick-card:nth-child(1) { animation-delay: 0.05s; }
  .picks-grid--stagger .pick-card:nth-child(2) { animation-delay: 0.1s; }
  .picks-grid--stagger .pick-card:nth-child(3) { animation-delay: 0.15s; }
  .picks-grid--stagger .pick-card:nth-child(4) { animation-delay: 0.2s; }
  .picks-grid--stagger .pick-card:nth-child(5) { animation-delay: 0.25s; }
  .picks-grid--stagger .pick-card:nth-child(6) { animation-delay: 0.3s; }
  .ideas-grid--stagger .idea-card:nth-child(1) { animation-delay: 0.05s; }
  .ideas-grid--stagger .idea-card:nth-child(2) { animation-delay: 0.1s; }
  .ideas-grid--stagger .idea-card:nth-child(3) { animation-delay: 0.15s; }
  .ideas-grid--stagger .idea-card:nth-child(4) { animation-delay: 0.2s; }
  .city-grid--stagger .city-card:nth-child(1) { animation-delay: 0.05s; }
  .city-grid--stagger .city-card:nth-child(2) { animation-delay: 0.1s; }
  .city-grid--stagger .city-card:nth-child(3) { animation-delay: 0.15s; }
}

@media (prefers-reduced-motion: reduce) {
  .picks-grid--stagger .pick-card,
  .ideas-grid--stagger .idea-card,
  .features-grid--stagger .feature-card,
  .city-grid--stagger .city-card {
    opacity: 1;
    animation: none;
  }
}

.glide__slide {
  transition: transform 0.3s ease;
}

