:root {
  --background: #f6f9ff;
  --foreground: #101b32;
  --card: rgb(255 255 255 / 74%);
  --primary: #2563eb;
  --primary-glow: #3b82f6;
  --rose: #2563eb;
  --peach: #60a5fa;
  --primary-foreground: #fff;
  --secondary: #eaf1ff;
  --secondary-foreground: #1e3a8a;
  --accent: #dfebff;
  --accent-foreground: #1e3a8a;
  --muted: #edf3ff;
  --muted-foreground: #59687e;
  --border: #dce7fb;
  --input: #dce7fb;
  --ring: #2563eb;
  --gradient-primary: linear-gradient(120deg, #3b82f6, #2563eb 55%, #60a5fa);
  --gradient-flow: radial-gradient(60% 50% at 85% 10%, #3b82f62b, transparent 70%), radial-gradient(50% 45% at 5% 60%, #60a5fa26, transparent 70%), radial-gradient(40% 40% at 60% 100%, #2563eb1f, transparent 70%);
  --shadow-elegant: 0 20px 50px -20px #2563eb73;
  --shadow-soft: 0 10px 40px -15px #1e40af24;
}
html { scroll-padding-top: 88px; }
body { overflow-x: clip; }
button, input[type=range], select { cursor: pointer; }
input:not([type=range]) { cursor: text; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid #2563eb; outline-offset: 4px; }
[hidden] { display: none !important; }
.btn-luxe:hover { box-shadow: 0 25px 60px -18px #2563eb99; }
.brand-wordmark { letter-spacing: .16em; white-space: nowrap; }
.brand-mark { flex-shrink: 0; }
.faq-answer { padding-bottom: 18px; color: var(--muted-foreground); line-height: 1.8; font-size: 1rem; }
.mobile-booking { display: none; }
.form-success { display: grid; gap: 16px; justify-items: center; padding: 32px; text-align: center; }
.form-success h3 { font-size: 1.5rem; font-weight: 700; }
.form-success p { color: var(--muted-foreground); }
.skip-link { position: fixed; top: -100px; right: 20px; z-index: 100; padding: 12px 20px; border-radius: 12px; background: white; color: #1e40af; }
.skip-link:focus { top: 12px; }
@media (max-width: 1023px) {
  header.mobile-menu-open nav { display: flex; position: absolute; inset-inline: 20px; top: calc(100% + 8px); flex-direction: column; align-items: stretch; gap: 0; padding: 12px; background: #fff; border: 1px solid var(--border); border-radius: 20px; box-shadow: var(--shadow-elegant); }
  header.mobile-menu-open nav a { padding: 14px 18px; border-radius: 12px; }
  header.mobile-menu-open nav a:hover { background: var(--secondary); }
  header.mobile-menu-open nav .mobile-booking { display: flex; margin-top: 6px; }
}
@media (max-width: 400px) {
  .brand-wordmark { font-size: 1rem; letter-spacing: .1em; }
  .brand-mark { width: 34px; height: 34px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  body { background: #fff; color: #111; }
  header, footer, .skip-link, button, article > .mb-8 { display: none !important; }
  article { max-width: none !important; padding: 0 !important; }
  article section { break-inside: avoid; margin-top: 22pt; }
  h1, h2, h3 { break-after: avoid; }
  p { orphans: 3; widows: 3; }
  .text-gradient { background: none; color: #1d4ed8; -webkit-text-fill-color: #1d4ed8; }
  @page { size: A4; margin: 18mm; }
}
