/*
Theme Name:   Altitud Cero Premium
Theme URI:    https://altitudcero.com
Description:  Tema hijo para Altitud Cero — minimal luxury travel curation.
Author:       Altitud Cero
Template:     generatepress
Version:      1.2.0
Text Domain:  altitud-cero
License:      GPL-2.0-or-later
*/

/*
  NOTA IMPORTANTE — TEMPLATE:
  Cambia "twentytwentyfour" por el slug exacto de tu tema padre.
  Si usas un tema en blanco/sin opinión (p.ej. Blocksy, Kadence, GeneratePress)
  pon su slug aquí. El diseño de Altitud Cero reemplaza visualmente todo
  el contenido de la página, por lo que el tema padre solo aporta
  la infraestructura de WordPress (bloques, FSE, etc.).
*/

/* ─────────────────────────────────────────────────────────────────────────────
   VARIABLES GLOBALES
   Se declaran en :root para que los scripts de JS (tweaks) puedan
   sobreescribirlas en tiempo real con documentElement.style.setProperty()
   ───────────────────────────────────────────────────────────────────────────── */
:root {
  --bg: #000000;
  --bg-elev: #0a0a0a;
  --fg: #f4f1ea;
  --fg-dim: #8a8680;
  --fg-mute: #4a4844;
  --line: #1a1a1a;
  --accent: #c8b89a;
  --hairline: rgba(244, 241, 234, 0.08);
  --hairline-strong: rgba(244, 241, 234, 0.16);

  --t-display: clamp(64px, 16vw, 240px);
  --t-hero: clamp(40px, 8vw, 96px);
  --t-h1: clamp(32px, 5vw, 64px);
  --t-h2: clamp(24px, 3vw, 36px);
  --t-body: clamp(15px, 1.1vw, 17px);
  --t-small: 12px;
  --t-micro: 10px;

  --pad-x: clamp(20px, 5vw, 80px);
  --pad-y: clamp(60px, 10vw, 140px);
}

/* ─────────────────────────────────────────────────────────────────────────────
   BASE GLOBAL
   Doble estrategia para máxima compatibilidad:
   1. body:has(.ac-page) → CSS moderno, no depende de PHP (Chrome 105+, FF 121+)
   2. body.ac-page-active → fallback para WP que no soporten :has()
   ───────────────────────────────────────────────────────────────────────────── */
body:has(.ac-page),
body.ac-page-active {
  background: var(--bg) !important;
  color: var(--fg) !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: var(--t-body);
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  margin-top: 0 !important;
  padding-top: 0 !important;
}
/* GeneratePress añade margin-top al body con admin bar activo — se maneja vía .ac-nav */
body.admin-bar:has(.ac-page) {
  margin-top: 0 !important;
}

/* Cursor personalizado */
body.ac-cursor-active,
body.ac-cursor-active * {
  cursor: none !important;
}
@media (hover: none) {
  body.ac-cursor-active,
  body.ac-cursor-active * { cursor: auto !important; }
}

/* ─────────────────────────────────────────────────────────────────────────────
   CURSOR PERSONALIZADO
   fixed/pointer-events:none → necesariamente global.
   Se ocultan en el admin bar via functions.php.
   ───────────────────────────────────────────────────────────────────────────── */
