/* ==========================================================================
   Edumy Child · Escuela Baby Plutón · Secciones de la portada (y de cualquier página que use estas clases)
   La página se arma en Elementor con secciones comunes; cada bloque lleva su clase (Avanzado › Clases CSS):
   bp-hero (con bp-slide por slide) · bp-band · bp-course · bp-mods · bp-gallery · bp-about · bp-testimonials ·
   bp-journal. Los widgets usan bp-eyebrow, bp-section-title, bp-lead, etc. Ver docs/WORDPRESS.md §6.
   Medidas en px (Edumy fija la base del documento en 10px).
   ========================================================================== */

/* ---------- Comunes ---------- */
.bp-section { position: relative; overflow: hidden; overflow: clip; }
/* clip recorta sin crear un contexto de bloque: con hidden, el hero (que sube debajo del encabezado) esquivaba las
   columnas flotantes del encabezado de celular y quedaba con 0 de ancho */
.bp-section > .elementor-container { max-width: calc(var(--bp-wrap) + 2 * var(--bp-gutter)) !important; padding-inline: calc(var(--bp-gutter) - 10px); }
.bp-section .elementor-widget:not(:last-child) { margin-bottom: 0; }

/* Antetítulo con el triángulo del logo */
.bp-eyebrow .elementor-heading-title {
    display: inline-flex !important;
    align-items: center;
    gap: .75em;
    margin: 0 0 18px !important;
    font-family: var(--ff-body) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: .3em !important;
    line-height: 1.3 !important;
    text-transform: uppercase;
    color: var(--bp-primario-texto) !important;
}
.bp-eyebrow .elementor-heading-title::before {
    content: "";
    flex: none;
    width: .95em; height: .95em;
    background: var(--c-accent);
    -webkit-mask: url("../img/deco/iso-solid.svg") center / contain no-repeat;
    mask: url("../img/deco/iso-solid.svg") center / contain no-repeat;
}
.bp-eyebrow.elementor-align-center .elementor-heading-title,
.bp-center .bp-eyebrow .elementor-heading-title { justify-content: center; }

