/*
 * La Cápsula — main.css
 * 
 */

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

:root {
    --black: #0a0a0a;
    --white: #ffffff;
    --red: #d37729;
    --gray-light: #f0efed;
    --gray-mid: #c8c4be;
    --gray-dark: #5a5650;
    --border: 1px solid #d0ccc6;
    --font-display: "Barlow Condensed", sans-serif;
    --font-body: "Barlow", sans-serif;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-body);
    background: var(--white);
    color: var(--black);
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
    max-width: 100%;
}

button {
    font-family: inherit;
}

.parr-princ {
    color: var(--black);
    font-size: 20px;
    line-height: 1.55;
}

.parr-princ-white {
    color: var(--white);
    font-size: 20px;
    line-height: 1.55;
}

.parr-sec {
    font-size: 17px;
    line-height: 1.7;
    color: var(--gray-dark);
}

/* ─── UTILITY ─── */

.tag {
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--red);
}

.tag-dark {
    color: var(--white);
    background: var(--red);
    padding: 3px 7px;
    display: inline-block;
}

.wrap {
    max-width: 1340px;
    margin: 0 auto;
    padding: 0 32px;
}

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

.screen-reader-text:focus {
	position: static !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 12px 16px !important;
	overflow: visible !important;
	clip: auto !important;
	white-space: normal !important;
	background: #ffffff !important;
	color: #000000 !important;
	z-index: 100000 !important;
}

/* ─── TOP BAR ─── */

.topbar {
    border-bottom: var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 32px;
    height: 38px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .04em;
}

.topbar__left {
    display: flex;
    align-items: center;
    gap: 20px;
}

.topbar__left a {
    color: var(--gray-dark);
}

.topbar__left a:hover {
    color: var(--black);
}

.topbar__left .icon-fa-custom {
    font-size: 11px;
    width: 12px;
    color: var(--red);
    margin-right: 3px !important;
}

.topbar__right {
    display: flex;
    gap: 0;
    align-items: center;
}

.topbar__lang {
    padding: 0 10px;
    border-left: var(--border);
    border-right: var(--border);
    height: 38px;
    display: flex;
    align-items: center;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    color: var(--gray-dark);
}

.topbar__lang:hover {
    background: var(--black);
    color: var(--white);
}

.topbar__lang.active {
    text-decoration-line: underline;
    text-decoration-thickness: 2px;
    text-decoration-color: rgb(211, 119, 41);
    text-underline-offset: 4px;
}

.topbar__right .gt_switcher_wrapper, .topbar__right .gt_switcher, .topbar__right .gt_container {
    position: static !important;
}

.topbar__right a {
    padding: 0 10px;
    border-left: var(--border);
    border-right: var(--border);
    height: 38px;
    display: flex;
    align-items: center;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    color: var(--gray-dark);
}

.topbar__right a:hover {
    background: var(--black);
    color: var(--white);
}

.topbar__right a.gt-current-lang {
    text-decoration-line: underline;
    text-decoration-thickness: 2px;
    text-decoration-color: rgb(211, 119, 41);
    text-underline-offset: 4px;
}

/* ─── MAIN NAV ─── */

.mainnav {
    border-bottom: var(--border);
    display: flex;
    align-items: stretch;
    height: 64px;
}

.mainnav__logo {
    display: flex;
    align-items: center;
    padding: 0 32px;
    border-right: var(--border);
    flex-shrink: 0;
}

.mainnav__logo-img {
    height: 40px;
    width: auto;
    display: block;
}

.mainnav__links {
    display: flex;
    align-items: stretch;
    flex: 1;
    list-style: none;
    margin: 0;
    padding: 0;
}

.mainnav__links li {
    display: flex;
}

.mainnav__link, .mainnav__links a {
    display: flex;
    align-items: center;
    padding: 0 20px;
    border-right: var(--border);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: background .15s, color .15s;
    white-space: nowrap;
}

.mainnav__link:hover, .mainnav__links a:hover {
    background: var(--black);
    color: var(--white);
}

.mainnav__link.active, .mainnav__links li.current-menu-item > a, .mainnav__links li.current_page_item > a {
    text-decoration-line: underline;
    text-decoration-thickness: 2px;
    text-decoration-color: rgb(211, 119, 41);
    text-underline-offset: 4px;
}

.mainnav__cta {
    margin-left: auto;
    display: flex;
    align-items: center;
    padding: 0 28px;
    background: var(--red);
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    border-left: var(--border);
    flex-shrink: 0;
    transition: opacity .15s;
}

.mainnav__cta:hover {
    opacity: .85;
    color: var(--white);
}

.mainnav__toggle {
    display: none;
    background: transparent;
    border: none;
    border-left: var(--border);
    padding: 0 22px;
    cursor: pointer;
    font-size: 22px;
    color: var(--black);
    align-items: center;
}

/* ─── HERO ─── */

.hero {
    position: relative;
    height: calc(80vh + 30px);
    min-height: 500px;
    max-height: 750px;
    background: var(--black);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.hero__bg {
    position: absolute;
    inset: 0;
    background: var(--black);
    overflow: hidden;
}

.hero__bg::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient( 0deg, transparent, transparent 79px, rgba(255,255,255,.04) 79px, rgba(255,255,255,.04) 80px ), repeating-linear-gradient( 90deg, transparent, transparent 79px, rgba(255,255,255,.03) 79px, rgba(255,255,255,.03) 80px );
}

.hero__bg::after {
    content: "";
    position: absolute;
    right: -80px;
    top: -80px;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(211,119,41,.22) 0%, transparent 70%);
}

.hero__inner {
    position: relative;
    z-index: 1;
    padding: 0 32px 48px;
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 32px;
    align-items: end;
}

.hero__tag {
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--red);
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.hero__tag::before {
    content: "";
    width: 28px;
    height: 2px;
    background: var(--red);
}

.hero__title {
    font-family: var(--font-display);
    font-weight: 900;
    line-height: .92;
    text-transform: uppercase;
    color: var(--white);
    letter-spacing: -.02em;
    margin: 0;
    font-size: 72px;
}

.hero__title em {
    font-style: normal;
    color: var(--red);
}

.hero__side {
    padding-bottom: 8px;
}

.hero__side-text {
    font-size: 15px;
    font-weight: 300;
    line-height: 1.6;
    color: rgba(255,255,255,.8);
    margin-bottom: 24px;
}

.hero__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--white);
    color: var(--black);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 14px 24px;
    transition: background .15s, color .15s;
}

.hero__btn:hover {
    background: var(--red);
    color: var(--white);
}

.hero__btn-arrow {
    font-size: 16px;
}

.hero__deco {
    position: absolute;
    top: 0;
    right: 0;
    width: 60%;
    height: 100%;
    overflow: hidden;
    pointer-events: none;
}

.hero__deco-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    opacity: .45;
    filter: grayscale(30%) contrast(1.1);
}

.hero__deco::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, var(--black) 0%, transparent 40%);
    z-index: 1;
}

.hero__year {
    position: absolute;
    bottom: 48px;
    left: 32px;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: rgba(255,255,255,.25);
    z-index: 1;
}

.hero__scroll-hint {
    position: absolute;
    bottom: 160px;
    right: 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    z-index: 2;
}

.hero__scroll-hint span {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(255,255,255,.35);
    writing-mode: vertical-lr;
}

.hero__scroll-line {
    width: 1px;
    height: 48px;
    background: linear-gradient(to bottom, rgba(255,255,255,.35), transparent);
}

.hero__title-wrap {
    position: absolute;
    right: 32px;
    bottom: 48px;
    z-index: 3;
    text-align: right;
    max-width: 780px;
}

/* ─── PAGE HERO (interior pages) ─── */

.page-hero {
    background: var(--black);
    color: var(--white);
    padding: 80px 0 64px;
    position: relative;
    overflow: hidden;
}

.page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient( 0deg, transparent, transparent 79px, rgba(255,255,255,.04) 79px, rgba(255,255,255,.04) 80px );
}

.page-hero__inner {
    position: relative;
    z-index: 1;
}

.page-hero__tag {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 10px;
}

.page-hero__title {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(48px, 6vw, 88px);
    line-height: .95;
    text-transform: uppercase;
    letter-spacing: -.02em;
}

/* ─── TICKER ─── */

.ticker {
    border-top: var(--border);
    border-bottom: var(--border);
    height: 44px;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--black);
}

.ticker__label {
    flex-shrink: 0;
    padding: 0 20px;
    border-right: 1px solid rgba(255,255,255,.15);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--red);
    height: 100%;
    display: flex;
    align-items: center;
}

.ticker__track {
    display: flex;
    gap: 48px;
    padding: 0 32px;
    animation: ticker-scroll 28s linear infinite;
    white-space: nowrap;
}

.ticker__track:hover {
    animation-play-state: paused;
}

.ticker__item {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .06em;
    color: rgba(255,255,255,.7);
    display: flex;
    align-items: center;
    gap: 12px;
}

.ticker__item::after {
    content: "·";
    color: var(--red);
    font-size: 18px;
    line-height: 1;
}

