/* ==========================================================================
   Myrian Soliz Pastore — sistema visual "Estudio Fiduciario"
   Papel + metal: retículas de hairline, cobre como único acento, serif de
   alto contraste sobre grotesca. Todas las clases usan prefijo at-.
   ========================================================================== */

:root {
  --primario: var(--cms-primario, #17417d);
  --cat-primario: var(--cms-primario, #17417d);
  --cat-secundario: var(--cms-secundario, #174c9b);
  --cat-acento: var(--cms-acento, #17417d);
  --cat-acento-hover: var(--cms-acento-hover, #14386c);
  --at-ink: var(--cms-primario, #17417d);
  --at-ink-2: var(--cms-secundario, #174c9b);
  --at-ink-deep: #0f2d56;
  --at-copper: var(--cms-acento, #17417d);
  --at-copper-2: var(--cms-acento-hover, #14386c);
  --at-canvas: #f4efe6;
  --at-paper: #fbf8f2;
  --at-marfil: #e6dccc;
  --at-mute: #6f6862;
  --at-line: rgba(28, 25, 23, 0.16);
  --at-line-soft: rgba(28, 25, 23, 0.08);
  --at-line-light: rgba(247, 242, 234, 0.18);
  --at-onink: #f7f2ea;
  --at-onink-soft: rgba(247, 242, 234, 0.68);

  --at-serif: var(--cms-font-titulos, var(--cat-font-titulos, "Instrument Serif", "Times New Roman", Georgia, serif));
  --at-sans: var(--cms-font-cuerpo, var(--cat-font-cuerpo, "Archivo", "Segoe UI", system-ui, -apple-system, sans-serif));

  --at-shell: 1180px;
  --at-gut: clamp(1.15rem, 4vw, 2.75rem);
  --at-mast: 112px;
  --at-topbar-h: 0px;
  --at-chrome-h: var(--at-mast);
  --at-band-y: clamp(4.25rem, 8.5vw, 7.75rem);
  --at-ease: cubic-bezier(0.22, 0.75, 0.24, 1);
}

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

html {
  overflow-x: clip; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--at-canvas);
  color: var(--at-ink);
  font-family: var(--cms-font-cuerpo);
  font-size: 16px;
  line-height: 1.6;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}


main {
  overflow-x: clip;
}

img { max-width: 100%; display: block; }
img.is-missing { visibility: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
h1, h2, h3, h4 { margin: 0; font-weight: 400; }
p { margin: 0; }
[hidden] { display: none !important; }
.is-cat-hidden { display: none !important; }
:focus-visible { outline: 2px solid var(--at-copper); outline-offset: 3px; }

.at-top-anchor { position: absolute; top: 0; left: 0; width: 1px; height: 1px; }
.at-shell {
  width: 100%;
  max-width: var(--at-shell);
  margin-inline: auto;
  padding-inline: var(--at-gut);
}

.at-band > .at-shell {
  position: relative;
  z-index: 1;
}

/* ---------- Lazyloader de arranque ------------------------------------- */

#site-boot {
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

.site-boot-mark { display: block;opacity:0}
.site-boot-mark.is-ready { opacity: 1; }
.site-boot-mark.is-iso { width: 80px; height: 80px; }

.site-boot-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.site-boot-img.is-gray { filter: grayscale(1) opacity(0.24); }
.site-boot-img.is-color { clip-path: inset(calc(100% - var(--boot-fill, 0%)) 0 0 0); }

.site-boot-name {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: var(--cms-font-titulos);
  font-weight: 400;
  font-size: clamp(1.5rem, 4.6vw, 2.35rem);
  letter-spacing: -0.01em;
  text-align: center;
  line-height: 1.05;
}

.site-boot-name.is-gray { color: rgba(28, 25, 23, 0.22); }
.site-boot-name.is-color {
  color: var(--at-copper);
  clip-path: inset(calc(100% - var(--boot-fill, 0%)) 0 0 0);
}

/* ---------- Tipografía de sección -------------------------------------- */

.at-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.71rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--at-copper);
}

.at-kicker::before {
  content: "";
  width: 2.1rem;
  height: 1px;
  background: currentColor;
  flex: none;
}

.at-h2 {
  margin: 0.7rem 0 0;
  font-family: var(--cms-font-titulos);
  font-size: clamp(2.35rem, 5vw, 4.05rem);
  line-height: 1;
  letter-spacing: -0.018em;
  max-width: 22ch;
}

.at-head.center { text-align: center; }
.at-head.center .at-h2 { margin-inline: auto; }
.at-head.right { text-align: right; }

.at-prose > * + * { margin-top: 1.05rem; }
.at-prose p, .at-prose li { line-height: 1.72; color: var(--at-ink-2); }
.at-prose h3 { font-family: var(--cms-font-titulos); font-size: 1.6rem; margin-top: 1.8rem; }
.at-band--ink .at-prose p,
.at-band--ink .at-prose li { color: rgba(247, 242, 234, 0.8); }

.at-lead {
  font-family: var(--cms-font-titulos);
  font-size: clamp(1.28rem, 2vw, 1.68rem);
  line-height: 1.45;
  color: var(--at-ink);
}

.at-dossier .at-lead {
  font-size: clamp(1.08rem, 1.65vw, 1.38rem);
  line-height: 1.28;
}

/* ---------- Bandas ------------------------------------------------------ */

.at-band {
  position: relative;
  padding: var(--at-band-y) 0;
  overflow: hidden;
}

.at-band--canvas { background: var(--at-canvas); }
.at-band--ivory { background: var(--at-paper); }

#fideicomiso.at-band { background: #fff; }
#ventajas.at-band { background: #fbfbfb; }
#proyectos.at-band { background: #fff; }
#servicios.at-band { background: #fbfbfb; }
#perfil.at-band { background: #fff; }
#articulos.at-band { background: #fbfbfb; }

.at-band--canvas::before,
.at-band--ivory::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: repeating-linear-gradient(
    90deg,
    rgba(28, 25, 23, 0.035) 0 1px,
    transparent 1px 96px
  );
  opacity: 0.9;
  mask-image: linear-gradient(180deg, transparent, #000 22%, #000 78%, transparent);
}

.at-band--ink {
  background: var(--at-ink);
  color: var(--at-onink);
}

.at-band--ink .at-h2 { color: var(--at-onink); }
.at-band--ink .at-lead { color: var(--at-onink); }

.at-band + .at-band--ink { border-top: 1px solid var(--at-line); }

.at-block + * { margin-top: clamp(2.1rem, 4vw, 3.15rem); }

/* Reveal contenido ------------------------------------------------------- */

[data-at-up] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.75s var(--at-ease), transform 0.75s var(--at-ease);
  transition-delay: calc(var(--at-delay, 0) * 70ms);
}

[data-at-up].is-up { opacity: 1; transform: none; }

/* Con apariencia CMS: al revelar la banda, el copy interno no queda en opacity:0 */
section[data-cms-slot].is-revealed [data-at-up] {
  opacity: 1;
  transform: none;
}

/* ---------- Botonera ---------------------------------------------------- */

.at-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 1rem 1.6rem;
  border: 1px solid var(--at-ink);
  background: var(--at-ink);
  color: var(--at-onink);
  font-size: 0.755rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  transition: color 0.4s var(--at-ease), border-color 0.4s var(--at-ease);
}

.at-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--at-copper);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform 0.45s var(--at-ease);
}

.at-cta:hover::after,
.at-cta:focus-visible::after { transform: scaleY(1); }
.at-cta:hover,
.at-cta:focus-visible { border-color: var(--at-copper); color: #fff; }

.at-cta i { font-size: 0.82rem; transition: transform 0.4s var(--at-ease); }
.at-cta:hover i { transform: translateX(3px); }

.at-cta--ghost {
  background: transparent;
  color: var(--at-ink);
  border-color: rgba(28, 25, 23, 0.35);
}

.at-cta--ghost:hover { color: #fff; }
.at-cta--wide { width: 100%; justify-content: center; margin-top: 0.5rem; }

.at-round {
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  place-items: center;
  border: 1px solid var(--at-line);
  background: transparent;
  color: var(--at-ink);
  cursor: pointer;
  transition: background 0.35s var(--at-ease), color 0.35s var(--at-ease),
    border-color 0.35s var(--at-ease);
}

.at-round:hover { background: var(--at-ink); border-color: var(--at-ink); color: var(--at-onink); }
.at-round[disabled] { opacity: 0.3; pointer-events: none; }

/* ---------- Top bar ----------------------------------------------------- */

.at-topbar {
  position: relative;
  z-index: 50;
  background: #17417d;
  color: #fff;
  font-size: 0.76rem;
}

.at-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.25rem;
  min-height: 40px;
}

.at-topbar ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 1.1rem; }
.at-topbar-nav { margin-right: auto; }
.at-topbar-nav:empty { display: none; }
.at-topbar a { color: inherit; text-decoration: none; }
.at-topbar-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  color: #fff;
  opacity: 0.88;
  transition: opacity 0.3s var(--at-ease);
}
.at-topbar-social a:hover { opacity: 1; }

.at-locale { margin-left: 0; }
.at-locale-group { display: inline-flex; border: 1px solid rgba(255, 255, 255, 0.28); }
.at-locale-group button {
  appearance: none;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.82);
  padding: 0.3rem 0.6rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
}
.at-locale-group button.is-on { background: #fff; color: #17417d; }

/* ---------- Masthead ---------------------------------------------------- */

.at-mast {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  z-index: 40;
  background: #0b2d60;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 8px 24px rgba(11, 45, 96, 0.18);
  overflow: visible;
  transition: background 0.45s var(--at-ease), border-color 0.45s var(--at-ease),
    box-shadow 0.45s var(--at-ease);
}

body.at-no-hero { padding-top: 0; }

.at-mast-inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  height: var(--at-mast);
}

.at-mast.is-solid {
  background: #0b2d60;
  border-bottom-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 8px 24px rgba(11, 45, 96, 0.18);
}

.at-brand { display: inline-flex; align-items: center; gap: 0.85rem; min-width: 0; }
.at-brand-logo { height: 52px; width: auto; object-fit: contain; }
.at-brand-text { display: grid; gap: 0.12rem; min-width: 0; }

.at-brand-text strong {
  font-family: var(--cms-font-titulos);
  font-weight: 400;
  font-size: 1.28rem;
  line-height: 1.05;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.at-brand-text em {
  font-style: normal;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #fff;
}

.at-mast:not(.is-solid) .at-brand-text strong,
.at-mast.is-solid .at-brand-text strong { color: #fff; }
.at-mast:not(.is-solid) .at-brand-logo,
.at-mast.is-solid .at-brand-logo { filter: brightness(0) invert(1); }

.at-nav { margin-left: auto; display: flex; align-items: center; gap: clamp(1rem, 2.1vw, 2rem); }

.at-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0;
  font-size: 0.735rem;
  font-weight: 600;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #fff;
  transition: color 0.3s var(--at-ease), opacity 0.3s var(--at-ease);
}

.at-nav a.is-home {
  letter-spacing: 0;
  font-size: 0.95rem;
}

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

.at-mast:not(.is-solid) .at-nav a,
.at-mast.is-solid .at-nav a { color: #fff; }

.at-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1px;
  width: 0;
  background: #fff;
  transition: width 0.42s var(--at-ease);
}

.at-nav a:hover::after { width: 100%; }
.at-nav a:hover { color: #fff; }

.at-burger {
  display: none;
  position: relative;
  z-index: 90;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 2.9rem;
  height: 2.9rem;
  margin-left: auto;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.45);
  background: #0b2d60;
  cursor: pointer;
}

.at-burger span {
  display: block;
  flex: none;
  width: 1.15rem;
  height: 2px;
  background: #fff;
  background-color: #fff;
  transition: transform 0.4s var(--at-ease), opacity 0.3s var(--at-ease);
}

.at-mast:not(.is-solid) .at-burger,
.at-mast.is-solid .at-burger,
.at-burger[aria-expanded="true"] {
  border-color: rgba(255, 255, 255, 0.45);
  background: #0b2d60;
}

.at-mast:not(.is-solid) .at-burger span,
.at-mast.is-solid .at-burger span,
.at-burger[aria-expanded="true"] span {
  background: #fff;
  background-color: #fff;
}
.at-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.at-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.at-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* ---------- Portada ----------------------------------------------------- */

.at-hero {
  position: relative;
  min-height: calc(100svh - var(--at-chrome-h, var(--at-mast)));
  background: var(--at-ink);
  overflow: hidden;
  isolation: isolate;
}

.at-hero.is-cat-loading { min-height: calc(100svh - var(--at-chrome-h, var(--at-mast))); }
.at-hero-stage { position: absolute; inset: 0; }

.at-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.95s var(--at-ease), visibility 0.95s var(--at-ease);
}

.at-slide.is-on { opacity: 1; visibility: visible; }

.at-slide-media { position: absolute; inset: 0; overflow: hidden; }

.at-slide-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 38%;
  transform: scale(1.06);
  animation: at-kenburns 26s ease-out both;
  will-change: transform;
}

