.gh-map-experience {
  --map-forest: #0e3027;
  --map-gold: #d3b77c;
  --map-cream: #f3f0e3;
  --map-line: #d1c8a426;
  display: block;
  position: relative;
  height: 720px;
  min-height: 620px;
  border: 1px solid #55746138;
  border-radius: 32px;
  overflow: hidden;
  background: var(--map-forest);
  isolation: isolate;
}
.gh-map-experience .map-panel { position: absolute; inset: 0; min-height: 0; }
.gh-map-experience #nortonMap { background: #314b3e; }
.gh-map-experience .map-watermark { color: #ffffff20; font-size: 30px; letter-spacing: 5px; left: 65%; z-index: 420; }
.map-inspector {
  position: absolute;
  z-index: 700;
  left: 20px;
  top: 20px;
  bottom: 20px;
  width: 300px;
  display: flex;
  flex-direction: column;
  padding: 20px 18px 201px;
  border: 1px solid #cdbb8c38;
  border-radius: 26px;
  background: #0e3027f7;
  box-shadow: 0 14px 38px #071b2240;
  color: var(--map-cream);
}
.map-inspector-brand { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 17px; border-bottom: 1px solid var(--map-line); }
.map-inspector-brand img { width: 127px; height: auto; }
.map-inspector-brand > div { display: flex; flex-direction: column; flex-shrink: 0; gap: 3px; }
.map-inspector-brand strong { font-size: 12px; line-height: 1.3; font-weight: 500; letter-spacing: 3px; color: var(--map-gold); }
.map-inspector-brand span { font-size: 8px; line-height: 1.5; color: #c2cebc; letter-spacing: .6px; }
.map-inspector-heading { padding-top: 19px; }
.map-inspector-heading h3 { font-size: 27px; line-height: 1.25; letter-spacing: -.7px; }
.map-inspector-heading p { font-size: 9px; margin-top: 7px; line-height: 1.7; color: #bdccb9; }
.map-inspector-tabs { display: flex; padding: 4px; border: 1px solid var(--map-line); border-radius: 15px; margin: 17px 0; gap: 3px; background: #071f191f; }
.map-inspector-tabs button { background: transparent; border: 0; border-radius: 11px; color: #c3cebb; padding: 10px 7px; flex: 1; font-size: 10px; font-weight: 500; line-height: 1.5; }
.map-inspector-tabs button[aria-selected="true"] { background: var(--map-gold); color: #14372b; }
.map-explore-panel { min-height: 0; flex: 1; display: flex; flex-direction: column; gap: 14px; }
.map-explore-panel[hidden], .map-layer-panel[hidden], .map-detail[hidden] { display: none; }
.map-search { display: flex; gap: 9px; align-items: center; padding: 11px 12px; background: #ffffff04; border: 1px solid #c7b87959; border-radius: 13px; }
.map-search svg { width: 16px; height: 16px; color: var(--map-gold); fill: none; stroke: currentColor; stroke-width: 1.6; flex-shrink: 0; }
.map-search input { min-width: 0; width: 100%; border: 0; color: var(--map-cream); font-size: 10px; line-height: 1.6; background: transparent; outline-offset: 1px; }
.map-search input::placeholder { color: #97ad98; opacity: 1; }
.map-search:focus-within { border-color: var(--map-gold); box-shadow: 0 0 0 2px #d3b77c18; }
.map-places { min-height: 0; flex: 1; overflow: auto; overscroll-behavior: contain; padding-right: 2px; scrollbar-width: thin; scrollbar-color: #b4a76c55 transparent; }
.map-places::-webkit-scrollbar, .map-layer-panel::-webkit-scrollbar { width: 3px; }
.map-places::-webkit-scrollbar-thumb, .map-layer-panel::-webkit-scrollbar-thumb { background: #b4a76c55; border-radius: 10px; }
.map-places h4, .map-place-list-label, .map-group-title { font: 500 10px/1.5 var(--body); color: var(--map-gold); margin: 9px 0 11px; }
.map-places > button, .map-place-card { width: 100%; min-height: 60px; display: flex; align-items: center; gap: 10px; padding: 9px; text-align: left; border: 1px solid var(--map-line); background: #ffffff03; color: var(--map-cream); border-radius: 14px; margin-bottom: 8px; transition: background .18s, border-color .18s; }
.map-places > button:hover, .map-place-card:hover { background: #b7cfa910; border-color: #c6b67d66; }
.map-places > button.active, .map-place-card.active, .map-places > button[aria-selected="true"] { background: #d3b77c14; border-color: #d3b77c88; }
.map-places button img, .map-place-thumb { width: 40px; height: 40px; border-radius: 10px; object-fit: cover; flex-shrink: 0; }
.map-place-info { min-width: 0; flex: 1; }
.map-places button strong { display: block; font-size: 10px; line-height: 1.5; font-weight: 500; }
.map-places button small { display: block; color: #9bb298; font-size: 8px; line-height: 1.55; margin-top: 3px; }
.map-place-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; background: var(--map-gold); margin: 0 3px 0 auto; }
.map-place-icon { width: 40px; height: 40px; border: 1px solid #d3b77c66; border-radius: 10px; display: grid; place-items: center; color: var(--map-gold); font-size: 12px; flex-shrink: 0; }
.map-places .map-empty { padding: 22px 7px; color: #c2cebc; font-size: 10px; line-height: 1.8; }
.map-layer-panel { min-height: 0; overflow: auto; flex: 1; padding-right: 3px; scrollbar-width: thin; scrollbar-color: #b4a76c55 transparent; }
.map-layer-panel h4 { margin: 0 0 13px; font: 500 10px/1.5 var(--body); color: var(--map-gold); }
.map-layer-panel h4:not(:first-child) { margin-top: 21px; }
.map-tile-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.map-tile-options button { text-align: left; display: flex; flex-direction: column; gap: 7px; padding: 7px 7px 8px; border: 1px solid var(--map-line); border-radius: 12px; color: #bfccb9; background: #ffffff03; font-size: 9px; }
.map-tile-options button.active { border-color: var(--map-gold); color: var(--map-gold); }
.map-tile-preview { display: block; width: 100%; height: 35px; border-radius: 7px; overflow: hidden; }
.map-tile-preview.satellite { background: url('assets/aerial.webp') 50% 56% / cover; filter: saturate(.7); }
.map-tile-preview.road { background-color: #cbd4bf; background-image: linear-gradient(31deg, transparent 39%, #f8f1d7 40%, #f8f1d7 45%, transparent 46%),linear-gradient(115deg,transparent 45%,#8ba593 46%,#8ba593 51%,transparent 52%); }
.map-layer-option { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 9px 0; position: relative; color: #d1dbca; font-size: 10px; cursor: pointer; }
.map-layer-option input { position: absolute; right: 0; width: 32px; height: 20px; margin: 0; opacity: 0; cursor: pointer; z-index: 2; }
.map-layer-option i { display: block; width: 31px; height: 18px; border-radius: 20px; background: #587062; flex-shrink: 0; position: relative; transition: background .18s; }
.map-layer-option i::before { content: ''; position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; border-radius: 50%; background: #e8ecdf; transition: transform .18s; }
.map-layer-option input:checked + i { background: var(--map-gold); }
.map-layer-option input:checked + i::before { transform: translateX(13px); background: #11372a; }
.map-layer-option input:focus-visible + i { outline: 2px solid var(--map-gold); outline-offset: 4px; }
.map-opacity { display: flex; flex-direction: column; gap: 12px; border-top: 1px solid var(--map-line); margin-top: 10px; padding-top: 15px; font-size: 9px; color: #d1dbca; }
.map-opacity > span { display: flex; justify-content: space-between; gap: 12px; }
.map-opacity output { color: var(--map-gold); font-size: 9px; }
.map-opacity input { width: 100%; height: 4px; accent-color: var(--map-gold); margin: 5px 0; cursor: pointer; }
.map-detail { position: absolute; z-index: 710; left: 39px; bottom: 37px; width: 262px; color: var(--map-cream); background: #0e3027; border-top: 1px solid var(--map-line); padding-top: 16px; display: grid; grid-template-columns: 55px 1fr; align-items: center; gap: 8px 11px; }
.map-detail > img { width: 55px; height: 55px; object-fit: cover; border-radius: 12px; }
.map-detail-copy { min-width: 0; }
.map-detail .place-type { display: block; font-size: 7px; color: #a5ba9d; line-height: 1.6; margin: 0 0 4px; }
.map-detail h3 { font-size: 19px; line-height: 1.2; letter-spacing: -.2px; }
.map-detail > p { grid-column: 1 / -1; font-size: 9px; color: #bdceb5; line-height: 1.8; }
.map-detail .text-link { grid-column: 1 / -1; justify-self: start; color: var(--map-gold); font-size: 9px; gap: 12px; line-height: 1.4; padding: 4px 0; }
.map-detail .text-link span { font-size: 15px; }
.map-detail-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 3px 12px; }
.map-detail-actions .text-link { font-size: 8px; gap: 7px; }
.map-toolbar { position: absolute; top: 20px; right: 20px; z-index: 700; display: flex; gap: 8px; }
.map-toolbar button { display: grid; place-items: center; width: 43px; height: 43px; padding: 12px; border: 1px solid #c7b98552; border-radius: 14px; background: #0e3027f0; color: var(--map-gold); box-shadow: 0 4px 16px #081f2633; }
.map-toolbar button:hover { background: #25483b; border-color: var(--map-gold); }
.map-toolbar svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.map-status { position: absolute; z-index: 700; left: 340px; bottom: 20px; min-height: 35px; max-width: calc(100% - 430px); display: flex; align-items: center; gap: 9px; font-size: 9px; line-height: 1.5; padding: 10px 14px; border: 1px solid var(--map-line); border-radius: 13px; color: #d4ddca; background: #0e3027e8; backdrop-filter: blur(5px); }
.map-status > span:last-child { color: var(--map-gold); }
.map-status-dot { width: 6px; height: 6px; border-radius: 50%; background: #b4d278; flex-shrink: 0; }
.map-status-divider { height: 12px; width: 1px; background: #d3b77c77; }
.gh-map-experience .leaflet-control-zoom { margin: 0 18px 21px 0 !important; border-radius: 15px; border: 1px solid #c7b9856b !important; box-shadow: 0 4px 16px #071a2544 !important; }
.gh-map-experience .leaflet-control-zoom a { width: 42px !important; height: 40px !important; line-height: 40px !important; color: var(--map-gold) !important; background: #0e3027f0 !important; font-size: 22px !important; }
.gh-map-experience .leaflet-control-zoom a:hover { background: #25483b !important; }
.gh-map-experience .leaflet-control-zoom a:first-child { border-bottom: 1px solid #c7b98542 !important; }
.gh-map-experience .leaflet-control-scale { margin: 0 19px 113px 0 !important; }
.gh-map-experience .leaflet-control-scale-line { background: #0e3027df; border: 1px solid #c7b985; border-top: none; color: #eee9d9; font-size: 9px; line-height: 1.5; text-shadow: none; padding: 1px 7px; border-radius: 0 0 4px 4px; }
.gh-map-experience .leaflet-popup-content-wrapper { background: #103a2e; color: #eee9d9; border: 1px solid #c7b98566; }
.gh-map-experience .leaflet-popup-tip { background: #103a2e; }
.gh-map-experience .leaflet-popup-close-button { color: var(--map-gold) !important; }
.gh-map-experience.expanded, .gh-map-experience.is-expanded, .gh-map-experience.is-fullscreen { position: fixed; inset: 14px; z-index: 1200; width: auto; height: auto; max-height: none; margin: 0; border-radius: 25px; }
.gh-map-experience:fullscreen { width: 100%; height: 100%; border-radius: 0; }
body.map-expanded .mobile-dock { visibility: hidden; }
.norton-plan-overlay { position: absolute; overflow: visible; pointer-events: none; }
.norton-label-host { background: transparent; border: 0; }
.norton-zone-label { height: 34px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 128px; max-width: 188px; padding: 0 13px; border-radius: 100px; color: #173c2d; background: #f2f0e4f5; border: 1.5px solid #d8c389; box-shadow: 0 2px 10px #071f2655; font-size: 10px; line-height: 1.4; font-weight: 500; white-space: nowrap; }
.norton-zone-label i { display: block; width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.norton-zone-label.selected { box-shadow: 0 0 0 3px #d8c38944, 0 2px 12px #071f2666; border-color: #ac8656; }
.norton-amenity-dot { width: 23px; height: 23px; display: grid; place-items: center; border: 1.5px solid #fbf2d8; border-radius: 50%; background: var(--point-color, #c5a478); color: #13382c; font: 600 9px/1 var(--body); box-shadow: 0 2px 8px #061b2555; }
.norton-photo-host { width: 112px; height: 82px; background: transparent; border: 0; }
.norton-photo-line { position: absolute; top: 0; left: 0; overflow: visible; pointer-events: none; fill: none; stroke: #e8cd98; stroke-width: 1.5; }
.norton-photo-line circle { fill: #e8cd98; stroke: #173c2d; stroke-width: 1.1; }
.norton-photo-card { display: flex; flex-direction: column; width: 112px; height: 82px; border: 2px solid #e8d9b4; border-radius: 13px; overflow: hidden; background: #10392ded; color: #ece5ce; box-shadow: 0 4px 15px #06202440; }
.norton-photo-card img { width: 100%; height: 57px; object-fit: cover; }
.norton-photo-card small { flex: 1; display: flex; align-items: center; justify-content: center; padding: 1px 5px; line-height: 1.25; font-size: 7px; text-align: center; font-weight: 500; }
.norton-photo-host:hover .norton-photo-card { border-color: #fff3c9; box-shadow: 0 0 0 3px #ecd9a929,0 4px 15px #06202450; }
@media (max-width: 1100px) {
  .gh-map-experience { height: 690px; }
  .map-inspector { left: 16px; top: 16px; bottom: 16px; width: 285px; padding: 18px 16px 200px; }
  .map-inspector-brand img { width: 119px; }
  .map-inspector-heading h3 { font-size: 25px; }
  .map-detail { left: 33px; bottom: 34px; width: 250px; }
  .map-toolbar { top: 16px; right: 16px; }
  .map-status { left: 319px; bottom: 16px; max-width: calc(100% - 408px); }
}
@media (max-width: 800px) {
  .gh-map-experience { display: flex; flex-direction: column; height: auto; min-height: 0; border-radius: 26px; }
  .gh-map-experience .map-panel { position: relative; inset: auto; flex: 0 0 480px; height: 480px; min-height: 480px; order: 1; }
  .map-inspector { position: relative; inset: auto; width: 100%; padding: 19px; border: 0; border-radius: 0; box-shadow: none; order: 0; background: var(--map-forest); }
  .map-inspector-brand { padding-bottom: 14px; }
  .map-inspector-brand img { width: 139px; }
  .map-inspector-brand > div { flex-direction: row; align-items: center; gap: 13px; }
  .map-inspector-brand span { font-size: 9px; }
  .map-inspector-heading { padding-top: 15px; }
  .map-inspector-heading h3 { font-size: 26px; }
  .map-inspector-heading p { font-size: 9px; margin-top: 5px; }
  .map-inspector-tabs { margin: 14px 0; }
  .map-inspector-tabs button { padding: 10px; font-size: 10px; }
  .map-explore-panel { gap: 13px; }
  .map-search { padding: 10px 12px; }
  .map-search input { font-size: 11px; }
  .map-places { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 3px; scrollbar-width: none; }
  .map-places::-webkit-scrollbar { display: none; }
  .map-places > button, .map-place-card { width: 190px; flex: 0 0 190px; min-height: 62px; margin: 0; }
  .map-places button strong { font-size: 10px; }
  .map-places button small { font-size: 8px; }
  .map-places h4, .map-place-list-label, .map-group-title { display: none; }
  .map-layer-panel { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
  .map-layer-panel h4 { grid-column: 1 / -1; font-size: 10px; margin: 0 0 12px; }
  .map-tile-options { grid-column: 1 / -1; }
  .map-tile-options button { flex-direction: row; align-items: center; font-size: 10px; gap: 11px; padding: 7px; }
  .map-tile-preview { width: 55px; height: 32px; flex-shrink: 0; }
  .map-opacity { grid-column: 1 / -1; }
  .map-toolbar { right: 14px; top: 14px; gap: 7px; }
  .map-toolbar button { width: 39px; height: 39px; border-radius: 12px; padding: 10px; }
  .map-status { left: 14px; bottom: 16px; max-width: calc(100% - 88px); font-size: 8px; padding: 9px 11px; gap: 7px; }
  .map-detail { position: relative; inset: auto; width: 100%; order: 2; padding: 21px 19px; border-top: 1px solid var(--map-line); grid-template-columns: 82px 1fr; gap: 8px 16px; }
  .map-detail > img { width: 82px; height: 75px; grid-row: 1 / 3; border-radius: 15px; }
  .map-detail .place-type { font-size: 8px; }
  .map-detail h3 { font-size: 23px; }
  .map-detail > p { grid-column: 2; font-size: 9px; }
  .map-detail .text-link { grid-column: 2; font-size: 9px; }
  .gh-map-experience .leaflet-control-zoom { margin: 0 14px 16px 0 !important; }
  .gh-map-experience .leaflet-control-zoom a { width: 38px !important; height: 37px !important; line-height: 37px !important; }
  .gh-map-experience .leaflet-control-scale { margin: 0 14px 102px 0 !important; }
  .gh-map-experience .map-watermark { left: 50%; font-size: 24px; letter-spacing: 3px; }
  .gh-map-experience.expanded, .gh-map-experience.is-expanded, .gh-map-experience.is-fullscreen { inset: 0; border-radius: 0; height: 100dvh; overflow: auto; }
  .gh-map-experience.expanded .map-panel, .gh-map-experience.is-expanded .map-panel, .gh-map-experience.is-fullscreen .map-panel, .gh-map-experience:fullscreen .map-panel { flex: 1 0 390px; min-height: 390px; height: auto; }
  .gh-map-experience.expanded .map-inspector, .gh-map-experience.is-expanded .map-inspector, .gh-map-experience.is-fullscreen .map-inspector, .gh-map-experience:fullscreen .map-inspector { flex-shrink: 0; padding: 13px 15px; }
  .gh-map-experience.expanded .map-inspector-brand, .gh-map-experience.is-expanded .map-inspector-brand, .gh-map-experience.is-fullscreen .map-inspector-brand, .gh-map-experience:fullscreen .map-inspector-brand { padding-bottom: 9px; }
  .gh-map-experience.expanded .map-inspector-heading, .gh-map-experience.is-expanded .map-inspector-heading, .gh-map-experience.is-fullscreen .map-inspector-heading, .gh-map-experience:fullscreen .map-inspector-heading { display: none; }
  .gh-map-experience.expanded .map-inspector-tabs, .gh-map-experience.is-expanded .map-inspector-tabs, .gh-map-experience.is-fullscreen .map-inspector-tabs, .gh-map-experience:fullscreen .map-inspector-tabs { margin: 10px 0; }
  .gh-map-experience.expanded .map-detail, .gh-map-experience.is-expanded .map-detail, .gh-map-experience.is-fullscreen .map-detail, .gh-map-experience:fullscreen .map-detail { padding: 13px 15px; flex-shrink: 0; }
  .gh-map-experience.expanded .map-detail > p, .gh-map-experience.is-expanded .map-detail > p, .gh-map-experience.is-fullscreen .map-detail > p, .gh-map-experience:fullscreen .map-detail > p { display: none; }
  .norton-zone-label { min-width: 107px; max-width: 145px; font-size: 8px; padding: 0 9px; gap: 6px; height: 30px; }
  .norton-zone-label i { width: 6px; height: 6px; }
  .norton-photo-host, .norton-photo-card { width: 75px; height: 61px; }
  .norton-photo-card { border-radius: 10px; border-width: 1.5px; }
  .norton-photo-card img { height: 41px; }
  .norton-photo-card small { font-size: 6px; padding: 1px 3px; }
}
@media (max-width: 540px) {
  .gh-map-experience { border-radius: 23px; }
  .map-inspector { padding: 16px; }
  .map-inspector-brand img { width: 116px; }
  .map-inspector-brand > div { flex-direction: column; align-items: flex-start; gap: 4px; }
  .map-inspector-brand strong { font-size: 11px; }
  .map-inspector-brand span { font-size: 8px; }
  .map-inspector-heading h3 { font-size: 26px; }
  .map-layer-panel { column-gap: 15px; }
  .map-layer-option { font-size: 9px; gap: 8px; }
  .map-tile-options button { font-size: 9px; gap: 7px; }
  .map-tile-preview { width: 47px; }
  .map-detail { padding: 18px 16px; grid-template-columns: 67px 1fr; gap: 7px 13px; }
  .map-detail > img { width: 67px; height: 67px; }
  .map-detail h3 { font-size: 21px; }
  .map-detail > p { grid-column: 1 / -1; }
  .map-detail .text-link { grid-column: 1 / -1; }
  .map-status { max-width: calc(100% - 85px); font-size: 8px; }
  .map-status-divider { display: none; }
  .map-status > span:last-child { display: none; }
}
@media (prefers-reduced-motion: reduce) { .map-place-card, .map-places > button, .map-layer-option i, .map-layer-option i::before { transition: none; } }
@media print { .map-inspector, .map-toolbar, .map-status, .map-detail { display: none !important; } .gh-map-experience { height: 450px; } }

#mapExpand {font-size:25px;line-height:1} .gh-map-experience .leaflet-control-attribution {display:none!important}

.norton-amenity-dot {font-size:11px;line-height:11px}
