/* ==========================================================================
   Sanctum Builder · bloques públicos
   Se carga después de arcane.css. Los bloques reutilizan las clases arc-*.
   ========================================================================== */

.arc-block {
    position: relative;
    padding-top: calc(var(--block-pt, 4) * clamp(0.55rem, 1.5vw, 1rem));
    padding-bottom: calc(var(--block-pb, 4) * clamp(0.55rem, 1.5vw, 1rem));
}

.arc-block__inner {
    width: 100%;
    margin-inline: auto;
    padding-inline: clamp(1rem, 3vw, 2rem);
}

.arc-block__inner--narrow { max-width: 820px; }
.arc-block__inner--default { max-width: var(--arc-container, min(1240px, calc(100vw - 2.5rem))); }
.arc-block__inner--wide { max-width: min(1600px, calc(100vw - 1.5rem)); }
.arc-block__inner--full { max-width: none; padding-inline: 0; }

.arc-block--align-center { text-align: center; }
.arc-block--align-center .arc-block__inner > * { margin-inline: auto; }
.arc-block--align-right { text-align: right; }
.arc-block--align-right .arc-block__inner > * { margin-inline-start: auto; }

.arc-block--custom-text :is(h1, h2, h3, h4, p, li, blockquote, figcaption) { color: inherit; }

.arc-block .arc-section-head { margin-bottom: clamp(1.2rem, 3vw, 2.2rem); }
.arc-block .arc-section-head h2 { margin-bottom: .5rem; }

.arc-block--animate-fade-up,
.arc-block.arc-fade-up { animation: arcBlockFadeUp .6s ease both; }

@keyframes arcBlockFadeUp {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .arc-block.arc-fade-up { animation: none; }
}

/* Visibilidad por dispositivo */
@media (max-width: 1179px) {
    .arc-hide-tablet { display: none !important; }
}
@media (max-width: 767px) {
    .arc-hide-mobile { display: none !important; }
}
@media (min-width: 1180px) {
    .arc-hide-desktop { display: none !important; }
}

/* Página del builder */
.arc-page--builder { min-height: 60vh; }
.arc-page--builder > .arc-block:first-child { margin-top: 0; }

/* ==========================================================================
   AMPLIACIÓN · bloques del editor visual (Sanctum Builder)
   Todo lo nuevo se apoya en los tokens de arcane.css (--arc-* / --arc2-*)
   y usa fallbacks para poder previsualizarse aunque falte algún token.
   Prefijo de clases nuevas: .arc-<tipo>-block o .arc-<elemento> propio.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. UTILIDADES COMPARTIDAS
   -------------------------------------------------------------------------- */

