/* Páginas interiores públicas. */
.interior-hero { position:relative; overflow:hidden; padding:76px 0 82px; background:var(--vino); color:var(--blanco); }
.interior-hero::after { content:""; position:absolute; width:430px; height:430px; right:-90px; top:-220px; border:1px solid var(--w-20); border-radius:50%; }
.interior-hero__contenido { position:relative; z-index:1; max-width:760px; }
.interior-hero__titulo { margin:8px 0 18px; font-size:clamp(38px,5vw,64px); line-height:1.04; letter-spacing:-.035em; }
.interior-hero__texto { max-width:680px; margin:0; font-size:18px; line-height:1.7; color:var(--w-88); }
.interior-hero__acciones { display:flex; flex-wrap:wrap; gap:14px; margin-top:28px; }

.pagina-seccion { padding-block:78px; background:var(--fondo); }
.pagina-seccion--blanca { background:var(--blanco); }
.pagina-cabecera { max-width:720px; margin-bottom:38px; }
.pagina-rejilla { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; align-items:stretch; }

/* Tarjeta de curso del listado público.
   El cuerpo es una columna: encabezado, título, resumen y datos crecen, y el
   pie (precio + botón) queda anclado abajo para que todas las tarjetas de una
   fila alineen precio y llamada a la acción aunque tengan distinta información. */
.curso-tarjeta { display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--borde); border-radius:var(--r-lg); background:var(--blanco); box-shadow:var(--sh-sm); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.curso-tarjeta:hover { transform:translateY(-3px); border-color:var(--vino-10); box-shadow:var(--sh-lg); }
.curso-tarjeta:focus-within { border-color:var(--vino-10); box-shadow:var(--sh-lg); }

.curso-tarjeta__media { position:relative; }
.curso-tarjeta__imagen { width:100%; height:190px; object-fit:cover; background:var(--fondo-alt); }
.curso-tarjeta__insignias { position:absolute; top:14px; left:14px; right:14px; display:flex; flex-wrap:wrap; gap:8px; align-items:flex-start; }
.curso-tarjeta__insignias:empty { display:none; }
.curso-tarjeta__descuento { margin-left:auto; padding:6px 12px; border-radius:var(--r-pill); background:var(--vino); color:var(--blanco); font-size:12px; font-weight:800; letter-spacing:.02em; box-shadow:var(--sh-vino); }

.curso-tarjeta__cuerpo { display:flex; flex:1; flex-direction:column; padding:22px 24px 24px; }
.curso-tarjeta__encabezado { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:0 0 12px; }
.curso-tarjeta__nivel { padding:4px 10px; border:1px solid var(--borde); border-radius:var(--r-pill); font-size:12px; font-weight:700; color:var(--gris); }
.curso-tarjeta__valoracion { margin-left:auto; font-size:13px; font-weight:700; color:var(--tinta); white-space:nowrap; }
.curso-tarjeta__valoracion i { color:var(--oro); }
.curso-tarjeta__valoracion small { font-weight:600; color:var(--gris); }

.curso-tarjeta__titulo { margin:0 0 8px; font-size:20px; line-height:1.3; letter-spacing:-.01em; color:var(--tinta); }
.curso-tarjeta__titulo a { display:block; }
.curso-tarjeta__titulo a:hover { color:var(--vino); }
.curso-tarjeta__texto { margin:0 0 18px; font-size:14px; line-height:1.6; color:var(--gris); }

/* Ficha técnica: una línea por dato, con el icono en su propia columna para
   que el texto largo no se meta debajo del icono. */
.curso-tarjeta__datos { display:grid; gap:8px; margin:0 0 16px; padding:14px 0 0; border-top:1px solid var(--borde); font-size:13.5px; color:var(--gris); }
.curso-tarjeta__datos li { display:grid; grid-template-columns:18px 1fr; gap:9px; align-items:start; line-height:1.45; }
.curso-tarjeta__datos i { margin-top:2px; color:var(--vino); text-align:center; }

.curso-tarjeta__etiquetas { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 16px; }
.curso-tarjeta__etiquetas li { padding:4px 10px; border-radius:var(--r-pill); background:var(--fondo-alt); font-size:12px; font-weight:600; color:var(--gris); }

