/*
Theme Name: Hello Elementor Child - Sergi Marraco
Theme URI: https://sergimarraco.com
Description: Sistema de diseno de sergimarraco.com. Generado desde las maquetas aprobadas.
Author: Alejandro Alvarez
Template: hello-elementor
Version: 3.0.0
Text Domain: hello-elementor-child
*/

/* Generado automaticamente desde las maquetas. No editar a mano. */

/* El logotipo de la cabecera. */
.nav__marca { display: inline-flex; align-items: center; }

/* ======== home ======== */
:root {
    --crema:        #EDE4D6;
    --marfil:       #F7F2E9;
    --marron:       #3B2C21;
    --marron-hondo: #2A1E16;
    --ocre:         #A5703A;
    --ocre-oscuro:  #8C5C2D;
    --ocre-claro:   #C89A5C;
    
    --dorado:        #C89520;
    --dorado-oscuro: #AC7F16;
    --dorado-texto:  #B08210;
    --tinta:        #2E2319;
    --tinta-suave:  #6B5A4A;
    --marfil-texto: #E9DFCF;
    --marfil-suave: #BCAB96;

    --linea-clara:  rgba(46, 35, 25, 0.16);
    --linea-oscura: rgba(233, 223, 207, 0.20);

    --tipo-titulo: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
    --peso-titular: 500;
    --texto:   "Nunito Sans", "Avenir Next", "Helvetica Neue", Arial, sans-serif;

    --ancho: 1220px;
    --margen: clamp(1.5rem, 5vw, 4.5rem);
    --banda: clamp(5.5rem, 12vw, 11rem);
  }
* { box-sizing: border-box; }
body {
    margin: 0;
    background: var(--crema);
    color: var(--tinta);
    font-family: var(--texto);
    font-weight: 400;
    font-size: 1.0625rem;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
  }
h1, h2, h3 {
    font-family: var(--tipo-titulo);
    font-weight: var(--peso-titular);
    line-height: 1.06;
    letter-spacing: -0.005em;
    text-wrap: balance;
    margin: 0;
  }
p { margin: 0; max-width: 62ch; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible {
    outline: 1.5px solid var(--ocre);
    outline-offset: 4px;
  }
img { display: block; max-width: 100%; }
.banda { padding-block: var(--banda); }
.banda--crema { background: var(--crema);  color: var(--tinta); }
.banda--marfil { background: var(--marfil); color: var(--tinta); }
.banda--marron { background: var(--marron); color: var(--marfil-texto); }
.contenedor {
    width: 100%;
    max-width: var(--ancho);
    margin-inline: auto;
    padding-inline: var(--margen);
  }
.rotulo {
    font-family: var(--texto);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ocre);
  }
.banda--marron .rotulo { color: var(--ocre-claro); }
.boton {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    background: var(--dorado);
    color: #FFFFFF;
    font-family: var(--texto);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    padding: 0.85em 1.9em;
    border-radius: 999px;
    transition: background .35s ease, gap .35s ease;
  }
.boton .flecha { transition: transform .35s ease; }
.boton:hover {
    background: var(--dorado-oscuro);
    gap: 0.95em;
  }
.boton:hover .flecha { transform: translateX(2px); }
.enlace {
    display: inline-flex;
    align-items: baseline;
    gap: 0.6em;
    font-size: 0.92rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    padding-block: 0.35em;
    border-bottom: 1px solid var(--linea-clara);
    transition: border-color .4s ease, gap .4s ease;
  }
.enlace .flecha { transition: transform .4s ease; }
.enlace:hover { border-color: var(--ocre); gap: 1em; }
.enlace:hover .flecha { transform: translateY(3px); }
.nav {
    position: sticky; top: 0; z-index: 50;
    background: var(--crema);
    border-bottom: 1px solid transparent;
    transition: border-color .5s ease;
  }
.nav[data-fija="si"] { border-bottom-color: var(--linea-clara); }
.nav__interior {
    display: flex; align-items: center; justify-content: space-between;
    gap: 2rem; padding-block: 1.35rem;
  }
.nav__marca {
    display: inline-flex; align-items: center;
    font-size: 0.78rem; font-weight: 600;
    letter-spacing: 0.3em; text-transform: uppercase;
  }
.nav__marca img { height: 34px; width: auto; }
.nav__menu {
    display: flex; flex-wrap: wrap;
    gap: clamp(1rem, 2vw, 1.9rem);
    font-size: 0.82rem; font-weight: 500;
    color: var(--tinta-suave);
  }
.nav__menu a { padding-block: 0.2em; border-bottom: 1px solid transparent; transition: color .3s, border-color .3s; }
.nav__menu a:hover { color: var(--tinta); border-bottom-color: var(--ocre); }
@media (max-width: 900px) {
	.nav__menu { display: none; }
}

.pagina-home .hero { background: var(--crema); }
.pagina-home .hero__rejilla {
    display: grid; grid-template-columns: 1fr 0.85fr;
    gap: clamp(2rem, 6vw, 5rem); align-items: center;
    padding-block: clamp(3.5rem, 9vw, 8rem) clamp(4rem, 10vw, 9rem);
  }
.hero__nombre {
    font-size: 0.76rem; font-weight: 500;
    letter-spacing: 0.34em; text-transform: uppercase;
    color: var(--tinta-suave);
    margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
  }
.pagina-home .hero__titulo { font-size: clamp(3rem, 6.4vw, 5.9rem); line-height: 0.98; }
.pagina-home .hero__titulo em { font-style: italic; font-weight: var(--peso-titular); }
.pagina-home .hero__entrada { margin-top: clamp(1.75rem, 4vw, 2.5rem); color: var(--tinta-suave); max-width: 44ch; }
.hero__accion { margin-top: clamp(2rem, 5vw, 3.25rem); }
.pagina-home .hero__retrato { aspect-ratio: 3 / 4; overflow: hidden; }
.pagina-home .hero__retrato img { width: 100%; height: 100%; object-fit: cover; object-position: 58% center; }
@media (max-width: 860px) {
	.pagina-home .hero__rejilla { grid-template-columns: 1fr; }
	.pagina-home .hero__retrato { aspect-ratio: 4 / 5; }
}

.pregunta-bloque__rejilla {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: clamp(2.5rem, 7vw, 6rem);
    align-items: start;
  }
.pregunta-bloque__titulo {
    font-size: clamp(2.5rem, 5.4vw, 4.6rem);
    line-height: 0.98;
    max-width: 12ch;
  }
.pregunta-bloque__cuerpo {
    display: flex;
    flex-direction: column;
    gap: clamp(1.4rem, 2.6vw, 1.9rem);
    color: var(--tinta-suave);
  }
.pregunta-bloque__cuerpo strong {
    color: var(--tinta);
    font-weight: 600;
  }
.interrogantes {
    font-family: var(--tipo-titulo);
    font-style: italic;
    font-weight: var(--peso-titular);
    font-size: 1.28em;
    line-height: 1.35;
    color: var(--dorado-texto);
  }
.banda--marron .pregunta-bloque__cuerpo { color: var(--marfil-suave); }
.banda--marron .pregunta-bloque__cuerpo strong { color: var(--marfil-texto); }
.banda--marron .interrogantes { color: var(--ocre-claro); }
@media (max-width: 820px) {
	.pregunta-bloque__rejilla { grid-template-columns: 1fr; }
	.pregunta-bloque__titulo { max-width: 100%; }
}

.puente__titulo { font-size: clamp(2.6rem, 6.6vw, 5.6rem); line-height: 1; max-width: 13ch; }
.transito { margin-top: clamp(2.5rem, 5vw, 3.5rem); display: flex; align-items: center; gap: clamp(1rem, 3vw, 2rem); flex-wrap: wrap; }
.transito span { font-size: 0.74rem; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--tinta-suave); }
.transito .regla { flex: 1 1 60px; min-width: 60px; height: 1px; background: var(--linea-clara); }
.puente__rejilla { margin-top: clamp(3rem, 7vw, 5rem); display: grid; grid-template-columns: 1.15fr 0.85fr; gap: clamp(2rem, 6vw, 5rem); align-items: end; }
.puente__foto { aspect-ratio: 4 / 3; overflow: hidden; }
.puente__foto img { width: 100%; height: 100%; object-fit: cover; }
.puente__nota { color: var(--tinta-suave); }
@media (max-width: 820px) {
	.puente__rejilla { grid-template-columns: 1fr; }
}

.caminos__cabecera { max-width: 40ch; }
.caminos__titulo { font-size: clamp(2.3rem, 5vw, 4rem); }
.caminos { margin-top: clamp(3rem, 7vw, 5.5rem); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.camino { display: flex; flex-direction: column; gap: 1.5rem; }
.camino__medio { aspect-ratio: 4 / 3; overflow: hidden; }
.camino__medio img { width: 100%; height: 100%; object-fit: cover; }
.camino__cifra { font-family: var(--tipo-titulo); font-size: 1.5rem; font-weight: var(--peso-titular); color: var(--ocre); line-height: 1; }
.camino__nombre { font-size: clamp(2rem, 3.6vw, 3.1rem); line-height: 1.05; }
.camino__verbo { font-size: 0.74rem; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--tinta-suave); }
.camino__texto { color: var(--tinta-suave); }
@media (max-width: 820px) {
	.caminos { grid-template-columns: 1fr; }
}

