/* ==========================================================================
   A79 METALS - hoja compartida de contenido
   Se instala como code-asset (handle `a79-content`) y cada pagina la declara
   en content_asset_ids. NO se auto-scopea: aplica tal cual donde se declare,
   lo que permite integrarse con el tema del sitio.

   Variables con prefijo --a79c- a proposito: el sitio ya define --a79-* en
   :root con OTROS valores (--a79-gold es #c89b3c, no el #c18a05 del BrandBook;
   --a79-content-max es 1480). Reutilizarlas descuadraria cualquier componente
   del sitio renderizado dentro del contenido.

   NO usar @import de fuentes: el layout base ya carga Inter, Playfair Display
   y Cormorant Garamond.
   ========================================================================== */

:root {
  /* Paleta oficial (BrandBook) */
  --a79c-onyx:   #11110d;
  --a79c-pearl:  #f8f7f4;
  --a79c-alpine: #113243;
  --a79c-gold:   #c18a05;
  --a79c-lapis:  #2e5f7f;
  --a79c-sky:    #84a4bd;
  --a79c-white:  #ffffff;

  --a79c-ink:        #20201c;
  --a79c-ink-soft:   #42433e;
  --a79c-ink-mute:   #5f605b;
  --a79c-border:     rgba(17, 17, 13, .14);
  --a79c-border-soft:rgba(17, 17, 13, .07);
  --a79c-gold-soft:  rgba(193, 138, 5, .11);
  --a79c-sky-soft:   rgba(132, 164, 189, .15);
  --a79c-shadow:     0 18px 46px rgba(17, 17, 13, .10);
  --a79c-shadow-soft:0 8px 24px rgba(17, 17, 13, .07);

  --a79c-success: #267a4b;
  --a79c-warning: #8b5b00;
  --a79c-error:   #a33832;

  --a79c-radius-sm: 4px;
  --a79c-radius-md: 8px;
  --a79c-radius-lg: 14px;

  --a79c-content-max: 1180px;
  --a79c-reading-max: 760px;
  --a79c-aside-w:     300px;

  /* Hereda la fuente real del sitio (Hanken Grotesk) y cae a Inter fuera de el */
  --a79c-sans:  var(--a79-font, "Inter", system-ui, -apple-system, "Segoe UI", Arial, sans-serif);
  --a79c-serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --a79c-trad:  "Cormorant Garamond", Georgia, serif;
}

.a79 {
  font-family: var(--a79c-sans);
  color: var(--a79c-ink);
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

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

/* --------------------------------------------------------------------------
   1. Contenedores y grilla
   -------------------------------------------------------------------------- */

.a79-wrap { max-width: var(--a79c-content-max); margin-inline: auto; padding-inline: 24px; }

.a79-head { padding: 40px 0 0; }
.a79-head > * { max-width: var(--a79c-reading-max); }

.a79-layout {
  display: grid;
  grid-template-columns: minmax(0, var(--a79c-reading-max)) minmax(240px, var(--a79c-aside-w));
  gap: clamp(3rem, 6vw, 7rem);
  align-items: start;
  justify-content: center;
  padding-bottom: 24px;
}
.a79-layout--full { grid-template-columns: minmax(0, 1fr); }

.a79-aside { position: sticky; top: 24px; display: grid; gap: 1.25rem; }

.a79-band { margin-top: 6rem; }
.a79-band--tight { margin-top: 4rem; }

/* Separadores entre macrosecciones del cuerpo. */
.a79-layout > div > section { scroll-margin-top: 2rem; }
.a79-layout > div > section + section {
  margin-top: 4.5rem; padding-top: 3.5rem; border-top: 1px solid var(--a79c-border);
}

/* --------------------------------------------------------------------------
   2. Tipografia
   -------------------------------------------------------------------------- */

.a79 h1, .a79 h2 { font-family: var(--a79c-serif); font-weight: 600; color: var(--a79c-onyx); margin-top: 0; text-wrap: balance; }
.a79 h3, .a79 h4 { font-family: var(--a79c-sans); font-weight: 600; color: var(--a79c-alpine); }

.a79 h1 { font-size: clamp(1.84rem, 4.2vw, 3rem); font-weight: 700; line-height: 1.06; letter-spacing: -.022em; margin-bottom: 1.25rem; max-width: 18ch; }
.a79 h2 { font-size: clamp(1.5rem, 2.4vw, 1.875rem); line-height: 1.2; letter-spacing: -.018em; margin-bottom: 1.2rem; }
.a79 h3 { font-size: clamp(1rem, 1.5vw, 1.125rem); line-height: 1.35; margin: 2rem 0 .7rem; }

.a79 p { margin: 0 0 1.1rem; max-width: 72ch; }
.a79 a { color: var(--a79c-lapis); text-decoration-thickness: .08em; text-underline-offset: .2em; }
.a79 a:hover { color: var(--a79c-alpine); }
.a79 :focus-visible { outline: 3px solid var(--a79c-gold); outline-offset: 4px; border-radius: var(--a79c-radius-sm); }
.a79 strong { font-weight: 600; color: var(--a79c-onyx); }

/* Eyebrow con filete inicial */
.a79-eyebrow,
.a79 p.a79-eyebrow,
.a79 h2.a79-eyebrow,
.a79 h3.a79-eyebrow {
  display: inline-flex; gap: .55rem; align-items: center; margin: 0 0 1rem;
  color: var(--a79c-gold); font-family: var(--a79c-sans);
  font-size: .76rem; font-weight: 700; letter-spacing: .12em;
  line-height: 1.3; text-transform: uppercase;
}
.a79-eyebrow::before { width: 2rem; height: 1px; background: currentColor; content: ""; flex: none; }
.a79-eyebrow--mute,
.a79 p.a79-eyebrow--mute,
.a79 h2.a79-eyebrow--mute { color: var(--a79c-ink-mute); }

.a79 p.a79-dek {
  max-width: 65ch; font-size: clamp(1.12rem, 2vw, 1.38rem); line-height: 1.52;
  color: var(--a79c-ink-soft); margin: 0 0 1.5rem;
}
.a79 p.a79-tagline {
  font-family: var(--a79c-trad); font-style: italic; font-weight: 500;
  font-size: clamp(20px, 1.8vw, 24px); color: var(--a79c-gold); margin: 10px 0 0;
}

/* --------------------------------------------------------------------------
   3. Breadcrumb y metadatos
   -------------------------------------------------------------------------- */

.a79-breadcrumb { margin-bottom: 2.5rem; color: var(--a79c-ink-mute); font-size: .82rem;}
.a79-breadcrumb ol { display: flex; flex-wrap: wrap; gap: .4rem .65rem; align-items: center; margin: 0; padding: 0; list-style: none; max-width: none; }
.a79-breadcrumb li { margin: 0; max-width: none; }
.a79-breadcrumb li:not(:last-child)::after { content: "/"; margin-left: .65rem; color: var(--a79c-sky); }
.a79-breadcrumb a { color: var(--a79c-ink-mute); text-decoration: none; }
.a79-breadcrumb a:hover { text-decoration: underline; }
.a79-breadcrumb [aria-current="page"] { color: var(--a79c-onyx); font-weight: 600; }

.a79 .a79-meta {
  display: flex; flex-wrap: wrap; gap: .65rem 1.25rem; align-items: center;
  margin: 0; max-width: none; color: var(--a79c-ink-mute); font-size: .88rem;
}
.a79-meta > span { display: inline-flex; gap: .42rem; align-items: center; }
.a79-meta svg { width: 1rem; height: 1rem; color: var(--a79c-gold); stroke-width: 1.7; flex: none; }

/* --------------------------------------------------------------------------
   4. Figuras
   -------------------------------------------------------------------------- */

.a79 figure { margin: 2rem 0; }
.a79 img, .a79 svg { display: block; max-width: 100%; }
.a79 img { width: 100%; height: auto; border-radius: var(--a79c-radius-sm); }
.a79 figcaption { margin-top: .75rem; color: var(--a79c-ink-mute); font-size: .8rem; line-height: 1.5; }
.a79-hero { margin: 2rem 0 0; }
.a79-hero img { aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--a79c-radius-lg); box-shadow: var(--a79c-shadow); }
.a79-figure--band img { aspect-ratio: 3 / 1; object-fit: cover; }

