/* Página pública: celular primero (390 px), también web y dentro del iframe de rotaryrosita.org. */
body { font-size: 16px; }
.encabezado .logo { height: 52px; }
.en-vivo { display: inline-flex; align-items: center; gap: .45rem; font-size: .85rem; font-weight: 600; color: var(--titulo); }
.en-vivo .punto { width: .65rem; height: .65rem; border-radius: 50%; background: var(--ok); box-shadow: 0 0 0 0 rgba(46, 125, 50, .5); animation: latido 2s infinite; }
.en-vivo.sin-red .punto { background: var(--error); animation: none; }
.en-vivo.sin-red { color: var(--error); }
@keyframes latido { 70% { box-shadow: 0 0 0 .5rem rgba(46, 125, 50, 0); } 100% { box-shadow: 0 0 0 0 rgba(46, 125, 50, 0); } }
@media (prefers-reduced-motion: reduce) { .en-vivo .punto { animation: none; } }

.nav-publica { position: sticky; top: 0; z-index: 10; display: flex; gap: .25rem; overflow-x: auto; background: var(--fondo);
  border-bottom: 1px solid var(--linea); padding: 0 .5rem; scrollbar-width: none; }
.nav-publica::-webkit-scrollbar { display: none; }
.nav-publica a { flex: none; padding: .8rem .85rem; color: var(--titulo); text-decoration: none; font-weight: 600; font-size: .95rem;
  border-bottom: 3px solid transparent; min-height: 44px; display: inline-flex; align-items: center; }
.nav-publica a[aria-current="page"] { color: var(--azul); border-bottom-color: var(--dorado); }
.nav-publica a[hidden] { display: none; }          /* «Campo» mientras el admin no publique el mapa */

