/* ============================================================
   ONE Fitness Center — tema premium estilo Equinox
   Negro + azul eléctrico (#0069DE). Minimal, mucho aire,
   imágenes grandes, bordes rectos, tipografía con presencia.
   --color-primario=#0069DE · --color-secundario=#0A0A0A (params)
   ============================================================ */

:root {
	--one-blue: #0069DE;
	--one-dark: #0A0A0A;
	--one-muted: #6b7280;
}

/* ---------------- Tipografía atlética ---------------- */
h1, h2, h3, h4, h5, h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6,
.navbar-nav .nav-link, .btn,
.portada-texto-grande, .portada-texto-pequeno,
.titulo-formulario-contacto, .titulo-whatsapp-contacto {
	font-family: "Oswald", "Manrope", sans-serif !important;
}

h1, h2,
.display-1, .display-2, .display-3, .display-4 {
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: .015em;
	line-height: 1.08;
}

.navbar-nav .nav-link {
	text-transform: uppercase;
	font-weight: 500;
	letter-spacing: .08em;
	font-size: .92rem;
}

/* Títulos de sección: sólido oscuro, grande, con presencia (sin gradiente) */
[id^="divBloque"] .display-2,
[id^="divBloque"] .display-3,
[id^="divBloque"] .display-4,
[id^="divBloque"] .display-5,
[id^="divBloque"] .display-6 {
	color: var(--one-dark) !important;
	-webkit-text-fill-color: var(--one-dark);
	background: none;
	font-weight: 700;
	letter-spacing: .02em;
}

/* Subtítulo de bloque como "eyebrow" azul */
[id^="divBloque"] .lead {
	color: var(--one-muted);
}

/* ---------------- Logo / marca (logo real "ONE", compacto) ---------------- */
.navbar-brand img { width: 80px; max-width: 80px; }
.logo-menu-mobile { width: 72px; }
@media (max-width: 575.98px) {
	.navbar-brand img { width: 72px; padding: 10px 10px 10px 0 !important; }
}

/* ---------------- HERO (altura por aspecto, no full-height) ---------------- */
.swiper-hero, .swiper-hero-con-barra, .swiper-hero .swiper-slide, .swiper-hero-con-barra .swiper-slide {
	/* height: 82vh !important; */
	/* min-height: 540px; */
}

.swiper-hero-sin-barra, .swiper-hero-sin-barra .swiper-slide {
	height: calc(100vw / 2.35);
}

/* Tablet: hero horizontal un poco más alto (estilo mutualmodelo) */
@media (max-width: 767px) {
	.swiper-hero-sin-barra, .swiper-hero-sin-barra .swiper-slide {
		height: calc(100vw / 1.25) !important;
	}
}

/* Mobile (<576px): portadas.php muestra el slider vertical (imagen vertical 2:3) */
.swiper-hero-vertical-sin-barra, .swiper-hero-vertical-sin-barra .swiper-slide {
	height: calc(100vw / 0.66);
}
@media (max-width: 575.98px) {
	.swiper-hero-vertical-sin-barra, .swiper-hero-vertical-sin-barra .swiper-slide {
		height: calc(100vw / 0.66) !important;
	}
}

/* Nav-links más altos en desktop (más aire en la barra) */
@media (min-width: 992px) {
	.navbar-expand-lg[class*=navbar-bg-]:not(.fancy):not(.extended):not(.fixed) .navbar-collapse .nav-link {
		padding-top: 1.25rem;
		padding-bottom: 1.25rem;
	}
}

.portada-texto-pequeno {
	text-transform: uppercase;
	letter-spacing: .38em !important;
	font-weight: 500 !important;
	font-size: .82rem !important;
	margin-bottom: 1.1rem !important;
}

.portada-texto-grande {
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: .005em;
	line-height: 1.02 !important;
	font-size: clamp(2.8rem, 6.5vw, 6rem) !important;
	margin-bottom: 1rem !important;
}

.portada-texto-normal {
	font-family: "Manrope", sans-serif !important;
	font-weight: 400 !important;
	font-size: clamp(1rem, 1.5vw, 1.3rem) !important;
	letter-spacing: .01em;
	opacity: .92;
}

/* ---------------- Whitespace generoso entre secciones ---------------- */
[id^="divBloque"].wrapper {
	padding-top: 5.5rem !important;
	padding-bottom: 5.5rem !important;
}
[id^="divBloque"] .display-4 { margin-bottom: 3rem !important; }

