/* The Duke Home — shared visual system
   Navy #0b1f33 · Gold #c4a165 · Ivory #f8f5ef */
:root {
  --duke-navy: #0b1f33;
  --duke-navy-deep: #071726;
  --duke-navy-soft: #17334b;
  --duke-gold: #c4a165;
  --duke-gold-light: #d8c29a;
  --duke-ivory: #f8f5ef;
  --duke-mist: #e9eef2;
  --duke-white: #ffffff;
  --duke-text: #0b1f33;
  --duke-muted: #5f6f7d;
  --duke-line: #dfe5e9;
}

html { background: var(--duke-ivory); }
body {
  color: var(--duke-text);
  accent-color: var(--duke-gold);
}
::selection { background: var(--duke-gold); color: var(--duke-navy); }
:focus-visible { outline: 2px solid var(--duke-gold); outline-offset: 3px; }

/* Make the existing Tailwind `ink` token consistently navy. */
.bg-ink { background-color: var(--duke-navy) !important; }
.text-ink { color: var(--duke-navy) !important; }
.border-ink { border-color: var(--duke-navy) !important; }
.hover\:bg-ink:hover { background-color: var(--duke-navy) !important; }
.hover\:text-ink:hover { color: var(--duke-navy) !important; }
.selection\:bg-ink::selection { background: var(--duke-gold) !important; }
.selection\:text-white::selection { color: var(--duke-navy) !important; }

.eyebrow { color: var(--duke-gold); font-weight: 600; }
button, a { text-underline-offset: 3px; }
input, select, textarea { border-radius: 0 !important; }

/* Homepage */
.duke-page-home > .bg-ink,
.duke-page-home #contact { background: var(--duke-navy) !important; }
.duke-page-home #navbar {
  background: rgba(11, 31, 51, .97) !important;
  border-color: rgba(255, 255, 255, .10) !important;
  box-shadow: 0 10px 30px rgba(7, 23, 38, .12);
  backdrop-filter: blur(14px);
}
.duke-page-home #navbar .logo-img,
.duke-page-home #navbar.nav-scrolled .logo-img { filter: brightness(0) invert(1) !important; }
.duke-page-home #navbar .nav-link,
.duke-page-home #navbar button { color: rgba(255,255,255,.78) !important; }
.duke-page-home #navbar .nav-link:hover,
.duke-page-home #navbar button:hover { color: var(--duke-white) !important; }
.duke-page-home #navbar .text-ink,
.duke-page-room > header .text-ink,
.duke-page-legal > header .text-ink { color: var(--duke-gold-light) !important; }
.duke-page-home #navbar a[href="#booking"] {
  background: var(--duke-gold) !important;
  border-color: var(--duke-gold) !important;
  color: var(--duke-navy) !important;
}
.duke-page-home #navbar a[href="#booking"]:hover { background: var(--duke-gold-light) !important; }
.duke-page-home #mobileMenu {
  background: var(--duke-navy) !important;
  border-color: rgba(255,255,255,.10) !important;
  color: var(--duke-white) !important;
}
.duke-page-home #mobileMenu a { color: rgba(255,255,255,.80) !important; }
.duke-page-home #mobileMenu a:hover { color: var(--duke-white) !important; }
.duke-page-home .hero-overlay {
  background: linear-gradient(90deg, rgba(7,23,38,.93) 0%, rgba(7,23,38,.66) 50%, rgba(7,23,38,.36) 100%) !important;
}
.duke-page-home #home .eyebrow { color: var(--duke-gold-light) !important; }
.duke-page-home section.bg-zinc-50 { background-color: var(--duke-ivory) !important; }
.duke-page-home section.bg-white { background-color: var(--duke-white) !important; }
.duke-page-home section .text-zinc-400.eyebrow { color: #9b7b43 !important; }
.duke-page-home article,
.duke-page-home details,
.duke-page-home #bookForm { border-color: var(--duke-line) !important; }
.duke-page-home article:hover { border-color: var(--duke-gold) !important; }
.duke-page-home #searchBox button[type="button"],
.duke-page-home #bookForm button[type="submit"] {
  background: var(--duke-navy) !important;
  color: var(--duke-white) !important;
}
.duke-page-home #faq details[open] { border-color: var(--duke-gold) !important; }

