.cookie-preferences { margin-block: .75rem; max-width: 48rem; }
.footer-bottom:has(.cookie-settings-link) { align-items: center; }
.cookie-settings-link { display: inline-flex; align-items: center; min-height: 44px; padding-block: .5rem; font-size: inherit; text-underline-offset: .2em; }
.cookie-preferences > details { border: 1px solid #9ba89e; border-radius: 1rem; background: #fffef9; color: #203d30; }
/* Reserve footer space while the first-visit panel sits at the screen's bottom. */
.cookie-preferences--pending { min-height: 15rem; --cookie-bottom-clearance: 0px; }
.cookie-preferences--pending > details { position: fixed; inset-inline: max(.75rem, env(safe-area-inset-left, 0px)) max(.75rem, env(safe-area-inset-right, 0px)); bottom: calc(.75rem + env(safe-area-inset-bottom, 0px) + var(--cookie-bottom-clearance)); z-index: 150; width: auto; max-width: 48rem; margin-inline: auto; max-height: calc(100vh - 1.5rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - var(--cookie-bottom-clearance)); max-height: calc(100dvh - 1.5rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - var(--cookie-bottom-clearance)); overflow-y: auto; overscroll-behavior: contain; box-shadow: 0 4px 24px #173d2e26; }
/* The page's regular booking links remain available; restore its fixed CTA after a choice. */
body:has(.cookie-preferences--pending) .home-cta { display: none; }
@media(max-width: 767px) { .customer-workspace .cookie-preferences--pending { --cookie-bottom-clearance: calc(var(--customer-nav-height, 7.5rem) + var(--customer-action-height, 0px)); } }
.cookie-preferences summary { cursor: pointer; margin: 0; padding: .5rem .875rem; min-height: 44px; font-size: 1rem; font-weight: 700; line-height: 1.5; }
.cookie-preferences summary:focus-visible { outline: 3px solid #af3422; outline-offset: 3px; border-radius: .5rem; }
.cookie-panel { padding: 0 .875rem .25rem; }
.cookie-panel p { margin: 0 0 .5rem; font-size: .875rem; line-height: 1.5; max-width: 75ch; }
.cookie-panel a { text-underline-offset: .2em; }
.cookie-policy-links a { display: inline-block; padding-block: .125rem; min-height: 24px; }
.cookie-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin-bottom: .5rem; }
.cookie-preferences button { width: 100%; min-height: 44px; margin: 0; padding: .5rem; background: #214f3d; color: #fff; border: 2px solid #214f3d; border-radius: .5rem; font-size: .9375rem; font-weight: 700; white-space: normal; line-height: 1.5; }
.cookie-preferences button:hover { background: #173a2c; }
.cookie-options { border-top: 1px solid #d8ded6; }
.cookie-options summary { padding-inline: 0; }
.cookie-options label { display: flex; align-items: flex-start; gap: .75rem; margin: 0 0 .75rem; min-height: 44px; font-size: .9375rem; line-height: 1.5; font-weight: 400; cursor: pointer; }
.cookie-options input[type=checkbox] { flex: 0 0 1.3rem; width: 1.3rem; height: 1.3rem; min-height: 0; margin: .15rem 0 0; accent-color: #214f3d; }
.cookie-options span { min-width: 0; overflow-wrap: anywhere; }
.cookie-options[open] { padding-bottom: .75rem; }
@media(min-width: 36rem) { .cookie-actions { max-width: 30rem; } .cookie-options button { width: auto; min-width: 14rem; } }
@media print { .cookie-preferences, .cookie-settings-link { display: none; } }
