/* Consent controls are isolated from the site's forms and navigation. */
.ic-cookie-banner,
.ic-cookie-dialog,
.ic-cookie-reopen {
    --ic-cookie-ink: #f7f8fb;
    --ic-cookie-muted: #d0dbe8;
    --ic-cookie-gold: #ffd079;
    --ic-cookie-navy: #091827;
    box-sizing: border-box;
    color: var(--ic-cookie-ink);
    font-family: inherit;
    font-size: 17px;
    line-height: 1.6;
    text-align: left;
}

.ic-cookie-banner[hidden] { display: none !important; }
.ic-cookie-banner:not([open]) { display: none; }
.ic-cookie-reopen[hidden], .location-map iframe[hidden], .ic-map-placeholder[hidden] { display: none !important; }
.ic-cookie-sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ic-cookie-footer { border: 0; padding: 0; background: transparent; color: inherit; font: inherit; min-height: 30px; cursor: pointer; text-decoration: underline; }
.ic-map-placeholder { min-height: 380px; padding: clamp(22px, 5vw, 48px); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 18px; color: #fff; background: radial-gradient(circle at 90% 10%, #4d4227, transparent 60%), #102438; }
.ic-map-placeholder > span { color: #ffd079; font-size: 46px; line-height: 1; }
.ic-map-placeholder h3 { color: #fff; margin: 0; font-size: 28px; }
.location-map .ic-map-placeholder p { display: block; padding: 0; margin: 0; color: #dae3ee; background: transparent; font-size: 17px; line-height: 1.65; }
.ic-map-placeholder a { color: #ffd079; font-size: 16px; }
.ic-map-placeholder .ic-cookie-button { width: 100%; font-family: inherit; }
.ic-cookie-policy-settings { color: #fff; background: #102438; border: 1px solid #102438; padding: 15px 20px; border-radius: 12px; font: inherit; min-height: 50px; cursor: pointer; }
.ic-cookie-table { overflow-x: auto; margin-block: 24px; }
.legal-copy .ic-cookie-table table { display: table; width: 100%; border-collapse: collapse; min-width: 570px; font-size: 16px; }
.ic-cookie-table th, .ic-cookie-table td { border: 1px solid #cdd4dd; padding: 13px; text-align: left; vertical-align: top; }
.ic-cookie-table th { background: #f2eadc; }

.ic-cookie-banner {
    position: fixed;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    inset: 0;
    width: min(500px, calc(100% - 24px));
    max-width: calc(100% - 24px);
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    margin: auto;
    overflow: hidden;
    overscroll-behavior: contain;
    padding: 22px 18px;
    border: 1px solid #796841;
    border-radius: 26px;
    background: var(--ic-cookie-navy);
    box-shadow: 0 28px 100px #020a1670;
}
.ic-cookie-banner-copy .ic-cookie-heading { padding-right: 40px; font-size: 32px; }
.ic-cookie-banner-copy .ic-cookie-heading:focus { outline: none; }
.ic-cookie-banner-close { position: absolute; top: 16px; right: 16px; }
.ic-cookie-brief { margin: 0 0 12px; color: #b9c5d3; font-size: 14px; line-height: 1.5; }

.ic-cookie-banner-copy {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 4px 5px 6px;
    margin: -4px -5px -6px;
}

.ic-cookie-eyebrow {
    margin: 0 0 6px;
    color: var(--ic-cookie-gold);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.5;
    letter-spacing: .025em;
}

.ic-cookie-heading {
    margin: 0 0 12px;
    color: var(--ic-cookie-ink);
    font-size: clamp(24px, 5.7vw, 29px);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.025em;
    overflow-wrap: anywhere;
}

.ic-cookie-text {
    margin: 0 0 14px;
    color: var(--ic-cookie-muted);
    font-size: 17px;
    line-height: 1.6;
}

.ic-cookie-policy {
    color: var(--ic-cookie-gold);
    font-size: 16px;
    font-weight: 650;
    line-height: 1.6;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.ic-cookie-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 20px;
}

.ic-cookie-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 50px;
    margin: 0;
    padding: 11px 15px;
    border: 1px solid #718298;
    border-radius: 12px;
    background: #213247;
    color: #e5ebf2;
    font: inherit;
    font-size: 17px;
    font-weight: 750;
    line-height: 1.4;
    text-align: center;
    cursor: pointer;
    appearance: none;
}

.ic-cookie-button:hover { background: #30455e; }
.ic-cookie-actions [data-consent-action="accept"] {
    grid-column: 1 / -1;
    background: #ffce45;
    border-color: #ffdf87;
    color: #142030;
    font-weight: 850;
    box-shadow: 0 8px 26px #ffce452b;
}
.ic-cookie-actions [data-consent-action="accept"]:hover { background: #ffdc75; }

.ic-cookie-banner :is(button, a):focus-visible,
.ic-cookie-dialog :is(button, a, input):focus-visible,
.ic-cookie-reopen:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 4px;
}

.ic-cookie-dialog {
    width: min(720px, calc(100% - 24px));
    max-width: calc(100% - 24px);
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px);
    margin: auto;
    padding: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid #ad8750;
    border-radius: 22px;
    background: var(--ic-cookie-navy);
    box-shadow: 0 24px 80px #020a1699;
}

.ic-cookie-dialog::backdrop, .ic-cookie-banner::backdrop {
    background: #040c17a6;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

.ic-cookie-dialog-header {
    position: sticky;
    z-index: 1;
    top: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 20px 18px 16px;
    border-bottom: 1px solid #ffffff24;
    background: var(--ic-cookie-navy);
}

.ic-cookie-dialog-header > div { min-width: 0; }
.ic-cookie-dialog-header .ic-cookie-heading { margin-bottom: 0; }

.ic-cookie-close {
    display: grid;
    flex: 0 0 48px;
    place-items: center;
    width: 48px;
    height: 48px;
    margin: 0;
    padding: 0;
    border: 1px solid #8799ad;
    border-radius: 12px;
    background: #14283c;
    color: #fff;
    font-family: inherit;
    font-size: 32px;
    font-weight: 400;
    line-height: 1;
    cursor: pointer;
    appearance: none;
}

.ic-cookie-close:hover { background: #213d58; }
.ic-cookie-dialog-body { padding: 20px 18px 24px; }
.ic-cookie-options { display: grid; gap: 12px; margin-block: 22px; }

.ic-cookie-option,
.ic-cookie-necessary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 28px;
    align-items: start;
    gap: 14px;
    margin: 0;
    padding: 17px 14px;
    border: 1px solid #708197;
    border-radius: 15px;
    background: #112438;
    color: #f7f8fb;
    font-size: 17px;
    font-weight: 400;
    line-height: 1.55;
}

.ic-cookie-option { cursor: pointer; }
.ic-cookie-option:hover { border-color: #ffd079; }
.ic-cookie-necessary { grid-template-columns: minmax(0, 1fr); }
.ic-cookie-option-copy { display: grid; gap: 8px; min-width: 0; }
.ic-cookie-option-title { color: #fff; font-size: 18px; font-weight: 750; line-height: 1.4; }
.ic-cookie-option-description { color: #d0dbe8; font-size: 16px; font-weight: 400; line-height: 1.6; }

.ic-cookie-option input[type="checkbox"] {
    display: block;
    width: 26px;
    height: 26px;
    min-width: 26px;
    min-height: 26px;
    margin: 2px 0 0;
    padding: 0;
    accent-color: #ffd079;
    cursor: pointer;
}

.ic-cookie-active {
    justify-self: start;
    padding: 4px 10px;
    border: 1px solid #6c9d89;
    border-radius: 8px;
    background: #183a31;
    color: #ceefdf;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.5;
}

.ic-cookie-status {
    margin: 0 0 18px;
    padding: 14px;
    border-left: 3px solid #ffd079;
    border-radius: 0 8px 8px 0;
    background: #ffd0790d;
    color: #e2e9f2;
    font-size: 16px;
    line-height: 1.6;
}

.ic-cookie-details { margin-bottom: 0; }

.ic-cookie-reopen {
    position: fixed;
    z-index: 999;
    bottom: calc(86px + env(safe-area-inset-bottom, 0px));
    left: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 88px;
    min-height: 48px;
    margin: 0;
    padding: 10px 15px;
    border: 1px solid #ad8750;
    border-radius: 13px;
    background: var(--ic-cookie-navy);
    color: var(--ic-cookie-gold);
    box-shadow: 0 5px 20px #020a1633;
    font-family: inherit;
    font-size: 15px;
    font-weight: 750;
    line-height: 1.4;
    text-align: center;
    cursor: pointer;
    appearance: none;
}

.ic-cookie-reopen:hover { background: #17334f; }

@media (min-width: 600px) {
    .ic-cookie-banner { padding: 26px; }
    .ic-cookie-dialog-header { padding: 24px 26px 20px; }
    .ic-cookie-dialog-body { padding: 24px 26px 28px; }
    .ic-cookie-option, .ic-cookie-necessary { padding: 20px; }
    .ic-cookie-necessary { grid-template-columns: minmax(0, 1fr) auto; }
}

@media (min-width: 900px) {
    .ic-cookie-reopen { bottom: 18px; left: 24px; }
}

@media (prefers-contrast: more) {
    .ic-cookie-option, .ic-cookie-necessary { border-color: #d0dbe8; }
}

@media (max-width: 399px) {
    .ic-cookie-actions { gap: 8px; }
    .ic-cookie-actions .ic-cookie-button { padding-inline: 4px; font-size: 16px; }
}
