/* ==========================================================================
   Route by Route – Home · Estilos
   Réplica de la maqueta aprobada adaptada al marcado de los bloques de
   WordPress (core + bloques rbr/*). Todo va acotado a body.rbr-home, así que
   solo afecta a páginas que usan el bloque «Cabecera Route by Route».
   Orden: 1 tokens · 2 base y reset Kadence/WP · 3 componentes · 4 cabecera ·
   5 hero · 6 método · 7 mapa · 8 itinerarios · 9 aterrizar · 10 nosotros ·
   11 kit · 12 newsletter · 13 footer · 14 buscador · 15 movimiento · 16 editor
   ========================================================================== */

/* 1. TOKENS ---------------------------------------------------------------- */
/* .rbr-shell = contenedor de la cabecera/footer globales en el resto del sitio */
body.rbr-home, .rbr-shell {
  --c-pine: #2d5a54;
  --c-pine-700: #234843;
  --c-pine-800: #1c3b37;
  --c-pine-900: #14302c;
  --c-pine-100: #dfeae6;
  --c-cream: #fdfcf0;
  --c-sand: #f4efdc;
  --c-sand-2: #ebe3c8;
  --c-paper: #fffef7;
  --c-sun: #f39c12;
  --c-sun-600: #e08a06;
  --c-sun-ink: #b06400;
  --c-sun-50: #fff3dc;
  --c-ink: #1a1a1a;
  --c-ink-2: #3b3b3b;
  --c-muted: #5f5f58;
  --c-line: rgba(26, 26, 26, .11);
  --c-line-light: rgba(253, 252, 240, .16);

  --f-display: "Fraunces", Georgia, "Times New Roman", serif;
  --f-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --gutter: 20px;
  --maxw: 1240px;
  --section-y: clamp(72px, 11vw, 144px);
  --r-md: 18px;
  --r-lg: 28px;
  --shadow-sm: 0 1px 2px rgba(20, 48, 44, .06), 0 2px 8px rgba(20, 48, 44, .06);
  --shadow-md: 0 2px 6px rgba(20, 48, 44, .06), 0 14px 34px -10px rgba(20, 48, 44, .22);
  --shadow-lg: 0 4px 10px rgba(20, 48, 44, .06), 0 30px 70px -20px rgba(20, 48, 44, .38);

  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --t-fast: .2s;
  --t-med: .45s;
  --t-slow: .9s;
  --header-h: 64px;
  --admin-bar: 0px;

  /* Iconos (máscaras): cambiar la clase del bloque cambia el icono */
  --ico-arrow: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14M13 6l6 6-6 6'/></svg>");
  --ico-clock: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>");
  --ico-route: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><circle cx='6' cy='19' r='2.5'/><circle cx='18' cy='5' r='2.5'/><path d='M8.5 19H16a3.5 3.5 0 0 0 0-7H8a3.5 3.5 0 0 1 0-7h7.5'/></svg>");
  --ico-bulb: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M9 18h6M10 21h4M12 3a6 6 0 0 0-3.6 10.8c.7.6 1.1 1.3 1.1 2.2h5c0-.9.4-1.6 1.1-2.2A6 6 0 0 0 12 3Z'/></svg>");
  --ico-coins: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><ellipse cx='9' cy='7' rx='6' ry='3'/><path d='M3 7v5c0 1.7 2.7 3 6 3s6-1.3 6-3V7M3 12v5c0 1.7 2.7 3 6 3 1.1 0 2.1-.1 3-.4'/><circle cx='18' cy='16' r='4'/></svg>");
  --ico-shield: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3 4.5 6v5.5c0 4.6 3.2 8.4 7.5 9.5 4.3-1.1 7.5-4.9 7.5-9.5V6L12 3Z'/><path d='m9 12 2 2 4-4'/></svg>");
  --ico-sim: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8l-5-5Z'/><rect x='8.5' y='11' width='7' height='6.5' rx='1'/><path d='M12 11v6.5M8.5 14.2h7'/></svg>");
  --ico-ticket: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M4 7a2 2 0 0 0 2-2h12a2 2 0 0 0 2 2v3a2 2 0 0 0 0 4v3a2 2 0 0 0-2 2H6a2 2 0 0 0-2-2v-3a2 2 0 0 0 0-4V7Z'/><path d='M13 5v2M13 11v2M13 17v2'/></svg>");
  --ico-flag: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M5 21V4M5 4h11l-2 4 2 4H5'/></svg>");
  --ico-bed: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M3 18V6M3 14h18v4M21 14v-2a3 3 0 0 0-3-3h-7v5'/><circle cx='7' cy='11' r='2'/></svg>");
  --ico-plane: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'/></svg>");
  --ico-mail: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='14' rx='2'/><path d='m4 7 8 6 8-6'/></svg>");
}
body.rbr-home.admin-bar, .admin-bar .rbr-shell { --admin-bar: 32px; }
@media (max-width: 782px) { body.rbr-home.admin-bar, .admin-bar .rbr-shell { --admin-bar: 46px; } }
@media (min-width: 768px) { body.rbr-home, .rbr-shell { --gutter: 32px; --header-h: 72px; } }

/* Cabecera/footer globales: tipografía base y hueco para la cabecera flotante */
.rbr-shell { font-family: var(--f-body); font-size: 1rem; line-height: 1.6; color: var(--c-ink); -webkit-font-smoothing: antialiased; }
.rbr-shell--footer .newsletter { background: var(--c-cream); }
body.rbr-global #inner-wrap { padding-top: 90px; }
@media (min-width: 768px) { body.rbr-global #inner-wrap { padding-top: 98px; } }

/* 2. BASE Y RESET (Kadence / bloques) --------------------------------------- */
html:has(body.rbr-home) { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 24px); }

