/* =========================================================================
   FUNDACIÓN ACCIÓN AYSÉN · Sistema de diseño v2.1 · "Conocimiento en acción"
   Identidad visual 2026: Azul Fiordo · Cobre Patagón · Verde Lenga · Montserrat + Inter
   Bento grids orgánicos · glassmorphism · fotos sin bordes con overlay Fiordo
   WordPress 6.x · Bricks Builder 2.x · JetEngine · HostGator
   Metodología BEM · prefijo "aa-" (Acción Aysén) · mobile-first
   -------------------------------------------------------------------------
   INSTALACIÓN (v2.1.0)
   1. Este archivo lo carga el plugin «Acción Aysén · Sistema de diseño»,
      junto con las fuentes autoalojadas (Inter y Montserrat) y Font Awesome
      Free (Solid). No se pega en Bricks › Código personalizado.
   2. En el builder, pega cada HTML con Ctrl/Cmd + V en el panel Estructura.
      Las clases del HTML quedan registradas como clases globales.
   3. Íconos: <i class="fa-solid fa-NOMBRE" aria-hidden="true"></i>.
   4. Breakpoints: 768px (tablet) · 992px (escritorio) · 1200px (amplio).
   ÍNDICE
   01 Tokens · 02 Modo oscuro · 03 Base · 04 Layout · 05 Tipografía
   06 Botones, badges y chips · 07 Header · 08 Menú app (móvil)
   09 Footer · 10 Hero · 11 Bloques de contenido · 12 Tarjetas
   13 Listados y filtros · 14 Single · 15 Formularios y búsqueda
   16 Páginas de estado · 17 Compatibilidad Bricks · 18 Animaciones
   19 Utilidades · 20 Landing (fachada)
   ========================================================================= */

/* 01 · TOKENS ============================================================ */
:root {
  --aa-font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --aa-font-heading: "Montserrat", "Inter", ui-sans-serif, system-ui, sans-serif;

  /* Tipografía fluida · 360px → 1440px (titulares en Montserrat, cuerpo en Inter) */
  --aa-text-xs: clamp(0.78rem, 0.76rem + 0.09vw, 0.84rem);
  --aa-text-s: clamp(0.88rem, 0.85rem + 0.13vw, 0.96rem);
  --aa-text-m: clamp(1rem, 0.96rem + 0.19vw, 1.13rem);
  --aa-text-l: clamp(1.13rem, 1.06rem + 0.33vw, 1.38rem);
  --aa-text-xl: clamp(1.25rem, 1.14rem + 0.5vw, 1.63rem);
  --aa-text-2xl: clamp(1.5rem, 1.3rem + 0.85vw, 2.13rem);
  --aa-text-3xl: clamp(1.75rem, 1.45rem + 1.35vw, 2.75rem);
  --aa-text-4xl: clamp(2.1rem, 1.6rem + 2.2vw, 3.75rem);
  --aa-text-5xl: clamp(2.4rem, 1.55rem + 3.8vw, 5.25rem);
  --aa-leading: 1.65;
  --aa-leading-snug: 1.3;
  --aa-leading-tight: 1.1;
  --aa-tracking-tight: -0.02em;
  --aa-tracking-wide: 0.1em;

  /* Espaciado fluido */
  --aa-space-3xs: clamp(0.25rem, 0.24rem + 0.05vw, 0.28rem);
  --aa-space-2xs: clamp(0.5rem, 0.48rem + 0.09vw, 0.56rem);
  --aa-space-xs: clamp(0.75rem, 0.71rem + 0.19vw, 0.88rem);
  --aa-space-s: clamp(1rem, 0.95rem + 0.23vw, 1.13rem);
  --aa-space-m: clamp(1.5rem, 1.42rem + 0.37vw, 1.75rem);
  --aa-space-l: clamp(2rem, 1.86rem + 0.6vw, 2.5rem);
  --aa-space-xl: clamp(2.75rem, 2.4rem + 1.5vw, 3.75rem);
  --aa-space-2xl: clamp(3.5rem, 2.9rem + 2.8vw, 5.5rem);
  --aa-space-3xl: clamp(4.5rem, 3.4rem + 4.8vw, 8rem);
  --aa-section-space: clamp(3.5rem, 2.4rem + 4.8vw, 7.5rem);
  --aa-gutter: clamp(1rem, 0.55rem + 2.2vw, 2.5rem);
  --aa-bento-gap: clamp(1rem, 0.7rem + 1.2vw, 1.75rem); /* gutters "respirables" */
  --aa-hero-inset: clamp(0rem, 1.5vw - 0.375rem, 1rem);

  /* Contenedores */
  --aa-container: 76rem;
  --aa-container-narrow: 46rem;
  --aa-container-wide: 90rem;

  /* Forma · geometría orgánica (24px → 40px, piedra erosionada por el fiordo) */
  --aa-radius-xs: 0.5rem;
  --aa-radius-s: 0.75rem;
  --aa-radius-m: 1rem;
  --aa-radius-l: 1.5rem;
  --aa-radius-xl: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem);
  --aa-radius-organic: var(--aa-radius-xl) var(--aa-radius-l) var(--aa-radius-xl) var(--aa-radius-l);
  --aa-radius-pill: 999px;

  /* Movimiento (ease-out-back = agua que sube y baja) */
  --aa-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --aa-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --aa-ease-back: cubic-bezier(0.34, 1.4, 0.64, 1);
  --aa-duration-fast: 0.18s;
  --aa-duration: 0.35s;
  --aa-duration-slow: 0.9s;

  /* Estructura */
  --aa-header-h: 4.5rem;
  --aa-appbar-h: 4.25rem;
  --aa-z-header: 100;
  --aa-z-appbar: 110;
  --aa-z-overlay: 120;

  /* Color · Light Mode (por defecto) */
  color-scheme: light;
  --aa-bg: #F8FAFC;                 /* Blanco Humo */
  --aa-surface: #FFFFFF;            /* Blanco Puro */
  --aa-surface-alt: #EEF3F8;
  --aa-text: #1E293B;               /* Gris Pizarra Oscuro */
  --aa-text-muted: #475569;         /* Gris Pizarra Medio */
  --aa-heading: #003B70;            /* Azul Fiordo en encabezados */
  --aa-border: rgba(0, 59, 112, 0.1);
  --aa-border-strong: rgba(0, 59, 112, 0.22);
  --aa-primary: #003B70;            /* Azul Fiordo */
  --aa-primary-hover: #0A2342;
  --aa-on-primary: #FFFFFF;
  --aa-primary-soft: #E2ECF6;
  --aa-primary-ink: #003B70;
  --aa-secondary: #0A601A;          /* Verde Lenga */
  --aa-secondary-deep: #1B4324;
  --aa-secondary-soft: #E4F1E6;
  --aa-secondary-ink: #0A601A;
  --aa-accent: #D05E1A;             /* Cobre Patagón · CTA */
  --aa-accent-hover: #B24C10;
  --aa-on-accent: #FFFFFF;
  --aa-accent-soft: #FBEADF;
  --aa-accent-ink: #A9470E;
  --aa-link: #003B70;
  --aa-link-hover: #A9470E;
  --aa-deep: #425667;
  --aa-on-deep: #FFFFFF;
  --aa-on-deep-muted: #E2E8F0;
  --aa-gradient: linear-gradient(155deg, #536675 0%, #425667 50%, #2B4154 100%); /* cielo sobre los fiordos */
  --aa-gradient-footer: linear-gradient(180deg, #2B4154 0%, #1D2F3F 100%);
  --aa-cta-bg: linear-gradient(135deg, #003B70 0%, #062E57 55%, #0A2342 100%);
  --aa-on-cta: #FFFFFF;
  --aa-cta-ink: #003B70;
  --aa-inverse-bg: #FFFFFF;
  --aa-inverse-fg: #003B70;
  --aa-logo-bg: #003B70;
  --aa-glass: rgba(248, 250, 252, 0.72);
  --aa-glass-surface: rgba(255, 255, 255, 0.72);
  --aa-glass-border: rgba(0, 59, 112, 0.1);
  --aa-contour: rgba(0, 59, 112, 0.07);
  --aa-backdrop: rgba(15, 23, 42, 0.45);
  --aa-focus: #D05E1A;
  --aa-photo-overlay: radial-gradient(ellipse at 50% 45%, transparent 45%, rgba(0, 59, 112, 0.32) 100%);
  --aa-ambient: radial-gradient(70rem 50rem at 110% -10%, rgba(0, 59, 112, 0.06), transparent 60%), radial-gradient(60rem 40rem at -10% 110%, rgba(10, 96, 26, 0.045), transparent 60%);
  --aa-shadow-s: 0 1px 2px rgba(15, 23, 42, 0.04);
  --aa-shadow-m: 0 20px 44px -26px rgba(0, 59, 112, 0.28);
  --aa-shadow-l: 0 32px 72px -32px rgba(0, 59, 112, 0.36);
}

/* 02 · DARK MODE ========================================================= */
[data-theme="dark"] {
  color-scheme: dark;
  --aa-bg: #0F172A;                 /* Gris Pizarra Noche */
  --aa-surface: #1E293B;            /* Gris Pizarra Relieve */
  --aa-surface-alt: #131D31;
  --aa-text: #F1F5F9;               /* Blanco Invierno */
  --aa-text-muted: #94A3B8;         /* Gris Pizarra Claro */
  --aa-heading: #F1F5F9;
  --aa-border: rgba(96, 140, 196, 0.2);
  --aa-border-strong: rgba(96, 140, 196, 0.38);
  --aa-primary: #2A5A8F;            /* Azul Fiordo Claro */
  --aa-primary-hover: #346BA6;
  --aa-on-primary: #FFFFFF;
  --aa-primary-soft: #1A2D47;
  --aa-primary-ink: #8DB8E8;
  --aa-secondary: #4FA562;
  --aa-secondary-deep: #1B4324;
  --aa-secondary-soft: #1B4324;
  --aa-secondary-ink: #8FD19E;
  --aa-accent: #D05E1A;
  --aa-accent-hover: #E2702C;
  --aa-on-accent: #020617;
  --aa-accent-soft: #3A2418;
  --aa-accent-ink: #F08A4B;
  --aa-link: #8DB8E8;
  --aa-link-hover: #F08A4B;
  --aa-deep: #17232E;
  --aa-on-deep: #F1F5F9;
  --aa-on-deep-muted: #94A3B8;
  --aa-gradient: linear-gradient(155deg, #233240 0%, #17232E 55%, #0D151C 100%);
  --aa-gradient-footer: linear-gradient(180deg, #0D151C 0%, #080E14 100%);
  --aa-cta-bg: linear-gradient(135deg, #2A5A8F 0%, #173A63 60%, #0F2744 100%);
  --aa-on-cta: #FFFFFF;
  --aa-cta-ink: #0F2744;
  --aa-inverse-bg: #F1F5F9;
  --aa-inverse-fg: #0F172A;
  --aa-logo-bg: #2A5A8F;
  --aa-glass: rgba(15, 23, 42, 0.72);
  --aa-glass-surface: rgba(30, 41, 59, 0.6);
  --aa-glass-border: rgba(96, 140, 196, 0.2);
  --aa-contour: rgba(141, 184, 232, 0.08);
  --aa-backdrop: rgba(2, 6, 23, 0.6);
  --aa-focus: #F08A4B;
  --aa-photo-overlay: radial-gradient(ellipse at 50% 45%, transparent 45%, rgba(15, 23, 42, 0.5) 100%);
  --aa-ambient: radial-gradient(70rem 50rem at 110% -10%, rgba(42, 90, 143, 0.22), transparent 60%), radial-gradient(60rem 40rem at -10% 110%, rgba(27, 67, 36, 0.2), transparent 60%);
  --aa-shadow-s: 0 1px 2px rgba(0, 0, 0, 0.3);
  --aa-shadow-m: 0 20px 44px -24px rgba(0, 0, 0, 0.6);
  --aa-shadow-l: 0 32px 72px -30px rgba(0, 0, 0, 0.75);
}

/* Contextos con fondo degradado (hero, secciones destacadas, footer, tarjetas de datos clave).
   Texto blanco sobre azules grisáceos; los componentes internos se adaptan solos. */
.aa-section--deep,
.aa-hero,
.aa-footer,
.aa-widget--deep,
.aa-pillars > .aa-pillar:first-child,
.aa-stats > .aa-stat:first-child {
  --aa-bg: var(--aa-deep);
  --aa-text: var(--aa-on-deep);
  --aa-heading: var(--aa-on-deep);
  --aa-text-muted: var(--aa-on-deep-muted);
  --aa-border: rgba(255, 255, 255, 0.14);
  --aa-border-strong: rgba(255, 255, 255, 0.3);
  --aa-surface: rgba(255, 255, 255, 0.06);
  --aa-surface-alt: rgba(255, 255, 255, 0.1);
  --aa-glass: rgba(255, 255, 255, 0.12);
  --aa-glass-surface: rgba(255, 255, 255, 0.06);
  --aa-glass-border: rgba(255, 255, 255, 0.14);
  --aa-primary: #A9C9EE;
  --aa-primary-hover: #CFE0F5;
  --aa-on-primary: #0A2342;
  --aa-primary-soft: rgba(255, 255, 255, 0.1);
  --aa-primary-ink: #CFE0F5;
  --aa-secondary: #8FD19E;
  --aa-secondary-soft: rgba(143, 209, 158, 0.16);
  --aa-secondary-ink: #A8DDB3;
  --aa-accent-soft: rgba(208, 94, 26, 0.24);
  --aa-accent-ink: #F6B183;
  --aa-link: #E2ECF8;
  --aa-link-hover: #F6B183;
  --aa-contour: rgba(255, 255, 255, 0.07);
  background: var(--aa-gradient);
  color: var(--aa-on-deep);
}

/* 03 · BASE ============================================================== */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--aa-header-h) + 1rem);
  interpolate-size: allow-keywords;
}
body {
  margin: 0;
  background-color: var(--aa-bg);
  background-image: var(--aa-ambient);
  background-attachment: fixed;
  color: var(--aa-text);
  font-family: var(--aa-font);
  font-size: var(--aa-text-m);
  font-weight: 400;
  line-height: var(--aa-leading);
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  transition: background-color var(--aa-duration) ease, color var(--aa-duration) ease;
}
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-family: var(--aa-font-heading);
  color: var(--aa-heading);
  font-weight: 700;
  line-height: var(--aa-leading-tight);
  letter-spacing: var(--aa-tracking-tight);
  text-wrap: balance;
}
h1 { font-size: var(--aa-text-4xl); font-weight: 800; letter-spacing: -0.03em; }
h2 { font-size: var(--aa-text-3xl); }
h3 { font-size: var(--aa-text-xl); font-weight: 650; line-height: var(--aa-leading-snug); letter-spacing: -0.015em; }
h4 { font-size: var(--aa-text-l); font-weight: 650; line-height: var(--aa-leading-snug); letter-spacing: -0.01em; }
h5, h6 { font-size: var(--aa-text-m); letter-spacing: 0; }
p { margin: 0; text-wrap: pretty; }
a {
  color: var(--aa-link);
  text-decoration-thickness: from-font;
  text-underline-offset: 0.2em;
  transition: color var(--aa-duration-fast) ease;
}
a:hover { color: var(--aa-link-hover); }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
figure { margin: 0; }
address { font-style: normal; }
mark { background: var(--aa-accent-soft); color: inherit; padding: 0 0.15em; border-radius: 0.2em; }
hr { border: 0; border-top: 1px solid var(--aa-border); margin: var(--aa-space-l) 0; }
::selection { background: var(--aa-accent); color: var(--aa-on-accent); }
:focus-visible { outline: 3px solid var(--aa-focus); outline-offset: 3px; border-radius: 4px; }
button, input, select, textarea { font: inherit; color: inherit; }

/* 04 · LAYOUT ============================================================ */
.aa-section {
  position: relative;
  width: 100%;
  padding-block: var(--aa-section-space);
  padding-inline: var(--aa-gutter);
}
.aa-section--alt { background-color: var(--aa-surface-alt); }
.aa-section--deep { width: auto; margin-inline: var(--aa-hero-inset); border-radius: var(--aa-radius-xl); }
.aa-section--tight { padding-block: var(--aa-space-xl); }
.aa-section--flush-top { padding-top: 0; }
.aa-hero + .aa-section--flush-top { padding-top: var(--aa-space-xl); }
.aa-section--flush-bottom { padding-bottom: 0; }

.aa-container {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--aa-space-xl);
  width: 100%;
  max-width: var(--aa-container);
  margin-inline: auto;
}
.aa-container--narrow { max-width: var(--aa-container-narrow); }
.aa-container--wide { max-width: var(--aa-container-wide); }
.aa-container--tight { gap: var(--aa-space-l); }

