/* Booking and newsletter pages inherit the visitor's site-wide preference.
   The original light palette and the existing form geometry stay unchanged. */
.nhn-theme-controls-ready .site-header--simple { gap: 18px; }
.nhn-theme-controls-ready .site-header--simple .nhn-simple-contact { margin-left: auto; }
.nhn-theme-controls-ready .site-header--simple .nhn-theme-toggle--header { flex: 0 0 48px; width: 48px; height: 48px; padding: 12px; }
.site-header--simple .nhn-theme-toggle--header .nhn-theme-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

html[data-nhn-theme="dark"] .nhn-page { background: #102b24; color: #f3f0e8; }
html[data-nhn-theme="dark"] .nhn-booking {
  --nb-forest: #f3f0e8;
  --nb-paper: #102b24;
  --nb-gold: #c2a46f;
  --nb-gold-ink: #c2a46f;
  --nb-line: #c2a46f40;
  --nb-muted: #c3cec7;
  color-scheme: dark;
}
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__field :is(input, select, textarea) { background: #1c3c32; border-color: #6b8275; color: #f3f0e8; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__field :is(input, textarea)::placeholder { color: #b9c7be; opacity: 1; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__field :is(input, select, textarea):focus { outline-color: #c2a46f; border-color: #c2a46f; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__field :is(input, select, textarea)[aria-invalid="true"] { border-color: #e6b79c; outline-color: #e6b79c; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__field :is(input, select, textarea):disabled { color: #b9c7be; opacity: .7; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__field option { background: #1c3c32; color: #f3f0e8; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__field input:-webkit-autofill { -webkit-text-fill-color: #f3f0e8; caret-color: #f3f0e8; box-shadow: 0 0 0 1000px #1c3c32 inset; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__agreement input { accent-color: #c2a46f; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__submit,
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__slots-error button { background: #c2a46f; color: #102b24; border-color: #c2a46f; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__submit > span:last-child { color: #102b24; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__submit:hover:not(:disabled),
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__slots-error button:hover:not(:disabled) { background: #e0c797; color: #102b24; border-color: #e0c797; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__submit:disabled { opacity: .65; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__summary { background: #1c3c32; color: #f3f0e8; border-left-color: #c2a46f; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__notice { background: #1c3c32; border-color: #6b8275; color: #f3f0e8; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__notice--error { background: #3a3024; border-color: #c2a46f; color: #f3e6cf; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__start-link:hover { background: #1c3c32; color: #f3f0e8; }
html[data-nhn-theme="dark"] .nhn-booking-feedback-sending .nhn-booking__submit > span:last-child { color: transparent; }
html[data-nhn-theme="dark"] .nhn-booking-feedback-sending .nhn-booking__submit > span:last-child::after { border-color: #102b2438; border-top-color: #102b24; border-right-color: #102b24; }

/* Availability remains sage / grey / lavender in either mode. The dark text
   is deliberate: replacing it with cream would reduce contrast on these cards. */
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__picker { background: #17362c; border-color: #c2a46f40; border-top-color: #c2a46f; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__calendar .nhn-booking__week-heading button,
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__calendar-today { background: #1c3c32; color: #f3f0e8; border-color: #6b8275; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__calendar .nhn-booking__week-heading button:hover:not(:disabled),
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__calendar-today:hover:not(:disabled) { background: #2a4d3f; color: #f3f0e8; border-color: #c2a46f; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__calendar .nhn-booking__days button { background: #264839; color: #f3f0e8; border-color: #42624f; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__calendar .nhn-booking__days button:hover:not(:disabled):not([aria-pressed="true"]) { background: #365846; border-color: #c2a46f; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__calendar .nhn-booking__days button:disabled { background: #17362c; color: #92a99b; border-color: transparent; opacity: 1; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__calendar .nhn-booking__days button:is(.is-today, [aria-current="date"]):not([aria-pressed="true"]) { border-color: #c2a46f; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__calendar .nhn-booking__days button[aria-pressed="true"] { background: var(--nb-selected); border-color: var(--nb-selected-border); color: #102b24; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__calendar .nhn-booking__days button[aria-pressed="true"] strong { color: #102b24; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__hours button,
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__time-panel .nhn-booking__slots button { color: #102b24; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__hours button:hover:not(:disabled):not([aria-pressed="true"]),
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__time-panel .nhn-booking__slots button:hover:not(:disabled):not([aria-pressed="true"]),
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__hours button[aria-pressed="true"],
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__time-panel .nhn-booking__slots button[aria-pressed="true"] { color: #102b24; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__picker .nhn-booking__hours button:disabled,
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__picker .nhn-booking__time-panel .nhn-booking__slots button:disabled { color: #606660; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__time-panel .nhn-booking__selected-slot { background: #dfdaef; color: #102b24; border-color: #b0a4c3; }
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__picker button:focus-visible { outline-color: #c2a46f; }
/* Compatibility with the week/period view during an in-progress page load. */
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__periods button:hover:not(:disabled),
html[data-nhn-theme="dark"] .nhn-booking .nhn-booking__periods button[aria-pressed="true"] { background: #2a4d3f; color: #f3f0e8; }

/* These selectors outrank the Custom HTML block's own inline <style> rules. */
html[data-nhn-theme="dark"] #nhn-newsletter-verification,
html[data-nhn-theme="dark"] #nhn-newsletter-confirmation { color: #f3f0e8; }
html[data-nhn-theme="dark"] #nhn-newsletter-verification .nhn-verify-panel,
html[data-nhn-theme="dark"] #nhn-newsletter-confirmation .nhn-confirm-panel { border-color: #c2a46f40; }
html[data-nhn-theme="dark"] #nhn-newsletter-verification .nhn-verify-steps-panel,
html[data-nhn-theme="dark"] #nhn-newsletter-confirmation .nhn-confirm-gift { background: #1c3c32; color: #f3f0e8; }
html[data-nhn-theme="dark"] #nhn-newsletter-verification :is(.nhn-verify-step-copy, .nhn-verify-terms, .nhn-verify-help),
html[data-nhn-theme="dark"] #nhn-newsletter-confirmation :is(.nhn-confirm-terms, .nhn-confirm-help) { color: #c3cec7; }
html[data-nhn-theme="dark"] #nhn-newsletter-verification .nhn-verify-help strong { color: #f3f0e8; }
html[data-nhn-theme="dark"] #nhn-newsletter-confirmation a.nhn-confirm-contact { background: #c2a46f; color: #102b24; }
html[data-nhn-theme="dark"] #nhn-newsletter-confirmation a.nhn-confirm-contact span { color: #102b24; }
html[data-nhn-theme="dark"] #nhn-newsletter-confirmation a.nhn-confirm-contact:hover { background: #e0c797; color: #102b24; }
html[data-nhn-theme="dark"] #nhn-newsletter-verification .nhn-verify-universes a:hover,
html[data-nhn-theme="dark"] #nhn-newsletter-confirmation .nhn-confirm-universes a:hover { background: #1c3c32; border-color: #c2a46f; }

/* Booking's component selectors are stronger than the global cursor rules. */
@media (hover: hover) and (pointer: fine) {
  html .nhn-booking :is(a[href], button, select, label, input[type="checkbox"], input[type="radio"], input[type="date"], input[type="time"]) { cursor: url('cursor-dot-link.svg') 12 12, pointer; }
  html .nhn-booking .nhn-booking__picker button,
  html .nhn-booking .nhn-booking__submit { cursor: url('cursor-dot-link.svg') 12 12, pointer; }
  html .nhn-booking .nhn-booking__field :is(input[type="text"], input[type="email"], input[type="tel"], textarea) { cursor: text; }
  html .nhn-booking .nhn-booking__picker button:disabled,
  html .nhn-booking .nhn-booking__submit:disabled,
  html .nhn-booking :is(input:disabled, select:disabled, textarea:disabled, [aria-disabled="true"]) { cursor: not-allowed; }
}

@media (max-width: 760px) {
  .nhn-theme-controls-ready .site-header--simple { gap: 10px; }
  .nhn-theme-controls-ready .site-header--simple .nhn-brand { width: clamp(128px, 35vw, 180px); margin-right: 0; }
  .nhn-theme-controls-ready .site-header--simple .nhn-simple-contact { max-width: 112px; font-size: 10px; }
}
@media (max-width: 360px) {
  .nhn-theme-controls-ready .site-header--simple { gap: 8px; }
  .nhn-theme-controls-ready .site-header--simple .nhn-brand { width: 118px; }
  .nhn-theme-controls-ready .site-header--simple .nhn-simple-contact { max-width: 92px; }
}