/* ---------------- Bordes rectos (Equinox) — sin tocar botones circulares ---------------- */
.btn:not(.btn-circle), figure.rounded, .rounded, .card, .card-body, img.rounded,
.form-control, .form-select, .pricing.card, .shadow-lg, .shadow-sm {
	border-radius: 0 !important;
}

/* ---------------- Botones rectangulares premium (excluye .btn-circle: scroll-down, play, etc.) ---------------- */
.btn:not(.btn-circle) {
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: .14em;
	font-size: .8rem;
	padding: .9rem 2.1rem !important;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.btn-primary, .btn-primario {
	background-color: var(--one-blue) !important;
	border-color: var(--one-blue) !important;
	color: #fff !important;
}
.btn-primary:hover, .btn-primario:hover {
	background-color: var(--one-dark) !important;
	border-color: var(--one-dark) !important;
	color: #fff !important;
	transform: translateY(-2px);
}
/* Hover invertido (blanco + texto azul) para el CTA del menú y el botón del bloque Sumate/Preinscripción */
.boton-cta-menu:hover,
#divBloquePreinscripcion .btn:hover {
	background-color: #ffffff !important;
	border-color: #ffffff !important;
	color: var(--one-blue) !important;
}

/* ---------------- Tarjetas de disciplina (modelo 5) ---------------- */
#divBloqueDisciplinas figure {
	overflow: hidden;
	margin-bottom: 1rem !important;
}
#divBloqueDisciplinas figure img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform .6s ease;
}
#divBloqueDisciplinas figure:hover img { transform: scale(1.06); }
#divBloqueDisciplinas h4 {
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: .04em;
	margin-top: .9rem !important;
}
#divBloqueDisciplinas .meta { color: var(--one-muted); font-size: .95rem; }

/* ---------------- Bandas modelo 3 (Pase Libre / Servicios / CTA) ---------------- */
#divBloquePaseLibre figure, #divBloqueServicios figure,
#divBloquePreinscripcion figure {
	overflow: hidden;
}
#divBloquePaseLibre figure img, #divBloqueServicios figure img,
#divBloquePreinscripcion figure img {
	transition: transform .6s ease;
}
#divBloquePaseLibre figure:hover img, #divBloqueServicios figure:hover img,
#divBloquePreinscripcion figure:hover img { transform: scale(1.04); }

/* Banda CTA de preinscripción = sección oscura (contraste editorial) */
#divBloquePreinscripcion.wrapper { background: var(--one-dark) !important; }
#divBloquePreinscripcion h2, #divBloquePreinscripcion h3, #divBloquePreinscripcion h4,
#divBloquePreinscripcion .display-4, #divBloquePreinscripcion .display-5,
#divBloquePreinscripcion .display-6, #divBloquePreinscripcion .display-7,
#divBloquePreinscripcion p, #divBloquePreinscripcion .lead {
	color: #fff !important;
	-webkit-text-fill-color: #fff;
}
#divBloquePreinscripcion .meta, #divBloquePreinscripcion .display-7 { color: #d4d8df !important; -webkit-text-fill-color: #d4d8df; }

/* ---------------- Galería mosaico: hover zoom + sharp ---------------- */
#divBloqueGaleria figure { overflow: hidden; margin: 0; }
#divBloqueGaleria figure img { transition: transform .6s ease; }
#divBloqueGaleria figure:hover img { transform: scale(1.07); }

/* ---------------- Franja de beneficios (predefinido 2) ---------------- */
#divBloqueBeneficios .uil, #divBloqueBeneficios [class^="uil-"] {
	color: var(--one-blue);
}

/* ---------------- Botón scroll-to-top en azul (no verde) ---------------- */
.progress-wrap::after { color: var(--one-blue) !important; }
.progress-wrap svg.progress-circle path { stroke: var(--one-blue) !important; }
.progress-wrap { box-shadow: inset 0 0 0 2px rgba(0,105,222,.2) !important; }

/* ---------------- Footer ---------------- */
footer .footer-title, footer h4, footer .h4 {
	color: var(--one-blue) !important;
	text-transform: uppercase;
	letter-spacing: .08em;
}
footer { padding-top: 1rem; }
footer .nav.social a, footer .social a { font-size: 1.15rem; }