.aa-grid {
  display: grid;
  gap: var(--aa-bento-gap);
  grid-template-columns: minmax(0, 1fr);
}
.aa-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--aa-space-s); }
.aa-grid--auto { grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }
@media (min-width: 768px) {
  .aa-grid--2, .aa-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aa-grid--4 { gap: var(--aa-space-m); }
}
@media (min-width: 992px) {
  .aa-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .aa-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Carrusel horizontal tipo app en móvil → grilla en tablet/escritorio */
.aa-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(84%, 21rem);
  gap: var(--aa-space-s);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--aa-gutter);
  margin-inline: calc(var(--aa-gutter) * -1);
  padding: 0.25rem var(--aa-gutter) 0.75rem;
  scrollbar-width: none;
}
.aa-rail::-webkit-scrollbar { display: none; }
.aa-rail > * { scroll-snap-align: start; }
@media (min-width: 768px) {
  .aa-rail {
    grid-auto-flow: row;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--aa-space-m);
    overflow: visible;
    margin-inline: 0;
    padding: 0;
  }
}
@media (min-width: 992px) {
  .aa-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .aa-rail--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.aa-split { display: grid; gap: var(--aa-space-l); }
@media (min-width: 992px) {
  .aa-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--aa-space-2xl); align-items: center; }
  .aa-split--top { align-items: start; }
  .aa-split--wide-right { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }
}

/* Listado con barra lateral */
.aa-layout { display: grid; gap: var(--aa-space-xl); }
.aa-layout__main { display: flex; flex-direction: column; gap: var(--aa-space-m); min-width: 0; }
@media (min-width: 992px) {
  .aa-layout { grid-template-columns: minmax(0, 1fr) 20rem; gap: var(--aa-space-xl); align-items: start; }
}

.aa-stack { display: flex; flex-direction: column; gap: var(--aa-space-s); }
.aa-stack--s { gap: var(--aa-space-2xs); }
.aa-stack--l { gap: var(--aa-space-l); }
.aa-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aa-space-xs); }
.aa-cluster--center { justify-content: center; }

/* 05 · TIPOGRAFÍA ======================================================== */
.aa-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.65em;
  font-size: var(--aa-text-xs);
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: var(--aa-tracking-wide);
  text-transform: uppercase;
  color: var(--aa-primary-ink);
}
.aa-eyebrow::before {
  content: "";
  width: 1.75em;
  height: 2px;
  border-radius: 2px;
  background: var(--aa-accent);
  flex: none;
}
.aa-lead { font-size: var(--aa-text-l); line-height: 1.55; color: var(--aa-text-muted); max-width: 40em; }
.aa-heading--display { font-family: var(--aa-font-heading); font-size: var(--aa-text-5xl); font-weight: 800; letter-spacing: -0.035em; line-height: 1.02; }
.aa-heading--xl { font-size: var(--aa-text-4xl); }
.aa-heading--l { font-size: var(--aa-text-3xl); }
.aa-heading--m { font-size: var(--aa-text-2xl); }
.aa-heading--s { font-size: var(--aa-text-xl); }
.aa-text-muted { color: var(--aa-text-muted); }
.aa-text-small { font-size: var(--aa-text-s); }

.aa-section-head { display: flex; flex-direction: column; align-items: flex-start; gap: var(--aa-space-xs); max-width: 46rem; }
.aa-section-head--center { align-items: center; text-align: center; margin-inline: auto; }
.aa-section-head--split { max-width: none; flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--aa-space-s) var(--aa-space-l); }
.aa-section-head__group { display: flex; flex-direction: column; align-items: flex-start; gap: var(--aa-space-xs); max-width: 46rem; }
.aa-section-head__title { font-size: var(--aa-text-3xl); }
.aa-section-head__lead { font-size: var(--aa-text-l); line-height: 1.55; color: var(--aa-text-muted); }

.aa-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  font-size: var(--aa-text-s);
  font-weight: 650;
  color: var(--aa-primary-ink);
  text-decoration: none;
  white-space: nowrap;
}
.aa-link-arrow__icon { transition: transform var(--aa-duration) var(--aa-ease); }
.aa-link-arrow:hover .aa-link-arrow__icon { transform: translateX(4px); }

.aa-list { display: grid; gap: 0.7rem; margin: 0; padding: 0; list-style: none; }
.aa-list__item { position: relative; padding-left: 1.6rem; }
.aa-list__item::before {
  content: "";
  position: absolute;
  left: 0.2rem;
  top: 0.62em;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 1px;
  background: var(--aa-secondary);
  transform: rotate(45deg);
}

/* 06 · BOTONES, BADGES Y CHIPS =========================================== */
.aa-btn {
  --_bg: var(--aa-accent);
  --_fg: var(--aa-on-accent);
  --_bd: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6em;
  min-height: 3rem;
  padding: 0.8em 1.4em;
  border: 1.5px solid var(--_bd);
  border-radius: var(--aa-radius-pill);
  background-color: var(--_bg);
  color: var(--_fg);
  font-family: var(--aa-font);
  font-size: var(--aa-text-s);
  font-weight: 650;
  line-height: 1.1;
  letter-spacing: -0.005em;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--aa-duration-fast) ease, color var(--aa-duration-fast) ease, border-color var(--aa-duration-fast) ease, transform var(--aa-duration) var(--aa-ease), box-shadow var(--aa-duration) var(--aa-ease);
}
.aa-btn:hover { --_bg: var(--aa-accent-hover); color: var(--_fg); transform: translateY(-2px); box-shadow: var(--aa-shadow-m); }
.aa-btn:active { transform: translateY(0) scale(0.98); box-shadow: none; }
.aa-btn__icon { display: inline-block; transition: transform var(--aa-duration) var(--aa-ease); }
.aa-btn:hover .aa-btn__icon { transform: translateX(4px); }
.aa-btn--secondary { --_bg: transparent; --_fg: var(--aa-text); --_bd: var(--aa-border-strong); }
.aa-btn--secondary:hover { --_bg: var(--aa-primary); --_fg: var(--aa-on-primary); --_bd: var(--aa-primary); }
.aa-btn--accent { --_bg: var(--aa-accent); --_fg: var(--aa-on-accent); }
.aa-btn--accent:hover { --_bg: var(--aa-accent-hover); }
.aa-btn--primary { --_bg: var(--aa-primary); --_fg: var(--aa-on-primary); }
.aa-btn--primary:hover { --_bg: var(--aa-primary-hover); }
.aa-btn--inverse { --_bg: var(--aa-inverse-bg); --_fg: var(--aa-inverse-fg); }
.aa-btn--inverse:hover { --_bg: var(--aa-inverse-bg); --_fg: var(--aa-accent-ink); }
.aa-btn--outline-inverse { --_bg: transparent; --_fg: var(--aa-inverse-bg); --_bd: color-mix(in srgb, var(--aa-inverse-bg) 45%, transparent); }
.aa-btn--outline-inverse:hover { --_bg: var(--aa-inverse-bg); --_fg: var(--aa-inverse-fg); --_bd: var(--aa-inverse-bg); }
.aa-btn--ghost { --_bg: transparent; --_fg: var(--aa-primary-ink); min-height: auto; padding: 0.4em 0; }
.aa-btn--ghost:hover { --_bg: transparent; box-shadow: none; transform: none; }
.aa-btn--sm { min-height: 2.5rem; padding: 0.55em 1.1em; font-size: var(--aa-text-xs); }
.aa-btn--lg { min-height: 3.5rem; padding: 1em 1.75em; font-size: var(--aa-text-m); }
.aa-btn--block { width: 100%; }