.curso-tarjeta__aviso { display:inline-flex; align-items:center; gap:7px; margin:0 0 16px; padding:7px 12px; border-radius:var(--r-pill); background:var(--oro-20); font-size:12.5px; font-weight:700; color:var(--vino-900); }

.curso-tarjeta__pie { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:14px; margin-top:auto; padding-top:18px; border-top:1px solid var(--borde); }
.curso-tarjeta__precio { display:flex; flex-direction:column; margin:0; line-height:1.25; }
.curso-tarjeta__precio strong { font-size:26px; font-weight:800; letter-spacing:-.02em; color:var(--tinta); }
.curso-tarjeta__precio .precio-original { order:-1; margin:0 0 2px; font-size:14px; }
.curso-tarjeta__plan, .curso-tarjeta__apartado { margin-top:4px; font-size:12px; color:var(--gris); }
.curso-tarjeta__accion { flex:0 0 auto; padding-inline:22px; }
.pagina-vacio { grid-column:1/-1; padding:38px; border:1px dashed var(--borde); border-radius:var(--r-lg); text-align:center; color:var(--gris); background:var(--blanco); }

.contenido-seo { max-width:1040px; }
.contenido-seo__intro { max-width:780px; margin-bottom:34px; }
.contenido-seo__intro p, .contenido-seo__columna p { line-height:1.75; color:var(--gris); }
.contenido-seo__rejilla { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.contenido-seo__columna { padding:28px; border:1px solid var(--borde); border-radius:var(--r-lg); background:var(--blanco); }
.contenido-seo__columna h3 { margin:0 0 12px; font-size:20px; line-height:1.3; color:var(--tinta); }
.contenido-seo__columna p { margin:0; }
.enlaces-contextuales { display:flex; flex-wrap:wrap; gap:12px 22px; margin-top:30px; }
.enlaces-contextuales a { font-weight:700; color:var(--vino); text-decoration:underline; text-underline-offset:4px; }

.filtros-pagina { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:34px; }
.filtros-pagina a { padding:10px 18px; border:1px solid var(--borde); border-radius:var(--r-pill); background:var(--blanco); font-size:14px; font-weight:700; color:var(--gris); }
.filtros-pagina a[aria-current="true"], .filtros-pagina a:hover { border-color:var(--vino); background:var(--vino); color:var(--blanco); }

.idiomas-lista { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.idioma-panel { display:grid; grid-template-columns:72px 1fr; gap:22px; align-items:start; padding:30px; border:1px solid var(--borde); border-radius:var(--r-lg); background:var(--blanco); }
.idioma-panel__sigla { display:grid; place-items:center; width:72px; height:72px; border-radius:50%; background:var(--vino); font-size:19px; font-weight:800; color:var(--oro); }
.idioma-panel h2 { margin:4px 0 8px; font-size:23px; color:var(--tinta); }
.idioma-panel p { margin:0 0 16px; line-height:1.65; color:var(--gris); }

.historia { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.8fr); gap:70px; align-items:center; }
.historia__visual { min-height:420px; border-radius:var(--r-2xl); background:linear-gradient(145deg,var(--vino),var(--vino-900)); display:grid; place-items:center; }
.historia__visual img { width:min(72%,360px); height:auto; }
.valores { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:38px; }
.valor { padding:25px; border-top:3px solid var(--oro); background:var(--fondo); }
.valor h3 { margin:0 0 8px; color:var(--tinta); }
.valor p { margin:0; line-height:1.6; color:var(--gris); }

.sedes-pagina { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.sede-card { padding:30px; border:1px solid var(--borde); border-radius:var(--r-lg); background:var(--blanco); }
.sede-card__icono { display:grid; place-items:center; width:48px; height:48px; margin-bottom:18px; border-radius:50%; background:var(--vino-10); color:var(--vino); }
.sede-card h2 { margin:0 0 10px; color:var(--tinta); }
.sede-card p { margin:5px 0; line-height:1.6; color:var(--gris); }
.sede-card__acciones { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }

.contacto-pagina { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:44px; align-items:start; }
.contacto-pagina .formulario { width:100%; }
/* Tarjetas de contacto: ícono a la izquierda y contenido a la derecha, para
   que se lean de un vistazo en lugar de como una lista de párrafos. */
.contacto-datos { display:flex; flex-direction:column; gap:16px; }

.contacto-dato {
  display:flex; gap:16px; align-items:flex-start;
  padding:22px;
  border:1px solid var(--borde); border-radius:var(--r-lg);
  background:var(--blanco);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.contacto-dato:hover { border-color:var(--vino-10); box-shadow:var(--sh-md); transform:translateY(-2px); }

.contacto-dato.modulo-llamada {
  border-color:rgba(21, 101, 192, .38);
  background:linear-gradient(160deg, rgba(21, 101, 192, .14) 0%, #F3F8FF 62%);
}

.contacto-dato__icono {
  flex:0 0 auto;
  display:grid; place-items:center;
  width:44px; height:44px;
  border-radius:14px;
  background:var(--vino-08);
  font-size:18px; color:var(--vino);
}

.contacto-dato__cuerpo { flex:1; min-width:0; }
.contacto-dato h2 { margin:0 0 6px; font-size:16px; font-weight:700; color:var(--tinta); }
.contacto-dato p { margin:0 0 12px; font-size:14px; line-height:1.6; color:var(--gris); }
.contacto-dato p:last-child { margin-bottom:0; }

.contacto-dato__grande {
  display:inline-block;
  font-size:22px; font-weight:800; letter-spacing:-.02em; color:var(--vino);
}
.contacto-dato__grande:hover { text-decoration:underline; }

.contacto-horario { display:flex; flex-direction:column; gap:6px; margin:0; }
.contacto-horario > div { display:flex; justify-content:space-between; gap:12px; }
.contacto-horario dt { font-size:14px; color:var(--gris); }
.contacto-horario dd { margin:0; font-size:14px; font-weight:700; color:var(--tinta); }

/* La de WhatsApp es la acción preferente: se distingue del resto. */
.contacto-dato--destacado {
  border-color:rgb(18, 140, 126);
  background:linear-gradient(180deg, rgba(18, 140, 126,.06) 0%, var(--blanco) 60%);
}
.contacto-dato--destacado .contacto-dato__icono {
  background:rgb(18, 140, 126); color: #FFFFFF; font-size:22px;
}
.contacto-dato .boton--whatsapp { color:var(--blanco); }
.contacto-dato .boton--whatsapp:hover, .contacto-dato .boton--whatsapp:focus-visible { color:var(--blanco); }

.pagina-cta { padding-block:60px; background:var(--vino); color:var(--blanco); }
.pagina-cta__interior { display:flex; justify-content:space-between; align-items:center; gap:30px; }
.pagina-cta h2 { margin:0 0 8px; font-size:30px; }
.pagina-cta p { margin:0; color:var(--w-68); }

.preguntas { padding-block:76px; background:var(--blanco); }
.preguntas__lista { max-width:860px; }
.pregunta { border-bottom:1px solid var(--borde); }
.pregunta summary { padding:21px 4px; cursor:pointer; font-size:18px; font-weight:700; color:var(--tinta); }
.pregunta p { max-width:760px; margin:0; padding:0 4px 22px; line-height:1.7; color:var(--gris); }

@media (max-width:1080px) {
  .pagina-rejilla { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .valores, .contenido-seo__rejilla { grid-template-columns:1fr 1fr; }
  .historia, .contacto-pagina { grid-template-columns:1fr; gap:38px; }
}
@media (max-width:640px) {
  .interior-hero { padding-block:52px 58px; }
  .pagina-seccion { padding-block:54px; }
  .pagina-rejilla, .idiomas-lista, .valores, .sedes-pagina, .contenido-seo__rejilla { grid-template-columns:1fr; }
  .curso-tarjeta__imagen { height:210px; }
  .curso-tarjeta__pie { flex-direction:column; align-items:stretch; }
  .curso-tarjeta__accion { text-align:center; }
  .idioma-panel { grid-template-columns:56px 1fr; padding:22px; }
  .idioma-panel__sigla { width:56px; height:56px; }
  .pagina-cta__interior { flex-direction:column; align-items:flex-start; }
}