.at-slide-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(96deg, rgba(16, 13, 12, 0.86) 0%, rgba(16, 13, 12, 0.5) 46%, rgba(16, 13, 12, 0.18) 100%),
    linear-gradient(180deg, rgba(16, 13, 12, 0.5) 0%, rgba(16, 13, 12, 0.08) 38%, rgba(16, 13, 12, 0.78) 100%);
}

.at-slide-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-top: clamp(2.25rem, 5vh, 3.75rem);
  padding-bottom: clamp(9rem, 16vh, 12rem);
}

.at-plate {
  position: relative;
  width: min(100%, 39rem);
  padding: clamp(1.75rem, 3.4vw, 2.9rem);
  background: #fff;
  border: 1px solid rgba(28, 25, 23, 0.1);
  border-left: 3px solid var(--at-copper);
  box-shadow: 0 34px 90px rgba(12, 10, 9, 0.45);
  animation: at-plate-in 1.05s var(--at-ease) both;
}

.at-plate::after {
  content: "";
  position: absolute;
  right: -1px;
  top: -1px;
  width: 26px;
  height: 26px;
  border-top: 1px solid var(--at-copper);
  border-right: 1px solid var(--at-copper);
}

.at-plate-kicker {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--at-copper);
}

.at-plate-title {
  margin: 0.85rem 0 0;
  font-family: var(--cms-font-titulos);
  font-size: clamp(2.5rem, 5.4vw, 4.15rem);
  line-height: 0.98;
  letter-spacing: -0.022em;
  color: var(--at-ink);
}

.at-plate-lead {
  margin: 1rem 0 0;
  max-width: 30rem;
  color: var(--at-ink-2);
  font-size: 1rem;
  line-height: 1.6;
}

.at-plate-rule { display: block; width: 3.2rem; height: 2px; background: var(--at-copper); margin: 1.35rem 0 0; }
.at-plate-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.6rem; }

.at-hero-foot {
  position: absolute;
  inset: auto 0 0;
  z-index: 3;
  border-top: 1px solid rgba(247, 242, 234, 0.16);
  background: linear-gradient(180deg, rgba(16, 13, 12, 0), rgba(16, 13, 12, 0.62));
  backdrop-filter: blur(9px);
}

.at-index {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  width: 100%;
  max-width: var(--at-shell);
  margin-inline: auto;
  padding-inline: var(--at-gut);
}

.at-index a {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 1.05rem 0.75rem 1.15rem;
  border-right: 1px solid rgba(247, 242, 234, 0.13);
  color: #fff;
  text-decoration: none;
  transition: color 0.35s var(--at-ease), opacity 0.35s var(--at-ease);
}

.at-index a:first-child { padding-left: 0; }
.at-index a:last-child { border-right: 0; }
.at-index a:hover { color: #fff; opacity: 1; }

.at-index em {
  font-family: var(--cms-font-titulos);
  font-style: normal;
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  color: #fff;
}

.at-index span {
  font-size: 0.715rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.25;
  color: #fff;
}

.at-index a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: 0;
  background: var(--at-copper);
  transition: width 0.5s var(--at-ease);
}

.at-index a:hover::after { width: 100%; }

.at-hero-dots {
  position: absolute;
  right: var(--at-gut);
  top: 50%;
  z-index: 3;
  transform: translateY(-50%);
  display: grid;
  gap: 0.55rem;
}

.at-hero-dots button {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 1px solid rgba(247, 242, 234, 0.55);
  background: transparent;
  cursor: pointer;
  transition: background 0.35s var(--at-ease);
}

.at-hero-dots button.is-on { background: var(--at-copper); border-color: var(--at-copper); }

@keyframes at-kenburns {
  from { transform: scale(1.15); }
  to { transform: scale(1.03); }
}

@keyframes at-plate-in {
  from { opacity: 0; transform: translateY(26px); }
  to { opacity: 1; transform: none; }
}

/* ---------- Fideicomiso: dossier + roles -------------------------------- */

.at-dossier { display: grid; gap: clamp(2.1rem, 4vw, 3.5rem); align-items: start; }

@media (min-width: 960px) {
  .at-dossier { grid-template-columns: 1.06fr 0.94fr; }
}

.at-marks {
  list-style: square;
  margin: 1.9rem 0 0;
  padding-left: 1.35em;
  display: grid;
  gap: 0.45rem;
  color: var(--at-ink-2);
}

.at-marks .at-mark {
  display: list-item;
  padding: 0.1rem 0;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--at-ink-2);
}

.at-marks .at-mark::marker {
  color: var(--at-copper);
}

.at-marks .at-mark {
  display: list-item;
  padding: 0.1rem 0;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--at-ink-2);
}

.at-marks .at-mark::marker {
  color: var(--at-copper);
}

.at-roles {
  position: relative;
  padding: clamp(1.6rem, 3vw, 2.35rem);
  background: var(--at-ink);
  color: #fff;
}

.at-roles::before {
  content: "";
  position: absolute;
  left: -10px;
  top: -10px;
  width: 44%;
  height: 42%;
  border: 1px solid rgba(255, 255, 255, 0.45);
  opacity: 0.5;
  pointer-events: none;
}

