:root {
  --mq-ocean: #172B35;
  --mq-ocean-link: #0B5C68;
  --mq-sandstone: #EDE2D0;
  --mq-sandstone-deep: #D8C7AE;
  --mq-muted: #53656B;
  --mq-paper: #FCFBF8;
  --mq-white: #FFFFFF;
  --mq-border: #B7A991;
  --mq-focus: #0B5C68;
  --mq-radius: 0.35rem;
  --mq-content: 90rem;
  --mq-reading: 48rem;
  --bs-primary: #0B5C68;
  --bs-primary-rgb: 11, 92, 104;
  --bs-link-color: #0B5C68;
  --bs-link-hover-color: #172B35;
  --bs-body-color: #172B35;
  --bs-body-bg: #FCFBF8;
  --bs-border-radius: 0.35rem;
  --bs-border-radius-sm: 0.35rem;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--mq-paper);
  color: var(--mq-ocean);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6,
.navbar-brand,
.display-heading {
  color: var(--mq-ocean);
  font-family: "Arial Narrow", Arial, Helvetica, sans-serif;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
}

h1 { font-size: clamp(2.35rem, 5vw, 4.8rem); max-width: 13ch; }
h2 { font-size: clamp(1.9rem, 3vw, 3.1rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.65rem); }
p { max-width: 70ch; }

.lead {
  font-size: clamp(1.08rem, 1.5vw, 1.3rem);
  line-height: 1.5;
}

.small,
small,
.muted { color: #405258 !important; }

a {
  color: var(--mq-ocean-link);
  text-decoration-thickness: 0.1em;
  text-underline-offset: 0.18em;
}

a:hover { color: var(--mq-ocean); }

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--mq-focus);
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  z-index: 2000;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.65rem 0.9rem;
  border-radius: var(--mq-radius);
  background: var(--mq-ocean);
  color: var(--mq-white);
  transform: translateY(-180%);
}

.skip-link:focus { transform: translateY(0); color: var(--mq-white); }

.site-header {
  position: relative;
  z-index: 1000;
  background: var(--mq-paper);
  border-color: var(--mq-border) !important;
}

.navbar { min-height: 4.75rem; }
.navbar-brand {
  color: var(--mq-ocean) !important;
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  white-space: nowrap;
}
.navbar-brand span { color: var(--mq-ocean-link); padding: 0 0.12em; }
.nav-link {
  color: var(--mq-ocean) !important;
  font-weight: 700;
  text-decoration: none;
}
.nav-link:hover,
.nav-link.active { color: var(--mq-ocean-link) !important; }
.navbar-toggler { border-color: var(--mq-ocean); }
.navbar-toggler-icon { filter: brightness(0) saturate(100%) invert(17%) sepia(12%) saturate(1137%) hue-rotate(151deg) brightness(91%); }

.btn {
  border-radius: var(--mq-radius);
  font-weight: 700;
  line-height: 1.2;
  padding: 0.72rem 1rem;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}
.btn-primary {
  background: var(--mq-ocean-link);
  border-color: var(--mq-ocean-link);
  color: var(--mq-white);
}
.btn-primary:hover,
.btn-primary:active {
  background: var(--mq-ocean);
  border-color: var(--mq-ocean);
  color: var(--mq-white);
}
.btn-secondary {
  background: var(--mq-sandstone);
  border-color: var(--mq-ocean);
  color: var(--mq-ocean);
}
.btn-secondary:hover,
.btn-secondary:active {
  background: var(--mq-sandstone-deep);
  border-color: var(--mq-ocean);
  color: var(--mq-ocean);
}
.btn-outline-dark {
  border-color: var(--mq-ocean);
  color: var(--mq-ocean);
}
.btn-outline-dark:hover { background: var(--mq-ocean); color: var(--mq-white); }

