/*! TourCerca · Proyecto final de la Licenciatura en Turismo · Desarrollado por Derlis Marcelo Fernández Rivas, 2026 · Todos los derechos reservados. Ver LICENSE. */
/* TourCerca · estilos compartidos · © 2026 Derlis Marcelo Fernandez Rivas. Todos los derechos reservados. Ver LICENSE. */
:root{
  --pink-50:#FFF6F9;
  --pink-100:#FDEAF0;
  --pink-200:#F9D5E2;
  --pink-300:#F6C1D3;
  --pink-400:#EFA3BE;
  --pink-500:#E07FA3;   /* acento / botones */
  --pink-600:#C9628A;
  --pink-700:#9E4468;
  /* V 3.11: rosa profundo para fondos con texto blanco (5,2:1; el pink-500 daba 2,7:1) */
  --accent:#B5466F;
  --accent-hover:#9E4468;
  --ink:#3B2A33;
  --ink-2:#6E5A65;
  --ink-3:#7D6874;      /* V 3.11: antes #A08F99 (3,05:1); ahora 5,1:1 sobre blanco */
  --line:#F1E1E8;
  --white:#FFFFFF;
  --live:#D33A40;      /* V 3.11: antes #E5484D (3,9:1); ahora 4,7:1 */
  --ok:#24855A;        /* V 3.11: antes #2E9E6A (3,4:1); ahora 4,6:1 */
  --warn:#D98A1C;
  --shadow:0 6px 24px rgba(158,68,104,.12);
  --shadow-sm:0 2px 10px rgba(158,68,104,.10);
  --r:18px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Nunito',system-ui,sans-serif;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
a{color:inherit}
[hidden]{display:none!important}

/* ---------- LOGO ---------- */
.logo{display:flex;align-items:center;gap:8px;font-weight:900;font-size:22px;letter-spacing:-.5px;color:var(--pink-700);text-decoration:none}
.logo .mark{width:34px;height:34px;border-radius:11px;background:var(--pink-500);display:grid;place-items:center;box-shadow:var(--shadow-sm)}
.logo .mark svg{width:20px;height:20px}
.logo b{color:var(--pink-500)}

/* ---------- LANDING ---------- */
#landing{min-height:100%;background:var(--white)}
.nav{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(16px,4vw,48px)}
.nav-links{display:flex;gap:26px;font-weight:700;color:var(--ink-2);font-size:15px}
.nav-links a{text-decoration:none}
.nav-links a:hover{color:var(--pink-600)}
.hero{position:relative;overflow:hidden;background:linear-gradient(170deg,var(--pink-100) 0%,var(--pink-200) 55%,var(--pink-300) 100%);padding:120px clamp(16px,4vw,48px) 0;min-height:560px;display:flex;flex-direction:column;align-items:center;text-align:center}
.hero h1{font-size:clamp(34px,5.6vw,62px);line-height:1.04;font-weight:900;letter-spacing:-1.5px;max-width:860px;color:var(--ink)}
.hero h1 em{font-style:normal;color:var(--pink-600)}
.hero p.sub{margin-top:18px;font-size:clamp(16px,2vw,20px);color:var(--ink-2);max-width:620px;font-weight:600}
.hero-cta{margin-top:30px;display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:15px 26px;font-weight:800;font-size:16px;transition:transform .15s,box-shadow .15s,background .15s}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 8px 22px rgba(181,70,111,.32)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-ghost{background:rgba(255,255,255,.75);color:var(--pink-700)}
.btn-ghost:hover{background:#fff}
.btn-sm{padding:10px 16px;font-size:14px}
.skyline{position:relative;width:100%;max-width:1100px;margin-top:40px;height:170px}
.skyline svg{position:absolute;bottom:0;left:0;width:100%;height:100%}
.hero .pin-float{position:absolute;font-size:30px;animation:bob 3s ease-in-out infinite;filter:drop-shadow(0 4px 6px rgba(158,68,104,.25))}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

.features{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;max-width:1100px;margin:-1px auto 0;padding:34px clamp(16px,4vw,48px);}
.feature{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;font-weight:800;font-size:13px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.4px}
.feature .ic{width:62px;height:62px;border-radius:50%;background:var(--pink-100);display:grid;place-items:center;font-size:27px;border:2px solid var(--pink-200)}
section.block{max-width:1100px;margin:0 auto;padding:40px clamp(16px,4vw,48px)}
.block h2{font-size:clamp(26px,3.4vw,36px);font-weight:900;letter-spacing:-.8px;margin-bottom:6px}
.block .lead{color:var(--ink-2);font-weight:600;margin-bottom:24px}
.barrios{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.barrio{position:relative;border-radius:var(--r);overflow:hidden;min-height:190px;padding:18px;display:flex;flex-direction:column;justify-content:flex-end;text-align:left;color:var(--ink);box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;background:var(--pink-100)}
.barrio:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.barrio .em{position:absolute;top:14px;right:14px;font-size:44px}
.barrio h3{font-size:20px;font-weight:900}
.barrio span{font-size:13px;font-weight:700;color:var(--pink-700)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.step{background:var(--pink-50);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.step .n{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;font-weight:900;display:grid;place-items:center;margin-bottom:12px}
.step h3{font-size:18px;font-weight:900;margin-bottom:6px}
.step p{color:var(--ink-2);font-weight:600;font-size:15px}
.quote{margin:10px auto 0;max-width:1100px;padding:0 clamp(16px,4vw,48px) 50px}
.quote div{background:var(--accent);color:#fff;border-radius:24px;padding:34px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.quote p{font-size:clamp(20px,2.6vw,28px);font-weight:900;letter-spacing:-.4px;max-width:640px}
.quote .btn{background:#fff;color:var(--pink-700)}
footer{border-top:1px solid var(--line);text-align:center;padding:22px;color:var(--ink-3);font-size:13px;font-weight:700}

@media (max-width:900px){
  .nav-links{display:none}
  .features{grid-template-columns:repeat(3,1fr);row-gap:22px}
  .barrios{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:1fr}
  .hero{min-height:520px}
}

/* ---------- APP ---------- */
#app{position:fixed;inset:0;display:flex;flex-direction:column;background:var(--white)}
.topbar{height:62px;flex:0 0 62px;display:flex;align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid var(--line);background:#fff;z-index:900}
.topbar .logo{font-size:20px;cursor:pointer}
.topbar .spacer{flex:1}
.pill{display:inline-flex;align-items:center;gap:6px;background:var(--pink-100);color:var(--pink-700);border-radius:999px;padding:8px 13px;font-weight:800;font-size:13px;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.pill.clock{background:var(--pink-50);border:1px solid var(--line);color:var(--ink-2)}
.icon-btn{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--pink-50);border:1px solid var(--line);font-size:18px}
.icon-btn:hover{background:var(--pink-100)}

.layout{position:relative;flex:1;display:flex;min-height:0}
.mapwrap{position:relative;flex:1;min-width:0}
#map{position:absolute;inset:0;background:var(--pink-50)}
#panel{width:410px;flex:0 0 410px;height:100%;display:flex;flex-direction:column;border-right:1px solid var(--line);background:#fff;z-index:800;order:-1}
.handle{display:none}
.splitter{order:-1;flex:0 0 10px;margin:0 -5px;z-index:850;cursor:col-resize;position:relative;touch-action:none;display:flex;align-items:center;justify-content:center}
.splitter:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translateX(-50%);background:transparent;transition:background .15s}
.splitter .grip{position:relative;width:14px;height:44px;border-radius:8px;background:#fff;border:1.5px solid var(--pink-300);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;gap:2px}
.splitter .grip i{width:2px;height:18px;border-radius:2px;background:var(--pink-400)}
.splitter:hover:before,body.resizing .splitter:before{background:var(--pink-400)}
.splitter:hover .grip,body.resizing .splitter .grip{background:var(--pink-500);border-color:var(--pink-500)}
.splitter:hover .grip i,body.resizing .splitter .grip i{background:#fff}
body.resizing{user-select:none;cursor:col-resize}
body.resizing.v{cursor:row-resize}
body.resizing #panel{transition:none!important}
.panel-head{padding:18px 18px 8px;display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.panel-head h2{font-size:22px;font-weight:900;letter-spacing:-.5px}
.panel-head .count{color:var(--ink-3);font-weight:800;font-size:13px}
.chips{display:flex;gap:8px;overflow-x:auto;padding:6px 18px 10px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:7px 13px;font-weight:800;font-size:13px;color:var(--ink-2);transition:.15s}
.chip:hover{border-color:var(--pink-300)}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.chip.live-chip.on{background:var(--live);border-color:var(--live)}
.sortbar{display:flex;align-items:center;gap:6px;padding:0 18px 10px;font-size:13px;font-weight:700;color:var(--ink-3)}
.seg{display:inline-flex;background:var(--pink-50);border:1px solid var(--line);border-radius:999px;padding:3px}
.seg button{padding:5px 11px;border-radius:999px;font-weight:800;font-size:12.5px;color:var(--ink-2)}
.seg button.on{background:#fff;color:var(--pink-700);box-shadow:var(--shadow-sm)}
#list{flex:1;overflow-y:auto;padding:4px 14px 20px}
.empty{padding:40px 20px;text-align:center;color:var(--ink-3);font-weight:700}

.card{display:flex;gap:12px;width:100%;text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:var(--r);padding:12px;margin-bottom:10px;transition:.15s;position:relative}
.card:hover,.card.hl{border-color:var(--pink-300);box-shadow:var(--shadow-sm)}
.card .thumb{flex:0 0 62px;height:62px;border-radius:14px;display:grid;place-items:center;font-size:30px;background:var(--pink-100)}
.card .body{flex:1;min-width:0}
.card h3{font-size:15.5px;font-weight:900;line-height:1.2;margin-bottom:3px}
.card .meta{font-size:12.5px;color:var(--ink-2);font-weight:700;display:flex;flex-wrap:wrap;gap:4px 10px}
.card .row2{display:flex;align-items:center;justify-content:space-between;margin-top:7px;gap:8px}
.tag{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:900;white-space:nowrap}
.tag.soon{background:var(--pink-100);color:var(--pink-700)}
.tag.live{background:#FDE8E8;color:var(--live)}
.tag.later{background:var(--pink-50);color:var(--ink-2);border:1px solid var(--line)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--live);animation:blink 1.2s infinite}
@keyframes blink{50%{opacity:.25}}
.price{font-weight:900;font-size:14px;color:var(--ink)}
.price.free{color:var(--ok)}

/* detail */
#detailView{flex:1;overflow-y:auto;padding-bottom:24px}
.d-top{position:sticky;top:0;background:#fff;z-index:2;padding:12px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}
.d-top .t{font-weight:900;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-hero{margin:14px;border-radius:22px;padding:22px 18px 18px;background:linear-gradient(150deg,var(--pink-100),var(--pink-300));position:relative;overflow:hidden}
.d-hero .big{font-size:54px;line-height:1}
.d-hero h2{font-size:23px;font-weight:900;letter-spacing:-.5px;margin-top:10px;line-height:1.15}
.d-hero .sub{font-weight:800;color:var(--pink-700);font-size:13.5px;margin-top:4px}
.status{margin:0 14px 12px;border-radius:14px;padding:12px 14px;font-weight:800;font-size:14px;display:flex;gap:10px;align-items:center}
.status.live{background:#FDE8E8;color:#B3262B}
.status.soon{background:var(--pink-100);color:var(--pink-700)}
.status.ok{background:#E6F5EE;color:#1F7A50}
.status.warn{background:#FDF1E1;color:#9A5F0C}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 14px 14px}
.fact{background:var(--pink-50);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.fact small{display:block;font-size:12px;font-weight:800;color:var(--ink-3);text-transform:uppercase;letter-spacing:.4px}
.fact b{font-size:15px;font-weight:900}
.fact i{font-style:normal;display:block;font-size:12px;color:var(--ink-2);font-weight:700}
.d-sec{margin:0 14px 16px}
.d-sec h4{font-size:13px;font-weight:900;color:var(--ink-3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.d-sec p{color:var(--ink-2);font-weight:600;font-size:14.5px;line-height:1.5}
.timeline{list-style:none;position:relative;padding-left:22px}
.timeline:before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--pink-200)}
.timeline li{position:relative;padding:4px 0 8px;font-weight:700;font-size:14px}
.timeline li:before{content:"";position:absolute;left:-20px;top:8px;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid var(--pink-400)}
.timeline li.done{color:var(--ink-3)}
.timeline li.done:before{background:var(--pink-400)}
.timeline li.now{color:var(--live)}
.timeline li.now:before{border-color:var(--live);background:var(--live);box-shadow:0 0 0 4px #FDE8E8}
.guide{display:flex;gap:12px;align-items:center;background:#fff;border:1.5px solid var(--line);border-radius:var(--r);padding:12px}
.avatar{flex:0 0 auto;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-weight:900;color:#fff;font-size:18px;border:3px solid #fff;box-shadow:var(--shadow-sm)}
.guide b{display:block;font-size:15.5px;font-weight:900}
.guide small{font-weight:700;color:var(--ink-2);font-size:12.5px}
.badge-ok{display:inline-block;margin-top:3px;background:#E6F5EE;color:#1F7A50;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:900}
.d-actions{position:sticky;bottom:0;background:linear-gradient(transparent,#fff 26%);padding:18px 14px 6px;display:flex;gap:8px}
.d-actions .btn{flex:1;padding:13px 10px;font-size:14.5px}

/* map markers */
.pin{position:relative;display:flex;flex-direction:column;align-items:center}
.pin .bub{width:42px;height:42px;border-radius:50% 50% 50% 6px;transform:rotate(-45deg);background:#fff;border:3px solid var(--pink-500);display:grid;place-items:center;box-shadow:0 4px 12px rgba(158,68,104,.35)}
.pin .bub span{transform:rotate(45deg);font-size:20px}
.pin .lbl{position:absolute;top:-22px;left:50%;transform:translateX(-50%);background:var(--accent);color:#fff;font-weight:900;font-size:12px;border-radius:999px;padding:2px 8px;white-space:nowrap;box-shadow:var(--shadow-sm)}
.pin.sel .bub{border-color:var(--pink-700);background:var(--pink-100);transform:rotate(-45deg) scale(1.15)}
.gmk{position:relative;width:46px;height:46px}
.gmk .ring{position:absolute;inset:-8px;border-radius:50%;background:rgba(229,72,77,.25);animation:pulse 1.8s ease-out infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.5);opacity:0}}
.gmk .av{position:absolute;inset:0;border-radius:50%;border:3px solid #fff;display:grid;place-items:center;color:#fff;font-weight:900;font-size:15px;box-shadow:0 3px 12px rgba(0,0,0,.25)}
.gmk .live-l{position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);background:var(--live);color:#fff;font-size:12px;font-weight:900;letter-spacing:.4px;border-radius:6px;padding:1px 5px;border:2px solid #fff;white-space:nowrap;line-height:1.3}
.leaflet-marker-icon.guide-icon{transition:transform 1s linear}
.leaflet-zoom-anim .leaflet-marker-icon.guide-icon{transition:none}
.me{position:relative;width:22px;height:22px}
.me .c{position:absolute;inset:0;border-radius:50%;background:#4A7CF0;border:4px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.me .h{position:absolute;inset:-14px;border-radius:50%;background:rgba(74,124,240,.18);animation:pulse 2.4s ease-out infinite}
.leaflet-popup-content-wrapper{border-radius:14px;font-family:Nunito,sans-serif;font-weight:700}
.leaflet-container{font-family:Nunito,sans-serif}
.map-fab{position:absolute;right:12px;top:12px;z-index:700;display:flex;flex-direction:column;gap:8px}
.map-fab button{width:44px;height:44px;border-radius:14px;background:#fff;box-shadow:var(--shadow);font-size:19px;display:grid;place-items:center}
.map-fab button.on{background:var(--accent);color:#fff}
.hint{position:absolute;left:50%;transform:translateX(-50%);top:12px;z-index:700;background:rgba(59,42,51,.85);color:#fff;border-radius:999px;padding:8px 14px;font-weight:800;font-size:13px;white-space:nowrap;pointer-events:none;transition:opacity .4s}

/* toasts */
#toasts{position:fixed;top:74px;right:16px;z-index:2000;display:flex;flex-direction:column;gap:10px;width:min(380px,calc(100vw - 32px))}
.toast{background:#fff;border:1.5px solid var(--pink-200);border-radius:18px;box-shadow:0 12px 34px rgba(158,68,104,.25);padding:14px;display:flex;gap:12px;animation:tin .35s cubic-bezier(.2,.9,.3,1.3)}
@keyframes tin{from{transform:translateY(-14px) scale(.96);opacity:0}}
.toast .ic{flex:0 0 42px;height:42px;border-radius:12px;background:var(--pink-100);display:grid;place-items:center;font-size:22px}
.toast b{display:block;font-weight:900;font-size:14.5px;margin-bottom:2px}
.toast p{font-size:13.5px;color:var(--ink-2);font-weight:700}
.toast .acts{display:flex;gap:6px;margin-top:8px}
.toast .acts button{border-radius:999px;padding:6px 12px;font-weight:900;font-size:12.5px;background:var(--pink-50);color:var(--ink-2)}
.toast .acts button.go{background:var(--accent);color:#fff}

/* demo panel + modal */
.overlay{position:fixed;inset:0;background:rgba(59,42,51,.35);z-index:3000;display:grid;place-items:center;padding:16px}
.modal{background:#fff;border-radius:24px;padding:22px;width:min(420px,100%);box-shadow:0 20px 60px rgba(0,0,0,.25);max-height:90vh;overflow:auto}
.modal h3{font-size:20px;font-weight:900;margin-bottom:4px}
.modal .muted{color:var(--ink-2);font-weight:600;font-size:14px;margin-bottom:14px}
.modal h5{font-size:12px;font-weight:900;color:var(--ink-3);text-transform:uppercase;letter-spacing:.5px;margin:14px 0 8px}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.big-ok{font-size:54px;text-align:center;margin-bottom:6px}
.qty{display:flex;align-items:center;justify-content:center;gap:16px;margin:10px 0 16px}
.qty button{width:40px;height:40px;border-radius:50%;background:var(--pink-100);font-size:22px;font-weight:900;color:var(--pink-700)}
.qty b{font-size:26px;font-weight:900;min-width:30px;text-align:center}

/* ---------- MOBILE: bottom sheet ---------- */
@media (max-width:800px){
  .topbar{height:56px;flex-basis:56px;padding:0 12px;gap:8px}
  .topbar .logo .txt{display:none}
  .pill{max-width:150px;font-size:12px;padding:7px 10px}
  .pill.clock{display:none}
  .mapwrap{position:absolute;inset:0}
  #panel{position:absolute;left:0;right:0;bottom:0;width:auto;height:46%;border-right:0;border-radius:24px 24px 0 0;box-shadow:0 -8px 30px rgba(158,68,104,.18);transition:height .3s cubic-bezier(.2,.8,.2,1)}
  .splitter{display:none}
  .handle{display:block;padding:12px 0 6px;width:100%;touch-action:none;cursor:row-resize}
  .handle:before{content:"";display:block;margin:0 auto;width:44px;height:5px;border-radius:5px;background:var(--pink-300)}
  .panel-head{padding:6px 16px 6px}
  .panel-head h2{font-size:19px}
  #toasts{top:66px;right:50%;transform:translateX(50%)}
  .d-hero{margin:10px 12px}
  .leaflet-control-zoom{display:none}
  .hero .pin-float{display:none}
}

/* ---------- versión debajo del logo ---------- */
.logo .brand{display:flex;flex-direction:column;line-height:1}
.logo .ver{align-self:flex-start;margin-top:3px;padding:0;font-size:12px;font-weight:800;letter-spacing:.6px;color:var(--ink-3);opacity:0;animation:verIn 1.4s .5s ease forwards;cursor:pointer}
.logo .ver:hover{color:var(--pink-600)}
@keyframes verIn{from{opacity:0;transform:translateY(-4px)}to{opacity:.9;transform:none}}
.clog{padding-left:18px;color:var(--ink-2);font-weight:600;font-size:14px;line-height:1.5}
.clog li{margin-bottom:4px}
.inp{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:11px 12px;font:inherit;font-weight:700;color:var(--ink);background:#fff;outline:none;transition:border-color .15s}
.inp:focus{border-color:var(--pink-400)}

/* ---------- mapa sin líneas entre mosaicos ----------
   Con la pantalla o el navegador en una escala distinta de 100 %, Chrome deja
   huecos de 1 píxel entre los mosaicos (tiles) del mapa y se ven líneas blancas.
   Cada mosaico se superpone 1 píxel con el vecino para taparlos. */
.leaflet-container img.leaflet-tile{mix-blend-mode:normal;width:257px!important;height:257px!important}

/* ---------- formularios y botones chicos (panel del guía y "Pedí tu tour") ---------- */
.mini{border-radius:999px;padding:7px 12px;font-weight:900;font-size:12.5px;background:var(--pink-50);border:1.5px solid var(--line);color:var(--ink-2);text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.mini:hover{border-color:var(--pink-300)}
.mini.go{background:var(--accent);border-color:var(--accent);color:#fff}
.mini.go:hover{background:var(--accent-hover)}
.mini.danger{color:var(--live)}
.field{margin-bottom:13px}
.field>label{display:block;font-size:12px;font-weight:900;color:var(--ink-3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px}
.row2c{display:grid;grid-template-columns:1fr 1fr;gap:10px}
textarea.inp{resize:vertical;min-height:70px;font-weight:600}
.check{display:flex;align-items:center;gap:8px;font-weight:800;font-size:14px;color:var(--ink-2);margin-top:7px;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--pink-500)}
.langs{display:flex;flex-wrap:wrap;gap:6px}
.stops{list-style:none}
.stops li{display:flex;gap:8px;align-items:center;margin-bottom:7px}
.stops .n{flex:0 0 28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-weight:900;font-size:12px;display:grid;place-items:center}
.stops .n.meet{background:var(--pink-700);font-size:14px}
.stops .inp{padding:8px 10px}
.stops .del{flex:0 0 32px;height:32px;border-radius:10px;background:var(--pink-50);border:1px solid var(--line);color:var(--ink-3);font-weight:900}
.stops .del:hover{color:var(--live)}
.stop-tools{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.help{background:var(--pink-50);border:1px solid var(--line);border-radius:14px;padding:10px 12px;font-size:13.5px;font-weight:700;color:var(--ink-2);margin-bottom:10px}
.snum{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;border:3px solid #fff;font-weight:900;font-size:12px;display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.snum.meet{background:var(--pink-700);width:34px;height:34px;font-size:15px}
.snum.done{background:var(--pink-300)}

/* ---------- "Pedí tu tour" (V 3.0) ---------- */
.ask-bar{display:flex;gap:8px;padding:2px 14px 10px}
.ask{flex:1;min-width:0;display:flex;align-items:center;gap:10px;text-align:left;background:linear-gradient(135deg,var(--pink-100),var(--pink-200));border:1.5px solid var(--pink-300);border-radius:16px;padding:9px 12px;transition:.15s}
.ask:hover{box-shadow:var(--shadow-sm);border-color:var(--pink-400)}
.ask .em{font-size:22px}
.ask b{display:block;font-weight:900;font-size:14.5px;color:var(--pink-700)}
.ask span span{display:block;font-size:12px;font-weight:700;color:var(--ink-2);line-height:1.25}
.mine{position:relative;flex:0 0 auto;border-radius:16px;border:1.5px solid var(--line);background:#fff;padding:0 12px;font-weight:900;font-size:12.5px;color:var(--ink-2)}
.mine:hover{border-color:var(--pink-300)}
.nbadge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;border-radius:10px;background:var(--accent);color:#fff;font-size:12px;font-weight:900;display:grid;place-items:center;padding:0 5px;border:2px solid #fff}
.pview{flex:1;overflow-y:auto;display:flex;flex-direction:column}
.pv{padding:12px 16px 18px}
.pv-lead{color:var(--ink-2);font-weight:700;font-size:14px;margin-bottom:10px}
.rules{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:14px}
.rule{font-size:12.5px;font-weight:800;border-radius:10px;padding:6px 9px;background:var(--pink-50);color:var(--ink-3);border:1px solid var(--line)}
.rule.ok{background:#E6F5EE;color:#1F7A50;border-color:#CDEBDC}
.total{margin-top:6px;font-weight:700;color:var(--ink-2);font-size:13.5px}
.total b{color:var(--pink-700);font-weight:900}
.pv-actions{position:sticky;bottom:-18px;display:flex;gap:8px;background:linear-gradient(transparent,#fff 30%);padding:14px 0 6px}
.pv-actions .btn{flex:1;padding:13px 10px}
.pcard{border:1.5px solid var(--line);border-radius:18px;padding:12px;margin-bottom:10px;background:#fff}
.pc-top{display:flex;gap:12px}
.pc-when{flex:0 0 64px;text-align:center;background:var(--pink-100);border-radius:14px;padding:8px 4px}
.pc-when small{display:block;font-size:12px;font-weight:900;color:var(--pink-700);text-transform:uppercase}
.pc-when b{font-size:19px;font-weight:900}
.pc-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:12.5px;font-weight:700;color:var(--ink-2)}
.pc-info b{font-size:14.5px;font-weight:900;color:var(--ink)}
.pst{margin-top:10px;border-radius:12px;padding:9px 11px;font-weight:800;font-size:13.5px;display:flex;align-items:center;gap:8px}
.pst span{font-weight:700}
.pst.wait{background:var(--pink-50);color:var(--pink-700);border:1px dashed var(--pink-300)}
.pst.wait span{color:var(--ink-3);font-size:12.5px}
.pst.ok{background:#E6F5EE;color:#1F7A50}
.pst.ok .avatar{width:34px;height:34px;font-size:12px;border-width:2px}
.pst.live{background:#FDE8E8;color:#B3262B}
.pst.done{background:var(--pink-100);color:var(--pink-700)}
.pst.off{background:#F4F1F2;color:var(--ink-3)}
.empty-ped{text-align:center;padding:26px 10px;color:var(--ink-2);font-weight:700}
.empty-ped b{display:block;font-size:17px;font-weight:900;color:var(--ink);margin:6px 0}
.empty-ped p{margin-bottom:14px;font-size:14px}
.ask-hero{background:linear-gradient(150deg,var(--pink-100),var(--pink-300));border-radius:24px;padding:28px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.ask-hero>div{max-width:640px}
.ask-rules{margin-top:10px;font-weight:800;color:var(--pink-700);font-size:14px}
.minimap{height:230px;border-radius:14px;overflow:hidden;margin:10px 0;border:1px solid var(--line)}
@media (max-width:800px){ .ask span span{display:none} .rules{grid-template-columns:1fr 1fr} }

/* ---------- pedidos en el panel del guía ---------- */
.radios{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;font-weight:800;font-size:13px;color:var(--ink-2)}
.radio-help{font-size:12.5px;font-weight:700;color:var(--ink-3)}
.sal.ped{border-color:var(--pink-300);background:linear-gradient(90deg,#fff,var(--pink-50))}
.sal.ped .when{background:var(--accent)}
.sal.ped .when small,.sal.ped .when b,.sal.ped .when i{color:#fff}
.ped-total{float:right;color:var(--pink-700);font-weight:900}
.ped-tag{display:inline-block;margin-left:4px;background:var(--pink-100);color:var(--pink-700);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:900;vertical-align:middle}
.ped-com{margin-top:6px;font-size:13.5px;font-style:italic;color:var(--ink-2);font-weight:600}
.ped-pay{margin-top:12px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;background:var(--pink-50);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.ped-pay span{font-weight:800;color:var(--ink-2)}
.ped-pay b{font-size:24px;font-weight:900;color:var(--pink-700)}
.ped-pay small{width:100%;font-weight:700;color:var(--ink-3)}

/* ---------- seguridad (V 3.1) ---------- */
.map-fab .sos-fab{background:var(--live);color:#fff;font-size:17px}
.safe{background:var(--pink-50);border:1px solid var(--line);border-radius:14px;padding:12px}
.safe p{font-size:13.5px}
.dif{display:inline-block;border-radius:999px;padding:3px 10px;font-weight:900;font-size:12.5px;margin-bottom:6px}
.dif.baja{background:#E6F5EE;color:#1F7A50}.dif.media{background:#FDF1E1;color:#9A5F0C}.dif.alta{background:#FDE8E8;color:#B3262B}
.recs{list-style:none;margin:8px 0;display:flex;flex-wrap:wrap;gap:6px}
.recs li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:800;color:var(--ink-2)}
.safe-note{font-size:12.5px!important;color:var(--ink-3)!important;margin-bottom:8px}
.sos h3{color:#B3262B}
.sos-tels{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 10px}
.sos-tel{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;background:#FDE8E8;border:1.5px solid #F6C4C6;border-radius:14px;padding:10px 6px;color:#8E1F24;text-align:center}
.sos-tel span{font-size:24px}.sos-tel b{font-size:22px;font-weight:900}.sos-tel small{font-size:12px;font-weight:800;line-height:1.2}
.sos-tel:hover{background:#FBD6D7}
.sos-share{width:100%;border:1.5px solid var(--line);margin-bottom:6px}
.aux{border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin-bottom:6px;background:#fff}
.aux summary{font-weight:900;cursor:pointer;font-size:14px}
.aux p{margin-top:6px;font-size:13.5px;color:var(--ink-2);font-weight:600}
.btn-sos{flex:0 0 52px!important;background:var(--live);color:#fff;padding:12px 0!important}
.btn-sos:hover{background:#C93A3F}
.inc{background:#fff;border:1.5px solid var(--line);border-left:4px solid #E5484D;border-radius:14px;padding:10px 12px;margin-bottom:8px;font-size:13.5px;font-weight:700;color:var(--ink-2)}
.inc b{color:var(--ink)}
.inc p{margin-top:4px;font-weight:600}

/* ---------- selector de idioma "🌐 ES ▾" (V 3.2) ---------- */
.lang-slot{display:inline-flex}
.nav-right{display:flex;align-items:center;gap:10px}
.lang-sel{position:relative}
.lang-btn{display:inline-flex;align-items:center;gap:5px;border:1.5px solid var(--pink-300);background:var(--pink-100);color:var(--pink-700);border-radius:999px;padding:7px 11px;font-weight:900;font-size:13px;line-height:1}
.lang-btn:hover{border-color:var(--pink-500)}
.lang-btn .car{font-size:12px;transition:transform .15s}
.lang-sel.open .lang-btn .car{transform:rotate(180deg)}
.lang-menu{position:fixed;min-width:180px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 34px rgba(158,68,104,.25);padding:6px;display:none;z-index:2600}
.lang-menu.open{display:block}
.lang-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:9px 10px;border-radius:10px;font-weight:800;font-size:14px;color:var(--ink);text-align:left}
.lang-menu button:hover{background:var(--pink-50)}
.lang-menu button.on{background:var(--pink-100);color:var(--pink-700)}
.lang-menu .ck{width:14px;visibility:hidden;color:var(--pink-600);font-weight:900}
.lang-menu button.on .ck{visibility:visible}
.lang-menu small{margin-left:auto;font-size:12px;color:var(--ink-3);font-weight:800}
@media (max-width:800px){ .lang-btn .car{display:none} .lang-btn{padding:6px 9px;font-size:12px} }

/* ---------- V 3.3: Mis tours (reservas + pedidos) y confirmación ---------- */
.btn-danger{background:#fff;color:var(--live);border:1.5px solid #F6C4C6}
.btn-danger:hover{background:#FDE8E8}
.mis-h{font-size:14px;font-weight:900;color:var(--ink-2);margin:6px 0 10px;display:flex;align-items:center;gap:6px}
.mis-h small{font-weight:700;color:var(--ink-3);font-size:12px}
.mis-h + .mis-empty{margin-top:0}
.mis-empty{border:1.5px dashed var(--line);border-radius:16px;padding:14px;text-align:center;color:var(--ink-3);font-size:13px;font-weight:700;margin-bottom:16px}
.mis-sep{height:6px}
.resumen{list-style:none;margin:6px 0 14px;padding:12px 14px;border-radius:16px;background:var(--pink-50);border:1px solid var(--pink-100)}
.resumen li{display:flex;gap:10px;padding:5px 0;font-size:14px;color:var(--ink-2)}
.resumen li b{color:var(--ink)}
.resumen li .k{width:22px;flex:0 0 22px;text-align:center}
.aviso-conf{font-size:12.5px;color:var(--ink-3);text-align:center;margin:0 0 12px}

/* ---------- V 3.4: política de cancelación ---------- */
.poli{border-radius:14px;padding:10px 12px;font-size:13px;font-weight:700;line-height:1.45;margin:0 0 12px;display:flex;gap:8px}
.poli.gratis{background:#E6F5EE;color:#1F7A50}
.poli.mitad{background:#FFF4DE;color:#8A5A00}
.poli.total{background:#FDE8E8;color:#B3262B}
.poli.libre{background:#F4F1F2;color:var(--ink-2)}
.d-sec .poli{margin:0}
.pc-pago{display:block;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--ink-3)}

/* ---------- V 3.5: cupos y actividad en el panel del guía ---------- */
.cupos{margin-top:8px;background:var(--pink-50);border:1px solid var(--pink-100);border-radius:12px;padding:8px 10px}
.cupos-top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--ink-2)}
.cupos-top span{font-weight:800;color:var(--pink-700)}
.cupos-bar{height:8px;border-radius:99px;background:#fff;border:1px solid var(--pink-100);margin-top:6px;overflow:hidden}
.cupos-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--pink-300),var(--pink-500));transition:width .4s}
.cupos.full{background:#E6F5EE;border-color:#BFE6D2}
.cupos.full .cupos-top span{color:#1F7A50}
.cupos.full .cupos-bar i{background:#2FA36B}
.cupos-canc{margin-top:5px;font-size:12px;font-weight:800;color:var(--ink-3)}
.act-list{display:flex;flex-direction:column;gap:8px}
.act{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:9px 12px}
.act .ai{font-size:20px}
.act div{flex:1;min-width:0}
.act b{display:block;font-size:14px}
.act small{display:block;color:var(--ink-3);font-weight:700;font-size:12.5px}
.act .at{font-size:12px;font-weight:800;color:var(--ink-3);white-space:nowrap}
.act.res{border-left:4px solid #2FA36B}
.act.can{border-left:4px solid var(--live)}

/* ---------- V 3.7: 48 barrios ---------- */
.barrio .alias{font-size:12px;font-weight:800;color:var(--ink-3);margin:-2px 0 2px}
.barrio.mas{background:#fff;border:2px dashed var(--pink-300);box-shadow:none}

/* ---------- V 3.9: lugares de interés ---------- */
.poi{display:flex;align-items:center;gap:5px;cursor:pointer}
.poi .pi{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#fff;border:2px solid #1D9E75;display:grid;place-items:center;font-size:14px;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.poi.dest .pi{border-width:3px}
.poi .pn{font-size:12px;font-weight:800;color:#085041;background:#fff;border:1px solid #5DCAA5;border-radius:999px;padding:2px 8px;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.map-fab .poi-btn.on{background:#1D9E75;color:#fff}
.lug-popup .leaflet-popup-content{margin:12px 14px}
.lug-pop{font-family:inherit;min-width:220px}
.lug-pop .lp-top{display:flex;gap:10px;align-items:center}
.lug-pop .lp-top .pi{flex:0 0 36px;width:36px;height:36px;border-radius:50%;border:2px solid #1D9E75;display:grid;place-items:center;font-size:18px}
.lug-pop .lp-top b{display:block;font-size:15px;font-weight:900;color:var(--ink);line-height:1.2}
.lug-pop .lp-top small{display:block;font-size:12.5px;font-weight:700;color:var(--ink-3)}
.lug-pop .lp-dir{margin:8px 0 0 !important;font-size:12.5px;font-weight:700;color:var(--ink-2)}
.lug-pop .lp-tours{margin-top:10px;background:var(--pink-50);color:var(--pink-700);border-radius:10px;padding:7px 10px;font-weight:800;font-size:13px}
.lug-pop .lp-tours.none{background:#F4F1F2;color:var(--ink-3)}
.lug-pop .lp-acts{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.lug-pop .lp-acts .mini{text-decoration:none}
.lug-pop .lp-src{margin:8px 0 0 !important;font-size:12px;font-weight:700;color:var(--ink-3)}
.lug-filtro{display:flex;align-items:center;gap:8px;margin:0 16px 8px;background:#E1F5EE;color:#085041;border-radius:12px;padding:7px 10px 7px 12px;font-size:13px;font-weight:700}
.lug-filtro span{flex:1}
.lug-filtro button{width:26px;height:26px;border-radius:50%;background:#fff;color:#085041;font-weight:900}
.ed-map .poi-btn{position:absolute;left:10px;bottom:10px;z-index:600;background:#fff;border-radius:12px;padding:7px 11px;font-weight:800;font-size:13px;box-shadow:var(--shadow-sm);color:var(--ink-2)}
.ed-map .poi-btn.on{background:#0F6E56;color:#fff}

/* ---------- V 3.10: precios de referencia AGuiTBA ---------- */
.ref-precios{display:flex;gap:18px;align-items:flex-start;background:#fff;border:1.5px solid var(--pink-200);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow-sm)}
.ref-precios .rp-ic{flex:0 0 56px;width:56px;height:56px;border-radius:18px;background:var(--pink-100);display:grid;place-items:center;font-size:28px}
.ref-precios h3{font-size:20px;font-weight:900;margin-bottom:4px}
.ref-precios p{color:var(--ink-2);font-weight:600;line-height:1.55;font-size:15px}
.ref-precios p b{color:var(--pink-700)}
.ref-precios .rp-link{display:inline-block;margin-top:10px;font-weight:800;color:var(--pink-700);text-decoration:none;border-bottom:1.5px solid var(--pink-300)}
.ref-precios small{display:block;margin-top:10px;color:var(--ink-3);font-weight:700;font-size:12px}
@media (max-width:640px){ .ref-precios{flex-direction:column;padding:18px} }
.ref-mini{color:var(--pink-700);font-weight:800;text-decoration:none;border-bottom:1px dotted var(--pink-400)}
.ref-ag{margin-top:6px;font-size:12.5px;font-weight:700;color:var(--ink-2);background:var(--pink-50);border-radius:10px;padding:7px 10px}
.ref-ag b{color:var(--pink-700)}
.ref-ag.bajo{background:#FFF4DE;color:#8A5A00}
.ref-ag .link{background:none;border:0;padding:0;margin-left:4px;color:var(--pink-700);font-weight:800;text-decoration:underline;cursor:pointer;font-size:inherit}

/* ---------- V 3.11: tanda 1 · bloqueos y accesibilidad ---------- */
/* el cartel del mapa no llega a la columna de botones (🎯 🗺️ 🏛️ 🆘) */
.hint{max-width:calc(100% - 140px);white-space:normal;text-align:center;line-height:1.3}
/* avisos más compactos, a la izquierda de los botones del mapa */
#toasts{right:68px;width:min(360px,calc(100vw - 96px))}
.toast{padding:12px;gap:10px;border-radius:16px}
.toast .ic{flex:0 0 36px;height:36px;font-size:19px}
.toast b{font-size:14px}
.toast p{font-size:13px}
@media (max-width:800px){
  #toasts{top:64px;left:10px;right:62px;transform:none;width:auto}
  .toast{padding:10px 12px}
  .toast .ic{display:none}
  /* créditos del mapa: arriba a la izquierda, para que no tapen el panel de abajo */
  .mapwrap .leaflet-bottom.leaflet-right{bottom:auto;top:4px;right:auto;left:4px}
  .mapwrap .leaflet-control-attribution{border-radius:8px;font-size:12px;padding:1px 6px}
  .hint{top:36px}
}
/* foco visible al navegar con teclado */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid rgba(181,70,111,.6);outline-offset:2px}
.inp:focus-visible{outline-offset:0}
/* movimiento reducido: sin animaciones si el sistema lo pide */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .logo .ver{opacity:.9!important}
}

/* ---------- V 3.12: tanda 2 · mapa más limpio ---------- */
.pin{transition:transform .25s ease}
.pin.abanico .bub{box-shadow:0 4px 14px rgba(158,68,104,.45)}
#lugarView .lug-pop{min-width:0}
#lugarView .lp-top b{font-size:17px}
#lugarView .lp-acts .mini{padding:9px 14px;font-size:13.5px}

/* ---------- V 3.14: tanda 3 · celular ---------- */
/* 3.1 ficha compacta: emoji al costado del nombre y resumen (cuándo y precio) arriba */
.d-hero{display:flex;align-items:center;gap:14px;padding:16px}
.d-hero .big{font-size:40px;flex:0 0 auto}
.d-hero .dh-txt{min-width:0}
.d-hero h2{margin-top:0;font-size:21px}
.d-res{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.d-res span{background:rgba(255,255,255,.75);border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:800;color:var(--ink)}
@media (max-width:800px){
  .d-hero{padding:12px 14px;gap:12px;border-radius:18px}
  .d-hero .big{font-size:30px}
  .d-hero h2{font-size:18px}
}
/* 3.2 barra de botones de la ficha con fondo propio (no se ve el texto de atrás) */
.d-actions{background:#fff;border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -6px 16px rgba(158,68,104,.08)}
/* 3.3 pasos de "Pedí tu tour" */
.pasos{display:flex;gap:6px;padding:8px 16px 0}
.paso{flex:1;border-radius:999px;padding:7px 10px;font-weight:800;font-size:13px;background:var(--pink-50);color:var(--ink-3);border:1.5px solid var(--line)}
.paso.on{background:var(--pink-100);color:var(--pink-700);border-color:var(--pink-300)}
/* 3.4 filtros: difuminado en el borde cuando hay más para deslizar */
.chips.mas-der{-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}
.chips.mas-izq{-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%);mask-image:linear-gradient(90deg,transparent,#000 18%)}
.chips.mas-izq.mas-der{-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent)}
/* 3.5 portada en el celular: skyline más bajo para que los barrios aparezcan antes */
@media (max-width:640px){
  .hero{min-height:0;padding-top:96px}
  .skyline{height:96px;margin-top:22px}
}

/* ---------- V 3.15: tanda 4 · pulido ---------- */
.feature{text-transform:none;letter-spacing:0;font-size:14.5px;color:var(--ink)}
.barrio.mas{background:linear-gradient(150deg,#F4FBF8,#E1F5EE);border:0;box-shadow:var(--shadow-sm)}
.barrio.mas span{color:#0F6E56}
/* 4.5 el reloj del turista solo aparece con el tiempo acelerado (modo presentación) */
.pill.clock{display:none}
.pill.clock.acelerado{display:inline-flex}
@media (max-width:800px){ .pill.clock.acelerado{display:none} }
.demo-ver{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding:10px 12px;border-radius:14px;background:var(--pink-50);font-weight:800;font-size:13px;color:var(--ink-2)}

/* ===== V 3.17 · burbuja que junta tours al alejar el mapa ===== */
.grupo-pin{width:64px;height:64px;border-radius:50%;background:var(--accent);color:#fff;border:4px solid #fff;box-shadow:0 4px 16px rgba(158,68,104,.45);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;cursor:pointer;position:relative;transition:transform .2s}
.grupo-pin:hover{transform:scale(1.06)}
.grupo-pin b{font-size:22px;font-weight:900}
.grupo-pin span{font-size:12px;font-weight:800}
.grupo-pin i{position:absolute;bottom:-14px;left:50%;transform:translateX(-50%);background:var(--live);color:#fff;font-style:normal;font-size:12px;font-weight:900;border-radius:999px;padding:1px 7px;border:2px solid #fff;white-space:nowrap}
@media (prefers-reduced-motion:reduce){ .grupo-pin{transition:none} .grupo-pin:hover{transform:none} }

/* ===== V 3.18 · portada: pantalla completa, frases animadas e íconos sobre el rosa ===== */
.hero{min-height:100vh;min-height:100svh;padding:84px clamp(16px,4vw,48px) 0}
.hero-centro{margin:auto 0;display:flex;flex-direction:column;align-items:center;width:100%}
/* las dos frases ocupan el mismo lugar: la primera se va y aparece la segunda */
.hero h1.frases{display:grid;place-items:center;max-width:900px;line-height:1.06}
.hero h1.frases > *{grid-area:1/1}
.hero h1 .f1{animation:frase1 2.4s ease forwards}   /* V 3.23: se ve completa 1,5 s */
.hero h1 .f2{opacity:0;animation:entra .7s ease 2.3s forwards}
.hero p.sub{opacity:0;animation:entra .6s ease 2.9s forwards}
.hero-cta .btn{opacity:0;animation:entraBoton .7s cubic-bezier(.2,.9,.3,1.3) 3.3s forwards}
.hero-cta .btn + .btn{animation-delay:3.5s}
@keyframes frase1{0%{opacity:0;transform:translateY(18px)}17%{opacity:1;transform:none}79%{opacity:1;transform:none;filter:none}100%{opacity:0;transform:translateY(-14px);filter:blur(3px);visibility:hidden}}
@keyframes entra{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes entraBoton{from{opacity:0;transform:translateY(14px) scale(.92)}to{opacity:1;transform:none}}
/* los íconos van dentro del rosa, sobre la silueta de la ciudad */
.hero .features{position:relative;z-index:1;margin:0;padding:24px 0 26px;width:100%;max-width:1000px}
.hero .feature{opacity:0;animation:entra .6s ease 3.9s forwards}
.hero .feature:nth-child(2){animation-delay:3.98s}
.hero .feature:nth-child(3){animation-delay:4.06s}
.hero .feature:nth-child(4){animation-delay:4.14s}
.hero .feature:nth-child(5){animation-delay:4.22s}
.hero .feature:nth-child(6){animation-delay:4.3s}
.hero .feature .ic{width:58px;height:58px;font-size:26px;background:rgba(255,255,255,.8);border-color:#fff;box-shadow:0 4px 14px rgba(158,68,104,.15)}
.hero .skyline{position:absolute;left:50%;bottom:0;transform:translateX(-50%);margin:0;opacity:.45}
@media (max-width:800px){
  .hero{padding-top:76px}
  .hero .features{grid-template-columns:repeat(3,1fr);row-gap:14px;padding:18px 0 64px}   /* V 3.20: más arriba, sobre la silueta */
  .hero .feature{font-size:13px;gap:6px}
  .hero .feature .ic{width:50px;height:50px;font-size:22px}
  .hero .skyline{height:96px}
  .hero-cta{margin-top:22px}
}
@media (prefers-reduced-motion:reduce){
  .hero h1 .f1{display:none}
  .hero h1 .f2,.hero p.sub,.hero-cta .btn,.hero .feature{animation:none;opacity:1}
}

/* ===== V 3.22 · lugares de interés en rosa suave (antes verde agua) ===== */
.poi .pi{background:#FDEAF0;border-color:#F4B8CC}
.poi .pn{color:var(--pink-700);border-color:#F4B8CC}
.map-fab .poi-btn.on,.ed-map .poi-btn.on{background:#F4B8CC;color:var(--pink-700)}
.lug-pop .lp-top .pi{border-color:#F4B8CC;background:#FDEAF0}
.lug-filtro{background:#FDEAF0;color:var(--pink-700)}
.lug-filtro button{color:var(--pink-700)}

/* ===== V 3.22 · selector de moneda $ ARS / US$ ===== */
.mon{display:inline-flex;flex:0 0 auto;border:1.5px solid var(--pink-300);border-radius:999px;overflow:hidden;background:rgba(255,255,255,.7);font-weight:900;font-size:13px}
.mon button{padding:6px 11px;color:var(--pink-700);white-space:nowrap}
.mon button.on{background:var(--accent);color:#fff}
.price .ars{display:block;font-size:11.5px;color:var(--ink-3);font-weight:700;text-align:right}
.usd-nota{display:block;font-style:normal;color:var(--ink-3);font-size:12px;font-weight:700;margin-top:2px}
/* en el celular se ve un solo botón chico con la moneda elegida; al tocarlo cambia */
@media (max-width:640px){
  .mon{font-size:12px;border-width:1px}
  .mon button{display:none}
  .mon button.on{display:block;padding:4px 8px;line-height:1.2;background:transparent;color:var(--pink-700)}
  .mon button.on::after{content:"⇄";font-size:10px;margin-left:3px;opacity:.55}
}

/* ===== V 3.24 · reseñas de los turistas ===== */
.estrellas{color:#E8A23A;letter-spacing:1px;white-space:nowrap}
.estrellas .off{color:#E6DCE1}
.mi-resena{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:13px;font-weight:800;color:var(--ink-2)}
.modal.resena h5{margin-top:14px}
.modal.resena h5 small{font-weight:700;color:var(--ink-3);text-transform:none}
.rs-stars{display:flex;justify-content:center;gap:4px;margin-top:10px}
.rs-stars button{font-size:40px;line-height:1;color:#E6DCE1;padding:2px 4px;border-radius:10px;transition:transform .12s,color .12s}
.rs-stars button.on{color:#E8A23A}
.rs-stars button:hover{transform:scale(1.12)}
.rs-lbl{text-align:center;font-weight:900;color:var(--pink-700);margin:4px 0 0;min-height:20px}
.modal.resena textarea{width:100%;resize:vertical;min-height:76px;font:inherit;font-weight:700}
.rs-cont{text-align:right;font-size:12px;color:var(--ink-3);font-weight:700;margin-top:2px}
.rs-foto{display:flex;gap:12px;align-items:center;margin-top:8px}
.rs-foto p{margin:0;font-size:12px;color:var(--ink-3);font-weight:700;line-height:1.35}
.rs-add{flex:0 0 76px;width:76px;height:76px;border-radius:14px;border:1.5px dashed var(--pink-300);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;font-size:22px;color:var(--pink-700)}
.rs-add span{font-size:11px;font-weight:900;text-align:center;line-height:1.1}
.rs-ph{position:relative;flex:0 0 76px;width:76px;height:76px}
.rs-ph img{width:100%;height:100%;object-fit:cover;border-radius:14px}
.rs-ph button{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);font-weight:900;font-size:12px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.rv-prom{display:flex;align-items:center;gap:8px;background:var(--pink-50);border-radius:12px;padding:8px 12px;margin-bottom:8px;font-weight:800;color:var(--ink-2);font-size:13px}
.rv-prom b{font-size:22px;color:var(--ink)}
.rv{border-bottom:1px solid var(--line);padding:8px 0}
.rv:last-child{border-bottom:0}
.rv-h{display:flex;justify-content:space-between;gap:8px;font-size:14px}
.rv-f{display:block;color:var(--ink-3);font-weight:700;font-size:12px}
.rv p{margin:4px 0 0}
.rv-ph{display:block;margin-top:6px;padding:0;border-radius:12px;overflow:hidden;width:88px;height:88px;transition:width .2s,height .2s}
.rv-ph img{width:100%;height:100%;object-fit:cover;display:block}
.rv-ph.grande{width:100%;height:auto;max-height:340px}
.rv-ph.grande img{object-fit:contain;height:auto;max-height:340px}
.rv-den{margin-top:4px;font-size:12px;font-weight:800;color:var(--ink-3)}
.rv-den:hover{color:var(--live)}
