/* ==========================================================================
   AdaContable · landing.css — home v3 «Libro de AdaContable»

   Solo se carga en la home (block extra_css). Reutiliza tokens, botones,
   header, folio, sello, pasos, credencial, FAQ y contacto de home.css.
   Aquí viven las piezas nuevas:

     1. Portada (ajustes del hero)
     2. Índice de servicios
     3. Capítulos (estructura común)
     4. Piezas visuales por capítulo (.ac-v-*)
     5. Honorarios
     6. Principios (sobre Adanais)
     7. FAQ de la home
     8. Responsive
   ========================================================================== */

/* 1. Portada --------------------------------------------------------------- */
.ac-cover__title {
  font-size: clamp(2.5rem, 5.2vw, 4.9rem);
  line-height: 1;
}

.ac-cover__byline {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 480px;
  margin-top: 36px;
  padding-top: 24px;
  border-top: 1px solid var(--ac-line);
}

.ac-cover__mono {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--ac-rose);
  color: var(--ac-paper);
  font: 400 1.25rem/1 var(--ac-serif);
  letter-spacing: -0.04em;
  box-shadow: 0 0 0 4px var(--ac-paper), 0 0 0 5px var(--ac-line-strong);
}

.ac-cover__mono em {
  font-style: italic;
}

/* Firma y sello van a la derecha: la nota de documentos cae sobre el hueco. */
.ac-cover .ac-folio__foot {
  justify-content: flex-end;
  gap: 18px;
}

.ac-cover .ac-note-card {
  left: -7%;
  bottom: -5%;
}

.ac-cover__byline strong {
  display: block;
  font: 400 1.15rem/1.2 var(--ac-serif);
  color: var(--ac-rose);
}

.ac-cover__byline p span {
  display: block;
  margin-top: 2px;
  font-size: 0.9rem;
  color: var(--ac-muted);
}

/* 2. Índice de servicios --------------------------------------------------- */
.ac-toc {
  overflow: clip;
  background:
    radial-gradient(70% 55% at 100% 0%, rgba(154, 47, 99, 0.38), transparent 62%),
    radial-gradient(55% 45% at 0% 100%, rgba(184, 137, 62, 0.1), transparent 62%),
    var(--ac-plum);
}

.ac-toc__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.72fr);
  gap: clamp(40px, 5vw, 80px);
  align-items: start;
}

.ac-toc__list {
  list-style: none;
  border-top: 1px solid var(--ac-line-light);
}

.ac-toc__link {
  position: relative;
  display: grid;
  grid-template-columns: 64px minmax(0, auto) minmax(24px, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding: 24px 0;
  border-bottom: 1px solid var(--ac-line-light);
  color: inherit;
  text-decoration: none;
}

.ac-toc__link::before {
  content: "";
  position: absolute;
  inset: 0 calc(-1 * min(var(--ac-gutter), 24px));
  background: linear-gradient(90deg, rgba(154, 47, 99, 0), rgba(154, 47, 99, 0.26) 35%, rgba(154, 47, 99, 0));
  opacity: 0;
  transition: opacity 0.5s var(--ac-ease);
  pointer-events: none;
}

.ac-toc__link:hover::before,
.ac-toc__link:focus-visible::before {
  opacity: 1;
}

.ac-toc__link > * {
  position: relative;
}

.ac-toc__roman {
  font: italic 400 1.7rem/1 var(--ac-serif);
  color: var(--ac-gold-light);
}

.ac-toc__name {
  display: block;
  font: 400 clamp(1.25rem, 2vw, 1.6rem)/1.2 var(--ac-serif);
  color: var(--ac-paper);
  transition: color 0.4s var(--ac-ease);
}

.ac-toc__tagline {
  display: block;
  margin-top: 4px;
  font-size: 0.92rem;
  color: var(--ac-text-muted);
}

.ac-toc__leader {
  align-self: center;
  border-bottom: 1px dotted rgba(230, 179, 203, 0.35);
}

.ac-toc__cap {
  font: italic 400 1rem/1 var(--ac-serif);
  color: var(--ac-rose-soft);
  white-space: nowrap;
  transition: transform 0.45s var(--ac-ease);
}

.ac-toc__link:hover .ac-toc__name {
  color: var(--ac-rose-soft);
}

.ac-toc__link:hover .ac-toc__cap {
  transform: translateX(-6px);
}

.ac-toc__aside {
  position: sticky;
  top: calc(var(--ac-header-h) + 32px);
  overflow: hidden;
  padding: clamp(28px, 3vw, 40px);
  border-radius: var(--ac-radius-lg);
  background:
    radial-gradient(120% 80% at 0% 0%, #b8447f 0%, transparent 55%),
    linear-gradient(160deg, var(--ac-rose), #6a1d43);
  color: var(--ac-paper);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.2),
    0 40px 80px -40px rgba(0, 0, 0, 0.7);
}

.ac-toc__aside::before {
  content: "";
  position: absolute;
  right: -45%;
  bottom: -45%;
  width: 110%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: repeating-radial-gradient(circle, rgba(247, 242, 232, 0.09) 0 1px, transparent 1px 11px);
  pointer-events: none;
}

.ac-toc__aside > * {
  position: relative;
}

.ac-toc__aside-kicker {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #f6d9e6;
}

.ac-toc__aside-title {
  margin: 14px 0;
  font-size: clamp(1.5rem, 2.2vw, 1.85rem);
  line-height: 1.15;
  color: var(--ac-paper);
}

.ac-toc__aside-title em {
  color: #f6d9e6;
}

.ac-toc__aside p:not(.ac-toc__aside-kicker) {
  margin-bottom: 26px;
  font-size: 0.97rem;
  color: rgba(247, 242, 232, 0.88);
}

/* 3. Capítulos ------------------------------------------------------------- */
.ac-chapter {
  overflow: clip;
}

.ac-chapter__numeral {
  position: absolute;
  top: clamp(24px, 4vw, 56px);
  right: -0.04em;
  font: italic 400 clamp(11rem, 28vw, 26rem)/0.8 var(--ac-serif);
  letter-spacing: -0.04em;
  color: transparent;
  -webkit-text-stroke: 1px var(--ac-line-strong);
  opacity: 0.55;
  pointer-events: none;
  user-select: none;
}

.ac-section--plum .ac-chapter__numeral {
  -webkit-text-stroke-color: rgba(230, 179, 203, 0.22);
}

.ac-chapter--flip .ac-chapter__numeral {
  right: auto;
  left: -0.04em;
}

.ac-chapter__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
  gap: clamp(48px, 7vw, 112px);
  align-items: center;
}

.ac-chapter--flip .ac-chapter__copy {
  order: 2;
}

.ac-chapter__mark {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  margin-bottom: 26px;
}

.ac-chapter__cap {
  padding: 8px 14px;
  border: 1px solid var(--ac-line-strong);
  border-radius: 999px;
  font: italic 400 1rem/1 var(--ac-serif);
  color: var(--ac-num);
}

.ac-section--plum .ac-chapter__cap {
  border-color: rgba(230, 179, 203, 0.3);
}

.ac-chapter__kicker {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ac-accent);
}