.at-roles-label { color: #fff; }

.at-tabs {
  display: flex;
  flex-wrap: wrap;
  margin: 1.35rem 0 1.55rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  gap: 0;
}

.at-tab {
  position: relative;
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0.8rem 1.05rem;
  color: #fff;
  font-size: 0.705rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 0.35s var(--at-ease), background 0.35s var(--at-ease);
}

.at-tab:first-child { padding-left: 1.05rem; }
.at-tab.is-on {
  background: #fbfbfb;
  color: var(--at-ink);
}

.at-tab::after {
  content: none;
}

.at-role-panel { animation: at-fade-up 0.55s var(--at-ease) both; }
.at-role-panel p { color: #fff; line-height: 1.72; font-size: 0.98rem; }

.at-role-n {
  display: block;
  font-family: var(--cms-font-titulos);
  font-size: 2.6rem;
  line-height: 1;
  color: rgba(255, 255, 255, 0.22);
  margin-bottom: 0.5rem;
}

@keyframes at-fade-up {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

/* ---------- Ventajas: retícula de fichas -------------------------------- */

.at-ficha-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1px;
  background: var(--at-line);
  border: 1px solid var(--at-line);
}

@media (min-width: 700px) { .at-ficha-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .at-ficha-grid { grid-template-columns: repeat(3, 1fr); } }

.at-ficha {
  position: relative;
  background: #fff;
  padding: clamp(1.6rem, 2.6vw, 2.15rem);
  transition: background 0.4s var(--at-ease), transform 0.4s var(--at-ease),
    box-shadow 0.4s var(--at-ease);
}

.at-ficha:hover {
  background: #fbfbfb;
  transform: translateY(-4px);
  box-shadow: 0 22px 52px rgba(28, 25, 23, 0.13);
  z-index: 1;
}

.at-ficha-n {
  position: absolute;
  top: 1rem;
  right: 1.25rem;
  font-family: var(--cms-font-titulos);
  font-size: 2.55rem;
  line-height: 1;
  color: var(--at-marfil);
  transition: color 0.4s var(--at-ease);
}

.at-ficha:hover .at-ficha-n { color: var(--at-copper); }

.at-ficha-ico {
  display: grid;
  place-items: center;
  width: 2.7rem;
  height: 2.7rem;
  margin-bottom: 1.15rem;
  border: 1px solid var(--at-line);
  color: var(--at-copper);
  font-size: 0.95rem;
  transition: background 0.4s var(--at-ease), color 0.4s var(--at-ease),
    border-color 0.4s var(--at-ease);
}

.at-ficha:hover .at-ficha-ico { background: var(--at-copper); border-color: var(--at-copper); color: #fff; }

.at-ficha h3 {
  font-family: var(--cms-font-titulos);
  font-size: 1.55rem;
  line-height: 1.1;
  margin-bottom: 0.6rem;
  padding-right: 2.5rem;
}

.at-ficha p { color: var(--at-mute); font-size: 0.945rem; line-height: 1.65; }

/* ---------- Sociedades emisoras ---------------------------------------- */

.at-band--sae::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.at-band--sae > * { position: relative; z-index: 1; }

.at-plate-grid { display: grid; gap: clamp(2rem, 4vw, 3.6rem); align-items: center; }

@media (min-width: 980px) { .at-plate-grid { grid-template-columns: 1.02fr 0.98fr; } }

.at-ask {
  font-family: var(--cms-font-titulos);
  font-style: italic;
  font-size: clamp(1.5rem, 2.7vw, 2.15rem);
  line-height: 0.95;
  color: var(--at-copper);
}

.at-ink-copy > p { margin-top: 1.1rem; color: rgba(247, 242, 234, 0.8); line-height: 1.75; }
.at-ink-copy > p.at-ask {
  margin-top: 0;
  line-height: 0.95;
}

.at-ink-copy > p:last-child {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(247, 242, 234, 0.2);
  color: var(--at-onink);
}

.at-figure { position: relative; margin: 0; }

.at-figure::before {
  content: "";
  position: absolute;
  top: -14px;
  right: -14px;
  width: 58%;
  height: 56%;
  border: 1px solid var(--at-copper);
  opacity: 0.55;
  pointer-events: none;
  z-index: 1;
}

.at-figure img {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: saturate(0.9) contrast(1.04);
}

.at-figure figcaption {
  margin-top: 0.9rem;
  font-size: 0.815rem;
  color: rgba(247, 242, 234, 0.6);
}

#sociedades.at-band--sae {
  background-color: #0b2d60;
  background-image:
    repeating-linear-gradient(
      118deg,
      rgba(255, 255, 255, 0.06) 0 1px,
      transparent 1px 3px,
      rgba(0, 0, 0, 0.08) 3px 4px,
      transparent 4px 9px
    ),
    linear-gradient(168deg, #1a4a86 0%, #0b2d60 40%, #061831 76%, #0e3a72 100%);
}

#sociedades.at-band--sae,
#sociedades.at-band--sae .at-kicker,
#sociedades.at-band--sae .at-h2,
#sociedades.at-band--sae .at-ask,
#sociedades.at-band--sae .at-ink-copy > p,
#sociedades.at-band--sae .at-figure figcaption {
  color: #fff;
}

#sociedades.at-band--sae .at-kicker::before {
  background: #fff;
}

#sociedades.at-band--sae::after {
  background:
    linear-gradient(
      118deg,
      rgba(255, 255, 255, 0.2) 0%,
      rgba(255, 255, 255, 0.05) 24%,
      rgba(0, 0, 0, 0.2) 50%,
      rgba(150, 186, 230, 0.14) 74%,
      rgba(0, 0, 0, 0.28) 100%
    );
}

#sociedades.at-band--sae .at-figure::before {
  border-color: #fff;
  opacity: 0.7;
}

#sociedades.at-band--sae .at-ink-copy > p.at-ask {
  line-height: 0.95;
}

#sociedades.at-band--sae .at-ink-copy > p:last-child {
  border-top-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}

/* ---------- Proyectos: riel arrastrable --------------------------------- */

.at-rail-wrap { position: relative; }

.at-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 31%);
  gap: 1px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  cursor: grab;
  background: var(--at-line);
  border: 1px solid var(--at-line);
}

.at-rail::-webkit-scrollbar { display: none; }
.at-rail.is-drag { cursor: grabbing; scroll-snap-type: none; }
.at-rail.is-drag * { pointer-events: none; }

.at-plot {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--at-ink);
  aspect-ratio: 3 / 4;
  scroll-snap-align: start;
}

.at-plot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.82) contrast(1.05);
  transform: scale(1.01);
  transition: transform 0.95s var(--at-ease), filter 0.7s var(--at-ease);
}

.at-plot:hover img,
.at-plot:focus-within img { transform: scale(1.08); filter: saturate(1) contrast(1.02); }

.at-plot figcaption {
  position: absolute;
  inset: auto 0 0;
  padding: 1.4rem 1.25rem 1.5rem;
  background: linear-gradient(transparent, rgba(16, 13, 12, 0.55) 32%, rgba(16, 13, 12, 0.92));
  color: #fff;
}

.at-plot-n {
  font-family: var(--cms-font-titulos);
  font-size: 0.85rem;
  letter-spacing: 0.16em;
  color: #fff;
}

.at-plot h3 {
  font-family: var(--cms-font-titulos);
  font-size: clamp(1.4rem, 2.1vw, 1.75rem);
  line-height: 1.08;
  margin-top: 0.3rem;
  color: #fff;
}

.at-plot p {
  max-height: 0;
  margin: 0;
  opacity: 0;
  overflow: hidden;
  font-size: 0.875rem;
  color: #fff;
  transition: max-height 0.55s var(--at-ease), opacity 0.45s var(--at-ease),
    margin 0.45s var(--at-ease);
}

.at-plot:hover p,
.at-plot:focus-within p { max-height: 6rem; opacity: 1; margin-top: 0.55rem; }

.at-rail-foot {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-top: 1.35rem;
}

.at-rail-bar { position: relative; flex: 1; height: 2px; background: var(--at-line); }

.at-rail-bar span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 30%;
  background: var(--at-copper);
  transition: width 0.25s linear, transform 0.25s linear;
}

.at-rail-nav { display: flex; gap: 0.55rem; }

/* ---------- Servicios: pestañas laterales ------------------------------- */

.at-svc { display: grid; gap: clamp(1.6rem, 3vw, 2.6rem); align-items: start; }

@media (min-width: 900px) { .at-svc { grid-template-columns: minmax(230px, 0.36fr) 1fr; } }

.at-svc-rail {
  display: grid;
  gap: 1px;
  align-content: start;
  background: var(--at-line);
  border: 1px solid var(--at-line);
}

.at-svc-tab {
  display: flex;
  align-items: center;
  gap: 0.95rem;
  padding: 1.2rem 1.25rem;
  border: 0;
  background: #fbfbfb;
  color: var(--at-ink);
  text-align: left;
  cursor: pointer;
  transition: background 0.4s var(--at-ease), color 0.4s var(--at-ease);
}

.at-svc-tab i { color: var(--at-copper); font-size: 1.05rem; flex: none; transition: color 0.4s var(--at-ease); }
.at-svc-tab b { flex: 1; font-size: 0.87rem; font-weight: 600; line-height: 1.3; }
.at-svc-tab em {
  font-style: normal;
  font-family: var(--cms-font-titulos);
  font-size: 0.9rem;
  color: var(--at-mute);
  margin-left: auto;
}

