/*
|--------------------------------------------------------------------------
| HAVIKWAY Cookie Consent
|--------------------------------------------------------------------------
| Square corners. No shadows. Footer-oriented consent UI.
|--------------------------------------------------------------------------
*/

.hw-cookie {
    --hwc-ink:#151d17;
    --hwc-muted:#687169;
    --hwc-paper:#fbfaf6;
    --hwc-soft:#e9e4da;
    --hwc-line:#d4cec3;
    --hwc-gold:#a97b33;
    --hwc-green:#244b35;
    --hwc-dark:#111a14;

    position:relative;
    z-index:2147483000;

    color:var(--hwc-ink);

    font-family:
        Arial,
        Helvetica,
        sans-serif;
}

.hw-cookie *,
.hw-cookie *::before,
.hw-cookie *::after {
    box-sizing:border-box;
}

.hw-cookie[hidden],
.hw-cookie [hidden] {
    display:none !important;
}


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

.hw-cookie-banner {
    position:fixed;
    left:0;
    right:0;
    bottom:0;

    z-index:2147483002;

    width:100%;

    border-top:1px solid #3a443d;

    background:var(--hwc-dark);

    color:#fff;
}

.hw-cookie-banner-inner {
    width:min(
        1380px,
        calc(100% - 80px)
    );

    margin:0 auto;

    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:55px;
    align-items:center;

    padding:24px 0;
}

.hw-cookie-banner-copy {
    max-width:820px;
}

.hw-cookie-kicker {
    display:block;

    margin-bottom:7px;

    color:#d0a154;

    font-size:8px;
    font-weight:900;
    letter-spacing:.16em;
}

.hw-cookie-banner h2,
.hw-cookie-panel h2 {
    margin:0;

    font-family:
        Georgia,
        'Times New Roman',
        serif;

    font-weight:400;

    letter-spacing:-.035em;
}

.hw-cookie-banner h2 {
    font-size:27px;
}