.ac-chapter__kicker::before {
  content: "";
  width: 32px;
  height: 1px;
  background: var(--ac-gold);
}

.ac-chapter__title {
  font-size: clamp(2.15rem, 4vw, 3.5rem);
  line-height: 1.04;
  letter-spacing: -0.025em;
}

.ac-section--plum .ac-chapter__title em {
  color: var(--ac-rose-soft);
}

.ac-chapter__tagline {
  margin-top: 22px;
  font: italic 400 clamp(1.2rem, 1.7vw, 1.42rem)/1.35 var(--ac-serif);
  color: var(--ac-accent);
}

.ac-chapter__lead {
  max-width: 56ch;
  margin-top: 14px;
}

.ac-chapter__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 28px;
  margin-top: 28px;
  list-style: none;
  border-top: 1px solid var(--ac-border);
}

.ac-chapter__list li {
  position: relative;
  padding: 14px 0 14px 30px;
  border-bottom: 1px solid var(--ac-border);
  font-size: 0.97rem;
  line-height: 1.5;
}

.ac-chapter__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 15px;
  display: grid;
  place-items: center;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  background: rgba(154, 47, 99, 0.11);
  color: var(--ac-accent);
  font-size: 0.66rem;
  font-weight: 700;
}

.ac-section--plum .ac-chapter__list li::before {
  background: rgba(230, 179, 203, 0.14);
}

.ac-chapter__note {
  max-width: 56ch;
  margin-top: 24px;
  padding: 14px 18px;
  border-left: 2px solid var(--ac-gold);
  background: rgba(184, 137, 62, 0.09);
  border-radius: 0 var(--ac-radius) var(--ac-radius) 0;
  font-size: 0.95rem;
}

.ac-section--plum .ac-chapter__note {
  background: rgba(217, 178, 106, 0.08);
}

.ac-chapter__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 28px;
  margin-top: 36px;
}

.ac-chapter__visual {
  --ac-text: var(--ac-rose-ink);
  --ac-heading: var(--ac-rose);
  --ac-accent: var(--ac-rose);
  position: relative;
  display: grid;
  place-items: center;
  min-height: 500px;
}

/* 3b. Índice lateral de capítulos ------------------------------------------ */
/* Solo en pantallas con margen libre a la izquierda del contenedor. */
.ac-rail {
  display: none;
}

