[hidden] { display: none !important; }
.privacy-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.footer-preferences { border: 0; background: none; color: inherit; font: inherit; cursor: pointer; padding: 0; text-decoration: underline; }
.cookie-banner, .cookie-dialog, .legal-page, .contact-feedback { font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
.cookie-banner { position: fixed; inset: auto 18px 18px; z-index: 10000; max-width: 1160px; margin: auto; padding: 22px 26px; background: #fffdf8; color: #262b28; border: 1px solid #d8ceba; border-radius: 14px; box-shadow: 0 10px 45px #0003; display: flex; gap: 24px; align-items: center; }
.cookie-banner-copy { flex: 1; }
.cookie-banner h2, .cookie-dialog h2 { color: #2f4037; font: 600 20px/1.3 system-ui,sans-serif; text-transform: none; margin: 0 0 10px; }
.cookie-banner p, .cookie-dialog p { font-size: 14px; line-height: 1.65; margin: 0; }
.cookie-banner a, .cookie-dialog a, .legal-page a, .contact-privacy a, .contact-feedback a { color: #644817; text-decoration: underline; }
.cookie-actions { display: flex; gap: 9px; flex-wrap: wrap; }
.cookie-actions button { appearance: none; border: 1px solid #50634f; border-radius: 7px; padding: 11px 14px; background: #fffdf8; color: #263a2c; font: 600 14px/1.2 system-ui,sans-serif; cursor: pointer; min-height: 42px; }
.cookie-actions button:hover { background: #ecefE6; }
.cookie-actions button:focus-visible, .footer-preferences:focus-visible, .cookie-close:focus-visible { outline: 3px solid #ab8036; outline-offset: 3px; }
.cookie-dialog { width: min(580px, calc(100vw - 36px)); max-height: calc(100dvh - 40px); padding: 26px; border: 1px solid #c8bda8; border-radius: 14px; color: #262b28; background: #fffdf8; overflow-y: auto; }
.cookie-dialog::backdrop { background: #16251f80; }
.cookie-dialog-heading { display: flex; justify-content: space-between; align-items: start; gap: 15px; }
.cookie-close { background: none; border: 0; color: #263a2c; cursor: pointer; font: 28px/1 system-ui,sans-serif; padding: 0 5px 8px; }
.cookie-category { border-top: 1px solid #ded7c9; margin: 18px 0 0; padding: 18px 0; }
.cookie-category p { margin-top: 10px; }
.cookie-required { display: inline-block; color: #3e583c; font-size: 12px; margin-left: 10px; }
.cookie-option { display: flex; align-items: center; justify-content: space-between; gap: 20px; font-weight: 600; }
.cookie-option input { appearance: auto; width: 22px; height: 22px; accent-color: #475e45; flex: 0 0 auto; }
.cookie-dialog .cookie-small { font-size: 12px; margin: 4px 0 22px; }
.legal-shell { padding: 48px 22px 64px; background: linear-gradient(145deg, #eeece4, #f8f6f1); }
.legal-page { box-sizing: border-box; width: 100%; max-width: 760px; margin: 0 auto; padding: 44px 52px; background: #fffefb; border: 1px solid #e1d9ca; border-radius: 18px; box-shadow: 0 12px 38px #423b2412; color: #303731; text-align: left; letter-spacing: normal; overflow-wrap: break-word; }
.legal-page h1 { font: 500 clamp(30px,5vw,40px)/1.2 "Cormorant Garamond",Georgia,serif; color: #354736; text-transform: none; letter-spacing: -.3px; margin: 0 0 22px; }
.legal-page h2 { font: 600 21px/1.4 system-ui,sans-serif; text-transform: none; letter-spacing: normal; margin: 32px 0 12px; }
.legal-page p, .legal-page li { font-size: 16px; line-height: 1.8; letter-spacing: normal; }
.legal-page p { margin: 0 0 18px; }
.legal-page > :last-child { margin-bottom: 0; }
.legal-page ul { padding-left: 22px; }
.legal-page table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 20px 0; overflow-wrap: anywhere; }
.legal-page th, .legal-page td { padding: 12px; border: 1px solid #d8ceba; text-align: left; }
.legal-page th { background: #eeeadd; }
.contact-privacy, .contact-hint { font: 13px/1.6 system-ui,sans-serif; text-align: left; color: #4c554d; margin: 4px 0 12px; }
.contact-privacy { display: flex; align-items: flex-start; gap: 10px; }
.book-form .contact-privacy input, .contact-form .contact-privacy input { appearance: auto; width: 18px; height: 18px; min-height: 18px; padding: 0; margin: 3px 0 0; flex: 0 0 18px; accent-color: #475e45; }
.contact-feedback { color: #293e33; background: #f2f1e8; border-left: 3px solid #a28243; padding: 12px 14px; margin: 0 0 14px; font-size: 14px; line-height: 1.6; text-align: left; }
.contact-feedback[data-state="error"] { border-color: #a5332f; color: #782d29; }
.contact-form button:disabled { opacity: .55; cursor: not-allowed; }
.contact-form input, .contact-form textarea { box-sizing: border-box; max-width: 100%; }
.contact-form .contact-submit { min-height: 44px; }
@media (max-width: 760px) {
  .cookie-banner { inset: auto 10px 10px; padding: 17px; display: block; max-height: calc(100dvh - 20px); overflow-y: auto; }
  .cookie-banner .cookie-actions { margin-top: 16px; }
  .cookie-actions button { flex: 1; }
  .cookie-dialog { padding: 20px; }
  .legal-shell { padding: 24px 14px 36px; }
  .legal-page { padding: 28px 22px; border-radius: 14px; }
  .legal-page table { display: block; overflow-x: auto; }
}
