/* Brief-aligned additions: existing imagery, brush dividers and palette are retained. */
/* Additions only: preserve the existing homepage backgrounds, galleries and motion. */
.home-stay-categories { margin: 0 0 28px; }
.home-experience-themes { padding: 0 max(32px, calc((100vw - 1180px) / 2)) 30px; }
.destination-map-panel { min-width: 0; }
.destination-map-panel iframe { display: block; width: 100%; height: 400px; border: 0; border-radius: 20px; }
.map-caption { padding: 20px 0; }
.map-caption a { display: block; margin: 14px 0; }
.map-caption small { display: block; font-size: 14px; line-height: 1.6; color: var(--ink-soft); }
.arrival-facts { font-size: 16px; line-height: 1.8; margin: 24px 0; }
.arrival-facts dt { font-weight: 700; margin-top: 16px; }
.arrival-facts dd { margin: 4px 0 0; color: var(--ink-soft); }
.destination-section .location-source { font-size: 14px; line-height: 1.6; margin-top: 24px; }
.location-source a { text-decoration: underline; }
.review-source { margin-top: 30px; }
@media (max-width:650px) {
  .home-experience-themes { padding: 0 18px 24px; }
  .destination-map-panel iframe { height: 300px; }
}
:focus-visible { outline: 3px solid var(--rust); outline-offset: 5px; }
.home-hero :focus-visible, .closing-cta :focus-visible { outline-color: white; }
html { scroll-padding-top: 115px; }
.divider-stay-experiences { --divider-bg:var(--rust); --divider-color:var(--paper); --motif-color:rgba(255,255,255,.2); }
.main-nav { gap: clamp(10px, 1.2vw, 22px); }
.site-header { background: rgba(255,253,249,.94); }
.main-nav a { font-size: 13px; color: var(--ink); text-shadow: none; }
.menu-toggle span { background: var(--ink); box-shadow: none; }
.booking-copy > .eyebrow { font-size:11px; }
.home-hero .hero-actions { justify-content: center; flex-wrap: wrap; }
.journey-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 42px 64px; }
.journey-details article { border-top: 1px solid var(--line); padding-top: 24px; }
.journey-details h2, .destination-section h2, .itinerary-section > h2, .guest-words > h2 { font: 400 clamp(32px, 3.6vw, 54px)/1.12 var(--serif); margin: 10px 0 20px; }
.journey-details p, .journey-details li, .destination-section p, .itinerary-section > p { color: var(--ink-soft); font-size: 17px; line-height: 1.8; }
.journey-details li { margin-bottom: 10px; }
.journey-details ol { padding-left: 22px; }
.journey-details h3 { font: 400 30px/1.2 var(--serif); }
.journey-links { display: flex; gap: 22px; flex-wrap: wrap; align-items: center; }
.closing-cta .journey-links { justify-content: center; }
.destination-section { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.arrival-map { background: var(--paper); padding: 40px; border: 1px solid var(--line); border-radius: 20px; }
.arrival-map ol { list-style: none; padding: 0 0 0 22px; border-left: 1px dashed var(--rust); margin: 0 0 30px; }
.arrival-map li { position: relative; padding: 15px 0 25px; }
.arrival-map li::before { content: ''; position: absolute; width: 9px; height: 9px; background: var(--rust); border-radius: 50%; top: 22px; left: -27px; }
.arrival-map a { font-size: 22px; }
.arrival-map a:hover { text-decoration: underline; }
.arrival-map span { display: block; color: var(--ink-soft); font-size: 14px; margin-top: 9px; }
.arrival-map small { color: var(--ink-soft); }
.stay-plan-note { max-width: 850px; line-height: 1.7; color: white; }
.stay-plan-note a, .booking-terms a, .consent-row a { text-decoration: underline; text-underline-offset: 3px; }
.form-help, .booking-terms { font-size: 14px; line-height: 1.7; color: var(--ink-soft); }
.enquiry-form h2 { font: 400 32px/1.2 var(--serif); margin-top: 0; }
.enquiry-form .form-grid { min-width: 0; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea { min-width: 0; max-width: 100%; }
.consent-row { display: flex; align-items: flex-start; gap: 12px; margin: 20px 0 28px; font-size: 14px; line-height: 1.7; }
.consent-row input { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 3px; accent-color: var(--rust-dark); }
.experience-card a { display: inline-block; margin-top: 12px; padding: 8px 0; border-bottom: 1px solid; }
.resort-reviews-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 38px; }
.resort-reviews-heading h2 { margin: 12px 0 0; font: 400 clamp(36px, 4vw, 58px)/1.08 var(--serif); letter-spacing: -.035em; }
.resort-reviews-heading > a { flex-shrink: 0; font-size: 14px; }
.resort-review-layout { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 34px; }
.resort-review-summary { padding: 28px 26px 24px 0; border-right: 1px solid var(--line); }
.review-platform { font-size: 16px; font-weight: 750; }
.review-total { display: flex; align-items: baseline; gap: 8px; margin-top: 14px; }
.review-total strong { font: 400 72px/1 var(--serif); letter-spacing: -.05em; }
.review-total > span { font-size: 18px; color: var(--ink-soft); }
.resort-reviews .review-rating { color: var(--rust-dark); font-size: 21px; letter-spacing: 3px; line-height: 1.5; margin: 12px 0; }
.review-half-star { display: inline-block; color: transparent; background: linear-gradient(90deg, var(--rust-dark) 50%, #d7cec2 50%); background-clip: text; -webkit-background-clip: text; }
.resort-review-summary p { margin: 6px 0; font-size: 14px; line-height: 1.6; }
.resort-review-summary .review-verdict { font-size: 18px; font-weight: 700; margin-top: 14px; }
.resort-review-summary > a { display: inline-block; font-size: 14px; text-decoration: underline; text-underline-offset: 4px; margin: 18px 0; }
.resort-review-summary small { display: block; font-size: 12px; line-height: 1.7; color: var(--ink-soft); }
.resort-review-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; min-width: 0; }
.resort-review-card { display: flex; flex-direction: column; padding: 28px 22px 20px; min-width: 0; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.resort-review-card > header { display: flex; align-items: center; gap: 12px; }
.review-avatar { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; border-radius: 50%; background: #f2e4d9; color: var(--rust-dark); font-size: 14px; font-weight: 700; }
.resort-review-card h3 { margin: 0; font: 700 16px/1.4 var(--sans); overflow-wrap: anywhere; }
.resort-review-card header p { font-size: 13px; margin: 3px 0 0; color: var(--ink-soft); }
.resort-review-card blockquote { margin: 8px 0 28px; font: 400 19px/1.65 var(--serif); overflow-wrap: anywhere; }
.resort-review-card footer { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); font-size: 12px; }
.resort-review-card footer a { text-decoration: underline; text-underline-offset: 4px; font-size: 14px; }
.review-editorial-note { margin: 20px 0 0; text-align: right; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
@media (max-width:1100px) {
  .resort-review-layout { grid-template-columns: 1fr; }
  .resort-review-summary { border-right: 0; border-bottom: 1px solid var(--line); padding: 0 0 24px; }
}
@media (max-width:700px) {
  .resort-reviews-heading { display: block; }
  .resort-reviews-heading > a { display: inline-block; margin-top: 24px; }
  .resort-review-cards { display: flex; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 16px; }
  .resort-review-card { flex: 0 0 min(72%, 270px); padding: 22px 16px 18px; scroll-snap-align: start; }
  .review-editorial-note { text-align: left; }
}
.site-footer .footer-label { color: #fff; }
/* Extend the homepage's existing clay-wave / cream rhythm into reviews and arrival. */
.page-home .divider-meetings-reviews { --divider-bg: var(--cream); --divider-color: var(--rust-dark); --motif-color: rgba(255,255,255,.24); }
.page-home .divider-reviews-destination { --divider-bg: var(--rust); --divider-color: var(--cream); --motif-color: rgba(255,255,255,.24); }
.page-home .resort-reviews {
  width: 100%; max-width: none; margin: 0;
  padding: 84px max(32px, calc((100vw - 1240px) / 2));
  color: white; background-color: var(--rust-dark);
  background-image: var(--wave-overlay), var(--wave-orange);
  background-position: center; background-size: auto, 100% auto; background-repeat: no-repeat, repeat-y;
}
.page-home .resort-reviews-heading .eyebrow,
.page-home .resort-reviews-heading > a { color: white; }
.page-home .resort-reviews-heading h2 { font-size: clamp(42px, 5vw, 72px); }
.page-home .resort-review-summary { border-color: rgba(255,255,255,.3); }
.page-home .resort-review-summary .review-rating,
.page-home .resort-review-summary > a { color: white; }
.page-home .resort-review-summary .review-half-star { background-image: linear-gradient(90deg, white 50%, rgba(255,255,255,.3) 50%); }
.page-home .review-total > span,
.page-home .resort-review-summary small,
.page-home .review-editorial-note { color: rgba(255,255,255,.85); }
.page-home .resort-review-card { color: var(--ink); border: 1px solid rgba(255,255,255,.35); box-shadow: 0 16px 36px rgba(80,29,9,.12); }
.page-home .resort-reviews :focus-visible { outline-color: white; }
.page-home .resort-review-card :focus-visible { outline-color: var(--rust-dark); }
.page-home .destination-section {
  width: 100%; max-width: none; margin: 0;
  padding: 84px max(32px, calc((100vw - 1240px) / 2));
  background: var(--cream);
}
.page-home .destination-section h2 { font-size: clamp(42px, 5vw, 72px); line-height: 1; letter-spacing: -.035em; }
.page-home .destination-map-panel { overflow: hidden; border-radius: 20px; background: var(--rust-dark) var(--wave-orange) center / cover; box-shadow: 0 20px 45px rgba(80,29,9,.12); }
.page-home .destination-map-panel iframe { border-radius: 0; }
.page-home .map-caption { padding: 26px 30px; background: rgba(92,31,8,.58); color: white; }
.page-home .map-caption a, .page-home .map-caption small { color: white; }
.page-home .map-caption :focus-visible { outline-color: white; }
@media (max-width:650px) {
  .page-home .resort-reviews, .page-home .destination-section { padding: 66px 18px; }
  .page-home .map-caption { padding: 24px; }
}
@media (min-width:1101px) and (max-width:1250px) {
  .site-header { grid-template-columns: 110px 1fr auto; }
  .main-nav { gap: 10px; }
  .main-nav a { font-size: 11px; }
  .header-book { padding: 14px; }
}
@media (max-width:1100px) {
  .main-nav a { font-size: 16px; }
  .destination-section { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width:650px) {
  .journey-details { grid-template-columns: 1fr; gap: 28px; }
  .journey-links { gap: 16px; }
  .journey-links .button { width: 100%; }
  .home-hero .hero-actions { gap: 20px; margin-top: 26px; }
  .home-hero-content { padding-bottom: 85px; }
  .arrival-map { padding: 24px; }
  .booking-layout .enquiry-form { padding: 24px 18px; }
}

/* Homepage story sections: an editorial finish for social proof and arrival. */
.page-home .resort-reviews {
  position: relative;
  isolation: isolate;
  padding-top: 108px;
  padding-bottom: 112px;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 6%, rgba(255, 220, 181, .18), transparent 27%),
    radial-gradient(circle at 4% 88%, rgba(87, 28, 9, .24), transparent 34%),
    var(--rust);
}
.page-home .resort-reviews::before {
  content: '“';
  position: absolute;
  z-index: -1;
  top: -108px;
  right: 3vw;
  color: rgba(255,255,255,.055);
  font: 400 560px/1 var(--serif);
  pointer-events: none;
}
.page-home .resort-reviews-heading {
  align-items: flex-end;
  margin-bottom: 54px;
}
.page-home .resort-reviews-heading > div { max-width: 780px; }
.page-home .resort-reviews-heading h2 {
  max-width: 720px;
  margin-top: 14px;
  font-size: clamp(48px, 6vw, 84px);
  line-height: .96;
}
.reviews-intro {
  max-width: 560px;
  margin: 24px 0 0;
  color: rgba(255,255,255,.8);
  font-size: 17px;
  line-height: 1.7;
}
.page-home .resort-reviews-heading > a {
  padding-bottom: 7px;
  border-bottom: 1px solid rgba(255,255,255,.5);
  text-decoration: none;
}
.page-home .resort-review-layout {
  grid-template-columns: 258px minmax(0, 1fr);
  gap: 24px;
  align-items: stretch;
}
.page-home .resort-review-summary {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 32px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 24px;
  background: rgba(106, 34, 9, .22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter: blur(3px);
}
.review-summary-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.review-verified {
  padding: 6px 9px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 99px;
  color: rgba(255,255,255,.8);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.page-home .review-total {
  display: block;
  margin-top: 34px;
}
.page-home .review-total strong {
  display: block;
  font-size: 92px;
  line-height: .78;
}
.page-home .review-total > span {
  display: block;
  margin-top: 18px;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.page-home .resort-review-summary .review-verdict {
  margin-top: 22px;
  font: 400 25px/1.2 var(--serif);
}
.page-home .resort-review-summary > a {
  align-self: flex-start;
  margin-top: 26px;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.48);
}
.page-home .resort-review-summary small { margin-top: auto; padding-top: 32px; }
.page-home .resort-review-cards {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  grid-template-rows: repeat(2, minmax(196px, auto));
  gap: 16px;
}
.page-home .resort-review-card {
  position: relative;
  display: flex;
  min-height: 0;
  padding: 30px;
  overflow: hidden;
  border: 0;
  border-radius: 24px;
  background: #fffaf3;
  box-shadow: 0 22px 50px rgba(76, 23, 5, .18);
}
.page-home .resort-review-card:first-child {
  grid-row: 1 / span 2;
  padding: 44px;
  background: #f3dfc9;
}
.review-card-mark {
  position: absolute;
  top: -22px;
  right: 20px;
  color: rgba(170, 66, 31, .11);
  font: 400 180px/1 var(--serif);
}
.review-card-topline {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: var(--ink-soft);
  font-size: 12px;
}
.page-home .resort-review-card .review-rating {
  margin: 0;
  color: var(--rust-dark);
  font-size: 15px;
}
.page-home .resort-review-card blockquote {
  position: relative;
  margin: 25px 0 30px;
  font-size: 21px;
  line-height: 1.45;
}
.page-home .resort-review-card:first-child blockquote {
  max-width: 470px;
  margin-top: auto;
  font-size: clamp(31px, 3vw, 46px);
  line-height: 1.16;
  letter-spacing: -.025em;
}
.page-home .resort-review-card footer {
  position: relative;
  align-items: center;
  padding-top: 20px;
  border-color: rgba(54,38,29,.15);
}
.review-author { display: flex; align-items: center; gap: 12px; }
.review-author p { margin: 2px 0 0; color: var(--ink-soft); font-size: 12px; }
.page-home .resort-review-card footer a { text-decoration: none; }
.page-home .review-editorial-note { margin-top: 24px; }

.page-home .destination-section {
  position: relative;
  grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);
  gap: clamp(48px, 7vw, 104px);
  padding-top: 112px;
  padding-bottom: 116px;
  overflow: hidden;
  background:
    radial-gradient(circle at 5% 12%, rgba(201,98,49,.09), transparent 25%),
    var(--cream);
}
.page-home .destination-section::before {
  content: '01°13′ N  ·  32°38′ E';
  position: absolute;
  top: 40px;
  right: max(32px, calc((100vw - 1240px) / 2));
  color: rgba(91,72,61,.48);
  font-size: 10px;
  letter-spacing: .16em;
}
.page-home .destination-section h2 {
  max-width: 630px;
  margin: 16px 0 26px;
  font-size: clamp(48px, 5.7vw, 80px);
  line-height: .98;
}
.destination-lede {
  max-width: 620px;
  font-size: 18px !important;
}
.arrival-routes {
  list-style: none;
  margin: 38px 0 34px;
  padding: 0;
  border-top: 1px solid var(--line);
}
.arrival-routes li {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 17px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.arrival-routes li > span {
  color: var(--rust-dark);
  font: 400 13px/1.5 var(--sans);
  letter-spacing: .08em;
}
.arrival-routes strong { font: 400 24px/1.2 var(--serif); }
.destination-section .arrival-routes p {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.7;
}
.destination-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.destination-actions .button { padding-inline: 25px; }
.page-home .destination-section .location-source { margin-top: 28px; font-size: 12px; }
.page-home .destination-map-panel {
  align-self: stretch;
  display: grid;
  grid-template-rows: minmax(430px, 1fr) auto;
  border-radius: 28px;
  background: var(--rust-dark);
  box-shadow: 0 28px 70px rgba(80,29,9,.19);
}
.map-frame { position: relative; min-height: 430px; overflow: hidden; }
.page-home .destination-map-panel iframe {
  width: 100%;
  height: 100%;
  min-height: 430px;
  filter: saturate(.76) sepia(.08) contrast(.96);
}
.map-pin-label {
  position: absolute;
  right: 22px;
  bottom: 22px;
  padding: 10px 14px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 99px;
  color: white;
  background: rgba(70,29,14,.76);
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}
.page-home .map-caption {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 20px 28px;
  padding: 28px 30px;
  background: #713018;
}
.map-place { margin: 0 0 4px; color: white !important; font: 400 24px/1.2 var(--serif); }
.page-home .map-caption > div > small { color: rgba(255,255,255,.72); }
.map-primary-link {
  display: inline-flex !important;
  align-items: center;
  gap: 18px;
  margin: 0 !important;
  padding: 13px 17px;
  border: 1px solid rgba(255,255,255,.48);
  border-radius: 99px;
  text-decoration: none;
  white-space: nowrap;
}
.map-boarding {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 18px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.18);
}
.map-boarding > span {
  color: rgba(255,255,255,.62);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.map-boarding a { margin: 0 !important; justify-self: end; text-decoration: none; }
.map-boarding small { grid-column: 1 / -1; margin-top: 4px; }

@media (max-width: 1100px) {
  .page-home .resort-review-layout { grid-template-columns: 1fr; }
  .page-home .resort-review-summary {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 16px 30px;
  }
  .page-home .review-total { margin: 0; }
  .page-home .review-total strong { font-size: 62px; }
  .page-home .review-total > span { margin-top: 10px; }
  .page-home .resort-review-summary .review-verdict,
  .page-home .resort-review-summary > p:not(.review-verdict) { display: none; }
  .page-home .resort-review-summary > a { margin: 0; }
  .page-home .resort-review-summary small { grid-column: 1 / -1; padding-top: 4px; }
  .page-home .destination-section { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .page-home .resort-reviews { padding-top: 72px; padding-bottom: 76px; }
  .page-home .resort-reviews-heading { display: block; margin-bottom: 36px; }
  .page-home .resort-reviews-heading h2 { font-size: clamp(44px, 13vw, 62px); }
  .reviews-intro { font-size: 15px; }
  .page-home .resort-review-summary { display: block; padding: 26px; }
  .page-home .review-total { margin-top: 30px; }
  .page-home .review-total strong { font-size: 76px; }
  .page-home .resort-review-summary .review-verdict,
  .page-home .resort-review-summary > p:not(.review-verdict) { display: block; }
  .page-home .resort-review-summary > a { margin-top: 24px; }
  .page-home .resort-review-summary small { display: block; padding-top: 26px; }
  .page-home .resort-review-cards {
    display: flex;
    gap: 14px;
    margin-right: -18px;
    padding: 4px 18px 20px 0;
  }
  .page-home .resort-review-card,
  .page-home .resort-review-card:first-child {
    flex: 0 0 min(84vw, 340px);
    min-height: 370px;
    padding: 28px;
  }
  .page-home .resort-review-card:first-child blockquote,
  .page-home .resort-review-card blockquote { margin-top: auto; font-size: 28px; }
  .page-home .destination-section { padding-top: 82px; padding-bottom: 82px; }
  .page-home .destination-section::before { top: 31px; right: 18px; }
  .page-home .destination-section h2 { font-size: clamp(44px, 13vw, 62px); }
  .page-home .destination-map-panel { grid-template-rows: 340px auto; border-radius: 22px; }
  .map-frame { min-height: 340px; }
  .page-home .destination-map-panel iframe { min-height: 340px; }
  .page-home .map-caption { grid-template-columns: 1fr; padding: 24px; }
  .map-primary-link { justify-content: space-between; }
  .map-boarding { display: block; }
  .map-boarding > * { display: block; }
  .map-boarding a { margin-top: 10px !important; }
  .map-boarding small { margin-top: 12px; }
}

/* Headings stand alone; supporting details stay with the relevant content. */
.inner-page .hero-inner::after { content: none; }
.inner-page .intro-section { display: block; padding-top: 60px; padding-bottom: 40px; }
.inner-page .intro-section h2 { max-width: 100%; margin: 0; font-size: clamp(40px, 5vw, 68px); line-height: 1.05; }
.inner-page .gallery-section .section-heading { display: block; }
.inner-page .gallery-section .section-heading h2 { margin: 0; }
.home-intro-copy h3, .editorial-copy h2 { margin-bottom: 22px; }
.hero-inner h1 { max-width: 1050px; }
.home-day-head { align-items: center; }
.home-day-intro { width: auto; }
.section-heading { gap: 30px; }
.section-heading > p { max-width: 480px; }
.card-price { font-weight: 700; }
@media (max-width: 700px) {
  .inner-page .intro-section { padding-top: 38px; padding-bottom: 28px; }
  .section-heading > p { margin-top: 20px; }
}
.home-tile .tile-action { position: static; display: inline-block; margin-top: 15px; font: 600 12px var(--sans); text-decoration: underline; text-underline-offset: 5px; }
.home-room > div > a { width: auto; height: auto; padding: 10px 14px; border-radius: 999px; font-size: 12px; }

/* Supplied resort artwork, kept at its original proportions. */
.site-header { grid-template-columns: 190px minmax(0,1fr) auto; }
.brand { width: 180px; height: 65px; }
.brand img { width: 180px; max-height: 65px; object-fit: contain; }
.footer-brand img { width: 220px; max-height: 80px; filter: none; }
@media(max-width:1100px) { .site-header {grid-template-columns:1fr auto auto;} }
@media(max-width:650px) { .brand {width:125px;height:52px}.brand img{width:125px;max-height:52px} }
@media(max-width:360px) { .brand,.brand img{width:110px} }

/* Floating on arrival, compact and edge-to-edge after scrolling. */
.site-header {
  padding: 8px 24px;
  transition: top .25s ease, left .25s ease, right .25s ease,
    min-height .25s ease, padding .25s ease, border-radius .25s ease,
    background-color .25s ease, box-shadow .25s ease;
}
.site-header .brand, .site-header .brand img {
  transition: width .25s ease, height .25s ease, max-height .25s ease;
}
.header-book {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  white-space: nowrap;
}
.site-header.is-scrolled {
  top: 0;
  left: 0;
  right: 0;
  min-height: 76px;
  padding: 6px 24px;
  grid-template-columns: 166px minmax(0, 1fr) auto;
  border-radius: 0;
  border-color: transparent;
  border-bottom-color: var(--line);
  background: rgba(255, 253, 249, .98);
  box-shadow: 0 5px 20px rgba(23, 25, 20, .08);
}
.site-header.is-scrolled .brand { width: 156px; height: 52px; }
.site-header.is-scrolled .brand img { width: 156px; max-height: 52px; }
@media (max-width: 1100px) {
  .site-header, .site-header.is-scrolled {
    grid-template-columns: minmax(0, 1fr) auto auto;
    column-gap: 8px;
  }
  .menu-toggle { min-width: 44px; min-height: 44px; }
}
@media (max-width: 650px) {
  .site-header { padding: 8px 16px; }
  .header-book { min-height: 44px; }
  .site-header.is-scrolled { min-height: 64px; padding: 5px 16px; }
  .site-header.is-scrolled .brand { width: 116px; height: 46px; }
  .site-header.is-scrolled .brand img { width: 116px; max-height: 46px; }
}
@media (max-width: 360px) {
  .site-header.is-scrolled .brand { width: 106px; height: 42px; }
  .site-header.is-scrolled .brand img { width: 106px; max-height: 42px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header, .site-header .brand, .site-header .brand img { transition: none !important; }
}

/* Content balance: shorter panels, readable cards and a shared footer baseline. */
main [id] { scroll-margin-top: 100px; }
.editorial, .editorial.reverse { min-height: 0; }
.editorial-image { height: clamp(420px, 36vw, 560px); min-height: 0; max-height: none; }
.editorial-copy h2 { font-size: clamp(40px, 4.2vw, 64px); line-height: 1.05; overflow-wrap: break-word; }
.home-room > div { padding-right: 0; }
.home-room > div > a { position: static; display: inline-flex; margin-top: 18px; min-height: 44px; align-items: center; }
.values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.values h2 { margin-top: 0; }
.footer-label { font: 600 17px/1.3 var(--sans); letter-spacing: 0; text-transform: none; }
.site-footer a { max-width: 100%; overflow-wrap: anywhere; }
.footer-bottom { align-items: center; flex-wrap: wrap; gap: 16px 32px; }
.footer-bottom a { font-size: 12px; }
.footer-credit { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1100px) {
  .editorial-image { height: clamp(340px, 48vw, 480px); }
  .editorial-copy { padding: 40px 32px; }
}
@media (max-width: 700px) {
  .editorial-image { height: auto; aspect-ratio: 4 / 3; }
  .editorial-copy { padding: 34px 24px; }
  .editorial-copy h2 { font-size: clamp(36px, 10vw, 46px); }
  .values { grid-template-columns: 1fr; }
  .site-footer > div:nth-child(4) { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; gap: 14px; padding-right: 52px; }
}

.footer-newsletter { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.18); padding-top: 28px; }
.footer-newsletter h3 { margin: 0 0 20px; font: 400 30px/1.2 var(--serif); }
.footer-newsletter form { display: grid; grid-template-columns: minmax(200px,1fr) minmax(200px,1fr) auto; gap: 18px 28px; align-items: center; }
.newsletter-email { display: grid; gap: 8px; font-size: 13px; }
.newsletter-email input { width: 100%; min-height: 48px; border: 1px solid rgba(255,255,255,.4); border-radius: 10px; background: var(--paper); color: var(--ink); padding: 12px 14px; font: inherit; }
.newsletter-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.6; }
.newsletter-consent input { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--rust-dark); }
.footer-newsletter .form-status { grid-column: 1 / -1; margin: 0; min-height: 0; color: white; }
@media(max-width:700px) { .footer-newsletter form { grid-template-columns: 1fr; gap: 18px; } .footer-newsletter button { justify-self: start; } }

/* Keep newsletter consent directly below its input. */
.footer-newsletter form { grid-template-columns: minmax(0,1fr) auto; gap: 12px 24px; align-items: end; }
.footer-newsletter .newsletter-email { grid-column: 1; grid-row: 1; }
.footer-newsletter .newsletter-consent { grid-column: 1; grid-row: 2; }
.footer-newsletter button[type=submit] { grid-column: 2; grid-row: 1; align-self: end; min-height: 48px; }
.footer-newsletter .form-status { grid-column: 1 / -1; grid-row: 3; }
.footer-bottom { padding-right: 64px; }
@media(max-width:700px) {
 .footer-newsletter form { grid-template-columns: minmax(0,1fr); gap: 16px; }
 .footer-newsletter button[type=submit] { grid-column: 1; grid-row: 3; }
 .footer-newsletter .form-status { grid-row: 4; }
}

/* Compact newsletter and a shared reservation calendar. */
.footer-newsletter form { width: 100%; max-width: 680px; }
.date-range-field { min-width: 0; }
.date-range-input { position: relative; display: block !important; padding: 0 !important; border: 0 !important; letter-spacing: normal !important; text-transform: none !important; font-weight: inherit !important; }
.date-range-input input { width: 100%; cursor: pointer; padding-right: 42px; text-overflow: ellipsis; }
.date-range-input svg { position: absolute; width: 20px; height: 20px; right: 13px; top: 50%; transform: translateY(-50%); pointer-events: none; opacity: .65; }
.home-quick-book { grid-template-columns: .85fr 1.6fr 1.1fr auto; }
.home-quick-book .date-range-field { grid-column: auto; }
.home-quick-book .date-range-input input { padding-right: 27px; font-size: 14px; }
.home-quick-book .date-range-input svg { right: 0; width: 18px; }
@media(max-width:1100px) { .home-quick-book { grid-template-columns: minmax(0,1fr) minmax(0,1fr); } }
@media(max-width:700px) { .home-quick-book .date-range-field { grid-column: 1 / -1; border-left: 0; padding-left: 0; padding-right: 0; } .home-quick-book .date-range-field + label { grid-column: 1 / -1; border-left: 0; padding-left: 0; padding-right: 0; } }

/* Shared map cards keep their light text on the same dark surface on every page. */
.destination-map-panel { overflow: hidden; border-radius: 24px; background: #713018; }
.destination-map-panel iframe { border-radius: 0; }
.map-caption { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 20px 24px; padding: 26px 28px; background: #713018; color: #fff; }
.map-caption p, .map-caption a, .map-caption small, .map-caption .map-boarding > span { color: #fff; }
.map-caption .map-boarding > span { font-size: 13px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.map-caption :focus-visible { outline-color: #fff; }
@media(max-width:760px) { .map-caption { grid-template-columns: minmax(0,1fr); padding: 24px; } .map-caption .map-primary-link { justify-self: start; } .map-boarding { grid-template-columns: minmax(0,1fr); gap: 10px; } .map-boarding a { justify-self: start; } }

/* Photographs retain a shaded text area, even when editors replace the image. */
.home-hero-vignette { background: linear-gradient(180deg,rgba(15,18,13,.12),rgba(15,18,13,.48) 38%,rgba(15,18,13,.62) 70%,rgba(15,18,13,.25)); }
.hero-shade { background: linear-gradient(180deg,rgba(15,18,13,.08),rgba(15,18,13,.2) 30%,rgba(15,18,13,.62) 75%,rgba(15,18,13,.72)); }
input::placeholder, textarea::placeholder { color: #665f57; opacity: 1; }

/* Keep body copy readable over the clay texture and bright photographs. */
.site-footer { color: #fff; }
.home-rooms-dark, .page-home .resort-reviews, .inner-page .content-card:nth-child(even) { background-image: linear-gradient(rgba(92,31,8,.5),rgba(92,31,8,.5)), var(--wave-orange); }
.home-rooms-dark .home-room p, .home-rooms-dark .home-room span { color: #fff; }
.inner-page .content-card:nth-child(even) .card-copy > p:not(.eyebrow), .inner-page .content-card:nth-child(even) .card-copy li { color: #fff; }
.home-activity-copy small { color: #fff; }
.hero-shade { background: linear-gradient(180deg,rgba(15,18,13,.18),rgba(15,18,13,.56) 25%,rgba(15,18,13,.65) 75%,rgba(15,18,13,.72)); }

.map-preview { position: absolute; inset: 0; display: grid; place-items: center; background: var(--rust-dark); isolation: isolate; }
.map-preview img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.map-preview::after { content: ''; position: absolute; inset: 0; z-index: -1; background: rgba(15,18,13,.25); }
.map-preview .button { position: relative; z-index: 1; }
.map-frame iframe[hidden], .map-preview[hidden] { display: none; }

.page-home .review-editorial-note { color: #fff; }
.page-home .resort-reviews { background-size: cover; background-position: center; background-repeat: no-repeat; }

/* Keep activity navigation and photographs together beneath the heading. */
.inner-page .intro-section.activities-intro { padding-top:48px; padding-bottom:28px; }
.activity-categories.section { padding-top:0; padding-bottom:32px; gap:12px; }
.activity-list.section { padding-top:0; }
@media(max-width:700px) {
 .inner-page .intro-section.activities-intro { padding-top:32px; padding-bottom:22px; }
 .inner-page .intro-section.activities-intro h2 { margin-bottom:0; }
 .activity-categories.section { padding-bottom:24px; gap:10px; }
 .activity-categories .button { padding:13px 18px; }
}

/* Consistent spacing: headings, actions and media belong to one content group. */
.inner-page .section:not(.intro-section):not(.activity-categories):not(.activity-list) { padding-top:56px; padding-bottom:56px; }
.inner-page .intro-section:not(.activities-intro) { padding-top:48px; padding-bottom:28px; }
.inner-page .intro-section + .journey-details,
.inner-page .intro-section + .room-showcase { padding-top:0; }
.inner-page .section + .section:not(.intro-section):not(.activity-categories):not(.activity-list) { padding-top:40px; }
.inner-page .intro-section + .journey-details { padding-top:0; }
.section-heading { margin-bottom:28px; }
.journey-details { row-gap:28px; }
.journey-details article { padding-top:18px; }
.journey-details h2 { margin-top:0; margin-bottom:16px; }
.journey-details p { margin-top:0; margin-bottom:16px; }
.contact-copy h2, .booking-copy h2 { margin-bottom:20px; }
.inner-page .faq-layout { column-gap:48px; }
.closing-cta h2 { margin-bottom:24px; }
.page-home .home-world, .page-home .home-rooms, .page-home .home-menu,
.page-home .resort-reviews, .page-home .destination-section { padding-top:64px; padding-bottom:64px; }
.home-world-head, .home-rooms-head, .home-menu-head,
.page-home .resort-reviews-heading { margin-bottom:28px; }
.home-stay-categories { margin-bottom:24px; }
.home-day-head { margin-bottom:24px; }
.home-experience-themes { padding-bottom:24px; }
@media(max-width:700px) {
 .inner-page .section:not(.intro-section):not(.activity-categories):not(.activity-list) { padding-top:36px; padding-bottom:36px; }
 .inner-page .section + .section:not(.intro-section):not(.activity-categories):not(.activity-list) { padding-top:28px; }
 .inner-page .intro-section:not(.activities-intro) { padding-top:32px; padding-bottom:22px; }
 .inner-page .intro-section + .journey-details,
 .inner-page .intro-section + .room-showcase { padding-top:0; }
 .section-heading { margin-bottom:22px; }
 .inner-page .booking-layout, .inner-page .contact-layout,
 .inner-page .faq-layout { row-gap:28px; }
 .journey-details { row-gap:24px; }
 .page-home .home-world, .page-home .home-rooms, .page-home .home-menu,
 .page-home .resort-reviews, .page-home .destination-section { padding-top:44px; padding-bottom:44px; }
 .home-world-head, .home-rooms-head, .home-menu-head,
 .page-home .resort-reviews-heading { margin-bottom:22px; }
 .home-stay-categories { margin-bottom:20px; }
 .home-rooms-head h2, .home-menu-head h2 { margin-bottom:16px; }
 .home-day-head { margin-bottom:20px; }
 .home-experience-themes { padding-bottom:20px; }
}

.inner-page .prose h2 { margin-top:28px; margin-bottom:20px; }
.inner-page .prose h2:first-child { margin-top:0; }

.inner-page .prose h3 { margin-top:28px; margin-bottom:12px; }

.activity-list.section { padding-bottom:56px; }
@media(max-width:700px) { .activity-list.section { padding-bottom:36px; } }

/* Shared food and drinks menus. */
.resort-menu-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;min-width:0}
.resort-menu-card h3{margin:0 0 16px;font-size:28px}
.resort-menu-buttons{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.resort-menu-buttons .menu-download{border:1px solid currentColor;background:transparent;color:inherit}
.home-menu-head{align-items:start;gap:28px;flex-wrap:wrap}
@media(max-width:640px){.resort-menu-links{grid-template-columns:1fr;gap:24px;width:100%}.resort-menu-card h3{font-size:25px}.resort-menu-buttons .button{padding:14px 20px}}
/* Photo-led food and drinks cards, with a focused in-site reader. */
.resort-menu-links{width:100%;gap:24px}
.resort-menu-card{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);overflow:hidden;border:1px solid #ded6c9;border-radius:20px;background:#fffcf7;box-shadow:0 8px 28px #3c251008}
.resort-menu-photo{min-height:250px;overflow:hidden}
.resort-menu-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.resort-menu-card:hover .resort-menu-photo img{transform:scale(1.035)}
.resort-menu-copy{padding:30px 24px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.resort-menu-card h3{font-family:var(--serif);font-size:clamp(30px,3vw,42px);font-weight:400;line-height:1.1;margin:0 0 24px}
.resort-menu-buttons{gap:20px;align-items:flex-start;flex-direction:column}
.resort-menu-buttons .button{background:#a64724;color:#fff;border:0;font-size:13px;white-space:normal;text-align:center}
.resort-menu-buttons .menu-download{display:inline-flex;align-items:center;gap:10px;border:0;border-bottom:1px solid #aa8d78;border-radius:0;padding:0 0 5px;text-decoration:none;font-size:13px;font-weight:600;color:#63442e;min-height:32px}
.menu-download svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5}
.home-menu-head{display:block}.home-menu-head>div:first-child{margin-bottom:28px}
.menu-viewer-open{overflow:hidden}
.menu-viewer{width:min(1140px,calc(100vw - 48px));max-width:none;height:min(920px,calc(100dvh - 48px));max-height:none;padding:0;border:1px solid #ded6c9;border-radius:18px;background:#f7f4ec;color:#191c15;box-shadow:0 24px 90px #0005;overflow:hidden}
.menu-viewer[open]{display:flex;flex-direction:column}
.menu-viewer::backdrop{background:#151b17b8;backdrop-filter:blur(5px)}
.menu-viewer-heading{display:flex;align-items:center;gap:24px;padding:18px 24px;border-bottom:1px solid #ded6c9;background:#fffcf7}
.menu-viewer-heading h2{font-family:var(--serif);font-size:32px;line-height:1.1;font-weight:400;margin:0;flex:1}
.menu-viewer button,.menu-viewer-download{font:600 13px var(--sans, sans-serif);color:#583d2a;border:1px solid #d8cebf;background:#fffcf7;border-radius:8px;padding:10px 14px;min-height:42px;cursor:pointer;text-decoration:none}
.menu-viewer button:hover,.menu-viewer-download:hover{background:#eee3d4}
.menu-viewer button:disabled{opacity:.4;cursor:default}
.menu-viewer button:focus-visible,.menu-viewer a:focus-visible{outline:2px solid #a64724;outline-offset:3px}
.menu-viewer-tabs{display:flex;gap:8px;padding:12px 24px 0}
.menu-viewer-tabs button[aria-pressed=true]{background:#a64724;color:#fff;border-color:#a64724}
.menu-viewer-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 20px;flex-wrap:wrap;border-bottom:1px solid #ded6c9}
.menu-page-count{font-size:13px;min-width:90px;text-align:center}
.menu-viewer-status{font-size:13px;text-align:center;margin:0;padding:10px 16px;color:#63442e}
.menu-viewer-status:empty{display:none}
.menu-viewer-body{flex:1;min-height:0;overflow:auto;padding:16px;background:#e7e2d8;overscroll-behavior:contain;text-align:center}
.menu-viewer-body canvas{display:block;max-width:none;margin:0 auto;box-shadow:0 3px 18px #0002;background:#fff}
.menu-viewer-body:has(iframe){padding:0}
.menu-viewer-body iframe{display:block;width:100%;height:100%;min-height:300px;border:0;background:#fff}
.menu-page-readable{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.menu-viewer [hidden]{display:none!important}
@media(max-width:900px) and (min-width:641px){.resort-menu-card{grid-template-columns:1fr}.resort-menu-photo{height:200px;min-height:0}}
@media(max-width:640px){.resort-menu-card{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.resort-menu-photo{min-height:230px}.resort-menu-copy{padding:24px 18px}.resort-menu-card h3{font-size:32px;margin-bottom:20px}.resort-menu-buttons{gap:14px}.resort-menu-buttons .button{padding:13px 16px;min-height:44px}.menu-viewer{width:100vw;height:100dvh;margin:0;border:0;border-radius:0}.menu-viewer-heading{gap:10px;padding:14px 16px;flex-wrap:wrap}.menu-viewer-heading h2{font-size:28px;flex-basis:calc(100% - 120px)}.menu-viewer-close{order:0}.menu-viewer-download{order:1}.menu-viewer-toolbar{gap:8px;padding:10px}.menu-viewer button{padding:10px}.menu-page-count{min-width:74px}.menu-viewer-tabs{padding:10px 16px 0}.menu-viewer-body{padding:16px}}
@media(prefers-reduced-motion:reduce){.resort-menu-photo img{transition:none}.resort-menu-card:hover .resort-menu-photo img{transform:none}}

/* Continuous PDF pages reserve their space while nearby pages render on demand. */
.menu-pdf-page{position:relative;box-sizing:content-box;flex:none;display:block;margin:0 auto 20px;padding:0;background:#fff;box-shadow:0 3px 18px #0002;overflow:hidden}
.menu-pdf-page:last-child{margin-bottom:0}
.menu-viewer-body .menu-pdf-page canvas{margin:0;box-shadow:none}

.resort-menu-buttons .menu-online-button{background:transparent;color:#7d371b;border:1px solid #bda28e;box-shadow:none}
.resort-menu-buttons .menu-online-button:hover{background:#f2e6d8;border-color:#a64724}
.resort-menu-buttons .menu-online-button:focus-visible{outline:2px solid #a64724;outline-offset:3px}

/* One primary action and a balanced pair of secondary actions. */
.resort-menu-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;align-items:stretch}
.resort-menu-buttons>[data-menu-view]{grid-column:1/-1}
.resort-menu-buttons .button,.resort-menu-buttons .menu-download{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:48px;padding:12px;border-radius:10px;font-family:var(--sans);font-size:13px;font-weight:600;line-height:1.35;text-align:center;white-space:normal;text-decoration:none;transition:background .18s ease,border-color .18s ease}
.resort-menu-buttons .menu-online-button,.resort-menu-buttons .menu-download{background:transparent;color:#73412b;border:1px solid #cdb7a5;box-shadow:none}
.resort-menu-buttons .menu-online-button:hover,.resort-menu-buttons .menu-download:hover{background:#f2e6d8;border-color:#a64724}
.resort-menu-buttons>[data-menu-view]:hover{background:#86391c}
.resort-menu-buttons a:focus-visible{outline:2px solid #a64724;outline-offset:3px}
@media(max-width:640px){.resort-menu-buttons{grid-template-columns:minmax(0,1fr);gap:10px}.resort-menu-buttons .button,.resort-menu-buttons .menu-download{padding:12px;min-height:48px}}
@media(prefers-reduced-motion:reduce){.resort-menu-buttons a{transition:none}}

@media(min-width:641px) and (max-width:1100px){.resort-menu-buttons .menu-online-button,.resort-menu-buttons .menu-download{font-size:12px;padding-inline:3px}}

@media(min-width:901px) and (max-width:1100px){.resort-menu-copy{padding-inline:16px}}

/* Shared action controls: primary, secondary and text actions. */
.button,.header-book{min-height:48px;border-radius:10px;font-size:13px;font-weight:600;line-height:1.35;text-align:center;white-space:normal;max-width:100%;padding:13px 24px;touch-action:manipulation;transition:background .18s ease,color .18s ease,border-color .18s ease}
.button:hover,.header-book:hover{transform:none}
.button-dark{background:var(--rust-dark);color:#fff}
.button-dark:hover{background:#813618}
.header-book{padding-inline:22px;white-space:nowrap}
.text-link{min-height:44px;align-items:center;justify-content:center;line-height:1.4;text-align:center}
.button:focus-visible,.header-book:focus-visible,.text-link:focus-visible{outline:2px solid var(--rust-dark);outline-offset:4px}
.hero-actions,.journey-links,.destination-actions{gap:12px;align-items:center;flex-wrap:wrap}
.home-quick-book .button,.availability-card .button{margin-left:0;min-height:48px}
.home-intro-stack-controls button{min-width:44px;min-height:44px}
.home-hero-controls button{position:relative;width:44px;height:44px;min-width:44px;padding:0;background:transparent;border:0;border-radius:10px;transition:none}
.home-hero-controls button::after{content:'';position:absolute;width:18px;height:3px;left:50%;top:50%;transform:translate(-50%,-50%);background:#ffffff80;border-radius:2px}
.home-hero-controls button.is-active{width:44px;background:transparent}
.home-hero-controls button.is-active::after{width:32px;background:#fff}
.home-hero-controls button:focus-visible{outline:2px solid #fff;outline-offset:1px}
.menu-viewer button,.menu-viewer-download{min-height:44px;border-radius:10px}
@media(max-width:700px){.hero-actions,.journey-links,.destination-actions{gap:12px}.hero-actions>.button,.journey-links>.button{max-width:100%}.header-book{min-height:48px;padding-inline:14px}.home-quick-book .button,.availability-card .button{margin-left:0}}
@media(prefers-reduced-motion:reduce){.button,.header-book,.text-link{transition:none}}

.resort-menu-buttons>[data-menu-view]{background:var(--rust-dark)}
.resort-menu-buttons>[data-menu-view]:hover{background:#813618}
.main-nav a{min-height:44px;display:inline-flex;align-items:center}

.home-hero .hero-actions{gap:12px}

.hero .button:focus-visible,.hero .text-link:focus-visible,.home-hero .button:focus-visible,.home-hero .text-link:focus-visible,.closing-cta .button:focus-visible,.closing-cta .text-link:focus-visible{outline-color:#fff;box-shadow:0 0 0 2px var(--rust-dark)}
.button:disabled{opacity:.55;cursor:wait}

/* Group related destinations; keep booking as the primary action. */
.nav-group{position:relative}
.nav-group>summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;list-style:none;font:600 13px var(--sans);color:var(--ink)}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary::after{content:'';width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);margin-top:-3px}
.nav-group.has-current>summary,.nav-group[open]>summary{color:var(--rust-dark)}
.nav-submenu{position:absolute;top:100%;left:-16px;min-width:210px;padding:8px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px #17191218}
.main-nav .nav-submenu a{display:flex;min-height:44px;padding:10px 12px;border-radius:6px;white-space:nowrap}
.main-nav .nav-submenu a:hover,.main-nav .nav-submenu a[aria-current]{background:var(--cream)}
.nav-group>summary:focus-visible{outline:2px solid var(--rust-dark);outline-offset:4px;border-radius:4px}
.category-navigation .button{background:transparent;color:var(--ink);border:1px solid var(--line);box-shadow:none}
.category-navigation .button:hover{background:var(--cream)}
@media(max-width:1100px){
 .nav-group>summary{font-size:16px;padding:11px 13px;min-height:44px;justify-content:space-between}
 .nav-submenu{position:static;min-width:0;margin:0 10px 8px;padding:0 0 0 10px;border:0;border-left:1px solid var(--line);border-radius:0;box-shadow:none;background:transparent}
 .main-nav .nav-submenu a{font-size:14px;white-space:normal}
}