/* Apartment and villa detail pages */
.duke-page-room { background: var(--duke-ivory) !important; }
.duke-page-room > header {
  background: rgba(11,31,51,.97) !important;
  border-color: rgba(255,255,255,.10) !important;
  color: var(--duke-white) !important;
}
.duke-page-room > header a,
.duke-page-room > header button { color: rgba(255,255,255,.78) !important; }
.duke-page-room > header a:hover,
.duke-page-room > header button:hover { color: var(--duke-white) !important; }
.duke-page-room > main { background: var(--duke-white); }
.duke-page-room > main > div { border-color: var(--duke-line) !important; }
.duke-page-room .eyebrow { color: #9b7b43 !important; }
.duke-page-room details { border-color: var(--duke-line) !important; }
.duke-page-room a[href*="#booking"],
.duke-page-room a[href="/#booking"] { border-color: var(--duke-navy) !important; }
.duke-page-room footer { background: var(--duke-navy) !important; }
.duke-page-room .fixed.bottom-0 { background: var(--duke-white) !important; border-color: var(--duke-line) !important; }

/* Travel guide index and articles */
.duke-page-guide { background: var(--duke-ivory) !important; color: var(--duke-navy) !important; }
.duke-page-guide > header.sticky {
  background: rgba(11,31,51,.97) !important;
  border-color: rgba(255,255,255,.10) !important;
  color: var(--duke-white) !important;
}
.duke-page-guide > header.sticky a { color: rgba(255,255,255,.78) !important; }
.duke-page-guide > header.sticky a:hover { color: var(--duke-white) !important; }
.duke-page-guide > header.sticky .logo-img { filter: brightness(0) invert(1); }
.duke-page-guide > header.sticky a[href="/#booking"] {
  background: var(--duke-gold) !important;
  border-color: var(--duke-gold) !important;
  color: var(--duke-navy) !important;
}
.duke-page-guide .article-body h2,
.duke-page-guide .article-body strong,
.duke-page-guide summary,
.duke-page-guide .pull-quote,
.duke-page-guide .timeline b,
.duke-page-guide .food-list b,
.duke-page-guide .venue-card h3 { color: var(--duke-navy) !important; }
.duke-page-guide .article-body h2::after { background: var(--duke-gold) !important; }
.duke-page-guide .article-body a,
.duke-page-guide .venue-card a.vc-map,
.duke-page-guide .source-box a { color: #7e612d !important; }
.duke-page-guide .quick-answer,
.duke-page-guide .source-box,
.duke-page-guide .note,
.duke-page-guide .facts div { background: var(--duke-white) !important; border-color: var(--duke-gold) !important; }
.duke-page-guide .local-voice { background: linear-gradient(135deg,var(--duke-navy),var(--duke-navy-soft)) !important; }
.duke-page-guide .guide-card,
.duke-page-guide .food-list article,
.duke-page-guide .venue-card { background: var(--duke-white) !important; border-color: #ded6c8 !important; }
.duke-page-guide .guide-card:hover,
.duke-page-guide .food-list article:hover,
.duke-page-guide .venue-card:hover { border-color: var(--duke-gold) !important; box-shadow: 0 18px 45px rgba(11,31,51,.12) !important; }
.duke-page-guide .guide-card .eyebrow,
.duke-page-guide .vc-tag { color: #7e612d !important; }
.duke-page-guide footer { background: var(--duke-navy) !important; }

/* Legal, owner information and complaint pages */
.duke-page-legal { background: var(--duke-ivory) !important; color: var(--duke-navy) !important; }
.duke-page-legal > header {
  background: var(--duke-navy) !important;
  border-color: rgba(255,255,255,.10) !important;
  color: var(--duke-white) !important;
}
.duke-page-legal > header a,
.duke-page-legal > header button { color: rgba(255,255,255,.78) !important; }
.duke-page-legal > header a:hover,
.duke-page-legal > header button:hover { color: var(--duke-white) !important; }
.duke-page-legal > header img { filter: brightness(0) invert(1); }
.duke-page-legal > main {
  background: var(--duke-white);
  border-top: 4px solid var(--duke-gold);
  box-shadow: 0 24px 60px rgba(11,31,51,.08);
  margin-top: 3rem;
  margin-bottom: 3rem;
  padding: 3rem !important;
}
.duke-page-legal .doc > p:first-child { color: #8a6a31 !important; }
.duke-page-legal .doc h1,
.duke-page-legal .doc h2 { color: var(--duke-navy) !important; }
.duke-page-legal .doc a { color: #7e612d; }
.duke-page-legal .policy-box,
.duke-page-legal .step { border-color: var(--duke-gold) !important; background: var(--duke-ivory); }
.duke-page-legal > footer { background: var(--duke-navy) !important; }

/* 404 */
.duke-page-404 { background: var(--duke-navy) !important; color: var(--duke-white) !important; }
.duke-page-404 main::before {
  content: '';
  width: 4rem;
  height: 1px;
  background: var(--duke-gold);
  margin-bottom: 2rem;
}
.duke-page-404 main p { color: rgba(255,255,255,.62) !important; }
.duke-page-404 main img { filter: brightness(0) invert(1); }
.duke-page-404 main a { background: var(--duke-gold) !important; border-color: var(--duke-gold) !important; color: var(--duke-navy) !important; }

/* Hospitality landing already defines the visual system; shared accessibility only. */
.duke-page-hospitality { background: var(--duke-white); }

@media (max-width: 639px) {
  .duke-page-home .hero-overlay { background: linear-gradient(180deg,rgba(7,23,38,.72),rgba(7,23,38,.94)) !important; }
  .duke-page-legal > main { margin-top: 1.25rem; margin-bottom: 1.25rem; padding: 2rem 1.25rem !important; }
}
