/* Fotos de los accesos post congreso */
.postcongreso-card--foto { background: #163f87; color: #fff; }
.postcongreso-card--foto:hover, .postcongreso-card--foto:focus { color: #fff; }
.postcongreso-card--foto::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5,17,44,.95), rgba(5,17,44,.38) 65%, rgba(5,17,44,.12)); }
.postcongreso-card--foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.postcongreso-card--foto small { color: #e4eaf7; }
.postcongreso-card--foto .postcongreso-card__accion { color: #ffae78; }
.postcongreso-card--pendiente:hover { transform: none; box-shadow: 0 12px 30px rgba(22,63,135,.11); }
.postcongreso-card--sociedades strong { font-size: 18px; line-height: 1.2; }
.postcongreso-card--sociedades .postcongreso-card__contenido > i { margin-bottom: 12px; }
.postcongreso-card--sociedades .postcongreso-card__accion { margin-top: 13px; }

body.home-postcongreso #overview.agradecimientos-section { padding: 80px 0 34px; background: #fff; }
.agradecimientos-contenido { max-width: 920px; margin: 0 auto; }
.agradecimientos-contenido h2 { margin: 13px 0 28px; color: #163f87; font: 500 39px/1.2 'Marcellus', serif; text-transform: none; }
.agradecimientos-contenido > p { margin: 0 0 22px; color: #59606b; font-size: 16px; line-height: 1.8; }
.agradecimientos-contenido > p strong { color: #163f87; }
.agradecimientos-encuesta { display: flex; gap: 18px; align-items: flex-start; max-width: 1000px; margin: 65px auto 0; padding: 28px 32px; border-left: 5px solid #f36f21; border-radius: 14px; background: #fff; box-shadow: 0 12px 30px rgba(22,63,135,.08); }
.agradecimientos-encuesta > i { margin-top: 4px; color: #f36f21; font-size: 26px; }
.agradecimientos-encuesta h3 { margin: 0 0 8px; color: #163f87; font-size: 21px; letter-spacing: 0; }
.agradecimientos-encuesta p { margin: 0; color: #59606b; line-height: 1.7; }
.agradecimientos-contenido .agradecimientos-cierre { margin-top: 28px; margin-bottom: 0; color: #163f87; font-family: 'Marcellus', serif; font-size: 22px; text-align: center; }
@media (max-width: 767px) { body.home-postcongreso #overview.agradecimientos-section { padding: 55px 0 25px; } .agradecimientos-contenido h2 { font-size: 32px; } .agradecimientos-encuesta { padding: 21px; gap: 12px; } .agradecimientos-encuesta > i { font-size: 21px; } }

/* Menos espacio entre agradecimientos y accesos. La encuesta queda en una tarjeta aparte. */
body.home-postcongreso .postcongreso-section { padding-top: 54px; }
@media (max-width: 767px) { body.home-postcongreso .postcongreso-section { padding-top: 42px; } }

/* Discurso de apertura: presentación y enlace a página completa. */
.discurso-apertura { margin: 65px auto 0; overflow: hidden; border-radius: 18px; background: #fff; box-shadow: 0 12px 30px rgba(22,63,135,.08); }
.discurso-apertura__presentacion { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: center; }
.discurso-apertura__foto { display: block; width: 100%; height: 300px; object-fit: cover; }
.discurso-apertura__introduccion { padding: 30px 36px; }
.discurso-apertura__introduccion h2 { margin: 12px 0 16px; color: #163f87; font: 500 34px/1.2 'Marcellus', serif; text-transform: none; }
.discurso-apertura__introduccion p { margin: 0; color: #59606b; font-size: 15px; line-height: 1.8; }
.discurso-apertura__boton { display: inline-flex; align-items: center; gap: 12px; padding: 13px 24px; border-radius: 8px; background: #163f87; color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; list-style: none; transition: background .2s; }
.discurso-apertura__boton::-webkit-details-marker { display: none; }
.discurso-apertura__boton:hover { background: #f36f21; }
.discurso-apertura__boton:focus-visible { outline: 3px solid #f36f21; outline-offset: 4px; }
.discurso-apertura__texto { max-width: 900px; margin: 28px auto 0; padding-top: 26px; border-top: 1px solid #e4eaf7; }
.discurso-apertura__texto p { margin: 0 0 18px; color: #59606b; font-size: 16px; line-height: 1.85; }
@media (max-width: 767px) {
  .discurso-apertura__presentacion { grid-template-columns: 1fr; }
  .discurso-apertura__foto { height: auto; max-height: 340px; }
  .discurso-apertura__introduccion { padding: 25px 22px; }
  .discurso-apertura__introduccion h2 { font-size: 30px; }
  .discurso-apertura { margin-top: 48px; }
  .discurso-apertura__texto p { font-size: 15px; }
}

.discurso-apertura__introduccion > .discurso-apertura__boton { margin-top: 22px; text-decoration: none; }
.discurso-apertura__boton:hover, .discurso-apertura__boton:focus { color: #fff; text-decoration: none; }
.discurso-pagina { padding: 145px 0 75px; background: #f5f7fb; }
.discurso-pagina__encabezado { max-width: 900px; margin: 0 auto 30px; }
.discurso-pagina__volver { display: block; margin-bottom: 30px; color: #163f87; font-size: 14px; }
.discurso-pagina__volver i { margin-right: 8px; }
.discurso-pagina__encabezado h1 { color: #163f87; margin: 14px 0; font: 500 42px/1.2 'Marcellus', serif; }
.discurso-pagina__encabezado > p { color: #59606b; }
.discurso-pagina .discurso-apertura__texto { padding: 36px 42px; margin-top: 0; border: 0; border-radius: 18px; background: #fff; box-shadow: 0 12px 30px rgba(22,63,135,.08); }
@media (max-width: 767px) {
  .agradecimientos-encuesta { margin-top: 48px; }
  .discurso-pagina { padding: 115px 0 50px; }
  .discurso-pagina__encabezado h1 { font-size: 34px; }
  .discurso-pagina .discurso-apertura__texto { padding: 26px 22px; }
}

/* Reporte del Congreso: acceso y página de imágenes. */
.reporte-acceso .discurso-apertura__boton { margin-top: 18px; text-decoration: none; }
.reporte-pagina { padding: 145px 0 75px; background: #f5f7fb; }
.reporte-pagina__contenido { max-width: 1000px; margin: 0 auto; }
.reporte-pagina__encabezado { margin-bottom: 34px; }
.reporte-pagina__encabezado h1 { margin: 14px 0; color: #163f87; font: 500 42px/1.2 'Marcellus', serif; }
.reporte-pagina__encabezado p { color: #59606b; font-size: 16px; line-height: 1.8; }
.reporte-pagina__imagenes { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.reporte-pagina__imagenes img { display: block; width: 100%; height: auto; border-radius: 12px; box-shadow: 0 12px 30px rgba(22,63,135,.08); }
@media (max-width: 767px) {
  .reporte-pagina { padding: 115px 0 50px; }
  .reporte-pagina__encabezado h1 { font-size: 34px; }
  .reporte-pagina__imagenes { gap: 20px; }
}

/* Reporte integrado en el inicio. Imágenes completas, sin recortar. */
.reporte-inicio { max-width: 1000px; margin: 65px auto 0; padding: 32px; border-top: 4px solid #f36f21; border-radius: 18px; background: #fff; box-shadow: 0 12px 30px rgba(22,63,135,.08); }
.reporte-inicio__encabezado { margin-bottom: 26px; text-align: center; }
.reporte-inicio__encabezado h2 { margin: 12px 0 14px; color: #163f87; font: 500 36px/1.2 'Marcellus', serif; text-transform: none; }
.reporte-inicio__encabezado p { max-width: 820px; margin: 0 auto; color: #59606b; font-size: 16px; line-height: 1.8; }
.reporte-slider { min-width: 0; width: 100%; max-width: 840px; margin: 0 auto; }
.reporte-slider__ventana { display: flex; width: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: 12px; background: #f5f7fb; }
.reporte-slider__ventana::-webkit-scrollbar { display: none; }
.reporte-slider__diapositiva { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.reporte-slider__diapositiva img { display: block; width: 100%; height: auto; }
.reporte-slider__controles { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 20px; }
.reporte-slider__controles[hidden] { display: none; }
.reporte-slider__puntos { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.reporte-slider__flecha, .reporte-slider__punto { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 1px solid #d7dfed; border-radius: 50%; background: #fff; color: #163f87; font: 600 14px/1 'Poppins', sans-serif; cursor: pointer; }
.reporte-slider__flecha { flex-shrink: 0; background: #163f87; color: #fff; border-color: #163f87; }
.reporte-slider__punto[aria-current="true"], .reporte-slider__flecha:hover, .reporte-slider__punto:hover { background: #f36f21; color: #fff; border-color: #f36f21; }
.reporte-slider button:focus-visible, .reporte-slider__ventana:focus-visible, .reporte-slider__diapositiva:focus-visible { outline: 3px solid #f36f21; outline-offset: 3px; }
@media (max-width: 767px) {
  .reporte-inicio { margin-top: 48px; padding: 24px 12px; }
  .reporte-inicio__encabezado { padding: 0 8px; }
  .reporte-inicio__encabezado h2 { font-size: 30px; }
  .reporte-inicio__encabezado p { font-size: 15px; }
  .reporte-slider__controles { gap: 8px; }
  .reporte-slider__puntos { gap: 4px; }
  .reporte-slider__punto { width: 30px; height: 36px; border-radius: 8px; font-size: 12px; }
  .reporte-slider__flecha { width: 36px; height: 36px; }
}

/* Cinco accesos: tres arriba y dos centrados debajo. */
body.home-postcongreso .postcongreso-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; }
body.home-postcongreso .postcongreso-grid > .postcongreso-card { grid-column: span 2; min-width: 0; }
body.home-postcongreso .postcongreso-grid > .postcongreso-card:nth-child(4) { grid-column: 2 / span 2; }
body.home-postcongreso .postcongreso-grid > .postcongreso-card:nth-child(5) { grid-column: 4 / span 2; }
.postcongreso-card--louise img { object-position: center 25%; }

/* Página de Louise Brown. */
body.pagina-louise .preloader { display: none !important; }
.louise-pagina { min-height: 65vh; padding: 145px 0 75px; background: #f5f7fb; }
.louise-pagina__encabezado { max-width: 900px; margin: 0 auto 36px; }
.louise-pagina__encabezado h1 { margin: 14px 0; color: #163f87; font: 500 46px/1.2 'Marcellus', serif; }
.louise-pagina__encabezado p { color: #59606b; font-size: 16px; line-height: 1.8; }
.louise-fotos, .louise-video { max-width: 1000px; margin: 0 auto; }
.louise-pagina h2 { margin: 0 0 24px; color: #163f87; font: 500 32px/1.25 'Marcellus', serif; text-transform: none; }
.louise-galeria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.louise-foto { display: block; overflow: hidden; border-radius: 14px; background: #e5ebf4; box-shadow: 0 8px 22px rgba(22,63,135,.1); }
.louise-foto img { display: block; width: 100%; height: auto; }

.louise-foto:focus-visible { outline: 3px solid #f36f21; outline-offset: 4px; }
.louise-video { margin-top: 55px; }
.louise-video__contenedor { position: relative; height: 0; padding-bottom: 56.25%; overflow: hidden; border-radius: 14px; background: #163f87; }
.louise-video__iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; }
@media (max-width: 991px) {
  body.home-postcongreso .postcongreso-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  body.home-postcongreso .postcongreso-grid > .postcongreso-card { grid-column: auto; }
  body.home-postcongreso .postcongreso-grid > .postcongreso-card:nth-child(4), body.home-postcongreso .postcongreso-grid > .postcongreso-card:nth-child(5) { grid-column: auto; }
}
@media (max-width: 767px) {
  .louise-pagina { padding: 115px 0 50px; }
  .louise-pagina__encabezado h1 { font-size: 36px; }
  .louise-pagina h2 { font-size: 28px; }
  .louise-pagina__encabezado p { font-size: 15px; }
  .louise-galeria { gap: 12px; }

}
@media (max-width: 575px) {
  body.home-postcongreso .postcongreso-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .louise-galeria { grid-template-columns: minmax(0, 1fr); }

}

/* Crónica de la visita de Louise Brown. */
.louise-texto { max-width: 900px; margin: 0 auto 48px; padding: 30px 36px; border-radius: 14px; background: #fff; box-shadow: 0 8px 22px rgba(22,63,135,.06); }
.louise-texto p { margin: 0 0 20px; color: #59606b; font-size: 16px; line-height: 1.85; }
.louise-texto p:last-child { margin-bottom: 0; color: #163f87; font-weight: 600; }
@media (max-width: 767px) {
  .louise-texto { padding: 24px 20px; margin-bottom: 36px; }
  .louise-texto p { font-size: 15px; }
}

/* Apertura: la foto cubre toda la altura de la tarjeta. */
.discurso-apertura__presentacion { align-items: stretch; }
.discurso-apertura__imagen { position: relative; min-width: 0; min-height: 300px; overflow: hidden; }
.discurso-apertura__imagen .discurso-apertura__foto { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-height: none; margin: 0; object-fit: cover; }
body.pagina-apertura .preloader, body.pagina-apertura #preloader { display: none !important; visibility: hidden !important; pointer-events: none !important; }
@media (max-width: 767px) {
  .discurso-apertura__imagen { min-height: 0; aspect-ratio: 16 / 10; }
}

/* Foto vertical junto a la crónica; cuatro fotos horizontales en la galería. */
.louise-texto { display: flow-root; }
.louise-texto__foto { float: right; display: block; width: 35%; max-width: 300px; margin: 0 0 22px 28px; overflow: hidden; border-radius: 12px; }
.louise-texto__foto img { display: block; width: 100%; height: auto; }
.louise-texto__foto:focus-visible { outline: 3px solid #f36f21; outline-offset: 4px; }
.louise-galeria { align-items: start; }
@media (max-width: 767px) {
  .louise-texto__foto { float: none; width: 100%; max-width: 300px; margin: 0 auto 24px; }
}

/* Acceso a la galería al finalizar la crónica de apertura. */
.discurso-pagina__acciones { max-width: 900px; margin: 28px auto 0; text-align: center; }
.discurso-pagina__acciones .discurso-apertura__boton { text-decoration: none; }

/* Seis accesos: tres tarjetas por fila, certificados sin enlace. */
body.home-postcongreso .postcongreso-grid--seis > .postcongreso-card:nth-child(n) { grid-column: span 2; }
.postcongreso-card--certificados { cursor: default; }
.postcongreso-card__aviso { margin-top: 14px; font-size: 14px; line-height: 1.65; font-weight: 600; color: #163f87; }
@media (max-width: 991px) {
  body.home-postcongreso .postcongreso-grid--seis > .postcongreso-card:nth-child(n) { grid-column: auto; }
}

/* Descarga de la presentación al final de la página de Louise Brown. */
.louise-pagina__acciones { max-width: 1000px; margin: 32px auto 0; text-align: center; }
.louise-pagina__acciones .louise-pagina__boton-ppt { background: #f36f21; color: #fff; text-decoration: none; }
.louise-pagina__acciones .louise-pagina__boton-ppt:hover, .louise-pagina__acciones .louise-pagina__boton-ppt:focus { background: #d85912; color: #fff; }
