@font-face {
font-family: "Archivo";
src: url("fuentes/Archivo/Archivo-Regular.ttf") format("truetype");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Archivo";
src: url("fuentes/Archivo/Archivo-Medium.ttf") format("truetype");
font-weight: 500;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Archivo";
src: url("fuentes/Archivo/Archivo-SemiBold.ttf") format("truetype");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Archivo";
src: url("fuentes/Archivo/Archivo-Bold.ttf") format("truetype");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Archivo";
src: url("fuentes/Archivo/Archivo-ExtraBold.ttf") format("truetype");
font-weight: 800;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "CS Boris";
src: url("fuentes/CS-Boris/CSBoris-Regular.otf") format("opentype");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "CS Boris";
src: url("fuentes/CS-Boris/CSBoris-Italic.otf") format("opentype");
font-weight: 400;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: "Fine Art Sans Vector";
src: url("fuentes/Fine-Art-Sans-Vector/FineArtSansVectorRegular.otf") format("opentype");
font-weight: 400;
font-style: normal;
font-display: swap;
}
:root {
--fuente-titulares: "CS Boris", Georgia, serif;
--fuente-etiquetas: "Fine Art Sans Vector", Arial, sans-serif;
--fuente-cuerpo:
Archivo,
Arial,
Helvetica,
sans-serif;
--color-azul: #bdcbe4;
--color-azul-claro: #e7ecf5;
--color-blanco-hueso: #ebebeb;
--color-marron: #ceb69e;
--color-marron-claro: #f3ebe1;
--color-verde: #aabdaa;
--color-verde-claro: #e7ede7;
--color-verde-oscuro: #57785d;
--color-verde-oscuro-hover: #46604a;
--color-marron-oscuro: #966951;
--color-marron-oscuro-hover: #7a5440;
--color-texto: #172033;
--color-texto-tenue: #637083;
--color-borde: #ddd6cb;
--color-fondo: #f7f6f2;
--sombra-tarjeta: rgba(40, 36, 30, 0.1);
--sombra-tarjeta-suave: rgba(40, 36, 30, 0.08);
}
* {
box-sizing: border-box;
}
body {
margin: 0;
color: var(--color-texto);
background-color: var(--color-fondo);
font-family: var(--fuente-cuerpo);
line-height: 1.6;
}
a {
color: inherit;
}
img {
display: block;
max-width: 100%;
}
h1,
h2,
h3 {
font-family: var(--fuente-titulares);
font-weight: 400;
}
.contenedor {
width: min(1100px, 86%);
margin: 0 auto;
}
.seccion {
padding-top: 50px;
padding-bottom: 60px;
}
.barra-utilidad {
color: #e7ede7;
background-color: var(--color-verde-oscuro-hover);
font-size: 0.85rem;
}
.barra-utilidad-interior {
display: flex;
justify-content: flex-end;
gap: 4px;
padding: 2px 0;
}
.barra-utilidad-interior a {
padding: 4px 10px;
color: inherit;
border-radius: 999px;
text-decoration: none;
transition: color 0.2s ease, background-color 0.2s ease;
}
.barra-utilidad-interior a:hover {
color: var(--color-azul);
background-color: rgba(255, 255, 255, 0.12);
}
.barra-utilidad-interior a.activo {
color: white;
font-weight: 700;
}
.barra-utilidad-usuario {
margin-right: auto;
padding: 4px 10px;
font-weight: 700;
}
.cabecera {
color: white;
background-color: var(--color-verde-oscuro);
}
.cabecera-interior {
display: flex;
min-height: 72px;
align-items: center;
justify-content: space-between;
gap: 30px;
}
.logo {
display: flex;
align-items: center;
gap: 10px;
color: white;
font-family: var(--fuente-titulares);
font-size: 1.6rem;
font-weight: 400;
text-decoration: none;
}
.logo img {
height: 42px;
width: auto;
}
.logo span {
font-family: var(--fuente-cuerpo);
font-size: 1rem;
font-weight: 700;
opacity: 0.85;
}
.menu {
display: flex;
align-items: flex-end;
width: 100%;
gap: 30px;
}
.boton-menu-movil {
display: none;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 5px;
width: 40px;
height: 40px;
padding: 0;
background: transparent;
border: none;
cursor: pointer;
}
.boton-menu-movil span {
display: block;
width: 26px;
height: 2px;
background-color: white;
border-radius: 2px;
transition: transform 0.2s ease, opacity 0.2s ease;
}
.boton-menu-movil.abierto span:nth-child(1) {
transform: translateY(7px) rotate(45deg);
}
.boton-menu-movil.abierto span:nth-child(2) {
opacity: 0;
}
.boton-menu-movil.abierto span:nth-child(3) {
transform: translateY(-7px) rotate(-45deg);
}
.menu-principal {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 6px;
}
.menu-principal a {
padding: 8px 14px;
color: white;
border-radius: 999px;
text-decoration: none;
transition: color 0.2s ease, background-color 0.2s ease;
}
.menu-principal a:hover {
color: var(--color-azul);
background-color: rgba(255, 255, 255, 0.12);
}
.hero {
position: relative;
min-height: 560px;
padding: 70px 0;
color: white;
background-color: var(--color-verde-oscuro);
overflow: hidden;
display: flex;
align-items: center;
}
.hero-pequeno {
min-height: 320px;
padding: 40px 0;
}
.hero-pequeno h1 {
margin: 0 0 14px;
}
.hero-video-fondo {
position: absolute;
inset: 0;
z-index: 0;
overflow: hidden;
pointer-events: none;
}
.hero-video-fondo iframe {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border: none;
}
.hero-video-cargando {
position: absolute;
inset: 0;
z-index: 1;
background-color: var(--color-verde-oscuro);
opacity: 1;
pointer-events: none;
transition: opacity 1s ease;
}
.hero-video-cargando.oculto {
opacity: 0;
}
.hero-video-superposicion {
position: absolute;
inset: 0;
z-index: 2;
background-color: rgba(23, 32, 27, 0.45);
}
.hero-interior {
position: relative;
z-index: 3;
}
.hero h1 {
max-width: 700px;
margin: 5px 0 20px;
font-size: clamp(2.3rem, 5vw, 4.5rem);
line-height: 1.05;
}
.hero-texto {
max-width: 680px;
font-size: 1.2rem;
}
.seccion-nosotros h2 {
margin-bottom: 20px;
font-size: clamp(2.2rem, 4vw, 3.2rem);
text-align: center;
}
.seccion-nosotros p {
max-width: 800px;
margin-left: auto;
margin-right: auto;
font-size: 1.1rem;
line-height: 1.75;
text-align: justify;
}
.etiqueta {
color: var(--color-verde-oscuro);
font-family: var(--fuente-etiquetas);
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.hero .etiqueta {
color: var(--color-azul);
}
.grupo-botones,
.acciones-filtro {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 12px;
}
.boton-alternar-filtros {
display: inline-flex;
align-items: center;
gap: 8px;
margin: 26px 0 32px;
}
.panel-filtros {
display: none;
}
.panel-filtros.abierto {
display: block;
}
.boton {
    display: inline-block;
padding: 11px 18px;
color: white;
background-color: var(--color-verde-oscuro);
border: 2px solid var(--color-verde-oscuro);
border-radius: 8px;
font: inherit;
font-weight: 700;
text-align: center;
text-decoration: none;
cursor: pointer;
}
.boton:hover {
background-color: var(--color-verde-oscuro-hover);
border-color: var(--color-verde-oscuro-hover);
}
.boton:disabled {
cursor: not-allowed;
opacity: 0.75;
}
.boton-secundario {
color: var(--color-verde-oscuro);
background-color: white;
}
.boton-secundario:hover {
color: white;
}
.boton-bloque {
width: 100%;
}
.separador-o {
margin: 18px 0;
color: var(--color-texto-suave, #7a7a7a);
text-align: center;
text-transform: uppercase;
font-size: 0.85rem;
letter-spacing: 0.08em;
}
.boton-google {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
width: 100%;
padding: 11px 18px;
color: #1f1f1f;
background-color: white;
border: 2px solid #dadce0;
border-radius: 8px;
font: inherit;
font-weight: 700;
text-align: center;
text-decoration: none;
cursor: pointer;
}
.boton-google:hover {
background-color: #f7f7f7;
}
.boton-espera {
background-color: var(--color-marron-oscuro);
border-color: var(--color-marron-oscuro);
}
.rejilla-ventajas,
.rejilla-actividades {
display: grid;
grid-template-columns:
repeat(3, minmax(0, 1fr));
gap: 24px;
}
.titulo-todas-actividades {
margin: 60px 0 30px;
font-size: clamp(2.2rem, 4vw, 3.2rem);
text-align: center;
}
.seccion-tipo-actividad {
margin-bottom: 44px;
padding: 40px 32px;
border-radius: 20px;
}
.seccion-tipo-clase {
background-color: var(--color-verde-claro);
}
.seccion-tipo-evento {
background-color: var(--color-marron-claro);
}
.seccion-tipo-terapia {
background-color: var(--color-azul-claro);
}
.seccion-tipo-taller {
background-color: var(--color-blanco-hueso);
}
.seccion-categoria-bija {
background-color: var(--color-verde-claro);
}
.seccion-categoria-ayurveda {
background-color: var(--color-marron-claro);
}
.seccion-categoria-fotografia {
background-color: var(--color-azul-claro);
}
.seccion-categoria-angyoga {
background-color: var(--color-blanco-hueso);
}
.subtitulo-categoria-tienda {
margin-top: -18px;
margin-bottom: 26px;
color: var(--color-texto-tenue);
}
.enlaces-categorias-tienda {
display: flex;
margin-top: 18px;
margin-bottom: 30px;
gap: 12px;
flex-wrap: wrap;
}
.enlaces-categorias-tienda a {
padding: 11px 24px;
border-radius: 999px;
font-weight: 700;
font-size: 0.9rem;
text-decoration: none;
transition: background-color 0.2s ease, color 0.2s ease;
}
.enlace-categoria-bija {
color: var(--color-verde-oscuro);
background-color: var(--color-verde-claro);
}
.enlace-categoria-bija:hover {
color: white;
background-color: var(--color-verde-oscuro);
}
.enlace-categoria-ayurveda {
color: var(--color-marron-oscuro);
background-color: var(--color-marron-claro);
}
.enlace-categoria-ayurveda:hover {
color: white;
background-color: var(--color-marron-oscuro);
}
.enlace-categoria-fotografia {
color: var(--color-texto);
background-color: var(--color-azul-claro);
}
.enlace-categoria-fotografia:hover {
background-color: var(--color-azul);
}
.enlace-categoria-angyoga {
color: var(--color-texto);
background-color: var(--color-blanco-hueso);
}
.enlace-categoria-angyoga:hover {
color: white;
background-color: var(--color-texto);
}
.diseno-tienda {
display: grid;
grid-template-columns: 1fr 320px;
gap: 28px;
align-items: start;
}
.columna-productos-tienda .rejilla-actividades {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.panel-carrito {
position: sticky;
top: 20px;
padding: 24px;
}
.panel-carrito h2 {
margin-bottom: 14px;
font-size: 1.3rem;
}
.formulario-agregar-carrito {
display: grid;
margin-top: 10px;
gap: 8px;
}
.acciones-agregar-carrito {
display: grid;
margin-top: 6px;
gap: 10px;
}
.formulario-agregar-carrito label {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
font-size: 0.9rem;
font-weight: 700;
}
.formulario-agregar-carrito input[type="number"] {
width: 70px;
padding: 6px 8px;
border: 1px solid var(--color-borde);
border-radius: 7px;
font: inherit;
}
.lista-carrito {
display: grid;
gap: 14px;
}
.fila-carrito {
display: flex;
align-items: center;
gap: 12px;
padding-bottom: 14px;
border-bottom: 1px solid var(--color-borde);
}
.miniatura-fila-carrito {
flex-shrink: 0;
width: 56px;
height: 56px;
object-fit: cover;
border-radius: 8px;
}
.datos-fila-carrito {
display: grid;
flex: 1;
gap: 3px;
min-width: 0;
font-size: 0.9rem;
}
.datos-fila-carrito span {
color: var(--color-texto-tenue);
font-size: 0.82rem;
}
.precio-fila-carrito {
flex-shrink: 0;
color: var(--color-verde-oscuro);
font-weight: 700;
white-space: nowrap;
}
.fila-carrito form {
flex-shrink: 0;
margin: 0;
}
.enlace-quitar-carrito {
padding: 0;
color: #8c2020;
background: none;
border: none;
font-size: 0.8rem;
font-weight: 700;
text-decoration: underline;
cursor: pointer;
}
.total-carrito {
display: flex;
justify-content: space-between;
margin: 18px 0;
padding-top: 14px;
border-top: 1px solid var(--color-borde);
font-size: 1.1rem;
}
.total-carrito strong {
color: var(--color-verde-oscuro);
font-size: 1.4rem;
}
.panel-producto h2 {
margin-bottom: 16px;
font-size: 1.3rem;
}
.precio-sesion-producto {
margin-bottom: 26px;
font-size: 1.1rem;
}
.precio-sesion-producto strong {
font-size: 2.1rem;
}
.cabecera-producto-compra {
display: flex;
justify-content: space-between;
align-items: center;
gap: 24px;
}
.miniatura-producto-comprar {
display: block;
flex-shrink: 0;
width: 160px;
height: 120px;
object-fit: cover;
border: 1px solid var(--color-borde);
border-radius: 12px;
}
.seccion-tipo-actividad h3 {
margin-bottom: 26px;
color: var(--color-verde-oscuro);
font-family: var(--fuente-titulares);
font-size: clamp(1.8rem, 3vw, 2.4rem);
}
.franja-horarios-paquetes {
display: flex;
flex-wrap: wrap;
margin-bottom: 80px;
}
.panel-horario-paquete {
display: flex;
flex: 1 1 480px;
height: 420px;
}
.panel-imagen {
flex: 1 1 40%;
min-width: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.panel-texto {
display: flex;
flex: 1 1 60%;
flex-direction: column;
justify-content: center;
align-items: flex-start;
gap: 14px;
padding: 40px;
background-color: var(--color-verde-claro);
}
.panel-horario-paquete:nth-child(2) .panel-texto {
background-color: var(--color-azul-claro);
}
.panel-texto h3 {
font-size: 1.8rem;
}
.tarjeta-informativa,
.tarjeta-actividad,
.tarjeta-sesion,
.tarjeta-profesor,
.panel-reserva,
.informacion-sesion {
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 14px;
box-shadow: 0 8px 22px
var(--sombra-tarjeta-suave);
}
.tarjeta-informativa {
padding: 24px;
}
.lista-condiciones {
display: flex;
flex-direction: column;
gap: 14px;
padding-left: 22px;
color: var(--color-texto);
line-height: 1.5;
}
.lista-condiciones li {
padding-left: 6px;
}
.tarjeta-actividad,
.tarjeta-profesor {
overflow: hidden;
}
.imagen-actividad {
width: 100%;
height: 210px;
object-fit: cover;
}
.imagen-sin-contenido {
display: grid;
height: 210px;
place-items: center;
color: var(--color-texto-tenue);
background-color: var(--color-blanco-hueso);
}
.contenido-tarjeta {
padding: 24px;
}
.rejilla-profesores {
display: grid;
margin-top: 30px;
grid-template-columns:
repeat(auto-fit, minmax(280px, 1fr));
gap: 24px;
}
.imagen-profesor {
width: 100%;
height: 240px;
object-fit: cover;
object-position: top;
}
.contenido-tarjeta-profesor {
padding: 20px;
}
.contenido-tarjeta-profesor h3 {
margin: 0 0 10px;
color: var(--color-verde-oscuro);
font-size: 1.2rem;
}
.contenido-tarjeta-profesor p {
color: var(--color-texto-tenue);
font-size: 0.9rem;
line-height: 1.6;
}
.insignia {
display: inline-block;
width: fit-content;
padding: 5px 10px;
color: white;
background-color: var(--color-verde-oscuro);
border-radius: 999px;
font-size: 0.85rem;
font-weight: 700;
}
.insignia-clara {
color: var(--color-verde-oscuro);
background-color: var(--color-azul);
}
.insignia-descuento {
color: var(--color-marron-oscuro);
background-color: var(--color-marron-claro);
border: 1px solid var(--color-marron);
cursor: help;
}
.dato-destacado,
.proxima-sesion {
color: var(--color-verde-oscuro);
font-weight: 700;
}
.tarjeta-paquete {
position: relative;
display: flex;
flex-direction: column;
overflow: visible;
border-top: 5px solid var(--color-verde-oscuro);
transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.tarjeta-paquete:hover {
transform: translateY(-6px);
border-color: var(--color-verde-oscuro);
box-shadow: 0 18px 34px var(--sombra-tarjeta-suave);
}
.tarjeta-paquete .contenido-tarjeta {
display: flex;
flex: 1;
flex-direction: column;
gap: 8px;
}
.insignia-paquete {
width: fit-content;
}
.precio-paquete {
margin: 6px 0 0;
color: var(--color-verde-oscuro);
font-size: 3rem;
font-weight: 800;
line-height: 1;
}
.validez-paquete {
margin: 0 0 12px;
color: var(--color-texto-tenue);
font-size: 0.9rem;
}
.descuento-paquete {
margin: 0 0 12px;
padding: 8px 12px;
color: var(--color-verde-oscuro);
background-color: var(--color-verde-claro);
border-radius: 8px;
font-size: 0.85rem;
font-weight: 700;
}
.tarjeta-paquete .boton {
margin-top: auto;
}
.tarjeta-paquete-destacada {
border-top-color: var(--color-marron-oscuro);
box-shadow: 0 14px 30px var(--sombra-tarjeta-suave);
}
.etiqueta-destacada {
position: absolute;
top: -14px;
right: 24px;
padding: 6px 14px;
color: white;
background-color: var(--color-marron-oscuro);
border-radius: 999px;
box-shadow: 0 6px 14px var(--sombra-tarjeta-suave);
font-size: 0.75rem;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.sin-sesiones {
color: var(--color-texto-tenue);
font-style: italic;
}
.fecha-proxima-sesion {
margin: 6px 0 16px;
color: var(--color-texto-tenue);
}
.formulario-filtros {
display: flex;
margin: 30px 0;
padding: 22px;
align-items: flex-end;
flex-wrap: wrap;
gap: 18px;
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 12px;
}
.titulo-calendario-semana {
margin: 0;
font-size: clamp(1.6rem, 2.6vw, 2.2rem);
}
.banner-top {
position: relative;
display: block;
overflow: hidden;
margin: 26px 0 10px;
border-radius: 20px;
color: inherit;
text-decoration: none;
}
.banner-top img {
width: 100%;
height: 480px;
object-fit: cover;
}
.banner-top-contenido {
position: absolute;
right: 0;
bottom: 0;
left: 0;
display: flex;
padding: 28px;
flex-direction: column;
gap: 6px;
background: linear-gradient(
to top,
rgba(23, 32, 27, 0.75),
rgba(23, 32, 27, 0)
);
}
.banner-top-etiqueta {
color: white;
font-family: var(--fuente-etiquetas);
font-size: 0.85rem;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.banner-top-nombre {
color: white;
font-family: var(--fuente-titulares);
font-size: clamp(1.6rem, 3vw, 2.4rem);
}
.seccion-top-actividades {
margin-bottom: 44px;
padding: 40px 32px;
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 20px;
box-shadow: 0 8px 22px var(--sombra-tarjeta-suave);
}
.seccion-top-actividades h3 {
margin-bottom: 26px;
color: var(--color-marron-oscuro);
font-family: var(--fuente-titulares);
font-size: clamp(1.8rem, 3vw, 2.4rem);
}
.rejilla-top-actividades {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
}
.tarjeta-top-actividad {
position: relative;
display: block;
overflow: hidden;
color: inherit;
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 14px;
text-decoration: none;
}
.tarjeta-top-actividad img,
.tarjeta-top-actividad .imagen-sin-contenido {
height: 160px;
}
.tarjeta-top-actividad img {
width: 100%;
object-fit: cover;
}
.numero-top {
position: absolute;
top: 12px;
left: 12px;
display: grid;
width: 34px;
height: 34px;
place-items: center;
color: white;
background-color: var(--color-marron-oscuro);
border-radius: 999px;
font-weight: 800;
}
.tarjeta-top-nombre {
display: block;
padding: 14px 16px 4px;
font-family: var(--fuente-titulares);
font-size: 1.15rem;
}
.tarjeta-top-fecha {
display: block;
padding: 0 16px 14px;
color: var(--color-texto-tenue);
font-size: 0.85rem;
}
.calendario-semana-contenedor {
position: relative;
}
.flecha-semana {
display: none;
}
.calendario-semana {
display: flex;
margin: 20px 0 10px;
gap: 8px;
overflow-x: auto;
padding-bottom: 4px;
}
.dia-semana-boton {
display: grid;
flex: 1 1 0;
min-width: 70px;
padding: 12px 8px;
gap: 4px;
place-items: center;
color: var(--color-texto);
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 10px;
font: inherit;
cursor: pointer;
transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.dia-semana-abrev {
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.05em;
text-transform: uppercase;
}
.dia-semana-numero {
font-size: 1.3rem;
font-weight: 800;
}
.dia-semana-boton:hover {
border-color: var(--color-verde-oscuro);
}
.dia-semana-boton.activo {
color: white;
background-color: var(--color-verde-oscuro);
border-color: var(--color-verde-oscuro);
}
.dia-semana-boton-pasado {
color: var(--color-texto-tenue);
background-color: var(--color-fondo);
}
.dia-semana-boton-pasado.activo {
color: white;
background-color: var(--color-verde-oscuro);
}
.dias-actividades {
margin: 20px 0 0;
}
.dia-actividades {
display: none;
flex-direction: column;
gap: 14px;
}
.dia-actividades.activo {
display: flex;
}
.item-actividad-dia {
display: grid;
grid-template-columns: 140px 1fr;
gap: 4px 18px;
align-items: baseline;
padding: 16px 0;
color: inherit;
text-decoration: none;
border-bottom: 1px solid var(--color-borde);
transition: background-color 0.2s ease;
}
.item-actividad-dia:hover {
background-color: var(--color-azul-claro);
}
.item-actividad-hora {
color: var(--color-texto-tenue);
font-weight: 700;
}
.item-actividad-nombre {
grid-column: 2;
color: var(--color-verde-oscuro);
font-size: 1.2rem;
font-family: var(--fuente-titulares);
}
.item-actividad-detalle {
grid-column: 2;
color: var(--color-texto-tenue);
font-size: 0.9rem;
}
.navegacion-mes {
display: flex;
margin: 10px 0 24px;
align-items: center;
justify-content: center;
gap: 24px;
}
.navegacion-mes-titulo {
min-width: 200px;
color: var(--color-verde-oscuro);
font-family: var(--fuente-titulares);
font-size: 1.6rem;
text-align: center;
text-transform: capitalize;
}
.navegacion-semana-titulo {
margin: 0 0 20px;
color: var(--color-texto-tenue);
font-weight: 700;
text-align: center;
text-transform: capitalize;
}
.boton-mes {
display: grid;
width: 40px;
height: 40px;
place-items: center;
color: var(--color-verde-oscuro);
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 999px;
font: inherit;
font-size: 1.1rem;
text-decoration: none;
cursor: pointer;
transition: background-color 0.2s ease, color 0.2s ease;
}
.boton-mes:hover {
color: white;
background-color: var(--color-verde-oscuro);
}
.boton-mes-deshabilitado,
.boton-mes:disabled {
color: var(--color-texto-tenue);
background-color: var(--color-fondo);
cursor: not-allowed;
}
.boton-mes-deshabilitado:hover,
.boton-mes:disabled:hover {
color: var(--color-texto-tenue);
background-color: var(--color-fondo);
}
.paginacion-sesiones,
.paginacion-sesiones-dia {
display: flex;
margin-top: 24px;
align-items: center;
justify-content: center;
gap: 16px;
}
.paginacion-sesiones-dia {
margin-top: 16px;
}
.paginacion-sesiones span,
.paginacion-sesiones-dia span {
color: var(--color-texto-tenue);
font-weight: 700;
font-size: 0.9rem;
}
.boton-mes-pequeno {
width: 32px;
height: 32px;
font-size: 0.85rem;
}
.vista-calendario-movil {
display: none;
}
.calendario-mes-publico {
overflow: hidden;
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 14px;
}
.calendario-mes-publico:has(.dia-calendario-publico:hover),
.calendario-mes-publico:has(.dia-calendario-publico:focus-within) {
overflow: visible;
}
.calendario-publico-cabecera {
display: grid;
grid-template-columns: repeat(7, 1fr);
background-color: var(--color-verde-oscuro);
}
.calendario-publico-cabecera span {
padding: 12px 4px;
color: white;
font-size: 0.75rem;
font-weight: 700;
text-align: center;
text-transform: uppercase;
}
.calendario-publico-grilla {
display: grid;
grid-template-columns: repeat(7, 1fr);
}
.dia-calendario-publico {
display: flex;
min-height: 120px;
padding: 8px;
flex-direction: column;
gap: 6px;
border-right: 1px solid var(--color-borde);
border-bottom: 1px solid var(--color-borde);
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.dia-calendario-publico:not(.dia-calendario-publico-vacio):hover,
.dia-calendario-publico:not(.dia-calendario-publico-vacio):focus-within {
position: relative;
z-index: 20;
background-color: white;
box-shadow: 0 16px 36px rgba(0, 0, 0, 0.3);
border-radius: 10px;
transform: scale(1.6);
}
.dia-calendario-publico:hover .sesion-calendario-nombre,
.dia-calendario-publico:focus-within .sesion-calendario-nombre {
overflow: visible;
white-space: normal;
text-overflow: clip;
}
.dia-calendario-publico-vacio {
background-color: var(--color-fondo);
}
.dia-calendario-publico-numero {
font-weight: 700;
}
.dia-calendario-publico-pasado {
background-color: var(--color-fondo);
}
.dia-calendario-publico-pasado .dia-calendario-publico-numero {
color: var(--color-texto-tenue);
}
.dia-calendario-publico-hoy {
background-color: var(--color-verde-claro);
box-shadow: inset 0 0 0 2px var(--color-verde-oscuro);
}
.dia-calendario-publico-hoy .dia-calendario-publico-numero {
display: inline-flex;
width: 22px;
height: 22px;
align-items: center;
justify-content: center;
color: white;
background-color: var(--color-verde-oscuro);
border-radius: 999px;
font-size: 0.8rem;
}
.sesiones-dia-calendario {
display: flex;
flex-direction: column;
gap: 4px;
overflow-y: auto;
}
.sesion-calendario-chip {
display: flex;
padding: 4px 6px;
flex-direction: column;
color: var(--color-verde-oscuro);
background-color: var(--color-azul-claro);
border-left: 3px solid var(--color-azul);
border-radius: 6px;
text-decoration: none;
line-height: 1.25;
transition: background-color 0.2s ease;
}
.sesion-calendario-chip:hover {
background-color: var(--color-azul);
}
.sesion-calendario-chip-clase {
background-color: var(--color-verde-claro);
border-left-color: var(--color-verde-oscuro);
}
.sesion-calendario-chip-clase:hover {
background-color: var(--color-verde);
}
.sesion-calendario-chip-evento {
background-color: var(--color-marron-claro);
border-left-color: var(--color-marron-oscuro);
}
.sesion-calendario-chip-evento:hover {
background-color: var(--color-marron);
}
.sesion-calendario-chip-terapia {
background-color: var(--color-azul-claro);
border-left-color: var(--color-azul);
}
.sesion-calendario-chip-terapia:hover {
background-color: var(--color-azul);
}
.sesion-calendario-hora {
font-size: 0.7rem;
font-weight: 700;
}
.sesion-calendario-nombre {
overflow: hidden;
font-size: 0.75rem;
text-overflow: ellipsis;
white-space: nowrap;
}
button.sesion-calendario-chip,
button.item-actividad-dia {
width: 100%;
border: none;
font: inherit;
text-align: left;
cursor: pointer;
}
button.item-actividad-dia {
background: transparent;
}
.sesion-calendario-chip-pendiente {
border-left-style: dashed;
opacity: 0.65;
}
.item-actividad-pendiente {
opacity: 0.65;
}
.sesion-calendario-chip.activo,
button.item-actividad-dia.activo {
outline: 2px solid var(--color-verde-oscuro);
outline-offset: 2px;
}
.punto-dia-con-reserva {
display: block;
width: 6px;
height: 6px;
margin: 4px auto 0;
background-color: var(--color-verde-oscuro);
border-radius: 999px;
}
.detalle-reserva-calendario {
margin-top: 24px;
}
.aviso-selecciona-reserva {
color: var(--color-texto-tenue);
}
.campo {
display: grid;
min-width: 210px;
gap: 6px;
}
.campo label {
font-weight: 700;
}
.etiqueta-invisible {
visibility: hidden;
}
.campo input,
.campo select {
    min-height: 44px;
padding: 9px 12px;
border: 1px solid var(--color-borde);
border-radius: 7px;
font: inherit;
}
.detalle-actividad {
padding: 50px 0;
background-color: white;
}
.detalle-cabecera {
display: grid;
grid-template-columns: 0.8fr 1.2fr;
gap: 45px;
align-items: center;
}
.imagen-detalle {
width: 100%;
border-radius: 16px;
}
.descripcion-destacada {
font-size: 1.1rem;
}
.lista-sesiones {
display: grid;
gap: 18px;
}
.tarjeta-sesion {
display: grid;
grid-template-columns: 180px 1fr 220px;
padding: 22px;
gap: 25px;
align-items: center;
}
.fecha-sesion {
display: grid;
gap: 5px;
color: var(--color-verde-oscuro);
}
.fecha-principal {
font-size: 1.25rem;
font-weight: 800;
}
.acciones-sesion {
display: grid;
gap: 12px;
}
.plazas-disponibles {
color: var(--color-verde-oscuro);
font-weight: 800;
}
.sesion-completa {
color: var(--color-marron-oscuro);
font-weight: 800;
}
.barra-ocupacion {
height: 10px;
overflow: hidden;
background-color: var(--color-azul-claro);
border-radius: 999px;
}
.barra-ocupacion-interior {
height: 100%;
background-color: var(--color-verde-oscuro);
border-radius: inherit;
}
.ficha-sesion {
display: grid;
grid-template-columns: 1fr 340px;
gap: 28px;
align-items: start;
}
.informacion-sesion,
.panel-reserva {
padding: 28px;
}
.panel-reserva {
position: sticky;
top: 20px;
}
.ficha-pago {
grid-template-columns: 1fr;
}
.ficha-pago .panel-reserva {
position: static;
}
.diseno-paquetes {
display: grid;
grid-template-columns: 1fr 340px;
gap: 28px;
align-items: start;
}
.panel-condiciones h2 {
margin-bottom: 18px;
font-size: 1.5rem;
}
.panel-condiciones .lista-condiciones {
margin-bottom: 22px;
padding-left: 20px;
font-size: 0.92rem;
}
.casilla-condiciones {
display: flex;
padding-top: 18px;
align-items: flex-start;
gap: 10px;
border-top: 1px solid var(--color-borde);
font-weight: 700;
line-height: 1.4;
cursor: pointer;
}
.casilla-condiciones input {
width: 18px;
height: 18px;
margin-top: 2px;
accent-color: var(--color-verde-oscuro);
flex-shrink: 0;
}
.aviso-condiciones {
margin: 14px 0 0;
}
.numero-plazas {
margin: 5px 0;
color: var(--color-verde-oscuro);
font-size: 4rem;
font-weight: 800;
line-height: 1;
}
.precio-sesion {
margin: 10px 0;
font-size: 1.1rem;
}
.precio-sesion strong {
color: var(--color-verde-oscuro);
font-size: 1.6rem;
}
.precio-tachado {
margin-right: 8px;
color: var(--color-texto-tenue);
font-size: 1.1rem;
text-decoration: line-through;
}
.rejilla-datos {
display: grid;
margin: 25px 0;
grid-template-columns:
repeat(3, minmax(0, 1fr));
gap: 15px;
}
.dato {
display: grid;
padding: 15px;
gap: 3px;
background-color: var(--color-azul-claro);
border-radius: 9px;
}
.dato span {
color: var(--color-texto-tenue);
font-size: 0.9rem;
}
.estado {
display: inline-block;
padding: 5px 10px;
border-radius: 999px;
font-weight: 700;
}
.estado-programada {
color: var(--color-verde-oscuro);
background-color: var(--color-verde-claro);
}
.estado-completa {
color: var(--color-marron-oscuro);
background-color: var(--color-marron-claro);
}
.estado-cancelada {
color: #8c2020;
background-color: #f9dada;
}
.estado-finalizada {
color: #4d5663;
background-color: #e4e7eb;
}
.mensaje {
margin: 18px 0;
padding: 14px 18px;
border-radius: 8px;
}
.mensaje-aviso {
color: var(--color-marron-oscuro);
background-color: var(--color-marron-claro);
border: 1px solid var(--color-marron);
}
.mensaje-error {
color: #842029;
background-color: #f8d7da;
border: 1px solid #f5c2c7;
}
.enlace-volver {
display: inline-flex;
margin-bottom: 24px;
padding: 9px 16px 9px 12px;
align-items: center;
color: var(--color-verde-oscuro);
background-color: var(--color-verde-claro);
border-radius: 999px;
font-size: 0.92rem;
font-weight: 700;
text-decoration: none;
transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.enlace-volver:hover {
color: white;
background-color: var(--color-verde-oscuro);
transform: translateX(-3px);
}
@media (max-width: 850px) {
.vista-calendario-escritorio {
display: none;
}
.vista-calendario-movil {
display: block;
}
.detalle-cabecera,
.ficha-sesion,
.diseno-paquetes,
.diseno-tienda,
.contacto-grid {
grid-template-columns: 1fr;
}
.cabecera-producto-compra {
flex-wrap: wrap;
}
.panel-carrito {
position: static;
}
.navegacion-mes {
gap: 16px;
}
.navegacion-mes-titulo {
min-width: 170px;
font-size: 1.4rem;
}
.navegacion-semana-titulo {
min-width: 170px;
font-size: 0.95rem;
}
.panel-horario-paquete {
flex-direction: column;
flex-basis: 100%;
height: auto;
}
.panel-imagen {
height: 240px;
}
.panel-texto {
padding: 28px;
}
.panel-texto h3 {
font-size: 1.5rem;
}
.franja-horarios-paquetes {
margin-bottom: 50px;
}
.pie-interior {
padding: 40px 0 24px;
gap: 14px;
}
.pie-contacto {
align-items: center;
}
.pie-contacto p {
max-width: 280px;
text-align: center;
justify-content: center;
}
.pie-enlaces {
gap: 8px 18px;
}
.rejilla-ventajas,
.rejilla-actividades,
.rejilla-top-actividades,
.rejilla-profesores {
grid-template-columns: 1fr 1fr;
}
.tarjeta-sesion {
grid-template-columns: 1fr;
}
.titulo-todas-actividades,
.seccion-top-actividades h3,
.seccion-tipo-actividad h3 {
margin-bottom: 20px;
}
.seccion-tipo-actividad,
.seccion-top-actividades {
padding: 32px 24px;
}
.banner-top img {
height: 380px;
}
.item-actividad-dia {
grid-template-columns: 110px 1fr;
gap: 4px 12px;
}
.panel-reserva {
position: static;
}
.boton-menu-movil {
display: flex;
}
.menu {
flex-wrap: wrap;
justify-content: space-between;
}
.cabecera-admin .cabecera-interior {
flex-wrap: wrap;
justify-content: space-between;
}
.menu-principal {
display: none;
flex-basis: 100%;
flex-direction: column;
align-items: stretch;
gap: 4px;
width: 100%;
padding-top: 14px;
}
.menu-principal.abierto {
display: flex;
}
.cabecera-admin .menu-principal {
flex-wrap: wrap;
overflow: visible;
}
.menu-principal a {
padding: 10px 14px;
border-radius: 8px;
}
.menu-mas {
display: none;
}
}
@media (max-width: 580px) {
.cabecera-interior {
padding: 15px 0;
}
.navegacion-mes {
gap: 12px;
}
.navegacion-mes-titulo {
min-width: 140px;
font-size: 1.3rem;
}
.navegacion-semana-titulo {
min-width: 140px;
font-size: 0.85rem;
}
.barra-utilidad-interior {
flex-wrap: wrap;
justify-content: center;
}
.barra-utilidad-usuario {
margin-right: 0;
width: 100%;
text-align: center;
}
.rejilla-ventajas,
.rejilla-actividades,
.rejilla-datos,
.rejilla-top-actividades,
.rejilla-profesores {
grid-template-columns: 1fr;
}
.columna-productos-tienda .rejilla-actividades {
grid-template-columns: 1fr;
}
.seccion-tipo-actividad,
.seccion-top-actividades {
padding: 26px 18px;
}
.banner-top img {
height: 320px;
}
.banner-top-contenido {
padding: 18px;
}
.banner-top-etiqueta {
font-size: 0.75rem;
}
.calendario-semana {
gap: 6px;
}
.flecha-semana {
display: flex;
position: absolute;
top: 50%;
z-index: 1;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
transform: translateY(-50%);
color: white;
background-color: var(--color-verde-oscuro);
border-radius: 999px;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
font-size: 1rem;
line-height: 1;
pointer-events: none;
}
.flecha-semana-izquierda {
left: -6px;
}
.flecha-semana-derecha {
right: -6px;
}
.dia-semana-boton {
min-width: 58px;
padding: 10px 6px;
}
.dia-semana-abrev {
font-size: 0.7rem;
}
.dia-semana-numero {
font-size: 1.1rem;
}
.item-actividad-dia {
grid-template-columns: 1fr;
gap: 2px;
}
.item-actividad-nombre,
.item-actividad-detalle {
grid-column: 1;
}
.formulario-filtros {
align-items: stretch;
flex-direction: column;
}
.campo {
width: 100%;
}
.panel-imagen {
height: 190px;
}
.panel-texto {
padding: 22px;
gap: 10px;
}
.pie-redes {
gap: 10px;
}
.pie-icono-red {
width: 38px;
height: 38px;
}
.pie-enlaces {
gap: 6px 12px;
}
}
.cabecera-admin {
background-color: var(--color-marron-oscuro);
}
.cabecera-admin .menu-principal {
flex-wrap: nowrap;
overflow: hidden;
}
.menu-mas {
position: relative;
flex-shrink: 0;
}
.boton-menu-mas {
display: none;
align-items: center;
gap: 6px;
padding: 8px 14px;
color: white;
background: transparent;
border: none;
border-radius: 999px;
cursor: pointer;
font: inherit;
white-space: nowrap;
transition: color 0.2s ease, background-color 0.2s ease;
}
.boton-menu-mas.tiene-oculto {
display: flex;
}
.boton-menu-mas:hover {
color: var(--color-azul);
background-color: rgba(255, 255, 255, 0.12);
}
.flecha-menu-mas {
font-size: 0.7rem;
transition: transform 0.2s ease;
}
.boton-menu-mas.abierto .flecha-menu-mas {
transform: rotate(180deg);
}
.menu-mas-desplegable {
display: none;
position: fixed;
min-width: 200px;
flex-direction: column;
gap: 2px;
padding: 8px;
background-color: var(--color-marron-oscuro);
border-radius: 12px;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
z-index: 200;
}
.menu-mas-desplegable.abierto {
display: flex;
}
.menu-mas-desplegable a {
padding: 10px 14px;
color: white;
border-radius: 8px;
text-decoration: none;
white-space: nowrap;
transition: color 0.2s ease, background-color 0.2s ease;
}
.menu-mas-desplegable a:hover {
color: var(--color-azul);
background-color: rgba(255, 255, 255, 0.12);
}
.menu-principal a.oculto-por-espacio {
display: none;
}
.rejilla-resumen-admin {
    display: grid;
margin: 32px 0;
grid-template-columns:
repeat(4, minmax(0, 1fr));
gap: 20px;
}
.tarjeta-resumen {
display: grid;
padding: 24px;
gap: 10px;
color: var(--color-texto);
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 14px;
box-shadow: 0 8px 22px
var(--sombra-tarjeta-suave);
text-decoration: none;
}
.tarjeta-resumen:hover {
border-color: var(--color-verde-oscuro);
transform: translateY(-2px);
}
.tarjeta-resumen span {
color: var(--color-texto-tenue);
font-weight: 700;
}
.tarjeta-resumen strong {
color: var(--color-verde-oscuro);
font-size: 2.5rem;
line-height: 1;
}
.rejilla-acciones-admin {
display: grid;
margin: 1.5rem 0;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 20px;
}
.boton-accion-admin {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 10px;
aspect-ratio: 1 / 1;
padding: 20px;
color: white;
background-color: var(--color-verde-oscuro);
border: 2px solid var(--color-verde-oscuro);
border-radius: 14px;
font: inherit;
font-weight: 700;
text-align: center;
text-decoration: none;
}
.boton-accion-admin:hover {
background-color: var(--color-verde-oscuro-hover);
border-color: var(--color-verde-oscuro-hover);
}
.encabezado-con-accion {
display: flex;
margin-bottom: 25px;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 20px;
}
.formulario-admin {
display: grid;
max-width: 900px;
padding: 28px;
grid-template-columns:
repeat(2, minmax(0, 1fr));
gap: 20px;
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 14px;
box-shadow: 0 8px 22px
var(--sombra-tarjeta-suave);
}
.formulario-admin .campo {
min-width: 0;
}
.formulario-admin textarea {
width: 100%;
padding: 10px 12px;
resize: vertical;
border: 1px solid var(--color-borde);
border-radius: 7px;
font: inherit;
}
.campo-completo {
grid-column: 1 / -1;
}
.campo-checkbox label {
display: flex;
align-items: center;
gap: 9px;
font-weight: 700;
}
.campo-checkbox input[type="checkbox"] {
width: 20px;
height: 20px;
margin: 0;
accent-color: var(--color-verde-oscuro);
cursor: pointer;
flex-shrink: 0;
}
.campo-checkbox-texto-largo label {
align-items: flex-start;
}
.campo-checkbox-texto-largo input[type="checkbox"] {
margin-top: 3px;
}
.lista-profesores-checkbox {
display: flex;
flex-direction: column;
gap: 8px;
margin-top: 6px;
}
.lista-profesores-checkbox .campo-checkbox {
padding: 10px 14px;
border: 1px solid var(--color-borde);
border-radius: 8px;
transition: border-color 0.2s ease, background-color 0.2s ease;
}
.lista-profesores-checkbox .campo-checkbox:has(input:checked) {
background-color: var(--color-verde-claro);
border-color: var(--color-verde-oscuro);
}
.lista-profesores-checkbox .campo-checkbox label {
font-weight: 400;
cursor: pointer;
}
.miniatura-imagen-actual {
display: block;
width: 160px;
height: 110px;
margin-bottom: 10px;
object-fit: cover;
border: 1px solid var(--color-borde);
border-radius: 8px;
}
.galeria-miniaturas {
display: flex;
margin-top: 14px;
gap: 10px;
flex-wrap: wrap;
}
.miniatura-galeria {
width: 76px;
height: 76px;
object-fit: cover;
border: 2px solid transparent;
border-radius: 8px;
cursor: pointer;
opacity: 0.7;
transition: opacity 0.2s ease, border-color 0.2s ease;
}
.miniatura-galeria:hover {
opacity: 1;
}
.miniatura-galeria.activa {
opacity: 1;
border-color: var(--color-verde-oscuro);
}
.rejilla-imagenes-detalle {
display: grid;
margin-top: 10px;
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
gap: 12px;
}
.miniatura-imagen-detalle {
display: block;
cursor: pointer;
}
.miniatura-imagen-detalle img {
display: block;
width: 100%;
height: 90px;
margin-bottom: 6px;
object-fit: cover;
border: 1px solid var(--color-borde);
border-radius: 8px;
}
.etiqueta-eliminar-imagen-detalle {
display: flex;
align-items: center;
gap: 6px;
font-size: 0.85rem;
}
.etiqueta-eliminar-imagen-detalle input {
accent-color: var(--color-verde-oscuro);
}
.lista-archivos-seleccionados {
display: flex;
margin-top: 8px;
gap: 6px;
flex-wrap: wrap;
}
.etiqueta-archivo-seleccionado {
padding: 4px 10px;
color: var(--color-verde-oscuro);
background-color: var(--color-verde-claro);
border-radius: 999px;
font-size: 0.8rem;
}
fieldset {
border: 1px solid var(--color-borde);
border-radius: 10px;
padding: 16px;
margin: 16px 0;
}
legend {
font-weight: 700;
padding: 0 6px;
}
.bloque-regular,
.bloque-top,
.bloque-precio-actividad {
display: none;
}
.bloque-regular.visible,
.bloque-top.visible {
display: block;
}
.bloque-precio-actividad.visible {
display: grid;
}
.bloque-banner-top {
display: none;
}
.bloque-banner-top.visible {
display: grid;
}
.bloque-regular .ayuda {
margin: 0 0 16px;
color: var(--color-texto-tenue);
}
.calendarios-regular {
display: flex;
margin-top: 20px;
gap: 24px;
flex-wrap: wrap;
}
.calendario-mes {
flex: 1 1 260px;
min-width: 260px;
}
.calendario-mes-titulo {
margin: 0 0 10px;
font-weight: 700;
text-align: center;
text-transform: capitalize;
}
.calendario-mes-cabecera,
.calendario-mes-grilla {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 4px;
}
.calendario-mes-cabecera span {
padding-bottom: 4px;
color: var(--color-texto-tenue);
font-size: 0.75rem;
font-weight: 700;
text-align: center;
text-transform: uppercase;
}
.dia-calendario {
position: relative;
display: grid;
aspect-ratio: 1;
place-items: center;
color: var(--color-texto);
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 7px;
font-size: 0.85rem;
cursor: pointer;
transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.dia-calendario-vacio {
visibility: hidden;
}
.dia-calendario-pasado {
color: var(--color-texto-tenue);
background-color: transparent;
border-color: transparent;
cursor: default;
}
.dia-calendario:hover {
border-color: var(--color-verde-oscuro);
}
.dia-calendario .entrada-dia-calendario {
position: absolute;
opacity: 0;
pointer-events: none;
}
.dia-calendario:has(.entrada-dia-calendario:checked) {
color: white;
background-color: var(--color-verde-oscuro);
border-color: var(--color-verde-oscuro);
}
.opcion-pago {
display: flex;
align-items: center;
gap: 9px;
padding: 6px 0;
}
.tabla-responsive {
overflow-x: auto;
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 12px;
}
.tabla-admin {
width: 100%;
border-collapse: collapse;
}
.tabla-admin th,
.tabla-admin td {
padding: 14px 16px;
border-bottom: 1px solid var(--color-borde);
text-align: left;
vertical-align: middle;
}
.tabla-admin th {
color: var(--color-verde-oscuro);
background-color: var(--color-azul-claro);
font-size: 0.9rem;
text-transform: uppercase;
}
.tabla-admin tbody tr:hover {
background-color: var(--color-azul-claro);
}
.acciones-tabla {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.menu-fila-acciones {
position: relative;
display: inline-block;
}
.boton-acciones-fila {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 12px;
color: var(--color-verde-oscuro);
background: white;
border: 1px solid var(--color-borde);
border-radius: 999px;
cursor: pointer;
font: inherit;
font-size: 0.85rem;
font-weight: 700;
}
.boton-acciones-fila:hover {
border-color: var(--color-verde-oscuro);
}
.boton-acciones-fila .flecha-menu-mas {
font-size: 0.7rem;
transition: transform 0.2s ease;
}
.boton-acciones-fila.abierto .flecha-menu-mas {
transform: rotate(180deg);
}
.menu-fila-desplegable {
display: none;
position: fixed;
min-width: 180px;
flex-direction: column;
gap: 2px;
padding: 8px;
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 12px;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
z-index: 200;
}
.menu-fila-desplegable.abierto {
display: flex;
}
.menu-fila-desplegable a,
.menu-fila-desplegable button {
display: block;
width: 100%;
padding: 10px 12px;
color: var(--color-texto);
background: transparent;
border: none;
border-radius: 8px;
text-align: left;
text-decoration: none;
font: inherit;
cursor: pointer;
}
.menu-fila-desplegable a:hover,
.menu-fila-desplegable button:hover {
background-color: var(--color-azul-claro);
}
.menu-fila-desplegable button.peligro-texto {
color: #842029;
}
.menu-fila-desplegable button.peligro-texto:hover {
background-color: #f8d7da;
}
.menu-fila-desplegable .insignia {
margin: 6px 12px;
}
.seccion-pagos-admin {
margin-bottom: 40px;
}
.encabezado-seccion-pagos-admin {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 12px;
margin-bottom: 18px;
padding-bottom: 12px;
border-bottom: 2px solid var(--color-borde);
}
.encabezado-seccion-pagos-admin h2 {
font-size: 1.4rem;
}
.subtotal-pagos-admin {
color: var(--color-texto-tenue);
}
.subtotal-pagos-admin strong {
color: var(--color-verde-oscuro);
font-size: 1.2rem;
}
.grupo-mes-admin {
margin: 0 0 1.2rem;
background: #ffffff;
border: 1px solid var(--color-borde);
border-radius: 14px;
overflow: hidden;
}
.resumen-mes-admin {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 16px 20px;
color: var(--color-verde-oscuro);
background-color: var(--color-azul-claro);
cursor: pointer;
list-style: none;
font-family: var(--fuente-titulares);
font-size: 1.15rem;
}
.resumen-mes-admin::-webkit-details-marker {
display: none;
}
.resumen-mes-admin::after {
content: '▾';
flex-shrink: 0;
transition: transform 0.2s ease;
}
.grupo-mes-admin[open] .resumen-mes-admin::after {
transform: rotate(180deg);
}
.contador-mes-admin {
color: var(--color-texto-tenue);
font-family: var(--fuente-cuerpo);
font-size: 0.9rem;
font-weight: 700;
white-space: nowrap;
}
.grupo-mes-admin .tabla-responsive {
margin: 0;
background: transparent;
border: none;
border-radius: 0;
border-top: 1px solid var(--color-borde);
}
.grupo-mes-admin .tabla-admin th:first-child,
.grupo-mes-admin .tabla-admin td:first-child {
padding-left: 20px;
}
.grupo-mes-admin .tabla-admin th:last-child,
.grupo-mes-admin .tabla-admin td:last-child {
padding-right: 20px;
}
.boton-pequeno {
padding: 6px 12px;
font-size: 0.85rem;
}
.mensaje-exito {
color: var(--color-verde-oscuro);
background-color: var(--color-verde-claro);
border: 1px solid var(--color-verde);
}
@media (max-width: 900px) {
.rejilla-resumen-admin,
.rejilla-acciones-admin {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 600px) {
.rejilla-resumen-admin,
.formulario-admin {
grid-template-columns: 1fr;
}
.campo-completo {
grid-column: auto;
}
}
.formulario {
max-width: 650px;
margin: 2rem auto;
padding: 2rem;
background: #ffffff;
border-radius: 16px;
box-shadow: 0 8px 24px var(--sombra-tarjeta);
}
.campo {
margin-bottom: 1.4rem;
}
.campo label {
display: block;
margin-bottom: 0.45rem;
color: var(--color-verde-oscuro);
font-weight: 700;
}
.campo input,
.campo select,
.campo textarea {
width: 100%;
padding: 0.85rem;
border: 1px solid var(--color-borde);
border-radius: 8px;
font: inherit;
}
.campo input:focus,
.campo select:focus,
.campo textarea:focus {
border-color: var(--color-verde-oscuro);
outline: 3px solid rgba(87, 120, 93, 0.15);
}
.campo input[type="file"] {
padding: 0.5rem;
background-color: white;
}
.campo input[type="file"]::file-selector-button {
padding: 0.5rem 1rem;
margin-right: 0.75rem;
color: white;
background-color: var(--color-verde-oscuro);
border: none;
border-radius: 6px;
font: inherit;
font-weight: 700;
cursor: pointer;
}
.campo input[type="file"]::file-selector-button:hover {
background-color: var(--color-verde-oscuro-hover);
}
.ayuda {
margin-top: 0.4rem;
color: var(--color-texto-tenue);
font-size: 0.9rem;
}
.opciones-radio {
display: flex;
flex-wrap: wrap;
gap: 1.2rem;
}
.opciones-radio label {
display: flex;
align-items: center;
gap: 0.5rem;
margin-bottom: 0;
font-weight: 400;
}
.opciones-radio input[type="radio"] {
width: auto;
accent-color: var(--color-verde-oscuro);
cursor: pointer;
}
@media (max-width: 850px) {
.formulario {
margin: 1.5rem auto;
padding: 1.5rem;
}
}
@media (max-width: 580px) {
.formulario {
margin: 0.5rem auto;
padding: 1.25rem;
border-radius: 12px;
}
.campo {
margin-bottom: 1.1rem;
}
.opciones-radio {
flex-direction: column;
gap: 0.7rem;
}
.opciones-radio label {
width: 100%;
}
.formulario button[type="submit"] {
width: 100%;
}
}
.pagina-cuenta-formulario {
max-width: 650px;
}
.pagina-cuenta-formulario .encabezado-pagina {
text-align: center;
}
.texto-formulario-cuenta {
max-width: 480px;
margin: 0 auto 8px;
color: var(--color-texto-tenue);
text-align: center;
line-height: 1.5;
}
.enlace-formulario-cuenta {
margin-top: 12px;
text-align: center;
}
@media (max-width: 850px) {
.pagina-cuenta-formulario {
width: 92%;
}
.pagina-cuenta-formulario .encabezado-pagina h1 {
font-size: 1.9rem;
}
}
@media (max-width: 580px) {
.pagina-cuenta-formulario {
width: 100%;
}
.pagina-cuenta-formulario .encabezado-pagina h1 {
font-size: 1.6rem;
}
.texto-formulario-cuenta {
font-size: 0.95rem;
}
}
.datos-transferencia {
margin-bottom: 1.2rem;
padding: 0.9rem 1.2rem;
background-color: var(--color-marron-claro);
border: 1px solid var(--color-marron);
border-radius: 10px;
overflow-wrap: break-word;
}
.cuenta-transferencia {
padding-bottom: 0.6rem;
margin-bottom: 0.6rem;
border-bottom: 1px solid var(--color-marron);
}
.cuenta-transferencia h3 {
margin: 0 0 0.3rem;
color: var(--color-marron-oscuro);
font-size: 1rem;
}
.datos-transferencia p {
margin: 0.15rem 0;
font-size: 0.92rem;
line-height: 1.4;
}
.contacto-transferencia {
color: var(--color-texto-tenue);
font-size: 0.85rem;
}
.panel-cuenta {
margin: 0.5rem 0 3rem;
padding: 2rem;
background: var(--color-azul-claro);
border-left: 5px solid var(--color-verde-oscuro);
border-radius: 14px;
}
.panel-cuenta-cabecera {
display: flex;
margin-bottom: 22px;
align-items: center;
gap: 16px;
}
.avatar-cuenta {
display: flex;
width: 56px;
height: 56px;
flex-shrink: 0;
align-items: center;
justify-content: center;
color: white;
background-color: var(--color-verde-oscuro);
border-radius: 999px;
font-family: var(--fuente-titulares);
font-size: 1.6rem;
font-weight: 700;
}
.panel-cuenta-cabecera h2 {
margin: 0;
}
.panel-cuenta-subtitulo {
margin: 2px 0 0;
color: var(--color-texto-tenue);
font-size: 0.9rem;
}
.panel-cuenta dl {
display: grid;
margin: 0;
grid-template-columns: max-content 1fr;
gap: 14px 24px;
}
.panel-cuenta dt {
margin: 0;
color: var(--color-texto-tenue);
font-weight: 700;
}
.panel-cuenta dd {
margin: 0;
color: var(--color-verde-oscuro);
font-weight: 700;
}
@media (max-width: 850px) {
.panel-cuenta {
padding: 1.5rem;
}
}
@media (max-width: 580px) {
.panel-cuenta {
padding: 1.25rem;
}
.panel-cuenta-cabecera {
flex-wrap: wrap;
}
.panel-cuenta dl {
grid-template-columns: 1fr;
gap: 3px 0;
}
.panel-cuenta dd {
margin-bottom: 10px;
}
}
.titulo-opciones-cuenta {
margin: 0 0 20px;
font-size: 1.5rem;
}
.opciones-cuenta {
display: grid;
grid-template-columns:
repeat(auto-fit, minmax(240px, 1fr));
gap: 1.5rem;
margin-bottom: 1rem;
}
.opciones-cuenta .tarjeta {
display: flex;
flex-direction: column;
padding: 28px;
gap: 8px;
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 14px;
box-shadow: 0 8px 22px var(--sombra-tarjeta-suave);
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.opciones-cuenta .tarjeta:hover {
transform: translateY(-5px);
box-shadow: 0 16px 32px var(--sombra-tarjeta-suave);
}
.opciones-cuenta .tarjeta p {
flex: 1;
margin: 0 0 8px;
color: var(--color-texto-tenue);
}
.icono-tarjeta-cuenta {
display: flex;
width: 48px;
height: 48px;
margin-bottom: 6px;
align-items: center;
justify-content: center;
color: var(--color-verde-oscuro);
background-color: var(--color-verde-claro);
border-radius: 12px;
}
.boton.desactivado {
cursor: not-allowed;
opacity: 0.55;
}
.envoltorio-boton-paquete {
position: relative;
}
.aviso-boton-desactivado {
position: absolute;
top: calc(100% + 8px);
left: 50%;
z-index: 5;
width: max-content;
max-width: 220px;
padding: 8px 12px;
color: white;
background-color: var(--color-verde-oscuro);
border-radius: 8px;
font-size: 0.8rem;
font-weight: 600;
text-align: center;
opacity: 0;
pointer-events: none;
transform: translateX(-50%) translateY(-4px);
transition: opacity 0.2s ease, transform 0.2s ease;
}
.aviso-boton-desactivado::after {
content: '';
position: absolute;
bottom: 100%;
left: 50%;
border: 6px solid transparent;
border-bottom-color: var(--color-verde-oscuro);
transform: translateX(-50%);
}
.boton.desactivado:hover ~ .aviso-boton-desactivado,
.boton.desactivado:focus-visible ~ .aviso-boton-desactivado {
opacity: 1;
transform: translateX(-50%) translateY(0);
}
.resumen-reserva {
max-width: 700px;
margin: 2rem auto;
padding: 2rem;
background: #ffffff;
border-radius: 16px;
box-shadow: 0 8px 24px var(--sombra-tarjeta);
}
.rejilla-reservas {
display: grid;
grid-template-columns:
repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
margin: 1.5rem 0 3rem;
}
.tarjeta-reserva {
padding: 1.5rem;
background: #ffffff;
border-top: 5px solid var(--color-verde-oscuro);
border-radius: 14px;
box-shadow: 0 6px 18px var(--sombra-tarjeta);
}
.tarjeta-reserva.espera {
border-top-color: var(--color-marron-oscuro);
background: var(--color-marron-claro);
}
details.tarjeta-reserva {
border-top-color: var(--color-texto-tenue);
}
.resumen-tarjeta-reserva {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
cursor: pointer;
list-style: none;
}
.resumen-tarjeta-reserva::-webkit-details-marker {
display: none;
}
.resumen-tarjeta-reserva::after {
content: '▾';
flex-shrink: 0;
color: var(--color-texto-tenue);
transition: transform 0.2s ease;
}
details[open] .resumen-tarjeta-reserva::after {
transform: rotate(180deg);
}
.resumen-reserva-fecha {
color: var(--color-texto-tenue);
font-weight: 700;
white-space: nowrap;
}
.resumen-reserva-nombre {
overflow: hidden;
font-family: var(--fuente-titulares);
font-size: 1.15rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.detalle-tarjeta-reserva {
margin-top: 14px;
padding-top: 14px;
border-top: 1px solid var(--color-borde);
}
.grupo-historial-mes {
margin-bottom: 2rem;
}
.titulo-mes-historial {
margin: 0 0 1rem;
padding-bottom: 10px;
border-bottom: 1px solid var(--color-borde);
font-size: 1.3rem;
}
.codigo-reserva {
padding: 0.8rem;
color: var(--color-verde-oscuro);
background: var(--color-azul-claro);
border-radius: 8px;
font-family: monospace;
font-weight: 700;
letter-spacing: 0.05em;
}
.codigo-secreto-totp {
display: inline-block;
margin: 0.5rem 0 1.5rem;
padding: 1rem 1.4rem;
color: var(--color-verde-oscuro);
background: var(--color-azul-claro);
border-radius: 8px;
font-family: monospace;
font-size: 1.2rem;
font-weight: 700;
letter-spacing: 0.1em;
}
.boton.peligro {
background: #b42318;
}
.boton.peligro:hover {
background: #8f1c13;
}
.filtros {
display: flex;
flex-wrap: wrap;
align-items: flex-end;
gap: 1rem;
margin: 2rem 0;
padding: 1.5rem;
background: var(--color-azul-claro);
border-radius: 14px;
}
.filtros .campo {
flex: 1 1 180px;
}
.filtros .campo-acciones-filtro {
flex: 0 0 auto;
}
.filtros .acciones-filtro {
flex-wrap: nowrap;
}
.resumen-sesion-admin {
margin: 1.5rem 0;
padding: 1.5rem;
background: #ffffff;
border-left: 5px solid var(--color-verde-oscuro);
border-radius: 12px;
box-shadow: 0 5px 16px var(--sombra-tarjeta-suave);
}
.barra-ocupacion,
.barra-mini {
overflow: hidden;
background: var(--color-azul-claro);
border-radius: 999px;
}
.barra-ocupacion {
height: 18px;
margin-top: 1rem;
}
.barra-mini {
width: 100px;
height: 8px;
margin-top: 0.4rem;
}
.barra-ocupacion span,
.barra-mini span {
display: block;
height: 100%;
background: linear-gradient(
90deg,
var(--color-verde-oscuro),
var(--color-verde)
);
}
.grupo-botones {
display: flex;
flex-wrap: wrap;
gap: 0.8rem;
margin: 1.5rem 0;
}
.formulario-inline {
display: flex;
gap: 0.5rem;
align-items: center;
}
.boton.pequeno {
padding: 0.45rem 0.7rem;
font-size: 0.85rem;
}
.pie {
color: white;
background-color: var(--color-verde-oscuro);
}
.pie-interior {
display: flex;
flex-direction: column;
align-items: center;
gap: 18px;
padding: 50px 0 30px;
text-align: center;
}
.pie-etiqueta {
margin: 0;
color: var(--color-azul);
font-family: var(--fuente-etiquetas);
font-weight: 800;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.pie-redes {
display: flex;
gap: 14px;
}
.pie-icono-red {
display: grid;
width: 42px;
height: 42px;
place-items: center;
color: white;
border: 1px solid rgba(255, 255, 255, 0.4);
border-radius: 999px;
transition: background-color 0.2s ease, color 0.2s ease;
}
.pie-icono-red:hover {
color: var(--color-verde-oscuro);
background-color: white;
}
.pie-idioma {
display: flex;
gap: 16px;
}
.pie-idioma a {
color: rgba(255, 255, 255, 0.75);
text-decoration: none;
}
.pie-idioma a.activo {
color: white;
font-weight: 700;
}
.pie-idioma a:hover {
color: white;
}
.pie-contacto {
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
color: rgba(255, 255, 255, 0.85);
}
.pie-contacto p {
display: flex;
align-items: center;
gap: 8px;
margin: 0;
}
.pie-icono-dato {
flex-shrink: 0;
color: var(--color-azul);
}
.pie-contacto a {
color: inherit;
text-decoration: none;
transition: color 0.2s ease;
}
.pie-contacto a:hover {
color: var(--color-azul);
}
.pie-enlaces {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 22px;
padding-top: 10px;
border-top: 1px solid rgba(255, 255, 255, 0.15);
width: 100%;
max-width: 480px;
}
.pie-enlaces a {
padding: 6px 14px;
color: white;
border-radius: 999px;
text-decoration: none;
transition: background-color 0.2s ease;
}
.pie-enlaces a:hover {
background-color: rgba(255, 255, 255, 0.12);
}
.contacto-intro {
max-width: 640px;
margin: -6px 0 28px;
color: var(--color-texto-tenue);
font-size: 1.05rem;
line-height: 1.6;
}
.contacto-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 28px;
align-items: stretch;
}
.contacto-info {
display: flex;
flex-direction: column;
justify-content: center;
gap: 4px;
padding: 36px;
background-color: white;
border: 1px solid var(--color-borde);
border-radius: 18px;
box-shadow: 0 8px 22px var(--sombra-tarjeta-suave);
}
.contacto-dato {
display: flex;
align-items: flex-start;
gap: 16px;
padding: 14px 0;
}
.contacto-dato:not(:last-child) {
border-bottom: 1px solid var(--color-borde);
}
.contacto-dato strong {
display: block;
margin-bottom: 4px;
color: var(--color-verde-oscuro);
}
.contacto-dato p {
margin: 0;
}
.lista-telefonos-contacto {
display: flex;
flex-direction: column;
gap: 8px;
margin: 0;
padding: 0;
list-style: none;
}
.lista-telefonos-contacto li {
display: flex;
align-items: center;
gap: 8px;
}
.boton-whatsapp-contacto {
display: flex;
flex-shrink: 0;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
color: white;
background-color: #25d366;
border-radius: 999px;
transition: background-color 0.2s ease;
}
.boton-whatsapp-contacto:hover {
background-color: #1eb855;
}
.contacto-icono {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 46px;
height: 46px;
border-radius: 999px;
background-color: var(--color-verde-claro);
color: var(--color-verde-oscuro);
}
.contacto-mapa {
position: relative;
aspect-ratio: 4 / 3;
border: 1px solid var(--color-borde);
border-radius: 18px;
box-shadow: 0 8px 22px var(--sombra-tarjeta-suave);
overflow: hidden;
}
.contacto-mapa iframe {
width: 100%;
height: 100%;
border: 0;
}
.entrada-blog {
max-width: 820px;
margin: 0 auto;
}
.entrada-blog .imagen-detalle {
margin-bottom: 20px;
}
.video-blog {
position: relative;
aspect-ratio: 16 / 9;
margin: 24px 0;
border-radius: 14px;
overflow: hidden;
}
.video-blog iframe {
width: 100%;
height: 100%;
border: 0;
}
.contenido-blog {
margin-top: 20px;
line-height: 1.7;
}
.contenido-blog img {
max-width: 100%;
height: auto;
border-radius: 10px;
margin: 16px 0;
}
.contenido-blog h2,
.contenido-blog h3 {
margin-top: 1.5em;
}
.pie-copyright {
margin: 6px 0 0;
color: rgba(255, 255, 255, 0.6);
font-size: 0.85rem;
}
