@font-face {
  font-family: "Atziluth Script";
  src: url("assets/fonts/atziluth-script.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --cream: #f7f0e4;
  --cream-deep: #eadbc4;
  --paper: #fffdf8;
  --tan: #d2b184;
  --brown: #65442e;
  --brown-dark: #3c2b21;
  --red: #a64235;
  --red-dark: #7f2f28;
  --blue: #0c6075;
  --blue-dark: #073f50;
  --blue-bright: #42b5e8;
  --gold: #c59b45;
  --charcoal: #272724;
  --muted: #6d6962;
  --line: #d8c9b2;
  --white: #fff;
  --shadow-sm: 0 10px 24px rgba(61, 43, 33, .09);
  --shadow-lg: 0 28px 70px rgba(31, 28, 23, .18);
  --heading: Rockwell, "Roboto Slab", "Bree Serif", Georgia, serif;
  --body: "Trebuchet MS", "Segoe UI", Arial, sans-serif;
  --shell: min(1180px, calc(100% - 40px));
  --header-height: 96px;
}

:root[data-theme="dark"] {
  --cream: #121b1e;
  --cream-deep: #1b292d;
  --paper: #10181b;
  --tan: #c7a877;
  --brown: #d2b99f;
  --brown-dark: #f5eadb;
  --red: #b94a3d;
  --red-dark: #94372e;
  --blue: #50abc0;
  --blue-bright: #5bc5ef;
  --gold: #d2aa55;
  --charcoal: #edf1ef;
  --muted: #b5c0be;
  --line: #35474b;
  --shadow-sm: 0 10px 24px rgba(0, 0, 0, .22);
  --shadow-lg: 0 28px 70px rgba(0, 0, 0, .38);
}

*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 24px);
}

body {
  margin: 0;
  background: var(--cream);
  color: var(--charcoal);
  font-family: var(--body);
  font-size: 17px;
  line-height: 1.65;
  overflow-x: hidden;
}

body.menu-open,
body.dialog-open { overflow: hidden; }

img { display: block; max-width: 100%; }
a { color: inherit; }
button, input { font: inherit; }
button { color: inherit; }
svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }

:focus-visible {
  outline: 3px solid #f2b84b;
  outline-offset: 4px;
}

::selection { background: var(--blue); color: var(--white); }

.shell { width: var(--shell); margin-inline: auto; }
.section { padding: 112px 0; }

.skip-link {
  position: fixed;
  z-index: 9999;
  top: 12px;
  left: 12px;
  padding: 10px 16px;
  background: var(--charcoal);
  color: var(--white);
  border-radius: 4px;
  transform: translateY(-160%);
  transition: transform .2s ease;
}

.skip-link:focus { transform: translateY(0); }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

h1, h2, h3 {
  margin: 0;
  color: var(--brown-dark);
  font-family: var(--heading);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.025em;
}

h1 { font-size: clamp(3.25rem, 6.2vw, 6rem); }
h2 { font-size: clamp(2.35rem, 4.5vw, 4.25rem); }
h3 { font-size: 1.65rem; }
p { margin: 0 0 1rem; }

.eyebrow {
  display: flex;
  gap: 9px;
  align-items: center;
  margin-bottom: 18px;
  color: var(--red);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  line-height: 1.3;
  text-transform: uppercase;
}

.eyebrow span { color: var(--gold); font-size: .68rem; }
.eyebrow--light { color: rgba(255,255,255,.82); }
.eyebrow--gold { color: #e0bd68; }

.button-row { display: flex; flex-wrap: wrap; gap: 12px; }

.button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 22px;
  border: 2px solid transparent;
  border-radius: 5px;
  font-size: .92rem;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.button:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(28, 27, 24, .18); }
.button svg { width: 20px; height: 20px; flex: 0 0 auto; }
.button--small { min-height: 44px; padding: 9px 17px; font-size: .86rem; }
.button--red { background: var(--red); color: var(--white); }
.button--red:hover { background: var(--red-dark); }
.button--ghost { border-color: rgba(255,255,255,.65); background: rgba(12, 22, 25, .12); color: var(--white); backdrop-filter: blur(4px); }
.button--ghost:hover { border-color: var(--white); background: rgba(255,255,255,.14); }
.button--outline { border-color: var(--blue); color: var(--blue); background: transparent; }
.button--outline:hover { background: var(--blue); color: var(--white); }
.button--blue { background: var(--blue); color: var(--white); }
.button--blue:hover { background: var(--blue-dark); }
.button--cream { background: var(--cream); color: var(--brown-dark); }
.button--cream:hover { background: var(--white); }
.button--full { width: 100%; }

.text-link {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  color: var(--blue);
  font-weight: 800;
  text-decoration: none;
  border-bottom: 2px solid rgba(12, 96, 117, .25);
  transition: border-color .2s ease, gap .2s ease;
}

.text-link:hover { gap: 14px; border-color: var(--blue); }
.text-link--button { padding: 0; background: none; border: 0; border-bottom: 2px solid rgba(224, 189, 104, .4); color: #f2d78d; cursor: pointer; }

.utility-bar { background: var(--blue-dark); color: var(--white); font-size: .76rem; letter-spacing: .05em; }
.utility-bar__inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; }
.utility-bar p { margin: 0; text-transform: uppercase; opacity: .8; }
.utility-bar a { display: inline-flex; gap: 7px; align-items: center; font-weight: 800; text-decoration: none; }
.utility-bar a:hover { text-decoration: underline; }
.utility-bar svg { width: 14px; height: 14px; }

.site-header {
  position: sticky;
  z-index: 900;
  top: 0;
  height: var(--header-height);
  background: rgba(255, 253, 248, .98);
  border-bottom: 1px solid rgba(101, 68, 46, .15);
  box-shadow: 0 4px 18px rgba(45, 36, 28, .06);
  backdrop-filter: blur(12px);
}