.seminarios__cabecera { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(2rem, 6vw, 5rem); align-items: end; }
.seminarios__titulo { font-size: clamp(2rem, 4vw, 3.2rem); }
.seminarios__texto { color: var(--tinta-suave); }
.lista-seminarios { margin: clamp(3rem, 6vw, 4.5rem) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--linea-clara); }
.lista-seminarios li { display: grid; grid-template-columns: 3.5rem 1fr auto; gap: 1rem; align-items: baseline; padding-block: clamp(0.85rem, 1.8vw, 1.15rem); border-bottom: 1px solid var(--linea-clara); }
.lista-seminarios .cifra { font-size: 0.74rem; font-weight: 500; letter-spacing: 0.16em; color: var(--ocre); font-variant-numeric: tabular-nums; }
.lista-seminarios .nombre { font-family: var(--tipo-titulo); font-weight: var(--peso-titular); font-size: clamp(1.15rem, 2.1vw, 1.65rem); }
.lista-seminarios .glosa { font-size: 0.84rem; color: var(--tinta-suave); text-align: right; }
@media (max-width: 700px) {
	.seminarios__cabecera { grid-template-columns: 1fr; }
	.lista-seminarios li { grid-template-columns: 2.5rem 1fr; }
	.lista-seminarios .glosa { grid-column: 2; text-align: left; }
}

.seminarios__accion { margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.sesiones__rejilla { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 7vw, 6rem); align-items: center; }
.sesiones__titulo { font-size: clamp(2.2rem, 4.6vw, 3.6rem); }
.sesiones__subtitulo {
    font-family: var(--tipo-titulo);
    font-style: italic;
    font-weight: 400;
    font-size: clamp(1.25rem, 2.2vw, 1.7rem);
    color: var(--ocre);
    line-height: 1.35;
    margin-top: clamp(0.9rem, 2vw, 1.4rem);
  }
.sesiones__cuerpo { display: flex; flex-direction: column; gap: 1.6rem; color: var(--tinta-suave); margin-top: clamp(1.75rem, 3.5vw, 2.5rem); }
.sesiones__cita {
    font-family: var(--tipo-titulo); font-style: italic; font-weight: 400;
    font-size: clamp(1.5rem, 3vw, 2.2rem); line-height: 1.35; color: var(--tinta);
    padding-left: clamp(1rem, 2vw, 1.75rem); border-left: 1px solid var(--ocre); max-width: 24ch;
  }
.banda--marron .sesiones__subtitulo { color: var(--ocre-claro); }
.banda--marron .sesiones__cuerpo { color: var(--marfil-suave); }
.banda--marron .sesiones__cita {
    color: var(--marfil-texto);
    border-left-color: var(--ocre-claro);
  }
@media (max-width: 820px) {
	.sesiones__rejilla { grid-template-columns: 1fr; }
}

.sobre__rejilla { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 7vw, 6rem); align-items: center; }
.sobre__foto { aspect-ratio: 4 / 5; overflow: hidden; }
.sobre__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 42% center; }
.sobre__titulo { font-size: clamp(2rem, 4vw, 3.2rem); }
.sobre__lema { font-family: var(--tipo-titulo); font-style: italic; font-weight: 400; font-size: clamp(1.3rem, 2.4vw, 1.85rem); color: var(--ocre); line-height: 1.3; margin-top: 0.75rem; }
.sobre__cuerpo { display: flex; flex-direction: column; gap: 1.35rem; color: var(--tinta-suave); margin-top: 2rem; }
@media (max-width: 820px) {
	.sobre__rejilla { grid-template-columns: 1fr; }
}

.pagina-home .cierre { padding-block: clamp(7rem, 18vw, 14rem); text-align: center; }
.pagina-home .cierre__frase {
    font-size: clamp(1.6rem, 2.7vw, 2.3rem);
    line-height: 1.3;
    max-width: 20ch;
    margin-inline: auto;
    color: var(--marfil-texto);
  }
.pie { background: var(--marron-hondo); color: var(--marfil-suave); padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.pie__rejilla { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.pie__marca { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--marfil-texto); }
.pie__lema { font-family: var(--tipo-titulo); font-style: italic; font-size: 1.05rem; margin-top: 0.9rem; }
.pie__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.55rem; font-size: 0.9rem; }
.pie__lista a { border-bottom: 1px solid transparent; transition: border-color .3s, color .3s; }
.pie__lista a:hover { color: var(--marfil-texto); border-bottom-color: var(--ocre-claro); }
.pie__cierre { margin-top: clamp(3rem, 6vw, 4.5rem); padding-top: 1.5rem; border-top: 1px solid var(--linea-oscura); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; font-size: 0.78rem; }
@media (max-width: 760px) {
	.pie__rejilla { grid-template-columns: 1fr; }
}

.aparece { opacity: 0; transform: translateY(20px); transition: opacity 1.2s cubic-bezier(.22,.61,.36,1), transform 1.2s cubic-bezier(.22,.61,.36,1); }
.aparece.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.aparece, .pregunta { opacity: 1; transform: none; transition: none; }
	.enlace, .boton, .enlace .flecha, .boton .flecha { transition: none; }
	html { scroll-behavior: auto; }
}

html { scroll-behavior: smooth; }

/* ======== sentido ======== */
.banda--marron p { color: var(--marfil-suave); }
.boton--linea {
    background: transparent;
    color: var(--tinta);
    border: 1px solid var(--linea-clara);
  }
.boton--linea:hover { background: transparent; border-color: var(--dorado); color: var(--dorado-texto); }
.acciones { display: flex; flex-wrap: wrap; gap: 0.9rem; }
.nav__menu a:hover, .nav__menu a[aria-current] { color: var(--tinta); border-bottom-color: var(--ocre); }
.pagina-sentido .hero { background: var(--crema); overflow-x: clip; }
.pagina-sentido .hero__rejilla {
    display: grid; grid-template-columns: 1fr 0.85fr;
    gap: clamp(2rem, 6vw, 5rem); align-items: center;
    padding-block: clamp(3.5rem, 9vw, 8rem) clamp(4rem, 10vw, 9rem);
  }
.pagina-sentido .hero__titulo { font-size: clamp(2.8rem, 6vw, 5.4rem); line-height: 1; }
.pagina-sentido .hero__entrada { margin-top: clamp(1.75rem, 4vw, 2.5rem); color: var(--tinta-suave); max-width: 46ch; }
.hero__lema {
    margin-top: clamp(1.5rem, 3vw, 2rem);
    font-size: 0.74rem; font-weight: 500;
    letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--ocre);
  }
.hero__lema i { font-style: normal; opacity: 0.5; }
.pagina-sentido .hero__imagen { margin-right: calc((100% - 100vw) / 2); }
.pagina-sentido .hero__imagen img { width: 100%; height: auto; }
@media (max-width: 860px) {
	.pagina-sentido .hero__rejilla {
      grid-template-columns: 1fr;
      
      padding-block: clamp(2.5rem, 8vw, 4rem) 1.5rem;
      gap: clamp(3rem, 9vw, 4rem);
    }
	.pagina-sentido .hero__imagen { margin-inline: 0; }
}

.preguntas__rejilla {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: clamp(2.5rem, 7vw, 6rem);
    align-items: start;
  }
.preguntas__titulo {
    font-size: clamp(2.3rem, 5vw, 4.2rem);
    line-height: 0.98;
    max-width: 13ch;
  }
.preguntas__cuerpo {
    display: flex;
    flex-direction: column;
    gap: clamp(1.4rem, 2.6vw, 1.9rem);
    color: var(--tinta-suave);
  }
@media (max-width: 820px) {
	.preguntas__rejilla { grid-template-columns: 1fr; }
	.preguntas__titulo { max-width: 100%; }
}

.comprender__rejilla {
    display: grid; grid-template-columns: 0.9fr 1.1fr;
    gap: clamp(2.5rem, 7vw, 6rem); align-items: start;
  }
.comprender__foto { margin-top: clamp(3rem, 6vw, 4.5rem); }
.comprender__foto img { width: 100%; height: auto; }
.comprender__titulo { font-size: clamp(2rem, 4vw, 3.2rem); }
.comprender__cuerpo { display: flex; flex-direction: column; gap: 1.4rem; color: var(--tinta-suave); }
.comprender__cuerpo strong { color: var(--tinta); font-weight: 600; }
.banda--marron .comprender__cuerpo strong { color: var(--marfil-texto); }
@media (max-width: 820px) {
	.comprender__rejilla { grid-template-columns: 1fr; }
}

.sabiduria__rejilla {
    display: grid; grid-template-columns: 0.9fr 1.1fr;
    gap: clamp(2.5rem, 7vw, 6rem); align-items: start;
  }
.sabiduria__titulo { font-size: clamp(2rem, 4vw, 3.2rem); }
.sabiduria__cuerpo { display: flex; flex-direction: column; gap: 1.4rem; }
.sabiduria__cuerpo strong { color: var(--marfil-texto); font-weight: 600; }
.sabiduria__cabecera {
    display: flex;
    align-items: flex-start;
    gap: clamp(0.85rem, 1.8vw, 1.3rem);
  }
.arbol { width: 34px; flex: none; height: auto; margin-top: 0.3em; }
.arbol circle { fill: var(--marron); stroke: var(--ocre-claro); stroke-width: 3.2; }
.arbol line { stroke: var(--ocre-claro); stroke-width: 2; opacity: 0.6; }
.tradiciones {
    margin-top: clamp(2.5rem, 5vw, 3.5rem);
    display: flex; flex-wrap: wrap; align-items: baseline;
    gap: 0.5rem 0.9rem;
    font-size: 0.72rem; font-weight: 500;
    letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--ocre-claro);
  }
.tradiciones i { opacity: 0.5; font-style: normal; }
@media (max-width: 820px) {
	.sabiduria__rejilla { grid-template-columns: 1fr; }
}

.territorios__cabecera {
    display: grid; grid-template-columns: 0.8fr 1.2fr;
    gap: clamp(2rem, 6vw, 5rem); align-items: end;
  }