.cursor-dot,
.cursor-ring {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  pointer-events: none !important;
  z-index: 999999 !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.cursor-dot {
  width: 8px;
  height: 8px;
  background: #ffffff;
  border-radius: 50%;
  transform: translate3d(-100px, -100px, 0);
  transition: transform 0.05s linear, width 0.25s ease, height 0.25s ease;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.4);
}
.cursor-ring {
  width: 38px;
  height: 38px;
  border: 1.5px solid #ffffff;
  border-radius: 50%;
  transform: translate3d(-100px, -100px, 0);
  transition: transform 0.18s ease-out, width 0.3s ease, height 0.3s ease, border-color 0.3s ease;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.3);
}
.cursor-ring.hover { width: 70px; height: 70px; border-color: var(--accent, #c8b89a); }

/* ─────────────────────────────────────────────────────────────────────────────
   RESET ENCAPSULADO
   Solo afecta a elementos dentro de .ac-page para no romper
   el Block Editor ni el admin bar de WordPress.
   ───────────────────────────────────────────────────────────────────────────── */

/* Fondo y tipografía base directamente en .ac-page — no depende de clases en body */
.ac-page {
  background: var(--bg) !important;
  color: var(--fg) !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: var(--t-body);
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ac-page *,
.ac-page *::before,
.ac-page *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Reset de tipografía de WordPress — previene que TT4 / otros temas sobreescriban */
.ac-page h1,
.ac-page h2,
.ac-page h3,
.ac-page h4,
.ac-page h5,
.ac-page h6 {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 300;
  /* color se define en cada componente; no se pone aquí para no romper el cascade interno */
}

/* Anular el color azul de enlaces del tema padre — !important necesario porque
   TT4 usa a:where(:not(.wp-element-button)) que tiene alta especificidad */
.ac-page a,
.ac-page a:visited,
.ac-page a:hover {
  color: inherit !important;
  text-decoration: none !important;
}

/* CONFLICTO PREVENIDO: WordPress añade cursor:pointer a buttons —
   .ac-page button sobreescribe sin afectar el editor ni el admin */
.ac-page button {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  cursor: none;
}
body.ac-cursor-active .ac-page button { cursor: none; }

.ac-page img { display: block; max-width: 100%; }

/* ─────────────────────────────────────────────────────────────────────────────
   MICRO ETIQUETAS
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .eyebrow {
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-dim) !important;
  font-weight: 400;
}
.ac-page .num {
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  font-variant-numeric: tabular-nums;
  color: var(--fg-mute) !important;
}

/* ─────────────────────────────────────────────────────────────────────────────
   LAYOUT SECTIONS
   CONFLICTO PREVENIDO: ".section" es genérico — siempre va precedido de .ac-page
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .ac-section {
  padding: var(--pad-y) var(--pad-x);
  position: relative;
}
.ac-page .section-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 4vw, 60px);
  margin-bottom: clamp(40px, 6vw, 96px);
  align-items: end;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--hairline);
}
.ac-page .section-header .lhs { display: flex; flex-direction: column; gap: 18px; }
.ac-page .section-header .index-line {
  display: flex; align-items: baseline; gap: 14px;
  color: var(--fg-mute) !important;
}
.ac-page .section-header h2 {
  font-size: var(--t-h1) !important;
  font-weight: 300 !important;
  line-height: 0.95 !important;
  letter-spacing: -0.02em !important;
  color: var(--fg) !important;
}
.ac-page .section-header h2 em {
  font-style: italic;
  font-family: "Times New Roman", Times, serif;
  font-weight: 400;
  color: var(--accent);
}
.ac-page .section-header .rhs {
  font-size: var(--t-body);
  color: var(--fg-dim) !important;
  max-width: 38ch;
  justify-self: end;
}

/* ─────────────────────────────────────────────────────────────────────────────
   NAV
   CONFLICTO PREVENIDO: muchos temas usan ".nav" — siempre bajo .ac-page
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .ac-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 22px var(--pad-x);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  background: linear-gradient(to bottom, rgba(0,0,0,0.65), rgba(0,0,0,0));
  pointer-events: none;
}
/* Admin bar offset — WordPress añade 32px de margin-top al body */
body.admin-bar .ac-page .ac-nav { top: 32px; }
@media screen and (max-width: 782px) {
  body.admin-bar .ac-page .ac-nav { top: 46px; }
}

.ac-page .ac-nav > * { pointer-events: auto; }
.ac-page .nav-mark {
  font-size: var(--t-micro);
  letter-spacing: 0.28em;
  text-transform: uppercase;
}
.ac-page .nav-mark .dot {
  display: inline-block;
  width: 5px; height: 5px;
  background: var(--accent);
  border-radius: 50%;
  margin-right: 10px;
  vertical-align: middle;
}
.ac-page .nav-center {
  font-size: var(--t-micro);
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--fg-dim);
}
.ac-page .nav-links {
  display: flex; gap: 28px;
  justify-self: end;
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.ac-page .nav-links a { color: var(--fg-dim); transition: color 0.3s; }
.ac-page .nav-links a:hover { color: var(--fg); }
@media (max-width: 720px) {
  .ac-page .nav-links { display: none; }
  .ac-page .ac-nav { grid-template-columns: 1fr auto; }
}

/* ─────────────────────────────────────────────────────────────────────────────
   HERO
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .ac-hero {
  height: 100vh;
  min-height: 760px;
  position: relative;
  display: grid;
  grid-template-rows: 1fr auto;
  padding: 0 var(--pad-x) clamp(40px, 5vw, 80px);
  overflow: hidden;
}
.ac-page #hero-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.ac-page .hero-content {
  position: relative;
  z-index: 2;
  align-self: end;
  pointer-events: none;
}
.ac-page .hero-title {
  font-size: var(--t-display);
  font-weight: 200;
  line-height: 0.86;
  letter-spacing: -0.04em;
  margin-bottom: 0;
}
.ac-page .hero-title .line {
  display: block;
  overflow: hidden;
}
.ac-page .hero-title .line span {
  display: inline-block;
  transform: translateY(110%);
  animation: ac-rise 1.2s cubic-bezier(0.2,0.7,0.1,1) forwards;
}
.ac-page .hero-title .line:nth-child(2) span { animation-delay: 0.12s; }
.ac-page .hero-title em {
  font-family: "Times New Roman", Times, serif;
  font-style: italic;
  font-weight: 300;
  color: var(--accent);
}
@keyframes ac-rise { to { transform: translateY(0); } }

.ac-page .hero-meta {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: clamp(16px, 3vw, 48px);
  padding-top: 24px;
  margin-top: 24px;
  border-top: 1px solid var(--hairline);
  align-items: start;
  opacity: 0;
  animation: ac-fadein 1s ease 0.6s forwards;
}
@keyframes ac-fadein { to { opacity: 1; } }
.ac-page .hero-meta .col { display: flex; flex-direction: column; gap: 10px; }
.ac-page .hero-meta p {
  font-size: 14px;
  color: var(--fg-dim);
  max-width: 30ch;
  line-height: 1.55;
}
.ac-page .hero-meta strong {
  font-weight: 400;
  color: var(--fg);
  font-size: 13px;
  letter-spacing: 0.06em;
}
@media (max-width: 720px) {
  .ac-page .hero-meta { grid-template-columns: 1fr; gap: 18px; }
}

.ac-page .hero-corner {
  position: absolute;
  z-index: 3;
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  color: var(--fg-mute);
  text-transform: uppercase;
}
.ac-page .hero-corner.tl { top: 84px; left: var(--pad-x); }
.ac-page .hero-corner.tr { top: 84px; right: var(--pad-x); text-align: right; }
.ac-page .hero-corner strong { color: var(--fg-dim); font-weight: 400; }

.ac-page .scroll-hint {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  font-size: var(--t-micro);
  letter-spacing: 0.3em;
  color: var(--fg-mute);
  text-transform: uppercase;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.ac-page .scroll-hint .line {
  width: 1px; height: 36px;
  background: linear-gradient(to bottom, var(--fg-mute), transparent);
  animation: ac-scroll-line 2s ease-in-out infinite;
}
@keyframes ac-scroll-line {
  0%, 100% { transform: scaleY(1); opacity: 0.5; }
  50% { transform: scaleY(0.5) translateY(8px); opacity: 1; }
}

/* ─────────────────────────────────────────────────────────────────────────────
   MARQUEE
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .ac-marquee {
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  overflow: hidden;
  padding: 20px 0;
  display: flex;
  white-space: nowrap;
}
.ac-page .marquee-track {
  display: flex;
  gap: 60px;
  animation: ac-marquee 40s linear infinite;
  padding-right: 60px;
}
.ac-page .marquee-item {
  font-size: var(--t-h2);
  font-weight: 200;
  letter-spacing: -0.01em;
  color: var(--fg-dim);
  display: flex;
  align-items: center;
  gap: 60px;
  flex-shrink: 0;
}
.ac-page .marquee-item em { font-family: "Times New Roman", serif; font-style: italic; color: var(--accent); }
.ac-page .marquee-item .dot {
  width: 6px; height: 6px;
  background: var(--accent);
  border-radius: 50%;
  flex-shrink: 0;
}
@keyframes ac-marquee {
  to { transform: translateX(-50%); }
}

/* ─────────────────────────────────────────────────────────────────────────────
   MEDIDAS / STATS
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .ac-measure {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--hairline);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
@media (max-width: 860px) { .ac-page .ac-measure { grid-template-columns: repeat(2, 1fr); } }
.ac-page .ac-measure .cell {
  background: var(--bg);
  padding: clamp(24px, 3vw, 40px) clamp(20px, 3vw, 32px);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ac-page .ac-measure .big {
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 200;
  letter-spacing: -0.03em;
  line-height: 1;
}
.ac-page .ac-measure .big em { font-family: "Times New Roman", serif; font-style: italic; color: var(--accent); }
.ac-page .ac-measure .lab {
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-dim);
}

/* ─────────────────────────────────────────────────────────────────────────────
   BUSCADOR — VUELOS & HOTELES
   CONFLICTO PREVENIDO: WordPress/WooCommerce usan ".search-form"
   → aquí siempre va bajo .ac-page
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .search-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
}
@media (max-width: 860px) { .ac-page .search-grid { grid-template-columns: 1fr; } }

.ac-page .search-tile {
  background: var(--bg);
  padding: clamp(28px, 4vw, 56px);
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-height: 480px;
  position: relative;
  transition: background 0.5s ease;
}
.ac-page .search-tile:hover { background: #050505; }
.ac-page .search-tile-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.ac-page .search-tile h3 {
  font-size: var(--t-h2);
  font-weight: 300;
  letter-spacing: -0.01em;
}
.ac-page .search-tile h3 em {
  font-family: "Times New Roman", serif;
  font-style: italic;
  color: var(--accent);
}
.ac-page .search-tile p {
  font-size: 14px;
  color: var(--fg-dim);
  max-width: 42ch;
}
.ac-page .search-widget-slot {
  flex: 1;
  border: 1px dashed var(--hairline-strong);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 32px 24px;
  margin-top: auto;
  position: relative;
}
.ac-page .search-widget-slot::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(45deg, transparent 0, transparent 14px, rgba(244,241,234,0.015) 14px, rgba(244,241,234,0.015) 28px);
  pointer-events: none;
}
.ac-page .search-widget-slot .eyebrow { color: var(--fg-mute); }
.ac-page .search-widget-slot .slot-label {
  font-size: 13px;
  color: var(--fg-dim);
  font-family: "Courier New", monospace;
  letter-spacing: 0.05em;
}
.ac-page .search-widget-slot .slot-id {
  font-size: var(--t-micro);
  color: var(--fg-mute);
  font-family: "Courier New", monospace;
}

/* CONFLICTO PREVENIDO: WordPress usa ".search-form" en widgets */
.ac-page .ac-search-form {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 1px;
  background: var(--hairline-strong);
  border: 1px solid var(--hairline-strong);
  margin-top: 12px;
}
@media (max-width: 600px) { .ac-page .ac-search-form { grid-template-columns: 1fr 1fr; } }
.ac-page .ac-search-form .field {
  background: var(--bg);
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ac-page .ac-search-form label {
  font-size: var(--t-micro);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--fg-mute);
}
.ac-page .ac-search-form input,
.ac-page .ac-search-form select {
  background: transparent;
  border: none;
  outline: none;
  color: var(--fg);
  font: inherit;
  font-size: 15px;
  padding: 0;
  width: 100%;
}
body.ac-cursor-active .ac-page .ac-search-form input,
body.ac-cursor-active .ac-page .ac-search-form select { cursor: none; }
.ac-page .ac-search-form input::placeholder { color: var(--fg-mute); }
.ac-page .search-submit {
  background: var(--fg);
  color: var(--bg);
  padding: 0 32px;
  font-size: var(--t-micro);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: background 0.3s;
}
.ac-page .search-submit:hover { background: var(--accent); }
.ac-page .search-submit .arrow {
  width: 18px; height: 1px; background: currentColor;
  position: relative;
}
.ac-page .search-submit .arrow::after {
  content: "";
  position: absolute;
  right: 0; top: -3px;
  width: 7px; height: 7px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
}

/* ─────────────────────────────────────────────────────────────────────────────
   PRODUCTOS — ACCESORIOS
   CONFLICTO PREVENIDO: WooCommerce usa ".product", ".products"
   → siempre bajo .ac-page
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .ac-products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--hairline);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
@media (max-width: 1100px) { .ac-page .ac-products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ac-page .ac-products { grid-template-columns: 1fr; } }

.ac-page .ac-product {
  background: var(--bg);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: relative;
  overflow: hidden;
  transition: background 0.6s ease;
}
.ac-page .ac-product:hover { background: #060606; }
.ac-page .product-img {
  aspect-ratio: 1 / 1;
  background: linear-gradient(135deg, #0e0e0e, #050505);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ac-page .product-img svg { width: 50%; height: 50%; opacity: 0.35; transition: transform 0.8s cubic-bezier(0.2,0.7,0.1,1), opacity 0.6s; }
.ac-page .ac-product:hover .product-img svg { transform: scale(1.08) rotate(-2deg); opacity: 0.6; }
.ac-page .product-img::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(90deg, transparent 0, transparent 7px, rgba(244,241,234,0.02) 7px, rgba(244,241,234,0.02) 8px);
}
.ac-page .product-img .ribbon {
  position: absolute;
  top: 12px; left: 12px;
  font-size: var(--t-micro);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--fg-dim);
  font-family: "Courier New", monospace;
}
.ac-page .product-img .ribbon-r {
  position: absolute;
  top: 12px; right: 12px;
  font-size: var(--t-micro);
  letter-spacing: 0.2em;
  color: var(--fg-mute);
  font-family: "Courier New", monospace;
}
.ac-page .product-head {
  display: flex; justify-content: space-between; align-items: baseline;
}
.ac-page .product-cat {
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-dim);
}
.ac-page .product-num {
  font-size: var(--t-micro);
  color: var(--fg-mute);
  font-family: "Courier New", monospace;
}
.ac-page .ac-product h4 {
  font-size: 18px;
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.25;
}
.ac-page .ac-product .desc {
  font-size: 13px;
  color: var(--fg-dim);
  line-height: 1.55;
  flex: 1;
}
.ac-page .product-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 16px;
  border-top: 1px solid var(--hairline);
  margin-top: auto;
}
.ac-page .ac-product .price { font-size: 16px; font-weight: 400; letter-spacing: 0.02em; }
.ac-page .ac-product .price .from {
  font-size: var(--t-micro);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--fg-mute);
  margin-right: 6px;
}
.ac-page .ac-product .buy {
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg);
  display: flex; align-items: center; gap: 8px;
  transition: color 0.3s;
}
.ac-page .ac-product .buy::after {
  content: "→";
  display: inline-block;
  transition: transform 0.3s;
}
.ac-page .ac-product:hover .buy::after { transform: translateX(4px); }
.ac-page .ac-product:hover .buy { color: var(--accent); }

/* Barra de filtro — CONFLICTO PREVENIDO: no interfiere con .wp-block-* */
.ac-page .filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
  margin-bottom: 0;
}
.ac-page .filter-bar button {
  padding: 14px 22px;
  background: var(--bg);
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-dim);
  transition: all 0.3s;
  flex: 1;
  min-width: 160px;
}
.ac-page .filter-bar button:hover { background: #060606; color: var(--fg); }
.ac-page .filter-bar button.active { background: var(--fg); color: var(--bg); }
.ac-page .filter-bar button .count {
  font-family: "Courier New", monospace;
  margin-left: 8px;
  opacity: 0.5;
}

/* ─────────────────────────────────────────────────────────────────────────────
   SEGUROS
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .insurance {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
}
@media (max-width: 860px) { .ac-page .insurance { grid-template-columns: 1fr; } }
.ac-page .ins-card {
  background: var(--bg);
  padding: clamp(28px, 4vw, 56px);
  display: flex;
  flex-direction: column;
  gap: 28px;
  position: relative;
  transition: background 0.6s ease;
}
.ac-page .ins-card:hover { background: #060606; }
.ac-page .ins-card.featured::before {
  content: "RECOMENDADO";
  position: absolute;
  top: 22px; right: 22px;
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  color: var(--bg);
  background: var(--accent);
  padding: 5px 10px;
}
.ac-page .ins-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 24px;
}
.ac-page .ins-card h3 {
  font-size: var(--t-h2);
  font-weight: 300;
  letter-spacing: -0.01em;
}
.ac-page .ins-card h3 em {
  font-family: "Times New Roman", serif;
  font-style: italic;
  color: var(--accent);
}
.ac-page .ins-tag {
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-dim);
}
.ac-page .ins-features { list-style: none; display: flex; flex-direction: column; gap: 14px; }
.ac-page .ins-features li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 16px;
  align-items: baseline;
  padding-bottom: 14px;
  border-bottom: 1px dashed var(--hairline);
  font-size: 14px;
}
.ac-page .ins-features .k { color: var(--fg-dim); letter-spacing: 0.02em; }
.ac-page .ins-features .v { color: var(--fg); text-align: right; font-feature-settings: "tnum"; }
.ac-page .ins-features .mark {
  width: 16px; height: 1px; background: var(--accent);
  transform: translateY(-4px);
}
.ac-page .ins-price {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: auto;
  padding-top: 24px;
  border-top: 1px solid var(--hairline);
}
.ac-page .ins-price .from {
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-mute);
}
.ac-page .ins-price .val { font-size: 32px; font-weight: 200; letter-spacing: -0.02em; }
.ac-page .ins-price .val .unit { font-size: 13px; color: var(--fg-dim); margin-left: 4px; }
.ac-page .ins-cta {
  width: 100%;
  background: var(--fg);
  color: var(--bg);
  padding: 18px 24px;
  font-size: var(--t-micro);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 500;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background 0.3s;
}
.ac-page .ins-cta:hover { background: var(--accent); }
.ac-page .ins-card.featured .ins-cta { background: var(--accent); color: var(--bg); }
.ac-page .ins-card.featured .ins-cta:hover { background: var(--fg); }

/* ─────────────────────────────────────────────────────────────────────────────
   TOURS + eSIM
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
}
@media (max-width: 860px) { .ac-page .split { grid-template-columns: 1fr; } }
.ac-page .split-tile {
  background: var(--bg);
  padding: clamp(28px, 4vw, 56px);
  min-height: 520px;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  transition: background 0.6s ease;
}
.ac-page .split-tile:hover { background: #060606; }
.ac-page .split-tile h3 {
  font-size: var(--t-h2);
  font-weight: 300;
  letter-spacing: -0.01em;
  margin-bottom: 8px;
}
.ac-page .split-tile h3 em {
  font-family: "Times New Roman", serif;
  font-style: italic;
  color: var(--accent);
}
.ac-page .split-tile > p {
  font-size: 14px;
  color: var(--fg-dim);
  max-width: 42ch;
  margin-bottom: 32px;
}
.ac-page .tour-list { list-style: none; display: flex; flex-direction: column; gap: 1px; background: var(--hairline); margin-bottom: 32px; }
.ac-page .tour-list li {
  background: var(--bg);
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  gap: 20px;
  align-items: baseline;
  padding: 18px 0;
  transition: padding 0.3s, color 0.3s;
}
body.ac-cursor-active .ac-page .tour-list li { cursor: none; }
.ac-page .tour-list li:hover { padding-left: 14px; color: var(--accent); }
.ac-page .tour-list .idx { font-size: var(--t-micro); color: var(--fg-mute); font-family: "Courier New", monospace; letter-spacing: 0.1em; }
.ac-page .tour-list .name { font-size: 16px; font-weight: 300; }
.ac-page .tour-list .price { font-size: 14px; color: var(--fg-dim); font-variant-numeric: tabular-nums; }
.ac-page .tour-list .arrow { font-size: 14px; color: var(--fg-mute); }
.ac-page .split-tile:hover .tour-list { background: var(--hairline-strong); }

.ac-page .esim-bands { display: flex; flex-direction: column; gap: 14px; margin-bottom: 24px; }
.ac-page .esim-band {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 16px;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid var(--hairline);
}
body.ac-cursor-active .ac-page .esim-band { cursor: none; }
.ac-page .esim-band .region { font-size: 16px; font-weight: 300; }
.ac-page .esim-band .data { font-size: 13px; color: var(--fg-dim); font-feature-settings: "tnum"; }
.ac-page .esim-band .from { font-size: 14px; font-weight: 400; }
.ac-page .esim-band .from .unit { font-size: 11px; color: var(--fg-mute); letter-spacing: 0.1em; }
.ac-page .esim-flag {
  width: 28px; height: 18px;
  background: linear-gradient(135deg, #1a1a1a, #0a0a0a);
  border: 1px solid var(--hairline-strong);
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--fg-dim);
  font-family: "Courier New", monospace;
}
.ac-page .split-cta {
  margin-top: auto;
  padding: 18px 24px;
  border: 1px solid var(--hairline-strong);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--t-micro);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--fg);
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.ac-page .split-cta:hover { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.ac-page .split-cta .arr { transition: transform 0.3s; }
.ac-page .split-cta:hover .arr { transform: translateX(6px); }

/* ─────────────────────────────────────────────────────────────────────────────
   FOOTER
   CONFLICTO PREVENIDO: muchos temas usan ".footer" o "footer"
   → aquí es .ac-footer dentro de .ac-page
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .ac-footer {
  padding: clamp(48px, 6vw, 96px) var(--pad-x) clamp(28px, 3vw, 40px);
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: clamp(20px, 4vw, 60px);
  border-top: 1px solid var(--hairline);
}
@media (max-width: 860px) {
  .ac-page .ac-footer { grid-template-columns: 1fr 1fr; }
}
.ac-page .ac-footer h5 {
  font-size: var(--t-micro) !important;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-dim) !important;
  margin-bottom: 16px;
  font-weight: 400 !important;
}
.ac-page .ac-footer ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.ac-page .ac-footer li { font-size: 14px; color: var(--fg); }
.ac-page .ac-footer li a { color: var(--fg); transition: color 0.3s; }
.ac-page .ac-footer li a:hover { color: var(--accent); }
.ac-page .foot-brand h2 {
  font-size: clamp(36px, 4vw, 56px);
  font-weight: 200;
  letter-spacing: -0.02em;
  line-height: 0.9;
  margin-bottom: 16px;
}
.ac-page .foot-brand h2 em { font-family: "Times New Roman", serif; font-style: italic; color: var(--accent); }
.ac-page .foot-brand p { font-size: 13px; color: var(--fg-dim); max-width: 36ch; }
.ac-page .foot-bottom {
  grid-column: 1 / -1;
  margin-top: clamp(40px, 5vw, 80px);
  padding-top: 24px;
  border-top: 1px solid var(--hairline);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: var(--t-micro);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-mute);
}

/* ─────────────────────────────────────────────────────────────────────────────
   DISCLOSURE AFILIADOS
   ───────────────────────────────────────────────────────────────────────────── */
.ac-page .disclosure {
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--fg-mute);
  max-width: 60ch;
  line-height: 1.5;
  margin-top: 14px;
}

/* ─────────────────────────────────────────────────────────────────────────────
   GENERATEPRESS LAYOUT RESET — FULL BLEED
   GeneratePress envuelve el contenido en #page > #content > #primary > .entry-content
   con max-width, padding y margin. Se eliminan todos cuando .ac-page está presente.
   ───────────────────────────────────────────────────────────────────────────── */

/* Ocultar header y footer de GeneratePress */
body:has(.ac-page) #masthead,
body:has(.ac-page) .site-header,
body:has(.ac-page) #colophon,
body:has(.ac-page) .site-footer {
  display: none !important;
}

/* Eliminar todos los márgenes, paddings y restricciones de ancho del contenedor */
body:has(.ac-page) #page,
body:has(.ac-page) #content,
body:has(.ac-page) .site-content,
body:has(.ac-page) #primary,
body:has(.ac-page) .content-area,
body:has(.ac-page) #main,
body:has(.ac-page) .site-main,
body:has(.ac-page) article,
body:has(.ac-page) .post,
body:has(.ac-page) .page,
body:has(.ac-page) .entry-content,
body:has(.ac-page) .entry-header,
body:has(.ac-page) .inside-article,
body:has(.ac-page) .inside-page-hero,
body:has(.ac-page) .container {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* GeneratePress Premium añade un grid en .site — quitarlo */
body:has(.ac-page) .site {
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Quitar separación entre bloques de Gutenberg en GeneratePress */
body:has(.ac-page) .wp-block-html,
body:has(.ac-page) .entry-content > * {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* Nav de Altitud Cero — z-index alto para estar siempre encima */
.ac-page .ac-nav {
  z-index: 9990 !important;
}

/* ─────────────────────────────────────────────────────────────────────────────
   REDUCED MOTION
   ───────────────────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .ac-page *, .ac-page *::before, .ac-page *::after,
  .cursor-dot, .cursor-ring {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* ═════════════════════════════════════════════════════════════════════════════
   BLOG — DIARIO
   Estilos específicos del blog, encapsulados bajo .ac-page
   ═════════════════════════════════════════════════════════════════════════════ */

/* Progress bar de lectura */
.ac-page .read-progress {
  position: fixed !important;
  top: 0; left: 0;
  height: 2px;
  background: var(--accent);
  width: 0%;
  z-index: 99998;
  transition: width 0.15s ease-out;
}

/* ── Blog Hero ── */
.ac-page .blog-hero {
  padding: clamp(140px,16vw,200px) var(--pad-x) clamp(48px,6vw,96px);
  border-bottom: 1px solid var(--hairline);
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(24px,4vw,80px);
  align-items: end;
}
@media (max-width: 860px) { .ac-page .blog-hero { grid-template-columns: 1fr; } }
.ac-page .blog-hero h1 {
  font-size: clamp(56px,10vw,140px) !important;
  font-weight: 200 !important;
  letter-spacing: -0.04em !important;
  line-height: 0.86 !important;
  color: var(--fg) !important;
}
.ac-page .blog-hero h1 em { font-family:"Times New Roman",serif; font-style:italic; font-weight:300; color:var(--accent); }
.ac-page .blog-hero .lede { display:flex; flex-direction:column; gap:18px; max-width:42ch; justify-self:end; padding-bottom:8px; }
.ac-page .blog-hero .lede p { font-size:15px; color:var(--fg-dim); line-height:1.6; }
.ac-page .blog-hero .stat-row { display:flex; gap:32px; padding-top:18px; border-top:1px solid var(--hairline); margin-top:4px; }
.ac-page .blog-hero .stat .n { font-size:28px; font-weight:200; letter-spacing:-0.02em; display:block; }
.ac-page .blog-hero .stat .l { font-size:var(--t-micro); letter-spacing:0.2em; text-transform:uppercase; color:var(--fg-mute); }

/* ── Topic chips ── */
.ac-page .topics {
  display:flex; flex-wrap:wrap; gap:1px;
  background:var(--hairline);
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
}
.ac-page .topics button {
  flex:1; min-width:140px;
  padding:18px 22px;
  background:var(--bg);
  font-size:var(--t-micro); letter-spacing:0.22em; text-transform:uppercase;
  color:var(--fg-dim);
  transition:all .35s;
  text-align:left;
  display:flex; justify-content:space-between; align-items:baseline; gap:12px;
}
.ac-page .topics button:hover { background:#060606; color:var(--fg); }
.ac-page .topics button.active { background:var(--fg); color:var(--bg); }
.ac-page .topics button .count { font-family:"Courier New",monospace; opacity:.5; }

/* ── Featured ── */
.ac-page .featured { padding:clamp(48px,7vw,120px) var(--pad-x); border-bottom:1px solid var(--hairline); }
.ac-page .featured a.feat-card {
  display:grid !important;
  grid-template-columns:1.1fr 1fr;
  gap:clamp(24px,4vw,80px);
  align-items:start;
}
.ac-page .featured a.feat-card > * { min-width:0; }
@media (max-width:860px) { .ac-page .featured a.feat-card { grid-template-columns:1fr !important; } }
.ac-page .feat-visual {
  position:relative;
  display:flex; align-items:center; justify-content:center;
  min-height:300px; aspect-ratio:5/4;
  background:linear-gradient(135deg,#0a0a0a,#050505);
  overflow:hidden; border:1px solid var(--hairline);
}
.ac-page .feat-visual::before {
  content:""; position:absolute; inset:0; z-index:0;
  background-image:repeating-linear-gradient(0deg,transparent 0,transparent 11px,rgba(244,241,234,.02) 11px,rgba(244,241,234,.02) 12px),repeating-linear-gradient(90deg,transparent 0,transparent 11px,rgba(244,241,234,.02) 11px,rgba(244,241,234,.02) 12px);
}
.ac-page .feat-visual svg { position:relative; z-index:1; width:76%; height:auto; opacity:.85; transition:transform .8s cubic-bezier(.2,.7,.1,1); flex-shrink:0; }
.ac-page .featured a.feat-card:hover .feat-visual svg { transform:scale(1.04); }
.ac-page .feat-visual .feat-tag { position:absolute; top:18px; left:18px; z-index:2; font-size:var(--t-micro); letter-spacing:.24em; text-transform:uppercase; color:var(--bg); background:var(--accent); padding:6px 12px; font-weight:500; }
.ac-page .feat-visual .feat-coord { position:absolute; bottom:14px; right:18px; z-index:2; font-size:var(--t-micro); letter-spacing:.18em; color:var(--fg-dim); font-family:"Courier New",monospace; }
.ac-page .feat-text { display:flex; flex-direction:column; gap:24px; padding:14px 0; min-width:0; }
.ac-page .feat-meta { display:flex; gap:24px; align-items:baseline; padding-bottom:18px; border-bottom:1px solid var(--hairline); }
.ac-page .feat-meta .topic { font-size:var(--t-micro); letter-spacing:.24em; text-transform:uppercase; color:var(--accent); }
.ac-page .feat-meta .meta { font-size:var(--t-micro); letter-spacing:.18em; text-transform:uppercase; color:var(--fg-mute); }
.ac-page .featured h2 { font-size:clamp(36px,5.5vw,72px) !important; font-weight:200 !important; letter-spacing:-.03em !important; line-height:.92 !important; color:var(--fg) !important; }
.ac-page .featured h2 em { font-family:"Times New Roman",serif; font-style:italic; color:var(--accent); }
.ac-page .feat-text p { font-size:16px; color:var(--fg-dim); line-height:1.6; max-width:48ch; }
.ac-page .feat-cta { margin-top:auto; display:flex; align-items:center; gap:16px; font-size:var(--t-micro); letter-spacing:.24em; text-transform:uppercase; color:var(--fg); padding-top:18px; border-top:1px solid var(--hairline); transition:color .3s, gap .3s; }
.ac-page .featured a.feat-card:hover .feat-cta { color:var(--accent); gap:22px; }

/* ── Article grid ── */
.ac-page .articles { padding:0 var(--pad-x) clamp(60px,8vw,120px); }
.ac-page .articles-header { display:flex; justify-content:space-between; align-items:baseline; padding:clamp(40px,5vw,80px) 0 24px; border-bottom:1px solid var(--hairline); }
.ac-page .articles-header h2 { font-size:var(--t-h2) !important; font-weight:300 !important; letter-spacing:-.01em !important; color:var(--fg) !important; }
.ac-page .articles-header h2 em { font-family:"Times New Roman",serif; font-style:italic; color:var(--accent); }
.ac-page .articles-header .count { font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-mute); }
.ac-page .article-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--hairline); border:1px solid var(--hairline); }
@media (max-width:980px) { .ac-page .article-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .ac-page .article-grid { grid-template-columns:1fr; } }
.ac-page .article-card { background:var(--bg); display:flex; flex-direction:column; color:inherit; transition:background .6s; position:relative; }
.ac-page .article-card:hover { background:#060606; }
.ac-page .article-visual { aspect-ratio:4/3; position:relative; background:linear-gradient(135deg,#0c0c0c,#050505); overflow:hidden; border-bottom:1px solid var(--hairline); }
.ac-page .article-visual::before { content:""; position:absolute; inset:0; background-image:repeating-linear-gradient(45deg,transparent 0,transparent 14px,rgba(244,241,234,.015) 14px,rgba(244,241,234,.015) 28px); }
.ac-page .article-visual svg { position:absolute; inset:18% 18%; width:64%; height:64%; opacity:.7; transition:transform .7s cubic-bezier(.2,.7,.1,1), opacity .5s; }
.ac-page .article-card:hover .article-visual svg { transform:scale(1.06) rotate(-1deg); opacity:.95; }
.ac-page .article-visual .tag { position:absolute; top:14px; left:14px; font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-dim); font-family:"Courier New",monospace; }
.ac-page .article-visual .num { position:absolute; bottom:14px; right:14px; font-size:var(--t-micro); color:var(--fg-mute); font-family:"Courier New",monospace; letter-spacing:.18em; }
.ac-page .article-body { padding:28px; display:flex; flex-direction:column; gap:14px; flex:1; }
.ac-page .article-meta-row { display:flex; justify-content:space-between; align-items:baseline; padding-bottom:14px; border-bottom:1px solid var(--hairline); }
.ac-page .article-meta-row .topic { font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--accent) !important; }
.ac-page .article-meta-row .date { font-size:var(--t-micro); letter-spacing:.18em; text-transform:uppercase; color:var(--fg-mute) !important; }
.ac-page .article-card h3 { font-size:22px !important; font-weight:300 !important; letter-spacing:-.01em !important; line-height:1.2 !important; color:var(--fg) !important; }
.ac-page .article-card h3 em { font-family:"Times New Roman",serif; font-style:italic; color:var(--accent); }
.ac-page .article-card .excerpt { font-size:14px; color:var(--fg-dim); line-height:1.55; flex:1; }
.ac-page .article-foot { padding-top:16px; border-top:1px solid var(--hairline); display:flex; justify-content:space-between; align-items:baseline; font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-mute); }
.ac-page .article-foot .read { color:var(--fg); display:flex; align-items:center; gap:8px; transition:color .3s, gap .3s; }
.ac-page .article-foot .read::after { content:"→"; transition:transform .3s; }
.ac-page .article-card:hover .article-foot .read { color:var(--accent); gap:12px; }
.ac-page .article-card:hover .article-foot .read::after { transform:translateX(4px); }

/* ── Newsletter band ── */
.ac-page .news-band { padding:clamp(60px,8vw,120px) var(--pad-x); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(24px,4vw,80px); align-items:center; }
@media (max-width:860px) { .ac-page .news-band { grid-template-columns:1fr; } }
.ac-page .news-band h2 { font-size:clamp(36px,5vw,64px) !important; font-weight:200 !important; letter-spacing:-.03em !important; line-height:.95 !important; color:var(--fg) !important; }
.ac-page .news-band h2 em { font-family:"Times New Roman",serif; font-style:italic; color:var(--accent); }
.ac-page .news-band .news-text { font-size:15px; color:var(--fg-dim); margin-top:14px; max-width:46ch; }
.ac-page .news-form { display:grid; grid-template-columns:1fr auto; gap:1px; background:var(--hairline-strong); border:1px solid var(--hairline-strong); }
.ac-page .news-form input { background:var(--bg); border:none; outline:none; padding:22px 24px; color:var(--fg); font:inherit; font-size:16px; }
.ac-page .news-form input::placeholder { color:var(--fg-mute); }
.ac-page .news-form button { background:var(--fg); color:var(--bg); padding:0 32px; font-size:var(--t-micro); letter-spacing:.24em; text-transform:uppercase; font-weight:500; transition:background .3s; }
.ac-page .news-form button:hover { background:var(--accent); }
.ac-page .news-meta { margin-top:16px; display:flex; gap:24px; font-size:var(--t-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--fg-mute); }

/* ── En Destino · grid 2×2 ── */
.ac-page .insurance.destino-4 { grid-template-columns:repeat(2,1fr); }
@media (max-width:860px) { .ac-page .insurance.destino-4 { grid-template-columns:1fr; } }

/* ── Blog Footer ── */
.ac-page .ac-blog-footer { padding:clamp(48px,6vw,96px) var(--pad-x) clamp(28px,3vw,40px); display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:clamp(20px,4vw,60px); border-top:1px solid var(--hairline); }
@media (max-width:860px) { .ac-page .ac-blog-footer { grid-template-columns:1fr 1fr; } }
.ac-page .ac-blog-footer h5 { font-size:var(--t-micro) !important; letter-spacing:.22em; text-transform:uppercase; color:var(--fg-dim) !important; margin-bottom:16px; font-weight:400 !important; }
.ac-page .ac-blog-footer ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.ac-page .ac-blog-footer li { font-size:14px; color:var(--fg); }
.ac-page .ac-blog-footer li a { color:var(--fg) !important; transition:color .3s; }
.ac-page .ac-blog-footer li a:hover { color:var(--accent) !important; }
.ac-page .foot-brand h2 { font-size:clamp(36px,4vw,56px) !important; font-weight:200 !important; letter-spacing:-.02em !important; line-height:.9 !important; margin-bottom:16px; color:var(--fg) !important; }
.ac-page .foot-brand h2 em { font-family:"Times New Roman",serif; font-style:italic; color:var(--accent); }
.ac-page .foot-brand p { font-size:13px; color:var(--fg-dim); max-width:36ch; }
.ac-page .foot-bottom { grid-column:1/-1; margin-top:clamp(40px,5vw,80px); padding-top:24px; border-top:1px solid var(--hairline); display:flex; justify-content:space-between; align-items:baseline; font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-mute) !important; }

/* ── Article Hero ── */
.ac-page .article-hero { padding:clamp(140px,14vw,180px) var(--pad-x) clamp(48px,6vw,80px); border-bottom:1px solid var(--hairline); position:relative; }
.ac-page .breadcrumb { display:flex; gap:12px; align-items:center; font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-mute) !important; margin-bottom:36px; }
.ac-page .breadcrumb a { color:var(--fg-dim) !important; transition:color .3s; }
.ac-page .breadcrumb a:hover { color:var(--fg) !important; }
.ac-page .breadcrumb .sep { color:var(--fg-mute) !important; }
.ac-page .breadcrumb .current { color:var(--accent) !important; }
.ac-page .article-hero h1 { font-size:clamp(44px,7vw,96px) !important; font-weight:200 !important; letter-spacing:-.035em !important; line-height:.92 !important; max-width:22ch; margin-bottom:32px; color:var(--fg) !important; }
.ac-page .article-hero h1 em { font-family:"Times New Roman",serif; font-style:italic; color:var(--accent); }
.ac-page .article-hero .deck { font-size:clamp(18px,1.6vw,22px); color:var(--fg-dim); max-width:52ch; line-height:1.55; font-weight:300; margin-bottom:48px; }
.ac-page .byline { display:grid; grid-template-columns:auto 1fr auto auto; gap:clamp(20px,3vw,48px); padding:24px 0; border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); align-items:center; }
@media (max-width:720px) { .ac-page .byline { grid-template-columns:auto 1fr; row-gap:12px; } }
.ac-page .byline .author { display:flex; align-items:center; gap:14px; }
.ac-page .byline .avatar { width:44px; height:44px; border-radius:50%; background:linear-gradient(135deg,#1a1a1a,#050505); border:1px solid var(--hairline-strong); display:flex; align-items:center; justify-content:center; font-size:12px; letter-spacing:.1em; color:var(--fg-dim); }
.ac-page .byline .author-name { font-size:14px; font-weight:400; color:var(--fg); }
.ac-page .byline .author-role { font-size:var(--t-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--fg-mute); margin-top:2px; }
.ac-page .byline .meta-block { display:flex; flex-direction:column; gap:2px; }
.ac-page .byline .meta-label { font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-mute); }
.ac-page .byline .meta-val { font-size:14px; color:var(--fg); }

/* ── Article Cover ── */
.ac-page .article-cover { aspect-ratio:21/9; margin:0 var(--pad-x) clamp(48px,6vw,96px); background:linear-gradient(135deg,#0a0a0a,#050505); border:1px solid var(--hairline); position:relative; overflow:hidden; }
.ac-page .article-cover::before { content:""; position:absolute; inset:0; background-image:repeating-linear-gradient(0deg,transparent 0,transparent 13px,rgba(244,241,234,.025) 13px,rgba(244,241,234,.025) 14px),repeating-linear-gradient(90deg,transparent 0,transparent 13px,rgba(244,241,234,.025) 13px,rgba(244,241,234,.025) 14px); }
.ac-page .article-cover svg { position:absolute; inset:10% 8%; width:84%; height:80%; }
.ac-page .article-cover .caption { position:absolute; bottom:18px; left:22px; font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-dim); font-family:"Courier New",monospace; }
.ac-page .article-cover .credit { position:absolute; bottom:18px; right:22px; font-size:var(--t-micro); letter-spacing:.18em; color:var(--fg-mute); font-family:"Courier New",monospace; }

/* ── Article Body ── */
.ac-page .article-body-wrap { display:grid; grid-template-columns:minmax(0,240px) minmax(0,70ch) minmax(0,220px); gap:clamp(24px,4vw,80px); padding:0 var(--pad-x) clamp(60px,8vw,120px); justify-content:center; align-items:start; }
@media (max-width:1100px) { .ac-page .article-body-wrap { grid-template-columns:1fr; } .ac-page .article-toc, .ac-page .article-aside { display:none; } }
.ac-page .article-toc { position:sticky; top:100px; border-top:1px solid var(--hairline); padding-top:18px; }
.ac-page .article-toc .label { font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-mute); margin-bottom:18px; }
.ac-page .article-toc ol { list-style:none; display:flex; flex-direction:column; gap:12px; counter-reset:toc; }
.ac-page .article-toc li { counter-increment:toc; }
.ac-page .article-toc a { display:grid; grid-template-columns:auto 1fr; gap:12px; font-size:13px; color:var(--fg-dim) !important; line-height:1.4; transition:color .3s; }
.ac-page .article-toc a::before { content:counter(toc,decimal-leading-zero); font-family:"Courier New",monospace; font-size:11px; color:var(--fg-mute); letter-spacing:.1em; }
.ac-page .article-toc a:hover { color:var(--fg) !important; }
.ac-page .article-prose { font-size:18px; line-height:1.65; color:var(--fg); font-weight:300; counter-reset:section; }
.ac-page .article-prose > * + * { margin-top:1.4em; }
.ac-page .article-prose h2 { font-size:clamp(28px,3vw,40px) !important; font-weight:300 !important; letter-spacing:-.02em !important; line-height:1.1 !important; margin-top:2.2em; color:var(--fg) !important; }
.ac-page .article-prose h2 em { font-family:"Times New Roman",serif; font-style:italic; color:var(--accent); }
.ac-page .article-prose h2::before { content:"§ " counter(section,decimal-leading-zero); counter-increment:section; display:block; font-family:"Courier New",monospace; font-size:11px; letter-spacing:.22em; color:var(--fg-mute); margin-bottom:14px; }
.ac-page .article-prose h3 { font-size:20px !important; font-weight:400 !important; letter-spacing:-.01em !important; margin-top:1.8em; color:var(--fg) !important; }
.ac-page .article-prose p { color:var(--fg) !important; }
.ac-page .article-prose p strong { font-weight:500; color:var(--fg) !important; }
.ac-page .article-prose a { color:var(--accent) !important; border-bottom:1px solid rgba(200,184,154,.4); padding-bottom:1px; transition:border-color .3s; }
.ac-page .article-prose a:hover { border-color:var(--accent) !important; }
.ac-page .article-prose ul, .ac-page .article-prose ol { padding-left:0; list-style:none; display:flex; flex-direction:column; gap:12px; }
.ac-page .article-prose ul li { display:grid; grid-template-columns:auto 1fr; gap:16px; }
.ac-page .article-prose ul li::before { content:""; width:14px; height:1px; background:var(--accent); transform:translateY(.85em); }
.ac-page .article-prose ol { counter-reset:olc; }
.ac-page .article-prose ol li { counter-increment:olc; display:grid; grid-template-columns:auto 1fr; gap:16px; }
.ac-page .article-prose ol li::before { content:counter(olc,decimal-leading-zero); font-family:"Courier New",monospace; font-size:12px; letter-spacing:.1em; color:var(--fg-mute); padding-top:.45em; }
.ac-page .article-prose blockquote { margin:2.4em 0; font-size:clamp(24px,2.4vw,32px); font-weight:200; font-family:"Times New Roman",serif; font-style:italic; line-height:1.3; color:var(--fg) !important; letter-spacing:-.01em; padding:32px 0 32px 28px; border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); position:relative; }
.ac-page .article-prose blockquote::before { content:""; position:absolute; left:0; top:50%; width:12px; height:1px; background:var(--accent); }
.ac-page .article-prose blockquote cite { display:block; margin-top:18px; font-family:"Helvetica Neue",Helvetica,sans-serif; font-style:normal; font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-mute); }
.ac-page .article-prose .pullquote { margin:3em -20px; padding:48px 32px; border-top:1px solid var(--hairline-strong); border-bottom:1px solid var(--hairline-strong); font-size:clamp(28px,3vw,44px); font-weight:200; font-family:"Times New Roman",serif; font-style:italic; letter-spacing:-.02em; line-height:1.15; color:var(--fg) !important; }
.ac-page .article-prose .pullquote em { color:var(--accent); }
.ac-page .article-prose figure { margin:2.4em -20px; }
.ac-page .article-prose .fig-img { aspect-ratio:16/10; background:linear-gradient(135deg,#0a0a0a,#050505); border:1px solid var(--hairline); position:relative; overflow:hidden; }
.ac-page .article-prose .fig-img::before { content:""; position:absolute; inset:0; background-image:repeating-linear-gradient(45deg,transparent 0,transparent 14px,rgba(244,241,234,.015) 14px,rgba(244,241,234,.015) 28px); }
.ac-page .article-prose .fig-img svg { position:absolute; inset:12% 12%; width:76%; height:76%; }
.ac-page .article-prose figcaption { margin-top:14px; display:flex; justify-content:space-between; font-size:12px; color:var(--fg-mute); letter-spacing:.05em; }
.ac-page .article-prose figcaption .ref { font-family:"Courier New",monospace; letter-spacing:.18em; text-transform:uppercase; }
.ac-page .article-prose > p:first-of-type::first-letter { font-family:"Times New Roman",serif; font-style:italic; font-size:5.2em; line-height:.85; float:left; margin:.05em .12em 0 -.05em; color:var(--accent); font-weight:300; }

/* Affiliate callout */
.ac-page .aff-callout { margin:2.6em 0; padding:28px; border:1px solid var(--hairline-strong); display:grid; grid-template-columns:1fr auto; gap:28px; align-items:center; }
@media (max-width:600px) { .ac-page .aff-callout { grid-template-columns:1fr; } }
.ac-page .aff-callout .label { font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--accent); margin-bottom:10px; }
.ac-page .aff-callout h4 { font-size:20px !important; font-weight:400 !important; letter-spacing:-.01em; margin-bottom:6px; color:var(--fg) !important; }
.ac-page .aff-callout p { font-size:14px; color:var(--fg-dim); line-height:1.5; margin:0; }
.ac-page .aff-callout a.cta { padding:16px 28px; background:var(--fg); color:var(--bg) !important; font-size:var(--t-micro); letter-spacing:.24em; text-transform:uppercase; font-weight:500; border-bottom:none; white-space:nowrap; transition:background .3s; }
.ac-page .aff-callout a.cta:hover { background:var(--accent); }

/* Aside */
.ac-page .article-aside { position:sticky; top:100px; display:flex; flex-direction:column; gap:32px; border-top:1px solid var(--hairline); padding-top:18px; }
.ac-page .aside-block .label { font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-mute); margin-bottom:14px; }
.ac-page .aside-block .key-facts { list-style:none; display:flex; flex-direction:column; gap:14px; }
.ac-page .aside-block .key-facts li { display:flex; flex-direction:column; gap:4px; padding-bottom:14px; border-bottom:1px solid var(--hairline); }
.ac-page .aside-block .key-facts .v { font-size:22px; font-weight:200; letter-spacing:-.02em; color:var(--fg); }
.ac-page .aside-block .key-facts .v em { font-family:"Times New Roman",serif; font-style:italic; color:var(--accent); }
.ac-page .aside-block .key-facts .k { font-size:var(--t-micro); letter-spacing:.18em; text-transform:uppercase; color:var(--fg-mute); }
.ac-page .aside-block .related { display:flex; flex-direction:column; gap:12px; }
.ac-page .aside-block .related a { display:flex; flex-direction:column; gap:4px; padding:14px 0; border-bottom:1px solid var(--hairline); transition:padding .3s; }
.ac-page .aside-block .related a:hover { padding-left:8px; }
.ac-page .aside-block .related .ix { font-size:var(--t-micro); letter-spacing:.2em; color:var(--fg-mute); font-family:"Courier New",monospace; }
.ac-page .aside-block .related .name { font-size:14px; color:var(--fg) !important; }
.ac-page .aside-block .related a:hover .name { color:var(--accent) !important; }

