/* taller.css — Taller de Bichos workshop page */

/* Sistema visual de la auditoría Bichos Club (oct-2026), compartido con la
   tienda: fondo blanco, texto carbón, una sola fuente sans y un verde de acento.
   Los nombres de variable vienen del tema oscuro anterior: --white es el color
   de los títulos y --lime el acento. */
:root {
  --bg:#FFFFFF; --bg2:#F5F4F0; --bg3:#E4E4DF;
  --green:#2F5D3A; --lime:#2F5D3A; --gold:#1E2427;
  --amber:#B3412F; --cream:#F5F4F0;
  --text:#1E2427; --muted:#6B6F70; --white:#1E2427;
  --danger:#B3412F; --warn:#9a6b00;
  --line:#E4E4DF;
  --font:'DM Sans', system-ui, sans-serif;
}
body { background: var(--bg); color: var(--text); font-family: var(--font); }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; justify-content:space-between; align-items:center;
  padding:1rem 3rem;
  background:rgba(255,255,255,0.94); backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(30,36,39,0.08);
  transition:top .25s ease;
}
#devBanner + nav{ top:2rem; }
.nav-logo {
  font-family:var(--font); font-size:0.7rem;
  letter-spacing:0.18em; color:var(--lime); text-transform:uppercase;
}
.nav-links {
  display:none;
  position:absolute;
  top:100%;
  left:0;
  right:0;
  flex-direction:column;
  gap:0;
  list-style:none;
  background:rgba(255,255,255,0.98);
  border-bottom:1px solid rgba(30,36,39,0.08);
  box-shadow:0 24px 60px rgba(0,0,0,.24);
  padding:.6rem 0 1rem;
}
.nav-links.open { display:flex; }
.nav-links a {
  font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--muted); transition:color .25s;
}
.nav-links li a {
  display:block;
  padding:.85rem 3rem;
  border-bottom:1px solid rgba(30,36,39,0.08);
}
.nav-links a:hover { color:var(--lime); }
.nav-links a[aria-current="true"]{ color:var(--lime); }
.nav-links a.nav-cta {
  color:var(--bg);
  background:var(--lime);
  padding:.5rem .85rem;
  border-radius:999px;
  font-weight:800;
}
.nav-links a.nav-cta:hover { color:var(--bg); background:var(--black, #1E2427); }
.hamburger { display:block; background:none; border:none; cursor:pointer; color:var(--lime); font-size:1.4rem; }
@media(max-width:768px){
  .nav-links li a{ padding:.75rem 1.5rem; }
  nav{ padding:1rem 1.5rem; }
}
@media(min-width:1100px){
  .hamburger{ display:none; }
  .nav-links{
    display:flex; position:static; flex-direction:row; align-items:center;
    gap:.15rem; padding:0; background:transparent; border:0; box-shadow:none;
  }
  .nav-links li a{
    padding:.55rem .65rem; border:0; border-radius:999px;
    font-size:.62rem;
  }
  .nav-links a[aria-current="true"]:not(.nav-cta){
    background:rgba(30,36,39,.1);
  }
}

/* ── HERO ── */
#hero {
  min-height:100vh; min-height:100svh;
  display:flex; flex-direction:column;
  justify-content:center; padding:8rem 3rem 5rem;
  position:relative; overflow:hidden;
}
.hero-glow {
  position:absolute; border-radius:50%; pointer-events:none;
  background:linear-gradient(135deg, rgba(30,36,39,0.08), transparent 62%);
  animation:pulse 7s ease-in-out infinite;
}
.hero-glow:nth-child(1){ width:700px;height:700px; right:-5%;top:-10%; }
.hero-glow:nth-child(2){ width:400px;height:400px; left:20%;bottom:0; background:linear-gradient(135deg,rgba(212,144,58,0.08),transparent 62%); animation-delay:3s; }
@keyframes pulse{ 0%,100%{transform:scale(1)} 50%{transform:scale(1.08)} }
.bug-float {
  position:absolute; pointer-events:none; user-select:none;
  animation:bugFloat linear infinite;
}
@keyframes bugFloat{
  0%{transform:translateY(0) rotate(0deg)}
  25%{transform:translateY(-16px) rotate(4deg)}
  75%{transform:translateY(10px) rotate(-3deg)}
  100%{transform:translateY(0) rotate(0deg)}
}
.hero-eyebrow {
  font-family:var(--font); font-size:.65rem;
  letter-spacing:.3em; color:var(--lime); text-transform:uppercase;
  display:flex; align-items:center; gap:.8rem; margin-bottom:1.5rem;
}
.hero-eyebrow::before{ content:''; width:36px; height:1px; background:var(--lime); }
h1.hero-title {
  font-family:var(--font); font-size:clamp(3rem,9vw,7.5rem);
  line-height:1.0; font-weight:700; color:var(--white); max-width:850px;
}
h1.hero-title em { color:var(--lime); font-style:normal; font-family:var(--font); }
.hero-sub {
  font-size:1rem; color:var(--muted); max-width:460px;
  margin:2rem 0 2.5rem; line-height:1.8; font-weight:400;
}
.hero-ctas{ display:flex; gap:1rem; flex-wrap:wrap; }
.btn {
  font-family:var(--font); font-size:.72rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; padding:.85rem 1.8rem;
  border-radius:2px; border:none; cursor:pointer; transition:all .25s;
  display:inline-block;
}
.btn-primary{ background:var(--lime); color:var(--bg); }
.btn-primary:hover{ background:var(--white); transform:translateY(-2px); }
.btn-outline{ background:transparent; color:var(--text); border:1px solid var(--muted); }
.btn-outline:hover{ border-color:var(--lime); color:var(--lime); transform:translateY(-2px); }
.btn-gold{ background:var(--gold); color:var(--bg); }
.btn-gold:hover{ background:var(--cream); transform:translateY(-2px); }
.hero-stats {
  display:flex; gap:3rem; margin-top:5rem; flex-wrap:wrap;
  padding-top:2rem; border-top:1px solid rgba(30,36,39,0.15);
}
.hstat-num{ font-family:var(--font); font-size:2rem; color:var(--gold); font-weight:700; }
.hstat-lbl{ font-family:var(--font); font-size:.6rem; letter-spacing:.12em; color:var(--muted); text-transform:uppercase; margin-top:.2rem; }

/* ── RUTAS RÁPIDAS ── */
.journey-nav{
  position:relative; z-index:3; max-width:1200px;
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1rem; margin:-2.2rem auto 2rem; padding:0 3rem;
}
.journey-link{
  text-decoration:none;
  min-width:0; padding:1.2rem 1.25rem;
  background:#fff;
  border:1px solid rgba(30,36,39,.16);
  border-radius:4px; box-shadow:none;
  transition:transform .25s ease,border-color .25s ease,background .25s ease;
}
.journey-link:hover{
  transform:translateY(-4px); border-color:rgba(30,36,39,.5);
  background:#303a27;
}
.journey-link small{
  display:block; margin-bottom:.45rem;
  color:var(--gold); font-family:var(--font);
  font-size:.55rem; letter-spacing:.14em; text-transform:uppercase;
}
.journey-link strong{
  display:block; color:var(--white); font-family:var(--font);
  font-size:1rem; line-height:1.25;
}
.journey-link span{
  display:block; margin-top:.35rem; color:var(--muted);
  font-size:.72rem; line-height:1.45;
}

/* ── SHARED SECTION STYLES ── */
section { position:relative; z-index:1; scroll-margin-top:6rem; }
.section-inner { max-width:1200px; margin:0 auto; padding:5.5rem 3rem; }
.section-tag {
  font-family:var(--font); font-size:.62rem; letter-spacing:.28em;
  color:var(--lime); text-transform:uppercase;
  display:flex; align-items:center; gap:.7rem; margin-bottom:1rem;
}
.section-tag::before{ content:''; width:28px; height:1px; background:var(--lime); }
h2.stitle {
  font-family:var(--font);
  font-size:clamp(1.8rem,4vw,3rem); font-weight:700;
  color:var(--white); line-height:1.15; margin-bottom:1.2rem;
}
h2.stitle em { color:var(--lime); font-style:normal; font-family:var(--font); }
.divider{ height:1px; background:linear-gradient(to right,transparent,rgba(30,36,39,0.15),transparent); margin:0 3rem; }
.skeleton {
  background:linear-gradient(90deg, var(--bg2) 25%, var(--green) 50%, var(--bg2) 75%);
  background-size:400% 100%;
  animation:shimmer 1.4s ease-in-out infinite;
  border-radius:4px;
}
@keyframes shimmer{ 0%{background-position:100% 0} 100%{background-position:-100% 0} }
.fade-in{ opacity:0; transform:translateY(24px); transition:opacity .6s ease,transform .6s ease; }
.fade-in.visible{ opacity:1; transform:translateY(0); }

/* ── PRODUCTOS ── */
#productos{ background:var(--bg2); }
.productos-grid {
  display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:1.5rem; margin-top:3rem;
}
.producto-card {
  background:var(--bg); border:1px solid rgba(30,36,39,0.12);
  border-radius:4px; display:flex; flex-direction:column;
  gap:0; transition:all .3s; position:relative; overflow:hidden;
}
.producto-card::after{
  content:''; position:absolute; bottom:0; left:0;
  height:2px; width:0; background:var(--gold); transition:width .35s;
}
.producto-card:hover::after{ width:100%; }
.producto-card:hover{ border-color:rgba(212,162,19,0.3); transform:translateY(-3px); }
.prod-img{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border-bottom:1px solid rgba(30,36,39,0.1); display:block;
}
.prod-img-placeholder{
  width:100%; aspect-ratio:4/3;
  background:linear-gradient(135deg,var(--green),var(--bg));
  display:flex; align-items:center; justify-content:center;
  font-size:3.5rem; border-bottom:1px solid rgba(30,36,39,0.1);
}
/* Carrusel */
.prod-carousel{ position:relative; overflow:hidden; aspect-ratio:4/3; border-bottom:1px solid rgba(30,36,39,0.1); }
.prod-carousel-track{ display:flex; height:100%; transition:transform .35s ease; }
.prod-carousel-track img{ min-width:100%; height:100%; object-fit:cover; display:block; }
.prod-carousel-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(11,18,8,0.7); border:1px solid rgba(30,36,39,0.3);
  color:var(--lime); width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:.75rem; transition:all .2s; z-index:2;
  line-height:1;
}
.prod-carousel-btn:hover{ background:var(--lime); color:var(--bg); }
.prod-carousel-btn.prev{ left:8px; }
.prod-carousel-btn.next{ right:8px; }
.prod-carousel-dots{ position:absolute; bottom:6px; left:50%; transform:translateX(-50%); display:flex; gap:5px; }
.prod-dot{ width:6px; height:6px; border-radius:50%; background:rgba(30,36,39,0.25); cursor:pointer; transition:background .2s; }
.prod-dot.active{ background:var(--lime); }
.prod-body{ padding:1.5rem; display:flex; flex-direction:column; gap:.8rem; flex:1; }
.prod-nombre{ font-family:var(--font); font-size:1.2rem; color:var(--white); font-weight:700; }
.prod-desc{ font-size:.85rem; color:var(--muted); line-height:1.7; font-weight:400; flex:1; }
.prod-precio{ font-family:var(--font); font-size:.8rem; color:var(--gold); }
.prod-links{ display:flex; flex-direction:column; gap:.5rem; margin-top:.5rem; }
.prod-link-btn{
  display:block; text-align:center; padding:.55rem 1rem;
  font-family:var(--font); font-size:.62rem; letter-spacing:.08em;
  text-transform:uppercase; border-radius:2px; transition:all .25s;
  border:1px solid rgba(212,162,19,0.4); color:var(--gold);
  background:transparent;
}
.prod-link-btn:hover{ background:var(--gold); color:var(--bg); }
.prod-skel{ height:320px; }
/* Qty + WhatsApp */
.prod-qty-row{
  display:flex; align-items:center; gap:.6rem; margin-top:.5rem;
}
.prod-qty-btn{
  width:30px; height:30px; border-radius:50%;
  background:rgba(30,36,39,0.15); border:1px solid rgba(30,36,39,0.3);
  color:var(--lime); font-size:1rem; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all .2s; line-height:1;
}
.prod-qty-btn:hover{ background:var(--lime); color:var(--bg); }
.prod-qty-val{
  font-family:var(--font); font-size:.9rem;
  color:var(--white); min-width:24px; text-align:center;
}
.prod-wa-btn{
  display:flex; align-items:center; justify-content:center; gap:.5rem;
  width:100%; padding:.65rem 1rem; margin-top:.6rem;
  font-family:var(--font); font-size:.62rem; letter-spacing:.08em;
  text-transform:uppercase; border-radius:2px; transition:all .25s;
  border:1px solid #25d366; color:#25d366;
  background:transparent; cursor:pointer; text-decoration:none;
  box-sizing:border-box;
}
.prod-wa-btn:hover{ background:#25d366; color:var(--bg); }
.prod-badge-soon{
  display:flex; align-items:center; justify-content:center;
  padding:.55rem 1rem; margin-top:auto;
  font-family:var(--font); font-size:.85rem;
  color:var(--muted); font-style:normal;
  border:1px dashed rgba(30,36,39,0.2); border-radius:2px;
}

/* ── CONTENIDO ── */
#contenido{}
.contenido-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:1.5rem; margin-top:3rem;
}
.contenido-card{
  background:var(--bg2); border:1px solid rgba(30,36,39,0.5);
  border-radius:4px; overflow:hidden; transition:all .3s;
}
.contenido-card:hover{ border-color:rgba(30,36,39,0.3); transform:translateY(-3px); }
.contenido-card .cc-header{
  display:flex; align-items:center; gap:1rem;
  padding:1.5rem; border-bottom:1px solid rgba(30,36,39,0.5);
}
.cc-icon{ font-size:2rem; }
.cc-plataforma{ font-family:var(--font); font-size:.65rem; letter-spacing:.15em; color:var(--lime); text-transform:uppercase; }
.cc-handle{ font-size:.85rem; color:var(--muted); font-weight:400; margin-top:.2rem; }
.cc-body{ padding:1.5rem; }
.cc-body p{ font-size:.88rem; color:var(--muted); line-height:1.7; font-weight:400; }
.cc-embed{ width:100%; height:152px; border:none; }
.cc-footer{ padding:1rem 1.5rem; border-top:1px solid rgba(30,36,39,0.4); }