@media (min-width: 1360px) {
  .ac-rail {
    position: fixed;
    top: 50%;
    left: 20px;
    z-index: 40;
    display: block;
    padding: 10px 8px;
    border: 1px solid var(--ac-line);
    border-radius: 999px;
    background: rgba(247, 242, 232, 0.88);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: 0 18px 40px -24px rgba(42, 15, 30, 0.5);
    opacity: 0;
    visibility: hidden;
    transform: translate(-12px, -50%);
    transition:
      opacity 0.4s var(--ac-ease),
      transform 0.4s var(--ac-ease),
      visibility 0s linear 0.4s;
  }

  .ac-rail.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translate(0, -50%);
    transition:
      opacity 0.4s var(--ac-ease),
      transform 0.4s var(--ac-ease),
      visibility 0s;
  }
}

.ac-rail__list {
  display: grid;
  gap: 4px;
  list-style: none;
}

.ac-rail__link {
  position: relative;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: var(--ac-rose);
  text-decoration: none;
  transition: background-color 0.3s var(--ac-ease), color 0.3s var(--ac-ease);
}

.ac-rail__roman {
  font: italic 400 0.82rem/1 var(--ac-serif);
}

.ac-rail__label {
  position: absolute;
  left: calc(100% + 14px);
  top: 50%;
  padding: 6px 12px;
  border-radius: var(--ac-radius);
  background: var(--ac-plum);
  color: var(--ac-paper);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  white-space: nowrap;
  opacity: 0;
  transform: translate(-6px, -50%);
  transition: opacity 0.25s var(--ac-ease), transform 0.25s var(--ac-ease);
  pointer-events: none;
}

.ac-rail__link:hover,
.ac-rail__link:focus-visible {
  background: rgba(154, 47, 99, 0.1);
}

.ac-rail__link:hover .ac-rail__label,
.ac-rail__link:focus-visible .ac-rail__label {
  opacity: 1;
  transform: translate(0, -50%);
}

.ac-rail__link.is-active {
  background: var(--ac-rose);
  color: var(--ac-paper);
}

/* 4. Piezas visuales ------------------------------------------------------- */
.ac-v-label {
  font-size: 0.64rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ac-rose);
}

/* 4.1 Libro contable */
.ac-v-book {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(580px, 100%);
  background: var(--ac-white);
  border-radius: 6px;
  box-shadow: var(--ac-shadow-paper), 0 0 0 1px var(--ac-line);
  transform: perspective(1600px) rotateX(6deg) rotate(-2deg);
}

.ac-v-book::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 48px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, rgba(94, 27, 62, 0.1) 42%, rgba(94, 27, 62, 0.2) 50%, rgba(94, 27, 62, 0.1) 58%, transparent);
  pointer-events: none;
}

.ac-v-book__page {
  min-height: 380px;
  padding: 30px 26px 26px;
  background-image: repeating-linear-gradient(to bottom, transparent 0 31px, rgba(154, 47, 99, 0.06) 31px 32px);
}

.ac-v-book__cols,
.ac-v-book__rows li,
.ac-v-book__total {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 0.7fr) minmax(0, 0.7fr);
  gap: 10px;
  align-items: center;
}

.ac-v-book__cols {
  margin: 16px 0 6px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ac-line-strong);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ac-muted);
}

.ac-v-book__rows {
  list-style: none;
}

.ac-v-book__rows li {
  height: 34px;
  font: 400 0.92rem/1 var(--ac-serif);
  color: var(--ac-rose-ink);
}

.ac-v-book__rows i,
.ac-v-book__total i {
  height: 6px;
  border-radius: 3px;
  background: rgba(154, 47, 99, 0.3);
}

.ac-v-book__rows li:nth-child(2) i:not(.is-empty) { width: 64%; }
.ac-v-book__rows li:nth-child(3) i:not(.is-empty) { width: 82%; }
.ac-v-book__rows li:nth-child(4) i:not(.is-empty) { width: 40%; }
.ac-v-book__rows li:nth-child(5) i:not(.is-empty) { width: 56%; }

.ac-v-book__rows i.is-empty {
  height: 1px;
  border-radius: 0;
  background: none;
  border-bottom: 1px dotted var(--ac-line-strong);
}

.ac-v-book__total {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 3px double var(--ac-line-strong);
  font: italic 400 0.92rem/1 var(--ac-serif);
  color: var(--ac-rose);
}

.ac-v-book__total i {
  background: var(--ac-rose);
}

.ac-v-book__page--right .ac-v-label {
  padding-right: 32px;
}

.ac-v-book__fs {
  margin-top: 16px;
  list-style: none;
}

.ac-v-book__fs li {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 15px 0;
  border-bottom: 1px solid var(--ac-line);
  font: 400 0.95rem/1.2 var(--ac-serif);
  color: var(--ac-rose-ink);
}

.ac-v-book__fs b {
  height: 10px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--ac-rose), #c0538a);
  transform-origin: left;
  transition: transform 1.3s var(--ac-ease-out) 0.35s;
}