@keyframes ticker-scroll {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

/* ─── SECTION HEADER ─── */

.section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    border-bottom: var(--border);
    padding: 18px 0 10px;
}

.section-header__title {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 14px;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.section-header__link {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--red);
    display: flex;
    align-items: center;
    gap: 6px;
}

.section-header__link:hover {
    text-decoration: underline;
}

/* ─── NOTICIAS ─── */

.noticias {
    padding: 48px 0 64px;
}

.noticias__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    padding-top: 24px;
}

.noticia-card {
    display: block;
    padding: 0;
    border-right: none;
}

.noticia-card__img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    background: #e8e4e0;
}

.noticia-card__tag {
    margin-bottom: 8px;
}

.noticia-card__title {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 18px;
    line-height: 1;
    letter-spacing: -.01em;
    text-transform: uppercase;
    margin-bottom: 10px;
    transition: color .15s;
}

.noticia-card:hover .noticia-card__title {
    color: var(--red);
}

.noticia-card__excerpt {
    font-size: 14px;
    line-height: 1.55;
    color: var(--gray-dark);
    font-weight: 400;
}

.noticia-card__date {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    color: var(--gray-mid);
    text-transform: uppercase;
    margin-top: 12px;
    padding-top: 12px;
    border-top: var(--border);
}

/* Tablet */

@media (max-width: 1100px) {
    .noticias__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Móvil */

@media (max-width: 600px) {
    .noticias {
        padding: 40px 0 56px;
    }

    .noticias__grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

/* ─── PROGRAMAS STRIP ─── */

.programas-strip {
    background: var(--black);
    padding: 0 32px 0 32px;
    border-top: 4px solid var(--red);
}

.programas-strip__inner {
    max-width: 1340px;
    margin: 0 auto;
}

.programas-strip__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 20px 0 12px;
    border-bottom: 1px solid rgba(255,255,255,.12);
}

.programas-strip__header-title {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 14px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--white);
}

.programas-strip__header-link {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--red);
}

.programas-strip__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.programa-card {
    border-right: 1px solid rgba(255,255,255,.1);
    padding: 28px 28px 32px 0;
}

.programa-card:last-child {
    border-right: none;
}

.programa-card:nth-child(2), .programa-card:nth-child(3), .programa-card:nth-child(4) {
    padding-left: 28px;
}

.programa-card__num {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 80px;
    line-height: .85;
    color: rgba(255,255,255,.15);
    letter-spacing: -.02em;
    margin-bottom: -14px;
}

.programa-card__tag {
    margin-bottom: 10px;
}

.programa-card__tag span {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--red);
}

.programa-card__title {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 32px;
    line-height: .95;
    text-transform: uppercase;
    color: var(--white);
    letter-spacing: -.01em;
    margin-bottom: 14px;
    transition: color .15s;
}

.programa-card__title:hover {
    color: var(--red);
}

.programa-card__text {
    font-size: 14px;
    line-height: 1.65;
    color: rgba(255,255,255,.55);
}

.programa-card__btn {
    margin-top: 20px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(255,255,255,.2);
    color: rgba(255,255,255,.7);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 9px 14px;
    transition: border-color .15s, color .15s, background .15s;
}

.programa-card__btn:hover {
    border-color: var(--red);
    color: var(--white);
    background: var(--red);
}

/* ─── SERVICIOS ─── */

.servicios {
    padding: 64px 0;
}

.servicios__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border-top: var(--border);
}

.servicio-item {
    border-right: var(--border);
    padding: 28px 28px 28px 0;
    border-bottom: var(--border);
}

.servicio-item:nth-child(3n):not(:last-child) {
    border-right: var(--border);
}

.servicio-item:last-child {
    border-right: none;
}

.servicio-item:nth-child(2), .servicio-item:nth-child(3), .servicio-item:nth-child(5) {
    padding-left: 28px;
}

.servicio-item:last-child, .servicio-item:nth-last-child(2) {
    border-bottom: none;
}

.servicio-item:nth-child(4) {
    padding-left: 0;
    border-bottom: var(--border);
}

.servicio-item:nth-child(5) {
    border-bottom: var(--border);
    border-right: var(--border);
}

.servicio-item__num {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 10px;
}

.servicio-item__title {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 26px;
    line-height: .98;
    text-transform: uppercase;
    margin-bottom: 12px;
    letter-spacing: -.01em;
    transition: color .15s;
}

.servicio-item__title:hover {
    color: var(--red);
}

.servicio-item__text {
    font-size: 14px;
    line-height: 1.65;
    color: var(--gray-dark);
}

.servicio-item__link {
    margin-top: 14px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--red);
    display: flex;
    align-items: center;
    gap: 6px;
}

.servicio-item__link:hover {
    text-decoration: underline;
}

/* ─── BANNER ─── */

.banner {
    position: relative;
    height: 420px;
    background: var(--black);
    display: flex;
    align-items: center;
    overflow: hidden;
}

.banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient( -45deg, transparent, transparent 38px, rgba(255,255,255,.025) 38px, rgba(255,255,255,.025) 39px );
}

.banner__img-col {
    position: absolute;
    right: 0;
    top: 0;
    width: 40%;
    height: 100%;
    overflow: hidden;
}

.banner__img-col img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .35;
    filter: grayscale(40%);
}

.banner__img-col::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, var(--black) 0%, transparent 60%);
    z-index: 1;
}

.banner__inner {
    max-width: 1340px;
    margin: 0 auto;
    padding: 0 32px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
    width: 100%;
    position: relative;
    z-index: 1;
}

.banner__tag {
    margin-bottom: 16px;
    color: var(--red);
}

.banner__title {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(44px, 5vw, 72px);
    line-height: .92;
    text-transform: uppercase;
    color: var(--white);
    letter-spacing: -.02em;
    margin-bottom: 20px;
}

.banner__text {
    font-size: 15px;
    line-height: 1.65;
    color: rgba(255,255,255,.7);
}

.banner__actions {
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-items: flex-start;
}

.banner__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--red);
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 16px 28px;
    transition: opacity .15s;
}

.banner__btn:hover {
    opacity: .85;
    color: var(--white);
}

.banner__btn-outline {
    background: transparent;
    border: 1px solid rgba(255,255,255,.35);
    color: rgba(255,255,255,.8);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 15px 28px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: border-color .15s, color .15s;
}

.banner__btn-outline:hover {
    border-color: var(--white);
    color: var(--white);
}

.banner__info {
    color: rgba(255,255,255,.5);
    font-size: 12px;
    margin-top: 4px;
}

/* ─── HORARIO STRIP ─── */

.horario-strip {
    border-top: var(--border);
    border-bottom: var(--border);
    display: flex;
    align-items: stretch;
    margin-top: 60px;
}

.horario-cell {
    flex: 1;
    padding: 22px 28px;
    border-right: var(--border);
    display: flex;
    gap: 16px;
}

.horario-cell:last-child {
    border-right: none;
}

.horario-cell__label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gray-mid);
    white-space: nowrap;
}

.horario-cell__value {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 20px;
    text-transform: uppercase;
    letter-spacing: -.01em;
    margin-top: 10px;
}

.horario-cell__value a {
    display: block;
    margin-top: 4px;
    font-size: 15px;
}

.icon-fa-custom {
    margin-right: 8px;
    font-size: 12px;
    color: var(--red);
}

/* ─── GALERÍA ─── */

.galeria {
    padding: 0 0 64px;
}

.galeria__grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: 220px 220px;
    gap: 4px;
    margin-top: 24px;
}

.galeria__item {
    overflow: hidden;
    background: var(--gray-light);
}

.galeria__item:nth-child(1) {
    grid-column: span 5;
    grid-row: span 2;
}

.galeria__item:nth-child(2) {
    grid-column: span 4;
}

.galeria__item:nth-child(3) {
    grid-column: span 3;
}

.galeria__item:nth-child(4) {
    grid-column: span 3;
}

.galeria__item:nth-child(5) {
    grid-column: span 4;
}

.galeria__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
    display: block;
}

.galeria__item:hover .galeria__img {
    transform: scale(1.04);
}

/* ─── NEWSLETTER ─── */

.newsletter {
    background: var(--gray-light);
    border-top: var(--border);
    padding: 48px 32px;
}

.newsletter__inner {
    max-width: 1340px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 480px;
    gap: 64px;
    align-items: center;
}

.newsletter__tag {
    margin-bottom: 12px;
}

.newsletter__title {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 48px;
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: -.02em;
}

.newsletter__form {
    display: flex;
    gap: 0;
}

.newsletter__input {
    flex: 1;
    border: 1px solid #c0bbb4;
    border-right: none;
    padding: 14px 16px;
    font-family: var(--font-body);
    font-size: 13px;
    background: var(--white);
    outline: none;
}

.newsletter__input:focus {
    border-color: var(--black);
}

.newsletter__submit {
    background: var(--black);
    color: var(--white);
    border: none;
    padding: 14px 24px;
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s;
}

.newsletter__submit:hover {
    background: var(--red);
}