/* --------------------------------------------------------------------------
   5. Respuesta breve
   -------------------------------------------------------------------------- */

.a79-answer {
  position: relative; padding: 2rem;
  border: 1px solid rgba(46, 95, 127, .2); border-radius: var(--a79c-radius-md);
  background: linear-gradient(135deg, var(--a79c-sky-soft), rgba(255,255,255,.75));
}
.a79-answer::before { position: absolute; top: 0; left: 0; width: 5rem; height: 3px; background: var(--a79c-lapis); content: ""; }
.a79 .a79-answer h2 { font-family: var(--a79c-sans); font-size: 1.12rem; font-weight: 700; letter-spacing: .01em; margin-bottom: .7rem; }
.a79-answer p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   6. Notas, avisos y citas
   -------------------------------------------------------------------------- */

.a79-callout {
  background: var(--a79c-sky-soft); border-left: 3px solid var(--a79c-lapis);
  border-radius: 0 var(--a79c-radius-sm) var(--a79c-radius-sm) 0;
  padding: 1.2rem 1.4rem; margin: 1.8rem 0;
}
.a79 .a79-callout p.a79-eyebrow { color: var(--a79c-alpine); margin-bottom: .5rem; }
.a79-callout p { margin: 0; font-size: .96rem; line-height: 1.6; color: var(--a79c-alpine); max-width: none; }
.a79-callout--gold { background: var(--a79c-gold-soft); border-left-color: var(--a79c-gold); }
.a79 .a79-callout--gold p.a79-eyebrow { color: var(--a79c-gold); }
.a79-callout--gold p { color: var(--a79c-ink); }

/* Aviso con icono */
.a79-notice {
  display: grid; grid-template-columns: auto 1fr; gap: 1rem;
  margin: 2rem 0; padding: 1.4rem;
  border: 1px solid rgba(193, 138, 5, .28); border-radius: var(--a79c-radius-md);
  background: var(--a79c-gold-soft);
}
.a79-notice svg { width: 1.5rem; height: 1.5rem; margin-top: .1rem; color: var(--a79c-warning); stroke-width: 1.7; flex: none; }
.a79-notice strong { display: block; margin-bottom: .25rem; color: var(--a79c-onyx); }
.a79-notice p { margin: 0; color: #4f4c43; font-size: .91rem; line-height: 1.55; max-width: none; }

.a79 blockquote { margin: 3rem 0; padding: .35rem 0 .35rem 1.75rem; border-left: 3px solid var(--a79c-gold); }
.a79 blockquote p {
  margin-bottom: .7rem; max-width: none; color: var(--a79c-onyx);
  font-family: var(--a79c-serif); font-size: clamp(1.15rem, 2vw, 1.5rem);
  font-style: italic; line-height: 1.45;
}
.a79 blockquote cite { color: var(--a79c-ink-mute); font-size: .8rem; font-style: normal; }

.a79 blockquote.a79-pullquote { border: 0; padding: 0; margin: 3.5rem 0; max-width: 780px; }
.a79-pullquote p { font-family: var(--a79c-trad); color: var(--a79c-alpine); font-style: normal; }
.a79-pullquote p::before { content: "\201C"; color: var(--a79c-gold); margin-right: 4px; }
.a79-pullquote p::after  { content: "\201D"; color: var(--a79c-gold); margin-left: 2px; }

/* --------------------------------------------------------------------------
   7. Listas, tablas, definiciones
   -------------------------------------------------------------------------- */

.a79 ul, .a79 ol { max-width: 72ch; padding-left: 1.3rem; margin: 0 0 1.2rem; }
.a79 li { margin-bottom: .45em; max-width: 72ch; }
.a79 ul li::marker { color: var(--a79c-gold); }
.a79 ol li::marker { color: var(--a79c-gold); font-weight: 600; }

.a79-table-scroll {
  overflow-x: auto; margin: 2rem 0; max-width: none;
  border: 1px solid var(--a79c-border); border-radius: var(--a79c-radius-md);
  background: var(--a79c-white); box-shadow: var(--a79c-shadow-soft);
}
.a79 table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .9rem; line-height: 1.5; }
.a79 caption { padding: 1rem 1.2rem; color: var(--a79c-alpine); font-weight: 700; text-align: left; caption-side: top; }
.a79 th, .a79 td { padding: .95rem 1.2rem; border-top: 1px solid var(--a79c-border); text-align: left; vertical-align: top; }
.a79 thead th { background: rgba(132, 164, 189, .12); color: var(--a79c-alpine); font-weight: 700; }
.a79 tbody tr:hover { background: var(--a79c-pearl); }