.at-svc-tab.is-on { background: var(--at-ink); color: var(--at-onink); }
.at-svc-tab.is-on i { color: var(--at-copper); }
.at-svc-tab.is-on em { color: rgba(247, 242, 234, 0.4); }
.at-svc-tab:not(.is-on):hover { background: #fff; }

.at-svc-panel { animation: at-fade-up 0.5s var(--at-ease) both; }

.at-svc-panel h3 {
  font-family: var(--cms-font-titulos);
  font-size: clamp(1.75rem, 2.8vw, 2.35rem);
  line-height: 1.06;
  margin-bottom: 1.4rem;
}

.at-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.8rem; }

@media (min-width: 1060px) { .at-checks { grid-template-columns: 1fr 1fr; gap: 0.85rem 2.2rem; } }

.at-checks li {
  position: relative;
  padding-left: 1.65rem;
  font-size: 0.955rem;
  line-height: 1.6;
  color: var(--at-ink-2);
}

.at-checks li::before {
  content: "";
  position: absolute;
  left: 0.15rem;
  top: 0.62em;
  width: 0.42rem;
  height: 0.42rem;
  background: var(--at-copper);
  transform: rotate(45deg);
}

/* ---------- Perfil: retrato + trayectoria ------------------------------- */

.at-perfil { display: grid; gap: clamp(2.2rem, 4vw, 3.6rem); align-items: start; }

@media (min-width: 960px) { .at-perfil { grid-template-columns: minmax(250px, 0.42fr) 1fr; } }

.at-portrait {
  position: relative;
  margin: 0;
  padding: 13px;
  background: #fff;
  border: 1px solid var(--at-line);
}

@media (min-width: 960px) {
  .at-portrait { position: sticky; top: 1.5rem; }
}

.at-portrait::after {
  content: "";
  position: absolute;
  left: -12px;
  bottom: -12px;
  width: 52%;
  height: 36%;
  border: 1px solid var(--at-copper);
  opacity: 0.55;
  pointer-events: none;
}

.at-portrait img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 20%;
  filter: grayscale(0.12) contrast(1.03);
}

.at-portrait figcaption { padding: 1.1rem 0.35rem 0.35rem; }

.at-portrait figcaption strong {
  display: block;
  font-family: var(--cms-font-titulos);
  font-weight: 400;
  font-size: 1.32rem;
  line-height: 1.15;
}

.at-portrait figcaption span {
  display: block;
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  border-top: 1px solid var(--at-line-soft);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--at-copper);
}

.at-cv { border-top: 1px solid var(--at-line); margin-top: 1.9rem; }
.at-cv-item { border-bottom: 1px solid var(--at-line); }

.at-cv-btn {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
  padding: 1.35rem 0;
  border: 0;
  background: none;
  color: var(--at-ink);
  text-align: left;
  cursor: pointer;
}

.at-cv-n {
  font-family: var(--cms-font-titulos);
  font-size: 1rem;
  letter-spacing: 0.1em;
  color: var(--at-copper);
  min-width: 2.1rem;
  flex: none;
}

.at-cv-btn b { flex: 1; font-size: 1.02rem; font-weight: 600; line-height: 1.3; }

.at-cv-count {
  font-family: var(--cms-font-titulos);
  font-size: 0.9rem;
  color: var(--at-mute);
}

.at-cv-sign { position: relative; width: 1.5rem; height: 1.5rem; flex: none; }

.at-cv-sign::before,
.at-cv-sign::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background: var(--at-copper);
  transition: transform 0.4s var(--at-ease), opacity 0.3s var(--at-ease);
}

.at-cv-sign::before { width: 13px; height: 1.5px; transform: translate(-50%, -50%); }
.at-cv-sign::after { width: 1.5px; height: 13px; transform: translate(-50%, -50%); }
.at-cv-item.is-open .at-cv-sign::after { transform: translate(-50%, -50%) scaleY(0); opacity: 0; }

.at-cv-body { height: 0; overflow: hidden; transition: height 0.5s var(--at-ease); }

.at-cv-body ul {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0.15rem 0 1.7rem 3.1rem;
  display: grid;
  gap: 0.85rem;
}

.at-cv-body ul::before {
  content: "";
  position: absolute;
  left: 1.05rem;
  top: 0.6rem;
  bottom: 2.1rem;
  width: 1px;
  background: var(--at-line);
}

.at-cv-body li {
  position: relative;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--at-mute);
}

.at-cv-body li::before {
  content: "";
  position: absolute;
  left: -2.13rem;
  top: 0.52em;
  width: 0.46rem;
  height: 0.46rem;
  border-radius: 50%;
  background: var(--at-copper);
  box-shadow: 0 0 0 3.5px var(--at-canvas);
}

/* ---------- Publicaciones ---------------------------------------------- */

.at-press { display: grid; gap: 1.5rem; }

@media (min-width: 900px) { .at-press { grid-template-columns: 1fr 1fr; } }

.at-press-card {
  background: #fff;
  border: 1px solid var(--at-line);
  overflow: hidden;
  transition: transform 0.45s var(--at-ease), box-shadow 0.45s var(--at-ease);
}

.at-press-card:hover { transform: translateY(-5px); box-shadow: 0 28px 62px rgba(28, 25, 23, 0.13); }
.at-press-inner { display: grid; grid-template-columns: 152px 1fr; height: 100%; }
.at-press-media { overflow: hidden; background: var(--at-ink); }

.at-press-media img {
  width: 100%;
  height: 100%;
  min-height: 190px;
  object-fit: cover;
  transition: transform 0.85s var(--at-ease);
}

.at-press-card:hover .at-press-media img { transform: scale(1.07); }
.at-press-body { padding: 1.55rem 1.6rem 1.65rem; display: flex; flex-direction: column; background: #fff; }

.at-meta {
  font-size: 0.685rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--at-copper);
}

.at-press-body h3 {
  font-family: var(--cms-font-titulos);
  font-size: clamp(1.32rem, 1.9vw, 1.55rem);
  line-height: 1.15;
  margin: 0.6rem 0 0.6rem;
}

.at-press-body > p { color: var(--at-mute); font-size: 0.925rem; line-height: 1.6; }

.at-press-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.25rem;
  margin-top: auto;
  padding-top: 1.2rem;
}

.at-more {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-top: 0;
  padding-top: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--at-ink);
}

.at-more i { color: var(--at-copper); transition: transform 0.4s var(--at-ease); }
.at-press-card:hover .at-more i { transform: translateX(5px); }

/* ---------- Claves de lectura ------------------------------------------ */

.at-stats {
  display: grid;
  gap: 1px;
  background: rgba(247, 242, 234, 0.16);
  border: 1px solid rgba(247, 242, 234, 0.16);
}

@media (min-width: 640px) { .at-stats { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .at-stats { grid-template-columns: repeat(4, 1fr); } }

.at-stat {
  background: var(--at-ink);
  padding: clamp(1.5rem, 2.7vw, 2.05rem);
  transition: background 0.45s var(--at-ease), color 0.45s var(--at-ease);
}

.at-stat:hover { background: #241f1c; }

.at-stat strong {
  display: block;
  font-family: var(--cms-font-titulos);
  font-weight: 400;
  font-size: clamp(2.7rem, 5vw, 3.7rem);
  line-height: 1;
  color: var(--at-copper);
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.8s var(--at-ease), transform 0.8s var(--at-ease), color 0.45s var(--at-ease);
}

.at-stat.is-in strong { opacity: 1; transform: none; }
.at-stat b { display: block; margin-top: 0.95rem; font-size: 0.95rem; font-weight: 600; }
.at-stat span { display: block; margin-top: 0.3rem; font-size: 0.86rem; color: rgba(247, 242, 234, 0.58); }

.at-notes-slot { margin-top: clamp(2.2rem, 4vw, 3.1rem); }

.at-notes {
  position: relative;
  min-height: 8.5rem;
  padding-left: clamp(1.25rem, 2.5vw, 2.1rem);
  border-left: 2px solid var(--at-copper);
}

.at-note {
  position: absolute;
  inset: 0 0 auto;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.7s var(--at-ease), transform 0.7s var(--at-ease);
  pointer-events: none;
}

.at-note.is-on { position: relative; inset: auto; opacity: 1; transform: none; pointer-events: auto; }

.at-note p {
  font-family: var(--cms-font-titulos);
  font-size: clamp(1.2rem, 2.1vw, 1.65rem);
  line-height: 1.42;
  color: var(--at-onink);
  max-width: 46ch;
}

.at-note footer {
  margin-top: 1rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--at-copper);
}

.at-notes-dots { display: flex; gap: 0.5rem; margin-top: 1.3rem; padding-left: clamp(1.25rem, 2.5vw, 2.1rem); }

.at-notes-dots button {
  width: 1.9rem;
  height: 2px;
  padding: 0;
  border: 0;
  background: rgba(247, 242, 234, 0.28);
  cursor: pointer;
  transition: background 0.35s var(--at-ease);
}

.at-notes-dots button.is-on { background: var(--at-copper); }

#claves.at-band--claves .at-kicker,
#claves.at-band--claves .at-h2,
#claves.at-band--claves .at-stat strong,
#claves.at-band--claves .at-stat b,
#claves.at-band--claves .at-stat span,
#claves.at-band--claves .at-note p,
#claves.at-band--claves .at-note footer {
  color: #fff;
}