/* ─── FOOTER ─── */

.footer {
    background: var(--black);
    color: var(--white);
    padding: 56px 32px 0;
}

.footer__inner {
    max-width: 1340px;
    margin: 0 auto;
}

.footer__top {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.5fr;
    gap: 48px;
    padding-bottom: 48px;
    border-bottom: 1px solid rgba(255,255,255,.1);
}

.footer__logo-img {
    height: 42px;
    width: auto;
    display: block;
    margin-bottom: 16px;
    filter: brightness(0) invert(1);
}

.footer__tagline {
    font-size: 13px;
    color: #d37729;
    line-height: 1.65;
    max-width: 280px;
}

.footer__col-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(255,255,255,.35);
    margin-bottom: 20px;
}

.footer__col-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer__col-link, .footer__col-links a {
    font-size: 13.5px;
    color: rgba(255,255,255,.65);
    transition: color .15s;
}

.footer__col-link:hover, .footer__col-links a:hover {
    color: var(--white);
}

.footer__address {
    font-size: 13px;
    color: rgba(255,255,255,.5);
    line-height: 1.8;
    font-style: normal;
}

.footer__address a {
    color: rgba(255,255,255,.65);
}

.footer__address a:hover {
    color: var(--white);
}

.footer__social {
    display: flex;
    gap: 12px;
    margin-top: 16px;
}

.footer__social a {
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255,255,255,.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: rgba(255,255,255,.7);
    transition: all .2s ease;
}

.footer__social a:hover {
    border-color: var(--red);
    background: var(--red);
    color: var(--white);
    transform: translateY(-2px);
}

.footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0;
    border-top: 1px solid rgba(255,255,255,.08);
}

.footer__copy {
    font-size: 11px;
    color: rgba(255,255,255,.3);
}

.footer__legal {
    display: flex;
    gap: 20px;
}

.footer__legal a {
    font-size: 11px;
    color: rgba(255,255,255,.3);
    transition: color .15s;
}

.footer__legal a:hover {
    color: rgba(255,255,255,.7);
}

/* ─── PAGE / POST CONTENT ─── */

.page-content__inner h1, .page-content__inner h2, .page-content__inner h3 {
    font-family: var(--font-display);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -.01em;
    line-height: 1.05;
}

.page-content__inner h1 {
    font-size: 56px;
}

.page-content__inner h2 {
    font-size: 38px;
}

.page-content__inner h3 {
    font-size: 26px;
}

.page-content__inner p {
    margin: 0 0 1.2em;
}

.page-content__inner a {
    color: var(--red);
    border-bottom: 1px solid currentColor;
}

.page-content__inner a:hover {
    color: var(--black);
}

.page-content__inner_fondo_black a:hover {
    color: white;
}

.page-content__inner ul, .page-content__inner ol {
    margin: 0 0 1.2em 1.4em;
}

.page-content__inner img {
    margin: 1.2em 0;
}

.page-content__inner blockquote {
    border-left: 3px solid var(--red);
    padding-left: 18px;
    margin: 1.6em 0;
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.15;
}

.post-meta {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gray-mid);
    margin-top: 14px;
}

.post-meta a {
    color: var(--red);
}

.archive-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px 24px;
    padding: 48px 0 64px;
    border-top: var(--border);
}

.archive-grid .noticia-card {
    border-right: none;
    padding: 0;
}

.archive-grid .noticia-card__title {
    font-size: 24px;
}

.pagination {
    display: flex;
    gap: 8px;
    justify-content: center;
    padding: 24px 0 64px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pagination a, .pagination span {
    padding: 10px 14px;
    border: var(--border);
}

.pagination .current {
    background: var(--black);
    color: var(--white);
    border-color: var(--black);
}

/* ─── 404 ─── */

.notfound {
    padding: 120px 0;
    text-align: center;
}

.notfound__title {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(80px, 14vw, 200px);
    line-height: 1;
    color: var(--red);
    letter-spacing: -.04em;
}

.notfound__text {
    font-size: 16px;
    color: var(--gray-dark);
    margin-top: 12px;
}

.notfound__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--black);
    color: var(--white);
    padding: 14px 28px;
    margin-top: 24px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.notfound__btn:hover {
    background: var(--red);
}

/* ─── RESPONSIVE ─── */

@media (max-width: 1100px) {
    .footer__top {
        grid-template-columns: 1fr 1fr;
    }

    .archive-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .servicios__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .servicio-item:nth-child(odd) {
        padding-left: 0;
    }

    .servicio-item:nth-child(even) {
        padding-left: 28px;
        border-right: none;
    }

    .servicio-item {
        border-right: var(--border);
    }

    .servicio-item:nth-child(2n) {
        border-right: none;
    }
}

@media (max-width: 900px) {
    .mainnav__logo {
        padding: 0 16px;
    }

    .mainnav__links {
        display: none;
        position: absolute;
        top: 102px;
        left: 0;
        right: 0;
        flex-direction: column;
        background: var(--white);
        border-top: var(--border);
        border-bottom: var(--border);
        z-index: 50;
        align-items: stretch;
    }

    .mainnav__links.is-open {
        display: flex;
    }

    .mainnav__links li {
        width: 100%;
    }

    .mainnav__link, .mainnav__links a {
        width: 100%;
        height: 52px;
        border-right: none;
        border-bottom: var(--border);
        padding: 0 20px;
    }

    .mainnav__cta {
        display: none;
    }

    .mainnav__toggle {
        display: inline-flex;
        margin-left: auto;
    }

    .hero__side {
        display: none;
    }

    .hero__deco {
        width: 100%;
        opacity: .25;
    }

    .noticias__grid {
        grid-template-columns: 1fr;
    }

    .noticia-card {
        border-right: none;
        padding: 24px 0;
        border-bottom: var(--border);
    }

    .noticia-card__stack {
        border-left: none;
    }

    .servicios__grid {
        grid-template-columns: 1fr;
    }

    .servicio-item {
        padding: 28px 0 !important;
        border-right: none;
        border-bottom: var(--border);
    }

    .horario-strip {
        flex-wrap: wrap;
    }

    .horario-cell {
        flex: 1 1 50%;
        border-bottom: var(--border);
    }

    .galeria__grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }

    .galeria__item {
        grid-column: span 1 !important;
        grid-row: span 1 !important;
        height: 160px;
    }

    .newsletter__inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .newsletter__title {
        font-size: 36px;
    }

    .archive-grid {
        grid-template-columns: 1fr;
    }

    .page-content__inner h1 {
        font-size: 40px;
    }

    .page-content__inner h2 {
        font-size: 28px;
    }
}

.escola-musica-header {
    color: var(--white);
    background-image: url("/wp-content/uploads/2026/05/escuela-musica-2-1.webp");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-top: 4px solid var(--red);
    margin-top: 30px;
    padding: 30px;
}

/* ─── SALAS DE ENSAYO ─── */

.ensayo-page {
    overflow: hidden;
}

.ensayo-hero {
    padding: 96px 0 72px;
}

.ensayo-hero__inner {
    max-width: 980px;
}

.ensayo-hero__text {
    max-width: 540px;
    margin-top: 22px;
    font-size: 16px;
    line-height: 1.65;
    color: rgba(255,255,255,.68);
}

.ensayo-text-grey {
    font-size: 17px;
    line-height: 1.7;
    color: var(--gray-dark);
    margin-bottom: 22px;
}

/* Intro */

.ensayo-intro {
    display: grid;
    grid-template-columns: 420px 1fr;
    gap: 72px;
    padding-top: 72px;
    padding-bottom: 48px;
}

.ensayo-intro__header h2, .ensayo-rates__intro h2, .ensayo-cta h2 {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(42px, 5vw, 72px);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: -.02em;
    margin-top: 12px;
}

.ensayo-intro__content {
    max-width: 760px;
    padding-top: 6px;
}

.ensayo-intro__content p {
    font-size: 17px;
    line-height: 1.7;
    color: var(--gray-dark);
    margin-bottom: 22px;
}

.ensayo-intro__content p:first-child {
    color: var(--black);
    font-size: 20px;
    line-height: 1.55;
}

/* Tarifas */

.ensayo-rates {
    padding-bottom: 72px;
}

.ensayo-rates__intro {
    display: grid;
    grid-template-columns: 1fr 520px;
    gap: 72px;
    padding: 36px 0 32px;
}

.ensayo-rates__intro p {
    font-size: 15px;
    line-height: 1.75;
    color: var(--gray-dark);
    padding-top: 8px;
}

.ensayo-rates__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    border-top: var(--border);
    border-bottom: var(--border);
}

.ensayo-card {
    display: grid;
    grid-template-rows: auto 1fr;
    border-right: var(--border);
}

.ensayo-card:last-child {
    border-right: none;
}

.ensayo-card__image {
    overflow: hidden;
    background: var(--gray-light);
}

.ensayo-card__image img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    transition: transform .45s ease;
}

.ensayo-card:hover .ensayo-card__image img {
    transform: scale(1.035);
}