.bp-section-title .elementor-heading-title {
    font-family: var(--ff-subtitle) !important;
    font-weight: var(--fw-subtitle) !important;
    font-size: clamp(32px, 4.2vw, 53px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.01em !important;
    color: var(--bp-titulo) !important;
    text-wrap: balance;
}
.bp-lead, .bp-lead p {
    font-size: 18px !important;
    line-height: 1.7 !important;
    color: var(--bp-texto-suave) !important;
}
.bp-center { text-align: center; }
.bp-center .bp-lead { max-width: 66ch; margin-inline: auto; }

/* Texto enriquecido (landing: .prose) */
.bp-prose, .bp-prose p, .bp-prose li { font-size: 17px !important; line-height: 1.72 !important; color: var(--bp-texto) !important; }
.bp-prose p { margin: 0 0 1.05em; }
.bp-prose > .elementor-widget-container > p:first-child { font-size: 20px !important; line-height: 1.55 !important; }
.bp-prose h2, .bp-prose h3 {
    display: flex;
    align-items: center;
    gap: .9em;
    margin: 2em 0 .8em !important;
    font-family: var(--ff-title) !important;
    font-weight: var(--fw-title) !important;
    font-size: 14.5px !important;
    line-height: 1.3 !important;
    letter-spacing: .24em !important;
    text-transform: uppercase;
    color: var(--bp-titulo) !important;
}
.bp-prose h2::after, .bp-prose h3::after { content: ""; flex: 1; height: 1px; background: currentColor; opacity: .28; }
.bp-prose ul { margin: 1em 0 0; padding: 0; list-style: none; }
.bp-prose ul > li { position: relative; padding-left: 1.9em; }
.bp-prose ul > li + li { margin-top: .55em; }
.bp-prose ul > li::before {
    content: "";
    position: absolute;
    left: 0; top: .36em;
    width: 1em; height: 1em;
    background: var(--c-accent);
    -webkit-mask: url("../img/deco/iso-solid.svg") center / contain no-repeat;
    mask: url("../img/deco/iso-solid.svg") center / contain no-repeat;
}
.bp-prose strong, .bp-prose b {
    color: var(--bp-titulo) !important;
    background: linear-gradient(transparent 60%, color-mix(in srgb, var(--c-primary) 32%, transparent) 60%);
    padding-inline: .06em;
}
.bp-prose em { font-family: var(--ff-highlight) !important; font-size: 1.08em; color: var(--bp-titulo); }
.bp-prose blockquote {
    margin: 1.6em 0 0;
    padding: .2em 0 .2em 1.2em;
    border-left: 3px solid var(--c-primary);
    font-family: var(--ff-highlight);
    font-style: italic;
    font-size: 1.28em;
    line-height: 1.45;
    color: var(--bp-titulo);
}
.bp-prose blockquote p { font: inherit !important; color: inherit !important; margin: 0; }

/* Rueda zodiacal de línea fina */
.bp-wheel::after, .bp-course::after {
    content: "";
    position: absolute;
    aspect-ratio: 1;
    background: currentColor;
    -webkit-mask: url("../img/deco/rueda.svg") center / contain no-repeat;
    mask: url("../img/deco/rueda.svg") center / contain no-repeat;
    pointer-events: none;
}

/* La «A» de Astrología con el triángulo del logo (sigue los colores de la landing) */
.bp-iso-letra {
    position: relative;
    display: grid;
    place-items: center;
    width: min(100%, 300px);
    aspect-ratio: 1;
    margin-top: 28px;
    transform: rotate(-6deg);
    filter: drop-shadow(0 28px 34px color-mix(in srgb, var(--bp-titulo) 35%, transparent));
}
.bp-iso-letra::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 30% 25%, color-mix(in srgb, #fff 14%, transparent), transparent 55%),
        var(--c-ink-strong);
    -webkit-mask: url("../img/deco/iso-solid.svg") center / contain no-repeat;
    mask: url("../img/deco/iso-solid.svg") center / contain no-repeat;
}
.bp-iso-letra::after {
    content: "";
    position: absolute;
    inset: 6%;
    background: color-mix(in srgb, #fff 30%, transparent);
    -webkit-mask: url("../img/deco/pattern-estrellas.svg") 0 0 / 120px 120px repeat, url("../img/deco/iso-solid.svg") center / contain no-repeat;
    -webkit-mask-composite: source-in;
    mask: url("../img/deco/pattern-estrellas.svg") 0 0 / 120px 120px repeat, url("../img/deco/iso-solid.svg") center / contain no-repeat;
    mask-composite: intersect;
}
.bp-iso-letra span {
    position: relative;
    z-index: 1;
    margin: -6% 0 0 4%;
    font-family: var(--ff-subtitle);
    font-weight: var(--fw-subtitle);
    font-size: 190px;
    line-height: 1;
    color: #fff;
}

/* ---------- HERO con slides ---------- */
.bp-hero {
    --bp-hero-pad: clamp(18px, 2.6vw, 34px);
    isolation: isolate;
    margin-top: calc(-1 * var(--bp-header-h, 104px)) !important; /* el encabezado va encima, transparente */
    padding-top: var(--bp-header-h, 104px) !important;
    background: var(--hero-bg) !important;
    color: var(--c-text);
}
.bp-hero::before { /* órbitas */
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: color-mix(in srgb, var(--c-text) 22%, transparent);
    -webkit-mask: url("../img/deco/pattern-orbitas.svg") 64% 45% / cover no-repeat;
    mask: url("../img/deco/pattern-orbitas.svg") 64% 45% / cover no-repeat;
    pointer-events: none;
}
.bp-hero::after { /* halo */
    content: "";
    position: absolute;
    right: -12%; bottom: -30%;
    z-index: -1;
    width: min(95vw, 1100px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(closest-side, color-mix(in srgb, var(--c-accent) 26%, transparent), transparent 72%);
    opacity: .55;
    pointer-events: none;
}
.bp-hero > .elementor-container > .elementor-column > .elementor-widget-wrap { display: grid !important; padding: 0 !important; }
.bp-slide {
    grid-area: 1 / 1;
    opacity: 0;
    visibility: hidden;
    transition: opacity .9s var(--bp-ease), visibility 0s linear .9s;
}
.bp-slide.is-active, .bp-slide:only-child, .bp-hero:not(.is-ready) .bp-slide:first-child {
    opacity: 1;
    visibility: visible;
    transition: opacity .9s var(--bp-ease), visibility 0s linear 0s;
}
.bp-slide > .elementor-container { min-height: min(calc(100svh - var(--bp-header-h, 104px) - 52px), 860px); align-items: stretch; }
.bp-slide__text > .elementor-widget-wrap {
    align-content: center !important;
    padding: var(--bp-hero-pad) 10px clamp(88px, 9vw, 120px) !important;
}
.bp-slide__media > .elementor-widget-wrap { align-content: flex-end !important; padding: 0 !important; }
.bp-slide__media img {
    display: block;
    width: auto !important;
    max-width: 112% !important;
    max-height: min(78vh, 760px);
    margin-left: auto;
    object-fit: contain;
    object-position: right bottom;
    filter: drop-shadow(0 30px 50px rgba(0, 0, 0, .28));
}
.bp-hero .bp-eyebrow .elementor-heading-title { color: var(--c-text) !important; }
.bp-hero__title .elementor-heading-title {
    font-family: var(--ff-title) !important;
    font-weight: var(--fw-title) !important;
    font-size: calc(var(--bp-fit, 1) * clamp(46px, min(12vw, 17vh), 172px) * var(--title-scale, 1)) !important;
    line-height: .9 !important;
    letter-spacing: var(--title-spacing, .47em) !important;
    margin-right: calc(-1 * var(--title-spacing, .47em));
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--c-accent) !important;
}
.bp-hero__sub .elementor-heading-title {
    margin: 4px 0 0 .3em;
    font-family: var(--ff-subtitle) !important;
    font-weight: var(--fw-subtitle) !important;
    font-size: clamp(34px, 5.6vw, 96px) !important;
    line-height: 1 !important;
    letter-spacing: -.012em !important;
    color: var(--c-text) !important;
}
.bp-hero__details { margin-top: clamp(22px, 3.4vh, 44px); }
.bp-hero__details .elementor-widget-container { display: flex; flex-wrap: wrap; align-items: stretch; gap: 16px 26px; }
.bp-hero__details p { margin: 0 !important; }
.bp-hero__details p:first-child {
    font-family: var(--ff-body) !important;
    font-size: clamp(22px, 2.2vw, 30px) !important;
    line-height: 1.22 !important;
    color: var(--c-text-strong) !important;
}
.bp-hero__details p + p {
    padding-left: 26px;
    border-left: 1px solid var(--c-line-strong);
    font-family: var(--ff-highlight) !important;
    font-weight: var(--fw-highlight) !important;
    font-size: clamp(23px, 2.35vw, 32px) !important;
    line-height: 1.1 !important;
    color: var(--c-text) !important;
}
.bp-hero__lead { max-width: 560px; margin-top: 18px; }
.bp-hero__lead p { font-size: 17px !important; line-height: 1.65 !important; color: var(--c-muted) !important; margin: 0 !important; }
.bp-hero__cta { margin-top: clamp(22px, 3vh, 34px); }
.bp-hero .elementor-button { min-height: 58px; padding: 1em 2.1em !important; font-size: 14.5px !important; }

/* Indicador de slides (lo arma inicio.js) */
.bp-slides-nav {
    position: absolute;
    left: max(var(--bp-gutter), calc((100% - var(--bp-wrap)) / 2));
    bottom: clamp(28px, 4vw, 48px);
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--ff-highlight);
    font-size: 15px;
    color: var(--c-text);
}
.bp-slides-nav button {
    width: 22px; height: 18px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}
.bp-slides-nav button::before {
    content: "";
    display: block;
    height: 3px;
    border-radius: 3px;
    background: color-mix(in srgb, var(--c-text) 45%, transparent);
    transition: background-color .3s;
}
.bp-slides-nav button[aria-current="true"] { width: 44px; }
.bp-slides-nav button[aria-current="true"]::before { background: var(--c-accent); }

/* En el editor de Elementor se ven todos los slides, uno abajo del otro */
.elementor-editor-active .bp-hero > .elementor-container > .elementor-column > .elementor-widget-wrap { display: flex !important; flex-direction: column; }
.elementor-editor-active .bp-slide { opacity: 1; visibility: visible; grid-area: auto; }
.elementor-editor-active .bp-slide + .bp-slide { border-top: 2px dashed color-mix(in srgb, var(--c-accent) 40%, transparent); }

/* ---------- Franja que corre ---------- */
.bp-band { background: var(--c-accent) !important; color: var(--c-on-accent); padding: 15px 0 !important; }
.bp-band > .elementor-container { max-width: none !important; padding: 0 !important; }
.bp-band .elementor-widget-wrap { padding: 0 !important; }
.bp-band__track { display: flex; width: max-content; animation: bp-marquee 48s linear infinite; }
.bp-band:hover .bp-band__track { animation-play-state: paused; }
.bp-band__group { display: flex; flex: none; align-items: center; gap: 26px; padding-right: 26px; }
.bp-band__item {
    font-family: var(--ff-title);
    font-weight: var(--fw-title);
    font-size: clamp(14px, 1.4vw, 17px);
    letter-spacing: .3em;
    text-transform: uppercase;
    white-space: nowrap;
    line-height: 1.2;
    color: var(--c-on-accent);
}
.bp-band__item:nth-child(4n+3) {
    font-family: var(--ff-subtitle);
    font-weight: var(--fw-subtitle);
    font-style: italic;
    font-size: clamp(18px, 1.8vw, 22px);
    letter-spacing: 0;
    text-transform: none;
}
.bp-band__sep {
    flex: none;
    width: 16px; height: 16px;
    background: currentColor;
    color: var(--c-on-accent);
    -webkit-mask: url("../img/deco/iso-solid.svg") center / contain no-repeat;
    mask: url("../img/deco/iso-solid.svg") center / contain no-repeat;
}
@keyframes bp-marquee { to { transform: translateX(-50%); } }

/* ---------- Formación (bloque claro) ---------- */
.bp-course { background: var(--c-light) !important; color: var(--c-ink); }
.bp-course--head { padding: clamp(68px, 9vw, 120px) 0 clamp(40px, 5vw, 72px) !important; }
.bp-course--grid { padding: 0 0 clamp(68px, 9vw, 132px) !important; }
.bp-course::after { /* rueda arriba a la derecha */
    top: -14%; right: -16%;
    width: min(78vw, 820px);
    color: var(--c-ink-strong);
    opacity: .08;
}
.bp-course--grid::before { /* trama de puntos en la esquina */
    content: "";
    position: absolute;
    left: 0; bottom: 0;
    width: min(46vw, 560px);
    height: 60%;
    background: color-mix(in srgb, var(--c-ink-strong) 16%, transparent);
    -webkit-mask: url("../img/deco/pattern-puntos.svg") 0 0 / 22px 22px repeat, radial-gradient(circle at 0 100%, #000, transparent 70%);
    -webkit-mask-composite: source-in;
    mask: url("../img/deco/pattern-puntos.svg") 0 0 / 22px 22px repeat, radial-gradient(circle at 0 100%, #000, transparent 70%);
    mask-composite: intersect;
    pointer-events: none;
}
.bp-course__title .elementor-heading-title {
    font-family: var(--ff-subtitle) !important;
    font-weight: var(--fw-subtitle) !important;
    font-size: clamp(34px, 4.4vw, 58px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.015em !important;
    color: var(--c-ink-strong) !important;
}
.bp-course__meta .elementor-heading-title {
    margin-top: 14px;
    font-family: var(--ff-highlight) !important;
    font-style: italic;
    font-weight: var(--fw-highlight) !important;
    font-size: 19px !important;
    line-height: 1.4 !important;
    color: var(--c-ink-soft) !important;
}
@media (min-width: 1025px) {
    .bp-course__head > .elementor-widget-wrap { position: sticky; top: 40px; align-self: start; }
}
.bp-course__head .elementor-widget-button { margin-top: 34px; }

/* Datos clave (sección interna bp-facts con 4 columnas) */
.bp-facts { margin-bottom: clamp(34px, 4.5vw, 52px) !important; }
.bp-facts > .elementor-container {
    gap: 1px;
    overflow: hidden;
    border-radius: var(--bp-radius);
    background: color-mix(in srgb, var(--c-light) 22%, var(--c-ink-strong));
    box-shadow: 0 30px 60px -36px color-mix(in srgb, var(--c-ink-strong) 90%, #000);
}
.bp-facts > .elementor-container > .elementor-column { background: var(--c-ink-strong); }
.bp-facts > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 18px 20px 20px !important; align-content: flex-start; }
.bp-facts__label .elementor-heading-title {
    display: flex;
    align-items: baseline;
    gap: .6em;
    font-family: var(--ff-body) !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    letter-spacing: .22em !important;
    text-transform: uppercase;
    color: var(--c-ticket-label) !important;
}
.bp-facts__label .elementor-heading-title span { font-family: var(--ff-highlight); font-weight: 400; font-size: 13px; letter-spacing: 0; color: color-mix(in srgb, var(--c-light) 72%, transparent); }
.bp-facts__value .elementor-heading-title {
    margin-top: 7px;
    font-family: var(--ff-highlight) !important;
    font-weight: var(--fw-highlight) !important;
    font-size: clamp(17px, 1.5vw, 20px) !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    color: var(--c-light) !important;
}

/* ---------- Modalidades (principal pleno con líneas) ---------- */
.bp-mods { background: var(--c-primary) !important; color: var(--c-text); }
.bp-mods--head { padding: clamp(72px, 9vw, 132px) 0 clamp(36px, 4vw, 56px) !important; }
.bp-mods--cards { padding: 0 0 clamp(72px, 9vw, 132px) !important; }
.bp-mods::before { /* líneas diagonales que se desvanecen */
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 55%;
    background: color-mix(in srgb, var(--c-text) 12%, transparent);
    -webkit-mask: url("../img/deco/pattern-lineas.svg") 0 0 / 18px 18px repeat, linear-gradient(90deg, #000, transparent);
    -webkit-mask-composite: source-in;
    mask: url("../img/deco/pattern-lineas.svg") 0 0 / 18px 18px repeat, linear-gradient(90deg, #000, transparent);
    mask-composite: intersect;
    pointer-events: none;
}
.bp-mods > .elementor-container { position: relative; }
.bp-mods--head > .elementor-container { align-items: flex-end; }
.bp-mods .bp-eyebrow .elementor-heading-title { color: var(--c-text) !important; }
.bp-mods__title .elementor-heading-title {
    font-family: var(--ff-title) !important;
    font-weight: var(--fw-title) !important;
    font-size: clamp(37px, 5.4vw, 70px) !important;
    line-height: .98 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase;
    color: var(--c-accent) !important;
}
.bp-mods__sub .elementor-heading-title {
    margin-top: 6px;
    font-family: var(--ff-subtitle) !important;
    font-weight: var(--fw-subtitle) !important;
    font-size: clamp(27px, 2.8vw, 40px) !important;
    line-height: 1.1 !important;
    color: var(--c-text) !important;
}
.bp-mods__note p { margin: 0 0 22px !important; font-size: 17px !important; line-height: 1.65 !important; color: var(--c-text) !important; }
.bp-mods__note em { font-family: var(--ff-highlight) !important; font-size: 1.12em; }
.bp-mcard > .elementor-widget-wrap {
    display: flex !important;
    flex-direction: column;
    gap: 16px;
    height: 100%;
    padding: clamp(30px, 3.4vw, 46px) !important;
    border-radius: 30px;
    background: var(--c-light);
    color: var(--c-ink);
    box-shadow: 0 50px 90px -50px rgba(0, 0, 0, .75);
}
.bp-mcard .elementor-widget { margin: 0 !important; width: 100%; }
.bp-mcard__label .elementor-heading-title {
    display: flex;
    align-items: baseline;
    gap: .7em;
    font-family: var(--ff-body) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: .24em !important;
    text-transform: uppercase;
    color: var(--bp-primario-texto) !important;
}
.bp-mcard__label b { font-family: var(--ff-highlight); font-weight: 400; font-size: 16px; letter-spacing: 0; color: var(--c-ink-soft); }
.bp-mcard__title .elementor-heading-title {
    font-family: var(--ff-subtitle) !important;
    font-weight: var(--fw-subtitle) !important;
    font-size: clamp(30px, 2.6vw, 38px) !important;
    line-height: 1.05 !important;
    color: var(--c-ink-strong) !important;
}
.bp-mcard p { font-size: 16.5px !important; line-height: 1.7 !important; color: var(--c-ink-soft) !important; margin: 0 !important; }
.bp-mcard p strong { color: var(--c-ink-strong) !important; font-weight: 600 !important; }
.bp-mcard .bp-mcard__for { margin-top: auto !important; }
.bp-mcard__for .elementor-widget-container {
    position: relative;
    padding: 18px 20px 18px 54px;
    border-radius: 18px;
    background: var(--c-ink-strong);
}
.bp-mcard__for .elementor-widget-container::before {
    content: "";
    position: absolute;
    left: 20px; top: 21px;
    width: 18px; height: 18px;
    background: var(--c-primary);
    -webkit-mask: url("../img/deco/iso-solid.svg") center / contain no-repeat;
    mask: url("../img/deco/iso-solid.svg") center / contain no-repeat;
}
.bp-mcard__for p { color: var(--c-light) !important; font-size: 15.5px !important; line-height: 1.55 !important; }

/* ---------- Galería de arte ---------- */
.bp-gallery { background: color-mix(in srgb, var(--c-primary) 7%, #fff) !important; padding: clamp(72px, 9vw, 132px) 0 clamp(56px, 6vw, 88px) !important; }
.bp-gallery .bp-lead { margin-bottom: clamp(36px, 4vw, 56px); } /* la columna también lleva el carrusel */
.bp-gallery .swiper-slide { padding-bottom: 8px; }
.bp-gallery .swiper-slide-image {
    width: 100% !important;
    height: 380px !important;
    object-fit: cover;
    border-radius: 24px !important;
    box-shadow: 0 34px 60px -38px rgba(40, 38, 70, .7);
}
.bp-gallery .elementor-image-carousel-caption {
    margin-top: 16px;
    font-family: var(--ff-highlight) !important;
    font-style: italic;
    font-size: 18px !important;
    line-height: 1.3 !important;
    text-align: left !important;
    color: var(--c-ink-strong) !important;
}
.bp-gallery .elementor-swiper-button {
    display: grid !important;
    place-items: center;
    width: 50px; height: 50px;
    border: 1px solid color-mix(in srgb, var(--c-ink-strong) 30%, transparent);
    border-radius: 50%;
    background: var(--c-light);
    color: var(--c-ink-strong) !important;
    font-size: 18px !important;
}
.bp-gallery .swiper-pagination-bullet { width: 8px; height: 8px; border-radius: 99px; background: color-mix(in srgb, var(--c-ink-strong) 30%, transparent); opacity: 1; transition: width .35s; }
.bp-gallery .swiper-pagination-bullet-active { width: 26px; background: var(--c-primary) !important; }

/* ---------- Sobre la Escuela ---------- */
.bp-about { background: var(--c-light) !important; padding: clamp(72px, 8vw, 120px) 0 0 !important; }
.bp-about > .elementor-container { align-items: flex-end; }
.bp-about__text > .elementor-widget-wrap { padding-bottom: clamp(72px, 8vw, 120px) !important; padding-right: clamp(10px, 3vw, 48px) !important; }
.bp-about__text .elementor-widget-button { margin-top: 30px; }
.bp-about__media > .elementor-widget-wrap { position: relative; justify-content: center; padding: 0 !important; }
.bp-about__media > .elementor-widget-wrap::before { /* círculo con el degradé del hero */
    content: "";
    position: absolute;
    left: 50%; bottom: 8%;
    width: min(120%, 620px);
    aspect-ratio: 1;
    transform: translateX(-50%);
    border-radius: 50%;
    background: var(--hero-bg);
    opacity: .9;
}
.bp-about__media > .elementor-widget-wrap::after { /* rueda */
    content: "";
    position: absolute;
    left: 50%; bottom: 0;
    width: min(135%, 700px);
    aspect-ratio: 1;
    transform: translateX(-50%);
    background: var(--c-light);
    opacity: .35;
    -webkit-mask: url("../img/deco/rueda.svg") center / contain no-repeat;
    mask: url("../img/deco/rueda.svg") center / contain no-repeat;
    pointer-events: none;
}
.bp-about__media .elementor-widget-image { position: relative; z-index: 1; }
.bp-about__media img { width: min(100%, 470px) !important; filter: drop-shadow(0 30px 50px rgba(0, 0, 0, .22)); }

/* ---------- Testimonios (bloque oscuro con estrellas; usa la plantilla de testimonios) ---------- */
.bp-testimonials { background: var(--c-deep) !important; color: var(--c-on-deep); padding: clamp(72px, 9vw, 132px) 0 clamp(48px, 5vw, 80px) !important; }
.bp-testimonials::before {
    content: "";
    position: absolute;
    inset: 0;
    background: color-mix(in srgb, var(--c-on-deep) 20%, transparent);
    -webkit-mask: url("../img/deco/pattern-estrellas.svg") 0 0 / 260px 260px repeat;
    mask: url("../img/deco/pattern-estrellas.svg") 0 0 / 260px 260px repeat;
    pointer-events: none;
}
.bp-testimonials::after { /* halo cálido */
    content: "";
    position: absolute;
    left: 50%; top: 58%;
    width: min(120vw, 1300px);
    aspect-ratio: 2.2;
    transform: translate(-50%, -50%);
    background: radial-gradient(closest-side, color-mix(in srgb, var(--c-primary) 90%, var(--c-accent)), transparent);
    opacity: .7;
    pointer-events: none;
}
.bp-testimonials > .elementor-container { position: relative; z-index: 1; }
.bp-testimonials .bp-eyebrow .elementor-heading-title { color: var(--c-deep-soft) !important; }
.bp-testimonials .bp-section-title .elementor-heading-title { color: var(--c-on-deep) !important; }
.bp-section-sub .elementor-heading-title {
    margin-top: 14px;
    font-family: var(--ff-highlight) !important;
    font-style: italic;
    font-weight: var(--fw-highlight) !important;
    font-size: 20px !important;
    color: color-mix(in srgb, var(--c-on-deep) 76%, transparent) !important;
}
.bp-testimonials .bp-section-sub { margin-bottom: clamp(36px, 4vw, 60px); } /* la columna también lleva la plantilla */
.bp-testimonials .elementor-section, .bp-testimonials .elementor-column, .bp-testimonials .elementor-widget-wrap { background: transparent !important; }
.bp-testimonials .elementor-section .elementor-section, .bp-testimonials [data-elementor-type] > .elementor-section { padding: 0 !important; }
.bp-testimonials .elementor-widget-edumy_heading { display: none; } /* el título propio de la plantilla */
.bp-testimonials .slick-dots li button { background: color-mix(in srgb, var(--c-on-deep) 36%, transparent) !important; }

/* ---------- Astro Journal ---------- */
.bp-journal { background: var(--hero-bg) !important; color: var(--c-text); padding: clamp(80px, 9vw, 130px) 0 !important; }
.bp-journal::before {
    content: "";
    position: absolute;
    inset: 0;
    background: color-mix(in srgb, var(--c-text) 20%, transparent);
    -webkit-mask: url("../img/deco/pattern-orbitas.svg") 72% 50% / cover no-repeat;
    mask: url("../img/deco/pattern-orbitas.svg") 72% 50% / cover no-repeat;
    pointer-events: none;
}
.bp-journal > .elementor-container { position: relative; align-items: center; }
.bp-journal .bp-eyebrow .elementor-heading-title { color: var(--c-text) !important; }
.bp-journal__title .elementor-heading-title {
    font-family: var(--ff-title) !important;
    font-weight: var(--fw-title) !important;
    font-size: clamp(54px, 7.2vw, 106px) !important;
    line-height: .9 !important;
    letter-spacing: .3em !important;
    margin-right: -.3em;
    text-transform: uppercase;
    color: var(--c-accent) !important;
}
.bp-journal .bp-hero__lead p { color: var(--c-text) !important; }
.bp-journal__media > .elementor-widget-wrap { position: relative; justify-content: center; }
.bp-journal__media > .elementor-widget-wrap::before {
    content: "";
    position: absolute;
    left: 50%; top: 50%;
    width: 118%;
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    background: var(--c-light);
    opacity: .45;
    -webkit-mask: url("../img/deco/rueda.svg") center / contain no-repeat;
    mask: url("../img/deco/rueda.svg") center / contain no-repeat;
    pointer-events: none;
}
.bp-journal__media .elementor-widget-image { position: relative; }
.bp-journal__media img { width: min(100%, 520px) !important; transform: rotate(4deg); filter: drop-shadow(0 40px 50px rgba(40, 30, 60, .45)); }

/* ---------- Celular y tablet ---------- */
@media (max-width: 1024px) {
    .bp-slide > .elementor-container { min-height: 0; }
    .bp-slide__text > .elementor-widget-wrap { padding-bottom: 24px !important; }
    .bp-slide__media img { max-width: min(100%, 520px) !important; margin-inline: auto; max-height: 60vh; }
    .bp-slides-nav { bottom: 18px; }
    .bp-about__text > .elementor-widget-wrap { padding-bottom: 32px !important; }
}
@media (max-width: 767px) {
    .bp-hero__title .elementor-heading-title { letter-spacing: .3em !important; margin-right: -.3em; }
    .bp-hero__details p + p { padding-left: 0; border-left: 0; }
    .bp-iso-letra { width: 200px; margin-inline: auto; }
    .bp-iso-letra span { font-size: 128px; }
    .bp-facts > .elementor-container { display: grid; grid-template-columns: 1fr 1fr; }
    .bp-facts > .elementor-container > .elementor-column { width: auto !important; }
    .bp-mods__title .elementor-heading-title { letter-spacing: .08em !important; }
    .bp-journal__title .elementor-heading-title { letter-spacing: .16em !important; }
    .bp-gallery .swiper-slide-image { height: 300px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .bp-band__track { animation: none; }
    .bp-slide { transition: none; }
}
