/* Golf de Llanes 360 — tokens del cartel 2026 (paleta A, render medido) */
:root{
  color-scheme: light;
  --golf-font:'Poppins','Urbanist',system-ui,-apple-system,'Segoe UI',sans-serif;
  --verde-texto:#186F38; --verde-2:#27813F; --gris-texto:#55585A;
  --fondo:#D0E8CF; --blanco:#FFFFFF; --rojo:#EF4D3A; --rojo-pliegue:#C32B29;
  --tee-blanca:#DDDEDE; --tee-blanca-txt:#55585A; --tee-amarilla:#F2AB27;
  --tee-azul:#2E79BC; --tee-roja:#EF4D3A; --tee-caja:#9CB69B;
  --map-halo:#92CE98; --map-rough:#0D9544; --map-calle:#4FAE4F; --map-green:#A2CC47;
  --map-bunker:#EED778; --map-lago:#2186C8; --canto:#085E2B;
  --panel:rgba(255,255,255,.94); --sombra:0 10px 30px rgba(8,94,43,.22), 0 2px 6px rgba(8,94,43,.14);
  --radio:18px;
  --top:calc(env(safe-area-inset-top,0px) + 10px);
}
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--fondo);color:var(--verde-texto);font:400 15px/1.5 var(--golf-font);-webkit-font-smoothing:antialiased;overflow:hidden}
body.scrolling{overflow:auto}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--rojo);outline-offset:2px}

#scene{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0;touch-action:none}
body.scrolling #scene{pointer-events:none}
#markers{position:fixed;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.mk{position:absolute;left:0;top:0;transform:translate(-50%,-100%);pointer-events:auto;cursor:pointer;border:0;padding:0;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;will-change:transform}
.mk i{display:block;background-image:url(../assets/iconos.webp);background-repeat:no-repeat;filter:drop-shadow(0 3px 3px rgba(0,0,0,.18))}
.mk span{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:2px;font:600 11px/1.1 var(--golf-font);color:var(--verde-texto);background:var(--panel);padding:2px 7px;border-radius:99px;white-space:nowrap;box-shadow:0 1px 4px rgba(0,0,0,.12);opacity:0;transition:opacity .15s}
.mk:hover span,.mk:focus-visible span,.mk.on span{opacity:1}
.mk.dim{opacity:.35}
.mk.occ{opacity:0;pointer-events:none}
.mk-flag canvas{display:block;filter:drop-shadow(0 3px 3px rgba(0,0,0,.2))}
.mk[hidden]{display:none!important}

