/* =========================================================
   Carta a un militar · 13ª edición
   Ajustes de maquetación. Se carga el último, después de
   main12.css, cssmap-spain.css y podium.css.
   ========================================================= */

/* ---------- General: nada se sale por los lados ---------- */
html, body { overflow-x: hidden; }
img { max-width: 100%; height: auto; }
#bases img[alt="Conjunto de premios"] { display: block; margin: 0 auto; }

/* ---------- Cabecera en móvil y tableta ---------- */
@media (max-width: 991.98px) {
  header.fixed-top .container-fluid > .row { flex-wrap: nowrap; margin-left: 0; margin-right: 0; }
  header.fixed-top .right-menu > .row { flex-wrap: nowrap; margin-left: 0; margin-right: 0; align-items: center; }
  header.fixed-top .right-menu .row .row { flex-wrap: nowrap; margin-left: 0; margin-right: 0; }
  header.fixed-top [class*="col-"] { padding-left: 4px; padding-right: 4px; min-width: 0; }
  header.fixed-top .h-img-cabecera { max-width: 100%; height: auto; }
}
@media (max-width: 575.98px) {
  /* En pantallas muy estrechas el logo de los personajes no cabe: se oculta */
  header.fixed-top .right-menu .row .row > .col-6:first-child { display: none; }
  header.fixed-top .right-menu .row .row > .col-6:last-child { flex: 0 0 100%; max-width: 100%; }
  header.fixed-top img[src*="logo-edicion"] { max-height: 46px; width: auto; }
}

/* ---------- Ganadores nacionales (podio) ---------- */
#ganadores_div .scoreboard__podiums { margin-bottom: 40px; }
#ganadores_div .scoreboard__podium-number a { text-decoration: none; display: block; }
#ganadores_div .scoreboard__podium-number .premiado { margin-bottom: .25rem; }
#ganadores_div .podio-curso { display: block; font-size: .8rem; color: #666; text-transform: none; }
#ganadores_div .podio-provincia { display: block; font-weight: 700; color: #4a7fb0; text-transform: uppercase; font-size: .8rem; margin-top: .25rem; }
#ganadores_div .ver-carta-link { display: inline-block; margin-top: .5rem; font-size: .75rem; font-weight: 700; letter-spacing: .05em; color: #4a7fb0; border-bottom: 1px solid currentColor; }

@media (max-width: 767.98px) {
  /* En móvil el podio se apila: 1º, 2º y 3º uno debajo de otro */
  #ganadores_div .scoreboard__podiums { flex-direction: column; align-items: stretch; margin: 10px auto 30px; }
  #ganadores_div .scoreboard__podiums .scoreboard__podium { margin: 0 0 24px; align-self: stretch; flex: none; width: 100%; }
  #ganadores_div .scoreboard__podium.puesto-1 { order: 1; }
  #ganadores_div .scoreboard__podium.puesto-2 { order: 2; }
  #ganadores_div .scoreboard__podium.puesto-3 { order: 3; }
  #ganadores_div .scoreboard__podium-base { height: 90px !important; }
  #ganadores_div .scoreboard__podium-base { display: flex; align-items: center; justify-content: center; position: relative; }
  #ganadores_div .scoreboard__podium-rank { font-size: 3rem !important; position: static !important; transform: none !important; margin: 0 !important; line-height: 1; }
}

/* ---------- Ganadores provinciales ---------- */
#mapa h1 { margin: 1.5rem 0 1rem; }
#mapa .selector-provincia { max-width: 420px; margin: 0 auto; }
#mapa .selector-provincia select { font-size: 1rem; height: auto; padding: .6rem .9rem; }
#mapa_espana .css-map-container { max-width: 100%; }

/* Provincia seleccionada en el mapa */
#map-spain li.active-region .bg { opacity: 1 !important; }

