.nearby-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:32px; }
.resort-location { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px 36px; width:100%; margin:0 0 44px; align-items:start; }
.resort-location-heading { grid-column:1; grid-row:1; }
.resort-location-heading h2 { font-size:32px; line-height:1.15; color:#163b2c; margin:0; text-align:left; }
.resort-location-heading > p { margin:16px 0 0; color:#637168; line-height:1.6; font-size:15px; }
.resort-location-figure { grid-column:2; grid-row:1 / 3; margin:0; align-self:center; }
.resort-location-map { display:block; position:relative; overflow:hidden; border-radius:12px; background:#d8e1cf; }
.resort-location-map > img { display:block; width:100%; height:auto; }
.resort-location-zoom { position:absolute; right:12px; top:12px; border:1px solid #ffffff80; background:#fff5e9f5; color:#163b2c; padding:8px 12px; border-radius:6px; font-size:12px; font-weight:500; box-shadow:0 3px 15px #163b2c22; }
.resort-location-map:hover .resort-location-zoom { background:#fff; }
.resort-location-halo { position:absolute; left:53%; top:65.4%; width:5%; aspect-ratio:1; border:2px solid #fff8; border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; }
.resort-location-halo::after { content:''; position:absolute; inset:-3px; border:2px solid #fff; border-radius:50%; animation:location-pulse 3s ease-out infinite; }
@keyframes location-pulse { 0% { transform:scale(.9); opacity:.9; } 90%,100% { transform:scale(1.7); opacity:0; } }
.resort-location-figure figcaption { font-size:11px; color:#7a857e; margin-top:10px; line-height:1.5; }
.resort-location-facts { grid-column:1; grid-row:2; display:grid; grid-template-columns:1fr; gap:16px; padding:0; }
.resort-location-facts > div { display:flex; align-items:start; gap:16px; }
.resort-location-facts img { object-fit:contain; flex-shrink:0; margin-top:3px; }
.resort-location-facts p { margin:0; }
.resort-location-facts strong { display:block; font-weight:700; color:#163b2c; font-size:16px; }
.resort-location-facts span { display:block; font-size:12px; color:#637168; margin-top:2px; }
.resort-about-description { font-size:15px; line-height:1.6; color:#52675a; margin-top:18px; }
.resort-about-description p { margin:0 0 12px; }
.resort-about-description p:last-child { margin-bottom:0; }
.resort-location-about .resort-location-facts { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; border-top:1px solid #dce5de; padding-top:18px; }
.resort-location-about .resort-location-facts > div { gap:8px; }
.resort-location-about .resort-location-facts img { width:20px; height:20px; }
.resort-location-about .resort-location-facts strong { font-size:14px; }
.resort-location-about .resort-location-facts span { display:none; }
@media(max-width:991px) { .resort-location { gap:18px 24px; grid-template-columns:minmax(240px,.9fr) minmax(0,1.1fr); } .resort-location-heading h2 { font-size:28px; } .resort-location-heading > p br { display:none; } }
@media(max-width:767px) { .resort-location { grid-template-columns:1fr; gap:20px; margin-bottom:36px; } .resort-location-figure { grid-column:1; grid-row:2; } .resort-location-facts { grid-row:3; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; } .resort-location-facts > div { gap:8px; } .resort-location-facts img { width:18px; height:18px; } .resort-location-facts strong { font-size:13px; } .resort-location-facts span { display:none; } .resort-location-zoom { top:10px; right:10px; padding:8px 10px; font-size:11px; } .resort-location-map { border-radius:8px; } }
@media(prefers-reduced-motion:reduce) { .resort-location-halo::after { animation:none; } }
.nearby-eyebrow { color:#00884f; font-size:12px; font-weight:700; letter-spacing:.13em; margin-bottom:12px; }
.nearby-heading h2 { margin:0; }
.nearby-heading > p { color:#637168; line-height:1.65; margin:0; }
.nearby-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; align-items:start; }
.nearby-card { background:#fff; border:1px solid #dce5de; border-radius:10px; overflow:hidden; }
.nearby-photo { position:relative; aspect-ratio:3/2; background:#e4e9df; }
.nearby-photo img { width:100%; height:100%; object-fit:cover; }
.nearby-photo > span:not(.nearby-photo-credit) { position:absolute; bottom:12px; left:12px; right:12px; width:fit-content; padding:6px 10px; background:#fffffff2; color:#173d2b; font-size:11px; border-radius:4px; }
.nearby-body { padding:22px; }
.nearby-access { font-size:12px; font-weight:700; color:#00884f; margin-bottom:18px; }
.nearby-access span { display:block; color:#68786e; font-weight:400; margin-top:5px; }
.nearby-card h3 { color:#163b2c; font-size:24px; font-weight:700; line-height:1.15; min-height:56px; margin-bottom:14px; }
.nearby-description { font-size:15px; line-height:1.6; min-height:120px; }
.nearby-details { font-size:13px; color:#52675a; border-top:1px solid #e5ebe6; padding-top:14px; }
.nearby-details summary { cursor:pointer; line-height:1.5; }
.nearby-details p { line-height:1.6; margin:12px 0; }
.nearby-action { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:24px; color:#006d3f; font-size:14px; font-weight:700; text-decoration:none; }
.nearby-action:hover { text-decoration:underline; text-underline-offset:4px; }
.nearby-section a:focus-visible,.nearby-section summary:focus-visible { outline:3px solid #d59d53; outline-offset:4px; }
@media(max-width:1199px) { .nearby-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; } .nearby-card h3 { min-height:0; } .nearby-description { min-height:72px; } }
@media(max-width:767px) { .nearby-heading { display:block; } .nearby-heading > p { margin-top:16px; } }
@media(max-width:575px) { .nearby-grid { grid-template-columns:1fr; } .nearby-description { min-height:0; } .nearby-body { padding:22px; } .nearby-heading > p br { display:none; } }

.nearby-photo-credit { position:absolute; top:8px; right:8px; padding:3px 6px; border-radius:3px; color:#fff; background:#163b2cb3; font-size:9px; text-decoration:none; }
.nearby-photo-credit:hover { color:#fff; text-decoration:underline; }