.hw-cookie-banner p {
    max-width:760px;

    margin:9px 0 0;

    color:#bbc4bd;

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

.hw-cookie-policy-link {
    display:inline-flex;
    align-items:center;
    gap:8px;

    margin-top:10px;

    color:#d6aa5e;
    text-decoration:none;

    font-size:8px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.hw-cookie-banner-actions {
    min-width:325px;

    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
}

.hw-cookie-settings-link {
    grid-column:1 / -1;

    min-height:34px;

    border:0;

    background:transparent;

    color:#c5cdc7;

    cursor:pointer;

    font:inherit;

    font-size:8px;
    font-weight:900;
    text-decoration:underline;
    text-underline-offset:3px;
}


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

.hw-cookie-btn {
    min-height:42px;

    padding:0 14px;

    border:1px solid #5a645d;
    border-radius:0;

    background:transparent;

    color:#fff;

    cursor:pointer;

    font:inherit;

    font-size:8px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.hw-cookie-btn:hover,
.hw-cookie-btn:focus-visible {
    border-color:#89928b;
}

.hw-cookie-btn-primary {
    border-color:var(--hwc-gold);

    background:var(--hwc-gold);

    color:#111;
}


/* ==========================================================================
   BACKDROP
   ========================================================================== */

.hw-cookie-backdrop {
    position:fixed;
    inset:0;

    z-index:2147483003;

    background:rgba(7,12,8,.68);
}


/* ==========================================================================
   PANEL
   ========================================================================== */

.hw-cookie-panel {
    position:fixed;
    left:50%;
    top:50%;

    z-index:2147483004;

    width:min(
        820px,
        calc(100% - 40px)
    );

    max-height:calc(100vh - 40px);

    overflow:auto;

    transform:translate(-50%,-50%);

    border:1px solid #c9c3b8;

    background:var(--hwc-paper);

    color:var(--hwc-ink);
}

.hw-cookie-panel-head {
    display:grid;
    grid-template-columns:minmax(0,1fr) 35px;
    gap:25px;

    padding:26px;

    border-bottom:1px solid var(--hwc-line);
}

.hw-cookie-panel h2 {
    font-size:36px;
}

.hw-cookie-panel-head p {
    max-width:650px;

    margin:10px 0 0;

    color:var(--hwc-muted);

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

.hw-cookie-close {
    width:35px;
    height:35px;

    padding:0;

    border:0;

    background:transparent;

    color:#596159;

    cursor:pointer;

    font-size:28px;
    line-height:1;
}


/* ==========================================================================
   CATEGORIES
   ========================================================================== */

.hw-cookie-categories {
    padding:0 26px;

    border-bottom:1px solid var(--hwc-line);
}

.hw-cookie-categories article {
    min-height:110px;

    display:grid;
    grid-template-columns:minmax(0,1fr) 150px;
    gap:30px;
    align-items:center;

    padding:18px 0;

    border-bottom:1px solid var(--hwc-line);
}

.hw-cookie-categories article:last-child {
    border-bottom:0;
}

.hw-cookie-category-copy {
    display:grid;
    grid-template-columns:35px minmax(0,1fr);
    gap:14px;
}

.hw-cookie-category-copy > span {
    color:var(--hwc-gold);

    font-size:7px;
    font-weight:900;
}

.hw-cookie-category-copy strong {
    display:block;

    font-family:
        Georgia,
        'Times New Roman',
        serif;

    font-size:20px;
    font-weight:400;
}

.hw-cookie-category-copy p {
    max-width:520px;

    margin:6px 0 0;

    color:var(--hwc-muted);

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

.hw-cookie-required {
    color:var(--hwc-green);

    text-align:right;

    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}


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

.hw-cookie-switch {
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    gap:9px;
    align-items:center;

    cursor:pointer;
}

.hw-cookie-switch input {
    position:absolute;

    width:1px;
    height:1px;

    overflow:hidden;

    clip:rect(0,0,0,0);
}

.hw-cookie-switch > span {
    position:relative;

    width:42px;
    height:23px;

    border:1px solid #aeb5af;

    background:#e0e4e0;
}

.hw-cookie-switch > span::after {
    content:'';

    position:absolute;
    left:3px;
    top:3px;

    width:15px;
    height:15px;

    background:#7c857e;

    transition:
        left .16s ease,
        background .16s ease;
}

.hw-cookie-switch input:checked + span {
    border-color:var(--hwc-green);

    background:#dce7df;
}

.hw-cookie-switch input:checked + span::after {
    left:22px;

    background:var(--hwc-green);
}

.hw-cookie-switch input:focus-visible + span {
    outline:2px solid var(--hwc-gold);
    outline-offset:2px;
}

.hw-cookie-switch b {
    color:#586159;

    font-size:8px;
    font-weight:900;
}


/* ==========================================================================
   PANEL FOOT
   ========================================================================== */

.hw-cookie-panel-foot {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:30px;
    align-items:center;

    padding:20px 26px;
}

.hw-cookie-panel-foot p {
    max-width:430px;

    margin:0;

    color:var(--hwc-muted);

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

.hw-cookie-panel-foot > div {
    display:flex;
    gap:7px;
}

.hw-cookie-panel .hw-cookie-btn {
    border-color:#c7c1b7;

    color:var(--hwc-ink);
}

.hw-cookie-panel .hw-cookie-btn-primary {
    border-color:var(--hwc-gold);

    color:#111;
}


/* ==========================================================================
   LIVE REGION
   ========================================================================== */

.hw-cookie-live {
    position:fixed;
    left:-10000px;

    width:1px;
    height:1px;

    overflow:hidden;
}


/* ==========================================================================
   FOOTER SETTINGS BUTTON
   ========================================================================== */

[data-cookie-settings] {
    cursor:pointer;
}


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

@media (max-width:900px) {

    .hw-cookie-banner-inner {
        width:calc(100% - 40px);

        grid-template-columns:1fr;
        gap:18px;
    }

    .hw-cookie-banner-actions {
        width:100%;
        min-width:0;

        grid-template-columns:1fr 1fr;
    }

}


@media (max-width:620px) {

    .hw-cookie-banner-inner {
        width:calc(100% - 28px);

        padding:20px 0;
    }

    .hw-cookie-banner h2 {
        font-size:24px;
    }

    .hw-cookie-banner p {
        font-size:9px;
    }

    .hw-cookie-banner-actions {
        grid-template-columns:1fr;
    }

    .hw-cookie-settings-link {
        grid-column:auto;
    }

    .hw-cookie-panel {
        top:auto;
        left:0;
        bottom:0;

        width:100%;
        max-height:88vh;

        transform:none;

        border-right:0;
        border-bottom:0;
        border-left:0;
    }

    .hw-cookie-panel-head {
        padding:20px 16px;
    }

    .hw-cookie-panel h2 {
        font-size:30px;
    }

    .hw-cookie-categories {
        padding:0 16px;
    }

    .hw-cookie-categories article {
        grid-template-columns:1fr;
        gap:14px;

        padding:16px 0;
    }

    .hw-cookie-required {
        text-align:left;
    }

    .hw-cookie-switch {
        width:max-content;
    }

    .hw-cookie-panel-foot {
        grid-template-columns:1fr;
        gap:15px;

        padding:18px 16px;
    }

    .hw-cookie-panel-foot > div {
        display:grid;
        grid-template-columns:1fr 1fr;
    }

}


@media (max-width:420px) {

    .hw-cookie-panel-foot > div {
        grid-template-columns:1fr;
    }

}


/* ==========================================================================
   REDUCED MOTION
   ========================================================================== */

@media (prefers-reduced-motion:reduce) {

    .hw-cookie-switch > span::after {
        transition:none;
    }

}