.section { padding: 4.5rem 0; }
.section > .container,
.section > .container-fluid { max-width: var(--mq-content); }
.section-sandstone { background: var(--mq-sandstone); }
.section-ocean-tint { background: #E5F0F0; }
.section-heading { margin-bottom: 1rem; }
.eyebrow {
  margin-bottom: 0.8rem;
  color: var(--mq-ocean-link);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

.section-hero { padding-top: 3.5rem; }
.hero-copy { max-width: 47rem; }
.hero-media { max-width: 100%; }
.hero-media img,
.section img { display: block; border-radius: var(--mq-radius); }
.hero-media img { aspect-ratio: 16 / 9; object-fit: cover; }
figure figcaption {
  margin-top: 0.6rem;
  color: #405258;
  font-size: 0.875rem;
  line-height: 1.45;
}

.section-layout--hero-editorial .hero-copy { max-width: 50rem; }
.section-layout--hero-overlay { background: var(--mq-ocean); color: var(--mq-white); }
.section-layout--hero-overlay h1,
.section-layout--hero-overlay h2,
.section-layout--hero-overlay p,
.section-layout--hero-overlay .eyebrow { color: var(--mq-white); }
.section-layout--hero-overlay .hero-copy {
  max-width: 44rem;
  padding: clamp(1.5rem, 5vw, 4rem);
  background: rgba(23, 43, 53, 0.96);
  border-left: 0.35rem solid var(--mq-sandstone-deep);
}
.section-layout--hero-image-top .hero-media { order: -1; margin-bottom: 2rem; }
.section-layout--hero-image-top .hero-media img { aspect-ratio: 16 / 8; }

.note,
.room-card,
.scenario-card,
.venue-feature {
  height: 100%;
  border: 1px solid var(--mq-border);
  border-radius: var(--mq-radius);
  background: var(--mq-white);
  padding: 1.35rem;
}
.expectations {
  border: 1px solid var(--mq-border);
  border-radius: var(--mq-radius);
  background: transparent;
  padding: 1.35rem;
}
.note h3,
.room-card h3,
.scenario-card h3,
.venue-feature h3 { margin-top: 0; }

.section-layout--editorial-notes .note { border-top: 0.3rem solid var(--mq-ocean-link); }
.section-layout--editorial-notes figure img { aspect-ratio: 4 / 3; object-fit: cover; }

.comparison-table {
  --bs-table-bg: var(--mq-white);
  --bs-table-color: var(--mq-ocean);
  border: 1px solid var(--mq-border);
  vertical-align: top;
}
.comparison-table caption { color: var(--mq-ocean); }
.comparison-table th,
.comparison-table td { padding: 1rem; border-color: var(--mq-border); }
.comparison-table thead th {
  background: var(--mq-ocean);
  color: var(--mq-white);
  font-size: 0.9rem;
  letter-spacing: 0.02em;
}
.comparison-table tbody th { font-weight: 700; }
.room-card { display: flex; flex-direction: column; }
.room-card strong { margin-top: auto; color: var(--mq-ocean); font-size: 1.1rem; }

.section-layout--amenities-featured .venue-list,
.section-layout--process-checklist .venue-list { display: grid; gap: 1rem; }
.venue-feature { display: grid; grid-template-columns: 2.4rem 1fr; gap: 1rem; align-items: start; }
.venue-number {
  display: grid;
  width: 2.2rem;
  height: 2.2rem;
  place-items: center;
  border-radius: 50%;
  background: var(--mq-ocean);
  color: var(--mq-white);
  font-size: 0.8rem;
  font-weight: 800;
}
.section-layout--amenities-featured img { aspect-ratio: 3 / 2; object-fit: cover; }

.section-layout--testimonials-quotes .scenario-card { border-top: 0.3rem solid var(--mq-ocean-link); }
.scenario-label {
  margin-bottom: 0.6rem;
  color: var(--mq-ocean-link);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.accordion-item {
  border-color: var(--mq-border);
  background: var(--mq-white);
}
.accordion-button {
  color: var(--mq-ocean);
  font-weight: 700;
}
.accordion-button:not(.collapsed) {
  background: var(--mq-sandstone);
  color: var(--mq-ocean);
  box-shadow: inset 0 -1px 0 var(--mq-border);
}
.accordion-button::after { filter: brightness(0) saturate(100%) invert(17%) sepia(12%) saturate(1137%) hue-rotate(151deg) brightness(91%); }
.accordion-body { color: var(--mq-ocean); }

.expectations { background: transparent; }
.expectations ul { margin-bottom: 0; padding-left: 1.2rem; }
address { font-style: normal; }
.optional { display: inline-block; margin-left: 0.35rem; color: #405258; font-size: 0.9em; font-weight: 400; }
.form-label,
.form-check-label { color: var(--mq-ocean); font-weight: 700; }
.form-control,
.form-select {
  border-color: #718087;
  border-radius: var(--mq-radius);
  color: var(--mq-ocean);
  background-color: var(--mq-white);
}
.form-control::placeholder { color: #405258; opacity: 1; }
.form-control:focus,
.form-select:focus { border-color: var(--mq-ocean-link); box-shadow: 0 0 0 0.2rem rgba(11, 92, 104, 0.2); }
.form-check-input { border-color: #53656B; }
.form-check-input:checked { background-color: var(--mq-ocean-link); border-color: var(--mq-ocean-link); }

.cookie-banner {
  position: fixed;
  z-index: 1050;
  right: 0;
  bottom: 0;
  left: 0;
  border-top: 1px solid var(--mq-border);
  background: var(--mq-sandstone);
  color: var(--mq-ocean);
  box-shadow: 0 -0.3rem 1rem rgba(23, 43, 53, 0.12);
}
.cookie-banner p { color: var(--mq-ocean); }

.site-footer {
  padding-top: 2rem;
  background: var(--mq-ocean);
  color: var(--mq-white);
}
.site-footer address { display: none; }
.site-footer strong,
.site-footer p,
.site-footer a,
.site-footer [data-site-copyright] { color: var(--mq-white); }
.site-footer p.small { color: var(--mq-white) !important; }
.site-footer a { margin-left: 1rem; }
.site-footer a:hover { color: var(--mq-sandstone); }
.site-footer [data-site-copyright] { margin: 0; padding: 0.8rem 1rem; border-top: 1px solid #6D7C82; text-align: center; font-size: 0.85rem; }

.policy-page { background: var(--mq-paper); }
.policy-page__main { padding: 3rem 1rem 5rem; }
.policy-document { max-width: var(--mq-reading); margin: 0 auto; }
.policy-document__header { padding-bottom: 1.5rem; border-bottom: 1px solid var(--mq-border); }
.policy-document__header h1 { max-width: none; }
.policy-document__content { padding-top: 1.5rem; }
.policy-document__content h2 { margin-top: 2rem; font-size: 1.7rem; }
.policy-document__content h3 { margin-top: 1.5rem; font-size: 1.25rem; }
.policy-document__content p,
.policy-document__content li { max-width: 70ch; }
.policy-document__content li + li { margin-top: 0.45rem; }

.site-header--inline .navbar-nav,
.site-header--centered-brand .navbar-nav { flex-wrap: wrap; }
.site-header--stacked-brand .navbar-brand { display: block; margin-bottom: 0.25rem; }
.site-header--wrapped-nav .navbar-collapse { padding-top: 0.75rem; }
.site-header--centered-brand .navbar-brand { margin-inline: auto; }

@media (min-width: 768px) {
  .section { padding: 6rem 0; }
  .policy-page__main { padding-inline: 2rem; }
  .site-header--wrapped-nav .navbar-nav { justify-content: flex-end; }
  .site-header--stacked-brand .navbar > .container-fluid { align-items: flex-start; }
  .site-header--stacked-brand .navbar-collapse { padding-top: 0.45rem; }
  .site-header--centered-brand .navbar > .container-fluid { flex-direction: column; gap: 0.65rem; }
  .site-header--centered-brand .navbar-brand { margin-inline: auto; }
}

@media (min-width: 992px) {
  .site-header--inline .navbar > .container-fluid { align-items: center; }
  .site-header--inline .navbar-collapse { padding-top: 0; }
  .site-header--wrapped-nav .navbar-collapse { max-width: 72rem; }
  .site-header--stacked-brand .navbar > .container-fluid { flex-wrap: wrap; }
  .site-header--stacked-brand .navbar-brand { flex-basis: 100%; }
  .site-header--stacked-brand .navbar-collapse { width: 100%; padding-top: 0; }
  .site-header--centered-brand .navbar > .container-fluid { flex-direction: row; }
  .site-header--centered-brand .navbar-brand { margin-inline: 0; }
  .site-header--centered-brand .navbar-collapse { padding-top: 0; }
  .section-layout--hero-editorial .hero-copy { max-width: 57rem; }
}

@media (max-width: 991.98px) {
  .navbar-nav { padding: 0.8rem 0; }
  .navbar-nav .btn { display: inline-block; margin-top: 0.45rem; }
}

@media (max-width: 575.98px) {
  h1 { font-size: clamp(2.25rem, 12vw, 3.3rem); }
  .section { padding: 3.5rem 0; }
  .section-hero { padding-top: 2.5rem; }
  .cookie-banner .d-flex { flex-wrap: wrap; }
  .site-footer nav { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; }
  .site-footer a { margin-left: 0; }
}

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

/* Application-owned fluid homepage container safeguards v1. */
body main > section .container,
body main > section .container-fluid {
  width: min(calc(100% - clamp(2rem, 6vw, 6rem)), 90rem) !important;
  max-width: 90rem !important;
  margin-inline: auto !important;
}

.skip-link:not(:focus) {
  position: fixed !important;
  top: 0;
  left: 50% !important;
  transform: translate(-50%, -160%);
}

.skip-link:focus {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translate(-50%, 0);
}

@media (max-width: 575.98px) {
  .container > .row.g-5 {
    --bs-gutter-x: 1.5rem;
  }
}

@media (max-width: 575.98px) {
  .container > .row.g-5 {
    --bs-gutter-x: 1.5rem;
  }
}