/* Lista de definiciones a dos columnas */
.a79-deflist { display: grid; grid-template-columns: 10rem 1fr; margin: 2rem 0 0; border-top: 1px solid var(--a79c-border); }
.a79-deflist dt, .a79-deflist dd { margin: 0; padding-block: 1rem; border-bottom: 1px solid var(--a79c-border); }
.a79-deflist dt { padding-right: 1rem; color: var(--a79c-alpine); font-weight: 700; }
.a79-deflist dd { color: var(--a79c-ink-mute); }

/* Definiciones editoriales (proposito / mision / vision) */
.a79-defs { margin: 24px 0 0; }
.a79-defs > div { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 24px; padding: 22px 0; border-top: 1px solid var(--a79c-border-soft); }
.a79-defs > div:first-child { border-top: 0; }
.a79-defs dt { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--a79c-ink-mute); padding-top: 6px; }
.a79-defs dt::before { content: "\2022"; color: var(--a79c-gold); margin-right: 8px; }
.a79-defs dd { margin: 0; }
.a79-defs dd > b { display: block; font-family: var(--a79c-serif); font-weight: 600; font-size: 16px; line-height: 1.3; color: var(--a79c-onyx); margin-bottom: 8px; }
.a79-defs dd p { margin: 0; font-size: 15.5px; color: var(--a79c-ink-soft); max-width: none; }

/* Valores numerados en romanos */
.a79-values { list-style: none; padding: 0; margin: 24px 0 0; max-width: none; counter-reset: a79v; }
.a79-values li { display: grid; grid-template-columns: 40px 190px minmax(0, 1fr); gap: 20px; padding: 16px 0; border-top: 1px solid var(--a79c-border-soft); margin: 0; align-items: baseline; max-width: none; }
.a79-values li:first-child { border-top: 0; }
.a79-values li::before { counter-increment: a79v; content: counter(a79v, upper-roman); font-family: var(--a79c-serif); color: var(--a79c-gold); font-size: 15px; }
.a79-values b { font-size: 15.5px; font-weight: 600; color: var(--a79c-onyx); }
.a79-values span { font-size: 15px; color: var(--a79c-ink-soft); line-height: 1.55; }
.a79-values em { display: block; font-style: normal; font-size: 14px; color: var(--a79c-ink-mute); margin-top: 2px; }

/* --------------------------------------------------------------------------
   8. Proceso numerado 01 / 02 / 03
   -------------------------------------------------------------------------- */

.a79-steps { display: grid; gap: 1rem; margin: 2rem 0 0; padding: 0; counter-reset: a79s; list-style: none; max-width: none; }
.a79-steps li {
  display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; align-items: start;
  padding: 1.35rem; margin: 0; max-width: none;
  border: 1px solid var(--a79c-border); border-radius: var(--a79c-radius-md);
  background: var(--a79c-white); box-shadow: var(--a79c-shadow-soft);
  counter-increment: a79s;
}
.a79-steps li::before {
  display: grid; width: 2.7rem; aspect-ratio: 1; place-items: center;
  border: 1px solid rgba(193, 138, 5, .42); border-radius: 50%;
  background: var(--a79c-gold-soft); color: var(--a79c-alpine);
  content: counter(a79s, decimal-leading-zero); font-weight: 700;
}
.a79-steps strong { display: block; margin-bottom: .25rem; color: var(--a79c-onyx); font-size: 1.02rem; }
.a79-steps span { color: var(--a79c-ink-mute); font-size: .94rem; line-height: 1.55; }

/* Alcance: incluido / no incluido */
.a79-scope { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 24px 0 0; }
.a79-scope > div { background: var(--a79c-white); border: 1px solid var(--a79c-border); border-radius: var(--a79c-radius-md); padding: 24px 26px; box-shadow: var(--a79c-shadow-soft); }
.a79-scope h3 { margin: 0 0 12px; font-size: .88rem; }
.a79-scope ul { margin: 0; font-size: 15px; max-width: none; }

/* --------------------------------------------------------------------------
   9. Preguntas frecuentes visibles
   -------------------------------------------------------------------------- */

.a79-faq + .a79-faq { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--a79c-border); }
.a79-faq h3 { margin-top: 0; }

/* --------------------------------------------------------------------------
   10. Timeline
   -------------------------------------------------------------------------- */

