:root {
  --navy: #102f3c;
  --navy-soft: #214956;
  --ivory: #f6f1e7;
  --paper: #fffdf8;
  --glass: #90aaa2;
  --glass-pale: #d7e2dc;
  --sand: #d8c6a8;
  --coral: #bc6b50;
  --ink: #17313a;
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ivory); color: var(--ink); font-family: var(--sans); }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }

.site-header {
  height: 112px; padding: 0 4.5vw; display: grid; grid-template-columns: 1fr auto 1fr;
  align-items: center; border-bottom: 1px solid rgba(16,47,60,.18); background: var(--paper);
  position: relative; z-index: 10;
}
.wordmark { display: inline-flex; width: max-content; flex-direction: column; color: var(--navy); line-height: .9; }
.wordmark-main { font: 28px/1 var(--serif); letter-spacing: -.04em; }
.wordmark-main i { color: var(--coral); font-weight: 400; }
.wordmark-sub { margin-top: 7px; font-size: 8px; text-transform: uppercase; letter-spacing: .46em; padding-left: 2px; }
.tm { margin-left: .15em; font-size: .62em; line-height: 0; vertical-align: super; letter-spacing: 0; }
.desktop-nav { display: flex; gap: 32px; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; }
.desktop-nav a { position: relative; padding: 10px 0; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 4px; height: 1px; background: var(--coral); transition: right .25s ease; }
.desktop-nav a:hover::after { right: 0; }
.header-cta { justify-self: end; color: var(--coral); font-size: 11px; text-transform: uppercase; letter-spacing: .12em; border-bottom: 1px solid currentColor; padding-bottom: 6px; }

.hero { min-height: 720px; display: grid; grid-template-columns: 44% 56%; background: var(--paper); }
.hero-copy { padding: 104px 7vw 52px 6vw; display: flex; flex-direction: column; align-items: flex-start; }
.eyebrow, .section-index { margin: 0 0 28px; color: var(--coral); font-size: 10px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.hero h1 { margin: 0; max-width: 610px; font: 400 clamp(58px, 5.4vw, 86px)/.96 var(--serif); letter-spacing: -.055em; color: var(--navy); }
.hero-intro { max-width: 485px; margin: 34px 0 0; font: 18px/1.65 var(--serif); color: var(--navy-soft); }
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 42px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 25px; font-size: 10px; font-weight: 600; letter-spacing: .17em; text-transform: uppercase; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: var(--paper); background: var(--navy); }
.button-primary:hover { background: var(--coral); }
.text-link { font-size: 11px; letter-spacing: .08em; border-bottom: 1px solid var(--glass); padding-bottom: 5px; }
.quick-facts { width: 100%; margin: auto 0 0; padding-top: 34px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(16,47,60,.2); }
.quick-facts div { padding-right: 16px; }
.quick-facts dt { font-size: 8px; letter-spacing: .18em; text-transform: uppercase; color: var(--glass); }
.quick-facts dd { margin: 8px 0 0; font: 16px/1.2 var(--serif); color: var(--navy); }
.hero-image { position: relative; min-height: 720px; background: linear-gradient(180deg, rgba(16,47,60,.05), transparent 40%), url('/properties/top-escape/hero.webp') center 58% / cover no-repeat; }
.hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5,26,35,.42), transparent 38%); pointer-events: none; }
.rating-card { position: absolute; z-index: 2; left: -53px; top: 86px; width: 170px; min-height: 132px; padding: 22px; background: var(--paper); box-shadow: 0 18px 55px rgba(16,47,60,.14); }
.rating-star { color: var(--coral); font-size: 13px; }
.rating-card strong { display: block; margin: 9px 0 5px; font: 36px/1 var(--serif); color: var(--navy); }
.rating-card span:last-child { font-size: 9px; line-height: 1.4; letter-spacing: .08em; text-transform: uppercase; color: var(--glass); }
.photo-note { position: absolute; z-index: 2; bottom: 28px; left: 32px; color: #fff; font: italic 18px/1.3 var(--serif); }
.photo-note span { display: block; margin-top: 5px; font: 9px/1 var(--sans); text-transform: uppercase; letter-spacing: .18em; }

.manifesto { padding: 120px 7vw; display: grid; grid-template-columns: 26% minmax(0, 850px); background: var(--navy); color: var(--paper); }
.manifesto .section-index { color: var(--glass); }
.manifesto > div { display: grid; grid-template-columns: 1.1fr .8fr; gap: 9vw; align-items: end; }
.manifesto h2, .section-heading h2, .sleep-copy h2, .location-copy h2, .booking-section h2 { margin: 0; font: 400 clamp(42px, 4.5vw, 70px)/1.02 var(--serif); letter-spacing: -.045em; }
h2 em { color: var(--glass); font-weight: 400; }
.manifesto p:last-child { margin: 0 0 6px; font: 16px/1.75 var(--serif); color: #d9e2df; }

.feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--paper); border-bottom: 1px solid rgba(16,47,60,.14); }
.feature { min-height: 270px; padding: 52px 3.3vw 38px; border-right: 1px solid rgba(16,47,60,.14); }
.feature:last-child { border-right: 0; }
.feature span { font-size: 9px; letter-spacing: .15em; color: var(--coral); }
.feature h3 { margin: 58px 0 12px; font: 26px/1.1 var(--serif); color: var(--navy); }
.feature p { margin: 0; max-width: 250px; font: 14px/1.55 var(--serif); color: var(--navy-soft); }

