:root{--pine:#133f32;--leaf:#216c51;--cream:#fff9ed;--ink:#172d27;--muted:#627b6c;--wine:#8e3a58;--gold:#d49b4a;--shadow:0 22px 70px #122d2860}
*{box-sizing:border-box}html,body{margin:0;min-width:320px;height:100%;font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);background:#e4ebd8}body{overscroll-behavior:none}a{text-decoration:none;color:inherit}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,.town-stage:focus-visible{outline:3px solid #eaaa56;outline-offset:3px}button[hidden],aside[hidden],div[hidden]{display:none!important}
.town-topbar{height:72px;position:relative;z-index:40;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:9px clamp(17px,3.5vw,50px);box-shadow:0 3px 15px #0a3c2b15;gap:16px}.town-brand img{display:block;width:190px;max-width:32vw;height:auto}.town-product{font-weight:900;font-size:12px;color:#245640;letter-spacing:2px;display:flex;align-items:center;gap:8px}.town-product-dot{width:7px;height:7px;background:#b45048;border-radius:50%}.town-product-sub{font-size:11px;letter-spacing:0;color:#87978b;font-weight:500}.town-back{border-radius:99px;padding:11px 18px;background:#edf4eb;font-size:12px;font-weight:800;color:#225742}.town-back:hover{background:#ddebdc}
.town-app{height:calc(100dvh - 72px);min-height:560px}.town-map{position:relative;height:100%;overflow:hidden;background:#8eb9a5;isolation:isolate}.town-stage{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;z-index:1}.town-stage.is-dragging{cursor:grabbing}.town-world{position:absolute;width:2400px;height:1450px;transform-origin:top left;will-change:transform;user-select:none}.town-art{width:2400px;height:1450px;display:block;pointer-events:none}.town-pins,.town-route{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.town-route{z-index:2;opacity:0;transition:opacity .35s}.town-route.visible{opacity:.76}#routeLine{animation:route-dash 3s linear infinite} @keyframes route-dash{to{stroke-dashoffset:-300}}
.town-atmosphere{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,#0d342c92 0%,#0d342c54 22%,transparent 46%),linear-gradient(0deg,#0829218a 0%,transparent 24%),linear-gradient(180deg,#093a3c40,transparent 23%)}.town-headline{position:absolute;z-index:5;top:27px;left:clamp(20px,3vw,52px);pointer-events:none;text-shadow:0 2px 15px #163c3780;color:#fff;max-width:390px}.town-kicker{font-size:10px;letter-spacing:3px;font-weight:900;color:#f3d49b;margin:0 0 7px}.town-headline h1{font:800 clamp(27px,3vw,45px)/1.06 Georgia,serif;letter-spacing:-.7px;margin:0}.town-headline em{font-style:normal;color:#fff1d5}.town-headline>p:last-child{font-size:13px;line-height:1.5;max-width:340px;margin:9px 0 0;color:#eef8ee}
.town-zones{position:absolute;z-index:8;top:155px;left:clamp(18px,3vw,52px);display:flex;flex-direction:column;gap:9px;align-items:stretch;width:206px}.town-zones button{display:flex;gap:11px;align-items:center;text-align:left;min-height:45px;padding:8px 13px;border-radius:14px;background:#ffffffec;border:1px solid #ffffffb0;color:#254c3e;box-shadow:0 7px 21px #0e3a2d2b;font-weight:800;font-size:12px;transition:transform .2s,background .2s,border .2s}.town-zones button[aria-pressed=true]{background:var(--pine);color:#fff;border-color:#93c5a7;box-shadow:0 0 0 2px #c6e6c4a0,0 9px 30px #11362980}.town-zones button:hover{transform:translateX(3px)}.zone-emoji{font-size:17px;width:23px;text-align:center}
.town-pin{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-100%);pointer-events:auto;z-index:3;border:0;padding:0;background:none;color:#17392f;filter:drop-shadow(0 6px 8px #15443566)}.town-pin-dot{position:relative;width:54px;height:54px;display:grid;place-items:center;border:3px solid #fff;background:var(--pin-color,#235d49);border-radius:50% 50% 50% 4px;transform:rotate(-45deg);box-shadow:0 5px 15px #10453655;transition:transform .2s,box-shadow .2s}.town-pin-dot span{transform:rotate(45deg);font-size:22px;line-height:1}.town-pin-name{background:#fffffff2;border:1px solid #ffffffde;border-radius:22px;padding:7px 12px;font-size:14px;font-weight:900;white-space:nowrap;box-shadow:0 4px 15px #173d343d;transform:translateY(-1px);max-width:230px;overflow:hidden;text-overflow:ellipsis}.town-pin::before{content:"";position:absolute;left:50%;top:48px;width:9px;height:9px;border-radius:50%;transform:translateX(-50%);background:#fff;box-shadow:0 0 0 3px var(--pin-color,#265842),0 0 0 13px #fff7;opacity:0;transition:opacity .2s}.town-pin:is(:hover,:focus-visible,.selected){z-index:9}.town-pin:is(:hover,:focus-visible,.selected) .town-pin-dot{transform:rotate(-45deg) scale(1.11);box-shadow:0 0 0 8px #ffffff5f,0 10px 22px #11362d7a}.town-pin.selected::before{opacity:1;animation:pin-pulse 2s infinite}.town-pin.selected .town-pin-name{background:#163f32;color:#fff}.town-pin.dim{opacity:.22;pointer-events:none}.town-pin.marker-mini .town-pin-name{display:none}.town-pin.marker-mini .town-pin-dot{width:40px;height:40px}.town-pin.marker-mini .town-pin-dot span{font-size:17px}@keyframes pin-pulse{0%,100%{box-shadow:0 0 0 3px var(--pin-color,#265842),0 0 0 12px #ffffff6e}50%{box-shadow:0 0 0 3px var(--pin-color,#265842),0 0 0 23px #ffffff00}}
.town-guide-card{position:absolute;z-index:8;left:clamp(18px,3vw,52px);bottom:119px;background:#ffffffef;backdrop-filter:blur(13px);width:320px;padding:17px 17px 16px;border:1px solid #ffffffb0;border-radius:19px;box-shadow:0 14px 45px #133b304a}.guide-info{display:flex;flex-direction:column;gap:5px}.guide-sup{font-size:9px;letter-spacing:1.9px;font-weight:900;color:#a66c45}.guide-info strong{font-size:16px;line-height:1.25;color:#1b3d31}.guide-info span:last-child{font-size:11px;color:#677a6a;line-height:1.45}.guide-action{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;border:0;width:100%;padding:12px 13px;border-radius:12px;background:#154d3b;color:#fff;font-size:12px;font-weight:900}.guide-action:hover{background:#237352}
.town-zoom{position:absolute;z-index:7;right:24px;top:28px;display:grid;gap:7px}.town-zoom button{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;border:1px solid #ffffffa1;background:#ffffffef;box-shadow:0 8px 23px #1e3f3560;font-size:26px;font-weight:800;color:#154f3d}.town-compass{position:absolute;z-index:6;right:33px;top:205px;background:#123e35c9;color:#fff;border:1px solid #ffffff86;border-radius:50%;width:37px;height:37px;display:flex;align-items:center;flex-direction:column;justify-content:center}.town-compass span{font-weight:900;font-size:8px}.town-compass div{font-size:13px;line-height:12px;color:#d9ebda}.town-minimap{position:absolute;z-index:6;right:24px;bottom:121px;width:164px;height:99px;overflow:hidden;border:3px solid #fff;border-radius:13px;box-shadow:0 8px 26px #173c2d69;background:#96bd84}.town-minimap img{display:block;width:100%;height:100%}.town-minimap span{position:absolute;border:2px solid #fff;background:#f5f4c12d;border-radius:3px;box-shadow:0 0 0 1px #155b48}.town-footnote{position:absolute;left:20px;bottom:16px;color:#fff;background:#123b3299;padding:6px 10px;border-radius:9px;font-size:10px;z-index:7;pointer-events:none}
.town-stopbar{position:absolute;z-index:8;left:0;bottom:0;right:0;padding:13px 18px 17px;display:flex;gap:10px;align-items:center;overflow-x:auto;overscroll-behavior-x:contain;background:linear-gradient(0deg,#103a35e3,#103a3588);scrollbar-width:none}.town-stopbar::-webkit-scrollbar{display:none}.town-stop{flex:0 0 171px;display:flex;align-items:center;gap:10px;text-align:left;padding:6px 10px 6px 6px;background:#ffffffeb;border:2px solid transparent;border-radius:14px;box-shadow:0 5px 18px #0f362a3f;color:#204436;min-height:59px}.town-stop img{width:52px;height:46px;object-fit:cover;border-radius:10px;flex-shrink:0}.town-stop strong{font-size:11px;line-height:1.25;max-height:30px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.town-stop small{display:block;color:#748478;font-size:10px;margin-top:3px}.town-stop.active{border-color:#e2b46b;background:#fff}
.town-place-sheet{position:absolute;z-index:16;top:100px;bottom:105px;right:85px;width:375px;border-radius:25px;background:#fff;border:1px solid #ffffffec;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;animation:pop-in .25s ease}.town-sheet-close{position:absolute;z-index:2;right:12px;top:12px;border:0;border-radius:50%;width:38px;height:38px;background:#fffffff0;color:#183d2e;font-size:24px;box-shadow:0 4px 12px #162e2c3b}.town-sheet-handle{display:none}.town-sheet-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;min-height:215px;height:215px}.town-sheet-gallery::-webkit-scrollbar{display:none}.town-sheet-gallery img{width:100%;height:100%;object-fit:cover;scroll-snap-align:start;flex:0 0 100%}.town-sheet-dots{position:absolute;top:195px;left:17px;display:flex;gap:5px;z-index:2}.town-sheet-dots span{width:6px;height:6px;background:#ffffff99;border-radius:50%}.town-sheet-dots span.active{background:white;width:16px;border-radius:7px}.town-sheet-body{padding:17px 20px 20px;overflow-y:auto}.town-sheet-tag{font-size:11px;color:#246549;font-weight:800;background:#e8f3e8;display:inline-block;padding:6px 10px;border-radius:99px}.town-sheet-body h2{font:700 26px/1.12 Georgia,serif;color:#173d30;margin:13px 0 7px}.town-sheet-location{font-size:12px;line-height:1.45;color:#5c806c;margin:0 0 11px}.town-sheet-description{font-size:13px;color:#3a5749;line-height:1.52;margin:0 0 10px}.town-sheet-note{font-size:10px;color:#708474;border-left:3px solid #c7e0c6;background:#f6f9f4;padding:8px 11px;border-radius:0 9px 9px 0;line-height:1.45}.town-sheet-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.town-sheet-actions a,.town-sheet-actions button{font-size:12px;font-weight:900;padding:12px;border-radius:11px;min-height:43px;display:flex;align-items:center;justify-content:center}.town-sheet-primary{background:#154f3b;color:#fff;flex:1}.town-sheet-secondary{border:1px solid #cddfd2;color:#1f6048;background:#fff}.town-sheet-fav{border:1px solid #cddfd2;background:#fff;color:#8e3a58;min-width:42px}.town-toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 19px;background:#133f32;color:white;border-radius:99px;z-index:60;box-shadow:0 8px 26px #153b3265;font-size:13px;font-weight:700;opacity:0;pointer-events:none;transition:opacity .25s}.town-toast.show{opacity:1}@keyframes pop-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.town-headline{top:17px}.town-zones{top:132px;width:176px}.town-zones button{font-size:11px}.town-guide-card{width:285px}.town-place-sheet{right:70px;width:335px}.town-minimap{display:none}}
@media(max-width:700px){.town-topbar{height:61px;padding:7px 14px}.town-brand img{width:145px;max-width:46vw}.town-product{display:none}.town-back{padding:10px 12px;font-size:16px}.town-back-label{display:none}.town-app{height:calc(100dvh - 61px);min-height:530px}.town-headline{left:17px;top:15px;max-width:250px}.town-headline h1{font-size:25px}.town-headline>p:last-child{font-size:10px;max-width:225px;margin-top:6px}.town-kicker{font-size:8px;letter-spacing:1.6px;margin-bottom:5px}.town-zones{top:115px;left:12px;right:12px;width:auto;display:flex;flex-direction:row;gap:7px;overflow-x:auto;scrollbar-width:none;align-items:center;padding:3px 2px 8px}.town-zones button{flex-shrink:0;min-height:40px;padding:8px 10px;font-size:10px;border-radius:99px;box-shadow:0 3px 12px #1136293f}.town-zones button:hover{transform:none}.zone-emoji{font-size:13px;width:auto}.town-zoom{top:179px;right:11px;gap:6px}.town-zoom button{width:39px;height:39px;border-radius:11px;font-size:22px}.town-compass{right:16px;top:316px;width:30px;height:30px}.town-footnote{bottom:113px;left:11px;font-size:9px;max-width:250px}.town-stopbar{padding:10px 10px 15px;gap:7px}.town-stop{flex-basis:144px;min-height:55px}.town-stop img{height:40px;width:42px}.town-stop strong{font-size:10px}.town-stop small{font-size:9px}.town-guide-card{left:12px;bottom:119px;width:min(265px,calc(100% - 70px));padding:11px 13px;border-radius:15px}.guide-sup{font-size:8px}.guide-info strong{font-size:12px}.guide-info span:last-child{font-size:10px}.guide-action{font-size:11px;padding:10px 11px;margin-top:8px}.town-place-sheet{position:absolute;left:0;right:0;bottom:0;top:auto;width:100%;max-height:min(72svh,600px);border-radius:23px 23px 0 0;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -9px 60px #12312791}.town-sheet-handle{display:block;width:40px;height:5px;background:#d5dbd3;border-radius:10px;margin:9px auto 5px;flex-shrink:0}.town-sheet-gallery{height:150px;min-height:150px}.town-sheet-dots{top:139px}.town-sheet-body{padding:12px 17px 20px}.town-sheet-body h2{font-size:22px;margin:9px 0 6px}.town-sheet-description{font-size:12px}.town-sheet-note{font-size:10px}.town-sheet-actions{margin-top:11px}.town-pin-dot{width:46px;height:46px}.town-pin-dot span{font-size:18px}.town-pin-name{font-size:12px;padding:6px 9px;max-width:170px}.town-pin.marker-mini .town-pin-dot{width:39px;height:39px}.town-atmosphere{background:linear-gradient(180deg,#06372992 0%,#06372935 29%,transparent 53%),linear-gradient(0deg,#0e3e3262,transparent 20%)}.town-guide-card.sheet-open,.town-stopbar.sheet-open,.town-footnote.sheet-open{display:none}}
@media(max-width:360px){.town-zones button{font-size:9px}.town-sheet-gallery{height:128px;min-height:128px}.town-sheet-dots{top:115px}.town-guide-card{width:225px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Contextual real-world photography to complement the illustrated atlas. */
.town-guide-card{display:grid;grid-template-columns:68px minmax(0,1fr);column-gap:12px;align-items:center}
.guide-photo{grid-column:1;grid-row:1;width:68px;height:77px;object-fit:cover;border-radius:12px;display:block}
.guide-info{grid-column:2;grid-row:1;min-width:0}
.guide-action{grid-column:1/-1}
@media(max-width:700px){.town-guide-card{grid-template-columns:49px minmax(0,1fr);column-gap:9px}.guide-photo{width:49px;height:63px;border-radius:9px}.guide-info strong{font-size:11px}.guide-action{margin-top:8px}}

/* Tarija Town V32.6 — 11 marcadores permanentes, con identificación por categoría */
.town-pin{transition:filter .22s ease, opacity .22s ease}
.town-pin.outside-zone{opacity:.84}
.town-pin.outside-zone:hover,.town-pin.outside-zone:focus-visible{opacity:1}
.town-pin.outside-zone .town-pin-name{font-size:12px;padding:6px 10px}
.town-pin-dot{box-shadow:0 6px 17px #083d326b,0 0 0 1px #ffffff50}
.town-pin.selected{z-index:12!important}
.town-pin.selected .town-pin-name{border-color:#dff0e5}
.town-total-pins{position:absolute;top:19px;right:22px;z-index:7;background:#fffffff0;color:#275e43;border:1px solid #e3ece1;padding:10px 13px;font-size:11px;font-weight:900;border-radius:99px;box-shadow:0 5px 16px #1b493333;pointer-events:none}
@media(max-width:700px){
 .town-total-pins{top:163px;left:12px;right:auto;font-size:10px;padding:6px 9px}
 .town-pin-dot{width:42px;height:42px;border-width:2px}
 .town-pin-dot span{font-size:17px}
 .town-pin-name{font-size:11px;max-width:125px;padding:5px 8px}
 .town-pin.outside-zone .town-pin-name{font-size:10px;max-width:115px;padding:5px 7px}
 .town-pin::before{top:38px}
}
@media(max-width:420px){
 .town-pin-name{max-width:105px;font-size:10px}
 .town-pin.outside-zone .town-pin-name{max-width:102px}
}

/* V32.7: pin → zoom → nombre. Panel breve, sin links a proveedores. */
.town-place-sheet.name-only{top:auto;bottom:116px;right:clamp(18px,4vw,72px);width:min(380px,calc(100% - 36px));height:auto;max-height:none;min-height:0;border-radius:22px;overflow:visible}
.town-place-sheet.name-only .town-sheet-gallery,.town-place-sheet.name-only .town-sheet-dots,.town-place-sheet.name-only .town-sheet-handle,.town-place-sheet.name-only .town-sheet-tag,.town-place-sheet.name-only .town-sheet-location,.town-place-sheet.name-only .town-sheet-description,.town-place-sheet.name-only .town-sheet-note{display:none!important}
.town-place-sheet.name-only .town-sheet-body{padding:22px 21px 19px;overflow:visible}
.town-place-sheet.name-only .town-sheet-body h2{font:800 clamp(20px,2.1vw,28px)/1.18 system-ui,-apple-system,'Segoe UI',sans-serif;margin:0;padding-right:35px;color:#12452f}
.town-place-sheet.name-only .town-sheet-actions{margin-top:14px}
.town-place-sheet.name-only .town-sheet-actions[hidden]{display:none!important}
.town-place-sheet.name-only .town-sheet-primary{flex:1;text-align:center}
.town-guide-card.sheet-open{display:none!important}
@media(max-width:700px){
 .town-place-sheet.name-only{left:12px;right:12px;width:auto;bottom:92px;border-radius:20px;max-height:none;padding-bottom:env(safe-area-inset-bottom)}
 .town-place-sheet.name-only .town-sheet-body{padding:18px 17px}
 .town-place-sheet.name-only .town-sheet-body h2{font-size:19px}
 .town-stopbar{z-index:19}
}