.a79-timeline { list-style: none; margin: 24px 0 0; padding: 0 0 0 4px; max-width: none; }
.a79-timeline li { display: grid; grid-template-columns: 58px 20px minmax(0, 1fr); gap: 0 14px; padding: 0 12px 22px 0; margin: 0; position: relative; max-width: none; }
.a79-timeline li::before { content: ""; position: absolute; left: 76px; top: 16px; bottom: 0; width: 1px; background: var(--a79c-border); }
.a79-timeline li:last-child::before { display: none; }
.a79-timeline time { font-size: 14px; font-weight: 700; color: var(--a79c-gold); padding-top: 6px; }
.a79-timeline .a79-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--a79c-gold); margin-top: 12px; position: relative; z-index: 1; }
.a79-timeline b { display: block; font-size: 15.5px; font-weight: 600; color: var(--a79c-onyx); padding-top: 4px; }
.a79-timeline p { margin: 4px 0 0; font-size: 14.5px; color: var(--a79c-ink-soft); line-height: 1.55; max-width: none; }
.a79-timeline .is-highlight { background: var(--a79c-gold-soft); border-radius: var(--a79c-radius-sm); }

/* --------------------------------------------------------------------------
   11. Sidebar
   -------------------------------------------------------------------------- */

.a79-side-card {
  padding: 1.4rem; border: 1px solid var(--a79c-border); border-radius: var(--a79c-radius-md);
  background: rgba(255, 255, 255, .84); box-shadow: var(--a79c-shadow-soft);
}
.a79 .a79-side-card h2 {
  margin: 0 0 1rem; font-family: var(--a79c-sans); font-size: .8rem; font-weight: 700;
  letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; color: var(--a79c-onyx);
  display: block;
}
.a79 .a79-side-card h2::before { display: none; }

.a79-toc ol { margin: 0; padding: 0; list-style: none; max-width: none; }
.a79-toc li { margin: 0; max-width: none; }
.a79-toc li + li { margin-top: .65rem; }
.a79-toc a {
  display: block; padding-left: .9rem; border-left: 2px solid var(--a79c-border);
  color: var(--a79c-ink-mute); font-size: .87rem; line-height: 1.45; text-decoration: none;
}
.a79-toc a:hover, .a79-toc a:focus-visible { border-color: var(--a79c-gold); color: var(--a79c-alpine); }

.a79-brief { margin: 0; padding: 0; list-style: none; max-width: none; }
.a79-brief li {
  display: grid; grid-template-columns: 6.5rem 1fr; gap: .75rem; margin: 0; max-width: none;
  padding-block: .7rem; border-top: 1px solid var(--a79c-border); font-size: .78rem; line-height: 1.45;
}
.a79-brief strong { color: var(--a79c-alpine); }
.a79-brief span { color: var(--a79c-ink-mute); }

/* Ficha de conceptos clave */
.a79-facts { margin: 0; }
.a79-facts dt { font-size: .88rem; font-weight: 700; color: var(--a79c-alpine); margin: 1.1rem 0 .2rem; }
.a79-facts dt:first-of-type { margin-top: 0; }
.a79-facts dd { margin: 0; font-size: .82rem; line-height: 1.5; color: var(--a79c-ink-mute); }

/* Tarjeta oscura de control */
.a79-guide-card {
  border-color: rgba(46, 95, 127, .25);
  background: linear-gradient(145deg, rgba(17,50,67,.98), rgba(17,17,13,.98));
  color: var(--a79c-pearl);
}
.a79 .a79-guide-card h2 { color: var(--a79c-white); }
.a79-checks { margin: 0; padding: 0; list-style: none; max-width: none; }
.a79-checks li { position: relative; padding-left: 1.25rem; margin: 0; max-width: none; color: rgba(248, 247, 244, .82); font-size: .78rem; line-height: 1.45; }
.a79-checks li + li { margin-top: .65rem; }
.a79-checks li::before { position: absolute; left: 0; top: .45em; width: .45rem; aspect-ratio: 1; border: 1px solid var(--a79c-gold); transform: rotate(45deg); content: ""; }

.a79-aside hr { border: 0; border-top: 1px solid var(--a79c-border); margin: 1.4rem 0; }

/* --------------------------------------------------------------------------
   12. Relacionados
   -------------------------------------------------------------------------- */

.a79-related { margin-top: 6rem; padding-top: 4rem; border-top: 1px solid var(--a79c-border); }
.a79-related-intro { display: flex; gap: 2rem; align-items: end; justify-content: space-between; margin-bottom: 2rem; }
.a79 .a79-related-intro h2 { margin-bottom: 0; }
.a79-related-intro p { max-width: 45ch; margin-bottom: 0; color: var(--a79c-ink-mute); font-size: .9rem; }

.a79-cards { display: grid; gap: 1.25rem; margin: 0; }
.a79-cards--3 { grid-template-columns: repeat(3, 1fr); }
.a79-cards--2 { grid-template-columns: repeat(2, 1fr); }

