/* =====================================================================
   AÚLLA · Escuela Bosque — Sistema de diseño
   Basado en el Documento Maestro del cliente. Móvil primero.
   Fuentes reales de aulla.es: Quicksand (marca/títulos) · ABeeZee (cuerpo).
   Todo el texto en verde bosque #1E3A27. Cortes rectos, sin ondas ni curvas.
   ===================================================================== */

:root {
  /* Paleta principal (exacta del documento) */
  --blanco: #FFFFFF;
  --crema: #F5F2EB;
  --blanco-calido: #F8F6F1;
  --verde-bosque: #1E3A27;   /* texto y marca */
  --lima: #C2D541;           /* divisores y acentos discretos */
  --salvia: #E5EBDD;         /* fondo "Aúlla, entre todos" */

  /* Fuentes existentes en la web de Aúlla */
  --fuente-marca-sans: "Quicksand", system-ui, sans-serif;
  --fuente-titulos-aulla: "Quicksand", system-ui, sans-serif;
  --fuente-cuerpo-aulla: "ABeeZee", system-ui, sans-serif;

  --ancho-texto: 380px;      /* ancho máximo de lectura en columnas centradas */
  --ancho-contenido: 1120px; /* contenedor de escritorio */
}

/* ---------- Reset suave ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){ html { scroll-behavior: auto; } }
body {
  margin: 0;
  font-family: var(--fuente-cuerpo-aulla);
  color: var(--verde-bosque);
  background: var(--blanco);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; color: inherit; }
h1, h2, h3, h4 { margin: 0; font-weight: 500; font-family: var(--fuente-titulos-aulla); line-height: 1.2; }
p { margin: 0; }
::selection { background: var(--lima); color: var(--verde-bosque); }

/* ---------- Contenedores y ritmo ---------- */
.contenedor { width: 100%; max-width: var(--ancho-contenido); margin-inline: auto; padding-inline: 20px; }
.centrado { text-align: center; }
.medida { max-width: var(--ancho-texto); margin-inline: auto; }

/* Cada sección hace un corte recto (sin bordes redondeados ni ondas) */
.seccion { position: relative; }
.bg-blanco { background: var(--blanco); }
.bg-crema  { background: var(--crema); }
.bg-salvia { background: var(--salvia); }
.bg-neutro { background: var(--blanco-calido); }

/* Divisor lima entre contenidos (50% ancho, centrado) */
.divisor {
  width: 50%;
  height: 1px;
  background: var(--lima);
  border: 0;
  margin: 40px auto;
}

/* =====================================================================
   1 · CABECERA
   ===================================================================== */
.cabecera {
  position: relative;
  top: auto;
  z-index: 10;
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(1.1) blur(6px);
  min-height: 92px;
  display: flex; align-items: center;
  border-bottom: 1px solid rgba(30,58,39,.08);
}
.cabecera__inner {
  width: 100%; max-width: var(--ancho-contenido); margin-inline: auto;
  padding: 0 20px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.marca { display: inline-flex; align-items: center; gap: 11px; }
.marca__icono { width: 36px; height: 36px; }
.marca__nombre {
  font-family: var(--fuente-marca-sans);
  font-weight: 700; font-size: 30px; letter-spacing: .005em;
  color: var(--verde-bosque); line-height: 1;
}
.nav-principal { display: flex; align-items: center; gap: 26px; }
.nav-principal a {
  font-family: var(--fuente-marca-sans);
  font-size: 16px; font-weight: 500; color: var(--verde-bosque);
  letter-spacing: .005em; padding: 6px 0; position: relative;
}
.nav-principal a::after {
  content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 0;
  background: var(--verde-bosque); transition: width .3s ease;
}
.nav-principal a:hover::after,
.nav-principal a[aria-current="page"]::after { width: 100%; }

.menu-btn { display: none; }

/* =====================================================================
   2 · VÍDEO PRINCIPAL (a sangre, limpio, sin texto encima)
   ===================================================================== */
.video-hero { background: var(--verde-bosque); }
.video-hero video {
  width: 100%;
  height: 62vh;
  object-fit: cover;
}

/* =====================================================================
   3 · BIENVENIDA (crema, centrada)
   ===================================================================== */
.bienvenida { padding: 80px 20px; text-align: center; }
.bienvenida__marca {
  font-family: var(--fuente-marca-sans);
  font-weight: 700; font-size: 39px; line-height: 1; color: var(--verde-bosque);
}
.bienvenida__sub {
  font-family: var(--fuente-marca-sans);
  font-weight: 300; font-size: 18px; color: var(--verde-bosque);
  margin-top: 6px;
}
.bienvenida__texto {
  font-family: var(--fuente-cuerpo-aulla);
  font-size: 17px; font-weight: 400; line-height: 1.6; color: var(--verde-bosque);
  max-width: 460px; margin: 26px auto 0;
}

/* =====================================================================
   4 · CUATRO IDEAS QUE DAN FORMA A NUESTRO DÍA A DÍA (blanco)
   ===================================================================== */
.ideas { padding: 80px 20px 76px; }
.ideas__titulo {
  font-family: var(--fuente-titulos-aulla);
  font-size: 31px; font-weight: 500; line-height: 1.25; color: var(--verde-bosque);
  text-align: center; max-width: 360px; margin: 0 auto 54px;
}
.idea { text-align: center; }
.idea__foto {
  width: 90%; max-width: 520px; margin: 0 auto;
  aspect-ratio: 4/3; object-fit: cover; border-radius: 0;
}
.idea__titulo {
  font-family: var(--fuente-titulos-aulla);
  font-size: 21px; font-weight: 500; color: var(--verde-bosque);
  margin-top: 24px;
}
.idea__texto {
  font-family: var(--fuente-cuerpo-aulla);
  font-size: 16px; font-weight: 400; line-height: 1.6; color: var(--verde-bosque);
  max-width: 360px; margin: 11px auto 0;
}

/* =====================================================================
   5 · MÁS DE UNA DÉCADA (crema)
   ===================================================================== */
.decada { padding: 90px 20px; text-align: center; }
.decada__frase {
  font-family: var(--fuente-titulos-aulla);
  font-size: 23px; font-weight: 500; line-height: 1.5; color: var(--verde-bosque);
  max-width: 360px; margin: 0 auto;
}
.enlace-editorial {
  display: inline-block; margin-top: 34px;
  font-family: var(--fuente-marca-sans);
  font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: var(--verde-bosque);
  border-bottom: 1px solid var(--verde-bosque); padding-bottom: 3px;
  transition: letter-spacing .3s ease, opacity .3s ease;
}
.enlace-editorial:hover { letter-spacing: .16em; }
.enlace-editorial .fl { transition: transform .3s ease; display: inline-block; }
.enlace-editorial:hover .fl { transform: translateX(4px); }

/* =====================================================================
   6 · AÚLLA, ENTRE TODOS (salvia) — composición editorial
   ===================================================================== */
.entre-todos { padding: 80px 20px 95px; }
.entre-todos__titulo {
  font-family: var(--fuente-titulos-aulla);
  font-size: 31px; font-weight: 500; line-height: 1.2; color: var(--verde-bosque);
  text-align: center; margin-bottom: 50px;
}
.invitacion {
  max-width: 460px; margin: 0 auto 56px; text-align: center;
  font-family: var(--fuente-cuerpo-aulla); font-size: 16px; line-height: 1.6;
}
.invitacion a {
  color: var(--verde-bosque); border-bottom: 1px solid var(--lima); padding-bottom: 2px;
  font-weight: 400;
}
.invitacion strong { font-weight: 400; display: block; margin-bottom: 6px; font-size: 17px; }

/* Conjuntos que alternan; nada de cuadrícula rígida */
.aportaciones { display: flex; flex-direction: column; gap: 56px; max-width: 640px; margin: 0 auto; }
.aportacion { display: flex; flex-direction: column; gap: 18px; }
.aportacion--dcha { align-items: flex-end; }
.aportacion--izq { align-items: flex-start; }
.aportacion--centro { align-items: center; text-align: center; }
.aportacion__foto { width: 90%; border-radius: 0; }
.aportacion--dcha .aportacion__foto, .aportacion--izq .aportacion__foto { width: 82%; }
.testimonio {
  background: var(--crema); width: 88%;
  padding: 30px;
  font-family: var(--fuente-cuerpo-aulla); font-size: 16px; line-height: 1.6; color: var(--verde-bosque);
}
.testimonio__firma { display: block; margin-top: 14px; font-size: 14px; opacity: .8; }
.dibujo { width: 78%; }
.dibujo__marco { background: var(--blanco); padding: 14px; }
.dibujo__placeholder {
  aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center;
  text-align: center; border: 1px dashed rgba(30,58,39,.35);
  font-family: var(--fuente-cuerpo-aulla); font-size: 14px; color: rgba(30,58,39,.55);
}
.frase-peque {
  font-family: var(--fuente-cuerpo-aulla); font-size: 18px; line-height: 1.5; color: var(--verde-bosque);
  max-width: 320px;
}
.frase-peque cite { display: block; margin-top: 8px; font-size: 14px; opacity: .75; font-style: normal; }

/* =====================================================================
   7 · CONTACTO — cierre con Elena + formulario común
   ===================================================================== */
.contacto { padding: 80px 20px 100px; }
.contacto__inner { display: flex; flex-direction: column; gap: 48px; max-width: 960px; margin: 0 auto; }
.elena { text-align: center; display: flex; flex-direction: column; align-items: center; }
.elena__foto {
  width: 150px; height: 150px; border-radius: 50%; object-fit: cover;
  border: 4px solid var(--salvia);
}
.elena__nombre {
  font-family: var(--fuente-titulos-aulla); font-size: 28px; font-weight: 600;
  color: var(--verde-bosque); margin-top: 22px;
}
.elena__cargo {
  font-family: var(--fuente-cuerpo-aulla); font-size: 15px; font-weight: 400;
  color: var(--verde-bosque); opacity: .8; margin-top: 4px;
}
.elena__frase {
  font-family: var(--fuente-titulos-aulla); font-size: 19px; font-weight: 400; line-height: 1.5;
  color: var(--verde-bosque); max-width: 320px; margin: 26px auto 0;
}

/* ---------- Formulario común ---------- */
.form-intro {
  font-family: var(--fuente-cuerpo-aulla); font-size: 16px; line-height: 1.6;
  text-align: center; max-width: 460px; margin: 0 auto 28px;
}
.form-aulla { width: 100%; max-width: 520px; margin: 0 auto; }
.campo { margin-bottom: 16px; }
.campo label {
  display: block; font-family: var(--fuente-cuerpo-aulla); font-size: 14px;
  color: var(--verde-bosque); margin-bottom: 6px;
}
.campo input, .campo select, .campo textarea {
  width: 100%; font-family: var(--fuente-cuerpo-aulla); font-size: 16px; color: var(--verde-bosque);
  background: var(--blanco); border: 1px solid rgba(30,58,39,.25);
  padding: 12px 14px; border-radius: 0;
  transition: border-color .25s ease;
}
.campo input:focus, .campo select:focus, .campo textarea:focus {
  outline: none; border-color: var(--verde-bosque);
}
.campo textarea { min-height: 120px; resize: vertical; }
.form-fila { display: grid; grid-template-columns: 1fr; gap: 0; }
.btn-enviar {
  width: 100%; margin-top: 8px;
  font-family: var(--fuente-marca-sans); font-weight: 600; font-size: 14px;
  letter-spacing: .08em; text-transform: uppercase;
  background: var(--verde-bosque); color: var(--blanco);
  border: 1px solid var(--verde-bosque); padding: 15px 20px; border-radius: 0;
  transition: background .25s ease, color .25s ease;
}
.btn-enviar:hover { background: transparent; color: var(--verde-bosque); }
.form-nota { font-size: 13px; opacity: .7; text-align: center; margin-top: 12px; }
.form-ok { display: none; background: var(--salvia); padding: 14px; text-align: center; font-size: 15px; margin-top: 14px; }

/* Acceso a WhatsApp integrado en el bloque de contacto (Explora / cierres) */
.wa-inline {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--fuente-marca-sans); font-weight: 600; font-size: 14px;
  color: var(--verde-bosque); border: 1px solid var(--verde-bosque);
  padding: 12px 18px; margin-bottom: 26px; transition: background .25s, color .25s;
}
.wa-inline:hover { background: var(--verde-bosque); color: var(--blanco); }
.wa-inline svg { width: 18px; height: 18px; }