.aa-icon {
  width: 1.35rem;
  height: 1.35rem;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* Íconos: Font Awesome Free 6 (Solid). Reemplaza los SVG en línea desde v2.1.0.
   La librería la carga el plugin del sistema de diseño (autoalojada). */
:where(i.aa-icon) { display: inline-grid; place-items: center; font-size: 1.1rem; line-height: 1; stroke: none; }
.aa-icon-btn i.aa-icon { font-size: 1rem; }
.aa-appbar__link i.aa-icon { font-size: 1.15rem; }
.aa-filters__search i.aa-icon { font-size: 0.95rem; top: 50%; transform: translateY(-50%); }
.aa-empty__icon i.aa-icon { font-size: 1.5rem; }
.aa-link-arrow__icon .fa-arrow-right,
.aa-slider__hint .fa-arrow-right,
.aa-pagination__link .fa-arrow-right { font-size: 0.85em; }
.aa-icon-btn {
  display: inline-grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  flex: none;
  border: 1px solid var(--aa-border);
  border-radius: 50%;
  background: var(--aa-surface);
  color: var(--aa-text);
  text-decoration: none;
  cursor: pointer;
  transition: border-color var(--aa-duration-fast), background-color var(--aa-duration-fast), transform var(--aa-duration) var(--aa-ease);
}
.aa-icon-btn:hover { border-color: var(--aa-text); color: var(--aa-text); }
.aa-icon-btn:active { transform: scale(0.92); }
.aa-icon-btn .aa-icon { width: 1.2rem; height: 1.2rem; }

.aa-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  padding: 0.32em 0.75em;
  border-radius: var(--aa-radius-pill);
  background: var(--aa-primary-soft);
  color: var(--aa-primary-ink);
  font-size: var(--aa-text-xs);
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}
a.aa-badge:hover { background: var(--aa-primary); color: var(--aa-on-primary); }
.aa-badge--accent { background: var(--aa-accent-soft); color: var(--aa-accent-ink); }
.aa-badge--outline { background: transparent; border: 1px solid var(--aa-border-strong); color: var(--aa-text-muted); }
.aa-badge--glass { background: var(--aa-glass); color: var(--aa-text); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.aa-badge--live::before {
  content: "";
  width: 0.5em;
  height: 0.5em;
  border-radius: 50%;
  background: var(--aa-secondary);
  box-shadow: 0 0 0 0 var(--aa-secondary);
  animation: aa-pulse 2s ease-out infinite;
}
.aa-badge--success { background: var(--aa-secondary-soft); color: var(--aa-secondary-ink); }
.aa-badge--done::before { content: ""; width: 0.5em; height: 0.5em; border-radius: 50%; background: var(--aa-text-muted); }

.aa-chip {
  display: inline-flex;
  align-items: center;
  min-height: 2.5rem;
  padding: 0.5em 1.05em;
  border: 1px solid var(--aa-border);
  border-radius: var(--aa-radius-pill);
  background: var(--aa-surface);
  color: var(--aa-text);
  font-size: var(--aa-text-s);
  font-weight: 550;
  line-height: 1.1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--aa-duration-fast), border-color var(--aa-duration-fast), color var(--aa-duration-fast);
}
.aa-chip:hover { border-color: var(--aa-text); color: var(--aa-text); }
.aa-chip--active,
.aa-chip[aria-current] { background: var(--aa-primary); border-color: var(--aa-primary); color: var(--aa-on-primary); }
.aa-chip--active:hover,
.aa-chip[aria-current]:hover { color: var(--aa-on-primary); }

/* 07 · HEADER ============================================================ */
/* Bricks envuelve la plantilla Header en <header id="brx-header"> */
#brx-header { position: sticky; top: 0; z-index: var(--aa-z-header); }
.aa-header {
  padding-inline: var(--aa-gutter);
  background: var(--aa-glass);
  -webkit-backdrop-filter: saturate(1.6) blur(16px);
  backdrop-filter: saturate(1.6) blur(16px);
  border-bottom: 1px solid transparent;
  transition: background-color var(--aa-duration) ease;
}
.aa-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--aa-space-s);
  width: 100%;
  max-width: var(--aa-container-wide);
  min-height: var(--aa-header-h);
  margin-inline: auto;
}
.aa-header__nav { display: none; }
.aa-header__list {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  margin: 0;
  padding: 0.3rem;
  list-style: none;
  border-radius: var(--aa-radius-pill);
  background: var(--aa-surface-alt);
}
.aa-header__link {
  display: block;
  padding: 0.55rem 1rem;
  border-radius: var(--aa-radius-pill);
  color: var(--aa-text);
  font-size: var(--aa-text-s);
  font-weight: 550;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color var(--aa-duration-fast), color var(--aa-duration-fast);
}
.aa-header__link:hover { background: var(--aa-surface); color: var(--aa-text); }
.aa-header__link[aria-current="page"] { background: var(--aa-primary); color: var(--aa-on-primary); }
.aa-header__actions { display: flex; align-items: center; gap: 0.5rem; }
.aa-header__cta { display: none; }
@media (min-width: 768px) { .aa-header__cta { display: inline-flex; } }
@media (min-width: 992px) { .aa-header__nav { display: block; } }
@media (min-width: 992px) and (max-width: 1199px) {
  .aa-header__link { padding-inline: 0.7rem; }
  .aa-logo__tag { display: none; }
}

.aa-logo { display: inline-flex; align-items: center; gap: 0.7rem; color: var(--aa-text); text-decoration: none; }
.aa-logo:hover { color: var(--aa-text); }
.aa-logo__mark {
  position: relative;
  width: 2.5rem;
  height: 2.5rem;
  flex: none;
  overflow: hidden;
  border-radius: 0.85rem 0.55rem 0.85rem 0.55rem;
  background: var(--aa-logo-bg);
}
.aa-logo__mark::before {
  content: "";
  position: absolute;
  inset: 34% 0 0;
  background: var(--aa-accent);
  clip-path: polygon(0 100%, 30% 32%, 50% 64%, 72% 8%, 100% 100%);
}
.aa-logo__mark::after {
  content: "";
  position: absolute;
  top: 20%;
  left: 20%;
  width: 22%;
  height: 22%;
  border-radius: 50%;
  background: #FFFFFF;
}
.aa-logo__text { display: flex; flex-direction: column; line-height: 1.05; }
.aa-logo__tag { font-size: 0.66rem; font-weight: 650; letter-spacing: 0.16em; text-transform: uppercase; color: var(--aa-text-muted); }
.aa-logo__name { font-family: var(--aa-font-heading); font-size: 1.06rem; font-weight: 800; letter-spacing: -0.02em; color: var(--aa-heading); }

/* Modo claro muestra la luna (pasar a oscuro); modo oscuro muestra el sol */
.aa-theme-toggle__sun { display: none; }
[data-theme="dark"] .aa-theme-toggle__moon { display: none; }
[data-theme="dark"] .aa-theme-toggle__sun { display: block; }

/* 08 · MENÚ APP (MÓVIL) ================================================== */
.aa-appbar {
  position: fixed;
  left: 0.75rem;
  right: 0.75rem;
  bottom: calc(0.75rem + env(safe-area-inset-bottom));
  z-index: var(--aa-z-appbar);
  max-width: 30rem;
  margin-inline: auto;
  border: 1px solid var(--aa-border);
  border-radius: 1.6rem;
  background: var(--aa-glass);
  -webkit-backdrop-filter: saturate(1.6) blur(16px);
  backdrop-filter: saturate(1.6) blur(16px);
  box-shadow: var(--aa-shadow-l);
}
.aa-appbar__list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.15rem;
  margin: 0;
  padding: 0.35rem;
  list-style: none;
}
.aa-appbar__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  width: 100%;
  min-height: 3.35rem;
  padding: 0.4rem 0.2rem;
  border: 0;
  border-radius: 1.2rem;
  background: none;
  color: var(--aa-text-muted);
  font-family: var(--aa-font);
  font-size: 0.64rem;
  font-weight: 650;
  line-height: 1.1;
  letter-spacing: -0.01em;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color var(--aa-duration-fast), color var(--aa-duration-fast), transform var(--aa-duration) var(--aa-ease);
}
.aa-appbar__link:hover { color: var(--aa-text); }
.aa-appbar__link:active { transform: scale(0.92); }
.aa-appbar__link[aria-current="page"] { background: var(--aa-primary-soft); color: var(--aa-primary-ink); }
.aa-appbar__link .aa-icon { width: 1.4rem; height: 1.4rem; }
.aa-appbar__link { position: relative; }
.aa-appbar__link[aria-current="page"]::after { content: ""; position: absolute; top: 0.6rem; left: calc(50% + 0.5rem); width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--aa-accent); }
@media (max-width: 991px) {
  body { padding-bottom: calc(var(--aa-appbar-h) + 1.5rem + env(safe-area-inset-bottom)); }
}
@media (min-width: 992px) { .aa-appbar { display: none; } }

/* Hoja inferior (popover nativo, sin JS) */
.aa-sheet {
  position: fixed;
  inset: auto 0 0;
  width: 100%;
  max-width: 34rem;
  height: auto;
  max-height: 88dvh;
  margin: 0 auto;
  padding: 0.75rem var(--aa-gutter) calc(1.5rem + env(safe-area-inset-bottom));
  overflow: auto;
  border: 0;
  border-radius: 1.75rem 1.75rem 0 0;
  background: var(--aa-surface);
  color: var(--aa-text);
  box-shadow: 0 -24px 60px -24px oklch(0% 0 0 / 0.4);
}
.aa-sheet:not(:popover-open) { display: none; }
.aa-sheet:popover-open { animation: aa-sheet-in 0.5s var(--aa-ease-out); }
.aa-sheet::backdrop { background: var(--aa-backdrop); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.aa-sheet__handle { width: 2.75rem; height: 5px; margin: 0 auto var(--aa-space-s); border-radius: var(--aa-radius-pill); background: var(--aa-border-strong); }
.aa-sheet__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--aa-space-s); }
.aa-sheet__title { font-family: var(--aa-font-heading); font-size: var(--aa-text-xl); font-weight: 700; color: var(--aa-heading); }
.aa-sheet__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.aa-sheet__link {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0.2rem;
  min-height: 5.75rem;
  padding: var(--aa-space-s);
  border-radius: var(--aa-radius-l);
  background: var(--aa-surface-alt);
  color: var(--aa-text);
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  transition: transform var(--aa-duration) var(--aa-ease), background-color var(--aa-duration-fast);
}
.aa-sheet__link:hover { color: var(--aa-text); background: var(--aa-primary-soft); }
.aa-sheet__link:active { transform: scale(0.97); }
.aa-sheet__link[aria-current="page"] { background: var(--aa-primary-soft); color: var(--aa-primary-ink); }
.aa-sheet__hint { font-size: var(--aa-text-xs); font-weight: 400; color: var(--aa-text-muted); }
.aa-sheet__footer { display: flex; flex-direction: column; gap: 0.75rem; margin-top: var(--aa-space-m); }
.aa-sheet__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.6rem 0.6rem 0.6rem 1.1rem;
  border: 1px solid var(--aa-border);
  border-radius: var(--aa-radius-l);
  font-size: var(--aa-text-s);
  font-weight: 600;
}