/* Participación internacional: botones centrados */
.internacional { text-align: center; margin: 1.5rem auto 0; }
.internacional p { margin-bottom: .75rem; font-weight: 600; }
.internacional ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.internacional li.extra { cursor: pointer; padding: .55rem 1.4rem; border: 2px solid #4a7fb0; border-radius: 999px; color: #4a7fb0; font-weight: 700; letter-spacing: .04em; transition: background .2s, color .2s; }
.internacional li.extra:hover,
.internacional li.extra.active { background: #4a7fb0; color: #fff; }
.internacional li.extra:focus { outline: none; }
.internacional li.extra:focus-visible { outline: 3px solid #f0c040; outline-offset: 2px; }
#mapa .destacado { margin-top: 1.5rem; }
@media (max-width: 575.98px) {
  .internacional li.extra { padding: .4rem 1rem; font-size: .9rem; }
  #mapa .destacado { font-size: 1.1rem; }
}

/* Resultado (ganador/a provincial) */
#result { display: none; padding: 40px 0; }
#result .ganador { max-width: 620px; margin: 0 auto; text-align: center; background: #fff; border-radius: 14px; padding: 32px 24px; box-shadow: 0 6px 24px rgba(0,0,0,.08); }
#result .ganador img { width: 48px; height: auto; margin: 0 auto 12px; display: block; }
#result .tipo_premio { font-size: 1.1rem; letter-spacing: .08em; margin-bottom: 1rem; }
#result .gp-provincia { font-size: 1.6rem; font-weight: 700; color: #4a7fb0; text-transform: uppercase; margin-bottom: .75rem; }
#result .gp-nombre { font-size: 1.25rem; font-weight: 700; margin-bottom: .25rem; }
#result .gp-curso { color: #666; margin-bottom: .25rem; }
#result .gp-centro { margin-bottom: 1.25rem; }
#result .gp-vacio { color: #666; font-style: italic; margin: .5rem 0 0; }
#result .btn-carta { display: inline-block; padding: .7rem 1.8rem; border-radius: 999px; background: #4a7fb0; color: #fff; font-weight: 700; letter-spacing: .05em; text-decoration: none; }
#result .btn-carta:hover { background: #3a6690; color: #fff; }

/* ---------- Cabecera: el bloque de logos de la derecha no se sale ---------- */
header.fixed-top .right-menu > .row,
header.fixed-top .right-menu .row .row { margin-left: 0; margin-right: 0; }
header.fixed-top .right-menu .row .row > [class*="col-"] { padding-left: 4px; padding-right: 4px; }

/* ---------- Contacto: la ilustración del militar se ajusta al ancho ---------- */
#contacta img { max-width: calc(100% - 30px) !important; width: auto; }

/* ---------- Plazo de entrega: legible sobre la ilustración en móvil ---------- */
@media (max-width: 767.98px) {
  #inscripcion .info-container .subtitle { background: rgba(255,255,255,.88); border-radius: 10px; padding: .75rem 1rem; margin: 0 12px; font-size: 1rem; letter-spacing: normal; }
  #inscripcion .info-container .subtitle p { margin: .25rem 0 0; }
}

/* ---------- Cabecera: la franja azul llega hasta el borde derecho ---------- */
header.fixed-top > .container-fluid { padding-right: 0; }

/* ---------- Podio nacional: escudo de la provincia dentro de cada bloque ---------- */
#ganadores_div .scoreboard__podium-base { position: relative; display: flex; align-items: center; justify-content: center; overflow: visible; }
#ganadores_div .podio-escudo { height: 78%; max-height: 165px; width: auto; max-width: 70%; object-fit: contain; filter: drop-shadow(0 3px 6px rgba(0,0,0,.25)); }
#ganadores_div .scoreboard__podium-rank {
  position: absolute !important; top: 10px !important; left: 10px !important; right: auto !important; bottom: auto !important;
  transform: none !important; margin: 0 !important;
  width: 44px; height: 44px; line-height: 44px !important; border-radius: 50%;
  background: rgba(255,255,255,.92); color: #2f4f70 !important; text-align: center;
  font-size: 1.2rem !important; font-weight: 800; box-shadow: 0 2px 6px rgba(0,0,0,.2);
}
#ganadores_div .scoreboard__podium-base--first .scoreboard__podium-rank { background: #f3c64b; color: #5a4200 !important; }
@media (max-width: 767.98px) {
  #ganadores_div .scoreboard__podium-base { height: 130px !important; }
  #ganadores_div .podio-escudo { height: 82%; }
  #ganadores_div .scoreboard__podium-rank { position: absolute !important; }
}

/* ---------- Selector de ediciones (histórico) ---------- */
#historico { scroll-margin-top: 110px; margin: 1.25rem 0 .5rem; }
.edicion-lema { color: #4a7fb0; font-style: italic; margin: -.25rem 0 0; }
.selector-ediciones { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.selector-ediciones .btn-edicion {
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 140px; padding: .55rem 1.1rem; border: 2px solid #4a7fb0; border-radius: 12px;
  background: #fff; color: #4a7fb0; cursor: pointer; line-height: 1.2; text-decoration: none;
  transition: background .2s, color .2s;
  margin: 0; box-shadow: none; font-size: inherit; box-sizing: border-box; height: 58px;
}
.selector-ediciones .btn-edicion strong { font-size: 1rem; }
.selector-ediciones .btn-edicion small { font-size: .75rem; opacity: .85; }
.selector-ediciones .btn-edicion:hover,
.selector-ediciones .btn-edicion.active { background: #4a7fb0; color: #fff; }
.selector-ediciones .btn-edicion-pdf { border-style: dashed; }
.selector-ediciones .btn-edicion:focus { outline: none; }
.selector-ediciones .btn-edicion:focus-visible { outline: 3px solid #f0c040; outline-offset: 2px; }
@media (max-width: 575.98px) {
  .selector-ediciones { gap: .5rem; }
  .selector-ediciones .btn-edicion { min-width: 0; flex: 1 1 calc(50% - .5rem); padding: .45rem .5rem; height: 52px; }
  .selector-ediciones .btn-edicion strong { font-size: .9rem; }
}

/* Podio: sin escudo disponible se ve el número grande */
#ganadores_div .scoreboard__podium-base.sin-escudo .scoreboard__podium-rank {
  position: static !important; width: auto; height: auto; background: none; box-shadow: none;
  color: #fff !important; font-size: 4rem !important; line-height: 1 !important;
}
#ganadores_div .vercarta.sin-carta { cursor: default; }

/* Menciones especiales y notas */
.menciones { margin-top: -10px; }
.menciones .mencion { display: block; font-weight: 700; color: #007bff; margin: 0 auto .5rem; text-decoration: none; }
.menciones .mencion small { display: block; font-weight: 400; color: #555; text-transform: uppercase; }
.nota-edicion { color: #666; font-style: italic; margin-top: 1rem; }