#claves.at-band--claves .at-kicker::before {
  background: #fff;
}

#claves.at-band--claves .at-notes {
  border-left-color: #fff;
}

#claves.at-band--claves .at-notes-dots button {
  background: rgba(255, 255, 255, 0.28);
}

#claves.at-band--claves .at-notes-dots button.is-on {
  background: #fff;
}

#claves.at-band--claves .at-stats {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.18);
}

#claves.at-band--claves .at-stat:hover {
  background: #fff;
}

#claves.at-band--claves .at-stat:hover strong,
#claves.at-band--claves .at-stat:hover b,
#claves.at-band--claves .at-stat:hover span {
  color: #0b2d60;
}

/* ---------- Contacto ---------------------------------------------------- */

#contacto.at-band--contacto {
  background: #fff;
  color: var(--at-ink);
}
#contacto.at-band--contacto .at-h2 { color: var(--at-ink); }

.at-desk { display: grid; gap: clamp(2rem, 4vw, 3.2rem); align-items: start; }

@media (min-width: 960px) { .at-desk { grid-template-columns: 0.92fr 1.08fr; } }

.at-mail {
  list-style: none;
  margin: 0 0 1.7rem;
  padding: 0;
  display: grid;
  gap: 0.85rem;
  background: transparent;
  border: 0;
}

.at-mail li {
  background: #fbfbfb;
  background-color: #fbfbfb;
  border: 1px solid var(--at-line);
  isolation: isolate;
}

.at-mail a {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  padding: 1.25rem 1.35rem;
  color: var(--at-ink);
  background: #fbfbfb;
  background-color: #fbfbfb;
  transition: background 0.4s var(--at-ease);
}

.at-mail a:hover { background: #f3f3f3; }
.at-mail i { color: var(--at-copper); font-size: 1rem; flex: none; }

.at-mail small {
  display: block;
  font-size: 0.665rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--at-copper);
  margin-bottom: 0.25rem;
}

.at-mail span { font-size: 1rem; word-break: break-word; }

.at-map {
  border: 1px solid var(--at-line);
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.at-map[hidden],
.at-map.is-cat-hidden,
.at-map:empty {
  display: none !important;
  border: 0;
  aspect-ratio: auto;
  height: 0;
  min-height: 0;
}

.at-map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(0.4) contrast(1.05); }

.at-form {
  position: relative;
  z-index: 1;
  background: #fbfbfb;
  background-color: #fbfbfb;
  color: var(--at-ink);
  padding: clamp(1.7rem, 3vw, 2.55rem);
  border-top: 3px solid var(--at-copper);
  isolation: isolate;
}

.at-form-head h3 { font-family: var(--cms-font-titulos); font-size: 1.85rem; line-height: 1.1; }
.at-form-head p { margin-top: 0.55rem; color: var(--at-mute); font-size: 0.95rem; }
.at-form-head { margin-bottom: 1.8rem; }

.at-field { display: block; margin-bottom: 1.25rem; }

.at-field span {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.665rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--at-mute);
}

.at-field input,
.at-field textarea {
  width: 100%;
  padding: 0.7rem 0;
  border: 0;
  border-bottom: 1px solid var(--at-line);
  background: transparent;
  color: var(--at-ink);
  font-family: var(--cms-font-cuerpo);
  font-size: 1rem;
  transition: border-color 0.35s var(--at-ease);
}

.at-field textarea { resize: vertical; min-height: 6.5rem; }

.at-field input:focus,
.at-field textarea:focus { outline: none; border-bottom-color: var(--at-copper); }

.at-captcha {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem 0.85rem;
  margin: 0.15rem 0 1.3rem;
  padding: 0.7rem 0.9rem 0.65rem;
  background: rgba(28, 25, 23, 0.04);
  border: 1px solid var(--at-line-soft);
}

.at-captcha-label {
  flex: 1 1 auto;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--at-mute);
}

.at-captcha-sum {
  display: inline-flex;
  align-items: baseline;
  gap: 0.55rem;
  margin: 0;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--at-ink);
}

.at-captcha-eq {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
}

.at-captcha input[name="cms_captcha"] {
  width: 2.75rem;
  max-width: 2.75rem;
  padding: 0.2rem 0.15rem 0.28rem;
  border: 0;
  border-bottom: 1px solid var(--at-line);
  border-radius: 0;
  background: transparent;
  text-align: center;
  font-family: var(--cms-font-cuerpo);
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
  color: var(--at-ink);
}

.at-captcha input[name="cms_captcha"]:focus {
  outline: none;
  border-bottom-color: var(--at-copper);
}

.contact-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.at-feedback {
  margin-top: 1.1rem;
  padding: 0.85rem 1rem;
  background: rgba(184, 115, 51, 0.1);
  border-left: 2px solid var(--at-copper);
  font-size: 0.9rem;
  color: var(--at-ink-2);
}

/* ---------- Colofón + firma -------------------------------------------- */

.at-colophon { background: #0b2d60; color: rgba(247, 242, 234, 0.66); }

.at-colophon-grid {
  display: grid;
  gap: 2rem;
  padding-top: clamp(2.6rem, 5vw, 3.9rem);
  padding-bottom: clamp(2.2rem, 4vw, 3.1rem);
  align-items: start;
}

@media (min-width: 840px) {
  .at-colophon-grid { grid-template-columns: auto minmax(0, 1fr) auto; gap: 2rem 2.4rem; }
}

.at-brand--footer .at-brand-text { display: none; }
.at-brand--footer .at-brand-text strong { color: var(--at-onink); }
.at-brand--footer .at-brand-logo {
  height: 46px;
  mix-blend-mode: screen;
}

.at-colophon-nav,
.at-colophon-social { list-style: none; margin: 0; padding: 0; }

.at-colophon-nav {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.5rem 1.05rem;
  min-width: 0;
  text-align: center;
}

.at-colophon-nav a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: color 0.3s var(--at-ease);
}

@media (max-width: 839px) {
  .at-colophon-nav { flex-wrap: wrap; }
  .at-colophon-grid { justify-items: center; text-align: center; }
  .at-brand--footer {
    display: flex;
    justify-content: center;
    width: 100%;
  }
}

.at-colophon-nav a:hover { color: var(--at-copper); }
.at-colophon-social { display: flex; gap: 0.9rem; }

.at-legal {
  grid-column: 1 / -1;
  margin: 0.35rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: rgba(247, 242, 234, 0.48);
}

.at-firma {
  background: #17417d;
  border-top: 0;
}

.at-firma .container {
  width: 100%;
  max-width: var(--at-shell);
  margin-inline: auto;
  padding-inline: var(--at-gut);
}

.footer-inner { padding-block: 0.65rem; }

.footer-credit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.55rem 0.65rem;
  width: 100%;
  margin: 0;
  text-align: center;
  font-size: 0.85rem;
  font-weight: 400;
  color: rgba(247, 242, 234, 0.6);
}

.footer-by {
  width: 1.35rem;
  height: 1px;
  background: color-mix(in srgb, rgba(247, 242, 234, 0.6) 65%, transparent);
}

.footer-credit a { font-weight: 600; color: var(--at-onink); transition: color 0.3s var(--at-ease); }
.footer-credit a:hover { color: var(--at-copper); }

/* ---------- Carrusel (reservado) --------------------------------------- */

.at-marquee { display: flex; gap: 2.5rem; align-items: center; flex-wrap: wrap; }

/* ---------- Responsive -------------------------------------------------- */

@media (max-width: 1000px) {
  .at-burger { display: flex; }

  .at-nav {
    position: fixed;
    inset: 0;
    z-index: 85;
    margin: 0;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.15rem;
    padding: calc(var(--at-mast) + 1.5rem) var(--at-gut) 3rem;
    background: #0b2d60;
    transform: translateY(-101%);
    visibility: hidden;
    transition: transform 0.6s var(--at-ease), visibility 0.6s var(--at-ease);
  }

  .at-nav.is-open { transform: none; visibility: visible; }

  .at-nav a,
  .at-mast:not(.is-solid) .at-nav a,
  .at-mast.is-solid .at-nav a {
    font-family: var(--cms-font-titulos);
    font-size: clamp(1.8rem, 7vw, 2.5rem);
    font-weight: 400;
    letter-spacing: -0.01em;
    text-transform: none;
    color: #fff;
    padding: 0.5rem 0;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.5s var(--at-ease), transform 0.5s var(--at-ease), color 0.3s;
  }

  .at-nav.is-open a,
  .at-mast.is-solid .at-nav.is-open a,
  .at-mast:not(.is-solid) .at-nav.is-open a {
    opacity: 1;
    color: #fff;
    transform: none;
    transition-delay: calc(0.07s * var(--i, 0) + 0.1s);
  }

  .at-hero-foot { display: none; }
}

@media (max-width: 780px) {
  :root { --at-mast: 92px; }
  .at-slide-inner { padding-bottom: clamp(5rem, 12vh, 7rem); }
  .at-hero-dots { top: auto; bottom: 8.5rem; right: var(--at-gut); transform: none; grid-auto-flow: column; }
  .at-rail { grid-auto-columns: minmax(215px, 74%); }
  .at-press-inner { grid-template-columns: 1fr; }
  .at-press-media img { min-height: 210px; aspect-ratio: 16 / 10; }
  .at-brand-text strong { font-size: 1.12rem; white-space: normal; }
}