.ac-v-book__fs li:nth-child(1) b { width: 86%; }
.ac-v-book__fs li:nth-child(2) b { width: 48%; background: linear-gradient(90deg, var(--ac-gold), #d9b26a); }
.ac-v-book__fs li:nth-child(3) b { width: 38%; }
.ac-v-book__fs li:nth-child(4) b { width: 60%; background: linear-gradient(90deg, var(--ac-rose-ink), var(--ac-rose)); }

.ac-js .ac-chapter__visual:not(.is-visible) .ac-v-book__fs b {
  transform: scaleX(0);
}

.ac-v-book__close {
  margin-top: 22px;
  font: 400 1.35rem/1.2 var(--ac-serif);
  color: var(--ac-rose);
}

.ac-v-book__close em {
  font-style: italic;
}

.ac-v-book__ribbon {
  position: absolute;
  top: -10px;
  right: 4%;
  width: 20px;
  height: 96px;
  background: linear-gradient(180deg, #7a2350, var(--ac-rose));
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 86%, 0 100%);
  filter: drop-shadow(0 6px 6px rgba(94, 27, 62, 0.3));
}

/* 4.2 Ciclo de declaraciones (sobre berenjena) */
.ac-v-cycle {
  --size: 460px;
  --orbit: calc(var(--size) / 2 - 58px);
  position: relative;
  width: var(--size);
  height: var(--size);
  max-width: 100%;
}

.ac-v-cycle__ring,
.ac-v-cycle__sweep {
  position: absolute;
  inset: 58px;
  border-radius: 50%;
}

.ac-v-cycle__ring {
  border: 1px solid rgba(230, 179, 203, 0.3);
}

.ac-v-cycle__ring::after {
  content: "";
  position: absolute;
  inset: 18px;
  border: 1px dashed rgba(217, 178, 106, 0.25);
  border-radius: 50%;
}

.ac-v-cycle__sweep {
  background: conic-gradient(from 0deg, transparent 0 72%, rgba(230, 179, 203, 0.7) 100%);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
  animation: ac-spin 10s linear infinite;
}

.ac-v-cycle__center {
  position: absolute;
  inset: 31%;
  display: grid;
  place-content: center;
  gap: 8px;
  border-radius: 50%;
  background:
    repeating-linear-gradient(to bottom, transparent 0 21px, rgba(154, 47, 99, 0.06) 21px 22px),
    var(--ac-paper);
  text-align: center;
  box-shadow:
    0 0 0 8px rgba(154, 47, 99, 0.18),
    0 30px 60px -20px rgba(0, 0, 0, 0.6);
}

.ac-v-cycle__center strong {
  font: 400 1.3rem/1.15 var(--ac-serif);
  color: var(--ac-rose);
}

.ac-v-cycle__center em {
  font-style: italic;
}

.ac-v-cycle__nodes {
  list-style: none;
}

.ac-v-cycle__nodes li {
  --a: -90deg;
  position: absolute;
  left: 50%;
  top: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 116px;
  margin: -34px 0 0 -58px;
  font: 400 1.02rem/1.1 var(--ac-serif);
  color: var(--ac-paper);
  text-align: center;
  text-shadow: 0 0 6px var(--ac-plum), 0 0 14px var(--ac-plum);
  transform: rotate(var(--a)) translate(var(--orbit)) rotate(calc(-1 * var(--a)));
}

.ac-v-cycle__nodes li:nth-child(2) { --a: -18deg; }
.ac-v-cycle__nodes li:nth-child(3) { --a: 54deg; }
.ac-v-cycle__nodes li:nth-child(4) { --a: 126deg; }
.ac-v-cycle__nodes li:nth-child(5) { --a: 198deg; }

.ac-v-cycle__nodes span {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--ac-rose);
  font: italic 400 0.95rem/1 var(--ac-serif);
  color: var(--ac-paper);
  box-shadow: 0 0 0 6px rgba(154, 47, 99, 0.28), 0 10px 20px -8px rgba(0, 0, 0, 0.6);
}

.ac-v-cycle__nodes li:nth-child(4) span {
  background: var(--ac-gold-light);
  color: var(--ac-plum);
}

/* 4.3 Certificado */
.ac-v-cert {
  position: relative;
  display: grid;
  justify-items: center;
  width: min(450px, 100%);
}

.ac-v-cert__back {
  position: absolute;
  inset: 4% 2% 20% 8%;
  background: var(--ac-paper-2);
  border: 1px solid var(--ac-line);
  border-radius: var(--ac-radius);
  transform: rotate(6deg);
}

.ac-v-cert__doc {
  position: relative;
  width: 100%;
  padding: 14px;
  background: var(--ac-white);
  border-radius: var(--ac-radius);
  box-shadow: var(--ac-shadow-paper), 0 0 0 1px var(--ac-line);
  transform: rotate(-2deg);
}

.ac-v-cert__frame {
  position: relative;
  overflow: hidden;
  padding: 34px 30px 28px;
  border: 1px solid var(--ac-line-strong);
  box-shadow: inset 0 0 0 4px var(--ac-white), inset 0 0 0 5px var(--ac-line);
}

.ac-v-cert__frame::before {
  content: "";
  position: absolute;
  top: -120px;
  right: -120px;
  width: 260px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: repeating-radial-gradient(circle, rgba(154, 47, 99, 0.07) 0 1px, transparent 1px 9px);
  pointer-events: none;
}

.ac-v-cert__title {
  position: relative;
  margin-top: 12px;
  font: 400 2.05rem/1.1 var(--ac-serif);
  color: var(--ac-rose);
}

.ac-v-cert__title em {
  font-style: italic;
}

.ac-v-cert__lines {
  display: grid;
  gap: 15px;
  margin: 26px 0 32px;
}

.ac-v-cert__lines span {
  height: 1px;
  background: var(--ac-line-strong);
}

.ac-v-cert__lines .is-short { width: 72%; }
.ac-v-cert__lines .is-shorter { width: 44%; }

.ac-v-cert__foot {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}

.ac-v-cert__signature {
  display: block;
  padding: 0 18px 6px 0;
  border-bottom: 1px solid var(--ac-rose-ink);
  font: italic 400 1.95rem/1 var(--ac-serif);
  color: var(--ac-rose);
  transform: rotate(-4deg);
  transform-origin: left bottom;
}

.ac-v-cert__role {
  display: block;
  margin-top: 10px;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ac-muted);
}