.destinations-section { padding: 120px 5vw 140px; background: var(--ivory); }
.destinations-heading { margin: 0 2vw 62px; display: grid; grid-template-columns: 1fr .65fr; gap: 10vw; align-items: end; }
.destinations-heading h2 { margin: 0; font: 400 clamp(48px, 5vw, 76px)/1 var(--serif); letter-spacing: -.05em; color: var(--navy); }
.destinations-heading h2 em { color: var(--coral); }
.destinations-heading > p { max-width: 470px; margin: 0 0 8px; font: 17px/1.7 var(--serif); color: var(--navy-soft); }
.destinations-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.destination-card { min-width: 0; background: var(--paper); border: 1px solid rgba(16,47,60,.13); }
.destination-image { height: 350px; position: relative; overflow: hidden; background: var(--glass-pale); }
.destination-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(16,47,60,.25), transparent 45%); }
.destination-available .destination-image { background: url('/properties/top-escape/gallery-1.webp') center / cover no-repeat; }
.destination-raleigh .destination-image { background: linear-gradient(145deg, transparent 0 28%, rgba(255,253,248,.45) 28% 30%, transparent 30%), linear-gradient(180deg, #b8ccd0 0 55%, #728f82 55%); }
.destination-charleston .destination-image { background: linear-gradient(160deg, transparent 0 52%, rgba(255,253,248,.62) 52% 54%, transparent 54%), linear-gradient(180deg, #c6d5d0 0 51%, #8da5a0 51%); }
.destination-phoenix .destination-image { background: radial-gradient(circle at 70% 26%, #f0cf9f 0 13%, transparent 13.5%), linear-gradient(160deg, transparent 0 56%, #b77b5e 56% 58%, transparent 58%), linear-gradient(180deg, #d8b29b 0 58%, #a7654d 58%); }
.destination-meta { min-height: 205px; padding: 25px 24px; position: relative; }
.destination-meta > span { color: var(--coral); font-size: 9px; text-transform: uppercase; letter-spacing: .18em; }
.destination-meta h3 { margin: 40px 0 3px; color: var(--navy); font: 29px/1 var(--serif); letter-spacing: -.03em; }
.destination-meta p { margin: 0; color: var(--glass); font-size: 10px; text-transform: uppercase; letter-spacing: .13em; }
.destination-meta a { display: inline-block; margin-top: 22px; padding-bottom: 4px; border-bottom: 1px solid var(--coral); color: var(--navy); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.destination-rate { display: block; margin-top: 18px; color: var(--navy); font: 14px/1.2 var(--serif); }
.destination-rate + a { margin-top: 10px; }

.gallery-section { padding: 120px 5vw 140px; background: var(--ivory); }
.section-heading { display: grid; grid-template-columns: 26% 1fr; margin: 0 2vw 70px; }
.section-heading h2 { color: var(--navy); }
.gallery-grid { display: grid; grid-template-columns: 1.1fr .78fr .78fr; grid-template-rows: 580px; gap: 18px; }
.gallery-grid figure { margin: 0; position: relative; overflow: hidden; background: var(--glass-pale); }
.gallery-grid img { transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.gallery-grid figure:hover img { transform: scale(1.025); }
.gallery-grid figcaption { position: absolute; left: 18px; bottom: 16px; padding: 8px 11px; background: rgba(255,253,248,.9); color: var(--navy); font-size: 9px; text-transform: uppercase; letter-spacing: .16em; }
.gallery-kitchen img { object-position: center; }

.sleep-section { padding: 120px 6vw; display: grid; grid-template-columns: 32% 1fr; gap: 7vw; background: var(--paper); }
.sleep-copy { padding-top: 24px; }
.sleep-copy h2 { color: var(--navy); }
.sleep-copy > p:last-child { margin: 30px 0 0; max-width: 390px; font: 16px/1.7 var(--serif); color: var(--navy-soft); }
.bedroom-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.bedroom-strip figure { height: 480px; margin: 0; position: relative; background: var(--glass-pale); overflow: hidden; }
.bedroom-strip figcaption { position: absolute; inset: auto 0 0; padding: 17px; color: #fff; background: linear-gradient(transparent, rgba(12,38,48,.75)); font: 15px/1.2 var(--serif); }

.location-section { min-height: 620px; display: grid; grid-template-columns: 48% 52%; background: var(--glass-pale); }
.location-art { position: relative; overflow: hidden; background: linear-gradient(#b9cfc9 0 53%, #799c99 53%); }
.sun-disc { position: absolute; width: 220px; aspect-ratio: 1; border-radius: 50%; background: var(--sand); top: 105px; left: calc(50% - 110px); box-shadow: 0 0 0 28px rgba(246,241,231,.17); }
.water-line { position: absolute; height: 1px; background: rgba(255,253,248,.7); left: 8%; right: 8%; }
.water-one { top: 59%; }.water-two { top: 67%; left: 18%; }.water-three { top: 76%; right: 25%; }
.location-copy { padding: 105px 8vw; }
.location-copy h2 { color: var(--navy); }
.location-copy > p:not(.section-index) { max-width: 560px; margin: 30px 0; font: 17px/1.72 var(--serif); color: var(--navy-soft); }
.location-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.location-tags span { padding: 9px 12px; border: 1px solid rgba(16,47,60,.24); font-size: 9px; text-transform: uppercase; letter-spacing: .13em; }

.reviews-section { padding: 120px 7vw 130px; background: var(--ivory); }
.reviews-heading { display: grid; grid-template-columns: 1fr auto; gap: 8vw; align-items: end; }
.reviews-heading h2 { margin: 0; color: var(--navy); font: 400 clamp(48px, 5vw, 76px)/1 var(--serif); letter-spacing: -.05em; }
.review-score { min-width: 230px; display: grid; grid-template-columns: auto 1fr; align-items: end; column-gap: 15px; padding: 0 0 8px; }
.review-stars { grid-column: 1 / -1; margin-bottom: 10px; color: var(--coral); font-size: 16px; letter-spacing: .16em; }
.review-score strong { color: var(--navy); font: 58px/.8 var(--serif); letter-spacing: -.05em; }
.review-score > span:last-child { align-self: end; color: var(--glass); font-size: 9px; line-height: 1.4; text-transform: uppercase; letter-spacing: .15em; }
.review-categories { margin: 56px 0 18px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(16,47,60,.18); border-bottom: 1px solid rgba(16,47,60,.18); }
.review-categories span { padding: 18px 16px; border-right: 1px solid rgba(16,47,60,.14); color: var(--navy-soft); font-size: 9px; text-align: center; text-transform: uppercase; letter-spacing: .15em; }
.review-categories span:last-child { border-right: 0; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.review-card, .reviews-empty { margin: 0; padding: 38px; border: 1px solid rgba(16,47,60,.15); background: var(--paper); }
.review-card { min-height: 330px; display: flex; flex-direction: column; }
.review-quote-mark { display: block; height: 46px; color: var(--coral); font: 72px/.9 var(--serif); }
.review-card > p { margin: 22px 0 40px; color: var(--navy); font: 22px/1.45 var(--serif); }
.review-attribution { margin-top: auto; display: flex; flex-direction: column; gap: 6px; }
.review-attribution cite { color: var(--navy); font: 15px/1.2 var(--serif); font-style: normal; }
.review-attribution span, .reviews-empty > span:last-child { color: var(--glass); font-size: 8px; text-transform: uppercase; letter-spacing: .14em; }
.reviews-empty { min-height: 250px; display: grid; grid-template-columns: 74px 1fr; align-items: center; column-gap: 24px; }
.reviews-empty .review-quote-mark { grid-row: 1 / 3; align-self: start; }
.reviews-empty p { align-self: end; margin: 0 0 12px; color: var(--navy); font: 30px/1.2 var(--serif); }
.reviews-empty > span:last-child { align-self: start; line-height: 1.6; }

.booking-section { padding: 130px 5vw; text-align: center; background: var(--coral); color: var(--paper); }
.booking-section .eyebrow { color: #f4d4c9; }
.booking-section h2 { font-size: clamp(54px, 6vw, 88px); }
.booking-section h2 em { color: var(--navy); }
.booking-section > p:not(.eyebrow) { margin: 28px 0 38px; font: 16px/1.5 var(--serif); }
.button-light { background: var(--paper); color: var(--navy); gap: 8px; }

.booking-request-section { padding: 120px 6vw 130px; display: grid; grid-template-columns: .72fr 1.28fr; gap: 7vw; background: var(--paper); }
.booking-heading h2 { margin: 0; color: var(--navy); font: 400 clamp(48px, 4.7vw, 72px)/1 var(--serif); letter-spacing: -.05em; }
.booking-heading > p:last-child { max-width: 470px; margin: 30px 0 0; color: var(--navy-soft); font: 16px/1.7 var(--serif); }
.booking-form { padding: 42px; border: 1px solid rgba(16,47,60,.18); background: var(--ivory); }
.booking-column { display: grid; gap: 18px; }
.rate-key { margin-bottom: 26px; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid rgba(16,47,60,.16); background: var(--paper); }
.rate-key div { min-width: 0; padding: 15px 13px; border-right: 1px solid rgba(16,47,60,.13); }
.rate-key div:last-child { border-right: 0; }
.rate-key span, .rate-key strong { display: block; }
.rate-key span { margin-bottom: 7px; color: var(--glass); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.rate-key strong { color: var(--navy); font: 14px/1.25 var(--serif); }
.form-row { display: grid; grid-template-columns: 1fr 1fr .7fr; gap: 14px; margin-bottom: 22px; }
.form-row-contact { grid-template-columns: 1fr 1fr 1fr; }
.booking-form label { display: flex; flex-direction: column; gap: 9px; color: var(--navy); font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; }
.booking-form label span { color: var(--glass); font-weight: 400; }
.booking-form input, .booking-form select, .booking-form textarea { width: 100%; min-height: 48px; border: 1px solid rgba(16,47,60,.18); border-radius: 0; padding: 11px 12px; background: var(--paper); color: var(--navy); font: 15px/1.3 var(--serif); outline: none; }
.booking-form textarea { resize: vertical; }
.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus { border-color: var(--coral); box-shadow: 0 0 0 1px var(--coral); }
.date-error { margin: -10px 0 22px; color: #8b3e30; font: 13px/1.4 var(--serif); }
.price-summary { margin: 0 0 25px; padding: 22px; border: 1px solid rgba(16,47,60,.18); background: var(--paper); color: var(--navy-soft); font: 13px/1.4 var(--serif); }
.price-summary > div { display: flex; justify-content: space-between; gap: 24px; padding: 6px 0; }
.price-summary-heading { margin-bottom: 7px; padding-bottom: 13px !important; border-bottom: 1px solid rgba(16,47,60,.13); color: var(--navy); }
.price-total { margin-top: 7px; padding-top: 14px !important; border-top: 1px solid rgba(16,47,60,.18); color: var(--navy); font-size: 16px; }
.deposit-row { margin: 9px -10px 0; padding: 13px 10px !important; background: var(--glass-pale); color: var(--navy); }
.balance-row { color: var(--glass); font-size: 12px; }
.payment-row { grid-template-columns: minmax(230px, .48fr); }
.form-message { margin-top: 4px; }
.form-submit { margin-top: 24px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.form-submit p { max-width: 330px; margin: 0; color: var(--glass); font: 12px/1.45 var(--serif); }
.form-submit button { border: 0; cursor: pointer; }
.form-submit button:disabled { opacity: .62; cursor: not-allowed; }
.form-status { margin: 22px 0 0; padding: 14px 16px; font: 14px/1.45 var(--serif); }
.form-status.success { background: var(--glass-pale); color: var(--navy); }
.form-status.error { background: #f3d9d1; color: #7b3027; }
.policy-panel { padding: 34px 38px; border: 1px solid rgba(16,47,60,.18); background: var(--navy); color: var(--glass-pale); }
.policy-panel .section-index { margin-bottom: 16px; color: var(--glass); }
.policy-panel h3 { margin: 0 0 20px; color: var(--paper); font: 32px/1.1 var(--serif); }
.policy-panel ul { margin: 0; padding-left: 19px; }
.policy-panel li { margin: 10px 0; font: 14px/1.55 var(--serif); }
.policy-panel > p:last-child { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.16); color: var(--glass); font: italic 13px/1.5 var(--serif); }

.contact-hero { min-height: 660px; display: grid; grid-template-columns: 49% 51%; background: var(--paper); }
.contact-hero-copy { padding: 110px 7vw; display: flex; flex-direction: column; justify-content: center; }
.contact-hero h1 { margin: 0; color: var(--navy); font: 400 clamp(58px, 5.7vw, 88px)/.98 var(--serif); letter-spacing: -.055em; }
.contact-hero h1 em { color: var(--coral); }
.contact-hero-copy > p:last-child { max-width: 470px; margin: 34px 0 0; color: var(--navy-soft); font: 18px/1.7 var(--serif); }
.contact-hero-image { min-height: 660px; position: relative; background: linear-gradient(0deg, rgba(5,26,35,.38), transparent 42%), url('/properties/top-escape/gallery-1.webp') center / cover no-repeat; }
.contact-hero-image span { position: absolute; left: 30px; bottom: 27px; color: #fff; font-size: 9px; text-transform: uppercase; letter-spacing: .18em; }
.contact-options { display: grid; grid-template-columns: 1fr 1fr; background: var(--ivory); }
.contact-options article { min-height: 520px; padding: 88px 7vw; border-right: 1px solid rgba(16,47,60,.15); }
.contact-options article:last-child { border-right: 0; }
.contact-options h2 { margin: 0; color: var(--navy); font: 400 clamp(44px, 4vw, 64px)/1 var(--serif); letter-spacing: -.045em; }
.contact-options h2 em { color: var(--glass); }
.contact-options article > p:not(.section-index) { max-width: 430px; margin: 28px 0; color: var(--navy-soft); font: 16px/1.65 var(--serif); }
.contact-options article > a { display: inline-block; padding-bottom: 6px; border-bottom: 1px solid var(--coral); color: var(--navy); font: 14px/1.3 var(--serif); }
.contact-options article > a span { margin-left: 8px; color: var(--coral); }
.contact-guidance { padding: 110px 7vw; display: grid; grid-template-columns: 26% minmax(0, 850px); background: var(--navy); color: var(--paper); }
.contact-guidance .section-index { color: var(--glass); }
.contact-guidance > div { display: grid; grid-template-columns: 1fr .75fr; gap: 8vw; align-items: end; }
.contact-guidance h2 { margin: 0; font: 400 clamp(44px, 4.5vw, 68px)/1 var(--serif); letter-spacing: -.045em; }
.contact-guidance > div > p { margin: 0 0 5px; color: var(--glass-pale); font: 16px/1.72 var(--serif); }

footer { min-height: 310px; padding: 62px 5vw 34px; display: grid; grid-template-columns: 1fr 1fr; align-items: start; background: var(--navy); color: var(--paper); }
.footer-mark { color: var(--paper); }
footer > p { margin: 8px 0 0; justify-self: end; font: italic 16px var(--serif); color: var(--glass-pale); }
.footer-contact { grid-column: 1 / -1; display: flex; gap: 28px; margin-top: 34px; color: var(--glass-pale); font: 13px/1.4 var(--serif); }
.footer-contact a { padding-bottom: 4px; border-bottom: 1px solid rgba(255,255,255,.25); }
.footer-bottom { grid-column: 1 / -1; align-self: end; display: flex; justify-content: space-between; margin-top: 30px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.16); font-size: 9px; text-transform: uppercase; letter-spacing: .13em; color: var(--glass); }

@media (max-width: 1000px) {
  .site-header { grid-template-columns: 1fr auto; height: 92px; }
  .desktop-nav { display: none; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { min-height: 630px; padding-top: 80px; }
  .hero-image { min-height: 720px; }
  .rating-card { left: 28px; top: -65px; }
  .manifesto, .section-heading, .sleep-section { grid-template-columns: 1fr; }
  .manifesto > div { grid-template-columns: 1fr; gap: 36px; }
  .feature-grid { grid-template-columns: 1fr 1fr; }
  .feature:nth-child(2) { border-right: 0; }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 580px 430px; }
  .gallery-lake { grid-column: 1 / -1; }
  .bedroom-strip { margin-top: 30px; }
  .location-section { grid-template-columns: 1fr; }
  .location-art { min-height: 440px; }
  .destinations-heading, .booking-request-section { grid-template-columns: 1fr; }
  .destinations-grid { grid-template-columns: 1fr 1fr; }
  .booking-heading { max-width: 620px; }
  .reviews-grid { grid-template-columns: 1fr; }
  .contact-hero { grid-template-columns: 1fr; }
  .contact-hero-image { min-height: 520px; }
  .contact-guidance { grid-template-columns: 1fr; gap: 34px; }
}

@media (max-width: 640px) {
  .site-header { padding: 0 20px; }
  .header-cta { font-size: 0; }
  .header-cta span { font-size: 20px; }
  .hero-copy { padding: 64px 24px 44px; }
  .hero h1 { font-size: 58px; }
  .hero-intro { font-size: 17px; }
  .quick-facts { gap: 6px; }
  .quick-facts dd { font-size: 13px; }
  .hero-image { min-height: 570px; }
  .manifesto, .gallery-section, .sleep-section, .location-copy { padding: 84px 24px; }
  .manifesto > div { gap: 26px; }
  .feature-grid { grid-template-columns: 1fr; }
  .feature { min-height: 230px; border-right: 0; }
  .feature h3 { margin-top: 42px; }
  .section-heading { margin: 0 0 45px; }
  .gallery-grid { display: block; }
  .gallery-grid figure { height: 440px; margin-bottom: 12px; }
  .bedroom-strip { grid-template-columns: 1fr; }
  .bedroom-strip figure { height: 420px; }
  .location-art { min-height: 360px; }
  .reviews-section { padding: 84px 24px; }
  .reviews-heading { grid-template-columns: 1fr; gap: 40px; }
  .review-categories { grid-template-columns: 1fr 1fr; }
  .review-categories span:nth-child(2) { border-right: 0; }
  .review-categories span:nth-child(-n+2) { border-bottom: 1px solid rgba(16,47,60,.14); }
  .reviews-empty { min-height: 300px; grid-template-columns: 1fr; padding: 30px; }
  .reviews-empty .review-quote-mark { grid-row: auto; }
  .reviews-empty p { align-self: auto; font-size: 25px; }
  .booking-section { padding: 90px 24px; }
  .destinations-section, .booking-request-section { padding: 84px 24px; }
  .destinations-heading { margin: 0 0 45px; gap: 28px; }
  .destinations-grid { grid-template-columns: 1fr; }
  .destination-image { height: 390px; }
  .booking-form { padding: 24px; }
  .rate-key { grid-template-columns: 1fr 1fr; }
  .rate-key div:nth-child(2) { border-right: 0; }
  .rate-key div:nth-child(-n+2) { border-bottom: 1px solid rgba(16,47,60,.13); }
  .form-row, .form-row-contact { grid-template-columns: 1fr; }
  .payment-row { grid-template-columns: 1fr; }
  .form-submit { align-items: flex-start; flex-direction: column; }
  .policy-panel { padding: 28px 24px; }
  .contact-hero-copy { padding: 84px 24px; }
  .contact-hero h1 { font-size: 56px; }
  .contact-hero-image { min-height: 430px; }
  .contact-options { grid-template-columns: 1fr; }
  .contact-options article { min-height: auto; padding: 72px 24px; border-right: 0; border-bottom: 1px solid rgba(16,47,60,.15); }
  .contact-guidance { padding: 84px 24px; }
  .contact-guidance > div { grid-template-columns: 1fr; gap: 28px; }
  footer { grid-template-columns: 1fr; padding: 55px 24px 28px; }
  footer > p { justify-self: start; margin-top: 28px; }
  .footer-contact { flex-direction: column; align-items: flex-start; gap: 12px; }
  .footer-bottom { gap: 24px; align-items: flex-end; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