.a79-card {
  display: flex; min-height: 15rem; flex-direction: column; padding: 1.5rem;
  border: 1px solid var(--a79c-border); border-radius: var(--a79c-radius-md);
  background: var(--a79c-white); box-shadow: var(--a79c-shadow-soft);
  text-decoration: none; color: inherit;
}
.a79-card:hover { border-color: var(--a79c-sky); box-shadow: var(--a79c-shadow); }
.a79-card img { margin: -1.5rem -1.5rem 1.2rem; width: calc(100% + 3rem); aspect-ratio: 16/9; object-fit: cover; border-radius: var(--a79c-radius-md) var(--a79c-radius-md) 0 0; }
.a79-tag { display: block; margin-bottom: 1rem; color: var(--a79c-gold); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.a79 .a79-card h3 { margin: 0 0 .7rem; color: var(--a79c-onyx); font-family: var(--a79c-serif); font-size: 1.01rem; }
.a79-card p { margin-bottom: 1.4rem; color: var(--a79c-ink-mute); font-size: .87rem; line-height: 1.55; max-width: none; }
.a79-card-link { margin-top: auto; color: var(--a79c-lapis); font-size: .84rem; font-weight: 700; }

/* Ficha de autor */
.a79-author {
  display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 18px; align-items: center;
  background: var(--a79c-white); border: 1px solid var(--a79c-border);
  border-radius: var(--a79c-radius-md); padding: 20px 24px; margin: 2.5rem 0 0;
  box-shadow: var(--a79c-shadow-soft);
}
.a79-author img, .a79-author .a79-avatar { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; background: var(--a79c-pearl); border: 1px solid var(--a79c-border); }
.a79-author b { display: block; font-size: 15.5px; color: var(--a79c-onyx); }
.a79-author p { margin: 4px 0 0; font-size: 14px; color: var(--a79c-ink-soft); line-height: 1.5; max-width: none; }

/* --------------------------------------------------------------------------
   13. CTA de cierre
   -------------------------------------------------------------------------- */

.a79-cta {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: center;
  margin-top: 4rem; padding: clamp(2rem, 5vw, 3.2rem);
  border-radius: var(--a79c-radius-lg);
  background: var(--a79c-alpine); color: var(--a79c-pearl);
  box-shadow: var(--a79c-shadow);
}
.a79-cta::after {
  position: absolute; z-index: -1; right: -8rem; width: 24rem; aspect-ratio: 1;
  border: 1px solid rgba(193, 138, 5, .24); border-radius: 50%;
  box-shadow: 0 0 0 3rem rgba(193, 138, 5, .035); content: "";
}
.a79-cta-copy { display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; align-items: start; }
.a79-cta-icon {
  display: grid; width: 3rem; aspect-ratio: 1; place-items: center;
  border: 1px solid rgba(193, 138, 5, .55); border-radius: 50%; color: var(--a79c-gold);
}
.a79-cta-icon svg { width: 1.45rem; height: 1.45rem; stroke-width: 1.65; }
.a79 .a79-cta h2 { margin-bottom: .55rem; color: var(--a79c-white); font-size: clamp(1.28rem, 2.25vw, 1.7rem); }
.a79 .a79-cta p.a79-eyebrow { color: var(--a79c-gold); }
.a79-cta p { max-width: 57ch; margin: 0; color: rgba(248, 247, 244, .78); font-size: .92rem; line-height: 1.55; }

.a79-btn {
  display: inline-flex; min-height: 48px; gap: .65rem; align-items: center; justify-content: center;
  padding: .85rem 1.25rem; border: 1px solid transparent; border-radius: var(--a79c-radius-sm);
  font-size: .82rem; font-weight: 700; line-height: 1.2; letter-spacing: .04em;
  text-decoration: none; white-space: nowrap;
  transition: transform 180ms ease, background-color 180ms ease;
}
.a79-btn svg { width: 1rem; height: 1rem; stroke-width: 1.8; }
.a79-btn--gold { background: var(--a79c-gold); border-color: var(--a79c-gold); color: var(--a79c-onyx); }
.a79-btn--gold:hover { transform: translateY(-2px); background: #d5a21e; color: var(--a79c-onyx); }
.a79-btn--primary { background: var(--a79c-lapis); color: var(--a79c-white); }
.a79-btn--primary:hover { background: var(--a79c-alpine); color: var(--a79c-white); }
.a79-btn--ghost { border-color: var(--a79c-onyx); color: var(--a79c-onyx); background: transparent; }

.a79-dark { background: var(--a79c-onyx); color: var(--a79c-pearl); border-radius: var(--a79c-radius-lg); padding: 48px 40px; margin: 4rem 0 0; }
.a79 .a79-dark h2, .a79 .a79-dark h3 { color: var(--a79c-pearl); }
.a79-dark p { color: rgba(248, 247, 244, .82); }

/* Fuentes y revision */
.a79-sources { margin-top: 3.5rem; }
.a79-sources ul { margin: 1.5rem 0 0; padding-left: 1.25rem; font-size: .92rem; color: var(--a79c-ink-soft); }
.a79-sources li + li { margin-top: .7rem; }
.a79-sources a { overflow-wrap: anywhere; }

/* --------------------------------------------------------------------------
   14. Hub / listado
   -------------------------------------------------------------------------- */

.a79-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 2rem 0 0; }
.a79-tile { display: block; text-decoration: none; color: inherit; background: var(--a79c-white); border: 1px solid var(--a79c-border); border-radius: var(--a79c-radius-md); overflow: hidden; box-shadow: var(--a79c-shadow-soft); }
.a79-tile img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
.a79-tile > div { padding: 1.25rem 1.4rem 1.5rem; }
.a79 .a79-tile h3, .a79-tile b { display: block; font-family: var(--a79c-serif); font-size: 1rem; font-weight: 600; line-height: 1.3; color: var(--a79c-onyx); margin: .5rem 0 .6rem; }
.a79-tile p { font-size: .9rem; color: var(--a79c-ink-mute); margin: 0 0 .75rem; max-width: none; }
.a79-tile time { font-size: .78rem; color: var(--a79c-ink-mute); }
.a79-tile:hover { border-color: var(--a79c-sky); box-shadow: var(--a79c-shadow); }

.a79-filters { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.75rem 0 0; padding: 0; list-style: none; max-width: none; }
.a79-filters li { margin: 0; max-width: none; }
.a79-filters a { display: inline-flex; align-items: center; min-height: 44px; padding: .55rem 1.1rem; border: 1px solid var(--a79c-border); border-radius: 999px; font-size: .85rem; color: var(--a79c-ink-soft); text-decoration: none; background: var(--a79c-white); }
.a79-filters a[aria-current="true"] { background: var(--a79c-alpine); border-color: var(--a79c-alpine); color: var(--a79c-pearl); }

/* --------------------------------------------------------------------------
   15. Utilidades
   -------------------------------------------------------------------------- */

.a79-ornament { opacity: .14; pointer-events: none; }
.a79-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* --------------------------------------------------------------------------
   16. Variante FLOW - post simple en la columna de 70ch del tema
   -------------------------------------------------------------------------- */

.a79--flow { font-size: inherit; line-height: inherit; }
.a79--flow .a79-wrap { max-width: none; padding-inline: 0; }
.a79--flow .a79-layout { display: block; }
.a79--flow .a79-aside { display: none; }
.a79--flow p, .a79--flow ul, .a79--flow ol, .a79--flow li { max-width: none; }
.a79--flow h2 { font-size: clamp(1.05rem, 1.65vw, 1.24rem); margin: 2.6rem 0 .9rem; }
.a79--flow h3 { font-size: .95rem; }
.a79--flow .a79-cta { grid-template-columns: 1fr; margin-top: 2.75rem; }
.a79--flow table { min-width: 0; }

/* --------------------------------------------------------------------------
   17. Variante ARTICLE - diagramacion editorial completa dentro de un post
   El tema impone `.article-body { max-width: 70ch }` y emite su propio
   encabezado. Estos overrides cuelgan de :has(.a79--article), asi que solo
   afectan a los articulos que la piden; sin soporte de :has() degrada a la
   columna angosta.
   -------------------------------------------------------------------------- */

.article-body:has(> .a79--article) { max-width: none; font-size: inherit; line-height: inherit; color: inherit; }
.article-body:has(> .a79--article) > * + * { margin-top: 0; }
.article-body:has(> .a79--article) h2 { border-bottom: 0; padding-bottom: 0; }

/* El encabezado del tema adopta el tratamiento de intro de la referencia:
   perla, filete dorado superior y ornamentos geometricos a baja opacidad. */
body:has(.a79--article) .article-header {
  position: relative; isolation: isolate; overflow: hidden;
  margin-top: 1.5rem; padding: clamp(2rem, 5vw, 3.5rem) 0;
  border-top: none;
  border-radius: 0 0 var(--a79c-radius-lg) var(--a79c-radius-lg);
  background: var(--a79c-pearl);
}
body:has(.a79--article) .article-header::before,
body:has(.a79--article) .article-header::after { position: absolute; z-index: -1; content: ""; pointer-events: none; }
body:has(.a79--article) .article-header::before {
  right: -6rem; top: -8rem; width: 27rem; aspect-ratio: 1;
  border: 1px solid rgba(193, 138, 5, .22); border-radius: 50%;
  box-shadow: 0 0 0 3.5rem rgba(193, 138, 5, .035), 0 0 0 7rem rgba(46, 95, 127, .025);
}
body:has(.a79--article) .article-header::after {
  right: 3rem; bottom: -3rem; width: 12rem; height: 12rem;
  transform: rotate(45deg); border: 1px solid rgba(46, 95, 127, .13);
}

body:has(.a79--article) .article-header-inner { max-width: var(--a79c-content-max); }
body:has(.a79--article) .article-header-inner > * { max-width: var(--a79c-reading-max); }

body:has(.a79--article) .article-header .badge-category {
  display: inline-flex; gap: .55rem; align-items: center;
  border: 0; padding: 0; background: none; border-radius: 0; text-decoration: none;
  font-family: var(--a79c-sans); font-size: .76rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase; color: var(--a79c-gold); margin-bottom: 1rem;
}
body:has(.a79--article) .article-header .badge-category::before { width: 2rem; height: 1px; background: currentColor; content: ""; }
body:has(.a79--article) .article-header h1 {
  max-width: 20ch; margin-bottom: 1.25rem; color: var(--a79c-onyx);
  font-family: var(--a79c-serif); font-size: clamp(1.84rem, 4.2vw, 3rem);
  font-weight: 700; letter-spacing: -.022em; line-height: 1.06; text-wrap: balance;
}
body:has(.a79--article) .article-lead {
  max-width: 65ch; margin-bottom: 1.5rem; color: var(--a79c-ink-soft);
  font-size: clamp(1.12rem, 2vw, 1.38rem); line-height: 1.52;
}
body:has(.a79--article) .article-byline { font-size: .88rem; color: var(--a79c-ink-mute); gap: .65rem 1.25rem; align-items: center; }
body:has(.a79--article) .article-byline .article-author { color: var(--a79c-alpine); font-weight: 700; }

/* La portada la emite el tema desde cover_asset_id: la alineamos con la
   columna de contenido y le damos 16:9, como el hero de la referencia. */
body:has(.a79--article) .article-cover {
  width: min(var(--a79c-content-max), calc(100% - var(--a79-gutter, 56px) * 2));
  margin: 2rem auto 0;
}
body:has(.a79--article) .article-cover img {
  width: 100%; height: auto; max-height: none; aspect-ratio: 16 / 9; object-fit: cover;
  border-radius: var(--a79c-radius-lg); box-shadow: var(--a79c-shadow);
}

.a79--article .a79-wrap { padding-inline: 0; }
.a79--article > .a79-layout:first-child, .a79--article > .a79-wrap:first-child { margin-top: 0; }
.a79--article .a79-band--tight { margin-top: 0; }

/* --------------------------------------------------------------------------
   18. Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1000px) {
  .a79-layout { grid-template-columns: minmax(0, var(--a79c-reading-max)); }
  .a79-aside { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); order: -1; }
  .a79-toc { grid-column: 1 / -1; }
  .a79-grid, .a79-cards--3 { grid-template-columns: repeat(2, 1fr); }
  .a79-cards--3 > :last-child { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .a79 { font-size: 16px; }
  .a79-wrap { padding-inline: 20px; }
  .a79-band { margin-top: 4rem; }
  .a79-layout { gap: 3rem; }
  .a79-layout > div > section + section { margin-top: 3.5rem; padding-top: 2.5rem; }
  .a79-aside { grid-template-columns: 1fr; }
  .a79-toc { grid-column: auto; }
  .a79-deflist { grid-template-columns: 1fr; }
  .a79-deflist dt { padding-bottom: .2rem; border-bottom: 0; }
  .a79-deflist dd { padding-top: 0; }
  .a79-grid, .a79-cards--3, .a79-cards--2, .a79-scope { grid-template-columns: 1fr; }
  .a79-cards--3 > :last-child { grid-column: auto; }
  .a79-defs > div, .a79-values li { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .a79-values li::before { display: none; }
  .a79-related-intro { display: block; }
  .a79-related-intro p { margin-top: .75rem; }
  .a79-cta { grid-template-columns: 1fr; }
  .a79-btn { width: 100%; }
  .a79-timeline li { grid-template-columns: 52px 16px minmax(0, 1fr); }
  .a79-timeline li::before { left: 62px; }
  body:has(.a79--article) .article-header { padding: 1.6rem 0; }
}

@media (max-width: 430px) {
  .a79-steps li { grid-template-columns: 1fr; }
  .a79-cta-copy { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .a79 *, .a79 *::before, .a79 *::after {
    transition-duration: .01ms !important; animation-duration: .01ms !important;
  }
}

@media print {
  .a79-aside, .a79-cta { display: none; }
  .a79-layout { display: block; }
  .a79 a { color: inherit; }
}

/* --------------------------------------------------------------------------
   19. Servicio: Asesoría especializada
   Composición exclusiva de `servicios.asesoria`, aislada para que las demás
   páginas editoriales sigan usando el arquetipo general.
   -------------------------------------------------------------------------- */
.a79--service-advisory {
  overflow: hidden;
  background: var(--a79c-pearl);
  color: var(--a79c-onyx);
}

.a79--service-advisory .a79-advisory-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 28px 0 72px;
  background:
    radial-gradient(circle at 77% 6%, rgba(132, 164, 189, .07), transparent 26rem),
    var(--a79c-pearl);
}
.a79--service-advisory .a79-advisory-hero .a79-wrap { position: relative; }
.a79--service-advisory .a79-advisory-hero .a79-wrap > :not(.a79-advisory-ornament) {
  position: relative;
  z-index: 1;
}
.a79--service-advisory .a79-advisory-ornament {
  position: absolute;
  z-index: 0;
  top: -42px;
  right: -68px;
  width: min(31vw, 360px);
  height: auto;
  color: var(--a79c-sky);
  opacity: .22;
  pointer-events: none;
}
.a79--service-advisory .a79-advisory-crumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 clamp(42px, 5vw, 64px);
  color: var(--a79c-lapis);
  font: 700 10px/1.35 var(--a79c-sans);
  letter-spacing: .16em;
  text-transform: uppercase;
}
.a79--service-advisory .a79-advisory-crumb a { color: var(--a79c-lapis); text-decoration: none; }
.a79--service-advisory .a79-advisory-crumb a span { margin-right: 7px; color: var(--a79c-gold); font-size: 17px; line-height: 0; }
.a79--service-advisory .a79-advisory-crumb > span[aria-hidden="true"] { color: var(--a79c-gold); }
.a79--service-advisory .a79-advisory-crumb [aria-current="page"] { color: var(--a79c-lapis); }
.a79--service-advisory .a79-advisory-hero h1 {
  max-width: 1010px;
  margin: 0;
  color: var(--a79c-onyx);
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(46px, 5.8vw, 76px);
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.04em;
  text-wrap: wrap;
}
.a79--service-advisory .a79-advisory-tagline {
  max-width: none;
  margin: 25px 0 31px;
  color: var(--a79c-gold);
  font-family: var(--a79c-trad);
  font-size: clamp(27px, 2.55vw, 34px);
  font-style: italic;
  font-weight: 600;
  line-height: 1.14;
}
.a79--service-advisory .a79-advisory-dek {
  max-width: 61ch;
  margin: 0;
  color: #33342f;
  font: 400 16px/1.75 var(--a79c-sans);
}