/* PRENSA */
#prensa{ background:linear-gradient(135deg,var(--bg),var(--bg2)); }
.press-card{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,420px);
  gap:2rem; align-items:center; margin-top:3rem;
  background:#fff; border:1px solid var(--line);
  border-radius:12px; padding:2rem; overflow:hidden;
  box-shadow:none;
}
.press-kicker{
  font-family:var(--font); font-size:.62rem; letter-spacing:.18em;
  color:var(--gold); text-transform:uppercase; margin-bottom:1rem;
}
.press-title{
  font-family:var(--font); color:var(--white);
  font-size:clamp(1.8rem,3vw,2.7rem); line-height:1.08; margin-bottom:1.2rem;
}
.press-copy{ color:var(--muted); line-height:1.8; max-width:560px; margin-bottom:1.5rem; }
.press-actions{ display:flex; gap:.8rem; flex-wrap:wrap; }
.press-preview{
  display:block; border-radius:10px; overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  transform:rotate(1deg); transition:transform .25s ease, border-color .25s ease;
  background:var(--cream);
}
.press-preview:hover{ transform:rotate(0deg) translateY(-3px); border-color:rgba(30,36,39,.45); }
.press-preview img{ width:100%; height:auto; display:block; }
@media(max-width:900px){
  .press-card{ grid-template-columns:1fr; padding:1.4rem; }
  .press-preview{ transform:none; }
}