/* ---------------- Cards de disciplina con nombre superpuesto (overview /disciplinas) ---------------- */
.card-disciplina {
	position: relative;
	display: block;
	overflow: hidden;
	color: #fff;
}
.card-disciplina img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(.6);
	transition: transform .6s ease, filter .4s ease;
}
.card-disciplina:hover img { transform: scale(1.07); filter: brightness(.72); }
.card-disciplina .card-disciplina-body {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 1.6rem;
	text-align: left;
	background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.15) 55%, transparent 100%);
}
.card-disciplina .card-disciplina-tag {
	color: var(--one-blue);
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	font-size: .72rem;
	margin-bottom: .3rem;
}
.card-disciplina h3 {
	color: #fff !important;
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: .03em;
	margin: 0;
	font-size: 1.5rem;
}

/* "Nuestro espacio": nombres más largos -> tipografía un poco menor */
#divBloqueGaleria .card-disciplina h3 { font-size: 1.15rem; }
#divBloqueGaleria .card-disciplina .card-disciplina-body { padding: 1.2rem; }

/* ---------------- /disciplinas: grilla brutalista full-bleed (3/3/2/1, sin espacio alrededor ni gutters) ---------------- */
#divContenido.seccion-disciplinas > .container { padding-top: 0 !important; padding-bottom: 0 !important; }
#divContenido.seccion-disciplinas { padding-bottom: 0 !important; }
.disciplinas-brutal {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.disciplinas-brutal .card-disciplina { height: 380px; border-radius: 0; }
.disciplinas-brutal .card-disciplina h3 {
	font-size: clamp(1.6rem, 2.4vw, 2.4rem);
	font-weight: 700;
	line-height: 1;
}

/* ---------------- Contenido de sección: separar del footer ----------------
   #divContenido solo se usa en seccion.php (front). Uso `> .container` para
   afectar SOLO el container propio de la sección, no los de bloques/galería
   que seccion.php incluye anidados dentro de #divContenido. */
#divContenido { padding-bottom: 5rem !important; }
#divContenido > .container { padding-bottom: 1.5rem; }

/* Logo blanco sobre la portada de la sección */
.image-wrapper .img-logo-contacto {
	width: 120px;
	max-width: 50%;
	height: auto;
	margin-bottom: 1.6rem !important;
}

/* ---------------- Tablas (horarios de disciplinas) ---------------- */
.table { --bs-table-bg: transparent; }
.table thead th {
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: .82rem;
	border-bottom: 2px solid var(--one-dark);
}

/* ============================================================
   BLOQUES ESTILO EQUINOX (full-bleed, imagen de fondo, texto grande)
   Aditivo: solo afecta los bloques con id que empieza en divBloqueEq.
   ============================================================ */
[id^="divBloqueEq"].wrapper, [id^="divBloqueV3"].wrapper { padding: 0 !important; background: #0a0a0a !important; }
[id^="divBloqueEq"] .container, [id^="divBloqueEq"] .row, [id^="divBloqueEq"] .col-12,
[id^="divBloqueV3"] .container, [id^="divBloqueV3"] .row, [id^="divBloqueV3"] .col-12 { max-width: 100%; padding: 0; margin: 0; }

.one-eq {
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	min-height: 70vh;
	padding: 3.5rem 0;
	display: flex;
	align-items: center;
	overflow: hidden;
	background-size: cover;
	background-position: center;
	background-color: #0a0a0a;
	text-align: left;
}
.one-eq::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.5) 45%, rgba(0,0,0,.12) 100%);
}
.one-eq-right::before { background: linear-gradient(270deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.5) 45%, rgba(0,0,0,.12) 100%); }
.one-eq-center::before { background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,.3) 55%, rgba(0,0,0,.55) 100%); }

.one-eq-inner { position: relative; z-index: 2; max-width: 660px; padding: 0 7vw; }
.one-eq-right { justify-content: flex-end; }
.one-eq-right .one-eq-inner { text-align: right; }
.one-eq-right .one-eq-text { margin-left: auto; }
.one-eq-center { justify-content: center; }
.one-eq-center .one-eq-inner { text-align: center; max-width: 760px; }
.one-eq-center .one-eq-text { margin-left: auto; margin-right: auto; }

