/* =========================================================
   TRAVEL09 COOKIE POLICY
   ========================================================= */

.cp-page,
.cp-page *{
    box-sizing:border-box;
}

.cp-page{
    --navy:#071E32;
    --navy2:#0B2D46;
    --deep:#03131F;

    --teal:#087E8B;
    --aqua:#16B8C4;
    --gold:#D6AD60;

    --text:#173447;
    --muted:#718391;

    --bg:#F5F8FA;
    --soft:#EEF7F8;

    --border:#DFE8ED;

    color:var(--text);
    background:#fff;

    font-size:16px;
    line-height:1.7;

    -webkit-font-smoothing:antialiased;
}

.cp-shell{
    width:min(
        calc(100% - 80px),
        1440px
    );

    margin:0 auto;
}


/* =========================================================
   HERO
   ========================================================= */

.cp-hero{
    position:relative;
    overflow:hidden;

    padding:82px 0 74px;

    color:#fff;

    background:
        radial-gradient(
            circle at 86% 13%,
            rgba(22,184,196,.22),
            transparent 29%
        ),
        radial-gradient(
            circle at 8% 90%,
            rgba(214,173,96,.10),
            transparent 26%
        ),
        linear-gradient(
            145deg,
            var(--deep),
            var(--navy) 58%,
            var(--navy2)
        );
}

.cp-hero::after{
    content:"";

    position:absolute;
    inset:0;

    opacity:.12;

    background-image:
        linear-gradient(
            rgba(255,255,255,.05) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.05) 1px,
            transparent 1px
        );

    background-size:52px 52px;

    pointer-events:none;
}

.cp-hero .cp-shell{
    position:relative;
    z-index:2;
}

.cp-hero__grid{
    display:grid;

    grid-template-columns:
        minmax(0,1fr)
        400px;

    gap:68px;

    align-items:end;
}

.cp-kicker{
    color:#87E2E8;

    font-size:12px;
    font-weight:850;

    letter-spacing:.1em;
    text-transform:uppercase;
}

.cp-hero h1{
    margin:15px 0 0;

    max-width:900px;

    color:#fff;

    font:
        600
        clamp(56px,5.8vw,86px)/.98
        "Playfair Display",
        Georgia,
        serif;

    letter-spacing:-.05em;
}

.cp-hero h1 span{
    display:block;

    margin-top:7px;

    background:
        linear-gradient(
            90deg,
            #A1EEF1,
            #72DCE3,
            #D7B66D
        );

    background-clip:text;
    -webkit-background-clip:text;

    -webkit-text-fill-color:transparent;
}

.cp-hero__lead{
    max-width:780px;

    margin:23px 0 0;

    color:#BCD0DA;

    font-size:17px;
    line-height:1.8;
}

.cp-hero__meta{
    display:flex;
    flex-wrap:wrap;

    gap:9px;

    margin-top:25px;
}

.cp-hero__meta > div{
    min-width:150px;

    padding:11px 14px;

    border:
        1px solid
        rgba(255,255,255,.11);

    border-radius:10px;

    background:
        rgba(255,255,255,.035);
}

.cp-hero__meta span{
    display:block;

    color:#8FA7B5;

    font-size:9px;
    font-weight:800;

    text-transform:uppercase;
}

.cp-hero__meta strong{
    display:block;

    margin-top:3px;

    color:#fff;

    font-size:12px;
}

.cp-hero__actions{
    display:flex;
    flex-wrap:wrap;

    gap:9px;

    margin-top:25px;
}

.cp-btn{
    min-height:45px;

    display:inline-flex;

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

    padding:0 16px;

    border:
        1px solid
        rgba(255,255,255,.15);

    border-radius:9px;

    background:transparent;

    color:#E2EDF2;

    cursor:pointer;

    text-decoration:none;

    font:inherit;
    font-size:12px;
    font-weight:800;
}

.cp-btn--primary{
    border-color:transparent;

    background:
        linear-gradient(
            135deg,
            var(--teal),
            var(--aqua)
        );

    color:#fff;
}

.cp-hero__privacy{
    padding:27px;

    border:
        1px solid
        rgba(255,255,255,.13);

    border-radius:20px;

    background:
        rgba(255,255,255,.055);

    backdrop-filter:blur(15px);
}