/* Texto enriquecido saneado en servidor (rich-text, image-text, editorial, FAQ) */
.arc-prose {
    font-family: var(--arc-font-body, "Cormorant Garamond", Georgia, serif);
    font-size: clamp(1.02rem, 1.35vw, 1.14rem);
    line-height: 1.8;
    color: var(--arc-parchment, #d9cdb2);
}

.arc-prose > :first-child { margin-top: 0; }
.arc-prose > :last-child { margin-bottom: 0; }

.arc-prose p { margin: 0 0 1em; color: inherit; }
.arc-prose p:last-child { margin-bottom: 0; }

.arc-prose h2,
.arc-prose h3,
.arc-prose h4 {
    margin: 1.5em 0 .45em;
    font-family: var(--arc-font-display, "Cinzel", serif);
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: var(--arc-gold-light, #f3de9a);
}

.arc-prose h2:first-child,
.arc-prose h3:first-child,
.arc-prose h4:first-child { margin-top: 0; }

.arc-prose h2 { font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.arc-prose h3 { font-size: clamp(1.18rem, 1.8vw, 1.45rem); }
.arc-prose h4 { font-size: clamp(1.05rem, 1.5vw, 1.2rem); }

.arc-prose ul,
.arc-prose ol { margin: 0 0 1em; padding-left: 1.4rem; }
.arc-prose li + li { margin-top: .35rem; }
.arc-prose li::marker { color: var(--arc-gold, #d4af37); }

.arc-prose strong { color: var(--arc-cream, #f1e9d6); font-weight: 600; }
.arc-prose em { color: var(--arc-parchment, #d9cdb2); }

.arc-prose a {
    color: var(--arc-gold, #d4af37);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.arc-prose a:hover { color: var(--arc-gold-light, #f3de9a); }

.arc-prose blockquote {
    margin: 1.4em 0;
    padding: .2em 0 .2em 1.2em;
    border-left: 2px solid var(--arc2-line-strong, rgba(243, 222, 154, .38));
    font-style: italic;
    color: var(--arc-mist, #a79d8b);
}

.arc-prose hr {
    margin: 1.7em 0;
    border: 0;
    height: 1px;
    background: var(--arc2-line, rgba(212, 175, 55, .16));
}

.arc-prose img {
    max-width: 100%;
    height: auto;
    border-radius: var(--arc-radius-sm, 10px);
}

/* Aviso discreto que solo aparece en la vista previa del editor */
.arc-block__preview-note {
    display: inline-block;
    max-width: 100%;
    margin: .9rem auto 0;
    padding: .42rem .85rem;
    border: 1px dashed rgba(212, 175, 55, .32);
    border-radius: 999px;
    background: rgba(212, 175, 55, .05);
    font-family: var(--arc-font-ui, "Inter", system-ui, sans-serif);
    font-size: .66rem;
    line-height: 1.45;
    letter-spacing: .05em;
    color: var(--arc-mist, #a79d8b);
    text-align: left;
}

/* Fila de CTA al pie de un bloque */
.arc-block__cta-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .8rem;
    margin-top: clamp(1.4rem, 3vw, 2rem);
}

/* --------------------------------------------------------------------------
   1. HERO
   -------------------------------------------------------------------------- */

.arc-hero-block {
    position: relative;
    isolation: isolate;
    padding-block: clamp(1.2rem, 4vw, 3rem);
    text-align: center;
}

.arc-hero-block__stars {
    position: absolute;
    inset: -12% -8%;
    z-index: -1;
    pointer-events: none;
    opacity: .55;
    background-image:
        radial-gradient(1px 1px at 12% 22%, rgba(255, 255, 255, .7), transparent 2px),
        radial-gradient(1.4px 1.4px at 78% 14%, rgba(246, 231, 172, .8), transparent 2.4px),
        radial-gradient(1px 1px at 34% 68%, rgba(255, 255, 255, .5), transparent 2px),
        radial-gradient(1.2px 1.2px at 88% 62%, rgba(255, 255, 255, .55), transparent 2.2px),
        radial-gradient(1px 1px at 62% 82%, rgba(246, 231, 172, .55), transparent 2px),
        radial-gradient(1px 1px at 20% 88%, rgba(255, 255, 255, .42), transparent 2px);
    background-size: 520px 420px;
}

/* El contenido del hero ya existe en arcane.css: solo se adapta al wrapper */
.arc-block .arc-hero-block .arc-hero__content {
    width: 100%;
    max-width: 980px;
    margin-inline: auto;
    padding-block: 0;
    text-align: center;
}

.arc-block .arc-hero-block .arc-hero__meta { max-width: 560px; }

/* La pista de scroll pasa de absoluta (portada) a estática (bloque) */
.arc-block .arc-hero-block .arc-hero__scroll {
    position: static;
    left: auto;
    bottom: auto;
    transform: none;
    display: grid;
    justify-items: center;
    gap: .55rem;
    margin: clamp(1.6rem, 4vw, 2.4rem) auto 0;
    padding: 0;
    font-family: var(--arc-font-ui, "Inter", system-ui, sans-serif);
    font-size: .56rem;
    letter-spacing: .32em;
    text-transform: uppercase;
    color: var(--arc-mist, #a79d8b);
}

.arc-block .arc-hero-block .arc-hero__scroll span { height: 32px; }

.arc-hero-block__scroll { margin-inline: auto; }

/* --------------------------------------------------------------------------
   2. HEADING (encabezado de sección)
   -------------------------------------------------------------------------- */

.arc-heading-block--row .arc-section-head--row { margin-bottom: 0; }
.arc-heading-block__cta { margin-top: 1.5rem; }

/* --------------------------------------------------------------------------
   3. RICH-TEXT
   -------------------------------------------------------------------------- */

.arc-richtext-block { max-width: 100%; }
.arc-richtext-block--default { max-width: 900px; margin-inline: auto; }
.arc-richtext-block--narrow { max-width: 700px; margin-inline: auto; }
.arc-richtext-block--wide { max-width: 1020px; margin-inline: auto; }

/* --------------------------------------------------------------------------
   4. BOTÓN / enlace suelto
   -------------------------------------------------------------------------- */

.arc-button-block { text-align: inherit; }

/* --------------------------------------------------------------------------
   5. IMAGEN
   -------------------------------------------------------------------------- */

.arc-figure {
    display: grid;
    gap: .75rem;
    margin: 0;
}

.arc-figure__link {
    display: block;
    border-radius: var(--arc-radius, 18px);
    overflow: hidden;
}

.arc-figure__media {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--arc-radius, 18px);
    border: 1px solid var(--arc2-line, rgba(212, 175, 55, .16));
    background: linear-gradient(165deg, #171122, #0a0810);
    box-shadow: 0 18px 44px rgba(0, 0, 0, .38);
}

.arc-figure__media img {
    display: block;
    width: 100%;
    height: auto;
}

.arc-figure--16-9 .arc-figure__media,
.arc-figure--4-3 .arc-figure__media,
.arc-figure--1-1 .arc-figure__media,
.arc-figure--3-4 .arc-figure__media { display: grid; place-items: center; }

.arc-figure--16-9 .arc-figure__media { aspect-ratio: 16 / 9; }
.arc-figure--4-3 .arc-figure__media { aspect-ratio: 4 / 3; }
.arc-figure--1-1 .arc-figure__media { aspect-ratio: 1 / 1; }
.arc-figure--3-4 .arc-figure__media { aspect-ratio: 3 / 4; }

.arc-figure--16-9 .arc-figure__media img,
.arc-figure--4-3 .arc-figure__media img,
.arc-figure--1-1 .arc-figure__media img,
.arc-figure--3-4 .arc-figure__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.arc-figure__placeholder {
    display: grid;
    place-items: center;
    gap: .8rem;
    min-height: clamp(190px, 32vw, 330px);
    width: 100%;
    padding: 1.5rem;
    text-align: center;
    border: 1px dashed rgba(212, 175, 55, .3);
    border-radius: inherit;
    background:
        radial-gradient(circle at 50% 40%, rgba(212, 175, 55, .14), transparent 66%),
        repeating-linear-gradient(135deg, rgba(255, 255, 255, .025) 0 12px, transparent 12px 24px);
}

.arc-figure__ph-icon {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 1px solid var(--arc2-line-strong, rgba(243, 222, 154, .38));
    background: radial-gradient(circle at 30% 25%, rgba(246, 231, 172, .16), transparent 70%);
    color: var(--arc-gold, #d4af37);
    font-size: 1.15rem;
}

.arc-figure__caption {
    font-family: var(--arc-font-ui, "Inter", system-ui, sans-serif);
    font-size: .72rem;
    letter-spacing: .07em;
    line-height: 1.5;
    text-align: center;
    color: var(--arc-mist, #a79d8b);
}

.arc-figure--w-narrow { max-width: 580px; margin-inline: auto; }
.arc-figure--w-wide { max-width: 1100px; margin-inline: auto; }
.arc-figure--w-full { max-width: none; }

/* --------------------------------------------------------------------------
   6. IMAGEN + TEXTO
   -------------------------------------------------------------------------- */

.arc-imagetext {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(1.5rem, 4vw, 3.4rem);
    align-items: center;
}

.arc-imagetext__media {
    position: relative;
    overflow: hidden;
    border-radius: var(--arc-radius, 18px);
    border: 1px solid var(--arc2-line, rgba(212, 175, 55, .16));
    background: linear-gradient(165deg, #171122, #0a0810);
    box-shadow: 0 24px 54px rgba(0, 0, 0, .42);
    min-height: 100%;
}

.arc-imagetext__media img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.arc-imagetext__placeholder {
    display: grid;
    place-items: center;
    gap: .8rem;
    min-height: clamp(220px, 32vw, 380px);
    padding: 1.5rem;
    text-align: center;
    border-radius: inherit;
    background:
        radial-gradient(circle at 50% 40%, rgba(212, 175, 55, .14), transparent 66%),
        repeating-linear-gradient(135deg, rgba(255, 255, 255, .025) 0 12px, transparent 12px 24px);
}

.arc-imagetext__ph-icon {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    border: 1px solid var(--arc2-line-strong, rgba(243, 222, 154, .38));
    background: radial-gradient(circle at 30% 25%, rgba(246, 231, 172, .16), transparent 70%);
    color: var(--arc-gold, #d4af37);
    font-size: 1.2rem;
}

.arc-imagetext__body .arc-h2 { margin-bottom: .55rem; }
.arc-imagetext__prose { margin-top: .9rem; }
.arc-imagetext__cta { margin-top: 1.4rem; }

.arc-imagetext--media-right .arc-imagetext__media { order: 2; }

/* --------------------------------------------------------------------------
   7. FEATURE GRID
   -------------------------------------------------------------------------- */

.arc-features__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.arc-features__grid[data-columns="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.arc-features__grid[data-columns="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.arc-features__grid .arc-principle { height: 100%; }

/* --------------------------------------------------------------------------
   8. STEPS (pasos numerados)
   -------------------------------------------------------------------------- */

.arc-steps-block__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.1rem;
}

.arc-steps-block__grid[data-columns="1"] { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; }
.arc-steps-block__grid[data-columns="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.arc-steps-block__grid .arc-key { height: 100%; }

/* --------------------------------------------------------------------------
   9. LINK CARDS
   -------------------------------------------------------------------------- */

.arc-ways-block__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.2rem;
}

.arc-ways-block__grid[data-columns="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.arc-ways-block__grid[data-columns="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.arc-ways-block__grid .arc-way { height: 100%; }

.arc-way--static { cursor: default; }
.arc-way--static:hover { transform: none; box-shadow: none; }

/* --------------------------------------------------------------------------
   10. EDITORIAL + MEDALLÓN
   -------------------------------------------------------------------------- */

.arc-editorial-block .arc-editorial__grid { align-items: center; }

.arc-block .arc-editorial-block--solo .arc-editorial__grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: 840px;
    margin-inline: auto;
}

.arc-editorial-block .arc-editorial__body { margin-bottom: 1.4rem; }
.arc-editorial-block .arc-editorial__facts { flex-wrap: wrap; }

/* --------------------------------------------------------------------------
   11. CITA / TESTIMONIO
   -------------------------------------------------------------------------- */

.arc-quote-block {
    display: flex;
    justify-content: center;
}

.arc-quote {
    position: relative;
    width: 100%;
    max-width: 880px;
    margin: 0;
    padding: clamp(2rem, 4.5vw, 3.2rem) clamp(1.35rem, 4vw, 3rem);
    border-radius: var(--arc2-radius-lg, 22px);
    border: 1px solid var(--arc2-line, rgba(212, 175, 55, .16));
    background:
        radial-gradient(110% 100% at 50% 0%, rgba(212, 175, 55, .1), transparent 62%),
        linear-gradient(170deg, rgba(23, 17, 34, .92), rgba(8, 7, 13, .96));
    box-shadow: 0 26px 60px rgba(0, 0, 0, .4);
    text-align: center;
}

.arc-quote__mark {
    position: absolute;
    top: .1rem;
    left: clamp(.8rem, 3vw, 2rem);
    font-family: var(--arc-font-display, "Cinzel", serif);
    font-size: clamp(3rem, 7vw, 5.4rem);
    line-height: 1;
    color: rgba(212, 175, 55, .22);
    pointer-events: none;
    user-select: none;
}

.arc-quote__text {
    margin: 0;
    padding: 0;
    border: 0;
}

.arc-quote__text p {
    margin: 0;
    font-family: var(--arc-font-body, "Cormorant Garamond", Georgia, serif);
    font-size: clamp(1.14rem, 1.9vw, 1.5rem);
    font-style: italic;
    line-height: 1.65;
    color: var(--arc-cream, #f1e9d6);
}

.arc-quote__author {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .9rem;
    margin-top: 1.4rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--arc2-line, rgba(212, 175, 55, .16));
}

.arc-quote__who { display: grid; gap: .15rem; text-align: left; }

.arc-quote__name {
    font-family: var(--arc-font-display, "Cinzel", serif);
    font-size: .98rem;
    letter-spacing: .08em;
    color: var(--arc-gold-light, #f3de9a);
}

.arc-quote__role {
    font-family: var(--arc-font-ui, "Inter", system-ui, sans-serif);
    font-size: .64rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--arc-mist, #a79d8b);
}

/* Inicial sobre el aro dorado (cita y comunidad) */
.arc-avatar__initial {
    font-family: var(--arc-font-display, "Cinzel", serif);
    font-size: 1rem;
    line-height: 1;
    letter-spacing: .04em;
    color: var(--arc-gold-light, #f3de9a);
}

/* --------------------------------------------------------------------------
   12. ESTADÍSTICAS
   -------------------------------------------------------------------------- */

.arc-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem;
}

.arc-stats-block { display: grid; }

.arc-stat-grid[data-columns="1"] { grid-template-columns: minmax(0, 1fr); }
.arc-stat-grid[data-columns="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.arc-stat-grid[data-columns="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.arc-block .arc-stat-grid .arc-stat {
    display: grid;
    gap: .25rem;
    align-content: center;
    padding: clamp(1.1rem, 2.4vw, 1.6rem) 1rem;
    text-align: center;
    transition: border-color .25s ease, transform .25s var(--arc2-ease, cubic-bezier(.22, .8, .28, 1));
}

.arc-block .arc-stat-grid .arc-stat:hover {
    border-color: var(--arc2-line-strong, rgba(243, 222, 154, .38));
    transform: translateY(-3px);
}

.arc-block .arc-stat-grid .arc-stat__value { font-size: clamp(1.65rem, 3.2vw, 2.4rem); }
.arc-block .arc-stat-grid .arc-stat__label { font-size: .64rem; letter-spacing: .16em; }
.arc-block .arc-stat-grid .arc-stat__value + .arc-stat__label { margin-top: .1rem; }

/* --------------------------------------------------------------------------
   13. FAQ
   -------------------------------------------------------------------------- */

.arc-faq-block .arc-faq { max-width: 840px; margin-inline: auto; }

.arc-faq__item { transition: border-color .25s ease; }
.arc-faq__item[open] { border-color: rgba(212, 175, 55, .34); }
.arc-faq__item summary { font-size: clamp(.92rem, 1.3vw, 1rem); }

.arc-faq .arc-faq__answer {
    padding: 0 0 1.1rem;
    color: var(--arc-mist, #a79d8b);
}

.arc-faq .arc-faq__answer p {
    margin: 0 0 .65rem;
    padding: 0;
    font-family: var(--arc-font-body, "Cormorant Garamond", Georgia, serif);
    font-size: 1rem;
    line-height: 1.7;
    color: inherit;
}

.arc-faq .arc-faq__answer :is(ul, ol) { margin: 0 0 .65rem; padding-left: 1.3rem; }
.arc-faq .arc-faq__answer > :last-child { margin-bottom: 0; padding-bottom: 0; }

/* --------------------------------------------------------------------------
   14. CTA BANNER
   -------------------------------------------------------------------------- */

.arc-cta-block {
    position: relative;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 3.4rem) clamp(1.2rem, 4vw, 3rem);
    border-radius: clamp(18px, 3vw, 28px);
    border: 1px solid var(--arc2-line-strong, rgba(243, 222, 154, .38));
    background:
        radial-gradient(90% 130% at 50% 0%, rgba(212, 175, 55, .13), transparent 62%),
        linear-gradient(180deg, rgba(24, 17, 36, .95), rgba(9, 7, 14, .97));
    box-shadow: 0 30px 70px rgba(0, 0, 0, .45);
    text-align: center;
}

.arc-cta-block--halo {
    box-shadow:
        0 0 90px rgba(212, 175, 55, .14),
        0 30px 70px rgba(0, 0, 0, .45);
}

.arc-cta-block__halo {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(680px, 92%);
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle, rgba(212, 175, 55, .18), transparent 62%);
    filter: blur(8px);
    pointer-events: none;
}

.arc-cta-block__inner {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
}

.arc-cta-block__eyebrow {
    justify-content: center;
    margin-bottom: .35rem;
}

.arc-cta-block__eyebrow::after {
    content: "";
    width: 26px;
    height: 1px;
    background: linear-gradient(270deg, transparent, var(--arc-gold, #d4af37));
}

.arc-cta-block__title { margin-top: .5rem; }

.arc-block .arc-cta-block .arc-invite__text { margin-bottom: 1.7rem; }
.arc-block .arc-cta-block .arc-invite__actions { gap: .8rem; }

/* --------------------------------------------------------------------------
   15. GALERÍA
   -------------------------------------------------------------------------- */

.arc-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
}

.arc-gallery-block { display: grid; }

.arc-gallery[data-columns="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.arc-gallery[data-columns="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.arc-gallery__item {
    display: grid;
    gap: .5rem;
    margin: 0;
}

.arc-gallery__media {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--arc-radius, 18px);
    border: 1px solid var(--arc2-line, rgba(212, 175, 55, .16));
    background: #0b0812;
}

.arc-gallery__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--arc2-ease, cubic-bezier(.22, .8, .28, 1));
}

.arc-gallery__item:hover .arc-gallery__media img { transform: scale(1.05); }

.arc-gallery__caption {
    font-family: var(--arc-font-ui, "Inter", system-ui, sans-serif);
    font-size: .7rem;
    letter-spacing: .06em;
    line-height: 1.5;
    text-align: center;
    color: var(--arc-mist, #a79d8b);
}

.arc-gallery__item--empty .arc-gallery__media {
    border-style: dashed;
    border-color: rgba(212, 175, 55, .28);
    background:
        radial-gradient(circle at 50% 40%, rgba(212, 175, 55, .12), transparent 66%),
        repeating-linear-gradient(135deg, rgba(255, 255, 255, .022) 0 12px, transparent 12px 24px);
}

/* --------------------------------------------------------------------------
   16. VÍDEO
   -------------------------------------------------------------------------- */

.arc-video-block { display: grid; }

.arc-video__title { margin-bottom: 1rem; }

.arc-video {
    display: grid;
    gap: .7rem;
    margin: 0;
}

.arc-video__frame {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--arc-radius-lg, 22px);
    border: 1px solid var(--arc2-line-strong, rgba(243, 222, 154, .38));
    background: #000;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .5);
}

.arc-video--4-3 .arc-video__frame { aspect-ratio: 4 / 3; }

.arc-video--1-1 .arc-video__frame {
    aspect-ratio: 1 / 1;
    max-width: 640px;
    margin-inline: auto;
}

.arc-video__frame iframe {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.arc-video__caption {
    font-family: var(--arc-font-ui, "Inter", system-ui, sans-serif);
    font-size: .72rem;
    letter-spacing: .05em;
    line-height: 1.5;
    text-align: center;
    color: var(--arc-mist, #a79d8b);
}

.arc-video__error {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    margin: 0;
    padding: clamp(1.3rem, 3vw, 2rem) 1.2rem;
    border: 1px dashed rgba(212, 175, 55, .32);
    border-radius: var(--arc-radius, 18px);
    background: rgba(255, 255, 255, .02);
    font-family: var(--arc-font-ui, "Inter", system-ui, sans-serif);
    font-size: .8rem;
    line-height: 1.5;
    letter-spacing: .03em;
    color: var(--arc-mist, #a79d8b);
    text-align: center;
}

.arc-video__error i { color: var(--arc-gold, #d4af37); font-size: .9rem; }

/* --------------------------------------------------------------------------
   17. PRODUCTOS
   -------------------------------------------------------------------------- */

.arc-products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.15rem;
}

.arc-products[data-columns="1"] { grid-template-columns: minmax(0, 1fr); max-width: 460px; }
.arc-products[data-columns="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.arc-products[data-columns="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.arc-products-block .arc-block__preview-note { display: block; width: fit-content; }

/* --------------------------------------------------------------------------
   18. PLANES / GRADOS
   -------------------------------------------------------------------------- */

.arc-plans-block__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.2rem;
    align-items: stretch;
}

.arc-plans-block__grid[data-columns="1"] { grid-template-columns: minmax(0, 1fr); max-width: 520px; margin-inline: auto; }
.arc-plans-block__grid[data-columns="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.arc-plans-block__grid .arc-plan { height: 100%; }

.arc-plan__numeral {
    margin: 0 0 .55rem;
    font-family: var(--arc-font-display, "Cinzel", serif);
    font-size: .8rem;
    letter-spacing: .28em;
    color: rgba(212, 175, 55, .62);
}

.arc-plan__chip {
    align-self: flex-start;
    margin-top: .55rem;
}

.arc-plan__text {
    margin: .9rem 0 0;
    font-family: var(--arc-font-body, "Cormorant Garamond", Georgia, serif);
    font-size: 1rem;
    line-height: 1.65;
    color: var(--arc-mist, #a79d8b);
}

/* --------------------------------------------------------------------------
   19. COMUNIDAD
   -------------------------------------------------------------------------- */

.arc-community-block .arc-community__grid { align-items: start; }

.arc-block .arc-community-block .arc-panel { margin-bottom: 0; }

.arc-block .arc-community-block--single .arc-community__grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: 760px;
    margin-inline: auto;
}

.arc-manuscript__title--link {
    display: block;
    text-decoration: none;
    transition: color .2s ease;
}

.arc-manuscript__title--link:hover { color: var(--arc-gold-light, #f3de9a); }

.arc-block .arc-community-block .arc-empty--compact { padding-inline: .25rem; }

/* ==========================================================================
   RESPONSIVE · 1180 / 980 / 768 / 620
   ========================================================================== */

@media (max-width: 1180px) {
    .arc-products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .arc-products[data-columns="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .arc-ways-block__grid[data-columns="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .arc-features__grid[data-columns="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .arc-gallery[data-columns="4"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
    .arc-features__grid,
    .arc-features__grid[data-columns="3"],
    .arc-features__grid[data-columns="4"],
    .arc-ways-block__grid,
    .arc-ways-block__grid[data-columns="3"],
    .arc-ways-block__grid[data-columns="4"],
    .arc-steps-block__grid,
    .arc-steps-block__grid[data-columns="3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .arc-imagetext { grid-template-columns: minmax(0, 1fr); }
    .arc-imagetext__media,
    .arc-imagetext--media-right .arc-imagetext__media { order: -1; }
    .arc-imagetext__media img { aspect-ratio: 16 / 9; }

    .arc-stat-grid,
    .arc-stat-grid[data-columns="3"],
    .arc-stat-grid[data-columns="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .arc-plans-block__grid,
    .arc-plans-block__grid[data-columns="3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .arc-products,
    .arc-products[data-columns="3"],
    .arc-products[data-columns="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .arc-gallery,
    .arc-gallery[data-columns="3"],
    .arc-gallery[data-columns="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
    .arc-hero-block { padding-block: 1rem 1.6rem; }
    .arc-block .arc-hero-block .arc-hero__title { font-size: clamp(2rem, 9vw, 3rem); }
    .arc-block .arc-hero-block .arc-hero__meta { font-size: .54rem; letter-spacing: .22em; }

    .arc-plans-block__grid,
    .arc-plans-block__grid[data-columns="2"],
    .arc-plans-block__grid[data-columns="3"] { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; }

    .arc-steps-block__grid,
    .arc-steps-block__grid[data-columns="2"],
    .arc-steps-block__grid[data-columns="3"] { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; }

    .arc-products[data-columns="3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .arc-gallery[data-columns="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .arc-quote { text-align: left; }
    .arc-quote__mark { left: .4rem; top: 0; }
    .arc-quote__author { justify-content: flex-start; text-align: left; }
    .arc-quote__text p { font-size: 1.2rem; }

    .arc-cta-block__halo { width: min(460px, 100%); }
}

@media (max-width: 620px) {
    .arc-features__grid,
    .arc-features__grid[data-columns="2"],
    .arc-features__grid[data-columns="3"],
    .arc-features__grid[data-columns="4"],
    .arc-ways-block__grid,
    .arc-ways-block__grid[data-columns="2"],
    .arc-ways-block__grid[data-columns="3"],
    .arc-ways-block__grid[data-columns="4"] { grid-template-columns: minmax(0, 1fr); }

    .arc-stat-grid,
    .arc-stat-grid[data-columns="2"],
    .arc-stat-grid[data-columns="3"],
    .arc-stat-grid[data-columns="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .arc-stat-grid[data-columns="1"] { grid-template-columns: minmax(0, 1fr); }

    .arc-products,
    .arc-gallery,
    .arc-gallery[data-columns="3"] { gap: .7rem; }

    .arc-products .arc-product__body { padding: .8rem .85rem 1rem; }
    .arc-products .arc-product__name { font-size: .82rem; }
    .arc-products .arc-product__price { font-size: 1rem; }

    .arc-figure__media,
    .arc-gallery__media { border-radius: var(--arc-radius-sm, 10px); }

    .arc-quote { padding: 1.6rem 1.1rem; }
    .arc-quote__author { flex-wrap: wrap; }

    .arc-video--1-1 .arc-video__frame { max-width: 100%; }

    .arc-block__preview-note { font-size: .62rem; }

    .arc-cta-block { padding: 1.8rem 1.1rem; }
    .arc-block .arc-cta-block .arc-invite__actions .arc-btn { width: 100%; }
}

/* ==========================================================================
   Navegación dinámica del builder (submenús de 2 niveles y variante móvil)
   ========================================================================== */

.arc-nav__links .arc-nav__caret {
    font-size: .6rem;
    margin-left: .15rem;
    opacity: .7;
}

.arc-nav__submenu {
    position: absolute;
    top: calc(100% + .35rem);
    left: 0;
    min-width: 13rem;
    padding: .45rem;
    display: grid;
    gap: .15rem;
    background: linear-gradient(160deg, rgba(23, 16, 34, .98), rgba(12, 9, 19, .98));
    border: 1px solid var(--arc-line-strong, rgba(212, 175, 55, .45));
    border-radius: var(--arc-radius-sm, 10px);
    box-shadow: 0 24px 50px rgba(0, 0, 0, .55);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s;
    z-index: 80;
}

.arc-nav__links > a:focus-visible + .arc-nav__submenu,
.arc-nav__links > a:hover + .arc-nav__submenu,
.arc-nav__submenu:hover,
.arc-nav__submenu:focus-within {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.arc-nav__sublink {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .5rem .7rem;
    border-radius: 8px;
    color: var(--arc-parchment, #d9cdb2);
    font-family: var(--arc-font-ui, "Inter", sans-serif);
    font-size: .78rem;
    letter-spacing: .03em;
    text-decoration: none;
    transition: background .15s ease, color .15s ease;
}

.arc-nav__sublink i { color: var(--arc-gold, #d4af37); font-size: .75rem; }

.arc-nav__sublink:hover,
.arc-nav__sublink:focus-visible,
.arc-nav__sublink.is-active {
    background: rgba(212, 175, 55, .12);
    color: var(--arc-cream, #f1e9d6);
}

.arc-mobile__link--child {
    padding-left: 2.2rem;
    font-size: .92em;
    opacity: .92;
}

@media (max-width: 980px) {
    .arc-nav__submenu { display: none; }
}

