/* ====================================================================
   AUTÓNOMA — CSS Específico
   Micrositio diferenciado dentro del sitio principal
==================================================================== */

/* Kiona — fuente de los títulos de Autónoma */
/* Subir kiona.woff2 y kiona.woff a /wp-content/themes/ly-generatepress-child/assets/fonts/ */
@font-face {
  font-family: 'Kiona';
  src: url('assets/fonts/kiona.woff2') format('woff2'),
       url('assets/fonts/kiona.woff')  format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  --aut-f-title: 'Kiona', 'Montserrat', sans-serif;
  --aut-f-mono: 'IBM Plex Mono', 'Courier New', monospace;
  --aut-line: 1px solid rgba(0,0,0,.15);
}

.ly-dark-mode {
  --aut-line: 1px solid rgba(255,255,255,.08);
}

/* ============================================================
   HEADER AUTÓNOMA
============================================================ */

.is-autonoma .ly-header {
  border-bottom: var(--aut-line);
}

.is-autonoma .ly-header__logo {
  /* Logo de Autónoma en lugar del de LY */
}

/* ============================================================
   MENU AUTÓNOMA
============================================================ */

.is-autonoma .ly-menu-nav__link,
.is-autonoma .ly-menu-nav__sub-link {
  font-family: var(--f);
  font-size: 13px;
  font-weight: 400;
}

.is-autonoma .ly-menu-nav__link.active {
  border-bottom: 2px solid var(--acc);
  padding-bottom: 2px;
}

/* ============================================================
   HERO AUTÓNOMA
============================================================ */

.aut-hero {
  padding: clamp(80px, 10vw, 120px) var(--g);
  border-bottom: var(--aut-line);
  text-align: left;
}

.aut-hero__inner {
  max-width: var(--max);
  margin: 0 auto;
}

.aut-hero__title {
  font-family: var(--aut-f-title);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 70px);
  text-transform: uppercase;
  letter-spacing: -0.02em;
  line-height: 0.95;
  margin-bottom: 24px;
  max-width: 33%;        /* 1/3 de la pantalla en desktop */
}

@media (max-width: 768px) {
  .aut-hero__title {
    max-width: 100%;
    align-self: flex-start; /* top en mobile */
    font-size: clamp(28px, 7vw, 48px);
  }
}

.aut-hero__meta {
  font-family: var(--f);
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--muted);
  margin-bottom: 40px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.aut-hero__meta::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 1px;
  background: var(--muted);
}

.aut-hero__question {
  font-family: Georgia, serif;
  font-weight: 300;
  font-style: italic;
  font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.6;
  color: var(--muted);
  max-width: 720px;
}

/* ============================================================
   CONTENIDO AUTÓNOMA
============================================================ */

.aut-section {
  padding: clamp(60px, 8vw, 100px) var(--g);
  border-bottom: var(--aut-line);
}

.aut-section__inner {
  max-width: var(--max);
  margin: 0 auto;
}

.aut-section__label {
  font-family: var(--f);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--muted);
  margin-bottom: 40px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.aut-section__label::before {
  content: '';
  display: inline-block;
  width: 20px;
  height: 1px;
  background: var(--muted);
  opacity: 0.5;
}

.aut-section__title {
  font-family: var(--aut-f-title);
  font-weight: 600;
  font-size: clamp(32px, 4vw, 64px);
  text-transform: uppercase;
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin-bottom: 32px;
}

.aut-section__title em {
  font-style: italic;
  font-weight: 400;
}

.aut-intro-text {
  max-width: 720px;
  font-family: Georgia, serif;
  font-size: 16px;
  line-height: 1.8;
  font-weight: 300;
  color: var(--txt);
}

.aut-intro-text p {
  margin-bottom: 1.5em;
}

/* ============================================================
   VIDEO AUTÓNOMA
============================================================ */

.aut-video-section {
  padding: clamp(60px, 8vw, 100px) var(--g);
  border-bottom: var(--aut-line);
}

.aut-video-label {
  font-family: var(--f);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--muted);
  margin-bottom: 20px;
}

.aut-video-wrapper {
  position: relative;
  width: 100%;
  max-width: 900px;
  padding-bottom: 56.25%;
  background: #000;
  margin-bottom: 20px;
  overflow: hidden;
}

.aut-video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

.aut-video-desc {
  font-family: Georgia, serif;
  font-size: 14px;
  font-style: italic;
  color: var(--muted);
  max-width: 720px;
}

/* ============================================================
   COLECCIÓN — Grid de documentos
============================================================ */

.aut-docs {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.aut-doc-row {
  display: grid;
  grid-template-columns: 80px 1fr 140px;
  gap: clamp(20px, 4vw, 60px);
  padding: clamp(24px, 3vw, 40px) 0;
  border-bottom: var(--aut-line);
  align-items: center;
}

.aut-doc-row:first-child {
  border-top: var(--aut-line);
}

.aut-doc-number {
  font-family: var(--aut-f-title);
  font-weight: 300;
  font-size: clamp(36px, 4vw, 60px);
  line-height: 1;
  color: var(--acc);
}

.aut-doc-info {
  min-width: 0;
}

.aut-doc-name {
  font-family: var(--aut-f-title);
  font-weight: 600;
  font-size: clamp(18px, 2.2vw, 32px);
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin-bottom: 8px;
  line-height: 1.2;
}

.aut-doc-name a {
  color: var(--txt);
  text-decoration: none;
  transition: color 0.2s;
}

.aut-doc-name a:hover {
  color: var(--acc);
}

.aut-doc-subtitle {
  font-family: Georgia, serif;
  font-size: 14px;
  font-style: italic;
  font-weight: 300;
  color: var(--muted);
  line-height: 1.5;
}

.aut-doc-scale {
  font-family: var(--f);
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  text-align: right;
}

/* ============================================================
   NAVEGACIÓN INTERNA AUTÓNOMA
============================================================ */

.aut-doc-nav {
  padding: clamp(40px, 5vw, 80px) var(--g) 0;
  margin-top: clamp(40px, 5vw, 80px);
  border-top: var(--aut-line);
}

.aut-doc-nav__label {
  font-family: var(--f);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--muted);
  margin-bottom: 24px;
}

.aut-doc-nav__sequence {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(16px, 2vw, 24px);
  font-family: var(--f);
  font-size: 13px;
}

.aut-doc-nav__link {
  color: var(--txt);
  text-decoration: none;
  transition: color 0.2s;
  padding-bottom: 2px;
}

.aut-doc-nav__link:hover {
  color: var(--acc);
}

.aut-doc-nav__current {
  color: var(--acc);
  font-weight: 600;
  border-bottom: 2px solid var(--acc);
  padding-bottom: 2px;
}

.aut-doc-nav__sep {
  opacity: 0.3;
}

/* ============================================================
   CIERRE AUTÓNOMA
============================================================ */

.aut-doc-close {
  padding: clamp(60px, 8vw, 100px) var(--g);
  background: #111111;
  color: #f2f0eb;
  text-align: center;
  border-top: var(--aut-line);
}

.aut-doc-close__text {
  font-family: var(--f);
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 16px;
}

.aut-doc-close__link {
  color: #f2f0eb;
  text-decoration: none;
  transition: opacity 0.2s;
}

.aut-doc-close__link:hover {
  opacity: 0.7;
}

/* ============================================================
   RESPONSIVE
============================================================ */

@media (max-width: 1024px) {
  .aut-doc-row {
    grid-template-columns: 60px 1fr 100px;
    gap: clamp(16px, 3vw, 40px);
  }
}

@media (max-width: 768px) {
  .aut-doc-row {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .aut-doc-scale {
    text-align: left;
  }

  .aut-doc-nav__sequence {
    flex-direction: column;
    gap: 8px;
  }

  .aut-hero__title {
    margin-bottom: 20px;
  }
}

/* ============================================================
   OSCURO (Dark Mode)
============================================================ */

.ly-dark-mode.is-autonoma .aut-hero__question,
.ly-dark-mode.is-autonoma .aut-doc-subtitle,
.ly-dark-mode.is-autonoma .aut-video-desc {
  color: var(--muted);
}

.ly-dark-mode.is-autonoma .aut-doc-close {
  background: #0a0a0a;
  border-top-color: rgba(255,255,255,.08);
}



/* ============================================================
   CSS desde hub
============================================================ */


/* FULL WIDTH — anular GeneratePress */
body.is-autonoma .site-content,
body.is-autonoma .content-area,
body.is-autonoma .inside-article,
body.is-autonoma .entry-content,
body.is-autonoma main.site-main,
body.is-autonoma .site-main {
	max-width: 100% !important;
	width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

.aut-hub {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
}

/* HERO */
.aut-hero-full {
	position: relative;
	width: 100%;
	height: 100vh;
	min-height: 600px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}

.aut-hero-full__bg {
	position: absolute;
	inset: 0;
	background: #111;
	background-size: cover;
	background-position: center;
	transform: scale(1.04);
	transition: transform 12s cubic-bezier(.16,1,.3,1);
}

.aut-hero-full:hover .aut-hero-full__bg { transform: scale(1); }

.aut-hero-full__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.4) 50%, rgba(0,0,0,.1) 100%);
	z-index: 1;
}

.aut-hero-full__body {
	position: relative;
	z-index: 2;
	padding: clamp(48px,6vw,100px) clamp(24px,4vw,80px);
	width: 100%;
	max-width: 1680px;
	margin: 0 auto;
}

.aut-hero-full__meta {
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: rgba(255,255,255,.45);
	margin-bottom: 24px;
}

.aut-hero-full__title {
	font-family: 'Montserrat', sans-serif;
	font-weight: 900;
	font-size: clamp(40px, 7vw, 120px);
	text-transform: uppercase;
	letter-spacing: -0.03em;
	line-height: 0.95;
	color: #fff;
	margin: 0 0 32px 0;
	max-width: 1100px;
	word-break: break-word;
	overflow-wrap: break-word;
}

.aut-hero-full__claim {
	font-family: Georgia, serif;
	font-style: italic;
	font-weight: 300;
	font-size: clamp(16px, 1.6vw, 26px);
	line-height: 1.65;
	color: rgba(255,255,255,.65);
	max-width: 700px;
	margin: 0;
}

.aut-hero-full__scroll {
	position: absolute;
	bottom: clamp(24px,3vw,48px);
	right: clamp(24px,4vw,80px);
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: 'Montserrat', sans-serif;
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: rgba(255,255,255,.35);
}

.aut-hero-full__scrollline {
	width: 40px; height: 1px;
	background: rgba(255,255,255,.25);
	position: relative; overflow: hidden;
}

.aut-hero-full__scrollline::after {
	content: '';
	position: absolute;
	top: 0; left: -100%; width: 100%; height: 100%;
	background: rgba(255,255,255,.7);
	animation: aut-scroll 2s ease infinite;
}

@keyframes aut-scroll { to { left: 200%; } }

/* BLOQUES */
.aut-block {
	width: 100%;
	border-top: 1px solid rgba(255,255,255,.08);
}

.aut-block__inner {
	max-width: 1680px;
	margin: 0 auto;
	padding: clamp(60px,8vw,120px) clamp(24px,4vw,80px);
}

.aut-block__inner-pad {
	max-width: 1680px;
	margin: 0 auto;
	padding: clamp(40px,5vw,80px) clamp(24px,4vw,80px) 24px;
}

/* INTRO */
.aut-intro-text {
	max-width: 800px;
	font-family: Georgia, serif;
	font-size: clamp(17px,1.3vw,21px);
	line-height: 1.85;
	font-weight: 300;
	color: #f2f0eb;
}

.aut-intro-text p { margin-bottom: 1.8em; }
.aut-intro-text p:last-child { margin-bottom: 0; }
.aut-intro-text strong { font-weight: 400; color: #c8b77a; }

/* VIDEO */
.aut-block--video { padding: 0; }

.aut-video-label {
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: #999;
}

/* VIDEO */
.aut-block--video { padding: 0; }

.aut-video-label {
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: #999;
}

.aut-video-wrapper {
	width: 100%;
	position: relative;
	padding-bottom: 56.25%;
	background: #000;
	max-width: 100%;
	overflow: hidden;
}

.aut-video-wrapper iframe {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	border: none;
}

.aut-video-desc {
	font-family: Georgia, serif;
	font-size: 14px;
	font-style: italic;
	color: #999;
	line-height: 1.6;
	margin: 0;
}

/* COLECCIÓN */
.aut-coleccion__label {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: #999;
	margin: 0 0 clamp(24px,3vw,48px) 0;
}

.aut-docs { display: flex; flex-direction: column; }

.aut-doc-row {
	display: grid;
	grid-template-columns: 80px 1fr auto 28px;
	gap: clamp(20px,3vw,60px);
	padding: clamp(32px,3.5vw,52px) 0;
	border-top: 1px solid rgba(255,255,255,.08);
	align-items: center;
	text-decoration: none;
	transition: opacity .25s;
}

.aut-doc-row:last-child { border-bottom: 1px solid rgba(255,255,255,.08); }
a.aut-doc-row:hover { opacity: .6; }
.aut-doc-row--preview { opacity: .3; pointer-events: none; }

.aut-doc-number {
	font-family: 'Montserrat', sans-serif;
	font-weight: 300;
	font-size: clamp(48px,6vw,80px);
	line-height: 1;
	color: #c8b77a;
	letter-spacing: -0.02em;
}

.aut-doc-name {
	font-family: 'Montserrat', sans-serif;
	font-weight: 800;
	font-size: clamp(22px,2.6vw,42px);
	text-transform: uppercase;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: #f2f0eb;
	margin-bottom: 10px;
}

.aut-doc-subtitle {
	font-family: Georgia, serif;
	font-size: 15px;
	font-style: italic;
	font-weight: 300;
	color: #999;
	line-height: 1.5;
}

.aut-doc-type {
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: #999;
	text-align: right;
}

.aut-doc-arrow {
	font-size: 18px;
	color: #c8b77a;
	opacity: 0;
	transition: opacity .2s, transform .2s;
}

a.aut-doc-row:hover .aut-doc-arrow { opacity: 1; transform: translateX(4px); }

/* RESPONSIVE */
@media (max-width: 768px) {
	.aut-hero-full__title { word-spacing: normal; }
	.aut-doc-row { grid-template-columns: 52px 1fr 24px; }
	.aut-doc-type { display: none; }
	.aut-doc-arrow { opacity: 1; }
}


/* ============================================================
   CSS desde header
============================================================ */


/* ============================================================
   HEADER AUTÓNOMA — Mismo sistema que LY
============================================================ */

.aut-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 1000;
	height: 72px;
	background: transparent;
	color: #ffffff;
	mix-blend-mode: exclusion;
	pointer-events: none;
	transition: background .35s ease, border-color .35s ease, mix-blend-mode 0s;
	border-bottom: 1px solid transparent;
}

/* iOS/iPadOS (Safari/WebKit): mix-blend-mode sobre position:fixed está roto
   — el blend mete al header en el grupo de composición del documento y el
   fixed deja de serlo: queda "flotando" a mitad de página o escondido al
   scrollear (reporte del usuario en iPad). Fallback: sin blend, con un scrim
   degradé arriba para la legibilidad del logo. @supports con
   -webkit-touch-callout apunta SOLO a iOS/iPadOS. */
@supports (-webkit-touch-callout: none) {
	.aut-header {
		mix-blend-mode: normal;
		background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 100%);
	}
}

/* Soberanía: SIN mix-blend-mode nunca (15-jul, bug reportado con captura:
   "el header, logo y menú debería ser siempre el z-index más alto"). No era
   realmente un problema de z-index — .aut-header ya tiene 1000, el más alto
   del sitio — era mix-blend-mode:exclusion (arriba) MEZCLANDO los colores del
   header con lo que hay detrás. En el resto del sitio eso corre sobre una
   imagen estática curada y da un logo que se adapta al fondo; acá corre sobre
   un MAPA VIVO (etiquetas, marcadores de brillo variable moviéndose todo el
   tiempo) y el resultado es un logo que se ve "tragado"/mezclado con el mapa,
   ilegible. Mismo síntoma que el bug ya documentado de iOS más abajo (el
   blend rompe position:fixed en WebKit) — ahí ya existía un fallback sólido;
   acá se fuerza ese mismo fallback SIEMPRE, no solo en iOS, porque la causa
   (fondo ruidoso en movimiento) no es un problema de motor de navegador sino
   del contenido de esta página en particular. Selector por template (WP
   body_class(), no depende del DOM del header vivir dentro de .aut-soberania
   — el header es HERMANO del wrapper de la página, no hijo). */
body.page-template-page-autonoma-soberania-php .aut-header:not(.is-scrolled) {
	mix-blend-mode: normal;
	background: none; /* el degradado va en ::before de abajo, no acá directo — ver por qué */
}
/* :not(.is-scrolled) arriba: el estado YA scrolleado (más abajo, ".is-scrolled")
   ya trae su propio fondo sólido + mix-blend-mode:normal — no hace falta (ni
   conviene) que esta regla compita con esa por especificidad.
   El degradado va en un ::before MÁS ALTO que el propio header (160px vs los
   72px reales) en vez de ir directo como background del header (15-jul, bug
   reportado con captura: "quedó una línea debajo del header que queda rara").
   Causa: un background puesto directo en el header termina EXACTO en el borde
   de su caja (72px) — el degradado llega a alpha 0 justo ahí, y contra un
   mapa dinámico con su propio contraste detrás, ese límite duro se ve como
   una costura/línea. Antes (con mix-blend-mode) no había ninguna "caja" de
   fondo delimitada, por eso nunca se notaba. Alargar el degradado más allá
   del alto real del header con un pseudo-elemento diluye la transición en
   muchos más píxeles — para cuando llega a 0, ya no hay borde duro que ver. */
body.page-template-page-autonoma-soberania-php .aut-header:not(.is-scrolled)::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 160px;
	background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.22) 55%, rgba(0,0,0,0) 100%);
	pointer-events: none;
	z-index: -1;
}
/* Al hacer scroll: fondo oscuro translúcido, mix-blend-mode normal */
.aut-header.is-scrolled {
	background: rgba(10,10,10,.88);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom-color: rgba(255,255,255,.08);
	mix-blend-mode: normal;
	pointer-events: auto;
}

/* pointer-events en elementos clickeables siempre */
.aut-header__logo,
.aut-header__right,
.aut-header__ly,
.aut-menu-btn {
	pointer-events: auto;
}

.aut-header__inner {
	max-width: 1680px;
	margin: 0 auto;
	padding: 0 clamp(24px,4vw,80px);
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* LOGO */
.aut-header__logo {
	display: flex;
	align-items: center;
	text-decoration: none;
	flex-shrink: 0;
}

.aut-header__logo-img {
	height: 22px;
	width: auto;
	display: block;
	filter: brightness(0) invert(1); /* blanco siempre */
	transition: opacity .2s;
}

.aut-header__logo:hover .aut-header__logo-img { opacity: .65; }

/* DERECHA: LY isotipo + botón + */
.aut-header__right {
	display: flex;
	align-items: center;
	gap: 16px;
}

/* Isotipo LY — mismo comportamiento que logo Autónoma */
.aut-header__ly {
	display: flex;
	align-items: center;
	text-decoration: none;
	flex-shrink: 0;
}

.aut-header__ly-img {
	width: 50px;
	height: auto;
	object-fit: contain;
	display: block;
	filter: brightness(0) invert(1);
	transition: opacity .2s;
}

.aut-header__ly:hover .aut-header__ly-img { opacity: .65; }

/* BOTÓN + (× rotado 45°) — idéntico a LY */
.aut-menu-btn {
	background: none;
	border: none;
	cursor: pointer;
	width: 40px; height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background .2s, transform .3s cubic-bezier(.4,0,.2,1);
	padding: 0;
}

/* Cerrado: × rotado 45° = + */
.aut-menu-btn:not(.is-open) { transform: rotate(45deg); }
/* Abierto: × derecho */
.aut-menu-btn.is-open { transform: rotate(0deg); }
.aut-menu-btn:hover { background: rgba(255,255,255,.08); }

.aut-btn-icon {
	font-style: normal;
	font-size: 28px;
	line-height: 1;
	color: rgba(255,255,255,.85);
	font-family: 'Montserrat', sans-serif;
	font-weight: 300;
}

/* ============================================================
   OVERLAY FULLSCREEN
============================================================ */

.aut-overlay {
	position: fixed;
	inset: 0;
	z-index: 999;
	background: #0a0a0a;
	display: flex;
	flex-direction: column;
	opacity: 0;
	visibility: hidden;
	transition: opacity .35s ease, visibility .35s ease;
}

.aut-overlay.open {
	opacity: 1;
	visibility: visible;
}

.aut-overlay__inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	max-width: 1680px;
	width: 100%;
	margin: 0 auto;
	padding: 0 clamp(24px,4vw,80px);
}

/* TOP: logo + close */
.aut-overlay__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 72px;
	flex-shrink: 0;
	border-bottom: 1px solid rgba(255,255,255,.06);
}

.aut-overlay__logo img {
	height: 22px;
	width: auto;
	filter: brightness(0) invert(1);
	opacity: .6;
	transition: opacity .2s;
}

.aut-overlay__logo:hover img { opacity: 1; }

.aut-overlay-close {
	background: none;
	border: none;
	cursor: pointer;
	font-size: 28px;
	font-family: 'Montserrat', sans-serif;
	font-weight: 300;
	color: rgba(255,255,255,.5);
	width: 40px; height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: color .2s, background .2s;
	padding: 0;
	line-height: 1;
}

.aut-overlay-close:hover {
	color: #fff;
	background: rgba(255,255,255,.06);
}

/* BODY del overlay */
.aut-overlay__body {
	flex: 1;
	display: flex;
	align-items: center;
	padding: clamp(32px,6vh,80px) 0;
	/* Mismo offset que LY */
	padding-left: clamp(0px,18vw,360px);
}

/* NAV LINKS — Montserrat 300 uppercase, igual que LY */
.aut-overlay__nav {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 560px;
}

.aut-nav__link {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-weight: 300;
	font-size: clamp(22px,3vw,40px);
	text-transform: uppercase;
	letter-spacing: -0.01em;
	line-height: 1.1;
	color: rgba(255,255,255,.85);
	text-decoration: none;
	padding: clamp(12px,1.5vh,18px) 0;
	border-bottom: 1px solid rgba(255,255,255,.06);
	opacity: .45;
	transition: opacity .15s, color .15s;
}

.aut-nav__link:first-child {
	border-top: 1px solid rgba(255,255,255,.06);
}

.aut-nav__link:hover { opacity: 1; }

.aut-nav__link.active {
	opacity: 1;
	color: #c8b77a;
}

/* Separador */
.aut-nav__sep {
	height: 1px;
	background: rgba(255,255,255,.06);
	margin: clamp(16px,3vh,32px) 0 clamp(8px,2vh,16px);
}

/* Link a LY Arquitectos */
.aut-nav__link--ly {
	display: flex !important;
	align-items: center;
	gap: 12px;
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: 0.08em !important;
	color: rgba(255,255,255,.35) !important;
	border-top: none !important;
	border-bottom: none !important;
	padding: 12px 0 !important;
	opacity: .6 !important;
}

.aut-nav__link--ly img {
	width: 22px !important;
	height: 22px !important;
	object-fit: contain;
	flex-shrink: 0;
	filter: brightness(0) invert(1);
	opacity: .35;
}

.aut-nav__link--ly:hover {
	opacity: 1 !important;
	color: rgba(255,255,255,.7) !important;
}

/* RESPONSIVE */
@media (max-width: 768px) {
	.aut-overlay__body { padding-left: 0; }
	.aut-nav__link { font-size: clamp(20px,5.5vw,32px); }
}


/* ============================================================
   CSS desde archive
============================================================ */


:root{--bg:#f4f1eb;--txt:#111111;--muted:#6b6b6b;--bdr:rgba(0,0,0,.1);--acc:#b6a16b;--f:'Montserrat',sans-serif;--ease:cubic-bezier(.4,0,.2,1);--max:1680px;--g:clamp(24px,4vw,80px);}
.ly-dark-mode{--bg:#111111;--txt:#f2f0eb;--muted:#888;--bdr:rgba(255,255,255,.1);}
*{box-sizing:border-box;margin:0;padding:0;}
body{overflow-x:clip;}
.ly-site{background:var(--bg);color:var(--txt);}
.inside-article,.entry-content,.content-area,.site-content,.grid-container{all:unset;display:block;}
.entry-header,.generate-page-header{display:none!important;}

/* PAGE HEADER */
.ly-think-head{
  padding:calc(72px + clamp(60px,8vw,100px)) var(--g) clamp(48px,6vw,80px);
  border-bottom:1px solid var(--bdr);
}
.ly-think-head__inner{max-width:var(--max);margin:0 auto;}
.ly-think-head__label{font-family:var(--f);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:20px;}
.ly-think-head__title{font-family:var(--f);font-weight:300;font-size:clamp(36px,5.5vw,88px);line-height:1.0;text-transform:uppercase;letter-spacing:-.03em;max-width:900px;margin-bottom:24px;}
.ly-think-head__sub{font-family:var(--f);font-size:clamp(14px,1.2vw,18px);font-weight:300;line-height:1.6;color:var(--muted);max-width:560px;}

/* AUTONOMA GRID */
.ly-autonoma-full__inner{max-width:var(--max);margin:0 auto;padding:clamp(60px,8vw,120px) var(--g);}
.ly-aut-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(40px,5vw,80px);
  margin-bottom:clamp(60px,8vw,100px);
}
.ly-aut-card__a{display:block;text-decoration:none;color:var(--txt);}
.ly-aut-card__img-wrap{overflow:hidden;aspect-ratio:3/4;margin-bottom:clamp(20px,2vw,32px);}
.ly-aut-card__img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease);}
.ly-aut-card__ph{width:100%;height:100%;background:#d8d5cf;}
.ly-aut-card:hover .ly-aut-card__img-wrap img{transform:scale(1.04);}
.ly-aut-card__info{}
.ly-aut-card__meta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:12px;
  font-family:var(--f);
  font-size:9px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
}
.ly-aut-card__n{color:var(--acc);}
.ly-aut-card__type{background:rgba(182,161,107,.1);color:var(--acc);padding:2px 6px;border-radius:2px;}
.ly-aut-card__title{font-family:var(--f);font-weight:500;font-size:clamp(13px,1.1vw,16px);text-transform:uppercase;letter-spacing:-.01em;line-height:1.3;margin-bottom:8px;}
.ly-aut-card__excerpt{font-family:var(--f);font-size:12px;font-weight:300;line-height:1.6;color:var(--muted);}