.ac-v-cert__rosette {
  position: relative;
  display: grid;
  place-items: center;
  flex: none;
  width: 94px;
  height: 94px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #f3dca6, var(--ac-gold) 55%, #8a6420);
  color: var(--ac-plum);
  font: 400 1.6rem/1 var(--ac-serif);
  box-shadow:
    0 12px 22px -10px rgba(138, 100, 32, 0.7),
    inset 0 0 0 1px rgba(255, 255, 255, 0.35);
  transform: rotate(-8deg);
}

.ac-v-cert__rosette::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px dashed rgba(42, 15, 30, 0.4);
  border-radius: 50%;
}

.ac-v-cert__rosette em {
  font-style: italic;
}

.ac-v-cert__uses {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 30px;
  list-style: none;
}

.ac-v-cert__uses li {
  padding: 7px 15px;
  border: 1px solid var(--ac-line-strong);
  border-radius: 999px;
  background: var(--ac-white);
  font: italic 400 0.98rem/1.2 var(--ac-serif);
  color: var(--ac-rose);
}

/* 4.4 Ruta de formalización */
.ac-v-route {
  width: min(460px, 100%);
  padding: 34px 34px 28px;
  background:
    repeating-linear-gradient(to bottom, transparent 0 43px, rgba(154, 47, 99, 0.04) 43px 44px),
    var(--ac-white);
  border: 1px solid var(--ac-line);
  border-radius: var(--ac-radius-lg);
  box-shadow: var(--ac-shadow-paper);
  transform: rotate(1.5deg);
}

.ac-v-route__title {
  margin: 10px 0 20px;
  font: 400 1.75rem/1.15 var(--ac-serif);
  color: var(--ac-rose);
}

.ac-v-route__title em {
  font-style: italic;
}

.ac-v-route__steps {
  position: relative;
  list-style: none;
}

.ac-v-route__steps::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  bottom: 22px;
  border-left: 2px dashed var(--ac-line-strong);
}

.ac-v-route__steps li {
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 11px 0;
}

.ac-v-route__pin {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  flex: none;
  width: 38px;
  height: 38px;
  border: 1px solid var(--ac-rose);
  border-radius: 50%;
  background: var(--ac-white);
  font: italic 400 1rem/1 var(--ac-serif);
  color: var(--ac-rose);
}

.ac-v-route__steps li:last-child .ac-v-route__pin {
  background: var(--ac-rose);
  color: var(--ac-paper);
  box-shadow: 0 0 0 6px rgba(154, 47, 99, 0.12);
}

.ac-v-route__steps strong {
  display: block;
  font: 400 1.15rem/1.2 var(--ac-serif);
  color: var(--ac-rose-ink);
}

.ac-v-route__steps small {
  display: block;
  margin-top: 2px;
  font-size: 0.85rem;
  color: var(--ac-muted);
}

/* 4.5 Expediente SENIAT (sobre berenjena) */
.ac-v-file {
  position: relative;
  width: min(460px, 100%);
  padding-top: 36px;
}

.ac-v-file__tabs {
  position: absolute;
  top: 0;
  left: 18px;
  z-index: 2;
  display: flex;
  gap: 4px;
}

.ac-v-file__tabs span {
  padding: 9px 16px 12px;
  border-radius: 6px 6px 0 0;
  background: #e6d6bd;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ac-rose-ink);
}

.ac-v-file__tabs .is-active {
  background: var(--ac-paper);
  color: var(--ac-rose);
}

.ac-v-file__body {
  position: relative;
  z-index: 2;
  padding: 32px 32px 26px;
  border-radius: 0 var(--ac-radius-lg) var(--ac-radius-lg) var(--ac-radius-lg);
  background:
    repeating-linear-gradient(to bottom, transparent 0 43px, rgba(154, 47, 99, 0.045) 43px 44px),
    var(--ac-paper);
  box-shadow: 0 50px 90px -40px rgba(0, 0, 0, 0.85);
}