.ensayo-card__content {
    padding: 30px 32px 36px;
}

.ensayo-card__content h3 {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 38px;
    line-height: .95;
    text-transform: uppercase;
    letter-spacing: -.01em;
    margin: 10px 0 24px;
}

.ensayo-price-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: var(--border);
}

.ensayo-price-list li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 24px;
    padding: 16px 0;
    border-bottom: var(--border);
}

.ensayo-price-list strong {
    font-family: var(--font-display);
    font-size: 36px;
    line-height: 1;
    color: var(--red);
}

.ensayo-price-list span {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gray-dark);
    text-align: right;
}

/* Info strip */

.ensayo-info-strip {
    background: var(--black);
    color: var(--white);
    border-top: 4px solid var(--red);
}

.ensayo-info-strip__inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.ensayo-info-strip__item {
    padding: 26px 28px 28px 0;
    border-right: 1px solid rgba(255,255,255,.12);
}

.ensayo-info-strip__item:nth-child(2), .ensayo-info-strip__item:nth-child(3) {
    padding-left: 28px;
}

.ensayo-info-strip__item:last-child {
    border-right: none;
}

.ensayo-info-strip__item span {
    display: block;
    margin-bottom: 8px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--red);
}

.ensayo-info-strip__item strong {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 25px;
    line-height: 1;
    text-transform: uppercase;
}

/* CTA */

.ensayo-cta {
    padding: 72px 0 88px;
    background: var(--gray-light);
}

.ensayo-cta__inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 48px;
    align-items: end;
}

.ensayo-cta p {
    max-width: 560px;
    margin-top: 18px;
    font-size: 16px;
    line-height: 1.7;
    color: var(--gray-dark);
}

.ensayo-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--black);
    color: var(--white);
    padding: 17px 30px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: background .15s, color .15s;
    white-space: nowrap;
}

.ensayo-cta__btn:hover {
    background: var(--red);
    color: var(--white);
}

/* Responsive */

@media (max-width: 1000px) {
    .ensayo-intro, .ensayo-rates__intro, .ensayo-cta__inner {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .ensayo-rates__grid {
        grid-template-columns: 1fr;
    }

    .ensayo-card {
        border-right: none;
        border-bottom: var(--border);
    }

    .ensayo-card:last-child {
        border-bottom: none;
    }

    .ensayo-info-strip__inner {
        grid-template-columns: 1fr;
    }

    .ensayo-info-strip__item, .ensayo-info-strip__item:nth-child(2), .ensayo-info-strip__item:nth-child(3) {
        padding-left: 0;
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,.12);
    }

    .ensayo-info-strip__item:last-child {
        border-bottom: none;
    }
}

@media (max-width: 640px) {
    .ensayo-hero {
        padding: 72px 0 56px;
    }

    .ensayo-intro {
        padding-top: 48px;
    }

    .ensayo-card__content {
        padding: 24px 22px 30px;
    }

    .ensayo-card__content h3 {
        font-size: 32px;
    }

    .ensayo-price-list strong {
        font-size: 30px;
    }

    .ensayo-price-list li {
        gap: 14px;
    }

    .ensayo-cta {
        padding: 56px 0 64px;
    }
}

/* Galería salas de ensayo y estudio de grabación */

.ensayo-gallery-simple, .estudio-grabacion-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    padding-bottom: 72px;
}

/* Cada imagen se comporta como bloque */

.ensayo-gallery-simple img, .estudio-grabacion-gallery img {
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
    background: var(--gray-light);
    transition: transform .45s ease, filter .45s ease;
    cursor: pointer;
    border: var(--border);
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
}

/* Hover efecto */

.ensayo-gallery-simple img:hover, .estudio-grabacion-gallery img:hover {
    transform: scale(1.04);
    filter: contrast(1.06);
}

@media (max-width: 900px) {
    .ensayo-gallery-simple, .estudio-grabacion-gallery {
        grid-template-columns: 1fr;
        gap: 18px;
        padding-bottom: 56px;
    }

    .ensayo-gallery-simple img, .estudio-grabacion-gallery img {
        aspect-ratio: 16 / 10;
    }
}

.estudio-banner {
    width: 100%;
    height: 450px;
    position: relative;
    background: var(--black);
}

.estudio-banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 900px) {
    .estudio-banner {
        height: 260px;
    }
}

.estudio-prices {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: var(--border);
    border-bottom: var(--border);
    margin-bottom: 72px;
}

.estudio-prices__col {
    padding: 40px 35px;
    border-right: var(--border);
}

.estudio-prices__col:last-child {
    border-right: none;
}

.estudio-prices__tag {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 32px;
}

.estudio-prices__title {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(32px, 3.2vw, 48px);
    line-height: .95;
    text-transform: uppercase;
    letter-spacing: -.02em;
    margin-bottom: 34px;
}

.estudio-prices__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 0;
    border-top: var(--border);
}

.estudio-prices__row:last-child {
    border-bottom: var(--border);
}

.estudio-prices__price {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 46px;
    line-height: 1;
    color: var(--red);
    text-transform: uppercase;
}

.estudio-prices__desc {
    font-size: 18px;
    line-height: 1.3;
    text-align: right;
}

@media (max-width: 1100px) {
    .estudio-prices {
        grid-template-columns: 1fr;
    }

    .estudio-prices__col {
        border-right: none;
        border-bottom: var(--border);
        padding: 40px 0;
    }

    .estudio-prices__col:last-child {
        border-bottom: none;
    }
}

@media (max-width: 600px) {
    .estudio-prices__row {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .estudio-prices__desc {
        text-align: left;
    }
}

.grabacion-intro {
    display: grid;
    grid-template-columns: 420px 1fr;
    gap: 72px;
    padding-top: 72px;
    padding-bottom: 30px;
}

.grabacion-intro__header h2 {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(42px, 5vw, 72px);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: -.02em;
    margin-top: 12px;
}

.grabacion-intro__content {
    max-width: 760px;
    padding-top: 6px;
}

.grabacion-intro__content p {
    font-size: 17px;
    line-height: 1.7;
    color: var(--gray-dark);
    margin-bottom: 22px;
}

.grabacion-intro__content p:first-child {
    color: var(--black);
    font-size: 20px;
    line-height: 1.55;
}

/* ─── INTRO SERVICIOS ─── */

.intro-servicios {
    padding: 72px 0;
    border-bottom: var(--border);
}

.intro-servicios__top {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 48px;
    margin-bottom: 56px;
}

.intro-servicios__heading h2 {
    font-family: var(--font-display);
    font-size: clamp(44px, 5vw, 78px);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: -.03em;
    margin-bottom: 18px;
}

.intro-servicios__heading h2 em {
    font-style: normal;
    color: var(--red);
}

.intro-servicios__heading p {
    max-width: 760px;
    font-size: 18px;
    line-height: 1.7;
    color: var(--gray-dark);
}

.intro-servicios__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: var(--border);
}

.intro-servicios__card {
    padding: 28px 28px 32px 0;
    border-right: var(--border);
}

.intro-servicios__card:nth-child(2), .intro-servicios__card:nth-child(3) {
    padding-left: 28px;
}

.intro-servicios__card:last-child {
    border-right: none;
}

.intro-servicios__num {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 12px;
}

.intro-servicios__card h3 {
    font-family: var(--font-display);
    font-size: 30px;
    line-height: .95;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.intro-servicios__card p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--gray-dark);
}

.pag-alquiler.section-header {
    padding-bottom: 0;
    margin-left: 32px;
    margin-right: 32px;
}

/* DARK BLOCK */

.intro-servicios-dark {
    background: var(--black);
    color: var(--white);
    padding: 84px 0;
}

.intro-servicios-dark__inner {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 64px;
    align-items: center;
}

.intro-servicios-dark h2 {
    font-family: var(--font-display);
    font-size: clamp(42px, 5vw, 74px);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: -.03em;
}

.intro-servicios-dark__content p {
    font-size: 17px;
    line-height: 1.8;
    color: rgba(255,255,255,.7);
    margin-bottom: 28px;
}

.intro-servicios-dark__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--red);
    color: var(--white);
    padding: 15px 24px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.intro-servicios-dark__btn:hover {
    opacity: .85;
    color: var(--white);
}

@media (max-width: 900px) {
    .intro-servicios__top, .intro-servicios-dark__inner, .intro-servicios__grid {
        grid-template-columns: 1fr;
    }

    .intro-servicios__card {
        border-right: none;
        border-bottom: var(--border);
        padding: 28px 0 !important;
    }

    .intro-servicios__heading h2, .intro-servicios-dark h2 {
        font-size: 42px;
    }
}

.custom-white-title {
    color: white;
    margin-top: 50px;
    margin-bottom: 30px;
}

.escola-intro {
    padding: 80px 0 80px 0;
    border-bottom: var(--border);
    background: var(--white);
    position: relative;
}

.escola-intro__inner {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 72px;
    align-items: start;
}

.escola-intro__tag {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 18px;
}

.escola-intro__title {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(48px, 6vw, 84px);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: -.03em;
    max-width: 620px;
}

