:root {
  --navy: #0c2a45;
  --navy-deep: #071d30;
  --navy-soft: #183b58;
  --sea: #5f9a8b;
  --sea-dark: #477f72;
  --sand: #c7aa86;
  --ivory: #fefdf8;
  --mist: #edf1f1;
  --ink: #0b1720;
  --muted: #50616b;
  --line: #d2d8d7;
  --white: #ffffff;
  --max: 1180px;
  --radius-sm: 10px;
  --radius: 18px;
  --radius-lg: 28px;
  --shadow: 0 18px 50px rgba(7, 29, 48, .12);
  --shadow-soft: 0 8px 24px rgba(7, 29, 48, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--ivory);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
:focus-visible { outline: 3px solid #e3b869; outline-offset: 3px; }

.skip-link {
  position: fixed;
  left: 16px;
  top: -70px;
  z-index: 2000;
  padding: 10px 16px;
  border-radius: 0 0 10px 10px;
  color: var(--navy);
  background: var(--white);
  font-weight: 700;
  transition: top .2s ease;
}
.skip-link:focus { top: 0; }

.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.section { padding: 96px 0; }
.section--tight { padding: 72px 0; }
.section--mist { background: var(--mist); }
.section--navy { color: var(--white); background: var(--navy); }
.section--deep { color: var(--white); background: var(--navy-deep); }
.section + .section { border-top: 1px solid rgba(12,42,69,.04); }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  color: var(--navy);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .13em;
  line-height: 1.2;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 24px; height: 1px; background: currentColor; opacity: .7; }
.section--navy .eyebrow, .section--deep .eyebrow, .page-hero .eyebrow { color: #c9dfda; }

h1,h2,h3,h4 { margin: 0; font-family: Georgia, "Times New Roman", serif; line-height: 1.08; letter-spacing: -.02em; }
h1 { font-size: clamp(2.5rem, 6.1vw, 5.7rem); }
h2 { font-size: clamp(2rem, 4vw, 3.55rem); }
h3 { font-size: clamp(1.3rem, 2vw, 1.75rem); }
h4 { font-size: 1.15rem; }
p { margin: 0 0 1.2rem; }
ul,ol { margin: .5rem 0 1.4rem; padding-left: 1.25rem; }
li + li { margin-top: .4rem; }
.lead { max-width: 760px; color: var(--muted); font-size: clamp(1.08rem, 1.4vw, 1.22rem); }
.section--navy .lead, .section--deep .lead { color: #dbe6ea; }
.prose { max-width: 780px; }
.prose h2 { margin-top: 2.4rem; margin-bottom: 1rem; font-size: clamp(1.7rem, 3vw, 2.35rem); }
.prose h3 { margin-top: 2rem; margin-bottom: .8rem; }
.prose p, .prose li { color: #31424c; }
.prose a:not(.btn) { color: var(--navy); font-weight: 700; text-underline-offset: 3px; }

.btn {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 20px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  transition: transform .15s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn--sea { color: #071d30; background: #7fc0b0; }
.btn--sea:hover { background: #93cabc; }
.btn--light { color: var(--navy); background: var(--white); }
.btn--outline { color: var(--navy); border-color: #81909a; background: transparent; }
.btn--outline:hover { background: rgba(12,42,69,.06); }
.btn--navy { color: var(--white); background: var(--navy); }
.btn--navy:hover { background: var(--navy-soft); }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

.site-banner {
  padding: 7px 20px;
  color: #dbe7ec;
  background: var(--navy-deep);
  text-align: center;
  font-size: 12px;
  letter-spacing: .05em;
}
.site-header {
  position: relative;
  z-index: 1000;
  color: var(--white);
  background: var(--navy);
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.site-header--overlay { position: absolute; inset: 31px 0 auto; background: linear-gradient(to bottom, rgba(7,29,48,.88), rgba(7,29,48,.35), transparent); border: 0; }
.nav {
  min-height: 74px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
}
.logo { display: inline-flex; align-items: center; gap: 10px; color: var(--white); text-decoration: none; }
.logo-mark {
  width: 30px;
  height: 30px;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 50%;
  position: relative;
}
.logo-mark::before, .logo-mark::after { content:""; position:absolute; background:#d7ece6; }
.logo-mark::before { width: 16px; height: 1px; left: 6px; top: 14px; transform: rotate(45deg); }
.logo-mark::after { width: 1px; height: 16px; left: 14px; top: 6px; transform: rotate(45deg); }
.logo-text { display: grid; line-height: 1.05; text-transform: uppercase; letter-spacing: .06em; }
.logo-text strong { font-size: 13px; }
.logo-text span { margin-top: 4px; font-size: 9px; opacity: .8; }
.nav-links { display: flex; justify-content: center; align-items: center; gap: 26px; }
.nav-links a { color: rgba(255,255,255,.92); text-decoration: none; font-size: 14px; font-weight: 700; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: #b9e3d8; }
.nav-actions { display: flex; align-items: center; gap: 10px; }
.menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  background: rgba(7,29,48,.25);
  cursor: pointer;
}
.menu-toggle span { display:block; width:19px; height:2px; margin:4px auto; background:var(--white); border-radius:4px; }

.hero {
  position: relative;
  min-height: 760px;
  color: var(--white);
  background: var(--navy-deep);
  overflow: hidden;
}
.hero-media { position: absolute; inset: 0; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 46%; }
.hero::after { content:""; position:absolute; inset:0; background: linear-gradient(90deg, rgba(4,18,30,.84) 0%, rgba(4,18,30,.68) 34%, rgba(4,18,30,.28) 64%, rgba(4,18,30,.38) 100%); }
.hero-grid { position:relative; z-index:2; min-height:760px; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(300px,.6fr); align-items:center; gap:80px; padding-top:120px; padding-bottom:70px; }
.hero-copy { max-width: 690px; }
.hero-copy .eyebrow { color: #d6eae5; }
.hero-copy p { max-width: 600px; margin-top: 24px; color: #eff5f7; font-size: 1.07rem; }
.hero-card { align-self:center; width:min(100%,360px); justify-self:end; padding:14px; color:var(--ink); background:rgba(254,253,248,.97); border-radius:26px; box-shadow:0 28px 70px rgba(0,0,0,.34); }
.hero-card img { width:100%; height:200px; object-fit:cover; border-radius:17px; }
.hero-card-body { padding:18px 10px 10px; }
.hero-card h2 { margin-bottom:8px; font-size:1.35rem; }
.hero-card p { margin:0; color:var(--muted); font-size:.92rem; }
.hero-card-meta { display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.hero-card-meta span { padding:5px 9px; border-radius:999px; background:#e9efee; font-size:12px; font-weight:700; }
.hero-card-link { display:flex; justify-content:space-between; align-items:center; margin-top:15px; padding-top:14px; border-top:1px solid var(--line); color:var(--navy); font-weight:800; text-decoration:none; }

.page-hero { position:relative; min-height:490px; color:var(--white); background:var(--navy); overflow:hidden; }
.page-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(7,29,48,.87), rgba(7,29,48,.54) 58%, rgba(7,29,48,.32)); }
.page-hero .container { position:relative; z-index:2; min-height:490px; display:flex; flex-direction:column; justify-content:flex-end; padding-top:100px; padding-bottom:66px; }
.page-hero h1 { max-width: 820px; font-size:clamp(2.6rem,5vw,4.8rem); }
.page-hero p { max-width:680px; margin:22px 0 0; color:#e9f0f3; font-size:1.08rem; }

.intro-grid { display:grid; grid-template-columns: 1px minmax(0, 1fr); gap:32px; max-width:860px; }
.intro-rule { background:var(--sand); }
.intro-copy h2 { font-size:clamp(2rem,3.5vw,3rem); font-weight:400; }
.intro-copy h2 strong { font-weight:700; }
.intro-copy p { max-width:760px; margin-top:22px; color:var(--muted); }
.text-link { display:inline-flex; margin-top:7px; color:var(--navy); font-weight:800; text-decoration-thickness:1px; text-underline-offset:4px; }

.section-heading { display:flex; align-items:end; justify-content:space-between; gap:36px; margin-bottom:38px; }
.section-heading > div { max-width:760px; }
.section-heading p { margin:14px 0 0; color:var(--muted); }
.section--navy .section-heading p, .section--deep .section-heading p { color:#d4e0e5; }

.room-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:22px; }
.room-card { position:relative; min-height:370px; color:var(--white); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft); }
.room-card--wide { grid-column:1 / -1; min-height:460px; }
.room-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.room-card:hover img { transform:scale(1.025); }
.room-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(6,22,34,.85), rgba(6,22,34,.12) 68%); }
.room-card-content { position:absolute; z-index:2; left:0; right:0; bottom:0; padding:28px; }
.room-card h3 { margin-bottom:8px; }
.room-card p { max-width:620px; margin:0 0 15px; color:#f2f6f7; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.chip { padding:5px 9px; border-radius:999px; color:#eaf7f3; background:rgba(12,42,69,.78); backdrop-filter:blur(4px); font-size:11px; font-weight:800; letter-spacing:.03em; }

.info-split { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:70px; align-items:center; }
.info-split--reverse .info-media { order:2; }
.info-media { position:relative; min-height:480px; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.info-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.info-copy h2 { margin-bottom:20px; }
.info-copy p { color:var(--muted); }
.check-list { list-style:none; padding:0; margin:26px 0 0; }
.check-list li { position:relative; padding-left:30px; color:#263945; }
.check-list li::before { content:"✓"; position:absolute; left:0; top:0; color:var(--sea-dark); font-weight:900; }
.section--navy .info-copy p, .section--deep .info-copy p,
.section--navy .check-list li, .section--deep .check-list li { color: #dbe6ea; }
.section--navy .check-list li::before, .section--deep .check-list li::before { color: #b9e3d8; }

.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.feature-card { padding:30px; background:var(--white); border:1px solid #dfe4e3; border-radius:var(--radius); box-shadow:0 10px 28px rgba(7,29,48,.05); }
.feature-card-number { display:flex; align-items:center; justify-content:center; width:42px; height:42px; margin-bottom:22px; border-radius:50%; color:var(--white); background:var(--navy); font-weight:800; }
.feature-card h3 { margin-bottom:12px; }
.feature-card p { color:var(--muted); margin-bottom:0; }
.section--navy .feature-card { color:var(--white); background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.12); box-shadow:none; }
.section--navy .feature-card p { color:#d6e1e5; }
.section--navy .feature-card-number { color:var(--navy); background:#9ccfc2; }

.service-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.service-item { display:grid; grid-template-columns:56px 1fr; gap:18px; padding:24px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); }
.service-icon { width:56px; height:56px; display:grid; place-items:center; border-radius:16px; color:var(--navy); background:#dbe8e5; font-weight:900; font-size:1.1rem; }
.service-item h3 { margin-bottom:7px; font-size:1.3rem; }
.service-item p { margin:0; color:var(--muted); }

.gallery-slider { position:relative; }
.slider-viewport { overflow:hidden; border-radius:var(--radius-lg); }
.slider-track { display:flex; transition:transform .45s ease; will-change:transform; }
.slide { flex:0 0 100%; min-width:0; margin:0; position:relative; min-height:520px; }
.slide img { width:100%; height:520px; object-fit:cover; }
.slide-caption { position:absolute; inset:auto 0 0; padding:50px 32px 30px; color:var(--white); background:linear-gradient(transparent,rgba(6,22,34,.83)); }
.slide-caption h3 { margin-bottom:7px; }
.slide-caption p { margin:0; color:#edf4f6; }
.slider-controls { display:flex; gap:10px; margin-top:16px; justify-content:flex-end; }
.slider-btn { width:48px; height:48px; border:1px solid #7b8a93; border-radius:50%; background:transparent; cursor:pointer; font-weight:900; }
.section--navy .slider-btn { color:var(--white); border-color:rgba(255,255,255,.48); }

.facts-band { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin-top:44px; border:1px solid rgba(255,255,255,.16); border-radius:var(--radius); overflow:hidden; background:rgba(255,255,255,.16); }
.fact { min-height:150px; padding:24px; background:var(--navy); }
.fact strong { display:block; margin-bottom:5px; color:#b9e3d8; font-family:Georgia,"Times New Roman",serif; font-size:2rem; }
.fact span { color:#dbe5e9; font-size:.92rem; }

.faq-grid { display:grid; grid-template-columns:.68fr 1.32fr; gap:58px; align-items:start; }
.faq-intro .contact-card { margin-top:24px; }
.contact-card { padding:22px; border:1px solid var(--line); border-radius:var(--radius); background:#f3f4f1; }
.contact-card strong { display:block; margin-bottom:8px; }
.contact-card span { display:block; color:var(--muted); }
.faq-list details { border-top:1px solid var(--line); }
.faq-list details:last-child { border-bottom:1px solid var(--line); }
.faq-list summary { position:relative; padding:20px 42px 20px 0; cursor:pointer; font-weight:800; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; position:absolute; right:0; top:19px; width:26px; height:26px; display:grid; place-items:center; color:var(--navy); background:#e5eae9; border-radius:50%; }
.faq-list details[open] summary::after { content:"−"; color:var(--white); background:var(--navy); }
.faq-list details p { max-width:760px; padding:0 42px 20px 0; color:var(--muted); }

.cta-panel { display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center; margin-top:42px; padding:32px; border:1px solid #cbd2d1; border-radius:var(--radius); color:var(--ink); background:#fbfaf5; }
.cta-panel h3 { margin-bottom:8px; }
.cta-panel p { margin:0; color:var(--muted); }

.contact-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:54px; align-items:start; }
.contact-details { position:sticky; top:24px; }
.contact-details h2 { margin-bottom:20px; }
.contact-list { display:grid; gap:17px; margin-top:28px; }
.contact-row { padding:18px 0; border-top:1px solid var(--line); }
.contact-row strong { display:block; margin-bottom:3px; }
.contact-row span { color:var(--muted); overflow-wrap:anywhere; }
.form-card { padding:34px; border:1px solid #d4d9d8; border-radius:var(--radius-lg); background:var(--white); box-shadow:var(--shadow-soft); }
.form-card h2 { margin-bottom:10px; }
.form-card > p { color:var(--muted); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:28px; }
.field { display:grid; gap:7px; }
.field--full { grid-column:1/-1; }
.field label { font-weight:800; font-size:.92rem; }
.field input, .field select, .field textarea { width:100%; min-height:48px; padding:12px 14px; color:var(--ink); background:#fbfcfa; border:1px solid #aeb9bc; border-radius:12px; }
.field textarea { min-height:150px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:var(--navy); outline:3px solid rgba(95,154,139,.25); }
.form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:24px; }
.form-status { min-height:24px; margin:0; color:#245e50; font-weight:800; }

.location-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.location-card { padding:28px; border-radius:var(--radius); background:var(--white); border:1px solid var(--line); }
.location-card h3 { margin-bottom:10px; }
.location-card p { margin:0; color:var(--muted); }

.timeline { display:grid; gap:0; margin-top:40px; }
.timeline-item { display:grid; grid-template-columns:180px 1fr; gap:30px; padding:28px 0; border-top:1px solid var(--line); }
.timeline-item:last-child { border-bottom:1px solid var(--line); }
.timeline-label { color:var(--navy); font-weight:900; }
.timeline-item p { margin:0; color:var(--muted); }
.section--navy .timeline-label, .section--deep .timeline-label { color: #b9e3d8; }
.section--navy .timeline-item p, .section--deep .timeline-item p { color: #dbe6ea; }

.legal-hero { padding:70px 0 54px; color:var(--white); background:var(--navy); }
.legal-hero h1 { max-width:900px; font-size:clamp(2.4rem,5vw,4.5rem); }
.legal-hero p { max-width:720px; margin:18px 0 0; color:#d9e5e9; }
.legal-layout { display:grid; grid-template-columns:250px minmax(0,1fr); gap:58px; align-items:start; }
.legal-nav { position:sticky; top:24px; padding:20px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); }
.legal-nav strong { display:block; margin-bottom:12px; }
.legal-nav a { display:block; padding:8px 0; color:var(--muted); font-size:.92rem; text-decoration:none; }
.legal-nav a:hover { color:var(--navy); text-decoration:underline; }
.legal-note { margin:24px 0; padding:20px; border-left:3px solid var(--sea); background:#edf4f1; }
.legal-meta { margin-top:18px; color:#d9e5e9; font-size:.95rem; }

.site-footer { color:#e3edf0; background:var(--navy-deep); }
.footer-main { display:grid; grid-template-columns:1.2fr .8fr .8fr 1fr; gap:40px; padding:66px 0 44px; }
.footer-brand p { max-width:320px; margin-top:18px; color:#b9cbd2; }
.footer-col h2 { margin-bottom:16px; color:#fff; font-family:Arial,Helvetica,sans-serif; font-size:.8rem; letter-spacing:.13em; text-transform:uppercase; }
.footer-col a { display:block; width:max-content; max-width:100%; padding:5px 0; color:#cbd9df; text-decoration:none; font-size:.93rem; }
.footer-col a:hover { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.footer-col span { display:block; padding:5px 0; color:#cbd9df; font-size:.93rem; overflow-wrap:anywhere; }
.footer-bottom { display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center; padding:25px 0 34px; border-top:1px solid rgba(255,255,255,.13); color:#aabdc5; font-size:.86rem; }
.footer-address { text-align:right; }
.footer-pattern { height:8px; background:repeating-linear-gradient(90deg,#5f9a8b 0 18px,#c7aa86 18px 28px,#0c2a45 28px 46px); }

@media (max-width: 980px) {
  .site-header--overlay { position:relative; inset:auto; background:var(--navy-deep); }
  .site-header .logo-text span { opacity:1; color:#dbe6ea; }
  .site-header .menu-toggle { background:var(--navy-deep); border-color:#b9cbd2; }
  .nav { grid-template-columns:auto auto; justify-content:space-between; }
  .menu-toggle { display:block; }
  .nav-actions .btn { display:none; }
  .nav-links { position:absolute; top:74px; left:20px; right:20px; display:none; padding:16px; border-radius:18px; background:rgba(7,29,48,.98); box-shadow:var(--shadow); }
  .nav-links.is-open { display:grid; gap:0; }
  .nav-links a { padding:12px 10px; border-bottom:1px solid rgba(255,255,255,.1); }
  .nav-links a:last-child { border-bottom:0; }
  .site-header--overlay .nav-links { top:74px; }
  .hero-grid { grid-template-columns:1fr .58fr; gap:40px; }
  .feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .info-split { gap:40px; }
  .faq-grid, .contact-layout { grid-template-columns:1fr; }
  .contact-details { position:static; }
  .legal-layout { grid-template-columns:1fr; }
  .legal-nav { position:static; display:flex; flex-wrap:wrap; gap:6px 18px; }
  .legal-nav strong { width:100%; }
  .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 768px) {
  h1, h2, h3, h4 { text-align: center; }
  .container { width:min(calc(100% - 30px),var(--max)); }
  .section { padding:68px 0; }
  .section--tight { padding:58px 0; }
  .site-banner { padding-inline:12px; font-size:10px; }
  .nav { min-height:68px; gap:12px; }
  .nav-links { top:68px; left:15px; right:15px; }
  .logo-text strong { font-size:12px; }
  .hero, .hero-grid { min-height:unset; }
  .hero-grid { grid-template-columns:1fr; align-items:end; padding-top:64px; padding-bottom:54px; gap:34px; }
  .hero::after { background:linear-gradient(to bottom,rgba(4,18,30,.55) 0%,rgba(4,18,30,.72) 46%,rgba(4,18,30,.91) 100%); }
  .hero-copy { text-align:center; margin-inline:auto; }
  .hero-copy .eyebrow { justify-content:center; }
  .hero-copy p { margin-inline:auto; font-size:1rem; }
  .hero-copy .btn-row { justify-content:center; }
  .hero-card { width:min(100%,420px); justify-self:center; }
  .hero-card img { height:190px; }
  .page-hero, .page-hero .container { min-height:440px; }
  .page-hero .container { align-items:center; text-align:center; padding-top:110px; padding-bottom:52px; }
  .page-hero h1 { font-size:clamp(2.25rem,11vw,3.5rem); }
  .page-hero .eyebrow { justify-content:center; }
  .intro-grid { gap:18px; }
  .intro-copy, .section-heading { text-align:center; }
  .intro-copy .text-link { justify-content:center; }
  .section-heading { display:block; }
  .section-heading .btn { margin-top:20px; }
  h2 { font-size:clamp(1.9rem,9vw,2.7rem); }
  h3 { font-size:clamp(1.25rem,6vw,1.55rem); }
  .room-grid, .feature-grid, .service-list, .location-grid { grid-template-columns:1fr; }
  .room-card--wide { grid-column:auto; min-height:390px; }
  .room-card { min-height:390px; }
  .room-card-content { padding:22px; text-align:center; }
  .chips { justify-content:center; }
  .info-split { grid-template-columns:1fr; }
  .info-split--reverse .info-media { order:0; }
  .info-media { min-height:360px; }
  .info-copy { text-align:center; }
  .info-copy .btn-row { justify-content:center; }
  .check-list { text-align:left; max-width:520px; margin-inline:auto; }
  .service-item { grid-template-columns:48px 1fr; padding:20px; }
  .service-icon { width:48px; height:48px; }
  .slide, .slide img { height:390px; min-height:390px; }
  .slide-caption { text-align:center; padding:50px 20px 24px; }
  .slider-controls { justify-content:center; }
  .facts-band { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .faq-grid { gap:34px; }
  .faq-intro { text-align:center; }
  .cta-panel { grid-template-columns:1fr; text-align:center; }
  .cta-panel .btn { justify-self:center; }
  .form-card { padding:24px; }
  .form-grid { grid-template-columns:1fr; }
  .field--full { grid-column:auto; }
  .form-actions { flex-direction:column; align-items:stretch; }
  .form-actions .btn { width:100%; }
  .form-status { text-align:center; }
  .timeline-item { grid-template-columns:1fr; gap:7px; text-align:center; }
  .legal-hero { text-align:center; padding:58px 0 46px; }
  .legal-hero h1 { font-size:clamp(2.2rem,11vw,3.6rem); }
  .legal-nav { display:block; text-align:center; }
  .prose { max-width:none; }
  .prose h2, .prose h3 { text-align:center; }
  .footer-main { grid-template-columns:1fr; text-align:center; padding-top:54px; }
  .footer-brand p { margin-inline:auto; }
  .footer-col a { margin-inline:auto; }
  .footer-bottom { grid-template-columns:1fr; text-align:center; }
  .footer-address { text-align:center; }
}

@media (max-width: 480px) {
  body { font-size:15px; }
  .container { width:min(calc(100% - 24px),var(--max)); }
  .section { padding:58px 0; }
  .section--tight { padding:50px 0; }
  .logo-mark { width:28px; height:28px; }
  .logo-text span { font-size:8px; }
  .menu-toggle { width:42px; height:42px; }
  .hero-grid { padding-top:58px; padding-bottom:44px; }
  h1 { font-size:clamp(2.15rem,12vw,3.1rem); }
  h2 { font-size:clamp(1.75rem,9vw,2.35rem); }
  .lead { font-size:1rem; }
  .hero-card { padding:10px; border-radius:20px; }
  .hero-card img { height:160px; border-radius:13px; }
  .hero-card-body { padding:15px 6px 7px; text-align:center; }
  .hero-card-meta { justify-content:center; }
  .room-card, .room-card--wide { min-height:350px; }
  .room-card-content { padding:19px; }
  .info-media { min-height:300px; }
  .feature-card { padding:24px; text-align:center; }
  .feature-card-number { margin-inline:auto; }
  .service-item { grid-template-columns:1fr; text-align:center; }
  .service-icon { margin-inline:auto; }
  .facts-band { grid-template-columns:1fr; }
  .fact { min-height:auto; text-align:center; }
  .slide, .slide img { height:330px; min-height:330px; }
  .faq-list summary { padding-right:36px; }
  .faq-list details p { padding-right:0; }
  .cta-panel, .form-card { padding:21px; }
  .contact-row { text-align:center; }
  .legal-layout { gap:34px; }
}

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