.one-eq-eyebrow {
	display: inline-block;
	color: var(--one-blue);
	font-family: "Oswald", sans-serif;
	text-transform: uppercase;
	letter-spacing: .35em;
	font-size: .82rem;
	font-weight: 500;
	margin-bottom: 1.2rem;
}
.one-eq-title {
	color: #fff !important;
	-webkit-text-fill-color: #fff;
	font-family: "Oswald", sans-serif;
	text-transform: uppercase;
	font-weight: 700;
	line-height: .98;
	letter-spacing: .01em;
	font-size: clamp(2.8rem, 6vw, 5.5rem);
	margin: 0 0 1.4rem;
	justify-content: center;
}
.one-eq-text {
	color: #e3e6ea;
	font-size: clamp(1rem, 1.4vw, 1.25rem);
	line-height: 1.5;
	margin: 0 0 2rem;
	max-width: 540px;
}
.one-eq-cta {
	display: inline-block;
	border: 2px solid #fff;
	color: #fff;
	background: transparent;
	text-transform: uppercase;
	letter-spacing: .14em;
	font-family: "Oswald", sans-serif;
	font-weight: 600;
	font-size: .82rem;
	padding: .9rem 2.2rem;
	transition: background-color .25s ease, color .25s ease;
}
.one-eq-cta:hover { background: #fff; color: var(--one-dark); }

/* Fondos por bloque */
.one-eq-marca { background-image: url('../../../img/one/bloques/eq-marca.jpg?v=2'); }
.one-eq-pase-libre { background-image: url('../../../img/one/bloques/eq-pase-libre.jpg?v=2'); }
.one-eq-crossfit { background-image: url('../../../img/one/bloques/eq-crossfit.jpg?v=2'); }
.one-eq-comunidad { background-image: url('../../../img/one/bloques/eq-comunidad.jpg?v=2'); }

/* Versión 3: mismas piezas con fotos reales (Unsplash, licencia libre) */
.one-eq-v3-marca { background-image: url('../../../img/one/bloques/eq3-marca.jpg'); }
.one-eq-v3-pase-libre { background-image: url('../../../img/one/bloques/eq3-pase-libre.jpg'); }
.one-eq-v3-crossfit { background-image: url('../../../img/one/bloques/eq3-crossfit.jpg'); }
.one-eq-v3-comunidad { background-image: url('../../../img/one/bloques/eq3-comunidad.jpg'); }
.one-eq-v3-sauna { background-image: url('../../../img/one/bloques/eq3-sauna.jpg'); }

@media (max-width: 767px) {
	.one-eq { min-height: 68vh; }
	.one-eq-inner { padding: 0 8vw; max-width: 100%; }
	.one-eq-right, .one-eq-right .one-eq-inner { justify-content: flex-start; text-align: left; }
	.one-eq-right .one-eq-text { margin-left: 0; }
}

/* ---------------- Secciones con hero: aire parejo bajo la portada (desktop y mobile) ---------------- */
/* Se neutraliza el gutter negativo gy-11 del texto y se controla el aire solo con padding-top,
   para que no dependa del mt-sm-12 (que solo aplica en >=576px y dejaba el texto pegado en mobile). */
.seccion-hero > .container { margin-top: 0 !important; padding-top: 3rem !important; }
.seccion-hero .div-texto-seccion { margin-top: 0 !important; }
.seccion-hero .div-texto-seccion > [class*="col-"] { padding-top: 0 !important; }

/* ---------------- Secciones que terminan en galería: full-bleed pegada al footer ---------------- */
.seccion-galeria-fin > .container { padding-bottom: 0 !important; }
#divContenido.seccion-galeria-fin { padding-bottom: 0 !important; }
.seccion-galeria-fin [id^="divBloqueGaleria"].wrapper {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}
#divContenido.seccion-galeria-fin [id^="divBloqueGaleria"]:first-of-type {
	padding-top: 2rem !important;
	padding-bottom: 0 !important;
}
.seccion-galeria-fin [id^="divBloqueGaleria"] .container {
	max-width: 100%;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* ---------------- Fondo gris del theme → blanco en todo el sitio ---------------- */
.bg-gray {
	background-color: #ffffff !important;
}

/* ---------------- Footer: 4 columnas (Logo · Disciplinas · Contacto · Mapa) ----------------
   El orden lo da flex `order` (negativo para quedar antes del hr/copyright). El mapa va a la
   derecha de Contacto, col-3 y sin encabezado. La columna Disciplinas la inyecta el custom.js. */
.footer-desktop > .col-lg-3:not(.col-md-3) { order: -4; }                          /* Logo */
.footer-desktop .footer-disciplinas-one { order: -3; }                             /* Disciplinas */
.footer-desktop > .col-lg-3.col-md-3:not(.footer-disciplinas-one) { order: -2; }   /* Contacto */
.footer-desktop > .col-auto { order: -1; flex: 0 0 25%; max-width: 25%; }          /* Mapa -> col-3, a la derecha */

/* Mapa: sin encabezado y que llene su columna */
.footer-desktop .puntos-venta-footer { display: none !important; }
.footer-desktop .puntos-venta-footer-mapa { margin-top: 30px !important; }
.footer-desktop .puntos-venta-footer-mapa,
.footer-desktop .puntos-venta-footer-mapa .gmap_canvas,
.footer-desktop .puntos-venta-footer-mapa iframe { width: 100% !important; height: 220px !important; }

/* En mobile el punto va en acordeón: se ocultan solo los datos (quedan en Contacto), no el nombre */
.footer-mobile .puntos-venta-footer li { display: none !important; }

/* Links de la columna Disciplinas */
.footer-disciplinas-one a { color: #cfd3d8; transition: color .2s ease; }
.footer-disciplinas-one a:hover { color: var(--one-blue); }

/* Mobile: el mapa va dentro del acordeón de Contacto (llena el ancho, alto razonable) */
.footer-mobile .puntos-venta-footer-mapa { margin-top: 14px; margin-bottom: 30px; }
.footer-mobile .puntos-venta-footer-mapa,
.footer-mobile .puntos-venta-footer-mapa .gmap_canvas,
.footer-mobile .puntos-venta-footer-mapa iframe { width: 100% !important; height: 220px !important; }
/* Links del acordeón Disciplinas (mobile) */
.footer-disciplinas-acc-one a { color: #cfd3d8; transition: color .2s ease; }
.footer-disciplinas-acc-one a:hover { color: var(--one-blue); }

/* ============================================================
   Detalle de disciplina · estilo brutalista claro (prototipo Crossfit)
   ============================================================ */
/* Contenido en blanco, pegado al hero. */
#divContenido:has(.disc-detalle) > .container { padding-top: 0 !important; padding-bottom: 0 !important; }
#divContenido:has(.disc-detalle) { padding-bottom: 0 !important; background: #fff !important; }

.disc-detalle {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	background: #fff;
	color: #4a4e54;
}
.disc-inner { max-width: 1140px; margin: 0 auto; padding: 4.5rem 1.5rem 2rem; }

.disc-intro {
	font-size: clamp(1.25rem, 1.9vw, 1.7rem);
	line-height: 1.45;
	color: #15171b;
	font-weight: 300;
	max-width: 820px;
	margin: 0 0 3.6rem;
	padding-left: 1.5rem;
	border-left: 4px solid var(--one-blue);
}
.disc-bloque { margin-bottom: 2.4rem; }
.disc-h {
	font-family: "Oswald", sans-serif;
	text-transform: uppercase;
	font-weight: 700;
	font-size: clamp(1.5rem, 2.2vw, 2.1rem);
	color: #15171b;
	letter-spacing: .03em;
	margin: 0 0 1.3rem;
}
.disc-bajada { color: #7c828a; margin: -.5rem 0 1.4rem; max-width: 720px; }

/* Pases (grilla stark, bordes marcados, sin sombra/redondeo) */
.disc-pases { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid rgba(0,0,0,.13); }
.disc-pase { padding: 2.2rem 1rem; text-align: center; border-right: 1px solid rgba(0,0,0,.13); display: flex; flex-direction: column; align-items: center; gap: .3rem; transition: background .25s ease; }
.disc-pase:last-child { border-right: none; }
.disc-pase:hover { background: rgba(0,105,222,.06); }
.disc-pase-num { font-family: "Oswald", sans-serif; font-size: 2.4rem; font-weight: 700; color: #15171b; line-height: 1; }
.disc-pase-desc { color: #7c828a; font-size: .76rem; text-transform: uppercase; letter-spacing: .08em; }
.disc-pase-precio { font-family: "Oswald", sans-serif; font-size: 1.7rem; font-weight: 700; color: var(--one-blue); margin-top: .6rem; }

/* Valores: precio único destacado (disciplinas simples) */
.disc-precio { display: flex; align-items: baseline; gap: .45rem; }
.disc-precio-monto { font-family: "Oswald", sans-serif; font-size: 2.6rem; font-weight: 700; color: var(--one-blue); line-height: 1; }
.disc-precio-unidad { color: #7c828a; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; font-size: .82rem; }
.disc-precio-nota { color: #7c828a; margin: .9rem 0 0; }
/* Valores en filas (varios precios, ej. Personalizado) */
.disc-precio-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid rgba(0,0,0,.1); }
.disc-precio-row:first-of-type { border-top: 1px solid rgba(0,0,0,.1); }
.disc-precio-row > span:first-child { color: #15171b; font-weight: 500; }
.disc-precio-monto-sm { font-family: "Oswald", sans-serif; font-weight: 700; font-size: 1.45rem; color: var(--one-blue); white-space: nowrap; }

/* Horarios + Condiciones (2 columnas) */
.disc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3.5rem; }
.disc-horario { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid rgba(0,0,0,.1); }
.disc-horario:first-of-type { border-top: 1px solid rgba(0,0,0,.1); }
.disc-dia { font-family: "Oswald", sans-serif; text-transform: uppercase; font-weight: 600; color: #15171b; letter-spacing: .05em; white-space: nowrap; }
.disc-turnos { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-end; }
.disc-hora { display: inline-block; background: var(--one-blue); color: #fff; font-weight: 600; font-size: .85rem; padding: .35rem .6rem; line-height: 1; letter-spacing: .02em; }
.disc-cond { list-style: none; padding: 0; margin: 0; }
.disc-cond li { margin-bottom: .85rem; line-height: 1.45; }

/* CTA */
.disc-cta { display: inline-flex; align-items: center; gap: .55rem; margin-top: 0; background: var(--one-blue); color: #fff; font-family: "Oswald", sans-serif; text-transform: uppercase; font-weight: 600; letter-spacing: .08em; font-size: .95rem; padding: 1rem 2.6rem; transition: background .25s ease, color .25s ease; }
.disc-cta:hover { background: var(--one-dark); color: #fff; }

@media (max-width: 767px) {
	.disc-grid { grid-template-columns: 1fr; gap: 0; }
	.disc-pases { grid-template-columns: 1fr 1fr; }
	.disc-pase:nth-child(odd) { border-right: 1px solid rgba(0,0,0,.13); }
	.disc-pase:nth-child(even) { border-right: none; }
	.disc-pase:nth-child(1), .disc-pase:nth-child(2) { border-bottom: 1px solid rgba(0,0,0,.13); }
	.disc-inner { padding: 3rem 1.3rem 2rem; }
}

/* ===== Contacto · encabezado centrado con canales (brutalista) ===== */
.cont-intro { text-align: center; max-width: 1000px; margin: 0 auto; }
.cont-intro-eyebrow { font-family: "Oswald", sans-serif; text-transform: uppercase; letter-spacing: .18em; font-weight: 600; font-size: .82rem; color: var(--one-blue); margin: 0 0 .9rem; }
.cont-intro-lead { font-size: clamp(1.15rem, 1.8vw, 1.55rem); color: #15171b; font-weight: 300; line-height: 1.5; margin: 0 auto 2.8rem; max-width: 780px; }
.cont-canales { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid rgba(0,0,0,.13); }
.cont-canal { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .45rem; padding: 2.4rem 1.2rem; border-right: 1px solid rgba(0,0,0,.13); color: inherit; text-decoration: none; transition: background .2s ease; }
.cont-canal:last-child { border-right: 0; }
.cont-canal:hover { background: #f5f7fa; }
.cont-canal-ic { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; background: var(--one-blue); color: #fff; font-size: 1.55rem; margin-bottom: .5rem; transition: background .2s ease; }
a.cont-canal:hover .cont-canal-ic { background: var(--one-dark); }
.cont-canal-tit { font-family: "Oswald", sans-serif; text-transform: uppercase; font-weight: 700; letter-spacing: .04em; font-size: .98rem; color: #15171b; }
.cont-canal-val { color: #5a6068; font-size: .95rem; line-height: 1.35; }

@media (max-width: 767px) {
	.cont-canales { grid-template-columns: 1fr; }
	.cont-canal { border-right: 0; border-bottom: 1px solid rgba(0,0,0,.13); }
	.cont-canal:last-child { border-bottom: 0; }
}

/* Aire entre el contenido de la sección y el footer (las secciones con galería full-bleed lo anulan vía :has(.disc-detalle)) */
#divContenido {
	padding-bottom: 3rem !important;
}

/* Hero cuadrado (1:1) en mobile xs */
@media (max-width: 575.98px) {
	.swiper-hero-sin-barra, .swiper-hero-sin-barra .swiper-slide {
		height: calc(100vw / 1.0) !important;
	}
}

/* ===== Preinscripción · grilla brutalista de selección de disciplina ===== */
.preins-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(0,0,0,.13); border-left: 1px solid rgba(0,0,0,.13); margin-top: .5rem; }
.preins-card { display: flex; flex-direction: column; padding: 2.3rem 1.9rem; border-right: 1px solid rgba(0,0,0,.13); border-bottom: 1px solid rgba(0,0,0,.13); color: inherit; text-decoration: none; transition: background .2s ease; }
.preins-card:hover { background: #f5f7fa; }
.preins-ic { width: 54px; height: 54px; display: flex; align-items: center; justify-content: center; background: var(--one-blue); color: #fff; font-size: 1.5rem; margin-bottom: 1.1rem; transition: background .2s ease; }
.preins-card:hover .preins-ic { background: var(--one-dark); }
.preins-card h3 { font-family: "Oswald", sans-serif; text-transform: uppercase; font-weight: 700; letter-spacing: .02em; font-size: 1.2rem; color: #15171b; margin: 0 0 .4rem; }
.preins-card p { color: #5a6068; font-size: .93rem; line-height: 1.4; margin: 0 0 1.5rem; }
.preins-cta { margin-top: auto; font-family: "Oswald", sans-serif; text-transform: uppercase; font-weight: 600; letter-spacing: .06em; font-size: .85rem; color: var(--one-blue); display: inline-flex; align-items: center; gap: .45rem; }
.preins-cta i { transition: transform .2s ease; }
.preins-card:hover .preins-cta i { transform: translateX(4px); }

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

/* Banner destacado: Pase Libre arriba, full-width, fondo oscuro */
.preins-destacado { display: flex; align-items: center; gap: 1.9rem; background: var(--one-dark); color: #fff; padding: 2.7rem 2.5rem; border-left: 5px solid var(--one-blue); text-decoration: none; transition: background .2s ease; }
.preins-destacado:hover { background: #15171b; }
.preins-destacado-ic { flex: 0 0 auto; width: 66px; height: 66px; display: flex; align-items: center; justify-content: center; background: var(--one-blue); color: #fff; font-size: 2rem; }
.preins-destacado-info { flex: 1 1 auto; }
.preins-destacado-eyebrow { display: inline-block; font-family: "Oswald", sans-serif; text-transform: uppercase; letter-spacing: .14em; font-weight: 600; font-size: .78rem; color: var(--one-blue); margin-bottom: .4rem; }
.preins-destacado h3 { font-family: "Oswald", sans-serif; text-transform: uppercase; font-weight: 700; font-size: 1.85rem; color: #fff; margin: 0 0 .55rem; line-height: 1; }
.preins-destacado p { color: #b9bdc4; font-size: .97rem; line-height: 1.5; margin: 0; max-width: 700px; }
.preins-destacado-cta { flex: 0 0 auto; align-self: center; background: var(--one-blue); color: #fff; font-family: "Oswald", sans-serif; text-transform: uppercase; font-weight: 600; letter-spacing: .05em; font-size: .9rem; padding: 1rem 2.2rem; display: inline-flex; align-items: center; gap: .55rem; white-space: nowrap; transition: background .2s ease, color .2s ease; }
.preins-destacado:hover .preins-destacado-cta { background: #fff; color: var(--one-dark); }

@media (max-width: 767px) {
	.preins-destacado { flex-direction: column; align-items: flex-start; gap: 1.2rem; padding: 2rem 1.5rem; }
	.preins-destacado-cta { align-self: stretch; justify-content: center; }
}

/* Separador + título de la grilla de disciplinas (debajo del banner Pase Libre) */
.preins-titulo { font-family: "Oswald", sans-serif; text-transform: uppercase; font-weight: 700; letter-spacing: .02em; font-size: clamp(1.35rem, 2vw, 1.75rem); color: #15171b; margin: 3.6rem 0 .4rem; }
.preins-titulo-bajada { color: #5a6068; font-size: 1rem; margin: 0 0 1.4rem; }