/* Panel de búsqueda superior (popover) */
.aa-search-panel {
  position: fixed;
  inset: 0 0 auto;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  padding: var(--aa-space-l) var(--aa-gutter) var(--aa-space-xl);
  border: 0;
  border-radius: 0 0 var(--aa-radius-xl) var(--aa-radius-xl);
  background: var(--aa-surface);
  color: var(--aa-text);
  box-shadow: var(--aa-shadow-l);
}
.aa-search-panel:not(:popover-open) { display: none; }
.aa-search-panel:popover-open { animation: aa-drop 0.5s var(--aa-ease-out); }
.aa-search-panel::backdrop { background: var(--aa-backdrop); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.aa-search-panel__inner { display: flex; flex-direction: column; gap: var(--aa-space-s); max-width: 44rem; margin-inline: auto; }
.aa-search-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.aa-search-panel__title { font-family: var(--aa-font-heading); font-size: var(--aa-text-xl); font-weight: 700; color: var(--aa-heading); }
.aa-search-panel__suggest { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-size: var(--aa-text-s); color: var(--aa-text-muted); }

/* 09 · FOOTER ============================================================ */
.aa-footer {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-radius: var(--aa-radius-xl) var(--aa-radius-xl) 0 0;
  background: var(--aa-gradient-footer);
  padding: var(--aa-space-2xl) var(--aa-gutter) var(--aa-space-m);
}
.aa-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: repeating-radial-gradient(ellipse 120% 90% at 0% 110%, transparent 0 1.9rem, var(--aa-contour) 1.9rem calc(1.9rem + 1px));
  pointer-events: none;
}
.aa-footer__inner { display: flex; flex-direction: column; gap: var(--aa-space-xl); width: 100%; max-width: var(--aa-container); margin-inline: auto; }
.aa-footer__top { display: grid; gap: var(--aa-space-l) var(--aa-space-m); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.aa-footer__brand { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: flex-start; gap: var(--aa-space-m); }
@media (min-width: 992px) {
  .aa-footer__top { grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); }
  .aa-footer__brand { grid-column: auto; }
}
.aa-footer__claim { font-family: var(--aa-font-heading); font-size: var(--aa-text-2xl); font-weight: 600; line-height: 1.22; letter-spacing: -0.02em; max-width: 15em; }
.aa-footer__claim strong { color: var(--aa-accent-ink); font-weight: 800; }
.aa-footer__col { display: flex; flex-direction: column; gap: var(--aa-space-xs); }
.aa-footer__title { font-size: var(--aa-text-xs); font-weight: 650; letter-spacing: var(--aa-tracking-wide); text-transform: uppercase; color: var(--aa-text-muted); }
.aa-footer__list { display: grid; gap: 0.55rem; margin: 0; padding: 0; list-style: none; }
.aa-footer__link { color: var(--aa-text); text-decoration: none; }
.aa-footer__link:hover { color: var(--aa-primary-ink); }
.aa-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  padding-top: var(--aa-space-m);
  border-top: 1px solid var(--aa-border);
  font-size: var(--aa-text-xs);
  color: var(--aa-text-muted);
}
.aa-footer__coords { font-variant-numeric: tabular-nums; letter-spacing: 0.04em; }

/* 10 · HERO ============================================================== */
.aa-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: var(--aa-space-xl) var(--aa-gutter) var(--aa-space-2xl);
  background: none;
}
.aa-hero::before {
  content: "";
  position: absolute;
  inset: 0 var(--aa-hero-inset);
  z-index: -1;
  border-radius: 0 0 var(--aa-radius-xl) var(--aa-radius-xl);
  background:
    repeating-radial-gradient(ellipse 140% 90% at 95% -10%, transparent 0 1.9rem, var(--aa-contour) 1.9rem calc(1.9rem + 1px)),
    radial-gradient(55% 70% at 100% 0%, rgba(208, 94, 26, 0.16), transparent 70%),
    var(--aa-gradient);
  pointer-events: none;
}
.aa-hero__inner { display: flex; flex-direction: column; gap: var(--aa-space-l); width: 100%; max-width: var(--aa-container); margin-inline: auto; }
.aa-hero__content { display: grid; gap: var(--aa-space-m); }
.aa-hero__heading { display: flex; flex-direction: column; align-items: flex-start; gap: var(--aa-space-s); }
.aa-hero__aside { display: flex; flex-direction: column; align-items: flex-start; gap: var(--aa-space-m); }
.aa-hero__title { font-size: var(--aa-text-4xl); max-width: 20ch; }
.aa-hero__em { font-style: normal; color: var(--aa-accent-ink); background: linear-gradient(var(--aa-accent), var(--aa-accent)) no-repeat 0 94% / 0% 0.09em; animation: aa-underline 1s var(--aa-ease-out) 1s forwards; }
.aa-hero__lead { font-size: var(--aa-text-l); line-height: 1.55; color: var(--aa-text-muted); max-width: 38em; }
.aa-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.aa-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.aa-hero__media {
  position: relative;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: var(--aa-radius-organic);
  background: var(--aa-surface-alt);
}
.aa-hero__img { width: 100%; height: 100%; object-fit: cover; }
.aa-hero__caption { position: absolute; left: var(--aa-space-s); bottom: var(--aa-space-s); z-index: 1; }
/* Fotoperiodismo "Ventana a la realidad": sin bordes, overlay Fiordo radial en las esquinas */
.aa-hero__media::after,
.aa-media::after,
.aa-card__media::after,
.aa-compare__item::after,
.aa-person__media::after { content: ""; position: absolute; inset: 0; background: var(--aa-photo-overlay); pointer-events: none; }
.aa-hero--home .aa-hero__title { font-size: var(--aa-text-5xl); font-weight: 800; line-height: 1.02; letter-spacing: -0.035em; max-width: 14ch; }
@media (min-width: 768px) { .aa-hero__media { aspect-ratio: 16 / 9; } }
@media (min-width: 992px) {
  .aa-hero__media--wide { aspect-ratio: 21 / 9; }
  .aa-hero--split .aa-hero__media { aspect-ratio: 4 / 5; }
}
@media (min-width: 992px) {
  .aa-hero--home .aa-hero__content { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: end; column-gap: var(--aa-space-2xl); }
  .aa-hero--home .aa-hero__media { aspect-ratio: 21 / 9; }
  .aa-hero--split .aa-hero__inner { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: center; gap: var(--aa-space-2xl); }
}
@media (max-width: 479px) {
  .aa-hero__actions .aa-btn { flex: 1 1 100%; }
}
.aa-hero--page,
.aa-hero--archive { padding-block: var(--aa-space-l) var(--aa-space-xl); }
.aa-hero--page .aa-hero__content,
.aa-hero--archive .aa-hero__content { gap: var(--aa-space-s); justify-items: start; }

/* Portada de estudio */
.aa-cover {
  position: relative;
  justify-self: center;
  width: min(100%, 21rem);
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 0.4rem var(--aa-radius-l) var(--aa-radius-l) 0.4rem;
  background: var(--aa-surface-alt);
  box-shadow: var(--aa-shadow-l);
  transform: rotate(-2.5deg);
  transition: transform 0.6s var(--aa-ease-out);
}
.aa-cover:hover { transform: rotate(0deg) translateY(-6px); }
.aa-cover::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 7%; background: linear-gradient(90deg, oklch(0% 0 0 / 0.22), transparent); }
.aa-cover__img { width: 100%; height: 100%; object-fit: cover; }


/* 11 · BLOQUES DE CONTENIDO ============================================== */
.aa-media { position: relative; overflow: hidden; margin: 0; aspect-ratio: 16 / 10; border-radius: var(--aa-radius-organic); background: var(--aa-surface-alt); }
.aa-media--wide { aspect-ratio: 21 / 9; }
.aa-media--square { aspect-ratio: 1; }
.aa-media--portrait { aspect-ratio: 4 / 5; }
.aa-media__img { width: 100%; height: 100%; object-fit: cover; }
.aa-media__caption { margin-top: 0.6rem; font-size: var(--aa-text-xs); color: var(--aa-text-muted); }

/* Antes / Después */
.aa-compare { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--aa-space-2xs); }
.aa-compare::after {
  content: "→";
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border: 1px solid var(--aa-border);
  border-radius: 50%;
  background: var(--aa-bg);
  color: var(--aa-text);
  font-weight: 700;
  box-shadow: var(--aa-shadow-m);
  transform: translate(-50%, -50%);
}
.aa-compare__item { position: relative; overflow: hidden; margin: 0; aspect-ratio: 3 / 4; border-radius: var(--aa-radius-organic); background: var(--aa-surface-alt); }
.aa-compare__img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--aa-ease-out), filter 0.6s ease; }
.aa-compare__item:hover .aa-compare__img { transform: scale(1.04); }
.aa-compare__item--before .aa-compare__img { filter: grayscale(1) contrast(0.95); }
.aa-compare__item--before:hover .aa-compare__img { filter: grayscale(0.4); }
.aa-compare__label {
  position: absolute;
  z-index: 1;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.38rem 0.85rem;
  border-radius: var(--aa-radius-pill);
  background: var(--aa-glass);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  color: var(--aa-text);
  font-size: var(--aa-text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.aa-compare__item--after .aa-compare__label { background: var(--aa-accent); color: var(--aa-on-accent); }
@media (min-width: 768px) {
  .aa-compare { gap: var(--aa-space-m); }
  .aa-compare__item { aspect-ratio: 4 / 3; }
}

/* Pilares (confianza) */
/* Bento: el primer pilar es la tarjeta de dato clave (degradado), los otros se apilan */
.aa-pillars { display: grid; gap: var(--aa-bento-gap); }
@media (min-width: 768px) {
  .aa-pillars { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
  .aa-pillars > :first-child { grid-row: span 2; justify-content: flex-end; }
  .aa-pillars > :first-child .aa-pillar__title { font-size: var(--aa-text-3xl); }
}
.aa-pillar {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--aa-space-xs);
  padding: var(--aa-space-l);
  overflow: hidden;
  border: 1px solid var(--aa-border);
  border-radius: var(--aa-radius-xl);
  background: var(--aa-surface);
  transition: transform var(--aa-duration) var(--aa-ease), box-shadow var(--aa-duration) var(--aa-ease);
}
.aa-pillar::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, var(--aa-primary), var(--aa-accent));
  transform: scaleX(0.16);
  transform-origin: left;
  transition: transform 0.7s var(--aa-ease-out);
}
.aa-pillar:hover { transform: translateY(-4px); box-shadow: var(--aa-shadow-m); }
.aa-pillar:hover::before { transform: scaleX(1); }
.aa-pillar__index {
  margin-bottom: var(--aa-space-s);
  font-family: var(--aa-font-heading);
  font-size: var(--aa-text-3xl);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.05em;
  font-variant-numeric: tabular-nums;
  color: var(--aa-accent-ink);
}
.aa-pillar__label { font-size: var(--aa-text-xs); font-weight: 650; letter-spacing: var(--aa-tracking-wide); text-transform: uppercase; color: var(--aa-accent-ink); }
.aa-pillar__title { font-size: var(--aa-text-2xl); }
.aa-pillar__text { color: var(--aa-text-muted); }

/* Dúo Problema / Solución · El reto / La solución */
.aa-duo { display: grid; gap: var(--aa-bento-gap); }
@media (min-width: 768px) { .aa-duo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.aa-duo__col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--aa-space-s);
  padding: var(--aa-space-l);
  border: 1px solid var(--aa-border);
  border-radius: var(--aa-radius-xl);
  background: var(--aa-surface);
}
.aa-duo__col--highlight { border-color: transparent; background: var(--aa-primary-soft); }
.aa-duo__label { font-size: var(--aa-text-xs); font-weight: 700; letter-spacing: var(--aa-tracking-wide); text-transform: uppercase; color: var(--aa-accent-ink); }
.aa-duo__title { font-size: var(--aa-text-2xl); }
.aa-duo__text { color: var(--aa-text-muted); }
.aa-duo__col--highlight .aa-duo__text { color: var(--aa-text); }

