/* ============================================================
   Cookie consent — bottom banner + full-screen "Cookie Preferences" panel.
   1:1 from Figma D8YsP4b8lP47DevYizXzmh "Frame 1" (drawn at 2x: 32px text ->
   16px here, 114x60 toggle -> 57x30, 2px dashed strokes -> 1px). Black panel,
   white type, dashed borders throughout. Injected by consent.js.
   ============================================================ */

#fl-consent {
    font-family: var(--font-sans, 'Geist Sans', sans-serif);
    letter-spacing: -0.02em;
}

/* ---- bottom banner -------------------------------------------- */
.fl-cc-banner {
    position: fixed;
    left: 16px; right: 16px; bottom: 16px;
    z-index: 130;                     /* over the page + fixed header (z100) */
    max-width: 560px;
    margin: 0 auto;
    padding: 18px 20px;
    background: #000;
    color: #fff;
    border: 1px dashed #fff;
    font-size: 16px;
    line-height: 1.3;
}
.fl-cc-banner p { margin: 0 0 14px; }
.fl-cc-banner__actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* ---- buttons (banner + panel actions) -------------------------- */
.fl-cc-btn {
    appearance: none;
    background: none;
    border: 1px dashed #fff;
    border-radius: 275px;
    padding: 10px 18px;
    color: #fff;
    font: inherit;
    letter-spacing: inherit;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.fl-cc-btn--solid {
    background: #fff;
    border-style: solid;
    color: #000;
}
/* hover — the two button styles swap skins (the site's inversion motif) */
.fl-cc-btn:hover {
    background: #fff;
    color: #000;
}
.fl-cc-btn--solid:hover {
    background: transparent;
    color: #fff;
}

/* ---- preferences popup: dimmed backdrop + fading card ----------- */
.fl-cc-panel {
    position: fixed;
    inset: 0;
    z-index: 140;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    font-size: 16px;
    line-height: 1.3;
    -webkit-font-smoothing: antialiased;
    /* closed by default; .is-open fades the whole popup in */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s;
}
.fl-cc-panel.is-open {
    opacity: 1;
    visibility: visible;
}
.fl-cc-panel__card {
    width: 100%;
    max-width: 634px;
    max-height: min(86vh, 900px);
    overflow-y: auto;
    background: #000;
    border: 1px dashed #fff;
}
.fl-cc-panel__head {
    padding: 7px 19px 14px;           /* title x=38/2, line at y=95/2 */
    border-bottom: 1px solid #fff;    /* the solid rule under the title */
}
.fl-cc-panel__head h2 {
    margin: 0;
    font-family: var(--font-serif, 'Instrument Serif', serif);
    font-weight: 400;
    font-size: 26px;
    line-height: 1.3;
}
.fl-cc-panel__body { padding: 21px 20px 34px; }
.fl-cc-panel__body > p { margin: 0 0 21px; }

/* ---- section cards (Essential / Performance) ------------------- */
.fl-cc-card {
    border: 1px dashed #fff;
    margin-top: 22px;
}
.fl-cc-card__head {
    display: flex;
    align-items: center;
    gap: 17px;
    padding: 15px 19px;
}
.fl-cc-card__expand {
    appearance: none;
    background: none;
    border: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 17px;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    cursor: pointer;
    flex: 1;
    text-align: left;
}
.fl-cc-chev { width: 17px; height: 17px; flex-shrink: 0; }
/* expanded -> upside down; NO transition (per design) */
.fl-cc-card__expand[aria-expanded="true"] .fl-cc-chev { transform: rotate(180deg); }

.fl-cc-req { white-space: nowrap; }

/* ---- toggle: 57x30 capsule, knob right = on (Figma), slide anim - */
.fl-cc-toggle {
    appearance: none;
    position: relative;
    width: 57px; height: 30px;
    flex-shrink: 0;
    border-radius: 275px;
    background: #fff;
    border: 1px solid #fff;
    padding: 0;
    cursor: pointer;
    transition: background 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
.fl-cc-toggle__knob {
    position: absolute;
    top: 1px; left: 28px;             /* on: knob rides right */
    width: 27px; height: 27px;
    border-radius: 50%;
    background: #000;
    display: grid;
    place-items: center;
    transition: left 0.25s cubic-bezier(0.22, 1, 0.36, 1), background 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
.fl-cc-toggle__bar {                   /* the little dash on the knob */
    width: 10px; height: 3.5px;
    border-radius: 275px;
    background: #d9d9d9;
    transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
/* off — freestyle: capsule hollows out, knob slides left and inverts, dash upends */
.fl-cc-toggle.is-off {
    background: transparent;
    border-style: dashed;
}
.fl-cc-toggle.is-off .fl-cc-toggle__knob {
    left: 1px;
    background: #fff;
}
.fl-cc-toggle.is-off .fl-cc-toggle__bar {
    background: #000;
    transform: rotate(90deg);
}
/* essential is locked — quick refusal shake instead of a state change */
.fl-cc-toggle.is-locked { cursor: not-allowed; }
.fl-cc-toggle.is-denied { animation: fl-cc-deny 0.3s ease; }
@keyframes fl-cc-deny {
    0%, 100% { transform: translateX(0); }
    30% { transform: translateX(-3px); }
    60% { transform: translateX(3px); }
}

/* ---- dropdown body: dashed divider, description, cookie table --- */
.fl-cc-card__drop {
    border-top: 1px dashed #fff;
    padding: 19px 19px 24px;
}
.fl-cc-card__drop > p { margin: 0 0 26px; }

.fl-cc-table { min-width: 0; }
.fl-cc-table__row {
    display: grid;
    grid-template-columns: 1.3fr 1.1fr 0.9fr 1.6fr;
    gap: 12px;
    padding: 9px 0;
}
.fl-cc-table__row--head {
    border-bottom: 1px dashed #fff;
    padding-bottom: 11px;
}
.fl-cc-t-purpose { text-align: right; }
.fl-cc-table__row:not(.fl-cc-table__row--head) { font-size: 14px; color: rgba(255, 255, 255, 0.85); }
.fl-cc-table__row span:first-child { word-break: break-all; }

.fl-cc-panel__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 30px;
}

/* ---- small screens --------------------------------------------- */
@media (max-width: 640px) {
    .fl-cc-banner { left: 10px; right: 10px; bottom: 10px; }
    .fl-cc-table__row { grid-template-columns: 1.2fr 1fr 0.9fr 1.4fr; gap: 8px; }
    .fl-cc-table__row:not(.fl-cc-table__row--head) { font-size: 12px; }
    .fl-cc-table__row--head { font-size: 14px; }
}
