:root{
  --jade:#1B4D5C;
  --ambar:#C98A2E;
  --salvia:#7A9970;
  --crema:#F5F1E8;
  --jade-oscuro:#123640;
  --texto:#2B2B26;
  --borde:#D8CFB8;
  --font-titulo: Georgia, "Times New Roman", Times, serif;
  --font-texto: Calibri, "Segoe UI", Candara, Arial, sans-serif;
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--crema);
  color:var(--texto);
  font-family:var(--font-texto);
  font-size:16px;
  line-height:1.6;
}

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

h1,h2,h3{
  font-family:var(--font-titulo);
  color:var(--jade);
  line-height:1.25;
  margin:0 0 .6em 0;
}

a{ color:var(--jade); }
a:focus-visible, button:focus-visible, input:focus-visible{
  outline:3px solid var(--ambar);
  outline-offset:2px;
}

.contenedor{
  max-width:1080px;
  margin:0 auto;
  padding:0 24px;
}

/* Salto de accesibilidad */
.saltar-enlace{
  position:absolute;
  left:-999px;
  top:auto;
  background:var(--jade);
  color:#fff;
  padding:10px 16px;
  z-index:100;
}
.saltar-enlace:focus{
  left:16px;
  top:16px;
}

/* ---------- Portada ---------- */
.portada{
  padding:56px 24px 48px;
  text-align:center;
  border-bottom:3px solid var(--jade);
}
.portada__logo{
  height:150px;
  width:auto;
  margin:0 auto 28px;
}
.portada__lema{
  font-family:var(--font-titulo);
  font-style:italic;
  font-size:clamp(1.3rem, 2.4vw, 1.9rem);
  color:var(--ambar);
  margin:0 0 14px;
}
.portada__intro{
  max-width:560px;
  margin:0 auto;
  font-size:1.1rem;
  color:var(--jade-oscuro);
}

/* ---------- Cabecera de páginas internas (legales) ---------- */
.cabecera-simple{
  display:flex;
  align-items:center;
  gap:14px;
  padding:20px 24px;
  border-bottom:3px solid var(--jade);
}
.cabecera-simple__logo{
  height:44px;
  width:auto;
}
.cabecera-simple__marca{
  font-family:var(--font-titulo);
  font-size:1.15rem;
  color:var(--jade);
  text-decoration:none;
}
.cabecera-simple a.cabecera-simple__enlace{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
}
.cabecera-simple__enlace:hover .cabecera-simple__marca,
.cabecera-simple__enlace:focus-visible .cabecera-simple__marca{
  color:var(--ambar);
}
.volver-inicio{
  display:inline-block;
  margin:0 0 28px;
  font-size:.95rem;
}

/* ---------- Navegación ---------- */
.nav{
  position:sticky;
  top:0;
  z-index:20;
  background:var(--crema);
  border-bottom:1px solid var(--borde);
}
.nav__lista{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:4px;
  margin:0;
  padding:6px 12px;
}
.nav__lista a{
  display:inline-block;
  padding:10px 14px;
  text-decoration:none;
  font-size:.95rem;
  color:var(--jade);
  border-radius:2px;
}
.nav__lista a:hover,
.nav__lista a:focus-visible{
  background:var(--jade);
  color:#fff;
  outline:none;
}

/* ---------- Secciones genéricas ---------- */
section{
  padding:64px 0;
}
section:nth-of-type(even){
  background:#EFE9D9;
}
.seccion__cabecera{
  max-width:680px;
  margin:0 auto 40px;
  text-align:center;
}
.seccion__cabecera p{
  color:var(--jade-oscuro);
}

/* ---------- Cita destacada ---------- */
.cita{
  padding:96px 24px;
}
.cita blockquote{
  max-width:640px;
  margin:0 auto;
  padding:0;
  text-align:center;
}
.cita p{
  font-family:var(--font-titulo);
  font-style:italic;
  font-size:clamp(1.3rem, 2.4vw, 1.9rem);
  color:var(--ambar);
  margin:0;
}
.cita cite{
  display:block;
  margin-top:18px;
  font-style:italic;
  font-size:.85rem;
  color:var(--salvia);
}

/* ---------- Qué hacemos ---------- */
.rasgos{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:24px;
  max-width:920px;
  margin:0 auto;
}
.rasgo{
  border:1px solid var(--borde);
  background:var(--crema);
  padding:26px 22px;
}
.rasgo h3{
  font-size:1.15rem;
  margin-bottom:.4em;
}
.rasgo p{ margin:0; }

/* ---------- FUNDAE ---------- */
.fundae{
  max-width:760px;
  margin:0 auto;
  background:var(--crema);
  border-left:6px solid var(--ambar);
  padding:32px 34px;
}
.fundae h2{ margin-top:0; }
.fundae p + p{ margin-top:1em; }
.fundae strong{ color:var(--jade); }

/* ---------- Cómo trabajamos ---------- */
.metodo{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:24px;
  max-width:960px;
  margin:0 auto;
  counter-reset:paso;
}
.metodo__item{
  padding:26px 22px;
  border-top:4px solid var(--salvia);
  background:#fff;
}
.metodo__item::before{
  counter-increment:paso;
  content:counter(paso, decimal-leading-zero);
  display:block;
  font-family:var(--font-titulo);
  font-size:1.6rem;
  color:var(--salvia);
  margin-bottom:8px;
}
.metodo__item h3{ font-size:1.1rem; }
.metodo__item p{ margin:0; }

/* ---------- Quién imparte ---------- */
.imparte{
  max-width:760px;
  margin:0 auto;
  background:#fff;
  border:1px solid var(--borde);
  border-top:4px solid var(--jade);
  padding:34px 36px;
}
.imparte p + p{ margin-top:1em; }
.imparte p:last-child{ margin-bottom:0; }