/* Líneas de trabajo (lista de servicios) · Bento grid con tarjetas de vidrio */
.aa-lines { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--aa-bento-gap); margin: 0; padding: 0; list-style: none; }
.aa-lines__item {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  gap: var(--aa-space-s);
  padding: var(--aa-space-l);
  overflow: hidden;
  border: 1px solid var(--aa-glass-border);
  border-radius: var(--aa-radius-xl);
  background: var(--aa-glass-surface);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  transition: transform var(--aa-duration) var(--aa-ease), border-color var(--aa-duration);
}
.aa-lines__item::before {
  content: "";
  position: absolute;
  top: -45%;
  right: -30%;
  z-index: -1;
  width: 75%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(208, 94, 26, 0.22), transparent 65%);
  opacity: 0;
  transition: opacity 0.6s var(--aa-ease);
}
.aa-lines__item:hover { transform: translateY(-4px); border-color: var(--aa-border-strong); }
.aa-lines__item:hover::before { opacity: 1; }
.aa-lines__num { align-self: flex-start; padding: 0.3rem 0.75rem; border: 1px solid var(--aa-border); border-radius: var(--aa-radius-pill); font-family: var(--aa-font-heading); font-size: var(--aa-text-xs); font-weight: 700; font-variant-numeric: tabular-nums; color: var(--aa-accent-ink); }
.aa-lines__body { display: flex; flex-direction: column; gap: 0.5rem; }
.aa-lines__title { font-size: var(--aa-text-xl); font-weight: 700; letter-spacing: -0.02em; }
.aa-lines__link { color: inherit; text-decoration: none; }
.aa-lines__link::after { content: ""; position: absolute; inset: 0; }
.aa-lines__link:hover { color: inherit; }
.aa-lines__text { max-width: 40em; font-size: var(--aa-text-s); color: var(--aa-text-muted); }
.aa-lines__arrow {
  display: grid;
  place-items: center;
  align-self: flex-end;
  width: 3rem;
  height: 3rem;
  margin-top: auto;
  border: 1px solid var(--aa-border-strong);
  border-radius: 50%;
  color: var(--aa-text);
  transition: transform 0.5s var(--aa-ease-back), background-color var(--aa-duration-fast), color var(--aa-duration-fast), border-color var(--aa-duration-fast);
}
.aa-lines__item:hover .aa-lines__arrow { border-color: transparent; background: var(--aa-accent); color: var(--aa-on-accent); transform: rotate(-45deg); }
@media (min-width: 768px) {
  .aa-lines { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .aa-lines__item { grid-column: span 3; min-height: 15rem; }
  .aa-lines:has(> :nth-child(5)) > :nth-child(n + 3) { grid-column: span 2; }
}

/* Proyecto / iniciativa de ejemplo */
.aa-case { display: flex; flex-direction: column; gap: var(--aa-space-m); padding: var(--aa-space-l); border: 1px solid var(--aa-border); border-radius: var(--aa-radius-xl); background: var(--aa-surface); }
.aa-case__header { display: flex; flex-direction: column; align-items: flex-start; gap: 0.6rem; }
.aa-case__title { font-size: var(--aa-text-2xl); }
.aa-case__grid { display: grid; gap: var(--aa-space-xs); }
.aa-case__step { position: relative; display: flex; flex-direction: column; gap: 0.5rem; padding: var(--aa-space-m); border-radius: var(--aa-radius-l); background: var(--aa-surface-alt); }
.aa-case__step--result { background: var(--aa-primary); color: var(--aa-on-primary); }
.aa-case__label { font-size: var(--aa-text-xs); font-weight: 700; letter-spacing: var(--aa-tracking-wide); text-transform: uppercase; color: var(--aa-accent-ink); }
.aa-case__step--result .aa-case__label { color: inherit; }
.aa-case__text { font-size: var(--aa-text-s); }
.aa-case > .aa-btn { align-self: flex-start; }
@media (min-width: 768px) {
  .aa-case__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .aa-case__step:not(:last-child)::after {
    content: "→";
    position: absolute;
    top: 50%;
    right: -1.15rem;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 1.6rem;
    height: 1.6rem;
    border: 1px solid var(--aa-border);
    border-radius: 50%;
    background: var(--aa-surface);
    color: var(--aa-text);
    font-size: 0.8rem;
    transform: translateY(-50%);
  }
}

/* Cifras / hallazgos */
.aa-stats { display: grid; gap: var(--aa-bento-gap); }
@media (min-width: 768px) { .aa-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.aa-stat { display: flex; flex-direction: column; gap: 0.5rem; padding: var(--aa-space-l); border: 1px solid var(--aa-border); border-radius: var(--aa-radius-xl); background: var(--aa-surface); }
.aa-stat__value { font-family: var(--aa-font-heading); font-size: var(--aa-text-4xl); font-weight: 800; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: var(--aa-primary-ink); }
.aa-stat__title { font-size: var(--aa-text-l); }
.aa-stat__text { font-size: var(--aa-text-s); color: var(--aa-text-muted); }

/* Resultados (filas) */
.aa-results { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--aa-border); }
.aa-results__item { display: grid; gap: 0.4rem var(--aa-space-m); padding-block: var(--aa-space-m); border-top: 1px solid var(--aa-border); }
.aa-results__value { font-family: var(--aa-font-heading); font-size: var(--aa-text-3xl); font-weight: 800; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: var(--aa-accent-ink); }
.aa-results__title { font-size: var(--aa-text-l); }
.aa-results__text { color: var(--aa-text-muted); font-size: var(--aa-text-s); }
@media (min-width: 768px) {
  .aa-results__item { grid-template-columns: 11rem minmax(0, 1fr); align-items: baseline; }
  .aa-results__body { display: flex; flex-direction: column; gap: 0.3rem; }
}

/* Ficha técnica */
.aa-factsheet { margin: 0; border-top: 1px solid var(--aa-border); }
.aa-factsheet__row { display: grid; gap: 0.2rem var(--aa-space-m); padding-block: var(--aa-space-s); border-bottom: 1px solid var(--aa-border); }
.aa-factsheet__term { font-size: var(--aa-text-xs); font-weight: 650; letter-spacing: var(--aa-tracking-wide); text-transform: uppercase; color: var(--aa-text-muted); }
.aa-factsheet__value { margin: 0; font-weight: 500; }
@media (min-width: 768px) { .aa-factsheet__row { grid-template-columns: 13rem minmax(0, 1fr); align-items: baseline; } }

/* Testimonios + slider (scroll-snap nativo) */
.aa-slider { position: relative; }
.aa-slider__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  gap: var(--aa-space-s);
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  scroll-marker-group: after;
}
.aa-slider__track::-webkit-scrollbar { display: none; }
.aa-slider__track::scroll-marker-group { display: flex; justify-content: center; gap: 0.5rem; margin-top: var(--aa-space-m); }
.aa-slider__slide { scroll-snap-align: start; }
.aa-slider__slide::scroll-marker { content: ""; width: 0.6rem; height: 0.6rem; border-radius: var(--aa-radius-pill); background: var(--aa-border-strong); transition: width var(--aa-duration) var(--aa-ease); }
.aa-slider__slide::scroll-marker:target-current { width: 1.75rem; background: var(--aa-primary); }
.aa-slider__hint { font-size: var(--aa-text-xs); color: var(--aa-text-muted); text-align: center; }
@media (min-width: 768px) { .aa-slider__track { grid-auto-columns: calc(50% - var(--aa-space-s) / 2); } }
@media (min-width: 768px) { .aa-slider__hint { display: none; } }

.aa-testimonial {
  display: flex;
  flex-direction: column;
  gap: var(--aa-space-l);
  height: 100%;
  margin: 0;
  padding: var(--aa-space-l);
  border: 1px solid var(--aa-border);
  border-radius: var(--aa-radius-xl);
  background: var(--aa-surface);
}
.aa-testimonial__quote { position: relative; margin: 0; padding-top: 2.4rem; font-size: var(--aa-text-xl); font-weight: 500; line-height: 1.38; letter-spacing: -0.02em; }
.aa-testimonial__quote::before { content: "“"; position: absolute; top: -0.25em; left: -0.04em; font-size: 4.5rem; font-weight: 800; line-height: 1; color: var(--aa-accent); }
.aa-testimonial__author { display: flex; align-items: center; gap: 0.9rem; margin-top: auto; }
.aa-testimonial__avatar { width: 3.25rem; height: 3.25rem; flex: none; border-radius: 50%; object-fit: cover; }
.aa-testimonial__info { display: flex; flex-direction: column; gap: 0.1rem; }
.aa-testimonial__name { font-size: var(--aa-text-s); font-style: normal; font-weight: 650; }
.aa-testimonial__role { font-size: var(--aa-text-xs); color: var(--aa-text-muted); }
.aa-testimonial--feature .aa-testimonial__quote { font-size: var(--aa-text-2xl); }

/* Preguntas frecuentes (details/summary nativo) */
.aa-faq { display: flex; flex-direction: column; border-top: 1px solid var(--aa-border); }
.aa-faq__item { border-bottom: 1px solid var(--aa-border); }
.aa-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--aa-space-s);
  padding-block: var(--aa-space-m);
  list-style: none;
  font-size: var(--aa-text-l);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -0.015em;
  cursor: pointer;
  transition: color var(--aa-duration-fast);
}
.aa-faq__question::-webkit-details-marker { display: none; }
.aa-faq__question:hover { color: var(--aa-primary-ink); }
.aa-faq__icon { position: relative; flex: none; width: 2.25rem; height: 2.25rem; border: 1px solid var(--aa-border); border-radius: 50%; transition: background-color var(--aa-duration), color var(--aa-duration); }
.aa-faq__icon::before,
.aa-faq__icon::after { content: ""; position: absolute; top: 50%; left: 50%; width: 0.8rem; height: 1.5px; border-radius: 2px; background: currentColor; translate: -50% -50%; }
.aa-faq__icon::after { rotate: 90deg; transition: rotate 0.45s var(--aa-ease-out); }
.aa-faq__item[open] .aa-faq__icon { border-color: transparent; background: var(--aa-primary); color: var(--aa-on-primary); }
.aa-faq__item[open] .aa-faq__icon::after { rotate: 0deg; }
.aa-faq__answer { max-width: 46em; padding-bottom: var(--aa-space-m); color: var(--aa-text-muted); }
.aa-faq__item::details-content { block-size: 0; overflow: clip; transition: block-size 0.45s var(--aa-ease-out), content-visibility 0.45s allow-discrete; }
.aa-faq__item[open]::details-content { block-size: auto; }
@media (min-width: 992px) {
  .aa-faq-layout { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr); gap: var(--aa-space-2xl); align-items: start; }
  .aa-faq-layout > .aa-section-head { position: sticky; top: calc(var(--aa-header-h) + 2rem); }
}
.aa-faq-layout { display: grid; gap: var(--aa-space-l); }

/* Llamado a la acción emocional */
.aa-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--aa-space-m);
  padding: var(--aa-space-2xl) var(--aa-space-l);
  border-radius: var(--aa-radius-organic);
  background: var(--aa-cta-bg);
  color: var(--aa-on-cta);
}
.aa-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: repeating-radial-gradient(ellipse 120% 100% at 110% 120%, transparent 0 1.6rem, color-mix(in srgb, var(--aa-on-cta) 14%, transparent) 1.6rem calc(1.6rem + 1px));
}
.aa-cta::after {
  content: "";
  position: absolute;
  inset: -30%;
  z-index: -1;
  background: radial-gradient(circle at 75% 25%, color-mix(in oklch, var(--aa-accent) 45%, transparent), transparent 35%);
  animation: aa-drift 16s ease-in-out infinite alternate;
}
.aa-cta .aa-eyebrow { color: inherit; }
.aa-cta__title { max-width: 18ch; font-family: var(--aa-font-heading); font-size: var(--aa-text-4xl); font-weight: 800; line-height: 1.06; letter-spacing: -0.03em; text-wrap: balance; }
.aa-cta__text { max-width: 36em; font-size: var(--aa-text-l); line-height: 1.55; }
.aa-cta__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.aa-cta .aa-btn--inverse { --_bg: var(--aa-accent); --_fg: var(--aa-on-accent); }
.aa-cta .aa-btn--inverse:hover { --_bg: var(--aa-accent-hover); --_fg: var(--aa-on-accent); }
.aa-cta .aa-btn--outline-inverse { --_fg: var(--aa-on-cta); --_bd: color-mix(in srgb, var(--aa-on-cta) 45%, transparent); }
.aa-cta .aa-btn--outline-inverse:hover { --_bg: var(--aa-on-cta); --_fg: var(--aa-cta-ink); --_bd: var(--aa-on-cta); }
@media (min-width: 768px) { .aa-cta { padding: var(--aa-space-2xl); } }