.ac-v-file__paper {
  position: absolute;
  z-index: 1;
  inset: 54px -14px -14px 22px;
  border-radius: var(--ac-radius-lg);
  background: #e6d6bd;
  transform: rotate(3deg);
}

.ac-v-file__title {
  margin: 10px 0 16px;
  font: 400 1.9rem/1.1 var(--ac-serif);
  color: var(--ac-rose);
}

.ac-v-file__title em {
  font-style: italic;
}

.ac-v-file__check {
  list-style: none;
}

.ac-v-file__check li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--ac-line);
  font: 400 1rem/1.2 var(--ac-serif);
  color: var(--ac-rose-ink);
}

.ac-v-file__check li::before {
  content: "";
  display: grid;
  place-items: center;
  flex: none;
  width: 20px;
  height: 20px;
  border: 1px solid var(--ac-line-strong);
  border-radius: var(--ac-radius);
  font: 700 0.68rem/1 var(--ac-sans);
}

.ac-v-file__check li.is-done::before {
  content: "✓";
  border-color: var(--ac-rose);
  background: var(--ac-rose);
  color: var(--ac-paper);
}

.ac-v-file__stamp {
  position: absolute;
  top: 30px;
  right: 26px;
  padding: 8px 14px;
  border: 2px solid var(--ac-rose);
  border-radius: var(--ac-radius);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ac-rose);
  transform: rotate(-9deg);
  opacity: 0.85;
}

/* 4.6 Auditoría */
.ac-v-audit {
  position: relative;
  width: min(480px, 100%);
  padding-bottom: 96px;
}

.ac-v-audit__sheet {
  padding: 30px 30px 22px;
  background: var(--ac-white);
  border: 1px solid var(--ac-line);
  border-radius: var(--ac-radius-lg);
  box-shadow: var(--ac-shadow-paper);
}

.ac-v-audit__rows {
  margin-top: 14px;
  list-style: none;
}

.ac-v-audit__rows li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 96px 56px;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--ac-line);
  font: 400 0.98rem/1.2 var(--ac-serif);
  color: var(--ac-rose-ink);
}

.ac-v-audit__rows i {
  height: 8px;
  border-radius: 2px;
  background: rgba(154, 47, 99, 0.22);
}

.ac-v-audit__rows li:nth-child(1) i { width: 80%; }
.ac-v-audit__rows li:nth-child(2) i { width: 100%; }
.ac-v-audit__rows li:nth-child(3) i { width: 52%; }
.ac-v-audit__rows li:nth-child(4) i { width: 70%; }
.ac-v-audit__rows li:nth-child(5) i { width: 90%; }

.ac-v-audit__rows li.is-flag {
  margin-inline: -12px;
  padding-inline: 12px;
  background: linear-gradient(90deg, rgba(184, 137, 62, 0.18), rgba(184, 137, 62, 0.02));
}

.ac-v-audit__rows li.is-flag i {
  background: var(--ac-gold);
}

.ac-v-audit__rows em {
  justify-self: end;
  padding: 3px 8px;
  border: 1px solid var(--ac-rose);
  border-radius: 999px;
  font: italic 400 0.78rem/1.2 var(--ac-serif);
  color: var(--ac-rose);
  white-space: nowrap;
}

.ac-v-audit__lens {
  position: absolute;
  bottom: 118px;
  right: -26px;
  width: 128px;
  height: 128px;
  border: 6px solid var(--ac-plum);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.6), rgba(255, 253, 248, 0.08) 62%);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.6),
    0 24px 40px -18px rgba(42, 15, 30, 0.6);
  animation: ac-lens 8s ease-in-out infinite alternate;
}