/* =====================================================================
   WHATSAPP FLOTANTE (bocadillo, verde Aúlla, aparición controlada)
   ===================================================================== */
.wa-flotante {
  position: fixed; right: 18px; bottom: 18px; z-index: 60;
  width: 50px; height: 50px;
  background: var(--verde-bosque); color: var(--blanco);
  display: inline-flex; align-items: center; justify-content: center;
  /* Forma de bocadillo de conversación: esquinas suaves + pico */
  border-radius: 50% 50% 50% 6px;
  box-shadow: 0 6px 18px rgba(30,58,39,.28);
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .5s ease, transform .5s ease, visibility .5s;
}
.wa-flotante.visible { opacity: 1; visibility: visible; transform: translateY(0); }
.wa-flotante svg { width: 24px; height: 24px; }
.wa-flotante__texto {
  position: absolute; right: 62px; white-space: nowrap;
  background: var(--verde-bosque); color: #fff; font-family: var(--fuente-marca-sans);
  font-size: 13px; padding: 7px 12px; border-radius: 6px;
  opacity: 0; pointer-events: none; transition: opacity .25s ease;
}
@media (hover: hover){
  .wa-flotante:hover .wa-flotante__texto { opacity: 1; }
}

/* =====================================================================
   FOOTER COMÚN
   ===================================================================== */