.escola-intro__right {
    padding-top: 12px;
}

.escola-intro__text {
    font-size: 18px;
    line-height: 1.75;
    color: var(--gray-dark);
    margin-bottom: 28px;
    max-width: 560px;
}

.escola-intro__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--red);
    transition: transform .15s ease;
}

.escola-intro__link:hover {
    transform: translateX(4px);
}

/* ─── GO TO TOP · VARIANTE 2 ─── */

.go-top {
    position: fixed;
    right: 28px;
    bottom: 55px;
    width: 32px;
    height: 66px;
    border-radius: 999px;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 14px;
    text-decoration: none;
    font-size: 24px;
    font-weight: 900;
    line-height: 1;
    z-index: 999;
    border: 2px solid var(--red);
    background: linear-gradient( to bottom, #eebe41 50%, var(--red) 50% );
    color: white;
    box-shadow: 0 10px 28px rgba(0,0,0,.18);
    transition: background .15s, color .15s, border-color .15s, transform .15s, opacity .15s;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
}

.go-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.go-top:hover {
    background: linear-gradient( to bottom, var(--red) 50%, var(--black) 50% );
    border-color: var(--red);
    transform: translateY(-2px);
}

@media (max-width: 900px) {
    .go-top {
        right: 16px;
        bottom: 16px;
        width: 28px;
        height: 72px;
        font-size: 20px;
        padding-top: 12px;
    }
}

.alquiler-tecnicos .intro-servicios-dark__inner {
    grid-template-columns: 320px 1fr;
    gap: 72px;
    align-items: start;
}

.alquiler-tecnicos .intro-servicios-dark__btn, .alquiler-tecnicos .intro-servicios-dark__btn:visited {
    color: var(--white);
}

.alquiler-tecnicos .intro-servicios-dark__btn:hover {
    color: var(--white);
    background: var(--black);
}

/* ─── VENTA DE ACCESORIOS ─── */

.accesorios-section {
    padding: 84px 0 72px;
    background: var(--white);
}

.accesorios-intro {
    display: grid;
    grid-template-columns: 420px 1fr;
    gap: 72px;
    align-items: start;
    padding-bottom: 60px;
}

.accesorios-intro h2 {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(46px, 5vw, 78px);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: -.03em;
    margin-top: 14px;
}

.accesorios-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: var(--border);
    border-bottom: var(--border);
}

.accesorios-card {
    padding: 34px 32px 38px 0;
    border-right: var(--border);
    min-height: 360px;
    transition: background .2s ease, padding .2s ease;
}

.accesorios-card:nth-child(2), .accesorios-card:nth-child(3) {
    padding-left: 32px;
}

.accesorios-card:last-child {
    border-right: none;
}

.accesorios-card span {
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 18px;
}

.accesorios-card h3 {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 46px;
    line-height: .9;
    text-transform: uppercase;
    letter-spacing: -.02em;
    margin-bottom: 18px;
}

.accesorios-card p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--gray-dark);
    margin-bottom: 26px;
}

.accesorios-card ul {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: var(--border);
}

.accesorios-card li {
    padding: 13px 0;
    border-bottom: var(--border);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.accesorios-card--dark {
    background: var(--black);
    color: var(--white);
    padding-right: 32px;
}

.accesorios-card--dark p {
    color: rgba(255,255,255,.65);
}

.accesorios-card--dark ul, .accesorios-card--dark li {
    border-color: rgba(255,255,255,.14);
}

.accesorios-card:hover h3 {
    color: var(--red);
}

.accesorios-marcas {
    background: var(--black);
    color: var(--white);
    border-top: 4px solid var(--red);
    padding: 34px 0;
}

.accesorios-marcas span {
    display: block;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 12px;
}

.accesorios-marcas div {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(30px, 4vw, 56px);
    line-height: .95;
    text-transform: uppercase;
    letter-spacing: -.02em;
}

.accesorios-cta {
    background: var(--gray-light);
    padding: 72px 0 88px;
}

.accesorios-cta__inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 48px;
    align-items: end;
}

.accesorios-cta h2 {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(42px, 5vw, 72px);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: -.02em;
    margin-top: 12px;
}

.accesorios-cta p {
    max-width: 560px;
    margin-top: 18px;
    font-size: 16px;
    line-height: 1.7;
    color: var(--gray-dark);
}

.accesorios-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--black);
    color: var(--white);
    padding: 17px 30px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    white-space: nowrap;
}

.accesorios-cta__btn:hover {
    background: var(--red);
    color: var(--white);
}

.accesorios-card--media {
    display: flex;
    flex-direction: column;
}

.accesorios-card__image {
    width: calc(100% + 32px);
    margin-top: auto;
    overflow: hidden;
    border: var(--border);
    background: var(--black);
}

.accesorios-card__image img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    object-position: center;
    display: block;
}

.accesorios-card--media:hover .accesorios-card__image img {
    filter: contrast(1.12) saturate(1);
}

@media (max-width: 900px) {
    .accesorios-intro, .accesorios-grid, .accesorios-cta__inner {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .accesorios-card, .accesorios-card:nth-child(2), .accesorios-card:nth-child(3) {
        padding: 30px 0;
        border-right: none;
        border-bottom: var(--border);
        min-height: auto;
    }

    .accesorios-card--dark {
        padding: 30px 24px;
    }
}

.school-hero {
    position: relative;
    left: 50%;
    width: 100vw;
    margin-left: -50vw;
    overflow: hidden;
    padding-top: 70px;
    padding-bottom: 70px;
    background: rgb(240, 239, 237);
    color: var(--black);
    border-top: 4px solid var(--red);
}

.school-hero__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: 56px;
    align-items: start;
}

.school-hero__content {
    max-width: 760px;
    padding-left: 30px;
}

/* ─── EYEBROW ─── */

.school-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
    color: var(--red);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.school-hero__eyebrow::before {
    content: "";
    width: 42px;
    height: 2px;
    background: var(--red);
}

/* ─── TITLE ─── */

.school-hero__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(56px, 7vw, 108px);
    font-weight: 900;
    line-height: .9;
    letter-spacing: -.05em;
    text-transform: uppercase;
    color: var(--black);
}

.school-hero__title em {
    font-style: normal;
    color: var(--red);
}

/* ─── TEXT ─── */

.school-hero__text {
    max-width: 560px;
    margin-top: 20px;
    font-size: 17px;
    line-height: 1.6;
    color: var(--gray-dark);
}

/* ─── ACTIONS ─── */

.school-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.school-hero__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 13px 20px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: background .15s, border-color .15s, color .15s, transform .15s;
}

.school-hero__btn:hover {
    transform: translateY(-2px);
}

/* Primary */

.school-hero__btn--primary, .school-hero__btn--primary:visited {
    background: var(--red);
    color: white;
}

.school-hero__btn--primary:hover {
    background: #e08a43;
    color: var(--white);
}

/* Secondary */

.school-hero__btn--secondary, .school-hero__btn--secondary:visited {
    background: var(--black);
    border: 1px solid rgba(211,119,41,.35);
    color: var(--red);
}

.school-hero__btn--secondary:hover {
    background: var(--red);
    border-color: var(--red);
    color: var(--white);
}

/* ─── RIGHT PANEL ─── */

.school-hero__panel {
    border-top: 1px solid rgba(211,119,41,.35);
}

.school-hero__panel div {
    padding: 18px 0;
    border-bottom: 1px solid rgba(211,119,41,.35);
}

.school-hero__panel strong {
    display: block;
    font-family: var(--font-display);
    font-size: 34px;
    font-weight: 900;
    line-height: .92;
    text-transform: uppercase;
    color: var(--black);
}

.school-hero__panel span {
    display: block;
    margin-top: 4px;
    font-size: 15px;
    color: var(--gray-dark);
}

@media (max-width: 1000px) {
    .school-hero {
        padding: 56px 0;
    }

    .school-hero__inner {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .school-hero__title {
        font-size: clamp(48px, 13vw, 72px);
    }

    .school-hero__text {
        margin-top: 16px;
        font-size: 15px;
    }

    .school-hero__panel strong {
        font-size: 28px;
    }

    .school-hero__panel div {
        padding: 14px 0;
    }
}

.page-content__inner {
    font-size: 16px;
    line-height: 1.7;
    color: var(--black);
    max-width: none;
}

.contact-page__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
}

.contact-page__map-embed {
    height: 520px;
}

.contact-page__map-embed iframe {
    width: 100%;
    height: 100%;
    display: block;
}

@media (max-width: 900px) {
    .contact-page__grid {
        grid-template-columns: 1fr;
    }
}

/* Botón WPForms · estilo La Cápsula */

.contact-page .wpforms-submit {
    background: var(--red) !important;
    color: var(--white) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 15px 28px !important;
    font-family: var(--font-body) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: background .15s ease, color .15s ease, opacity .15s ease !important;
}

.contact-page .wpforms-submit:hover {
    background: var(--black) !important;
    color: var(--white) !important;
}

