/* Proposta digital: geografia OSM, cores oficiais e grafismo original. */
.location-section{display:block}
.location-heading{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-bottom:40px}
.location-heading>img{width:110px;height:auto}
.location-heading h2{margin-bottom:20px}
.location-atlas{border:1px solid var(--border-subtle);background:var(--ui-paper)}
.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px}
.map-toolbar>p{font-size:14px;margin:0}
.map-switch{display:flex;margin:0;padding:4px;gap:4px;border:1px solid var(--brand-blue);border-radius:30px;flex-shrink:0}
.map-switch[hidden]{display:none}
.map-switch label{position:relative;cursor:pointer}
.map-switch input{position:absolute;opacity:0;width:1px;height:1px}
.map-switch span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:24px;font-size:13px;color:var(--brand-blue)}
.map-switch input:checked+span{background:var(--brand-blue);color:white}
.map-switch input:focus-visible+span{outline:2px solid var(--ui-ink);outline-offset:3px}
.map-canvas{position:relative;aspect-ratio:3/2;isolation:isolate;background:var(--brand-blue);overflow:hidden}
.map-geography{display:block;width:100%;height:100%;object-fit:contain}
.map-ocean{position:absolute;top:12%;left:50%;transform:translateX(-50%);font-size:clamp(11px,1.3vw,17px);letter-spacing:.14em;color:white;white-space:nowrap}
.map-north{position:absolute;top:20px;right:24px;display:grid;justify-items:center;color:white;font-size:12px;font-weight:600}
.map-north span{font-size:28px;line-height:1.2}
.map-hotel{position:absolute;transform:translate(-50%,-50%);display:grid;justify-items:center;text-decoration:none;color:var(--ui-ink);z-index:2}
.map-hotel-symbol{display:grid;place-items:center;width:56px;height:56px;background:var(--brand-yellow);border:2px solid var(--ui-ink);border-radius:50%;box-shadow:0 3px 0 #16161626}
.map-hotel-symbol img{width:34px;height:34px}
.map-hotel-name{position:absolute;top:calc(100% + 6px);white-space:nowrap;background:var(--ui-paper);padding:4px 12px;border-radius:3px;font-size:14px;font-weight:600}
.map-hotel:hover .map-hotel-symbol{background:#ffd15b}
.map-place{position:absolute;transform:translateX(-50%);font-size:clamp(10px,1.1vw,14px);line-height:1.4;text-align:center;font-weight:600;color:#161616;white-space:nowrap;padding-top:10px;text-shadow:0 1px 2px #ead8c9,0 -1px 2px #ead8c9}
.map-place:before{content:'';position:absolute;width:5px;height:5px;background:#161616;border-radius:50%;top:0;left:calc(50% - 2.5px)}
.map-place[hidden]{display:none}
.map-canvas[data-view="region"] .map-ocean{left:35%;top:8%}
.map-hotel{width:48px;height:48px;place-items:center}
.map-hotel .map-hotel-symbol{width:28px;height:28px;border-width:1.5px;box-shadow:0 2px 0 #16161626}
.map-hotel .map-hotel-symbol img{width:17px;height:17px}
.map-hotel .map-hotel-name{top:calc(50% + 18px);font-size:12px;padding:2px 7px}
.map-barra,.map-barrinha{background:#f2eeebe8;border-radius:3px;padding:3px 7px;margin-top:9px;text-shadow:none}
.map-barra:before,.map-barrinha:before{top:-9px}
.map-caption{display:flex;align-items:start;justify-content:space-between;gap:24px;padding:16px 24px}
.map-caption p,.map-caption a{font-size:11px;line-height:1.7;margin:0;color:var(--text-secondary)}
.map-caption p{max-width:55ch}
.map-caption a{flex-shrink:0;text-underline-offset:3px}
.location-arrival{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:32px;background:var(--brand-blue);color:white;margin-top:20px}
.location-arrival .eyebrow{color:white;margin-bottom:12px;font-size:11px}
.location-arrival address{font-size:14px;font-style:normal;line-height:1.8}
.location-arrival .button{background:var(--brand-yellow);color:var(--ui-ink);font-size:13px;flex-shrink:0}
@media(max-width:1100px){.map-toolbar{align-items:start;flex-direction:column}.location-arrival{align-items:start;flex-direction:column}.map-caption{flex-direction:column;gap:8px}}
@media(max-width:600px){.location-heading{gap:16px;margin-bottom:28px}.location-heading>img{width:62px;align-self:start}.map-toolbar{padding:16px}.map-switch{width:100%}.map-switch label{flex:1}.map-switch span{padding:0 10px;font-size:12px}.map-canvas{aspect-ratio:3/2}.map-hotel-symbol{width:46px;height:46px}.map-hotel-symbol img{width:28px;height:28px}.map-hotel-name{font-size:11px;padding:3px 8px}.map-north{top:10px;right:12px;font-size:10px}.map-north span{font-size:21px}.map-ocean{letter-spacing:.04em;left:49%;top:9%}.map-caption{padding:14px 16px}.map-barra{transform:translateX(-25%)}.map-barrinha{margin-top:29px}.map-barrinha:before{top:-29px}.location-arrival{padding:24px 18px}.location-arrival .button{width:100%;font-size:12px}.location-arrival address{font-size:13px}}
