@media print {
    body:has(comfort-observation-sheet) #cookie-consent { display:none !important; }
}

#cookie-consent {
    font-family:var(--font-text, Manrope, Arial, sans-serif);
    color:var(--color-ink, #171b20);
    font-size:14px;
    line-height:1.7;
}

#cookie-consent *,
#cookie-consent *::before,
#cookie-consent *::after {
    box-sizing:border-box;
}

#cookie-consent [hidden] {
    display:none !important;
}

#cookie-consent :is(h2,h3,p) {
    margin:0;
}

#cookie-consent :is(h2,h3) {
    font-family:var(--font-display, Outfit, Arial, sans-serif);
}

#cookie-consent button,
.consent-reopen {
    font:inherit;
    cursor:pointer;
}

#cookie-consent a {
    color:var(--color-accent, #376180);
    text-decoration:underline;
    text-underline-offset:4px;
}

#cookie-consent :is(button,a,input,summary):focus-visible,
.consent-reopen:focus-visible {
    outline:3px solid var(--color-focus, #477fa7);
    outline-offset:4px;
}

.consent-banner {
    position:fixed;
    z-index:3000;
    inset:auto 24px 24px;
    width:calc(100% - 48px);
    max-width:1060px;
    max-height:calc(100dvh - 48px);
    margin-inline:auto;
    display:grid;
    grid-template-columns:minmax(0, .83fr) minmax(0, 1.17fr);
    padding:0;
    overflow:auto;
    background:#f6f9fc;
    border:1px solid #b8cbd9;
    box-shadow:0 24px 90px #0c1d3266,0 4px 18px #0c1d3226;
    animation:consent-arrive .55s cubic-bezier(.2,.7,.2,1) both;
}

.consent-atmosphere {
    position:relative;
    display:grid;
    align-items:end;
    overflow:hidden;
    background:#475f6c;
    color:#fff;
}

.consent-atmosphere picture,
.consent-atmosphere img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
}

.consent-atmosphere img {
    object-fit:cover;
    object-position:75% 54%;
}

.consent-atmosphere-copy {
    position:relative;
    isolation:isolate;
    justify-self:start;
    display:flex;
    flex-direction:column;
    padding:clamp(20px,2.5vw,36px);
    text-shadow:0 1px 3px #0b1c2d99;
}

.consent-atmosphere-copy::before {
    content:"";
    position:absolute;
    z-index:-1;
    pointer-events:none;
    inset:-28% -48% -28% -20%;
    background:radial-gradient(ellipse farthest-side at 37% 57%, #0b1e2ddd 0%, #0b1e2dbc 43%, #0b1e2d73 70%, transparent 100%);
}

.consent-scene-brand {
    margin-bottom:8px;
    font-size:10px;
    font-weight:750;
    letter-spacing:.16em;
}

#cookie-consent .consent-atmosphere-copy p {
    font-family:var(--font-display,Outfit,Arial,sans-serif);
    font-size:clamp(44px,4.8vw,64px);
    line-height:1.04;
    letter-spacing:-.045em;
    font-weight:650;
}

.consent-atmosphere-copy p span {
    font-weight:250;
}

.consent-scene-caption {
    margin-top:8px;
    font-size:12px;
    letter-spacing:.03em;
}

.consent-banner-content {
    min-width:0;
    padding:32px 38px 26px;
}

.consent-eyebrow {
    display:block;
    color:var(--color-accent, #376180);
    font-size:10px;
    font-weight:700;
    letter-spacing:.15em;
    line-height:1.6;
}

#cookie-consent h2 {
    margin-top:13px;
    font-size:clamp(30px, 3.4vw, 44px);
    line-height:1.08;
    letter-spacing:-.04em;
    font-weight:750;
}

#cookie-consent h2 > span {
    font-weight:300;
}