.contact-page .wpforms-submit:focus {
    outline: 2px solid var(--black) !important;
    outline-offset: 3px !important;
}

/* ─── MOBILE FINAL ADJUSTMENTS ─── */

@media (max-width: 900px) {
    .wrap {
        padding-left: 15px;
        padding-right: 15px;
    }

    /* Topbar: icons only */

    .topbar {
        padding: 0 10px;
        height: 44px;
    }

    .topbar__left {
        gap: 0;
    }

    .topbar__left a {
        width: 44px;
        height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-right: var(--border);
        font-size: 0;
    }

    .topbar__left a:last-child {
        border-right: none;
    }

    .topbar__left .icon-fa-custom {
        margin-right: 0 !important;
        font-size: 16px;
    }

    .topbar__right a, .topbar__lang {
        height: 44px;
        padding: 0 12px;
        font-size: 11px;
    }

    /* Hero */

    .hero {
        height: 72vh;
        min-height: 620px;
        justify-content: flex-start;
    }

    .hero__inner {
        grid-template-columns: 1fr;
        padding: 120px 20px 40px;
        align-items: start;
    }

    .hero__title-wrap {
        position: relative;
        right: auto;
        bottom: auto;
        max-width: 100%;
        text-align: left;
    }

    .hero__title {
        font-size: 64px;
        line-height: .9;
    }

    .hero__scroll-hint {
        display: none;
    }

    .hero__year {
        bottom: 24px;
        left: 20px;
    }

    /* Programas */

    .programas-strip {
        padding: 0 22px;
    }

    .programas-strip__grid {
        grid-template-columns: 1fr;
    }

    .programa-card, .programa-card:nth-child(2), .programa-card:nth-child(3), .programa-card:nth-child(4) {
        padding: 32px 0;
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,.12);
    }

    .programa-card:last-child {
        border-bottom: none;
    }

    .programa-card__num {
        margin-bottom: -10px;
        font-size: 72px;
    }

    .programa-card__title {
        max-width: 320px;
        font-size: 38px;
    }

    .programa-card__text {
        max-width: 330px;
        font-size: 15px;
    }

    /* Generic banner on mobile: image-only */

    .banner {
        height: 240px;
        padding: 0;
        min-height: 0;
    }

    .banner__inner {
        grid-template-columns: 1fr;
        gap: 24px;
        display: none;
    }

    .banner__img-col {
        width: 100%;
        opacity: 1;
        position: absolute;
        inset: 0;
    }

    .banner__img-col::before {
        display: none;
    }

    .banner__img-col img {
        opacity: 1;
        filter: none;
        object-position: center;
    }

    /* Escuela inscription banner: compact CTA */

    .banner--escuela {
        height: auto;
        padding: 36px 0;
        margin-bottom: 40px !important;
        background: var(--black);
    }

    .banner--escuela .banner__inner {
        display: block;
        padding: 0 18px;
    }

    .banner--escuela .banner__title {
        margin-bottom: 18px;
        font-size: 44px;
    }

    .banner--escuela .banner__text {
        margin-bottom: 14px;
        font-size: 15px;
        line-height: 1.65;
    }

    .banner--escuela .school-hero__actions {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        margin-top: 24px;
    }

    .banner--escuela .banner__btn, .banner--escuela .banner__btn-outline {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .banner--escuela .banner__info {
        font-size: 12px;
        line-height: 1.5;
        text-align: center;
    }

    /* Footer */

    .footer {
        padding: 48px 24px 0;
        text-align: center;
    }

    .footer__top {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .footer__logo-img {
        margin: 0 auto 18px;
    }

    .footer__tagline {
        max-width: 320px;
        margin: 0 auto;
    }

    .footer__social {
        justify-content: center;
    }

    .footer__col-links {
        align-items: center;
    }

    .footer__address {
        text-align: center;
    }

    .footer__bottom {
        flex-direction: column;
        gap: 12px;
        align-items: center;
        padding: 16px 0;
        text-align: center;
    }

    .footer__legal {
        flex-wrap: wrap;
        justify-content: center;
        gap: 12px;
    }

    /* Escuela de música */

    .school-hero {
        padding: 48px 0;
    }

    .school-hero__inner {
        gap: 28px;
        padding: 0 18px;
    }

    .school-hero__content {
        max-width: 100%;
        padding-left: 0;
    }

    .school-hero__title {
        font-size: clamp(42px, 12vw, 64px);
    }

    .school-hero__text {
        max-width: 100%;
    }

    .escola-intro {
        padding: 88px 0 72px;
    }

    .escola-intro__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .escola-intro__title {
        max-width: 100%;
        font-size: clamp(44px, 12vw, 64px);
        line-height: .94;
    }

    .escola-intro__right {
        padding-top: 0;
    }

    .escola-intro__text {
        font-size: 17px;
        max-width: 100%;
        line-height: 1.75;
    }

    /* Grabación */

    .grabacion-intro {
        grid-template-columns: 1fr;
        gap: 24px;
        padding-top: 48px;
        padding-bottom: 12px;
    }

    .grabacion-intro__content {
        max-width: 100%;
        padding-top: 0;
    }

    .grabacion-intro__header h2 {
        margin-top: 8px;
        font-size: clamp(42px, 11vw, 58px);
    }

    .grabacion-intro__content p {
        margin-bottom: 16px;
    }

    /* Alquiler técnicos */

    .alquiler-tecnicos .intro-servicios-dark {
        padding: 40px 0;
    }

    .alquiler-tecnicos .intro-servicios-dark__inner {
        grid-template-columns: 1fr !important;
        gap: 22px;
    }

    .alquiler-tecnicos .intro-servicios-dark h2 {
        font-size: clamp(38px, 11vw, 54px);
    }

    .alquiler-tecnicos .intro-servicios-dark__content {
        max-width: 100%;
    }

    /* Accesorios */

    .accesorios-card__image {
        width: 100%;
        margin-right: 0;
        margin-left: 0;
    }

    .accesorios-card__image img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 10;
        object-fit: cover;
    }
}

/* ─── POLÍTICA DE PRIVACIDAD ─── */

.privacy-hero .page-hero__title span {
    color: var(--red);
}

.privacy-page {
    padding: 72px 0 88px;
    background: var(--white);
}

.privacy-page__inner {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 72px;
    align-items: start;
}

.privacy-page__intro {
    position: sticky;
    top: 110px;
    border-top: 4px solid var(--red);
    padding-top: 22px;
}

.privacy-page__intro p {
    margin-top: 18px;
    font-size: 20px;
    line-height: 1.55;
    color: var(--black);
}

.privacy-content {
    border-top: var(--border);
}

.privacy-block {
    padding: 34px 0 38px;
    border-bottom: var(--border);
}

.privacy-block h2 {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(30px, 3vw, 46px);
    line-height: .95;
    text-transform: uppercase;
    letter-spacing: -.02em;
    margin-bottom: 18px;
}

.privacy-block h3 {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 24px;
    line-height: 1;
    text-transform: uppercase;
    margin: 28px 0 12px;
}

.privacy-block p {
    font-size: 16px;
    line-height: 1.75;
    color: var(--gray-dark);
    margin-bottom: 18px;
}

.privacy-block ul {
    list-style: none;
    margin: 20px 0 0;
    padding: 0;
    border-top: var(--border);
}

.privacy-block li {
    padding: 13px 0;
    border-bottom: var(--border);
    font-size: 14px;
    line-height: 1.55;
    color: var(--gray-dark);
}

.privacy-block li::before {
    content: "→";
    color: var(--red);
    font-weight: 800;
    margin-right: 10px;
}

.privacy-block--highlight {
    background: var(--gray-light);
    margin: 0 -32px;
    padding: 38px 32px 42px;
    border-top: 4px solid var(--red);
}

.privacy-block--consent {
    background: var(--black);
    color: var(--white);
    margin-top: 48px;
    padding: 42px 36px;
    border-bottom: none;
}

.privacy-block--consent h2 {
    color: var(--white);
    margin-top: 12px;
}

.privacy-block--consent p {
    color: rgba(255,255,255,.72);
}

@media (max-width: 900px) {
    .privacy-page {
        padding: 56px 0 68px;
    }

    .privacy-page__inner {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .privacy-page__intro {
        position: static;
    }

    .privacy-block--highlight {
        margin: 0;
        padding: 32px 24px;
    }

    .privacy-block--consent {
        padding: 34px 24px;
    }
}

.legal-hero .page-hero__title span {
    color: var(--red);
}

/* ─── PÁGINA POLÍTICA DE COOKIES · COMPLIANZ ─── */

body.cmplz-document .page-content {
    padding: 72px 32px 88px;
}

body.cmplz-document .page-content__inner {
    max-width: 980px;
    margin: 0 auto;
}

#cmplz-document {
    max-width: none !important;
    font-family: var(--font-body) !important;
    color: var(--black);
}

#cmplz-document > p:first-child {
    border-top: 4px solid var(--red);
    padding-top: 22px;
    margin-bottom: 42px;
    font-size: 15px;
    color: var(--gray-dark);
}