.site-header__inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.brand { position: relative; width: 200px; aspect-ratio: 2577 / 1018; display: block; flex: 0 0 auto; overflow: hidden; }
.brand img { position: absolute; filter: drop-shadow(0 2px 2px rgba(7, 63, 80, .13)); }
.brand__logo--light { top: -5.5%; left: -8.4%; width: 123.2%; max-width: none; height: auto; }
.brand__logo--dark { inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: left center; display: none; }
.header-location { width: 170px; display: grid; flex: 0 0 auto; justify-items: center; align-content: center; gap: 3px; color: var(--brown-dark); }
.header-location img { width: 47.28px; height: auto; display: block; transform: translateY(-5px); }
.header-location span { font-family: "Atziluth Script", cursive; font-size: calc(1.45rem + 2pt); font-weight: 700; line-height: 1; white-space: nowrap; transform: translateY(2px); }
.site-nav { display: flex; align-items: center; gap: clamp(18px, 2.1vw, 34px); margin-left: auto; }
.site-nav > a:not(.button) { position: relative; padding: 25px 0; color: var(--brown-dark); font-size: .86rem; font-weight: 800; text-decoration: none; }
.site-nav > a:not(.button)::after { content: ""; position: absolute; right: 0; bottom: 19px; left: 0; height: 2px; background: var(--red); transform: scaleX(0); transform-origin: right; transition: transform .2s ease; }
.site-nav > a:not(.button):hover::after, .site-nav > a.is-current:not(.button)::after { transform: scaleX(1); transform-origin: left; }
.nav-call svg { width: 17px; }
.header-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 7px; }
.theme-toggle { width: 44px; height: 44px; display: grid; flex: 0 0 auto; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--cream); color: var(--blue); cursor: pointer; transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.theme-toggle:hover { border-color: var(--blue); background: var(--paper); transform: translateY(-2px); }
.theme-toggle svg { grid-area: 1 / 1; width: 21px; height: 21px; }
.theme-toggle__sun { display: none; }
:root[data-theme="dark"] .theme-toggle__moon { display: none; }
:root[data-theme="dark"] .theme-toggle__sun { display: block; }
.menu-toggle { display: none; align-items: center; gap: 9px; padding: 9px; background: none; border: 0; font-size: .78rem; font-weight: 800; text-transform: uppercase; cursor: pointer; }
.menu-toggle__lines { width: 25px; display: grid; gap: 5px; }
.menu-toggle__lines i { display: block; height: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }

.hero { position: relative; min-height: min(720px, calc(100svh - 120px)); display: grid; align-items: center; overflow: hidden; background: var(--blue-dark); color: var(--white); }
.hero__slides, .hero-slide, .hero-slide img, .hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-slide { margin: 0; opacity: 0; visibility: hidden; transition: opacity 1.1s ease, visibility 1.1s ease; }
.hero-slide.is-active { opacity: 1; visibility: visible; }
.hero-slide img { object-fit: cover; transform: scale(1.02); transition: transform 8s linear; }
.hero-slide.is-active img { transform: scale(1.07); }
.hero-slide--double img { object-position: 55% center; }
.hero-slide--triple img { object-position: center; }
.hero-slide--laundry img,
.hero-slide--laundry.is-active img { object-position: center bottom; transform: scale(1.11); transform-origin: center bottom; }
.hero__shade { z-index: 1; background: linear-gradient(90deg, rgba(5, 27, 36, .86) 0%, rgba(5, 27, 36, .65) 42%, rgba(5, 27, 36, .2) 74%, rgba(5, 27, 36, .12) 100%), linear-gradient(0deg, rgba(4,24,32,.44), transparent 42%); }
.hero__content { position: relative; z-index: 2; padding: clamp(64px, 9vh, 92px) 90px clamp(82px, 11vh, 108px) 0; }
.hero h1 { max-width: 780px; color: var(--white); font-size: clamp(2.8rem, 4.8vw, 4.7rem); line-height: 1.02; text-wrap: balance; text-shadow: 0 3px 24px rgba(0,0,0,.3); }
.hero__details { margin-top: clamp(64px, 10vh, 96px); }
.hero__lead { max-width: 620px; margin: 0 0 28px; color: rgba(255,255,255,.9); font-size: clamp(.98rem, 1.35vw, 1.18rem); line-height: 1.58; }
.hero__note { margin-top: 18px; color: rgba(255,255,255,.68); font-size: .78rem; }
.carousel-control { position: absolute; z-index: 3; top: 50%; width: 50px; height: 50px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; background: rgba(11, 20, 23, .3); color: var(--white); cursor: pointer; transform: translateY(-50%); transition: background .2s ease, border-color .2s ease; backdrop-filter: blur(4px); }
.carousel-control:hover { background: var(--red); border-color: var(--red); }
.carousel-control svg { width: 26px; height: 26px; }
.carousel-control--prev { left: 24px; }
.carousel-control--next { right: 24px; }
.carousel-status { position: absolute; z-index: 3; right: 50%; bottom: 30px; display: flex; align-items: center; gap: 16px; transform: translateX(50%); }
.carousel-dots { display: flex; gap: 8px; }
.carousel-dots button { width: 26px; height: 4px; padding: 0; border: 0; border-radius: 10px; background: rgba(255,255,255,.42); cursor: pointer; transition: width .2s ease, background .2s ease; }
.carousel-dots button.is-active { width: 44px; background: var(--white); }
.carousel-pause { width: 32px; height: 32px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.44); border-radius: 50%; background: rgba(0,0,0,.2); color: var(--white); cursor: pointer; }
.carousel-pause svg { grid-area: 1 / 1; width: 15px; height: 15px; }
.carousel-pause .icon-play { display: none; }
.carousel-pause.is-paused .icon-pause { display: none; }
.carousel-pause.is-paused .icon-play { display: block; }

