/* =========================================================
   ENIGMA — COOKIE CONSENT
========================================================= */

.cookie-consent-banner,
.cookie-settings-modal,
.cookie-settings-launcher{
    font-family:
        Inter,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;
}


.cookie-consent-banner[hidden],
.cookie-settings-modal[hidden],
.cookie-settings-launcher[hidden]{
    display:none !important;
}


/* =========================================================
   BANNER
========================================================= */

.cookie-consent-banner{
    position:fixed;

    z-index:1300;

    left:24px;
    right:24px;
    bottom:24px;

    max-width:1180px;

    margin:0 auto;
    padding:22px;

    border:1px solid #ddd4d7;
    border-radius:20px;

    color:#3c3538;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.98),
            rgba(249,246,247,.98)
        );

    box-shadow:
        0 24px 70px
        rgba(44,34,38,.18);

    backdrop-filter:blur(18px);
}


.cookie-consent-content{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}


.cookie-consent-copy{
    max-width:680px;
}


.cookie-consent-eyebrow{
    display:block;

    margin-bottom:7px;

    color:#956a74;

    font-size:9px;
    font-weight:750;
    letter-spacing:.15em;
    text-transform:uppercase;
}


.cookie-consent-copy h2{
    margin:0 0 8px;

    color:#332e30;

    font-size:22px;
    line-height:1.2;
    font-weight:650;
    letter-spacing:-.025em;
}


.cookie-consent-copy p{
    margin:0;

    color:#74686b;

    font-size:12px;
    line-height:1.65;
}


.cookie-consent-copy a{
    color:#7d525d;
    font-weight:650;
    text-decoration:underline;
    text-underline-offset:3px;
}


.cookie-consent-actions{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:9px;
}


/* =========================================================
   BUTTONS
========================================================= */

.cookie-button{
    min-height:43px;
    padding:10px 15px;

    border:1px solid #d9d0d3;
    border-radius:11px;

    font:inherit;
    font-size:11px;
    font-weight:700;

    cursor:pointer;

    transition:
        background .2s ease,
        border-color .2s ease,
        color .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}


.cookie-button:hover{
    transform:translateY(-1px);
}


.cookie-button:disabled{
    opacity:.55;
    cursor:not-allowed;
    transform:none;
}


.cookie-button-secondary{
    color:#5d5155;
    background:#fff;
}


.cookie-button-secondary:hover{
    color:#744b55;
    border-color:#cbaeb5;
    background:#fbf4f6;
}


.cookie-button-primary{
    color:#fff;
    border-color:#3e3639;

    background:
        linear-gradient(
            135deg,
            #51464a,
            #2f292b
        );

    box-shadow:
        0 10px 22px
        rgba(49,39,43,.14);
}


.cookie-button-primary:hover{
    border-color:#875a65;

    background:
        linear-gradient(
            135deg,
            #946572,
            #6d4550
        );

    box-shadow:
        0 12px 26px
        rgba(111,70,81,.22);
}


.cookie-consent-status{
    min-height:16px;
    margin:10px 0 0;

    color:#a23e4c;

    font-size:10px;
    line-height:1.5;
}

.cookie-consent-status-error{
    color:#a23e4c;
}

.cookie-consent-status-success{
    color:#397052;
}


/* =========================================================
   REOPEN BUTTON
========================================================= */

.cookie-settings-launcher{
    position:fixed;

    z-index:1150;

    left:18px;
    bottom:18px;

    min-height:36px;
    padding:8px 12px;

    border:1px solid #d9d0d3;
    border-radius:999px;

    color:#75676b;
    background:rgba(255,255,255,.94);

    font-size:10px;
    font-weight:650;

    cursor:pointer;

    box-shadow:
        0 8px 25px
        rgba(42,33,37,.10);

    backdrop-filter:blur(12px);

    transition:
        color .2s ease,
        border-color .2s ease,
        background .2s ease,
        transform .2s ease;
}


.cookie-settings-launcher:hover{
    color:#734c56;
    border-color:#cfaeb6;
    background:#fff;
    transform:translateY(-1px);
}


/* =========================================================
   MODAL
========================================================= */

.cookie-settings-modal{
    position:fixed;

    z-index:1400;

    inset:0;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:22px;
}


.cookie-settings-backdrop{
    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    padding:0;

    border:0;

    background:
        rgba(28,23,25,.54);

    backdrop-filter:blur(6px);
}