.cp-shield{
    width:55px;
    height:55px;

    display:grid;
    place-items:center;

    margin-bottom:19px;

    border-radius:16px;

    background:
        linear-gradient(
            135deg,
            var(--teal),
            var(--aqua)
        );

    color:#fff;

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

.cp-hero__privacy > span{
    color:#78DCE3;

    font-size:9px;
    font-weight:850;

    text-transform:uppercase;
}

.cp-hero__privacy strong{
    display:block;

    margin:9px 0;

    color:#fff;

    font:
        600 24px/1.3
        "Playfair Display",
        Georgia,
        serif;
}

.cp-hero__privacy p{
    margin-bottom:0;

    color:#A9BDC8;

    font-size:13px;
}


/* =========================================================
   PRINCIPLES
   ========================================================= */

.cp-principles{
    border-bottom:
        1px solid
        var(--border);
}

.cp-principles__grid{
    display:grid;

    grid-template-columns:
        repeat(4,1fr);
}

.cp-principles article{
    min-height:118px;

    display:grid;

    grid-template-columns:
        auto 1fr;

    gap:13px;

    padding:25px;

    border-right:
        1px solid
        var(--border);
}

.cp-principles article:last-child{
    border-right:0;
}

.cp-principles article > span{
    color:var(--teal);

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

.cp-principles strong{
    display:block;

    color:var(--navy);

    font-size:14px;
}

.cp-principles p{
    margin:4px 0 0;

    color:var(--muted);

    font-size:11px;
}


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

.cp-control{
    padding:76px 0;
}

.cp-control__panel{
    display:grid;

    grid-template-columns:
        330px
        minmax(0,1fr);

    gap:45px;

    padding:35px;

    border:
        1px solid
        var(--border);

    border-radius:22px;

    background:#fff;

    box-shadow:
        0 18px 55px
        rgba(7,30,50,.06);
}

.cp-control__intro > span{
    color:var(--teal);

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

    text-transform:uppercase;
}

.cp-control__intro h2{
    margin:7px 0 12px;

    color:var(--navy);

    font:
        600 34px/1.12
        "Playfair Display",
        Georgia,
        serif;
}

.cp-control__intro p{
    color:var(--muted);

    font-size:12px;
}

.cp-control__categories{
    display:grid;

    gap:8px;
}

.cp-category{
    min-height:82px;

    display:flex;

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

    gap:20px;

    padding:13px 15px;

    border:
        1px solid
        #E2E9ED;

    border-radius:11px;

    background:#FBFCFD;
}

.cp-category > div{
    display:flex;
    align-items:center;

    gap:12px;
}

.cp-category__icon{
    width:38px;
    height:38px;

    display:grid;
    place-items:center;

    flex:none;

    border-radius:10px;

    background:#EAF6F7;

    color:var(--teal);

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

.cp-category strong{
    display:block;

    color:var(--navy);

    font-size:12px;
}

.cp-category p{
    margin:2px 0 0;

    color:#778A96;

    font-size:9px;
}

.cp-required,
.cp-managed{
    flex:none;

    padding:6px 8px;

    border-radius:999px;

    font-size:8px;
    font-weight:850;

    text-transform:uppercase;
}

.cp-required{
    background:#E7F5EF;
    color:#2D7559;
}

.cp-managed{
    background:#EEF4F7;
    color:#647D8A;
}

.cp-manage-button,
.cp-inline-action{
    min-height:44px;

    padding:0 15px;

    border:0;
    border-radius:9px;

    background:
        linear-gradient(
            135deg,
            var(--teal),
            var(--aqua)
        );

    color:#fff;

    cursor:pointer;

    font:inherit;
    font-size:11px;
    font-weight:850;
}

.cp-control__panel > .cp-manage-button{
    grid-column:2;
    justify-self:start;
}


/* =========================================================
   POLICY LAYOUT
   ========================================================= */

.cp-policy{
    padding:75px 0;

    background:var(--bg);
}

.cp-layout{
    display:grid;

    grid-template-columns:
        255px
        minmax(0,1fr);

    gap:42px;

    align-items:start;
}


/* =========================================================
   SIDEBAR
   ========================================================= */

.cp-sidebar{
    position:sticky;

    top:105px;
}

.cp-sidebar > span{
    color:var(--teal);

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

    text-transform:uppercase;
}

.cp-sidebar nav{
    max-height:
        calc(100vh - 150px);

    overflow:auto;

    display:grid;

    gap:2px;

    margin-top:12px;

    padding-right:5px;
}

.cp-sidebar a{
    padding:8px 10px;

    border-radius:7px;

    color:#617A89;

    text-decoration:none;

    font-size:11px;
    font-weight:720;
}

.cp-sidebar a:hover,
.cp-sidebar a.active{
    background:#E4F3F4;

    color:var(--teal);
}


/* =========================================================
   POLICY SECTION
   ========================================================= */

.cp-section{
    scroll-margin-top:105px;

    display:grid;

    grid-template-columns:
        43px
        minmax(0,1fr);

    gap:22px;

    margin-bottom:14px;

    padding:33px;

    border:
        1px solid
        var(--border);

    border-radius:20px;

    background:#fff;
}

.cp-number{
    width:43px;
    height:43px;

    display:grid;
    place-items:center;

    border-radius:12px;

    background:#EAF6F7;

    color:var(--teal);

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

.cp-label{
    color:var(--teal);

    font-size:9px;
    font-weight:850;

    letter-spacing:.08em;

    text-transform:uppercase;
}

.cp-section h2{
    margin:5px 0 14px;

    color:var(--navy);

    font:
        600
        clamp(30px,3vw,42px)/1.1
        "Playfair Display",
        Georgia,
        serif;

    letter-spacing:-.025em;
}

.cp-section h3{
    margin:23px 0 10px;

    color:var(--navy);

    font-size:14px;
}

.cp-section p{
    color:#5F7887;

    font-size:14px;
    line-height:1.85;
}

.cp-section a{
    color:var(--teal);
}


/* =========================================================
   NOTE
   ========================================================= */

.cp-note,
.cp-warning{
    margin:20px 0;

    padding:18px;

    border-radius:13px;
}

.cp-note{
    border:
        1px solid
        #CFE4E7;

    background:#F1F9FA;
}

.cp-note strong{
    color:#286C75;

    font-size:12px;
}

.cp-note p{
    margin:4px 0 0;

    color:#647F89;

    font-size:11px;
}

.cp-warning{
    border:
        1px solid
        #EBD9B9;

    background:#FFF9EF;
}

.cp-warning strong{
    color:#7B5625;

    font-size:12px;
}

.cp-warning p{
    margin:5px 0 0;

    color:#806D51;

    font-size:11px;
}


/* =========================================================
   TYPE GRID
   ========================================================= */

.cp-type-grid{
    display:grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:8px;

    margin-top:20px;
}

.cp-type-grid article{
    padding:16px;

    border:
        1px solid
        #E2EAED;

    border-radius:11px;

    background:#FBFCFD;
}

.cp-type-grid span{
    color:var(--teal);

    font-size:8px;
    font-weight:850;

    text-transform:uppercase;
}

.cp-type-grid strong{
    display:block;

    margin-top:4px;

    color:var(--navy);

    font-size:12px;
}

.cp-type-grid p{
    margin:4px 0 0;

    font-size:10px;
}


/* =========================================================
   CHIPS
   ========================================================= */

.cp-chip-grid{
    display:flex;
    flex-wrap:wrap;

    gap:7px;

    margin:18px 0;
}

.cp-chip-grid span{
    padding:7px 10px;

    border:
        1px solid
        #DDE7EB;

    border-radius:8px;

    background:#FAFCFD;

    color:#557381;

    font-size:10px;
    font-weight:750;
}


/* =========================================================
   TABLE
   ========================================================= */

.cp-table-wrap{
    overflow-x:auto;

    margin-top:20px;

    border:
        1px solid
        var(--border);

    border-radius:13px;
}

.cp-table{
    width:100%;

    border-collapse:collapse;
}

.cp-table th,
.cp-table td{
    padding:14px 16px;

    border-bottom:
        1px solid
        var(--border);

    text-align:left;

    vertical-align:top;
}

.cp-table th{
    background:#F2F7F9;

    color:#5D7786;

    font-size:9px;
    font-weight:850;

    text-transform:uppercase;
}

.cp-table td{
    color:#627B89;

    font-size:11px;
}

.cp-table td:first-child{
    color:var(--navy);

    font-weight:800;
}


/* =========================================================
   PURPOSE GRID
   ========================================================= */

.cp-purpose-grid{
    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:8px;

    margin:20px 0;
}

.cp-purpose-grid article{
    padding:15px;

    border:
        1px solid
        #E2EAED;

    border-radius:10px;
}

.cp-purpose-grid span{
    display:block;

    color:var(--teal);

    font-size:8px;
    font-weight:850;

    text-transform:uppercase;
}

.cp-purpose-grid strong{
    display:block;

    margin-top:5px;

    color:var(--navy);

    font-size:11px;
}


/* =========================================================
   AI
   ========================================================= */

.cp-section--ai{
    border-color:#CDE4E7;
}

.cp-ai-panel{
    display:grid;

    grid-template-columns:
        auto 1fr;

    gap:16px;

    margin:21px 0;

    padding:19px;

    border-radius:14px;

    color:#fff;

    background:
        linear-gradient(
            145deg,
            var(--navy),
            #0B3952
        );
}

.cp-ai-panel__mark{
    width:48px;
    height:48px;

    display:grid;
    place-items:center;

    border-radius:13px;

    background:
        linear-gradient(
            135deg,
            var(--teal),
            var(--aqua)
        );

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

.cp-ai-panel strong{
    color:#fff;

    font-size:13px;
}

.cp-ai-panel p{
    margin:4px 0 0;

    color:#B3C6D0;

    font-size:11px;
}


/* =========================================================
   REGIONS
   ========================================================= */

.cp-region{
    border-left:
        4px solid
        var(--teal);
}

.cp-region__requirements{
    display:grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:7px;

    margin:20px 0;
}

.cp-region__requirements article{
    padding:13px;

    border:
        1px solid
        #DDE8EB;

    border-radius:9px;

    background:#FAFCFD;
}

.cp-region__requirements strong{
    color:#587381;

    font-size:10px;
}


/* =========================================================
   SIGNAL
   ========================================================= */

.cp-signal{
    margin-top:20px;

    padding:17px;

    border:
        1px solid
        #D8E6E9;

    border-radius:11px;

    background:#F7FAFB;
}

.cp-signal span{
    display:block;

    color:#8799A4;

    font-size:8px;

    text-transform:uppercase;
}

.cp-signal strong{
    display:block;

    margin-top:4px;

    color:var(--navy);

    font-size:12px;
}


/* =========================================================
   MANAGE GRID
   ========================================================= */

.cp-manage-grid{
    display:grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:8px;

    margin:20px 0;
}

.cp-manage-grid article{
    padding:16px;

    border:
        1px solid
        #E2EAED;

    border-radius:10px;

    background:#FBFCFD;
}

.cp-manage-grid span{
    color:var(--teal);

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

.cp-manage-grid strong{
    display:block;

    margin-top:4px;

    color:var(--navy);

    font-size:11px;
}

.cp-manage-grid p{
    margin:4px 0 0;

    font-size:9px;
}


/* =========================================================
   CONTACT
   ========================================================= */

.cp-contact{
    display:flex;

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

    gap:25px;

    margin-top:20px;

    padding:20px;

    border:
        1px solid
        #D8E6E9;

    border-radius:13px;

    background:#F8FBFC;
}

.cp-contact span{
    color:var(--teal);

    font-size:8px;
    font-weight:850;

    text-transform:uppercase;
}

.cp-contact strong{
    display:block;

    margin-top:4px;

    color:var(--navy);

    font-size:16px;
}

.cp-contact p{
    margin:3px 0 0;

    font-size:10px;
}

.cp-contact a{
    flex:none;

    padding:11px 14px;

    border-radius:8px;

    background:var(--navy);

    color:#fff;

    text-decoration:none;

    font-size:10px;
    font-weight:850;
}


/* =========================================================
   GLOBAL
   ========================================================= */

.cp-global{
    padding:80px 0;
}

.cp-global__head{
    display:grid;

    grid-template-columns:
        1.15fr .7fr;

    gap:50px;

    align-items:end;
}

.cp-global__head span{
    color:var(--teal);

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

    text-transform:uppercase;
}

.cp-global__head h2{
    margin:7px 0 0;

    color:var(--navy);

    font:
        600
        clamp(38px,4vw,55px)/1.08
        "Playfair Display",
        Georgia,
        serif;
}

.cp-global__head p{
    color:var(--muted);

    font-size:13px;
}

.cp-global__grid{
    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:10px;

    margin-top:30px;
}

.cp-global__grid article{
    min-height:145px;

    padding:19px;

    border:
        1px solid
        var(--border);

    border-radius:14px;
}

.cp-global__grid span{
    color:var(--teal);

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

.cp-global__grid strong{
    display:block;

    margin-top:21px;

    color:var(--navy);

    font-size:14px;
}

.cp-global__grid p{
    color:var(--muted);

    font-size:10px;
}


/* =========================================================
   FINAL
   ========================================================= */

.cp-final{
    padding:0 0 80px;
}

.cp-final__panel{
    display:flex;

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

    gap:35px;

    padding:38px 40px;

    border-radius:22px;

    color:#fff;

    background:
        radial-gradient(
            circle at 90% 15%,
            rgba(22,184,196,.20),
            transparent 27%
        ),
        linear-gradient(
            145deg,
            var(--deep),
            var(--navy)
        );
}

.cp-final span{
    color:#82E0E6;

    font-size:9px;
    font-weight:850;

    text-transform:uppercase;
}

.cp-final h2{
    margin:6px 0;

    color:#fff;

    font:
        600 40px
        "Playfair Display",
        Georgia,
        serif;
}

.cp-final p{
    margin:0;

    color:#AFC3CD;

    font-size:12px;
}

.cp-final button{
    flex:none;

    min-height:45px;

    padding:0 16px;

    border:0;
    border-radius:9px;

    background:
        linear-gradient(
            135deg,
            var(--teal),
            var(--aqua)
        );

    color:#fff;

    cursor:pointer;

    font:inherit;
    font-size:11px;
    font-weight:850;
}


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

@media(max-width:1180px){

    .cp-shell{
        width:
            calc(100% - 40px);
    }

    .cp-hero__grid{
        grid-template-columns:1fr;
        gap:30px;
    }

    .cp-hero__privacy{
        max-width:720px;
    }

    .cp-control__panel{
        grid-template-columns:1fr;
    }

    .cp-control__panel > .cp-manage-button{
        grid-column:auto;
    }

    .cp-layout{
        grid-template-columns:
            220px
            minmax(0,1fr);

        gap:25px;
    }

}


@media(max-width:900px){

    .cp-principles__grid{
        grid-template-columns:
            repeat(2,1fr);
    }

    .cp-layout{
        grid-template-columns:1fr;
    }

    .cp-sidebar{
        position:static;
    }

    .cp-sidebar > span{
        display:none;
    }

    .cp-sidebar nav{
        max-height:none;

        display:flex;

        overflow-x:auto;

        gap:6px;

        margin:0 0 8px;

        padding-bottom:7px;
    }

    .cp-sidebar a{
        flex:none;

        border:
            1px solid
            var(--border);

        background:#fff;
    }

    .cp-global__head{
        grid-template-columns:1fr;
        gap:15px;
    }

}


@media(max-width:720px){

    .cp-shell{
        width:
            calc(100% - 24px);
    }

    .cp-hero{
        padding:52px 0;
    }

    .cp-hero h1{
        font-size:
            clamp(43px,12vw,58px);
    }

    .cp-hero__actions{
        flex-direction:column;
    }

    .cp-btn{
        width:100%;
    }

    .cp-principles__grid{
        grid-template-columns:1fr;
    }

    .cp-principles article{
        border-right:0;

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

    .cp-control,
    .cp-policy,
    .cp-global{
        padding:55px 0;
    }

    .cp-control__panel{
        padding:22px 16px;
    }

    .cp-category{
        align-items:flex-start;
        flex-direction:column;
    }

    .cp-section{
        grid-template-columns:1fr;

        gap:12px;

        padding:22px 16px;

        border-radius:16px;
    }

    .cp-number{
        width:37px;
        height:37px;
    }

    .cp-section h2{
        font-size:
            clamp(28px,8vw,36px);
    }

    .cp-section p{
        font-size:13px;
    }

    .cp-type-grid,
    .cp-purpose-grid,
    .cp-region__requirements,
    .cp-manage-grid,
    .cp-global__grid{
        grid-template-columns:1fr;
    }

    .cp-contact{
        align-items:flex-start;
        flex-direction:column;
    }

    .cp-contact a{
        width:100%;
        text-align:center;
    }

    .cp-final{
        padding-bottom:55px;
    }

    .cp-final__panel{
        align-items:flex-start;

        flex-direction:column;

        padding:28px 21px;
    }

    .cp-final button{
        width:100%;
    }

}


@media(max-width:460px){

    .cp-shell{
        width:
            calc(100% - 18px);
    }

    .cp-hero__meta{
        flex-direction:column;
    }

    .cp-hero__meta > div{
        width:100%;
    }

}


/* =========================================================
   PRINT
   ========================================================= */

@media print{

    .cp-hero,
    .cp-principles,
    .cp-control,
    .cp-sidebar,
    .cp-global,
    .cp-final,
    .t09-header,
    .t09-topbar,
    footer{
        display:none !important;
    }

    .cp-policy{
        padding:0;
        background:#fff;
    }

    .cp-shell{
        width:100%;
    }

    .cp-layout{
        display:block;
    }

    .cp-section{
        break-inside:avoid;

        margin:0;

        padding:12px 0;

        border:0;
    }

}


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

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

    .cp-page *,
    .cp-page *::before,
    .cp-page *::after{
        scroll-behavior:auto !important;
        transition:none !important;
        animation:none !important;
    }

}