.ac-v-audit__lens::after {
  content: "";
  position: absolute;
  right: -30px;
  bottom: -46px;
  width: 14px;
  height: 64px;
  border-radius: 7px;
  background: linear-gradient(90deg, var(--ac-plum), #4a1a33);
  transform: rotate(-45deg);
}

.ac-v-audit__report {
  position: absolute;
  left: -18px;
  bottom: 0;
  width: min(270px, 70%);
  padding: 18px 20px;
  border-radius: var(--ac-radius-lg);
  background: linear-gradient(160deg, var(--ac-rose), #6a1d43);
  box-shadow: 0 24px 40px -18px rgba(94, 27, 62, 0.7);
  transform: rotate(-3deg);
}

.ac-v-audit__report .ac-v-label {
  color: #f6d9e6;
}

.ac-v-audit__report-title {
  margin-top: 6px;
  font: 400 1.25rem/1.2 var(--ac-serif);
  color: var(--ac-paper);
}

.ac-v-audit__report-title em {
  font-style: italic;
}

/* 4.7 Temario de formación */
.ac-v-course {
  position: relative;
  width: min(450px, 100%);
}

.ac-v-course__shadow {
  position: absolute;
  inset: 18px -18px -18px 18px;
  border-radius: var(--ac-radius-lg);
  background:
    repeating-radial-gradient(circle at 100% 100%, rgba(247, 242, 232, 0.1) 0 1px, transparent 1px 10px),
    linear-gradient(160deg, var(--ac-rose), #6a1d43);
}

.ac-v-course__card {
  position: relative;
  z-index: 1;
  padding: 32px;
  background: var(--ac-white);
  border: 1px solid var(--ac-line);
  border-radius: var(--ac-radius-lg);
  box-shadow: var(--ac-shadow-paper);
}

.ac-v-course__levels {
  margin-top: 14px;
  list-style: none;
}

.ac-v-course__levels li {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: baseline;
  gap: 14px;
  padding: 18px 0;
  border-bottom: 1px solid var(--ac-line);
}

.ac-v-course__lvl {
  font: italic 400 0.95rem/1 var(--ac-serif);
  color: var(--ac-gold-text);
}

.ac-v-course__levels strong {
  font: 400 1.25rem/1.25 var(--ac-serif);
  color: var(--ac-rose-ink);
}

.ac-v-course__levels em {
  font-style: italic;
  color: var(--ac-rose);
}

.ac-v-course__foot {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}

.ac-v-course__foot span {
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--ac-paper-2);
  font-size: 0.8rem;
  color: var(--ac-rose-ink);
}

@keyframes ac-lens {
  from { transform: translate(0, 0); }
  to { transform: translate(-14px, -10px); }
}

/* 5. Honorarios ------------------------------------------------------------ */
.ac-fees {
  overflow: clip;
}

.ac-fees__glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(50% 60% at 90% 20%, rgba(154, 47, 99, 0.45), transparent 70%),
    radial-gradient(40% 50% at 0% 100%, rgba(184, 137, 62, 0.12), transparent 70%);
}

.ac-fees__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(48px, 7vw, 112px);
  align-items: center;
}

.ac-fees__factors {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 32px;
  margin-top: 48px;
  list-style: none;
}

.ac-fees__factors li {
  padding: 24px 0;
  border-top: 1px solid var(--ac-line-light);
}

.ac-fees__num {
  font: italic 400 1.1rem/1 var(--ac-serif);
  color: var(--ac-gold-light);
}

.ac-fees__name {
  margin-top: 10px;
  font-size: 1.5rem;
  line-height: 1.15;
}

.ac-fees__factors p {
  margin-top: 6px;
  font-size: 0.97rem;
}

.ac-fees__sheet {
  --ac-text: var(--ac-rose-ink);
  --ac-heading: var(--ac-rose);
  --ac-accent: var(--ac-rose);
  padding: clamp(28px, 3.5vw, 44px);
  border-radius: var(--ac-radius-lg);
  background:
    repeating-linear-gradient(to bottom, transparent 0 43px, rgba(154, 47, 99, 0.045) 43px 44px),
    var(--ac-paper);
  color: var(--ac-rose-ink);
  box-shadow: 0 60px 110px -50px rgba(0, 0, 0, 0.85);
}

.ac-fees__sheet-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ac-rose);
}

.ac-fees__sheet-title {
  margin: 10px 0 16px;
  font: 400 2rem/1.1 var(--ac-serif);
  color: var(--ac-rose);
}

.ac-fees__sheet-title em {
  font-style: italic;
}

.ac-fees__sheet-list {
  margin-bottom: 28px;
  list-style: none;
}

.ac-fees__sheet-list li {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 11px 0;
}

.ac-fees__sheet-list span {
  font: 400 1.1rem/1.2 var(--ac-serif);
  color: var(--ac-rose-ink);
}

.ac-fees__sheet-list i {
  flex: 1;
  min-width: 16px;
  border-bottom: 1px dotted var(--ac-line-strong);
}

.ac-fees__sheet-list b {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ac-muted);
}

.ac-fees__sheet-list .is-total {
  margin-top: 8px;
  padding-top: 16px;
  border-top: 3px double var(--ac-line-strong);
}

.ac-fees__sheet-list .is-total span {
  font-style: italic;
  color: var(--ac-rose);
}

.ac-fees__sheet-list .is-total b {
  color: var(--ac-rose);
}

.ac-fees__sheet .ac-btn {
  width: 100%;
}

.ac-fees__sheet-note {
  margin-top: 14px;
  font-size: 0.86rem;
  color: var(--ac-muted);
  text-align: center;
}

/* 6. Principios ------------------------------------------------------------ */
.ac-principles {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0 28px;
  margin-top: clamp(64px, 8vw, 104px);
  list-style: none;
}

.ac-principle {
  padding-top: 26px;
  border-top: 1px solid var(--ac-line-strong);
}

.ac-principle__num {
  font: italic 400 1rem/1 var(--ac-serif);
  color: var(--ac-gold-text);
}

