/* Sub-page aqua alignment.
   Loaded after site.css on every page except the homepage. The homepage keeps
   its own approved aqua system in home.css; these rules scope to
   body:not(.home-page) so home renders from unchanged bytes. */

body:not(.home-page) {
  --ocean-950: #064f68;
  --ocean-900: #075f79;
  --ocean-800: #087b91;
  --aqua-600: #08a9b8;
  --aqua-500: #17bed0;
  --aqua-300: #77dfe9;
  --aqua-150: #c8f3f6;
  --sky-100: #e9faff;
  --sky-050: #f5fcff;
  --ink-blue: #0b5266;
  --muted-blue: #527786;
  --water-line: rgba(8, 123, 145, .17);
  --water-shadow: 0 22px 70px rgba(6, 95, 121, .14);
  --radius: 16px;
  --radius-lg: 28px;
  color: var(--ink-blue);
  background: var(--sky-050);
  font-weight: 400;
}

/* Light sections need their own text role; photo heroes keep pale labels. */
body:not(.home-page) .eyebrow { color: var(--ocean-900); font-weight: 700; }
body:not(.home-page) .page-hero .eyebrow,
body:not(.home-page) .dark .eyebrow,
body:not(.home-page) .article-cta .eyebrow { color: var(--aqua-150); }

/* Shared navigation follows the approved homepage identity. Subpages keep
   their longer link list and a solid surface in every consent state. */
body:not(.home-page) .site-nav {
  height: 92px;
  padding: 0 clamp(1.1rem, 3.5vw, 4.5rem);
  color: var(--ocean-950);
  background: rgba(245, 252, 255, .9);
  border-bottom: 1px solid var(--water-line);
  box-shadow: 0 10px 36px rgba(6, 95, 121, .08);
  backdrop-filter: blur(18px) saturate(150%);
}
body:not(.home-page) .site-nav.scrolled { height: 74px; }
body:not(.home-page) .brand {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  min-height: 44px;
  color: inherit;
  font: 650 clamp(.9rem, 1.6vw, 1.05rem)/1 var(--sans);
  letter-spacing: .14em;
}
body:not(.home-page) .brand:hover { color: var(--ocean-800); }
body:not(.home-page) .brand-mark { width: 44px; height: 28px; flex: 0 0 auto; }
body:not(.home-page) .desktop-nav { gap: clamp(.9rem, 1.8vw, 1.8rem); }
body:not(.home-page) .desktop-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-inline: .4rem;
  font: 650 .66rem/1 var(--sans);
  letter-spacing: .14em;
}
body:not(.home-page) .desktop-nav a::after { background: var(--ocean-800); }
body:not(.home-page) .nav-inquire {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  border-color: var(--aqua-600);
  border-radius: 999px;
  padding: .72rem 1.15rem;
}
body:not(.home-page) .nav-inquire:hover {
  color: var(--ocean-950);
  border-color: var(--aqua-300);
  background: var(--aqua-300);
}
body:not(.home-page) .menu-toggle { min-width: 46px; min-height: 46px; border-radius: 50%; }
body:not(.home-page) .menu-panel {
  gap: clamp(.5rem, 2vh, 1.4rem);
  padding-top: 7rem;
  overflow-y: auto;
  transition: opacity .3s, transform .3s;
  color: white;
  background: linear-gradient(150deg, var(--ocean-950), var(--ocean-800));
}
body:not(.home-page) .menu-panel a {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-height: 44px;
  width: 100%;
  font: 500 clamp(1.65rem, 7vw, 3.4rem)/1.05 var(--serif);
  letter-spacing: -.025em;
  text-transform: none;
  transition-property: color;
}
body:not(.home-page) .analytics-consent { margin-top: 92px; }
body:not(.home-page) .analytics-consent--floating { margin-top: 0; }
body:not(.home-page) [id] { scroll-margin-top: 104px; }