.territorios__titulo { font-size: clamp(2.1rem, 4.2vw, 3.4rem); max-width: 14ch; }
.territorios__bajada { color: var(--tinta-suave); max-width: 54ch; }
@media (max-width: 700px) {
	.territorios__cabecera { grid-template-columns: 1fr; }
}

.territorios {
    list-style: none;
    margin: clamp(3.5rem, 8vw, 5.5rem) 0 0;
    padding: 0 0 0 clamp(3.25rem, 7vw, 5.5rem);
    max-width: 820px;
    position: relative;
  }
.territorios::before {
    content: "";
    position: absolute;
    left: clamp(1.6rem, 3.5vw, 2.75rem);
    top: 0.6rem; bottom: 0.6rem;
    width: 1px;
    background: rgba(165, 112, 58, 0.42);
  }
.territorio { position: relative; padding-bottom: clamp(2.25rem, 4.5vw, 3.25rem); }
.territorio:last-child { padding-bottom: 0; }
.territorio::before {
    content: "";
    position: absolute;
    left: calc(clamp(1.6rem, 3.5vw, 2.75rem) - clamp(3.25rem, 7vw, 5.5rem) - 4px);
    top: 0.55em;
    width: 9px; height: 9px;
    border-radius: 50%;
    background: var(--crema);
    border: 1px solid var(--ocre);
  }
.territorio .cifra {
    position: absolute;
    left: calc(0rem - clamp(3.25rem, 7vw, 5.5rem));
    top: 0.1em;
    font-family: var(--tipo-titulo);
    font-size: 1.35rem;
    color: var(--ocre);
    font-variant-numeric: tabular-nums;
  }
.territorio h3 { font-size: clamp(1.35rem, 2.4vw, 1.85rem); }
.territorio .epigrafe {
    font-size: 0.86rem; font-weight: 500;
    color: var(--dorado-texto);
    margin-top: 0.35rem;
  }
.territorio p { color: var(--tinta-suave); margin-top: 0.7rem; max-width: 54ch; }
.modos__titulo { font-size: clamp(1.9rem, 3.8vw, 3rem); max-width: 20ch; }
.modos {
    margin-top: clamp(3rem, 7vw, 5rem);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4.5vw, 3.5rem);
  }
.modo { padding-top: 1.5rem; border-top: 1px solid var(--linea-clara); }
.modo .cifra {
    font-family: var(--texto);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ocre);
    font-variant-numeric: tabular-nums;
  }
.modo h3 { font-size: clamp(1.3rem, 2.2vw, 1.7rem); margin-top: 0.5rem; }
.modo p { color: var(--tinta-suave); margin-top: 0.85rem; font-size: 0.98rem; }
@media (max-width: 760px) {
	.modos { grid-template-columns: 1fr; }
}

.formas__titulo { font-size: clamp(2rem, 4vw, 3.2rem); max-width: 20ch; }
.formas {
    margin-top: clamp(3rem, 7vw, 4.5rem);
    display: grid; grid-template-columns: 1fr 1fr;
    gap: clamp(2.5rem, 6vw, 5rem);
    align-items: start;
  }
.forma { display: flex; flex-direction: column; gap: 1.1rem; }
.forma h3 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.forma p { color: var(--tinta-suave); }
.forma p strong { color: var(--tinta); font-weight: 600; }
.forma p em { font-style: italic; }
.modalidades {
    list-style: none; margin: 0.4rem 0 0; padding: 0;
    display: flex; flex-direction: column;
  }
.modalidades li {
    padding-block: 0.55rem;
    border-bottom: 1px solid var(--linea-clara);
    font-size: 0.94rem;
    display: flex; align-items: baseline; gap: 0.8rem;
  }
.modalidades li:first-child { border-top: 1px solid var(--linea-clara); }
.modalidades .marca { color: var(--ocre); font-size: 0.7rem; }
.formatos { font-size: 0.88rem; color: var(--tinta-suave); }
.forma .boton { align-self: flex-start; margin-top: 0.6rem; }
@media (max-width: 820px) {
	.formas { grid-template-columns: 1fr; }
}

.pagina-sentido .cierre { padding-block: clamp(7rem, 18vw, 14rem); text-align: center; }
.pagina-sentido .cierre__frase {
    font-size: clamp(1.55rem, 2.6vw, 2.25rem);
    line-height: 1.32;
    max-width: 24ch;
    margin-inline: auto;
    color: var(--marfil-texto);
  }
@media (prefers-reduced-motion: reduce) {
	.aparece { opacity: 1; transform: none; transition: none; }
	.boton { transition: none; }
}


/* ======== viaje ======== */
.pagina-viaje .hero { background: var(--crema); overflow-x: clip; }
.pagina-viaje .hero__rejilla {
    display: grid; grid-template-columns: 1fr 0.9fr;
    gap: clamp(2rem, 6vw, 5rem); align-items: center;
    padding-block: clamp(3.5rem, 9vw, 8rem) clamp(4rem, 10vw, 9rem);
  }
.pagina-viaje .hero__titulo { font-size: clamp(2.9rem, 6.2vw, 5.6rem); line-height: 1; }
.pagina-viaje .hero__entrada { margin-top: clamp(1.75rem, 4vw, 2.5rem); color: var(--tinta-suave); max-width: 48ch; }
.pagina-viaje .hero__imagen { margin-right: calc((100% - 100vw) / 2); }
.pagina-viaje .hero__imagen img { width: 100%; height: auto; }
@media (max-width: 860px) {
	.pagina-viaje .hero__rejilla {
      grid-template-columns: 1fr;
      padding-block: clamp(2.5rem, 8vw, 4rem) 1.5rem;
      gap: clamp(3rem, 9vw, 4rem);
    }
	.pagina-viaje .hero__imagen { margin-right: 0; }
}

.dos-columnas {
    display: grid; grid-template-columns: 0.9fr 1.1fr;
    gap: clamp(2.5rem, 7vw, 6rem); align-items: start;
  }
.titulo-bloque { font-size: clamp(2.2rem, 4.6vw, 3.8rem); line-height: 1; max-width: 13ch; }
.cuerpo { display: flex; flex-direction: column; gap: clamp(1.4rem, 2.6vw, 1.9rem); color: var(--tinta-suave); }
.cuerpo strong { color: var(--tinta); font-weight: 600; }
.cuerpo em { font-style: italic; }
.banda--marron .cuerpo { color: var(--marfil-suave); }
.banda--marron .cuerpo strong { color: var(--marfil-texto); }
@media (max-width: 820px) {
	.dos-columnas { grid-template-columns: 1fr; }
	.titulo-bloque { max-width: 100%; }
}

.foto-ancha { margin-top: clamp(3rem, 6vw, 4.5rem); }
.foto-ancha img { width: 100%; height: auto; }
.pie-foto {
    margin-top: 0.9rem;
    font-size: 0.78rem;
    color: var(--tinta-suave);
    font-style: italic;
  }
.recorrido__secuencia {
    margin-top: clamp(3rem, 6vw, 4.5rem);
    padding-top: clamp(2rem, 4vw, 2.75rem);
    border-top: 1px solid var(--linea-clara);
    display: flex; flex-wrap: wrap; align-items: baseline;
    gap: 0.4rem 0.85rem;
    font-size: 0.72rem; font-weight: 500;
    letter-spacing: 0.18em; text-transform: uppercase;
    color: var(--ocre);
  }
.recorrido__secuencia i { font-style: normal; opacity: 0.45; }
.etapas {
    list-style: none;
    margin: clamp(3.5rem, 8vw, 5.5rem) 0 0;
    padding: 0 0 0 clamp(3.25rem, 7vw, 5.5rem);
    max-width: 860px;
    position: relative;
  }
.etapas::before {
    content: "";
    position: absolute;
    left: clamp(1.6rem, 3.5vw, 2.75rem);
    top: 0; bottom: 0;
    width: 1px;
    background: rgba(165, 112, 58, 0.42);
  }
.etapa { position: relative; padding-bottom: clamp(2.5rem, 5vw, 3.75rem); }
.etapa:last-child { padding-bottom: 0; }
.etapa::before {
    content: "";
    position: absolute;
    left: calc(clamp(1.6rem, 3.5vw, 2.75rem) - clamp(3.25rem, 7vw, 5.5rem) - 4px);
    top: 0.55em;
    width: 9px; height: 9px;
    border-radius: 50%;
    background: var(--crema);
    border: 1px solid var(--ocre);
  }
.etapa .cifra {
    position: absolute;
    left: calc(0rem - clamp(3.25rem, 7vw, 5.5rem));
    top: 0.1em;
    font-family: var(--tipo-titulo);
    font-size: 1.35rem;
    color: var(--ocre);
    font-variant-numeric: tabular-nums;
  }
.etapa h3 { font-size: clamp(1.4rem, 2.6vw, 2rem); }
.etapa .epigrafe { font-size: 0.88rem; font-weight: 500; color: var(--dorado-texto); margin-top: 0.35rem; }
.etapa p { color: var(--tinta-suave); margin-top: 0.7rem; max-width: 56ch; }
.movimientos { margin-top: clamp(3rem, 7vw, 5rem); }
.movimiento {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: clamp(1.5rem, 5vw, 4rem);
    align-items: baseline;
    padding-block: clamp(2rem, 4vw, 3rem);
    border-top: 1px solid var(--linea-clara);
  }
.movimiento:nth-child(2) { padding-left: clamp(0rem, 3vw, 2.5rem); }
.movimiento:nth-child(3) { padding-left: clamp(0rem, 6vw, 5rem); }
.movimiento__nombre {
    font-family: var(--tipo-titulo);
    font-size: clamp(1.9rem, 3.6vw, 2.9rem);
    line-height: 1.05;
  }