body.rbr-home {
  margin: 0;
  background: var(--c-cream);
  color: var(--c-ink);
  font-family: var(--f-body);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

:is(.rbr-home, .rbr-shell) {
  /* Kadence: contenedores a ancho completo, sin cajas ni márgenes */
  #wrapper, .site, #inner-wrap, .content-bg, .site-main, .entry, .entry-content-wrap { background: transparent; }
  .content-area, #primary, .site-main { margin: 0; padding: 0; }
  .content-container, .site-container { max-width: none; padding: 0; margin: 0; }
  .entry.single-entry { box-shadow: none; border-radius: 0; margin: 0; }
  .entry-content-wrap { padding: 0; }
  .entry-content { margin: 0; }
  .entry-content > * { max-width: none; margin-left: 0; margin-right: 0; }
  .entry-content > :where(*) { margin-top: 0; margin-bottom: 0; }

  /* Tipografía y márgenes de la página: se controlan aquí, no por el tema */
  :is(p, h1, h2, h3, h4, ul, ol, dl, dd, figure, blockquote) { margin: 0; }
  :is(ul, ol) { padding: 0; list-style: none; }
  :is(h1, h2, h3, h4) { font-weight: inherit; letter-spacing: normal; text-transform: none; }
  :is(.wp-block-group, .wp-block-buttons, .wp-block-image, .wp-block-list) { margin: 0; }
  .is-layout-flow > *, .is-layout-constrained > * { margin-block: 0; }
  .wp-block-group { box-sizing: border-box; }
  /* Kadence (tema clásico) envuelve el contenido de cada Grupo en un contenedor
     interno: lo hacemos «transparente» para que rejillas y flex vean a los hijos. */
  .wp-block-group__inner-container { display: contents; }
  img, svg { display: block; max-width: 100%; }
  img { height: auto; }
  a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
  button { font: inherit; color: inherit; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: normal; }
  input { font: inherit; color: inherit; }
  [hidden] { display: none !important; }
  :focus-visible { outline: 3px solid var(--c-sun); outline-offset: 3px; border-radius: 6px; }
  ::selection { background: var(--c-sun); color: var(--c-ink); }

  .container { width: min(100% - var(--gutter) * 2, var(--maxw)); margin-inline: auto; }
  .visually-hidden, .screen-reader-text {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
  .skip-link {
    position: fixed; left: 16px; top: -60px; z-index: 100;
    background: var(--c-ink); color: var(--c-cream); padding: 10px 16px; border-radius: 999px; font-weight: 600; text-decoration: none;
    transition: top var(--t-fast);
  }
  .skip-link:focus { top: 16px; }

  .icon { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; flex: none; }
  .icon--sm { width: 18px; height: 18px; }

  /* 3. COMPONENTES ------------------------------------------------------- */
  .section { padding-block: var(--section-y); position: relative; }

  .eyebrow {
    display: inline-flex; align-items: center; gap: 12px;
    font-family: var(--f-body); font-size: .78rem; font-weight: 600; line-height: 1.4;
    letter-spacing: .16em; text-transform: uppercase; color: var(--c-pine);
    margin-bottom: 18px;
  }
  .eyebrow::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: currentColor; opacity: .7; }
  .eyebrow--light { color: var(--c-cream); }
  .eyebrow--sun { color: var(--c-sun); }

  .section-title {
    font-family: var(--f-display); font-weight: 400;
    font-variation-settings: "opsz" 96, "SOFT" 50;
    font-size: clamp(2.05rem, 5.2vw, 3.7rem); line-height: 1.04; letter-spacing: -.022em;
    color: var(--c-pine-900); text-wrap: balance;
  }
  .section-title em { font-style: italic; font-weight: 350; color: var(--c-sun-ink); }

  .lead { font-size: clamp(1.02rem, 1.3vw, 1.15rem); line-height: 1.65; color: var(--c-ink-2); max-width: 58ch; margin-top: 18px; text-wrap: pretty; }

  .section-head { margin-bottom: clamp(36px, 5vw, 64px); max-width: 780px; }
  .section-head--light .section-title { color: var(--c-cream); }
  .section-head--light .section-title em { color: var(--c-sun); }
  .section-head--light .lead { color: rgba(253, 252, 240, .78); }
  .section-head--split { max-width: none; display: grid; gap: 28px; align-items: end; }
  @media (min-width: 900px) {
    .section-head--split { grid-template-columns: 1.1fr 1fr; gap: 64px; }
    :is(.section-head--split, .section-head--split > .wp-block-group__inner-container) > .lead { margin-top: 0; justify-self: end; }
  }

  /* Botones: sirve para enlaces generados (a.btn) y para bloques Botón (clase en el contenedor) */
  :where(.btn) { --btn-bg: var(--c-pine); --btn-fg: var(--c-cream); --btn-sweep: var(--c-pine-900); --btn-h: 52px; --btn-px: 26px; --btn-fs: .98rem; }
  .btn--sun { --btn-bg: var(--c-sun); --btn-fg: var(--c-ink); --btn-sweep: #ffb238; }
  .btn--pine { --btn-bg: var(--c-pine); --btn-fg: var(--c-cream); --btn-sweep: var(--c-pine-900); }
  .btn--ghost { --btn-bg: transparent; --btn-fg: var(--c-pine-900); --btn-sweep: var(--c-pine); }
  .btn--sm { --btn-h: 44px; --btn-px: 20px; --btn-fs: .92rem; }
  :is(a.btn, .wp-block-button.btn > .wp-block-button__link) {
    position: relative; isolation: isolate; overflow: hidden;
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    min-height: var(--btn-h); padding: 0 var(--btn-px);
    border: 0; border-radius: 999px;
    background: var(--btn-bg); color: var(--btn-fg);
    font-family: var(--f-body); font-weight: 600; font-size: var(--btn-fs); line-height: 1.2;
    text-decoration: none; white-space: nowrap; box-shadow: none;
    transition: transform var(--t-fast) var(--ease-out), color var(--t-med) var(--ease-out);
  }
  :is(a.btn, .wp-block-button.btn > .wp-block-button__link)::before {
    content: ""; position: absolute; inset: 0; z-index: -1; background: var(--btn-sweep);
    transform: scaleX(0); transform-origin: right; transition: transform var(--t-med) var(--ease-out);
  }
  .wp-block-button.btn > .wp-block-button__link::after {
    content: ""; width: 18px; height: 18px; background: currentColor;
    -webkit-mask: var(--ico-arrow) center / contain no-repeat; mask: var(--ico-arrow) center / contain no-repeat;
    transition: transform var(--t-med) var(--ease-out);
  }
  :is(a.btn, .wp-block-button.btn > .wp-block-button__link) .icon { transition: transform var(--t-med) var(--ease-out); }
  :is(a.btn, .wp-block-button.btn > .wp-block-button__link):hover { color: var(--btn-fg); }
  :is(a.btn, .wp-block-button.btn > .wp-block-button__link):hover::before { transform: scaleX(1); transform-origin: left; }
  :is(a.btn, .wp-block-button.btn > .wp-block-button__link):hover :is(.icon), .wp-block-button.btn > .wp-block-button__link:hover::after { transform: translateX(4px); }
  :is(a.btn, .wp-block-button.btn > .wp-block-button__link):active { transform: scale(.97); }
  :is(a.btn--ghost, .wp-block-button.btn--ghost > .wp-block-button__link) { box-shadow: inset 0 0 0 1.5px var(--c-pine); }
  :is(a.btn--ghost, .wp-block-button.btn--ghost > .wp-block-button__link):hover { color: var(--c-cream); }
  .btn--block { width: 100%; }
  .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 10px; }

  :is(a.link-arrow, .link-arrow > a) {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
    font-weight: 600; color: var(--c-pine); text-decoration: none;
    background: linear-gradient(currentColor, currentColor) 0 calc(100% - 8px) / 0 1.5px no-repeat;
    transition: background-size var(--t-med) var(--ease-out);
  }
  .link-arrow > a::after, a.link-arrow--light::after {
    content: ""; width: 18px; height: 18px; background: currentColor;
    -webkit-mask: var(--ico-arrow) center / contain no-repeat; mask: var(--ico-arrow) center / contain no-repeat;
    transition: transform var(--t-med) var(--ease-out);
  }
  :is(a.link-arrow, .link-arrow > a):hover { background-size: calc(100% - 26px) 1.5px; }
  :is(a.link-arrow, .link-arrow > a):hover::after { transform: translateX(5px); }
  :is(a.link-arrow--light, .link-arrow--light > a) { color: var(--c-cream); }

  .icon-btn {
    display: inline-grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%;
    background: transparent; color: var(--c-pine-900); padding: 0; transition: background var(--t-fast);
  }
  .icon-btn:hover { background: rgba(45, 90, 84, .1); }

  /* 4. CABECERA --------------------------------------------------------- */
  .site-header { position: fixed; inset: calc(10px + var(--admin-bar)) 10px auto; z-index: 50; transition: transform var(--t-med) var(--ease-out); }
  .site-header.is-hidden { transform: translateY(calc(-100% - 20px - var(--admin-bar))); }
  .site-header__bar {
    display: flex; align-items: center; gap: 12px;
    max-width: calc(var(--maxw) + 40px); height: var(--header-h); margin-inline: auto; padding: 0 8px 0 18px;
    border-radius: 999px; border: 1px solid rgba(45, 90, 84, .12);
    /* Color editable en Apariencia → Cabecera y footer RBR (variable --rbr-header-bg) */
    background: color-mix(in srgb, var(--rbr-header-bg, #ffffff) 88%, transparent);
    -webkit-backdrop-filter: blur(16px) saturate(1.5); backdrop-filter: blur(16px) saturate(1.5);
    box-shadow: 0 8px 30px -12px rgba(20, 48, 44, .3);
    transition: background var(--t-med), box-shadow var(--t-med);
  }
  .site-header.is-scrolled .site-header__bar { background: color-mix(in srgb, var(--rbr-header-bg, #ffffff) 96%, transparent); box-shadow: var(--shadow-md); }
  .site-header__logo { display: block; margin-right: auto; }
  .site-header__logo img { height: 42px; width: auto; }
  @media (min-width: 768px) { .site-header__logo img { height: 48px; } }
  .site-header__actions { display: flex; align-items: center; gap: 2px; }
  .site-header .site-header__actions a.site-header__contact { display: none; margin-left: 6px; }
  @media (min-width: 1024px) { .site-header .site-header__actions a.site-header__contact { display: inline-flex; } }

  .main-nav { display: none; }
  @media (min-width: 1024px) { .main-nav { display: block; } .burger { display: none !important; } }
  .main-nav__list { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
  .main-nav__item { position: relative; }
  .main-nav__link {
    display: inline-flex; align-items: center; gap: 4px; height: 44px; padding: 0 16px; border: 0; border-radius: 999px;
    background: transparent; color: var(--c-pine-900); font-family: var(--f-body); font-size: .95rem; font-weight: 500; text-decoration: none;
    transition: background var(--t-fast);
  }
  .main-nav__link:hover, .main-nav__link[aria-expanded="true"] { background: rgba(45, 90, 84, .09); color: var(--c-pine-900); }
  .main-nav__link .icon { transition: transform var(--t-med) var(--ease-out); }
  .main-nav__link[aria-expanded="true"] .icon { transform: rotate(180deg); }

  .mega {
    position: absolute; top: calc(100% + 18px); left: -20px;
    display: grid; grid-template-columns: auto 240px; gap: 28px; width: max-content; padding: 26px;
    background: var(--c-paper); border: 1px solid var(--c-line); border-radius: 24px; box-shadow: var(--shadow-lg);
    animation: rbr-drop-in var(--t-med) var(--ease-out);
  }
  .mega__cols { display: grid; grid-template-columns: repeat(2, 150px); gap: 24px; }
  .mega__col ul { margin: 0; padding: 0; list-style: none; }
  .mega__continent { display: block; margin-bottom: 8px; font-family: var(--f-display); font-size: 1.2rem; color: var(--c-pine-900); text-decoration: none; }
  .mega__col:nth-child(n+3) { margin-top: -6px; }
  .mega__col li a, .mega__soon { display: flex; align-items: center; min-height: 34px; gap: 8px; color: var(--c-ink-2); text-decoration: none; font-size: .95rem; }
  .mega__col li a:hover { color: var(--c-sun-ink); }
  .mega__soon { color: var(--c-muted); }
  .mega__soon small, .mobile-menu__dest small { font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
  .mega__soon small { color: var(--c-sun-ink); }
  .mega__feature {
    display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; padding: 20px; min-height: 180px; border-radius: 16px;
    color: var(--c-cream); text-decoration: none;
    background: linear-gradient(180deg, rgba(20, 48, 44, .1), rgba(20, 48, 44, .9)), url("https://routebyroute.com/wp-content/uploads/2026/02/TurquiaPortada-300x169.jpg") center / cover;
  }
  .mega__feature-kicker { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--c-sun); font-weight: 600; }
  .mega__feature-title { font-family: var(--f-display); font-size: 1.25rem; line-height: 1.15; }
  .mega__feature-cta { display: inline-flex; gap: 6px; align-items: center; font-size: .88rem; font-weight: 600; }

  .burger__lines, .burger__lines::before, .burger__lines::after {
    display: block; width: 20px; height: 2px; border-radius: 2px; background: currentColor;
    transition: transform var(--t-med) var(--ease-out), opacity var(--t-fast);
  }
  .burger__lines { position: relative; }
  .burger__lines::before, .burger__lines::after { content: ""; position: absolute; left: 0; }
  .burger__lines::before { top: -6px; }
  .burger__lines::after { top: 6px; }
  .burger[aria-expanded="true"] .burger__lines { background: transparent; }
  .burger[aria-expanded="true"] .burger__lines::before { transform: translateY(6px) rotate(45deg); }
  .burger[aria-expanded="true"] .burger__lines::after { transform: translateY(-6px) rotate(-45deg); }

  .mobile-menu {
    position: fixed; inset: 0; z-index: 45; background: var(--c-cream);
    padding: calc(var(--header-h) + 36px + var(--admin-bar)) var(--gutter) 32px; overflow-y: auto;
    animation: rbr-menu-in var(--t-med) var(--ease-out);
  }
  .mobile-menu__label { font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--c-sun-ink); margin-bottom: 8px; }
  .mobile-menu__dest { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 28px; padding: 0; list-style: none; }
  .mobile-menu__dest a {
    display: flex; flex-direction: column; min-height: 64px; justify-content: center; padding: 10px 16px; border-radius: 14px;
    background: var(--c-sand); font-family: var(--f-display); font-size: 1.2rem; color: var(--c-pine-900); text-decoration: none;
  }
  .mobile-menu__dest small { font-family: var(--f-body); color: var(--c-muted); }
  .mobile-menu__main { margin: 0 0 28px; padding: 0; list-style: none; border-top: 1px solid var(--c-line); }
  .mobile-menu__main a {
    display: flex; align-items: center; min-height: 58px; border-bottom: 1px solid var(--c-line);
    font-family: var(--f-display); font-size: 1.5rem; color: var(--c-pine-900); text-decoration: none;
  }
  @media (min-width: 1024px) { .mobile-menu { display: none !important; } }

  /* Selector de idioma de GTranslate integrado en la píldora */
  .rbr-lang { display: flex; align-items: center; position: relative; }
  .rbr-lang .gtranslate_wrapper { position: relative !important; }
  .rbr-lang .gt_float_switcher { font-family: var(--f-body) !important; font-size: .88rem !important; box-shadow: none !important; background: transparent !important; border-radius: 999px; overflow: visible !important; }
  .rbr-lang .gt_float_switcher .gt-selected { background: transparent !important; border-radius: 999px; }
  .rbr-lang .gt_float_switcher .gt-selected .gt-current-lang { padding: 8px 10px !important; color: var(--c-pine-900) !important; font-weight: 600 !important; }
  .rbr-lang .gt_float_switcher .gt-selected .gt-current-lang:hover { background: rgba(45, 90, 84, .09) !important; border-radius: 999px; }
  .rbr-lang .gt_float_switcher img { width: 22px !important; height: 22px !important; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 1px var(--c-line); }
  .rbr-lang .gt_float_switcher .gt_options {
    position: absolute !important; top: calc(100% + 14px) !important; right: -8px; min-width: 200px;
    background: var(--c-paper) !important; border: 1px solid var(--c-line); border-radius: 18px; box-shadow: var(--shadow-lg); padding: 8px;
  }
  .rbr-lang .gt_float_switcher .gt_options a { border-radius: 12px; padding: 8px 12px !important; color: var(--c-ink-2) !important; font-size: .95rem; }
  .rbr-lang .gt_float_switcher .gt_options a:hover { background: var(--c-sand) !important; }
  @media (max-width: 479px) { .rbr-lang .gt-lang-code, .rbr-lang .gt_float_switcher-arrow { display: none !important; } }

  /* 5. HERO (bloque Cover) ------------------------------------------------ */
  .hero.wp-block-cover {
    position: relative; isolation: isolate; z-index: 2;
    min-height: 100svh !important; padding: 0; margin: 0;
    display: flex; align-items: stretch; justify-content: stretch;
    color: var(--c-cream); background: var(--c-pine-900); overflow: visible;
  }
  .hero > .wp-block-cover__background { display: none; }
  .hero > .wp-block-cover__image-background,
  .hero__media { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; margin: 0; }
  .hero__media { overflow: hidden; }
  .hero > .wp-block-cover__image-background, .hero__media img {
    width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 60% 58%; transform-origin: 50% 70%;
  }
  .hero::before {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background:
      linear-gradient(180deg, rgba(20, 30, 40, .45) 0%, rgba(20, 30, 40, 0) 28%),
      linear-gradient(0deg, rgba(14, 34, 31, .94) 0%, rgba(14, 34, 31, .62) 38%, rgba(14, 34, 31, 0) 72%);
  }
  @media (min-width: 1024px) {
    .hero::before {
      background:
        linear-gradient(180deg, rgba(20, 30, 40, .4) 0%, rgba(20, 30, 40, 0) 26%),
        linear-gradient(90deg, rgba(14, 34, 31, .82) 0%, rgba(14, 34, 31, .45) 45%, rgba(14, 34, 31, 0) 70%),
        linear-gradient(0deg, rgba(14, 34, 31, .7) 0%, rgba(14, 34, 31, 0) 40%);
    }
  }
  .hero .wp-block-cover__inner-container {
    position: relative; z-index: 1; width: 100%; max-width: none; min-height: 100svh;
    display: flex; flex-direction: column; color: var(--c-cream);
  }
  .hero__content { position: relative; z-index: 3; margin-top: auto; padding-top: calc(var(--header-h) + 64px); padding-bottom: 32px; }
  .hero__title {
    font-family: var(--f-display); font-weight: 380; font-variation-settings: "opsz" 144, "SOFT" 50;
    font-size: clamp(2.7rem, 9.2vw, 6.4rem); line-height: .98; letter-spacing: -.03em;
    max-width: 13ch; text-wrap: balance; color: var(--c-cream);
  }
  .hero__title em { font-style: italic; font-weight: 320; color: var(--c-sun); }
  .hero__lead { margin-top: 22px; max-width: 46ch; font-size: clamp(1.02rem, 1.5vw, 1.2rem); line-height: 1.6; color: rgba(253, 252, 240, .86); }

  .hero__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
  .hero__chips .wp-block-button__link, .chip--glass {
    display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px;
    font-family: var(--f-body); font-size: .9rem; font-weight: 500; line-height: 1.2; text-decoration: none;
    color: var(--c-cream); background: rgba(253, 252, 240, .12); border: 1px solid rgba(253, 252, 240, .28);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
    transition: background var(--t-fast), transform var(--t-fast) var(--ease-out), border-color var(--t-fast);
  }
  .hero__chips .wp-block-button__link:hover { background: rgba(253, 252, 240, .24); border-color: rgba(253, 252, 240, .55); transform: translateY(-2px); color: var(--c-cream); }

  .hero__proof { position: relative; z-index: 1; border-top: 1px solid var(--c-line-light); }
  .proof { display: grid; grid-template-columns: repeat(2, 1fr); margin: 0 auto; }
  .proof__item { padding: 16px 0; display: flex; flex-direction: column-reverse; gap: 2px; }
  .proof__item:nth-child(n+3) { border-top: 1px solid var(--c-line-light); }
  .proof dt { font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(253, 252, 240, .7); font-weight: 500; }
  .proof dd { margin: 0; font-family: var(--f-display); font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1; font-variant-numeric: tabular-nums; color: var(--c-cream); }
  @media (min-width: 768px) {
    .proof { grid-template-columns: repeat(4, 1fr); }
    .proof__item { padding: 24px 0 26px 24px; border-left: 1px solid var(--c-line-light); }
    .proof__item:first-child { padding-left: 0; border-left: 0; }
    .proof__item:nth-child(n+3) { border-top: 0; }
  }

  /* Buscador (hero + diálogo) */
  .search { position: relative; display: flex; align-items: center; }
  .search--hero {
    z-index: 4; margin-top: 30px; max-width: 600px;
    background: var(--c-paper); border-radius: 999px; padding: 6px 6px 6px 18px;
    box-shadow: 0 20px 50px -18px rgba(0, 0, 0, .55); color: var(--c-ink);
  }
  .search__icon { color: var(--c-pine); }
  .search__input { flex: 1; min-width: 0; height: 48px; border: 0 !important; background: transparent !important; padding: 0 12px; font-size: 1rem; outline: none; box-shadow: none !important; color: var(--c-ink); }
  .search__input::placeholder { color: #807f76; }
  .search__input::-webkit-search-cancel-button { display: none; }
  .search--hero:focus-within { box-shadow: 0 0 0 3px var(--c-sun), 0 20px 50px -18px rgba(0, 0, 0, .55); }
  .search__submit {
    display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 18px; border: 0; border-radius: 999px;
    background: var(--c-sun); color: var(--c-ink); font-weight: 600; transition: background var(--t-fast);
  }
  .search__submit:hover { background: #ffb238; color: var(--c-ink); }
  .search__submit span { display: none; }
  @media (min-width: 480px) { .search__submit span { display: inline; } .search__submit { padding: 0 22px; } }
  .search__list {
    position: absolute; top: calc(100% + 10px); left: 0; right: 0; z-index: 5; margin: 0; padding: 8px; list-style: none;
    border-radius: 20px; background: var(--c-paper); color: var(--c-ink); box-shadow: var(--shadow-lg); border: 1px solid var(--c-line);
    max-height: min(60vh, 420px); overflow-y: auto; animation: rbr-drop-in var(--t-fast) var(--ease-out);
  }
  .search__opt { display: grid; grid-template-columns: 52px 1fr auto; align-items: center; gap: 14px; padding: 8px 10px 8px 8px; border-radius: 14px; cursor: pointer; }
  .search__opt img, .search__ph { width: 52px; height: 52px; border-radius: 10px; object-fit: cover; background: var(--c-sand); }
  .search__opt-title { font-weight: 600; line-height: 1.25; }
  .search__opt-title mark { background: var(--c-sun-50); color: inherit; border-radius: 3px; }
  .search__opt-sub { display: block; font-size: .84rem; color: var(--c-muted); }
  .search__opt-type { font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--c-pine); }
  .search__opt[aria-selected="true"], .search__opt:hover { background: var(--c-sand); }
  .search__empty { padding: 14px; color: var(--c-muted); font-size: .95rem; }

  /* 6. MÉTODO — GUÍA DEMO ------------------------------------------------- */
  .method__grid { display: grid; gap: 56px; }
  @media (min-width: 1024px) {
    .method__grid { grid-template-columns: 1fr 1.02fr; gap: 88px; align-items: start; }
    .guide-demo { position: sticky; top: calc(var(--header-h) + 40px + var(--admin-bar)); }
  }
  .features { display: grid; gap: 26px; margin-top: 40px; }
  @media (min-width: 640px) and (max-width: 1023px), (min-width: 1200px) { .features { grid-template-columns: 1fr 1fr; gap: 32px 28px; } }
  /* Ventaja: ::before = baldosa de color, ::after = icono (máscara según la clase feature--*) */
  .feature { --ico: var(--ico-clock); position: relative; display: grid; grid-template-columns: 48px 1fr; column-gap: 16px; align-content: start; }
  .feature::before {
    content: ""; grid-column: 1; grid-row: 1 / span 2; width: 48px; height: 48px; border-radius: 14px; background: var(--c-pine-100);
    transition: transform var(--t-med) var(--ease-out), background var(--t-med);
  }
  .feature::after {
    content: ""; position: absolute; left: 13px; top: 13px; width: 22px; height: 22px; background: var(--c-pine);
    -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
    transition: transform var(--t-med) var(--ease-out), background var(--t-med);
  }
  .feature > :not(.wp-block-group__inner-container), .feature > .wp-block-group__inner-container > * { grid-column: 2; }
  .feature:hover::before { transform: rotate(-8deg) scale(1.06); background: var(--c-sun-50); }
  .feature:hover::after { transform: rotate(-8deg) scale(1.06); background: var(--c-sun-ink); }
  .feature--clock { --ico: var(--ico-clock); } .feature--route { --ico: var(--ico-route); }
  .feature--bulb { --ico: var(--ico-bulb); } .feature--coins { --ico: var(--ico-coins); }
  .feature h3 { font-family: var(--f-body); font-size: 1.02rem; font-weight: 600; line-height: 1.35; color: var(--c-pine-900); margin-bottom: 4px; }
  .feature p { font-size: .95rem; color: var(--c-muted); line-height: 1.55; }

  .guide-demo { background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--r-lg); box-shadow: var(--shadow-lg); overflow: hidden; }
  .guide-demo:not(.is-ready) { padding: 20px; }
  .guide-demo__head { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; padding: 20px 20px 16px; }
  .guide-demo__kicker { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--c-sun-ink); }
  .guide-demo__title { font-family: var(--f-display); font-size: 1.6rem; line-height: 1.1; color: var(--c-pine-900); }
  .guide-demo__tabs { display: flex; padding: 4px; gap: 2px; border-radius: 999px; background: var(--c-sand); }
  .guide-demo__tabs button {
    min-height: 38px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent;
    font-size: .88rem; font-weight: 600; color: var(--c-muted); transition: background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);
  }
  .guide-demo__tabs button[aria-selected="true"] { background: var(--c-paper); color: var(--c-pine-900); box-shadow: var(--shadow-sm); }
  .guide-demo__map { height: 170px; background: var(--c-sand); color: var(--c-pine); border-block: 1px solid var(--c-line); }
  .guide-demo__map svg { width: 100%; height: 100%; }
  .guide-demo__map .river { stroke: #bfe3dc; stroke-width: 14; stroke-linecap: round; opacity: .9; }
  .guide-demo__map .route-line { stroke: var(--c-sun-600); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: var(--len, 1000); stroke-dashoffset: var(--len, 1000); }
  .guide-demo__map .route-line.is-drawn { stroke-dashoffset: 0; transition: stroke-dashoffset 1.4s var(--ease-in-out); }
  .guide-demo__map .stop circle { fill: var(--c-pine); stroke: var(--c-paper); stroke-width: 3; }
  .guide-demo__map .stop text { fill: var(--c-cream); font: 700 10px var(--f-body); text-anchor: middle; dominant-baseline: central; }
  .guide-demo__map .stop { opacity: 0; transform-box: fill-box; transform-origin: center; transform: scale(.4); }
  .guide-demo__map .stop.is-in { opacity: 1; transform: none; transition: opacity .3s, transform .5s var(--ease-out); transition-delay: var(--d, 0s); }
  .guide-demo__panels { padding: 20px 20px 4px; }
  .day + .day { margin-top: 24px; }
  .guide-demo__panels .day + .day { margin-top: 0; }
  .day__title { font-family: var(--f-display); font-weight: 450; font-size: 1.3rem; line-height: 1.2; color: var(--c-pine-900); margin-bottom: 14px; }
  .day.is-entering { animation: rbr-day-in var(--t-med) var(--ease-out); }
  .timeline { position: relative; display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
  /* Columna de hora/franja: admite «08:30» o «Atardecer» */
  .timeline { --tl-col: 72px; }
  .timeline::before { content: ""; position: absolute; left: calc(var(--tl-col) + 8px); top: 10px; bottom: 10px; width: 2px; background: repeating-linear-gradient(var(--c-sand-2) 0 4px, transparent 4px 8px); }
  .timeline li { position: relative; display: grid; grid-template-columns: var(--tl-col) 1fr; gap: 26px; padding: 6px 0; font-size: .95rem; line-height: 1.5; margin: 0; }
  .timeline li::before { content: ""; position: absolute; left: calc(var(--tl-col) + 4px); top: 50%; width: 10px; height: 10px; margin-top: -5px; border-radius: 50%; background: var(--c-paper); border: 2px solid var(--c-pine); }
  .timeline time { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--c-pine); font-size: .84rem; padding-top: 1px; white-space: nowrap; }
  .tip { margin-top: 18px; padding: 14px 16px; border-radius: 14px; background: var(--c-sun-50); border-left: 3px solid var(--c-sun); font-size: .9rem; line-height: 1.55; color: var(--c-ink-2); }
  .tip strong { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--c-sun-ink); margin-bottom: 4px; }
  .guide-demo__foot { padding: 8px 20px 16px; }
  @media (min-width: 640px) {
    .guide-demo__head, .guide-demo__panels, .guide-demo__foot { padding-inline: 28px; }
    .guide-demo__map { height: 200px; }
  }

  /* 7. MAPA (ATLAS) ------------------------------------------------------ */
  .atlas { background: var(--c-pine-900); color: var(--c-cream); overflow: hidden; }
  .atlas::before {
    content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
    background: radial-gradient(ellipse 70% 50% at 85% 0%, rgba(243, 156, 18, .12), transparent 70%),
                radial-gradient(ellipse 60% 60% at 0% 100%, rgba(191, 227, 220, .07), transparent 70%);
  }
  .atlas__frame {
    position: relative; display: flex; flex-direction: column-reverse; border-radius: var(--r-lg); overflow: hidden;
    background: var(--c-pine-800); border: 1px solid var(--c-line-light); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6);
  }
  @media (min-width: 1024px) { .atlas__frame { display: grid; grid-template-columns: 340px 1fr; height: min(680px, 78vh); min-height: 560px; } }
  .atlas__panel { display: flex; flex-direction: column; gap: 14px; padding: 18px; min-height: 0; }
  @media (min-width: 1024px) { .atlas__panel { padding: 22px; border-right: 1px solid var(--c-line-light); } }
  .atlas__search { display: flex; align-items: center; gap: 8px; padding: 0 14px; border-radius: 999px; background: rgba(253, 252, 240, .08); border: 1px solid var(--c-line-light); transition: border-color var(--t-fast), background var(--t-fast); }
  .atlas__search:focus-within { border-color: var(--c-sun); background: rgba(253, 252, 240, .12); }
  .atlas__search .icon { color: rgba(253, 252, 240, .7); }
  .atlas__search input { flex: 1; height: 46px; border: 0 !important; background: transparent !important; outline: none; color: var(--c-cream); padding: 0; box-shadow: none !important; }
  .atlas__search input::placeholder { color: rgba(253, 252, 240, .5); }
  .atlas__filters { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin-inline: -18px; padding-inline: 18px; }
  .atlas__filters::-webkit-scrollbar { display: none; }
  @media (min-width: 1024px) { .atlas__filters { flex-wrap: wrap; margin: 0; padding: 0; } }
  .filter {
    display: inline-flex; align-items: center; gap: 6px; flex: none; min-height: 40px; padding: 0 14px; border-radius: 999px;
    border: 1px solid var(--c-line-light); background: transparent; color: var(--c-cream); font-size: .88rem; font-weight: 500;
    transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
  }
  .filter:hover:not([aria-disabled="true"]) { border-color: rgba(253, 252, 240, .45); background: transparent; color: var(--c-cream); }
  .filter.is-active, .filter.is-active:hover { background: var(--c-sun); color: var(--c-ink); border-color: var(--c-sun); }
  .filter__n { font-size: .74rem; font-weight: 700; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; display: inline-grid; place-items: center; background: rgba(253, 252, 240, .14); }
  .filter.is-active .filter__n { background: rgba(26, 26, 26, .14); }
  .filter[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
  .filter__soon { font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; color: var(--c-sun); }
  .atlas__list { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 -18px; padding: 2px 18px 4px; list-style: none; }
  .atlas__list::-webkit-scrollbar { display: none; }
  @media (min-width: 1024px) {
    .atlas__list { flex-direction: column; overflow-x: hidden; overflow-y: auto; scroll-snap-type: none; margin: 0 -8px; padding: 0 8px; flex: 1; min-height: 0; scrollbar-width: thin; scrollbar-color: rgba(253, 252, 240, .2) transparent; }
  }
  .atlas-item {
    position: relative; flex: none; scroll-snap-align: start; margin: 0;
    display: grid; grid-template-columns: 56px 1fr 44px; align-items: center; gap: 12px; width: 250px; padding: 8px; border-radius: 16px;
    background: rgba(253, 252, 240, .05); border: 1px solid transparent; transition: background var(--t-fast), border-color var(--t-fast);
  }
  @media (min-width: 1024px) { .atlas-item { width: auto; } }
  .atlas-item:hover, .atlas-item.is-hover { background: rgba(253, 252, 240, .1); }
  .atlas-item.is-active { border-color: var(--c-sun); background: rgba(243, 156, 18, .12); }
  .atlas-item img, .atlas-item__ph { width: 56px; height: 56px; border-radius: 12px; object-fit: cover; }
  .atlas-item__ph { display: grid; place-items: center; border: 1.5px dashed rgba(253, 252, 240, .35); color: rgba(253, 252, 240, .6); }
  .atlas-item__body { display: flex; flex-direction: column; min-width: 0; }
  .atlas-item__name { font-family: var(--f-display); font-size: 1.18rem; line-height: 1.2; color: var(--c-cream); text-decoration: none; }
  a.atlas-item__name:hover { color: var(--c-cream); }
  a.atlas-item__name::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
  .atlas-item__meta { font-size: .8rem; color: rgba(253, 252, 240, .62); }
  .atlas-item.is-soon .atlas-item__name { color: rgba(253, 252, 240, .7); }
  .atlas-item.is-soon .atlas-item__meta { color: var(--c-sun); }
  .atlas-item__locate { position: relative; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: rgba(253, 252, 240, .7); padding: 0; transition: background var(--t-fast), color var(--t-fast); }
  .atlas-item__locate:hover { background: var(--c-sun); color: var(--c-ink); }
  .atlas-item.is-filtered-out { display: none; }
  .atlas__empty { font-size: .9rem; color: rgba(253, 252, 240, .7); padding: 6px 2px; }
  .atlas__map-wrap { position: relative; min-height: 0; }
  .atlas__map { height: clamp(380px, 62svh, 560px); background: #ece6cf; z-index: 0; }
  @media (min-width: 1024px) { .atlas__map { height: 100%; } }
  .atlas__loading {
    position: absolute; inset: 0; display: grid; place-content: center; grid-auto-flow: column; gap: 10px; align-items: center;
    color: var(--c-pine); font-weight: 600; font-size: .95rem;
    background: radial-gradient(circle at 30% 40%, rgba(45, 90, 84, .08), transparent 40%), radial-gradient(circle at 70% 60%, rgba(243, 156, 18, .1), transparent 40%), #ece6cf;
  }
  .atlas__loading-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--c-sun); animation: rbr-pulse 1.2s ease-in-out infinite; }
  .atlas__controls { position: absolute; top: 14px; right: 14px; z-index: 500; display: flex; flex-direction: column; gap: 6px; }
  .map-btn { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 14px; padding: 0; background: var(--c-paper); color: var(--c-pine-900); box-shadow: var(--shadow-md); transition: background var(--t-fast), transform var(--t-fast) var(--ease-out); }
  .map-btn:hover { background: var(--c-sun); color: var(--c-pine-900); }
  .map-btn:active { transform: scale(.93); }
  .atlas__hint {
    position: absolute; left: 50%; top: 16px; z-index: 500; padding: 8px 14px; border-radius: 999px; font-size: .82rem; font-weight: 500;
    background: rgba(20, 48, 44, .88); color: var(--c-cream); transform: translate(-50%, -8px); opacity: 0; pointer-events: none;
    transition: opacity var(--t-med), transform var(--t-med) var(--ease-out);
  }
  .atlas__hint.is-visible { opacity: 1; transform: translate(-50%, 0); }
  .atlas__map .leaflet-container { font-family: var(--f-body); background: #ece6cf; }
  .atlas__map .rbr-base { filter: sepia(.32) saturate(.8) hue-rotate(-6deg) brightness(1.02) contrast(.96); }
  .atlas__map .leaflet-control-attribution { background: rgba(253, 252, 240, .8); font-size: 10px; border-top-left-radius: 8px; }
  .atlas__map .leaflet-control-attribution a { color: var(--c-pine); }
  .rbr-pin { background: none; border: 0; }
  .pin {
    position: relative; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%;
    background: var(--c-sun); color: var(--c-pine-900); border: 3px solid var(--c-paper); box-shadow: 0 6px 16px -4px rgba(20, 48, 44, .55);
    font: 700 .9rem/1 var(--f-body); box-sizing: border-box;
    transition: transform var(--t-med) var(--ease-out), background var(--t-fast), color var(--t-fast);
    animation: rbr-pin-drop .7s var(--ease-out) both; animation-delay: var(--d, 0s);
  }
  .pin::after { content: ""; position: absolute; inset: -3px; border-radius: 50%; border: 2px solid var(--c-sun); opacity: 0; animation: rbr-pin-ring 2.6s var(--ease-out) infinite; animation-delay: calc(var(--d, 0s) + .8s); }
  .rbr-pin:hover .pin, .rbr-pin.is-hover .pin { transform: scale(1.18); }
  .rbr-pin.is-active .pin { background: var(--c-pine); color: var(--c-cream); transform: scale(1.22); }
  .rbr-pin.is-active .pin::after { border-color: var(--c-pine); }
  .pin--soon { width: 24px; height: 24px; background: rgba(253, 252, 240, .85); border: 2px dashed var(--c-pine); box-shadow: none; }
  .pin--soon::after { display: none; }
  .pins-settled .pin { animation: none; }
  .rbr-cluster { background: none; }
  .cluster {
    display: flex; flex-direction: column; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%;
    background: var(--c-pine); color: var(--c-cream); border: 3px solid var(--c-paper); box-sizing: border-box;
    box-shadow: 0 0 0 6px rgba(45, 90, 84, .22), 0 8px 18px -6px rgba(20, 48, 44, .6);
    font: 700 .95rem/1 var(--f-body); transition: transform var(--t-med) var(--ease-out);
  }
  .rbr-cluster:hover .cluster { transform: scale(1.1); }
  .atlas-card {
    position: absolute; z-index: 600; left: 10px; right: 10px; bottom: 10px; max-height: calc(100% - 20px); overflow-y: auto;
    background: var(--c-paper); color: var(--c-ink); border-radius: 22px; box-shadow: var(--shadow-lg); animation: rbr-card-in var(--t-med) var(--ease-out);
  }
  @media (min-width: 640px) { .atlas-card { right: auto; width: 340px; left: 16px; bottom: 16px; } }
  .atlas-card__close { position: absolute; top: 10px; right: 10px; z-index: 2; display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 50%; padding: 0; background: rgba(253, 252, 240, .92); color: var(--c-ink); box-shadow: var(--shadow-sm); }
  .atlas-card__media img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; }
  .atlas-card__media:empty { display: none; }
  .atlas-card__body { padding: 16px 18px 18px; }
  .atlas-card__kicker { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--c-sun-ink); }
  .atlas-card__title { font-family: var(--f-display); font-weight: 420; font-size: 1.7rem; line-height: 1.1; color: var(--c-pine-900); margin-top: 2px; }
  .atlas-card__text { font-size: .92rem; color: var(--c-muted); margin-top: 6px; }
  .atlas-card__guides { margin: 12px 0 14px; padding: 0; list-style: none; border-top: 1px solid var(--c-line); }
  .atlas-card__guides a { display: flex; align-items: center; gap: 12px; min-height: 48px; border-bottom: 1px solid var(--c-line); text-decoration: none; font-weight: 500; font-size: .95rem; color: var(--c-ink); transition: color var(--t-fast), padding var(--t-med) var(--ease-out); }
  .atlas-card__guides a:hover { color: var(--c-sun-ink); padding-left: 4px; }
  .atlas-card__guides .d { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--c-pine-100); color: var(--c-pine); font: 700 .78rem/1 var(--f-body); }
  .atlas-card__guides .d--p { background: var(--c-sun-50); color: var(--c-sun-ink); }
  .atlas-card__guides .icon { margin-left: auto; opacity: .5; }
  .atlas-card__soon { font-size: .9rem; padding: 10px 12px; margin: 12px 0 0; border-radius: 12px; background: var(--c-sun-50); color: var(--c-ink-2); }
  @media (max-width: 639px) {
    .atlas-card { max-height: 62%; border-radius: 18px; }
    .atlas-card__media img { aspect-ratio: 16 / 5; }
    .atlas-card__body { padding: 12px 16px 14px; }
    .atlas-card__title { font-size: 1.4rem; }
    .atlas-card__text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: .88rem; }
    .atlas-card__guides { margin: 8px 0 10px; }
    .atlas-card__guides a { min-height: 44px; font-size: .9rem; }
    .atlas-card__close { top: 6px; right: 6px; }
  }

  /* 8. ITINERARIOS ------------------------------------------------------- */
  .trips .section-head--split { margin-bottom: clamp(36px, 5vw, 64px); }
  .days-filter { position: relative; display: flex; gap: 2px; padding: 5px; border-radius: 999px; background: var(--c-sand); overflow-x: auto; scrollbar-width: none; justify-self: start; max-width: 100%; }
  .days-filter::-webkit-scrollbar { display: none; }
  @media (min-width: 900px) { .days-filter { justify-self: end; } }
  .days-filter button { position: relative; z-index: 1; flex: none; min-height: 42px; padding: 0 18px; border: 0; border-radius: 999px; background: transparent; font-size: .92rem; font-weight: 600; color: var(--c-muted); transition: color var(--t-med); }
  .days-filter button:hover { background: transparent; color: var(--c-pine-900); }
  .days-filter button[aria-checked="true"] { color: var(--c-cream); }
  .days-filter__thumb { position: absolute; z-index: 0; top: 5px; bottom: 5px; left: 0; width: var(--w, 0); transform: translateX(var(--x, 0)); border-radius: 999px; background: var(--c-pine); transition: transform var(--t-med) var(--ease-out), width var(--t-med) var(--ease-out); }

  .trip-grid { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
  @media (min-width: 640px) { .trip-grid { grid-template-columns: repeat(2, 1fr); gap: 36px 24px; } }
  @media (min-width: 1024px) { .trip-grid { grid-template-columns: repeat(4, 1fr); } }
  .trip { position: relative; margin: 0; }
  .trip__link { position: relative; display: grid; grid-template-columns: 112px 1fr; gap: 16px; align-items: center; text-decoration: none; color: inherit; }
  .trip__link:hover { color: inherit; }
  .trip__media { position: relative; overflow: hidden; border-radius: 16px; aspect-ratio: 1; background: var(--c-sand); margin: 0; }
  .trip__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease-out); }
  .trip__link:hover .trip__media img { transform: scale(1.07); }
  .trip__kicker { font-size: .74rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--c-sun-ink); }
  .trip__title { font-family: var(--f-display); font-weight: 420; font-size: 1.35rem; line-height: 1.15; color: var(--c-pine-900); margin-top: 2px; }
  .trip__sub { font-size: .9rem; color: var(--c-muted); margin-top: 4px; line-height: 1.45; }
  .trip__cta { display: none; }
  .trip__tag { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: var(--c-sun); color: var(--c-ink); letter-spacing: .06em; }
  .stamp {
    position: absolute; left: 6px; top: 6px; z-index: 1; display: grid; place-items: center; align-content: center; width: 46px; height: 46px; border-radius: 50%;
    background: var(--c-paper); color: var(--c-pine-900); box-shadow: 0 0 0 2px var(--c-paper), 0 0 0 3.5px var(--c-pine), var(--shadow-sm);
    font-size: .56rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; line-height: 1; transform: rotate(-8deg);
    transition: transform var(--t-med) var(--ease-out);
  }
  .stamp b { font-family: var(--f-display); font-size: 1.15rem; font-weight: 600; letter-spacing: 0; line-height: .9; }
  .trip__link:hover .stamp { transform: rotate(0deg) scale(1.08); }
  .trip--feature .trip__link { grid-template-columns: 1fr; gap: 0; border-radius: var(--r-lg); overflow: hidden; color: var(--c-cream); isolation: isolate; }
  .trip--feature .trip__media { aspect-ratio: 4 / 5; border-radius: 0; }
  .trip--feature .trip__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14, 34, 31, .96) 0%, rgba(14, 34, 31, .78) 30%, rgba(14, 34, 31, .25) 58%, rgba(14, 34, 31, 0) 75%); }
  .trip--feature .trip__body { position: absolute; inset: auto 0 0 0; padding: 22px; }
  .trip--feature .trip__kicker { color: var(--c-sun); }
  .trip--feature .trip__title { color: var(--c-cream); font-size: clamp(2rem, 5vw, 3rem); line-height: 1; }
  .trip--feature .trip__sub { color: rgba(253, 252, 240, .85); font-size: 1rem; max-width: 42ch; }
  .trip--feature .trip__cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font-weight: 600; color: var(--c-sun); }
  .trip--feature .trip__cta .icon { transition: transform var(--t-med) var(--ease-out); }
  .trip--feature .trip__link:hover .trip__cta .icon { transform: translateX(6px); }
  .trip--feature .stamp { left: 18px; top: 18px; width: 66px; height: 66px; font-size: .64rem; }
  .trip--feature .stamp b { font-size: 1.7rem; }
  @media (max-width: 639px) {
    .trip--feature { margin-bottom: 10px; }
    .trip:not(.trip--feature) + .trip:not(.trip--feature) { border-top: 1px solid var(--c-line); padding-top: 14px; }
  }
  @media (min-width: 640px) {
    .trip__link { grid-template-columns: 1fr; gap: 16px; align-items: start; }
    .trip__media { aspect-ratio: 4 / 3; border-radius: var(--r-md); }
    .stamp { left: 12px; top: 12px; width: 56px; height: 56px; font-size: .6rem; }
    .stamp b { font-size: 1.4rem; }
    .trip__cta { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: .88rem; font-weight: 600; color: var(--c-pine); }
    .trip__cta .icon { transition: transform var(--t-med) var(--ease-out); }
    .trip__link:hover .trip__cta .icon { transform: translateX(5px); }
    .trip--feature { grid-column: 1 / -1; }
    .trip--feature .trip__media { aspect-ratio: 16 / 10; }
    .trip--feature .trip__body { padding: 32px; }
  }
  @media (min-width: 1024px) {
    .trip--feature { grid-column: span 2; grid-row: span 2; }
    .trip--feature .trip__link { height: 100%; }
    .trip--feature .trip__media { aspect-ratio: auto; height: 100%; min-height: 560px; }
    .trip--feature .trip__body { padding: 40px; }
  }
  .trip.is-entering { animation: rbr-trip-in .5s var(--ease-out) both; animation-delay: calc(var(--i, 0) * 50ms); }
  .trip-next { grid-column: 1 / -1; margin: 10px 0 0; }
  @media (min-width: 640px) { .trip-next { margin-top: 0; } }
  .trip-next__inner {
    position: relative; overflow: hidden; isolation: isolate; height: 100%;
    display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
    padding: clamp(26px, 3vw, 40px); border-radius: var(--r-lg); background: var(--c-pine); color: var(--c-cream);
  }
  .trip-next .eyebrow { margin-bottom: 10px; }
  .trip-next__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(1.6rem, 2.4vw, 2.1rem); line-height: 1.1; text-wrap: balance; }
  .trip-next__title em { font-style: italic; color: var(--c-sun); }
  .trip-next__text { margin-top: 10px; max-width: 46ch; color: rgba(253, 252, 240, .8); font-size: .95rem; }
  .trip-next__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-top: 20px; }
  .trip-next__route { position: absolute; z-index: -1; left: 0; bottom: 0; width: 100%; height: 55%; opacity: .35; }
  .trip-next__route path { fill: none; stroke: var(--c-sun); stroke-width: 2; stroke-dasharray: 2 9; stroke-linecap: round; vector-effect: non-scaling-stroke; }

  /* 9. ATERRIZAR (tarjetas de embarque, bloques Grupo) --------------------- */
  .landing { background: var(--c-sand); --notch-bg: var(--c-sand); }
  .passes { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 8px max(var(--gutter), (100% - var(--maxw)) / 2) 24px; scroll-padding-inline: var(--gutter); }
  .passes::-webkit-scrollbar { display: none; }
  @media (min-width: 1024px) { .passes { display: grid; grid-template-columns: repeat(4, 1fr); overflow: visible; width: min(100% - var(--gutter) * 2, var(--maxw)); margin-inline: auto; padding: 8px 0 0; } }
  .pass {
    position: relative; flex: none; width: min(78vw, 290px); scroll-snap-align: start;
    display: flex; flex-direction: column; background: var(--c-paper); border-radius: 20px; box-shadow: var(--shadow-md);
    transition: transform var(--t-med) var(--ease-out), box-shadow var(--t-med) var(--ease-out);
  }
  @media (min-width: 1024px) { .pass { width: auto; } }
  .pass:hover { transform: translateY(-8px) rotate(-.6deg); box-shadow: var(--shadow-lg); }
  .pass__main { position: relative; padding: 22px 22px 20px; flex: 1; }
  /* Muescas de la tarjeta de embarque (en la parte principal, para que el enlace del pie cubra toda la tarjeta) */
  .pass__main::before, .pass__main::after { content: ""; position: absolute; bottom: -11px; width: 20px; height: 20px; border-radius: 50%; background: var(--notch-bg); z-index: 1; }
  .pass__main::before { left: -10px; }
  .pass__main::after { right: -10px; }
  .pass__label { font-size: .68rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--c-muted); }
  .pass__codes { font-family: var(--f-display); font-weight: 500; font-size: 2.3rem; line-height: 1.05; letter-spacing: .02em; color: var(--c-pine-900); margin-top: 2px; white-space: nowrap; }
  @media (min-width: 1024px) { .pass__codes { font-size: clamp(1.8rem, 2.5vw, 2.3rem); } }
  .pass__codes span { color: var(--c-sun); }
  .pass__airport { font-size: .86rem; color: var(--c-muted); margin-top: 2px; min-height: 2.6em; }
  .pass__airport::after {
    content: ""; display: block; height: 20px; margin: 16px 0;
    background:
      url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='12' fill='%23fffef7'/><g transform='rotate(45 12 12) translate(3 3) scale(.75)' fill='none' stroke='%23b06400' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'/></g></svg>") 50% 50% / 22px 22px no-repeat,
      radial-gradient(circle, var(--c-sand-2) 1.1px, transparent 1.4px) 0 50% / 6px 6px repeat-x;
    transition: background-position var(--t-slow) var(--ease-out);
  }
  .pass:hover .pass__airport::after { background-position: calc(50% + 28px) 50%, 0 50%; }
  .pass__city { font-family: var(--f-display); font-size: 1.35rem; color: var(--c-pine-900); margin-top: 2px; }
  .pass__stub {
    display: flex; justify-content: space-between; align-items: center; gap: 10px;
    padding: 16px 22px; border-top: 2px dashed var(--c-sand-2); font-size: .8rem; color: var(--c-muted);
  }
  .pass__cta a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .88rem; color: var(--c-pine); text-decoration: none; }
  .pass__cta a::before { content: ""; position: absolute; inset: 0; border-radius: 20px; } /* toda la tarjeta enlaza */
  .pass__cta a::after { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ico-arrow) center / contain no-repeat; mask: var(--ico-arrow) center / contain no-repeat; }

  /* 10. NOSOTROS ---------------------------------------------------------- */
  .about__grid { display: grid; gap: 44px; }
  @media (min-width: 900px) { .about__grid { grid-template-columns: 5fr 7fr; gap: 88px; align-items: center; } }
  .about__media { position: relative; }
  .polaroids { position: relative; aspect-ratio: 1 / 1.3; max-width: 480px; margin-inline: auto; }
  .polaroid {
    position: absolute; width: 62%; margin: 0; padding: 10px 10px 0; background: #fff; border-radius: 6px;
    box-shadow: 0 2px 6px rgba(20, 48, 44, .08), 0 18px 40px -14px rgba(20, 48, 44, .4);
    transition: transform var(--t-slow) var(--ease-out);
  }
  .polaroid img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 2px; }
  .polaroid figcaption { display: block; margin: 0; padding: 10px 4px 14px; text-align: center; font-family: var(--f-display); font-style: italic; font-size: 1.05rem; line-height: 1.3; color: var(--c-pine-900); }
  .polaroid--1 { left: 0; top: 4%; transform: rotate(-7deg); z-index: 1; }
  .polaroid--2 { right: 0; top: 0; transform: rotate(5deg); z-index: 2; }
  .polaroid--3 { left: 19%; bottom: 0; transform: rotate(-1.5deg); z-index: 3; }
  @media (hover: hover) {
    .about__media:hover .polaroid--1 { transform: rotate(-11deg) translate(-12px, -6px); }
    .about__media:hover .polaroid--2 { transform: rotate(9deg) translate(12px, -10px); }
    .about__media:hover .polaroid--3 { transform: rotate(0deg) translateY(8px); }
  }
  .about__caption {
    position: relative; z-index: 4; width: fit-content; margin: 18px 6% 0 auto;
    display: flex; flex-direction: column; padding: 14px 20px; background: var(--c-pine); color: var(--c-cream);
    border-radius: 16px; box-shadow: var(--shadow-md); transform: rotate(-3deg); font-size: .82rem;
  }
  .about__sign { font-family: var(--f-display); font-style: italic; font-size: 1.35rem; line-height: 1.1; color: var(--c-sun); }
  .about__body { margin-top: 16px; max-width: 58ch; color: var(--c-muted); line-height: 1.7; }
  .principles { margin: 32px 0 24px; padding: 0; list-style: none; border-top: 1px solid var(--c-line); max-width: 560px; counter-reset: rbr-principio; }
  .principles li {
    counter-increment: rbr-principio; display: flex; align-items: baseline; gap: 18px; padding: 16px 0; margin: 0; border-bottom: 1px solid var(--c-line);
    font-family: var(--f-display); font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.3; color: var(--c-pine-900);
  }
  .principles li::before { content: counter(rbr-principio, decimal-leading-zero); font-family: var(--f-body); font-size: .8rem; font-weight: 700; color: var(--c-sun-ink); letter-spacing: .08em; }

  /* 11. KIT DE VIAJE ------------------------------------------------------ */
  .kit { background: var(--c-sand); }
  .kit-grid { display: grid; gap: 16px; }
  @media (min-width: 640px) { .kit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1024px) { .kit-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  .tool {
    --ico: var(--ico-ticket);
    position: relative; display: flex; flex-direction: column; align-items: flex-start;
    padding: 26px; border-radius: 22px; background: var(--c-paper); border: 1px solid var(--c-line);
    transition: transform var(--t-med) var(--ease-out), box-shadow var(--t-med) var(--ease-out);
  }
  .tool:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
  /* Herramienta: ::after = baldosa, ::before = icono (máscara según la clase tool--*) */
  .tool::before {
    content: ""; position: relative; z-index: 1; width: 48px; height: 48px; margin-bottom: 22px;
    background: var(--ico-color, var(--c-pine));
    -webkit-mask: var(--ico) center / 22px 22px no-repeat; mask: var(--ico) center / 22px 22px no-repeat;
  }
  .tool::after { content: ""; position: absolute; top: 26px; left: 26px; z-index: 0; width: 48px; height: 48px; border-radius: 14px; background: var(--ico-bg, var(--c-pine-100)); }
  .tool > :not(.wp-block-group__inner-container), .tool > .wp-block-group__inner-container > * { position: relative; z-index: 1; }
  .tool--shield { --ico: var(--ico-shield); } .tool--sim { --ico: var(--ico-sim); } .tool--ticket { --ico: var(--ico-ticket); }
  .tool--flag { --ico: var(--ico-flag); } .tool--bed { --ico: var(--ico-bed); } .tool--plane { --ico: var(--ico-plane); }
  .tool__cat { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--c-sun-ink); }
  .tool__name { font-family: var(--f-display); font-weight: 450; font-size: 1.45rem; line-height: 1.15; color: var(--c-pine-900); margin: 2px 0 8px; }
  .tool__why { font-size: .93rem; color: var(--c-muted); margin-bottom: 16px; flex: 1; }
  .tool--hero { background: var(--c-pine); color: var(--c-cream); border-color: transparent; --ico-color: var(--c-sun); --ico-bg: rgba(253, 252, 240, .12); }
  .tool--hero .tool__cat { color: var(--c-sun); }
  .tool--hero .tool__name { color: var(--c-cream); font-size: 1.8rem; }
  .tool--hero .tool__why { color: rgba(253, 252, 240, .82); }
  .tool__badge {
    position: absolute !important; top: 20px; right: 20px; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%;
    background: var(--c-sun); color: var(--c-ink); font-family: var(--f-display); font-weight: 600; font-size: 1.15rem; line-height: 1;
    transform: rotate(10deg); transition: transform var(--t-med) var(--ease-out);
  }
  .tool:hover .tool__badge { transform: rotate(-4deg) scale(1.08); }
  .tool--sun { background: var(--c-sun-50); border-color: rgba(243, 156, 18, .35); --ico-color: var(--c-sun-ink); --ico-bg: var(--c-paper); }
  .tool--sun .tool__badge { background: var(--c-pine); color: var(--c-cream); }
  /* Enlace de texto dentro de una herramienta = mismo botón contorneado que GetYourGuide
     (así todas las tarjetas pesan igual, sean o no de afiliado) */
  .tool .link-arrow > a {
    min-height: 44px; padding: 0 20px; gap: 10px; border-radius: 999px;
    color: var(--c-pine-900); background: none; box-shadow: inset 0 0 0 1.5px var(--c-pine);
    position: relative; isolation: isolate; overflow: hidden; font-size: .92rem;
    transition: color var(--t-med) var(--ease-out), transform var(--t-fast) var(--ease-out);
  }
  .tool .link-arrow > a::before {
    content: ""; position: absolute; inset: 0; z-index: -1; background: var(--c-pine);
    transform: scaleX(0); transform-origin: right; transition: transform var(--t-med) var(--ease-out);
  }
  .tool .link-arrow > a:hover { color: var(--c-cream); background-size: 0; }
  .tool .link-arrow > a:hover::before { transform: scaleX(1); transform-origin: left; }
  .tool .link-arrow > a:active { transform: scale(.97); }
  .coupon { display: flex; align-items: center; gap: 10px; width: 100%; margin: -2px 0 18px; padding: 6px 6px 6px 14px; border: 1.5px dashed var(--c-sun); border-radius: 14px; background: var(--c-paper); }
  .coupon__label { display: none; font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); white-space: nowrap; }
  @media (min-width: 420px) and (max-width: 639px), (min-width: 1280px) { .coupon__label { display: block; } }
  .coupon code, .coupon__code { flex: 1; min-width: 0; white-space: nowrap; font: 700 1rem/1 var(--f-body); letter-spacing: .06em; color: var(--c-pine-900); background: none; padding: 0; }
  .coupon__copy { flex: none; }
  .coupon__copy { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border: 0; border-radius: 10px; background: var(--c-sun); color: var(--c-ink); font-weight: 600; font-size: .86rem; transition: background var(--t-fast), transform var(--t-fast) var(--ease-out); }
  .coupon__copy:hover { background: #ffb238; color: var(--c-ink); }
  .coupon__copy:active { transform: scale(.95); }
  .coupon__copy.is-copied { background: var(--c-pine); color: var(--c-cream); }
  .kit__disclosure { margin-top: 24px; font-size: .84rem; color: var(--c-muted); max-width: 70ch; }

  /* 12. NEWSLETTER (formulario de Kadence) --------------------------------- */
  .newsletter__card {
    position: relative; overflow: hidden; isolation: isolate; display: grid; gap: 32px;
    padding: clamp(32px, 6vw, 72px); border-radius: clamp(24px, 3vw, 36px); background: var(--c-pine-900); color: var(--c-cream);
  }
  @media (min-width: 900px) { .newsletter__card { grid-template-columns: 1.1fr 1fr; align-items: end; gap: 56px; } }
  .newsletter__card .section-title { color: var(--c-cream); }
  .newsletter__card .section-title em { color: var(--c-sun); }
  .newsletter__card .lead { color: rgba(253, 252, 240, .8); }
  .newsletter__card::before {
    content: ""; position: absolute; z-index: -1; right: -60px; top: -80px; width: clamp(200px, 22vw, 260px); aspect-ratio: 1; border-radius: 50%;
    background:
      linear-gradient(180deg, transparent 52%, var(--c-pine-900) 52% 56%, transparent 56% 64%, var(--c-pine-900) 64% 69%, transparent 69% 76%, var(--c-pine-900) 76% 82%, transparent 82% 88%, var(--c-pine-900) 88% 95%, transparent 95%),
      linear-gradient(180deg, #ffc15a 0%, var(--c-sun) 45%, #f76a0c 100%);
    opacity: .9; transition: transform 1.6s var(--ease-out);
  }
  @media (max-width: 899px) { .newsletter__card::before { opacity: .35; } }
  /* Formulario de Kadence con el aspecto de la maqueta: píldora (email + botón) y casilla debajo */
  .newsletter__card .wp-block-kadence-advanced-form { margin: 0; padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
  .newsletter__card form.kb-advanced-form { position: relative; display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0; }
  .newsletter__card .kb-adv-form-field { margin: 0 !important; padding: 0 !important; width: auto !important; }
  .newsletter__card .wp-block-kadence-advanced-form-accept { order: 3; } /* móvil: email, botón y casilla (como en la maqueta) */
  .newsletter__card .kb-adv-form-field input[type="email"] {
    width: 100%; height: 52px; padding: 0 20px !important; border: 0 !important; border-radius: 999px !important;
    background: var(--c-paper) !important; color: var(--c-ink) !important; font-family: var(--f-body); font-size: 1rem; box-shadow: none !important; outline: none;
  }
  .newsletter__card .kb-adv-form-field input[type="email"]::placeholder { color: #807f76; }
  .newsletter__card .kb-adv-form-field input[type="email"]:focus { box-shadow: 0 0 0 3px var(--c-sun) !important; }
  .newsletter__card .kb-submit-field button[type="submit"] {
    width: 100%; min-height: 52px; padding: 0 26px !important; border: 0 !important; border-radius: 999px !important;
    background: var(--c-sun) !important; color: var(--c-ink) !important; font-family: var(--f-body); font-weight: 600 !important; font-size: .98rem !important; line-height: 1.2;
    box-shadow: none !important; cursor: pointer; transition: background var(--t-fast), transform var(--t-fast) var(--ease-out);
  }
  .newsletter__card .kb-submit-field button[type="submit"]:hover { background: #ffb238 !important; }
  .newsletter__card .kb-submit-field button[type="submit"]:active { transform: scale(.97); }
  @media (min-width: 480px) {
    .newsletter__card form.kb-advanced-form { grid-template-columns: 1fr auto; column-gap: 0; row-gap: 16px; }
    .newsletter__card form.kb-advanced-form::before { content: ""; grid-column: 1 / -1; grid-row: 1; border-radius: 999px; background: var(--c-paper); transition: box-shadow var(--t-fast); }
    .newsletter__card form.kb-advanced-form:focus-within::before { box-shadow: 0 0 0 3px var(--c-sun); }
    .newsletter__card .wp-block-kadence-advanced-form-email { grid-column: 1; grid-row: 1; padding: 6px 0 6px 6px !important; position: relative; }
    .newsletter__card .kb-submit-field { grid-column: 2; grid-row: 1; padding: 6px !important; position: relative; }
    .newsletter__card .wp-block-kadence-advanced-form-accept { grid-column: 1 / -1; grid-row: 2; }
    .newsletter__card .kb-adv-form-field input[type="email"], .newsletter__card .kb-adv-form-field input[type="email"]:focus { box-shadow: none !important; }
    .newsletter__card .kb-submit-field button[type="submit"] { width: auto; }
  }
  /* Casilla de privacidad */
  .newsletter__card .wp-block-kadence-advanced-form-accept fieldset { position: relative; margin: 0; padding: 0 0 0 34px; border: 0; min-width: 0; }
  .newsletter__card .wp-block-kadence-advanced-form-accept legend { float: left; width: 100%; padding: 0; margin: 0; font-size: .88rem; line-height: 1.5; color: rgba(253, 252, 240, .8); }
  .newsletter__card .wp-block-kadence-advanced-form-accept legend a { color: var(--c-cream); }
  .newsletter__card .kb-adv-form-required { display: none; }
  .newsletter__card .kb-radio-check-item { position: absolute; left: 0; top: 0; margin: 0; }
  .newsletter__card .kb-radio-check-item label { display: none; }
  .newsletter__card input.kb-accept-field {
    -webkit-appearance: none; appearance: none; display: grid; place-content: center; width: 22px; height: 22px; margin: 0; border-radius: 7px;
    border: 1.5px solid rgba(253, 252, 240, .5); background: transparent; cursor: pointer; transition: background var(--t-fast), border-color var(--t-fast);
  }
  .newsletter__card input.kb-accept-field::after { content: ""; width: 14px; height: 14px; background: var(--c-ink); opacity: 0; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m5 12.5 4.5 4.5L19 7.5'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='m5 12.5 4.5 4.5L19 7.5'/></svg>") center / contain no-repeat; }
  .newsletter__card input.kb-accept-field:checked { background: var(--c-sun); border-color: var(--c-sun); }
  .newsletter__card input.kb-accept-field:checked::after { opacity: 1; }
  .newsletter__card input.kb-accept-field:focus-visible { outline: 3px solid var(--c-sun); outline-offset: 2px; }
  /* Mensajes del formulario */
  .newsletter__card .kb-adv-form-message, .newsletter__card .kadence-blocks-form-message { grid-column: 1 / -1; margin: 0; padding: 12px 16px; border: 0 !important; border-radius: 14px; background: rgba(253, 252, 240, .08) !important; color: var(--c-sun) !important; font-family: var(--f-display); font-size: 1.15rem; }
  .newsletter__card .kb-adv-form-error-message, .newsletter__card .kb-adv-form-message.kb-adv-form-warning { color: #ffb199 !important; }

  /* 13. FOOTER (bloques) -------------------------------------------------- */
  .site-footer { position: relative; background: var(--c-pine-900); color: rgba(253, 252, 240, .78); overflow: hidden; view-timeline-name: --rbr-footer; padding-top: 46px; }
  .site-footer::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 46px; background: repeating-linear-gradient(90deg, rgba(243, 156, 18, .85) 0 26px, transparent 26px 50px) 0 50% / 100% 3px no-repeat, #0f2522; }
  .site-footer::after {
    content: ""; position: absolute; top: 0; left: 10%; width: 64px; height: 36px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 36'><rect x='4' y='6' width='54' height='22' rx='8' fill='%232d5a54'/><path d='M4 17h54v5a6 6 0 0 1-6 6H10a6 6 0 0 1-6-6v-5Z' fill='%23fdfcf0'/><rect x='12' y='10' width='10' height='6' rx='2' fill='%23bfe3dc'/><rect x='25' y='10' width='10' height='6' rx='2' fill='%23bfe3dc'/><rect x='38' y='10' width='14' height='6' rx='2' fill='%23bfe3dc'/><circle cx='16' cy='29' r='5' fill='%231a1a1a'/><circle cx='16' cy='29' r='2' fill='%23fdfcf0'/><circle cx='47' cy='29' r='5' fill='%231a1a1a'/><circle cx='47' cy='29' r='2' fill='%23fdfcf0'/><circle cx='57' cy='21' r='1.8' fill='%23f39c12'/></svg>") center / contain no-repeat;
    transform: translateY(0);
  }
  .site-footer a { color: inherit; }
  .site-footer__grid { display: grid; gap: 44px; padding-top: clamp(56px, 7vw, 88px); }
  @media (min-width: 900px) { .site-footer__grid { grid-template-columns: 1fr 1.6fr; gap: 64px; } }
  .site-footer__brand .wp-block-image img { height: 56px; width: auto; padding: 8px 14px; border-radius: 14px; background: var(--c-cream); box-sizing: content-box; }
  .site-footer__brand p { margin-top: 18px; max-width: 36ch; }
  .site-footer__brand .site-footer__mail { margin-top: 6px; }
  .site-footer__mail a { display: inline-flex; min-height: 44px; align-items: center; color: var(--c-cream); text-decoration: none; font-weight: 500; }
  .site-footer__mail a:hover { color: var(--c-sun); }
  .social.wp-block-social-links { display: flex; gap: 8px; margin: 22px 0 0; padding: 0; }
  .social .wp-social-link { margin: 0; padding: 0; background: none !important; border-radius: 50%; }
  .social .wp-social-link a, .social .wp-block-social-link-anchor {
    display: grid; place-items: center; width: 44px; height: 44px; padding: 0 !important; border-radius: 50%;
    border: 1px solid var(--c-line-light); color: var(--c-cream) !important;
    transition: background var(--t-fast), color var(--t-fast), transform var(--t-fast) var(--ease-out), border-color var(--t-fast);
  }
  .social .wp-social-link svg { width: 20px; height: 20px; fill: currentColor; }
  .social .wp-social-link a:hover { background: var(--c-sun); color: var(--c-ink) !important; transform: translateY(-3px); border-color: var(--c-sun); }
  .site-footer__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  @media (min-width: 640px) { .site-footer__nav { grid-template-columns: repeat(3, 1fr); } }
  .site-footer__title { font-size: .74rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--c-sun); margin-bottom: 10px; }
  .site-footer__nav ul { margin: 0; padding: 0; list-style: none; }
  .site-footer__nav li { margin: 0; }
  .site-footer__nav a { display: inline-flex; align-items: center; min-height: 36px; text-decoration: none; transition: color var(--t-fast); }
  .site-footer__nav a:hover { color: var(--c-cream); text-decoration: underline; }
  .site-footer__word {
    margin-top: clamp(40px, 6vw, 80px); font-family: var(--f-display); font-weight: 500; font-style: italic;
    font-size: clamp(3.4rem, 15.5vw, 14rem); line-height: .82; letter-spacing: -.04em; white-space: nowrap;
    color: transparent; -webkit-text-stroke: 1px rgba(253, 252, 240, .2); user-select: none; overflow: hidden;
  }
  .site-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding: 24px 0 32px; margin-top: 12px; border-top: 1px solid var(--c-line-light); font-size: .84rem; }
  .site-footer__bottom ul { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; padding: 0; list-style: none; }
  .site-footer__bottom li { margin: 0; }
  .site-footer__bottom a { text-decoration: none; min-height: 32px; display: inline-flex; align-items: center; }
  .site-footer__bottom a:hover { color: var(--c-cream); }

  /* 14. BUSCADOR (diálogo) + AVISO -------------------------------------- */
  .search-dialog { width: min(100% - 24px, 640px); max-width: none; margin: 12vh auto auto; padding: 0; border: 0; border-radius: 26px; background: var(--c-paper); color: var(--c-ink); box-shadow: var(--shadow-lg); overflow: visible; }
  .search-dialog[open] { animation: rbr-drop-in var(--t-med) var(--ease-out); }
  .search-dialog::backdrop { background: rgba(14, 34, 31, .55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
  .search--dialog { padding: 8px 8px 8px 20px; }
  .search--dialog .search__input { height: 56px; font-size: 1.1rem; }
  .toast {
    position: fixed; left: 50%; bottom: 24px; z-index: 80; max-width: calc(100% - 32px); padding: 12px 18px; border-radius: 999px;
    background: var(--c-pine-900); color: var(--c-cream); font-size: .9rem; font-weight: 500; box-shadow: var(--shadow-lg);
    transform: translate(-50%, 20px); opacity: 0; pointer-events: none; transition: opacity var(--t-med), transform var(--t-med) var(--ease-out);
  }
  .toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
  .toast:empty { display: none; }

  /* Kadence «Scroll to Top»: color de marca */
  #kt-scroll-up { background: var(--c-pine); border-radius: 10px; }
}

/* 15. MOVIMIENTO Y ACCESIBILIDAD --------------------------------------------- */
@keyframes rbr-drop-in { from { opacity: 0; transform: translateY(-8px); } }
@keyframes rbr-menu-in { from { opacity: 0; clip-path: inset(0 0 100% 0 round 0 0 40px 40px); } to { opacity: 1; clip-path: inset(0 0 0 0); } }
@keyframes rbr-pulse { 50% { transform: scale(1.6); opacity: .5; } }
@keyframes rbr-day-in { from { opacity: 0; transform: translateX(14px); } }
@keyframes rbr-pin-drop { from { opacity: 0; transform: translateY(-18px) scale(.6); } }
@keyframes rbr-pin-ring { 0% { opacity: .7; transform: scale(1); } 70%, 100% { opacity: 0; transform: scale(1.9); } }
@keyframes rbr-card-in { from { opacity: 0; transform: translateY(24px) scale(.98); } }
@keyframes rbr-trip-in { from { opacity: 0; transform: translateY(16px); } }
::view-transition-group(*) { animation-duration: .5s; animation-timing-function: cubic-bezier(.16, 1, .3, 1); }

/* Revelado al hacer scroll: solo con JS; si el JS no llega, rbr-safe lo muestra todo */
html.js:not(.rbr-safe) body.rbr-home :is(:is(.section-head, .section-head > .wp-block-group__inner-container, .method__intro, .method__intro > .wp-block-group__inner-container, .about__text, .about__text > .wp-block-group__inner-container) > :not(.wp-block-group__inner-container), .section-head__text > *, .feature, .guide-demo, .atlas__frame, .pass, .about__media, .principles > li, .tool, .kit__disclosure, .newsletter__card, .days-filter, .trip-next):not(.is-in) {
  opacity: 0; transform: translateY(28px);
}
html.js body.rbr-home :is(:is(.section-head, .section-head > .wp-block-group__inner-container, .method__intro, .method__intro > .wp-block-group__inner-container, .about__text, .about__text > .wp-block-group__inner-container) > :not(.wp-block-group__inner-container), .section-head__text > *, .feature, .guide-demo, .atlas__frame, .pass, .about__media, .principles > li, .tool, .kit__disclosure, .newsletter__card, .days-filter, .trip-next) {
  transition: opacity var(--t-slow) var(--ease-out), transform var(--t-slow) var(--ease-out), box-shadow var(--t-med) var(--ease-out);
  transition-delay: calc(var(--i, 0) * 90ms);
}
html.js body.rbr-home :is(.pass, .tool).is-in:hover { transition-delay: 0s; }
html.js body.rbr-home .newsletter__card:not(.is-in)::before { transform: translateY(60px); }

/* Entrada del hero */
html.js:not(.rbr-safe) body.rbr-home :is(.hero__eyebrow, .hero__lead, .search--hero, .hero__chips, .hero__proof) { opacity: 0; transform: translateY(18px); }
html.js body.rbr-home.is-loaded :is(.hero__eyebrow, .hero__lead, .search--hero, .hero__chips, .hero__proof) { opacity: 1; transform: none; transition: opacity 1s var(--ease-out), transform 1s var(--ease-out); }
html.js body.rbr-home.is-loaded .hero__eyebrow { transition-delay: .05s; }
html.js body.rbr-home.is-loaded .hero__lead { transition-delay: .45s; }
html.js body.rbr-home.is-loaded .search--hero { transition-delay: .6s; }
html.js body.rbr-home.is-loaded .hero__chips { transition-delay: .72s; }
html.js body.rbr-home.is-loaded .hero__proof { transition-delay: .9s; }
body.rbr-home .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
body.rbr-home .w__i { display: inline-block; transform: translateY(105%); }
body.rbr-home.is-loaded .w__i { transform: none; transition: transform 1.1s var(--ease-out); transition-delay: calc(.12s + var(--wi, 0) * 70ms); }

/* Parallax del hero y furgoneta del footer (scroll-driven animations) */
@supports (animation-timeline: scroll()) {
  @media (prefers-reduced-motion: no-preference) {
    html:not(.low-power) body.rbr-home .hero__media img { animation: rbr-hero-parallax linear both; animation-timeline: scroll(root); animation-range: 0 100vh; }
    html:not(.low-power) body.rbr-home .hero__content { animation: rbr-hero-out linear both; animation-timeline: scroll(root); animation-range: 0 90vh; }
    /* La furgoneta cruza todo el ancho mientras el footer entra en pantalla y llega al final justo al terminar la página */
    :is(body.rbr-home, .rbr-shell) .site-footer::after { animation: rbr-van linear both; animation-timeline: --rbr-footer; animation-range: entry 0% entry 100%; }
    @keyframes rbr-hero-parallax { from { transform: scale(1.06); } to { transform: translateY(16%) scale(1.14); } }
    @keyframes rbr-hero-out { to { transform: translateY(-60px); } }
    @keyframes rbr-van { from { left: -64px; } to { left: calc(100% - 64px - var(--gutter)); } }
  }
}

@media (prefers-reduced-motion: reduce) {
  html:has(body.rbr-home) { scroll-behavior: auto; }
  :is(body.rbr-home, .rbr-shell) *, :is(body.rbr-home, .rbr-shell) *::before, :is(body.rbr-home, .rbr-shell) *::after {
    animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important;
  }
  html.js body.rbr-home :is(.section-head *, .section-head__text > *, .method__intro *, .feature, .guide-demo, .atlas__frame, .pass, .about__media, .about__text *, .principles > li, .tool, .kit__disclosure, .newsletter__card, .days-filter, .trip-next, .hero__eyebrow, .hero__lead, .search--hero, .hero__chips, .hero__proof) { opacity: 1 !important; transform: none !important; }
  body.rbr-home .w__i { transform: none; }
  body.rbr-home .pin::after { display: none; }
  body.rbr-home .guide-demo__map .route-line { stroke-dashoffset: 0; }
  body.rbr-home .guide-demo__map .stop { opacity: 1; transform: none; }
}

.low-power body.rbr-home .pin::after { display: none; }
.low-power :is(body.rbr-home, .rbr-shell) .site-header__bar { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--rbr-header-bg, #ffffff); }
.low-power body.rbr-home .hero__chips .wp-block-button__link { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(20, 48, 44, .45); }

@media (hover: none) {
  body.rbr-home .trip__link:hover .trip__media img { transform: none; }
  body.rbr-home .pass:hover, body.rbr-home .tool:hover { transform: none; }
}

/* 16. EDITOR ------------------------------------------------------------------- */
.rbr-editor .site-header { position: relative; inset: auto; }
.rbr-editor .hero.wp-block-cover { min-height: 720px !important; }
.rbr-editor .hero .wp-block-cover__inner-container { min-height: 720px; }
.rbr-editor .guide-demo .day { display: block !important; }
.rbr-editor .polaroids { aspect-ratio: auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.rbr-editor .polaroid { position: relative; width: auto; transform: none !important; left: auto; right: auto; top: auto; bottom: auto; }
.rbr-editor-nota { font: 500 12px/1.4 system-ui, sans-serif; color: #2d5a54; background: #dfeae6; padding: 6px 10px; border-radius: 6px; margin-bottom: 8px; }
