/* =========================================================
GLOBAL ALLIANCE REGISTER
COOKIE CONSENT MANAGER
========================================================= */

:root{
    --gar-cookie-navy:#073b55;
    --gar-cookie-navy-dark:#052f46;
    --gar-cookie-teal:#008da8;
    --gar-cookie-cyan:#00a6bd;
    --gar-cookie-text:#294e60;
    --gar-cookie-muted:#6c8490;
    --gar-cookie-line:#d8e5ea;
    --gar-cookie-soft:#f4f8fa;
    --gar-cookie-white:#ffffff;
}


/* =========================================================
BANNER
========================================================= */

.gar-cookie-banner{

    position:fixed;
    z-index:999999;

    left:24px;
    right:24px;
    bottom:24px;

    width:auto;
    max-width:1180px;

    margin-left:auto;
    margin-right:auto;

    padding:0;

    background:#ffffff;

    border:1px solid #d8e5ea;
    border-radius:8px;

    box-shadow:
        0 18px 60px rgba(5,47,70,.18);

    overflow:hidden;
}


/* Hidden state */

.gar-cookie-banner[hidden]{
    display:none !important;
}


/* =========================================================
TOP ACCENT
========================================================= */

.gar-cookie-banner::before{

    content:"";

    display:block;

    width:100%;
    height:4px;

    background:#008da8;
}


/* =========================================================
BANNER BODY
========================================================= */

.gar-cookie-banner-inner{

    display:grid;

    grid-template-columns:
        minmax(0,1fr)
        auto;

    gap:30px;

    align-items:center;

    padding:25px 28px 24px;
}


.gar-cookie-copy{
    min-width:0;
}


.gar-cookie-eyebrow{

    margin-bottom:6px;

    color:#008da8;

    font-size:10px;
    line-height:1.2;

    font-weight:800;

    letter-spacing:1.7px;

    text-transform:uppercase;
}


.gar-cookie-title{

    margin:0 0 8px;

    color:#073b55;

    font-size:21px;
    line-height:1.25;

    font-weight:750;
}


.gar-cookie-description{

    max-width:760px;

    margin:0;

    color:#526d79;

    font-size:13px;
    line-height:1.62;
}


.gar-cookie-description a{

    color:#008da8;

    text-decoration:none;

    font-weight:700;
}


.gar-cookie-description a:hover{
    text-decoration:underline;
}


/* =========================================================
BUTTONS
========================================================= */

.gar-cookie-actions{

    display:flex;

    align-items:center;

    justify-content:flex-end;

    flex-wrap:wrap;

    gap:10px;
}


.gar-cookie-button{

    appearance:none;

    min-height:43px;

    padding:10px 17px;

    border-radius:4px;

    font-family:inherit;

    font-size:12px;
    line-height:1;

    font-weight:800;

    cursor:pointer;

    transition:
        background .18s ease,
        border-color .18s ease,
        color .18s ease;
}


/* ACCEPT */

.gar-cookie-button--accept{

    border:1px solid #008da8;

    background:#008da8;

    color:#ffffff;
}


.gar-cookie-button--accept:hover{

    border-color:#007b93;

    background:#007b93;
}


/* REJECT */

.gar-cookie-button--reject{

    border:1px solid #073b55;

    background:#073b55;

    color:#ffffff;
}


.gar-cookie-button--reject:hover{

    background:#052f46;
}


/* MANAGE */

.gar-cookie-button--manage{

    border:1px solid #bdcfd6;

    background:#ffffff;

    color:#073b55;
}


.gar-cookie-button--manage:hover{

    border-color:#008da8;

    color:#008da8;
}


/* =========================================================
MODAL OVERLAY
========================================================= */

.gar-cookie-modal{

    position:fixed;

    z-index:1000000;

    inset:0;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:24px;

    background:rgba(2,31,45,.62);

    backdrop-filter:blur(2px);
}


.gar-cookie-modal[hidden]{
    display:none !important;
}


/* =========================================================
PREFERENCES PANEL
========================================================= */

.gar-cookie-panel{

    width:min(720px,100%);

    max-height:min(760px,calc(100vh - 48px));

    display:flex;

    flex-direction:column;

    background:#ffffff;

    border-radius:8px;

    overflow:hidden;

    box-shadow:
        0 24px 80px rgba(0,0,0,.25);
}


/* =========================================================
PANEL HEADER
========================================================= */

.gar-cookie-panel-header{

    display:flex;

    align-items:flex-start;

    justify-content:space-between;

    gap:24px;

    padding:27px 30px 24px;

    border-bottom:1px solid #d8e5ea;

    background:#f4f8fa;
}


.gar-cookie-panel-header h2{

    margin:0 0 6px;

    color:#073b55;

    font-size:25px;
    line-height:1.25;

    font-weight:750;
}


.gar-cookie-panel-header p{

    max-width:560px;

    margin:0;

    color:#647d88;

    font-size:12.5px;
    line-height:1.55;
}