@media (max-width: 480px) {
  .at-plate { border-left-width: 2px; }
  .at-plate-actions .at-cta { flex: 1 1 100%; justify-content: center; }
  .at-ficha h3 { padding-right: 0; }
  .at-ficha-n { font-size: 2rem; }
  .footer-by { width: 0.85rem; }
}

/* ---------- Movimiento reducido ---------------------------------------- */

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

  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }

  [data-at-up] { opacity: 1; transform: none; }
  .at-slide-media img { transform: none; }
  .at-stat strong { opacity: 1; transform: none; }
}

/* INNSITE Audit — only with body.cat-audit (?cms-audit=1 or ?cat-audit=1) */
body.cat-audit [data-cat-slot],
body.cat-audit [data-cat-field],
body.cat-audit .cat-audit-host {
  position: relative;
}

body.cat-audit .social-float[data-cat-slot] {
  position: fixed;
}

body.cat-audit span.cat-audit-host,
body.cat-audit strong.cat-audit-host,
body.cat-audit small.cat-audit-host,
body.cat-audit a.cat-audit-host {
  display: inline-block;
  max-width: 100%;
  vertical-align: baseline;
}

body.cat-audit [data-cat-slot][data-cat-status="ok"],
body.cat-audit [data-cat-field][data-cat-status="ok"] {
  outline: 1px solid #2f9e6a;
  outline-offset: 2px;
}

body.cat-audit [data-cat-slot][data-cat-status="map"],
body.cat-audit [data-cat-field][data-cat-status="map"],
body.cat-audit [data-cat-status="map"]:not(.cat-audit-cartel):not(.cat-audit-locate-ring) {
  outline: 1px solid #d4a017;
  outline-offset: 2px;
}

body.cat-audit [data-cat-slot][data-cat-status="gap"],
body.cat-audit [data-cat-field][data-cat-status="gap"],
body.cat-audit [data-cat-status="gap"]:not(.cat-audit-cartel):not(.cat-audit-locate-ring) {
  outline: 1px solid #cc2647;
  outline-offset: 2px;
}

/* Carteles reales (JS): ::before fallaba en hero (overflow) y no existía en textos */
body.cat-audit [data-cat-slot]::before,
body.cat-audit [data-cat-field]::before {
  content: none !important;
  display: none !important;
}

body.cat-audit .cat-audit-cartel {
  position: absolute;
  z-index: 90;
  top: 4px;
  left: 4px;
  right: auto;
  bottom: auto;
  box-sizing: border-box;
  width: max-content;
  max-width: min(200px, calc(100% - 8px));
  margin: 0;
  padding: 4px 8px 4px 8px;
  border: 0;
  border-left: 2px solid #666;
  border-radius: 0;
  font-family: var(--cms-font-cuerpo);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
  text-align: left;
  color: #f4f6f8;
  pointer-events: none;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
  background: rgba(12, 16, 20, 0.98);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.12s ease, visibility 0.12s ease;
}

body.cat-audit .cat-audit-host:hover > .cat-audit-cartel,
body.cat-audit .cat-audit-host:focus-within > .cat-audit-cartel {
  opacity: 1;
  visibility: visible;
}

/* Si hay un hijo con hover, no mostrar el cartel del padre */
body.cat-audit .cat-audit-host:has(.cat-audit-host:hover) > .cat-audit-cartel,
body.cat-audit .cat-audit-host:has(.cat-audit-host:focus-within) > .cat-audit-cartel {
  opacity: 0;
  visibility: hidden;
}

body.cat-audit .cat-audit-cartel[data-status="ok"] {
  border-left-color: #2f9e6a;
}

body.cat-audit .cat-audit-cartel[data-status="map"] {
  border-left-color: #d4a017;
}

body.cat-audit .cat-audit-cartel[data-status="gap"] {
  border-left-color: #cc2647;
}

body.cat-audit .cat-audit-cartel[data-kind="texto"] {
  top: 0;
  left: 0;
  font-size: 0.65rem;
  padding: 3px 6px;
}

body.cat-audit .hero > .cat-audit-cartel {
  top: 12px;
  left: auto;
  right: 12px;
  z-index: 95;
}

.cat-audit-launcher {
  position: fixed;
  z-index: 10001;
  top: 1rem;
  right: 1rem;
  width: 48px;
  height: 48px;
  margin: 0;
  padding: 0;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #2f9e6a;
  color: #fff;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
  transition: background 0.15s ease, opacity 0.15s ease;
}

.cat-audit-launcher:hover,
.cat-audit-launcher:focus-visible {
  background: #278a5c;
  outline: none;
}

.cat-audit-launcher.is-marks-off {
  background: #cc2647;
  opacity: 1;
}

.cat-audit-launcher.is-marks-off:hover,
.cat-audit-launcher.is-marks-off:focus-visible {
  background: #b01f3c;
}

.cat-audit-launcher i {
  font-size: 1.15rem;
  line-height: 1;
}

body.cat-audit-open .cat-audit-launcher {
  z-index: 9997;
  pointer-events: none;
}

.cat-audit-overlay {
  position: fixed;
  z-index: 9998;
  inset: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: rgba(0, 0, 0, 0.2);
  cursor: pointer;
}

.cat-audit-overlay[hidden] {
  display: none;
}

.cat-audit-panel {
  position: fixed;
  z-index: 9999;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  width: min(420px, 92vw);
  height: 100%;
  max-height: none;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(12, 16, 20, 0.98);
  color: #f4f6f8;
  box-shadow: -8px 0 28px rgba(0, 0, 0, 0.35);
  font-family: var(--cms-font-cuerpo);
  overflow: hidden;
  transform: translateX(100%);
  transition: transform 0.28s ease;
  pointer-events: none;
}

.cat-audit-panel.is-open {
  transform: translateX(0);
  pointer-events: auto;
}

.cat-audit-panel-bar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 16px 18px;
  flex-shrink: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  min-height: 68px;
  box-sizing: border-box;
}

.cat-audit-panel-bar h2 {
  flex: 0 1 auto;
  min-width: 0;
  display: block;
  margin: 0;
  padding: 0;
  line-height: 1.15;
  height: auto;
  text-align: center;
  width: 100%;
}

.cat-audit-panel-heading {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.2rem;
  text-align: center;
  max-width: calc(100% - 7.5rem);
  pointer-events: none;
}

.cat-audit-page-scope {
  margin: 0;
  padding: 0;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
  text-align: center;
  width: 100%;
}

.cat-audit-panel-bar .cat-audit-marks-toggle,
.cat-audit-panel-bar .cat-audit-panel-close {
  position: relative;
  z-index: 2;
  align-self: center;
  flex-shrink: 0;
}

.cat-audit-marks-toggle {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  margin: 0;
  padding: 4px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #f4f6f8;
  cursor: pointer;
  font: inherit;
}

.cat-audit-marks-toggle:hover,
.cat-audit-marks-toggle:focus-visible {
  outline: none;
}

.cat-audit-marks-toggle:focus-visible .cat-audit-marks-toggle-track {
  box-shadow: 0 0 0 2px rgba(244, 246, 248, 0.45);
}

.cat-audit-marks-toggle-track {
  position: relative;
  width: 34px;
  height: 18px;
  border-radius: 999px;
  background: #cc2647;
  transition: background 0.15s ease;
}

.cat-audit-marks-toggle-thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #f4f6f8;
  transition: transform 0.15s ease;
}

.cat-audit-marks-toggle.is-on .cat-audit-marks-toggle-track {
  background: #2f9e6a;
}

.cat-audit-marks-toggle.is-on .cat-audit-marks-toggle-thumb {
  transform: translateX(16px);
}

/* OFF: sitio limpio, panel y launcher siguen disponibles */
body.cat-audit:not(.cat-audit-marks) [data-cat-slot]:not(.cat-audit-locate),
body.cat-audit:not(.cat-audit-marks) [data-cat-field]:not(.cat-audit-locate),
body.cat-audit:not(.cat-audit-marks) .contact-form[data-cat-form-status]:not(.cat-audit-locate) {
  outline: none !important;
  box-shadow: none !important;
}

body.cat-audit:not(.cat-audit-marks) .cat-audit-cartel,
body.cat-audit:not(.cat-audit-marks) .cat-audit-form-marker {
  display: none !important;
}

body.cat-audit:not(.cat-audit-marks) .cat-audit-flash:not(.cat-audit-locate) {
  outline: none !important;
  box-shadow: none !important;
}

.cat-audit-panel h2 {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  text-align: center;
}

.cat-audit-panel-close {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.06);
  color: #f4f6f8;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}

.cat-audit-panel-close:hover,
.cat-audit-panel-close:focus-visible {
  background: rgba(255, 255, 255, 0.12);
  outline: none;
}

.cat-audit-panel-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  padding: 16px 18px 20px;
  overflow-x: clip;
  overflow-y: auto;
  gap: 18px;
}

.cat-audit-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  flex-shrink: 0;
  position: relative;
  z-index: 0;
  background: rgba(12, 16, 20, 0.98);
}

.cat-audit-section:last-child {
  flex: 1 1 auto;
  min-height: 12rem;
  overflow: hidden;
  z-index: 1;
}