.movimiento__cifra {
    display: block;
    font-family: var(--texto);
    font-size: 0.72rem; font-weight: 500;
    letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--ocre);
    margin-bottom: 0.7rem;
  }
.movimiento__epigrafe { font-size: 0.9rem; font-weight: 500; color: var(--dorado-texto); margin-bottom: 0.8rem; }
.movimiento p { color: var(--tinta-suave); }
@media (max-width: 760px) {
	.movimiento { grid-template-columns: 1fr; gap: 1rem; }
	.movimiento:nth-child(2), .movimiento:nth-child(3) { padding-left: 0; }
}

.continua__rejilla {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: clamp(2.5rem, 7vw, 6rem); align-items: center;
  }
.continua__foto img { width: 100%; height: auto; }
.continua__cierre {
    font-family: var(--tipo-titulo); font-style: italic;
    font-size: clamp(1.35rem, 2.6vw, 2rem);
    line-height: 1.35; color: var(--tinta);
    padding-left: clamp(1rem, 2vw, 1.75rem);
    border-left: 1px solid var(--ocre);
    margin-top: clamp(1.75rem, 3.5vw, 2.5rem);
    max-width: 30ch;
  }
@media (max-width: 820px) {
	.continua__rejilla { grid-template-columns: 1fr; }
}

.pagina-viaje .cierre { padding-block: clamp(8rem, 20vw, 16rem); text-align: center; }
.pagina-viaje .cierre__frase {
    font-size: clamp(1.55rem, 2.6vw, 2.25rem);
    line-height: 1.34;
    max-width: 26ch;
    margin-inline: auto;
    color: var(--marfil-texto);
  }
.pagina-viaje .cierre__frase span { display: block; }
.pagina-viaje .cierre__frase span + span { margin-top: clamp(1.25rem, 2.5vw, 2rem); }

/* ======== seminarios ======== */
.pagina-seminarios .hero { background: var(--crema); overflow-x: clip; }
.pagina-seminarios .hero__interior {
    display: grid; grid-template-columns: 1fr 0.9fr;
    gap: clamp(2rem, 6vw, 5rem); align-items: center;
    padding-block: clamp(3.5rem, 9vw, 8rem) clamp(4rem, 10vw, 9rem);
  }
.pagina-seminarios .hero__imagen { margin-right: calc((100% - 100vw) / 2); }
.pagina-seminarios .hero__imagen img { width: 100%; height: auto; }
@media (max-width: 860px) {
	.pagina-seminarios .hero__interior {
      grid-template-columns: 1fr;
      padding-block: clamp(2.5rem, 8vw, 4rem) 1.5rem;
      gap: clamp(3rem, 9vw, 4rem);
    }
	.pagina-seminarios .hero__imagen { margin-right: 0; }
}

.pagina-seminarios .hero__titulo { font-size: clamp(2.9rem, 6vw, 5.4rem); line-height: 0.98; }
.pagina-seminarios .hero__subtitulo {
    font-family: var(--tipo-titulo); font-style: normal; font-weight: var(--peso-titular);
    font-size: clamp(1.5rem, 3vw, 2.4rem); line-height: 1.2;
    color: var(--tinta);
    margin-top: clamp(1.1rem, 2.2vw, 1.6rem);
    max-width: 24ch;
  }
.pagina-seminarios .hero__entrada { margin-top: clamp(1.75rem, 3.5vw, 2.5rem); color: var(--tinta-suave); max-width: 48ch; }
.seminarios { margin-top: clamp(3.5rem, 8vw, 6rem); }
.seminario {
    display: grid;
    grid-template-columns: clamp(4.5rem, 9vw, 7rem) 1fr;
    gap: clamp(1.5rem, 4vw, 3rem);
    padding-block: clamp(2.75rem, 6vw, 4.25rem);
    border-top: 1px solid var(--linea-clara);
  }
.seminario:last-child { border-bottom: 1px solid var(--linea-clara); }
.seminario__marca { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
.seminario__cifra {
    font-family: var(--tipo-titulo);
    font-size: clamp(1.6rem, 2.6vw, 2.1rem);
    line-height: 1;
    color: var(--ocre);
    font-variant-numeric: tabular-nums;
  }
.icono { width: clamp(34px, 4vw, 44px); height: auto; }
.icono [stroke] { stroke: var(--ocre); }
.icono circle, .icono path, .icono line { fill: none; stroke: var(--ocre); stroke-width: 1.5; }
.seminario__titulo { font-size: clamp(1.6rem, 3.2vw, 2.5rem); }
.seminario__epigrafe {
    font-size: 0.86rem; font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--dorado-texto);
    margin-top: 0.4rem;
  }
.seminario__pregunta {
    font-family: var(--tipo-titulo); font-style: italic; font-weight: 400;
    font-size: clamp(1.2rem, 2.2vw, 1.65rem);
    line-height: 1.35;
    color: var(--tinta);
    margin-top: clamp(1.1rem, 2vw, 1.5rem);
    max-width: 40ch;
  }
.seminario__texto { color: var(--tinta-suave); margin-top: clamp(1rem, 1.8vw, 1.35rem); max-width: 62ch; }
.seminario__enlace { margin-top: clamp(1.1rem, 2vw, 1.5rem); }
.enlace {
    display: inline-flex; align-items: baseline; gap: 0.55em;
    font-family: var(--texto); font-size: 0.88rem; font-weight: 500;
    letter-spacing: 0.04em; color: var(--ocre);
    padding-bottom: 0.25em;
    border-bottom: 1px solid rgba(165, 112, 58, 0.35);
    transition: border-color .35s ease, gap .35s ease, color .35s ease;
  }
.enlace .flecha { transition: transform .35s ease; }
.enlace:hover { color: var(--dorado-texto); border-bottom-color: var(--dorado-texto); gap: 0.9em; }
.enlace:hover .flecha { transform: translateX(2px); }
.seminario__texto strong { color: var(--tinta); font-weight: 600; }
@media (max-width: 700px) {
	.seminario { grid-template-columns: 1fr; gap: 1.25rem; }
	.seminario__marca { flex-direction: row; align-items: center; gap: 1rem; }
}

.dimensiones { margin-top: clamp(3rem, 7vw, 5rem); }
.dimension {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: clamp(1.5rem, 5vw, 4rem);
    align-items: baseline;
    padding-block: clamp(2rem, 4vw, 3rem);
    border-top: 1px solid var(--linea-clara);
  }
.dimension:last-child { border-bottom: 1px solid var(--linea-clara); }
.dimension__nombre { font-family: var(--tipo-titulo); font-size: clamp(1.8rem, 3.4vw, 2.7rem); line-height: 1.05; }
.dimension__cifra {
    display: block; font-family: var(--texto);
    font-size: 0.72rem; font-weight: 500;
    letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--ocre); margin-bottom: 0.7rem;
  }
.dimension p { color: var(--tinta-suave); }
.dimension p + p { margin-top: 1rem; }
@media (max-width: 760px) {
	.dimension { grid-template-columns: 1fr; gap: 1rem; }
}

.manual-rejilla {
    margin-top: clamp(3rem, 6vw, 4.5rem);
    display: grid; grid-template-columns: 1.05fr 0.95fr;
    gap: clamp(2rem, 5vw, 4rem); align-items: center;
  }
.manual-rejilla img { width: 100%; height: auto; }
@media (max-width: 820px) {
	.manual-rejilla { grid-template-columns: 1fr; }
}

.manual {
    margin-top: 0;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    background: rgba(165, 112, 58, 0.09);
    border-left: 2px solid var(--ocre);
    display: flex; gap: clamp(1rem, 2.5vw, 1.75rem); align-items: flex-start;
  }
.manual svg { width: 34px; flex: none; }
.manual svg [stroke] { stroke: var(--ocre); }
.manual p { color: var(--tinta-suave); margin-top: 0.4rem; font-size: 0.97rem; }
.manual p.manual__titulo {
    font-family: var(--tipo-titulo);
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    line-height: 1.15;
    color: var(--tinta);
    margin-top: 0;
  }
.pagina-seminarios .cierre { padding-block: clamp(8rem, 20vw, 16rem); text-align: center; }
.pagina-seminarios .cierre__frase {
    font-size: clamp(1.55rem, 2.6vw, 2.25rem);
    line-height: 1.34;
    max-width: 26ch;
    margin-inline: auto;
    color: var(--marfil-texto);
  }
.pagina-seminarios .cierre__frase span { display: block; }
.pagina-seminarios .cierre__frase span + span { margin-top: clamp(1.25rem, 2.5vw, 2rem); }

/* ======== sesiones ======== */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 1.5px solid var(--dorado); outline-offset: 3px;
  }
.boton {
    display: inline-flex; align-items: center; gap: 0.6em;
    background: var(--dorado); color: #FFFFFF;
    font-family: var(--texto); font-size: 0.74rem; font-weight: 600;
    letter-spacing: 0.13em; text-transform: uppercase;
    padding: 0.85em 1.9em; border-radius: 999px; border: 0; cursor: pointer;
    transition: background .35s ease, gap .35s ease;
  }
.pagina-sesiones .hero { background: var(--crema); overflow-x: clip; }
.pagina-sesiones .hero__rejilla {
    display: grid; grid-template-columns: 1fr 0.95fr;
    gap: clamp(2rem, 6vw, 5rem); align-items: center;
    padding-block: clamp(3.5rem, 9vw, 8rem) clamp(4rem, 10vw, 9rem);
  }
.pagina-sesiones .hero__titulo { font-size: clamp(2.9rem, 6.2vw, 5.6rem); line-height: 1; }
.pagina-sesiones .hero__subtitulo {
    font-family: var(--tipo-titulo); font-style: normal; font-weight: var(--peso-titular);
    font-size: clamp(1.5rem, 3vw, 2.4rem); line-height: 1.2;
    color: var(--tinta);
    margin-top: clamp(1.1rem, 2.2vw, 1.6rem);
    max-width: 26ch;
  }