.ac-principle__title {
  margin-top: 12px;
  font-size: 1.25rem;
  line-height: 1.2;
}

.ac-principle p {
  margin-top: 8px;
  font-size: 0.92rem;
  color: var(--ac-muted);
}

/* 7. FAQ de la home -------------------------------------------------------- */
.ac-faq__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(240px, 0.7fr);
  gap: clamp(40px, 6vw, 96px);
  align-items: start;
}

.ac-faq--home .ac-faq__more {
  position: sticky;
  top: calc(var(--ac-header-h) + 32px);
  display: grid;
  justify-items: start;
  gap: 12px;
  margin-top: 0;
}

.ac-faq--home .ac-faq__more .ac-link {
  margin-top: 4px;
}

/* 8. Responsive ------------------------------------------------------------ */
@media (max-width: 1080px) {
  .ac-chapter__grid,
  .ac-toc__grid,
  .ac-fees__grid,
  .ac-faq__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .ac-chapter--flip .ac-chapter__copy {
    order: 0;
  }

  .ac-chapter__visual {
    min-height: 0;
    padding-block: 24px;
  }

  .ac-toc__aside,
  .ac-faq--home .ac-faq__more {
    position: static;
  }

  .ac-principles {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0 28px;
  }
}

@media (max-width: 900px) {
  /* En secciones altas y estrechas el degradado en % se veía como una franja. */
  .ac-fees__glow {
    background:
      radial-gradient(circle at 100% 0%, rgba(154, 47, 99, 0.45), transparent 420px),
      radial-gradient(circle at 0% 100%, rgba(184, 137, 62, 0.12), transparent 360px);
  }

  .ac-toc {
    background:
      radial-gradient(circle at 100% 0%, rgba(154, 47, 99, 0.38), transparent 420px),
      radial-gradient(circle at 0% 100%, rgba(184, 137, 62, 0.1), transparent 360px),
      var(--ac-plum);
  }

  .ac-chapter__numeral {
    font-size: clamp(9rem, 44vw, 16rem);
    opacity: 0.4;
  }

  .ac-v-cycle {
    --size: 400px;
  }
}

@media (max-width: 560px) {
  .ac-cover__byline {
    margin-top: 28px;
  }

  .ac-cover .ac-hero__visual {
    margin-bottom: 140px;
  }

  .ac-cover .ac-note-card {
    left: -2%;
    bottom: -32%;
  }

  .ac-chapter__numeral {
    top: 4px;
    font-size: 6.5rem;
    opacity: 0.35;
  }

  /* El correo en mayúsculas no cabe con el tracking de escritorio. */
  .ac-contact__btn-kicker {
    letter-spacing: 0.04em;
  }

  .ac-toc__link {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
    padding: 20px 0;
  }

  .ac-toc__leader,
  .ac-toc__cap {
    display: none;
  }

  .ac-chapter__list {
    grid-template-columns: minmax(0, 1fr);
  }

  .ac-chapter__actions .ac-btn {
    flex: 1 1 100%;
  }

  .ac-v-book {
    grid-template-columns: minmax(0, 1fr);
    transform: rotate(-1deg);
  }

  .ac-v-book::before {
    display: none;
  }

  .ac-v-book__page {
    min-height: 0;
    padding: 24px 20px;
  }

  .ac-v-book__page--right {
    border-top: 1px dashed var(--ac-line-strong);
  }

  .ac-v-cycle {
    --size: 320px;
    --orbit: calc(var(--size) / 2 - 46px);
  }

  .ac-v-cycle__ring,
  .ac-v-cycle__sweep {
    inset: 46px;
  }

  .ac-v-cycle__nodes li {
    width: 92px;
    margin: -30px 0 0 -46px;
    font-size: 0.85rem;
  }

  .ac-v-cycle__nodes span {
    width: 38px;
    height: 38px;
    font-size: 0.85rem;
  }

  .ac-v-cycle__center strong {
    font-size: 1rem;
  }

  .ac-v-cert__frame {
    padding: 26px 20px 22px;
  }

  .ac-v-cert__title {
    font-size: 1.65rem;
  }

  .ac-v-cert__rosette {
    width: 76px;
    height: 76px;
    font-size: 1.3rem;
  }

  .ac-v-route,
  .ac-v-file__body,
  .ac-v-course__card,
  .ac-v-audit__sheet {
    padding: 24px 20px;
  }

  .ac-v-file__tabs span {
    padding: 8px 10px 11px;
    font-size: 0.58rem;
  }

  .ac-v-file__stamp {
    display: none;
  }

  .ac-v-audit__rows li {
    grid-template-columns: minmax(0, 1fr) 56px 52px;
  }

  .ac-v-audit__lens {
    width: 96px;
    height: 96px;
    right: -6px;
  }

  .ac-v-course__shadow {
    inset: 12px -10px -12px 10px;
  }

  .ac-fees__factors {
    grid-template-columns: minmax(0, 1fr);
  }
}