.cat-audit-section:last-child > .cat-audit-panel-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.cat-audit-section-title {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 28px 0;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  color: rgba(244, 246, 248, 0.62);
}

.cat-audit-section-title::before,
.cat-audit-section-title::after {
  content: "";
  height: 1px;
  background: rgba(255, 255, 255, 0.12);
}

.cat-audit-panel-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  border-bottom: 0;
  flex-shrink: 0;
}

.cat-audit-summary-item {
  display: grid;
  grid-template-columns: auto auto;
  grid-template-rows: auto auto;
  column-gap: 8px;
  row-gap: 2px;
  align-items: center;
  justify-content: start;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.04);
  border-left: 3px solid #666;
}

.cat-audit-summary-item[data-status="ok"] {
  border-left-color: #2f9e6a;
}

.cat-audit-summary-item[data-status="map"] {
  border-left-color: #d4a017;
}

.cat-audit-summary-item[data-status="gap"] {
  border-left-color: #cc2647;
}

.cat-audit-summary-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #666;
  grid-column: 1;
  grid-row: 1 / span 2;
}

.cat-audit-summary-item[data-status="ok"] .cat-audit-summary-dot {
  background: #2f9e6a;
}

.cat-audit-summary-item[data-status="map"] .cat-audit-summary-dot {
  background: #d4a017;
}

.cat-audit-summary-item[data-status="gap"] .cat-audit-summary-dot {
  background: #cc2647;
}

.cat-audit-summary-count {
  grid-column: 2;
  grid-row: 1;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
  letter-spacing: 0.02em;
}

.cat-audit-summary-label {
  grid-column: 2;
  grid-row: 2;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(244, 246, 248, 0.7);
}

.cat-audit-panel-legend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  border-bottom: 0;
  flex-shrink: 0;
}

.cat-audit-panel-legend li {
  display: grid;
  grid-template-columns: 12px 2.75rem 1fr;
  gap: 10px;
  align-items: center;
  font-size: 0.78rem;
  line-height: 1.4;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.cat-audit-panel-legend li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.cat-audit-panel-legend li:first-child {
  padding-top: 0;
}

.cat-audit-swatch {
  width: 10px;
  height: 10px;
  margin: 0;
  border-radius: 50%;
  background: #666;
  flex-shrink: 0;
  justify-self: center;
}

.cat-audit-panel-legend li[data-status="ok"] .cat-audit-swatch {
  background: #2f9e6a;
}

.cat-audit-panel-legend li[data-status="map"] .cat-audit-swatch {
  background: #d4a017;
}

.cat-audit-panel-legend li[data-status="gap"] .cat-audit-swatch {
  background: #cc2647;
}

.cat-audit-legend-term {
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  width: 2.75rem;
}

.cat-audit-legend-text {
  color: rgba(244, 246, 248, 0.78);
}

.cat-audit-panel-list {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: auto;
  display: grid;
  gap: 10px;
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
  align-content: start;
  overscroll-behavior: contain;
}

.cat-audit-group {
  margin: 0;
  border: 0;
  background: rgba(255, 255, 255, 0.03);
  position: relative;
  z-index: 0;
}

.cat-audit-group:not([open]) {
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.cat-audit-group:not([open])[data-status="ok"] {
  border-left: 3px solid #2f9e6a;
}

.cat-audit-group:not([open])[data-status="map"] {
  border-left: 3px solid #d4a017;
}

.cat-audit-group:not([open])[data-status="gap"] {
  border-left: 3px solid #cc2647;
}

.cat-audit-group[open] {
  border: 0;
  border-left: 0;
  background: transparent;
}

.cat-audit-group-summary {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px 10px;
  padding: 10px 12px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.cat-audit-group-summary::-webkit-details-marker {
  display: none;
}

.cat-audit-group-summary::after {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-right: 2px solid rgba(244, 246, 248, 0.7);
  border-bottom: 2px solid rgba(244, 246, 248, 0.7);
  transform: rotate(45deg);
  transition: transform 0.15s ease;
  grid-column: 4;
  grid-row: 1;
  justify-self: end;
}

.cat-audit-group[open] > .cat-audit-group-summary::after {
  transform: rotate(225deg);
  margin-top: 4px;
}

.cat-audit-group-summary .cat-audit-summary-dot {
  margin-top: 0;
  grid-column: 1;
  grid-row: 1;
}

.cat-audit-group-title {
  grid-column: 2;
  grid-row: 1;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
}

.cat-audit-group-count {
  grid-column: 3;
  grid-row: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  padding: 1px 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  font-size: 0.72rem;
  font-weight: 700;
  color: rgba(244, 246, 248, 0.9);
}

.cat-audit-group[data-status="ok"] .cat-audit-summary-dot {
  background: #2f9e6a;
}

.cat-audit-group[data-status="map"] .cat-audit-summary-dot {
  background: #d4a017;
}

.cat-audit-group[data-status="gap"] .cat-audit-summary-dot {
  background: #cc2647;
}

.cat-audit-group-empty {
  margin: 0;
  padding: 8px 12px 12px;
  font-size: 0.72rem;
  color: rgba(244, 246, 248, 0.5);
}

.cat-audit-group-list {
  list-style: none;
  margin: 0;
  padding: 0 8px 8px;
  display: grid;
  gap: 8px;
}

.cat-audit-group-list li {
  padding: 10px;
  border-left: 0;
  background: rgba(255, 255, 255, 0.04);
  cursor: pointer;
}

.cat-audit-group-list li:hover,
.cat-audit-group-list li:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  outline: none;
}

.cat-audit-panel-head {
  display: grid;
  grid-template-columns: 2.25rem minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 8px;
  font-size: 0.8rem;
}

.cat-audit-ref {
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #fff;
}

.cat-audit-panel-head code {
  font-size: 0.8rem;
  color: #fff;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cat-audit-panel-head > span:last-child {
  white-space: nowrap;
}

.cat-audit-status {
  display: inline-block;
  width: 10px;
  height: 10px;
  min-width: 10px;
  padding: 0;
  border-radius: 50%;
  background: #666;
  flex-shrink: 0;
  font-size: 0;
  line-height: 0;
  color: transparent;
  overflow: hidden;
}

.cat-audit-status[data-status="ok"] {
  background: #2f9e6a;
}

.cat-audit-status[data-status="map"] {
  background: #d4a017;
}

.cat-audit-status[data-status="gap"] {
  background: #cc2647;
}

.cat-audit-panel-src {
  margin: 4px 0 0;
  font-size: 0.78rem;
  line-height: 1.4;
  color: rgba(244, 246, 248, 0.88);
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: baseline;
}

.cat-audit-kind {
  display: inline-flex;
  padding: 1px 6px;
  border: 1px solid rgba(244, 246, 248, 0.28);
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(244, 246, 248, 0.78);
}

.cat-audit-panel-list li[data-kind="texto"] .cat-audit-kind,
.cat-audit-group-list li[data-kind="texto"] .cat-audit-kind {
  border-color: rgba(244, 246, 248, 0.4);
}

.cat-audit-panel-loc {
  color: rgba(244, 246, 248, 0.78);
}

.cat-audit-panel-preview {
  margin: 6px 0 0;
  padding: 6px 8px;
  border-left: 2px solid rgba(244, 246, 248, 0.22);
  font-size: 0.76rem;
  line-height: 1.35;
  color: rgba(244, 246, 248, 0.92);
  font-style: italic;
}

.cat-audit-panel-hint {
  margin: 4px 0 0;
  font-size: 0.68rem;
  line-height: 1.3;
  color: rgba(244, 246, 248, 0.55);
}

body.cat-audit .cat-audit-flash {
  outline: 2px solid #fff !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 4px rgba(204, 38, 71, 0.35);
}

body.cat-audit .cat-audit-locate {
  outline: 2px solid #fff !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(47, 158, 106, 0.45), 0 0 0 1px rgba(12, 16, 20, 0.8) !important;
  position: relative;
  z-index: 70;
}

body.cat-audit p.cat-audit-locate,
body.cat-audit h1.cat-audit-locate,
body.cat-audit h2.cat-audit-locate,
body.cat-audit h3.cat-audit-locate,
body.cat-audit h4.cat-audit-locate,
body.cat-audit .kicker.cat-audit-locate {
  display: inline-block;
  width: max-content;
  max-width: 100%;
}

.cat-audit-locate-ring {
  position: fixed;
  z-index: 99980;
  pointer-events: none;
  box-sizing: border-box;
  border: 2px solid #2f9e6a;
  box-shadow: 0 0 0 4px rgba(47, 158, 106, 0.4);
  border-radius: 2px;
}

.cat-audit-locate-ring[data-status="gap"] {
  border-color: #cc2647;
  box-shadow: 0 0 0 4px rgba(204, 38, 71, 0.45);
}

.cat-audit-locate-ring[data-status="map"] {
  border-color: #d4a017;
  box-shadow: 0 0 0 4px rgba(212, 160, 23, 0.4);
}

.cat-audit-locate-ring[hidden] {
  display: none !important;
}

body.cat-audit [data-cat-status="gap"].cat-audit-locate,
body.cat-audit [data-cat-field][data-cat-status="gap"].cat-audit-locate,
body.cat-audit [data-cat-slot][data-cat-status="gap"].cat-audit-locate {
  outline: 2px solid #cc2647 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(204, 38, 71, 0.5), 0 0 0 1px rgba(12, 16, 20, 0.85) !important;
}

body.cat-audit #servicios,
body.cat-audit #equipo {
  overflow: visible;
}

body.cat-audit .cat-audit-locate > .cat-audit-cartel {
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 95;
}

body.cat-audit
  .contact-form.cat-audit-locate
  > .cat-audit-form-marker
  > .cat-audit-cartel {
  opacity: 1 !important;
  visibility: visible !important;
}

body.cat-audit-open {
  overflow: hidden;
}

body.cat-audit .topbar,
body.cat-audit .topbar-inner,
body.cat-audit .topbar-actions,
body.cat-audit .site-header,
body.cat-audit .header-inner {
  overflow: visible;
}

body.cat-audit .social-float > .cat-audit-cartel {
  top: auto;
  bottom: calc(100% + 6px);
  left: auto;
  right: 0;
}

body.cat-audit .topbar .cat-audit-cartel,
body.cat-audit .site-header .cat-audit-cartel {
  top: auto;
  bottom: 4px;
  left: 4px;
}

body.cat-audit #servicios > .cat-audit-cartel {
  top: 12px;
  left: auto;
  right: 12px;
}