/* Equipo */
.aa-person { display: flex; flex-direction: column; gap: 0.3rem; margin: 0; }
.aa-person__media { position: relative; overflow: hidden; margin-bottom: var(--aa-space-2xs); aspect-ratio: 4 / 5; border-radius: var(--aa-radius-organic); background: var(--aa-surface-alt); }
.aa-person__img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.35); transition: transform 0.8s var(--aa-ease-out), filter 0.5s; }
.aa-person:hover .aa-person__img { filter: none; transform: scale(1.04); }
.aa-person__name { font-size: var(--aa-text-l); }
.aa-person__role { font-size: var(--aa-text-s); color: var(--aa-text-muted); }

/* Gráfico de barras · Data storytelling "Infografía de fluidez"
   <ul class="aa-bars">
     <li class="aa-bars__item" style="--value: 72%"><span class="aa-bars__label">Turismo</span><span class="aa-bars__track"><span class="aa-bars__fill"></span></span><span class="aa-bars__value">72%</span></li>
     <li class="aa-bars__item aa-bars__item--highlight" style="--value: 91%">…punto crítico en Cobre Patagón…</li>
   </ul> */
.aa-bars { display: grid; gap: var(--aa-space-s); margin: 0; padding: 0; list-style: none; }
.aa-bars__item { display: grid; grid-template-columns: minmax(0, 9rem) minmax(0, 1fr) 3.5rem; align-items: center; gap: var(--aa-space-xs); font-size: var(--aa-text-s); }
.aa-bars__label { color: var(--aa-text-muted); }
.aa-bars__track { height: 0.75rem; overflow: hidden; border-radius: 0.3rem; background: var(--aa-surface-alt); }
.aa-bars__fill { display: block; width: var(--value, 50%); height: 100%; border-radius: inherit; background: var(--aa-primary); transform-origin: left center; }
.aa-bars__item--highlight .aa-bars__fill { background: var(--aa-accent); }
.aa-bars__item--secondary .aa-bars__fill { background: var(--aa-secondary); }
.aa-bars__value { font-family: var(--aa-font-heading); font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; color: var(--aa-heading); }

/* 12 · TARJETAS ========================================================== */
.aa-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--aa-border);
  border-radius: var(--aa-radius-l);
  background: var(--aa-surface);
  transition: transform var(--aa-duration) var(--aa-ease), box-shadow var(--aa-duration) var(--aa-ease), border-color var(--aa-duration);
}
.aa-card:hover { transform: translateY(-4px); border-color: var(--aa-border-strong); box-shadow: var(--aa-shadow-m); }
.aa-card__media { position: relative; overflow: hidden; margin: 0; aspect-ratio: 16 / 10; background: var(--aa-surface-alt); }
.aa-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--aa-ease-out); }
.aa-card:hover .aa-card__img { transform: scale(1.05); }
.aa-card__flag { position: absolute; top: 0.75rem; left: 0.75rem; z-index: 1; }
.aa-card__body { display: flex; flex: 1; flex-direction: column; gap: var(--aa-space-2xs); padding: var(--aa-space-m); }
.aa-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.75rem; font-size: var(--aa-text-xs); color: var(--aa-text-muted); }
.aa-card__meta .aa-badge { position: relative; z-index: 1; }
.aa-card__title { font-size: var(--aa-text-l); font-weight: 650; line-height: 1.28; letter-spacing: -0.018em; }
.aa-card__link { color: var(--aa-heading); text-decoration: none; background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0 1px; transition: background-size 0.45s var(--aa-ease); }
.aa-card__link::after { content: ""; position: absolute; inset: 0; }
.aa-card__link:hover,
.aa-card:hover .aa-card__link { color: var(--aa-heading); background-size: 100% 1px; }
.aa-card__excerpt { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; font-size: var(--aa-text-s); color: var(--aa-text-muted); }
.aa-card__specs { display: flex; flex-wrap: wrap; gap: 0.35rem 0.9rem; margin: 0; padding: 0; list-style: none; font-size: var(--aa-text-xs); font-weight: 550; color: var(--aa-text-muted); }
.aa-card__spec { display: inline-flex; align-items: center; gap: 0.35rem; }
.aa-card__spec + .aa-card__spec::before { content: ""; width: 3px; height: 3px; margin-right: 0.55rem; border-radius: 50%; background: currentColor; }
.aa-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-top: auto; padding-top: var(--aa-space-xs); border-top: 1px solid var(--aa-border); font-size: var(--aa-text-xs); color: var(--aa-text-muted); }
.aa-card__body > .aa-card__footer { margin-top: auto; }
.aa-card__excerpt + .aa-card__footer,
.aa-card__specs + .aa-card__footer { margin-top: auto; }
.aa-card__author { font-weight: 600; color: var(--aa-text); }
@media (min-width: 768px) {
  .aa-card--featured { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .aa-card--featured .aa-card__media { height: 100%; min-height: 20rem; aspect-ratio: auto; }
  .aa-card--featured .aa-card__body { justify-content: center; gap: var(--aa-space-xs); padding: var(--aa-space-l); }
  .aa-card--featured .aa-card__title { font-size: var(--aa-text-2xl); letter-spacing: -0.03em; }
  .aa-card--featured .aa-card__excerpt { -webkit-line-clamp: 4; font-size: var(--aa-text-m); }
}
.aa-card--study .aa-card__media { aspect-ratio: 4 / 3; }
.aa-card--compact { flex-direction: row; align-items: center; gap: var(--aa-space-xs); padding: 0.5rem; border: 0; border-radius: var(--aa-radius-m); background: transparent; }
.aa-card--compact:hover { transform: none; box-shadow: none; background: var(--aa-surface-alt); }
.aa-card--compact .aa-card__media { width: 4.5rem; flex: none; aspect-ratio: 1; border-radius: var(--aa-radius-s); }
.aa-card--compact .aa-card__body { gap: 0.25rem; padding: 0; }
.aa-card--compact .aa-card__title { font-size: var(--aa-text-s); }

/* 13 · LISTADOS Y FILTROS ================================================ */
.aa-filters {
  position: sticky;
  top: var(--aa-header-h);
  z-index: 40;
  padding: var(--aa-space-xs) var(--aa-gutter);
  border-block: 1px solid var(--aa-border);
  background: var(--aa-glass);
  -webkit-backdrop-filter: saturate(1.5) blur(16px);
  backdrop-filter: saturate(1.5) blur(16px);
}
.aa-filters__form { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aa-space-xs); width: 100%; max-width: var(--aa-container); margin-inline: auto; }
.aa-filters__search { position: relative; display: flex; align-items: center; flex: 1 1 14rem; }
.aa-filters__search .aa-icon { position: absolute; left: 1rem; width: 1.1rem; height: 1.1rem; color: var(--aa-text-muted); pointer-events: none; }
.aa-filters__input {
  width: 100%;
  min-height: 2.75rem;
  padding: 0.6rem 1rem 0.6rem 2.7rem;
  border: 1px solid var(--aa-border);
  border-radius: var(--aa-radius-pill);
  background: var(--aa-surface);
  color: var(--aa-text);
  font-size: var(--aa-text-s);
  transition: border-color var(--aa-duration-fast), box-shadow var(--aa-duration-fast);
}
.aa-filters__input:focus { border-color: var(--aa-primary); box-shadow: 0 0 0 4px var(--aa-primary-soft); outline: none; }
.aa-filters__chips {
  display: flex;
  order: 3;
  flex: 1 1 100%;
  gap: 0.5rem;
  margin: 0 calc(var(--aa-gutter) * -1);
  padding: 0 var(--aa-gutter);
  overflow-x: auto;
  scrollbar-width: none;
}
.aa-filters__chips::-webkit-scrollbar { display: none; }
.aa-filters__select {
  min-height: 2.75rem;
  padding: 0 2.5rem 0 1rem;
  border: 1px solid var(--aa-border);
  border-radius: var(--aa-radius-pill);
  background-color: var(--aa-surface);
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 1.25rem) 52%, calc(100% - 0.95rem) 52%;
  background-size: 0.32rem 0.32rem;
  background-repeat: no-repeat;
  color: var(--aa-text);
  font-size: var(--aa-text-s);
  appearance: none;
  cursor: pointer;
}
@media (min-width: 992px) {
  .aa-filters__chips { order: 0; flex: 0 1 auto; flex-wrap: wrap; margin: 0; padding: 0; overflow: visible; }
  .aa-filters__search { flex: 0 1 18rem; }
  .aa-filters__select { margin-left: auto; }
}
.aa-results-count { font-size: var(--aa-text-s); color: var(--aa-text-muted); }
.aa-results-count strong { color: var(--aa-text); }

.aa-pagination { display: flex; justify-content: center; padding-top: var(--aa-space-m); }
.aa-pagination__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.aa-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  height: 2.75rem;
  padding: 0 0.9rem;
  border: 1px solid var(--aa-border);
  border-radius: var(--aa-radius-pill);
  color: var(--aa-text);
  font-size: var(--aa-text-s);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  text-decoration: none;
  transition: border-color var(--aa-duration-fast), background-color var(--aa-duration-fast), color var(--aa-duration-fast);
}
.aa-pagination__link:hover { border-color: var(--aa-text); color: var(--aa-text); }
.aa-pagination__link--current,
.aa-pagination__link[aria-current] { border-color: var(--aa-primary); background: var(--aa-primary); color: var(--aa-on-primary); }

.aa-sidebar { display: flex; flex-direction: column; gap: var(--aa-space-m); }
@media (min-width: 992px) { .aa-sidebar { position: sticky; top: calc(var(--aa-header-h) + 6rem); } }
.aa-widget { display: flex; flex-direction: column; gap: var(--aa-space-xs); padding: var(--aa-space-m); border: 1px solid var(--aa-border); border-radius: var(--aa-radius-l); background: var(--aa-surface); }
.aa-widget--deep { border-color: transparent; background: var(--aa-gradient); }
.aa-widget__title { font-size: var(--aa-text-l); }
.aa-widget__text { font-size: var(--aa-text-s); color: var(--aa-text-muted); }
.aa-widget__list { display: grid; gap: 0.25rem; margin: 0 -0.5rem; padding: 0; list-style: none; }

/* Resultados de búsqueda */
.aa-hits { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--aa-border); }
.aa-hit { position: relative; display: flex; flex-direction: column; gap: 0.45rem; padding-block: var(--aa-space-m); border-bottom: 1px solid var(--aa-border); }
.aa-hit__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; font-size: var(--aa-text-xs); color: var(--aa-text-muted); }
.aa-hit__title { font-size: var(--aa-text-xl); line-height: 1.25; }
.aa-hit__link { color: var(--aa-heading); text-decoration: none; transition: color var(--aa-duration-fast); }
.aa-hit__link::after { content: ""; position: absolute; inset: 0; }
.aa-hit:hover .aa-hit__link { color: var(--aa-primary-ink); }
.aa-hit__excerpt { max-width: 48em; font-size: var(--aa-text-s); color: var(--aa-text-muted); }
.aa-hit .aa-badge { position: relative; z-index: 1; }

.aa-empty { display: flex; flex-direction: column; align-items: center; gap: var(--aa-space-s); padding: var(--aa-space-xl) var(--aa-space-m); border: 1.5px dashed var(--aa-border-strong); border-radius: var(--aa-radius-xl); text-align: center; }
.aa-empty__icon { display: grid; place-items: center; width: 4rem; height: 4rem; border-radius: 50%; background: var(--aa-primary-soft); color: var(--aa-primary-ink); }
.aa-empty__title { font-size: var(--aa-text-xl); }
.aa-empty__text { max-width: 32em; color: var(--aa-text-muted); }

