.cookie-banner[hidden], .map-consent-placeholder[hidden], [data-consent-action][hidden] { display: none !important; }
.cookie-banner, .cookie-dialog, .map-consent-placeholder, .policy-content {
    --consent-accent: #86595e;
    --consent-ink: #382e31;
    --consent-line: #e2d4d7;
    color: var(--consent-ink);
}
.cookie-banner {
    position: fixed; inset: auto 0 0; z-index: 1050;
    background: #fff; border-top: 1px solid var(--consent-line);
    box-shadow: 0 -8px 32px rgba(77, 35, 44, .12);
    padding: 22px 32px;
    display: flex; gap: 32px; align-items: center;
    max-height: 70dvh; overflow-y: auto;
}
.cookie-banner-copy { flex: 1; min-width: 0; }
.cookie-banner h2, .cookie-dialog h2 { font-size: 21px; line-height: 1.4; margin: 0 0 8px; color: var(--consent-accent); }
.cookie-banner p, .cookie-dialog p { font-size: 14px; line-height: 1.65; margin: 0 0 8px; }
.cookie-policy-links { margin-bottom: 0 !important; }
.cookie-banner a, .cookie-dialog a, .map-consent-placeholder a, .policy-content a { color: var(--consent-accent); text-decoration: underline; text-underline-offset: 3px; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.cookie-banner > .cookie-actions { flex: 0 0 auto; flex-wrap: nowrap; }
.cookie-banner > .cookie-actions > .consent-button { flex: 0 0 auto; white-space: nowrap; }
.consent-button {
    display: inline-flex; justify-content: center; align-items: center;
    padding: 12px 16px; min-height: 46px; border: 1px solid #86595e;
    border-radius: 4px; background: #fff; color: #86595e;
    font: inherit; font-size: 14px; font-weight: 600; line-height: 1.4;
    cursor: pointer; text-align: center;
}
.consent-button:hover { background: #f6eff0; color: #86595e; }
.consent-button-primary { background: #86595e; color: #fff; }
.consent-button-primary:hover { background: #69434a; color: #fff; }
.consent-button:focus-visible, .consent-close:focus-visible, .cookie-dialog input:focus-visible,
.cookie-banner a:focus-visible, .policy-content a:focus-visible, .footer-consent:focus-visible {
    outline: 3px solid #754319; outline-offset: 4px;
}
.cookie-dialog {
    width: min(620px, calc(100% - 32px)); max-height: calc(100dvh - 32px);
    margin: auto; padding: 28px; border: 0; border-radius: 8px; background: #fff;
    box-shadow: 0 16px 60px rgba(5, 25, 49, .25); overflow-y: auto;
}
.cookie-dialog::backdrop { background: rgba(8, 25, 45, .58); }
body:has(.cookie-dialog[open]) { overflow: hidden; }
.cookie-dialog-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.consent-close { background: transparent; border: 0; color: #86595e; font-size: 30px; line-height: 1; width: 44px; height: 44px; min-width: 44px; padding: 0; flex-shrink: 0; margin: -10px -10px 0 0; cursor: pointer; }
.cookie-category { display: flex; gap: 20px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--consent-line); }
.cookie-category > div { flex: 1; }
.cookie-category h3, .cookie-category label { display: block; color: #86595e; font-size: 15px; line-height: 1.5; font-weight: 600; margin: 0 0 6px; }
.cookie-category p { margin: 0; }
.cookie-category input { flex: 0 0 24px; width: 24px; height: 24px; accent-color: #86595e; cursor: pointer; }
.consent-always-on { font-size: 12px; font-weight: 600; color: #31543b; }
.cookie-detail-link { margin: 20px 0 !important; }
.consent-status { position: fixed; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.consent-status[data-visible="true"] { inset: auto 16px 16px; width: auto; height: auto; max-width: 640px; padding: 16px; z-index: 1060; background: #fff; color: #382e31; border: 1px solid #86595e; clip-path: none; white-space: normal; }
.footer-consent { background: none; color: #fff; border: 0; padding: 0; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.consent-map { position: relative; min-height: 340px; background: #f7f2f3; }
.consent-map iframe { display: block; width: 100%; height: 400px; border: 0; }
.map-consent-placeholder { max-width: 680px; margin: 0 auto; padding: 48px 24px; text-align: center; }
.map-consent-placeholder h2 { font-size: 25px; color: #86595e; margin-bottom: 14px; }
.map-consent-placeholder p { line-height: 1.7; margin-bottom: 18px; }
.map-consent-placeholder .consent-button { margin-bottom: 16px; }
.map-consent-placeholder small { display: block; font-size: 13px; }
.map-external-link { text-align: center; padding: 16px 24px; margin: 0; font-size: 14px; background: #f7f2f3; }
.map-external-link a { color: #86595e; text-decoration: underline; text-underline-offset: 3px; }
#main.policy-content { max-width: 1140px; padding: 48px 24px 64px; }
.policy-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 64px; }
.policy-nav { align-self: start; position: sticky; top: 100px; border-top: 1px solid var(--consent-line); padding-top: 20px; }
.policy-nav a { display: block; margin-bottom: 14px; font-size: 14px; }
.policy-copy { max-width: 74ch; font-size: 16px; line-height: 1.85; }
.policy-copy h2 { color: #86595e; font-size: 25px; line-height: 1.4; margin: 36px 0 14px; scroll-margin-top: 100px; }
.policy-copy h2:first-child { margin-top: 0; }
.policy-copy p { margin-bottom: 18px; }
.policy-copy ul { padding-left: 22px; margin: 0 0 20px; list-style: disc; }
.policy-copy li { margin-bottom: 8px; }
.policy-updated { font-size: 13px; color: #66575b; margin-bottom: 28px; }
.policy-table-wrap { overflow-x: auto; margin: 24px 0; }
.policy-table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.6; }
.policy-table th, .policy-table td { text-align: left; padding: 14px 12px; border-bottom: 1px solid var(--consent-line); vertical-align: top; }
.policy-table th { color: #86595e; background: #f7f2f3; }
.policy-review-note { background: #f7f2f3; padding: 18px 20px; font-size: 14px; }
@media (max-width: 1100px) {
    .cookie-banner { align-items: flex-start; flex-direction: column; gap: 16px; padding: 20px 24px; }
    .policy-layout { grid-template-columns: 180px minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 650px) {
    .cookie-banner { padding: 18px 16px; max-height: 75dvh; gap: 12px; }
    .cookie-banner h2 { font-size: 19px; }
    .cookie-banner p { font-size: 13px; }
    .cookie-banner .cookie-actions { width: 100%; flex-direction: column; }
    .cookie-banner .consent-button { width: 100%; padding: 11px 10px; font-size: 13px; }
    .cookie-dialog { padding: 22px 18px; }
    .cookie-dialog .cookie-actions .consent-button { flex: 1 1 100%; }
    .cookie-category { gap: 12px; }
    .policy-layout { display: block; }
    .policy-nav { position: static; margin-bottom: 32px; }
    .policy-copy { font-size: 15px; }
    .policy-copy h2 { font-size: 23px; }
    #main.policy-content { padding: 32px 20px 48px; }
    .consent-map iframe { height: 340px; }
}

/* Pulici: multiple maps and virtual tours share one category. */
.map-consent-placeholder h3 { font-size: 23px; line-height: 1.4; color: #86595e; margin: 0 0 16px; }
.google-map-compact .consent-map { min-height: 350px; }
.google-map-compact .consent-map iframe { height: 350px; }
.google-map-compact .map-consent-placeholder { padding: 24px 18px; }
.google-map-compact .map-consent-placeholder h3 { font-size: 18px; }
.google-map-compact .map-consent-placeholder p { font-size: 13px; line-height: 1.65; margin-bottom: 14px; }
.google-map-compact .map-consent-placeholder small { font-size: 12px; }
.google-map-compact .map-external-link { padding: 14px; font-size: 13px; }
.map-external-link a:focus-visible, .map-consent-placeholder a:focus-visible { outline: 3px solid #754319; outline-offset: 4px; }
::selection { background: #eddbde; color: #69434a; }
