.cookie-settings-link { display:block; margin:.8rem auto 0; padding:0; border:0; color:#b8cac4; background:transparent; font:600 .68rem 'Montserrat',sans-serif; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.cookie-settings-link:hover,.cookie-settings-link:focus-visible { color:var(--cream); }
.cookie-dialog-open { overflow:hidden; }
.cookie-backdrop { position:fixed; inset:0; z-index:1045; opacity:0; background:#04110eb3; backdrop-filter:blur(5px); transition:opacity .25s ease; }
.cookie-backdrop.is-visible { opacity:1; }


.cookie-banner { position:fixed; right:clamp(1rem,4vw,3rem); bottom:clamp(1rem,4vw,3rem); z-index:1050; display:grid; grid-template-columns:auto 1fr; gap:1rem; width:min(620px,calc(100% - 2rem)); max-height:calc(100vh - 2rem); overflow:auto; padding:1.5rem; border:1px solid #d9b56d66; border-radius:18px; color:#27332f; background:#fffdf8; box-shadow:0 28px 80px #0008; opacity:0; transform:translateY(calc(100% + 4rem)); visibility:hidden; transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .3s ease,visibility 0s linear .55s; will-change:transform; }
.cookie-banner.is-visible { opacity:1; transform:translateY(0); visibility:visible; transition-delay:0s; }

.cookie-brand { display:grid; place-items:center; width:48px; height:48px; border-radius:14px; background:#f7ead0; font-size:1.55rem; }
.cookie-kicker { margin:0 0 .25rem; color:#8f1d2c; font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.cookie-banner h2 { margin:0; color:#173f35; font:700 clamp(1.55rem,4vw,2rem)/1.1 'Cormorant Garamond',serif; }
.cookie-banner #cookieDescription { margin:.7rem 0 1rem; color:#60706a; font-size:.83rem; line-height:1.65; }
.cookie-details { display:grid; gap:.55rem; margin-bottom:1rem; }
.cookie-option { display:grid; grid-template-columns:1fr 42px; align-items:center; gap:1rem; padding:.8rem; border:1px solid #e8e2d6; border-radius:10px; cursor:pointer; }
.cookie-option span strong,.cookie-option span small { display:block; }
.cookie-option span strong { color:#263b34; font-size:.78rem; }
.cookie-option span small { margin-top:.2rem; color:#77837f; font-size:.67rem; line-height:1.45; }
.cookie-option input { position:absolute; opacity:0; pointer-events:none; }
.cookie-option i { position:relative; width:40px; height:23px; border-radius:99px; background:#c9cfcc; transition:background .2s ease; }
.cookie-option i::after { content:""; position:absolute; top:3px; left:3px; width:17px; height:17px; border-radius:50%; background:#fff; box-shadow:0 1px 4px #0003; transition:transform .2s ease; }
.cookie-option input:checked+i { background:#247d70; }
.cookie-option input:checked+i::after { transform:translateX(17px); }
.cookie-option input:focus-visible+i { outline:3px solid #d9b56d88; outline-offset:2px; }
.cookie-option input:disabled+i { opacity:.65; }
.cookie-actions { display:flex; flex-wrap:wrap; gap:.55rem; }
.cookie-button { min-height:42px; padding:.65rem .9rem; border:1px solid #cfd8d4; border-radius:9px; color:#29443b; background:#fff; font-size:.72rem; font-weight:700; cursor:pointer; transition:transform .15s ease,background .15s ease; }
.cookie-button:hover { transform:translateY(-1px); background:#f4f6f5; }
.cookie-primary { border-color:#173f35; color:#fff; background:#173f35; }
.cookie-primary:hover { background:#24584d; }
.cookie-text-button { border-color:transparent; text-decoration:underline; text-underline-offset:3px; }
.cookie-legal { margin:1rem 0 0; color:#a3aaa7; font-size:.65rem; }
.cookie-legal a { color:#687872; }
.cookie-legal span { margin:0 .45rem; }
@media (max-width:575px) { .cookie-banner { right:0; bottom:0; width:100%; max-height:92vh; grid-template-columns:1fr; padding:1.25rem; border-right:0; border-bottom:0; border-left:0; border-radius:20px 20px 0 0; } .cookie-brand { width:42px; height:42px; } .cookie-actions { display:grid; grid-template-columns:1fr; } .cookie-button { width:100%; } }
@media (max-width:991px) { .calendar-grid { grid-template-columns:repeat(4,1fr); } }