/* Article tail */
.ac-page .article-tail { border-top:1px solid var(--hairline); padding:clamp(40px,5vw,80px) var(--pad-x); display:grid; grid-template-columns:1fr auto; gap:32px; align-items:end; }
@media (max-width:720px) { .ac-page .article-tail { grid-template-columns:1fr; } }
.ac-page .article-tail .tags { display:flex; flex-wrap:wrap; gap:10px; }
.ac-page .article-tail .tags .tag { font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-dim); padding:8px 14px; border:1px solid var(--hairline-strong); transition:all .3s; }
.ac-page .article-tail .tags .tag:hover { color:var(--bg); background:var(--fg); border-color:var(--fg); }
.ac-page .article-tail .share { display:flex; align-items:center; gap:16px; }
.ac-page .article-tail .share .label { font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-mute); }
.ac-page .article-tail .share a { width:40px; height:40px; border:1px solid var(--hairline-strong); display:flex; align-items:center; justify-content:center; font-size:12px; color:var(--fg) !important; transition:background .3s, color .3s; }
.ac-page .article-tail .share a:hover { background:var(--fg); color:var(--bg) !important; }

/* Next article */
.ac-page .next-article { padding:clamp(48px,6vw,96px) var(--pad-x); border-top:1px solid var(--hairline); }
.ac-page .next-article .eyebrow { margin-bottom:24px; }
.ac-page .next-article a { display:grid; grid-template-columns:1fr auto; gap:32px; align-items:end; padding:32px 0; border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); transition:padding .4s; }
.ac-page .next-article a:hover { padding-left:12px; padding-right:12px; }
.ac-page .next-article h3 { font-size:clamp(36px,5vw,64px) !important; font-weight:200 !important; letter-spacing:-.03em !important; line-height:.95 !important; max-width:18ch; color:var(--fg) !important; }
.ac-page .next-article h3 em { font-family:"Times New Roman",serif; font-style:italic; color:var(--accent); }
.ac-page .next-article .next-arrow { font-size:var(--t-micro); letter-spacing:.24em; text-transform:uppercase; white-space:nowrap; display:flex; align-items:center; gap:12px; padding-bottom:8px; color:var(--fg); }
.ac-page .next-article .next-arrow .arr { transition:transform .4s; }