.consent-dot {
    color:var(--color-accent, #376180);
}

.consent-banner-copy > p {
    margin-top:17px !important;
    color:#4a5d6c;
    max-width:64ch;
    font-size:13px;
    line-height:1.8;
}

.consent-close {
    position:absolute;
    z-index:3;
    top:12px;
    right:12px;
    display:grid;
    place-items:center;
    width:40px;
    height:40px;
    padding:10px;
    background:#f6f9fce8;
    border:0;
    border-radius:50%;
    color:#526878;
}

.consent-close svg {
    width:20px;
    height:20px;
    stroke:currentColor;
    stroke-width:1.6;
}

.consent-close:hover {
    color:#171b20;
    background:#e4edf4;
}

.consent-links {
    display:flex;
    flex-wrap:wrap;
    gap:8px 22px;
    margin-top:16px;
    font-size:12px;
    font-weight:600;
}

.consent-banner-choices {
    padding-top:22px;
}

.consent-quick-actions {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:10px;
}

.consent-button {
    min-height:48px;
    padding:12px 14px;
    border:1px solid #37536b;
    background:#253b4d;
    color:#f5f9fc;
    font-size:13px !important;
    font-weight:650 !important;
    line-height:1.5;
    text-align:center;
    transition:background-color .15s, border-color .15s;
}

.consent-button:hover {
    border-color:#476d8a;
    background:#375974;
}

.consent-customize {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    width:100%;
    min-height:48px;
    margin-top:9px;
    padding:10px 2px;
    border:0;
    border:1px solid #b7c9d8;
    padding-inline:14px;
    background:transparent;
    color:#294f6d;
    font-weight:600 !important;
    text-align:left;
}

.consent-customize:hover {
    color:#254c6c;
    background:#e5edf4;
}

.consent-customize span {
    font-size:20px;
    font-weight:400;
    line-height:1;
}

#cookie-consent .consent-help {
    margin-top:15px;
    color:#5b6a77;
    font-size:12px;
    line-height:1.7;
}

.consent-dialog {
    --panel-pad:clamp(24px,3vw,38px);
    width:min(1060px,calc(100% - 48px));
    height:min(720px,calc(100dvh - 48px));
    max-height:calc(100dvh - 48px);
    margin:auto;
    padding:0;
    overflow:hidden;
    color:#171b20;
    background:#f6f9fc;
    border:1px solid #b8cbd9;
    box-shadow:0 24px 100px #10233340;
}

.consent-dialog[open] {
    display:grid;
    grid-template:
        "scene heading" auto
        "scene choices" minmax(0,1fr)
        "scene actions" auto / minmax(0,.76fr) minmax(0,1.24fr);
}

.consent-dialog > .consent-atmosphere {
    grid-area:scene;
}

.consent-dialog::backdrop {
    background:#101b28a6;
}

.consent-dialog-heading {
    grid-area:heading;
    position:relative;
    padding:26px var(--panel-pad) 18px;
    border-bottom:1px solid #d4dee6;
}

.consent-dialog-heading h2 {
    padding-right:25px;
}

#cookie-consent .consent-dialog-heading > p {
    margin-top:12px;
    max-width:51ch;
    color:#4a5d6c;
    font-size:13px;
}

.consent-dialog-body {
    grid-area:choices;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:0 var(--panel-pad) 18px;
    scrollbar-color:#92a8b8 #f6f9fc;
}

.consent-dialog-body:focus-visible {
    outline:2px solid var(--color-focus,#477fa7);
    outline-offset:-3px;
}

.consent-category {
    padding:16px 0;
    border-bottom:1px solid #d4dee6;
}

.consent-category-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}

#cookie-consent .consent-category h3,
.consent-category-label {
    font-family:var(--font-display, Outfit, Arial, sans-serif);
    font-size:18px;
    font-weight:600;
    line-height:1.4;
    letter-spacing:-.02em;
}

.consent-category-label {
    cursor:pointer;
}

#cookie-consent .consent-category p {
    margin-top:11px;
    font-size:13px;
    color:#526574;
}

.consent-badge {
    flex-shrink:0;
    padding:4px 9px;
    background:#e8eff4;
    color:#3a5870;
    font-size:10px;
    font-weight:650;
    letter-spacing:.02em;
}

.consent-switch {
    appearance:none;
    position:relative;
    flex-shrink:0;
    width:46px;
    height:26px;
    margin:0;
    padding:3px;
    border:1px solid #8c9eac;
    border-radius:20px;
    background:#dde5eb;
    cursor:pointer;
}

.consent-switch::before {
    content:"";
    display:block;
    width:18px;
    height:18px;
    border-radius:50%;
    background:#637a8a;
    transition:transform .15s, background-color .15s;
}

.consent-switch:checked {
    background:#376180;
    border-color:#376180;
}

.consent-switch:checked::before {
    background:#fff;
    transform:translateX(20px);
}