/* ── MAPA ── */
#mapa{ background:var(--bg2); }
.mapa-layout{
  display:grid; grid-template-columns:1fr 340px; gap:2rem; margin-top:3rem; align-items:start;
}
#chile-map{
  height:620px; border-radius:4px; border:1px solid rgba(30,36,39,0.15);
  overflow:hidden;
}
.eventos-list{ display:flex; flex-direction:column; gap:1rem; max-height:620px; overflow-y:auto; padding-right:.5rem; }
.eventos-list::-webkit-scrollbar{ width:4px; }
.eventos-list::-webkit-scrollbar-track{ background:var(--bg); }
.eventos-list::-webkit-scrollbar-thumb{ background:var(--green); border-radius:2px; }
.evento-item{
  background:var(--bg); border:1px solid rgba(30,36,39,0.1);
  padding:1.2rem; border-radius:4px; cursor:pointer;
  transition:all .25s; display:flex; gap:1rem; align-items:flex-start;
}
.evento-item:hover{ border-color:rgba(30,36,39,0.35); transform:translateX(3px); }
.evento-insecto{ font-size:2rem; flex-shrink:0; }
.evento-info{ flex:1; min-width:0; }
.evento-ciudad{ font-family:var(--font); font-size:1rem; color:var(--white); font-weight:700; }
.evento-fecha{ font-family:var(--font); font-size:.62rem; color:var(--lime); letter-spacing:.1em; margin:.3rem 0; }
.evento-desc{ font-size:.8rem; color:var(--muted); line-height:1.5; font-weight:400; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.evento-tipo-badge{
  font-family:var(--font); font-size:.55rem; letter-spacing:.1em;
  text-transform:uppercase; padding:.2rem .5rem; border-radius:2px;
  background:rgba(30,36,39,0.12); color:var(--lime); display:inline-block; margin-top:.4rem;
}
/* Leaflet custom pin */
.insect-pin{
  width:38px; height:38px; border-radius:50%;
  background:#fff; border:2px solid var(--lime);
  display:flex; align-items:center; justify-content:center;
  font-size:20px; box-shadow:0 2px 12px rgba(0,0,0,0.5);
  cursor:pointer; transition:transform .2s;
}
.insect-pin:hover{ transform:scale(1.15); }
.leaflet-popup-content-wrapper{
  background:var(--bg2) !important; border:1px solid rgba(30,36,39,0.25) !important;
  border-radius:4px !important; color:var(--text) !important;
}
.leaflet-popup-tip{ background:var(--bg2) !important; }
.popup-ciudad{ font-family:var(--font); font-size:1.1rem; color:var(--white); font-weight:700; margin-bottom:.3rem; }
.popup-fecha{ font-family:var(--font); font-size:.65rem; color:var(--lime); letter-spacing:.1em; margin-bottom:.5rem; }
.popup-desc{ font-size:.82rem; color:var(--muted); line-height:1.6; }
@media(max-width:900px){
  .mapa-layout{ grid-template-columns:1fr; }
  #chile-map{ height:400px; }
  .eventos-list{ max-height:300px; }
}

/* ── GALERÍA ── */
.galeria-grid {
  column-count: 3;
  column-gap: 1rem;
  margin-top: 3rem;
}
@media (max-width: 900px) { .galeria-grid { column-count: 2; } }
@media (max-width: 500px) { .galeria-grid { column-count: 1; } }

.gal-item {
  break-inside: avoid;
  margin-bottom: 1rem;
  position: relative;
  cursor: pointer;
  border-radius: 4px;
  overflow: hidden;
  background: var(--green);
  transition: transform .25s ease;
}
.gal-item:hover { transform: translateY(-3px); }
.gal-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: filter .3s ease;
}
.gal-item:hover img { filter: brightness(.55); }