.a79--service-advisory .a79-advisory-scope { padding-top: 4px; padding-bottom: 58px; }
.a79--service-advisory .a79-advisory-kicker {
  margin: 0 0 18px;
  color: var(--a79c-gold);
  font: 700 11px/1.35 var(--a79c-sans);
  letter-spacing: .17em;
  text-transform: uppercase;
}
.a79--service-advisory .a79-advisory-benefits {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  max-width: none;
  list-style: none;
}
.a79--service-advisory .a79-advisory-benefits li {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 111px;
  max-width: none;
  margin: 0;
  padding: 25px 30px 25px 54px;
  border-bottom: 1px solid rgba(132, 164, 189, .62);
  color: #33342f;
  font: 400 14px/1.72 var(--a79c-sans);
}
.a79--service-advisory .a79-advisory-benefits li::before {
  position: absolute;
  left: 17px;
  top: 50%;
  color: var(--a79c-gold);
  content: "—";
  font: 600 20px/1 var(--a79c-trad);
  transform: translateY(-50%);
}
.a79--service-advisory .a79-advisory-benefits li:nth-child(odd) { border-right: 1px solid rgba(132, 164, 189, .62); }
.a79--service-advisory .a79-advisory-benefits li:nth-last-child(-n + 2) { border-bottom: 0; }