.consent-email-note {
    padding:0 0 16px;
}

.consent-details {
    border-bottom:1px solid #d4dee6;
}

.consent-details summary {
    padding:13px 0;
    color:#294f6d;
    font-weight:600;
    cursor:pointer;
}

#cookie-consent .consent-email-note h3 {
    font-size:16px;
    font-weight:600;
    line-height:1.4;
}

#cookie-consent .consent-email-note p {
    margin-top:9px;
    font-size:12px;
    color:#526574;
}

.consent-dialog-actions {
    grid-area:actions;
    padding:15px var(--panel-pad) 20px;
    border-top:1px solid #d3dfe8;
    background:#f6f9fc;
}

.consent-feedback {
    position:fixed;
    z-index:3100;
    right:24px;
    bottom:24px;
    width:max-content;
    max-width:min(440px, calc(100% - 48px));
    padding:16px 20px;
    border:1px solid #becfdd;
    background:#edf4f9;
    color:#294f6d;
    box-shadow:0 8px 32px #172f4420;
}

.consent-reopen {
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    text-decoration:none;
}

@media (max-width:760px) {
    .consent-banner {
        inset:auto 12px 12px;
        width:calc(100% - 24px);
        max-height:calc(100dvh - 24px);
        grid-template-columns:1fr;
        padding:0;
    }

    .consent-atmosphere {
        min-height:clamp(100px,22vw,126px);
    }

    .consent-atmosphere img {
        object-position:50% 55%;
    }

    .consent-atmosphere-copy {
        padding:14px 20px;
    }

    #cookie-consent .consent-atmosphere-copy p {
        font-size:clamp(26px,7vw,37px);
    }

    .consent-atmosphere-copy br {
        display:none;
    }

    .consent-atmosphere-copy p span::before {
        content:" ";
    }

    .consent-scene-brand {
        margin-bottom:4px;
        font-size:9px;
    }

    .consent-scene-caption {
        display:none;
    }

    .consent-banner-content {
        padding:22px 24px;
    }

    #cookie-consent .consent-banner-copy h2 {
        font-size:32px;
        margin-top:10px;
    }

    .consent-banner-choices {
        padding-top:18px;
    }

    .consent-banner-copy > p {
        font-size:13px;
    }

    #cookie-consent .consent-help {
        margin-top:10px;
    }

    .consent-dialog {
        --panel-pad:22px;
        width:calc(100% - 24px);
        height:min(800px,calc(100dvh - 24px));
        max-height:calc(100dvh - 24px);
    }

    .consent-dialog[open] {
        grid-template:
            "scene" auto
            "heading" auto
            "choices" minmax(0,1fr)
            "actions" auto / minmax(0,1fr);
    }

    .consent-dialog-heading {
        padding-block:17px 14px;
    }

    .consent-dialog-actions {
        padding-block:12px 16px;
    }

    .consent-category-heading {
        gap:12px;
    }

    #cookie-consent .consent-category h3,
    .consent-category-label {
        font-size:17px;
    }
}

@media (max-width:380px) {
    .consent-banner-content {
        padding-inline:18px;
    }

    .consent-button {
        padding-inline:8px;
        font-size:12px !important;
    }

    .consent-dialog {
        --panel-pad:18px;
    }
}

@media (prefers-reduced-motion:reduce) {
    #cookie-consent *,
    #cookie-consent *::before {
        transition:none !important;
        animation:none !important;
    }
}

@keyframes consent-arrive {
    from { opacity:0; transform:translateY(20px); }
    to { opacity:1; transform:translateY(0); }
}

/* On short screens use a single scroll area so the header and buttons
   cannot squeeze the choices out of view. */
@media (max-height:600px) {
    .consent-dialog {
        height:auto;
        overflow-y:auto;
        overscroll-behavior:contain;
    }
    .consent-dialog[open] {
        grid-template-rows:repeat(3,max-content);
    }
    .consent-dialog-body {
        overflow:visible;
    }
}

@media (max-height:600px) and (min-width:761px) {
    .consent-dialog > .consent-atmosphere {
        position:sticky;
        top:0;
        align-self:start;
        min-height:0;
        height:calc(100dvh - 50px);
    }
}

@media (max-height:600px) and (max-width:760px) {
    .consent-dialog[open] {
        grid-template-rows:repeat(4,max-content);
    }
}