/* PAGINACIÓN */
.ly-pagination{max-width:var(--max);margin:0 auto;padding:0 var(--g);border-top:1px solid var(--bdr);padding-top:clamp(40px,5vw,60px);}
.ly-pagination ul{list-style:none;display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.ly-pagination a, .ly-pagination span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:32px;
  height:32px;
  font-family:var(--f);
  font-size:11px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
  text-decoration:none;
  color:var(--txt);
  border:1px solid var(--bdr);
  border-radius:2px;
  transition:all .2s;
}
.ly-pagination a:hover{color:var(--acc);border-color:var(--acc);}
.ly-pagination .current{background:var(--acc);color:#fff;border-color:var(--acc);}

/* RESPONSIVE */
@media(max-width:1200px){
  .ly-aut-grid{grid-template-columns:repeat(2,1fr);}
}

@media(max-width:768px){
  .ly-aut-grid{grid-template-columns:1fr;}
}

/* ============================================================
   FOOTER AUTÓNOMA
============================================================ */
.aut-footer{background:#0a0a0a;border-top:1px solid rgba(255,255,255,.06);padding:clamp(40px,6vw,80px) clamp(24px,4vw,80px);}
.aut-footer__inner{max-width:1680px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;}
.aut-footer__logo{font-family:'Montserrat',sans-serif;font-weight:800;font-size:clamp(20px,2vw,28px);text-transform:uppercase;letter-spacing:-.02em;color:#f2f0eb;text-decoration:none;display:block;margin-bottom:12px;}
.aut-footer__copy{font-family:'Montserrat',sans-serif;font-size:11px;color:rgba(255,255,255,.3);text-transform:uppercase;letter-spacing:.06em;}
.aut-footer__copy a{color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s;}
.aut-footer__copy a:hover{color:#c8b77a;}
.aut-footer__nav{display:flex;flex-direction:column;gap:8px;text-align:right;}
.aut-footer__nav a{font-family:'Montserrat',sans-serif;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.3);text-decoration:none;transition:color .2s;}
.aut-footer__nav a:hover{color:#c8b77a;}
@media(max-width:768px){
  .aut-footer__inner{flex-direction:column;align-items:flex-start;}
  .aut-footer__nav{text-align:left;}
  .aut-hero-full__title{word-spacing:normal;}
}

/* ============================================================
   SINGLE — Presentación del manifiesto
============================================================ */

/* Hero del manifiesto */
.aut-piece-hero{position:relative;width:100%;height:85vh;min-height:500px;display:flex;align-items:flex-end;overflow:hidden;}
.aut-piece-hero__bg{position:absolute;inset:0;background:#111;background-size:cover;background-position:center;transform:scale(1.04);transition:transform 12s ease;}
.aut-piece-hero:hover .aut-piece-hero__bg{transform:scale(1);}
.aut-piece-hero__veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.9) 0%,rgba(0,0,0,.3) 60%,rgba(0,0,0,.1) 100%);}
.aut-piece-hero__body{position:relative;z-index:2;padding:clamp(40px,6vw,80px) clamp(24px,4vw,80px);width:100%;max-width:1680px;margin:0 auto;}
.aut-piece-hero__eyebrow{display:flex;align-items:center;gap:16px;margin-bottom:20px;}
.aut-piece-hero__num{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(48px,7vw,96px);line-height:1;color:#c8b77a;letter-spacing:-.03em;}
.aut-piece-hero__type{font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:rgba(255,255,255,.4);}
.aut-piece-hero__title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(36px,6vw,96px);text-transform:uppercase;letter-spacing:-.03em;line-height:.95;color:#fff;margin:0 0 16px;max-width:1000px;word-break:break-word;}
.aut-piece-hero__subtitle{font-family:Georgia,serif;font-style:italic;font-size:clamp(16px,1.4vw,22px);color:rgba(255,255,255,.6);line-height:1.5;}
/* Autor (18-jul, pedido del usuario: cada manifiesto lleva su firma en el
   hero, linkeada al perfil del equipo). */
.aut-piece-hero__author{font-family:'Montserrat',sans-serif;font-size:13px;letter-spacing:.02em;color:rgba(255,255,255,.5);margin-top:14px;}
.aut-piece-hero__author a{color:rgba(255,255,255,.85);text-decoration:none;transition:opacity .2s;} /* 18-jul: pedido del usuario, sin subrayado */
.aut-piece-hero__author a:hover{opacity:.7;}
.aut-piece-hero__author-sep{margin:0 8px;opacity:.5;} /* 19-jul: separador entre autor y fecha de publicación */

/* Acciones — leer + descargar */
.aut-piece-actions{background:#0a0a0a;border-bottom:1px solid rgba(255,255,255,.06);}
.aut-piece-actions__inner{max-width:1680px;margin:0 auto;padding:clamp(24px,3vw,40px) clamp(24px,4vw,80px);display:flex;gap:16px;flex-wrap:wrap;}
.aut-piece-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;transition:all .2s;border:none;cursor:pointer;border-radius:999px;}
.aut-piece-btn i{font-size:14px;}
.aut-piece-btn--primary{background:#c8b77a;color:#000;}
.aut-piece-btn--primary:hover{background:#e0cc8f;color:#000;}
.aut-piece-btn--secondary{background:rgba(255,255,255,.08);color:#f2f0eb;border:1px solid rgba(255,255,255,.15);}
.aut-piece-btn--secondary:hover{background:rgba(255,255,255,.15);color:#fff;}
.aut-piece-btn--ghost{background:transparent;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.2);}
.aut-piece-btn--ghost:hover{color:#fff;border-color:rgba(255,255,255,.5);}

/* Resumen */
.aut-summary-text{max-width:760px;font-family:Georgia,serif;font-size:clamp(17px,1.3vw,20px);line-height:1.85;font-weight:300;color:#f2f0eb;}
.aut-summary-text p{margin-bottom:1.8em;}
.aut-summary-text p:last-child{margin-bottom:0;}
.aut-summary-text strong{font-weight:400;color:#c8b77a;}
.aut-summary-text blockquote{border-left:2px solid #c8b77a;padding-left:24px;margin:32px 0;font-style:italic;color:rgba(255,255,255,.6);}

/* CTA lectura completa */
.aut-piece-cta{max-width:760px;}
.aut-piece-cta__label{font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:#999;margin-bottom:16px;display:block;}
.aut-piece-cta__title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(28px,4vw,56px);text-transform:uppercase;letter-spacing:-.02em;color:#f2f0eb;margin-bottom:16px;line-height:1;}
.aut-piece-cta__sub{font-family:Georgia,serif;font-size:16px;font-style:italic;color:rgba(255,255,255,.5);margin-bottom:32px;line-height:1.6;}
.aut-piece-cta__btns{display:flex;gap:16px;flex-wrap:wrap;}

/* ============================================================
   LECTURA COMPLETA — Template con TOC
============================================================ */

/* Barra superior fija */
.aut-lectura-bar{
  position:sticky;top:72px;z-index:800;
  background:rgba(10,10,10,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.06);
  display:flex;align-items:center;gap:16px;
  padding:0 clamp(24px,4vw,80px);height:52px;
}
.aut-lectura-bar__back{display:inline-flex;align-items:center;gap:8px;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.4);text-decoration:none;white-space:nowrap;transition:color .2s;flex-shrink:0;}
.aut-lectura-bar__back:hover{color:#c8b77a;}
.aut-lectura-bar__title{flex:1;display:flex;align-items:center;gap:12px;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:rgba(255,255,255,.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.aut-lectura-bar__num{color:#c8b77a;flex-shrink:0;}
.aut-lectura-bar__pdf{display:inline-flex;align-items:center;gap:6px;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.35);text-decoration:none;flex-shrink:0;transition:color .2s;}
.aut-lectura-bar__pdf:hover{color:#c8b77a;}

/* Header del documento */
.aut-lectura-header{padding:clamp(60px,8vw,120px) clamp(24px,4vw,80px);border-bottom:1px solid rgba(255,255,255,.06);max-width:1680px;margin:0 auto;}
.aut-lectura-header__img{width:100%;aspect-ratio:21/9;overflow:hidden;margin-bottom:clamp(48px,6vw,80px);}
.aut-lectura-header__img img{width:100%;height:100%;object-fit:cover;display:block;}
.aut-lectura-header__num{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(64px,10vw,140px);line-height:1;color:#c8b77a;letter-spacing:-.04em;margin-bottom:0;}
.aut-lectura-header__title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(36px,5vw,80px);text-transform:uppercase;letter-spacing:-.03em;line-height:.95;color:#f2f0eb;margin:8px 0 20px;word-break:break-word;}
.aut-lectura-header__sub{font-family:Georgia,serif;font-style:italic;font-size:clamp(18px,1.5vw,24px);color:rgba(255,255,255,.5);line-height:1.5;}

/* Layout: TOC + contenido */
/* ============================================================
   LECTURA — Fondo claro, tipografía oscura, TOC visible
============================================================ */

/* Wrapper lectura — fondo crema como el resto del sitio */
.aut-lectura { background: #f4f1eb; color: #111111; }

/* Barra superior — adaptada a fondo claro */
.aut-lectura .aut-lectura-bar {
  background: rgba(244,241,235,.95);
  border-bottom: 1px solid rgba(0,0,0,.1);
}
.aut-lectura .aut-lectura-bar__back { color: #888; }
.aut-lectura .aut-lectura-bar__back:hover { color: var(--acc, #b6a16b); }
.aut-lectura .aut-lectura-bar__title { color: #111; }
.aut-lectura .aut-lectura-bar__num { color: var(--acc, #b6a16b); }
.aut-lectura .aut-lectura-bar__pdf { color: #888; }
.aut-lectura .aut-lectura-bar__pdf:hover { color: var(--acc, #b6a16b); }

/* Header — colores oscuros */
.aut-lectura .aut-lectura-header { border-bottom: 1px solid rgba(0,0,0,.1); }
.aut-lectura .aut-lectura-header__num { color: var(--acc, #b6a16b); }
.aut-lectura .aut-lectura-header__title { color: #111; }
.aut-lectura .aut-lectura-header__sub { color: #666; }

/* Layout TOC + contenido */
.aut-lectura-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 0;
  max-width: 1680px;
  margin: 0 auto;
  align-items: start;
}

/* TOC lateral — fondo claro */
.aut-lectura-toc {
  position: sticky;
  top: 124px;
  padding: clamp(40px,5vw,80px) clamp(20px,2vw,40px) clamp(40px,5vw,80px) clamp(24px,4vw,80px);
  border-right: 1px solid rgba(0,0,0,.08);
  min-height: 200px;
}
.aut-lectura-toc__inner { max-width: 220px; }
.aut-lectura-toc__label {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .18em;
  color: #999; margin-bottom: 20px; display: block;
}
.aut-toc__item {
  display: flex; align-items: baseline; gap: 10px;
  padding: 9px 0; text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.06);
  transition: all .2s;
}
.aut-toc__item:last-child { border-bottom: none; }
.aut-toc__n {
  font-family: 'Montserrat', sans-serif;
  font-size: 9px; font-weight: 700;
  color: #bbb; flex-shrink: 0; transition: color .2s;
}
.aut-toc__text {
  font-family: 'Montserrat', sans-serif;
  font-size: 12px; color: #888;
  line-height: 1.4; text-transform: uppercase;
  letter-spacing: .04em; transition: color .2s;
}
.aut-toc__item:hover .aut-toc__text { color: #111; }
.aut-toc__item.is-active .aut-toc__n { color: var(--acc, #b6a16b); }
.aut-toc__item.is-active .aut-toc__text { color: #111; font-weight: 600; }
.aut-toc__pdf {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 24px;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .1em;
  color: #aaa; text-decoration: none; transition: color .2s;
}
.aut-toc__pdf:hover { color: var(--acc, #b6a16b); }

/* Contenido Gutenberg — fondo claro, texto oscuro, ancho generoso */
.aut-lectura-content {
  padding: clamp(60px,8vw,100px) clamp(40px,5vw,100px);
  max-width: 900px;
}
.aut-lectura-content h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700; font-size: clamp(20px,2vw,28px);
  text-transform: uppercase; letter-spacing: -.01em;
  color: #111; margin: clamp(48px,6vw,80px) 0 24px;
  padding-top: 8px; scroll-margin-top: 140px;
}
.aut-lectura-content h3 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600; font-size: clamp(13px,1.1vw,15px);
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--acc, #b6a16b); margin: 32px 0 16px;
}
.aut-lectura-content p {
  font-family: Georgia, serif;
  font-size: clamp(17px,1.3vw,20px);
  line-height: 1.85; color: #222;
  margin-bottom: 1.6em; font-weight: 300;
}
.aut-lectura-content blockquote {
  border-left: 2px solid var(--acc, #b6a16b);
  padding: 8px 0 8px 24px; margin: 40px 0; font-style: italic;
}
.aut-lectura-content blockquote p {
  font-size: clamp(18px,1.5vw,22px); color: #555; margin-bottom: 0;
}
.aut-lectura-content figure { margin: 40px 0; }
.aut-lectura-content figure img { width: 100%; height: auto; display: block; }
.aut-lectura-content figcaption {
  font-family: 'Montserrat', sans-serif; font-size: 11px;
  color: #999; text-transform: uppercase; letter-spacing: .06em; margin-top: 12px;
}
.aut-lectura-content ul, .aut-lectura-content ol { padding-left: 24px; margin-bottom: 1.6em; }
.aut-lectura-content li {
  font-family: Georgia, serif;
  font-size: clamp(17px,1.3vw,20px);
  line-height: 1.85; color: #222; margin-bottom: .6em;
}
.aut-lectura-content hr { border: none; border-top: 1px solid rgba(0,0,0,.1); margin: clamp(40px,5vw,64px) 0; }
.aut-lectura-content strong { color: #111; font-weight: 600; }
.aut-lectura-content a { color: var(--acc, #b6a16b); text-decoration: underline; text-underline-offset: 3px; }

/* Nav anterior/siguiente */
.aut-lectura-nav {
  max-width: 1680px; margin: 0 auto;
  padding: clamp(48px,6vw,80px) clamp(24px,4vw,80px);
  border-top: 1px solid rgba(0,0,0,.1);
  display: flex; justify-content: space-between; align-items: center; gap: 32px;
}
.aut-lectura-nav__back {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: 'Montserrat', sans-serif;
  font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .08em;
  color: #888; text-decoration: none; transition: color .2s;
}
.aut-lectura-nav__back:hover { color: var(--acc, #b6a16b); }
.aut-lectura-nav__next { display: flex; align-items: center; gap: 12px; text-decoration: none; transition: opacity .2s; }
.aut-lectura-nav__next:hover { opacity: .7; }
.aut-lectura-nav__next-label { font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; color: #999; display: block; }
.aut-lectura-nav__next-title { font-family: 'Montserrat', sans-serif; font-size: clamp(14px,1.4vw,18px); font-weight: 700; text-transform: uppercase; letter-spacing: -.01em; color: #111; display: block; text-align: right; }
.aut-lectura-nav__next i { font-size: 20px; color: var(--acc, #b6a16b); flex-shrink: 0; }

/* RESPONSIVE */
@media(max-width:1200px) {
  .aut-lectura-layout { grid-template-columns: 220px 1fr; }
}
@media(max-width:1024px) {
  .aut-lectura-layout { grid-template-columns: 200px 1fr; }
  .aut-lectura-content { padding: clamp(40px,5vw,80px) clamp(24px,4vw,60px); }
}
@media(max-width:768px) {
  .aut-lectura-layout { grid-template-columns: 1fr; }
  .aut-lectura-toc { display: none; }
  .aut-lectura-content { padding: 40px 24px; max-width: 100%; }
  .aut-lectura-header__img { aspect-ratio: 16/9; }
  .aut-lectura-nav { flex-direction: column; align-items: flex-start; }
  .aut-piece-actions__inner, .aut-piece-cta__btns { flex-direction: column; }
  .aut-piece-btn { width: 100%; justify-content: center; }
}

/* ============================================================
   LANDING — página gancho del manifiesto
   Layout asimétrico: número grande + texto editorial
============================================================ */

.aut-landing {
  background: #0d0d0d;
  color: #f2f0eb;
}

/* Acciones (Leer completo / PDF) — 18/19-jul, dos ajustes del usuario: ya
   no es una franja de ancho completo debajo del hero ("ocupa lugar arriba
   y no tiene sentido"), y tampoco va después del texto principal — vive en
   la columna fija izquierda (280px, sticky), justo debajo del número/tipo/
   subtítulo. Columna vertical (no fila) porque el aside es angosto: dos
   cápsulas lado a lado no entrarían cómodas ahí. */
.aut-landing__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
.aut-landing__actions .aut-piece-btn { width: 100%; justify-content: center; }

/* Resumen — layout asimétrico 2 columnas */
.aut-landing__summary {
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.aut-landing__summary-inner {
  max-width: 1680px;
  margin: 0 auto;
  padding: clamp(60px,8vw,120px) clamp(24px,4vw,80px);
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: clamp(40px,6vw,120px);
  align-items: start;
}

/* Aside izquierda */
.aut-landing__summary-aside {
  position: sticky;
  top: 100px;
}
.aut-landing__big-num {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(80px,10vw,160px);
  line-height: 1;
  letter-spacing: -.04em;
  color: #c8b77a;
  margin-bottom: 24px;
}
.aut-landing__aside-meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 40px;
}
.aut-landing__aside-type {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: rgba(255,255,255,.35);
}
/* 19-jul: nombre del manifiesto (antes solo se veía el subtítulo acá).
   color:var(--ink) (no un blanco fijo) — este aside vive dentro de
   .aut-landing__summary, que tiene fondo var(--paper) — CLARO en modo
   claro (el default del sitio), solo se vuelve oscuro en .ly-dark-mode.
   Un blanco fijo quedaba invisible sobre ese fondo claro; var(--ink) se
   adapta correctamente a los dos modos, igual que el resto del aside
   (.aut-landing__aside-type/-sub también deberían revisarse, pero eso es
   un bug previo, no de este cambio). */
.aut-landing__aside-title {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-size: clamp(19px, 1.6vw, 24px);
  line-height: 1.2;
  letter-spacing: -.01em;
  text-transform: uppercase;
  color: var(--ink);
  /* sin margin propio: .aut-landing__aside-meta ya es flex-column con
     gap:8px, separa a este del label de arriba y del subtítulo de abajo */
}
.aut-landing__aside-sub {
  font-family: Georgia, serif;
  font-size: 14px;
  font-style: italic;
  color: rgba(255,255,255,.45);
  line-height: 1.5;
}
.aut-landing__aside-cta {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: #c8b77a;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: gap .2s;
}
.aut-landing__aside-cta:hover { gap: 14px; }
.aut-landing__aside-cta span { font-size: 16px; }

/* Cuerpo del texto */
.aut-landing__summary-body {
  padding-top: 8px;
  max-width: 800px;
}
.aut-landing__summary-text {
  font-family: Georgia, serif;
  font-size: clamp(18px,1.5vw,22px);
  line-height: 1.85;
  font-weight: 300;
  color: #e8e5df;
}
.aut-landing__summary-text p {
  margin-bottom: 1.8em;
}
.aut-landing__summary-text p:last-child {
  margin-bottom: 0;
}
/* H2 dentro del resumen — títulos de impacto */
.aut-landing__summary-text h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(24px,3vw,48px);
  text-transform: uppercase;
  letter-spacing: -.02em;
  line-height: 1.05;
  color: #fff;
  margin: clamp(40px,5vw,72px) 0 clamp(20px,2.5vw,32px);
  /* padding-top: clamp(32px,4vw,56px); */ /* 18-jul: el h2 real siempre es :first-child (padding-top:0 lo anula) — queda comentado, no eliminado, por si algún resumen llega a tener más de un h2 */
  border-top: 1px solid rgba(255,255,255,.1);
}
.aut-landing__summary-text h2:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
/* H3 — subtítulos */
.aut-landing__summary-text h3 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: clamp(14px,1.2vw,18px);
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #c8b77a;
  margin: clamp(28px,3vw,40px) 0 16px;
}
/* Cita destacada — blockquote */
.aut-landing__summary-text blockquote {
  border-left: 3px solid #c8b77a;
  padding-left: clamp(20px,3vw,40px);
  margin: clamp(32px,4vw,56px) 0;
}
.aut-landing__summary-text blockquote p {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-size: clamp(20px,2vw,30px);
  line-height: 1.5;
  color: #fff;
  font-style: normal;
  letter-spacing: -.01em;
}

/* Video */
.aut-landing__video {
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.aut-landing__video-inner {
  max-width: 1680px;
  margin: 0 auto;
  padding: clamp(60px,8vw,100px) clamp(24px,4vw,80px);
}

/* Label de sección */
.aut-landing__section-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: rgba(255,255,255,.3);
  margin-bottom: 32px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.aut-landing__section-label::before {
  content: '';
  display: inline-block;
  width: 20px;
  height: 1px;
  background: currentColor;
  opacity: .5;
}

/* CTA final — fondo ligeramente diferente */
.aut-landing__cta {
  background: #111;
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.aut-landing__cta-inner {
  max-width: 860px;
  margin: 0 auto;
  padding: clamp(56px,7vw,96px) clamp(24px,4vw,80px); /* 19-jul: era clamp(80px,10vw,140px), el usuario lo vio "enorme" */
  text-align: center;
}
.aut-landing__cta-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: #c8b77a;
  margin-bottom: 24px;
}
.aut-landing__cta-title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(36px,5vw,80px);
  text-transform: uppercase;
  letter-spacing: -.03em;
  line-height: .95;
  color: #fff;
  margin-bottom: 20px;
}
.aut-landing__cta-sub {
  font-family: Georgia, serif;
  font-style: italic;
  font-size: clamp(17px,1.4vw,22px);
  color: rgba(255,255,255,.45);
  margin-bottom: clamp(32px,4vw,48px);
  line-height: 1.6;
}
.aut-landing__cta-btns {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

/* Colección */
.aut-landing__coleccion {
  border-top: 1px solid rgba(255,255,255,.06);
}
.aut-landing__coleccion-inner {
  max-width: 1680px;
  margin: 0 auto;
  padding: clamp(60px,8vw,100px) clamp(24px,4vw,80px);
}

/* "La colección" — grid de 3 columnas a sangre, sin título de sección
   (18-jul, ajuste sobre el rediseño anterior: "sin márgenes y sin gap,
   imágenes pegadas a los bordes del navegador y entre ellas" — se sacó
   .aut-landing__coleccion-inner del HTML, el grid ahora es hijo directo de
   la section, gap:0). Máscara aclarada — antes llegaba a .88 de opacidad y
   tapaba la foto entera; ahora es angosta y solo detrás del texto de
   abajo. El número usa mix-blend-mode:difference (mismo recurso que
   .aut2-mchapter__num en el hub) para tener contraste garantizado incluso
   sin una máscara oscura debajo: se ve oscuro sobre fondos claros y claro
   sobre fondos oscuros, sin curar caso por caso. */
.aut-otros-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}
.aut-otros-card {
  position: relative;
  display: block;
  aspect-ratio: 3/4;
  overflow: hidden;
  text-decoration: none;
  background: #111;
}
.aut-otros-card img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .7s ease;
}
.aut-otros-card:hover img { transform: scale(1.05); }
.aut-otros-card::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.2) 30%, rgba(0,0,0,0) 52%);
  pointer-events: none;
}
.aut-otros-card__num {
  position: absolute;
  top: clamp(16px, 2vw, 28px);
  left: clamp(16px, 2vw, 28px);
  font-family: 'Kiona', 'Montserrat', sans-serif;
  font-size: clamp(30px, 3vw, 46px);
  font-weight: 400;
  line-height: 1;
  color: #fff;
  mix-blend-mode: difference;
  z-index: 1;
}
.aut-otros-card__text {
  position: absolute;
  left: clamp(16px, 2vw, 28px);
  right: clamp(16px, 2vw, 28px);
  bottom: clamp(16px, 2vw, 28px);
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.aut-otros-card__title {
  font-family: 'Kiona', 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 1.7vw, 25px);
  line-height: 1.1;
  letter-spacing: -.01em;
  text-transform: uppercase;
  color: #fff;
}
.aut-otros-card__sub {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(12px, 1vw, 14px);
  line-height: 1.35;
  color: rgba(255,255,255,.75);
}
@media (max-width: 640px) {
  .aut-otros-grid { grid-template-columns: 1fr; }
  .aut-otros-card { aspect-ratio: 16/10; }
}

/* Responsive */
@media (max-width: 1024px) {
  .aut-landing__summary-inner {
    grid-template-columns: 200px 1fr;
    gap: clamp(32px,4vw,60px);
  }
  .aut-landing__big-num { font-size: clamp(60px,8vw,120px); }
}
@media (max-width: 768px) {
  .aut-landing__summary-inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .aut-landing__summary-aside {
    position: static;
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
  }
  .aut-landing__big-num {
    font-size: clamp(64px,15vw,96px);
    margin-bottom: 0;
  }
  .aut-landing__aside-meta { margin-bottom: 0; }
  .aut-landing__aside-cta { display: none; }
  .aut-landing__actions-inner,
  .aut-landing__cta-btns { flex-direction: column; }
  .aut-piece-btn { width: 100%; justify-content: center; }
}

/* ================================================================
   HUB LANDING — page-autonoma-hub.php
   Sistema visual: oscuro (#0d0d0d) y claro (#f4f1eb) alternados
   Tipografía: Montserrat peso extremo para impacto, Georgia para cuerpo
================================================================ */

/* ── Variables locales ── */
.aut-hub-landing {
  --hl-dark:    #0d0d0d;
  --hl-light:   #f4f1eb;
  --hl-mid:     #2a2826;
  --hl-gold:    #c8b77a;
  --hl-muted:   rgba(255,255,255,.35);
  --hl-border-d:rgba(255,255,255,.07);
  --hl-border-l:rgba(0,0,0,.1);
  --hl-txt-d:   #f2f0eb;
  --hl-txt-l:   #111111;
  --hl-sub-l:   #555550;
}

/* ── 01 HERO ── oscuro, tipografía pura */
.aut-hl-hero {
  background: var(--hl-dark);
  color: var(--hl-txt-d);
  min-height: 100vh;
  display: grid;
  grid-template-rows: 1fr auto;
  padding-top: 72px; /* header height */
}
.aut-hl-hero__inner {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 clamp(24px,7vw,120px) clamp(40px,7vh,80px);
  max-width: 1680px;
  margin: 0 auto;
  width: 100%;
}
.aut-hl-hero__eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--hl-muted);
  margin-bottom: clamp(32px,5vh,60px);
  display: flex;
  align-items: center;
  gap: 16px;
}
.aut-hl-hero__eyebrow::before {
  content: '';
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--hl-muted);
}
.aut-hl-hero__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(96px,16vw,240px);
  line-height: .85;
  letter-spacing: -.02em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: clamp(32px,5vh,56px);
}
.aut-hl-hero__bar {
  border-top: 1px solid var(--hl-border-d);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.aut-hl-hero__claim {
  padding: clamp(28px,4vh,48px) clamp(24px,4vw,60px) clamp(28px,4vh,48px) 0;
  border-right: 1px solid var(--hl-border-d);
}
.aut-hl-hero__claim p {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-style: italic;
  font-size: clamp(20px,2.2vw,32px);
  line-height: 1.35;
  color: #fff;
  letter-spacing: -.01em;
}
.aut-hl-hero__claim-sub {
  margin-top: 12px !important;
  color: var(--hl-muted) !important;
  font-size: clamp(16px,1.4vw,22px) !important;
}
.aut-hl-hero__nav {
  padding: clamp(28px,4vh,48px) 0 clamp(28px,4vh,48px) clamp(24px,4vw,60px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-end;
  gap: 12px;
}
.aut-hl-hero__nav a {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--hl-muted);
  text-decoration: none;
  transition: color .2s;
}
.aut-hl-hero__nav a:hover { color: #fff; }
.aut-hl-hero__nav-primary {
  color: #fff !important;
  border-bottom: 1px solid var(--hl-gold);
  padding-bottom: 3px;
}
.aut-hl-hero__scroll {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px clamp(24px,7vw,120px);
  border-top: 1px solid var(--hl-border-d);
  font-family: 'Montserrat', sans-serif;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(255,255,255,.2);
}
.aut-hl-hero__scrollline {
  width: 1px;
  height: 32px;
  background: rgba(255,255,255,.2);
  animation: hl-pulse 2.4s ease-in-out infinite;
}
@keyframes hl-pulse {
  0%,100% { opacity: 1; transform: scaleY(1); }
  50%      { opacity: .2; transform: scaleY(.3); }
}

/* ── 02 ARGUMENTO ── claro */
.aut-hl-arg {
  background: var(--hl-light);
  color: var(--hl-txt-l);
  border-bottom: 1px solid var(--hl-border-l);
}
.aut-hl-arg__inner {
  max-width: 1680px;
  margin: 0 auto;
  padding: clamp(80px,10vw,140px) clamp(24px,7vw,120px);
}
.aut-hl-arg__label {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: rgba(0,0,0,.35);
  margin-bottom: clamp(40px,5vw,64px);
  display: flex;
  align-items: center;
  gap: 12px;
}
.aut-hl-arg__label::before {
  content: '';
  display: inline-block;
  width: 20px;
  height: 1px;
  background: currentColor;
}
.aut-hl-arg__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px,8vw,120px);
  align-items: start;
}
.aut-hl-arg__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(36px,5vw,76px);
  line-height: .92;
  letter-spacing: -.02em;
  text-transform: uppercase;
  color: var(--hl-txt-l);
  position: sticky;
  top: 100px;
}
.aut-hl-arg__title em {
  font-style: italic;
  font-weight: 300;
  text-transform: none;
}
.aut-hl-arg__body {
  padding-top: 8px;
}
.aut-hl-arg__lead {
  font-family: Georgia, serif;
  font-size: clamp(18px,1.6vw,24px);
  line-height: 1.65;
  color: var(--hl-txt-l);
  margin-bottom: 28px;
}
.aut-hl-arg__body p {
  font-family: Georgia, serif;
  font-size: clamp(16px, 1.2vw, 18px); /* 18-jul: unificado con el resto del cuerpo de lectura del sitio */
  line-height: 1.85;
  color: var(--hl-sub-l);
  margin-bottom: 20px;
}
.aut-hl-arg__scale {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: #b6a16b !important;
  margin-top: 40px !important;
  padding-top: 28px;
  border-top: 1px solid var(--hl-border-l);
}

/* ── 03 VIDEO ── oscuro */
.aut-hl-video {
  background: var(--hl-dark);
  color: var(--hl-txt-d);
  padding: clamp(60px,8vw,100px) 0 0;
}
.aut-hl-video__label {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: var(--hl-muted);
  padding: 0 clamp(24px,7vw,120px);
  margin-bottom: 24px;
}
.aut-hl-video__wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  background: #000;
}
.aut-hl-video__wrapper iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.aut-hl-video__desc {
  padding: 24px clamp(24px,7vw,120px) clamp(48px,6vw,80px);
  font-family: Georgia, serif;
  font-size: 14px;
  font-style: italic;
  color: var(--hl-muted);
  max-width: 640px;
}

/* ── 04 COLECCIÓN ── claro */
.aut-hl-col {
  background: var(--hl-light);
  color: var(--hl-txt-l);
}
.aut-hl-col__inner {
  max-width: 1680px;
  margin: 0 auto;
  padding: clamp(80px,10vw,140px) clamp(24px,7vw,120px);
}
.aut-hl-col__label {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: rgba(0,0,0,.35);
  margin-bottom: clamp(32px,4vw,48px);
  display: flex; align-items: center; gap: 12px;
}
.aut-hl-col__label::before { content: ''; width: 20px; height: 1px; background: currentColor; display: inline-block; }
.aut-hl-col__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px,6vw,80px);
  align-items: end;
  margin-bottom: clamp(48px,7vw,96px);
  padding-bottom: clamp(40px,5vw,64px);
  border-bottom: 2px solid var(--hl-txt-l);
}
.aut-hl-col__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(40px,5.5vw,76px);
  line-height: .92;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: var(--hl-txt-l);
}
.aut-hl-col__title em { font-style: italic; font-weight: 300; text-transform: none; }
.aut-hl-col__intro {
  font-family: Georgia, serif;
  font-size: clamp(14px,1.3vw,17px);
  line-height: 1.8;
  color: var(--hl-sub-l);
}

/* Documento individual */
.aut-hl-doc {
  display: grid;
  grid-template-columns: 100px 1fr auto;
  gap: clamp(20px,4vw,60px);
  padding: clamp(32px,4vw,56px) 0;
  border-bottom: 1px solid var(--hl-border-l);
  align-items: start;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .55s ease, transform .55s ease;
}
.aut-hl-doc.is-visible { opacity: 1; transform: translateY(0); }
.aut-hl-doc:first-child { border-top: 1px solid var(--hl-border-l); }
.aut-hl-doc__num {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-size: clamp(64px,8vw,108px);
  line-height: 1;
  letter-spacing: -.02em;
  color: #b6a16b;
  padding-top: .05em;
}
.aut-hl-doc__meta {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 12px;
}
.aut-hl-doc__type {
  font-family: 'Montserrat', sans-serif;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .22em;
  color: rgba(0,0,0,.3);
}
.aut-hl-doc__scale {
  font-family: 'Montserrat', sans-serif;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(0,0,0,.2);
}
.aut-hl-doc__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: clamp(22px,3vw,44px);
  line-height: .95;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: var(--hl-txt-l);
  margin-bottom: 10px;
}
.aut-hl-doc__sub {
  font-family: Georgia, serif;
  font-style: italic;
  font-size: clamp(14px,1.2vw,17px);
  color: var(--hl-sub-l);
  margin-bottom: 16px;
}
.aut-hl-doc__hook {
  font-family: Georgia, serif;
  font-size: clamp(14px,1.2vw,16px);
  line-height: 1.7;
  color: var(--hl-sub-l);
  max-width: 560px;
  margin-bottom: 24px;
  padding-left: 16px;
  border-left: 2px solid #b6a16b;
}
.aut-hl-doc__actions {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.aut-hl-doc__link-primary {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--hl-txt-l);
  text-decoration: none;
  border-bottom: 1px solid var(--hl-txt-l);
  padding-bottom: 2px;
  transition: color .2s, border-color .2s;
}
.aut-hl-doc__link-primary:hover { color: #b6a16b; border-color: #b6a16b; }
.aut-hl-doc__link-sec {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: rgba(0,0,0,.3);
  text-decoration: none;
  transition: color .2s;
}
.aut-hl-doc__link-sec:hover { color: var(--hl-txt-l); }
.aut-hl-doc__thumb {
  width: clamp(80px,10vw,160px);
  flex-shrink: 0;
  align-self: center;
}
.aut-hl-doc__thumb img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  display: block;
  filter: grayscale(30%);
  transition: filter .3s;
}
.aut-hl-doc:hover .aut-hl-doc__thumb img { filter: grayscale(0); }

/* ── 05 STATEMENT ── oscuro */
.aut-hl-statement {
  background: var(--hl-dark);
  padding: clamp(80px,12vw,160px) clamp(24px,7vw,120px);
  text-align: center;
}
.aut-hl-statement__inner {
  max-width: 900px;
  margin: 0 auto;
}
.aut-hl-statement__quote {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-style: italic;
  font-size: clamp(22px,3vw,42px);
  line-height: 1.4;
  letter-spacing: -.01em;
  color: #fff;
  margin-bottom: 28px;
  quotes: none;
}
.aut-hl-statement__cite {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: var(--hl-gold);
  font-style: normal;
}

/* ── 06 PRINCIPIOS ── oscuro */
.aut-hl-principles {
  background: var(--hl-dark);
  color: var(--hl-txt-d);
  border-top: 1px solid var(--hl-border-d);
}
.aut-hl-principles__inner {
  max-width: 1680px;
  margin: 0 auto;
  padding: clamp(80px,10vw,140px) clamp(24px,7vw,120px);
}
.aut-hl-principles__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px,6vw,80px);
  align-items: end;
  margin-bottom: clamp(48px,6vw,80px);
  padding-bottom: clamp(40px,5vw,60px);
  border-bottom: 1px solid var(--hl-border-d);
}
.aut-hl-principles__label {
  grid-column: 1 / -1;
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: rgba(255,255,255,.25);
  display: flex; align-items: center; gap: 12px;
}
.aut-hl-principles__label::before { content: ''; width: 20px; height: 1px; background: currentColor; display: inline-block; }
.aut-hl-principles__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(36px,5vw,72px);
  line-height: .92;
  letter-spacing: -.01em;
  text-transform: uppercase;
  color: #fff;
}
.aut-hl-principles__title em { font-style: italic; font-weight: 300; text-transform: none; color: var(--hl-gold); }
.aut-hl-principles__sub {
  font-family: Georgia, serif;
  font-size: clamp(14px,1.3vw,17px);
  line-height: 1.75;
  color: rgba(255,255,255,.4);
  align-self: end;
}
.aut-hl-principles__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--hl-border-d);
}
.aut-hl-p {
  padding: clamp(24px,3vw,40px) clamp(16px,2vw,28px) clamp(24px,3vw,40px) 0;
  border-right: 1px solid var(--hl-border-d);
  border-bottom: 1px solid var(--hl-border-d);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .5s ease, transform .5s ease;
}
.aut-hl-p.is-visible { opacity: 1; transform: translateY(0); }
.aut-hl-p:nth-child(4n) { border-right: none; }
.aut-hl-p__n {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--hl-gold);
  margin-bottom: 14px;
}
.aut-hl-p__name {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: clamp(12px,1.1vw,15px);
  text-transform: uppercase;
  letter-spacing: .05em;
  line-height: 1.2;
  color: var(--hl-txt-d);
  margin-bottom: 12px;
}
.aut-hl-p__desc {
  font-family: Georgia, serif;
  font-size: 12px;
  line-height: 1.65;
  color: rgba(255,255,255,.35);
}
.aut-hl-principles__footer {
  padding-top: clamp(32px,4vw,48px);
  border-top: 1px solid var(--hl-border-d);
  margin-top: 0;
  text-align: right;
}
.aut-hl-cta-link {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--hl-gold);
  text-decoration: none;
  transition: opacity .2s;
}
.aut-hl-cta-link:hover { opacity: .7; }

/* ── 07 BRIDGE ── claro, minimalista */
.aut-hl-bridge {
  background: var(--hl-light);
  padding: clamp(80px,12vw,160px) clamp(24px,7vw,120px);
  text-align: center;
  border-top: 1px solid var(--hl-border-l);
  border-bottom: 1px solid var(--hl-border-l);
}
.aut-hl-bridge__inner {
  max-width: 720px;
  margin: 0 auto;
}
.aut-hl-bridge__line {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(28px,4vw,56px);
  text-transform: uppercase;
  letter-spacing: -.02em;
  line-height: .95;
  color: var(--hl-txt-l);
  margin-bottom: 20px;
}
.aut-hl-bridge__sub {
  font-family: Georgia, serif;
  font-size: clamp(16px,1.4vw,20px);
  font-style: italic;
  color: var(--hl-sub-l);
  line-height: 1.5;
}

/* ── 08 CONTACTO ── claro */
.aut-hl-contact {
  background: var(--hl-light);
  color: var(--hl-txt-l);
}
.aut-hl-contact__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(80px,10vw,140px) clamp(24px,7vw,120px);
}
.aut-hl-contact__label {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: rgba(0,0,0,.3);
  margin-bottom: clamp(32px,4vw,48px);
  display: flex; align-items: center; gap: 12px;
}
.aut-hl-contact__label::before { content: ''; width: 20px; height: 1px; background: currentColor; display: inline-block; }
.aut-hl-contact__header {
  margin-bottom: clamp(48px,6vw,72px);
}
.aut-hl-contact__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(40px,5.5vw,80px);
  line-height: .92;
  letter-spacing: -.02em;
  text-transform: uppercase;
  color: var(--hl-txt-l);
  margin-bottom: 20px;
}
.aut-hl-contact__title em { font-style: italic; font-weight: 300; text-transform: none; }
.aut-hl-contact__intro {
  font-family: Georgia, serif;
  font-size: clamp(15px,1.3vw,18px);
  line-height: 1.75;
  color: var(--hl-sub-l);
  max-width: 600px;
}

/* Paths grid */
.aut-hl-paths {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--hl-border-l);
  border: 1px solid var(--hl-border-l);
  margin-bottom: 48px;
}
.aut-hl-path {
  background: var(--hl-light);
  border: none;
  cursor: pointer;
  padding: clamp(24px,3vw,40px) clamp(20px,2.5vw,32px);
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: background .2s;
}
.aut-hl-path:hover { background: #ece9e1; }
.aut-hl-path__hook {
  font-family: Georgia, serif;
  font-style: italic;
  font-size: clamp(13px,1.1vw,16px);
  line-height: 1.5;
  color: var(--hl-sub-l);
  display: block;
}
.aut-hl-path__label {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--hl-txt-l);
  display: flex;
  align-items: center;
  gap: 8px;
}
.aut-hl-path__label::after {
  content: '→';
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity .2s, transform .2s;
  font-family: 'Montserrat', sans-serif;
}
.aut-hl-path:hover .aut-hl-path__label::after { opacity: 1; transform: translateX(0); }

/* Form wrap */
.aut-hl-form-wrap {
  border: 1px solid var(--hl-border-l);
  padding: clamp(32px,4vw,56px);
  background: #fff;
}
.aut-hl-form-header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--hl-border-l);
}
.aut-hl-form-back {
  background: none;
  border: none;
  cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: rgba(0,0,0,.35);
  padding: 0;
  transition: color .2s;
}
.aut-hl-form-back:hover { color: var(--hl-txt-l); }
.aut-hl-form-path-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: #b6a16b;
  margin: 0;
}
.aut-hl-form-context { margin-bottom: 28px; }
.aut-hl-form-ctx { display: none; }
.aut-hl-form-ctx__q {
  font-family: Georgia, serif;
  font-size: clamp(16px,1.4vw,20px);
  line-height: 1.7;
  color: var(--hl-txt-l);
  font-style: italic;
}
.aut-hl-form-error {
  background: #fff5f5;
  border: 1px solid #fca5a5;
  padding: 12px 16px;
  font-family: 'Montserrat', sans-serif;
  font-size: 12px;
  color: #b91c1c;
  margin-bottom: 20px;
}
.aut-hl-form-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
.aut-hl-ff {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.aut-hl-ff--full { grid-column: 1 / -1; }
.aut-hl-ff label {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: rgba(0,0,0,.4);
}
.aut-hl-ff input,
.aut-hl-ff textarea {
  background: var(--hl-light);
  border: 1px solid var(--hl-border-l);
  padding: 12px 14px;
  font-family: Georgia, serif;
  font-size: 15px;
  color: var(--hl-txt-l);
  transition: border-color .2s;
  resize: vertical;
  outline: none;
}
.aut-hl-ff input:focus,
.aut-hl-ff textarea:focus { border-color: #b6a16b; }
.aut-hl-submit {
  margin-top: 24px;
  background: var(--hl-txt-l);
  color: #fff;
  border: none;
  cursor: pointer;
  padding: 16px 40px;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: background .2s;
}
.aut-hl-submit:hover { background: #2a2826; }
.aut-hl-submit span { transition: transform .2s; }
.aut-hl-submit:hover span { transform: translateX(4px); }

/* Confirmación */
.aut-hl-confirm {
  padding: clamp(48px,6vw,80px);
  text-align: center;
  background: #fff;
  border: 1px solid var(--hl-border-l);
}
.aut-hl-confirm__icon {
  font-size: 32px;
  color: #b6a16b;
  margin-bottom: 20px;
}
.aut-hl-confirm__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(28px,4vw,56px);
  text-transform: uppercase;
  letter-spacing: -.02em;
  color: var(--hl-txt-l);
  margin-bottom: 16px;
}
.aut-hl-confirm__text {
  font-family: Georgia, serif;
  font-size: clamp(15px,1.3vw,18px);
  line-height: 1.7;
  color: var(--hl-sub-l);
  max-width: 480px;
  margin: 0 auto 28px;
}
.aut-hl-confirm__link {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: #b6a16b;
  text-decoration: none;
  border-bottom: 1px solid #b6a16b;
  padding-bottom: 2px;
}

/* ── 09 CIERRE ── oscuro */
.aut-hl-close {
  background: var(--hl-dark);
  color: var(--hl-txt-d);
  border-top: 1px solid var(--hl-border-d);
}
.aut-hl-close__inner {
  max-width: 1680px;
  margin: 0 auto;
  padding: clamp(60px,8vw,100px) clamp(24px,7vw,120px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px,6vw,80px);
  align-items: center;
  border-top: 1px solid var(--hl-border-d);
}
.aut-hl-close__press-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: var(--hl-muted);
  margin-bottom: 16px;
}
.aut-hl-close__press-line {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-style: italic;
  font-size: clamp(20px,2vw,30px);
  line-height: 1.35;
  color: #fff;
  margin-bottom: 24px;
  letter-spacing: -.01em;
}
.aut-hl-close__press-link {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--hl-gold);
  text-decoration: none;
  border-bottom: 1px solid var(--hl-gold);
  padding-bottom: 2px;
  transition: opacity .2s;
}
.aut-hl-close__press-link:hover { opacity: .7; }
.aut-hl-close__brand {
  text-align: right;
}
.aut-hl-close__brand-name {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(24px,3vw,48px);
  letter-spacing: -.01em;
  color: rgba(255,255,255,.15);
  margin-bottom: 8px;
}
.aut-hl-close__brand-sub {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--hl-muted);
  margin-bottom: 16px;
}
.aut-hl-close__brand-link {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: rgba(255,255,255,.3);
  text-decoration: none;
  transition: color .2s;
}
.aut-hl-close__brand-link:hover { color: #fff; }

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .aut-hl-col__header,
  .aut-hl-principles__header { grid-template-columns: 1fr; }
  .aut-hl-principles__label { grid-column: 1; }
  .aut-hl-principles__grid { grid-template-columns: repeat(2,1fr); }
  .aut-hl-p:nth-child(4n) { border-right: 1px solid var(--hl-border-d); }
  .aut-hl-p:nth-child(2n) { border-right: none; }
  .aut-hl-paths { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 768px) {
  .aut-hl-hero__bar { grid-template-columns: 1fr; }
  .aut-hl-hero__claim { border-right: none; border-bottom: 1px solid var(--hl-border-d); }
  .aut-hl-hero__nav { align-items: flex-start; padding-left: 0; padding-top: 24px; }
  .aut-hl-arg__grid { grid-template-columns: 1fr; }
  .aut-hl-arg__title { position: static; }
  .aut-hl-doc { grid-template-columns: 60px 1fr; }
  .aut-hl-doc__thumb { display: none; }
  .aut-hl-doc__num { font-size: clamp(48px,10vw,72px); }
  .aut-hl-principles__grid { grid-template-columns: 1fr; }
  .aut-hl-p { border-right: none !important; }
  .aut-hl-paths { grid-template-columns: 1fr; }
  .aut-hl-form-fields { grid-template-columns: 1fr; }
  .aut-hl-close__inner { grid-template-columns: 1fr; }
  .aut-hl-close__brand { text-align: left; }
}

/* ── SECCIÓN IDEAS — frases literales de los manifiestos ── */
.aut-hl-ideas__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--hl-border-d);
  gap: 0;
}
.aut-hl-idea {
  padding: clamp(28px,3.5vw,48px) clamp(20px,2.5vw,36px) clamp(28px,3.5vw,48px) 0;
  border-right: 1px solid var(--hl-border-d);
  border-bottom: 1px solid var(--hl-border-d);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .5s ease, transform .5s ease;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
}
.aut-hl-idea.is-visible { opacity: 1; transform: translateY(0); }
.aut-hl-idea:nth-child(3n) { border-right: none; }
.aut-hl-idea__text {
  font-family: Georgia, serif;
  font-style: italic;
  font-size: clamp(13px,1.1vw,16px);
  line-height: 1.7;
  color: rgba(255,255,255,.55);
  flex: 1;
}
.aut-hl-idea__src {
  font-family: 'Montserrat', sans-serif;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--hl-gold);
  display: block;
}

@media (max-width: 1024px) {
  .aut-hl-ideas__grid { grid-template-columns: repeat(2,1fr); }
  .aut-hl-idea:nth-child(3n) { border-right: 1px solid var(--hl-border-d); }
  .aut-hl-idea:nth-child(2n) { border-right: none; }
}
@media (max-width: 768px) {
  .aut-hl-ideas__grid { grid-template-columns: 1fr; }
  .aut-hl-idea { border-right: none !important; }
}

/* ── Argumento — contenido Gutenberg ── */
.aut-hl-arg__gutenberg {
  max-width: 720px;
}
.aut-hl-arg__gutenberg p {
  font-family: Georgia, serif;
  font-size: clamp(16px, 1.2vw, 18px); /* 18-jul: unificado con el resto del cuerpo de lectura del sitio */
  line-height: 1.85;
  color: #555550 !important;
  margin-bottom: 1.6em;
}
.aut-hl-arg__gutenberg > p:first-child {
  font-size: clamp(18px,1.6vw,24px);
  color: #111111 !important;
  font-weight: 400;
}
.aut-hl-arg__gutenberg h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(24px,3vw,40px);
  text-transform: uppercase;
  letter-spacing: -.02em;
  color: #111111 !important;
  margin: 2.5em 0 .8em;
}
.aut-hl-arg__gutenberg strong { font-weight: 600; color: #111111 !important; }
.aut-hl-arg__gutenberg em { font-style: italic; }


/* ════════════════════════════════════════════════════════════════════
   HUB EDITORIAL v4 — Ajustes de diseño fino
   · Números de manifiesto visibles (opacity .28)
   · Texto superpuesto sobre hero de manifiesto (overlay inferior)
   · Imágenes desaturadas 80% → color total en hover
   · Proyectos: hero full-width + ficha de datos reales + excerpt
   · Espaciados ajustados — menos aire muerto
   · Transiciones entre secciones más definidas
════════════════════════════════════════════════════════════════════ */

/* ── Variables y base ── */
.aut2 {
  --paper:  #F5F2EC;
  --ink:    #0D0D0D;
  --void:   #000000;
  --muted:  #7A7672;
  --rule:   rgba(13,13,13,.1);
  --f:      'Montserrat', sans-serif;
  --side:   clamp(20px, 5vw, 80px);

  background: var(--paper);
  color: var(--ink);
  font-family: var(--f);
  -webkit-font-smoothing: antialiased;
}
.aut2 * { box-sizing: border-box; }

/* Todos los títulos h1/h2 de Autónoma: MAYÚSCULA + LIGHT (300) */
.aut2 h1,
.aut2 h2,
.aut2-cover__title,
.aut2-essay__kicker,
.aut2-chapters__title,
.aut2-index__title,
.aut2-projects__title,
.aut2-coda__big {
  font-family: 'Kiona', 'Montserrat', sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}
.aut2-chapters__title em { font-weight: 400 !important; }


/* ── Utilidades ── */
.aut2-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 16px;
  display: block;
}
.aut2-label--light { color: rgba(255,255,255,.45); }

.aut2-link {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid var(--ink);
  padding-bottom: 3px;
  transition: opacity .2s, letter-spacing .3s;
  font-family: var(--f);
}
.aut2-link:hover { opacity: .5; letter-spacing: .18em; }
.aut2-link--light { color: #fff; border-color: rgba(255,255,255,.6); }
.aut2-link--light:hover { opacity: .65; }

/* ════════════════════════════════════════════════════════════════
   1. PORTADA — hero fullscreen con imagen de fondo
   Logo en header, no en portada. Texto anclado al fondo.
════════════════════════════════════════════════════════════════ */

.aut2-cover {
  position: relative;
  width: 100%;
  min-height: 100vh;
  /* center 68%: el cordero de la foto vive en el tercio inferior de la
     imagen (no en el centro exacto) — sin esto, cover recorta parejo desde
     arriba y abajo y se pierde parte de él en viewports altos y angostos. */
  background: var(--ink) center 68% / cover no-repeat;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 var(--side) clamp(40px, 6vh, 72px);
  overflow: hidden;
}

.aut2-cover__veil {
  position: absolute; inset: 0;
  /* 17-jul, pedido del usuario: el sujeto de la foto (un cordero, centrado
     horizontalmente en la imagen original) quedaba tapado por el título.
     Con background-size:cover en un hero de 100vh, un viewport de escritorio
     normal es proporcionalmente MÁS ancho que esta imagen (~1.5:1) — el
     recorte de cover es VERTICAL, no horizontal, así que el ancho completo
     de la imagen se muestra siempre y el cordero queda SIEMPRE centrado en
     el viewport sin importar background-position. No hay forma de
     "correrlo" del medio corriendo la imagen — la solución real es angostar
     el bloque de texto (ver .aut2-cover__bottom más abajo) para que no
     llegue hasta el centro, y aclarar el velo salvo en la esquina donde
     vive el texto (antes oscurecía TODA la franja inferior al 95%, tapando
     al cordero aunque el texto no lo tocara). */
  background:
    linear-gradient(
      to bottom,
      rgba(0,0,0,.12) 0%,
      rgba(0,0,0,.18) 40%,
      rgba(0,0,0,.42) 72%,
      rgba(0,0,0,.68) 100%
    ),
    linear-gradient(
      to right,
      rgba(0,0,0,.78) 0%,
      rgba(0,0,0,.4) 32%,
      rgba(0,0,0,0) 60%
    );
  z-index: 0;
}
.aut2-cover > * { position: relative; z-index: 1; }

.aut2-cover__bottom {
  max-width: 620px; /* 1100px→620px: no debe llegar hasta el centro del hero, donde está el cordero */
}

.aut2-cover__title {
  font-size: clamp(38px, 4.6vw, 76px); /* techo reducido de 112px: menos ancho ocupado en pantallas grandes */
  font-weight: 300;
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 24px;
  text-wrap: balance;
}
/* Mismo amarillo dorado que el título de Soberanía (17-jul, pedido del
   usuario). #F0C238 en vez de #E0AC12 (versión clara) porque este hero
   siempre tiene fondo oscuro (foto + velo), como el modo oscuro de
   soberanía — ver var(--acc) en autonoma-vivid.css. */
.aut2-cover__title-accent { color: #F0C238; }

.aut2-cover__subtitle {
  font-size: clamp(16px, 1.5vw, 22px);
  font-weight: 700;
  line-height: 1.4;
  color: #fff;
  margin: 0 0 12px;
  max-width: 620px;
}

.aut2-cover__paragraph {
  font-size: clamp(14px, 1.2vw, 17px);
  font-weight: 400;
  line-height: 1.65;
  color: rgba(255,255,255,.82);
  margin: 0;
  max-width: 620px;
}

/* El subtítulo dentro del claim debe mantenerse en negrita */
.aut2-cover__claim p.aut2-cover__subtitle {
  font-weight: 700;
  color: #fff;
  font-size: clamp(16px, 1.5vw, 22px);
}
.aut2-cover__italic {
  font-style: italic;
  font-weight: 300;
  font-size: clamp(17px, 1.6vw, 24px);
  line-height: 1.4;
  color: rgba(255,255,255,.9);
  margin: 0 0 14px;
  max-width: 620px;
}
.aut2-cover__claim p {
  font-size: clamp(14px, 1.2vw, 17px);
  font-weight: 400;
  line-height: 1.6;
  color: rgba(255,255,255,.82);
  margin: 0 0 4px;
  max-width: 560px;
}

.aut2-cover__scroll {
  margin-top: 32px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  transition: color .2s;
}
.aut2-cover__scroll:hover { color: rgba(255,255,255,.85); }
.aut2-cover__scrollline {
  width: 36px; height: 1px;
  background: rgba(255,255,255,.35);
  flex-shrink: 0;
}

/* ════════════════════════════════════════════════════════════════
   2. EDITORIAL — dos columnas tipográficas
   Padding reducido vs v3 para eliminar aire muerto
════════════════════════════════════════════════════════════════ */

.aut2-essay {
  display: grid;
  grid-template-columns: 1fr 2fr; /* aside 1/3 — body 2/3 */
  border-bottom: 1px solid var(--rule);
}

.aut2-essay__aside {
  border-right: 1px solid var(--rule);
  padding: clamp(40px, 5vw, 64px) clamp(28px, 3vw, 44px);
}

.aut2-essay__kicker {
  font-size: clamp(28px, 3.5vw, 52px);
  font-weight: 300;
  line-height: 1.05;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  margin: 0 0 20px;
  text-wrap: balance;
}
.aut2-essay__kicker em {
  font-style: italic;
  text-transform: none;
}

.aut2-essay__meta {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.7;
  color: var(--muted);
}

.aut2-essay__body {
  padding: clamp(48px, 6vw, 88px) clamp(32px, 4vw, 64px);
}

.aut2-prose {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.75;
  max-width: 680px;
  margin-left: 0;
  margin-right: auto;
}
.aut2-prose p { margin-bottom: 1.3em; }
.aut2-prose strong { font-weight: 600; }

.aut2-essay__divider {
  margin: 32px 0;
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}
.aut2-essay__divider::before,
.aut2-essay__divider::after {
  content: ''; flex: 1; height: 1px; background: var(--rule);
}

@media (max-width: 800px) {
  .aut2-essay { grid-template-columns: 1fr; }
  .aut2-essay__aside { border-right: none; border-bottom: 1px solid var(--rule); }
}

/* ════════════════════════════════════════════════════════════════
   3. CESURA — frase a pantalla completa en negro
════════════════════════════════════════════════════════════════ */

.aut2-cesura {
  width: 100%;
  background: var(--void);
  padding: clamp(72px, 11vh, 140px) var(--side);
}

.aut2-cesura__quote {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

.aut2-cesura__quote p {
  font-size: clamp(22px, 3.5vw, 48px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: #fff;
  text-wrap: balance;
}

/* ════════════════════════════════════════════════════════════════
   4. CABECERA MANIFIESTOS
════════════════════════════════════════════════════════════════ */

.aut2-chapters__head {
  padding: clamp(48px, 6vw, 72px) var(--side) clamp(36px, 4vw, 52px);
  border-bottom: 1px solid var(--rule);
}

.aut2-chapters__title {
  font-size: clamp(28px, 4.5vw, 56px);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.02em;
  margin: 0 0 14px;
  text-wrap: balance;
}
.aut2-chapters__title em { font-style: italic; font-weight: 400; }

.aut2-chapters__intro {
  font-size: 15px;
  line-height: 1.6;
  color: var(--muted);
  max-width: 600px;
}
.aut2-chapters__intro p { margin: 0 0 0.8em; }
.aut2-chapters__intro p:last-child { margin-bottom: 0; }
.aut2-chapters__intro strong { font-weight: 600; color: var(--ink); }
.aut2-chapters__intro em { font-style: italic; }
.aut2-chapters__intro a { color: var(--ink); text-decoration: underline; }

/* ════════════════════════════════════════════════════════════════
   5. CADA MANIFIESTO
   Imagen HERO full-width con overlay + texto superpuesto inferior
   Número visible (opacity .28) debajo del hero
════════════════════════════════════════════════════════════════ */

.aut2-chapter {
  border-bottom: 1px solid var(--rule);
}

/* Hero: imagen a sangre con overlay y texto encima — cliqueable */
.aut2-chapter__hero {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 7;
  overflow: hidden;
  background: var(--ink);
  position: relative;
  text-decoration: none;
  cursor: pointer;
}

.aut2-chapter__hero img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  filter: grayscale(70%) brightness(.92);
  transition: filter .9s ease, transform .9s ease;
}
.aut2-chapter:hover .aut2-chapter__hero img {
  filter: grayscale(0) brightness(1);
  transform: scale(1.025);
}

/* Overlay inferior con título superpuesto */
.aut2-chapter__hero-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: clamp(24px, 4vw, 48px) var(--side) clamp(20px, 3vw, 36px);
  background: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.3) 55%, transparent 100%);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.aut2-chapter__overlay-left {
  display: flex;
  align-items: baseline;
  gap: 16px;
  max-width: 50%;
}

.aut2-chapter__overlay-num {
  font-family: 'Kiona', 'Montserrat', sans-serif;
  font-size: clamp(48px, 6vw, 96px);
  font-weight: 700;
  line-height: 0.85;
  color: rgba(255,255,255,.22);
  letter-spacing: -0.03em;
  flex-shrink: 0;
}

.aut2-chapter__overlay-title {
  font-size: clamp(36px, 6.75vw, 90px); /* 25% menos que clamp(48,9vw,120) */
  font-weight: 700;
  font-family: 'Kiona', 'Montserrat', sans-serif;
  line-height: 0.95;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: #fff;
  text-wrap: balance;
}

/* CTA del hero cliqueable */
.aut2-chapter__hero-cta {
  flex-shrink: 0;
  align-self: flex-end;
  font-family: var(--f);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
  padding: 12px 22px;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 999px;
  white-space: nowrap;
  transition: background .25s, color .25s, border-color .25s;
}
.aut2-chapter__hero:hover .aut2-chapter__hero-cta {
  background: #fff;
  color: var(--ink);
  border-color: #fff;
}

.aut2-chapter__overlay-sub {
  font-size: clamp(13px, 1vw, 15px);
  font-weight: 400;
  font-style: italic;
  color: rgba(255,255,255,.65);
  text-align: right;
  flex-shrink: 0;
  max-width: 280px;
  line-height: 1.4;
  align-self: flex-end;
}

/* Cuerpo debajo de la imagen — más compacto */
.aut2-chapter__body {
  padding: clamp(28px, 4vw, 48px) var(--side);
  display: grid;
  grid-template-columns: clamp(80px, 8vw, 140px) 1fr;
  gap: 0 clamp(24px, 4vw, 56px);
  align-items: start;
  background-color: var(--paper);
  color: var(--ink);
}

/* Número grande — visible pero no agresivo */
.aut2-chapter__num {
  font-family: 'Kiona', 'Montserrat', sans-serif;
  font-size: clamp(64px, 8vw, 120px);
  font-weight: 700;
  line-height: 0.85;
  letter-spacing: -0.03em;
  color: rgba(13,13,13,.28);   /* VISIBLE — no fantasma */
  display: block;
  user-select: none;
  padding-top: 4px;
}

.aut2-chapter__content { }

.aut2-chapter__title {
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.02em;
  margin-top: 20px;
  margin-bottom: 10px;
  max-width: 640px;
  text-wrap: balance;
}

.aut2-chapter__sub {
  font-size: 14px;
  font-weight: 400;
  font-style: italic;
  color: var(--muted);
  margin-bottom: 16px;
  max-width: 560px;
  line-height: 1.5;
}

.aut2-chapter__excerpt {
  font-size: 15px;
  line-height: 1.68;
  max-width: 580px;
  margin-bottom: 24px;
  color: rgba(13,13,13,.82);
}

.aut2-chapter__links { margin: 0; }

@media (max-width: 640px) {
  .aut2-chapter__body { grid-template-columns: 1fr; }
  .aut2-chapter__num { font-size: 56px; margin-bottom: -8px; }
  .aut2-chapter__hero { aspect-ratio: 4/3; }
  .aut2-chapter__overlay-sub { display: none; }
  /* En mobile el título ocupa todo el ancho disponible para buena lectura */
  .aut2-chapter__overlay-left { max-width: 100%; }
  .aut2-chapter__overlay-title { font-size: clamp(24px, 8.25vw, 42px); } /* 25% menos */
  .aut2-chapter__hero-overlay { padding-right: var(--side); }
  .aut2-chapter__hero-cta { display: none; }
}

/* ════════════════════════════════════════════════════════════════
   4b. MANIFIESTOS — fila split de mitades, alternada e intercalada
   (17-jul, reemplaza .aut2-chapter: pedido del usuario, "los manifiestos
   ocupan mucho lugar" — la versión vieja repetía el título dos veces, una
   superpuesto en un hero de aspect-ratio 16:7 y otra abajo en el body. Este
   layout muestra TODO en una sola fila de mitades: 50% imagen, 50% texto,
   sin duplicar nada. Alterna oscuro/claro e imagen izq/der por manifiesto
   (mockup del usuario: 03 oscuro+imagen-izq, 04 claro+imagen-der), como la
   sección "Autónoma en proyectos" pero a página completa.
   El bloque de texto SIEMPRE se apoya contra la costura (el borde que
   comparte con la imagen), no contra el borde exterior del viewport — así
   se leyó del mockup: en la card oscura (imagen a la izq) el texto está
   pegado al borde izquierdo de su mitad; en la card clara (imagen a la
   der) el texto está pegado al borde derecho de su mitad. Ambas veces el
   texto en sí queda alineado a la izquierda (lectura natural), lo que
   cambia es en qué lado de la mitad se ancla el bloque. */
/* CSS Grid en vez de dos mitades flex independientes (18-jul, pedido del
   usuario a partir de las guías de su mockup en Photoshop): el número y el
   título ocupan la MISMA fila de grid con align-self:end — sus bases
   quedan alineadas automáticamente sin coordenadas fijas, sin importar el
   largo del título. Antes el número se posicionaba con un "top" arbitrario
   pegado a la esquina de la foto, sin relación con el resto de la
   composición — exactamente lo que las guías señalaban que estaba mal.
   Fila 2 (resto: subtítulo + resumen completo + cta) crece lo que haga
   falta — el resumen ya no se trunca con "…", así que la fila necesita
   poder estirarse (min-height, no height fija). */
.aut2-mchapter {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr;
  min-height: clamp(480px, 44.7vw, 760px); /* proporción 1920:858 del mockup, como piso — crece si el texto lo pide */
}
.aut2-mchapter--dark  { background: #0a0a0a; color: #fff; }
.aut2-mchapter--light { background: var(--bg, #f4f1eb); color: var(--ink); }

.aut2-mchapter__media {
  grid-row: 1 / 3;
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
  background: #1a1a1a;
}
.aut2-mchapter--img-left  .aut2-mchapter__media { grid-column: 1; }
.aut2-mchapter--img-right .aut2-mchapter__media { grid-column: 2; }
.aut2-mchapter__media img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .9s ease;
}
.aut2-mchapter:hover .aut2-mchapter__media img { transform: scale(1.035); }

/* Número: comparte grid-row:1 con el título (ver .aut2-mchapter__titlewrap),
   mix-blend-mode:difference se ajusta solo a cualquier foto de portada —
   sin esto habría que curar el contraste manualmente por imagen. */
.aut2-mchapter__num {
  grid-row: 1;
  align-self: end;
  font-family: 'Kiona', 'Montserrat', sans-serif;
  font-size: clamp(64px, 8vw, 140px);
  font-weight: 400;
  line-height: 0.85;
  letter-spacing: -0.02em;
  color: #fff;
  mix-blend-mode: difference;
  user-select: none;
  padding: 0 clamp(20px, 3vw, 40px);
  margin-bottom: -2px;
}
.aut2-mchapter--img-left  .aut2-mchapter__num { grid-column: 1; justify-self: end; }
.aut2-mchapter--img-right .aut2-mchapter__num { grid-column: 2; justify-self: start; }

/* Título: misma fila que el número (grid-row:1, align-self:end) → misma
   línea de base, siempre, sea cual sea el largo de cada uno. El bloque se
   ancla contra la costura con la imagen (mismo criterio que el resto).
   Alineación del TEXTO (18-jul, corrección del usuario): siempre hacia la
   costura/centro de la página, no siempre a la izquierda — texto a la
   derecha de la imagen → alinea a la izquierda (ya hacia el centro); texto
   a la izquierda de la imagen → alinea a la DERECHA (así también apunta
   hacia el centro). El resultado: la alineación tipográfica siempre cae
   sobre el eje central de la página, en ambos casos. */
.aut2-mchapter__titlewrap {
  grid-row: 1;
  align-self: end;
  padding: clamp(32px, 5vw, 64px) clamp(32px, 5vw, 64px) 0;
  max-width: 480px;
}
.aut2-mchapter--img-left  .aut2-mchapter__titlewrap { grid-column: 2; justify-self: start; }
.aut2-mchapter--img-right .aut2-mchapter__titlewrap { grid-column: 1; justify-self: end; }

.aut2-mchapter__title {
  font-family: 'Kiona', 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: clamp(34px, 4.4vw, 64px);
  line-height: 0.95;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  margin: 0;
  text-wrap: balance;
}
.aut2-mchapter--img-left  .aut2-mchapter__title { text-align: left; }
.aut2-mchapter--img-right .aut2-mchapter__title { text-align: right; }

.aut2-mchapter__rest {
  grid-row: 2;
  padding: 14px clamp(32px, 5vw, 64px) clamp(32px, 5vw, 64px);
  max-width: 100%; /* 18-jul: era 480px, pedido del usuario — que use todo el ancho disponible de su columna */
}
.aut2-mchapter--img-left  .aut2-mchapter__rest { grid-column: 2; justify-self: start; text-align: left; }
.aut2-mchapter--img-right .aut2-mchapter__rest { grid-column: 1; justify-self: end; text-align: right; }

.aut2-mchapter__sub {
  font-family: var(--f);
  font-weight: 700;
  font-size: clamp(19px, 1.7vw, 25px);
  line-height: 1.3;
  margin: 0 0 16px;
}
.aut2-mchapter--dark  .aut2-mchapter__excerpt { color: rgba(255,255,255,.65); }
.aut2-mchapter--light .aut2-mchapter__excerpt { color: var(--muted); }
.aut2-mchapter__excerpt {
  font-family: var(--f);
  font-size: 15px;
  line-height: 1.65;
  margin: 0 0 28px;
}
/* Medida de lectura solo en desktop (18-jul, captura del usuario: con
   .aut2-mchapter__rest en 100% de ancho —pedido anterior— el párrafo largo
   quedaba de ~690px, demasiado ancho para leer cómodo). En mobile la
   columna ya es angosta por el viewport, no hace falta topearla ahí. */
@media (min-width: 901px) {
  .aut2-mchapter__excerpt { max-width: 620px; }
}
/* aut_hub_text/aut_summary son campos wysiwyg (HTML real, no texto plano) —
   estilos para el contenido interno, mismo criterio que .aut2-prose. */
.aut2-mchapter__excerpt p { margin: 0 0 1em; }
.aut2-mchapter__excerpt p:last-child { margin-bottom: 0; font-size: clamp(16px, 1.2vw, 18px); }
.aut2-mchapter__excerpt strong { font-weight: 700; }
.aut2-mchapter--dark  .aut2-mchapter__excerpt a { color: #fff; }
.aut2-mchapter--light .aut2-mchapter__excerpt a { color: var(--ink); }

/* Cápsula CTA — siempre invertida respecto del fondo de su card (blanca
   sólida sobre oscuro, oscura sólida sobre claro), mismo radio 999px que
   el resto de las cápsulas del sitio. */
.aut2-mchapter__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--f);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 14px 26px;
  border-radius: 999px;
  transition: opacity .2s, transform .2s;
}
.aut2-mchapter--dark  .aut2-mchapter__cta { background: #fff; color: #0a0a0a; }
.aut2-mchapter--light .aut2-mchapter__cta { background: var(--ink); color: var(--bg, #f4f1eb); }
.aut2-mchapter__cta:hover { opacity: .8; }

@media (max-width: 900px) {
  /* Mobile: columna simple, imagen arriba y el resto abajo en flujo
     normal — el número ya no va superpuesto sobre la foto (no hay costura
     de la cual "colgar" su alineación en una sola columna), pasa a ser
     texto normal justo antes del título. */
  .aut2-mchapter {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto;
    min-height: 0;
  }
  .aut2-mchapter__media,
  .aut2-mchapter--img-left  .aut2-mchapter__media,
  .aut2-mchapter--img-right .aut2-mchapter__media { grid-column: 1; grid-row: 1; aspect-ratio: 4/3; }
  .aut2-mchapter__num,
  .aut2-mchapter--img-left  .aut2-mchapter__num,
  .aut2-mchapter--img-right .aut2-mchapter__num {
    grid-column: 1; grid-row: 2; justify-self: start; align-self: auto;
    color: inherit; mix-blend-mode: normal;
    font-size: clamp(44px, 13vw, 64px);
    padding: 24px var(--side) 0;
    margin-bottom: 0;
  }
  .aut2-mchapter__titlewrap,
  .aut2-mchapter--img-left  .aut2-mchapter__titlewrap,
  .aut2-mchapter--img-right .aut2-mchapter__titlewrap {
    grid-column: 1; grid-row: 3; justify-self: start; align-self: auto;
    padding: 6px var(--side) 0; max-width: 100%;
  }
  .aut2-mchapter__rest,
  .aut2-mchapter--img-left  .aut2-mchapter__rest,
  .aut2-mchapter--img-right .aut2-mchapter__rest {
    grid-column: 1; grid-row: 4; justify-self: start;
    padding: 14px var(--side) 32px; max-width: 100%;
  }
  .aut2-mchapter__title { font-size: clamp(30px, 9vw, 44px); }
}

/* ════════════════════════════════════════════════════════════════
   6. VIDEO
════════════════════════════════════════════════════════════════ */

.aut2-film {
  border-bottom: 1px solid var(--rule);
  padding: clamp(40px, 5vw, 64px) var(--side);
  background: var(--ink);
}
.aut2-film .aut2-label { color: rgba(255,255,255,.4); }
.aut2-film__wrap {
  position: relative; padding-bottom: 56.25%;
  background: #000; margin-top: 16px;
}
.aut2-film__wrap iframe {
  position: absolute; inset: 0;
  width: 100%; height: 100%; border: none;
}

/* ════════════════════════════════════════════════════════════════
   7. IDEAS — lista vertical tipo índice
   Padding reducido, hover sutil
════════════════════════════════════════════════════════════════ */

.aut2-index { border-bottom: 1px solid var(--rule); }

.aut2-index__head {
  padding: clamp(40px, 5vw, 64px) var(--side) clamp(28px, 3.5vw, 44px);
  border-bottom: 1px solid var(--rule);
}

.aut2-index__title {
  font-size: clamp(24px, 3.5vw, 44px);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.02em;
  max-width: 560px;
  margin: 0;
}

.aut2-index__list { list-style: none; padding: 0; margin: 0; }

.aut2-index__item { border-bottom: 1px solid var(--rule); }
.aut2-index__item:last-child { border-bottom: none; }

.aut2-index__item a {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: clamp(16px, 3vw, 40px);
  padding: clamp(20px, 2.8vh, 32px) var(--side);
  text-decoration: none;
  color: var(--ink);
  transition: padding-left .22s ease, background .18s;
  align-items: center;
}
.aut2-index__item a:hover {
  padding-left: calc(var(--side) + 14px);
  background: rgba(13,13,13,.025);
}

.aut2-index__num {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.aut2-index__cat {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 5px;
  display: block;
}

.aut2-index__entry {
  font-size: clamp(16px, 1.7vw, 22px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin-bottom: 5px;
}

.aut2-index__excerpt {
  font-size: 13px;
  line-height: 1.6;
  color: var(--muted);
  font-weight: 400;
}

.aut2-index__more {
  padding: clamp(24px, 3.5vh, 40px) var(--side);
}

@media (max-width: 580px) {
  .aut2-index__item a { grid-template-columns: 1fr; gap: 4px; }
}

/* ════════════════════════════════════════════════════════════════
   8. PROYECTOS AUTÓNOMOS
   Hero fullwidth + ficha de datos reales debajo + excerpt
   Formato: imagen panorámica → strip de datos → excerpt + link
════════════════════════════════════════════════════════════════ */

.aut2-projects { border-bottom: 1px solid var(--rule); }

.aut2-projects__head {
  padding: clamp(40px, 5vw, 64px) var(--side) clamp(28px, 3.5vw, 44px);
  border-bottom: 1px solid var(--rule);
  background: #bdb8ae;
}

.aut2-projects__title {
  font-size: clamp(24px, 3.5vw, 44px);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.02em;
  max-width: 560px;
  margin: 0 0 10px;
}

.aut2-projects__sub {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.6;
  max-width: 620px;
}

/* Grid de proyectos — 2 col desktop/tablet, 1 col mobile (estilo home LY) */
.aut2-projects__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
}
.aut2-projects__grid .ly-arc-card {
  border-bottom: 1px solid var(--rule);
}
.aut2-projects__grid .ly-arc-card:nth-child(2n) { border-right: none; }
@media (max-width: 640px) {
  .aut2-projects__grid { grid-template-columns: 1fr; }
  .aut2-projects__grid .ly-arc-card { border-right: none; }
}

/* Cada proyecto */
.aut2-project {
  border-bottom: 1px solid var(--rule);
  text-decoration: none;
  color: var(--ink);
  display: block;
}
.aut2-project:last-child { border-bottom: none; }

/* Hero full-width con overlay inferior */
.aut2-project__hero {
  width: 100%;
  aspect-ratio: 21 / 8;
  overflow: hidden;
  background: var(--ink);
  position: relative;
}

.aut2-project__hero img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  filter: grayscale(60%) brightness(.95);
  transition: filter .8s ease, transform .8s ease;
}
.aut2-project:hover .aut2-project__hero img {
  filter: grayscale(0) brightness(1.02);
  transform: scale(1.02);
}

/* Nombre del proyecto superpuesto sobre la imagen */
.aut2-project__hero-label {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: clamp(16px, 3vw, 32px) var(--side) clamp(14px, 2.5vw, 28px);
  background: linear-gradient(to top, rgba(0,0,0,.65) 0%, transparent 100%);
}

.aut2-project__hero-title {
  font-size: clamp(20px, 2.5vw, 32px);
  font-weight: 700;
  line-height: 1.0;
  letter-spacing: -0.015em;
  color: #fff;
}

/* Strip de metadatos — horizontal, compacto */
.aut2-project__meta-strip {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--rule);
  overflow-x: auto;
  scrollbar-width: none;
}
.aut2-project__meta-strip::-webkit-scrollbar { display: none; }

.aut2-project__meta-item {
  flex: 1;
  min-width: 100px;
  padding: clamp(12px, 1.5vw, 18px) var(--side);
  border-right: 1px solid var(--rule);
}
.aut2-project__meta-item:last-child { border-right: none; }

.aut2-project__meta-label {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  display: block;
  margin-bottom: 4px;
}

.aut2-project__meta-value {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.3;
}

/* Excerpt + link */
.aut2-project__body {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: clamp(24px, 4vw, 56px);
  padding: clamp(20px, 2.8vw, 32px) var(--side);
  align-items: end;
}

.aut2-project__excerpt {
  font-size: 14px;
  line-height: 1.65;
  color: rgba(13,13,13,.75);
  max-width: 640px;
}

@media (max-width: 760px) {
  .aut2-project__hero { aspect-ratio: 16/9; }
  .aut2-project__meta-strip { flex-wrap: wrap; }
  .aut2-project__meta-item { flex: 0 0 50%; min-width: 50%; }
  .aut2-project__body { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════════
   9. COLOFÓN — papel (izq) + negro (der)
════════════════════════════════════════════════════════════════ */

.aut2-coda {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.aut2-coda__l {
  background: #bdb8ae;
  padding: clamp(48px, 6vw, 88px) var(--side);
  border-right: 1px solid var(--rule);
}

.aut2-coda__r {
  background: #666155;
  color: #fff;
  padding: clamp(48px, 6vw, 88px) var(--side);
}

.aut2-coda__big {
  font-size: clamp(24px, 3vw, 42px);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.015em;
  margin-bottom: 20px;
  text-wrap: balance;
}

.aut2-coda__text {
  font-size: 15px;
  line-height: 1.68;
  margin-bottom: 28px;
}
.aut2-coda__r .aut2-coda__text { color: rgba(255,255,255,.72); }

.aut2-coda__form { margin-top: 24px; }
.aut2-coda__form-row {
  display: flex;
  border-bottom: 1px solid rgba(255,255,255,.35);
}
.aut2-coda__form-row input {
  flex: 1;
  background: transparent; border: none;
  color: #fff;
  padding: 10px 0;
  font-family: var(--f); font-size: 14px; outline: none;
}
.aut2-coda__form-row input::placeholder { color: rgba(255,255,255,.38); }
.aut2-coda__form-row button {
  background: transparent; border: none; color: #fff;
  cursor: pointer;
  font-family: var(--f);
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase;
  padding: 0 0 0 14px;
  transition: opacity .2s;
}
.aut2-coda__form-row button:hover { opacity: .6; }

/* Checkbox de consentimiento (17-jul, pedido del usuario: opt-in explícito
   + link a la política de privacidad, requerido antes de poder enviar). */
.aut2-coda__consent {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 14px;
  cursor: pointer;
}
.aut2-coda__consent input[type="checkbox"] {
  flex-shrink: 0;
  width: 15px; height: 15px;
  margin-top: 2px;
  accent-color: #fff;
  cursor: pointer;
}
.aut2-coda__consent span {
  font-family: var(--f);
  font-size: 12px;
  line-height: 1.5;
  color: rgba(255,255,255,.6);
}
.aut2-coda__consent a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.aut2-coda__consent a:hover { opacity: .75; }

@media (max-width: 800px) {
  .aut2-coda { grid-template-columns: 1fr; }
  .aut2-coda__l { border-right: none; border-bottom: 1px solid var(--rule); }
}

/* ════════════════════════════════════════════════════════════════
   UNIFICACIÓN VISUAL — Manifiestos (single) con el hub aut2
   Sobreescribe tipografías y colores de las clases aut-* viejas
   para que coincidan con el sistema final del hub:
   - Pesos light (300) en títulos
   - Montserrat en todo (sin Georgia serif)
   - Sin dorado #c8b77a → tokens del sistema
   - Mayúscula + light en h1/h2
   - Fondos paper/ink en lugar de negro con dorado
════════════════════════════════════════════════════════════════ */

/* Tokens compartidos para los wrappers de single */
.aut-hub, .aut-single, .aut-landing {
  --paper:#F5F2EC; --ink:#0D0D0D; --void:#000000;
  --muted:#7A7672; --rule:rgba(13,13,13,.1);
  font-family: 'Montserrat', sans-serif !important;
}

/* ── HERO del manifiesto ── */
.aut-piece-hero__num {
  font-weight: 300 !important;
  color: rgba(255,255,255,.32) !important;
}
.aut-piece-hero__type {
  font-weight: 500 !important;
  letter-spacing: .18em !important;
  color: rgba(255,255,255,.55) !important;
}
.aut-piece-hero__title {
  font-weight: 300 !important;
  font-size: clamp(48px, 9vw, 120px) !important;
  text-transform: uppercase !important;
  font-family: 'Montserrat', sans-serif !important;
}
.aut-piece-hero__subtitle {
  font-family: 'Montserrat', sans-serif !important;
  font-style: normal !important;
  font-weight: 400 !important;
  color: rgba(255,255,255,.7) !important;
}
.aut-piece-hero__veil {
  background: linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.2) 60%,rgba(0,0,0,.1) 100%) !important;
}

/* ── BOTONES — paleta del sistema (sin dorado) ── */
.aut-piece-btn {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: .1em !important;
  border-radius: 999px !important;
}
.aut-piece-btn--primary {
  /* --void, no --ink: mismo motivo que .aut-landing__cta más abajo — este
     botón sólido está pensado para tener SIEMPRE fondo oscuro + texto
     blanco, en los dos modos. Con --ink (invertible en dark mode desde el
     18-jul) el botón se volvía casi blanco con texto blanco — ilegible. */
  background: var(--void) !important;
  color: #fff !important;
}
.aut-piece-btn--primary:hover {
  background: #333 !important;
  color: #fff !important;
}
.aut-piece-btn--secondary {
  background: transparent !important;
  color: var(--ink) !important;
  border: 1px solid var(--rule) !important;
}
.aut-piece-btn--secondary:hover {
  background: var(--void) !important;
  color: #fff !important;
}

/* ── TEXTO EDITORIAL — Montserrat, no Georgia ── */
.aut-summary-text,
.aut-landing__summary-text {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(16px, 1.2vw, 18px) !important; /* 18-jul: era 15px fijo, se había escapado de la unificación tipográfica del sitio (esta regla apunta al contenedor, no a "p" — mi audit anterior sólo buscaba selectores "p" directos) */
  line-height: 1.75 !important;
  color: var(--ink) !important;
}
.aut-summary-text strong,
.aut-landing__summary-text strong {
  font-weight: 600 !important;
  color: var(--ink) !important;
}
.aut-summary-text blockquote,
.aut-landing__summary-text blockquote {
  border-left: 2px solid var(--ink) !important;
  color: var(--muted) !important;
}

/* ── NÚMEROS GRANDES — light, no black ── */
.aut-landing__big-num {
  font-weight: 300 !important;
  color: rgba(13,13,13,.08) !important;
  font-family: 'Montserrat', sans-serif !important;
}

/* ── ASIDE — metadata ── */
.aut-landing__aside-type {
  font-weight: 600 !important;
  letter-spacing: .22em !important;
  color: var(--muted) !important;
  font-family: 'Montserrat', sans-serif !important;
}
.aut-landing__aside-sub {
  font-family: 'Montserrat', sans-serif !important;
  font-style: normal !important;
  color: var(--muted) !important;
}
.aut-landing__aside-cta {
  font-family: 'Montserrat', sans-serif !important;
}

/* ── CTA final / títulos h2 — mayúscula light ── */
.aut-landing__cta-title,
.aut-landing__coleccion .aut-doc-name {
  font-weight: 300 !important;
  text-transform: uppercase !important;
  font-family: 'Montserrat', sans-serif !important;
}
.aut-landing__cta-sub {
  font-family: 'Montserrat', sans-serif !important;
  font-style: normal !important;
}
.aut-landing__section-label,
.aut-landing__cta-label {
  font-weight: 600 !important;
  letter-spacing: .22em !important;
  color: var(--muted) !important;
}

/* ── FONDOS coherentes con hub ── */
.aut-landing__summary,
.aut-landing__coleccion {
  background: var(--paper) !important;
  color: var(--ink) !important;
}
.aut-landing__cta {
  /* --void (no --ink): esta banda de cierre está pensada para ser SIEMPRE
     oscura con texto blanco, en los dos modos — --void nunca cambia entre
     claro/oscuro (a diferencia de --ink, que ahora sí se invierte en dark
     mode desde el fix del 18-jul). Con --ink acá, en dark mode el fondo se
     volvía casi blanco con el texto blanco fijo de abajo — ilegible. */
  background: var(--void) !important;
  color: #fff !important;
}
/* 19-jul, bug reportado por el usuario con captura: el botón "Leer ahora"
   (.aut-piece-btn--primary) también usa --void desde el mismo fix de
   ayer — mismo negro que el fondo de ESTA sección en particular, quedaba
   invisible ("negro sobre negro"). Acá, más específico, se invierte a
   blanco sólido — el resto de los usos de .aut-piece-btn--primary (que NO
   viven sobre un fondo ya negro) no se tocan. */
.aut-landing__cta .aut-piece-btn--primary {
  background: #fff !important;
  color: #000 !important;
}
.aut-landing__cta .aut-piece-btn--primary:hover {
  background: #e0cc8f !important;
  color: #000 !important;
}

/* Cierre (aut-doc-close) — colores del colofón del hub */
.aut-doc-close {
  background: #666155 !important;
  color: #fff !important;
  border-top: none !important;
}
.aut-doc-close__link { color: #fff !important; }

/* Coleccion docs — sin dorado */
.aut-doc-number { color: var(--muted) !important; font-weight: 300 !important; }
.aut-doc-name a { color: var(--ink) !important; }
.aut-doc-name a:hover { color: var(--muted) !important; }
.aut-doc-subtitle { font-family: 'Montserrat', sans-serif !important; font-style: normal !important; }


/* ============================================================
   LANGUAGE SWITCHER EN AUTÓNOMA
   Hereda el mix-blend-mode:exclusion del .aut-header.
   Solo necesita ajustar estados scrolled específicos.
============================================================ */

.aut-lang-switch {
	padding-right: 4px;
	margin-right: 2px;
	border-right: none;
}

/* En scroll (fondo oscuro), el switcher mantiene texto blanco */
.aut-header.is-scrolled .ly-lang-switch__btn,
.aut-header.is-scrolled .ly-lang-switch__option {
	color: rgba(255,255,255,.85);
}
.aut-header.is-scrolled .ly-lang-switch__btn:hover,
.aut-header.is-scrolled .ly-lang-switch__option:hover {
	color: #fff;
}

/* El dropdown sobre fondo oscuro de Autónoma */
.aut-header .ly-lang-switch__dropdown {
	background: rgba(12,12,12,.96);
	border-color: rgba(255,255,255,.1);
}

/* ── Autónoma hero: mobile top-aligned ────────────────────────── */
@media (max-width: 768px) {
  .aut-hero__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .aut-hero__title {
    max-width: 100%;
    order: -1; /* siempre primero en mobile */
  }
}

/* ============================================================
   DARK MODE — OVERRIDES AUTÓNOMA
   ────────────────────────────────────────────────────────────
   CLAVE: la sección .aut2 define variables locales propias
   (--paper, --ink, etc.) que NO heredan del sistema global.
   Redefinirlas en dark mode arregla de una sola vez todos los
   fondos y textos que las usan (46 ocurrencias).
============================================================ */

/* Variables locales de .aut2 en dark — fondo oscuro, texto claro */
.ly-dark-mode .aut2 {
  --paper: #111111;
  --ink:   #f2f0eb;
  --void:  #000000;
  --muted: #8a8680;
  --rule:  rgba(255,255,255,.12);
}

/* 18-jul, bug reportado por el usuario: las páginas de introducción de los
   manifiestos (single-autonoma_piece.php, ej. /autonoma/el-mundo-que-viene/)
   no pasaban a modo oscuro. Causa real (la encontré recién en vivo, con
   getComputedStyle, después de un primer intento insuficiente): el bloque
   "Tokens compartidos para los wrappers de single" (más abajo en este mismo
   archivo) define --paper/--ink/--muted/--rule con
   ".aut-hub, .aut-single, .aut-landing { --paper:#F5F2EC; ... }" — TRES
   selectores directos, sin versión de dark mode. Un primer intento mío de
   redefinir la variable solo en ".ly-dark-mode .aut-single" no alcanzaba:
   como ".aut-landing" (el hijo real donde vive el contenido) TIENE su
   propia declaración de --paper en ESE MISMO bloque, es el ancestro MÁS
   CERCANO al elemento — y gana sobre lo heredado de .aut-single, que es
   más lejano en el árbol. Hay que redefinir la oscura en los mismos TRES
   selectores que la clara, no en uno solo. */
.ly-dark-mode .aut-hub,
.ly-dark-mode .aut-single,
.ly-dark-mode .aut-landing {
  --paper: #111111;
  --ink:   #f2f0eb;
  --void:  #000000;
  --muted: #8a8680;
  --rule:  rgba(255,255,255,.12);
}

/* Fondo general del hub Autónoma en dark */
.ly-dark-mode.is-autonoma,
.ly-dark-mode .aut-hub,
.ly-dark-mode .aut-landing,
.ly-dark-mode .aut-section,
.ly-dark-mode .aut2-essay,
.ly-dark-mode .aut2-chapters {
  background: #111111;
  color: #f2f0eb;
}

/* Formularios y paneles del Highlevel form */
.ly-dark-mode .aut-hl-form-wrap,
.ly-dark-mode .aut-hl-confirm {
  background: #1a1a1a;
  border-color: rgba(255,255,255,.12);
}
.ly-dark-mode .aut-hl-form-error {
  background: #2a1a1a;
  border-color: #7f3333;
}
.ly-dark-mode .aut-hl-path:hover {
  background: #242424;
}

/* Cards de capítulos */
.ly-dark-mode .aut2-chapter__row,
.ly-dark-mode .aut2-chapter {
  background-color: #161616;
}
/* Body del manifiesto: el fondo (var--paper) ya se invierte; falta forzar
   los textos que tenían color negro hardcodeado (número y excerpt) para
   que contrasten sobre el fondo oscuro en dark mode. */
.ly-dark-mode .aut2-chapter__body {
  background-color: #111111;
}
.ly-dark-mode .aut2-chapter__num {
  color: rgba(242,240,235,.30);
}
.ly-dark-mode .aut2-chapter__excerpt {
  color: rgba(242,240,235,.82);
}
.ly-dark-mode .aut2-chapter__title {
  color: #f2f0eb;
}
.ly-dark-mode .aut2-chapter__hero:hover .aut2-chapter__hero-cta {
  background: #f2f0eb;
  color: #111;
}

/* Placeholder de imágenes Autónoma */
.ly-dark-mode .ly-aut-card__ph {
  background: #2a2a2a;
}

/* ============================================================
   HERO HUB AUTÓNOMA — AJUSTES
============================================================ */

/* Párrafo del hero (ej: "...el siglo XXI...") en negrita */
.aut2-cover__paragraph {
  font-weight: 700;
  color: rgba(255,255,255,.92);
}

/* MOBILE: que el texto no tape la imagen de fondo.
   - Reservamos la mitad superior para que se vea la foto.
   - El bloque de texto se apoya abajo sobre un degradado más
     fuerte y opaco, garantizando legibilidad sin cubrir todo. */
@media (max-width: 768px) {
  .aut2-cover {
    min-height: 100svh;            /* svh: respeta barra del browser mobile */
    justify-content: flex-end;
    padding-bottom: clamp(32px, 5vh, 48px);
  }
  /* La foto ocupa arriba; el texto se concentra en el tercio inferior.
     18-jul, capturas del usuario: el titulo de 3 líneas seguía tocando la
     cabeza del cordero. Más aire arriba (40vh→48vh) + tope de fuente más
     chico para que el bloque de texto ocupe menos alto. */
  .aut2-cover__bottom {
    padding-top: 48vh;
  }
  /* Máscara con corte definido (18-jul, pedido del usuario: "¿debería tener
     una máscara con gradiente como el mapa de soberanía?" — sí, mismo
     lenguaje que .aut-sob-hero__veil en mobile: 0% completamente limpio
     sobre la foto, después un quiebre rápido a sólido detrás del texto, en
     vez de una rampa pareja de punta a punta que oscurecía la foto entera
     sin necesidad). */
  .aut2-cover__veil {
    background: linear-gradient(
      to bottom,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,0) 42%,
      rgba(0,0,0,.35) 54%,
      rgba(0,0,0,.78) 68%,
      rgba(0,0,0,.95) 100%
    );
  }
  .aut2-cover__title {
    font-size: clamp(26px, 7vw, 42px);
    line-height: 1.05;
    margin-bottom: 14px;
  }
  .aut2-cover__subtitle { font-size: 15px; }
  .aut2-cover__paragraph { font-size: 13px; line-height: 1.5; }
}

/* ============================================================
   INVOLUCRATE — Funnel de captación Autónoma
   Reutiliza .ly-ct-* de ly-custom.css; estos son ajustes
   propios del micrositio (encabezado y contexto .aut2).
============================================================ */
.aut-involucrate {
  background: var(--paper);
  color: var(--ink);
  min-height: 100vh;
  padding-top: 72px; /* altura del header fijo */
}
.aut-inv-head {
  padding: clamp(48px,8vh,96px) var(--side) clamp(24px,4vh,48px);
}
.aut-inv-head .aut2-label {
  margin-bottom: 16px;
}
.aut-inv-head .ly-ct-head__q {
  font-family: var(--f);
  font-weight: 300;
  letter-spacing: -0.02em;
}

/* Dark mode del funnel */
.ly-dark-mode .aut-involucrate {
  background: #111111;
  color: #f2f0eb;
}

/* ============================================================
   CONTROL FLOTANTE DE TAMAÑO DE LECTURA
   ────────────────────────────────────────────────────────────
   Botón flotante (abajo derecha) que escala el cuerpo de texto
   de los documentos de lectura. Persiste en localStorage.
   La escala se aplica vía --reading-scale sobre el contenido.
============================================================ */

/* Aplicar la escala a los textos del documento.
   Usamos calc() multiplicando el clamp base por la variable. */
.aut-lectura-content {
  --reading-scale: 1;
}
.aut-lectura-content p,
.aut-lectura-content li {
  /* 18-jul: tipografia de lectura unificada en TODO el sitio a
     clamp(16px,1.2vw,18px) — antes cada seccion (lectura de manifiestos,
     highlevel, proceso, nosotros, proyecto, disciplina, pensamiento) tenia
     su propio tamaño de cuerpo suelto, entre 14px y 20px de minimo/maximo,
     sin ningun motivo real para diferir. Bloques de cita destacada
     (blockquote) y el "lead paragraph" de highlevel quedan igual a
     proposito — son un tratamiento tipografico distinto, no el cuerpo. */
  font-size: calc(clamp(16px, 1.2vw, 18px) * var(--reading-scale));
  line-height: 1.75;
  transition: font-size .18s ease;
}
.aut-lectura-content h2 {
  font-size: calc(clamp(20px, 2vw, 28px) * var(--reading-scale));
  transition: font-size .18s ease;
}
.aut-lectura-content h3 {
  font-size: calc(clamp(13px, 1.1vw, 15px) * var(--reading-scale));
  transition: font-size .18s ease;
}
.aut-lectura-content blockquote {
  font-size: calc(clamp(19px, 1.6vw, 24px) * var(--reading-scale));
  transition: font-size .18s ease;
}

/* Contenedor flotante */
.aut-fontsize {
  position: fixed;
  right: 32px;
  bottom: 32px;              /* misma altura que el toggle de dark mode (izquierda) */
  z-index: 950;
  width: 40px;              /* solo el ancho del botón; el panel es absolute */
  height: 40px;
}

/* Botón principal (toggle) */
.aut-fontsize__toggle {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: rgba(244,241,235,.92);
  color: #111;
  border: 1px solid rgba(0,0,0,.1);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  gap: 1px;
  line-height: 1;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 4px 16px rgba(0,0,0,.18);
  transition: transform .18s, background .18s;
  font-family: 'Montserrat', sans-serif;
}
.aut-fontsize__toggle:hover { transform: scale(1.07); }
.aut-fontsize__icon-sm { font-size: 12px; font-weight: 600; line-height: 1; }
.aut-fontsize__icon-lg { font-size: 17px; font-weight: 700; line-height: 1; }

/* Panel de opciones */
.aut-fontsize__panel {
  position: absolute;
  bottom: calc(100% + 10px);   /* justo encima del botón */
  left: 50%;
  transform: translateX(-50%) translateY(8px) scale(.96);
  transform-origin: bottom center;
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: rgba(20,20,20,.92);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 28px;
  padding: 8px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 6px 20px rgba(0,0,0,.22);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px) scale(.96);
  transform-origin: bottom center;
  transition: opacity .18s, transform .18s;
}
.aut-fontsize.is-open .aut-fontsize__panel {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0) scale(1);
}

.aut-fontsize__btn {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: transparent;
  border: none;
  color: rgba(242,240,235,.7);
  cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  display: flex; align-items: center; justify-content: center;
  position: relative;
  transition: background .15s, color .15s;
}
.aut-fontsize__btn:hover { background: rgba(255,255,255,.08); color: #fff; }
.aut-fontsize__btn.is-active {
  background: var(--acc, #b6a16b);
  color: #111;
}
.aut-fontsize__btn[data-size="sm"]      { font-size: 13px; }
.aut-fontsize__btn[data-size="md"]      { font-size: 17px; }
.aut-fontsize__btn--lg                  { font-size: 20px; }
.aut-fontsize__btn--xl                  { font-size: 24px; }
.aut-fontsize__minus,
.aut-fontsize__plus {
  font-size: 10px;
  position: relative;
  top: -6px;
  margin-left: 1px;
}

/* Dark mode — el control ya es oscuro; en dark mode lo aclaramos un toque */
.ly-dark-mode .aut-fontsize__toggle {
  background: rgba(20,20,20,.92);
  border-color: rgba(255,255,255,.12);
  color: #f2f0eb;
}
.ly-dark-mode .aut-fontsize__panel {
  background: rgba(20,20,20,.92);
  border-color: rgba(255,255,255,.12);
}

/* Mobile — un poco más arriba y compacto */
@media (max-width: 768px) {
  .aut-fontsize {
    right: 16px;
    bottom: 16px;
  }
  .aut-fontsize__toggle { width: 36px; height: 36px; }
  .aut-fontsize__btn { width: 38px; height: 38px; }
}

/* Ocultar el control si se imprime */
@media print {
  .aut-fontsize { display: none; }
}

/* ============================================================
   PROGRESO DE LECTURA + CINTA "CONTINUAR"
============================================================ */

/* Barra de progreso — fina, fija arriba, bajo la barra de lectura */
.aut-reading-progress {
  position: fixed;
  top: 56px;                  /* debajo de aut-lectura-bar */
  left: 0; right: 0;
  height: 3px;
  background: transparent;
  z-index: 940;
  pointer-events: none;
}
.aut-reading-progress__bar {
  height: 100%;
  width: 0;
  background: var(--acc, #b6a16b);
  transition: width .1s linear;
}

/* Cinta "Seguías en..." — discreta, abajo centrada */
.aut-resume {
  position: fixed;
  left: 50%;
  bottom: clamp(20px, 4vh, 36px);
  transform: translateX(-50%) translateY(16px);
  z-index: 960;
  opacity: 0;
  transition: opacity .3s, transform .3s;
  max-width: calc(100vw - 32px);
}
.aut-resume.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.aut-resume__inner {
  display: flex;
  align-items: center;
  gap: 16px;
  background: rgba(20,20,20,.94);
  color: #f2f0eb;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 40px;
  padding: 12px 14px 12px 22px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 8px 28px rgba(0,0,0,.28);
}
.aut-resume__text {
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 50vw;
}
.aut-resume__chapter {
  font-weight: 600;
  color: #fff;
}
.aut-resume__pct {
  color: rgba(242,240,235,.55);
  margin-left: 4px;
}
.aut-resume__continue {
  flex-shrink: 0;
  background: var(--acc, #b6a16b);
  color: #111;
  border: none;
  border-radius: 24px;
  padding: 9px 18px;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 7px;
  transition: background .18s, transform .18s;
}
.aut-resume__continue:hover {
  transform: translateY(-1px);
  background: #c8b77a;
}
.aut-resume__continue i { font-size: 11px; }
.aut-resume__dismiss {
  flex-shrink: 0;
  background: transparent;
  border: none;
  color: rgba(242,240,235,.55);
  cursor: pointer;
  width: 32px; height: 32px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s, color .15s;
}
.aut-resume__dismiss:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
}

/* Mobile — la cinta se adapta */
@media (max-width: 600px) {
  .aut-resume__inner {
    gap: 10px;
    padding: 10px 12px 10px 18px;
  }
  .aut-resume__text {
    font-size: 12px;
    max-width: 42vw;
  }
  .aut-resume__continue {
    padding: 8px 14px;
    font-size: 12px;
  }
  .aut-resume__continue span { display: none; }  /* solo el ícono en pantallas chicas si hace falta */
}

/* No mostrar al imprimir */
@media print {
  .aut-reading-progress,
  .aut-resume { display: none; }
}

/* ============================================================
   DARK MODE — CONTENIDO DE LECTURA Y TOC
   ────────────────────────────────────────────────────────────
   Los textos del documento usan colores oscuros fijos (#222,
   #888, #111...) que sobre fondo oscuro no tienen contraste.
   Aquí los aclaramos para lectura cómoda en dark mode.
============================================================ */

/* Cuerpo del documento */
.ly-dark-mode .aut-lectura-content p,
.ly-dark-mode .aut-lectura-content li {
  color: #e8e5de;
}
.ly-dark-mode .aut-lectura-content h2 {
  color: #f2f0eb;
}
.ly-dark-mode .aut-lectura-content strong {
  color: #ffffff;
}
.ly-dark-mode .aut-lectura-content blockquote p {
  color: #b8b4ac;
}
.ly-dark-mode .aut-lectura-content figcaption {
  color: #888;
}
.ly-dark-mode .aut-lectura-content hr {
  border-top-color: rgba(255,255,255,.12);
}

/* TOC — texto e ítems activos */
.ly-dark-mode .aut-toc__text {
  color: #999;
}
.ly-dark-mode .aut-toc__item:hover .aut-toc__text,
.ly-dark-mode .aut-toc__item.is-active .aut-toc__text {
  color: #ffffff;
}
.ly-dark-mode .aut-lectura-toc__label {
  color: #888;
}

/* Nav "siguiente manifiesto" */
.ly-dark-mode .aut-lectura-nav__next-title {
  color: #f2f0eb;
}
.ly-dark-mode .aut-lectura-nav__next-label {
  color: #999;
}

/* ============================================================
   PORCENTAJE DE LECTURA EN LA BARRA SUPERIOR
============================================================ */
.aut-lectura-bar__pct {
  flex-shrink: 0;
  font-family: 'Montserrat', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--acc, #b6a16b);
  min-width: 38px;
  text-align: right;
  font-variant-numeric: tabular-nums;  /* evita que "salte" al cambiar dígitos */
}
/* En contexto claro (.aut-lectura) ya hereda bien; en dark lo aclaramos */
.ly-dark-mode .aut-lectura-bar__pct {
  color: #c8b77a;
}

/* ============================================================
   NEWSLETTER — feedback de confirmación
============================================================ */
.aut2-coda__feedback {
  margin-top: 16px;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .01em;
  animation: aut-fb-in .3s ease;
}
.aut2-coda__feedback--success { color: #6b9b6b; }
.aut2-coda__feedback--error   { color: #d9534f; }
.aut2-coda__feedback--sending { color: var(--muted, #888); }
@keyframes aut-fb-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ly-dark-mode .aut2-coda__feedback--success { color: #8fc28f; }

/* Estado error en el input de email del newsletter */
.aut2-coda__form input.ly-ct-input--error {
  border-color: #d9534f !important;
}

/* Línea de anclaje en hero cuando no hay subtitle/paragraph */
.aut2-cover__anchor {
  font-family: var(--f);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.65;
  max-width: 500px;
}

/* ============================================================
   MANIFIESTOS — cuerpo estilo ensayo (aside + texto enriquecido)
============================================================ */
.aut2-chapter__essay {
  display: grid;
  grid-template-columns: 1fr 2fr;  /* aside 1/3 — body 2/3 */
  border-bottom: 1px solid var(--rule);
}
.aut2-chapter__essay-aside {
  border-right: 1px solid var(--rule);
  padding: clamp(40px, 5vw, 64px) clamp(28px, 3vw, 44px);
}
.aut2-chapter__essay-aside .aut2-chapter__num {
  display: block;
  font-size: clamp(48px, 7vw, 96px);
  font-weight: 200;
  line-height: 1;
  color: var(--acc, #b6a16b);
  margin: 0 0 24px;
  letter-spacing: -0.03em;
}
.aut2-chapter__essay-title {
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin: 0 0 12px;
  text-wrap: balance;
}
.aut2-chapter__essay-sub {
  font-size: clamp(14px, 1.3vw, 17px);
  font-weight: 400;
  font-style: italic;
  line-height: 1.5;
  color: var(--muted);
  margin: 0;
}
.aut2-chapter__essay-body {
  padding: clamp(40px, 5vw, 64px) clamp(28px, 4vw, 72px);
}
.aut2-chapter__essay-body .aut2-prose {
  margin-bottom: 28px;
}
.aut2-chapter__essay-body .aut2-chapter__links {
  margin-top: 8px;
}

@media (max-width: 768px) {
  .aut2-chapter__essay { grid-template-columns: 1fr; }
  .aut2-chapter__essay-aside {
    border-right: none;
    border-bottom: 1px solid var(--rule);
  }
  .aut2-chapter__essay-aside .aut2-chapter__num { font-size: clamp(40px, 14vw, 64px); margin-bottom: 16px; }
}

/* ============================================================
   LA COLECCIÓN — encabezado en dos columnas (igual a aut2-essay)
============================================================ */
.aut2-collection__head {
  /* Hereda la grilla de aut2-essay: aside 1/3 — body 2/3 */
}
.aut2-collection__head .aut2-essay__kicker {
  font-size: clamp(28px, 3.5vw, 52px);
  font-weight: 300;
  line-height: 1.05;
  letter-spacing: -0.02em;
  text-transform: uppercase;
}
.aut2-collection__head .aut2-essay__kicker em {
  font-style: italic;
  text-transform: none;
}
.aut2-collection__head .aut2-prose p {
  font-size: clamp(16px, 1.2vw, 18px); /* 18-jul: unificado con el resto del cuerpo de lectura del sitio */
  line-height: 1.7;
}

/* ════════════════════════════════════════════════════════════════════
   SOBERANÍA — Índice de Soberanía Operativa (herramienta interactiva)
   Full-width "en tiras", de borde a borde. Cada bloque ocupa el ancho
   completo; el contenido se centra con .aut-sob-wrap. Hereda variables
   de .aut2 (--paper/--ink/--muted/--rule) y el dorado global --acc.
   ════════════════════════════════════════════════════════════════════ */

.aut-soberania{ --sob-max:1380px; padding-bottom:0; overflow-x:clip; width:100%; max-width:100vw; }
.aut-sob-wrap{ max-width:var(--sob-max); margin:0 auto; padding-left:clamp(20px,4vw,56px); padding-right:clamp(20px,4vw,56px); }

/* — Hero — alto pero no full-screen. padding-top reserva espacio para el
   header fijo: sin él, como el contenido se alinea al fondo (flex-end) y
   crece hacia arriba, el eyebrow se metía bajo el logo. */
/* background:#0C0C0C acá (no solo en la imagen): respaldo sólido SIEMPRE
   presente, no condicionado a que la imagen del mapa cargue. Bug real
   corregido — antes el hero dependía 100% de que la <img> resolviera; un
   fallo de red, un CORS, o simplemente el primer instante antes del load
   dejaban ver el fondo CLARO de la página por debajo (la captura que
   reportó el usuario: el hero entero lavado a gris claro). */
/* Hero A PANTALLA COMPLETA (pedido del usuario, desktop y mobile): aprovechar
   al máximo la primera pantalla. svh (small viewport height) en vez de vh/dvh:
   es la altura ESTABLE con la barra del navegador visible — así el contenido
   (texto + barra de búsqueda al fondo) SIEMPRE entra sin quedar tapado por el
   chrome del browser mobile, y no salta cuando la barra del navegador
   aparece/desaparece. El mapa de fondo llena igual. */
.aut-sob-hero{ position:relative; width:100%; height:100vh; height:100svh; min-height:560px; display:flex; align-items:flex-end; overflow:hidden; padding-top:clamp(100px,12vh,140px); box-sizing:border-box; background:#12151a; }
.aut-sob-hero__bg{ position:absolute; inset:0; background:#111; background-size:cover; background-position:center; transform:scale(1.04); transition:transform 12s cubic-bezier(.16,1,.3,1); }

/* ═══ Hero = un solo mapa vivo ═══
   El mapa real ocupa TODO el hero, de fondo, siempre visible (z-index 0). Los
   puntos son markers nativos de Google (viven dentro del mapa). Encima, el veil
   de legibilidad (solo del lado del texto) y el texto. */
.aut-sob-hero__map{ position:absolute; inset:0; z-index:0; }
.aut-sob-hero__map #sob-map{ width:100%; height:100%; border-top:none; background:#23272d; }
/* Máscara del mockup del usuario (PSD): una "linterna" radial ilumina la zona
   de puntos (centro-derecha, ~66% del ancho) y el resto del mapa queda en
   penumbra — sobre todo la izquierda, que es la cama del texto y de los
   menúes. Dos gradientes apilados: la columna oscura del texto + la viñeta
   radial con su ventana de luz. pointer-events:none (los clicks pasan al
   mapa). Se desvanece en foco. */
.aut-sob-hero__veil{ position:absolute; inset:0; z-index:1; pointer-events:none; transition:opacity .35s ease;
  background:
    linear-gradient(90deg, rgba(8,10,14,.93) 0%, rgba(8,10,14,.72) 30%, rgba(8,10,14,.18) 52%, rgba(8,10,14,0) 66%),
    /* Viñeta de bordes SUAVE (antes llegaba a .82 en las esquinas y "tapaba"
       los controles nativos del mapa abajo a la derecha — reporte del
       usuario): penumbra sí, apagón no. La cama del texto la pone el
       gradiente lineal de la izquierda, no esta viñeta. */
    radial-gradient(ellipse 52% 62% at 66% 46%, rgba(8,10,14,0) 0%, rgba(8,10,14,.10) 48%, rgba(8,10,14,.28) 74%, rgba(8,10,14,.40) 100%); }
/* La columna de texto captura sus propios clicks (links, etc.); el resto del
   body deja pasar los clicks al mapa. */
.aut-sob-hero__body{ position:relative; z-index:2; width:100%; padding-bottom:clamp(88px,10vw,116px); pointer-events:none; transition:opacity .35s ease, transform .35s ease; }
.aut-sob-hero__body .aut-sob-hero__textcol{ pointer-events:auto; }
/* Contador real de lecturas — rediseñado (pedido del usuario: "es uno de los
   puntos más interesantes y está muy oculto"): badge con punto pulsante +
   número grande en acento, ya no una línea de texto más al 55% de opacidad.
   Reusa @keyframes sobPulse (definida más abajo, mismo lenguaje visual que
   el punto "en vivo" de la franja Lugar).
   UBICACIÓN: movido ACÁ (antes del @media max-width:900px de más abajo,
   15-jul, bug reportado con captura de iPhone) — vivía DESPUÉS del media
   query en el archivo, así que por orden de cascada (misma especificidad)
   esta regla base SIEMPRE le ganaba al "display:none" mobile, sin importar
   el viewport. El contador aparecía en mobile aunque el código "dijera" que
   estaba oculto — mismo patrón de bug que ya se había visto una vez con el
   veil (ver comentario "(Bloque duplicado eliminado...)" más abajo). */
.aut-sob-hero__live{ display:flex; align-items:baseline; gap:9px; margin:16px 0 0; flex-wrap:wrap; }
.aut-sob-hero__live-dot{ width:7px; height:7px; border-radius:50%; background:var(--acc,#D2A24C); align-self:center; flex:none; animation:sobPulse 1.6s infinite; }
.aut-sob-hero__live-n{ font-family:'Kiona','Montserrat',sans-serif; font-size:21px; font-weight:700; color:var(--acc,#D2A24C); font-variant-numeric:tabular-nums; line-height:1; }
.aut-sob-hero__live-txt{ font-family:'Montserrat',sans-serif; font-size:12px; letter-spacing:.02em; color:rgba(255,255,255,.6); max-width:340px; }
/* Mobile first (pedido explícito tras captura de iPhone rota): título más
   contenido, sin línea de fuentes ni puente al manifiesto (quedan en desktop
   — en 390px pisaban el buscador), padding-top mayor para no chocar el logo. */
/* ── HERO APILADO (mobile + tablet): RESUMIDO ────────────────────────────
   Jerarquía mínima: solo lo estrictamente necesario para la acción (mirar el
   mapa + elegir un punto). Se ocultan textos, chips y la pastilla del punto
   sobre el mapa; el resto de los datos vive MÁS ABAJO (franja "Lugar",
   diagnóstico), no encima del mapa. El mapa manda la pantalla.
   900px (no 760px, 14-jul): en iPad portrait (744-834px CSS) el hero YA se
   apila igual que en el teléfono (texto abajo, mapa entero atrás), pero con
   760px de corte seguía recibiendo la máscara de ESCRITORIO (ventana de luz
   lateral) — el mapa quedaba tapado arriba (reporte del usuario). Mismo
   breakpoint que sobHeroIsStacked() en JS — sincronizados a propósito. */
/* Toggle "Saber más" (15-jul, pedido del usuario: "si va a desaparecer el
   texto en mobile deberíamos colocar un link... si acortamos todo no se
   entiende nada"). Oculto por defecto (desktop): ahí el texto se ve siempre
   entero, este botón no tiene función. Solo se activa dentro del media query
   mobile de abajo. */
.aut-sob-hero__more{ display:none; align-items:center; gap:6px; margin:10px 0 0; padding:0;
  background:none; border:none; cursor:pointer;
  font-family:'Montserrat',sans-serif; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.05em;
  color:var(--acc,#D2A24C); }
.aut-sob-hero__more i{ font-size:10px; transition:transform .2s ease; }
.aut-sob-hero__more[aria-expanded="true"] i{ transform:rotate(180deg); }
@media(max-width:900px){
  .aut-sob-hero{ padding-top:64px; min-height:480px; } /* 84px→64px, min-height 560→480 (15-jul: el chrome del navegador mobile —barra de dirección + barra inferior— come el viewport real; menos aire fijo arriba deja más lugar para que nada quede tapado) */
  /* Título contenido; bajada corta. El eyebrow (label) baja de tamaño. */
  .aut-sob-h1{ font-size:clamp(24px,7vw,32px); margin:5px 0 8px; }
  .aut-sob-hero__more{ display:inline-flex; } /* el botón SÍ aparece acá */
  .aut-sob-lede{ font-size:13px; line-height:1.45; margin:10px 0 0;
    /* Colapsado a 2 líneas por defecto (15-jul: "reducir al mínimo los
       elementos" en mobile, pero SIN perder el texto — el botón "Saber más"
       de arriba lo expande completo al tocarlo, no queda perdido). */
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .aut2-label--light{ font-size:9px; letter-spacing:.14em; }
  /* Link al manifiesto: colapsado junto con la bajada — reaparece con
     #sob-heroMoreText.is-open más abajo, igual que el resto del texto. */
  .aut-sob-hero__manifesto-link{ display:none; }
  .aut-sob-hero__moretext.is-open .aut-sob-lede{ -webkit-line-clamp:unset; display:block; overflow:visible; }
  .aut-sob-hero__moretext.is-open .aut-sob-hero__manifesto-link{ display:inline-flex; }
  /* Fuera de la primera pantalla mobile (no esenciales para la acción):
     contador de lecturas y la pastilla "punto analizado" sobre el mapa. */
  .aut-sob-hero__live{ display:none; }
  .sob-gridcard{ display:none !important; }
  .aut-sob-hero__body{ padding-bottom:108px; } /* 132px→108px: menos aire ahora que el link y el contador ya no están */
  /* Veil anclado ABAJO: el mapa queda LIMPIO en la mitad superior (que es lo
     que el usuario quiere ver), y la penumbra baja da cama al texto + la
     barra de búsqueda del fondo. Reemplaza la máscara radial de desktop. */
  .aut-sob-hero__veil{
    background:linear-gradient(180deg, rgba(8,10,14,0) 0%, rgba(8,10,14,0) 34%, rgba(8,10,14,.55) 64%, rgba(8,10,14,.92) 100%); }
}
/* Viewport CORTO (chrome de navegador expandido — barra de dirección + barra
   inferior visibles a la vez, exactamente el caso reportado con captura):
   recorta aún más el padding fijo, pero el texto sigue disponible detrás del
   toggle "Saber más" (antes se sacaba directo con display:none — sin rastro). */
@media(max-width:900px) and (max-height:700px){
  .aut-sob-hero{ padding-top:52px; }
  .aut-sob-hero__body{ padding-bottom:96px; }
}

/* Estado FOCO (se eligió un punto): el texto se desvanece y el mapa queda
   protagonista — pero el veil NO desaparece del todo: pasa a una viñeta de
   bordes (pedido del usuario, captura 2) para que el logo/menú (arriba), la
   barra de búsqueda (abajo) y las herramientas conserven contraste sobre el
   mapa. El centro queda despejado. */
/* visibility:hidden (además de opacity) es LO QUE SACA el texto del
   hit-testing: pointer-events:none en el contenedor NO anula el
   pointer-events:auto del hijo .aut-sob-hero__textcol, así que el texto
   invisible seguía bloqueando clicks/drags del mapa (bug de captura con
   DevTools). La visibility se retrasa hasta que termina el fade (.35s) para
   no cortar la transición; al volver, es inmediata. */
.aut-sob-hero__body{ visibility:visible; transition:opacity .35s ease, transform .35s ease, visibility 0s linear 0s; }
.aut-sob-hero.is-focus .aut-sob-hero__body{ opacity:0; transform:translateY(-10px); pointer-events:none; visibility:hidden; transition:opacity .35s ease, transform .35s ease, visibility 0s linear .35s; }
.aut-sob-hero.is-focus .aut-sob-hero__veil{ opacity:1;
  background:
    linear-gradient(180deg, rgba(8,10,14,.55) 0%, rgba(8,10,14,0) 14%),
    /* La banda de abajo era .66 hasta 24% de alto: tapaba el zoom y el botón
       de explorar (RIGHT_BOTTOM). Más corta y más suave — el contraste de la
       barra de búsqueda ya lo aporta su propio fondo. */
    linear-gradient(0deg, rgba(8,10,14,.42) 0%, rgba(8,10,14,0) 16%),
    radial-gradient(ellipse 72% 78% at 50% 46%, rgba(8,10,14,0) 60%, rgba(8,10,14,.26) 100%); }
/* ── Rótulo técnico del LUGAR (rediseño): UNA pieza horizontal compacta con
   los esenciales del punto. Colores por VARIABLES (--ink/--muted/--rule):
   legible en modo claro Y oscuro — el diseño anterior heredaba texto blanco
   de los chips-sobre-mapa y desaparecía en claro (bug reportado). ── */
.aut-sob-locstrip{ border-top:1px solid var(--rule); padding:clamp(14px,2vw,22px) 0; opacity:0; max-height:0; overflow:hidden; transition:opacity .3s ease; }
.aut-sob-locstrip.is-ready{ opacity:1; max-height:none; overflow:visible; }
.sob-rotulo{ display:flex; flex-wrap:wrap; align-items:stretch; gap:0;
  border:1px solid var(--rule); border-radius:10px; background:var(--paper); overflow:hidden; }
.sob-rotulo__tag{ display:inline-flex; align-items:center; gap:8px; padding:12px 18px;
  font-family:'Montserrat',sans-serif; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.12em;
  background:var(--ink); color:var(--paper,#fff); white-space:nowrap; }
.sob-rotulo__tag .s-dot{ width:7px; height:7px; border-radius:50%; background:var(--acc); animation:none; }
.sob-rotulo.loading .s-dot{ animation:sobPulse 1s infinite; }
.sob-rotulo__cell{ display:flex; flex-direction:column; justify-content:center; gap:2px; padding:9px 18px;
  border-left:1px solid var(--rule); min-width:0; }
.sob-rotulo__cell .k{ font-family:'Montserrat',sans-serif; font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); white-space:nowrap; }
.sob-rotulo__cell b{ font-family:'Kiona','Montserrat',sans-serif; font-size:15px; font-weight:700; color:var(--ink); line-height:1.15; white-space:nowrap; }
.sob-rotulo__cell b small{ font-size:10px; color:var(--muted); font-family:'Montserrat',sans-serif; }
.sob-rotulo__cell .aut-sob-info__i{ color:var(--muted); border-color:var(--rule); }
.ly-dark-mode .sob-rotulo{ background:rgba(255,255,255,.03); }
.ly-dark-mode .sob-rotulo__tag{ background:#f2f0eb; color:#111; }
.ly-dark-mode .sob-rotulo__cell b{ color:#f2f0eb; }
/* La ciudad cercana trae un valor largo ("ASUNCIÓN, PARAGUAY (1.4M) A 290 KM"):
   esa celda sí puede envolver, más chica, para no reventar el rótulo. */
#sob-selCityWrap b{ white-space:normal; font-size:12px; max-width:240px; line-height:1.3; }
@media(max-width:860px){
  .sob-rotulo__tag{ flex:1 0 100%; }
  .sob-rotulo__cell{ flex:1 1 33%; border-top:1px solid var(--rule); }
}
/* (Bloque duplicado eliminado, 14-jul: esta regla pisaba EN SILENCIO — mismo
   selector, misma especificidad, más abajo en el archivo → gana por orden de
   cascada — el degradé bien calibrado del bloque de arriba (línea ~4330).
   Quedaba un veil "viejo" activo sin que se notara en el código. Ver ese
   bloque para el diseño real vigente.) */
/* Chip BETA junto al eyebrow del hero: pastilla chica, siempre sobre fondo
   oscuro (el hero nunca deja de serlo). */
.aut-sob-beta--hero{ margin-left:8px; border-color:rgba(255,255,255,.3); color:rgba(255,255,255,.75); font-size:9px; padding:2px 8px; vertical-align:middle; }
/* Márgenes del hero calcados de .aut-header__inner (max-width:1680px; padding:0 clamp(24px,4vw,80px))
   para que el título, el texto y la barra de búsqueda queden exactamente
   alineados con el logo (izquierda) y el "+" del menú (derecha). !important
   para que ningún otro selector (presente o futuro) pueda desalinearlo. */
.aut-sob-hero .aut-sob-wrap{ max-width:1680px !important; padding-left:clamp(24px,4vw,80px) !important; padding-right:clamp(24px,4vw,80px) !important; box-sizing:border-box; width:100%; }
/* Columna de texto: ancho de lectura acotado (pedido del usuario: "los
   textos son muchos y muy grandes" — de 720px a 520px). */
.aut-sob-hero__textcol{ max-width:520px; }
.aut-sob-h1{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:clamp(36px,5.5vw,52px); line-height:1.0; letter-spacing:-0.01em; margin:10px 0 14px; color:#fff; }
/* Especificidad .aut-sob-hero .aut-sob-hero__sub (0,2,0) — necesaria para
   ganarle a la regla global ".aut2 h2{text-transform:uppercase !important}"
   (especificidad 0,1,1): con solo ".aut-sob-hero__sub" (0,1,0) perdía
   pese al !important, porque tenía MENOR especificidad, no solo orden. */
.aut-sob-hero .aut-sob-hero__sub{ font-family:'Montserrat',sans-serif !important; font-weight:400 !important; text-transform:none !important;
  font-size:clamp(17px,1.6vw,22px); line-height:1.35; color:rgba(255,255,255,.92); margin:0 0 18px; }
/* Párrafo único del hero (fusión manifiesto + acción). Es el ÚNICO texto de
   apoyo ahora → un poco más luminoso y ancho para que sea EL foco de lectura
   bajo el título. */
.aut-sob-lede{ font-size:clamp(14.5px,1.2vw,17px); line-height:1.6; color:rgba(255,255,255,.82); max-width:560px; margin:14px 0 0; }
/* Link al manifiesto: standalone bajo el párrafo (ya no dentro de un bloque
   con cita — el usuario pidió un solo párrafo). */
.aut-sob-hero__manifesto-link{ display:inline-flex; align-items:center; gap:6px; margin-top:18px; font-family:'Montserrat',sans-serif; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--acc,#b6a16b); text-decoration:none; transition:color .15s; }
.aut-sob-hero__manifesto-link:hover{ color:#fff; }
/* (.aut-sob-hero__cred eliminado: la línea de fuentes de datos salió del hero
   — el usuario pidió menos texto; vive en la Metodología.) */
.aut-sob-lede .q{ color:rgba(255,255,255,.5); }

/* ── Modo de vista (simple/completa) ── */
html.sob-simple .sob-adv{ display:none !important; }
.sob-adv-hint{ display:none; font-family:'Montserrat',sans-serif; font-size:12.5px; color:var(--muted); padding:14px var(--side,0) 18px; cursor:pointer; transition:color .15s; }
.sob-adv-hint span{ color:var(--acc); text-decoration:underline; text-decoration-color:rgba(182,161,107,.4); white-space:nowrap; }
.sob-adv-hint:hover{ color:var(--ink); }
html.sob-simple .sob-adv-hint{ display:block; }

/* ── Intención (03 · Tu programa) ── */
/* Primero preguntamos qué quiere imaginar el usuario en este lugar —no le
   pedimos precisión de programa— y recién eso carga un preset. Desplegable
   en vez de tarjetas: mismas 6 opciones, una sola línea de alto. */
.aut-sob-intent{ padding:8px 0 20px; }
.aut-sob-intent__q{ display:block; font-family:'Kiona','Montserrat',sans-serif; font-weight:700; text-transform:uppercase;
  font-size:clamp(15px,1.6vw,18px); letter-spacing:-.005em; color:var(--ink); margin:0 0 10px; }
.aut-sob-intent__select{ width:100%; max-width:420px; display:block; font-family:'Montserrat',sans-serif;
  font-size:14px; font-weight:600; padding:12px 14px; border:1px solid var(--rule); border-radius:10px;
  background:var(--paper); color:var(--ink); cursor:pointer; transition:border-color .15s; }
.aut-sob-intent__select:hover, .aut-sob-intent__select:focus{ border-color:var(--acc); outline:none; }
.aut-sob-intent__hint{ margin:12px 0 0; font-size:12.5px; color:var(--acc); }
.ly-dark-mode .aut-sob-intent__select{ background:#111; color:#f2f0eb; border-color:rgba(255,255,255,.15); }

/* ── Ajustes simples (03 · Tu programa) ── */
/* Los únicos 3 controles visibles por defecto (Personas, Cubierta, Tierra).
   Una sola fila en desktop —no 1+2 repartido en las columnas de abajo—,
   apilados en mobile. El resto de las variables técnicas vive en
   .aut-sob-io, marcado sob-adv como bloque completo (solo en "Avanzado"). */
.aut-sob-simplerow{ border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.aut-sob-simplerow__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,48px);
  padding-top:clamp(20px,3vw,32px); padding-bottom:clamp(20px,3vw,32px); }
.aut-sob-simplerow .field{ margin:0; }
.aut-sob-simplerow .field label{ display:flex; justify-content:space-between; align-items:baseline;
  font-family:'Montserrat',sans-serif; font-size:13px; margin-bottom:8px; color:var(--ink); gap:8px; }
.aut-sob-simplerow .field label .val{ color:var(--acc); font-weight:600; font-size:14px; margin-left:auto; }
.aut-sob-simplerow input[type=range]{ width:100%; accent-color:var(--acc); height:2px; }
/* Efecto directo (doc §4.3): consecuencia concreta del número, bajo el slider. */
.aut-sob-fieldfx{ margin:8px 0 0; font-family:'Montserrat',sans-serif; font-size:12px; line-height:1.45; color:var(--muted); font-variant-numeric:tabular-nums; }
.aut-sob-fieldfx:empty{ display:none; }
@media(max-width:860px){ .aut-sob-simplerow__grid{ grid-template-columns:1fr; gap:22px; padding-top:20px; padding-bottom:20px; } }
.ly-dark-mode .aut-sob-simplerow .field label{ color:#f2f0eb; }

/* — Tiras y step labels — */
.aut-sob-strip{ border-top:1px solid var(--rule); }
.aut-sob-strip--step{ background:transparent; }
.aut-sob-steplabel{ display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap; padding-top:clamp(28px,3.5vw,44px); padding-bottom:8px; }
.aut-sob-steplabel .n{ font-family:'Montserrat',sans-serif; font-weight:300; font-size:clamp(26px,3vw,34px); color:rgba(182,161,107,.55); line-height:1; }
.aut-sob-steplabel .h{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.08em; font-size:clamp(26px,3vw,34px); color:var(--ink); }
.aut-sob-steplabel .sub{ font-size:13px; line-height:1.5; color:var(--muted); text-align:left; max-width:580px; flex:1 1 280px; }
/* Sello BETA (auditoría v3 §1.2-8): declara el estado del instrumento junto al
   título de la primera sección — coherente con la voz ("esto está vivo") y
   protege cada bug encontrado. */
.aut-sob-beta{ display:inline-block; vertical-align:middle; margin-left:10px; padding:3px 9px; border:1px solid var(--rule); border-radius:999px; font-family:'Montserrat',sans-serif; font-size:10px; font-weight:700; letter-spacing:.09em; color:var(--muted); white-space:nowrap; }

/* ── Mapa global de burbujas (Fase A) ──
   Canvas sobre el mapa: NO captura punteros (los clicks los resuelve el mapa
   con hit-test propio). Mini-card anclada abajo a la izquierda del mapa. */
/* (.sob-gridcanvas eliminado: los puntos ahora son markers NATIVOS de Google
   Maps — viven dentro del mapa, no en un canvas sobreimpreso.) */
/* Reposicionada (pedido del usuario) — cuelga del HERO (no de #sob-map: el
   veil z1 la tapaba dentro del stacking context z0 del mapa). Su borde
   derecho queda ALINEADO con el "+" del menú del sitio: mismo cálculo que
   .aut-header__inner (contenido max 1680px, padding clamp(24px,4vw,80px)) —
   el max() cubre pantallas más anchas que el contenedor. Y despegada del
   header (top 128px, antes 88 quedaba pegada al menú). */
.sob-gridcard{ position:absolute; z-index:3; display:flex; gap:14px; align-items:flex-start;
  right:max(clamp(24px,4vw,80px), calc((100vw - 1680px)/2 + 80px)); top:128px;
  max-width:320px; padding:16px 18px; border-radius:12px; background:var(--paper,#F5F2EC); color:var(--ink,#0D0D0D);
  border:1px solid var(--rule,rgba(0,0,0,.12)); box-shadow:0 10px 32px rgba(0,0,0,.28); font-family:'Montserrat',sans-serif; }
.sob-gridcard[hidden]{ display:none; }
.sob-gridcard__score{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:42px; line-height:1; }
.sob-gridcard__zone{ font-size:10.5px; text-transform:uppercase; letter-spacing:.07em; color:var(--muted,#7A7672); margin-bottom:4px; }
/* Nombre del lugar (pedido del usuario) — solo aparece cuando se conoce
   (punto buscado con geocoding resuelto); los dots del grid no tienen nombre
   propio, muestran la etiqueta de zona/coordenadas nada más. */
.sob-gridcard__name{ font-family:'Kiona','Montserrat',sans-serif; font-size:14.5px; font-weight:700; line-height:1.25; margin-bottom:5px; }
.sob-gridcard__doms{ font-size:13px; font-weight:600; line-height:1.35; margin-bottom:6px; }
.sob-gridcard__note{ font-size:11px; line-height:1.45; color:var(--muted,#7A7672); margin-bottom:10px; }
.sob-gridcard__go{ font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  background:var(--ink,#0D0D0D); color:var(--paper,#fff); border:none; border-radius:999px; padding:9px 14px; cursor:pointer;
  white-space:nowrap; } /* nunca en dos líneas (deformaba la píldora, reporte 15-jul) */
.sob-gridcard__go:hover{ background:var(--acc,#b6a16b); color:#fff; }
.sob-gridcard__x{ position:absolute; top:6px; right:9px; background:none; border:none; font-size:17px; color:var(--muted,#7A7672); cursor:pointer; padding:2px 5px; }
/* (La pastilla del punto NO se muestra sobre el mapa en mobile — pedido del
   usuario: display:none en el @media 760px de arriba. La info del punto vive
   en la franja "Lugar" y el buscador muestra el nombre. Sin regla de
   posición mobile: quedaría oculta igual.) */
/* Controles nativos de mapa (explorar mundo + toggle satélite) — Google los
   apila solos arriba del control de zoom nativo (misma esquina); acá solo se
   define su aspecto, no su posición. */
.sob-mapCtrl{ width:36px; height:36px; margin:8px 8px 0; border-radius:6px; border:none; cursor:pointer;
  background:#2b3038; color:#e8e5dd; font-size:15px; display:flex; align-items:center; justify-content:center;
  box-shadow:0 1px 4px rgba(0,0,0,.35); transition:background .15s,color .15s; }
.sob-mapCtrl:hover{ background:var(--acc,#D2A24C); color:#141311; }
/* Satélite activo: se pinta en acento para señalar el modo encendido. */
.sob-satCtrl.is-on{ background:var(--acc,#D2A24C); color:#141311; }

/* ── Tabs por dominio en LAS CAUSAS ──
   Pastillas sobrias; el color del dominio solo subraya la activa. */
.aut-sob-causastabs{ padding-top:6px; }
.aut-sob-causastabs .aut-sob-wrap{ display:flex; gap:10px; flex-wrap:wrap; padding-top:14px; padding-bottom:6px; }
.aut-sob-causastabs button{ font-family:'Montserrat',sans-serif; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.07em;
  background:transparent; color:var(--muted); border:1px solid var(--rule); border-radius:999px; padding:9px 18px; cursor:pointer;
  transition:color .15s,border-color .15s,background .15s; }
.aut-sob-causastabs button:hover{ color:var(--ink); border-color:var(--ink); }
.aut-sob-causastabs button.is-active{ background:var(--ink); color:var(--paper,#fff); border-color:var(--ink); }
.ly-dark-mode .aut-sob-causastabs button.is-active{ background:#f2f0eb; color:#111; border-color:#f2f0eb; }
.causas-tab-off{ display:none !important; }

/* Cierre con voz (§3c): una sola frase declarativa antes del CTA final. */
.aut-sob-cierre{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:clamp(20px,2.6vw,30px); line-height:1.25; color:var(--ink); text-align:center; max-width:680px; margin:clamp(40px,6vw,72px) auto clamp(28px,4vw,44px); }
.ly-dark-mode .aut-sob-cierre{ color:#f2f0eb; }
/* Sub-encabezado dentro de La Evidencia (Asoleamiento, Cartografía): sin
   número y con título más chico, para que se lean como sub-bloques de la
   sección 04, no como secciones pares numeradas. */
.aut-sob-steplabel--sub{ padding-top:clamp(18px,2.4vw,30px); }
.aut-sob-steplabel--sub .h{ font-size:clamp(17px,1.9vw,22px); color:var(--muted); letter-spacing:.1em; }
/* Encabezado de dominio dentro de La Evidencia (ENERGÍA / AGUA): agrupa los
   gráficos por eje del índice, para que cada gráfico se lea como el porqué
   de su sub-índice. */
.aut-sob-evgroup .aut-sob-wrap{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; padding-top:clamp(20px,2.6vw,34px); padding-bottom:6px; border-top:1px solid var(--rule); }
.aut-sob-evgroup__k{ font-family:'Montserrat',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.16em; font-size:15px; color:var(--acc); }
.aut-sob-evgroup__val{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:22px; line-height:1; color:var(--ink); }
.aut-sob-evgroup__val sup{ font-size:11px; color:var(--muted); margin-left:1px; }
.aut-sob-evgroup__sub{ font-family:'Montserrat',sans-serif; font-size:12.5px; line-height:1.5; color:var(--muted); flex:1 1 260px; }
.ly-dark-mode .aut-sob-evgroup .aut-sob-wrap{ border-top-color:rgba(255,255,255,.1); }

/* — Tooltip de info (qué es cada dato) — */
.aut-sob-info{ position:relative; display:inline-flex; align-items:center; justify-content:center; vertical-align:middle; margin-left:6px; cursor:help; }
.aut-sob-info__i{ width:15px; height:15px; border-radius:50%; border:1px solid var(--muted); color:var(--muted); font-family:'Montserrat',sans-serif; font-size:9px; font-weight:700; font-style:normal; display:flex; align-items:center; justify-content:center; line-height:1; transition:all .15s; }
.aut-sob-info:hover .aut-sob-info__i, .aut-sob-info:focus .aut-sob-info__i{ border-color:var(--acc); color:var(--acc); }
.aut-sob-info__tip{ position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%); width:max-content; max-width:260px; background:var(--ink); color:var(--paper); font-family:'Montserrat',sans-serif; font-size:11.5px; font-weight:400; line-height:1.45; letter-spacing:.01em; text-transform:none; padding:9px 12px; border-radius:4px; opacity:0; visibility:hidden; transition:opacity .15s; z-index:50; pointer-events:none; box-shadow:0 6px 24px rgba(0,0,0,.18); }
.aut-sob-info__tip::after{ content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:5px solid transparent; border-top-color:var(--ink); }
.aut-sob-info:hover .aut-sob-info__tip, .aut-sob-info:focus .aut-sob-info__tip{ opacity:1; visibility:visible; }

/* — Mapa + búsqueda (mapa full bleed, buscador arriba) — */
.aut-sob-loc-grid{ border-top:1px solid var(--rule); }
.aut-sob-searchwrap{ max-width:var(--sob-max); margin:0 auto; padding:clamp(20px,3vw,32px) clamp(20px,4vw,56px); display:grid; grid-template-columns:1fr auto; gap:14px 18px; align-items:start; }
@media(max-width:760px){ .aut-sob-searchwrap{ grid-template-columns:1fr; } }
.aut-sob-searchbox{ grid-column:1 / -1; }
.aut-sob-searchbox input{ width:100%; font-family:'Montserrat',sans-serif; font-size:15px; padding:13px 15px; border:1px solid var(--rule); background:var(--paper); color:var(--ink); border-radius:0; }
.aut-sob-searchbox input:focus{ outline:1px solid var(--acc); outline-offset:1px; }
.aut-sob-hint{ font-size:12px; color:var(--muted); grid-column:1 / -1; }
.aut-sob-coordrow{ display:flex; gap:8px; align-items:center; }
@media(max-width:760px){ .aut-sob-coordrow{ flex-wrap:wrap; } }
.aut-sob-coordrow input{ width:100%; font-family:'Montserrat',sans-serif; font-size:13px; padding:9px 11px; border:1px solid var(--rule); background:var(--paper); color:var(--ink); border-radius:0; min-width:0; }
.aut-sob-coordrow button{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:11px; font-weight:600; background:var(--ink); color:#fff; border:none; padding:10px 18px; cursor:pointer; white-space:nowrap; }
.aut-sob-coordrow button:hover{ background:var(--acc); }
.aut-sob-results{ list-style:none; margin:0; padding:0; border:1px solid var(--rule); max-height:230px; overflow:auto; grid-column:1 / -1; }
.aut-sob-results li{ padding:10px 12px; cursor:pointer; font-size:13.5px; border-bottom:1px solid var(--rule); font-family:'Montserrat',sans-serif; }
.aut-sob-results li:last-child{ border-bottom:none; }
.aut-sob-results li:hover{ background:rgba(182,161,107,.08); }
.aut-sob-results li .place{ font-weight:600; }
.aut-sob-results li .reg{ color:var(--muted); font-size:12px; }
#sob-map{ height:clamp(360px,52vh,620px); width:100%; background:#e9e5dc; border-top:1px solid var(--rule); }
.aut-sob-maperr{ padding:24px; font-family:'Montserrat',sans-serif; color:var(--muted); font-size:13px; }

/* — Sitio seleccionado: panel único (antes 3 bandas sueltas con fondos
   distintos — estado / identidad-entorno-terreno / en vivo — ahora una
   sola pieza con separadores internos sutiles). — */
.aut-sob-siteinfo{ border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); background:transparent; }
.siteinfo__status{ padding:10px 0; font-family:'Montserrat',sans-serif; font-size:12px; letter-spacing:.02em; color:var(--muted); display:flex; align-items:center; gap:8px; border-bottom:1px solid var(--rule); }
.siteinfo__status .s-dot{ width:7px; height:7px; border-radius:50%; background:var(--muted); flex:none; }
.siteinfo__status.ok .s-dot{ background:#6b9b6b; }
.siteinfo__status.load .s-dot{ background:var(--acc); animation:sobPulse 1s infinite; }
.siteinfo__status.err{ color:#d9534f; }
.siteinfo__status.err .s-dot{ background:#d9534f; }
@keyframes sobPulse{ 0%,100%{opacity:1;} 50%{opacity:.3;} }

.siteinfo__groups{ display:flex; flex-direction:column; gap:14px; padding-top:18px; padding-bottom:18px; border-bottom:1px solid var(--rule); }
/* Cada grupo: una etiqueta de categoría en su propia fila (flex:1 0 100%
   la fuerza a ocupar todo el ancho) seguida de sus items en fila, con
   wrap — agrupa por tipo de lectura (identidad / entorno construido /
   terreno) en vez de la lista plana sin jerarquía que había antes. */
.selgroup{ display:flex; flex-wrap:wrap; align-items:baseline; gap:10px clamp(20px,3vw,40px); }
/* Si todos los items del grupo están ocultos (p.ej. fuera de Argentina,
   sin DEM propio), se oculta el grupo entero — nada de una etiqueta de
   categoría flotando sin datos debajo. */
.selgroup:not(:has(.item:not([hidden]))){ display:none; }
.selgroup__lbl{ flex:1 0 100%; font-family:'Montserrat',sans-serif; font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--acc); font-weight:700; }
.siteinfo__groups .item{ font-family:'Montserrat',sans-serif; font-size:12px; color:var(--muted); letter-spacing:.02em; display:flex; flex-direction:column; }
.siteinfo__groups .item b{ font-size:15px; color:var(--ink); font-weight:600; margin-top:3px; }

/* — Datos en vivo: sub-tarjeta dentro del panel, con su propio borde
   (la franja oscura necesita distinguirse, no es solo texto). — */
.siteinfo__live{ display:grid; grid-template-columns:auto repeat(5,1fr); border:1px solid var(--rule); margin:16px 0; }
@media(max-width:860px){ .siteinfo__live{ grid-template-columns:1fr 1fr 1fr; } }
.siteinfo__live .lbl{ display:flex; flex-direction:column; justify-content:center; padding:16px clamp(20px,4vw,40px); background:var(--ink); color:#fff; }
.siteinfo__live .lbl .k{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.08em; font-size:10.5px; color:rgba(182,161,107,.85); }
.siteinfo__live .lbl .v{ font-family:'Montserrat',sans-serif; font-size:14px; letter-spacing:.02em; margin-top:2px; }
.siteinfo__live .cell{ padding:16px; border-left:1px solid var(--rule); }
.siteinfo__live .cell .k{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.05em; font-size:10px; color:var(--muted); }
.siteinfo__live .cell .v{ font-family:'Montserrat',sans-serif; font-size:21px; line-height:1.1; margin-top:2px; color:var(--ink); }
.siteinfo__live .cell .v small{ font-size:11px; color:var(--muted); }
.siteinfo__live.loading{ opacity:.45; transition:opacity .2s; }
/* AHORA como chip overlay sobre el mapa (esquina inf-der) — reemplaza la
   franja full-width que ocupaba posición premium en el panel de datos. */
.aut-sob-loc-grid--maponly{ position:relative; }
.aut-sob-livechip{ position:absolute; left:24px; bottom:24px; top:auto; z-index:6; display:flex; align-items:stretch;
  margin:0; border:1px solid rgba(255,255,255,.14); background:rgba(18,18,18,.82); backdrop-filter:blur(6px);
  border-radius:10px; overflow:hidden; max-width:calc(100% - 28px); box-shadow:0 6px 22px rgba(0,0,0,.4); }
/* Chips de datos NASA/satelitales sobre el mapa: Identidad (izq) · Entorno (der). */
.aut-sob-mapchip{ position:absolute; top:20px; z-index:6; max-width:236px; padding:12px 14px;
  background:rgba(18,18,18,.82); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.14);
  border-radius:10px; box-shadow:0 6px 22px rgba(0,0,0,.4); }
.aut-sob-mapchip--left{ left:24px; }
.aut-sob-mapchip--right{ right:24px; }
.aut-sob-mapchip__t{ display:block; font-family:'Montserrat',sans-serif; font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:rgba(182,161,107,.95); margin-bottom:9px; }
/* Cada dato apilado: etiqueta (+ info) arriba, valor debajo que puede envolver
   → los valores largos no se salen del chip. */
.aut-sob-mapchip .item{ display:block; font-family:'Montserrat',sans-serif; font-size:10px; line-height:1.3; color:rgba(255,255,255,.6); padding:5px 0; border:none; }
.aut-sob-mapchip .item b{ display:block; font-family:'Kiona','Montserrat',sans-serif; font-size:12.5px; font-weight:700; color:#f2f0eb; white-space:normal; margin-top:2px; margin-left:0; }
.aut-sob-mapchip .item .aut-sob-info__i{ color:rgba(255,255,255,.55); border-color:rgba(255,255,255,.32); }
@media(max-width:760px){
  /* En mobile bajan estáticos bajo el mapa (no lo tapan), como lista clara. */
  .aut-sob-mapchip{ position:static; max-width:none; background:transparent; backdrop-filter:none; border:none; box-shadow:none; padding:0; margin:16px clamp(20px,5vw,32px) 0; }
  .aut-sob-mapchip__t{ color:var(--acc); }
  .aut-sob-mapchip .item{ color:var(--muted); border-bottom:1px solid var(--rule); padding:7px 0; }
  .aut-sob-mapchip .item b{ color:var(--ink); }
  .aut-sob-mapchip .item .aut-sob-info__i{ color:var(--muted); border-color:var(--rule); }
  .ly-dark-mode .aut-sob-mapchip .item b{ color:#f2f0eb; }
}
.aut-sob-livechip .lbl{ background:transparent; padding:7px 11px; border-right:1px solid rgba(255,255,255,.12); }
.aut-sob-livechip .lbl .k{ font-size:9px; color:rgba(182,161,107,.9); }
.aut-sob-livechip .lbl .v{ font-size:11px; color:#f2f0eb; margin-top:1px; }
.aut-sob-livechip .aut-sob-live__err{ font-size:9px; color:rgba(255,255,255,.5); max-width:120px; line-height:1.3; }
.aut-sob-livechip .cell{ padding:7px 11px; border-left:1px solid rgba(255,255,255,.08); border-top:none; text-align:center; }
.aut-sob-livechip .cell .k{ font-size:9px; color:rgba(255,255,255,.5); }
.aut-sob-livechip .cell .v{ font-size:14px; line-height:1.1; color:#f2f0eb; margin-top:1px; }
.aut-sob-livechip .cell .v small{ font-size:9px; color:rgba(255,255,255,.5); }
.ly-dark-mode .aut-sob-livechip .cell .v{ color:#f2f0eb; }
@media(max-width:760px){
  /* En mobile el chip baja a barra scrolleable bajo el mapa (no tapa el mapa) */
  .aut-sob-livechip{ position:static; left:auto; top:auto; max-width:none;
    margin:10px clamp(20px,5vw,32px) 0;
    overflow-x:auto; -webkit-overflow-scrolling:touch; }
}
.aut-sob-res.loading, .aut-sob-axis.loading{ opacity:.45; transition:opacity .2s; }

/* — Switch de vista (Simple/Completa), en la barra sticky — */
.ss-modeswitch{ display:flex; align-items:center; gap:8px; flex:none; }
.ss-modeswitch__opt{ font-family:'Montserrat',sans-serif; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); cursor:pointer; transition:color .15s; }
.ss-modeswitch__opt.is-active{ color:var(--ink); font-weight:700; }
.ss-modeswitch__track{ position:relative; width:36px; height:20px; border-radius:10px; background:var(--rule); border:none; cursor:pointer; padding:0; flex:none; transition:background .2s; }
.ss-modeswitch__track[aria-checked="true"]{ background:var(--acc); }
.ss-modeswitch__thumb{ position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.3); transition:transform .2s; }
.ss-modeswitch__track[aria-checked="true"] .ss-modeswitch__thumb{ transform:translateX(16px); }
.ly-dark-mode .ss-modeswitch__track{ background:rgba(255,255,255,.18); }

/* — KPIs de síntesis — */
.aut-sob-kpis{ }
.aut-sob-kpis__grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:0; padding-top:8px; padding-bottom:8px; }
@media(max-width:980px){ .aut-sob-kpis__grid{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:560px){ .aut-sob-kpis__grid{ grid-template-columns:repeat(2,1fr); } }
.aut-sob-kpis .kpi{ padding:20px 18px 20px 0; border-bottom:1px solid var(--rule); }
.aut-sob-kpis .kpi__k{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.04em; font-size:10.5px; color:var(--muted); line-height:1.4; min-height:2.4em; }
.aut-sob-kpis .kpi__v{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:clamp(24px,2.4vw,32px); color:var(--ink); margin-top:8px; }
.aut-sob-kpis .kpi__v small{ font-size:12px; color:var(--muted); font-weight:400; }

/* — Bloques de gráficos — */
.aut-sob-chartblock{ border-top:1px solid var(--rule); padding-top:clamp(24px,3vw,40px); padding-bottom:clamp(24px,3vw,40px); }
.aut-sob-chart-head h2{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.05em; font-size:13px; margin:0 0 6px; color:var(--ink); display:flex; align-items:center; flex-wrap:wrap; }
.aut-sob-chart-head p{ font-size:12.5px; color:var(--muted); line-height:1.55; margin:0 0 16px; max-width:760px; }
.aut-sob-chartblock svg{ display:block; width:100%; height:auto; }

.aut-sob-chartrow{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--rule); }
@media(max-width:860px){ .aut-sob-chartrow{ grid-template-columns:1fr; } }
.aut-sob-chartcol{ padding:clamp(24px,3vw,40px) clamp(20px,4vw,56px); }
.aut-sob-chartcol:first-child{ border-right:1px solid var(--rule); }
@media(max-width:860px){ .aut-sob-chartcol:first-child{ border-right:none; border-bottom:1px solid var(--rule); } }
.aut-sob-chartcol svg{ display:block; width:100%; height:auto; }
.aut-sob-axislbl{ font-family:'Montserrat',sans-serif; font-size:9px; fill:var(--muted); text-transform:uppercase; }

/* — Leyendas — */
.aut-sob-legend{ display:flex; flex-wrap:wrap; gap:18px; margin-top:14px; }
.aut-sob-legend__item{ display:inline-flex; align-items:center; gap:7px; font-family:'Montserrat',sans-serif; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.aut-sob-legend__item .dot{ width:10px; height:10px; border-radius:2px; display:inline-block; }
.aut-sob-legend__item .dot--line{ width:16px; height:2px; border-radius:2px; }
.aut-sob-legend__note{ font-family:'Montserrat',sans-serif; font-size:11px; color:var(--muted); font-style:italic; display:inline-flex; align-items:center; }

/* — Programa (avanzado) — */
/* Grid de 3 columnas exacto al mockup: los títulos de dominio son celdas
   normales de la fila 1 (Energía → col 1, Agua → col 3, con un
   .aut-sob-io__group--spacer vacío a propósito en col 2), no separadores
   de ancho completo. El orden del HTML hace que las filas siguientes
   —paneles/rotor/reserva, luego tarifa/consumo/agua per cápita— caigan
   solas en su columna correcta por auto-flow, sin grid-column explícito. */
.aut-sob-io{ border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.aut-sob-io__grid{ display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(20px,3vw,32px) clamp(20px,3vw,48px);
  padding-top:clamp(24px,3vw,40px); padding-bottom:clamp(24px,3vw,40px); }
.aut-sob-io h3{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.07em; font-weight:600; font-size:13px; margin:0 0 4px; color:var(--ink); }
.aut-sob-io .src{ font-size:12px; color:var(--muted); margin:0; }
.aut-sob-io .field{ margin:0; }
.aut-sob-io .field label{ display:flex; justify-content:space-between; align-items:baseline; font-family:'Montserrat',sans-serif; font-size:13px; margin-bottom:8px; color:var(--ink); gap:8px; }
.aut-sob-io .field label .val{ color:var(--acc); font-weight:600; font-size:14px; margin-left:auto; }
.aut-sob-io input[type=range]{ width:100%; accent-color:var(--acc); height:2px; }
/* Toggle opt-in de eólica (pedido del usuario, 14-jul): checkbox propio +
   el label del slider en gris hasta que se activa (visualmente "dormido"),
   consistente con que el slider en sí queda disabled. */
.sob-windToggle{ display:flex !important; align-items:center; gap:8px; margin-bottom:12px !important; cursor:pointer; }
.sob-windToggle input[type=checkbox]{ accent-color:var(--acc); width:15px; height:15px; flex:none; }
.sob-windSub{ transition:color .15s; }
#sob-windField:has(#sob-windEnable:not(:checked)) .sob-windSub{ color:var(--muted); }
#sob-windField:has(#sob-windEnable:not(:checked)) input[type=range]{ opacity:.45; }
.aut-sob-io select{ width:100%; font-family:'Montserrat',sans-serif; font-size:13.5px; padding:10px 12px; border:1px solid var(--rule); background:var(--paper); color:var(--ink); border-radius:10px; }
.aut-sob-io select:focus{ outline:1px solid var(--acc); outline-offset:1px; }
@media(max-width:860px){ .aut-sob-io__grid{ grid-template-columns:1fr; } .aut-sob-io__group--spacer{ display:none; } }

/* Aviso/consejo debajo de un slider, según si el valor elegido alcanza o
   no para lo que ese dato exige (por ahora: capacidad de reserva de agua
   vs. método de la curva de masa). --warn = rojo/ámbar con ícono de
   alerta; --ok = tono del acento, discreto, en positivo. */
.aut-sob-hint{ display:flex; align-items:flex-start; gap:8px; margin:10px 0 0; padding:8px 10px;
  border-radius:8px; font-family:'Montserrat',sans-serif; font-size:12px; line-height:1.45; }
.aut-sob-hint::before{ flex:none; width:16px; height:16px; border-radius:4px; font-size:11px; font-weight:700;
  display:flex; align-items:center; justify-content:center; margin-top:1px; }
.aut-sob-hint--warn{ background:rgba(196,90,60,.1); color:#c45a3c; }
.aut-sob-hint--warn::before{ content:'!'; background:#c45a3c; color:#fff; }
.aut-sob-hint--ok{ background:rgba(107,155,107,.1); color:#4c7a4c; }
.aut-sob-hint--ok::before{ content:'✓'; background:#6b9b6b; color:#fff; }
.ly-dark-mode .aut-sob-hint--warn{ background:rgba(196,90,60,.18); color:#e08a72; }
.ly-dark-mode .aut-sob-hint--ok{ background:rgba(107,155,107,.18); color:#9ecb9e; }

/* — Resultados — */
.aut-sob-res{ border-top:1px solid var(--rule); }
.aut-sob-res__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; padding:0; }
@media(max-width:860px){ .aut-sob-res__grid{ grid-template-columns:1fr; } }
.aut-sob-res .rcard, .aut-sob-food .food-head{ padding:clamp(26px,3vw,38px) clamp(24px,2.5vw,34px); border-right:1px solid var(--rule); min-width:0; }
.aut-sob-res__grid .rcard:last-child{ border-right:none; }
@media(max-width:860px){ .aut-sob-res .rcard, .aut-sob-food .food-head{ border-right:none; border-bottom:1px solid var(--rule); } }
/* .food-head no tiene vecino a la derecha (no es parte de una grilla de
   columnas) — el borde derecho heredado de .rcard no aplica, solo el de
   abajo, separando el encabezado del desglose nutricional. */
.aut-sob-food .food-head{ border-right:none; border-bottom:1px solid var(--rule); padding-left:0; padding-right:0; }
.aut-sob-res .cap, .aut-sob-food .cap{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:12px; color:var(--muted); font-weight:600; display:flex; align-items:center; line-height:1.4; }
.aut-sob-res .big, .aut-sob-food .big{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:clamp(48px,6vw,68px); line-height:.85; color:var(--ink); margin:14px 0 4px; }
.aut-sob-res .big sup, .aut-sob-food .big sup{ font-size:24px; top:-26px; color:var(--acc); }
.aut-sob-res .unit, .aut-sob-food .unit{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.04em; font-size:11px; color:var(--muted); }
.aut-sob-res .bd, .aut-sob-food .bd{ margin-top:16px; font-size:13px; color:var(--muted); }
.aut-sob-res .bd div, .aut-sob-food .bd div{ margin-bottom:4px; display:flex; justify-content:space-between; gap:10px; }
.aut-sob-res .bd b, .aut-sob-food .bd b{ color:var(--ink); font-weight:600; }
.aut-sob-res .bar, .aut-sob-food .bar{ height:4px; background:var(--rule); margin-top:18px; position:relative; overflow:hidden; }
.aut-sob-res .bar i, .aut-sob-food .bar i{ position:absolute; left:0; top:0; bottom:0; background:var(--acc); transition:width .35s ease; }
/* rcard en columna con la barra al fondo: energía tiene más filas de detalle
   que agua, pero ambas barras quedan alineadas al pie del card (mockup). */
.aut-sob-res .rcard{ display:flex; flex-direction:column; }
.aut-sob-res .rcard .bar{ margin-top:auto; }

/* ════ Ejes del Diagnóstico unificados (Energía · Agua · Alimento) ════
   Izquierda: rueda de color + sub-barras. Derecha: lectura + cantidades. */
.aut-sob-axis{ border-top:1px solid var(--rule); }
.aut-sob-axis__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,64px); padding:clamp(26px,3.2vw,44px) 0; align-items:center; padding-left: clamp(20px, 4vw, 56px); padding-right: clamp(20px, 4vw, 56px); }
@media(max-width:820px){ .aut-sob-axis__grid{ grid-template-columns:1fr; gap:22px; } }
.axis__viz{ display:flex; gap:clamp(18px,2vw,26px); align-items:center; min-width:0; }
.axis__ring{ position:relative; width:clamp(96px,10vw,120px); flex:none; }
.axis__ring svg{ width:100%; height:auto; display:block; }
.axis__ringnum{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Kiona','Montserrat',sans-serif; }
.axis__ringnum span{ font-size:clamp(28px,3.2vw,36px); font-weight:700; color:var(--ink); line-height:1; }
.axis__ringnum sup{ font-size:13px; color:var(--muted); }
.axis__lead{ flex:1; min-width:0; }
.axis__cap{ font-family:'Montserrat',sans-serif; font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--ink); margin-bottom:2px; }
.axis__unit{ font-family:'Montserrat',sans-serif; font-size:12px; color:var(--muted); margin-bottom:12px; }
.axis__bars{ display:flex; flex-direction:column; gap:8px; }
.axis__bar{ display:grid; grid-template-columns:64px 1fr auto; align-items:center; gap:10px; font-family:'Montserrat',sans-serif; }
.axis__bar-k{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
.axis__bar .bar{ height:5px; border-radius:999px; background:var(--rule); overflow:hidden; margin:0; position:relative; }
.axis__bar .bar i{ position:absolute; left:0; top:0; bottom:0; background:var(--acc); border-radius:999px; transition:width .5s ease; }
.axis__bar-v{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:13px; color:var(--ink); white-space:nowrap; }
.axis__info{ min-width:0; }
.axis__plain{ font-family:'Montserrat',sans-serif; font-size:14px; line-height:1.55; color:var(--ink); margin:0 0 16px; }
.axis__data{ display:grid; grid-template-columns:1fr 1fr; gap:6px 24px; }
.axis__data > div{ display:flex; justify-content:space-between; gap:10px; border-bottom:1px dotted var(--rule); padding:5px 0; font-family:'Montserrat',sans-serif; font-size:12.5px; color:var(--muted); }
.axis__data b{ color:var(--ink); font-weight:600; white-space:nowrap; text-align:right; }
@media(max-width:520px){ .axis__viz{ flex-direction:column; align-items:flex-start; } .axis__data{ grid-template-columns:1fr; } }
.ly-dark-mode .axis__cap, .ly-dark-mode .axis__ringnum span, .ly-dark-mode .axis__plain, .ly-dark-mode .axis__bar-v, .ly-dark-mode .axis__data b{ color:#f2f0eb; }

/* — CTA — */
.aut-sob-cta{ border-top:1px solid var(--rule); padding-left:clamp(20px,4vw,56px); padding-right:clamp(20px,4vw,56px); }
.aut-sob-cta__grid{ display:grid; grid-template-columns:1.4fr 1fr; padding:0; }
@media(max-width:860px){ .aut-sob-cta__grid{ grid-template-columns:1fr; } }
.aut-sob-cta .txt{ padding:clamp(28px,3.5vw,44px) clamp(28px,3vw,44px) clamp(28px,3.5vw,44px) 0; border-right:1px solid var(--rule); }
@media(max-width:860px){ .aut-sob-cta .txt{ border-right:none; border-bottom:1px solid var(--rule); padding-right:0; } }
.aut-sob-cta h3{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.04em; font-size:clamp(16px,1.8vw,20px); margin:0 0 10px; color:var(--ink); }
.aut-sob-cta p{ font-size:13.5px; color:var(--muted); margin:0; line-height:1.6; max-width:560px; }
.aut-sob-cta .form{ padding:clamp(28px,3.5vw,44px) 0 clamp(28px,3.5vw,44px) clamp(28px,3vw,44px); display:flex; flex-direction:column; justify-content:center; gap:10px; }
@media(max-width:860px){ .aut-sob-cta .form{ padding-left:0; } }
.aut-sob-cta input{ font-family:'Montserrat',sans-serif; font-size:14px; padding:12px 14px; border:1px solid var(--rule); background:var(--paper); color:var(--ink); border-radius:0; }
.aut-sob-cta input:focus{ outline:1px solid var(--acc); outline-offset:1px; }
.aut-sob-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:'Montserrat',sans-serif; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; background:var(--ink); color:#fff; border:none; border-radius:999px; padding:14px 22px; cursor:pointer; transition:background .2s,color .2s; }
.aut-sob-btn:hover{ background:var(--acc); }
/* Mismo problema que la pastilla: --ink se invierte en dark mode (pasa a
   claro) y el botón sólido ("Guardar este territorio", "Continuar") quedaba
   con texto blanco sobre fondo casi blanco. Se invierte a propósito el par
   fondo/texto — mismo patrón que .progchip--global más abajo. */
.ly-dark-mode .aut-sob-btn:not(.aut-sob-btn--ghost):not(.aut-sob-btn--mini){ background:#f2f0eb; color:#111; }
.ly-dark-mode .aut-sob-btn:not(.aut-sob-btn--ghost):not(.aut-sob-btn--mini):hover{ background:var(--acc); color:#fff; }
.aut-sob-btn--ghost{ background:transparent; color:var(--ink); border:1px solid var(--rule); }
.aut-sob-btn--ghost:hover{ background:var(--paper); border-color:var(--acc); }
.aut-sob-formmsg{ font-family:'Montserrat',sans-serif; font-size:12px; letter-spacing:.02em; min-height:16px; }
.aut-sob-formmsg.ok{ color:#6b9b6b; }
.aut-sob-formmsg.err{ color:#d9534f; }

/* — Procedencia — */
.aut-sob-provblock{ border-top:1px solid var(--rule); padding-top:clamp(32px,4vw,52px); padding-bottom:clamp(40px,5vw,72px); scroll-margin-top:var(--sob-scroll-offset,160px); }
.aut-sob-prov h3{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.08em; font-size:14px; margin:0 0 18px; color:var(--ink); }
/* Metodología (doc §9): encabezado + bajada de la sección "Cómo calculamos". */
.aut-sob-prov__h2{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:-.005em; font-size:clamp(22px,3vw,32px); color:var(--ink); margin:0 0 10px; }
.aut-sob-prov__lead{ font-family:'Montserrat',sans-serif; font-size:14px; line-height:1.6; color:var(--muted); max-width:70ch; margin:0 0 8px; }
.aut-sob-prov--index{ margin-top:8px; }
/* Encuadre de expectativas pegado al índice (doc §4.2). */
.aut-sob-scoreframe{ font-family:'Montserrat',sans-serif; font-size:12px; color:var(--muted); text-align:center; margin:8px 0 0; }
.aut-sob-scoreframe__link{ color:var(--acc); text-decoration:underline; text-decoration-color:rgba(182,161,107,.4); white-space:nowrap; }
.aut-sob-scoreframe__link:hover{ text-decoration-color:var(--acc); }
.aut-sob-prov .grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px 40px; }
@media(max-width:860px){ .aut-sob-prov .grid{ grid-template-columns:1fr; } }
.aut-sob-prov .blk{ font-size:12.5px; color:var(--muted); line-height:1.6; }
.aut-sob-prov .blk .tag{ display:inline-block; font-family:'Montserrat',sans-serif; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--acc); border:1px solid rgba(182,161,107,.4); background:rgba(182,161,107,.08); padding:2px 8px; margin-bottom:7px; }
.aut-sob-prov .blk b{ color:var(--ink); font-weight:600; }
.aut-sob-prov .blk a{ color:var(--ink); text-decoration:underline; text-decoration-color:rgba(182,161,107,.5); }
.aut-sob-prov--assump{ border-top:1px solid var(--rule); margin-top:32px; padding-top:28px; }
.aut-sob-legal{ margin-top:36px; font-family:'Montserrat',sans-serif; font-size:11px; color:var(--muted); letter-spacing:.02em; line-height:1.7; }

/* — Dark mode — */
.ly-dark-mode .aut-sob-h1, .ly-dark-mode .aut-sob-lede,
.ly-dark-mode .aut-sob-steplabel .h, .ly-dark-mode .siteinfo__groups .item b,
.ly-dark-mode .aut-sob-io h3, .ly-dark-mode .aut-sob-io .field label,
.ly-dark-mode .aut-sob-kpis .kpi__v, .ly-dark-mode .aut-sob-res .cap,
.ly-dark-mode .aut-sob-res .big, .ly-dark-mode .aut-sob-res .bd b,
.ly-dark-mode .aut-sob-chart-head h2, .ly-dark-mode .aut-sob-cta h3,
.ly-dark-mode .aut-sob-prov h3, .ly-dark-mode .aut-sob-prov .blk b,
.ly-dark-mode .siteinfo__live .cell .v{ color:#f2f0eb; }
.ly-dark-mode .aut-sob-strip, .ly-dark-mode .aut-sob-loc-grid,
.ly-dark-mode .aut-sob-siteinfo, .ly-dark-mode .siteinfo__status,
.ly-dark-mode .siteinfo__groups, .ly-dark-mode .siteinfo__live,
.ly-dark-mode .aut-sob-kpis .kpi,
.ly-dark-mode .aut-sob-chartblock, .ly-dark-mode .aut-sob-chartrow,
.ly-dark-mode .aut-sob-chartcol:first-child, .ly-dark-mode .aut-sob-io,
.ly-dark-mode .aut-sob-res,
.ly-dark-mode .aut-sob-res .rcard, .ly-dark-mode .aut-sob-cta,
.ly-dark-mode .aut-sob-cta .txt, .ly-dark-mode .aut-sob-provblock,
.ly-dark-mode .aut-sob-prov--assump, .ly-dark-mode .aut-sob-searchwrap{ border-color:rgba(255,255,255,.1); }
.ly-dark-mode .aut-sob-searchbox input, .ly-dark-mode .aut-sob-coordrow input,
.ly-dark-mode .aut-sob-io select, .ly-dark-mode .aut-sob-cta input{ background:#111; color:#f2f0eb; border-color:rgba(255,255,255,.15); }
.ly-dark-mode .aut-sob-btn--ghost{ color:#f2f0eb; border-color:rgba(255,255,255,.2); }
.ly-dark-mode .aut-sob-btn--ghost:hover{ background:#1f1f1f; }
.ly-dark-mode .aut-sob-results{ background:#161616; border-color:rgba(255,255,255,.1); }
.ly-dark-mode .siteinfo__live .lbl{ background:#000; }
.ly-dark-mode #sob-map{ filter:brightness(.85) contrast(1.05); }
.ly-dark-mode .aut-sob-info__tip{ background:#000; color:#f2f0eb; }
.ly-dark-mode .aut-sob-info__tip::after{ border-top-color:#000; }

@media print{
  .aut-header, .aut-sob-cta, .aut-sob-searchwrap, .aut-sob-hint, .aut-sob-results, .aut-sob-coordrow{ display:none !important; }
  #sob-map{ height:220px; }
  .aut-sob-chartrow{ grid-template-columns:1fr 1fr; }
}

/* ── Soberanía v3 · resumen ejecutivo, impacto, recomendaciones ── */

/* Resumen ejecutivo con score */
.aut-sob-summary{ border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); background:rgba(182,161,107,.05); }
.aut-sob-summary__grid{ display:grid; grid-template-columns:auto 1fr; gap:clamp(28px,4vw,64px); padding-top:clamp(28px,3.5vw,44px); padding-bottom:clamp(28px,3.5vw,44px); align-items:center; }
@media(max-width:760px){ .aut-sob-summary__grid{ grid-template-columns:1fr; gap:24px; justify-items:center; } }
/* ── Anillo triple concéntrico (§4) + leyenda ── */
.aut-sob-triwrap{ display:flex; flex-direction:column; align-items:center; gap:12px; }
.aut-sob-triring{ position:relative; width:clamp(200px,24vw,248px); flex:none; }
.aut-sob-triring svg{ display:block; width:100%; height:auto; }
/* Centro: sólo el número, perfectamente centrado. El label va debajo. */
.aut-sob-triring__center{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.aut-sob-triring__num{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:clamp(46px,5.5vw,62px); color:var(--ink); line-height:1; }
/* 3 dígitos (100): achicar para que no desborde el centro del anillo. */
.aut-sob-triring__num.is-3d{ font-size:clamp(36px,4.2vw,48px); }
.aut-sob-triring__cap{ font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); display:flex; align-items:center; justify-content:center; gap:4px; text-align:center; }
/* Gauges SVG con transición suave in-place: se actualiza el stroke-dashoffset
   por atributo y el arco se desliza al valor nuevo (no salta). */
.sob-gaugearc, .sob-triarc{ transition:stroke-dashoffset .7s cubic-bezier(.4,0,.2,1), stroke .4s ease, opacity .35s ease; }
.sob-foodlap{ transition:opacity .45s ease; }
@media(prefers-reduced-motion:reduce){ .sob-gaugearc, .sob-triarc, .sob-foodlap{ transition:none; } }
.aut-sob-trilegend{ display:flex; flex-direction:column; gap:1px; margin:0 0 16px; max-width:500px; }
.trileg{ display:grid; grid-template-columns:14px 84px auto 1fr; align-items:baseline; gap:10px; text-decoration:none; color:inherit; padding:8px; margin:0 -8px; border-radius:7px; transition:background .15s; }
.trileg:hover{ background:rgba(182,161,107,.08); }
.trileg__dot{ width:11px; height:11px; border-radius:50%; align-self:center; }
.trileg__k{ font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ink); }
.trileg__v{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:18px; color:var(--ink); white-space:nowrap; }
.trileg__v sup{ font-size:10px; color:var(--muted); }
.trileg__x{ font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; color:var(--acc); }
.trileg__p{ font-family:'Montserrat',sans-serif; font-size:12px; line-height:1.4; color:var(--muted); }
@media(max-width:600px){ .trileg{ grid-template-columns:14px 1fr auto; } .trileg__p{ grid-column:2 / -1; } }
.ly-dark-mode .trileg__k,.ly-dark-mode .trileg__v{ color:#f2f0eb; }
.ly-dark-mode .trileg:hover{ background:rgba(255,255,255,.05); }
/* scroll-margin: al saltar a una sección desde la sub-nav, deja ver el título
   (no queda tapado por el header + toolbar fijos). El offset lo actualiza el JS. */
.aut-sob-strip--step, #sob-foodSection, .aut-sob-evgroup{ scroll-margin-top:var(--sob-scroll-offset, 172px); }
.aut-sob-score{ text-align:center; }
/* Hero metric: tiene que leerse como EL número de toda la herramienta —
   más grande que cualquier % secundario (energía/agua/alimentos usan
   clamp(48px,6vw,68px); este debe superarlo con margen). */
.aut-sob-score__ring{ position:relative; width:clamp(170px,20vw,230px); margin:0 auto; }
.aut-sob-score__ring svg{ display:block; width:100%; height:auto; }
.aut-sob-score__num{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:clamp(58px,7.5vw,86px); color:var(--ink); }
.aut-sob-score__cap{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:12px; font-weight:600; color:var(--muted); margin-top:16px; display:flex; align-items:center; justify-content:center; }
/* Insignia "Territorio excepcional" (PR-8) — top ~10% calibrado, no un chip
   más: color dorado sólido, distinto de los chips outline (terrpot, flags). */
.aut-sob-exceptional{ display:inline-flex; align-items:center; gap:5px; font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#5c4a1f; background:linear-gradient(135deg,#e8d4a0,#c9a24c); padding:5px 12px; border-radius:999px; margin-bottom:8px; }
.aut-sob-exceptional[hidden]{ display:none; }
.ly-dark-mode .aut-sob-exceptional{ color:#3a2e12; }
.aut-sob-score__verdict{ font-family:'Montserrat',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:14px; margin-top:8px; }
.aut-sob-score__verdict.hi{ color:#6b9b6b; }
.aut-sob-score__verdict.mid{ color:var(--acc); }
.aut-sob-score__verdict.lo{ color:#c0563f; }
/* Segundo número: potencial del territorio (chip fijo, menor, junto al anillo) +
   frase de delta (doc §2.1). Aparecen solo con escenario activo. */
/* OJO: el display va en :not([hidden]) —si se pone en la regla base, el
   display:inline-flex de autor le gana al [hidden]{display:none} del navegador
   y el atributo hidden deja de funcionar (el chip queda siempre visible). */
.aut-sob-terrpot{ align-items:baseline; gap:8px; margin-top:12px; padding:5px 12px; border:1px solid var(--rule); border-radius:999px; }
.aut-sob-terrpot:not([hidden]){ display:inline-flex; }
.aut-sob-terrpot__k{ font-family:'Montserrat',sans-serif; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); }
.aut-sob-terrpot__v{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:16px; color:var(--ink); line-height:1; font-variant-numeric:tabular-nums; }
.aut-sob-delta{ font-family:'Montserrat',sans-serif; font-size:13px; line-height:1.5; color:var(--muted); margin:8px 0 0; max-width:52ch; }
/* Voz de marca (doc §10.1): acento declarativo, no headline. SIN display en la
   regla base para que el atributo [hidden] funcione (ver bug del chip). */
.aut-sob-voice{ font-family:'Montserrat',sans-serif; font-style:italic; font-size:14px; line-height:1.5; color:var(--acc); margin:10px 0 0; }
.ly-dark-mode .aut-sob-terrpot__v{ color:#f2f0eb; }
/* 3 sub-índices con mini-barra, junto al gauge — hacen visible la tensión
   entre el índice global y cada eje. Cada fila es ancla a su evidencia. */
.aut-sob-subindex{ display:flex; flex-direction:column; gap:6px; margin:0 0 18px; max-width:460px; }
.aut-sob-subindex__row{ display:grid; grid-template-columns:82px auto minmax(60px,1fr) 14px; align-items:center; gap:12px; text-decoration:none; color:inherit; padding:7px 8px; margin:0 -8px; border-radius:7px; transition:background .15s; }
.aut-sob-subindex__row:hover{ background:rgba(182,161,107,.09); }
.aut-sob-subindex__k{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:11px; color:var(--muted); }
.aut-sob-subindex__v{ font-family:'Montserrat',sans-serif; font-weight:600; font-size:19px; line-height:1; color:var(--ink); white-space:nowrap; justify-self:end; }
.aut-sob-subindex__v sup{ font-size:11px; color:var(--muted); margin-left:1px; }
.aut-sob-subindex__bar{ position:relative; height:6px; border-radius:999px; background:var(--rule); overflow:hidden; }
.aut-sob-subindex__bar i{ position:absolute; inset:0 auto 0 0; display:block; background:var(--acc); border-radius:999px; transition:width .5s cubic-bezier(.16,1,.3,1); }
.aut-sob-subindex__go{ font-size:13px; color:var(--muted); opacity:0; transition:opacity .15s, transform .15s; }
.aut-sob-subindex__row:hover .aut-sob-subindex__go{ opacity:1; transform:translateX(2px); }
.ly-dark-mode .aut-sob-subindex__row:hover{ background:rgba(255,255,255,.05); }
.aut-sob-summary__lead{ font-family:'Montserrat',sans-serif; font-size:clamp(15px,1.5vw,19px); line-height:1.55; color:var(--ink); margin:0 0 16px; max-width:720px; }
.aut-sob-flags{ display:flex; flex-wrap:wrap; gap:8px; }
.aut-sob-flag{ font-family:'Montserrat',sans-serif; font-size:13px; letter-spacing:.02em; padding:6px 13px; border-radius:10px; border:1px solid var(--rule); }
.aut-sob-flag.ok{ color:#5a7d5a; border-color:rgba(107,155,107,.4); background:rgba(107,155,107,.07); }
.aut-sob-flag.warn{ color:#b07a3a; border-color:rgba(196,127,74,.4); background:rgba(196,127,74,.07); }

/* Impacto */
.aut-sob-impact{ border-top:1px solid var(--rule); }
.aut-sob-impact__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; padding-top:8px; padding-bottom:8px; }
@media(max-width:860px){ .aut-sob-impact__grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px){ .aut-sob-impact__grid{ grid-template-columns:1fr; } }
.aut-sob-impact .imp{ padding:22px 22px 22px 0; }
.aut-sob-impact .imp__k{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.04em; font-size:10.5px; color:var(--muted); line-height:1.4; min-height:2.4em; display:flex; align-items:flex-start; }
.aut-sob-impact .imp__v{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:clamp(22px,2.2vw,30px); color:var(--ink); margin-top:8px; }
.aut-sob-impact .imp__v small{ font-size:12px; color:var(--muted); font-weight:400; }
.aut-sob-impact .imp__sub{ font-family:'Montserrat',sans-serif; font-size:11px; color:var(--muted); margin-top:4px; line-height:1.4; }

/* Recomendaciones */
.aut-sob-reco{ border-top:1px solid var(--rule); padding-top:clamp(24px,3vw,40px); padding-bottom:clamp(24px,3vw,40px); }
.aut-sob-reco__head{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:18px; }
.aut-sob-reco__tag{ font-family:'Montserrat',sans-serif; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--acc); border:1px solid rgba(182,161,107,.4); background:rgba(182,161,107,.08); padding:3px 10px; }
.aut-sob-reco__head h2{ font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.05em; font-size:14px; margin:0; color:var(--ink); }
.aut-sob-reco__list{ list-style:none; margin:0 0 16px; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px 32px; }
@media(max-width:760px){ .aut-sob-reco__list{ grid-template-columns:1fr; } }
.aut-sob-reco__list li{ font-family:'Montserrat',sans-serif; font-size:13.5px; line-height:1.5; color:var(--ink); padding-left:18px; position:relative; }
.aut-sob-reco__list li::before{ content:'—'; position:absolute; left:0; color:var(--acc); }
.aut-sob-reco__note{ font-family:'Montserrat',sans-serif; font-size:12px; color:var(--muted); line-height:1.6; margin:0; max-width:720px; }

/* Botones mini (compartir/exportar) */
.aut-sob-cta__row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:2px; }
.aut-sob-btn--mini{ flex:1; padding:10px 14px; font-size:10.5px; background:transparent; color:var(--muted); border:1px solid var(--rule); }
.aut-sob-btn--mini:hover{ color:var(--ink); border-color:var(--acc); background:transparent; }
.aut-sob-tariff-wrap input[type=number]{ width:100%; font-family:'Montserrat',sans-serif; font-size:14px; padding:10px 12px; border:1px solid var(--rule); background:var(--paper); color:var(--ink); border-radius:0; }
.aut-sob-io input[type=number]{ width:100%; font-family:'Montserrat',sans-serif; font-size:14px; padding:10px 12px; border:1px solid var(--rule); background:var(--paper); color:var(--ink); border-radius:10px; }
.aut-sob-io input[type=number]:focus{ outline:1px solid var(--acc); outline-offset:1px; }
/* iOS: cualquier input de texto/número/email a 16px en mobile, para que Safari
   no haga auto-zoom de la página al enfocarlo (los inputs a <16px lo disparan;
   user-scalable=no no lo frena en iOS). Solo mobile — no cambia desktop. */
@media(max-width:768px){
  .aut2.aut-soberania input[type=text],
  .aut2.aut-soberania input[type=number],
  .aut2.aut-soberania input[type=email],
  .aut2.aut-soberania input[type=search],
  .aut2.aut-soberania input[type=tel]{ font-size:16px; }
}

/* Dark mode v3 */
.ly-dark-mode .aut-sob-summary{ background:rgba(182,161,107,.04); border-color:rgba(255,255,255,.1); }
.ly-dark-mode .aut-sob-score__num,
.ly-dark-mode .aut-sob-summary__lead,
.ly-dark-mode .aut-sob-impact .imp__v,
.ly-dark-mode .aut-sob-reco__head h2,
.ly-dark-mode .aut-sob-reco__list li{ color:#f2f0eb; }
.ly-dark-mode .aut-sob-impact,
.ly-dark-mode .aut-sob-impact .imp,
.ly-dark-mode .aut-sob-reco{ border-color:rgba(255,255,255,.1); }
.ly-dark-mode .aut-sob-io input[type=number]{ background:#111; color:#f2f0eb; border-color:rgba(255,255,255,.15); }
.ly-dark-mode .aut-sob-flag{ border-color:rgba(255,255,255,.15); }

@media print{
  .aut-sob-cta__row{ display:none !important; }
}

/* ── Soberanía · diferenciación tonal de secciones (ritmo visual) ──
   Tres tonos muy sutiles dentro de la paleta Autónoma para que la
   página respire y se lean los bloques temáticos. Nada estridente. */
.aut-soberania{ --sob-tint-a:#F5F2EC; --sob-tint-b:#EFEBE2; --sob-tint-c:#ECE7DC; --sob-tint-ink:#13110D; }
.ly-dark-mode .aut-soberania{ --sob-tint-a:#0D0D0D; --sob-tint-b:#121212; --sob-tint-c:#161514; }

/* Bloque CLIMA (datos del sitio) — tono base claro */
.aut-sob-band-clima{ background:var(--sob-tint-a); }
/* Bloque PROGRAMA (inputs) — tono medio, marca "zona de acción" */
.aut-sob-band-program{ background:var(--sob-tint-b); }
/* Bloque DIAGNÓSTICO (resultados) — tono cálido apenas más profundo */
.aut-sob-band-diag{ background:var(--sob-tint-c); }
/* Bloque MÉTODO (procedencia) — vuelve al oscuro editorial ya existente */

/* Asegurar que el contenido interno respete el ancho aun con fondo full-bleed */
.aut-sob-band-clima, .aut-sob-band-program, .aut-sob-band-diag{ width:100%; }

/* ── Soberanía · botones de descarga bloqueados (gancho de lead) ── */
.aut-sob-btn.is-locked{ opacity:.5; cursor:not-allowed; position:relative; }
.aut-sob-btn.is-locked:hover{ background:transparent; border-color:var(--rule); color:var(--muted); }
.aut-sob-lock{ width:15px; height:15px; margin-right:5px; opacity:.75; vertical-align:-2px; flex:none; }
.aut-sob-btn:not(.is-locked) .aut-sob-lock{ display:none; }
.aut-sob-shake{ animation:sobShake .42s; }
@keyframes sobShake{ 0%,100%{transform:translateX(0);} 25%{transform:translateX(-5px);} 75%{transform:translateX(5px);} }

/* ── Soberanía · frase de lectura natural en cada card de diagnóstico ── */
.aut-sob-res .plain, .aut-sob-food .plain{ font-family:'Montserrat',sans-serif; font-size:13px; line-height:1.5; color:var(--ink); margin-top:10px; padding-top:10px; border-top:1px dashed var(--rule); max-width:34ch; }
.aut-sob-food .plain{ max-width:none; }
.ly-dark-mode .aut-sob-res .plain{ color:#e8e4db; }

/* ── Soberanía · tooltip de valores en gráficos (hover) ── */
.aut-sob-charttip{ position:fixed; z-index:9999; pointer-events:none; background:var(--ink,#0D0D0D); color:var(--paper,#F5F2EC); font-family:'Montserrat',sans-serif; font-size:12px; line-height:1.5; padding:9px 12px; border-radius:4px; box-shadow:0 6px 24px rgba(0,0,0,.22); min-width:120px; }
.aut-sob-charttip .m{ font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:10.5px; color:var(--acc,#b6a16b); margin-bottom:5px; border-bottom:1px solid rgba(255,255,255,.12); padding-bottom:4px; }
.aut-sob-charttip .row{ display:flex; justify-content:space-between; gap:18px; }
.aut-sob-charttip .k{ color:rgba(245,242,236,.7); }
.aut-sob-charttip .v{ font-weight:600; }
.aut-sob-hoverzone{ cursor:crosshair; }
.ly-dark-mode .aut-sob-charttip{ background:#000; }

/* ── Soberanía · Riesgos y condicionantes ── */
.aut-sob-risks{ border-top:1px solid var(--rule); }
.aut-sob-risks__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; }
@media(max-width:860px){ .aut-sob-risks__grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .aut-sob-risks__grid{ grid-template-columns:1fr; } }
.aut-sob-risks .risk{ padding:clamp(22px,2.5vw,30px) clamp(22px,2.5vw,32px) clamp(22px,2.5vw,30px) 0; border-bottom:1px solid var(--rule); min-width:0;
  /* Reorden (mockup): icono + pastilla de estado juntos arriba a la IZQUIERDA;
     nombre/valor/nota debajo. */
  display:grid; grid-template-columns:auto 1fr; column-gap:10px; align-content:start;
  grid-template-areas:"icon badge" "name name" "val val" "note note"; }
.aut-sob-risks__grid .risk:nth-child(3n){ border-right:none; }
@media(max-width:860px){ .aut-sob-risks__grid .risk{ border-right:1px solid var(--rule); padding-right:clamp(16px,3vw,24px); } .aut-sob-risks__grid .risk:nth-child(2n){ border-right:none; } .aut-sob-risks__grid .risk:nth-child(3n){ border-right:1px solid var(--rule); } }
@media(max-width:520px){ .aut-sob-risks__grid .risk{ border-right:none !important; padding-right:0; } }
.aut-sob-risks .risk__icon{ grid-area:icon; font-size:24px; line-height:1; margin-bottom:12px; color:var(--muted); align-self:center; }
/* Icono coloreado según el estado del riesgo (mismo color que la pastilla). */
.aut-sob-risks .risk[data-lvl="low"] .risk__icon{ color:#5a7d5a; }
.aut-sob-risks .risk[data-lvl="mid"] .risk__icon{ color:#9a7b34; }
.aut-sob-risks .risk[data-lvl="high"] .risk__icon{ color:#b23c2e; }
.aut-sob-risks .risk__head{ grid-area:name; display:flex; align-items:flex-start; gap:8px; margin-bottom:10px; }
.aut-sob-risks .risk__name{ font-family:'Montserrat',sans-serif; font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--ink); line-height:1.35; display:flex; align-items:center; }
.aut-sob-risks .risk__val{ grid-area:val; font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:clamp(20px,2vw,26px); color:var(--ink); line-height:1; margin-bottom:8px; }
.aut-sob-risks .risk__val b{ color:var(--acc); }
.aut-sob-risks .risk__lvl-badge{ grid-area:badge; justify-self:start; align-self:center; margin-bottom:12px; }
.aut-sob-risks .risk__lvl{ display:inline-block; font-family:'Montserrat',sans-serif; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:3px 9px; border-radius:999px; border:1px solid var(--rule); color:var(--muted); white-space:nowrap; }
.aut-sob-risks .risk__lvl[data-lvl="low"]{ color:#5a7d5a; border-color:rgba(107,155,107,.45); background:rgba(107,155,107,.08); }
.aut-sob-risks .risk__lvl[data-lvl="mid"]{ color:#9a7b34; border-color:rgba(182,161,107,.5); background:rgba(182,161,107,.1); }
.aut-sob-risks .risk__lvl[data-lvl="high"]{ color:#b23c2e; border-color:rgba(192,86,63,.45); background:rgba(192,86,63,.08); }
/* Tip destacado: fondo sutil + acento a la izquierda + texto más presente. */
.aut-sob-risks .risk__note{ grid-area:note; font-family:'Montserrat',sans-serif; font-size:13px; line-height:1.5; font-weight:500; color:var(--ink); max-width:34ch; margin-top:4px; padding:10px 12px; background:rgba(182,161,107,.08); border-left:2px solid var(--acc); border-radius:0 6px 6px 0; }
.ly-dark-mode .aut-sob-risks .risk__note{ color:#f2f0eb; background:rgba(182,161,107,.1); }
.aut-sob-risks .risk--note{ border-right:none !important; display:flex; align-items:center; }
.aut-sob-risks .risk__disclaimer{ font-family:'Montserrat',sans-serif; font-size:12px; line-height:1.55; color:var(--muted); font-style:italic; }
.ly-dark-mode .aut-sob-risks .risk__name,
.ly-dark-mode .aut-sob-risks .risk__val{ color:#f2f0eb; }
.ly-dark-mode .aut-sob-risks .risk__disclaimer strong{ color:#f2f0eb; }
.ly-dark-mode .aut-sob-risks,
.ly-dark-mode .aut-sob-risks .risk{ border-color:rgba(255,255,255,.1); }


/* ════════════════════════════════════════════════════════════════
   HERRAMIENTA · Índice de Soberanía Operativa (presentación en hub)
   Mismo lenguaje visual que el hero de /autonoma/soberania/: foto de
   fondo full-bleed + velo degradé + texto blanco encima (3 capas:
   __bg / __veil / __inner), en vez de la tarjeta con grilla animada
   que había antes.
════════════════════════════════════════════════════════════════ */
.aut2-tool {
  position: relative;
  width: 100%;
  min-height: clamp(480px, 62vh, 720px);
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
  border-top: 1px solid rgba(255,255,255,.08);
}
.aut2-tool__bg {
  position: absolute; inset: 0;
  background: var(--void) center/cover no-repeat;
  transform: scale(1.04);
  transition: transform 12s cubic-bezier(.16,1,.3,1);
}
.aut2-tool:hover .aut2-tool__bg { transform: scale(1); }
.aut2-tool__veil {
  position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.6) 40%, rgba(0,0,0,.2) 75%, rgba(0,0,0,.05) 100%);
  z-index: 1;
}
.aut2-tool__inner {
  position: relative;
  z-index: 2;
  max-width: 1240px;
  width: 100%;
  margin: 0 auto;
  padding: clamp(56px, 8vh, 110px) var(--side);
}
.aut2-tool__text { max-width: 620px; }
.aut2-tool__title {
  font-size: clamp(30px, 4.4vw, 60px);
  font-weight: 700;
  line-height: 0.98;
  letter-spacing: -0.025em;
  margin: 0 0 24px;
  text-wrap: balance;
}
.aut2-tool__lead {
  font-size: clamp(15px, 1.35vw, 18px);
  line-height: 1.65;
  color: rgba(255,255,255,.82);
  max-width: 560px;
  margin: 0 0 18px;
}
.aut2-tool__lead--muted { color: rgba(255,255,255,.55); font-size: clamp(14px,1.2vw,16px); }
.aut2-tool__cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 16px;
  padding: 15px 30px;
  background: #fff;
  color: var(--void);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 999px; /* 17-jul: era rectangular, el resto de los CTA del sitio son cápsula */
  transition: background .25s, color .25s, gap .25s;
}
.aut2-tool__cta:hover { background: var(--acc, #b6a16b); color: #fff; gap: 20px; }
.aut2-tool__arrow { transition: transform .25s; }
.aut2-tool__cta:hover .aut2-tool__arrow { transform: translateX(4px); }

.aut2-tool__meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 32px;
}
.aut2-tool__meta-k {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,.9);
}
.aut2-tool__meta-src {
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
}
@media (max-width: 760px) {
  .aut2-tool { min-height: 560px; }
}
/* En dark mode el fondo del sitio ya es oscuro: la sección se mantiene */
.ly-dark-mode .aut2-tool { border-top-color: rgba(255,255,255,.1); }

/* ── Soberanía · sistemas productivos (cultivo escalonado) ── */
.fsys-list{ margin-top:14px; display:flex; flex-direction:column; gap:1px; }
.fsys{ display:flex; align-items:center; gap:11px; padding:9px 12px; opacity:.25; transition:opacity .2s; }
.fsys.is-on{ opacity:1; }
.fsys__icon{ font-size:16px; flex:none; filter:grayscale(1); }
.fsys.is-on .fsys__icon{ filter:none; }
.fsys__txt{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.fsys__label{ font-family:'Montserrat',sans-serif; font-size:12.5px; font-weight:600; color:var(--ink); letter-spacing:.01em; }
.fsys__desc{ font-family:'Montserrat',sans-serif; font-size:11px; color:var(--muted); line-height:1.35; }
.fsys__check{ flex:none; color:#5a7d5a; font-weight:700; font-size:14px; width:16px; text-align:center; }
.fsys-next{ margin-top:10px; font-family:'Montserrat',sans-serif; font-size:11.5px; color:var(--acc); letter-spacing:.02em; padding:8px 12px; border:1px dashed rgba(182,161,107,.5); background:rgba(182,161,107,.06); border-radius: 10px; }
.ly-dark-mode .fsys{ background:#111; }
.ly-dark-mode .fsys__label{ color:#f2f0eb; }
.ly-dark-mode .fsys-list{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.12); }

/* Regla única sin-dato (doc): valor no disponible = "—" a opacity .4. */
.sob-empty{ opacity:.4; }

/* ── Chips de sub-score sticky-local del programa (feedback en viewport §3) ── */
.aut-sob-progscore{ position:sticky; z-index:8; background:var(--paper); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.aut-sob-progscore__inner{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:11px var(--side); }
.progchip{ display:flex; align-items:baseline; gap:8px; padding:7px 14px; border:1px solid var(--rule); border-radius:999px; text-decoration:none; color:inherit; }
.progchip__k{ font-family:'Montserrat',sans-serif; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.progchip__v{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:18px; color:var(--ink); line-height:1; }
.progchip__v sup{ font-size:10px; color:var(--muted); margin-left:1px; }
.progchip--global{ background:var(--ink); border-color:var(--ink); }
.progchip--global .progchip__k{ color:rgba(255,255,255,.6); }
.progchip--global .progchip__v{ color:#fff; }
.progchip.is-flash{ animation:progFlash .8s ease; }
@keyframes progFlash{ 0%{ border-color:var(--acc); background:rgba(182,161,107,.2); } 100%{ border-color:var(--rule); background:transparent; } }
.progchip--global.is-flash{ animation:progFlashG .8s ease; }
@keyframes progFlashG{ 0%{ box-shadow:0 0 0 2px var(--acc); } 100%{ box-shadow:none; } }
/* Oculto = FUERA DEL FLUJO (display:none), no solo invisible: antes con
   opacity:0 seguía ocupando una pastilla de alto → se veía como margen vacío. */
.progchip--cta{ display:none; margin-left:auto; font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--acc); border-color:var(--acc); transition:background .2s; }
.progchip--cta.is-visible{ display:inline-flex; align-items:baseline; }
.progchip--cta:hover{ background:var(--acc); color:#fff; }
.ly-dark-mode .aut-sob-progscore{ background:#111; border-color:rgba(255,255,255,.1); }
/* Dark mode: el chip Índice es una pastilla CLARA con texto OSCURO (invertida
   para destacar). Sin esto, var(--ink) se aclaraba y quedaba texto blanco
   sobre pastilla blanca — sin contraste. */
.ly-dark-mode .progchip--global{ background:#f2f0eb; border-color:#f2f0eb; }
.ly-dark-mode .progchip--global .progchip__k{ color:rgba(0,0,0,.55); }
.ly-dark-mode .progchip--global .progchip__v{ color:#111; }
@media(max-width:600px){
  /* Sin la pastilla Índice (ya está en el mini-gauge de arriba): los 3 chips
     reparten el ancho en UNA sola línea. */
  .aut-sob-progscore .progchip--global{ display:none; }
  .aut-sob-progscore__inner{ padding:9px var(--side); gap:6px; }
  .aut-sob-progscore__inner .progchip:not(.progchip--cta){ flex:1 1 0; justify-content:center; padding:7px 6px; gap:4px; }
  .progchip__k{ font-size:9px; letter-spacing:.05em; }
  .progchip__v{ font-size:15px; }
  .progchip--cta.is-visible{ flex:1 1 100%; justify-content:center; margin-left:0; margin-top:2px; }
}
/* Delta temporal + pulso del mini-gauge */
.sob-delta{ position:absolute; left:50%; top:-15px; transform:translateX(-50%); font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:12px; white-space:nowrap; pointer-events:none; transition:opacity .45s, transform .45s; }
.sob-delta.is-pos{ color:#6b9b6b; }
.sob-delta.is-neg{ color:#c0563f; }
.sob-delta.is-out{ opacity:0; transform:translateX(-50%) translateY(-9px); }
.hsb-minigauge.is-pulse{ animation:miniPulse .42s ease; }
@keyframes miniPulse{ 0%,100%{ transform:scale(1); } 45%{ transform:scale(1.15); } }

/* ── Autonomía alimentaria (sección completa) ── */
.aut-sob-food{ border-top:1px solid var(--rule); }
/* Encabezado con rueda estilo veredicto: rueda (total, puede superar 100%
   con vueltas superpuestas) + cuerpo de lectura al lado. */
.food-head--ring{ display:grid; grid-template-columns:auto 1fr; gap:clamp(24px,4vw,52px); align-items:center; padding:clamp(18px,2.6vw,30px) 0; }
@media(max-width:620px){ .food-head--ring{ grid-template-columns:1fr; justify-items:start; gap:18px; } }
.aut-sob-foodring{ position:relative; width:clamp(140px,16vw,184px); flex:none; }
.aut-sob-foodring svg{ display:block; width:100%; height:auto; }
.aut-sob-foodring__num{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:clamp(28px,3.8vw,44px); color:var(--ink); }
.aut-sob-foodring__num sup{ font-size:14px; color:var(--muted); margin-left:1px; }
.food-head__body{ min-width:0; }
/* PERF (doc §1/§12): todo número que se recalcula con sliders/preset usa
   tabular-nums para no "saltar" de ancho al cambiar de dígitos (evita reflow
   y el temblor visual del count). Cubre índice del anillo, sub-scores, chips,
   KPIs, impacto, big numbers, mini-gauge y las stats de los gráficos. */
.aut-sob-triring__num, .aut-sob-foodring__num, .trileg__v, .progchip__v,
.aut-sob-kpis .kpi__v, .aut-sob-impact .imp__v, .aut-sob-res .big,
.aut-sob-food .big, #sob-miniGaugeVal, .aut-sob-chart-stats{ font-variant-numeric: tabular-nums; }
/* Referencia de color de las ruedas (cada vuelta = 100%). */
.aut-sob-ringkey{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; padding:12px 0 4px; }
.aut-sob-ringkey__t{ font-family:'Montserrat',sans-serif; font-size:11.5px; color:var(--muted); flex:1 1 100%; }
.aut-sob-ringkey__i{ display:inline-flex; align-items:center; gap:6px; font-family:'Montserrat',sans-serif; font-size:11.5px; color:var(--ink); }
.aut-sob-ringkey__i i{ width:11px; height:11px; border-radius:50%; flex:none; }
.ly-dark-mode .aut-sob-ringkey__i{ color:#f2f0eb; }
/* Marco de lectura de las macros (frase generada, antes del bloque) — da
   contexto al "634%" para que no se lea como error. */
.food-macros-frame{ font-family:'Montserrat',sans-serif; font-size:14px; line-height:1.55; color:var(--ink); max-width:66ch; margin:clamp(16px,2vw,24px) 0 4px; }
/* Macros como lista: cada una en su línea, label · valor% · barra (mismo
   patrón que los sub-índices del veredicto). La rueda es Calorías; estas
   tres son el perfil nutricional y pueden superar 100% (excedente). */
.food-macros{ display:flex; flex-direction:column; gap:11px; padding:clamp(12px,1.6vw,18px) 0 0; max-width:520px; }
.food-macro{ display:grid; grid-template-columns:112px auto minmax(56px,1fr); align-items:center; gap:14px; }
.food-macro__k{ font-family:'Montserrat',sans-serif; font-size:14px; color:var(--ink); font-weight:400; }
.food-macro__v{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:19px; line-height:1; color:var(--ink); justify-self:end; white-space:nowrap; }
.food-macro__v sup{ font-size:11px; top:0; color:var(--muted); margin-left:1px; }
.food-macro .bar{ height:6px; border-radius:999px; background:var(--rule); position:relative; overflow:hidden; }
.food-macro .bar i{ position:absolute; left:0; top:0; bottom:0; background:var(--acc); border-radius:999px; transition:width .4s ease; }
@media(max-width:520px){ .food-macro{ grid-template-columns:96px auto 1fr; gap:10px; } }
.food-lead{ font-family:'Montserrat',sans-serif; font-size:14px; line-height:1.5; color:var(--ink); max-width:62ch; padding-bottom:clamp(20px,2.5vw,28px); border-bottom:1px solid var(--rule); margin:0 0 clamp(20px,2.5vw,28px); }
/* Sistemas productivos: cards ricas (rueda de aporte + rendimiento/calorías
   + barras de macros). Grilla responsiva de 1–2 columnas para que cada card
   tenga espacio. */
.food-systems{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:14px; background:transparent; }
.fsysf{ background:var(--paper); border:1px solid var(--rule); border-radius:10px; display:flex; flex-direction:column; gap:12px; padding:clamp(16px,1.8vw,22px); opacity:.5; transition:opacity .2s; }
.fsysf.is-on{ opacity:1; }
.fsysf__head{ display:flex; align-items:center; gap:10px; }
.fsysf__icon{ font-size:18px; flex:none; filter:grayscale(1); color:var(--muted); }
.fsysf.is-on .fsysf__icon{ filter:none; color:var(--acc); }
.fsysf__label{ flex:1; min-width:0; font-family:'Montserrat',sans-serif; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--ink); }
.fsysf__check{ flex:none; color:#5a7d5a; font-weight:700; font-size:14px; }
.fsysf__body{ display:flex; gap:16px; align-items:center; }
.fsysf__ring{ position:relative; width:72px; height:72px; flex:none; }
.fsysf__ringsvg{ width:100%; height:100%; display:block; }
.fsysf__ringnum{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:21px; color:var(--ink); }
.fsysf__ringnum small{ font-size:9px; color:var(--muted); margin-left:1px; }
.fsysf__info{ flex:1; min-width:0; }
.fsysf__desc{ font-family:'Montserrat',sans-serif; font-size:12px; line-height:1.45; color:var(--muted); margin:0 0 8px; }
.fsysf__stat{ display:flex; justify-content:space-between; gap:10px; font-family:'Montserrat',sans-serif; font-size:12px; color:var(--muted); padding:2px 0; }
.fsysf__stat b{ color:var(--ink); font-weight:600; white-space:nowrap; }
.fsysf__macros{ display:flex; flex-direction:column; gap:7px; border-top:1px solid var(--rule); padding-top:11px; }
.fsysf__macro{ display:grid; grid-template-columns:92px 1fr auto; align-items:center; gap:10px; font-family:'Montserrat',sans-serif; font-size:12px; color:var(--ink); }
.fsysf__mbar{ height:5px; border-radius:999px; background:var(--rule); overflow:hidden; }
.fsysf__mbar i{ display:block; height:100%; background:var(--acc); border-radius:999px; transition:width .4s ease; }
.fsysf__macro b{ font-weight:600; white-space:nowrap; justify-self:end; }
.fsysf__locked{ font-family:'Montserrat',sans-serif; font-size:11.5px; font-weight:600; color:var(--acc); margin:0; }
/* Foso: card especial (reserva de agua que suma % a huerta+frutales) */
.fsysf__boost{ display:flex; align-items:center; gap:14px; border-top:1px solid var(--rule); padding-top:11px; }
.fsysf__boost-v{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:28px; line-height:1; color:var(--acc); flex:none; }
.fsysf__boost-v sup{ font-size:13px; }
.fsysf__boost-t{ font-family:'Montserrat',sans-serif; font-size:12.5px; line-height:1.4; color:var(--ink); }
.fsysf__boost-t small{ color:var(--muted); }
/* Favorabilidad climática por sistema (cruza clima real × sistema) */
.fsysf__clim{ border-top:1px solid var(--rule); padding-top:11px; display:flex; flex-direction:column; gap:6px; }
.fsysf__climhd{ display:flex; justify-content:space-between; align-items:baseline; font-family:'Montserrat',sans-serif; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.fsysf__climhd b{ font-family:'Kiona','Montserrat',sans-serif; font-size:15px; color:var(--ink); }
.fsysf__climbar{ height:6px; border-radius:999px; background:var(--rule); overflow:hidden; display:block; }
.fsysf__climbar i{ display:block; height:100%; border-radius:999px; transition:width .5s ease; }
/* Feedback de recálculo en vivo: al recomputarse, las cards se reconstruyen y
   estas animaciones se disparan solas — el número pulsa y la barra crece,
   para que se vea que cambió en tiempo real. */
@keyframes sobNumPulse{ 0%{ transform:scale(1); } 32%{ transform:scale(1.1); color:var(--acc); } 100%{ transform:scale(1); } }
@keyframes sobGrowX{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }

/* ════ Animación de ENTRADA = crecimiento (no invisibilidad) ════
   Cuando una sección entra en pantalla, sus valores crecen de 0 al valor
   final: las barras se llenan de izquierda a derecha, los gráficos de barras
   crecen desde la base, y los gauges (rAF en JS) barren de 0 al número. */

/* --- Barras lineales: crecen de 0 (empiezan vacías; se llenan al entrar).
   El estado "vacío" solo aplica dentro de un bloque con `.sob-reveal` (que el
   JS agrega solo si el sistema de animación está activo), para no dejar barras
   invisibles si no corre. --- */
/* Barras persistentes (no se reconstruyen): vacías por defecto, crecen al entrar. */
.sob-reveal .bar i,
.sob-reveal .food-macro .bar i{ transform-origin:left center; transform:scaleX(0); }
.is-inview .bar i,
.is-inview .food-macro .bar i{ animation:sobGrowX 1.15s cubic-bezier(.2,.7,.2,1) forwards; }
/* Barras de las cards de alimento (se reconstruyen en cada cálculo): crecen SOLO
   al entrar la sección (one-shot `.sob-play`), no en cada rebuild → sin parpadeo
   al arrastrar. Visibles por defecto. */
.fsysf__mbar i, .fsysf__climbar i, .cmpbar__fill{ transform-origin:left center; }
/* Cada card se anima cuando ELLA entra en pantalla (`.fsysf.sob-play`), no todas
   juntas. El comparador sigue por contenedor (`.sob-play .cmpbar__fill`). */
@keyframes sobRingPop{ from{ transform:scale(.8); opacity:.35; } to{ transform:scale(1); opacity:1; } }
.fsysf.sob-play .fsysf__mbar i, .fsysf.sob-play .fsysf__climbar i{ animation:sobGrowX 1.1s cubic-bezier(.2,.7,.2,1); }
.fsysf.sob-play .fsysf__ring{ animation:sobRingPop .55s cubic-bezier(.2,.7,.2,1); }
.sob-play .cmpbar__fill{ animation:sobGrowX 1.1s cubic-bezier(.2,.7,.2,1); }

/* --- Gráficos de barras: cada barra crece desde su base, UNA TRAS OTRA
   (stagger por índice) — el gráfico es la animación en sí, no un telón.
   `backwards` mantiene la barra en 0 durante su espera; `transform-box:
   fill-box` hace que scaleY nazca de la base de cada barra. --- */
.sob-cbar{ transform-box:fill-box; transform-origin:center bottom; }
.sob-cbar--down{ transform-origin:center top; }   /* barras que cuelgan (frío en grados-día) */
@keyframes sobBarRise{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
@keyframes sobValIn{ from{ opacity:0; } to{ opacity:1; } }
.sob-play .sob-cbar{ animation:sobBarRise .5s cubic-bezier(.2,.85,.3,1) backwards; animation-delay:calc(var(--i,0) * 65ms); }
.sob-play .sob-cbarval{ animation:sobValIn .35s ease backwards; animation-delay:calc(var(--i,0) * 65ms + .26s); }
/* Líneas de datos (T media, claridad, demanda): se DIBUJAN de izq. a der.
   DESPUÉS de que crecieron las barras; los puntos aparecen a su paso. */
@keyframes sobLineDraw{ from{ stroke-dashoffset:1; } to{ stroke-dashoffset:0; } }
.sob-play .sob-cline{ stroke-dasharray:1; animation:sobLineDraw .95s cubic-bezier(.4,0,.2,1) .95s backwards; }
.sob-play .sob-cdot{ animation:sobValIn .3s ease backwards; animation-delay:calc(1.05s + var(--i,0) * 45ms); }

/* --- Cards de alimento: el número pulsa al recomputarse en pantalla. --- */
.fsysf.sob-play .fsysf__ringnum{ animation:sobNumPulse .5s ease; }
.fsysf.sob-play .fsysf__clim .fsysf__climhd b{ display:inline-block; animation:sobNumPulse .5s ease; }

/* Durante el crecimiento rAF del gauge, sin transición CSS (la maneja el JS). */
.sob-growing .sob-gaugearc, .sob-growing .sob-triarc{ transition:none !important; }

@media print{
  .sob-reveal .bar i, .sob-reveal .food-macro .bar i,
  .fsysf__mbar i, .fsysf__climbar i, .sob-cbar, .sob-cbarval, .sob-cline, .sob-cdot{ transform:none!important; animation:none!important; opacity:1!important; stroke-dasharray:none!important; }
}
@media (prefers-reduced-motion:reduce){
  .sob-reveal .bar i, .sob-reveal .food-macro .bar i,
  .fsysf__mbar i, .fsysf__climbar i,
  .sob-play .sob-cbar, .sob-play .sob-cbarval, .sob-play .sob-cline, .sob-play .sob-cdot{ transform:none; animation:none; opacity:1; stroke-dasharray:none; }
  .fsysf.sob-play .fsysf__ringnum, .fsysf.sob-play .fsysf__clim .fsysf__climhd b, .fsysf.sob-play .fsysf__ring{ animation:none; }
}
.fsysf__clim--good .fsysf__climbar i{ background:#5a7d5a; }
.fsysf__clim--warn .fsysf__climbar i{ background:#c9962e; }
.fsysf__clim--hard .fsysf__climbar i{ background:#b23c2e; }
.fsysf__climtxt{ font-family:'Montserrat',sans-serif; font-size:11.5px; line-height:1.45; color:var(--ink); }
.fsysf__clim--good .fsysf__climhd b{ color:#4f7a4f; }
.fsysf__clim--warn .fsysf__climhd b{ color:#a97e22; }
.fsysf__clim--hard .fsysf__climhd b{ color:#b23c2e; }
.fsysf__climtxt--foso{ border-top:1px solid var(--rule); padding-top:10px; color:var(--muted); }
.ly-dark-mode .fsysf__climhd b,.ly-dark-mode .fsysf__climtxt{ color:#f2f0eb; }

.food-note{ font-family:'Montserrat',sans-serif; font-size:10.5px; color:var(--muted); line-height:1.5; max-width:74ch; padding-top:clamp(20px,2.5vw,28px); }
.ly-dark-mode .fsysf{ background:#111; border-color:rgba(255,255,255,.12); }
.ly-dark-mode .fsysf__label,.ly-dark-mode .fsysf__ringnum,.ly-dark-mode .fsysf__stat b,.ly-dark-mode .fsysf__macro,.ly-dark-mode .fsysf__boost-t{ color:#f2f0eb; }
.ly-dark-mode .food-lead{ border-color:rgba(255,255,255,.1); }

/* ── Asoleamiento (carta solar) ── */
.aut-sob-sunchart{ border-top:1px solid var(--rule); }
/* padding SOLO vertical: el horizontal lo da .aut-sob-wrap (si se usa el
   shorthand con 0 se pega al borde en mobile). */
.aut-sob-sunchart__grid{ display:grid; grid-template-columns:minmax(280px,440px) 1fr; gap:clamp(28px,4vw,56px); padding-top:clamp(28px,3vw,40px); padding-bottom:clamp(28px,3vw,40px); align-items:start; }
@media(max-width:760px){ .aut-sob-sunchart__grid{ grid-template-columns:1fr; gap:20px; } }
.sunchart__viz{ max-width:440px; width:100%; margin:0 auto; }
.sunchart__viz svg{ width:100%; height:auto; display:block; }
.sunchart__note{ font-family:'Montserrat',sans-serif; font-size:13px; line-height:1.5; color:var(--ink); margin:0 0 16px; }
.sunchart__stats{ display:flex; flex-wrap:wrap; border:1px solid var(--rule); margin-bottom:16px; }
.sunchart__src{ font-family:'Montserrat',sans-serif; font-size:10.5px; color:var(--muted); line-height:1.5; max-width:60ch; }
/* Misma columna que .sunchart__info (derecha), apilada debajo — no a lo
   ancho completo, para que quede junto al gráfico en vez de abajo de todo. */
/* La tabla vive DENTRO de la columna de info (a la derecha del gráfico,
   alineada con él), no en una fila propia debajo. */
.sunchart__table-wrap{ overflow-x:auto; margin-top:clamp(16px,2vw,22px); border-top:1px solid var(--rule); padding-top:clamp(16px,2vw,22px); }
.sunchart__info{ display:flex; flex-direction:column; gap:14px; }
.sunchart__table{ width:100%; border-collapse:collapse; border-spacing:0; font-family:'Montserrat',sans-serif; font-size:12px; }
/* Sin líneas verticales en ningún caso — los 3 grupos (verano/equinoccio/
   invierno) se separan por espacio, no por bordes. */
.sunchart__table th, .sunchart__table td{ padding:7px 10px; text-align:center; border:none; border-bottom:1px solid var(--rule); white-space:nowrap; }
.sunchart__table thead tr:first-child th{ text-transform:uppercase; font-size:10px; letter-spacing:.06em; color:var(--muted); font-weight:700; padding-bottom:3px; }
.sunchart__table thead tr:last-child th{ font-size:10px; color:var(--muted); font-weight:600; padding-top:0; border-bottom:1px solid var(--rule); }
.sunchart__table td:first-child, .sunchart__table th:first-child{ text-align:left; }
.sunchart__table td:first-child{ font-weight:600; color:var(--ink); }
/* Espacio extra antes de cada grupo de día (Altura inicia cada bloque de
   2 columnas) — separa visualmente sin trazar una línea. */
.sunchart__table th:nth-child(2), .sunchart__table td:nth-child(2),
.sunchart__table th:nth-child(4), .sunchart__table td:nth-child(4),
.sunchart__table th:nth-child(6), .sunchart__table td:nth-child(6){ padding-left:22px; }
.sunchart__table td.is-blocked{ color:var(--muted); text-decoration:line-through; text-decoration-color:rgba(122,58,48,.5); }
/* Mobile: tabla más compacta para que entre (con scroll horizontal de respaldo). */
@media(max-width:600px){
  .sunchart__table{ font-size:11px; }
  .sunchart__table th, .sunchart__table td{ padding:6px 5px; }
  .sunchart__table th:nth-child(2), .sunchart__table td:nth-child(2),
  .sunchart__table th:nth-child(4), .sunchart__table td:nth-child(4),
  .sunchart__table th:nth-child(6), .sunchart__table td:nth-child(6){ padding-left:9px; }
  .sunchart__table-wrap{ -webkit-overflow-scrolling:touch; }
}
.ly-dark-mode .sunchart__stats{ border-color:rgba(255,255,255,.12); }
.ly-dark-mode .sunchart__note{ color:#f2f0eb; }
.ly-dark-mode .sunchart__table th, .ly-dark-mode .sunchart__table td{ border-color:rgba(255,255,255,.12); }
.ly-dark-mode .sunchart__table td:first-child{ color:#f2f0eb; }

/* ── Soberanía · gráficos rediseñados (stats fijas, full-width, energía) ── */
.aut-sob-chart-stats{ display:flex; flex-wrap:wrap; gap:0; margin:4px 0 18px; }
.aut-sob-stat{ flex:1; min-width:120px; padding:11px 16px; border-right:1px solid var(--rule); display:flex; flex-direction:column; gap:3px; }
.aut-sob-stat:last-child{ border-right:none; }
.aut-sob-stat__l{ font-family:'Montserrat',sans-serif; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); }
.aut-sob-stat__v{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:clamp(16px,1.6vw,20px); color:var(--ink); line-height:1; }
.aut-sob-barval{ font-family:'Montserrat',sans-serif; font-size:11px; font-weight:600; fill:var(--ink); }
.aut-sob-thresh-lbl{ font-family:'Montserrat',sans-serif; font-size:11px; font-weight:600; fill:#c47f4a; letter-spacing:.02em; }
.aut-sob-energy-split{ display:grid; grid-template-columns:1.5fr 1fr; gap:clamp(20px,3vw,44px); align-items:stretch; }
@media(max-width:760px){ .aut-sob-energy-split{ grid-template-columns:1fr; } }
.aut-sob-energy-split__data{ padding:clamp(18px,2.2vw,26px); display:flex; flex-direction:column; justify-content:center; background:rgba(182,161,107,.04); }
.heat-head{ font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); margin-bottom:18px; }
.heat-head--cool{ margin-top:22px; padding-top:16px; border-top:1px solid var(--rule); }
.heat-row--none{ opacity:.55; }
.heat-rows{ display:flex; flex-direction:column; gap:14px; }
.heat-row{ display:flex; align-items:center; gap:14px; }
.heat-ic{ font-size:22px; flex:none; width:30px; text-align:center; }
/* Íconos coloreados por categoría, igual que el gráfico: calefacción azul,
   refrigeración ámbar. */
.heat-rows--heat .heat-ic, .heat-rows--heat .heat-ic i{ color:#5b7a8c; }
.heat-rows--cool .heat-ic, .heat-rows--cool .heat-ic i{ color:#c47f4a; }
.heat-txt{ font-family:'Montserrat',sans-serif; font-size:14px; color:var(--ink); display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; }
.heat-txt b{ font-family:'Kiona','Montserrat',sans-serif; font-size:24px; font-weight:700; color:var(--ink); line-height:1; }
.heat-txt small{ font-size:12px; color:var(--muted); width:100%; }
.heat-note{ font-family:'Montserrat',sans-serif; font-size:12.5px; line-height:1.5; color:var(--ink); margin-top:18px; padding-top:14px; border-top:1px solid var(--rule); }
.heat-foot{ font-family:'Montserrat',sans-serif; font-size:11px; line-height:1.5; color:var(--muted); margin-top:10px; }
.aut-sob-mix-wrap{ max-width:520px; }
/* Mix de generación — gauge lineal */
.aut-sob-mix-lead{ font-family:'Montserrat',sans-serif; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; fill:var(--muted); }
.aut-sob-mix-dom{ font-family:'Kiona','Montserrat',sans-serif; font-size:21px; font-weight:700; }
.aut-sob-mix-pct{ font-family:'Kiona','Montserrat',sans-serif; font-size:16px; font-weight:700; fill:#fff; }
.aut-sob-mix-ctx{ font-family:'Montserrat',sans-serif; font-size:13px; fill:var(--ink); }
.aut-sob-mix-ctx__v{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; }
.ly-dark-mode .aut-sob-mix-ctx{ fill:#f2f0eb; }
.ly-dark-mode .aut-sob-barval{ fill:#f2f0eb; }
.ly-dark-mode .aut-sob-stat__v,.ly-dark-mode .heat-txt,.ly-dark-mode .heat-txt b,.ly-dark-mode .heat-note{ color:#f2f0eb; }
.ly-dark-mode .aut-sob-chart-stats,.ly-dark-mode .aut-sob-stat,.ly-dark-mode .aut-sob-energy-split__data{ border-color:rgba(255,255,255,.12); }


/* ════════════════════════════════════════════════════════════════
   REGISTRO · Guardar territorio + comparador (informe comparativo)
   ════════════════════════════════════════════════════════════════ */
.aut-sob-star{ color:var(--acc); font-size:1.05em; line-height:1; }
.aut-sob-btn--link{ background:none; border:none; color:var(--acc); text-decoration:underline; text-underline-offset:3px; padding:6px 2px; font-family:'Montserrat',sans-serif; font-size:13px; cursor:pointer; text-align:left; }
.aut-sob-btn--link:hover{ opacity:.75; }

/* Panel de cuenta (login sin contraseña) en el CTA */
.aut-sob-acct__hint{ font-family:'Montserrat',sans-serif; font-size:12px; line-height:1.55; color:var(--muted); margin:10px 0 0; }
.aut-sob-acct__who{ display:flex; align-items:center; gap:10px; margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid var(--rule); }
/* [hidden] explícito (16-jul, bug detectado en vivo: el badge de sesión
   aparecía visible por defecto pese a tener el atributo hidden en el HTML).
   La regla de arriba (.aut-sob-acct__who{display:flex}) tiene la MISMA
   especificidad que la hoja de estilos del user-agent para [hidden]
   (ambas 0,1,0) — al ser una regla de AUTOR, le gana a la del navegador
   sin importar el orden, y el display:flex quedaba ganando siempre. */
.aut-sob-acct__who[hidden]{ display:none; }
.aut-sob-acct__badge{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--acc); color:#fff; font-size:14px; font-weight:700; flex:none; }
.aut-sob-acct__whoTxt{ font-family:'Montserrat',sans-serif; font-size:11px; color:var(--muted); line-height:1.3; }
.aut-sob-acct__whoTxt b{ display:block; font-family:'Montserrat',sans-serif; font-size:13.5px; color:var(--ink); font-weight:600; word-break:break-all; }
.aut-sob-acct__who .aut-sob-btn--link{ margin-left:auto; flex:none; font-size:12px; }
.ly-dark-mode .aut-sob-acct__whoTxt b{ color:#f2f0eb; }

/* CTA · herramientas (guardar/comparar) + lead form 2 pasos (PR-6). Las
   herramientas quedan siempre visibles; el email pasa a un form de 2 pasos
   con calificación que desbloquea las descargas. */
#sob-acctIn{ display:flex; flex-direction:column; gap:10px; }
#sob-acctIn .aut-sob-btn, .aut-sob-lead__step .aut-sob-btn{ width:100%; }
.aut-sob-cta__row .aut-sob-btn{ width:auto; }
.aut-sob-acct__lead{ display:flex; flex-direction:column; gap:10px; margin-top:6px; padding-top:16px; border-top:1px solid var(--rule); }
/* [hidden] explícito (16-jul, mismo bug de especificidad que .aut-sob-acct__who
   de más arriba): sobRenderSessionBadge() oculta TODO #sob-acctOut con sesión
   activa, pero sin esto el display:flex del autor le ganaba al atributo. */
.aut-sob-acct__lead[hidden]{ display:none; }
.aut-sob-lead__step{ display:flex; flex-direction:column; gap:10px; }
.aut-sob-lead__step[hidden]{ display:none; }
.aut-sob-lead__intro{ font-family:'Montserrat',sans-serif; font-size:12.5px; line-height:1.55; color:var(--muted); margin:0; }
.aut-sob-lead__field{ display:flex; flex-direction:column; gap:5px; }
.aut-sob-lead__field > span{ font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.aut-sob-cta select{ font-family:'Montserrat',sans-serif; font-size:14px; padding:12px 34px 12px 14px; border:1px solid var(--rule); background-color:var(--paper); color:var(--ink); border-radius:0; cursor:pointer; -webkit-appearance:none; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; }
.aut-sob-cta select:focus{ outline:1px solid var(--acc); outline-offset:1px; }
.aut-sob-btn--wa{ background:#25D366; color:#083d1f; }
.aut-sob-btn--wa:hover{ background:#1fbe59; color:#052a14; }
.aut-sob-btn--wa svg{ flex:none; }
@media(max-width:768px){ .aut2.aut-soberania .aut-sob-cta select{ font-size:16px; } }

/* Habitabilidad — callout junto al veredicto cuando el clima limita el índice */
.aut-sob-habnote{ margin-top:14px; padding:11px 15px; border-radius:11px; border:1px solid var(--rule); background:rgba(182,161,107,.10); font-family:'Montserrat',sans-serif; font-size:12.5px; line-height:1.5; color:var(--ink); }
.aut-sob-habnote[hidden]{ display:none; }
.aut-sob-habnote b{ font-weight:700; letter-spacing:.01em; }
.aut-sob-habnote.is-severe{ background:rgba(196,127,74,.12); border-color:rgba(196,127,74,.42); }
.ly-dark-mode .aut-sob-habnote{ color:#f2f0eb; }

/* Nota de fuente territorial (agua de río/deshielo/napa · pesca) */
.aut-sob-terrnote{ margin-top:10px !important; padding:10px 14px; border-radius:10px; border:1px solid rgba(127,166,179,.4); background:rgba(127,166,179,.10); font-size:12.5px !important; line-height:1.55 !important; color:var(--ink); }
.aut-sob-terrnote[hidden]{ display:none; }
.ly-dark-mode .aut-sob-terrnote{ color:#f2f0eb; }

/* Flag de nieve en el balance hídrico */
.aut-sob-snownote{ margin-top:12px; padding:10px 14px; border-radius:10px; border:1px solid rgba(90,125,140,.35); background:rgba(90,125,140,.10); font-family:'Montserrat',sans-serif; font-size:12px; line-height:1.5; color:var(--ink); }
.aut-sob-snownote[hidden]{ display:none; }
.aut-sob-snownote b{ font-weight:700; color:#4a6d7c; }
.ly-dark-mode .aut-sob-snownote{ color:#f2f0eb; }

/* Preview modal de la tarjeta compartible (§7). z-index muy por encima de
   .aut-header (1000) y .aut-overlay (999) — el modal quedaba DETRÁS del
   header sticky del sitio, prácticamente invisible. */
.aut-sob-cardmodal{ position:fixed; inset:0; z-index:3000; display:flex; align-items:center; justify-content:center; padding:24px; }
.aut-sob-cardmodal[hidden]{ display:none; }
.aut-sob-cardmodal__backdrop{ position:absolute; inset:0; background:rgba(10,10,10,.72); backdrop-filter:blur(3px); }
.aut-sob-cardmodal__box{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:14px; width:min(88vw,360px); }
.aut-sob-cardmodal__imgwrap{ width:100%; border-radius:14px; overflow:hidden; box-shadow:0 18px 60px rgba(0,0,0,.5); background:#0d0d0d; display:flex; align-items:center; justify-content:center; max-height:calc(100vh - 150px); }
.aut-sob-cardmodal__box.is-loading .aut-sob-cardmodal__imgwrap{ aspect-ratio:1080/1480; animation:sobCardPulse 1s ease-in-out infinite; }
@keyframes sobCardPulse{ 0%,100%{ opacity:.5; } 50%{ opacity:.8; } }
.aut-sob-cardmodal__imgwrap img{ display:block; max-width:100%; max-height:calc(100vh - 150px); width:auto; height:auto; }
/* Cerrar: chico, discreto, DENTRO del margen de la tarjeta — no debe competir
   con compartir. Antes era un círculo blanco de 40px flotando afuera del
   borde, descentrado y el elemento más protagonista del modal. */
.aut-sob-cardmodal__x{ position:absolute; top:10px; right:10px; z-index:2; width:26px; height:26px; border-radius:50%; border:none; background:rgba(20,19,17,.10); color:rgba(20,19,17,.55); font-size:15px; line-height:1; cursor:pointer; transition:background .15s,color .15s; }
.aut-sob-cardmodal__x:hover{ background:rgba(20,19,17,.22); color:#141311; }
body.sob-cardopen{ overflow:hidden; }
/* Íconos de red (WhatsApp/Instagram/LinkedIn/Descargar), sin texto: circulares,
   color de marca de cada red al hover para reconocerlas de un vistazo. */
.aut-sob-cardmodal__nets{ display:flex; justify-content:center; gap:14px; width:100%; }
.aut-sob-netbtn{ display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; border:1px solid rgba(255,255,255,.4); background:transparent; color:#f2f0eb; font-size:20px; cursor:pointer; transition:background .18s,border-color .18s,color .18s,transform .18s; }
.aut-sob-netbtn:hover{ transform:translateY(-2px); }
.aut-sob-netbtn--wa:hover{ background:#25D366; border-color:#25D366; color:#06210f; }
.aut-sob-netbtn--ig:hover{ background:linear-gradient(45deg,#f9ce34,#ee2a7b,#6228d7); border-color:transparent; color:#fff; }
.aut-sob-netbtn--li:hover{ background:#0A66C2; border-color:#0A66C2; color:#fff; }
.aut-sob-netbtn--dl:hover{ background:var(--acc); border-color:var(--acc); color:#fff; }
.aut-sob-netbtn--cp:hover{ background:#f2f0eb; border-color:#f2f0eb; color:#111; }
.aut-sob-cardmodal__hint{ margin:14px 0 0; font-family:'Montserrat',sans-serif; font-size:11.5px; line-height:1.5; color:rgba(242,240,235,.75); text-align:center; }

/* Compartir en el veredicto (§7) — botón prominente junto al resultado */
.aut-sob-summary__share{ margin-top:18px; }
.aut-sob-share{ width:auto; }
.aut-sob-share svg{ flex:none; }
@media(max-width:520px){ .aut-sob-share{ width:100%; } }

/* Compartir flotante (§7) — herramienta permanente. Rediseñado (pedido del
   usuario: "aparece transparente y raro, que sea solo un ícono para no ocupar
   tanto"): círculo dorado SÓLIDO, solo el ícono; se EXPANDE al hover
   revelando el texto (desktop). Sin el pulso viejo (se leía "raro"). z-index
   bajo el header (999-1000) y muy por debajo del modal (3000). */
/* Adivinar un "bottom:190px" para esquivar el stack de controles nativos del
   mapa (satélite+explorar+zoom) resultó frágil — su altura real varía y el
   FAB terminó tapándolos igual (reporte del usuario con captura). En vez de
   seguir calculando píxeles contra un stack de Google que no controlamos:
   MIENTRAS el hero está a la vista, el FAB se centra VERTICALMENTE sobre el
   mapa, lejos de la barra de búsqueda (abajo) Y de los controles nativos
   (esquina inferior derecha) — no hay con qué colisionar ahí. Recién cuando
   el hero se scrollea fuera de vista (.is-past-hero, misma señal que ya usa
   la barra de búsqueda para "pinnearse") baja a la esquina clásica, donde
   para entonces no queda nada del mapa a la vista. */
.aut-sob-fab{ position:fixed; right:22px; top:50%; bottom:auto; transform:translateY(-50%); z-index:500; display:flex; align-items:center; justify-content:center; gap:0; width:56px; height:56px; padding:0; overflow:hidden; border:none; border-radius:999px; background:linear-gradient(135deg,#c9a24c,#a9843a); color:#241c0a; font-family:'Montserrat',sans-serif; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; cursor:pointer; box-shadow:0 8px 26px rgba(169,132,58,.5),0 2px 8px rgba(0,0,0,.22); transition:width .25s ease, padding .25s ease, gap .25s ease, top .25s ease, bottom .25s ease; }
.aut-sob-fab[hidden]{ display:none; }
.aut-sob-fab svg{ flex:none; }
.aut-sob-fab__lbl{ white-space:nowrap; max-width:0; opacity:0; overflow:hidden; transition:max-width .25s ease, opacity .2s ease; }
/* Expansión al hover SOLO en dispositivos con hover real (no mobile, donde el
   tap abre el share directo). El "lift" (translateY) solo aplica en el
   estado de esquina (is-past-hero): en el estado centrado ya hay un
   translateY(-50%) fijo que el lift no debe pisar. */
@media(hover:hover){
  .aut-sob-fab:hover{ width:auto; gap:9px; padding:0 20px 0 16px; }
  .aut-sob-fab.is-past-hero:hover{ transform:translateY(-2px); }
  .aut-sob-fab:hover .aut-sob-fab__lbl{ max-width:120px; opacity:1; }
}
/* Pasado el hero: esquina clásica, más cerca del pulgar en mobile. Ahí sí no
   queda nada del mapa/controles a la vista (se scrolleó fuera). */
.aut-sob-fab.is-past-hero{ top:auto; bottom:22px; transform:none; }
@media(max-width:520px){
  .aut-sob-fab{ right:16px; width:52px; height:52px; }
  .aut-sob-fab.is-past-hero{ bottom:16px; }
}

/* Banner post-interacción (§8.3) — aparece tras la 2ª interacción */
/* z-index 80→2000: la pastilla es un toast fixed que debe flotar por encima
   de TODO el chrome de la página (header 1000, barra pinneada 9990, chips
   sticky 8-960...) — a 80 quedaba por debajo de casi cualquier cosa
   posicionada. Se mantiene bajo el modal de la tarjeta (3000): un modal que
   el usuario abrió a propósito sí puede taparla. */
.aut-sob-nudge{ position:fixed; left:50%; bottom:20px; transform:translate(-50%,140%); z-index:2000; width:calc(100% - 32px); max-width:520px; opacity:0; transition:transform .3s cubic-bezier(.2,.7,.3,1), opacity .3s; pointer-events:none; }
.aut-sob-nudge.is-in{ transform:translate(-50%,0); opacity:1; pointer-events:auto; }
.aut-sob-nudge[hidden]{ display:none; }
/* Fondo/texto FIJOS (no var(--ink)): --ink se invierte en modo oscuro (pasa a
   ser claro, para que el texto normal se lea sobre fondo oscuro) — atado a
   una pastilla que siempre quiere ser "chip oscuro con texto blanco", eso
   dejaba texto blanco sobre fondo casi blanco en dark mode. Un solo color
   fijo, correcto en los dos modos. */
.aut-sob-nudge__in{ display:flex; align-items:center; gap:12px; background:#141311; color:#fff; border-radius:14px; padding:12px 12px 12px 18px; box-shadow:0 10px 34px rgba(0,0,0,.35); }
.aut-sob-nudge__txt{ font-family:'Montserrat',sans-serif; font-size:13px; line-height:1.4; flex:1; }
.aut-sob-nudge__in .aut-sob-btn--mini{ flex:none; color:#fff; border-color:rgba(255,255,255,.4); background:transparent; }
.aut-sob-nudge__in .aut-sob-btn--mini:hover{ background:var(--acc); border-color:var(--acc); color:#fff; }
.aut-sob-nudge__x{ flex:none; background:none; border:none; color:rgba(255,255,255,.65); font-size:22px; line-height:1; cursor:pointer; padding:2px 6px; border-radius:8px; }
.aut-sob-nudge__x:hover{ color:#fff; }
@media(max-width:520px){ .aut-sob-nudge__txt{ font-size:12px; } .aut-sob-nudge__in{ padding-left:14px; gap:8px; } }

.aut-sob-territories{ background:var(--paper); border-top:1px solid var(--rule); padding:clamp(36px,5vw,64px) 0; }
.aut-sob-territories[hidden]{ display:none; }
.aut-sob-territories__head{ display:flex; justify-content:space-between; align-items:flex-start; gap:24px; flex-wrap:wrap; margin-bottom:22px; }
.aut-sob-territories__head h2{ font-family:'Kiona','Montserrat',sans-serif; font-size:clamp(22px,2.6vw,30px); font-weight:700; color:var(--ink); margin:0 0 6px; }
.aut-sob-territories__head p{ font-family:'Montserrat',sans-serif; font-size:14px; line-height:1.5; color:var(--muted); margin:0; max-width:52ch; }
.aut-sob-territories__actions{ display:flex; gap:10px; flex-wrap:wrap; }
/* Encabezado que solo aparece en el PDF/impresión. */
.aut-sob-territories__report-head{ display:none; }

/* Comparador — grilla de tarjetas rankeadas (escala vertical a muchos
   territorios; ranking por índice, líder por métrica resaltado). */
.aut-sob-cmp__count{ font-family:'Montserrat',sans-serif; font-size:12px; color:var(--muted); margin:0 0 14px; }
.aut-sob-cmp__count b{ font-family:'Kiona','Montserrat',sans-serif; color:var(--ink); }
.aut-sob-cmp__lim{ color:var(--acc); }
.aut-sob-cmp__live{ color:#5a7d5a; font-weight:600; }
.ly-dark-mode .aut-sob-cmp__live{ color:#8fb98f; }
.ly-dark-mode .aut-sob-cmp__count b{ color:#f2f0eb; }
.aut-sob-cmpgrid{ display:flex; flex-direction:column; gap:12px; }
.cmpcard{ display:grid; grid-template-columns:auto auto minmax(150px,1fr) minmax(240px,1.5fr); align-items:center; gap:clamp(14px,2vw,26px); padding:16px clamp(16px,2vw,22px); border:1px solid var(--rule); border-radius:12px; background:var(--paper); }
.cmpcard--lead{ border-color:var(--acc); box-shadow:inset 3px 0 0 var(--acc); }
.cmpcard__rank{ font-family:'Kiona','Montserrat',sans-serif; font-size:15px; font-weight:700; color:var(--muted); width:20px; text-align:center; }
.cmpcard__gauge{ width:64px; flex:none; }
.cmpgauge{ width:64px; height:64px; display:block; }
.cmpgauge__n{ font-family:'Kiona','Montserrat',sans-serif; font-size:22px; font-weight:700; fill:var(--ink); }
.cmpcard__leadflag{ display:block; text-align:center; font-family:'Montserrat',sans-serif; font-size:8px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--acc); margin-top:3px; }
.cmpcard__id{ min-width:0; }
.cmpcard__id .nm{ display:block; font-family:'Kiona','Montserrat',sans-serif; font-size:16px; font-weight:700; color:var(--ink); line-height:1.2; overflow:hidden; text-overflow:ellipsis; }
.cmpcard__id .co{ display:block; font-family:'Montserrat',sans-serif; font-size:11px; color:var(--muted); margin-top:2px; }
.cmpcard__id .ac{ display:flex; gap:12px; align-items:center; margin-top:6px; }
.aut-sob-cmp__open{ font-family:'Montserrat',sans-serif; font-size:12px; color:var(--acc); text-decoration:none; font-weight:600; }
.aut-sob-cmp__open:hover{ text-decoration:underline; }
.aut-sob-cmp__del{ background:none; border:none; color:var(--muted); font-size:17px; line-height:1; cursor:pointer; padding:0 2px; }
.aut-sob-cmp__del:hover{ color:#b23c2e; }
.cmpcard__bars{ display:flex; flex-direction:column; gap:7px; min-width:0; }
.cmpbar{ display:grid; grid-template-columns:66px 1fr auto; align-items:center; gap:10px; }
.cmpbar__lbl{ font-family:'Montserrat',sans-serif; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
.cmpbar__track{ height:8px; border-radius:5px; background:var(--rule); overflow:hidden; }
.cmpbar__fill{ display:block; height:100%; border-radius:5px; transition:width .5s cubic-bezier(.4,0,.2,1); }
.cmpbar__val{ font-family:'Kiona','Montserrat',sans-serif; font-size:14px; font-weight:700; color:var(--ink); white-space:nowrap; min-width:56px; text-align:right; }
.cmpbar__star{ color:var(--acc); }
.cmpbar.is-best .cmpbar__lbl{ color:var(--ink); }
.aut-sob-cmp__empty{ font-family:'Montserrat',sans-serif; font-size:14px; color:var(--muted); padding:24px 0; }

.ly-dark-mode .aut-sob-territories{ background:#0f0f0f; }
.ly-dark-mode .cmpcard{ background:#141414; border-color:rgba(255,255,255,.12); }
.ly-dark-mode .aut-sob-territories__head h2,.ly-dark-mode .cmpcard__id .nm,.ly-dark-mode .cmpgauge__n,.ly-dark-mode .cmpbar__val{ color:#f2f0eb; fill:#f2f0eb; }

@media(max-width:720px){
  .cmpcard{ grid-template-columns:auto auto 1fr; grid-template-areas:"rank gauge id" "bars bars bars"; row-gap:14px; }
  .cmpcard__bars{ grid-area:bars; }
}
@media(max-width:560px){ .aut-sob-territories__head{ flex-direction:column; } }

/* Informe comparativo en PDF: al imprimir con la clase activa, se muestra
   SOLO el comparador (con su encabezado de marca), oculto todo lo demás. */
@media print{
  body.sob-printing-cmp *{ visibility:hidden!important; }
  body.sob-printing-cmp .aut-sob-territories,
  body.sob-printing-cmp .aut-sob-territories *{ visibility:visible!important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body.sob-printing-cmp .aut-sob-territories{ position:absolute; left:0; top:0; width:100%; padding:0; background:#fff; }
  body.sob-printing-cmp .aut-sob-territories__actions,
  body.sob-printing-cmp .aut-sob-cmp__del{ display:none!important; }
  body.sob-printing-cmp .aut-sob-territories__report-head{ display:flex!important; justify-content:space-between; align-items:baseline; border-bottom:2px solid #0d0d0d; padding-bottom:10px; margin-bottom:20px; }
  body.sob-printing-cmp .aut-sob-territories__report-head .rep-brand{ font-family:'Kiona','Montserrat',sans-serif; font-size:16px; font-weight:700; color:#0d0d0d; }
  body.sob-printing-cmp .aut-sob-territories__report-head .rep-title{ font-family:'Montserrat',sans-serif; font-size:11px; color:#555; }
  body.sob-printing-cmp .cmpcard{ break-inside:avoid; border:1px solid #ccc; }
}


/* ════════════════════════════════════════════════════════════════
   INFORME PDF PROFESIONAL (#sob-report) — layout de impresión
   Se mantiene fuera de pantalla (no display:none, para que impresión
   pueda mostrarlo) y solo se hace visible al imprimir con la clase.
   ════════════════════════════════════════════════════════════════ */
.aut-sob-report{ position:absolute; left:-100000px; top:0; width:210mm; background:#fff; color:#111; }
.aut-sob-report[hidden]{ display:none; }
.rep-doc{ font-family:'Montserrat',Arial,sans-serif; color:#141414; padding:0 4mm; }
.rep-doc *{ box-sizing:border-box; }
.rep-head{ border-bottom:2px solid #141414; padding-bottom:14px; margin-bottom:20px; }
.rep-logos{ display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:18px; }
.rep-logo-aut{ height:26px; width:auto; }
.rep-logo-ly{ height:30px; width:auto; }
.rep-kicker{ font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#b6a16b; }
.rep-title{ font-family:'Kiona','Montserrat',sans-serif; font-size:26px; font-weight:700; margin:4px 0 6px; color:#141414; line-height:1.1; }
.rep-meta{ font-size:11.5px; color:#555; }

.rep-hero{ display:flex; gap:26px; align-items:stretch; margin-bottom:16px; }
.rep-score{ flex:none; width:120px; border:1.5px solid #141414; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:14px 8px; }
.rep-score__n{ font-family:'Kiona','Montserrat',sans-serif; font-size:52px; font-weight:700; line-height:1; color:#141414; }
.rep-score__l{ font-size:9.5px; text-transform:uppercase; letter-spacing:.1em; color:#666; text-align:center; margin-top:6px; }
.rep-axes{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:10px; }
.rep-ax{ display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:4px 12px; border-bottom:1px solid #e2ddd0; padding-bottom:9px; }
.rep-ax__l{ font-size:13px; font-weight:600; color:#141414; }
.rep-ax__v{ font-family:'Kiona','Montserrat',sans-serif; font-size:22px; font-weight:700; color:#b6a16b; }
.rep-ax__p{ grid-column:1 / -1; font-size:11px; color:#666; line-height:1.4; }
.rep-verdict{ font-family:Georgia,serif; font-style:italic; font-size:13px; color:#333; border-left:2px solid #b6a16b; padding-left:12px; margin:0 0 18px; }

.rep-sec{ margin:0 0 16px; page-break-inside:avoid; }
.rep-sec__h{ font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#141414; border-bottom:1px solid #141414; padding-bottom:5px; margin:0 0 10px; }
.rep-sec__h small{ font-weight:400; text-transform:none; letter-spacing:0; color:#888; }
.rep-kv{ display:grid; grid-template-columns:1fr 1fr; gap:6px 24px; }
.rep-kv div{ display:flex; justify-content:space-between; gap:10px; border-bottom:1px dotted #d8d2c4; padding:4px 0; font-size:12px; }
.rep-kv span{ color:#555; } .rep-kv b{ color:#141414; font-weight:600; text-align:right; }
.rep-note{ font-size:11px; color:#555; line-height:1.5; margin:8px 0 0; white-space:pre-line; }

.rep-tbl{ width:100%; border-collapse:collapse; font-size:10px; }
.rep-tbl th{ text-align:right; font-weight:700; color:#141414; border-bottom:1.5px solid #141414; padding:5px 6px; }
.rep-tbl th:first-child{ text-align:left; }
.rep-tbl td{ text-align:right; padding:4px 6px; border-bottom:1px solid #eae5d9; color:#333; }
.rep-tbl td:first-child{ text-align:left; font-weight:600; color:#141414; }

.rep-prio{ margin:0 0 12px; padding-left:20px; }
.rep-prio li{ font-size:12px; line-height:1.5; margin-bottom:7px; color:#222; }
.rep-strat-dom{ margin-bottom:10px; page-break-inside:avoid; }
.rep-strat-dom h4{ font-size:11.5px; font-weight:700; margin:0 0 4px; color:#141414; }
.rep-strat-dom ul{ margin:0; padding-left:18px; } .rep-strat-dom li{ font-size:11px; line-height:1.5; color:#444; margin-bottom:3px; }
.rep-food-sys{ margin:8px 0 0; padding-left:16px; } .rep-food-sys li{ font-size:11px; line-height:1.5; margin-bottom:2px; } .rep-food-sys li.off{ color:#999; }

.rep-risks{ display:grid; grid-template-columns:1fr 1fr; gap:8px 20px; }
.rep-risk{ border-left:2px solid #d8d2c4; padding:2px 0 2px 10px; page-break-inside:avoid; }
.rep-risk__n{ display:block; font-size:12px; font-weight:700; color:#141414; }
.rep-risk__v{ display:block; font-size:11px; color:#b6a16b; font-weight:600; margin:1px 0; }
.rep-risk__note{ display:block; font-size:10px; color:#666; line-height:1.4; }

.rep-foot{ margin-top:20px; padding-top:12px; border-top:1px solid #141414; }
.rep-foot p{ font-size:10.5px; line-height:1.5; color:#444; margin:0 0 6px; }
.rep-src{ color:#888!important; font-size:9px!important; }

@media print{
  @page{ margin:12mm; }
  body.sob-printing-report *{ visibility:hidden!important; }
  body.sob-printing-report .aut-sob-report,
  body.sob-printing-report .aut-sob-report *{ visibility:visible!important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body.sob-printing-report .aut-sob-report{ position:absolute!important; left:0!important; top:0!important; width:100%!important; }
}


/* ── Soberanía · Mapa de zona (isobandas de relieve + clima, lectura territorial) ── */
.aut-sob-zone{ border-top:1px solid var(--rule); padding:0 0 clamp(20px,3vw,36px); }
.aut-sob-zone__bar{ display:flex; align-items:center; gap:clamp(14px,2vw,28px); flex-wrap:wrap; padding:clamp(16px,2vw,22px) var(--side); }
.aut-sob-zone__metric{ display:inline-flex; flex:none; }
.aut-sob-zone__metric .zbtn{ font-family:'Montserrat',sans-serif; font-size:12px; letter-spacing:.03em; text-transform:uppercase; padding:9px 18px; background:transparent; border:none; color:var(--muted); cursor:pointer; border-right:1px solid var(--rule); transition:background .2s,color .2s; }
.aut-sob-zone__metric .zbtn:last-child{ border-right:none; }
.aut-sob-zone__metric .zbtn.is-active{ background:var(--ink); color:var(--paper); }
.aut-sob-zone__scale{ display:flex; align-items:center; gap:12px; font-family:'Montserrat',sans-serif; font-size:11px; color:var(--muted); }
.aut-sob-zone__scale .zsc-title{ font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--ink); }
.aut-sob-zone__scale .zsc-grad{ width:150px; height:9px; }
.aut-sob-zone__scale .zsc-range{ font-size:12.5px; color:var(--ink); letter-spacing:.02em; }
.aut-sob-zone__status{ font-family:'Montserrat',sans-serif; font-size:12px; color:var(--acc); margin-left:auto; }
.aut-sob-zone__mapwrap{ position:relative; width:100%; }
.aut-sob-zone__map{ width:100%; height:clamp(420px,62vh,680px); background:#dcd7cc; }
.aut-sob-zone__reading{ position:absolute; left:clamp(16px,3vw,32px); bottom:clamp(16px,3vw,28px); max-width:min(420px,80%); background:rgba(245,242,236,.94); backdrop-filter:blur(3px); border:1px solid var(--rule); border-left:3px solid var(--acc); padding:16px 20px; z-index:4; }
.aut-sob-zone__reading .zr-cat{ display:block; font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--ink); }
.aut-sob-zone__reading .zr-val{ display:block; font-family:'Kiona','Montserrat',sans-serif; font-size:clamp(15px,1.5vw,18px); color:var(--acc); margin:4px 0 8px; letter-spacing:.01em; }
.aut-sob-zone__reading .zr-txt{ display:block; font-family:'Montserrat',sans-serif; font-size:12.5px; line-height:1.55; color:var(--muted); }
.aut-sob-zone__overlay-note{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); font-family:'Montserrat',sans-serif; font-size:13px; color:var(--muted); background:rgba(245,242,236,.9); padding:14px 22px; border:1px solid var(--rule); }
.aut-sob-zone__note{ font-family:'Montserrat',sans-serif; font-size:12px; line-height:1.6; color:var(--muted); margin:14px 0 0; padding:0 var(--side); max-width:940px; }
.ly-dark-mode .aut-sob-zone,
.ly-dark-mode .aut-sob-zone__metric{ border-color:rgba(255,255,255,.12); }
.ly-dark-mode .aut-sob-zone__scale .zsc-title,
.ly-dark-mode .aut-sob-zone__scale .zsc-range{ color:#f2f0eb; }
.ly-dark-mode .aut-sob-zone__map{ background:#1a1a1a; }
.ly-dark-mode .aut-sob-zone__reading{ background:rgba(17,17,17,.92); }
.ly-dark-mode .aut-sob-zone__reading .zr-cat{ color:#f2f0eb; }
@media(max-width:600px){
  .aut-sob-zone__scale{ width:100%; }
  .aut-sob-zone__status{ margin-left:0; }
  .aut-sob-zone__reading{ left:8px; right:8px; bottom:8px; max-width:none; padding:13px 15px; }
}

/* ── Soberanía · Mapa de zona — spinner de carga + ajustes ── */
.aut-sob-zone__spinner{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:14px; z-index:6; background:rgba(245,242,236,.82); backdrop-filter:blur(2px); padding:24px 34px; border:1px solid var(--rule); }
.aut-sob-zone__spinner .zsp-ring{ width:34px; height:34px; border:3px solid rgba(182,161,107,.25); border-top-color:var(--acc); border-radius:50%; animation:zspSpin .8s linear infinite; }
.aut-sob-zone__spinner .zsp-txt{ font-family:'Montserrat',sans-serif; font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); }
@keyframes zspSpin{ to{ transform:rotate(360deg); } }
.ly-dark-mode .aut-sob-zone__spinner{ background:rgba(17,17,17,.82); }
.ly-dark-mode .aut-sob-zone__spinner .zsp-txt{ color:#f2f0eb; }
/* barra con 4 capas: permitir wrap elegante en pantallas medianas */
.aut-sob-zone__metric{ flex-wrap:wrap; }
@media(max-width:520px){ .aut-sob-zone__metric .zbtn{ padding:8px 13px; font-size:11px; } }

/* (.aut-sob-hero__back eliminado — el link "Volver a Autónoma" se sacó del
   hero: el logo ya cumple esa función. Su z-index:6 elevado, puesto acá para
   ganarle el click a la barra de búsqueda, terminó interceptando en cambio
   el botón "×" de la mini-card del mapa — bug reportado por el usuario. Con
   el link fuera, ese conflicto desaparece de raíz.) */

/* ── Tips por clima Köppen ── */
.aut-sob-tips{ padding:clamp(32px,4vw,56px) 0; }
.aut-sob-tips__head{ font-family:'Montserrat',sans-serif; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-bottom:clamp(20px,2.5vw,28px); }
.aut-sob-tips__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0; }
.sob-tip{ display:flex; gap:16px; align-items:flex-start; padding:16px 0; border-bottom:1px solid var(--rule); }
.sob-tip:first-child{ border-top:1px solid var(--rule); }
.sob-tip__ic{ flex:none; font-size:16px; line-height:1.4; width:28px; text-align:center; padding-top:1px; color:var(--ink); }
.sob-tip__txt{ font-family:'Montserrat',sans-serif; font-size:14px; line-height:1.6; color:var(--ink); }
.ly-dark-mode .sob-tip__txt{ color:#f2f0eb; }

/* ── Estrategia fusionada (§06): top-3 prioridades + resto por dominio ── */
.aut-sob-strategy{ border-top:1px solid var(--rule); padding:clamp(24px,3vw,40px) 0 clamp(32px,4vw,56px); }
.aut-sob-strategy__lead{ font-family:'Montserrat',sans-serif; font-size:14px; line-height:1.55; color:var(--ink); max-width:72ch; margin:0 0 clamp(20px,2.5vw,28px); }
.aut-sob-strategy__prio{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:12px; margin-bottom:clamp(24px,3vw,40px); }
.strat-prio{ display:flex; gap:13px; padding:clamp(15px,1.7vw,20px); border:1px solid var(--acc); border-radius:10px; background:rgba(182,161,107,.06); align-items:flex-start; }
.strat-prio__n{ font-family:'Kiona','Montserrat',sans-serif; font-weight:700; font-size:22px; color:var(--acc); line-height:1; flex:none; }
.strat-prio__ic{ font-size:15px; color:var(--acc); flex:none; padding-top:3px; }
.strat-prio__body{ min-width:0; }
.strat-prio__dom{ display:block; font-family:'Montserrat',sans-serif; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--acc); margin-bottom:4px; }
.strat-prio__body p{ font-family:'Montserrat',sans-serif; font-size:13px; line-height:1.5; color:var(--ink); margin:0; }
.aut-sob-strategy__domains{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:clamp(20px,3vw,40px); }
.strat-dom__head{ font-family:'Montserrat',sans-serif; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--ink); margin:0 0 10px; display:flex; align-items:center; gap:8px; }
.strat-dom__head i{ color:var(--acc); font-size:14px; }
.strat-dom__list{ list-style:none; margin:0; padding:0; }
.strat-dom__list li{ font-family:'Montserrat',sans-serif; font-size:13px; line-height:1.55; color:var(--ink); padding:10px 0; border-top:1px solid var(--rule); max-width:72ch; }
.aut-sob-strategy__note{ font-family:'Montserrat',sans-serif; font-size:11px; line-height:1.5; color:var(--muted); max-width:72ch; margin:clamp(24px,3vw,36px) 0 0; }
.ly-dark-mode .aut-sob-strategy__lead,.ly-dark-mode .strat-prio__body p,.ly-dark-mode .strat-dom__head,.ly-dark-mode .strat-dom__list li{ color:#f2f0eb; }
.ly-dark-mode .strat-dom__list li{ border-color:rgba(255,255,255,.1); }

/* ── Disclaimer colapsable ── */
.aut-sob-prov__details{ border:none; }
.aut-sob-prov__summary{ font-family:'Montserrat',sans-serif; font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ink); cursor:pointer; padding:16px 0; list-style:none; display:flex; align-items:center; gap:8px; border-top:1px solid var(--rule); }
.aut-sob-prov__summary::-webkit-details-marker{ display:none; }
.aut-sob-prov__details[open] .aut-sob-prov__summary{ border-bottom:1px solid var(--rule); margin-bottom:20px; }
.ly-dark-mode .aut-sob-prov__summary{ color:#f2f0eb; }