body.cat-audit .at-mast,
body.cat-audit .at-hero,
body.cat-audit .at-band,
body.cat-audit .at-slide,
body.cat-audit .at-slide-media {
  overflow: visible;
}



/* ABC v2 · debt sandbox */
.page-debt .debt-main { padding-bottom: 0; }

.page-debt .debt-banner {
  padding: clamp(2.75rem, 6vw, 4.5rem) 0 clamp(2rem, 4vw, 3rem);
}

.page-debt .debt-banner-plate {
  width: min(100%, 52rem);
  margin-inline: 0;
}

.page-debt .debt-banner-plate .at-h2 {
  max-width: none;
  margin-top: 0.65rem;
}

.page-debt .debt-banner-lead {
  margin: 1rem 0 0;
  max-width: 44rem;
  color: var(--at-ink-2);
  line-height: 1.65;
}

.page-debt .debt-banner-lead code {
  font-size: 0.88em;
  padding: 0.1em 0.35em;
  background: rgba(28, 25, 23, 0.06);
}

.page-debt .debt-index {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 1.35rem 0 0;
  padding: 0;
  list-style: none;
}

.page-debt .debt-index a {
  display: inline-flex;
  align-items: center;
  padding: 0.38rem 0.72rem;
  border: 1px solid var(--at-line);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--at-ink-2);
  background: rgba(255, 255, 255, 0.72);
  transition: border-color 0.3s var(--at-ease), color 0.3s var(--at-ease), background 0.3s var(--at-ease);
}

.page-debt .debt-index a:hover,
.page-debt .debt-index a:focus-visible {
  border-color: var(--at-copper);
  color: var(--at-ink);
  background: #fff;
}

.page-debt .debt-banner-actions { margin-top: 1.5rem; }

.page-debt .debt-section { padding: clamp(2.75rem, 5.5vw, 4.25rem) 0; }

.page-debt .debt-section-head {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem 1.35rem;
  align-items: start;
  margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
}

.page-debt .debt-section-num {
  font-family: var(--cms-font-titulos);
  font-size: clamp(2rem, 4vw, 2.75rem);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--at-copper);
  opacity: 0.9;
}

.page-debt .debt-section-copy .at-h2 { margin-top: 0.55rem; }

.page-debt #debt-stats .at-kicker,
.page-debt #debt-stats .at-h2,
.page-debt #debt-stats .debt-section-num {
  color: var(--at-onink);
}

.page-debt #debt-stats .at-kicker::before { background: var(--at-copper); }

.page-debt #debt-stats .at-stats {
  margin-top: 0;
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.18);
}

.page-debt #debt-stats .at-stat b,
.page-debt #debt-stats .at-stat span {
  color: rgba(255, 255, 255, 0.82);
}

.page-debt #debt-stats .at-stat strong {
  color: var(--at-copper);
}

.page-debt #debt-stats .at-stat:hover {
  background: #fff;
}

.page-debt #debt-stats .at-stat:hover strong {
  color: var(--at-copper);
}

.page-debt #debt-stats .at-stat:hover b,
.page-debt #debt-stats .at-stat:hover span {
  color: var(--at-ink);
}

.page-debt .cms-ctas-stack {
  display: grid;
  gap: 1rem;
}

.page-debt .debt-cta-band,
.page-debt .at-cta-band {
  display: grid;
  gap: 1rem;
  min-height: 0;
  padding: clamp(1.35rem, 3vw, 1.85rem);
  background: #fff;
  border: 1px solid var(--at-line);
  border-left: 3px solid var(--at-copper);
  box-shadow: 0 18px 44px rgba(28, 25, 23, 0.06);
}

@media (min-width: 760px) {
  .page-debt .debt-cta-band,
  .page-debt .at-cta-band {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 1.5rem;
  }

  .page-debt .debt-cta-band h3,
  .page-debt .at-cta-band h3 {
    grid-column: 1;
    grid-row: 1;
  }

  .page-debt .debt-cta-band p,
  .page-debt .at-cta-band p {
    grid-column: 1;
    grid-row: 2;
    margin-top: 0;
  }

  .page-debt .cms-cta-actions {
    grid-column: 2;
    grid-row: 1 / span 2;
    margin: 0;
    padding-top: 0;
    justify-self: end;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.65rem;
  }
}

@media (max-width: 759px) {
  .page-debt .cms-cta-actions {
    margin-top: auto;
    padding-top: 1.15rem;
  }
}

.page-debt .debt-cta-band h3,
.page-debt .at-cta-band h3 {
  margin: 0;
  font-family: var(--cms-font-titulos);
  font-size: clamp(1.35rem, 2.4vw, 1.8rem);
  line-height: 1.1;
}

.page-debt .debt-cta-band p,
.page-debt .at-cta-band p {
  margin: 0.75rem 0 0;
  color: var(--at-ink-2);
  max-width: 52ch;
}

.page-debt .debt-entry-panel {
  padding: clamp(1.5rem, 3vw, 2.25rem);
  background: #fff;
  border: 1px solid var(--at-line);
  border-left: 3px solid var(--at-copper);
  box-shadow: 0 22px 50px rgba(28, 25, 23, 0.07);
}

.page-debt .debt-entry-panel .at-prose {
  max-width: 62ch;
}

.page-debt .cms-bloques-stack {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 760px) {
  .page-debt .cms-bloques-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.page-debt .cms-bloque-html {
  padding: 0;
  background: transparent;
  border: 0;
}

.page-debt .debt-html-card,
.page-debt .debt-html-quote {
  height: 100%;
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  background: #fff;
  border: 1px solid var(--at-line);
}

.page-debt .debt-html-card h3 {
  margin: 0;
  font-family: var(--cms-font-titulos);
  font-size: 1.35rem;
}

.page-debt .debt-html-card p {
  margin: 0.75rem 0 0;
  color: var(--at-ink-2);
  line-height: 1.65;
}

.page-debt .debt-html-quote {
  margin: 0;
  border-left: 3px solid var(--at-copper);
}

.page-debt .debt-html-quote p {
  margin: 0;
  font-family: var(--cms-font-titulos);
  font-size: clamp(1.2rem, 2.2vw, 1.55rem);
  line-height: 1.35;
  color: var(--at-ink);
}

.page-debt .debt-html-quote cite {
  display: block;
  margin-top: 0.85rem;
  font-style: normal;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--at-copper);
}

.page-debt .debt-precio {
  margin: 0.85rem 0 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--at-copper);
}

.page-debt .debt-plp-intro {
  max-width: 52ch;
  margin: -1rem 0 1.25rem;
  color: var(--at-ink-2);
}

.page-debt .debt-plp-mount {
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  background: #fff;
  border: 1px solid var(--at-line);
}

.page-debt .debt-plp-ids {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.page-debt .debt-plp-ids a {
  display: inline-flex;
  padding: 0.4rem 0.7rem;
  border: 1px solid var(--at-line);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-decoration: none;
  color: var(--at-ink);
  background: var(--at-canvas);
  transition: border-color 0.3s var(--at-ease), color 0.3s var(--at-ease);
}

.page-debt .debt-plp-ids a:hover,
.page-debt .debt-plp-ids a:focus-visible {
  border-color: var(--at-copper);
  color: var(--at-copper);
}

.page-debt .cms-blog-grid { display: grid; gap: 1.5rem; }

.page-debt .at-press-card .at-press-inner {
  grid-template-columns: minmax(132px, 168px) minmax(0, 1fr);
}

.page-debt .at-press-media:empty {
  display: none;
}

.page-debt .at-press-inner:has(.at-press-media:empty) {
  grid-template-columns: 1fr;
}

.page-debt .at-press-media img {
  min-height: 168px;
}

@media (min-width: 900px) {
  .page-debt .cms-blog-grid { grid-template-columns: 1fr; }
}

.page-debt .debt-rail-wrap { margin-top: 0.25rem; }

.page-debt [data-at-up] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.75s var(--at-ease), transform 0.75s var(--at-ease);
}

.page-debt [data-at-up].is-up {
  opacity: 1;
  transform: none;
}

