/* Existing Previmed colours and Quicksand typography, isolated from the legacy theme. */
.pv-fct-notice {
    --pv-fct-blue: #073f55;
    --pv-fct-orange: #ffab3f;
    position: fixed;
    right: max(24px, env(safe-area-inset-right));
    bottom: max(24px, env(safe-area-inset-bottom));
    z-index: 900;
    width: min(430px, calc(100vw - 48px));
    font-family: Quicksand, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.45;
    color: #fff;
    text-align: left;
    pointer-events: none;
    isolation: isolate;
}
.pv-fct-notice[hidden], .pv-fct-notice[data-blocked="true"] { display: none !important; }
.pv-fct-notice, .pv-fct-notice * { box-sizing: border-box; }
.pv-fct-notice .pv-fct-notice__panel {
    position: relative;
    display: block;
    margin: 0;
    padding: 31px 28px 27px;
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - 48px);
    overflow: auto;
    overscroll-behavior: contain;
    border: 1px solid rgb(82 199 218 / 57%);
    border-radius: 22px;
    background: linear-gradient(130deg, #0b5066 0%, #073e54 66%, #06374c 100%);
    box-shadow: 0 16px 42px rgb(7 63 85 / 24%), inset 0 1px 0 rgb(255 255 255 / 11%);
    transform-origin: bottom right;
    transition: opacity 240ms ease, transform 300ms cubic-bezier(.2,.7,.2,1), visibility 240ms;
    opacity: 0;
    transform: translateY(8px) scale(.96);
    visibility: hidden;
    pointer-events: none;
}
.pv-fct-notice[data-state="expanded"] .pv-fct-notice__panel {
    opacity: 1;
    transform: none;
    visibility: visible;
    pointer-events: auto;
}
.pv-fct-notice .pv-fct-notice__eyebrow {
    position: relative;
    z-index: 1;
    margin: 0 20px 12px 0;
    padding: 0;
    color: #d2edf1;
    font: 700 10px/1.5 Quicksand, Arial, sans-serif;
    letter-spacing: .095em;
    text-transform: uppercase;
}
.pv-fct-notice .pv-fct-notice__title {
    position: relative;
    z-index: 1;
    margin: 0 0 14px;
    padding: 0;
    color: #fff;
    font: 700 31px/1.13 Quicksand, Arial, sans-serif;
    letter-spacing: -.035em;
}
.pv-fct-notice .pv-fct-notice__title span { display: block; color: var(--pv-fct-orange); }
.pv-fct-notice .pv-fct-notice__description {
    position: relative;
    z-index: 1;
    max-width: 330px;
    margin: 0 0 22px;
    padding: 0;
    color: #e1f0f4;
    font: 500 15px/1.5 Quicksand, Arial, sans-serif;
}
.pv-fct-notice .pv-fct-notice__link {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    min-height: 46px;
    padding: 11px 23px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--pv-fct-orange);
    color: #07394e;
    font: 700 16px/1.25 Quicksand, Arial, sans-serif;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 4px 12px rgb(1 30 43 / 12%);
    transition: background 180ms ease, box-shadow 180ms ease;
}
.pv-fct-notice .pv-fct-notice__link:hover { background: #ffbd66; color: #07394e; text-decoration: none; box-shadow: 0 4px 16px rgb(1 30 43 / 21%); }
.pv-fct-notice .pv-fct-notice__link svg { width: 22px; height: 22px; flex: 0 0 22px; }
.pv-fct-notice .pv-fct-notice__close,
.pv-fct-notice .pv-fct-notice__toggle {
    appearance: none;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.pv-fct-notice .pv-fct-notice__close {
    position: absolute;
    z-index: 3;
    top: 3px;
    right: 3px;
    width: 44px;
    height: 44px;
    min-width: 44px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #d7edf1;
    transition: color 180ms ease, background 180ms ease;
}
.pv-fct-notice .pv-fct-notice__close:hover { background: rgb(255 255 255 / 8%); color: #fff; }
.pv-fct-notice .pv-fct-notice__close svg { width: 25px; height: 25px; }
.pv-fct-notice .pv-fct-notice__brands {
    position: relative;
    display: block;
    flex: none;
    aspect-ratio: 1.25;
    pointer-events: none;
}
.pv-fct-notice .pv-fct-notice__watermark {
    position: absolute;
    z-index: 0;
    width: 96px;
    height: auto;
    right: 26px;
    bottom: 22px;
    opacity: .32;
    pointer-events: none;
    transition: opacity 480ms ease;
}
.pv-fct-notice .pv-fct-notice__toggle {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 56px;
    height: 56px;
    min-width: 56px;
    border: 1px solid rgb(93 198 214 / 57%);
    border-radius: 50%;
    background: linear-gradient(140deg, #0b5269, #073c52);
    color: #b6e5ec;
    box-shadow: 0 8px 22px rgb(7 63 85 / 22%), inset 0 1px 0 rgb(255 255 255 / 16%), inset 0 -3px 9px rgb(1 26 38 / 18%);
    visibility: visible;
    opacity: 1;
    transform: scale(1);
    pointer-events: auto;
    transition: opacity 180ms ease, transform 220ms ease, visibility 180ms, color 180ms ease;
}
.pv-fct-notice .pv-fct-notice__brand {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border: 0;
    opacity: 1;
    transition: opacity 480ms ease;
}
.pv-fct-notice .pv-fct-notice__brand--previforma { opacity: 0; }
.pv-fct-notice .pv-fct-notice__toggle .pv-fct-notice__brands { width: 36px; opacity: .93; }
.pv-fct-notice .pv-fct-notice__panel:hover .pv-fct-notice__brand--previmed,
.pv-fct-notice .pv-fct-notice__toggle:hover .pv-fct-notice__brand--previmed,
.pv-fct-notice .pv-fct-notice__toggle:focus-visible .pv-fct-notice__brand--previmed {
    opacity: 0;
}
.pv-fct-notice .pv-fct-notice__panel:hover .pv-fct-notice__brand--previforma,
.pv-fct-notice .pv-fct-notice__toggle:hover .pv-fct-notice__brand--previforma,
.pv-fct-notice .pv-fct-notice__toggle:focus-visible .pv-fct-notice__brand--previforma {
    opacity: 1;
}
.pv-fct-notice .pv-fct-notice__panel:hover .pv-fct-notice__watermark { opacity: .46; }
.pv-fct-notice .pv-fct-notice__toggle:hover { color: #ffbd66; }
.pv-fct-notice[data-state="expanded"] .pv-fct-notice__toggle { opacity: 0; visibility: hidden; transform: scale(.85); pointer-events: none; }
.pv-fct-notice .pv-fct-notice__link:focus-visible,
.pv-fct-notice .pv-fct-notice__close:focus-visible,
.pv-fct-notice .pv-fct-notice__toggle:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.pv-fct-notice .pv-fct-notice__toggle:focus-visible { outline-color: #f39721; }
@media (max-width: 600px) {
    .pv-fct-notice {
        right: max(16px, env(safe-area-inset-right));
        bottom: max(16px, env(safe-area-inset-bottom));
        width: min(430px, calc(100vw - 32px));
    }
    .pv-fct-notice .pv-fct-notice__panel { padding: 29px 22px 24px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); border-radius: 20px; }
    .pv-fct-notice .pv-fct-notice__eyebrow { font-size: 9px; letter-spacing: .065em; margin-right: 18px; }
    .pv-fct-notice .pv-fct-notice__title { font-size: clamp(25px, 7.4vw, 31px); }
    .pv-fct-notice .pv-fct-notice__description { font-size: 14px; margin-bottom: 19px; }
    .pv-fct-notice .pv-fct-notice__watermark { width: 78px; height: auto; right: 22px; bottom: 22px; }
}
/* Keep the full-width mobile panel above the existing bottom-left consent control. */
@media (max-width: 520px) {
    .pv-fct-notice[data-state="expanded"] { bottom: calc(80px + env(safe-area-inset-bottom)); }
    .pv-fct-notice[data-state="expanded"] .pv-fct-notice__panel {
        max-height: calc(100vh - 96px - env(safe-area-inset-bottom));
        max-height: calc(100dvh - 96px - env(safe-area-inset-bottom));
    }
}
@media (max-height: 420px) {
    .pv-fct-notice .pv-fct-notice__panel { padding-top: 22px; padding-bottom: 20px; }
    .pv-fct-notice .pv-fct-notice__eyebrow { margin-bottom: 8px; }
    .pv-fct-notice .pv-fct-notice__title { font-size: 26px; margin-bottom: 10px; }
    .pv-fct-notice .pv-fct-notice__description { margin-bottom: 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .pv-fct-notice *, .pv-fct-notice *::before, .pv-fct-notice *::after { transition: none !important; animation: none !important; }
}
@media (prefers-reduced-transparency: reduce) {
    .pv-fct-notice .pv-fct-notice__panel, .pv-fct-notice .pv-fct-notice__toggle { background: #073f55; }
    .pv-fct-notice .pv-fct-notice__watermark { display: none; }
    .pv-fct-notice .pv-fct-notice__toggle .pv-fct-notice__brands { opacity: 1; }
}
@media print { .pv-fct-notice { display: none !important; } }