.cookie-settings-dialog{
    position:relative;

    z-index:1;

    width:min(620px,100%);
    max-height:calc(100vh - 44px);

    padding:26px;

    overflow-y:auto;

    border:1px solid #ddd4d7;
    border-radius:22px;

    color:#40373a;

    background:
        linear-gradient(
            145deg,
            #fff,
            #faf7f8
        );

    box-shadow:
        0 35px 90px
        rgba(25,19,22,.30);
}


.cookie-settings-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;

    padding-bottom:20px;

    border-bottom:1px solid #e9e1e3;
}


.cookie-settings-header span{
    display:block;

    margin-bottom:7px;

    color:#9a7079;

    font-size:9px;
    font-weight:750;
    letter-spacing:.15em;
}


.cookie-settings-header h2{
    margin:0;

    color:#352f31;

    font-size:25px;
    line-height:1.2;
    font-weight:650;
    letter-spacing:-.03em;
}


.cookie-settings-close{
    display:flex;

    width:36px;
    height:36px;
    min-width:36px;

    align-items:center;
    justify-content:center;

    padding:0;

    border:1px solid #ded5d8;
    border-radius:10px;

    color:#7f7175;
    background:#fff;

    font-size:22px;
    line-height:1;

    cursor:pointer;
}


.cookie-settings-description{
    padding:18px 0;
}


.cookie-settings-description p{
    margin:0;

    color:#74686b;

    font-size:12px;
    line-height:1.7;
}


.cookie-settings-description small{
    display:block;

    margin-top:8px;

    color:#a09598;

    font-size:9px;
}


/* =========================================================
   SETTINGS
========================================================= */

.cookie-settings-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}


.cookie-setting-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;

    padding:17px;

    border:1px solid #e5dde0;
    border-radius:14px;

    background:#fff;
}


.cookie-setting-row strong{
    display:block;

    margin-bottom:5px;

    color:#4a4043;

    font-size:13px;
}


.cookie-setting-row p{
    max-width:430px;
    margin:0;

    color:#8a7d81;

    font-size:10px;
    line-height:1.55;
}


/* =========================================================
   SWITCH
========================================================= */

.cookie-switch{
    position:relative;

    display:block;

    width:46px;
    height:26px;
    min-width:46px;

    cursor:pointer;
}


.cookie-switch input{
    position:absolute;

    width:1px;
    height:1px;

    opacity:0;
    pointer-events:none;
}


.cookie-switch span{
    position:absolute;

    inset:0;

    border:1px solid #d0c5c8;
    border-radius:999px;

    background:#e5dfe1;

    transition:
        background .2s ease,
        border-color .2s ease;
}


.cookie-switch span::after{
    content:"";

    position:absolute;

    top:3px;
    left:3px;

    width:18px;
    height:18px;

    border-radius:50%;

    background:#fff;

    box-shadow:
        0 2px 7px
        rgba(45,35,39,.20);

    transition:
        transform .2s ease;
}


.cookie-switch input:checked + span{
    border-color:#8c5965;
    background:#9b6874;
}


.cookie-switch input:checked + span::after{
    transform:translateX(20px);
}


.cookie-switch.is-required{
    cursor:not-allowed;
    opacity:.72;
}


.cookie-settings-policy{
    margin-top:16px;
}


.cookie-settings-policy a{
    color:#76505a;

    font-size:10px;
    font-weight:650;
    text-decoration:underline;
    text-underline-offset:3px;
}


.cookie-settings-footer{
    display:flex;
    justify-content:flex-end;

    margin-top:20px;
    padding-top:18px;

    border-top:1px solid #e9e1e3;
}


.cookie-settings-footer
.cookie-button{
    min-width:190px;
}


/* =========================================================
   BODY STATE
========================================================= */

body.cookie-settings-open{
    overflow:hidden;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:850px){

    .cookie-consent-content{
        align-items:flex-start;
        flex-direction:column;
    }

    .cookie-consent-actions{
        width:100%;
        justify-content:flex-start;
    }

}


@media(max-width:600px){

    .cookie-consent-banner{
        left:12px;
        right:12px;
        bottom:12px;

        padding:17px;

        border-radius:16px;
    }

    .cookie-consent-copy h2{
        font-size:19px;
    }

    .cookie-consent-actions{
        display:grid;
        grid-template-columns:1fr;
    }

    .cookie-button{
        width:100%;
    }

    .cookie-settings-modal{
        padding:10px;
    }

    .cookie-settings-dialog{
        max-height:calc(100vh - 20px);

        padding:19px;

        border-radius:17px;
    }

    .cookie-setting-row{
        align-items:flex-start;
    }

    .cookie-settings-footer
    .cookie-button{
        width:100%;
        min-width:0;
    }

}