/* ─────────────────────────────────────────────────────────────────────────────
   MÓDULO DE VUELOS — AVIASALES / TRAVELPAYOUTS
   ───────────────────────────────────────────────────────────────────────────── */

/* Tab switcher */
.ac-page .flight-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--hairline-strong);
  margin-bottom: 0;
}
.ac-page .flight-tabs .ftab {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--fg-dim);
  font-size: var(--t-small);
  letter-spacing: .18em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .2s, border-color .2s;
  margin-bottom: -1px;
}
.ac-page .flight-tabs .ftab svg { opacity: .6; transition: opacity .2s; }
.ac-page .flight-tabs .ftab.active {
  color: var(--fg);
  border-bottom-color: var(--accent);
}
.ac-page .flight-tabs .ftab.active svg { opacity: 1; }
.ac-page .flight-tabs .ftab:hover { color: var(--fg); }

/* Flight module container */
.ac-page .flight-module {
  border: 1px solid var(--hairline-strong);
  margin-bottom: clamp(48px,6vw,96px);
}
.ac-page .fpanel { display: none; }
.ac-page .fpanel.active { display: block; }

/* Insight bar */
.ac-page .fl-insight {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 24px;
  background: rgba(200,184,154,0.06);
  border-bottom: 1px solid rgba(200,184,154,0.15);
  font-size: 12px;
  color: var(--fg-dim);
  letter-spacing: .04em;
}
.ac-page .fl-insight strong { color: var(--accent); font-weight: 500; }