.pagina-sesiones .hero__entrada { margin-top: clamp(1.5rem, 3vw, 2.25rem); color: var(--tinta-suave); max-width: 50ch; }
.pagina-sesiones .hero__imagen { margin-right: calc((100% - 100vw) / 2); }
.pagina-sesiones .hero__imagen img { width: 100%; height: auto; }
@media (max-width: 860px) {
	.pagina-sesiones .hero__rejilla { grid-template-columns: 1fr; padding-block: clamp(2.5rem, 8vw, 4rem) 1.5rem; gap: clamp(3rem, 9vw, 4rem); }
	.pagina-sesiones .hero__imagen { margin-right: 0; }
}

.banda--corta { padding-bottom: calc(var(--banda) / 2); }
.modalidades {
    margin-top: clamp(3rem, 7vw, 5rem);
    display: grid; grid-template-columns: 1fr 1fr;
    gap: clamp(2.5rem, 6vw, 5rem); align-items: start;
  }
.modalidad { display: flex; flex-direction: column; gap: 1.2rem; }
.modalidad__foto { margin-top: clamp(0.5rem, 1.5vw, 1rem); }
.modalidad__foto img { width: 100%; height: auto; }
.modalidad h3 { font-size: clamp(1.5rem, 2.8vw, 2.2rem); }
.modalidad p { color: var(--tinta-suave); }
.modalidad p strong { color: var(--tinta); font-weight: 600; }
.nota strong { color: var(--tinta); font-weight: 600; }
.pagina-sesiones .hero__entrada strong { color: var(--tinta); font-weight: 600; }
@media (max-width: 820px) {
	.modalidades { grid-template-columns: 1fr; }
}

.franja {
    display: flex; flex-wrap: wrap; align-items: center;
    gap: 0.6rem 1.6rem;
    padding-block: clamp(1.25rem, 2.5vw, 1.75rem);
    border-block: 1px solid var(--linea-clara);
    font-size: 0.76rem; font-weight: 500;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--tinta);
  }
.franja i { font-style: normal; color: var(--ocre); opacity: 0.6; }
.practica { margin-top: clamp(2.5rem, 5vw, 3.5rem); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); }
.practica dl { margin: 0; display: flex; flex-direction: column; gap: 1.1rem; }
.practica dt { font-size: 0.72rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ocre); }
.practica dd { margin: 0.25rem 0 0; color: var(--tinta-suave); }
.practica .precio { font-family: var(--tipo-titulo); font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--tinta); }
.nota { color: var(--tinta-suave); font-size: 0.95rem; }
@media (max-width: 760px) {
	.practica { grid-template-columns: 1fr; }
}

.solicitud__titulo { position: sticky; top: clamp(5.5rem, 10vh, 8rem); }
@media (max-width: 820px) {
	.solicitud__titulo { position: static; }
}

.formulario { max-width: 640px; }
.campo { display: flex; flex-direction: column; gap: 0.45rem; margin-top: clamp(1.4rem, 2.6vw, 1.9rem); }
.campo > label, .grupo-campos > legend {
    font-size: 0.72rem; font-weight: 500; letter-spacing: 0.16em;
    text-transform: uppercase; color: var(--ocre);
  }
.campo .ayuda { font-size: 0.88rem; color: var(--tinta-suave); }
.campo input, .campo select, .campo textarea {
    font-family: var(--texto); font-size: 1rem; color: var(--tinta);
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid var(--linea-clara); border-radius: 2px;
    padding: 0.8rem 0.9rem; width: 100%;
  }
.campo textarea { min-height: 8rem; resize: vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--ocre); }
.grupo-campos { border: 0; margin: clamp(1.6rem, 3vw, 2.25rem) 0 0; padding: 0; }
.opciones { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.7rem; }
.opcion {
    display: inline-flex; align-items: center; gap: 0.6rem;
    padding: 0.75rem 1.25rem;
    border: 1px solid var(--linea-clara); border-radius: 999px;
    cursor: pointer; font-size: 0.95rem;
    transition: border-color .3s ease, background .3s ease;
  }
.opcion:hover { border-color: var(--ocre); }
.opcion input { accent-color: var(--ocre); }
.opcion:has(input:checked) { border-color: var(--ocre); background: rgba(165, 112, 58, 0.09); }
[data-si] { display: none; }
[data-si].visible { display: block; }
.envio { margin-top: clamp(2rem, 4vw, 2.75rem); }
.aviso-envio { margin-top: 1.1rem; font-size: 0.86rem; color: var(--tinta-suave); max-width: 56ch; }
.pagina-sesiones .cierre { padding-block: clamp(7rem, 18vw, 14rem); text-align: center; }
.pagina-sesiones .cierre__frase {
    font-size: clamp(1.55rem, 2.6vw, 2.25rem); line-height: 1.34;
    max-width: 24ch; margin-inline: auto; color: var(--marfil-texto);
  }

/* ======== libros ======== */
.boton {
    display: inline-flex; align-items: center; gap: 0.6em;
    background: var(--dorado); color: #FFFFFF;
    font-family: var(--texto); font-size: 0.74rem; font-weight: 600;
    letter-spacing: 0.13em; text-transform: uppercase;
    padding: 0.85em 1.9em; border-radius: 999px; border: 0;
    transition: background .35s ease, gap .35s ease;
  }
.pagina-libros .hero { background: var(--crema); }
.pagina-libros .hero__rejilla {
    display: grid; grid-template-columns: 0.9fr 1.1fr;
    gap: clamp(2.5rem, 7vw, 6rem); align-items: start;
    padding-block: clamp(3.5rem, 9vw, 8rem) clamp(4rem, 10vw, 9rem);
  }
.pagina-libros .hero__titulo { font-size: clamp(2.9rem, 6.2vw, 5.6rem); line-height: 1; }
.pagina-libros .hero__subtitulo {
    font-family: var(--tipo-titulo); font-style: normal; font-weight: var(--peso-titular);
    font-size: clamp(1.5rem, 3vw, 2.4rem); line-height: 1.2;
    color: var(--tinta); margin-top: clamp(1.1rem, 2.2vw, 1.6rem); max-width: 20ch;
  }
@media (max-width: 860px) {
	.pagina-libros .hero__rejilla { grid-template-columns: 1fr; }
}

.libro__rejilla {
    display: grid; grid-template-columns: 0.68fr 1.32fr;
    gap: clamp(2.5rem, 7vw, 6rem); align-items: center;
  }
.libro__portada img { width: 100%; max-width: 320px; height: auto; margin-inline: auto; }
@media (max-width: 820px) {
	.libro__portada img { max-width: 260px; }
}

.libro__titulo { font-size: clamp(2rem, 4.2vw, 3.4rem); }
.libro__epigrafe {
    font-family: var(--tipo-titulo); font-style: italic; font-weight: 400;
    font-size: clamp(1.2rem, 2.2vw, 1.6rem);
    color: var(--ocre); margin-top: 0.7rem;
  }
.libro__cuerpo { margin-top: clamp(1.75rem, 3.5vw, 2.5rem); }
.libro__pregunta {
    font-family: var(--tipo-titulo); font-style: italic; font-weight: var(--peso-titular);
    font-size: clamp(1.4rem, 2.8vw, 2.1rem); line-height: 1.32;
    color: var(--tinta);
    margin-top: clamp(1.75rem, 3.5vw, 2.5rem);
    padding-left: clamp(1rem, 2vw, 1.75rem);
    border-left: 1px solid var(--ocre);
    max-width: 34ch;
  }
.libro__accion { margin-top: clamp(2rem, 4vw, 2.75rem); }
@media (max-width: 820px) {
	.libro__rejilla { grid-template-columns: 1fr; }
}

.pagina-libros .cierre { padding-block: clamp(7rem, 18vw, 14rem); text-align: center; }
.pagina-libros .cierre__frase {
    font-family: var(--tipo-titulo); font-weight: var(--peso-titular);
    font-size: clamp(2.4rem, 6vw, 4.6rem); line-height: 1.1;
    color: var(--marfil-texto); max-width: 16ch; margin-inline: auto;
  }
.cierre__cuerpo {
    margin: clamp(2.5rem, 5vw, 3.5rem) auto 0;
    max-width: 58ch; display: flex; flex-direction: column; gap: 1.5rem;
    color: var(--marfil-suave);
  }
.cierre__cuerpo strong { color: var(--marfil-texto); font-weight: 600; }
.cierre__pregunta {
    font-family: var(--tipo-titulo); font-style: italic; font-weight: var(--peso-titular);
    font-size: clamp(1.6rem, 3.2vw, 2.4rem);
    color: var(--ocre-claro); margin-top: clamp(1.5rem, 3vw, 2rem);
  }
.cierre__accion { margin-top: clamp(2.5rem, 5vw, 3.5rem); }

/* ======== bio ======== */
.pagina-bio .hero { background: var(--crema); overflow-x: clip; }
.pagina-bio .hero__rejilla {
    display: grid; grid-template-columns: 1fr 0.9fr;
    gap: clamp(2rem, 6vw, 5rem); align-items: center;
    padding-block: clamp(3.5rem, 9vw, 8rem) clamp(4rem, 10vw, 9rem);
  }
.pagina-bio .hero__titulo { font-size: clamp(2.9rem, 6.2vw, 5.6rem); line-height: 1; }
.pagina-bio .hero__subtitulo {
    font-family: var(--tipo-titulo); font-style: normal; font-weight: var(--peso-titular);
    font-size: clamp(1.4rem, 2.7vw, 2.1rem); line-height: 1.24;
    color: var(--tinta); margin-top: clamp(1rem, 2vw, 1.4rem); max-width: 22ch;
  }