.gar-cookie-close{

    appearance:none;

    display:flex;

    align-items:center;

    justify-content:center;

    flex:0 0 34px;

    width:34px;
    height:34px;

    border:1px solid #cbdce2;

    border-radius:50%;

    background:#ffffff;

    color:#073b55;

    font-size:20px;
    line-height:1;

    cursor:pointer;
}


.gar-cookie-close:hover{

    border-color:#008da8;

    color:#008da8;
}


/* =========================================================
PANEL BODY
========================================================= */

.gar-cookie-panel-body{

    overflow:auto;

    padding:8px 30px 10px;
}


/* =========================================================
CATEGORY
========================================================= */

.gar-cookie-category{

    display:grid;

    grid-template-columns:
        minmax(0,1fr)
        auto;

    gap:24px;

    align-items:start;

    padding:23px 0;

    border-bottom:1px solid #e3ecef;
}


.gar-cookie-category:last-child{
    border-bottom:none;
}


.gar-cookie-category-name{

    margin:0 0 5px;

    color:#073b55;

    font-size:15px;
    line-height:1.35;

    font-weight:750;
}


.gar-cookie-category-description{

    max-width:520px;

    margin:0;

    color:#647d88;

    font-size:12px;
    line-height:1.6;
}


.gar-cookie-required{

    display:inline-block;

    margin-top:8px;

    color:#008da8;

    font-size:9.5px;

    line-height:1;

    font-weight:800;

    letter-spacing:1px;

    text-transform:uppercase;
}


/* =========================================================
TOGGLE
========================================================= */

.gar-cookie-toggle{

    position:relative;

    display:inline-flex;

    width:48px;
    height:26px;

    margin-top:2px;

    flex:0 0 48px;
}


.gar-cookie-toggle input{

    position:absolute;

    opacity:0;

    pointer-events:none;
}


.gar-cookie-toggle-ui{

    position:absolute;

    inset:0;

    border-radius:20px;

    background:#cdd9de;

    cursor:pointer;

    transition:background .18s ease;
}


.gar-cookie-toggle-ui::before{

    content:"";

    position:absolute;

    width:20px;
    height:20px;

    left:3px;
    top:3px;

    border-radius:50%;

    background:#ffffff;

    box-shadow:0 1px 4px rgba(0,0,0,.18);

    transition:transform .18s ease;
}


.gar-cookie-toggle input:checked +
.gar-cookie-toggle-ui{

    background:#008da8;
}


.gar-cookie-toggle input:checked +
.gar-cookie-toggle-ui::before{

    transform:translateX(22px);
}


/* Always-on control */

.gar-cookie-toggle input:disabled +
.gar-cookie-toggle-ui{

    opacity:.72;

    cursor:not-allowed;
}


/* =========================================================
PANEL FOOTER
========================================================= */

.gar-cookie-panel-footer{

    display:flex;

    justify-content:flex-end;

    gap:10px;

    padding:20px 30px;

    border-top:1px solid #d8e5ea;

    background:#ffffff;
}


/* =========================================================
FOOTER PREFERENCES LINK
========================================================= */

.gar-cookie-preferences-link{

    cursor:pointer;
}


/* =========================================================
ACCESSIBILITY
========================================================= */

.gar-cookie-button:focus-visible,
.gar-cookie-close:focus-visible,
.gar-cookie-toggle input:focus-visible +
.gar-cookie-toggle-ui,
.gar-cookie-preferences-link:focus-visible{

    outline:3px solid rgba(0,141,168,.28);

    outline-offset:2px;
}


/* =========================================================
TABLET
========================================================= */

@media(max-width:900px){

    .gar-cookie-banner-inner{

        grid-template-columns:1fr;

        gap:20px;
    }


    .gar-cookie-actions{

        justify-content:flex-start;
    }

}


/* =========================================================
MOBILE
========================================================= */

@media(max-width:600px){

    .gar-cookie-banner{

        left:12px;
        right:12px;
        bottom:12px;
    }


    .gar-cookie-banner-inner{

        padding:21px 19px 19px;
    }


    .gar-cookie-title{

        font-size:19px;
    }


    .gar-cookie-actions{

        display:grid;

        grid-template-columns:1fr;
    }


    .gar-cookie-button{

        width:100%;
    }


    .gar-cookie-modal{

        padding:12px;
    }


    .gar-cookie-panel{

        max-height:calc(100vh - 24px);
    }


    .gar-cookie-panel-header{

        padding:22px 20px 19px;
    }


    .gar-cookie-panel-header h2{

        font-size:22px;
    }


    .gar-cookie-panel-body{

        padding-left:20px;

        padding-right:20px;
    }


    .gar-cookie-category{

        grid-template-columns:
            minmax(0,1fr)
            48px;

        gap:15px;
    }


    .gar-cookie-panel-footer{

        display:grid;

        grid-template-columns:1fr;

        padding:17px 20px;
    }

}