.quick-call { position: relative; z-index: 5; margin-top: -1px; background: var(--red); color: var(--white); }
.quick-call__inner { min-height: 116px; display: grid; grid-template-columns: 1fr 1px 1fr auto; gap: 28px; align-items: center; }
.quick-call__intro { display: flex; gap: 16px; align-items: center; }
.quick-call__icon { width: 43px; height: 43px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; }
.quick-call__icon svg { width: 22px; height: 22px; }
.quick-call__intro div { display: grid; }
.quick-call__intro strong { font-family: var(--heading); font-size: 1.08rem; }
.quick-call__intro span { color: rgba(255,255,255,.78); font-size: .8rem; }
.quick-call__rule { width: 1px; height: 48px; background: rgba(255,255,255,.28); }
.quick-call__phone { white-space: nowrap; color: var(--white); font-family: var(--heading); font-size: 1.28rem; font-weight: 700; text-decoration: none; }
.quick-call__phone span { margin-left: 8px; transition: margin .2s ease; }
.quick-call__phone:hover span { margin-left: 13px; }

.welcome { background: var(--paper); }
.welcome__grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.35fr); gap: clamp(50px, 8vw, 110px); align-items: center; }
.welcome__copy { max-width: 500px; }
.welcome__eyebrow-row { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.welcome__eyebrow-row .eyebrow { margin-bottom: 0; }
.welcome__texas-flag { width: 21.5px; height: 15.5px; display: none; flex: 0 0 auto; object-fit: contain; }
.welcome__copy h2 { margin-bottom: 30px; font-size: clamp(2rem, 3.825vw, 3.6125rem); }
.welcome__copy p { color: var(--muted); }
.welcome__copy .welcome__lead { color: var(--brown-dark); font-family: var(--heading); font-size: 1.23rem; line-height: 1.5; }
.welcome__copy .text-link { margin-top: 12px; }
.day-night-card { min-width: 0; padding: 18px; border: 1px solid var(--line); background: var(--cream); box-shadow: var(--shadow-sm); }
.day-night-card__topline { display: flex; align-items: flex-end; justify-content: space-between; padding: 4px 4px 15px; gap: 20px; }
.day-night-card__kicker { color: var(--red); font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.day-night-card h3 { margin-top: 2px; font-size: clamp(1.5rem, 2.5vw, 2.1rem); }
.day-night-card__time { padding: 5px 11px; border-radius: 99px; background: var(--blue); color: var(--white); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.day-night { --night-reveal: 0%; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--blue-dark); user-select: none; }
.day-night img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.day-night__day { position: absolute; inset: 0; }
.day-night__night { position: absolute; inset: 0; width: 100%; overflow: hidden; clip-path: inset(0 calc(100% - var(--night-reveal)) 0 0); }
.day-night__night img { width: 100%; }
.day-night__divider { position: absolute; z-index: 2; top: 0; bottom: 0; left: var(--night-reveal); width: 2px; background: rgba(255,255,255,.92); box-shadow: 0 0 10px rgba(0,0,0,.18); transform: translateX(-1px); }
.day-night__control { display: grid; grid-template-columns: 58px minmax(0, 1fr) 58px; gap: 12px; align-items: center; padding: 11px 4px 0; color: var(--brown-dark); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.day-night__state:last-child { text-align: right; }
.day-night__range-wrap { position: relative; min-width: 0; height: 46px; display: block; }
.day-night__range-wrap::before,
.day-night__range-wrap::after { content: ""; position: absolute; top: 50%; left: 0; height: 6px; border-radius: 99px; transform: translateY(-50%); pointer-events: none; }
.day-night__range-wrap::before { right: 0; background: #d8d4cc; border: 1px solid #bcb5aa; }
.day-night__range-wrap::after { width: clamp(20px, var(--slider-position), calc(100% - 20px)); background: var(--red); }
.day-night__control input { position: absolute; z-index: 2; inset: 0; width: 100%; height: 46px; margin: 0; appearance: none; -webkit-appearance: none; background: transparent; cursor: ew-resize; }
.day-night__control input::-webkit-slider-runnable-track { height: 6px; background: transparent; }
.day-night__control input::-moz-range-track { height: 6px; background: transparent; }
.day-night__control input::-webkit-slider-thumb { width: 42px; height: 42px; margin-top: -18px; border: 0; appearance: none; -webkit-appearance: none; background: transparent; }
.day-night__control input::-moz-range-thumb { width: 42px; height: 42px; border: 0; background: transparent; }
.day-night__track-handle { position: absolute; z-index: 1; top: 50%; left: clamp(20px, var(--slider-position), calc(100% - 20px)); width: 40px; height: 40px; display: grid; place-items: center; border: 2px solid var(--paper); border-radius: 50%; background: var(--red); color: var(--white); box-shadow: 0 3px 10px rgba(61,43,33,.25); transform: translate(-50%, -50%); pointer-events: none; transition: box-shadow .16s ease; }
.day-night__track-handle svg { width: 22px; height: 22px; }
.day-night__control input:focus-visible { outline: none; }
.day-night__control input:focus-visible + .day-night__track-handle { box-shadow: 0 0 0 4px #f2b84b, 0 3px 10px rgba(61,43,33,.25); }

.recognition { background: var(--blue-dark); color: var(--white); overflow: hidden; }
.recognition__inner { position: relative; min-height: 330px; display: grid; grid-template-columns: 510px 1fr; gap: 56px; align-items: center; padding-block: 45px; }
.recognition__inner::before { content: ""; position: absolute; width: 360px; height: 360px; right: -80px; top: -130px; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; box-shadow: 0 0 0 45px rgba(255,255,255,.025), 0 0 0 90px rgba(255,255,255,.02); }
.recognition__visuals { position: relative; z-index: 1; display: grid; grid-template-columns: 230px 280px; align-items: center; }
.recognition__award { position: relative; height: 242px; overflow: hidden; padding: 0; border: 8px solid var(--paper); background: var(--paper); box-shadow: var(--shadow-lg); cursor: zoom-in; transform: rotate(-2deg); transition: transform .2s ease; }
.recognition__award:hover { transform: rotate(0deg) translateY(-3px); }
.recognition__award img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.recognition__award > span { position: absolute; right: 10px; bottom: 10px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--red); color: var(--white); }
.recognition__award svg { width: 19px; height: 19px; }
.recognition__best-of { width: 100%; height: auto; filter: drop-shadow(0 12px 22px rgba(0,0,0,.16)); }
.recognition__copy { max-width: 700px; }
.recognition__copy h2 { width: max-content; max-width: 100%; margin-bottom: 18px; color: var(--white); font-size: clamp(2.1rem, 4vw, 3.7rem); }
.recognition__copy h2 span { display: block; }
.recognition__title-year { text-align: center; }
.recognition__copy p:not(.eyebrow) { color: rgba(255,255,255,.76); }

.rooms { padding-bottom: 48px; background: var(--cream); }
.section-heading { margin-bottom: 50px; }
.section-heading--center { max-width: 790px; margin-inline: auto; text-align: center; }
.section-heading--center .eyebrow { justify-content: center; }
.section-heading > p:not(.eyebrow) { max-width: 680px; margin: 20px auto 0; color: var(--muted); }
.section-heading--split { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: end; }
.section-heading--split > p { margin: 0 0 7px; color: var(--muted); }
.rooms .section-heading h2,
.gallery__title { font-size: clamp(2rem, 3.825vw, 3.6125rem); }
.gallery__title { width: max-content; max-width: 100%; }
.gallery__title span { display: block; }
.gallery__title span:last-child { text-align: center; }
.room-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.room-card { overflow: hidden; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 5px 0 var(--cream-deep); transition: transform .25s ease, box-shadow .25s ease; }
.room-card:hover { transform: translateY(-7px); box-shadow: 0 12px 0 var(--cream-deep), var(--shadow-sm); }
.room-card__image { position: relative; aspect-ratio: 1.35 / 1; overflow: hidden; background: var(--cream-deep); }
.room-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.room-card:hover .room-card__image img { transform: scale(1.035); }
.room-card__number { position: absolute; right: 15px; bottom: -8px; color: rgba(255,255,255,.9); font-family: var(--heading); font-size: 3rem; font-weight: 700; text-shadow: 0 2px 14px rgba(0,0,0,.35); }
.room-card__body { padding: 28px; }
.room-card__body h3 { margin-bottom: 13px; }
.room-card__body > p { min-height: 58px; color: var(--muted); font-size: .9rem; }
.room-card__rate { display: flex; min-height: auto !important; gap: 9px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); color: var(--brown-dark) !important; font-size: .76rem !important; font-weight: 800; }
.room-card__rate svg { width: 18px; height: 18px; color: var(--red); }
.rooms__note { margin: 22px 0 0; color: var(--muted); font-size: .78rem; text-align: center; }

.rates-band { background: var(--red); color: var(--white); }
.rates-band__inner { min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: end; padding-block: 32px; }
.rates-band__content { min-width: 0; display: grid; gap: 18px; }
.rates-band__rv { max-width: 760px; display: grid; grid-template-columns: minmax(290px, 42%) minmax(0, 1fr); align-items: center; min-height: 156px; overflow: hidden; padding: 8px 22px 8px 0; border: 1px solid rgba(255,255,255,.42); background: rgba(7, 63, 80, .3); box-shadow: 0 8px 24px rgba(77, 31, 25, .12); }
.rates-band__rv-art { position: relative; width: 100%; height: 140px; display: grid; place-items: center; overflow: hidden; }
.rates-band__rv-art img { width: auto; max-width: 100%; height: 136px; object-fit: contain; }
.rates-band__rv strong { display: block; color: #f7d984; font-family: var(--heading); font-size: clamp(1.45rem, 2.4vw, 2rem); letter-spacing: .01em; line-height: 1.05; white-space: nowrap; }
.rates-band__rv p { max-width: 470px; margin: 7px 0 0; color: var(--white); font-size: .95rem; font-weight: 700; line-height: 1.4; }
.rates-band__rates .eyebrow { margin-bottom: 10px; }
.rates-band h2 { width: max-content; max-width: 100%; display: grid; justify-items: center; color: var(--white); font-size: clamp(2.1rem, 4vw, 3.7rem); line-height: .95; }
.rates-band__title-line { white-space: nowrap; }
.rates-band__title-rates { margin-top: .12em; }
.rates-band__aside { min-width: 0; display: grid; gap: 18px; }
.rates-band__amenities { min-width: 0; display: grid; grid-template-columns: minmax(0, .545fr) minmax(0, 1fr); gap: 12px; }
.rates-band__amenity { min-width: 0; min-height: 156px; display: grid; grid-template-columns: 110px minmax(0, 1fr); align-items: center; overflow: hidden; padding: 10px 14px 10px 4px; border: 1px solid rgba(255,255,255,.42); background: rgba(7, 63, 80, .3); box-shadow: 0 8px 24px rgba(77, 31, 25, .12); }
.rates-band__amenity-art { width: 110px; height: 130px; display: grid; place-items: center; overflow: visible; }
.rates-band__amenity-art img { width: 100%; max-width: 100%; height: auto; max-height: 110px; object-fit: contain; object-position: center; }
.rates-band__amenity strong { display: block; color: #f7d984; font-family: var(--heading); font-size: clamp(1.2rem, 1.7vw, 1.55rem); letter-spacing: .01em; line-height: 1.05; }
.rates-band__amenity p { margin: 7px 0 0; color: var(--white); font-size: .82rem; font-weight: 700; line-height: 1.35; }
.rates-band__wifi { grid-template-columns: minmax(0, 1fr); grid-template-rows: 96px auto; align-items: start; justify-items: center; padding: 12px; text-align: center; }
.rates-band__wifi .rates-band__amenity-art { width: 100%; height: 96px; }
.rates-band__wifi .rates-band__amenity-art img { width: 184px; max-width: none; max-height: none; }
.rates-band__laundry { grid-template-columns: 128px minmax(0, 1fr); column-gap: 2px; padding-left: 6px; }
.rates-band__laundry .rates-band__amenity-art { width: 128px; }
.rates-band__laundry .rates-band__amenity-art img { width: 128px; max-width: none; max-height: none; }
.rates-band__laundry > div { max-width: 190px; }
.rates-band__laundry strong { font-size: 1.45rem; white-space: nowrap; }
.rates-band__laundry-line { white-space: nowrap; }
.rates-band__title-rates { justify-self: center; }
.rates-band__aside .button { width: min(100%, 250px); justify-self: end; }

.gallery { background: var(--paper); }
.gallery-filters { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 24px; }
.gallery-filters button { padding: 8px 16px; border: 1px solid var(--line); border-radius: 99px; background: transparent; color: var(--muted); font-size: .78rem; font-weight: 800; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.gallery-filters button:hover, .gallery-filters button.is-active { border-color: var(--blue); background: var(--blue); color: var(--white); }
.gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.gallery-item { position: relative; aspect-ratio: 1; overflow: hidden; padding: 0; border: 0; background: var(--cream-deep); cursor: zoom-in; animation: gallery-in .32s ease both; }
.gallery-item[hidden] { display: none; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.gallery-item:hover img, .gallery-item:focus-visible img { transform: scale(1.04); }
@keyframes gallery-in { from { opacity: 0; transform: translateY(8px); } }

.location { position: relative; min-height: 570px; display: grid; grid-template-columns: 58% 42%; background: var(--cream-deep); }
.location__map iframe { width: 100%; height: 100%; min-height: 570px; display: block; border: 0; filter: saturate(.78) sepia(.05); }
.location__card-wrap { display: grid; place-items: center start; padding: 65px clamp(30px, 6vw, 100px); background: var(--cream); }
.location__card { max-width: 400px; }
.location__card-heading { position: relative; margin-bottom: 28px; }
.location__card h2 { margin-bottom: 0; font-size: clamp(2rem, 3.825vw, 3.6125rem); }
.location__card-flag { position: absolute; top: 0; left: 100%; margin-left: 0; width: clamp(64px, 9.2vw, 175px); height: auto; }
.location__card address { display: grid; margin-bottom: 28px; padding-left: 18px; border-left: 3px solid var(--red); color: var(--muted); font-style: normal; line-height: 1.5; }
.location__card address strong { color: var(--brown-dark); font-family: var(--heading); font-size: 1.17rem; }
.location__social { display: flex; margin-top: 32px; border-bottom: 0; }
.location__social-icon { width: 42px; height: 42px; flex: 0 0 auto; }
.location__social span { display: inline-block; border-bottom: 2px solid rgba(12, 96, 117, .25); transition: border-color .2s ease, transform .2s ease; }
.location__social:hover { gap: 10px; }
.location__social:hover span { border-color: var(--blue); transform: translateX(4px); }

.contact { padding-bottom: 0; background: var(--paper); }
.contact__panel { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: clamp(42px, 6vw, 80px); align-items: center; overflow: hidden; padding: clamp(46px, 5vw, 68px); border-top: 5px solid var(--red); background: #08495a; color: var(--white); box-shadow: var(--shadow-lg); }
.contact__panel::after { content: ""; position: absolute; width: 250px; height: 250px; top: -150px; right: -110px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 45px rgba(255,255,255,.025); }
.contact__copy { position: relative; z-index: 1; max-width: 780px; }
.contact__logo { width: clamp(180px, 19vw, 230px); height: auto; margin-bottom: 22px; object-fit: contain; filter: drop-shadow(0 3px 4px rgba(0,0,0,.2)); }
.contact__copy h2 { color: var(--white); }
.contact__copy > p:not(.eyebrow):not(.contact__notice) { max-width: 640px; margin: 15px 0 0; color: rgba(255,255,255,.8); }
.contact__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 26px 0 22px; }
.contact__detail { min-width: 0; padding: 18px 20px; border: 1px solid rgba(255,255,255,.2); background: rgba(3, 39, 50, .28); }
.contact__label { display: block; margin-bottom: 8px; color: #eed18a; font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.contact__detail address { color: rgba(255,255,255,.9); font-style: normal; line-height: 1.5; }
.contact__detail-link { display: inline-block; margin-top: 9px; color: var(--white); font-size: .76rem; font-weight: 800; text-underline-offset: 3px; }
.contact__phone { display: inline-block; max-width: 100%; color: var(--white); font-family: var(--heading); font-size: clamp(1.55rem, 2.5vw, 2.2rem); font-weight: 700; line-height: 1.2; text-decoration-color: rgba(255,255,255,.35); text-underline-offset: 5px; white-space: nowrap; }
.contact__phone:hover { text-decoration-color: var(--white); }
.contact__detail small { display: block; margin-top: 8px; color: rgba(255,255,255,.66); font-size: .72rem; line-height: 1.5; }
.contact__notice { display: flex; gap: 9px; align-items: flex-start; margin: 0; color: rgba(255,255,255,.72); font-size: .78rem; }
.contact__notice svg { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 3px; }
.contact__actions { position: relative; z-index: 1; display: grid; gap: 12px; }

.site-footer { background: #062f3b; color: var(--white); }
.site-footer__compact { min-height: 92px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; padding: 24px 0; }
.site-footer__nav { display: flex; flex-wrap: wrap; gap: 10px 24px; }
.site-footer__nav a { color: rgba(255,255,255,.72); font-size: .82rem; text-decoration: none; }
.site-footer__nav a:hover { color: var(--white); text-decoration: underline; }
.site-footer__bottom { display: flex; justify-content: flex-end; gap: clamp(18px, 3vw, 36px); color: rgba(255,255,255,.55); font-size: .7rem; }
.site-footer__bottom p { margin: 0; }
.site-footer__bottom span[aria-hidden] { color: var(--gold); }

:root[data-theme="dark"] .site-header { background: rgba(16, 24, 27, .98); border-bottom-color: rgba(255,255,255,.1); box-shadow: 0 4px 18px rgba(0,0,0,.24); }
:root[data-theme="dark"] .brand img { filter: drop-shadow(0 2px 3px rgba(0,0,0,.45)); }
:root[data-theme="dark"] .brand__logo--light { display: none; }
:root[data-theme="dark"] .brand img.brand__logo--dark { display: block; filter: drop-shadow(1px 0 0 rgba(255,255,255,.78)) drop-shadow(-1px 0 0 rgba(255,255,255,.78)) drop-shadow(0 1px 0 rgba(255,255,255,.78)) drop-shadow(0 -1px 0 rgba(255,255,255,.78)) drop-shadow(0 2px 3px rgba(0,0,0,.45)); }
:root[data-theme="dark"] .button--cream { background: #f2e8d9; color: #30251f; }
:root[data-theme="dark"] .button--cream:hover { background: #fffdf8; }
:root[data-theme="dark"] .recognition__award { border-color: #fffdf8; background: #fffdf8; }
:root[data-theme="dark"] .location__map iframe { filter: saturate(.7) brightness(.78); }
:root[data-theme="dark"] .mobile-actions a:not(:first-child) { color: #9cdae8; }

.mobile-actions { display: none; }

dialog { padding: 0; border: 0; background: transparent; }
dialog::backdrop { background: rgba(17, 18, 17, .9); backdrop-filter: blur(4px); }
.lightbox { width: 100vw; max-width: none; height: 100vh; max-height: none; color: var(--white); overflow: hidden; }
.lightbox__frame { position: relative; width: 100%; height: 100%; display: grid; place-items: center; padding: 64px 90px; }
.lightbox figure { max-width: 1180px; max-height: calc(100vh - 125px); display: grid; margin: 0; }
.lightbox figure img { max-width: 100%; max-height: calc(100vh - 175px); width: auto; height: auto; justify-self: center; object-fit: contain; box-shadow: 0 20px 70px rgba(0,0,0,.45); }
.lightbox figcaption { padding-top: 12px; font-family: var(--heading); font-size: 1rem; text-align: center; }
.lightbox__close, .award-dialog__frame > button { position: absolute; z-index: 2; top: 20px; right: 24px; width: 46px; height: 46px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(0,0,0,.3); color: var(--white); cursor: pointer; }
.lightbox__close svg, .award-dialog__frame > button svg { width: 24px; height: 24px; }
.lightbox__nav { position: absolute; z-index: 2; top: 50%; width: 52px; height: 52px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(0,0,0,.25); color: var(--white); cursor: pointer; transform: translateY(-50%); }
.lightbox__nav:hover, .lightbox__close:hover { background: var(--red); border-color: var(--red); }
.lightbox__nav svg { width: 28px; height: 28px; }
.lightbox__nav--prev { left: 24px; }
.lightbox__nav--next { right: 24px; }
.lightbox__count { position: absolute; bottom: 17px; left: 50%; margin: 0; color: rgba(255,255,255,.65); font-size: .75rem; transform: translateX(-50%); }
.award-dialog { width: min(760px, calc(100vw - 32px)); max-width: none; height: min(90vh, 900px); max-height: none; }
.award-dialog__frame { position: relative; width: 100%; height: 100%; display: grid; place-items: center; }
.award-dialog__frame img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; box-shadow: 0 20px 70px rgba(0,0,0,.5); }

@media (min-width: 1051px) {
  .rates-band__inner { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .rates-band__content { grid-template-columns: minmax(0, 1fr) minmax(360px, 420px); align-items: center; }
  .rates-band__rv { width: 100%; max-width: none; }
  .rates-band__rates { justify-self: center; text-align: center; }
  .rates-band__rates .eyebrow { justify-content: center; }
  .rates-band__rates h2 { margin-inline: auto; }
  .rates-band__aside { grid-template-rows: auto auto; align-content: space-between; }

  .gallery-item--umbrella img { object-position: 100% center; }
  .gallery { padding-top: 0; }

  .contact { padding-top: 32px; }
  .contact__panel { border-top: 0; }
  .contact__logo { width: clamp(216px, 22.8vw, 276px); }
}

@media (min-width: 1200px) {
  .welcome__grid { grid-template-columns: minmax(0, .72fr) minmax(0, 1.55fr); gap: clamp(56px, 6vw, 86px); }
  .welcome__copy { transform: translateX(42px); }
  .welcome__texas-flag { display: block; }
  .day-night__control { grid-template-columns: 50px minmax(0, 1fr) 50px; gap: 9px; padding-top: 6px; font-size: .65rem; }
  .day-night__range-wrap,
  .day-night__control input { height: 38px; }
  .day-night__control input::-webkit-slider-thumb { width: 36px; height: 36px; margin-top: -15px; }
  .day-night__control input::-moz-range-thumb { width: 36px; height: 36px; }
  .day-night__track-handle { width: 34px; height: 34px; }
  .day-night__track-handle svg { width: 18px; height: 18px; }

  .recognition__inner { grid-template-columns: 651px 1fr; gap: 42px; }
  .recognition__visuals { grid-template-columns: 276px 336px; column-gap: 39px; transform: translate(18px, -16px); }
  .recognition__copy { transform: translateX(-28px); }
  .recognition__award { height: 290px; }
}

@media (min-width: 1200px) {
  .rates-band__inner { grid-template-columns: minmax(0, .986fr) minmax(0, 1fr); gap: 20px; }
  .rates-band__content { grid-template-columns: minmax(0, 1fr); align-items: initial; }
  .rates-band__rates { width: min(100%, 590px); }
  .rates-band__rv { min-height: 203px; }
  .rates-band__rv-art { height: 180px; }
  .rates-band__rv-art img { height: 176px; }
  .rates-band__aside { grid-template-rows: 203px auto; }
  .rates-band__amenities { gap: 20px; }
  .rates-band__amenity { min-height: 203px; }
}

@media (max-width: 1050px) {
  .header-location { display: none; }
  .site-nav { gap: 18px; }
  .nav-call { display: none; }
  .brand { width: 190px; }
  .quick-call__inner { grid-template-columns: 1fr 1px 1fr; }
  .quick-call__phone { grid-column: 1 / -1; padding-bottom: 22px; text-align: center; }
  .rates-band__inner { grid-template-columns: minmax(0, 1fr); }
  .room-card__body { padding: 22px; }
  .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .recognition__inner { grid-template-columns: 440px 1fr; gap: 40px; }
  .recognition__visuals { grid-template-columns: 200px 240px; }
  .contact__panel { gap: 45px; }
  .site-footer__compact { gap: 30px; }
}

@media (max-width: 820px) {
  :root { --header-height: 82px; --shell: min(calc(100% - 30px), 680px); }
  body { font-size: 16px; padding-bottom: 62px; }
  .section { padding: 82px 0; }
  .utility-bar { display: none; }
  .site-header__inner { position: relative; gap: 9px; }
  .brand { width: clamp(160px, 44vw, 174px); }
  .header-location { position: absolute; left: calc(clamp(160px, 44vw, 174px) + 10px); width: 82px; display: grid; gap: 1px; transform: translateY(4px); }
  .header-location img { width: 33.74px; transform: translateY(-5px); }
  .header-location span { font-size: .94rem; line-height: 1; transform: translateY(3px); }
  .welcome__texas-flag { display: block; }
  .menu-toggle { display: flex; }
  .theme-toggle { margin-left: 3px; }
  .site-nav { position: fixed; z-index: -1; top: var(--header-height); right: 0; left: 0; display: grid; gap: 0; align-content: start; padding: 14px 20px 25px; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: var(--shadow-lg); opacity: 0; visibility: hidden; transform: translateY(-16px); transition: opacity .2s ease, visibility .2s ease, transform .2s ease; }
  .site-nav.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
  .site-nav > a:not(.button) { padding: 13px 8px; border-bottom: 1px solid rgba(101,68,46,.1); font-size: 1rem; }
  .site-nav > a:not(.button)::after { display: none; }
  .site-nav .nav-call { display: inline-flex; margin-top: 15px; }
  .menu-toggle[aria-expanded="true"] .menu-toggle__lines i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-toggle__lines i:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] .menu-toggle__lines i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .hero { min-height: max(650px, calc(100svh - var(--header-height) - 62px)); max-height: 760px; align-items: end; }
  .hero__content { width: var(--shell); padding: 78px 0 82px; }
  .hero h1 { max-width: 620px; font-size: clamp(2.35rem, 4.8vw, 3.1rem); line-height: 1.04; }
  .hero__details { margin-top: 82px; }
  .hero__lead { max-width: 570px; margin: 0 0 24px; }
  .hero__shade { background: linear-gradient(0deg, rgba(5,27,36,.94) 0%, rgba(5,27,36,.72) 54%, rgba(5,27,36,.2) 100%); }
  .hero-slide--double img { object-position: 61% center; }
  .hero-slide--laundry img,
  .hero-slide--laundry.is-active img { transform: scale(1.24); }
  .carousel-control { top: 34%; width: 43px; height: 43px; }
  .carousel-control--prev { left: 14px; }
  .carousel-control--next { right: 14px; }
  .carousel-status { bottom: 22px; }
  .quick-call { display: none; }
  .welcome { padding-block: 44px; }
  .welcome__grid { grid-template-columns: 1fr; gap: 32px; }
  .welcome__copy { max-width: 620px; }
  .recognition__inner { grid-template-columns: 1fr; gap: 30px; }
  .recognition__visuals { grid-template-columns: 150px 225px; transform: translateX(16px); }
  .recognition__award { width: 150px; height: 190px; }
  .room-grid { grid-template-columns: 1fr; max-width: 620px; margin-inline: auto; gap: 28px; }
  .room-card { display: grid; grid-template-columns: 44% 56%; }
  .room-card__image { height: 100%; min-height: 310px; aspect-ratio: auto; }
  .rooms { padding-top: 44px; padding-bottom: 32px; }
  .rooms .section-heading { margin-bottom: 32px; }
  .rates-band__inner { grid-template-columns: 1fr; gap: 20px; padding-block: 34px; }
  .rates-band__rates { order: 1; }
  .rates-band__rv { order: 2; }
  .rates-band__rates { width: 100%; justify-self: center; text-align: center; }
  .rates-band__rates .eyebrow { justify-content: center; }
  .rates-band__rates h2 { margin-inline: auto; }
  .rates-band .button { grid-column: 1; justify-self: center; }
  .section-heading--split { grid-template-columns: 1fr; gap: 20px; }
  .gallery { padding-top: 0; padding-bottom: 44px; }
  .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .location { grid-template-columns: 1fr; }
  .location__map { order: 2; }
  .location__map iframe { min-height: 400px; }
  .location__card-wrap { padding: 75px max(30px, calc((100% - 650px) / 2)); }
  .location__card { max-width: none; }
  .location__card-heading { display: flex; align-items: center; gap: 0; }
  .location__card h2 { min-width: 0; }
  .location__card-flag { position: static; margin-left: 0; width: clamp(56px, 11vw, 90px); flex: 0 0 auto; }
  .contact { padding-top: 44px; padding-bottom: 0; }
  .contact__panel { grid-template-columns: 1fr; gap: 28px; }
  .contact__actions { grid-template-columns: 1fr 1fr; }
  .site-footer__compact { grid-template-columns: 1fr; gap: 18px; padding: 27px 0; }
  .site-footer__nav { justify-content: center; }
  .site-footer__bottom { justify-content: space-between; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); }
  .mobile-actions { position: fixed; z-index: 950; right: 0; bottom: 0; left: 0; height: 62px; display: grid; grid-template-columns: 1.35fr .8fr; background: var(--paper); border-top: 1px solid var(--line); box-shadow: 0 -5px 20px rgba(43, 35, 27, .12); }
  .mobile-actions a { display: flex; gap: 7px; align-items: center; justify-content: center; color: var(--blue-dark); font-size: .76rem; font-weight: 800; text-decoration: none; }
  .mobile-actions a:first-child { background: var(--red); color: var(--white); }
  .mobile-actions svg { width: 18px; height: 18px; }
}

@media (max-width: 560px) {
  :root { --shell: calc(100% - 28px); }
  .section { padding: 70px 0; }
  h2 { font-size: clamp(2.15rem, 11vw, 3rem); }
  .theme-toggle { width: 40px; height: 40px; }
  .menu-toggle__label { display: none; }
  .hero { min-height: max(650px, calc(100svh - var(--header-height) - 62px)); align-items: start; }
  .hero__content { padding: 30px 0 78px; }
  .hero .eyebrow { margin-bottom: 13px; }
  .hero h1 { font-size: clamp(2.15rem, 9.6vw, 2.35rem); line-height: 1.05; }
  .hero__details { margin-top: 205px; }
  .hero__lead { font-size: .98rem; line-height: 1.5; }
  .hero .button-row { display: grid; }
  .hero .button { width: 100%; }
  .carousel-control { top: 27%; }
  .carousel-dots button { width: 16px; }
  .carousel-dots button.is-active { width: 28px; }
  .welcome { padding-block: 24px; }
  .welcome__copy h2,
  .rooms .section-heading h2,
  .gallery__title,
  .location__card h2 { font-size: clamp(1.8275rem, 9.35vw, 2.55rem); }
  .day-night-card { padding: 10px; }
  .day-night-card__topline { align-items: center; }
  .day-night-card__time { padding: 5px 9px; font-size: .64rem; }
  .day-night__control { grid-template-columns: 47px minmax(0, 1fr) 47px; gap: 7px; font-size: .62rem; }
  .day-night__track-handle { width: 38px; height: 38px; }
  .recognition__inner { grid-template-columns: 1fr; padding-block: 60px; }
  .recognition__visuals { width: min(calc(100% + 13px), 375px); grid-template-columns: 40% 60%; margin-inline: auto; }
  .recognition__award { width: 100%; height: auto; aspect-ratio: 150 / 185; }
  .recognition__best-of { width: 100%; max-width: none; transform: translateY(-14px); }
  .room-card { display: block; }
  .room-card__image { height: auto; min-height: 0; aspect-ratio: 16 / 9; }
  .room-card__number { right: 10px; bottom: 10px; padding: 5px 9px; border-radius: 999px; background: rgba(5, 27, 36, .76); font-size: 1.35rem; line-height: 1; }
  .room-card__body > p { min-height: 0; }
  .rooms { padding-top: 24px; padding-bottom: 24px; }
  .rooms .section-heading { margin-bottom: 24px; }
  .rates-band__inner { gap: 16px; padding-block: 24px; text-align: left; }
  .rates-band__content { gap: 15px; }
  .rates-band__amenities { grid-template-columns: minmax(0, 1fr); }
  .rates-band__rv { grid-template-columns: 1fr; gap: 2px; min-height: 0; padding: 8px 14px 14px; }
  .rates-band__rv-art { width: 100%; height: 122px; }
  .rates-band__rv-art img { height: 116px; }
  .rates-band__rv strong { font-size: clamp(1.55rem, 7vw, 1.8rem); text-align: center; }
  .rates-band__rv p { max-width: none; margin-top: 6px; font-size: .92rem; line-height: 1.4; }
  .rates-band__rates .eyebrow { margin-bottom: 8px; }
  .rates-band h2 { font-size: clamp(1.9rem, 9.5vw, 2.35rem); }
  .rates-band .button { width: min(100%, 250px); grid-column: 1; justify-self: center; }
  .gallery-filters { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 6px; scrollbar-width: thin; }
  .gallery-filters button { flex: 0 0 auto; }
  .gallery { padding-top: 0; padding-bottom: 24px; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .location__card-wrap { padding: 65px 24px; }
  .location__card-heading { gap: 0; }
  .location__card-flag { width: clamp(40px, 13vw, 64px); }
  .location__map iframe { min-height: 340px; }
  .contact { padding: 24px 0 0; }
  .contact__panel { width: 100%; padding: 46px 24px; }
  .contact__logo { width: 190px; }
  .contact__details { grid-template-columns: 1fr; }
  .contact__actions { grid-template-columns: 1fr; }
  .contact__phone { font-size: clamp(1.55rem, 7.4vw, 2.05rem); }
  .site-footer__nav { gap: 9px 22px; }
  .site-footer__bottom { display: grid; text-align: center; }
  .lightbox__frame { padding: 65px 10px; }
  .lightbox__nav { top: auto; bottom: 25px; width: 46px; height: 46px; }
  .lightbox__nav--prev { left: 20px; }
  .lightbox__nav--next { right: 20px; }
  .lightbox__count { bottom: 35px; }
  .lightbox figure img { max-height: calc(100vh - 180px); }
}

@media (max-width: 340px) {
  .rates-band__rv-art { height: 108px; }
  .rates-band__rv-art img { height: 102px; }
  .rates-band h2 { font-size: 1.9rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .hero-slide img { transform: none !important; }
}
