:root { --ink: #163846; --gold: #99763c; --muted: #586b72; --line: #dce5e7; }
html { scroll-padding-top: 110px; }
body { line-height: 1.65; }
body > aside { box-shadow: rgba(23, 56, 70, 0.03) 0px 2px 14px; }
.beta-bar { position: static; z-index: auto; box-sizing: border-box; font-size: 14px; }
.beta-bar a { text-underline-offset: 4px; }
.kicker { font-size: 12px; line-height: 1.6; }
.meta, .small { font-size: 13px; }
.pill, .badge { font-size: 12px; line-height: 1.5; }
.intro { font-size: 16px; line-height: 1.8; }
h1 { line-height: 1.15; }
h2, h3 { line-height: 1.3; }
.card, .panel { border-color: var(--line); }
.card { box-shadow: rgba(21, 60, 71, 0.024) 0px 4px 18px; }
.card h3 a { text-decoration: none; }
.card h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.cardfoot { gap: 10px; flex-wrap: wrap; }
.grid > *, .formgrid > *, .detailsgrid > *, .twocol > * { min-width: 0px; }
.factlist dd, .resource-links a, .photo-source { overflow-wrap: anywhere; }
.factlist dd { margin-inline-start: 0px; }
.actions { gap: 10px; flex-wrap: wrap; }
button, .button { min-height: 42px; }
button:disabled { cursor: not-allowed; opacity: 0.65; }
input, select, textarea { font-size: 16px; line-height: 1.5; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: rgb(153, 118, 60) solid 3px; outline-offset: 4px; }
.luxury-home .luxury-nav nav a { white-space: nowrap; line-height: 1.4; }
.luxury-home .luxury-nav nav a:hover, .luxury-home .luxury-nav nav a:focus-visible { background: rgb(241, 245, 246); color: rgb(23, 56, 70); }
.luxury-home .homehero .photocaption { bottom: 48px; }
.luxury-home .luxury-search { border-radius: 3px; }
.luxury-home .card { display: flex; flex-direction: column; }
.luxury-home .cardbody { flex: 1 1 0%; display: flex; flex-direction: column; }
.luxury-home .cardfoot { margin-top: auto; }
.luxury-home .collection-copy { line-height: 1.4; }
.luxury-home .footer { gap: 28px; }
.luxury-home .footer small { line-height: 1.7; }
@media (min-width: 761px) and (max-width: 1280px) {
  .luxury-home .luxury-brand span { display: none; }
  .luxury-home .luxury-nav { gap: 14px; }
  .luxury-home .luxury-nav nav { gap: 12px; }
  .luxury-home .luxury-nav nav a { font-size: 13px; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 20px; }
  body > aside { position: relative; }
  .beta-bar { margin: 16px 0px; padding: 14px; }
  .beta-bar a { margin-left: 0px; }
  .formgrid, .detailsgrid { grid-template-columns: minmax(0px, 1fr); }
  .filters { gap: 12px; }
  .filters > * { min-width: 0px; }
  .filters input, .filters select { width: 100%; min-width: 0px; }
  .factlist { grid-template-columns: minmax(90px, 0.7fr) minmax(0px, 1.3fr); }
  .toolnav { gap: 8px; flex-wrap: wrap; }
  .toolnav a { padding: 9px 11px; }
  .luxury-home .luxury-nav { gap: 10px; }
  .luxury-home .luxury-nav nav { max-height: calc(100dvh - 90px); overflow-y: auto; }
  .luxury-home .luxury-nav nav a { min-height: 44px; }
  .luxury-home .homehero { height: auto; min-height: 580px; }
  .luxury-home .homehero > img { position: absolute; inset: 0px; }
  .luxury-home .herocopy { position: relative; left: auto; right: auto; top: auto; padding: 46px 6vw 105px; max-width: none; }
  .luxury-home .herocopy h1 { font-size: clamp(34px, 9vw, 43px); }
  .luxury-home .homehero .photocaption { bottom: 42px; font-size: 12px; }
  .luxury-home .collections { grid-template-columns: 1fr 1fr; }
  .luxury-home .sectionhead h2 { margin-bottom: 14px; }
  .luxury-home .cardfoot { row-gap: 12px; }
  .luxury-home .footer { flex-wrap: wrap; }
}
@media (max-width: 400px) {
  .luxury-home .luxury-brand { gap: 7px; }
  .luxury-home .luxury-brand span { font-size: 10px; letter-spacing: 1px; }
  .luxury-home .luxury-brand img { width: 54px; }
  .luxury-home .menu-toggle { padding: 10px 12px; }
  .luxury-home .collections { grid-template-columns: 1fr; }
  .filters { grid-template-columns: 1fr; }
  .luxury-home .herocopy .button { display: block; width: fit-content; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, ::before, ::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
.card > a:first-child { display: block; overflow: hidden; }
.card > a:first-child > img { display: block; width: 100%; height: 220px; object-fit: cover; }
.luxury-home .card > a:first-child > img, .luxury-home .card .hotelpicture > img { height: 250px; width: 100%; object-fit: cover; }
.luxury-home .planning-cta { background: rgb(21, 60, 71); color: rgb(255, 255, 255); border-color: rgb(21, 60, 71); }
.luxury-home .home-destination .cardbody > p { margin: 8px 0px 16px; }
.luxury-home .home-hotel .photo-kind { font-size: 12px; }
.luxury-home .luxury-search { box-sizing: border-box; }
@media (max-width: 760px) {
  .luxury-home .card > a:first-child > img { height: 240px; }
  .luxury-home .collection-copy b { font-size: 20px; }
}
.card-details { margin: 12px 0px 18px; border-top: 1px solid var(--line); padding-top: 12px; }
.card-details summary { cursor: pointer; color: var(--ink); font-size: 14px; min-height: 32px; }
.card-details[open] summary { margin-bottom: 12px; }
.luxury-home.site-interior #app { max-width: 1440px; margin: auto; padding: 28px 5vw 64px; box-sizing: border-box; }
.guide-breadcrumb { padding: 18px 5vw; background: rgb(244, 247, 245); color: rgb(83, 103, 110); font-size: 13px; overflow-wrap: anywhere; }
.guide-breadcrumb a { color: inherit; }
.site-interior h1 { font-size: clamp(30px, 4vw, 48px); max-width: 1000px; }
.site-interior .intro { max-width: 800px; }
.site-interior .hero { margin-top: 20px; }
.site-interior .grid { align-items: stretch; }
.site-interior .cardbody { padding: 22px; }
.footer-tools { margin-top: 18px; }
.footer-tools summary { cursor: pointer; min-height: 36px; }
.footer-tools[open] { max-width: 650px; }
.footer-tools a { display: inline-block; margin: 6px 16px 6px 0px; }
@media (max-width: 760px) {
  .luxury-home.site-interior #app { padding: 24px 5vw 40px; }
  .site-interior .hero { grid-template-columns: 1fr; }
  .site-interior .jumpnav { overflow: auto; flex-wrap: nowrap; max-width: 100%; }
  .site-interior .jumpnav button { white-space: nowrap; }
  .site-interior .cardbody { padding: 20px; }
  .guide-breadcrumb { font-size: 12px; }
}
@media (min-width: 761px) {
  .luxury-nav nav { gap: 16px; }
  .luxury-nav nav a { font-size: 13px; }
  .luxury-nav .luxury-brand span { display: none; }
}
.luxury-home .luxury-brand span { display: block; max-width: 210px; white-space: normal; line-height: 1.35; font-size: 12px; letter-spacing: 1px; }
@media (min-width: 761px) and (max-width: 1200px) {
  .luxury-home .luxury-brand span { max-width: 140px; font-size: 10px; }
  .luxury-nav nav { gap: 10px; }
  .luxury-nav nav a { font-size: 12px; }
}
@media (max-width: 400px) {
  .luxury-home .luxury-brand span { max-width: 150px; font-size: 10px; }
  .luxury-home .luxury-brand img { width: 48px; }
}
.luxury-home .herocopy { max-width: 740px; }
.luxury-home .herocopy h1 { font-size: clamp(34px, 4.4vw, 62px); line-height: 1.12; }
.luxury-home .homehero .herocopy p { max-width: 540px; }
.trip-inquiry-form { max-width: 960px; }
.contact-options a, .footer a { overflow-wrap: anywhere; }
.trip-inquiry-form textarea { min-height: 110px; }
.trip-inquiry-form [role="status"] { font-weight: 600; }
.footer { padding-bottom: 100px !important; }
.trip-inquiry-form button, .trip-inquiry-form input, .trip-inquiry-form select { min-height: 44px; }
@media (max-width: 760px) {
  .luxury-home .homehero { min-height: 610px; }
  .luxury-home .herocopy { padding-bottom: 100px; }
  .luxury-home .grid { gap: 18px; }
  .luxury-home .card > a:first-child > img, .luxury-home .card .hotelpicture > img { height: 190px; }
  .luxury-home .home-destination .cardbody, .luxury-home .home-hotel .cardbody { padding: 18px; }
  .luxury-home .collection.photographic { height: 190px; }
  .trip-inquiry-form { padding: 20px; }
  .trip-inquiry-form .actions { align-items: stretch; }
  .trip-inquiry-form .actions > * { flex: 1 1 180px; }
}
@media (max-width: 760px) {
  #weather-results .tablewrap { overflow: visible; }
  #weather-results table, #weather-results tbody, #weather-results tr, #weather-results td { display: block; width: auto; min-width: 0px; }
  #weather-results thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  #weather-results tr { border: 1px solid var(--line); border-radius: 8px; margin: 16px 0px; padding: 14px; background: white; }
  #weather-results td { border: 0px; padding: 7px 0px; overflow-wrap: anywhere; }
  #weather-results td::before { display: block; font-size: 12px; color: var(--muted); }
  #weather-results td:nth-child(2)::before { content: "Comfort /10"; }
  #weather-results td:nth-child(3)::before { content: "Average high / low °F"; }
  #weather-results td:nth-child(4)::before { content: "Precipitation mm / month"; }
  #weather-results td:nth-child(5)::before { content: "Relative humidity"; }
  #weather-results td:nth-child(6)::before { content: "Weather location & source"; }
}
.homepage-map { margin: 24px 6vw; padding: 16px 20px; }
.homepage-map > summary { font-size: 16px; min-height: 32px; }
.homepage-map .destination-map-section { padding: 24px 0px !important; }