/* Color de marca original del logotipo Aúlla: #00997A. */
.footer { background: #00997A; color: #EAF0E4; padding: 54px 20px 30px; }
.footer__inner { max-width: var(--ancho-contenido); margin: 0 auto; }
.footer__top { display: flex; flex-direction: column; gap: 26px; align-items: center; text-align: center; }
.footer__marca { display: inline-flex; align-items: center; gap: 9px; }
.footer__marca .marca__nombre { color: #fff; }
.footer__redes { display: flex; gap: 14px; }
.footer__redes a {
  width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center; transition: background .25s, border-color .25s;
}
.footer__redes a:hover { background: rgba(255,255,255,.12); }
.footer__redes svg { width: 16px; height: 16px; fill: #fff; }
.footer__legal {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px;
  font-family: var(--fuente-cuerpo-aulla); font-size: 13px; margin-top: 30px;
}
.footer__legal a { color: rgba(255,255,255,.82); }
.footer__legal a:hover { color: #fff; text-decoration: underline; }
.footer__legal button {
  background: none; border: 0; color: rgba(255,255,255,.82); font-family: var(--fuente-cuerpo-aulla);
  font-size: 13px; padding: 0; text-decoration: underline dotted;
}
.footer__kit {
  margin-top: 30px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.15);
  text-align: center;
}
.footer__kit img { max-width: 340px; width: 100%; margin: 0 auto; opacity: .95; }
.footer__kit p { font-size: 11px; color: rgba(255,255,255,.55); margin-top: 10px; }
.footer__copy { text-align: center; font-size: 12px; color: rgba(255,255,255,.5); margin-top: 24px; }

/* =====================================================================
   CABECERA DE PÁGINA INTERIOR (sin texto sobre foto → texto bajo la foto)
   ===================================================================== */
.pagina-titular { padding: 60px 20px 40px; text-align: center; }
.pagina-titular h1 {
  font-family: var(--fuente-titulos-aulla); font-size: 34px; font-weight: 500;
  color: var(--verde-bosque); line-height: 1.2;
}
.pagina-titular p {
  font-family: var(--fuente-cuerpo-aulla); font-size: 17px; line-height: 1.6;
  max-width: 480px; margin: 18px auto 0;
}
.foto-plena { width: 100%; }
.foto-plena img { width: 100%; height: 56vh; object-fit: cover; }

/* Bloque de texto + foto para páginas interiores */
.bloque-texto { padding: 70px 20px; }
.bloque-texto h2 {
  font-family: var(--fuente-titulos-aulla); font-size: 26px; font-weight: 500; color: var(--verde-bosque);
  text-align: center; max-width: 520px; margin: 0 auto 20px;
}
.bloque-texto p {
  font-family: var(--fuente-cuerpo-aulla); font-size: 16px; line-height: 1.7; color: var(--verde-bosque);
  max-width: 560px; margin: 0 auto 16px; text-align: center;
}
.propuestas { display: flex; flex-direction: column; gap: 56px; margin-top: 40px; }
.propuesta { text-align: center; }
.propuesta img { width: 90%; max-width: 520px; margin: 0 auto; aspect-ratio: 4/3; object-fit: cover; }
.propuesta h3 { font-family: var(--fuente-titulos-aulla); font-size: 22px; font-weight: 500; margin-top: 22px; }
.propuesta p { max-width: 420px; margin: 10px auto 0; }

/* Contenido legal */
.legal-contenido { max-width: 720px; margin: 0 auto; padding: 60px 20px 80px; }
.legal-contenido h1 { font-family: var(--fuente-titulos-aulla); font-size: 30px; margin-bottom: 24px; }
.legal-contenido h2 { font-family: var(--fuente-titulos-aulla); font-size: 20px; margin: 30px 0 10px; }
.legal-contenido p, .legal-contenido li { font-size: 15px; line-height: 1.7; }
.legal-contenido a { color: var(--verde-bosque); text-decoration: underline; }

/* =====================================================================
   BANNER DE COOKIES (sencillo; el sitio real usa su gestor de consentimiento)
   ===================================================================== */
.cookies {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
  background: var(--blanco); border-top: 1px solid rgba(30,58,39,.15);
  padding: 16px 20px; display: none;
}
.cookies.abierto { display: block; }
.cookies__inner { max-width: 900px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; justify-content: center; }
.cookies p { font-family: var(--fuente-cuerpo-aulla); font-size: 13px; line-height: 1.5; flex: 1; min-width: 220px; }
.cookies a { text-decoration: underline; }
.cookies__btns { display: flex; gap: 8px; }
.cookies button {
  font-family: var(--fuente-marca-sans); font-size: 13px; padding: 9px 16px; border-radius: 0;
  border: 1px solid var(--verde-bosque);
}
.cookies .aceptar { background: var(--verde-bosque); color: #fff; }
.cookies .rechazar, .cookies .config { background: transparent; color: var(--verde-bosque); }

/* Animación de aparición suave (respeta reduce-motion) */
[data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity .8s ease, transform .8s ease; }
[data-reveal].dentro { opacity: 1; transform: none; }
.no-js [data-reveal] { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce){ [data-reveal] { opacity: 1; transform: none; transition: none; } }

/* =====================================================================
   ESCRITORIO (el mismo criterio visual; se amplían ritmos y 2 columnas)
   ===================================================================== */
@media (min-width: 860px){
  .video-hero video { height: 78vh; max-height: 760px; }

  .bienvenida { padding: 110px 20px; }
  .bienvenida__marca { font-size: 46px; }

  .ideas { padding: 110px 20px 100px; }
  .ideas__titulo { font-size: 38px; max-width: 640px; }
  /* Los 4 contenidos alternan foto y texto en dos columnas, sin cuadrícula rígida */
  .idea {
    display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 48px;
    max-width: 980px; margin: 0 auto; text-align: left;
  }
  .idea:nth-of-type(odd) .idea__foto { order: 2; }
  .idea__foto { width: 100%; }
  .idea__titulo { margin-top: 0; font-size: 26px; }
  .idea__texto { margin-left: 0; margin-right: 0; max-width: 420px; font-size: 17px; }
  .divisor { margin: 56px auto; }

  .decada { padding: 120px 20px; }
  .decada__frase { font-size: 30px; max-width: 390px; }

  .entre-todos { padding: 110px 20px 120px; }
  .entre-todos__titulo { font-size: 38px; }
  .aportaciones { max-width: 820px; gap: 70px; }
  .aportacion--dcha { flex-direction: row; align-items: center; gap: 32px; }
  .aportacion--izq { flex-direction: row-reverse; align-items: center; gap: 32px; }
  .aportacion--dcha .aportacion__foto, .aportacion--izq .aportacion__foto { width: 52%; }
  .testimonio { width: auto; flex: 1; }

  .contacto { padding: 110px 20px 120px; }
  .contacto__inner { flex-direction: row; align-items: flex-start; gap: 64px; }
  .contacto__col-elena { flex: 0 0 40%; position: sticky; top: 110px; }
  .contacto__col-form { flex: 1; }
  .form-fila { grid-template-columns: 1fr 1fr; gap: 16px; }
  .elena__foto { width: 170px; height: 170px; }

  .pagina-titular { padding: 90px 20px 50px; }
  .pagina-titular h1 { font-size: 46px; }
  .foto-plena img { height: 64vh; max-height: 620px; }
  .propuestas { gap: 80px; }
  .propuesta { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; text-align: left; max-width: 980px; margin: 0 auto; }
  .propuesta:nth-of-type(even) img { order: 2; }
  .propuesta img { width: 100%; }
  .propuesta p { margin-left: 0; }

  .wa-flotante { width: 52px; height: 52px; right: 24px; bottom: 24px; }

  .footer__top { flex-direction: row; justify-content: space-between; text-align: left; }
  .footer__legal { justify-content: flex-start; }
}

/* =====================================================================
   ACABADO ESTÉTICO (sutil, coherente con la calma de Aúlla)
   ===================================================================== */

/* Profundidad y vida en las fotografías (bordes rectos, sombra suave) */
.idea__foto, .propuesta img, .aportacion__foto, .foto-plena img, .dibujo__marco {
  box-shadow: 0 16px 40px -26px rgba(30, 58, 39, .55);
  transition: transform .5s ease, box-shadow .5s ease;
}
.idea__foto:hover, .propuesta img:hover, .aportacion__foto:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 50px -26px rgba(30, 58, 39, .6);
}

/* Acento lima bajo los títulos de sección */
.ideas__titulo::after,
.entre-todos__titulo::after,
.pagina-titular h1::after,
.bloque-texto h2::after {
  content: ""; display: block;
  width: 46px; height: 3px; background: var(--lima);
  margin: 20px auto 0;
}

/* Testimonios con comilla de apertura y filo lima */
.testimonio {
  position: relative; padding: 40px 30px 30px;
  border-left: 3px solid var(--lima);
}
.testimonio::before {
  content: "\201C";
  position: absolute; top: 6px; left: 16px;
  font-family: var(--fuente-titulos-aulla); font-weight: 700;
  font-size: 46px; line-height: 1; color: var(--lima); opacity: .6;
}

/* Frase infantil: un poco más de carácter */
.frase-peque { font-style: italic; }
.frase-peque cite { font-style: normal; }

/* Elena, con más presencia y calidez */
.elena__foto {
  box-shadow: 0 18px 44px -22px rgba(30, 58, 39, .5);
}

/* Datos de contacto (página Contacto) */
.datos-contacto { display: flex; flex-direction: column; gap: 20px; }
.datos-contacto p { margin: 0; font-family: var(--fuente-cuerpo-aulla); font-size: 17px; }
.dato-lab {
  display: block; font-family: var(--fuente-marca-sans);
  font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .14em;
  color: rgba(30, 58, 39, .55); margin-bottom: 3px;
}
.datos-contacto a { color: var(--verde-bosque); border-bottom: 1px solid var(--lima); padding-bottom: 1px; }
.datos-contacto a:hover { border-bottom-color: var(--verde-bosque); }

/* Formulario de aportaciones: archivos, consentimiento y avisos */
.campo input[type="file"] {
  padding: 11px 12px; background: var(--blanco); font-size: 15px;
}
.form-hint { font-size: 13px; color: rgba(30,58,39,.65); margin: -8px 0 14px; }
.consent {
  display: flex; gap: 11px; align-items: flex-start;
  margin: 6px 0 10px; font-family: var(--fuente-cuerpo-aulla); font-size: 14px; line-height: 1.5;
}
.consent input[type="checkbox"] {
  width: 20px; height: 20px; margin: 2px 0 0; flex-shrink: 0; accent-color: var(--verde-bosque);
}
.consent a { color: var(--verde-bosque); text-decoration: underline; }
.consent-aviso { display: none; color: #9a3412; font-size: 13px; margin: 0 0 12px; }
.aviso-moderacion {
  background: var(--salvia); border-left: 3px solid var(--lima);
  padding: 16px 18px; font-size: 14px; line-height: 1.55; margin-bottom: 28px;
}

/* Enlace editorial con matiz lima al pasar */
.enlace-editorial:hover { color: var(--verde-bosque); border-bottom-color: var(--lima); }

/* Botón de menú un poco más visible */

/* =====================================================================
   MENÚ MÓVIL
   ===================================================================== */
@media (max-width: 600px){
  .menu-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 42px; height: 42px; background: none; border: 0;
  }
  .menu-btn span, .menu-btn span::before, .menu-btn span::after {
    content: ""; display: block; width: 22px; height: 2px; background: var(--verde-bosque);
    transition: transform .3s ease, opacity .3s ease;
  }
  .menu-btn span::before { transform: translateY(-7px); }
  .menu-btn span::after { transform: translateY(5px); }
  .nav-principal {
    position: fixed; inset: 92px 0 auto 0;
    background: var(--blanco); flex-direction: column; align-items: center; gap: 4px;
    padding: 22px 20px 30px; border-bottom: 1px solid rgba(30,58,39,.1);
    transform: translateY(-140%); transition: transform .4s ease; z-index: 40;
  }
  .nav-principal a { font-size: 20px; padding: 14px 0; }
  .nav-abierto .nav-principal { transform: translateY(0); }
  .nav-abierto .menu-btn span { background: transparent; }
  .nav-abierto .menu-btn span::before { transform: rotate(45deg); }
  .nav-abierto .menu-btn span::after { transform: rotate(-45deg); }
}

/* =====================================================================
   AJUSTES CLIENTA · v1.2.0
   Recuperación de contenidos Escuela Bosque / Verano y Aúlla entre todos
   ===================================================================== */
.aportacion__foto--pequena {
  width: min(72%, 420px) !important;
  max-width: 420px;
  height: auto;
  object-fit: cover;
}
.aportacion--ejemplo { justify-content: center; }
.invitacion--cta { margin: 48px auto 0; text-align: center; }
.invitacion--cta a { display: inline-block; }
.aulla-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.pagina-titular__extra {
  max-width: 720px;
  margin: 20px auto 0;
  font-size: 16px;
  line-height: 1.75;
}
.foto-plena--contenida {
  width: min(100%, 1120px);
  margin-inline: auto;
  padding: 0 20px clamp(32px,5vw,64px);
}
.foto-plena--contenida img {
  width: 100%;
  height: auto;
  max-height: 720px;
  object-fit: contain;
}
.contenido-recuperado { max-width: none; }
.contenido-recuperado > h2,
.contenido-recuperado > p,
.contenido-recuperado > .programa-dia,
.contenido-recuperado > .datos-practicos,
.contenido-recuperado > .tarifas-recuperadas,
.contenido-recuperado > .equipo-lista,
.contenido-recuperado > .grupo-reducido {
  width: min(100%, 900px);
  margin-left: auto;
  margin-right: auto;
}
.contenido-recuperado > p + p { margin-top: 18px; }
.equipo-lista { display: grid; gap: 22px; margin-top: 34px; }
.equipo-lista p { margin: 0; }
.programa-dia { display: grid; gap: 0; margin-top: 34px; }
.programa-dia article { padding: 25px 0; border-top: 1px solid rgba(68,91,55,.18); }
.programa-dia article:last-child { border-bottom: 1px solid rgba(68,91,55,.18); }
.programa-dia h3 { margin: 0 0 9px; font-family: var(--fuente-titulos-aulla); color: var(--verde-bosque); font-size: clamp(20px,2vw,25px); font-weight: 500; }
.programa-dia p { margin: 0; }
.datos-practicos { display: grid; gap: 11px; margin-top: 28px; }
.datos-practicos p, .tarifas-recuperadas p { margin: 0; }
.tarifas-recuperadas { display: grid; gap: 12px; margin-top: 25px; }
.grupo-reducido { margin-top: 24px; }
.preguntas-escuela h2:not(:first-child) { margin-top: 52px; }

.galeria-seccion > h2 { text-align: center; }
.galeria-recuperada {
  width: min(100%, 1180px);
  margin: 42px auto 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: clamp(18px, 3vw, 38px);
}
.galeria-recuperada figure { margin: 0; min-width: 0; }
.galeria-recuperada img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
.form-section-title {
  margin: 0 0 28px;
  text-align: center;
  font-family: var(--fuente-titulos-aulla);
  font-weight: 500;
  color: var(--verde-bosque);
  font-size: clamp(27px,4vw,38px);
}
.checks-semanas { display: grid; gap: 10px; margin-top: 8px; }
.checks-semanas label { display: flex; align-items: center; gap: 10px; text-transform: none; letter-spacing: 0; font-size: 15px; }
.checks-semanas input { width: auto; }

@media (min-width: 760px) {
  .galeria-recuperada { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 759px) {
  .aportacion__foto--pequena { width: min(88%, 380px) !important; }
  .galeria-recuperada { grid-template-columns: 1fr; gap: 24px; }
}


/* =====================================================================
   AJUSTES CLIENTA · v1.2.2
   Foto de Elena más pequeña y circular + simplificación de “aúlla, entre todos”
   ===================================================================== */
body.aulla-elementor-managed .contacto__col-elena .elena__foto {
  width: 118px !important;
  height: 118px !important;
  max-width: 118px !important;
  aspect-ratio: 1 / 1;
  border-radius: 50% !important;
  object-fit: cover !important;
  display: block;
}
@media (min-width: 760px) {
  body.aulla-elementor-managed .contacto__col-elena .elena__foto {
    width: 130px !important;
    height: 130px !important;
    max-width: 130px !important;
  }
}


/* ================================================================
   AJUSTE FINAL 1.2.5 · aúlla, entre todos
   - título en minúscula
   - una familia + un dibujo con frase al lado
   - imágenes más pequeñas
   ================================================================ */
.entre-todos__titulo,
.pagina-titular h1 {
  text-transform: none !important;
}
.aportaciones {
  max-width: 920px;
  gap: 34px;
}
.aportacion--fila {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
.aportacion__foto--mini {
  width: min(240px, 100%);
}
.testimonio--mini {
  width: min(340px, 100%);
  padding: 26px 28px;
}
.dibujo--mini {
  width: min(300px, 100%);
}
.frase-peque--mini {
  max-width: 280px;
  font-size: 16px;
  line-height: 1.55;
  text-align: left;
}
.frase-peque--mini cite {
  display: block;
  margin-top: 10px;
  font-size: 14px;
  opacity: .75;
  font-style: normal;
}
@media (min-width: 900px) {
  .aportacion--fila {
    flex-direction: row;
    align-items: center;
  }
}


/* ================================================================
   AJUSTE FINAL 1.2.6 · logo completo en header y footer
   ================================================================ */
.marca { display: inline-flex; align-items: center; gap: 0; }
.marca__logo-completo {
  width: clamp(170px, 24vw, 260px);
  height: auto;
  display: block;
}
.footer__marca {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.footer__logo-completo {
  width: clamp(150px, 22vw, 220px);
  height: auto;
  display: block;
}
.footer__marca .marca__nombre { display: none; }
@media (max-width: 767px) {
  .marca__logo-completo { width: 170px; }
  .footer__logo-completo { width: 150px; }
}


/* ================================================================
   AJUSTE FINAL 1.2.7 · integración del nuevo logo
   ================================================================ */
.cabecera {
  min-height: 96px;
}
.marca__logo-completo {
  width: auto;
  max-width: min(320px, 38vw);
  max-height: 64px;
  height: auto;
  display: block;
}
.footer__marca {
  padding: 4px 0;
}
.footer__logo-completo {
  width: auto;
  max-width: min(260px, 34vw);
  max-height: 76px;
  height: auto;
  display: block;
}
@media (max-width: 767px) {
  .cabecera { min-height: 88px; }
  .marca__logo-completo {
    max-width: 190px;
    max-height: 50px;
  }
  .footer__logo-completo {
    max-width: 180px;
    max-height: 54px;
  }
}


/* ================================================================
   AJUSTE FINAL 1.2.8 · logo oficial PNG sin lienzo blanco
   ================================================================ */
.cabecera {
  min-height: 92px;
}
.marca__logo-completo {
  width: auto !important;
  height: 66px !important;
  max-width: 260px !important;
  object-fit: contain;
  display: block;
}
.footer__logo-completo {
  width: auto !important;
  height: 78px !important;
  max-width: 300px !important;
  object-fit: contain;
  display: block;
}
@media (max-width: 767px) {
  .cabecera { min-height: 82px; }
  .marca__logo-completo { height: 52px !important; max-width: 205px !important; }
  .footer__logo-completo { height: 62px !important; max-width: 230px !important; }
}


/* 1.2.9 · Escuela Bosque: recuperación fiel del contenido original */
.contacto--escuela-original .campo--captcha { max-width: 180px; }
.contacto--escuela-original .btn-enviar { text-transform: none; letter-spacing: 0; }
.foto-plena--contenida img { object-fit: contain; }


/* ================================================================
   AJUSTE 1.3.0 · Escuela Bosque con estructura visual calcada
   ================================================================ */
.school-page-exacta {
  --school-bg: #f4f3f1;
  --school-card: #ffffff;
  --school-input: #ececec;
  --school-teal: #0e9b89;
  --school-text: #5c6675;
  --school-lime: #b9cb15;
  --school-soft-green: #d9e3a6;
  background: var(--school-bg);
  color: var(--school-text);
  font-family: var(--fuente-cuerpo-aulla);
}
.school-page-exacta * { box-sizing: border-box; }
.school-page-exacta .school-container {
  width: min(100%, 1380px);
  margin-inline: auto;
  padding-inline: 28px;
}
.school-page-exacta .school-surface { background: var(--school-bg); }
.school-page-exacta h1,
.school-page-exacta h2,
.school-page-exacta h3,
.school-page-exacta summary,
.school-page-exacta .school-cta__btn,
.school-page-exacta .btn-enviar--school {
  font-family: var(--fuente-titulos-aulla);
}
.school-page-exacta p,
.school-page-exacta li,
.school-page-exacta input,
.school-page-exacta textarea,
.school-page-exacta label {
  font-family: var(--fuente-cuerpo-aulla);
}
.school-page-exacta .sr-only {
  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;
}

.school-page-exacta .school-surface--intro {
  padding: 68px 0 24px;
}
.school-page-exacta .school-intro h1 {
  margin: 0;
  color: var(--school-teal);
  font-size: clamp(38px, 4vw, 58px);
  font-weight: 500;
  letter-spacing: -.02em;
}
.school-page-exacta .school-intro__sub {
  margin: 50px 0 0;
  font-size: clamp(20px, 1.6vw, 24px);
  line-height: 1.55;
  color: #394150;
}
.school-page-exacta .school-how {
  padding-top: 56px;
}
.school-page-exacta .school-how h2 {
  color: #3aa056;
  font-size: clamp(34px, 3vw, 50px);
  font-weight: 700;
  margin: 0 0 54px;
}
.school-page-exacta .school-how__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 78px);
}
.school-page-exacta .school-how__grid p,
.school-page-exacta .school-team__copy p,
.school-page-exacta .school-faq p,
.school-page-exacta .school-practical__list p,
.school-page-exacta .school-item__panel p {
  margin: 0;
  max-width: none;
  text-align: left;
  font-size: clamp(16px, 1.38vw, 19px);
  line-height: 1.95;
  color: var(--school-text);
}
.school-page-exacta .school-how__grid strong,
.school-page-exacta .school-team__copy strong,
.school-page-exacta .school-practical__list strong {
  color: #46505f;
  font-weight: 700;
}

.school-page-exacta .school-surface--team {
  padding: 66px 0 18px;
}
.school-page-exacta .school-team {
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(42px, 6vw, 88px);
}
.school-page-exacta .school-team__media img {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 1.26 / 1;
  object-fit: cover;
  border-radius: 50% / 36%;
  box-shadow: none;
}
.school-page-exacta .school-team__copy h2 {
  margin: 0 0 36px;
  color: var(--school-teal);
  font-size: clamp(38px, 3.5vw, 58px);
  font-weight: 500;
}
.school-page-exacta .school-team__copy p + p { margin-top: 22px; }

.school-page-exacta .school-surface--morning {
  padding: 92px 0 24px;
}
.school-page-exacta .school-morning h2 {
  margin: 0 0 28px;
  color: #3aa056;
  font-size: clamp(34px, 3vw, 52px);
  font-weight: 700;
}
.school-page-exacta .school-accordion {
  border: 1px solid #d8d6d0;
  background: transparent;
}
.school-page-exacta .school-item {
  border-top: 1px solid #d8d6d0;
  background: transparent;
}
.school-page-exacta .school-item:first-child { border-top: 0; }
.school-page-exacta .school-item summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 28px 24px;
  cursor: pointer;
  color: var(--school-text);
  font-size: clamp(18px, 1.55vw, 24px);
  font-weight: 400;
}
.school-page-exacta .school-item summary::-webkit-details-marker { display: none; }
.school-page-exacta .school-item__icon {
  position: relative;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
}
.school-page-exacta .school-item__icon::before,
.school-page-exacta .school-item__icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 16px;
  height: 2px;
  background: #d0cec8;
  transform: translate(-50%, -50%);
}
.school-page-exacta .school-item__icon::after {
  width: 2px;
  height: 16px;
}
.school-page-exacta .school-item[open] > summary .school-item__icon::after {
  opacity: 0;
}
.school-page-exacta .school-item__panel {
  padding: 6px 24px 34px;
}
.school-page-exacta .school-item__panel p + p { margin-top: 16px; }
.school-page-exacta .school-item__figure {
  margin: 32px auto 0;
  text-align: center;
}
.school-page-exacta .school-item__figure img {
  width: min(100%, 355px);
  aspect-ratio: 1 / 1;
  object-fit: cover;
  margin: 0 auto;
  box-shadow: none;
}
.school-page-exacta .school-practical {
  padding: 56px 0 0;
}
.school-page-exacta .school-practical h3 {
  margin: 0 0 22px;
  color: #3aa056;
  font-size: clamp(28px, 2.45vw, 42px);
  font-weight: 700;
}
.school-page-exacta .school-practical__list {
  display: grid;
  gap: 12px;
}

.school-page-exacta .school-surface--faq {
  padding: 82px 0 34px;
}
.school-page-exacta .school-faq {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(26px, 4vw, 82px);
}
.school-page-exacta .school-faq h2 {
  margin: 0 0 26px;
  color: var(--school-lime);
  font-size: clamp(30px, 2.55vw, 45px);
  font-weight: 400;
  line-height: 1.22;
}

.school-page-exacta .school-surface--photo {
  padding: 16px 0 14px;
}
.school-page-exacta .school-photo-wide {
  border: 1px solid #ddd9d1;
  padding: 0;
}
.school-page-exacta .school-photo-wide img {
  width: 100%;
  display: block;
  height: auto;
  object-fit: cover;
  box-shadow: none;
}

.school-page-exacta .school-surface--cta {
  padding: 70px 0 48px;
}
.school-page-exacta .school-cta {
  max-width: 1350px;
  margin: 0 auto;
  background: var(--school-soft-green);
  border-radius: 28px;
  text-align: center;
  padding: 54px 42px 40px;
  box-shadow: 0 20px 50px -34px rgba(0,0,0,.12);
}
.school-page-exacta .school-cta h3 {
  margin: 0 0 30px;
  color: #111111;
  font-size: clamp(34px, 2.7vw, 52px);
  font-weight: 700;
}
.school-page-exacta .school-cta p {
  margin: 0 auto;
  max-width: 1150px;
  text-align: center;
  font-size: clamp(18px, 1.55vw, 23px);
  line-height: 1.7;
  color: #161616;
}
.school-page-exacta .school-cta p + p { margin-top: 34px; }
.school-page-exacta .school-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 170px;
  padding: 18px 34px;
  border-radius: 10px;
  background: #f4f4f4;
  color: var(--school-lime);
  font-size: clamp(18px, 1.5vw, 28px);
  font-weight: 700;
}

.school-page-exacta .school-surface--form {
  padding: 70px 0 42px;
  background: var(--school-bg);
}
.school-page-exacta .school-form-wrap {
  max-width: 1390px;
}
.school-page-exacta .form-aulla--school {
  max-width: none;
  width: 100%;
}
.school-page-exacta .school-form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  margin-bottom: 28px;
}
.school-page-exacta .campo--school { margin: 0; }
.school-page-exacta .campo--school input,
.school-page-exacta .campo--school textarea {
  width: 100%;
  border: 0;
  background: var(--school-input);
  color: var(--school-text);
  padding: 22px 22px;
  border-radius: 0;
  font-size: clamp(18px, 1.45vw, 24px);
  line-height: 1.4;
  box-shadow: none;
}
.school-page-exacta .campo--school textarea {
  min-height: 252px;
  resize: vertical;
}
.school-page-exacta .school-form-submit {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 28px;
  margin-top: 28px;
}
.school-page-exacta .school-captcha {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  color: var(--school-text);
  font-size: clamp(20px, 1.5vw, 28px);
}
.school-page-exacta .school-captcha input {
  width: 62px;
  height: 62px;
  border: 0;
  background: var(--school-input);
  padding: 10px;
  text-align: center;
  font-size: 22px;
  color: var(--school-text);
}
.school-page-exacta .btn-enviar--school {
  width: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 22px 34px;
  background: var(--school-lime);
  color: #ffffff;
  font-size: clamp(18px, 1.65vw, 32px);
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
.school-page-exacta .btn-enviar--school:hover {
  background: var(--school-lime);
  color: #ffffff;
}
.school-page-exacta .form-aulla--school .form-ok {
  display: none;
  margin-top: 18px;
  background: transparent;
  text-align: left;
  padding: 0;
  color: var(--school-text);
}

.school-page-exacta .school-surface--gallery {
  position: relative;
  padding: 110px 0 92px;
  background: #dbe3b0;
  overflow: hidden;
}
.school-page-exacta .school-gallery__wave {
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  height: 34px;
  background:
    radial-gradient(55px 18px at 55px 0, transparent 53px, #dbe3b0 54px) repeat-x;
  background-size: 165px 34px;
}
.school-page-exacta .school-gallery__head {
  text-align: center;
  color: var(--school-teal);
  margin-bottom: 52px;
}
.school-page-exacta .school-gallery__head svg {
  width: 62px;
  height: 62px;
  display: block;
  margin: 0 auto 18px;
}
.school-page-exacta .school-gallery__head h2 {
  margin: 0;
  color: var(--school-teal);
  font-size: clamp(36px, 3vw, 52px);
  font-weight: 700;
}
.school-page-exacta .school-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 48px 42px;
}
.school-page-exacta .school-gallery figure { margin: 0; }
.school-page-exacta .school-gallery img {
  width: 100%;
  aspect-ratio: 1.3 / 1;
  object-fit: cover;
  box-shadow: none;
}

@media (max-width: 1180px) {
  .school-page-exacta .school-how__grid,
  .school-page-exacta .school-faq {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .school-page-exacta .school-team {
    grid-template-columns: 1fr;
  }
  .school-page-exacta .school-team__media {
    max-width: 720px;
    margin: 0 auto;
  }
  .school-page-exacta .school-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .school-page-exacta .school-container { padding-inline: 18px; }
  .school-page-exacta .school-surface--intro { padding-top: 42px; }
  .school-page-exacta .school-intro__sub { margin-top: 28px; }
  .school-page-exacta .school-how { padding-top: 34px; }
  .school-page-exacta .school-surface--team,
  .school-page-exacta .school-surface--morning,
  .school-page-exacta .school-surface--faq,
  .school-page-exacta .school-surface--cta,
  .school-page-exacta .school-surface--form,
  .school-page-exacta .school-surface--gallery { padding-top: 48px; }
  .school-page-exacta .school-accordion { border-left: 1px solid #d8d6d0; border-right: 1px solid #d8d6d0; }
  .school-page-exacta .school-item summary { padding: 20px 18px; }
  .school-page-exacta .school-item__panel { padding: 0 18px 20px; }
  .school-page-exacta .school-form-row { grid-template-columns: 1fr; gap: 18px; }
  .school-page-exacta .school-form-submit {
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
  }
  .school-page-exacta .school-captcha { justify-content: flex-end; }
  .school-page-exacta .btn-enviar--school { width: 100%; }
  .school-page-exacta .school-cta { padding: 36px 22px 28px; border-radius: 22px; }
  .school-page-exacta .school-gallery { grid-template-columns: 1fr; gap: 24px; }
}


/* ================================================================
   AJUSTE 1.3.1 · Escuela Bosque: tipografía reducida + acordeón con imagen
   ================================================================ */
.school-page-exacta .school-intro h1 {
  font-size: clamp(32px, 2.8vw, 42px) !important;
}
.school-page-exacta .school-intro__sub {
  font-size: clamp(16px, 1.2vw, 19px) !important;
  margin-top: 34px !important;
}
.school-page-exacta .school-how h2,
.school-page-exacta .school-morning h2,
.school-page-exacta .school-gallery__head h2 {
  font-size: clamp(28px, 2.3vw, 36px) !important;
}
.school-page-exacta .school-team__copy h2 {
  font-size: clamp(30px, 2.5vw, 40px) !important;
}
.school-page-exacta .school-practical h3 {
  font-size: clamp(24px, 2vw, 32px) !important;
}
.school-page-exacta .school-faq h2 {
  font-size: clamp(24px, 2vw, 32px) !important;
}
.school-page-exacta .school-how__grid p,
.school-page-exacta .school-team__copy p,
.school-page-exacta .school-faq p,
.school-page-exacta .school-practical__list p,
.school-page-exacta .school-item__panel p,
.school-page-exacta .school-cta p {
  font-size: clamp(15px, 1.05vw, 17px) !important;
  line-height: 1.72 !important;
}
.school-page-exacta .school-item summary {
  font-size: clamp(16px, 1.2vw, 19px) !important;
  padding: 22px 24px !important;
}
.school-page-exacta .school-item__panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: center;
  gap: 34px;
  padding: 8px 24px 28px !important;
}
.school-page-exacta .school-item__panel p {
  grid-column: 1;
}
.school-page-exacta .school-item__panel p + p {
  margin-top: 10px;
}
.school-page-exacta .school-item__figure {
  grid-column: 2;
  grid-row: 1 / span 3;
  margin: 0 !important;
}
.school-page-exacta .school-item__figure img {
  width: 100% !important;
  max-width: 320px !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
}
.school-page-exacta .school-cta h3 {
  font-size: clamp(28px, 2.2vw, 36px) !important;
}
.school-page-exacta .school-cta__btn {
  font-size: clamp(16px, 1.2vw, 20px) !important;
}
.school-page-exacta .campo--school input,
.school-page-exacta .campo--school textarea {
  font-size: clamp(15px, 1.05vw, 17px) !important;
}
.school-page-exacta .school-captcha,
.school-page-exacta .btn-enviar--school {
  font-size: clamp(16px, 1.1vw, 19px) !important;
}
@media (max-width: 760px) {
  .school-page-exacta .school-item__panel {
    grid-template-columns: 1fr;
  }
  .school-page-exacta .school-item__figure {
    grid-column: 1;
    grid-row: auto;
    margin-top: 16px !important;
  }
  .school-page-exacta .school-item__figure img {
    max-width: 100% !important;
  }
}


/* ================================================================
   AJUSTE 1.3.2 · Verano / Campamento
   Recuperación completa de aulla.es/campamento/ y galería sin duplicados
   ================================================================ */
.campamento-cabecera .campamento-fecha,
.campamento-cabecera .campamento-horario {
  max-width: 680px;
  margin: 10px auto 0;
  font-family: var(--fuente-cuerpo-aulla);
  font-size: 17px;
  line-height: 1.55;
}
.campamento-cabecera .campamento-fecha { margin-top: 22px; }
.campamento-cabecera .pagina-titular__extra { margin-top: 22px; }
.campamento-hero-acciones {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 28px;
}
.campamento-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 145px;
  padding: 12px 18px;
  border: 1px solid var(--verde-bosque);
  font-family: var(--fuente-marca-sans);
  font-size: 14px;
  font-weight: 600;
}
.campamento-btn--info { background: var(--verde-bosque); color: #fff; }
.campamento-btn--wa { background: transparent; color: var(--verde-bosque); }
.campamento-edades {
  width: min(100%, 900px);
  margin: 34px auto 0;
  display: grid;
  gap: 6px;
}
.campamento-edades p {
  margin: 0;
  max-width: none;
  text-align: left;
}
.campamento-grupo-reducido { padding: 34px 20px 70px; }
.campamento-grupo-reducido__inner { width: min(100%, 1120px); margin: 0 auto; }
.campamento-grupo-reducido h3 {
  margin: 0 0 28px;
  text-align: center;
  font-family: var(--fuente-titulos-aulla);
  font-size: 26px;
  font-weight: 500;
  color: var(--verde-bosque);
}
.campamento-grupo-reducido .foto-plena--contenida { padding-bottom: 0; }
.campamento-preinscripcion .campo--captcha-camp { max-width: 160px; }
.campamento-preinscripcion .campo--captcha-camp input { max-width: 100px; }
.campamento-duda-wa {
  max-width: 620px;
  margin: 28px auto 0;
  text-align: center;
  font-size: 14px;
  line-height: 1.6;
}
.campamento-galeria .galeria-recuperada img { box-shadow: none; }
@media (min-width: 860px) {
  .campamento-cabecera { padding-top: 82px; padding-bottom: 58px; }
  .campamento-cabecera h1 { font-size: 40px; }
}


/* ================================================================
   AJUSTE 1.3.3 · Campamento: estructura original de aulla.es/campamento/
   ================================================================ */
.camp-original-topbar {
  height: 36px;
  padding: 0 34px;
  background: #b7d000;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--fuente-titulos-aulla);
  font-size: 14px;
  font-weight: 700;
}
.camp-original-topbar a { color: #fff; }
.camp-original-header {
  min-height: 112px !important;
  background: rgba(255,255,255,.88) !important;
  backdrop-filter: blur(2px) !important;
  border-bottom: 0 !important;
}
.camp-original-header .cabecera__inner {
  max-width: 1320px;
  padding-inline: 34px;
}
.camp-original-header .marca__logo-completo {
  height: 82px !important;
  max-width: 250px !important;
}
.camp-original-header .nav-principal { gap: 34px; }
.camp-original-header .nav-principal a {
  color: #009d83;
  font-size: 18px;
  font-weight: 700;
}
.camp-original-header .nav-principal a[aria-current="page"] { color: #b7d000; }
.camp-original-header .nav-principal a::after { display: none; }

.camp-original-page {
  --camp-green: #009d83;
  --camp-lime: #b7d000;
  --camp-text: #606573;
  --camp-soft: #e4e6ad;
  background: #fff;
  color: var(--camp-text);
  font-family: var(--fuente-cuerpo-aulla);
}
.camp-original-page .sr-only {
  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;
}
.camp-original-hero {
  height: 120px;
  position: relative;
  overflow: hidden;
  background: #ddd;
}
.camp-original-hero > img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 48%;
  filter: brightness(.86);
}
.camp-original-wave {
  position: absolute; left: -2%; right: -2%; bottom: -22px; height: 46px;
  background: #fff;
  border-radius: 48% 52% 0 0 / 45% 55% 0 0;
}
.camp-original-section { background: #fff; }
.camp-original-container { width: min(100%, 1320px); margin: 0 auto; padding-inline: 32px; }
.camp-original-container--narrow { width: min(100%, 1280px); }
.camp-original-container--info { width: min(100%, 1080px); }
.camp-original-container--form { width: min(100%, 1180px); }

.camp-original-intro { padding: 54px 0 22px; }
.camp-original-page h1,
.camp-original-page h2,
.camp-original-page h3 { margin: 0; font-family: var(--fuente-titulos-aulla); }
.camp-original-intro h1 {
  color: #3aa05b; font-size: 30px; font-weight: 700; margin-bottom: 32px;
}
.camp-original-date,.camp-original-hours,.camp-original-teaser,
.camp-original-richtext p,.camp-original-lived-intro,.camp-original-row p,
.camp-original-info-lines p,.camp-original-prices li,.camp-original-ages p {
  font-size: 17px; line-height: 1.72; color: var(--camp-text);
}
.camp-original-date { margin: 0 0 4px; }
.camp-original-hours { margin: 0 0 8px; }
.camp-original-teaser { max-width: 850px; margin: 0; }
.camp-original-actions { display:flex; gap:82px; margin:32px 0 44px; }
.camp-original-button {
  display:inline-flex; align-items:center; justify-content:center; min-width:190px;
  padding:13px 22px; background:var(--camp-lime); color:#fff;
  font-family:var(--fuente-titulos-aulla); font-size:20px; font-weight:700;
}
.camp-original-intro h2,
.camp-original-lived h2 {
  color:#3aa05b; font-size:30px; font-weight:700; margin:0 0 36px;
}
.camp-original-richtext p { margin:0 0 14px; }
.camp-original-highlight {
  max-width: 850px; margin: 36px auto 34px; padding: 24px 42px;
  background: var(--camp-soft); text-align:center; color:#626878;
  font-family:var(--fuente-titulos-aulla); font-size:25px; line-height:1.35;
}
.camp-original-wide-photo { margin:48px auto 0; max-width:900px; }
.camp-original-wide-photo img { width:100%; display:block; box-shadow:none; }

.camp-original-lived { padding: 42px 0 16px; }
.camp-original-lived-intro { margin:0 0 34px; }
.camp-original-schedule { border-top:1px solid var(--camp-lime); }
.camp-original-row {
  display:grid; grid-template-columns:260px 1fr; gap:40px; align-items:start;
  padding:28px 26px; border-bottom:1px solid var(--camp-lime);
}
.camp-original-row h3 { font-size:17px; line-height:1.5; color:#555b68; font-weight:700; text-align:center; }
.camp-original-row p { margin:0; }
.camp-original-wide-photo--second { max-width:930px; margin-top:54px; }

.camp-original-info { padding:36px 0 26px; }
.camp-original-info h2 {
  color:var(--camp-green); font-size:28px; font-weight:700; margin:0 0 22px;
}
.camp-original-info-lines p { margin:0 0 8px; }
.camp-original-price-title { margin-top:32px !important; }
.camp-original-prices { margin:0 0 24px 20px; padding:0; }
.camp-original-prices li { margin:4px 0; }
.camp-original-ages p { margin:4px 0; }
.camp-original-group-title { margin-top:14px !important; }
.camp-original-composition { margin:48px auto 0; max-width:920px; }
.camp-original-composition img { width:100%; height:auto; display:block; box-shadow:none; }

.camp-original-form { padding: 34px 0 60px; }
.camp-original-form-intro {
  margin:0 auto 34px; text-align:center; color:var(--camp-green);
  font-family:var(--fuente-titulos-aulla); font-size:21px; font-weight:700;
}
.camp-original-form h2 {
  margin:0 0 30px; text-align:center; color:var(--camp-lime);
  font-size:32px; font-weight:400;
}
.camp-original-form-grid {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 28px;
}
.camp-original-input input {
  width:100%; border:0; background:#ececec; color:var(--camp-text);
  padding:17px 20px; font-family:var(--fuente-cuerpo-aulla); font-size:16px;
}
.camp-original-weeks {
  grid-column:1 / -1; border:0; padding:0; margin:4px 0 0;
}
.camp-original-weeks legend {
  margin-bottom:14px; font-family:var(--fuente-titulos-aulla); font-size:17px; font-weight:700; color:#545a67;
}
.camp-original-weeks label { display:flex; align-items:center; gap:9px; margin:8px 0; font-size:17px; }
.camp-original-weeks input { width:20px; height:20px; accent-color:var(--camp-lime); }
.camp-original-submit {
  grid-column:1 / -1; display:flex; align-items:center; justify-content:flex-end; gap:22px; margin-top:0;
}
.camp-original-captcha { display:flex; align-items:center; gap:12px; font-size:17px; }
.camp-original-captcha input { width:62px; height:62px; border:0; background:#ececec; text-align:center; }
.camp-original-submit button {
  border:0; background:var(--camp-lime); color:#fff; padding:16px 28px;
  font-family:var(--fuente-titulos-aulla); font-size:20px; cursor:pointer;
}
.camp-original-form-grid .form-ok { grid-column:1/-1; display:none; }
.camp-original-wa-note {
  margin:72px 0 0; color:var(--camp-green); font-family:var(--fuente-titulos-aulla);
  font-size:19px; font-weight:700;
}

.camp-original-gallery-section { padding:66px 0 80px; background:#e1e8b2; }
.camp-original-gallery-title { text-align:center; color:var(--camp-green); margin-bottom:36px; }
.camp-original-gallery-title span { display:block; font-size:36px; line-height:1; margin-bottom:8px; }
.camp-original-gallery-title h2 { color:var(--camp-green); font-size:28px; font-weight:700; }
.camp-original-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:34px 38px; }
.camp-original-gallery figure { margin:0; }
.camp-original-gallery img { width:100%; aspect-ratio:1.35/1; object-fit:cover; display:block; box-shadow:none; }

@media (max-width: 900px) {
  .camp-original-topbar { display:none; }
  .camp-original-header { min-height:82px !important; }
  .camp-original-header .marca__logo-completo { height:55px !important; }
  .camp-original-container { padding-inline:20px; }
  .camp-original-actions { gap:14px; flex-wrap:wrap; }
  .camp-original-row { grid-template-columns:1fr; gap:8px; padding-inline:0; }
  .camp-original-row h3 { text-align:left; }
  .camp-original-form-grid { grid-template-columns:1fr; }
  .camp-original-weeks,.camp-original-submit,.camp-original-form-grid .form-ok { grid-column:1; }
  .camp-original-submit { justify-content:flex-start; flex-wrap:wrap; }
  .camp-original-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .camp-original-hero { height:90px; }
  .camp-original-intro h1,.camp-original-intro h2,.camp-original-lived h2 { font-size:25px; }
  .camp-original-highlight { font-size:19px; padding:20px; }
  .camp-original-gallery { grid-template-columns:1fr; }
  .camp-original-wa-note { margin-top:42px; }
}


/* ================================================================
   AJUSTE 1.3.6 · Header global idéntico + frase formulario Escuela
   ================================================================ */
.aulla-global-topbar {
  height: 42px;
  padding: 0 42px;
  background: #b7d000;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--fuente-titulos-aulla);
  font-size: 14px;
  font-weight: 700;
}
.aulla-global-topbar a { color: #ffffff !important; text-decoration: none; }
.aulla-global-header {
  position: relative !important;
  top: auto !important;
  min-height: 140px !important;
  background: #ffffff !important;
  backdrop-filter: none !important;
  border-bottom: 0 !important;
}
.aulla-global-header .cabecera__inner {
  width: 100%;
  max-width: 1560px;
  margin-inline: auto;
  padding: 0 72px;
}
.aulla-global-header .marca__logo-completo {
  width: auto !important;
  height: 84px !important;
  max-width: 260px !important;
  object-fit: contain;
}
.aulla-global-header .nav-principal { gap: 42px; }
.aulla-global-header .nav-principal a {
  font-family: var(--fuente-titulos-aulla) !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  padding: 6px 0 !important;
}
.aulla-global-header .nav-principal a::after { display: none !important; }
.aulla-global-header .nav-school,
.aulla-global-header .nav-contact { color: #009d83 !important; }
.aulla-global-header .nav-experiences { color: #b7d000 !important; }
.school-form-intro {
  margin: 0 0 34px !important;
  text-align: center !important;
  color: #009d83 !important;
  font-family: var(--fuente-titulos-aulla) !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
}
@media (max-width: 760px) {
  .aulla-global-topbar { height: 36px; padding: 0 16px; font-size: 12px; }
  .aulla-global-header { min-height: 88px !important; }
  .aulla-global-header .cabecera__inner { padding: 0 18px; }
  .aulla-global-header .marca__logo-completo { height: 56px !important; max-width: 190px !important; }
  .aulla-global-header .nav-principal { inset: 124px 0 auto 0; }
  .aulla-global-header .nav-principal a { font-size: 18px !important; }
  .school-form-intro { font-size: 18px !important; margin-bottom: 24px !important; }
}


/* ================================================================
   AJUSTE 1.3.7 · cabecera: sin Newsletter + activo correcto
   ================================================================ */
.aulla-global-topbar {
  justify-content: flex-start !important;
}
.aulla-global-header .nav-principal a,
.aulla-global-header .nav-school,
.aulla-global-header .nav-experiences,
.aulla-global-header .nav-contact {
  color: #009d83 !important;
}
.aulla-global-header .nav-principal a.is-active,
.aulla-global-header .nav-principal a[aria-current="page"] {
  color: #b7d000 !important;
}


/* ================================================================
   1.4.1 · Galería Experiencias con icono y lightbox
   ================================================================ */
.camp-original-gallery-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  text-align: center;
}
.camp-original-gallery-icon {
  width: 58px;
  height: 58px;
  color: #009b7e;
  display: block;
}
.camp-original-gallery figure { margin: 0; }
.camp-gallery-open {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}
.camp-gallery-open img {
  width: 100%;
  display: block;
}
.camp-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.88);
  padding: 64px 76px;
}
.camp-lightbox.is-open { display: flex; }
.camp-lightbox__stage {
  width: min(1180px, 88vw);
  height: min(82vh, 900px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.camp-lightbox__stage img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  box-shadow: 0 18px 60px rgba(0,0,0,.4);
}
.camp-lightbox__close,
.camp-lightbox__nav {
  position: absolute;
  border: 0;
  background: rgba(255,255,255,.12);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s ease;
}
.camp-lightbox__close:hover,
.camp-lightbox__nav:hover { background: rgba(255,255,255,.24); }
.camp-lightbox__close {
  top: 20px;
  right: 24px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  font-size: 38px;
  line-height: 1;
}
.camp-lightbox__nav {
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 72px;
  font-size: 52px;
  line-height: 1;
}
.camp-lightbox__prev { left: 18px; }
.camp-lightbox__next { right: 18px; }
body.camp-lightbox-open { overflow: hidden !important; }
@media (max-width: 700px) {
  .camp-lightbox { padding: 58px 42px; }
  .camp-lightbox__stage { width: 100%; height: 78vh; }
  .camp-lightbox__nav { width: 38px; height: 58px; font-size: 42px; }
  .camp-lightbox__prev { left: 2px; }
  .camp-lightbox__next { right: 2px; }
  .camp-lightbox__close { top: 10px; right: 10px; width: 42px; height: 42px; }
}


/* ================================================================
   1.4.2 · Galería Escuela Bosque con lightbox
   ================================================================ */
.school-page-exacta .school-gallery .camp-gallery-open {
  height: 100%;
  overflow: hidden;
}
.school-page-exacta .school-gallery .camp-gallery-open img {
  height: 100%;
  object-fit: cover;
}


/* ================================================================
   AJUSTE 1.4.5 · logo sin caja blanca + cabecera no sticky
   ================================================================ */
.marca,
.marca__logo-completo,
.footer__marca,
.footer__logo-completo {
  background: transparent !important;
  box-shadow: none !important;
}
.aulla-global-header,
.aulla-global-header .cabecera__inner,
.aulla-global-header .marca,
.aulla-global-header .marca__logo-completo {
  background: transparent !important;
}
.aulla-global-header {
  position: relative !important;
  top: auto !important;
}


/* 1.4.7 · footer sin logotipo; se conservan redes y enlaces. */
.footer__marca, .footer__logo-completo { display: none !important; }
.footer__top { gap: 0; }


/* 1.4.10 · Retirada definitiva del enlace «Contacto» de las cabeceras,
   incluso si Elementor sirve HTML de una versión anterior. */
.aulla-global-header .nav-principal a.nav-contact,
.cabecera .nav-principal a.nav-contact {
  display: none !important;
}


/* 1.4.14 · WhatsApp junto al formulario de Escuela Bosque (sin alterar campos ni envío). */
.school-page-exacta .school-form-whatsapp {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 12px 18px;
  margin-top: 22px;
}
.school-page-exacta .school-form-whatsapp__label {
  color: var(--school-text);
  font-size: 16px;
  line-height: 1.5;
}
.school-page-exacta .school-form-whatsapp__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 21px;
  border-radius: 4px;
  background: #009d83;
  color: #fff !important;
  font-family: var(--fuente-titulos-aulla);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none !important;
  transition: background-color .2s ease;
}
.school-page-exacta .school-form-whatsapp__button:hover,
.school-page-exacta .school-form-whatsapp__button:focus-visible {
  background: #007663;
  color: #fff !important;
}
.school-page-exacta .school-form-whatsapp__button:focus-visible {
  outline: 3px solid #b7d000;
  outline-offset: 3px;
}
.school-page-exacta .school-form-whatsapp__button svg {
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
}
@media (max-width: 760px) {
  .school-page-exacta .school-form-whatsapp {
    flex-direction: column;
    align-items: stretch;
  }
  .school-page-exacta .school-form-whatsapp__label { text-align: center; }
  .school-page-exacta .school-form-whatsapp__button { width: 100%; }
}


/* =======================================================================
   1.4.15 · Explora — diseño editorial, tarjetas alternas y formulario guía.
   Reglas aisladas para no cambiar la escuela, la home ni el campamento.
   ======================================================================= */
.aulla-global-header .nav-principal .nav-explora { color:#009d83 !important; }
.aulla-global-header .nav-principal .nav-explora.is-active,
.aulla-global-header .nav-principal .nav-explora[aria-current="page"] { color:#b7d000 !important; }

.explora-titulo {
  background:#f6f8f1; padding:clamp(70px,8vw,110px) 24px clamp(45px,5vw,66px);
  text-align:center;
}
.explora-titulo h1 {
  font-size:clamp(42px,5.8vw,70px); letter-spacing:-.035em;
  font-weight:600; color:#00997a; line-height:1.08;
}
.explora-titulo h1::after { margin:23px auto 0; width:66px; height:3px; background:#b7d000; }
.explora-titulo p {
  font-size:clamp(16px,1.55vw,19px); max-width:610px; margin:24px auto 0;
  line-height:1.75; color:#315a4e;
}
.explora-hero-foto {
  width:100%; padding:0 clamp(16px,3vw,48px); background:linear-gradient(#f6f8f1 50%,#fff 50%);
}
.explora-hero-foto img {
  display:block; width:min(100%,1240px); height:clamp(310px,49vw,570px);
  max-height:none; margin:0 auto; object-fit:cover; object-position:center 48%;
  box-shadow:0 18px 46px -32px rgba(30,58,39,.3);
}
.explora-grupos { padding:clamp(74px,9vw,124px) 22px clamp(86px,10vw,140px); background:#fff; }
.explora-grupos__intro { text-align:center; margin:0 auto clamp(42px,6vw,72px); max-width:680px; }
.explora-grupos__kicker {
  display:block; margin-bottom:15px; font:700 12px/1.5 var(--fuente-titulos-aulla);
  letter-spacing:.19em; color:#00997a;
}
.explora-grupos__intro h2 {
  text-align:center; max-width:none; margin:0; color:#1e3a27;
  font-size:clamp(30px,4vw,43px); font-weight:600; line-height:1.2;
}
.explora-grupos__intro h2::after { margin:19px auto 0; width:48px; height:3px; background:#b7d000; }
.explora-grupos__lead { max-width:570px; text-align:center; margin:15px auto 0; }
.explora-grupos__lead:has(em:empty) { display:none; }
.explora-grupos .propuestas {
  display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(26px,3vw,44px);
  width:min(100%,1140px); margin:0 auto;
}
.explora-grupos .propuesta {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0;
  align-items:stretch; width:100%; max-width:none; margin:0; text-align:left;
  background:#f4f7ee; min-height:360px; overflow:hidden;
}
.explora-grupos .propuesta:nth-of-type(even) { background:#edf5f1; }
.explora-grupos .propuesta img {
  width:100%; max-width:none; height:100%; min-height:360px; aspect-ratio:auto;
  object-fit:cover; margin:0; display:block; border:0; box-shadow:none;
  transition:transform .45s ease;
}
.explora-grupos .propuesta:hover img { transform:scale(1.025); box-shadow:none; }
.explora-grupos .propuesta:nth-of-type(even) img { order:2; }
.explora-grupos .propuesta > div {
  min-width:0; display:flex; flex-direction:column; justify-content:center;
  padding:clamp(26px,5vw,72px);
}
.explora-grupos .propuesta h3 {
  margin:0; font-size:clamp(25px,3vw,35px); font-weight:600;
  color:#00997a; line-height:1.2;
}
.explora-grupos .propuesta h3::after {
  content:""; width:38px; height:3px; background:#b7d000;
  display:block; margin:19px 0 0;
}
.explora-grupos .propuesta p {
  margin:20px 0 0; max-width:435px; text-align:left;
  color:#345449; font-size:clamp(15px,1.5vw,17px); line-height:1.85;
}

/* El mismo modelo visual de contacto servirá como referencia en las
   siguientes páginas, sin reemplazar todavía sus campos ni funciones. */
.explora-contacto {
  background:#f3f7ed; padding:clamp(70px,8vw,118px) 22px;
}
.explora-contacto .explora-contacto__inner {
  display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  grid-template-rows:auto auto 1fr;
  grid-template-areas:"title form" "intro form" "whatsapp form";
  align-items:start; column-gap:clamp(32px,5vw,84px);
  max-width:1120px; width:100%; margin:0 auto; text-align:left;
}
.explora-contacto__inner > h2 {
  grid-area:title; font-family:var(--fuente-titulos-aulla); font-size:clamp(31px,3.5vw,46px);
  font-weight:600; color:#00997a; line-height:1.2; margin:12px 0 0;
}
.explora-contacto__inner > h2::after {
  content:""; display:block; height:3px; width:50px;
  margin-top:22px; background:#b7d000;
}
.explora-contacto .form-intro {
  grid-area:intro; max-width:370px; text-align:left; margin:16px 0 0;
  font-size:17px; line-height:1.8; color:#345449;
}
.explora-contacto__whatsapp { grid-area:whatsapp; margin:26px 0 0; }
.explora-contacto .wa-inline {
  gap:10px; margin:0; background:#00997a; color:#fff; border:1px solid #00997a;
  font:600 15px/1.3 var(--fuente-titulos-aulla); padding:15px 22px;
  transition:background .2s, border-color .2s;
}
.explora-contacto .wa-inline:hover, .explora-contacto .wa-inline:focus-visible {
  background:#007760; border-color:#007760; color:#fff;
}
.explora-contacto__form {
  grid-area:form; background:#fff; padding:clamp(23px,4vw,48px);
  box-shadow:0 18px 44px -36px rgba(30,58,39,.35);
  border:1px solid #dbe6d8; min-width:0;
}
.explora-contacto .form-aulla { max-width:none; width:100%; margin:0; }
.explora-contacto .campo { margin-bottom:20px; }
.explora-contacto .campo label {
  color:#345449; font-size:14px; font-weight:600; margin-bottom:9px;
}
.explora-contacto .campo input,
.explora-contacto .campo select,
.explora-contacto .campo textarea {
  background:#fcfdfb; border:1px solid #c9d7cd; border-radius:3px;
  padding:13px 14px; color:#1e3a27; min-width:0;
}
.explora-contacto .campo input:focus,
.explora-contacto .campo select:focus,
.explora-contacto .campo textarea:focus {
  border-color:#00997a; outline:2px solid rgba(0,153,122,.2); outline-offset:1px;
}
.explora-contacto .form-fila { gap:16px; }
.explora-contacto .btn-enviar {
  margin-top:8px; background:#00997a; border-color:#00997a;
  color:#fff; text-transform:none; letter-spacing:0; font-size:16px;
  padding:16px 20px; font-weight:700; border-radius:3px;
}
.explora-contacto .btn-enviar:hover { background:#007760; color:#fff; }
.explora-contacto a:focus-visible, .explora-contacto button:focus-visible { outline:3px solid #b7d000; outline-offset:3px; }
@media(max-width:850px){
  .explora-contacto .explora-contacto__inner {
    grid-template-columns:minmax(0,1fr); grid-template-rows:auto;
    grid-template-areas:"title" "intro" "whatsapp" "form";
    row-gap:0; max-width:650px;
  }
  .explora-contacto__inner > h2 { margin:0; }
  .explora-contacto__whatsapp { margin:23px 0 0; }
  .explora-contacto__form { margin-top:30px; }
}
@media(max-width:680px){
  .explora-titulo { padding:65px 20px 38px; }
  .explora-hero-foto { padding:0 14px; }
  .explora-hero-foto img { height:330px; object-position:center center; }
  .explora-grupos { padding:70px 16px 82px; }
  .explora-grupos .propuestas { gap:26px; }
  .explora-grupos .propuesta { display:flex; flex-direction:column; min-height:0; }
  .explora-grupos .propuesta img,
  .explora-grupos .propuesta:nth-of-type(even) img {
    order:0; width:100%; min-height:0; height:auto; aspect-ratio:5/4; object-fit:cover;
  }
  .explora-grupos .propuesta > div { padding:27px 25px 34px; }
  .explora-grupos .propuesta h3 { font-size:27px; }
  .explora-grupos .propuesta p { font-size:16px; margin:16px 0 0; }
  .explora-contacto { padding:70px 18px 84px; }
  .explora-contacto__form { padding:23px 18px; }
  .explora-contacto .form-fila { grid-template-columns:1fr; gap:0; }
  .explora-contacto .wa-inline { width:100%; justify-content:center; }
}


/* =====================================================================
   1.4.16 · Franja superior del header fina y sin correo
   Solo modifica la topbar. Protege el diseño del menú y la cabecera.
   ===================================================================== */
.aulla-global-topbar {
  display: block !important;
  height: 14px !important;
  min-height: 14px !important;
  max-height: 14px !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: #b7d000 !important;
}
/* Respaldo para páginas que Elementor aún sirva con HTML anterior. */
.aulla-global-topbar > a,
.aulla-global-topbar > span,
.aulla-global-topbar > p { display: none !important; }
@media (max-width: 760px) {
  .aulla-global-topbar {
    height: 10px !important;
    min-height: 10px !important;
    max-height: 10px !important;
  }
}
@media (max-width: 600px) {
  /* El menú móvil es fixed; reajustar su origen a topbar 10 + cabecera 88. */
  .aulla-global-header .nav-principal { inset: 98px 0 auto 0; }
}


/* 1.4.17 · Ocultar el acceso extra junto al formulario de Escuela Bosque.
   Se conserva cualquier WhatsApp de otras zonas de la web. */
.school-page-exacta .school-form-whatsapp { display: none !important; }


/* =====================================================================
   1.4.18 · Encabezados Escuela Bosque: colores originales del logotipo
   Únicamente h1 Escuela Bosque y h2 ¿Cómo lo hacemos?
   No altera las fotografías ni el HTML guardado en Elementor.
   ===================================================================== */
.school-page-exacta .school-intro h1 {
  color: #B3CC1D !important; /* verde lima del logo original */
  font-size: clamp(38px, 3.4vw, 50px) !important;
}
.school-page-exacta .school-how h2 {
  color: #00997A !important; /* verde principal del logo original */
  font-size: clamp(32px, 2.8vw, 43px) !important;
}


/* 1.4.19 · Contenido completo de Sin Senda y La Tribu, sin cambiar Manos Silvestres */
.explora-grupos .propuesta .explora-propuesta__claim {
  font-family:var(--fuente-titulos-aulla); font-size:clamp(19px,2vw,25px);
  line-height:1.42; font-weight:600; color:#1e3a27; margin:20px 0 4px;
}
.explora-grupos .propuesta .explora-propuesta__body {
  max-width:none; margin:15px 0 0; line-height:1.7;
}
.explora-grupos .propuesta .explora-propuesta__details {
  max-width:none; margin:25px 0 0; font-size:15px; font-weight:600;
  line-height:1.55; color:#007c64;
}
.explora-grupos .propuesta .explora-propuesta__overnights {
  margin:8px 0 0; font-size:15px; font-weight:600; color:#007c64;
}
.explora-grupos .propuesta .explora-propuesta__price {
  margin:15px 0 0; font-size:17px; font-weight:700; color:#1e3a27;
}
.explora-grupos .propuesta .explora-propuesta__guides {
  display:flex; flex-direction:column; gap:4px; margin:26px 0 0;
  padding-top:19px; border-top:1px solid #bbd1c4; color:#1e3a27;
}
.explora-grupos .propuesta .explora-propuesta__guides strong {
  font:700 18px/1.4 var(--fuente-titulos-aulla);
}
.explora-grupos .propuesta .explora-propuesta__guides span {
  font-size:15px; line-height:1.5;
}
.explora-grupos .propuesta .explora-propuesta__cta {
  display:inline-flex; align-self:flex-start; align-items:center; gap:12px;
  width:fit-content; margin-top:26px; padding:13px 18px;
  background:#00997a; color:white; font:700 13px/1.3 var(--fuente-titulos-aulla);
  letter-spacing:.055em; transition:background .2s ease;
}
.explora-grupos .propuesta .explora-propuesta__cta:hover,
.explora-grupos .propuesta .explora-propuesta__cta:focus-visible {
  background:#00765e; color:#fff;
}
.explora-grupos .propuesta .explora-propuesta__cta:focus-visible {
  outline:3px solid #b3cc1d; outline-offset:3px;
}
.explora-grupos .propuesta .explora-propuesta__cta span { font-size:18px; }
@media(max-width:680px) {
  .explora-grupos .propuesta .explora-propuesta__claim {font-size:21px;}
  .explora-grupos .propuesta .explora-propuesta__body {margin-top:13px; font-size:16px;}
  .explora-grupos .propuesta .explora-propuesta__details {margin-top:21px;}
  .explora-grupos .propuesta .explora-propuesta__cta {width:100%; justify-content:center;}
}


/* 1.4.20 · Nuevo bloque Grupo de juego en Explora */
.explora-grupos .propuesta .explora-propuesta__price + .explora-propuesta__details {
  margin-top: 10px;
}


/* 1.4.21 · Tarjetas 3 y 4 de Explora con la misma composición del resto.
   La estructura reparada permite alternar correctamente foto y texto. */
.explora-grupos .propuesta:nth-of-type(3) img { object-position:center 42%; }
.explora-grupos .propuesta:nth-of-type(4) { background:#edf5f1; }


/* =====================================================================
   1.4.22 · Explora: encabezados unificados y cuatro tarjetas independientes.
   Las tarjetas se reparan en el HTML de Elementor, no mediante CSS ilusorio.
   ===================================================================== */
.explora-grupos .propuestas > article.propuesta {
  width:100%; max-width:none; min-width:0; margin:0;
}
.explora-grupos .propuestas > article.propuesta h3 {
  text-transform:uppercase;
}
/* Fotografía de Elena en el formulario de inicio: completa y centrada,
   conservando el círculo y la foto seleccionada manualmente en Elementor. */
body.aulla-elementor-managed .contacto__col-elena {
  text-align:center;
  align-items:center;
}
body.aulla-elementor-managed .contacto__col-elena .elena__foto {
  object-fit:contain !important;
  object-position:center center !important;
  background:#f5f2eb;
  margin-left:auto;
  margin-right:auto;
}


/* 1.4.24 · Sin franja lima superior, ni espacio reservado. */
.aulla-global-topbar { display:none !important; height:0 !important; min-height:0 !important;
  max-height:0 !important; margin:0 !important; padding:0 !important; }
@media (max-width:600px) {
  .aulla-global-header .nav-principal { inset:88px 0 auto 0; }
}
/* Respaldo temporal para plantillas Elementor previas a la migración 1.4.24.
   En Explora, la cuarta tarjeta anterior era Manos Silvestres. */
.explora-grupos .propuestas > article.propuesta:nth-of-type(4) { display:none !important; }


/* =====================================================================
   1.4.25 · Tipografía de Escuela Bosque solo en Inicio
   Títulos: Quicksand; textos: ABeeZee. Ajustamos pesos, cuerpo e
   interlineado para igualar el tratamiento gráfico de Escuela Bosque.
   Sin alterar colores, imágenes, anchuras, botones ni contenido Elementor.
   ===================================================================== */
body.aulla-home-tipografia-escuela .bienvenida__marca,
body.aulla-home-tipografia-escuela .bienvenida__sub,
body.aulla-home-tipografia-escuela .ideas__titulo,
body.aulla-home-tipografia-escuela .idea__titulo,
body.aulla-home-tipografia-escuela .decada__frase,
body.aulla-home-tipografia-escuela .entre-todos__titulo,
body.aulla-home-tipografia-escuela .elena__nombre,
body.aulla-home-tipografia-escuela .elena__frase {
  font-family: var(--fuente-titulos-aulla) !important; /* Quicksand */
}
/* Los h2/h3 de Escuela Bosque usan un grosor de 700. */
body.aulla-home-tipografia-escuela .ideas__titulo,
body.aulla-home-tipografia-escuela .idea__titulo,
body.aulla-home-tipografia-escuela .entre-todos__titulo,
body.aulla-home-tipografia-escuela .elena__nombre {
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.3;
}
/* Tratamiento del h1 de Escuela Bosque: tipografía de marca más ligera. */
body.aulla-home-tipografia-escuela .bienvenida__marca {
  font-weight: 500;
  letter-spacing: -0.02em;
}
body.aulla-home-tipografia-escuela .bienvenida__sub {
  font-weight: 500;
}
body.aulla-home-tipografia-escuela .bienvenida__texto,
body.aulla-home-tipografia-escuela .idea__texto,
body.aulla-home-tipografia-escuela .invitacion,
body.aulla-home-tipografia-escuela .testimonio,
body.aulla-home-tipografia-escuela .testimonio__firma,
body.aulla-home-tipografia-escuela .frase-peque,
body.aulla-home-tipografia-escuela .frase-peque cite,
body.aulla-home-tipografia-escuela .elena__cargo,
body.aulla-home-tipografia-escuela .form-intro,
body.aulla-home-tipografia-escuela .campo label,
body.aulla-home-tipografia-escuela .campo input,
body.aulla-home-tipografia-escuela .campo select,
body.aulla-home-tipografia-escuela .campo textarea,
body.aulla-home-tipografia-escuela .form-nota,
body.aulla-home-tipografia-escuela .form-ok {
  font-family: var(--fuente-cuerpo-aulla) !important; /* ABeeZee */
}
/* El texto corrido usa el mismo ritmo que Escuela Bosque. */
body.aulla-home-tipografia-escuela .bienvenida__texto,
body.aulla-home-tipografia-escuela .idea__texto,
body.aulla-home-tipografia-escuela .invitacion,
body.aulla-home-tipografia-escuela .testimonio,
body.aulla-home-tipografia-escuela .form-intro {
  font-size: clamp(16px, 1.05vw, 17px);
  line-height: 1.72;
}
body.aulla-home-tipografia-escuela .frase-peque {
  line-height: 1.72;
}
@media (max-width: 680px) {
  body.aulla-home-tipografia-escuela .ideas__titulo,
  body.aulla-home-tipografia-escuela .entre-todos__titulo {
    line-height: 1.28;
  }
}


/* =====================================================================
   1.4.26 · Verano: imágenes contenidas, de menor tamaño y centradas
   Cambio exclusivamente visual: no toca medios ni datos de Elementor.
   ===================================================================== */
/* Fotos principales del contenido: reducción sin recortar encuadres. */
.camp-original-page .camp-original-wide-photo,
.camp-original-page .camp-original-wide-photo--second,
.camp-original-page .camp-original-composition {
  width: min(100%, 700px);
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.camp-original-page .camp-original-wide-photo img,
.camp-original-page .camp-original-composition img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 540px;
  margin-inline: auto;
  object-fit: contain;
}
/* Galería: miniaturas equilibradas y centradas, no estiradas al ancho. */
.camp-original-page .camp-original-gallery {
  grid-template-columns: repeat(4, minmax(0, 220px));
  justify-content: center;
  justify-items: center;
  gap: 26px;
}
.camp-original-page .camp-original-gallery figure,
.camp-original-page .camp-original-gallery .camp-gallery-open {
  width: 100%;
  max-width: 220px;
  margin-inline: auto;
}
.camp-original-page .camp-original-gallery .camp-gallery-open img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
  margin: 0 auto;
}
@media (max-width: 1030px) {
  .camp-original-page .camp-original-gallery {
    grid-template-columns: repeat(3, minmax(0, 220px));
  }
}
@media (max-width: 760px) {
  .camp-original-page .camp-original-gallery {
    grid-template-columns: repeat(2, minmax(0, 220px));
    gap: 20px;
  }
  .camp-original-page .camp-original-wide-photo,
  .camp-original-page .camp-original-wide-photo--second,
  .camp-original-page .camp-original-composition {
    width: min(100%, 560px);
  }
  .camp-original-page .camp-original-wide-photo img,
  .camp-original-page .camp-original-composition img {
    max-height: 440px;
  }
}
@media (max-width: 490px) {
  .camp-original-page .camp-original-gallery {
    grid-template-columns: minmax(0, 280px);
    gap: 20px;
  }
  .camp-original-page .camp-original-gallery figure,
  .camp-original-page .camp-original-gallery .camp-gallery-open {
    max-width: 280px;
  }
}


/* =====================================================================
   1.4.27 · Verano: centrar el CONTENIDO de los marcos de imagen
   La versión anterior reducía el figure, pero algunos estilos de
   Elementor/tema seguían dejando la foto desplazada. Esta solución
   centra tanto los tres grandes contenidos como la galería.
   ÚNICAMENTE CSS: no altera medios ni datos de Elementor.
   ===================================================================== */
.camp-original-page .camp-original-wide-photo,
.camp-original-page .camp-original-wide-photo--second,
.camp-original-page .camp-original-composition {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 48px auto 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: both;
  text-align: center !important;
}
.camp-original-page .camp-original-wide-photo--second {
  margin-top: 54px !important;
}
.camp-original-page .camp-original-wide-photo > img,
.camp-original-page .camp-original-composition > img {
  display: block !important;
  flex: 0 1 auto;
  width: auto !important;
  height: auto !important;
  max-width: min(100%, 700px) !important;
  max-height: 540px !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: 0 auto !important;
  float: none !important;
}
/* Fotos de galería: la cuadrícula completa va centrada en la página. */
.camp-original-page .camp-original-gallery {
  display: grid !important;
  width: 100% !important;
  max-width: 1020px !important;
  margin-inline: auto !important;
  padding: 0 !important;
  grid-template-columns: repeat(4, minmax(0, 220px)) !important;
  justify-content: center !important;
  justify-items: center !important;
  gap: 26px !important;
}
.camp-original-page .camp-original-gallery > figure {
  width: 100% !important;
  max-width: 220px !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  float: none !important;
}
.camp-original-page .camp-original-gallery .camp-gallery-open,
.camp-original-page .camp-original-gallery .camp-gallery-open > img {
  display: block !important;
  width: 100% !important;
  margin-inline: auto !important;
}
@media (max-width: 1030px) {
  .camp-original-page .camp-original-gallery {
    grid-template-columns: repeat(3, minmax(0, 220px)) !important;
  }
}
@media (max-width: 760px) {
  .camp-original-page .camp-original-gallery {
    grid-template-columns: repeat(2, minmax(0, 220px)) !important;
    gap: 20px !important;
  }
  .camp-original-page .camp-original-wide-photo > img,
  .camp-original-page .camp-original-composition > img {
    max-height: 440px !important;
  }
}
@media (max-width: 490px) {
  .camp-original-page .camp-original-gallery {
    grid-template-columns: minmax(0, 280px) !important;
  }
  .camp-original-page .camp-original-gallery > figure {
    max-width: 280px !important;
  }
}


/* ================================================================
   1.4.28 · Acordeón compacto Escuela Bosque.
   Alinea texto y foto en una única fila de altura natural, evitando las
   filas vacías que generaba grid-row:1/span 3. Las imágenes personalizadas
   de Elementor se conservan: únicamente se cambia su presentación.
   ================================================================ */
.school-page-exacta .school-item__panel--compact {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 225px) !important;
  grid-template-rows: auto !important;
  align-items: center !important;
  column-gap: clamp(18px, 3vw, 36px) !important;
  row-gap: 0 !important;
  padding: 10px 24px 22px !important;
}
.school-page-exacta .school-item__panel--compact .school-item__copy {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
  min-width: 0;
}
.school-page-exacta .school-item__panel--compact .school-item__copy p,
.school-page-exacta .school-item__panel--compact .school-item__copy p + p {
  grid-column: auto !important;
  margin: 0 !important;
}
.school-page-exacta .school-item__panel--compact .school-item__figure {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100%;
  max-width: 225px;
  margin: 0 !important;
  justify-self: center;
  align-self: center;
}
.school-page-exacta .school-item__panel--compact .school-item__figure img {
  width: 100% !important;
  max-width: 225px !important;
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  display: block;
  margin: 0 auto;
}
@media (max-width: 760px) {
  .school-page-exacta .school-item__panel--compact {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    row-gap: 15px !important;
    padding: 4px 18px 20px !important;
  }
  .school-page-exacta .school-item__panel--compact .school-item__copy {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
  .school-page-exacta .school-item__panel--compact .school-item__figure {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: min(100%, 300px);
    max-width: 300px;
    margin: 0 auto !important;
  }
  .school-page-exacta .school-item__panel--compact .school-item__figure img {
    max-width: 100% !important;
  }
}


/* ================================================================
   1.4.29 · Escuela Bosque — fotografías grandes y a ancho completo.
   La imagen se sitúa debajo del texto y ocupa todo el ancho interior
   del acordeón sin recortes ni límites de 225px. Solo presentación;
   las fotos elegidas manualmente en Elementor permanecen intactas.
   ================================================================ */
.school-page-exacta .school-item__panel--compact {
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  align-items: start !important;
  row-gap: clamp(18px, 2.5vw, 30px) !important;
  padding: 12px clamp(18px, 2.5vw, 32px) 28px !important;
}
.school-page-exacta .school-item__panel--compact .school-item__copy {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 100%;
  max-width: none !important;
  align-self: start !important;
}
.school-page-exacta .school-item__panel--compact .school-item__figure {
  grid-column: 1 !important;
  grid-row: 2 !important;
  width: 100% !important;
  max-width: none !important;
  justify-self: stretch !important;
  align-self: start !important;
  margin: 0 !important;
}
.school-page-exacta .school-item__panel--compact .school-item__figure img {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  margin: 0 !important;
}
@media (max-width: 760px) {
  .school-page-exacta .school-item__panel--compact {
    row-gap: 16px !important;
    padding: 8px 18px 22px !important;
  }
  .school-page-exacta .school-item__panel--compact .school-item__figure {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }
}


/* ================================================================
   1.4.30 · Acordeón Escuela Bosque — tamaño intermedio de fotografías.
   Texto encima, foto centrada. Ni miniatura de 225px ni ancho completo.
   Ajuste exclusivamente visual; respeta las imágenes editadas en Elementor.
   ================================================================ */
.school-page-exacta .school-item__panel--compact {
  row-gap: 18px !important;
  padding-bottom: 24px !important;
}
.school-page-exacta .school-item__panel--compact .school-item__figure {
  grid-column: 1 !important;
  grid-row: 2 !important;
  width: min(75%, 480px) !important;
  max-width: 480px !important;
  justify-self: center !important;
  align-self: center !important;
  margin: 0 auto !important;
}
.school-page-exacta .school-item__panel--compact .school-item__figure img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 370px !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  margin: 0 auto !important;
}
@media (max-width: 760px) {
  .school-page-exacta .school-item__panel--compact {
    row-gap: 14px !important;
    padding-bottom: 20px !important;
  }
  .school-page-exacta .school-item__panel--compact .school-item__figure {
    width: min(100%, 340px) !important;
    max-width: 340px !important;
  }
  .school-page-exacta .school-item__panel--compact .school-item__figure img {
    max-height: 320px !important;
  }
}


/* 1.4.31 · Imagen de financiación / Kit Digital integrada en el footer */
.footer__kit {
  margin-top: 28px;
  display: grid;
  gap: 14px;
  justify-items: center;
  text-align: center;
}
.footer__kit-text {
  margin: 0;
  max-width: 920px;
  font-size: 12px;
  line-height: 1.55;
  color: rgba(255,255,255,.82);
}
.footer__kit-card {
  width: min(100%, 980px);
  padding: 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 10px 28px rgba(0,0,0,.08);
}
.footer__kit-banner {
  display: block;
  width: 100%;
  max-width: 960px;
  height: auto;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .footer__kit-card { padding: 8px; border-radius: 10px; }
  .footer__kit-text { font-size: 11px; }
}


/* ================================================================
   1.4.32 · Home compacta + banner de financiación mejor integrado.
   Solo presentación visual: no altera el contenido de Elementor.
   ================================================================ */
.decada {
  padding: clamp(40px, 4vw, 62px) 20px !important;
}
.decada .enlace-editorial {
  margin-top: 24px;
}
@media (max-width: 680px){
  .decada { padding: 42px 20px !important; }
  .decada .enlace-editorial { margin-top: 22px; }
}

/* Banner original, completo, legible y centrado dentro del footer verde. */
.footer .footer__kit {
  display: block;
  width: 100%;
  margin: 32px auto 0;
  padding: 26px 0 0;
  border-top: 1px solid rgba(255,255,255,.25);
  text-align: center;
}
.footer .footer__kit-card {
  width: min(100%, 1040px);
  max-width: 1040px;
  margin: 0 auto;
  padding: clamp(6px, 1vw, 10px);
  border-radius: 4px;
  background: #ffffff;
  box-shadow: none;
  overflow: hidden;
}
.footer .footer__kit .footer__kit-banner {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  opacity: 1 !important;
  object-fit: contain;
  margin: 0 auto !important;
}
@media (max-width: 680px){
  .footer .footer__kit { margin-top: 24px; padding-top: 20px; }
  .footer .footer__kit-card { padding: 5px; border-radius: 2px; }
}