.hero__cuerpo { margin-top: clamp(1.75rem, 3.5vw, 2.5rem); }
.pagina-bio .hero__imagen { margin-right: calc((100% - 100vw) / 2); }
.pagina-bio .hero__imagen img { width: 100%; height: auto; }
@media (max-width: 860px) {
	.pagina-bio .hero__rejilla { grid-template-columns: 1fr; padding-block: clamp(2.5rem, 8vw, 4rem) 1.5rem; gap: clamp(3rem, 9vw, 4rem); }
	.pagina-bio .hero__imagen { margin-right: 0; }
}

.pregunta-abierta {
    font-family: var(--tipo-titulo); font-style: italic; font-weight: var(--peso-titular);
    font-size: clamp(1.8rem, 4vw, 3.2rem); line-height: 1.2;
    color: var(--ocre-claro);
    margin-block: clamp(1.75rem, 3.5vw, 2.5rem);
  }
.pagina-bio .cierre { padding-block: clamp(8rem, 20vw, 16rem); text-align: center; }
.pagina-bio .cierre__frase {
    font-family: var(--tipo-titulo); font-weight: var(--peso-titular);
    font-size: clamp(1.7rem, 3.2vw, 2.7rem); line-height: 1.28;
    color: var(--marfil-texto); max-width: 26ch; margin-inline: auto;
  }
.pagina-bio .cierre__frase span { display: block; }
.pagina-bio .cierre__frase span + span { margin-top: clamp(1.25rem, 2.5vw, 2rem); }

/* ======== contacto ======== */
.pagina-contacto .hero { background: var(--crema); }
.pagina-contacto .hero__interior {
    display: grid; grid-template-columns: 0.9fr 1.1fr;
    gap: clamp(2.5rem, 7vw, 6rem); align-items: start;
    padding-block: clamp(3.5rem, 9vw, 8rem) clamp(4rem, 10vw, 9rem);
  }
.hero__columna { position: sticky; top: clamp(5.5rem, 10vh, 8rem); }
@media (max-width: 820px) {
	.hero__columna { position: static; }
}

.pagina-contacto .hero__titulo { font-size: clamp(2.9rem, 6.2vw, 5.6rem); line-height: 1; }
.pagina-contacto .hero__subtitulo {
    font-family: var(--tipo-titulo); font-style: normal; font-weight: var(--peso-titular);
    font-size: clamp(1.4rem, 2.7vw, 2.1rem); line-height: 1.24;
    color: var(--tinta); margin-top: clamp(1rem, 2vw, 1.4rem); max-width: 22ch;
  }
.pagina-contacto .hero__entrada { margin-top: clamp(1.25rem, 2.5vw, 1.75rem); color: var(--tinta-suave); max-width: 46ch; }
@media (max-width: 820px) {
	.pagina-contacto .hero__interior { grid-template-columns: 1fr; }
}

.formulario { max-width: 620px; }
.campo input, .campo textarea {
    font-family: var(--texto); font-size: 1rem; color: var(--tinta);
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid var(--linea-clara); border-radius: 2px;
    padding: 0.8rem 0.9rem; width: 100%;
  }
.campo textarea { min-height: 9rem; resize: vertical; }
.campo input:focus, .campo textarea:focus { border-color: var(--ocre); }
.pagina-contacto .cierre { padding-block: clamp(7rem, 18vw, 14rem); text-align: center; }
.pagina-contacto .cierre__frase {
    font-family: var(--tipo-titulo); font-weight: var(--peso-titular);
    font-size: clamp(2.6rem, 6vw, 4.6rem); line-height: 1.1;
    color: var(--marfil-texto);
  }
.cierre__bajada {
    margin: clamp(1.5rem, 3vw, 2.25rem) auto 0;
    max-width: 40ch; color: var(--marfil-suave);
  }

/* ============================================================
   Capa de compatibilidad con Elementor
   Los contenedores son flex por defecto (.e-con); aqui se
   recupera la reticula alli donde el diseno la necesita.
   ============================================================ */

.e-con.contenedor {
	width: 100%;
	max-width: var(--ancho);
	margin-inline: auto;
	padding-inline: var(--margen);
}