#cmplz-document h2 {
    font-family: var(--font-display) !important;
    font-weight: 900 !important;
    font-size: clamp(30px, 3vw, 46px) !important;
    line-height: .95 !important;
    text-transform: uppercase;
    letter-spacing: -.02em;
    margin: 48px 0 18px !important;
    padding-top: 30px;
    border-top: var(--border);
}

#cmplz-document h3, #cmplz-document h4, #cmplz-document h5, #cmplz-document .cmplz-subtitle {
    font-family: var(--font-display) !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: -.01em;
    color: var(--black);
}

#cmplz-document p, #cmplz-document li, #cmplz-document .cmplz-description, #cmplz-document .cmplz-service-description, #cmplz-document .cmplz-sharing-data {
    font-size: 16px;
    line-height: 1.75;
    color: var(--gray-dark);
}

#cmplz-document a {
    color: var(--red);
    border-bottom: 1px solid currentColor;
}

#cmplz-document a:hover {
    color: var(--black);
}

#cmplz-document ul {
    list-style: none;
    margin: 22px 0 0;
    padding: 0;
    border-top: var(--border);
}

#cmplz-document li {
    padding: 13px 0;
    border-bottom: var(--border);
}

#cmplz-document li::before {
    content: "→";
    color: var(--red);
    font-weight: 800;
    margin-right: 10px;
}

/* Desplegables de cookies */

#cmplz-document .cmplz-dropdown, #cmplz-document .cmplz-category {
    border: var(--border);
    border-radius: 0 !important;
    margin: 14px 0;
    background: var(--white);
}

#cmplz-document .cmplz-service-header, #cmplz-document .cmplz-category-header {
    background: var(--gray-light);
    padding: 18px 22px;
}

#cmplz-document summary {
    cursor: pointer;
}

#cmplz-document summary h3 {
    font-size: 28px !important;
    margin: 0 !important;
}

#cmplz-document summary p {
    margin: 4px 0 0;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--red);
}

#cmplz-document .cmplz-service-description, #cmplz-document .cmplz-sharing-data, #cmplz-document .cookies-per-purpose, #cmplz-document .cmplz-description {
    padding: 20px 22px;
}

/* Tabla/listado de cookies */

#cmplz-document .cookies-per-purpose {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 0;
    border-top: var(--border);
}

#cmplz-document .cookies-per-purpose > div {
    padding: 12px 14px;
    border-bottom: var(--border);
}

#cmplz-document .cookies-per-purpose .purpose {
    grid-column: 1 / -1;
    background: var(--black);
    color: var(--white);
}

#cmplz-document .cookies-per-purpose .purpose h4 {
    color: var(--white);
    margin: 0;
}

/* Gestión consentimiento */

#cmplz-manage-consent-container {
    margin-top: 26px;
}

#cmplz-document .cmplz-categories {
    border-top: 4px solid var(--red);
}

#cmplz-document .cmplz-category-title {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 24px;
    text-transform: uppercase;
}

#cmplz-document .cmplz-always-active {
    color: var(--red);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

@media (max-width: 900px) {
    body.cmplz-document .page-content {
        padding: 56px 24px 68px;
    }

    #cmplz-document .cookies-per-purpose {
        grid-template-columns: 1fr;
    }

    #cmplz-document .cookies-per-purpose > div {
        padding: 10px 0;
    }

    #cmplz-document summary h3 {
        font-size: 24px !important;
    }
}

/* ─────────────────────────────
   COMPLIANZ COOKIE BANNER
───────────────────────────── */

.cmplz-cookiebanner {
    width: 100% !important;
    max-width: none !important;
    background: var(--black) !important;
    color: var(--white) !important;
    border-top: 4px solid var(--red) !important;
    box-shadow: 0 -12px 40px rgba(0,0,0,.24) !important;
    padding: 28px 34px !important;
    font-family: var(--font-body) !important;
}

.cmplz-cookiebanner .cmplz-title {
    font-family: var(--font-display) !important;
    font-size: 34px !important;
    line-height: .95 !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: -.02em !important;
    margin-bottom: 14px !important;
}

.cmplz-cookiebanner .cmplz-message {
    max-width: 760px;
    font-size: 15px !important;
    line-height: 1.7 !important;
    color: rgba(255,255,255,.72) !important;
}

.cmplz-cookiebanner .cmplz-links {
    margin-top: 14px !important;
}

.cmplz-cookiebanner .cmplz-links a {
    color: var(--red) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .12em !important;
}

/* Botones */

.cmplz-cookiebanner .cmplz-buttons {
    gap: 12px !important;
    margin-top: 24px !important;
}

.cmplz-cookiebanner .cmplz-btn {
    appearance: none !important;
    border-radius: 0 !important;
    padding: 16px 22px !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .14em !important;
    transition: .2s ease;
}

/* Aceptar */

.cmplz-cookiebanner .cmplz-accept {
    background: var(--red) !important;
    border: 1px solid var(--red) !important;
    color: var(--white) !important;
}

.cmplz-cookiebanner .cmplz-accept:hover {
    opacity: .9;
}

/* Rechazar */

.cmplz-cookiebanner .cmplz-deny {
    background: transparent !important;
    border: 1px solid rgba(255,255,255,.2) !important;
    color: var(--white) !important;
}

.cmplz-cookiebanner .cmplz-deny:hover {
    border-color: var(--white) !important;
}

/* Preferencias */

.cmplz-cookiebanner .cmplz-view-preferences {
    background: rgba(255,255,255,.08) !important;
    border: 1px solid transparent !important;
    color: var(--white) !important;
}

.cmplz-cookiebanner .cmplz-view-preferences:hover {
    background: rgba(255,255,255,.12) !important;
}

/* Toggles preferencias */

.cmplz-cookiebanner .cmplz-category-title {
    font-family: var(--font-display) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
}

.cmplz-cookiebanner .cmplz-description {
    color: rgba(255,255,255,.7) !important;
}

@media (max-width: 768px) {
    .cmplz-cookiebanner {
        padding: 22px 18px !important;
    }

    .cmplz-cookiebanner .cmplz-title {
        font-size: 28px !important;
    }

    .cmplz-cookiebanner .cmplz-buttons {
        flex-direction: column !important;
    }

    .cmplz-cookiebanner .cmplz-btn {
        width: 100% !important;
    }
}

.contact-page__form {
    margin-left: 10px;
}

@media (max-width: 768px) {
    .contact-page__form {
        margin-left: 0;
    }
}

/* ─── ARTÍCULO WORDPRESS · LA CÁPSULA ─── */

.capsula-article {
    max-width: 820px;
    margin: 0 auto;
    padding: 56px 0 80px;
    font-size: 18px;
    line-height: 1.75;
    color: var(--black);
}

.capsula-article p {
    margin-bottom: 1.45em;
}

.capsula-article strong {
    font-weight: 700;
    color: var(--black);
}

.capsula-article__lead {
    font-size: 22px;
    line-height: 1.55;
    color: var(--black);
    border-left: 4px solid var(--red);
    padding-left: 22px;
    margin-bottom: 40px;
}

.capsula-article__image {
    margin: 42px 0;
    background: var(--gray-light);
}

.capsula-article__image img {
    width: 100%;
    height: auto;
    display: block;
}

.capsula-article__image--poster {
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}

.capsula-article__emoji {
    font-size: 42px;
    line-height: 1;
    margin: 36px 0 20px;
}

.capsula-article__schedule {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    border-top: var(--border);
    border-bottom: var(--border);
    margin: 42px 0;
}

.capsula-article__schedule div {
    padding: 28px;
    border-right: var(--border);
}

.capsula-article__schedule div:last-child {
    border-right: none;
}

.capsula-article__schedule span {
    display: block;
    font-family: var(--font-display);
    font-size: 52px;
    font-weight: 900;
    line-height: .9;
    color: var(--red);
    text-transform: uppercase;
}

.capsula-article__schedule strong {
    display: block;
    margin-top: 10px;
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: 900;
    line-height: .95;
    text-transform: uppercase;
}

.capsula-article__schedule small {
    display: block;
    margin-top: 8px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gray-dark);
}

.capsula-article__cta {
    margin: 52px 0 34px;
    padding: 34px;
    background: var(--black);
    color: var(--white);
    border-top: 4px solid var(--red);
}

