.dh-compliance-banner,
.dh-compliance-settings {
    position: fixed;
    z-index: 2147483000;
    font-family: inherit;
    color: #17252a;
}

.dh-compliance-banner {
    left: 18px;
    right: 18px;
    bottom: 18px;
}

.dh-compliance-inner {
    max-width: 1180px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 16px;
    box-shadow: 0 18px 55px rgba(0,0,0,.2);
    padding: 20px 22px;
    display: flex;
    align-items: center;
    gap: 24px;
}

.dh-compliance-copy {
    flex: 1 1 auto;
    line-height: 1.55;
}

.dh-compliance-copy strong {
    display: block;
    font-size: 18px;
    margin-bottom: 5px;
}

.dh-compliance-copy p {
    margin: 0 0 7px;
    font-size: 14px;
}

.dh-compliance-copy a {
    font-size: 13px;
    text-decoration: underline;
}

.dh-compliance-actions {
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
}

.dh-consent-primary,
.dh-consent-secondary {
    appearance: none;
    border-radius: 9px;
    padding: 11px 15px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.dh-consent-primary {
    border: 1px solid #197f8c;
    background: #197f8c;
    color: #fff;
}

.dh-consent-secondary {
    border: 1px solid #197f8c;
    background: #fff;
    color: #176f7a;
}

.dh-compliance-settings {
    inset: 0;
    background: rgba(10,25,30,.55);
    padding: 20px;
    overflow: auto;
}

.dh-compliance-settings-card {
    width: min(620px,100%);
    margin: 7vh auto;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 24px 80px rgba(0,0,0,.28);
    padding: 25px;
}

.dh-compliance-settings-card h2 {
    margin-top: 0;
}

.dh-consent-category {
    border-top: 1px solid #e5e8e9;
    padding: 15px 0;
}

.dh-consent-category label {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    font-weight: 700;
}

.dh-consent-category p {
    margin: 5px 0 0;
    font-size: 14px;
    line-height: 1.5;
}

.dh-privacy-choices {
    position: fixed;
    left: 14px;
    bottom: 14px;
    z-index: 2147482000;
    border: 1px solid #197f8c;
    border-radius: 999px;
    background: #fff;
    color: #176f7a;
    padding: 8px 12px;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 5px 20px rgba(0,0,0,.12);
}

.dh-compliance-banner[hidden],
.dh-compliance-settings[hidden],
.dh-privacy-choices[hidden] {
    display: none !important;
}

@media (max-width: 760px) {
    .dh-compliance-banner {
        left: 10px;
        right: 10px;
        bottom: 10px;
    }

    .dh-compliance-inner {
        display: block;
        padding: 17px;
    }

    .dh-compliance-actions {
        margin-top: 14px;
    }

    .dh-consent-primary,
    .dh-consent-secondary {
        flex: 1 1 100%;
    }

    .dh-compliance-settings {
        padding: 10px;
    }

    .dh-compliance-settings-card {
        margin: 2vh auto;
    }
}

.dh-compliance-legal-links {
    padding: 14px 20px;
    text-align: center;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px 18px;
    font-size: 12px;
}

.dh-compliance-legal-links a {
    text-decoration: underline;
}

/* Destination Hub integrated compliance footer */
.footer-main,
.dhcs-footer-main {
    display: grid !important;
    grid-template-columns:
        minmax(210px, .9fr)
        minmax(360px, 1.55fr)
        minmax(220px, 1fr)
        minmax(260px, 1.15fr) !important;
    gap: 42px !important;
    align-items: start !important;
}

.dh-compliance-footer-column {
    min-width: 0;
}

.dh-compliance-footer-column .footer-heading,
.dh-compliance-footer-column .dhcs-footer-heading {
    margin: 0 0 16px !important;
}

.dh-compliance-footer-column .footer-links,
.dh-compliance-footer-column .dhcs-footer-links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 11px;
}

.dh-compliance-footer-column a,
.dh-compliance-footer-column button {
    line-height: 1.35;
}

.dh-compliance-footer-column button {
    appearance: none;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    color: inherit;
    text-decoration: underline;
}

@media (max-width: 1100px) {
    .footer-main,
    .dhcs-footer-main {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
        gap: 34px 44px !important;
    }
}

@media (max-width: 680px) {
    .footer-main,
    .dhcs-footer-main {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }
}

/* v1.2 footer layout - authoritative */
footer .footer-main,
.dhcs-full-footer .dhcs-footer-main {
    display: grid !important;
    grid-template-columns:
        minmax(190px, .85fr)
        minmax(350px, 1.55fr)
        minmax(210px, .9fr)
        minmax(260px, 1.1fr) !important;
    column-gap: 48px !important;
    row-gap: 28px !important;
    align-items: start !important;
}

footer .footer-main > *,
.dhcs-full-footer .dhcs-footer-main > * {
    min-width: 0;
}

.dh-compliance-footer-column {
    grid-column: auto !important;
    grid-row: auto !important;
    margin: 0 !important;
}

@media (max-width: 1100px) {
    footer .footer-main,
    .dhcs-full-footer .dhcs-footer-main {
        grid-template-columns:
            repeat(2,minmax(0,1fr)) !important;
    }
}

@media (max-width: 680px) {
    footer .footer-main,
    .dhcs-full-footer .dhcs-footer-main {
        grid-template-columns: 1fr !important;
    }
}