/* barra superior */
.topbar{position:fixed;z-index:6;top:var(--top);left:12px;right:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;pointer-events:none}
.topbar>*{pointer-events:auto}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--verde-texto);background:var(--panel);border-radius:99px;padding:4px 14px 4px 4px;box-shadow:var(--sombra)}
.brand img{border-radius:50%;display:block}
.brand b{display:block;font-weight:700;font-size:14px;line-height:1.1}
.brand small{display:block;font-weight:300;font-size:12px;line-height:1.1;letter-spacing:.04em}
.modes{display:flex;background:var(--panel);border-radius:99px;padding:4px;box-shadow:var(--sombra);margin-inline:auto}
.modes button{border:0;background:none;padding:8px 16px;border-radius:99px;font-weight:600;font-size:14px;cursor:pointer;color:var(--verde-texto)}
.modes button[aria-pressed="true"]{background:var(--verde-texto);color:#fff}
.tools{display:flex;gap:8px}
.chip{border:0;background:var(--panel);color:var(--verde-texto);border-radius:99px;padding:8px 14px;font-weight:600;font-size:13px;box-shadow:var(--sombra);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.chip[aria-pressed="true"]{background:var(--verde-texto);color:#fff}
.icon-btn{border:0;background:var(--panel);color:var(--verde-texto);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;box-shadow:var(--sombra);cursor:pointer}

/* selector de hoyos (banderas) */
.hoyos{position:fixed;z-index:5;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 34px);display:flex;gap:6px;justify-content:flex-start;padding:0 12px;overflow-x:auto;scrollbar-width:none}
/* centrada si cabe; si desborda (móvil), desplazable desde «Campo» (con justify-content:center el principio quedaba fuera de alcance) */
.hoyos>:first-child{margin-left:auto}
.hoyos>:last-child{margin-right:auto}
.hoyos::-webkit-scrollbar{display:none}
.hoyos button{flex:0 0 auto;border:0;background:var(--panel);border-radius:12px;box-shadow:var(--sombra);width:40px;height:44px;display:grid;place-items:center;cursor:pointer;padding:0;position:relative}
.hoyos button b{font:700 15px/1 var(--golf-font);color:var(--verde-texto)}
.hoyos button small{position:absolute;bottom:3px;font:500 9px/1 var(--golf-font);color:var(--gris-texto)}
.hoyos button[aria-current="true"]{background:var(--rojo)}
.hoyos button[aria-current="true"] b,.hoyos button[aria-current="true"] small{color:#fff}
.hoyos .all{width:auto;padding:0 12px;font:600 13px/1 var(--golf-font);color:var(--verde-texto)}

/* ficha del hoyo (maqueta de las fichas de la diseñadora, datos 2026) */
.ficha{position:fixed;z-index:5;right:16px;top:calc(var(--top) + 70px);width:min(330px,calc(100vw - 32px));background:var(--blanco);border-radius:var(--radio);box-shadow:var(--sombra);padding:22px 22px 18px 58px;max-height:calc(100% - 200px);overflow:auto}
.ficha .rail{position:absolute;left:22px;top:16px;bottom:30px;width:22px}
.ficha .rail::before{content:"";position:absolute;left:1px;top:0;width:18px;height:18px;border-radius:50%;border:3.5px solid var(--tee-caja);background:#fff}
.ficha .rail::after{content:"";position:absolute;left:9px;top:26px;bottom:0;border-left:3px dotted var(--tee-caja)}
.ficha .x{position:absolute;right:10px;top:10px;width:32px;height:32px;border:0;border-radius:50%;background:#EEF4EC;color:var(--verde-texto);cursor:pointer;font-size:18px;line-height:1}
.ficha h2{margin:0;font:800 34px/1 var(--golf-font);color:var(--verde-texto);letter-spacing:-.01em}
.ficha .nombre{margin:6px 0 2px;font:300 22px/1.15 var(--golf-font);color:var(--verde-texto);text-wrap:balance}
.ficha .par{margin:0 0 12px;font:500 17px/1.2 var(--golf-font);color:var(--verde-texto);letter-spacing:.02em}
.barras{display:grid;grid-template-columns:1fr 1fr;gap:7px;border:3px solid var(--tee-caja);border-radius:14px;padding:7px}
.barras button{border:0;border-radius:9px;padding:7px 4px;font:500 17px/1 var(--golf-font);color:#fff;cursor:pointer;font-variant-numeric:tabular-nums;outline-offset:1px}
.barras .b-blanca{background:var(--tee-blanca);color:var(--tee-blanca-txt)}
.barras .b-amarilla{background:var(--tee-amarilla)}
.barras .b-azul{background:var(--tee-azul)}
.barras .b-roja{background:var(--tee-roja)}
.barras button[aria-pressed="true"]{box-shadow:inset 0 0 0 3px rgba(0,0,0,.28)}
.ficha .datos{display:flex;gap:14px;margin:12px 0 0;font-size:13px;color:var(--gris-texto)}
.ficha .datos b{display:block;font:700 18px/1.1 var(--golf-font);color:var(--verde-texto);font-variant-numeric:tabular-nums}
.ficha .acciones{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ficha .acc{display:flex;align-items:center;gap:8px;border:0;background:#EEF4EC;color:var(--verde-texto);border-radius:12px;padding:6px 10px 6px 6px;font:600 13px/1.15 var(--golf-font);cursor:pointer;text-decoration:none}
.ficha .acc i{width:34px;height:34px;flex:0 0 34px;background-image:url(../assets/iconos.webp);background-repeat:no-repeat}
.ficha .acc.jugar{background:var(--verde-texto);color:#fff}
.ficha .nota{margin:10px 0 0;font-size:11px;color:var(--gris-texto)}

/* panorámica */
.pano{position:fixed;inset:0;z-index:8;background:#0b2a17}
#pano-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
#pano-canvas:active{cursor:grabbing}
.pano-hot{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.pano-bar{position:absolute;z-index:2;top:var(--top);left:12px;right:12px;display:flex;align-items:center;gap:10px}
.pano-title{background:var(--panel);border-radius:14px;padding:6px 14px;box-shadow:var(--sombra);min-width:0}
.pano-title b{display:block;font-weight:700;font-size:16px;line-height:1.2}
.pano-title small{display:block;color:var(--gris-texto);font-size:12px;line-height:1.3}
.pano-bar .chip{margin-left:auto}
.pano-mini{position:absolute;z-index:2;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 70px);width:150px;height:150px;border-radius:50%;box-shadow:var(--sombra);border:4px solid #fff;background:var(--fondo)}
.pano-nav{position:absolute;z-index:2;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);display:flex;justify-content:center;gap:10px}

.loader{position:fixed;inset:0;z-index:20;display:grid;place-content:center;justify-items:center;gap:10px;background:var(--fondo);transition:opacity .4s}
.loader p{margin:0;font-weight:500}
.loader .bar{width:200px;height:6px;border-radius:9px;background:#fff;overflow:hidden}
.loader .bar i{display:block;height:100%;width:0;background:var(--map-rough);transition:width .2s}
.loader.fuera{opacity:0;pointer-events:none}

.attrib{position:fixed;z-index:4;left:0;right:0;bottom:env(safe-area-inset-bottom,0px);display:flex;justify-content:space-between;gap:12px;padding:6px 14px;font-size:10.5px;color:var(--verde-texto);pointer-events:none;flex-wrap:wrap}
.attrib .corto,.attrib .av-c{display:none}
.attrib span span{background:none;padding:0;border-radius:0}
.attrib span{background:rgba(255,255,255,.7);border-radius:99px;padding:1px 8px}

.toast{position:fixed;z-index:12;left:50%;top:calc(var(--top) + 64px);transform:translateX(-50%);background:var(--verde-texto);color:#fff;padding:9px 16px;border-radius:99px;font-weight:600;font-size:14px;box-shadow:var(--sombra);transition:opacity .3s}
.toast[hidden]{display:none}

@media (max-width:720px){
  .brand span{display:none}
  .brand{padding:4px}
  .modes button{padding:7px 11px;font-size:13px}
  .modes{margin-inline:0}
  .tools{margin-left:auto}
  .ficha{left:12px;right:12px;width:auto;top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 92px);max-height:46%;padding:16px 16px 14px 48px}
  .ficha .rail{left:16px}
  .ficha h2{font-size:28px}
  .ficha .nombre{font-size:19px}
  /* ficha compacta: que «Recorrer hoyo a hoyo» y «Jugar este hoyo» se vean sin desplazar la ficha */
  .ficha .nombre{margin:2px 0 0}
  .ficha .par{font-size:15px;margin-bottom:8px}
  .barras{grid-template-columns:repeat(4,1fr);gap:5px;padding:5px}
  .barras button{font-size:14px;padding:7px 2px}
  .ficha .datos{margin-top:8px;font-size:12px;line-height:1.35}
  .ficha .datos b{font-size:16px}
  .ficha .acciones{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
  .ficha .acc{padding:4px 8px 4px 4px;gap:6px;font-size:12px}
  .ficha .acc i{zoom:.82}
  .ficha .acc.jugar{justify-content:center;padding:8px}
  .ficha .nota{font-size:10px;line-height:1.35;margin-top:8px}
  .pano-mini{width:110px;height:110px;bottom:calc(env(safe-area-inset-bottom,0px) + 70px)}
  .attrib .largo{display:none}
  .attrib .corto{display:inline}
  .attrib .av-l{display:none}
  .attrib .av-c{display:inline}
  .attrib{flex-wrap:nowrap;gap:6px;padding:6px 8px;font-size:9.5px}
  .attrib span{white-space:nowrap}
}
/* kiosko vertical (1080×1920 táctil): barra superior, ficha y tira a tamaño de lectura, como los HUD de los modos */
@media (min-width:900px) and (min-height:1400px) and (max-aspect-ratio:4/5){
  .topbar,.ficha{zoom:1.3}
  .attrib{zoom:1.2;flex-wrap:nowrap}
  .hoyos{zoom:1.12}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* publicidad (js/publicidad.js): franja de patrocinadores en la carga, rótulo al entrar y patrocinio en la ficha */
.pub-franja{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 16px}
.pub-franja p{margin:0;font:600 10.5px/1 var(--golf-font);letter-spacing:.14em;text-transform:uppercase;color:var(--gris-texto)}
.pub-franja ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.pub-franja li{display:grid;place-items:center;height:50px;padding:0 12px;background:#fff;border-radius:10px;box-shadow:0 2px 8px rgba(8,94,43,.12)}
.pub-franja img{display:block;height:36px;width:auto}
.pub-franja img.pub-ancho{height:17px}
.pub-franja li.pub-li-anun{padding:0 7px}
.pub-anun{display:inline-block;font:700 12.5px/1.1 var(--golf-font);color:var(--verde-texto);border:2px dashed var(--verde-texto);border-radius:8px;padding:6px 9px;white-space:nowrap}
.pub-rotulo{position:fixed;z-index:7;left:50%;top:calc(var(--top) + 62px);transform:translate(-50%,-8px);display:flex;align-items:center;gap:12px;max-width:calc(100vw - 24px);background:var(--panel);border-radius:99px;box-shadow:var(--sombra);padding:6px 8px 6px 18px;pointer-events:none;opacity:0;transition:opacity .35s ease,transform .35s ease}
.pub-rotulo.on{opacity:1;transform:translate(-50%,0)}
.pub-rotulo[hidden]{display:none}
.pub-rotulo-t{font:600 12.5px/1.15 var(--golf-font);color:var(--verde-texto);white-space:nowrap}
.pub-rotulo-l{display:flex;align-items:center;gap:6px}
.pub-rotulo-l>span{display:grid;place-items:center;height:40px;padding:0 10px;background:#fff;border-radius:99px;box-shadow:inset 0 0 0 1.5px #E2ECDF}
.pub-rotulo img{display:block;height:30px;width:auto}
.pub-rotulo img.pub-ancho{height:14px}
.pub-rotulo .pub-li-anun{padding:0 4px;box-shadow:none;background:none}
.pub-rotulo .pub-anun{font-size:11.5px;padding:5px 9px;border-radius:99px}
.ficha .pub-ficha{display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:8px 10px 8px 12px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1.5px #E2ECDF;text-decoration:none;color:var(--gris-texto);font:500 12px/1.2 var(--golf-font)}
.ficha .pub-ficha img{display:block;height:30px;width:auto;margin-left:auto}
.ficha .pub-ficha img.pub-ancho{height:16px}
.ficha .pub-ficha .pub-anun{margin-left:auto;font-size:12px}
.ficha .pub-ficha:hover{box-shadow:inset 0 0 0 1.5px var(--map-halo)}
.pub-atrib{display:block;font:400 9.5px/1.25 var(--golf-font);color:var(--gris-texto);text-align:center}
.pub-atrib[hidden]{display:none}
.ficha .pub-atrib{margin-top:4px;text-align:right;font-size:10px}
/* Jugar: patrocinador del hoyo en la tarjeta (el cartel 3D de la salida es pequeño en móvil) */
.gm-card .pub-card{display:flex;align-items:center;gap:9px;margin-top:11px;padding-top:9px;border-top:1.5px solid #E3EEE1}
.pub-card-t{font:600 10px/1.2 var(--golf-font);text-transform:uppercase;letter-spacing:.08em;color:var(--gris-texto);white-space:nowrap}
.pub-card img{display:block;flex:0 0 auto;height:30px;width:auto;max-width:180px}
.pub-card img.pub-ancho{height:15px}
.pub-card-n{min-width:0;font:600 13px/1.15 var(--golf-font);color:var(--verde-texto);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.pub-card .pub-anun{font-size:11px;padding:3px 9px;border-width:1.5px;border-radius:99px}
body.pub-oculta .pub-franja,body.pub-oculta .pub-rotulo,body.pub-oculta .pub-ficha,body.pub-oculta .pub-card,body.pub-oculta .pub-atrib{display:none!important}
@media (max-width:720px){
  .pub-franja{gap:6px;bottom:calc(env(safe-area-inset-bottom,0px) + 18px)}
  .pub-franja ul{gap:5px;flex-wrap:nowrap}
  .pub-franja li{height:40px;padding:0 6px}
  .pub-franja li.pub-li-anun{padding:0 4px}
  .pub-franja img{height:26px}
  .pub-franja img.pub-ancho{height:12px}
  .pub-franja .pub-anun{font-size:10.5px;padding:4px 6px}
  .pub-rotulo{flex-direction:column;gap:5px;border-radius:16px;padding:8px 10px;top:calc(var(--top) + 56px)}
  .pub-rotulo-t{font-size:11.5px}
  .pub-rotulo-l>span{height:34px;padding:0 7px}
  .pub-rotulo img{height:25px}
  .pub-rotulo img.pub-ancho{height:11px}
  .pub-rotulo .pub-anun{font-size:10.5px;padding:4px 7px}
  .ficha .pub-ficha{margin-top:8px;padding:6px 8px 6px 10px;font-size:11px}
  .ficha .pub-ficha img{height:24px}
  .ficha .pub-ficha img.pub-ancho{height:13px}
  .gm-card .pub-card{margin-top:5px;padding-top:5px;gap:7px;border-top-width:1px}
  .pub-card-t{font-size:9px;letter-spacing:.05em}
  .pub-card img{height:22px}
  .pub-card img.pub-ancho{height:12px}
  .pub-card-n{font-size:11px;white-space:nowrap;display:block;text-overflow:ellipsis}
  .pub-card .pub-anun{font-size:10px;padding:2px 7px}
}
/* por debajo de 340 px los cuatro logotipos no caben en una línea: la franja pasa a dos */
@media (max-width:340px){.pub-franja ul{flex-wrap:wrap}}
@media (min-width:900px) and (min-height:1400px) and (max-aspect-ratio:4/5){
  .pub-rotulo{zoom:1.3}
  .pub-franja{zoom:1.4}
}
