/* Privacy consent and cookie centre. Kept deliberately close to the existing
   site palette so this legal layer does not introduce a second visual system. */
.privacy-consent {
    grid-column: 1 / -1;
    display: flex;
    align-items: flex-start;
    gap: 9px;
    color: var(--text-dim, #454547);
    font-size: 12px;
    line-height: 1.45;
    cursor: pointer;
}
.privacy-consent input { flex: 0 0 auto; margin: 3px 0 0; accent-color: var(--primary, #7b1e2c); }
.privacy-consent a { text-decoration: underline; }

.legal-unavailable {
    margin: 0;
    padding: 12px 14px;
    border: 1px solid #ead8b8;
    border-radius: 10px;
    background: #fff8e9;
    color: #6f5221;
    font-size: 13px;
    line-height: 1.45;
}

.site-footer__legal { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px 16px; }
.site-footer__cookie-settings { color: var(--text-mute); font: inherit; font-size: inherit; text-decoration: underline; }
.site-footer__cookie-settings:hover { color: #fff; }

.cookie-banner {
    position: fixed;
    z-index: 10050;
    display: flex;
    align-items: center;
    gap: 12px;
    right: max(16px, env(safe-area-inset-right));
    bottom: max(16px, env(safe-area-inset-bottom));
    width: min(360px, calc(100vw - 32px));
    padding: 14px 15px;
    border: 1px solid var(--border, #e6eaf0);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(19, 19, 23, .17);
    color: var(--text, #1a1a1a);
}
.cookie-banner[hidden] { display: none; }
/* The compact notice returns when support closes; hiding it only while the
   modal chat is open prevents two independent fixed panels from overlapping. */
.chat-dialog-open .cookie-banner { visibility: hidden; pointer-events: none; }
.cookie-banner__copy { flex: 1 1 auto; min-width: 0; margin: 0; color: var(--text-dim, #454547); font-size: 11px; line-height: 1.4; }
.cookie-banner__actions { display: flex; flex: 0 0 auto; margin: 0; }
.cookie-banner__actions button, .cookie-dialog__actions button, .video-consent__button {
    min-height: 42px; padding: 10px 14px; border: 1px solid var(--primary, #7b1e2c); border-radius: 9px;
    background: var(--primary, #7b1e2c); color: #fff; font: 600 13px/1.2 var(--font-body, system-ui);
}
.cookie-banner__actions button:hover, .cookie-dialog__actions button:hover, .video-consent__button:hover { background: var(--primary-hover, #5d1421); }
.cookie-banner__actions button {
    min-height: 32px;
    padding: 6px 12px;
    border-color: #72aeb8;
    border-radius: 7px;
    background: #72aeb8;
    color: #102f35;
    font-size: 11px;
    box-shadow: none;
}
.cookie-banner__actions button:hover { background: #639da7; }
.cookie-banner__actions .cookie-button--secondary, .cookie-dialog__actions .cookie-button--secondary {
    background: #fff; color: var(--primary, #7b1e2c);
}
.cookie-banner__actions .cookie-button--secondary:hover, .cookie-dialog__actions .cookie-button--secondary:hover { background: var(--primary-soft, #f3e5e7); }
.cookie-banner button:focus-visible { outline: 3px solid rgba(78, 145, 157, .32); outline-offset: 2px; }
.cookie-dialog button:focus-visible, .site-footer__cookie-settings:focus-visible, .video-consent__button:focus-visible { outline: 3px solid rgba(123, 30, 44, .35); outline-offset: 3px; }

.cookie-dialog-backdrop {
    position: fixed; inset: 0; z-index: 10060; display: grid; place-items: center; padding: 18px;
    background: rgba(20, 22, 28, .56);
}
.cookie-dialog-backdrop[hidden] { display: none; }
.cookie-dialog-open { overflow: hidden; }
.cookie-dialog { width: min(600px, 100%); max-height: min(720px, calc(100vh - 36px)); overflow: auto; padding: 24px; border-radius: var(--radius-md, 20px); background: #fff; color: var(--text, #1a1a1a); box-shadow: 0 24px 64px rgba(0, 0, 0, .28); }
.cookie-dialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.cookie-dialog h2 { margin: 0; font-size: 22px; }
.cookie-dialog__close { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%; color: var(--text-dim, #454547); font-size: 26px; line-height: 1; }
.cookie-dialog__close:hover { background: var(--bg-soft, #f4f4f6); }
.cookie-dialog__intro { margin: 10px 0 18px; color: var(--text-dim, #454547); font-size: 14px; }
.cookie-option { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 15px 0; border-top: 1px solid var(--border, #e6eaf0); }
.cookie-option__title { font-weight: 700; }
.cookie-option__copy { grid-column: 1 / 2; margin: 0; color: var(--text-dim, #454547); font-size: 13px; }
.cookie-switch { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.cookie-switch input { width: 20px; height: 20px; accent-color: var(--primary, #7b1e2c); }
.cookie-dialog__actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }

.p-video--consent { display: grid; place-items: center; gap: 12px; min-height: 260px; padding: 28px; text-align: center; background: var(--bg-soft, #f4f4f6); }
.p-video--consent p { max-width: 34rem; margin: 0; }

@media (max-width: 600px) {
    .cookie-banner { gap: 10px; right: 10px; bottom: 10px; width: min(330px, calc(100vw - 20px)); padding: 13px 14px; }
    .cookie-dialog { padding: 20px; }
    .cookie-option { gap: 4px 10px; }
    .site-footer__legal { justify-content: flex-start; margin-top: 8px; }
}

@media (prefers-reduced-motion: reduce) {
    .cookie-banner, .cookie-dialog-backdrop { transition: none !important; }
}