.gal-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(11,18,8,.9) 0%, rgba(11,18,8,0) 50%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.2rem;
  opacity: 0;
  transition: opacity .25s ease;
  pointer-events: none;
}
.gal-item:hover .gal-overlay { opacity: 1; }

.gal-titulo {
  font-family:var(--font);
  font-weight: 600;
  font-size: 1.1rem;
  color: #fff;
  margin-bottom: .2rem;
}
.gal-meta {
  font-family:var(--font);
  font-size: .75rem;
  color: rgba(255,255,255,.85);
  display: flex;
  align-items: center;
  gap: .4rem;
}
.gal-badge {
  display: inline-block;
  font-size: .7rem;
  background: rgba(30,36,39,.25);
  color: var(--lime);
  padding: .15rem .5rem;
  border-radius: 999px;
  margin-left: auto;
}

.gal-skeleton {
  break-inside: avoid;
  margin-bottom: 1rem;
  height: 240px;
  background: linear-gradient(90deg, rgba(30,36,39,.05) 0%, rgba(30,36,39,.12) 50%, rgba(30,36,39,.05) 100%);
  background-size: 200% 100%;
  animation: shimmer 1.4s infinite;
  border-radius: 4px;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Lightbox */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.92);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9998;
  padding: 4rem 5rem;
}
.lightbox.hidden { display: none; }
.lb-content {
  max-width: 90vw;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.lb-img {
  max-width: 100%;
  max-height: 75vh;
  width: auto;
  height: auto;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(0,0,0,.5);
}
.lb-caption {
  font-family:var(--font);
  font-size: .85rem;
  color: rgba(255,255,255,.85);
  text-align: center;
  max-width: 600px;
}
.lb-close, .lb-nav {
  position: absolute;
  background: rgba(255,255,255,.08);
  color: white;
  border: 1px solid rgba(255,255,255,.15);
  cursor: pointer;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  font-size: 1.6rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
}
.lb-close:hover, .lb-nav:hover { background: rgba(30,36,39,.3); }
.lb-close { top: 1.5rem; right: 1.5rem; }
.lb-nav { top: 50%; transform: translateY(-50%); }
.lb-prev { left: 1.5rem; }
.lb-next { right: 1.5rem; }
@media (max-width: 700px) {
  .lightbox { padding: 2rem 1rem; }
  .lb-close { top: 1rem; right: 1rem; width: 40px; height: 40px; }
  .lb-nav { width: 40px; height: 40px; }
  .lb-prev { left: .5rem; }
  .lb-next { right: .5rem; }
}

/* ── TALLERES ── */
#talleres{}
.talleres-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:1.5rem; margin-top:3rem;
}
.taller-card{
  background:var(--bg2); border:1px solid rgba(30,36,39,0.12);
  border-radius:4px; overflow:hidden; transition:all .3s; display:flex; flex-direction:column;
}
.taller-card:hover{ border-color:rgba(30,36,39,0.3); transform:translateY(-3px); }
.tc-header{ padding:1.8rem 1.8rem 1.2rem; }
.tc-nombre{ font-family:var(--font); font-size:1.2rem; color:var(--white); font-weight:700; margin-bottom:.4rem; }
.tc-meta{ display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1rem; }
.tc-badge{
  font-family:var(--font); font-size:.6rem; letter-spacing:.1em;
  text-transform:uppercase; padding:.25rem .6rem; border-radius:2px; border:1px solid;
}
.tc-badge.fecha{ border-color:rgba(212,162,19,0.4); color:var(--gold); }
.tc-badge.ciudad{ border-color:rgba(30,36,39,0.3); color:var(--lime); }
.tc-badge.precio{ border-color:rgba(224,123,16,0.4); color:var(--amber); }
.tc-desc{ font-size:.85rem; color:var(--muted); line-height:1.7; font-weight:400; }
.tc-cupos{ padding:1.2rem 1.8rem; border-top:1px solid rgba(30,36,39,0.08); }
.cupos-bar-bg{ height:6px; background:rgba(30,36,39,0.12); border-radius:3px; overflow:hidden; margin:.6rem 0; }
.cupos-bar-fill{ height:100%; border-radius:3px; transition:width .5s ease; }
.cupos-label{ font-family:var(--font); font-size:.62rem; letter-spacing:.1em; color:var(--muted); text-transform:uppercase; display:flex; justify-content:space-between; }
.cupos-num{ color:var(--lime); }
.tc-footer{ padding:1.2rem 1.8rem; margin-top:auto; }
.btn-inscribir{ width:100%; text-align:center; }
.badge-agotado{
  display:block; text-align:center; padding:.7rem;
  font-family:var(--font); font-size:.65rem; letter-spacing:.15em;
  text-transform:uppercase; color:var(--danger);
  border:1px solid rgba(192,57,43,0.3); border-radius:2px;
}
.taller-skel{ height:280px; }