/* Widget wrap */
.ac-page .fl-widget-wrap {
  padding: 28px 24px 24px;
  min-height: 200px;
}
.ac-page .fl-widget-wrap > * { max-width: 100%; }

/* Hotel CTA (fallback when no widget) */
.ac-page .fl-hotel-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 32px 24px;
  padding: 14px 28px;
  border: 1px solid var(--accent);
  color: var(--accent) !important;
  font-size: var(--t-small);
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: background .25s, color .25s;
}
.ac-page .fl-hotel-cta:hover { background: var(--accent); color: #1a1917 !important; }

/* Popular routes */
.ac-page .flight-routes { }
.ac-page .routes-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 24px;
}
.ac-page .routes-see-all {
  font-size: var(--t-micro);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--fg-dim) !important;
  transition: color .2s;
}
.ac-page .routes-see-all:hover { color: var(--accent) !important; }
.ac-page .routes-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
@media (max-width:900px) { .ac-page .routes-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width:560px) { .ac-page .routes-grid { grid-template-columns: 1fr; } }

/* Route card */
.ac-page .route-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 22px 20px 18px;
  background: #0d0c0a;
  border: 1px solid var(--hairline-strong);
  text-decoration: none !important;
  transition: border-color .25s, transform .25s, background .25s;
}
.ac-page .route-card:hover {
  border-color: rgba(200,184,154,.4);
  background: #141210;
  transform: translateY(-3px);
}
.ac-page .rc-airports {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ac-page .rc-orig,
.ac-page .rc-dest {
  font-size: clamp(22px,2.5vw,30px);
  font-weight: 200;
  letter-spacing: .06em;
  color: var(--fg);
  font-variant-numeric: tabular-nums;
}
.ac-page .rc-arr {
  color: var(--fg-mute);
  font-size: 18px;
  flex: 1;
  text-align: center;
}
.ac-page .rc-name {
  font-size: 12px;
  letter-spacing: .06em;
  color: var(--fg-dim);
}
.ac-page .rc-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px solid var(--hairline);
}
.ac-page .rc-tag {
  font-size: var(--t-micro);
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 4px 9px;
  border: 1px solid var(--hairline-strong);
  color: var(--fg-mute);
}
.ac-page .rc-tag.rc-best {
  border-color: rgba(200,184,154,.35);
  color: var(--accent);
  background: rgba(200,184,154,.06);
}
.ac-page .rc-price {
  font-size: 13px;
  color: var(--fg-dim);
  letter-spacing: .02em;
}
.ac-page .rc-price strong {
  color: var(--fg);
  font-weight: 400;
  font-size: 17px;
}
.ac-page .next-article a:hover .next-arrow .arr { transform:translateX(8px); }