/* Preserve all destinations when the subpage link list no longer fits. */
@media (max-width: 1180px) {
  body:not(.home-page) .desktop-nav { display: none; }
  body:not(.home-page) .menu-toggle { display: block; }
}
@media (max-width: 900px) {
  body:not(.home-page) .site-nav { height: 78px; }
  body:not(.home-page) .site-nav.scrolled { height: 74px; }
  body:not(.home-page) .analytics-consent { margin-top: 78px; }
  body:not(.home-page) .analytics-consent--floating { margin-top: 0; }
}
@media (max-width: 580px) {
  body:not(.home-page) .site-nav { padding-inline: 1rem; }
  body:not(.home-page) .site-nav.scrolled { height: 68px; }
  body:not(.home-page) .brand { gap: .5rem; font-size: .82rem; letter-spacing: .1em; }
  body:not(.home-page) .brand-mark { width: 38px; }
}
@media (max-height: 650px) {
  body:not(.home-page) .menu-panel { justify-content: flex-start; gap: .5rem; }
}

/* Focus language matches the homepage aqua outline. */
body:not(.home-page) :focus-visible { outline-color: var(--aqua-500); }

/* Buttons: pill radius, aqua fill, homepage hover behavior. */
body:not(.home-page) .button {
  border-color: var(--aqua-500);
  border-radius: 999px;
  color: var(--ocean-950);
  background: var(--aqua-300);
  box-shadow: 0 10px 28px rgba(8, 169, 184, .18);
  transition: transform .3s, background .3s, box-shadow .3s;
}
body:not(.home-page) .button:hover {
  transform: translateY(-3px);
  background: var(--aqua-150);
  box-shadow: 0 16px 34px rgba(8, 169, 184, .24);
}
body:not(.home-page) .button:active { transform: translateY(0) scale(.98); }
body:not(.home-page) .button.ghost {
  color: white;
  border-color: rgba(255, 255, 255, .62);
  background: rgba(255, 255, 255, .08);
  box-shadow: none;
}
body:not(.home-page) .button.ghost:hover {
  color: white;
  background: rgba(255, 255, 255, .18);
}
body:not(.home-page) .quick-take .button.ghost {
  color: var(--ink-blue);
  border-color: var(--ink-blue);
  background: transparent;
}
body:not(.home-page) .quick-take .button.ghost:hover {
  color: var(--ocean-950);
  background: var(--aqua-150);
}
body:not(.home-page) .inquiry-form .button:disabled {
  opacity: .55;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* Cards and panels: soft water-line borders, quiet radius, one shadow. */
body:not(.home-page) .about-panel,
body:not(.home-page) .faq-item,
body:not(.home-page) .story-card,
body:not(.home-page) .venue-card,
body:not(.home-page) .month-card,
body:not(.home-page) .article-card {
  border-radius: var(--radius);
}
body:not(.home-page) .about-panel,
body:not(.home-page) .faq-item {
  background: var(--sky-050);
}
body:not(.home-page) .faq-number,
body:not(.home-page) .venue-number,
body:not(.home-page) .story-category { color: var(--aqua-600); }

body:not(.home-page) .story-card {
  border-color: var(--water-line);
  box-shadow: 0 10px 30px rgba(6, 95, 121, .06);
}
body:not(.home-page) .story-card:hover {
  border-color: rgba(23, 190, 208, .52);
  box-shadow: var(--water-shadow);
}
body:not(.home-page) .story-image { background: var(--ocean-950); }

body:not(.home-page) .venue-update,
body:not(.home-page) .quick-take,
body:not(.home-page) .planning-note {
  background: var(--sky-100);
}
body:not(.home-page) .venue-update {
  border-radius: var(--radius);
  border-color: var(--water-line);
}
body:not(.home-page) .quick-take,
body:not(.home-page) .planning-note { border-left-color: var(--aqua-500); }

body:not(.home-page) .venue-source-links a,
body:not(.home-page) .related-reading a {
  border-radius: 999px;
}
body:not(.home-page) .venue-source-links a:hover,
body:not(.home-page) .related-reading a:hover {
  border-color: var(--aqua-500);
  background: var(--aqua-150);
}

/* Editorial photo band and gallery frames. */
body:not(.home-page) .image-band { border-radius: var(--radius-lg); overflow: hidden; }
body:not(.home-page) .gallery-grid figure { border-radius: var(--radius-lg); }

/* Closing and CTA bands take the homepage ocean gradient. */
body:not(.home-page) .closing,
body:not(.home-page) .article-cta {
  background: linear-gradient(145deg, var(--ocean-950), var(--ocean-800));
}
body:not(.home-page) .closing .eyebrow { color: var(--sky-050); }
body:not(.home-page) .closing h2 { color: white; }
body:not(.home-page) .closing .lede { color: rgba(255, 255, 255, .85); }

/* Booking options panel. */
body:not(.home-page) .booking-options {
  border-color: var(--water-line);
  border-radius: 24px;
  background: linear-gradient(110deg, var(--sky-100), white);
}

/* Availability calendar on non-home pages keeps its light surface but gains
   the homepage radius language. */
body:not(.home-page) .availability-calendar {
  border-radius: 24px;
  border-color: rgba(119, 223, 233, .3);
  background: rgba(255, 255, 255, .8);
}
body:not(.home-page) button.availability-day.is-arrival,
body:not(.home-page) button.availability-day.is-departure {
  background: var(--ocean-950);
}

/* Hero scale: sub pages step down from the homepage display size. */
body:not(.home-page) .page-hero h1 {
  font-size: clamp(2.8rem, 5.2vw, 4.8rem);
}
body:not(.home-page) .article-hero .article-deck { color: rgba(255, 255, 255, .88); }

/* The standalone inquiry starts close to its heading, with room for the
   fixed navigation when consent is already decided or JavaScript is off. */
body:not(.home-page) .inquiry-section {
  padding-top: clamp(8rem, 11vw, 9rem);
  padding-bottom: clamp(3rem, 6vw, 6rem);
}
body:not(.home-page):has(.analytics-consent:not(.analytics-consent--floating)) .inquiry-section {
  padding-top: clamp(2rem, 4vw, 3rem);
}
body:not(.home-page) .inquiry-section .split {
  grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
  gap: clamp(2rem, 4vw, 4rem);
}
body:not(.home-page) .inquiry-section .page-title { font-size: clamp(2.8rem, 5.2vw, 4.8rem); }
html:not(.js) body:not(.home-page) .inquiry-form { display: none; }
body:not(.home-page) .inquiry-form {
  min-width: 0;
  margin-top: 0;
  padding: clamp(1rem, 2vw, 2rem);
  border: 1px solid var(--water-line);
  border-radius: 28px;
  background: white;
  box-shadow: var(--water-shadow);
}
body:not(.home-page) .field label,
body:not(.home-page) .inquiry-type-field legend { color: var(--ocean-900); font-weight: 700; }
body:not(.home-page) .field input,
body:not(.home-page) .field select,
body:not(.home-page) .field textarea {
  min-height: 54px;
  border-radius: 14px;
  color: var(--ocean-950);
}
body:not(.home-page) .field:not(.has-error) input,
body:not(.home-page) .field:not(.has-error) select,
body:not(.home-page) .field:not(.has-error) textarea {
  border-color: var(--water-line);
  background: var(--sky-050);
}
body:not(.home-page) .field:not(.has-error) input:focus,
body:not(.home-page) .field:not(.has-error) select:focus,
body:not(.home-page) .field:not(.has-error) textarea:focus {
  border-color: var(--ocean-800);
  box-shadow: 0 0 0 4px rgba(23, 190, 208, .13);
}
body:not(.home-page) .field textarea { min-height: 130px; }
body:not(.home-page) .inquiry-type-options { display: flex; flex-wrap: wrap; gap: .6rem; }
body:not(.home-page) .inquiry-type-secondary { margin-left: 0; gap: .6rem; opacity: 1; }
body:not(.home-page) .inquiry-type-options span { padding-inline: .8rem; border-radius: 999px; }

/* Inquiry type chips match the homepage selected state. */
body:not(.home-page) .inquiry-type-options input:checked + span {
  border-color: var(--ocean-950);
  color: white;
  background: var(--ocean-950);
}

/* Note blocks pick up the water tone. */
body:not(.home-page) .note { background: var(--sky-100); border-left-color: var(--aqua-500); }

/* Calendar controls and clear button: pill language. */
body:not(.home-page) .availability-calendar-controls button,
body:not(.home-page) .availability-clear {
  border-radius: 999px;
}
body:not(.home-page) .availability-calendar-controls button:hover:not(:disabled) {
  border-color: var(--aqua-300);
  background: rgba(119, 223, 233, .18);
}

/* Footer identity and conversion choices use the homepage arrangement. */
body:not(.home-page) footer { padding: 4rem 5% 2rem; color: #f1fcff; background: #031d29; }
body:not(.home-page) .footer-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.5fr);
  align-items: center;
  gap: 1.4rem 2rem;
}
body:not(.home-page) .footer-identity { display: flex; align-items: center; gap: .85rem; order: 1; }
body:not(.home-page) .footer-identity .brand-mark { color: var(--aqua-300); }
body:not(.home-page) .footer-brand {
  font-family: var(--sans);
  font-size: .86rem;
  font-weight: 750;
  letter-spacing: .18em;
  line-height: 1.2;
}
body:not(.home-page) .footer-identity p { margin-top: .45rem; color: #d2e9ef; font-size: .76rem; }
body:not(.home-page) .footer-links { order: 2; flex-wrap: wrap; justify-content: flex-end; gap: .2rem 1.2rem; }
body:not(.home-page) .footer-links a,
body:not(.home-page) .footer-links button {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .55rem 0;
  color: #d2e9ef;
  opacity: 1;
}
body:not(.home-page) .footer-links a:hover,
body:not(.home-page) .footer-links button:hover { color: white; }
body:not(.home-page) .footer-direct { margin: 0; }
body:not(.home-page) .footer-booking { order: 3; justify-content: space-between; }
body:not(.home-page) .footer-note { order: 4; color: #b9d6df; }
body:not(.home-page) .footer-booking-label { color: #c9e4ec; opacity: 1; }
body:not(.home-page) .footer-ota { min-height: 48px; }
body:not(.home-page) .analytics-settings {
  order: 5;
  grid-column: 1 / -1;
  justify-self: start;
  min-height: 44px;
  margin: 0;
  color: #d2e9ef;
  opacity: 1;
}
body:not(.home-page) .copyright { order: 6; grid-column: 1 / -1; margin-top: 0; color: #b9d6df; }

@media (max-width: 900px) {
  body:not(.home-page) .inquiry-section .split { grid-template-columns: 1fr; }
  body:not(.home-page) .footer-inner { grid-template-columns: 1fr; gap: 1.2rem; }
  body:not(.home-page) .footer-links,
  body:not(.home-page) .footer-booking { justify-content: flex-start; }
}

@media (max-width: 580px) {
  body:not(.home-page) .page-hero h1 { font-size: clamp(2.4rem, 11vw, 3.4rem); }
  body:not(.home-page) .inquiry-section { padding-inline: 5%; }
  body:not(.home-page) .inquiry-form { border-radius: 22px; }
  body:not(.home-page) .footer-inner { text-align: left; }
  body:not(.home-page) .footer-identity .brand-mark { width: 42px; }
  body:not(.home-page) .footer-brand { font-size: .78rem; letter-spacing: .14em; }
}