/* 14 · SINGLE ============================================================ */
.aa-progress {
  position: fixed;
  inset: 0 0 auto;
  z-index: calc(var(--aa-z-header) + 1);
  height: 3px;
  background: linear-gradient(90deg, var(--aa-primary), var(--aa-accent));
  transform: scaleX(0);
  transform-origin: 0 50%;
}
.aa-breadcrumbs__list { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin: 0; padding: 0; list-style: none; font-size: var(--aa-text-xs); color: var(--aa-text-muted); }
.aa-breadcrumbs__item { display: inline-flex; align-items: center; gap: 0.4rem; min-width: 0; }
.aa-breadcrumbs__item + .aa-breadcrumbs__item::before { content: "/"; color: var(--aa-border-strong); }
.aa-breadcrumbs__link { color: var(--aa-text-muted); text-decoration: none; }
.aa-breadcrumbs__link:hover { color: var(--aa-primary-ink); }
.aa-breadcrumbs__item[aria-current] { max-width: 26ch; overflow: hidden; color: var(--aa-text); font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }

.aa-article__header { padding: var(--aa-space-l) var(--aa-gutter) var(--aa-space-xl); }
.aa-article__intro { display: flex; flex-direction: column; align-items: flex-start; gap: var(--aa-space-s); width: 100%; max-width: var(--aa-container-narrow); margin-inline: auto; }
.aa-article__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; font-size: var(--aa-text-s); color: var(--aa-text-muted); }
.aa-article__title { font-size: var(--aa-text-4xl); letter-spacing: -0.03em; }
.aa-article__lead { font-size: var(--aa-text-xl); font-weight: 400; line-height: 1.45; letter-spacing: -0.015em; color: var(--aa-text-muted); }
.aa-article__cover { width: 100%; max-width: calc(var(--aa-container) + var(--aa-gutter) * 2); margin-inline: auto; padding-inline: var(--aa-gutter); }
.aa-article__cover-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--aa-radius-organic); }
.aa-article__cover-caption { margin-top: 0.75rem; font-size: var(--aa-text-xs); color: var(--aa-text-muted); text-align: center; }
@media (min-width: 768px) { .aa-article__cover-img { aspect-ratio: 21 / 9; } }
.aa-article__body { padding: var(--aa-space-xl) var(--aa-gutter); }
.aa-article__footer { display: flex; flex-direction: column; gap: var(--aa-space-m); width: 100%; max-width: calc(var(--aa-container-narrow) + var(--aa-gutter) * 2); margin-inline: auto; padding: 0 var(--aa-gutter) var(--aa-space-xl); }
.aa-article__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.aa-share { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; padding-block: var(--aa-space-s); border-block: 1px solid var(--aa-border); }
.aa-share__label { margin-right: auto; font-size: var(--aa-text-s); font-weight: 650; }

.aa-author { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--aa-space-s); }
.aa-author__avatar { width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; }
.aa-author__body { display: flex; flex-direction: column; gap: 0.2rem; }
.aa-author__name { font-size: var(--aa-text-l); font-weight: 650; letter-spacing: -0.015em; }
.aa-author__bio { font-size: var(--aa-text-s); color: var(--aa-text-muted); }
.aa-author--box { align-items: start; padding: var(--aa-space-m); border-radius: var(--aa-radius-l); background: var(--aa-surface-alt); }
.aa-author--inline { gap: 0.75rem; }
.aa-author--inline .aa-author__avatar { width: 2.75rem; height: 2.75rem; }
.aa-author--inline .aa-author__name { font-size: var(--aa-text-s); }
.aa-author--inline .aa-author__bio { font-size: var(--aa-text-xs); }

/* Contenido enriquecido (añadir clase aa-prose al elemento Post Content / Rich Text) */
:is(.aa-prose, .brxe-post-content) { width: 100%; max-width: 42rem; margin-inline: auto; font-size: var(--aa-text-m); line-height: 1.75; }
:is(.aa-prose, .brxe-post-content) > * + * { margin-top: 1.25em; }
:is(.aa-prose, .brxe-post-content) h2 { margin-top: 2.2em; font-size: var(--aa-text-2xl); }
:is(.aa-prose, .brxe-post-content) h3 { margin-top: 1.8em; font-size: var(--aa-text-xl); }
:is(.aa-prose, .brxe-post-content) h2 + *,
:is(.aa-prose, .brxe-post-content) h3 + * { margin-top: 0.75em; }
:is(.aa-prose, .brxe-post-content) :is(ul, ol) { padding-left: 1.3em; }
:is(.aa-prose, .brxe-post-content) li + li { margin-top: 0.5em; }
:is(.aa-prose, .brxe-post-content) li::marker { color: var(--aa-secondary); font-weight: 700; }
:is(.aa-prose, .brxe-post-content) strong { font-weight: 650; color: var(--aa-text); }
:is(.aa-prose, .brxe-post-content) a { text-decoration: underline; text-decoration-color: color-mix(in oklch, currentColor 40%, transparent); }
:is(.aa-prose, .brxe-post-content) a:hover { text-decoration-color: currentColor; }
:is(.aa-prose, .brxe-post-content) blockquote { position: relative; margin: 2em 0; padding: 2.75rem var(--aa-space-l) var(--aa-space-m); border-radius: var(--aa-radius-l); background: var(--aa-surface-alt); font-size: var(--aa-text-l); line-height: 1.55; }
:is(.aa-prose, .brxe-post-content) blockquote::before { content: "“"; position: absolute; top: 0.2rem; left: var(--aa-space-m); font-size: 3.5rem; font-weight: 800; line-height: 1; color: var(--aa-accent); }
:is(.aa-prose, .brxe-post-content) figure { margin-block: 2em; }
:is(.aa-prose, .brxe-post-content) img { border-radius: var(--aa-radius-l); }
:is(.aa-prose, .brxe-post-content) figcaption { margin-top: 0.6em; font-size: var(--aa-text-xs); color: var(--aa-text-muted); }
:is(.aa-prose, .brxe-post-content) table { width: 100%; border-collapse: collapse; font-size: var(--aa-text-s); line-height: 1.5; }
:is(.aa-prose, .brxe-post-content) :is(th, td) { padding: 0.85em 1em; border-bottom: 1px solid var(--aa-border); text-align: left; vertical-align: top; }
:is(.aa-prose, .brxe-post-content) thead th { background: var(--aa-primary-soft); color: var(--aa-primary-ink); font-weight: 650; }
:is(.aa-prose, .brxe-post-content) .wp-block-table,
.aa-table-wrap { overflow-x: auto; border: 1px solid var(--aa-border); border-radius: var(--aa-radius-l); }

/* 15 · FORMULARIOS Y BÚSQUEDA ============================================ */
.aa-form { display: grid; gap: var(--aa-space-s); }
.aa-form__row { display: grid; gap: var(--aa-space-s); }
@media (min-width: 768px) { .aa-form__row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.aa-form__field { display: flex; flex-direction: column; gap: 0.4rem; }
.aa-form__label { font-size: var(--aa-text-s); font-weight: 600; }
.aa-form__input,
.aa-form__select,
.aa-form__textarea,
.aa-form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea) {
  width: 100%;
  min-height: 3.15rem;
  padding: 0.8rem 1rem;
  border: 1.5px solid var(--aa-border);
  border-radius: var(--aa-radius-m);
  background: var(--aa-surface);
  color: var(--aa-text);
  font-family: var(--aa-font);
  font-size: var(--aa-text-m);
  line-height: 1.4;
  transition: border-color var(--aa-duration-fast), box-shadow var(--aa-duration-fast);
}
.aa-form__textarea,
.aa-form textarea { min-height: 9rem; resize: vertical; }
.aa-form__input:focus,
.aa-form__select:focus,
.aa-form__textarea:focus,
.aa-form :is(input, select, textarea):focus { border-color: var(--aa-primary); box-shadow: 0 0 0 4px var(--aa-primary-soft); outline: none; }
.aa-form ::placeholder { color: var(--aa-text-muted); opacity: 0.8; }
.aa-form__check { display: flex; align-items: flex-start; gap: 0.65rem; font-size: var(--aa-text-s); color: var(--aa-text-muted); }
.aa-form__check input { width: 1.15rem; height: 1.15rem; margin-top: 0.2em; accent-color: var(--aa-primary); }
.aa-form__note { font-size: var(--aa-text-xs); color: var(--aa-text-muted); }
.aa-form--inline { display: flex; flex-direction: column; gap: 0.5rem; }
@media (min-width: 768px) { .aa-form > .aa-btn { justify-self: start; } }

.aa-search {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  width: 100%;
  max-width: 38rem;
  padding: 0.35rem 0.35rem 0.35rem 1.1rem;
  border: 1.5px solid var(--aa-border);
  border-radius: var(--aa-radius-pill);
  background: var(--aa-surface);
  transition: border-color var(--aa-duration-fast), box-shadow var(--aa-duration-fast);
}
.aa-search:focus-within { border-color: var(--aa-primary); box-shadow: 0 0 0 4px var(--aa-primary-soft); }
.aa-search__icon { color: var(--aa-text-muted); }
.aa-search__input { flex: 1; min-width: 0; padding: 0.55rem 0.2rem; border: 0; background: transparent; color: var(--aa-text); font-size: var(--aa-text-m); outline: none; }
.aa-search__input::placeholder { color: var(--aa-text-muted); }
.aa-search__input::-webkit-search-cancel-button { display: none; }
.aa-search--lg { max-width: 46rem; padding-left: 1.4rem; }
.aa-search--lg .aa-search__input { font-size: var(--aa-text-l); }

.aa-contact { display: grid; gap: var(--aa-space-l); }
@media (min-width: 992px) { .aa-contact { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: start; gap: var(--aa-space-xl); } }
.aa-contact__panel { display: flex; flex-direction: column; gap: var(--aa-space-m); padding: var(--aa-space-l); border: 1px solid var(--aa-border); border-radius: var(--aa-radius-xl); background: var(--aa-surface); }
.aa-contact__panel-title { font-size: var(--aa-text-2xl); }
.aa-contact__info { display: flex; flex-direction: column; gap: var(--aa-space-s); }
.aa-contact__list { display: grid; gap: 0.6rem; }
.aa-contact__item { display: flex; flex-direction: column; gap: 0.2rem; padding: var(--aa-space-s) var(--aa-space-m); border-radius: var(--aa-radius-l); background: var(--aa-surface-alt); color: var(--aa-text); text-decoration: none; transition: background-color var(--aa-duration-fast), transform var(--aa-duration) var(--aa-ease); }
a.aa-contact__item:hover { background: var(--aa-primary-soft); color: var(--aa-text); transform: translateX(4px); }
.aa-contact__label { font-size: var(--aa-text-xs); font-weight: 650; letter-spacing: var(--aa-tracking-wide); text-transform: uppercase; color: var(--aa-text-muted); }
.aa-contact__value { font-size: var(--aa-text-l); font-weight: 600; letter-spacing: -0.01em; overflow-wrap: anywhere; }