.capsula-article__cta h2 {
    font-family: var(--font-display);
    font-size: clamp(38px, 5vw, 64px);
    font-weight: 900;
    line-height: .9;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.capsula-article__cta p {
    color: rgba(255,255,255,.72);
    margin-bottom: 0;
}

.capsula-article__cta strong {
    color: var(--white);
}

/* WPForms dentro del artículo */

.capsula-article .wpforms-container {
    margin-top: 36px;
}

.capsula-article .wpforms-title {
    font-family: var(--font-display);
    font-size: 34px;
    font-weight: 900;
    text-transform: uppercase;
    margin-bottom: 20px;
}

.capsula-article .wpforms-field input, .capsula-article .wpforms-field textarea {
    border-radius: 0 !important;
    border: var(--border) !important;
    font-family: var(--font-body) !important;
}

.capsula-article .wpforms-submit {
    background: var(--red) !important;
    color: var(--white) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 15px 28px !important;
    font-family: var(--font-body) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
}

.capsula-article .wpforms-submit:hover {
    background: var(--black) !important;
}

@media (max-width: 700px) {
    .capsula-article {
        padding: 42px 0 64px;
        font-size: 16px;
    }

    .capsula-article__lead {
        font-size: 19px;
    }

    .capsula-article__schedule {
        grid-template-columns: 1fr;
    }

    .capsula-article__schedule div {
        border-right: none;
        border-bottom: var(--border);
        padding: 24px 0;
    }

    .capsula-article__schedule div:last-child {
        border-bottom: none;
    }

    .capsula-article__cta {
        padding: 28px 22px;
    }
}

/* ─── CURSOS DENTRO DE ARTÍCULO ─── */

.capsula-course-list {
    margin: 56px 0;
    border-top: var(--border);
}

.capsula-course {
    padding: 32px 0;
    border-bottom: var(--border);
}

.capsula-course__tag {
    display: block;
    margin-bottom: 10px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--red);
}

.capsula-course h2 {
    margin: 0 0 18px;
    font-family: var(--font-display);
    font-size: clamp(34px, 4vw, 58px);
    font-weight: 900;
    line-height: .9;
    text-transform: uppercase;
    letter-spacing: -.03em;
}

.capsula-course__meta {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 18px;
    align-items: center;
    margin-bottom: 18px;
    padding: 14px 0;
    border-top: var(--border);
    border-bottom: var(--border);
}

.capsula-course__meta strong, .capsula-course__meta span {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gray-dark);
}

.capsula-course__meta b {
    font-family: var(--font-display);
    font-size: 34px;
    font-weight: 900;
    line-height: 1;
    color: var(--red);
}

.capsula-course p {
    max-width: 720px;
    font-size: 16px;
    line-height: 1.75;
    color: var(--gray-dark);
    margin-bottom: 0;
}

.capsula-course--featured {
    background: var(--black);
    color: var(--white);
    margin-left: -32px;
    margin-right: -32px;
    padding: 34px 32px;
    border-top: 4px solid var(--red);
}

.capsula-course--featured h2 {
    color: var(--white);
}

.capsula-course--featured .capsula-course__meta {
    border-color: rgba(255,255,255,.16);
}

.capsula-course--featured .capsula-course__meta strong, .capsula-course--featured .capsula-course__meta span {
    color: rgba(255,255,255,.7);
}

.capsula-article__logo {
    max-width: 520px;
    margin: 52px auto;
}

.capsula-article__logo img {
    width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 700px) {
    .capsula-course__meta {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .capsula-course__meta b {
        font-size: 30px;
    }

    .capsula-course--featured {
        margin-left: 0;
        margin-right: 0;
        padding: 28px 22px;
    }
}

/* ─── PROGRAMA PROFESIONAL DENTRO DE ARTÍCULO ─── */

.capsula-article__video {
    margin: 0 0 48px;
    background: var(--black);
}

.capsula-article__video video {
    width: 100%;
    display: block;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.capsula-pro-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: 52px 0;
    border-top: var(--border);
    border-bottom: var(--border);
}

.capsula-pro-summary article {
    padding: 30px 28px 34px 0;
    border-right: var(--border);
}

.capsula-pro-summary article:nth-child(2), .capsula-pro-summary article:nth-child(3) {
    padding-left: 28px;
}

.capsula-pro-summary article:last-child {
    border-right: none;
}

.capsula-pro-summary span {
    display: block;
    margin-bottom: 12px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--red);
}

.capsula-pro-summary strong {
    display: block;
    margin-bottom: 12px;
    font-family: var(--font-display);
    font-size: 46px;
    font-weight: 900;
    line-height: .9;
    text-transform: uppercase;
    color: var(--black);
}

.capsula-pro-summary p {
    margin-bottom: 0;
    font-size: 14px;
    line-height: 1.65;
    color: var(--gray-dark);
}

.capsula-level-test {
    margin: 64px 0;
    padding: 42px;
    background: var(--black);
    color: var(--white);
    border-top: 4px solid var(--red);
}

.capsula-level-test__tag {
    display: block;
    margin-bottom: 16px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--red);
}

.capsula-level-test h2 {
    margin: 0 0 24px;
    font-family: var(--font-display);
    font-size: clamp(40px, 5vw, 72px);
    font-weight: 900;
    line-height: .9;
    text-transform: uppercase;
    letter-spacing: -.03em;
}

.capsula-level-test p {
    color: rgba(255,255,255,.72);
}

.capsula-level-test strong {
    color: var(--white);
}

.capsula-level-test__date {
    margin: 32px 0;
    padding: 24px 0;
    border-top: 1px solid rgba(255,255,255,.16);
    border-bottom: 1px solid rgba(255,255,255,.16);
}

.capsula-level-test__date span {
    display: block;
    margin-bottom: 8px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--red);
}

.capsula-level-test__date strong {
    display: block;
    font-family: var(--font-display);
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 900;
    line-height: .95;
    text-transform: uppercase;
}

.capsula-article__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 18px;
    padding: 16px 26px;
    background: var(--red);
    color: var(--white) !important;
    border: none !important;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.capsula-article__button:hover {
    background: var(--white);
    color: var(--black) !important;
}

.capsula-article__image--square {
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
}

.capsula-article__image--square img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

@media (max-width: 800px) {
    .capsula-pro-summary {
        grid-template-columns: 1fr;
    }

    .capsula-pro-summary article, .capsula-pro-summary article:nth-child(2), .capsula-pro-summary article:nth-child(3) {
        padding: 28px 0;
        border-right: none;
        border-bottom: var(--border);
    }

    .capsula-pro-summary article:last-child {
        border-bottom: none;
    }

    .capsula-level-test {
        padding: 32px 24px;
    }
}

.school-hero .school-hero__btn--primary, .school-hero .school-hero__btn--primary:link, .school-hero .school-hero__btn--primary:visited {
    color: var(--white);
    border-bottom: none;
}

.school-hero .school-hero__btn--primary:hover {
    background: var(--black);
    color: var(--white);
}

.school-hero .school-hero__btn--secondary, .school-hero .school-hero__btn--secondary:link, .school-hero .school-hero__btn--secondary:visited {
    color: var(--red);
    border-bottom: none;
}

.school-hero .school-hero__btn--secondary:hover {
    background: var(--red);
    color: var(--white);
}

.page-content__inner .banner__btn, .page-content__inner .banner__btn:link, .page-content__inner .banner__btn:visited {
    color: var(--white);
    border-bottom: none;
}

.page-content__inner .banner__btn:hover {
    color: var(--white);
    background: var(--black);
}

.page-content__inner .banner__btn-outline, .page-content__inner .banner__btn-outline:link, .page-content__inner .banner__btn-outline:visited {
    color: var(--white);
    border-bottom: none;
}

.page-content__inner .banner__btn-outline:hover {
    color: var(--white);
    border-color: var(--white);
}

@media (max-width: 900px) {
    .school-programs img, .school-program-card img, .program-card img {
        width: 100%;
        max-width: 100%;
        display: block;
    }

    .school-hero__content .school-hero__text {
        margin-top: 20px;
    }

    .programa-card-img img {
        width: 100%;
    }

    .estudio-grabacion-gallery.wrap {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .pag-alquiler.section-header {
        margin-left: 0;
        margin-right: 0;
    }

    .pag-principal.intro-servicios-dark__inner {
        gap: 30px;
    }

    .intro-servicios-dark-titulo {
        margin-top: 15px;
    }
}

/* ─── THANKS PAGE ─── */

.thanks-page {
    padding: 72px 0 50px;
    background: var(--white);
}

.thanks-page__card {
    max-width: 760px;
    margin: 0 auto;
    padding: 56px 48px 60px;
    text-align: center;
    border-top: 4px solid var(--red);
    border-bottom: var(--border);
    background: var(--gray-light);
}

.thanks-page__icon {
    width: 78px;
    height: 78px;
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--red);
    border-radius: 50%;
    color: var(--red);
    font-family: var(--font-display);
    font-size: 46px;
    font-weight: 900;
    line-height: 1;
}

.thanks-page__card h2 {
    margin: 14px 0 18px;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(42px, 5vw, 68px);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: -.03em;
}

.thanks-page__card p {
    max-width: 560px;
    margin: 0 auto 30px;
    font-size: 18px;
    line-height: 1.7;
    color: var(--gray-dark);
}

.thanks-page__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--black);
    color: var(--white);
    padding: 15px 28px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: background .15s, color .15s, transform .15s;
}

.thanks-page__btn:hover {
    background: var(--red);
    color: var(--white);
    transform: translateY(-2px);
}

@media (max-width: 700px) {
    .thanks-page {
        padding: 64px 0 76px;
    }

    .thanks-page__card {
        padding: 42px 24px 48px;
    }

    .thanks-page__card p {
        font-size: 16px;
    }
}