/* Reticulas de dos columnas */
/* Las columnas del hero las fija cada pagina (.pagina-*); aqui solo la reticula. */
.e-con.hero__rejilla,
.e-con.hero__interior           { display: grid; }
.e-con.pregunta-bloque__rejilla { display: grid; grid-template-columns: 0.95fr 1.05fr; align-items: start; }
.e-con.puente__rejilla          { display: grid; grid-template-columns: 1.15fr 0.85fr; align-items: end; }
.e-con.caminos                  { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
.e-con.seminarios__cabecera     { display: grid; grid-template-columns: 0.8fr 1.2fr; align-items: end; }
.e-con.sesiones__rejilla        { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.e-con.sobre__rejilla           { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.e-con.dos-columnas             { display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: start; }
.e-con.comprender__rejilla      { display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: start; }
.e-con.sabiduria__rejilla       { display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: start; }
.e-con.modos                    { display: grid; grid-template-columns: 1fr 1fr; }
.e-con.formas                   { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
.e-con.continua__rejilla        { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.e-con.manual-rejilla           { display: grid; grid-template-columns: 1.05fr 0.95fr; align-items: center; }
.e-con.seminario                { display: grid; grid-template-columns: clamp(4.5rem, 9vw, 7rem) 1fr; }
.e-con.dimension                { display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: baseline; }
.e-con.movimiento               { display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: baseline; }

@media (max-width: 860px) {
	.e-con.hero__rejilla, .e-con.hero__interior { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
	.e-con.pregunta-bloque__rejilla,
	.e-con.puente__rejilla,
	.e-con.caminos,
	.e-con.sesiones__rejilla,
	.e-con.sobre__rejilla,
	.e-con.dos-columnas,
	.e-con.comprender__rejilla,
	.e-con.sabiduria__rejilla,
	.e-con.formas,
	.e-con.continua__rejilla,
	.e-con.manual-rejilla { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	.e-con.modos, .e-con.dimension, .e-con.movimiento { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
	.e-con.seminarios__cabecera, .e-con.seminario { grid-template-columns: 1fr; }
}

/* Elementor envuelve cada widget: los parrafos no son hijos directos. */
.elementor-widget-text-editor p + p { margin-top: 1.4rem; }
.cuerpo .elementor-widget:not(:first-child),
.pregunta-bloque__cuerpo .elementor-widget:not(:first-child) { margin-top: clamp(1.4rem, 2.6vw, 1.9rem); }

.elementor-widget-image img { width: 100%; height: auto; }

/* Marcos con recorte: los envoltorios deben ocupar toda la altura,
   y los contenedores traen un relleno propio que hay que anular. */
.e-con.hero__retrato, .e-con.camino__medio, .e-con.puente__foto,
.e-con.sobre__foto, .e-con.comprender__foto { padding: 0; gap: 0; }

.hero__retrato .elementor-widget-image, .hero__retrato .elementor-widget-container,
.camino__medio .elementor-widget-image, .camino__medio .elementor-widget-container,
.puente__foto .elementor-widget-image, .puente__foto .elementor-widget-container,
.sobre__foto .elementor-widget-image, .sobre__foto .elementor-widget-container { height: 100%; }

.hero__retrato .elementor-widget-image img,
.camino__medio .elementor-widget-image img,
.puente__foto .elementor-widget-image img,
.sobre__foto .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; }
.hero__retrato .elementor-widget-image img { object-position: 58% center; }

.hero__retrato .elementor-widget, .camino__medio .elementor-widget,
.puente__foto .elementor-widget, .sobre__foto .elementor-widget { margin-bottom: 0; }

/* Los botones nativos adoptan el estilo del sistema para que el
   cliente pueda editar su texto y su enlace. */
body .elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	background: var(--dorado);
	color: #FFFFFF;
	font-family: var(--texto);
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	padding: 0.85em 1.9em;
	border-radius: 999px;
	border: 0;
	line-height: 1.2;
	transition: background .35s ease, gap .35s ease;
}
body .elementor-widget-button .elementor-button:hover {
	background: var(--dorado-oscuro);
	color: #FFFFFF;
	gap: 0.95em;
}
/* En la maqueta .boton--linea va sobre el propio enlace; en Elementor
   la clase aterriza en el envoltorio del widget, y la regla base le
   dibujaba un segundo borde rectangular alrededor de la pildora. */
.elementor-widget-button.boton--linea {
	border: 0;
	background: transparent;
	padding: 0;
}

body .boton--linea .elementor-button {
	background: transparent;
	color: var(--tinta);
	border: 1px solid var(--linea-clara);
}
body .boton--linea .elementor-button:hover {
	background: transparent;
	border-color: var(--dorado);
	color: var(--dorado-texto);
}

/* El editor debe mostrar todo visible. */
.elementor-editor-active .aparece, .elementor-editor-active .pregunta,
.elementor-editor-preview .aparece, .elementor-editor-preview .pregunta { opacity: 1; transform: none; }

/* ============================================================
   Cabecera y pie del Theme Builder
   ============================================================ */

.e-con.nav { position: sticky; top: 0; z-index: 50; background: var(--crema); padding: 0; }
.e-con.nav__interior {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	padding-block: 1.35rem;
}
.nav__marca img { height: 34px; width: auto; }

.nav__menu-w .elementor-nav-menu { gap: clamp(1rem, 2vw, 1.9rem); }
.nav__menu-w .elementor-nav-menu a.elementor-item {
	font-family: var(--texto);
	font-size: 0.82rem;
	font-weight: 500;
	color: var(--tinta-suave);
	padding: 0.2em 0;
	border-bottom: 1px solid transparent;
	transition: color .3s ease, border-color .3s ease;
}
.nav__menu-w .elementor-nav-menu a.elementor-item:hover,
.nav__menu-w .elementor-nav-menu a.elementor-item.elementor-item-active {
	color: var(--tinta);
	border-bottom-color: var(--ocre);
	background: transparent;
}
.nav__menu-w .elementor-menu-toggle { color: var(--tinta); background: transparent; }

.e-con.pie { background: var(--marron-hondo); color: var(--marfil-suave); padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.e-con.pie__rejilla { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.pie .pie__marca { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--marfil-texto); }
.pie .pie__lema { font-family: var(--tipo-titulo); font-style: italic; font-size: 1.05rem; margin-top: 0.9rem; }
.pie .pie__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.55rem; font-size: 0.9rem; }
.pie .pie__lista a { border-bottom: 1px solid transparent; transition: border-color .3s, color .3s; }
.pie .pie__lista a:hover { color: var(--marfil-texto); border-bottom-color: var(--ocre-claro); }
.pie .pie__cierre {
	margin-top: clamp(3rem, 6vw, 4.5rem);
	padding-top: 1.5rem;
	border-top: 1px solid var(--linea-oscura);
	display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem;
	font-size: 0.78rem;
}
@media (max-width: 760px) { .e-con.pie__rejilla { grid-template-columns: 1fr; } }

/* ============================================================
   Avisos de terceros dentro de la paleta
   El plugin aplica sus estilos con mucha fuerza; de ahi los !important.
   ============================================================ */

.cky-consent-container .cky-consent-bar,
.cky-modal .cky-preference-center {
	background: var(--marfil) !important;
	border: 1px solid var(--linea-clara) !important;
	box-shadow: 0 12px 44px rgba(46, 35, 25, 0.12) !important;
	font-family: var(--texto) !important;
	color: var(--tinta) !important;
	border-radius: 3px !important;
}
.cky-title { font-family: var(--tipo-titulo) !important; font-weight: 500 !important; color: var(--tinta) !important; font-size: 1.3rem !important; }
.cky-notice-des, .cky-notice-des p, .cky-preference-content-wrapper {
	font-family: var(--texto) !important;
	color: var(--tinta-suave) !important;
	font-size: 0.92rem !important;
}
.cky-notice-des a, .cky-policy { color: var(--ocre) !important; }
.cky-btn {
	font-family: var(--texto) !important;
	font-size: 0.72rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	padding: 0.8em 1.6em !important;
	border-radius: 999px !important;
}
.cky-btn-accept { background: var(--dorado) !important; color: #FFFFFF !important; border: 1px solid var(--dorado) !important; }
.cky-btn-accept:hover { background: var(--dorado-oscuro) !important; border-color: var(--dorado-oscuro) !important; }
.cky-btn-reject, .cky-btn-customize {
	background: transparent !important;
	color: var(--tinta) !important;
	border: 1px solid var(--linea-clara) !important;
}
.cky-btn-reject:hover, .cky-btn-customize:hover { border-color: var(--ocre) !important; color: var(--ocre) !important; }

#gt_float_wrapper .gt_float_switcher {
	font-family: var(--texto) !important;
	font-size: 0.78rem !important;
	background: var(--marfil) !important;
	border: 1px solid var(--linea-clara) !important;
	border-radius: 999px !important;
	box-shadow: 0 6px 24px rgba(46, 35, 25, 0.10) !important;
	overflow: hidden;
}
#gt_float_wrapper .gt_float_switcher .gt-selected .gt-current-lang {
	color: var(--tinta) !important;
	padding: 0.5rem 0.95rem !important;
}
#gt_float_wrapper .gt_float_switcher .gt-option { background: var(--marfil) !important; }
#gt_float_wrapper .gt_float_switcher .gt-option a { color: var(--tinta-suave) !important; }
#gt_float_wrapper .gt_float_switcher .gt-option a:hover { background: rgba(165, 112, 58, 0.10) !important; color: var(--tinta) !important; }

/* Reticulas de Sesiones privadas */
.e-con.modalidades  { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
.e-con.practica     { display: grid; grid-template-columns: 1fr 1fr; }
.e-con.modalidad__foto { padding: 0; gap: 0; }
/* Apiladas en movil, las dos modalidades quedaban casi pegadas:
   la foto de una tocaba el titular de la siguiente. */
@media (max-width: 820px) {
	.e-con.modalidades { grid-template-columns: 1fr; row-gap: clamp(6.5rem, 17vw, 8.5rem); }
}
@media (max-width: 760px) { .e-con.practica { grid-template-columns: 1fr; } }

/* El titular del formulario acompana al scroll solo en la pagina de solicitud. */
.pagina-sesiones .e-con.solicitud__titulo { position: sticky; top: clamp(5.5rem, 10vh, 8rem); }
@media (max-width: 820px) { .pagina-sesiones .e-con.solicitud__titulo { position: static; } }

/* Reticula de la pagina Libros */
.e-con.libro__rejilla { display: grid; grid-template-columns: 0.68fr 1.32fr; align-items: center; }
.e-con.libro__portada { padding: 0; gap: 0; }
@media (max-width: 820px) { .e-con.libro__rejilla { grid-template-columns: 1fr; } }

/* ============================================================
   Menu desplegable en movil
   Elementor lo sirve en blanco y con las mayusculas y el
   interletrado del menu de escritorio; aqui se rehace.
   ============================================================ */

.nav__menu-w .elementor-menu-toggle {
	color: var(--tinta);
	background: transparent;
	font-size: 1.5rem;
	padding: 0.4rem;
}
.nav__menu-w .elementor-menu-toggle svg { width: 1.4em; height: 1.4em; fill: var(--tinta); }

.nav__menu-w .elementor-nav-menu--dropdown {
	background: var(--marfil);
	border-top: 1px solid var(--linea-clara);
	box-shadow: 0 18px 40px rgba(46, 35, 25, 0.12);
}

.nav__menu-w .elementor-nav-menu--dropdown a.elementor-item {
	font-family: var(--texto);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-transform: none;
	color: var(--tinta-suave);
	padding: 1.05rem var(--margen);
	border-bottom: 1px solid rgba(46, 35, 25, 0.08);
	border-top: 0;
	transition: color .3s ease, background .3s ease;
}
.nav__menu-w .elementor-nav-menu--dropdown li:last-child a.elementor-item { border-bottom: 0; }

.nav__menu-w .elementor-nav-menu--dropdown a.elementor-item:hover,
.nav__menu-w .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active,
.nav__menu-w .elementor-nav-menu--dropdown a.elementor-item:focus {
	color: var(--tinta);
	background: rgba(165, 112, 58, 0.07);
}
/* La pagina actual se marca con una barra ocre a la izquierda. */
.nav__menu-w .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active {
	box-shadow: inset 3px 0 0 var(--ocre);
}

/* En movil Elementor da ancho completo a cada widget y el contenedor
   envuelve: el logotipo y el boton acababan uno debajo del otro. */
.e-con.nav__interior { flex-wrap: nowrap; }
.e-con.nav__interior > .elementor-widget { width: auto; max-width: none; }

/* El desplegable venia en flujo (position: static): al abrirse estiraba
   la cabecera y empujaba el logotipo hacia abajo. Se saca del flujo y se
   ancla a la cabecera, no al widget, para que ocupe todo el ancho. */
.e-con.nav .elementor-widget.nav__menu-w { position: static; }

.nav__menu-w .elementor-nav-menu--dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	width: auto;
	max-height: calc(100vh - 100%);
	overflow-y: auto;
}

/* ============================================================
   Titulares sobre fondo marron
   El tema aplica un color directo a los titulares, asi que el
   color heredado de la banda nunca llegaba: quedaban en tinta
   oscura sobre marron, practicamente invisibles.
   ============================================================ */

.banda--marron h1, .banda--marron h2, .banda--marron h3, .banda--marron h4,
.banda--marron .elementor-heading-title,
.cierre h1, .cierre h2, .cierre h3,
.cierre .elementor-heading-title {
	color: var(--marfil-texto);
}

/* Media banda inferior, donde el bloque cierra con una fotografia. */
.banda--corta { padding-bottom: calc(var(--banda) / 2); }

/* Reticulas de Bio y Contacto */
.e-con.hero__columna { position: sticky; top: clamp(5.5rem, 10vh, 8rem); }
@media (max-width: 820px) { .e-con.hero__columna { position: static; } }

/* La cabecera es fija: el destino de un ancla no debe quedar debajo. */
/* El titular de destino debe quedar holgado bajo la cabecera fija, que en
   movil es mas alta que en escritorio. */
#practica, .e-con[id], [id].elementor-widget { scroll-margin-top: clamp(8.5rem, 13vh, 10.5rem); }

/* Aviso de resultado de los formularios */
.aviso-resultado { margin-top: 1rem; font-size: 0.92rem; max-width: 46ch; }
.aviso-resultado--ok { color: var(--ocre); }
.aviso-resultado--error { color: #9B3B2C; }

/* Los enlaces legales del pie */
.pie .pie__cierre a { border-bottom: 1px solid transparent; transition: color .3s, border-color .3s; }
.pie .pie__cierre a:hover { color: var(--marfil-texto); border-bottom-color: var(--ocre-claro); }

/* ============================================================
   Paginas legales · Aviso legal, Privacidad y Cookies, Condiciones
   Texto largo: columna estrecha, jerarquia clara y espacio para
   respirar entre apartados.
   ============================================================ */

.pagina-legal .e-con.legal__portada { padding-block: clamp(3rem, 8vw, 6rem) clamp(2rem, 5vw, 3.5rem); }
.pagina-legal .legal__portada .hero__titulo .elementor-heading-title,
.pagina-legal .legal__portada .hero__titulo { font-size: clamp(2.4rem, 5.2vw, 4.4rem); line-height: 1.04; }
.legal__entrada { color: var(--tinta-suave); font-size: 0.92rem; letter-spacing: 0.04em; margin-top: 1rem; }

.e-con.legal { max-width: 46rem; margin-inline: auto; }
.e-con.legal__seccion { padding-block: 0 clamp(2.25rem, 4.5vw, 3.25rem); gap: 0; }

.legal__titulo .elementor-heading-title,
h2.legal__titulo {
	font-size: clamp(1.35rem, 2.4vw, 1.75rem);
	line-height: 1.2;
	margin-bottom: clamp(0.9rem, 1.8vw, 1.25rem);
}

.e-con.legal p { max-width: none; margin-bottom: 1.05em; color: var(--tinta-suave); }
.e-con.legal p:last-child { margin-bottom: 0; }
.e-con.legal strong { color: var(--tinta); font-weight: 600; }
.e-con.legal a { color: var(--dorado-texto); border-bottom: 1px solid rgba(176, 130, 16, 0.35); transition: border-color .3s ease; }
.e-con.legal a:hover { border-bottom-color: var(--dorado-texto); }

/* Subtitulos dentro de un apartado. */
.e-con.legal p.legal__subtitulo {
	font-family: var(--tipo-titulo);
	font-size: 1.2rem;
	font-weight: var(--peso-titular);
	color: var(--tinta);
	margin-top: 1.9em;
	margin-bottom: 0.5em;
	line-height: 1.3;
}

/* Fichas de datos: etiqueta y valor. */
.legal__ficha {
	display: grid;
	grid-template-columns: minmax(9rem, auto) 1fr;
	gap: 0.55rem 1.5rem;
	margin: 1.6rem 0 1.9rem;
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	background: rgba(255, 255, 255, 0.55);
	border-left: 2px solid var(--dorado);
}
.legal__ficha dt {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--ocre);
	align-self: baseline;
}
.legal__ficha dd { margin: 0; color: var(--tinta); }
@media (max-width: 620px) {
	.legal__ficha { grid-template-columns: 1fr; gap: 0.2rem 0; }
	.legal__ficha dd { margin-bottom: 0.9rem; }
	.legal__ficha dd:last-child { margin-bottom: 0; }
}

.legal__lista { margin: 1.1rem 0 1.3rem; padding-left: 1.15rem; color: var(--tinta-suave); }
.legal__lista li { margin-bottom: 0.55em; }
.legal__lista li::marker { color: var(--dorado); }

.legal__fecha { font-size: 0.88rem; letter-spacing: 0.04em; }

/* Separador antes del bloque de cookies. */
.e-con.legal__aparte {
	padding-block: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.25rem);
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
	border-top: 1px solid var(--linea-clara);
}
.legal__titulo--aparte .elementor-heading-title,
h2.legal__titulo--aparte { font-size: clamp(1.8rem, 3.4vw, 2.6rem); margin-bottom: 0; }

/* ============================================================
   Aviso de cookies · CookieYes
   El orden de los botones lo fija la plantilla del plugin. El
   cliente lo pidio como Rechazar · Configurar · Aceptar, asi que
   lo reordenamos aqui sin tocar el plugin.
   ============================================================ */

.cky-notice-btn-wrapper { flex-wrap: wrap; }

/* El plugin impone su propio orden, y en movil lo cambia otra vez.
   Subimos la especificidad para que mande el que pidio el cliente. */
.cky-consent-container .cky-notice-btn-wrapper .cky-btn-reject    { order: 1; }
.cky-consent-container .cky-notice-btn-wrapper .cky-btn-customize { order: 2; }
.cky-consent-container .cky-notice-btn-wrapper .cky-btn-accept    { order: 3; }

/* ============================================================
   Respiracion entre bloques
   Dos bandas claras seguidas suman su aire y el hueco se percibe
   enorme. Cuando cambia el color de fondo, el propio corte hace
   de separacion y no hace falta tanto espacio.
   ============================================================ */

.e-con.banda--crema  + .e-con.banda--crema,
.e-con.banda--crema  + .e-con.banda--marfil,
.e-con.banda--marfil + .e-con.banda--crema,
.e-con.banda--marfil + .e-con.banda--marfil {
	padding-top: calc(var(--banda) * 0.5);
}

/* El bloque de cierre dejaba demasiado vacio en pantallas pequenas. */
@media (max-width: 780px) {
	.e-con.cierre,
	.pagina-home .cierre,
	.pagina-sentido .cierre,
	.pagina-viaje .cierre,
	.pagina-seminarios .cierre,
	.pagina-sesiones .cierre,
	.pagina-libros .cierre,
	.pagina-bio .cierre,
	.pagina-contacto .cierre {
		padding-block: clamp(3.5rem, 11vw, 6rem);
	}

	/* Dos bandas del mismo color seguidas: el aire de una se suma al de
	   la otra y queda un vacio muy largo, porque no hay cambio de fondo
	   que marque el corte. En movil se nota mucho mas. */
	.e-con.banda--marron + .e-con.banda--marron,
	.e-con.banda--marron + .e-con.cierre {
		padding-top: calc(var(--banda) * 0.4);
	}
	.e-con.banda--marron:has(+ .e-con.banda--marron),
	.e-con.banda--marron:has(+ .e-con.cierre) {
		padding-bottom: calc(var(--banda) * 0.5);
	}
}

/* ============================================================
   Titulares dentro del widget de Elementor
   Nuestras clases de tamano caen en el envoltorio del widget,
   mientras que el <h1> interior conserva el tamano por defecto
   del tema. Se trata el envoltorio como si fuera el titular y el
   elemento interior hereda de el.
   ============================================================ */

/* Sin especificidad, para que cualquier clase de pagina los sustituya. */
:where(.elementor-widget-heading) {
	font-family: var(--tipo-titulo);
	font-weight: var(--peso-titular);
	font-size: clamp(1.5rem, 2.6vw, 2.1rem);
	line-height: 1.06;
	letter-spacing: -0.005em;
}

.elementor-widget-heading .elementor-heading-title {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	color: inherit;
}

/* Los contenedores de Elementor traen 10px de relleno lateral propio.
   Los margenes de pagina los da .contenedor, asi que en el resto sobra:
   restaba ancho a las columnas y cambiaba los saltos de linea. */
.e-con:not(.contenedor) { padding-inline: 0; }

/* ============================================================
   Anchos maximos por encima del max-width:100% de Elementor
   Generado desde _base.css; no editar a mano.
   ============================================================ */

html p { max-width: 62ch !important; }
html img { max-width: 100% !important; }
html .contenedor { max-width: var(--ancho) !important; }
html .pagina-home .hero__entrada { max-width: 44ch !important; }
html .pregunta-bloque__titulo { max-width: 12ch !important; }
@media (max-width: 820px) {
	html .pregunta-bloque__titulo { max-width: 100% !important; }
}

html .puente__titulo { max-width: 13ch !important; }
html .caminos__cabecera { max-width: 40ch !important; }
html .sesiones__cita { max-width: 24ch !important; }
html .pagina-home .cierre__frase { max-width: 20ch !important; }
html .pagina-sentido .hero__entrada { max-width: 46ch !important; }
html .preguntas__titulo { max-width: 13ch !important; }
@media (max-width: 820px) {
	html .preguntas__titulo { max-width: 100% !important; }
}

html .territorios__titulo { max-width: 14ch !important; }
html .territorios__bajada { max-width: 54ch !important; }
html .territorios { max-width: 820px !important; }
html .territorio p { max-width: 54ch !important; }
html .modos__titulo { max-width: 20ch !important; }
html .formas__titulo { max-width: 20ch !important; }
html .pagina-sentido .cierre__frase { max-width: 24ch !important; }
html .pagina-viaje .hero__entrada { max-width: 48ch !important; }
html .titulo-bloque { max-width: 13ch !important; }
@media (max-width: 820px) {
	html .titulo-bloque { max-width: 100% !important; }
}

html .etapas { max-width: 860px !important; }
html .etapa p { max-width: 56ch !important; }
html .continua__cierre { max-width: 30ch !important; }
html .pagina-viaje .cierre__frase { max-width: 26ch !important; }
html .pagina-seminarios .hero__subtitulo { max-width: 24ch !important; }
html .pagina-seminarios .hero__entrada { max-width: 48ch !important; }
html .seminario__pregunta { max-width: 40ch !important; }
html .seminario__texto { max-width: 62ch !important; }
html .pagina-seminarios .cierre__frase { max-width: 26ch !important; }
html .pagina-sesiones .hero__subtitulo { max-width: 26ch !important; }
html .pagina-sesiones .hero__entrada { max-width: 50ch !important; }
html .formulario { max-width: 640px !important; }
html .aviso-envio { max-width: 56ch !important; }
html .pagina-sesiones .cierre__frase { max-width: 24ch !important; }
html .pagina-libros .hero__subtitulo { max-width: 20ch !important; }
html .libro__portada img { max-width: 320px !important; }
@media (max-width: 820px) {
	html .libro__portada img { max-width: 260px !important; }
}

html .libro__pregunta { max-width: 34ch !important; }
html .pagina-libros .cierre__frase { max-width: 16ch !important; }
html .cierre__cuerpo { max-width: 58ch !important; }
html .pagina-bio .hero__subtitulo { max-width: 22ch !important; }
html .pagina-bio .cierre__frase { max-width: 26ch !important; }
html .pagina-contacto .hero__subtitulo { max-width: 22ch !important; }
html .pagina-contacto .hero__entrada { max-width: 46ch !important; }
html .formulario { max-width: 620px !important; }
html .cierre__bajada { max-width: 40ch !important; }