.a79--service-advisory .a79-advisory-editorial {
  padding: 46px 0 53px;
  background: rgba(238, 235, 226, .58);
}
.a79--service-advisory .a79-advisory-editorial-grid {
  display: grid;
  grid-template-columns: minmax(0, .96fr) minmax(0, 1fr);
  gap: clamp(34px, 5vw, 60px);
  align-items: center;
}
.a79--service-advisory .a79-advisory-editorial-copy {
  padding-left: 32px;
  border-left: 2px solid var(--a79c-gold);
}
.a79--service-advisory .a79-advisory-editorial-copy p {
  max-width: none;
  margin: 0;
  color: #2d2e2a;
  font: 400 14px/1.78 var(--a79c-sans);
}
.a79--service-advisory .a79-advisory-editorial-copy p + p { margin-top: 22px; }
.a79--service-advisory .a79-advisory-editorial-media {
  width: 100%;
  margin: 0;
  overflow: hidden;
  background: var(--a79c-alpine);
  aspect-ratio: 1.43 / 1;
}
.a79--service-advisory .a79-advisory-editorial-media img {
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
  object-position: center;
}

.a79--service-advisory .a79-advisory-cta-section { padding-top: 52px; padding-bottom: 43px; }
.a79--service-advisory .a79-advisory-cta {
  position: relative;
  isolation: isolate;
  display: flex;
  min-height: 92px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  overflow: hidden;
  padding: 14px 28px 12px;
  border-radius: 7px;
  background: linear-gradient(115deg, #0d2d3d, var(--a79c-alpine));
  text-align: center;
}
.a79--service-advisory .a79-advisory-cta::after {
  position: absolute;
  z-index: -1;
  inset: 0 0 0 auto;
  width: 34%;
  opacity: .42;
  content: "";
  background:
    linear-gradient(30deg, transparent 49.7%, rgba(132, 164, 189, .58) 50%, transparent 50.3%) 0 0 / 112px 96px,
    linear-gradient(-30deg, transparent 49.7%, rgba(132, 164, 189, .58) 50%, transparent 50.3%) 0 0 / 112px 96px;
}
.a79--service-advisory .a79-advisory-cta-button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 13px;
  padding: 11px 31px;
  border-radius: 6px;
  background: linear-gradient(135deg, #d39a0a, var(--a79c-gold));
  box-shadow: 0 7px 18px rgba(0, 0, 0, .18);
  color: var(--a79c-white);
  font: 700 12px/1.15 var(--a79c-sans);
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .18s ease, background-color .18s ease;
}
.a79--service-advisory .a79-advisory-cta-button:hover {
  background: #dca923;
  color: var(--a79c-white);
  transform: translateY(-2px);
}
.a79--service-advisory .a79-advisory-cta-button span { font-size: 16px; line-height: 1; }
.a79--service-advisory .a79-advisory-cta p {
  max-width: none;
  margin: 7px 0 0;
  color: rgba(248, 247, 244, .86);
  font: 400 12px/1.35 var(--a79c-sans);
}

.a79--service-advisory .a79-advisory-next {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 27px;
  padding-bottom: 41px;
  border-top: 1px solid rgba(132, 164, 189, .75);
}
.a79--service-advisory .a79-advisory-next > span {
  color: var(--a79c-lapis);
  font: 700 10px/1.35 var(--a79c-sans);
  letter-spacing: .17em;
  text-transform: uppercase;
}
.a79--service-advisory .a79-advisory-next a {
  display: inline-flex;
  align-items: center;
  gap: 17px;
  color: var(--a79c-onyx);
  font: 600 clamp(23px, 2.45vw, 32px)/1.16 "Playfair Display", Georgia, serif;
  text-decoration: none;
}
.a79--service-advisory .a79-advisory-next a:hover { color: var(--a79c-lapis); }
.a79--service-advisory .a79-advisory-next i { color: var(--a79c-gold); font-family: var(--a79c-sans); font-size: 20px; font-style: normal; }

@media (max-width: 850px) {
  .a79--service-advisory .a79-advisory-ornament { right: -154px; width: 360px; opacity: .16; }
  .a79--service-advisory .a79-advisory-benefits { grid-template-columns: 1fr; }
  .a79--service-advisory .a79-advisory-benefits li,
  .a79--service-advisory .a79-advisory-benefits li:nth-last-child(-n + 2) { border-right: 0; border-bottom: 1px solid rgba(132, 164, 189, .62); }
  .a79--service-advisory .a79-advisory-benefits li:last-child { border-bottom: 0; }
  .a79--service-advisory .a79-advisory-editorial-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .a79--service-advisory .a79-advisory-hero { padding: 22px 0 49px; }
  .a79--service-advisory .a79-advisory-ornament { display: none; }
  .a79--service-advisory .a79-advisory-crumb { gap: 7px; margin-bottom: 34px; font-size: 9px; letter-spacing: .12em; }
  .a79--service-advisory .a79-advisory-hero h1 { font-size: clamp(40px, 12vw, 54px); }
  .a79--service-advisory .a79-advisory-tagline { margin: 19px 0 24px; font-size: 26px; }
  .a79--service-advisory .a79-advisory-dek { font-size: 15px; line-height: 1.68; }
  .a79--service-advisory .a79-advisory-scope { padding-bottom: 40px; }
  .a79--service-advisory .a79-advisory-kicker { margin-bottom: 12px; font-size: 10px; }
  .a79--service-advisory .a79-advisory-benefits li { min-height: 0; padding: 19px 13px 19px 42px; font-size: 13px; line-height: 1.62; }
  .a79--service-advisory .a79-advisory-benefits li::before { left: 12px; font-size: 18px; }
  .a79--service-advisory .a79-advisory-editorial { padding: 35px 0 39px; }
  .a79--service-advisory .a79-advisory-editorial-grid { gap: 28px; }
  .a79--service-advisory .a79-advisory-editorial-copy { padding-left: 20px; }
  .a79--service-advisory .a79-advisory-editorial-copy p { font-size: 13px; line-height: 1.7; }
  .a79--service-advisory .a79-advisory-cta-section { padding-top: 32px; padding-bottom: 31px; }
  .a79--service-advisory .a79-advisory-cta { min-height: 0; padding: 17px 17px 15px; }
  .a79--service-advisory .a79-advisory-cta-button { width: 100%; min-height: 47px; padding-inline: 14px; font-size: 10px; }
  .a79--service-advisory .a79-advisory-cta p { font-size: 11px; }
  .a79--service-advisory .a79-advisory-next { align-items: flex-start; flex-direction: column; gap: 13px; padding-top: 23px; padding-bottom: 31px; }
  .a79--service-advisory .a79-advisory-next a { gap: 11px; font-size: 25px; }
}