/* 16 · PÁGINAS DE ESTADO (404 · mantenimiento) =========================== */
.aa-status {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  min-height: calc(100dvh - var(--aa-header-h));
  padding: var(--aa-space-2xl) var(--aa-gutter);
  overflow: hidden;
  text-align: center;
}
.aa-status::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: repeating-radial-gradient(ellipse 80% 60% at 50% 45%, transparent 0 2rem, var(--aa-contour) 2rem calc(2rem + 1px));
  -webkit-mask-image: radial-gradient(circle at 50% 45%, #000 20%, transparent 70%);
  mask-image: radial-gradient(circle at 50% 45%, #000 20%, transparent 70%);
  animation: aa-breathe 12s ease-in-out infinite alternate;
}
.aa-status--maintenance { min-height: 100dvh; }
.aa-status__inner { display: flex; flex-direction: column; align-items: center; gap: var(--aa-space-m); max-width: 40rem; }
.aa-status__code {
  font-family: var(--aa-font-heading);
  font-size: clamp(5.5rem, 3rem + 14vw, 13rem);
  font-weight: 800;
  line-height: 0.85;
  letter-spacing: -0.05em;
  background: linear-gradient(160deg, var(--aa-primary) 20%, var(--aa-accent) 110%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: aa-float 6s ease-in-out infinite;
}
.aa-status__title { font-size: var(--aa-text-3xl); }
.aa-status__text { font-size: var(--aa-text-l); line-height: 1.55; color: var(--aa-text-muted); }
.aa-status__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; }
.aa-status__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.aa-loader { position: relative; width: min(18rem, 70%); height: 4px; overflow: hidden; border-radius: var(--aa-radius-pill); background: var(--aa-border); }
.aa-loader::after { content: ""; position: absolute; inset: 0; width: 40%; border-radius: inherit; background: linear-gradient(90deg, var(--aa-primary), var(--aa-accent)); animation: aa-loader 1.8s var(--aa-ease) infinite; }

/* 17 · COMPATIBILIDAD CON ELEMENTOS NATIVOS DE BRICKS ===================== */
/* Nav Menu de Bricks: añadir clase aa-header__nav al elemento */
.aa-header__nav .bricks-nav-menu { display: flex; align-items: center; gap: 0.2rem; margin: 0; padding: 0.3rem; list-style: none; border-radius: var(--aa-radius-pill); background: var(--aa-surface-alt); }
.aa-header__nav .bricks-nav-menu > li > a { display: block; padding: 0.55rem 1rem; border-radius: var(--aa-radius-pill); color: var(--aa-text); font-size: var(--aa-text-s); font-weight: 550; text-decoration: none; }
.aa-header__nav .bricks-nav-menu > li > a:hover { background: var(--aa-surface); }
.aa-header__nav .bricks-nav-menu > .current-menu-item > a,
.aa-header__nav .bricks-nav-menu > li > a[aria-current="page"] { background: var(--aa-primary); color: var(--aa-on-primary); }
.aa-header__nav .bricks-mobile-menu-toggle { display: none; }
/* Pagination de Bricks: añadir clase aa-pagination al elemento */
.aa-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.aa-pagination .page-numbers:not(ul) { display: inline-flex; align-items: center; justify-content: center; min-width: 2.75rem; height: 2.75rem; padding: 0 0.9rem; border: 1px solid var(--aa-border); border-radius: var(--aa-radius-pill); color: var(--aa-text); font-size: var(--aa-text-s); font-weight: 650; text-decoration: none; }
.aa-pagination .page-numbers.current { border-color: var(--aa-primary); background: var(--aa-primary); color: var(--aa-on-primary); }
/* Form de Bricks: añadir clase aa-form al elemento (inputs heredan estilos) */
.aa-form.brxe-form .form-group { padding: 0; }
.aa-form.brxe-form .form-group label { font-size: var(--aa-text-s); font-weight: 600; color: var(--aa-text); }
.aa-form.brxe-form .bricks-button { min-height: 3rem; padding: 0.8em 1.4em; border-radius: var(--aa-radius-pill); background: var(--aa-primary); color: var(--aa-on-primary); font-weight: 650; }
/* Accordion (Nestable) de Bricks: añadir clase aa-faq */
.aa-faq .accordion-title-wrapper { padding-block: var(--aa-space-m); cursor: pointer; }
.aa-faq .accordion-content-wrapper { padding-bottom: var(--aa-space-m); color: var(--aa-text-muted); }

/* 18 · ANIMACIONES ======================================================= */
@keyframes aa-rise { from { opacity: 0; transform: translateY(1.75rem); } to { opacity: 1; transform: none; } }
@keyframes aa-unveil { from { clip-path: inset(14% 6% 0 6% round var(--aa-radius-xl)); } to { clip-path: inset(0 0 0 0 round var(--aa-radius-l)); } }
@keyframes aa-zoom-out { from { transform: scale(1.18); } to { transform: scale(1.04); } }
@keyframes aa-underline { to { background-size: 100% 0.09em; } }
@keyframes aa-reveal { from { opacity: 0; transform: translateY(2.5rem); } to { opacity: 1; transform: none; } }
@keyframes aa-parallax { from { transform: translateY(-4%) scale(1.08); } to { transform: translateY(4%) scale(1.08); } }
@keyframes aa-drift { from { transform: translate(-6%, 4%); } to { transform: translate(6%, -4%); } }
@keyframes aa-float { 50% { transform: translateY(-0.6rem); } }
@keyframes aa-breathe { to { transform: scale(1.08); } }
@keyframes aa-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes aa-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--aa-secondary) 60%, transparent); } 70%, 100% { box-shadow: 0 0 0 0.5em transparent; } }
@keyframes aa-loader { from { transform: translateX(-100%); } to { transform: translateX(260%); } }
@keyframes aa-sheet-in { from { transform: translateY(100%); } }
@keyframes aa-drop { from { transform: translateY(-100%); } }
@keyframes aa-header-scrolled { to { border-bottom-color: var(--aa-border); box-shadow: 0 10px 30px -20px oklch(20% 0.03 220 / 0.4); } }
@keyframes aa-progress { to { transform: scaleX(1); } }
@keyframes aa-theme-reveal { from { clip-path: circle(0 at var(--aa-vt-x, 50%) var(--aa-vt-y, 0)); } to { clip-path: circle(150vmax at var(--aa-vt-x, 50%) var(--aa-vt-y, 0)); } }

@media (prefers-reduced-motion: no-preference) {
  /* Entrada del hero */
  .aa-hero .aa-eyebrow,
  .aa-hero__title,
  .aa-hero__lead,
  .aa-hero__actions,
  .aa-hero__meta,
  .aa-hero .aa-breadcrumbs { animation: aa-rise 0.9s var(--aa-ease-out) both; }
  .aa-hero .aa-breadcrumbs { animation-delay: 0s; }
  .aa-hero .aa-eyebrow { animation-delay: 0.05s; }
  .aa-hero__title { animation-delay: 0.12s; }
  .aa-hero__lead { animation-delay: 0.26s; }
  .aa-hero__actions,
  .aa-hero__meta { animation-delay: 0.38s; }
  .aa-hero__media { animation: aa-unveil 1.4s var(--aa-ease-out) 0.2s both; }
  .aa-hero__img { animation: aa-zoom-out 2.2s var(--aa-ease-out) 0.2s both; }
  .aa-cover { animation: aa-rise 1s var(--aa-ease-out) 0.3s both; }
  .aa-article__intro > * { animation: aa-rise 0.9s var(--aa-ease-out) both; }
  .aa-article__intro > :nth-child(2) { animation-delay: 0.08s; }
  .aa-article__intro > :nth-child(3) { animation-delay: 0.16s; }
  .aa-article__intro > :nth-child(4) { animation-delay: 0.24s; }
  .aa-article__intro > :nth-child(n + 5) { animation-delay: 0.32s; }

  /* Efectos ligados al scroll (CSS nativo, sin JS) */
  @supports (animation-timeline: view()) {
    .aa-reveal { animation: aa-reveal linear both; animation-timeline: view(); animation-range: entry 0% cover 25%; }
    .aa-reveal-group > * { animation: aa-reveal linear both; animation-timeline: view(); animation-range: entry 0% cover 25%; }
    .aa-reveal-group > :nth-child(3n + 2) { animation-range: entry 6% cover 30%; }
    .aa-reveal-group > :nth-child(3n + 3) { animation-range: entry 12% cover 35%; }
    .aa-hero--home .aa-hero__img { animation: aa-parallax linear both; animation-timeline: view(); }
    .aa-header { animation: aa-header-scrolled linear both; animation-timeline: scroll(root); animation-range: 0 6rem; }
    .aa-progress { animation: aa-progress linear both; animation-timeline: scroll(root); }
    .aa-stats.aa-reveal-group > *,
    .aa-results__item.aa-reveal { animation-timing-function: var(--aa-ease-back); }
    .aa-bars__fill { animation: aa-grow both; animation-timing-function: var(--aa-ease-back); animation-timeline: view(); animation-range: entry 10% cover 40%; }
  }

  /* Transición circular al cambiar de tema (View Transitions) */
  ::view-transition-old(root),
  ::view-transition-new(root) { animation: none; mix-blend-mode: normal; }
  ::view-transition-new(root) { animation: aa-theme-reveal 0.7s var(--aa-ease-out); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

/* 19 · UTILIDADES ======================================================== */
.aa-visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
.aa-skip-link { position: fixed; top: 0.75rem; left: 0.75rem; z-index: 999; padding: 0.75rem 1.25rem; border-radius: var(--aa-radius-pill); background: var(--aa-text); color: var(--aa-bg); font-weight: 650; text-decoration: none; transform: translateY(-200%); transition: transform var(--aa-duration) var(--aa-ease); }
.aa-skip-link:focus { transform: none; color: var(--aa-bg); }
.aa-text-center { text-align: center; }
.aa-center { margin-inline: auto; }
@media (max-width: 991px) { .aa-hide-mobile { display: none !important; } }
@media (min-width: 992px) { .aa-hide-desktop { display: none !important; } }

/* 20 · LANDING (fachada one page) ======================================== */
/* Header propio cuando la página no usa la plantilla Header global (#brx-header) */
.aa-header--standalone { position: sticky; top: 0; z-index: var(--aa-z-header); }
.aa-hero__heading > .aa-hero__meta { margin: 0; }
.aa-widget > .aa-badge { align-self: flex-start; }
.aa-contact__panel-title { font-family: var(--aa-font-heading); font-weight: 700; line-height: var(--aa-leading-tight); color: var(--aa-heading); }
.aa-section--alt .aa-author--box { background: var(--aa-surface); border: 1px solid var(--aa-border); }
@media (max-width: 991px) { .aa-split > .aa-media--square { aspect-ratio: 16 / 10; } }


/* ==========================================================================
   Integración JetEngine · Listing Grid (v2.1.2)
   ========================================================================== */
/* Columnas: JetEngine corta en 1024 / 767; el sistema en 768 / 992. */
@media (min-width: 768px) and (max-width: 991px) {
  .jet-listing-grid > .jet-listing-grid__items { --columns: 2; }
  .jet-listing-grid > .jet-listing-grid__items.grid-col-desk-1 { --columns: 1; }
}
@media (min-width: 992px) {
  .jet-listing-grid > .jet-listing-grid__items.grid-col-desk-1 { --columns: 1; }
  .jet-listing-grid > .jet-listing-grid__items.grid-col-desk-2 { --columns: 2; }
  .jet-listing-grid > .jet-listing-grid__items.grid-col-desk-3 { --columns: 3; }
  .jet-listing-grid > .jet-listing-grid__items.grid-col-desk-4 { --columns: 4; }
}
@media (max-width: 767px) {
  .jet-listing-grid > .jet-listing-grid__items { --columns: 1; }
}
/* Grillas del sistema aplicadas al elemento Listing Grid (p. ej. .aa-lines):
   los envoltorios de JetEngine no generan caja y las tarjetas ocupan la grilla. */
.aa-lines > .jet-listing-grid,
.aa-lines .jet-listing-grid__items,
.aa-lines .jet-listing-grid__item { display: contents; }
@media (min-width: 768px) {
  .aa-lines .jet-listing-grid__items:has(> :nth-child(5)) > :nth-child(n + 3) > .aa-lines__item { grid-column: span 2; }
}

/* Barra de filtros: el selector nunca ocupa todo el ancho; con muchos chips,
   búsqueda y selector van arriba y los chips en su propia fila (v2.1.2). */
.aa-filters__select { flex: 0 0 auto; width: auto; max-width: 100%; }
@media (min-width: 992px) {
  .aa-filters__form:has(.aa-filters__chips > :nth-child(7)) .aa-filters__chips { order: 3; flex: 1 1 100%; }
}

/* Íconos Font Awesome centrados en su caja (v2.1.3): la regla base usa :where()
   y Font Awesome / Bricks la anulaban (display: block), dejando el glifo arriba a la izquierda. */
i.aa-icon { display: inline-grid; place-items: center; line-height: 1; text-align: center; }
i.aa-icon::before { line-height: 1; }
i.aa-theme-toggle__sun { display: none; }
[data-theme="dark"] i.aa-theme-toggle__sun { display: inline-grid; }
[data-theme="dark"] i.aa-theme-toggle__moon { display: none; }

/* Botones «Edit query» de JetEngine (solo administradores) ---------------
   El Listing Grid usa display: contents, así el botón absoluto tomaba como
   referencia la sección completa y desbordaba la pantalla en escritorio. */
.brxe-jet-engine-listing-grid { position: relative; }
.jet-engine-frontend-query-editor-buttons { left: 0 !important; right: auto !important; width: auto !important; max-width: 100%; }