main { max-width: 68rem; margin: 0 auto; padding: 1rem .75rem 2rem; }
.sobretitulo { color: #C2362C; text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; font-weight: 700; margin: 0 0 .15rem; }
h2 { font-size: 1.45rem; }
.cabeza-seccion { display: flex; gap: .75rem; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; margin-bottom: .75rem; }
.buscar .campo { width: 19rem; max-width: 100%; }
.nota { font-size: .85rem; margin-top: .75rem; }
.aviso-final { background: var(--azul-claro); color: var(--azul); font-weight: 600; border-radius: var(--radio); padding: .6rem .9rem; margin-bottom: .75rem; }

/* Hole in one */
.hoyo-en-uno { background: linear-gradient(90deg, var(--azul), #1E3A73); color: #fff; text-align: center; padding: .9rem 1rem;
  border-bottom: 4px solid var(--dorado); font-weight: 700; font-size: 1.05rem; }
.hoyo-en-uno strong { color: var(--dorado); font-size: 1.25rem; display: block; letter-spacing: .04em; }

/* Tabla */
.tabla-caja { border-radius: var(--radio); overflow: hidden; box-shadow: var(--sombra); background: var(--fondo); }
.tabla-publica td, .tabla-publica th { padding: .6rem .5rem; }
.tabla-publica tbody tr.fila { cursor: pointer; }
.tabla-publica tbody tr.fila:hover { background: var(--azul-claro); }
.tabla-publica .pos { width: 3.3rem; font-weight: 700; color: var(--titulo); text-align: center; font-size: 1.05rem; }
.tabla-publica .equipo a { color: var(--titulo); font-weight: 700; text-decoration: none; }
.tabla-publica .equipo .jug { display: block; font-size: .82rem; color: var(--texto); }
.tabla-publica .total { font-size: 1.2rem; text-align: center; width: 4.4rem; }
.tabla-publica .hoyos { text-align: center; width: 4rem; }
.tabla-publica th.centro, .tabla-publica th.num { text-align: center; }
.tabla-publica .sin-juego td { color: #8a93a3; }
.tabla-publica tr.top3 .pos { color: var(--azul); }
tr.banda-patro td { padding: 0; background: var(--fondo-2); }
.banda { display: flex; align-items: center; justify-content: center; gap: 1rem; padding: .55rem .75rem; flex-wrap: wrap; }
.banda .gracias { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--texto); font-weight: 700; }
.banda img { height: 40px; width: auto; max-width: 110px; object-fit: contain; background: #fff; border-radius: 6px; padding: 3px; }
.banda .solo-nombre { font-weight: 700; color: var(--azul); font-size: .85rem; }
.banda-logo { display: inline-flex; align-items: center; }

/* «Presentado por» (1.er nivel de patrocinio): bajo el título de la tabla y al pie de la tarjeta del equipo */
.presentado { display: inline-flex; align-items: center; gap: .75rem; max-width: 100%; margin-top: .15rem; padding: .35rem .6rem .35rem .75rem;
  background: var(--fondo); border: 1px solid var(--linea); border-left: 4px solid var(--dorado); border-radius: var(--radio); }
.presentado-etq { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--texto); white-space: nowrap; }
.presentado-logo { flex: none; display: flex; align-items: center; justify-content: center; height: 48px; width: 150px; }
.presentado-logo img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.presentado-logo .solo-nombre { font-weight: 700; color: var(--azul); font-size: .9rem; line-height: 1.15; text-align: center; overflow-wrap: anywhere; }
.presentado-logo { transition: opacity .4s ease; }
.presentado.apagado .presentado-logo { opacity: 0; }
.presentado-equipo { display: flex; width: fit-content; margin: 1.25rem auto 0; }
@media (prefers-reduced-motion: reduce) { .presentado-logo { transition: none; } }

/* Tarjeta del equipo */
.tarjeta-equipo .volver { display: inline-flex; gap: .3rem; align-items: center; margin-bottom: .75rem; font-weight: 600; min-height: 44px; }
.resumen-equipo { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; margin-bottom: .75rem; }
.resumen-equipo .dato { background: var(--fondo); border-radius: var(--radio); box-shadow: var(--sombra); padding: .5rem .9rem; border-left: 4px solid var(--dorado); }
.resumen-equipo .dato .v { font-size: 1.4rem; font-weight: 700; color: var(--titulo); }
.resumen-equipo .dato .e { font-size: .78rem; }
.vuelta-publica { margin-top: 1rem; }
.vuelta-publica h3 { color: var(--azul); }
.scroll-x { overflow-x: auto; }
table.tarjeta { border-collapse: collapse; background: var(--fondo); border-radius: var(--radio); box-shadow: var(--sombra); min-width: 100%; }
table.tarjeta th, table.tarjeta td { text-align: center; padding: .4rem .3rem; min-width: 2.3rem; border-bottom: 1px solid var(--linea); font-variant-numeric: tabular-nums; }
table.tarjeta th:first-child, table.tarjeta td:first-child { text-align: left; padding-left: .6rem; min-width: 3.6rem; }
table.tarjeta thead th { background: var(--azul); color: #fff; font-weight: 600; }
table.tarjeta .golpe { font-weight: 700; font-size: 1.05rem; }
table.tarjeta .golpe .s { display: block; font-size: .8rem; line-height: 1; }
.leyenda-simbolos { font-size: .82rem; margin-top: .6rem; }

/* O'Yes */
.rejilla-oyes { display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: 1rem; }
.tarjeta-oyes { background: var(--fondo); border-radius: var(--radio); box-shadow: var(--sombra); overflow: hidden; }
.tarjeta-oyes header { background: var(--azul); color: #fff; padding: .6rem .9rem; display: flex; justify-content: space-between; align-items: baseline; }
.tarjeta-oyes header strong { font-size: 1.15rem; }
.tarjeta-oyes header span { font-size: .8rem; color: #d7e1f5; }
.tarjeta-oyes ol { list-style: none; margin: 0; padding: 0; }
.tarjeta-oyes li { display: grid; grid-template-columns: 2.4rem 1fr auto; gap: .5rem; padding: .55rem .9rem; border-bottom: 1px solid var(--linea); align-items: center; }
.tarjeta-oyes li .lugar { font-weight: 700; color: var(--azul); font-size: 1.1rem; }
.tarjeta-oyes li .quien small { display: block; font-size: .78rem; color: var(--texto); }
.tarjeta-oyes li .dist { font-weight: 700; color: var(--titulo); font-variant-numeric: tabular-nums; font-size: 1.05rem; }
.tarjeta-oyes li.vacio-oy { display: block; color: var(--texto); font-style: italic; }
.tarjeta-oyes .mas { padding: .5rem .9rem; font-size: .82rem; }

/* Salidas */
.rejilla-salidas { display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: 1rem; }
.bloque { background: var(--fondo); border-radius: var(--radio); box-shadow: var(--sombra); padding: .9rem 1rem; }
.bloque h3 { color: var(--azul); margin-bottom: .4rem; }
.bloque .fila-salida { display: grid; grid-template-columns: 5.5rem 1fr; gap: .5rem; padding: .45rem 0; border-bottom: 1px solid var(--linea); }
.bloque .fila-salida .cuando { font-weight: 700; color: var(--titulo); }
.bloque .fila-salida small { display: block; font-size: .8rem; }

/* Premios */
.hio-premio { background: linear-gradient(120deg, var(--azul), #1E3A73); color: #fff; border-radius: var(--radio); padding: 1.1rem 1.2rem;
  margin-bottom: 1rem; border-bottom: 5px solid var(--dorado); }
.hio-premio .t { font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--dorado); font-weight: 700; }
.hio-premio .v { font-size: 1.6rem; font-weight: 700; }
.premios-hoyos { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem; }
.premios-hoyos ol { margin: .2rem 0 0; padding-left: 1.3rem; }
.premios-hoyos li { padding: .2rem 0; color: var(--titulo); }

/* Reglamento */
.texto-largo { max-width: 46rem; margin: 0 auto; line-height: 1.65; }
.texto-largo h1 { font-size: 1.4rem; }
.texto-largo h2 { font-size: 1.12rem; margin-top: 1.4rem; color: var(--azul); }
.texto-largo ul { padding-left: 1.2rem; }
.texto-largo .por-confirmar { background: var(--aviso-fondo); border-left: 4px solid var(--aviso); padding: .2rem .5rem; border-radius: 4px; }

/* Patrocinadores */
/* Sin nombres de nivel (Gil, 2026-10-20): la jerarquía es el tamaño. 1.er nivel grande, 2.º mediano, el resto chico
   (en celular: 1, 2 y 3 por fila). */
.muro { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); margin-top: 1.2rem; }
.muro + .muro { margin-top: 1.75rem; }
.muro.n1 { grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); }
.muro.oro { grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); gap: .6rem; }
.muro.oro .logo-patro { padding: .45rem; font-size: .8rem; }
@media (max-width: 480px) { .muro.oro { grid-template-columns: repeat(3, 1fr); } }
.logo-patro { background: #fff; border-radius: var(--radio); box-shadow: var(--sombra); aspect-ratio: 2 / 1; display: flex; align-items: center;
  justify-content: center; padding: .6rem; text-align: center; font-weight: 700; color: var(--azul); font-size: .9rem; }
.logo-patro img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* Franja de logos al pie */
.franja-logos { background: #fff; border-top: 1px solid var(--linea); overflow: hidden; padding: .6rem 0; }
.franja-logos .pista { display: flex; gap: 2rem; width: max-content; animation: desliza 80s linear infinite; align-items: center; }
/* Tamaño por nivel: 1.er nivel 1.5×, 2.º 1.2×, el resto 1× */
.franja-logos img { height: 40px; width: auto; max-width: 120px; object-fit: contain; }
.franja-logos img.n1 { height: 60px; max-width: 180px; }
.franja-logos img.n2 { height: 48px; max-width: 144px; }
.franja-logos .solo-nombre { font-weight: 700; color: var(--azul); white-space: nowrap; }
.franja-logos .solo-nombre.n1 { font-size: 1.5em; }
.franja-logos .solo-nombre.n2 { font-size: 1.2em; }
@keyframes desliza { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .franja-logos .pista { animation: none; flex-wrap: wrap; width: auto; justify-content: center; } }

@media (max-width: 700px) {
  .solo-escritorio { display: none; }
  .cabeza-seccion > div, .buscar .campo { width: 100%; }
  .barra-sup .lema { display: none; }
  .encabezado { padding: .5rem .75rem; gap: .6rem; }
  .encabezado .logo { height: 40px; }
  .encabezado .titulo h1 { font-size: 1.1rem; }
  .en-vivo { width: 100%; }
}

/* Dentro del iframe de rotaryrosita.org: el sitio ya trae su encabezado. */
body.embebido .barra-sup, body.embebido .encabezado .logo-enlace, body.embebido .pie { display: none; }
body.embebido { background: transparent; }

@media (max-width: 420px) {
  /* Que la vuelta de 9 hoyos + total quepa sin desplazar en un celular de 360–420 px. */
  table.tarjeta th, table.tarjeta td { min-width: 0; padding: .35rem .15rem; font-size: .9rem; }
  table.tarjeta th:first-child, table.tarjeta td:first-child { min-width: 0; padding-left: .4rem; }
  table.tarjeta .golpe { font-size: .98rem; }
  .resumen-equipo { gap: .5rem; }
  .resumen-equipo .dato { padding: .4rem .7rem; }
}

/* ---------- F3: hole in one con premio, desempate en vivo, podio, trofeos y «Ver todos» de O'Yes ---------- */
:root {
  --plata: #B9C3D3;         /* medalla del 2.º lugar (texto oscuro encima) */
  --bronce: #D9A066;        /* medalla del 3.er lugar (texto oscuro encima) */
  --azul-texto: #D7E1F5;    /* texto secundario sobre azul */
}
.hio-item { margin: 0; font-size: .98rem; font-weight: 600; }
.hio-item + .hio-item { margin-top: .55rem; padding-top: .55rem; border-top: 1px solid rgba(255, 255, 255, .25); }
.hio-item.con-premio { font-size: 1.08rem; font-weight: 700; }
.hio-gano { display: block; color: var(--dorado); font-size: 1.15rem; }
.hio-premio .n { font-size: .85rem; color: var(--azul-texto); margin-top: .2rem; }

.trofeos-premio { display: flex; gap: .75rem; align-items: center; background: var(--fondo); border-radius: var(--radio); box-shadow: var(--sombra);
  border-left: 5px solid var(--dorado); padding: .9rem 1rem; margin: 0 0 1rem; font-size: 1.05rem; color: var(--titulo); }
.ico-trofeo { width: 1.4rem; height: 1.4rem; flex: none; color: var(--azul); }
.trofeos-premio .ico-trofeo { width: 2.1rem; height: 2.1rem; }

/* Desempate en vivo (arriba de la tabla) */
.desempates { display: grid; gap: .9rem; margin-bottom: 1rem; }
.caja-desempate { background: var(--fondo); border-radius: var(--radio); box-shadow: var(--sombra); border: 2px solid var(--dorado);
  border-left-width: 6px; padding: .9rem 1rem 1rem; }
.caja-desempate h3 { color: var(--azul); font-size: 1.2rem; margin: 0; }
.caja-desempate .de-fase { margin: .25rem 0 .6rem; font-weight: 600; color: var(--titulo); font-size: .92rem; }
.caja-desempate h4 { margin: .9rem 0 .1rem; color: var(--titulo); font-size: 1rem; }
.de-regla { margin: 0 0 .5rem; font-size: .85rem; }
.de-ganador { background: var(--dorado); color: var(--titulo); font-weight: 700; font-size: 1.15rem; border-radius: 8px; padding: .55rem .8rem; margin: 0 0 .7rem; }
.de-ganador small { display: block; font-weight: 600; font-size: .85rem; }
.de-comite { background: var(--aviso-fondo); color: var(--titulo); border-radius: 8px; padding: .5rem .8rem; margin: 0 0 .7rem; font-weight: 600; }
.de-tabla th { position: static; }
.de-tabla .de-eq .jug { display: block; font-size: .8rem; color: var(--texto); }
.de-tabla .de-eq strong { color: var(--titulo); }
.de-tabla .de-golpe { text-align: center; font-size: 1.35rem; font-weight: 700; color: var(--titulo); width: 5.5rem; font-variant-numeric: tabular-nums; }
.de-tabla tr.en-juego .de-eq strong { color: var(--azul); }
.de-tabla tr.ganador td { background: var(--ok-fondo); }
.de-chip { display: inline-block; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; border-radius: 999px;
  padding: .05rem .5rem; background: var(--azul-claro); color: var(--azul); vertical-align: middle; }
.de-chip.gano { background: var(--ok); color: #fff; }
.de-tiros { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.de-tiros li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .1rem .6rem; align-items: center; border: 1px solid var(--linea);
  border-left: 5px solid var(--linea); border-radius: 8px; padding: .45rem .7rem; }
.de-tiros .quien { font-weight: 700; color: var(--titulo); min-width: 0; overflow-wrap: anywhere; }
.de-tiros .quien small { display: block; font-weight: 400; color: var(--texto); font-size: .8rem; }
.de-tiros .dist { font-size: 1.2rem; font-weight: 700; color: var(--titulo); font-variant-numeric: tabular-nums; }
.de-tiros .donde { font-weight: 700; }
.de-tiros li.green { border-left-color: var(--ok); background: var(--ok-fondo); }
.de-tiros li.green .donde { color: var(--ok); }
.de-tiros li.fuera .donde { color: var(--texto); }
.de-tiros li.no-tiro .donde, .de-tiros li.pendiente .donde { color: var(--texto); font-style: italic; }
.de-tiros li.mejor { box-shadow: 0 0 0 3px var(--dorado); }

/* Podio con trofeos (torneo cerrado) */
.podio { margin-bottom: 1rem; }
.podio h3 { color: var(--azul); font-size: 1.2rem; }
.podio-rejilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; align-items: end; }
.podio-lugar { background: var(--fondo); border-radius: var(--radio); box-shadow: var(--sombra); text-align: center; padding: .9rem .8rem 1rem;
  border-top: 6px solid var(--plata); min-width: 0; }
.podio-lugar.l1 { order: 2; border-top-color: var(--dorado); padding-top: 1.6rem; padding-bottom: 1.4rem; }
.podio-lugar.l2 { order: 1; }
.podio-lugar.l3 { order: 3; border-top-color: var(--bronce); }
.podio-n { display: inline-block; margin: 0 0 .4rem; border-radius: 999px; padding: .15rem .8rem; font-weight: 700; color: var(--titulo); background: var(--plata); }
.l1 .podio-n { background: var(--dorado); }
.l3 .podio-n { background: var(--bronce); }
.podio-eq { margin: .2rem 0 0; font-size: 1.2rem; font-weight: 700; display: flex; gap: .5rem; justify-content: center; align-items: baseline; flex-wrap: wrap; }
.podio-eq a { color: var(--titulo); text-decoration: none; }
.l1 .podio-eq { font-size: 1.4rem; }
.podio-tot { font-size: 1.15rem; }
.podio-jug { margin: .1rem 0 .3rem; font-size: .85rem; overflow-wrap: anywhere; }
.podio-premio { margin: .5rem 0 0; display: inline-flex; gap: .4rem; align-items: center; font-weight: 700; color: var(--azul); }

/* O'Yes: todos los tiros registrados */
.ver-todos { display: flex; width: 100%; min-height: 44px; align-items: center; justify-content: center; font: inherit; font-weight: 600;
  color: var(--azul-boton); background: var(--fondo); border: 0; border-top: 1px solid var(--linea); cursor: pointer; }
.ver-todos:hover { background: var(--azul-claro); }
.oy-tabla th { position: static; }
.oy-tabla td { padding: .45rem .6rem; }
.oy-tabla td small { display: block; font-size: .78rem; color: var(--texto); }
.oy-tabla td.num { white-space: nowrap; }
.oy-tabla tr.premiado td { font-weight: 600; color: var(--titulo); }
.oy-tabla tr.premiado td.lugar { color: var(--azul); font-weight: 700; }

@media (max-width: 700px) {
  .podio-rejilla { grid-template-columns: 1fr; }
  .podio-lugar.l1, .podio-lugar.l2, .podio-lugar.l3 { order: 0; padding: .8rem .8rem .9rem; }
  .de-tabla .de-golpe { width: 4.2rem; font-size: 1.2rem; }
}

/* ---------- F4: Campo (mapa satelital de cada hoyo; colores de las capas en mapa.css) ---------- */
.campo-hoyos { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: .4rem; margin: .4rem 0 .75rem; }
.chip-hoyo { display: grid; justify-items: center; gap: 0; padding: .35rem .2rem; min-height: 44px; border-radius: var(--radio);
  background: var(--fondo); box-shadow: var(--sombra); border: 2px solid transparent; text-decoration: none; color: var(--titulo); line-height: 1.2; }
.chip-hoyo .n { font-weight: 700; font-size: .98rem; white-space: nowrap; }
.chip-hoyo .p { font-size: .76rem; color: var(--texto); }
.chip-hoyo:hover { border-color: var(--azul-claro); }
.chip-hoyo[aria-current="page"] { background: var(--azul); border-color: var(--azul); color: #fff; box-shadow: inset 0 -4px 0 var(--dorado), var(--sombra); }
.chip-hoyo[aria-current="page"] .p { color: var(--azul-texto); }
.campo-aviso { background: var(--azul-claro); color: var(--azul); font-weight: 600; border-radius: var(--radio); padding: .6rem .9rem; margin: 0 0 .75rem; }
.campo-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: 1rem; align-items: start; }
.campo-cuerpo.sin-mapa { grid-template-columns: minmax(0, 1fr); }
.campo-mapa-caja { border-radius: var(--radio); overflow: hidden; box-shadow: var(--sombra); background: var(--capa-fondo); }
.campo-mapa { height: min(68vh, 760px); min-height: 320px; }
.campo-lado { display: grid; gap: 1rem; min-width: 0; }
.ficha-hoyo { background: var(--fondo); border-radius: var(--radio); box-shadow: var(--sombra); border-left: 5px solid var(--dorado); padding: .8rem 1rem; }
.ficha-cab { display: flex; gap: .3rem .75rem; align-items: baseline; justify-content: space-between; flex-wrap: wrap; margin-bottom: .4rem; }
.ficha-cab h3 { margin: 0; color: var(--azul); font-size: 1.15rem; }
.ficha-par { font-weight: 700; color: var(--titulo); }
.ficha-datos { margin: 0; display: grid; gap: .55rem; }
.ficha-datos dt { font-size: .8rem; font-weight: 600; color: var(--texto); }
.ficha-datos dt small { font-weight: 400; }
.ficha-datos dd { margin: 0; font-size: 1.05rem; font-weight: 700; color: var(--titulo); }
.ficha-datos dd small { font-weight: 400; font-size: .8rem; color: var(--texto); }
.ficha-medidas { list-style: none; margin: .1rem 0 0; padding: 0; display: grid; gap: .3rem; }
.ficha-medidas li { display: flex; gap: .5rem; align-items: center; font-weight: 600; }
.ficha-medidas li strong { margin-left: auto; font-variant-numeric: tabular-nums; }
.ficha-datos .sin-dato { font-weight: 400; font-style: italic; color: var(--texto); font-size: .9rem; }
.campo-leyenda h3 { margin: 0 0 .5rem; color: var(--azul); }
.campo-leyenda .mapa-leyenda { grid-template-columns: 1fr; }
.campo-leyenda .nota { margin-top: .5rem; }

@media (max-width: 900px) {
  .campo-cuerpo { grid-template-columns: minmax(0, 1fr); }
  .campo-hoyos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .campo-mapa { height: 60vh; }
  .campo-leyenda .mapa-leyenda { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
}
/* Dentro del iframe el alto del mapa no puede depender del alto de la ventana (el sitio ajusta el iframe a la página). */
body.embebido .campo-mapa { height: auto; min-height: 0; aspect-ratio: 4 / 3; max-height: 640px; }
@media (max-width: 700px) { body.embebido .campo-mapa { aspect-ratio: 4 / 5; } }
