/* A quieter architectural presentation, with browsing controls always in reach. */
.hotel-view{--browse-height:140px;scroll-padding-block-start:calc(var(--browse-height) + 20px)}
.browser-anchor{height:0;pointer-events:none}
.residence-browser-controls{position:sticky;top:calc(-1 * var(--hotel-inset,28px));z-index:9;padding:0 0 15px;margin-bottom:0;background:#092a2efa;backdrop-filter:blur(18px);transition:box-shadow 240ms}
.residence-browser-controls.is-pinned{box-shadow:0 12px 22px -16px #001418f0}
.residence-navigation{margin-bottom:15px}
.catalog-results{margin-top:9px;margin-bottom:16px}
.apartment-card,.floor-choices,.hotel-floor-panel{scroll-margin-block-start:calc(var(--browse-height) + 18px)}
.hotel-sidebar{top:calc(var(--browse-height) + 18px)}
.residences-cover{border-color:#abc1ae65;border-radius:14px;box-shadow:0 16px 34px -16px #00191ed9}
.residences-intro-copy>p{max-width:32ch}
.apartment-card{border-radius:12px}
.apartment-card-art{background:radial-gradient(ellipse at 50% 78%,#d4ddd185,transparent 68%),#f4f7f1}
.card-floor{font-size:13px;color:#486c5e}
.apartment-type{color:#456c5a;font-size:13px}
.apartment-card-bottom{color:#4e725d}
.apartment-card.is-current{border-color:#c9af74;box-shadow:0 0 0 2px #c9af7438}
.apartment-card.is-current .apartment-card-open{background:#dfd0ac;border-color:#c6b27e;color:#123f34}
.apartment-card.is-current .card-code{background:#cdbc91;color:#173e35}
.apartment-card.is-current:hover .apartment-card-open{transform:none}
.plan-stage{isolation:isolate}
.plan-peek{position:absolute;z-index:3;width:208px;pointer-events:none;padding:11px 14px;border-radius:8px;border:1px solid #c3b28688;background:#103832f2;box-shadow:0 8px 25px #0a32294d;color:#f6f7ed;opacity:0;transform:translateY(5px);transition:opacity 140ms,transform 240ms var(--ease-out)}
.plan-peek.visible{opacity:1;transform:translateY(0)}
.plan-peek strong{display:block;font:normal 21px/1.1 Georgia,serif}
.plan-peek span{display:block;font-size:12px;margin-top:6px;color:#d0ded0}
.hotel-room.is-previewed polygon{fill:#2c93703b;stroke:#2b785a;stroke-width:2}
.hotel-room.is-previewed .plan-room-label rect{fill:#e7d5a4;stroke:#39604a}
.hotel-room.is-previewed .plan-room-label text{fill:#15372d}
.apartment-chip.is-previewed{background:#d7e5d3;color:#143d31;border-color:#d9c89f}
.apartment-chip.is-previewed span{color:#38624e}
.apartment-chip.is-selected{box-shadow:inset 0 -3px #a88b4d}
.apt-large-layout{background:radial-gradient(ellipse,#f7f9f2b3,transparent 70%)}
.apt-dialog-heading{border-bottom-color:#cbd7c7}
.apt-dialog-heading h2{font-variant-numeric:lining-nums}
.apt-info-column>p{color:#526e59}
.apt-info-column .eyebrow{color:#57745b}
.apt-info-column .apt-disclaimer{color:#60745f}

/* The image gets the space; navigation sits in a predictable footer. */
.media-dialog{background:radial-gradient(ellipse at 50% 45%,#16332f,#051d21 76%)}
.gallery-shell{padding:30px clamp(22px,5vw,88px) 22px;gap:0;max-width:1800px;margin-inline:auto}
.gallery-shell .media-header{margin:0 0 19px;gap:20px;padding-right:65px;min-height:63px;flex-shrink:0}
.gallery-shell .media-header h2{font-size:clamp(25px,2.3vw,34px);line-height:1.15;letter-spacing:-.35px}
.gallery-shell .media-header .eyebrow{color:#c6b98e;font-size:12px;letter-spacing:2.1px}
.gallery-shell .media-header small{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:14px;color:#dbe8d9;padding:8px 12px;border:1px solid #a4b99e45;border-radius:22px}
.gallery-shell .media-stage{background:#0014164a;border:1px solid #9db39b24;border-radius:12px;touch-action:pan-y pinch-zoom}
.gallery-shell .media-stage img{user-select:none;-webkit-user-drag:none}
.gallery-footer{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:24px;padding:16px 0 13px;flex-shrink:0}
.gallery-footer>div{text-align:center}
.gallery-footer .media-caption{margin:0;padding:0;min-height:0;color:#d0decf;font-size:14px;line-height:1.55}
.gallery-footer .gallery-step{position:static;width:48px;height:48px;background:#173b34;border:1px solid #8da48e65;border-radius:50%;font-size:30px;display:grid;place-items:center}
.gallery-footer .gallery-step:hover{background:#d9c89f;color:#123d31}
.gallery-hint{display:block;color:#8eac99;font-size:12px;margin-top:4px}
.touch-hint{display:none}
.gallery-shell .media-thumbs{flex-shrink:0;max-width:100%;gap:9px;padding-inline:6px;border-radius:9px;background:#00171966;border:1px solid #8eac981c}
.gallery-shell .media-thumbs button{width:82px;min-width:82px;height:54px;border-radius:5px}
.gallery-loading{position:absolute;bottom:20px;left:50%;translate:-50% 0;padding:9px 14px;white-space:nowrap;border:1px solid #b3c4a959;border-radius:20px;font-size:13px;background:#082d2ce8;color:#edf3e7;opacity:0;transition:opacity 160ms;pointer-events:none}
.media-stage[aria-busy=true] .gallery-loading{opacity:1;transition-delay:350ms}
.detail-tabs button{font-size:15px}
.detail-title .eyebrow{letter-spacing:1.6px}
.photo-tile{border-radius:7px}
.villa-card.is-current{border-color:#d9c89f;box-shadow:0 0 0 2px #d9c89f22}
.villa-card.is-current .card-id{background:#d9c89f;color:#173e35}

@media(hover:none){.touch-hint{display:inline}.key-hint{display:none}.plan-peek{display:none}}
@media(max-width:900px){.hotel-sidebar{top:auto}}
@media(max-width:700px){
  .hotel-view{padding-top:17px}
  .residences-intro{grid-template-columns:minmax(0,1fr) 112px;gap:15px;margin-bottom:13px}
  .residences-intro h1{font-size:27px;line-height:1.04;letter-spacing:-.75px;margin:9px 0 10px}
  .residences-intro-copy .eyebrow{font-size:12px;letter-spacing:1.2px;line-height:1.45}
  .residences-intro-copy>p{display:none}
  .residence-stats{font-size:12px;column-gap:10px;row-gap:4px;margin-top:12px}
  .residence-stats strong{font-size:16px}
  .residences-cover{min-height:166px;border-radius:10px}
  .residences-cover>span{font-size:12px;padding:28px 10px 10px}
  .residence-browser-controls{padding-bottom:10px}
  .residence-navigation{margin-bottom:11px}
  .residence-modes button{font-size:14px;min-height:49px}
  .catalog-toolbar{gap:9px}
  .layout-filter{font-size:14px}
  .layout-filter select{min-height:42px}
  .catalog-results{margin-top:5px;margin-bottom:12px}
  .apartment-card-art{height:183px;padding-top:34px}
  .apartment-card-copy{min-height:72px}
  .apartment-card h2{font-size:20px;white-space:normal}
  .card-floor,.apartment-type{font-size:12px}
  .apartment-card-bottom{font-size:12px}
  .gallery-shell{padding:21px 14px max(15px,env(safe-area-inset-bottom))}
  .gallery-shell .media-header{padding-right:52px;min-height:83px;display:block;margin-bottom:13px}
  .gallery-shell .media-header h2{font-size:25px;margin-top:8px;line-height:1.12}
  .gallery-shell .media-header small{display:inline-block;border:0;border-radius:0;padding:0;margin-top:9px;font-size:13px;color:#b4c8b8}
  .gallery-shell .media-header .eyebrow{font-size:12px;letter-spacing:1.5px}
  .gallery-shell .media-stage{border-radius:9px;min-height:160px}
  .gallery-footer{grid-template-columns:44px minmax(0,1fr) 44px;gap:11px;padding:12px 0 10px}
  .gallery-footer .gallery-step{width:44px;height:44px}
  .gallery-footer .media-caption{font-size:12px;line-height:1.45}
  .gallery-hint{font-size:12px;margin-top:5px}
  .gallery-shell .media-thumbs{gap:7px;padding:6px;justify-content:flex-start}
  .gallery-shell .media-thumbs button{width:62px;min-width:62px;height:44px}
  .gallery-loading{bottom:12px;font-size:12px}
}
@media(max-width:370px){
  .residences-intro{grid-template-columns:minmax(0,1fr) 100px;gap:11px}
  .residences-intro h1{font-size:25px}
  .residence-stats>span:last-child{display:none}
  .residence-modes{gap:10px}
  .residence-modes button{font-size:13px}
  .apartment-card h2{font-size:20px}
  .apartment-card-copy{min-height:91px}
}
@media(max-height:600px) and (orientation:landscape){
  .gallery-shell{padding:12px 65px}
  .gallery-shell .media-header{min-height:0;margin-bottom:9px;display:flex}
  .gallery-shell .media-header h2{font-size:21px;margin-top:3px}
  .gallery-shell .media-header .eyebrow,.gallery-hint{display:none}
  .gallery-shell .media-stage{min-height:80px}
  .gallery-footer{padding:8px 0;gap:15px;grid-template-columns:38px 1fr 38px}
  .gallery-footer .gallery-step{width:38px;height:38px}
  .gallery-shell .media-thumbs button{height:34px;width:52px;min-width:52px}
}

/* Keep the architecture clear: all map navigation lives outside the image. */
.explorer{display:flex;flex-direction:column;min-height:0;background:#092a2e}
.map-topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px 28px;padding:19px 28px 20px;flex-shrink:0;border-bottom:1px solid #97b5a828;background:#092a2e}
.map-topbar .map-heading{position:static;display:block;pointer-events:auto;opacity:1;text-shadow:none;min-width:0}
.map-topbar .map-heading .eyebrow{font-size:12px;letter-spacing:1.8px;color:#b5c8ae}
.map-topbar .map-heading h1{font:normal 30px/1.12 Georgia,serif;letter-spacing:-.65px;margin:7px 0 0;color:#f0f5eb}
.map-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hotel-explore-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:11px 15px;background:#e0d2ad;color:#153c32;border:1px solid #ebdfbe;border-radius:8px;font-size:14px;font-weight:500;box-shadow:0 4px 12px #00191b22}
.hotel-explore-button svg{width:20px;height:20px;flex-shrink:0}
.hotel-explore-button .hotel-entry-count{border-left:1px solid #6f80654d;padding-left:10px;font-size:13px;font-variant-numeric:tabular-nums}
.hotel-explore-button:hover,.hotel-explore-button.is-highlighted{background:#f2e8ca;box-shadow:0 5px 16px #00171c55}
.map-actions .angle-button{position:static;min-height:46px;padding:11px 15px;border:1px solid #90aa9459;border-radius:8px;background:#143b38;color:#dce8d9;font-size:14px;backdrop-filter:none}
.map-actions .angle-button:hover{background:#255047;border-color:#b9c7a7}
.explorer .map-viewport{flex:1;min-height:0;height:auto}
.map-shade{background:linear-gradient(0deg,#06241c15,transparent 15%)}
.map-bottom-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 25px;border-top:1px solid #a8c0aa22;background:#0b292c;flex-shrink:0;z-index:5}
.map-bottom-bar .map-help{position:static;display:block;pointer-events:auto;font-size:13px;line-height:1.5;color:#b8cdbc;text-shadow:none}
.map-bottom-bar .map-controls{position:static;display:flex;flex-shrink:0;box-shadow:none;border:1px solid #89a89145;border-radius:9px;padding:3px;background:#052126}
.map-bottom-bar .map-controls button{width:42px;height:42px;min-width:42px;border-radius:6px;touch-action:manipulation}
.map-bottom-bar .map-controls button:hover{background:#24493e;color:#f1e4bb}
.map-bottom-bar .map-controls span:not(.control-divider){font-size:13px;min-width:45px;font-variant-numeric:tabular-nums}
.explorer .map-footer{position:static;flex-shrink:0;background:#071e22;border-top:1px solid #adc7ab1c;padding-inline:28px}
.panel-open .explorer::after{inset:0;pointer-events:none}
.map-viewport:focus-within .map-world{outline:none}
.residences-cover{display:flex;flex-direction:column;height:260px;text-align:left;background:#103531}
.residences-cover img{height:calc(100% - 43px);min-height:0;flex:1;object-fit:cover}
.residences-cover>span{position:static;flex-shrink:0;width:100%;min-height:43px;padding:10px 15px;background:#123b36;border-top:1px solid #a2b99930;color:#e2ead9;font-size:14px}
.residences-cover>span>span{font-size:20px}
@media(max-width:1100px){
 .map-topbar{padding:16px 22px;gap:14px}
 .map-topbar .map-heading h1{font-size:27px}
 .map-bottom-bar{padding:10px 20px}
 .map-bottom-bar .map-help{max-width:34ch;font-size:12px}
}
@media(max-width:700px){
 .map-topbar{display:block;padding:15px 17px}
 .map-topbar .map-heading .eyebrow{font-size:12px;letter-spacing:1.3px}
 .map-topbar .map-heading h1{font-size:25px;line-height:1.1;margin-top:6px;letter-spacing:-.5px}
 .map-actions{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:9px;margin-top:13px}
 .hotel-explore-button{gap:7px;padding:10px;font-size:14px;min-height:44px}
 .hotel-explore-button svg{width:18px;height:18px}
 .hotel-explore-button .hotel-entry-count{display:none}
 .map-actions .angle-button{font-size:13px;padding:10px;min-height:44px}
 .map-bottom-bar{flex-direction:column-reverse;gap:8px;padding:9px 14px 10px}
 .map-bottom-bar .map-help{max-width:none;font-size:12px;text-align:center;line-height:1.35}
 .map-bottom-bar .map-controls{width:auto;justify-content:center}
 .map-bottom-bar .map-controls button{width:42px;height:42px;min-width:42px}
 .explorer .map-footer{padding:9px 17px;height:53px}
 .map-footer>div{display:none}
 .map-footer p{font-size:10px;line-height:1.4}
 .residences-cover{height:201px;min-height:0}
 .residences-cover>span{min-height:45px;font-size:12px;padding:8px 10px;line-height:1.35}
 .residences-cover>span>span{font-size:17px}
 .residences-cover img{height:calc(100% - 45px)}
 .list-view{bottom:53px}
}
@media(max-width:370px){
 .map-topbar .map-heading h1{font-size:23px}
 .hotel-explore-button{gap:5px;font-size:13px;padding:9px 7px}
 .map-actions .angle-button{font-size:12px;padding:9px 7px}
 .map-bottom-bar .map-controls button{width:38px;min-width:38px}
 .map-bottom-bar .map-help{font-size:12px}
}
@media(max-height:550px) and (orientation:landscape){
 .map-topbar{padding:9px 18px;gap:10px}
 .map-topbar .map-heading .eyebrow{display:none}
 .map-topbar .map-heading h1{font-size:22px;margin:0}
 .map-actions{margin-top:0}
 .map-bottom-bar{padding:5px 15px;flex-direction:row}
 .map-bottom-bar .map-help{display:none}
 .map-bottom-bar .map-controls{margin-left:auto}
 .explorer .map-footer{height:33px}
 .list-view{bottom:33px}
}

.hotel-hit{cursor:pointer;outline:none}
.hotel-hit polygon{fill:transparent;stroke:transparent;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:all;transition:stroke .2s ease}
.hotel-hit:hover polygon,.hotel-hit:focus-visible polygon{stroke:#ebd8a0}
@media(prefers-reduced-motion:reduce){.hotel-hit polygon{transition:none}}

/* A steady frame for browsing: the residence moves, the controls stay put. */
.detail-panel{display:flex;flex-direction:column;overflow:hidden;box-shadow:-12px 0 36px -24px #00171966}
.detail-top{position:relative;flex-shrink:0;padding:15px 22px;background:#f7f8f4;backdrop-filter:none}
.detail-top span{font-size:12px;letter-spacing:1.4px;color:#587364}
.detail-top .icon-button{height:44px;width:44px;border:1px solid #cbd6c9;font-size:28px}
.detail-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#78988a70 transparent;scroll-padding-top:66px}
.detail-title{padding:23px 25px 21px}
.detail-title h2{font-size:38px;letter-spacing:-.7px}
.detail-title .eyebrow{font-size:12px;line-height:1.5;letter-spacing:1.15px}
.detail-subtitle{align-items:flex-start;gap:9px;flex-wrap:wrap;font-size:14px;color:#55715f}
.subtle-badge{font-size:12px;background:#eef2e9;border-radius:5px}
.detail-tabs{position:sticky;top:0;flex-shrink:0;padding:0 25px;gap:27px;background:#f7f8f4f7;backdrop-filter:blur(12px)}
.detail-tabs .selection-line{background:#225945}
.detail-tabs.has-selection-surface button.active{border-bottom-color:transparent}
.detail-tabs button{min-height:54px;padding:16px 0;color:#617a69}
.detail-tabs button.active{color:#174438}
.detail-tabs small{font-size:12px;margin-left:3px}
.detail-description{color:#45604f;line-height:1.75}
.spec-row{font-size:14px;line-height:1.5;padding-block:12px}
.spec-row dt{color:#637968}
.feature{font-size:12px;line-height:1.4;color:#476451}
.note{color:#657964}
.detail-pagination,.apt-dialog-footer{position:relative;flex-shrink:0;border-top:1px solid #d2ddcd;background:#edf2e8;min-height:70px;padding:12px 20px;color:#496a53;font-size:13px;gap:10px}
.detail-pagination::before,.apt-dialog-footer::before{content:'';position:absolute;left:0;top:-1px;height:2px;width:var(--residence-progress,0%);background:#a99460;pointer-events:none}
.detail-pagination>span,.apt-dialog-footer>span{font-variant-numeric:tabular-nums;white-space:nowrap}
.detail-pagination strong{font-weight:600;color:#194d3b}
.detail-pagination button,.apt-dialog-footer button{display:grid;place-items:center;min-width:76px;width:auto;height:44px;min-height:44px;background:#f8faf5;border:1px solid #bdceba;border-radius:7px;font-size:14px;padding:0 12px;color:#204e3b}
.detail-pagination button:hover,.apt-dialog-footer button:hover{background:#dce8d5;border-color:#7e9b79}
#apartmentDialogContent{display:flex;flex-direction:column;height:min(850px,calc(100dvh - 50px));min-height:0}
.apartment-dialog{overflow:hidden}
.apt-dialog-heading{position:relative;flex-shrink:0;padding:21px 27px;background:#f7f8f3;backdrop-filter:none}
.apt-dialog-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#78988a70 transparent;align-content:start}
.apt-layout-column{border-right-color:#d1ddcc;background:#eaf0e5}
.apt-large-layout{height:clamp(230px,46dvh,480px);flex:none}
.apt-layout-title{font-size:14px;line-height:1.45;flex-wrap:wrap}
.apt-dialog-footer{padding-inline:27px;backdrop-filter:none}
.apt-secondary-links button,.apt-secondary-links a{font-size:14px;min-height:44px}
.apt-location-preview>span{font-size:13px;color:#46694c;line-height:1.45}
.apartment-specifications{font-size:14px}
.apt-close{width:44px;height:44px}

/* Gentle depth and warm highlights keep the architecture at the centre. */
.villa-card{border-radius:12px;background:#103536;border-color:#64877a55}
.villa-card-image{overflow:hidden;height:clamp(170px,14vw,220px);background:#173e38}
.villa-card-image>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 850ms var(--ease-out)}
.villa-card .card-id{background:#0d322ce6;border-color:#d9d6b88a;border-radius:6px;min-width:34px;text-align:center;font-variant-numeric:tabular-nums}
.card-content{padding:20px;gap:12px}
.card-content h3{font-size:27px;letter-spacing:-.3px}
.card-content p{font-size:13px;line-height:1.5;color:#b0c6b7}
.card-open{width:32px;height:32px;flex-shrink:0;color:#e1d4ae;border-color:#a6b28b8c}
.apartment-card{border-color:#dce6d6}
.apartment-card-copy{padding-top:19px;padding-bottom:16px}
.apartment-card h2{letter-spacing:-.5px}
.apartment-type{font-size:14px}
.apartment-card-bottom{font-size:13px;padding-block:13px}
.card-floor{font-size:13px}
.unit:hover .plot,.unit.hovered .plot,.unit:focus-visible .plot{fill:#eadcad1a;stroke:#eddfb6;stroke-width:1.8}
.unit.selected .plot{fill:#e5d2a324;stroke:#f1dfaa;stroke-width:2.2}
.unit:hover .marker rect,.unit:focus-visible .marker rect,.unit.selected .marker rect{fill:#e6d7b0;stroke:#fff3d3}
.unit:hover .marker text,.unit:focus-visible .marker text,.unit.selected .marker text{fill:#103e33}
.hover-card{border-color:#dbd9c5;box-shadow:0 18px 40px #041c3152}
.hover-body h3{font-size:26px}
.hover-body p{font-size:13px;line-height:1.4}
.hover-footer{font-size:12px;color:#56735e}
.hover-label{font-size:12px;letter-spacing:.5px;color:#315d45;background:#e7ecde}
@media(hover:hover) and (pointer:fine){
 .villa-card:hover{transform:translateY(-4px);border-color:#cbbb8d}
 .villa-card:hover .villa-card-image>img{transform:scale(1.045)}
 .apartment-card:hover{transform:translateY(-4px)}
 .apt-close:hover,.dialog-close:hover{transform:none}
}
@media(max-width:1100px){
 .detail-pagination{padding-inline:15px}
 .detail-pagination button{min-width:70px;padding-inline:9px}
 .card-content{padding:17px}
}
@media(max-width:700px){
 .detail-panel{top:max(119px,env(safe-area-inset-top));border-radius:18px 18px 0 0}
 .detail-top{padding:14px 18px 11px}
 .detail-title{padding:21px}
 .detail-title h2{font-size:35px}
 .detail-hero{height:clamp(180px,27dvh,240px)}
 .detail-tabs{top:0;padding-inline:21px;gap:27px}
 .detail-content{padding:22px 21px}
 .detail-pagination{padding:10px 16px max(10px,env(safe-area-inset-bottom));min-height:66px}
 .detail-pagination button{min-width:80px}
 .apartment-dialog{max-height:calc(100dvh - 16px);border-radius:14px}
 #apartmentDialogContent{height:calc(100dvh - 24px)}
 .apt-dialog-heading{padding:17px 19px}
 .apt-dialog-heading h2{font-size:30px}
 .apt-dialog-footer{padding:10px 15px max(10px,env(safe-area-inset-bottom));min-height:66px}
 .apt-large-layout{height:clamp(210px,34dvh,320px);min-height:190px}
 .apt-dialog-body{scroll-padding-block:18px}
 .apt-layout-column{padding:18px}
 .apt-secondary-links{gap:14px;flex-wrap:wrap}
 .villa-card-image{height:150px}
 .card-content{padding:15px 13px}
 .card-content h3{font-size:23px}
 .card-content p{font-size:13px;line-height:1.45}
 .apartment-card-copy{padding:15px 12px 13px;min-height:86px;gap:5px}
 .apartment-card h2{font-size:20px;line-height:1.18;letter-spacing:-.6px}
 .apartment-type{font-size:13px;line-height:1.4}
 .apartment-card-bottom{font-size:12px;gap:7px;line-height:1.4}
 .card-floor{font-size:13px}
}
@media(max-width:370px){
 .detail-pagination{font-size:12px;padding-inline:12px;gap:7px}
 .detail-pagination button,.apt-dialog-footer button{min-width:68px;padding-inline:8px}
 .villa-card-image{height:126px}
 .apartment-card-open{width:24px;height:24px;font-size:18px}
 .card-floor{font-size:12px}
 .apt-dialog-footer{font-size:12px;gap:7px;padding-inline:12px}
}
@media(max-height:550px) and (orientation:landscape){
 .detail-top,.apt-dialog-heading{padding:8px 17px}
 .apt-dialog-heading h2{font-size:25px;margin-top:4px}
 .detail-pagination,.apt-dialog-footer{min-height:58px;padding-block:7px}
}
@media(prefers-reduced-motion:reduce){
 .villa-card:hover .villa-card-image>img{transform:none}
}

/* Explicit map controls and a light gallery frame. */
.map-bottom-bar{flex-wrap:wrap}
.map-bottom-bar .map-controls{gap:6px;padding:0;border:0;background:none;max-width:100%}
.map-zoom{display:flex;align-items:center;border:1px solid #8fae974d;background:#06252a;border-radius:9px;overflow:hidden}
.map-bottom-bar .map-zoom button{width:42px;min-width:42px;height:44px;border-radius:0;font-size:24px}
.map-controls #zoomLevel{min-width:42px;width:42px;font-size:13px;color:#dce8d8;font-variant-numeric:tabular-nums}
.map-bottom-bar .map-controls .map-control-text{width:auto;min-width:0;min-height:46px;height:46px;padding:0 11px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #8fae974d;border-radius:9px;background:#103632;color:#dbe6d7}
.map-bottom-bar .map-controls span.control-label{min-width:0;font-size:14px;color:inherit;white-space:nowrap}
.map-bottom-bar .map-controls span.fit-word{min-width:0;font-size:inherit;color:inherit}
.map-control-text svg{width:18px;height:18px;flex-shrink:0}
.map-bottom-bar .map-controls #toggleLabels[aria-pressed=true]{background:#d9e3ce;color:#183f32;border-color:#c7d4bb}
.map-bottom-bar .map-controls #toggleLabels[aria-pressed=false]{background:#103632;color:#bbd0be}
.map-bottom-bar .map-controls #fullscreen{height:46px;width:44px;border:1px solid #8fae974d;border-radius:9px;background:#103632}
.map-bottom-bar .map-controls button:hover{border-color:#d4c79f;background:#285044}
.map-bottom-bar .map-controls button:active{scale:.98}
.map-bottom-bar .map-help{font-size:13px}
.gallery-shell{padding-top:25px;padding-bottom:20px}
.gallery-shell .media-stage{border-radius:10px;border-color:#b9ccb333;background:#00171a88;box-shadow:0 16px 50px -20px #0009}
.gallery-shell .media-header{min-height:66px;margin-bottom:17px}
.gallery-shell .media-header h2{font-size:clamp(26px,2.3vw,35px);letter-spacing:-.55px}
.gallery-shell .media-header small{border-radius:7px;border-color:#a1b99b55;background:#173932;color:#e3dfc6;padding:10px 13px}
.gallery-shell .media-thumbs{position:relative;padding:8px;gap:9px;scroll-snap-type:x proximity;scroll-padding-inline:8px;scrollbar-width:thin;scrollbar-color:#8ba38366 transparent;background:#082b2b;border-color:#75947f3d}
.gallery-shell .media-thumbs button{position:relative;width:90px;min-width:90px;height:61px;border-radius:6px;scroll-snap-align:center;opacity:.64}
.gallery-shell .media-thumbs button.active{opacity:1;border-color:#e2cc96;box-shadow:0 0 0 1px #e2cc962b}
.thumbnail-index{position:absolute;left:5px;bottom:4px;padding:2px 4px;min-width:21px;background:#082b29e0;color:#f2edda;font-size:12px;line-height:1.2;border-radius:3px;font-variant-numeric:tabular-nums;pointer-events:none}
.media-thumbs button.active .thumbnail-index{background:#e0ce9d;color:#123f33}
.gallery-footer .media-caption{font-size:14px;color:#d4e1d2}
.gallery-footer .gallery-step{border-radius:9px;background:#173e35;border-color:#9bb49170}
.gallery-loading{border-radius:8px;background:#123d33ed;color:#e8ead9;box-shadow:0 8px 22px #001b2166}
.gallery-error{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;align-items:center;gap:18px;max-width:calc(100% - 32px);padding:12px 16px;border:1px solid #b4c4a687;border-radius:9px;background:#153d33f5;box-shadow:0 10px 35px #0005;color:#f1f2e5}
.gallery-error p{font-size:14px;line-height:1.4}
.gallery-error button{flex-shrink:0;min-height:44px;padding:9px 14px;border:1px solid #d9c897;border-radius:6px;color:#143b30;background:#e5d7af;font-size:14px}
.gallery-error button:hover{background:#f4e7c5}
@media(max-width:1100px){
 .panel-open .map-bottom-bar .map-help,.panel-open .map-controls #fullscreen{display:none}
 .map-bottom-bar .map-controls{margin-left:auto}
}
@media(max-width:700px){
 .map-bottom-bar{gap:9px;padding:10px 12px 11px}
 .map-bottom-bar .map-controls{gap:6px;margin-inline:auto;justify-content:center}
 .map-bottom-bar .map-zoom button{width:40px;min-width:40px}
 .map-controls #zoomLevel{min-width:40px;width:40px;font-size:13px}
 .map-bottom-bar .map-controls .map-control-text{padding:0 9px;gap:6px}
 .map-bottom-bar .map-controls span.control-label{font-size:14px}
 .map-controls .fit-word{display:none}
 .map-bottom-bar .map-help{font-size:12px}
 .gallery-shell{padding:20px 12px max(13px,env(safe-area-inset-bottom))}
 .gallery-shell .media-header{min-height:95px;margin-bottom:13px}
 .gallery-shell .media-header h2{font-size:25px;line-height:1.12}
 .gallery-shell .media-header small{display:inline-flex;margin-top:9px;padding:5px 8px;font-size:13px;border:1px solid #a1b99b55}
 .gallery-footer{gap:11px;padding-block:12px}
 .gallery-footer .media-caption{font-size:12px;line-height:1.5}
 .gallery-shell .media-thumbs{gap:8px;padding:6px}
 .gallery-shell .media-thumbs button{width:71px;min-width:71px;height:52px}
 .thumbnail-index{left:4px;bottom:3px;padding:1px 3px}
 .gallery-error{bottom:12px;gap:10px;padding:10px 12px;width:max-content}
 .gallery-error p{font-size:13px}
}
@media(max-height:550px) and (orientation:landscape){
 .gallery-shell{padding:10px 62px}
 .gallery-shell .media-header{min-height:0;margin-bottom:8px}
 .gallery-shell .media-header h2{font-size:23px;margin-top:0}
 .gallery-shell .media-header small{padding:5px 9px}
 .gallery-shell .media-thumbs button{height:38px;width:62px;min-width:62px}
 .gallery-footer{padding:8px 0}
}

/* Small building pointer; the label stays beside the hotel at every zoom. */
.hotel-callout rect{fill:transparent;pointer-events:all}
.hotel-callout path{fill:none;stroke:#fff0c3;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 2px #08271f)}
.hotel-callout text{font:500 12px "DM Sans",sans-serif;letter-spacing:.65px;dominant-baseline:middle;fill:#fff5d8;stroke:#0a2b25;stroke-width:3px;stroke-linejoin:round;paint-order:stroke fill;pointer-events:all}