/* ── FORMULARIO DE BÚSQUEDA VUELOS / HOTELES ──────────────────────────────── */
.ac-page .ff-form { padding: 28px 24px 24px; }
.ac-page .ff-row {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.ac-page .ff-field { display: flex; flex-direction: column; gap: 6px; flex: 1; min-width: 100px; }
.ac-page .ff-field-wide { flex: 2; min-width: 180px; }
.ac-page .ff-field-xs { flex: 0 0 90px; min-width: 80px; }
.ac-page .ff-label {
  font-size: var(--t-micro);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--fg-mute);
}
.ac-page .ff-input {
  background: #0d0c0a;
  border: 1px solid var(--hairline-strong);
  color: var(--fg);
  font-family: inherit;
  font-size: 15px;
  padding: 11px 14px;
  outline: none;
  width: 100%;
  transition: border-color .2s;
  border-radius: 0;
  -webkit-appearance: none;
}
.ac-page .ff-input:focus { border-color: var(--accent); }
.ac-page .ff-input::placeholder { color: var(--fg-mute); }
.ac-page .ff-input[type="text"] { text-transform: uppercase; letter-spacing: .08em; font-size: 18px; font-weight: 300; }
.ac-page #fh-city { text-transform: none; letter-spacing: 0; font-size: 15px; }
.ac-page .ff-input[type="date"] { color-scheme: dark; }
.ac-page select.ff-input { cursor: pointer; }
.ac-page .ff-swap {
  background: transparent;
  border: 1px solid var(--hairline-strong);
  color: var(--fg-dim);
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color .2s, color .2s;
  margin-bottom: 0;
  align-self: flex-end;
}
.ac-page .ff-swap:hover { border-color: var(--accent); color: var(--accent); }
.ac-page .ff-submit {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  background: var(--accent);
  color: #0d0c0a;
  border: none;
  font-family: inherit;
  font-size: var(--t-small);
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s, transform .15s;
  width: 100%;
  justify-content: center;
}
.ac-page .ff-submit:hover { background: #e0d0b8; transform: translateY(-1px); }
@media (max-width: 720px) {
  .ac-page .ff-row { gap: 8px; }
  .ac-page .ff-field { min-width: calc(50% - 8px); flex: 0 0 calc(50% - 8px); }
  .ac-page .ff-field-wide { flex: 0 0 100%; min-width: 100%; }
  .ac-page .ff-swap { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   CAPA DE PULIDO PREMIUM — armoniza todo el sitio con el buscador
   (oro, glassmorphism, física de hover, easing cinematográfico)
   Aditiva: anexada al final para refinar sin reestructurar.
   ═══════════════════════════════════════════════════════════════════════════ */
:root {
  --gold-hi: #e3d4b2;
  --ease-lux: cubic-bezier(.16, 1, .3, 1);
  --glow-gold: 0 0 0 1px rgba(200,184,154,.12) inset, 0 30px 60px -34px rgba(0,0,0,.9);
}

/* ── NAV · barra frosted premium ── */
.ac-page .ac-nav {
  background: linear-gradient(to bottom, rgba(8,7,6,.72), rgba(8,7,6,.04));
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  backdrop-filter: blur(14px) saturate(1.2);
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.ac-page .nav-links a { position: relative; transition: color .5s var(--ease-lux); }
.ac-page .nav-links a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -5px; height: 1px;
  background: linear-gradient(90deg, var(--accent), var(--gold-hi));
  transform: scaleX(0); transform-origin: left; opacity: 0;
  transition: transform .5s var(--ease-lux), opacity .35s var(--ease-lux);
}
.ac-page .nav-links a:hover { color: var(--accent); }
.ac-page .nav-links a:hover::after { transform: scaleX(1); opacity: 1; }
.ac-page .nav-mark .dot { box-shadow: 0 0 10px 1px rgba(200,184,154,.6); }

/* ── TARJETAS · elevación + halo dorado + acento superior ── */
.ac-page .ac-product,
.ac-page .ins-card,
.ac-page .split-tile {
  transition: background .6s var(--ease-lux), transform .6s var(--ease-lux), box-shadow .6s var(--ease-lux);
}
.ac-page .ac-product::after,
.ac-page .ins-card::after,
.ac-page .split-tile::after {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity: 0; transition: opacity .6s var(--ease-lux); pointer-events: none; z-index: 3;
}
.ac-page .ac-product:hover,
.ac-page .ins-card:hover,
.ac-page .split-tile:hover {
  transform: translateY(-4px);
  z-index: 2;
  box-shadow: var(--glow-gold);
}
.ac-page .ac-product:hover::after,
.ac-page .ins-card:hover::after,
.ac-page .split-tile:hover::after { opacity: .85; }

/* refuerza el zoom de imagen del producto con easing premium */
.ac-page .product-img svg { transition: transform 1s var(--ease-lux), opacity .6s var(--ease-lux); }
.ac-page .ac-product:hover .product-img svg { transform: scale(1.1) rotate(-2deg); opacity: .7; }
.ac-page .product-img::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(120% 90% at 50% 0%, rgba(200,184,154,.1), transparent 65%);
  opacity: 0; transition: opacity .7s var(--ease-lux);
}
.ac-page .ac-product:hover .product-img::after { opacity: 1; }

/* ── CTAs · oro premium con elevación y glow ── */
.ac-page .ins-cta,
.ac-page .split-cta {
  transition: transform .5s var(--ease-lux), box-shadow .5s var(--ease-lux), background .4s var(--ease-lux), color .4s var(--ease-lux), border-color .4s var(--ease-lux);
}
.ac-page .ins-card.featured .ins-cta {
  background: linear-gradient(135deg, var(--gold-hi), var(--accent));
  box-shadow: 0 14px 30px -15px rgba(200,184,154,.5);
}
.ac-page .ins-card.featured .ins-cta:hover {
  background: linear-gradient(135deg, #f0e3c6, var(--gold-hi));
  color: #0c0b09;
  transform: translateY(-2px);
  box-shadow: 0 22px 46px -16px rgba(200,184,154,.62);
}
.ac-page .ins-cta:hover { transform: translateY(-2px); }
.ac-page .split-cta:hover {
  background: linear-gradient(135deg, var(--gold-hi), var(--accent));
  color: #0c0b09;
  border-color: transparent;
  transform: translateY(-2px);
  box-shadow: 0 18px 38px -17px rgba(200,184,154,.55);
}

/* ── FILTROS · estado activo dorado ── */
.ac-page .filter-bar button {
  transition: background .4s var(--ease-lux), color .4s var(--ease-lux), border-color .4s var(--ease-lux);
}
.ac-page .filter-bar button.active {
  background: linear-gradient(135deg, var(--gold-hi), var(--accent));
  color: #0c0b09;
  box-shadow: 0 10px 24px -12px rgba(200,184,154,.5);
}

/* ── STATS · línea de acento dorada bajo cada cifra ── */
.ac-page .ac-measure .cell { position: relative; transition: transform .6s var(--ease-lux); }
.ac-page .ac-measure .cell::after {
  content: ""; position: absolute; left: 0; bottom: -1px; width: 28px; height: 2px;
  background: linear-gradient(90deg, var(--accent), transparent);
  opacity: .5; transition: width .6s var(--ease-lux), opacity .4s var(--ease-lux);
}
.ac-page .ac-measure .cell:hover::after { width: 64px; opacity: 1; }

/* ── Respeta usuarios con movimiento reducido ── */
@media (prefers-reduced-motion: reduce) {
  .ac-page .ac-product,
  .ac-page .ins-card,
  .ac-page .split-tile,
  .ac-page .ins-cta,
  .ac-page .split-cta { transition: none; }
  .ac-page .ac-product:hover,
  .ac-page .ins-card:hover,
  .ac-page .split-tile:hover { transform: none; }
}

/* ── HERO · vignette cinematográfico (sobre el globo, bajo el texto) ── */
.ac-page .ac-hero::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(120% 80% at 50% 42%, transparent 55%, rgba(0,0,0,.5) 100%),
    linear-gradient(to bottom, rgba(0,0,0,.3), transparent 28%, transparent 66%, rgba(0,0,0,.6));
}
/* Italic display dorado con degradado y leve resplandor */
.ac-page .hero-title em,
.ac-page .foot-brand h2 em {
  background: linear-gradient(135deg, var(--gold-hi), var(--accent));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  filter: drop-shadow(0 0 22px rgba(200,184,154,.28));
}
/* Marca de navegación · esquinas hero refinadas */
.ac-page .hero-corner strong { color: var(--accent); letter-spacing: .14em; }
.ac-page .scroll-hint .line { background: linear-gradient(to bottom, var(--accent), transparent) !important; }
.ac-page .marquee-item .dot { box-shadow: 0 0 8px 0 rgba(200,184,154,.55); }

/* ── FOOTER · línea de acento dorada + enlaces premium ── */
.ac-page .ac-footer { position: relative; }
.ac-page .ac-footer::before {
  content: ""; position: absolute; top: -1px; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(200,184,154,.45), transparent);
}
.ac-page .ac-footer li a {
  position: relative; display: inline-block; transition: color .5s var(--ease-lux);
}
.ac-page .ac-footer li a::after {
  content: ""; position: absolute; left: 0; bottom: -2px; width: 100%; height: 1px;
  background: linear-gradient(90deg, var(--accent), var(--gold-hi));
  transform: scaleX(0); transform-origin: left; opacity: 0;
  transition: transform .5s var(--ease-lux), opacity .35s var(--ease-lux);
}
.ac-page .ac-footer li a:hover { color: var(--accent); }
.ac-page .ac-footer li a:hover::after { transform: scaleX(1); opacity: 1; }
.ac-page .foot-brand h2 em { filter: drop-shadow(0 0 26px rgba(200,184,154,.3)); }