/* ---------- Áreas formativas ---------- */
.areas{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:24px;
  max-width:980px;
  margin:0 auto;
}
.area{
  background:#fff;
  border:1px solid var(--borde);
  padding:28px 26px;
}
.area h3{
  font-size:1.2rem;
  margin-bottom:.5em;
}
.area__enfoque{
  color:var(--jade-oscuro);
  margin:0 0 16px;
}
.area__materias{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1px solid var(--borde);
  padding-top:14px;
}
.area__materias li{
  position:relative;
  padding-left:18px;
  margin:0 0 8px;
  font-size:.96rem;
}
.area__materias li:last-child{ margin-bottom:0; }
.area__materias li::before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:7px;
  height:7px;
  background:var(--ambar);
}

/* ---------- Contacto ---------- */
.contacto{
  max-width:640px;
  margin:0 auto;
  text-align:center;
}
.contacto__dato{
  display:inline-block;
  margin:8px 16px;
  font-size:1.05rem;
}
.contacto__dato a{
  color:var(--jade);
  text-decoration:underline;
}
.aviso-pendiente{
  margin-top:20px;
  font-size:.85rem;
  color:var(--jade-oscuro);
}

/* ---------- Botones ---------- */
.boton{
  display:inline-block;
  padding:14px 32px;
  background:var(--ambar);
  color:#fff;
  text-decoration:none;
  font-family:var(--font-texto);
  font-weight:bold;
  font-size:.98rem;
  border:2px solid var(--ambar);
  cursor:pointer;
  border-radius:0;
}
.boton:hover,
.boton:focus-visible{
  background:var(--jade-oscuro);
  border-color:var(--jade-oscuro);
  outline:none;
}
.boton--secundario{
  background:var(--jade);
  border-color:var(--jade);
}
.boton--secundario:hover,
.boton--secundario:focus-visible{
  background:var(--jade-oscuro);
  border-color:var(--jade-oscuro);
}
.boton--terciario{
  background:transparent;
  color:var(--jade);
  border-color:var(--jade);
}
.boton--terciario:hover,
.boton--terciario:focus-visible{
  background:var(--jade);
  color:#fff;
}
.contacto .boton{ margin-top:28px; }

/* ---------- Pie ---------- */
footer{
  padding:28px 24px 34px;
  text-align:center;
  border-top:1px solid var(--borde);
}
footer p{
  margin:.3em 0;
  font-size:.85rem;
  color:var(--jade-oscuro);
}
footer .marca-grupo{
  font-size:.78rem;
  color:var(--salvia);
}
.footer__legal{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:4px 6px;
  margin:14px 0 6px;
  padding:0;
  font-size:.82rem;
}
.footer__legal li:not(:last-child)::after{
  content:"·";
  margin-left:8px;
  color:var(--borde);
}
.footer__legal a{
  color:var(--jade-oscuro);
  text-decoration:underline;
}
.footer__legal button{
  background:none;
  border:none;
  padding:0;
  font:inherit;
  color:var(--jade-oscuro);
  text-decoration:underline;
  cursor:pointer;
}

/* ---------- Páginas legales ---------- */
.legal{
  max-width:760px;
  margin:0 auto;
  padding:48px 24px 72px;
}
.legal h1{ margin-bottom:.3em; }
.legal .fecha-actualizacion{
  color:var(--jade-oscuro);
  font-size:.9rem;
  margin-bottom:2em;
}
.legal h2{
  font-size:1.25rem;
  margin-top:2.2em;
  padding-top:.2em;
  border-top:1px solid var(--borde);
}
.legal h2:first-of-type{ border-top:none; margin-top:1.4em; }
.legal p, .legal li{ margin:0 0 1em; }
.legal ul{ padding-left:1.2em; }

.marcador{
  display:inline-block;
  color:var(--ambar);
  background:rgba(201,138,46,.14);
  border:1px solid rgba(201,138,46,.5);
  padding:1px 6px;
  font-weight:bold;
}

/* ---------- Aviso de cookies ---------- */
.cookies{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:50;
  background:var(--jade);
  color:#fff;
  border-top:3px solid var(--ambar);
  padding:20px 24px;
}
.cookies__contenido{
  max-width:1080px;
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.cookies__contenido p{
  margin:0;
  flex:1 1 380px;
  font-size:.92rem;
}
.cookies__contenido a{
  color:#fff;
  text-decoration:underline;
}
.cookies__botones{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  flex:0 0 auto;
}
.cookies__panel{
  max-width:640px;
  margin:18px auto 0;
  background:var(--crema);
  color:var(--texto);
  padding:24px 26px;
  border:1px solid var(--borde);
}
.cookies__panel h2{
  margin-top:0;
  font-size:1.1rem;
}
.cookies__opcion{
  padding:12px 0;
  border-top:1px solid var(--borde);
}
.cookies__opcion:first-of-type{ border-top:none; }
.cookies__opcion label{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:bold;
  color:var(--jade);
}
.cookies__opcion p{
  margin:6px 0 0 26px;
  font-size:.88rem;
  color:var(--jade-oscuro);
}
.cookies__panel .cookies__botones{
  margin-top:18px;
  justify-content:flex-end;
}

@media (max-width:600px){
  section{ padding:48px 0; }
  .cita{ padding:64px 20px; }
  .portada{ padding:40px 20px 36px; }
  .portada__logo{ height:120px; }
  .cookies__contenido{ flex-direction:column; align-items:stretch; }
  .cookies__botones{ justify-content:stretch; }
  .cookies__botones .boton{ flex:1 1 auto; text-align:center; }
}