/* ── MODAL ── */
.modal-overlay{
  position:fixed; inset:0; z-index:500;
  background:rgba(5,10,4,0.85); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; padding:1.5rem;
}
.modal-overlay.hidden{ display:none; }
.hidden{ display:none !important; }
.modal-box{
  background:var(--bg2); border:1px solid rgba(30,36,39,0.2);
  border-radius:6px; padding:2.5rem; width:100%; max-width:540px;
  position:relative; max-height:90vh; overflow-y:auto;
}
.modal-close{
  position:absolute; top:1rem; right:1.2rem;
  background:none; border:none; color:var(--muted); font-size:1.4rem;
  cursor:pointer; line-height:1; transition:color .2s;
}
.modal-close:hover{ color:var(--white); }
.modal-taller-info{
  background:var(--bg); border:1px solid rgba(30,36,39,0.1);
  border-radius:4px; padding:1rem; margin-bottom:1.5rem;
}
.mti-nombre{ font-family:var(--font); font-size:1.1rem; color:var(--white); font-weight:700; }
.mti-meta{ font-family:var(--font); font-size:.62rem; color:var(--lime); letter-spacing:.1em; margin-top:.4rem; }
.form-group{ margin-bottom:1.2rem; }
.form-group label{ display:block; font-family:var(--font); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:.5rem; }
.form-group input{
  width:100%; background:var(--bg); border:1px solid rgba(30,36,39,0.2);
  border-radius:2px; padding:.75rem 1rem; color:var(--white); font-family:var(--font); font-size:.9rem;
  transition:border-color .2s; outline:none;
}
.form-group input:focus{ border-color:var(--lime); }
.form-group input::placeholder{ color:var(--muted); }
.form-group.required label::after{ content:' *'; color:var(--lime); }
.reserva-reglas{
  margin:-.4rem 0 1rem; font-size:.72rem; line-height:1.6; color:var(--muted);
}
.reserva-resumen{
  margin:0 0 1.2rem; padding:.75rem 1rem; border-radius:4px;
  background:var(--bg); border:1px solid rgba(30,36,39,0.2);
  font-family:var(--font); font-size:.68rem; line-height:1.6;
  color:var(--lime); letter-spacing:.04em;
}
.reserva-resumen.is-error{ border-color:rgba(224,80,80,0.5); color:#f0a0a0; }
.reserva-resumen.hidden{ display:none; }
.turnstile-wrap{
  min-height:72px; margin:0 0 1rem; padding:.65rem; display:flex;
  flex-direction:column; align-items:center; justify-content:center; gap:.45rem;
  background:var(--bg); border:1px solid rgba(30,36,39,.18); border-radius:6px;
}
.turnstile-status{
  margin:0; color:var(--muted); font:600 .66rem/1.45 var(--font);
  text-align:center;
}
.turnstile-status.is-error{ color:#f0a0a0; }
.modal-success{ text-align:center; padding:2rem 0; }
.modal-success .big-bug{ font-size:4rem; margin-bottom:1rem; display:block; }
.modal-success h3{ font-family:var(--font); color:var(--white); font-size:1.4rem; margin-bottom:.5rem; }
.modal-success p{ color:var(--muted); font-size:.9rem; line-height:1.7; }
.reservation-summary{
  margin-top:1.25rem; padding:1.15rem; text-align:left;
  background:var(--bg); border:1px solid rgba(30,36,39,.24); border-radius:8px;
}
.reservation-summary h4{
  margin:0 0 .85rem; font-family:var(--font); font-size:.68rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--lime);
}
.reservation-summary dl{ display:grid; grid-template-columns:1fr 1fr; gap:.75rem 1rem; margin:0; }
.reservation-summary div{ min-width:0; }
.reservation-summary .summary-wide{ grid-column:1 / -1; }
.reservation-summary dt{
  margin:0 0 .18rem; font-family:var(--font); font-size:.58rem;
  letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
}
.reservation-summary dd{ margin:0; color:var(--white); font-size:.9rem; font-weight:700; overflow-wrap:anywhere; }
.reservation-policy{
  margin-top:1rem; padding:1rem; text-align:left; border-radius:8px;
  background:rgba(224,80,80,.09); border:1px solid rgba(224,80,80,.28);
  color:#f0c6c6; font-size:.8rem; line-height:1.6;
}
.reservation-policy strong{ color:var(--white); }
.whatsapp-link{
  display:flex; justify-content:center; align-items:center; gap:.55rem;
  width:100%; margin-top:1rem; padding:.85rem 1rem; border-radius:4px;
  background:#25d366; color:#102b18; font-family:var(--font);
  font-size:.72rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
  transition:transform .2s, filter .2s;
}
.whatsapp-link:hover{ transform:translateY(-1px); filter:brightness(1.06); }
.photo-reminder{
  margin-top:1rem; padding:1rem;
  background:rgba(212,162,19,0.1);
  border:1px solid rgba(212,162,19,0.3);
  border-radius:8px; color:var(--gold);
}
.capture-animation{
  position:relative; max-height:225px; margin:0 auto .5rem;
  overflow:hidden; opacity:1;
  transition:max-height .45s ease, opacity .35s ease, margin .45s ease;
}
.capture-animation.is-complete{
  max-height:0; opacity:0; margin-bottom:0;
}
.capture-stage{
  position:relative; width:190px; height:215px; margin:0 auto;
  opacity:0; transform:translateY(55px) scale(.92);
}
.capture-animation.is-playing .capture-stage{
  animation:capture-phone-sequence 4.2s cubic-bezier(.22,.8,.22,1) both;
}
.capture-hand{
  position:absolute; left:38px; bottom:-18px; width:112px; height:142px;
  border-radius:52px 52px 28px 28px;
  background:linear-gradient(145deg,#d99a69 0%,#bd764d 75%);
  transform:rotate(-8deg);
  box-shadow:inset -8px -10px 0 rgba(92,48,28,.12);
}
.capture-hand::before{
  content:""; position:absolute; left:-22px; top:20px;
  width:48px; height:84px; border-radius:30px;
  background:linear-gradient(145deg,#e0a173,#c17a50);
  transform:rotate(-22deg);
  box-shadow:inset -5px -7px 0 rgba(92,48,28,.1);
}
.capture-hand::after{
  content:""; position:absolute; right:-18px; top:8px;
  width:40px; height:78px; border-radius:24px;
  background:linear-gradient(145deg,#d99a69,#b96f47);
  transform:rotate(16deg);
}
.capture-phone{
  position:absolute; left:50%; top:12px; z-index:2;
  width:94px; height:164px; padding:7px;
  transform:translateX(-50%) rotate(3deg);
  border-radius:19px; background:#11160f;
  border:2px solid #65705d;
  box-shadow:0 14px 28px rgba(0,0,0,.38);
}
.capture-phone::before{
  content:""; position:absolute; top:5px; left:50%; z-index:4;
  width:30px; height:5px; transform:translateX(-50%);
  border-radius:0 0 7px 7px; background:#080b07;
}
.capture-screen{
  position:relative; height:100%; overflow:hidden;
  border-radius:13px; background:linear-gradient(180deg,#e8efdb,#c7dca5);
  display:flex; align-items:center; justify-content:center;
}
.capture-ticket{
  position:relative; width:66px; padding:12px 6px 9px;
  border-radius:6px; background:#fffaf0; color:#314328;
  font-family:var(--font); text-align:center;
  box-shadow:0 6px 14px rgba(49,67,40,.2);
}
.capture-ticket::before,
.capture-ticket::after{
  content:""; position:absolute; top:48px;
  width:9px; height:9px; border-radius:50%; background:#c7dca5;
}
.capture-ticket::before{ left:-5px; }
.capture-ticket::after{ right:-5px; }
.capture-ticket-bug{ display:block; font-size:22px; line-height:1; }
.capture-ticket-title{
  display:block; margin-top:7px; padding-bottom:7px;
  border-bottom:1px dashed #94a47d;
  font-size:7px; line-height:1.35; letter-spacing:.08em;
  text-transform:uppercase; font-weight:700;
}
.capture-ticket-code{
  display:block; margin-top:7px; font-size:6px; letter-spacing:.12em;
}
.capture-flash{
  position:absolute; left:50%; top:58px; z-index:5;
  width:150px; height:150px; transform:translate(-50%,-50%) scale(.15);
  border-radius:50%; opacity:0; pointer-events:none;
  background:radial-gradient(circle,#fff 0 8%,#fff7bd 18%,rgba(255,247,189,.15) 48%,transparent 70%);
  box-shadow:0 0 28px #fff7bd;
}
.capture-animation.is-playing .capture-flash{
  animation:capture-flash .55s ease-out 1.65s both;
}
@keyframes capture-phone-sequence{
  0%{ opacity:0; transform:translateY(55px) scale(.92) rotate(-3deg); }
  16%{ opacity:1; transform:translateY(0) scale(1) rotate(0); }
  70%{ opacity:1; transform:translateY(0) scale(1) rotate(0); }
  100%{ opacity:0; transform:translateY(80px) scale(.96) rotate(4deg); }
}
@keyframes capture-flash{
  0%{ opacity:0; transform:translate(-50%,-50%) scale(.15); }
  32%{ opacity:1; transform:translate(-50%,-50%) scale(1); }
  100%{ opacity:0; transform:translate(-50%,-50%) scale(1.35); }
}
@media(prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .capture-animation,
  .capture-stage,
  .capture-flash{ animation:none !important; transition:none !important; }
  .capture-animation .capture-stage{
    opacity:1; transform:none;
  }
  .capture-animation .capture-flash{ display:none; }
}
@media(max-width:430px){
  .reservation-summary dl{ grid-template-columns:1fr; }
  .reservation-summary .summary-wide{ grid-column:auto; }
}

/* ── FOOTER ── */
footer{ border-top:1px solid rgba(30,36,39,0.1); padding:3rem; text-align:center; }
.footer-logo{ font-family:var(--font); font-size:1.5rem; font-style:normal; font-weight:700; color:var(--lime); margin-bottom:.6rem; }
footer p{ font-size:.75rem; color:var(--muted); line-height:1.8; }
.footer-links{ display:flex; justify-content:center; gap:2rem; margin:.8rem 0; }
.footer-links a{ font-family:var(--font); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); transition:color .2s; }
.footer-links a:hover{ color:var(--lime); }

@media(max-width:600px){
  .section-inner{ padding:4.25rem 1.5rem; }
  #hero{ padding:7rem 1.5rem 4rem; }
  nav{ padding:1rem 1.5rem; }
  .hero-stats{ gap:1.5rem; }
  .talleres-grid,.productos-grid,.contenido-grid{ grid-template-columns:1fr; }
  .bug-float{ display:none; }
  .journey-nav{
    display:flex; overflow-x:auto; scroll-snap-type:x mandatory;
    margin:-1.5rem 0 1rem; padding:0 1.5rem 1rem;
    scrollbar-width:none;
  }
  .journey-nav::-webkit-scrollbar{ display:none; }
  .journey-link{ flex:0 0 78%; scroll-snap-align:start; }
}

/* ── CUÁNDO ESTARÉ (timeline vertical) ── */
.timeline{ position:relative; padding-left:1.5rem; max-height:620px; overflow-y:auto; padding-right:.5rem; }
.timeline::-webkit-scrollbar{ width:4px; }
.timeline::-webkit-scrollbar-thumb{ background:var(--green); border-radius:2px; }
.timeline::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:linear-gradient(to bottom, var(--lime) 0%, rgba(30,36,39,.08) 100%); }
.tl-item{ position:relative; padding:0 0 1.8rem 2rem; cursor:pointer; transition:transform .2s; }
.tl-item:hover{ transform:translateX(4px); }
.tl-item:last-child{ padding-bottom:0; }
.tl-dot{ position:absolute; left:-.5rem; top:.3rem; width:1rem; height:1rem; border-radius:50%; border:2px solid var(--bg); transition:transform .2s; }
.tl-item:hover .tl-dot{ transform:scale(1.3); }
.tl-dot.proximo{ background:var(--gold); box-shadow:0 0 10px rgba(212,162,19,.6); }
.tl-dot.pasado{ background:var(--muted); }
.tl-date{ font-family:var(--font); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:.3rem; }
.tl-date.proximo{ color:var(--gold); }
.tl-date.pasado{ color:var(--muted); }
.tl-nombre{ font-family:var(--font); font-size:1rem; font-weight:700; margin-bottom:.2rem; color:var(--white); }
.tl-lugar{ font-size:.78rem; color:var(--muted); margin-bottom:.3rem; }
.tl-desc{ font-size:.78rem; color:rgba(30,36,39,.6); line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tl-badge{ display:inline-block; font-size:.55rem; letter-spacing:.1em; text-transform:uppercase; padding:.2rem .5rem; border-radius:2px; margin-top:.3rem; font-weight:700; }
.tl-badge.taller{ background:rgba(30,36,39,.12); color:var(--lime); }
.tl-badge.visita{ background:rgba(212,162,19,.12); color:var(--gold); }
.tl-badge.festival{ background:rgba(100,160,200,.12); color:#8bc4e0; }

/* ── CONOCIENDO Y PROTEGIENDO POR EL MUNDO ── */
#mundo{ background:var(--bg2); }
.mundo-layout{ display:grid; grid-template-columns:1fr 300px; gap:2.5rem; align-items:start; margin-top:3rem; }
#globe-wrap{ position:relative; width:100%; aspect-ratio:1; max-width:500px; margin:0 auto; cursor:grab; }
#globe-wrap:active{ cursor:grabbing; }
#globe-canvas{ display:block; width:100%; height:100%; }
#pins-layer{ position:absolute; inset:0; pointer-events:none; }
.globe-pin{ position:absolute; transform:translate(-50%,-100%); pointer-events:auto; cursor:pointer; transition:opacity .15s; z-index:5; }
.globe-pin:hover .pin-bubble{ transform:scale(1.15); }
.globe-pin.hidden{ opacity:0; pointer-events:none; }
.pin-inner{ display:flex; flex-direction:column; align-items:center; filter:drop-shadow(0 2px 8px rgba(0,0,0,.8)); }
.pin-bubble{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:2px solid rgba(11,18,8,.9); transition:transform .15s; overflow:hidden; }
.pin-bubble img{ width:100%; height:100%; object-fit:cover; border-radius:50%; }
.pin-bubble.visitado{ background:var(--lime); box-shadow:0 0 10px rgba(30,36,39,.6); }
.pin-bubble.proximo{ background:var(--gold); box-shadow:0 0 10px rgba(212,162,19,.6); animation:pulse-gold 2s ease-in-out infinite; }
.pin-bubble.origen{ background:rgba(30,36,39,.25); border-color:rgba(30,36,39,.6); }
.pin-tail{ width:2px; height:8px; margin:0 auto; }
.pin-tail.visitado{ background:var(--lime); }
.pin-tail.proximo{ background:var(--gold); }
.pin-tail.origen{ background:rgba(30,36,39,.5); }
@keyframes pulse-gold{ 0%,100%{ box-shadow:0 0 10px rgba(212,162,19,.6); } 50%{ box-shadow:0 0 22px rgba(212,162,19,1); } }
#pais-tooltip{ position:absolute; top:1rem; left:1rem; background:rgba(255,255,255,.97); border:1px solid var(--line); border-radius:4px; padding:.9rem 1.1rem; pointer-events:none; opacity:0; transition:opacity .2s; min-width:190px; z-index:20; backdrop-filter:blur(8px); }
#pais-tooltip.visible{ opacity:1; }
.tt-top{ display:flex; align-items:center; gap:.6rem; margin-bottom:.4rem; }
.tt-flag-img{ width:32px; height:22px; border-radius:2px; object-fit:cover; flex-shrink:0; }
.tt-pnombre{ font-family:var(--font); font-size:1rem; font-weight:600; }
.tt-pestado{ font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; margin-top:.1rem; }
.tt-pestado.visitado{ color:var(--lime); }
.tt-pestado.proximo{ color:var(--gold); }
.tt-bicho{ font-size:1.5rem; margin:.3rem 0 .2rem; }
.tt-desc{ font-size:.78rem; color:var(--muted); line-height:1.4; }
.tt-photos{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; margin-top:.65rem; }
.tt-photos:empty{ display:none; }
.tt-photos img{ width:100%; aspect-ratio:1.2; object-fit:cover; border-radius:4px; border:1px solid rgba(30,36,39,.22); background:rgba(30,36,39,.05); }
.paises-panel{ display:flex; flex-direction:column; gap:.45rem; }
.pais-card{ background:var(--bg); border:1px solid rgba(30,36,39,.1); border-radius:4px; padding:.65rem .9rem; cursor:pointer; transition:all .2s; display:flex; gap:.65rem; align-items:center; }
.pais-card:hover,.pais-card.active{ border-color:var(--lime); background:rgba(30,36,39,.07); transform:translateX(-4px); }
.pais-flag{ width:28px; height:20px; border-radius:2px; object-fit:cover; flex-shrink:0; }
.pais-pnombre{ font-family:var(--font); font-size:.88rem; font-weight:600; }
.pais-pestado{ font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; margin-top:.1rem; }
.pais-pestado.visitado{ color:var(--lime); }
.pais-pestado.proximo{ color:var(--gold); }
.pais-bicho{ font-size:1.1rem; flex-shrink:0; }
.mundo-leyenda{ display:flex; gap:1.2rem; justify-content:center; margin-top:.8rem; font-size:.75rem; color:var(--muted); }
@media(max-width:960px){ .mundo-layout{ grid-template-columns:1fr; } .paises-panel{ flex-direction:row; flex-wrap:wrap; } .pais-card{ flex:0 0 calc(50% - .25rem); } }
@media(max-width:480px){ .pais-card{ flex:0 0 100%; } }

/* Colegios */
#colegios{ background:linear-gradient(180deg, rgba(30,36,39,.08), rgba(11,18,8,0)); }
.school-layout{ display:grid; grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr); gap:2.5rem; align-items:start; margin-top:2.8rem; }
.school-copy{ display:grid; gap:1rem; }
.school-lead{ color:var(--muted); max-width:560px; line-height:1.75; font-weight:400; }
.school-points{ display:grid; gap:.75rem; margin-top:.75rem; }
.school-point{ background:rgba(30,36,39,.035); border:1px solid rgba(30,36,39,.12); border-radius:6px; padding:1rem; }
.school-point small{ display:block; color:var(--gold); font-family:var(--font); letter-spacing:.14em; text-transform:uppercase; font-size:.58rem; margin-bottom:.35rem; }
.school-point strong{ display:block; font-family:var(--font); color:var(--white); margin-bottom:.2rem; }
.school-point p{ color:rgba(30,36,39,.68); font-size:.86rem; line-height:1.45; }
.school-form{ background:#fff; border:1px solid var(--line); border-radius:4px; padding:1.25rem; }
.school-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
.school-field{ display:grid; gap:.35rem; }
.school-field.full{ grid-column:1/-1; }
.school-field label{ color:var(--muted); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; font-weight:800; }
.school-field input,.school-field select,.school-field textarea{ width:100%; border:1px solid rgba(30,36,39,.18); background:rgba(30,36,39,.05); color:var(--text); border-radius:4px; padding:.82rem .9rem; font:600 .9rem var(--font); outline:none; }
.school-field textarea{ min-height:110px; resize:vertical; }
.school-field input:focus,.school-field select:focus,.school-field textarea:focus{ border-color:var(--lime); box-shadow:0 0 0 3px rgba(30,36,39,.12); }
.school-packs{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; }
.school-pack{ border:1px solid rgba(30,36,39,.18); background:rgba(30,36,39,.04); border-radius:6px; padding:.8rem; cursor:pointer; transition:all .2s; }
.school-pack.active,.school-pack:hover{ border-color:var(--lime); background:rgba(30,36,39,.11); transform:translateY(-2px); }
.school-pack strong{ display:block; color:var(--white); font-family:var(--font); font-size:.9rem; }
.school-pack small{ color:var(--muted); font-size:.72rem; line-height:1.3; }
.school-submit{ width:100%; margin-top:1rem; border:0; border-radius:999px; padding:.95rem 1.2rem; background:var(--lime); color:var(--bg); font:700 .78rem var(--font); letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.school-submit:hover{ background:var(--black, #1E2427); }
@media(max-width:920px){ .school-layout{ grid-template-columns:1fr; } }
@media(max-width:560px){ .school-form-grid,.school-packs{ grid-template-columns:1fr; } }

/* ── GLOBO FLOTANTE → BICHOS CLUB ── */
.bichos-float {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 200;
  display: flex;
  align-items: flex-end;
  gap: .6rem;
  cursor: pointer;
  text-decoration: none;
}
.bichos-bubble {
  position: relative;
  background: #fff;
  border: 2px solid var(--text);
  border-radius: 18px 18px 4px 18px;
  padding: .8rem 1.1rem;
  max-width: 170px;
  box-shadow: none;
  transition: transform .2s, box-shadow .2s;
}
.bichos-float:hover .bichos-bubble {
  transform: translate(2px, -2px);
  box-shadow: none;
}
.bichos-bubble-text {
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text);
  letter-spacing: .01em;
}
.bichos-bubble-text em {
  color: var(--lime);
  font-style: normal;
}
.bichos-bubble::after {
  content: '';
  position: absolute;
  right: -11px; bottom: 18px;
  border: 11px solid transparent;
  border-left-color: var(--text);
  border-right: none;
}
.bichos-bubble::before {
  content: '';
  position: absolute;
  right: -8px; bottom: 20px;
  border: 9px solid transparent;
  border-left-color: #fff;
  border-right: none;
  z-index: 1;
}
.bichos-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  overflow: hidden;
  border: 2.5px solid var(--text);
  box-shadow: none;
  flex-shrink: 0;
  transition: transform .2s;
}
.bichos-float:hover .bichos-avatar { transform: rotate(5deg) scale(1.06); }
.bichos-avatar img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 600px) {
  .bichos-float { bottom: 1rem; right: 1rem; }
  /* En móvil queda solo el logo: el globo de texto tapaba el contenido. */
  .bichos-bubble { display: none; }
  .bichos-bubble-text { font-size: .66rem; }
  .bichos-avatar { width: 58px; height: 58px; }
}

/* Antes era onfocus/onblur inline; la CSP sin 'unsafe-inline' los bloquearía. */
#inpComentario:focus { border-color: var(--lime) !important; }

/* Entrada con una sola foto: sin flechas (el JS usa el atributo hidden). */
.lb-nav[hidden] { display: none; }

/* Sin decoración de fondo en el hero (auditoría: la personalidad la ponen el
   logo y las fotos). */
.hero-glow, .bug-float { display: none; }
.legend-dot { display:inline-block; width:.6rem; height:.6rem; border-radius:50%; vertical-align:middle; }
.legend-dot.visitado { background: var(--lime); }
.legend-dot.proximo { background: var(--amber); }
