/* =========================================================
   TRAVEL09 — TERMS & CONDITIONS
   ========================================================= */

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

.tm-page{
    --tm-deep:#03131F;
    --tm-navy:#071E32;
    --tm-navy-2:#0B2D46;
    --tm-teal:#087E8B;
    --tm-aqua:#16B8C4;
    --tm-gold:#D6AD60;
    --tm-bg:#F5F8FA;
    --tm-soft:#EEF7F8;
    --tm-text:#173447;
    --tm-muted:#718391;
    --tm-border:#DFE8ED;

    color:var(--tm-text);
    background:#FFFFFF;

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

    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

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

    margin:0 auto;
}

.tm-page a{
    text-underline-offset:3px;
}

.tm-section-head{
    display:grid;

    grid-template-columns:
        minmax(0,1.15fr)
        minmax(300px,.72fr);

    gap:56px;

    align-items:end;
}

.tm-section-head > div > span,
.tm-final span{
    color:var(--tm-teal);

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

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

.tm-section-head h2,
.tm-final h2{
    margin:8px 0 0;

    color:var(--tm-navy);

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(
            38px,
            4vw,
            56px
        );

    font-weight:600;

    line-height:1.06;
    letter-spacing:-.03em;
}

.tm-section-head > p{
    margin:0;

    color:var(--tm-muted);

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


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

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

    padding:
        80px 0 72px;

    color:#FFFFFF;

    background:
        radial-gradient(
            circle at 87% 11%,
            rgba(22,184,196,.22),
            transparent 28%
        ),
        radial-gradient(
            circle at 8% 92%,
            rgba(214,173,96,.10),
            transparent 24%
        ),
        linear-gradient(
            145deg,
            var(--tm-deep),
            var(--tm-navy) 58%,
            var(--tm-navy-2)
        );
}

.tm-hero::before{
    content:"";

    position:absolute;
    inset:0;

    opacity:.15;

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

    background-size:48px 48px;

    pointer-events:none;
}

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

.tm-hero__grid{
    display:grid;

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

    gap:66px;

    align-items:end;
}

.tm-kicker{
    color:#86E0E6;

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

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

.tm-hero h1{
    max-width:960px;

    margin:17px 0 0;

    color:#FFFFFF;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(
            54px,
            5.8vw,
            86px
        );

    font-weight:600;

    line-height:.98;
    letter-spacing:-.05em;
}

.tm-hero h1 span{
    display:block;

    margin-top:7px;

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

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

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

.tm-hero__grid > div > p{
    max-width:780px;

    margin-top:22px;

    color:#BDD0DA;

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

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

    gap:10px;

    margin-top:24px;
}

.tm-hero__meta > div{
    min-width:165px;

    padding:12px 14px;

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

    border-radius:10px;

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

.tm-hero__meta span{
    display:block;

    color:#8FA7B5;

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

    text-transform:uppercase;
}

.tm-hero__meta strong{
    display:block;

    margin-top:3px;

    color:#FFFFFF;

    font-size:12px;
}

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

    gap:10px;

    margin-top:24px;
}

.tm-hero__actions a{
    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;

    color:#D8E5EB;

    text-decoration:none;

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

.tm-hero__actions .primary{
    border-color:transparent;

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

    color:#FFFFFF;
}

.tm-hero aside{
    padding:25px;

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

    border-radius:20px;

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

    backdrop-filter:blur(13px);
}

.tm-hero aside > span{
    color:#79DDE4;

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

    text-transform:uppercase;
}

.tm-hero aside strong{
    display:block;

    margin:10px 0;

    color:#FFFFFF;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:24px;
    font-weight:600;

    line-height:1.25;
}

.tm-hero aside p{
    margin-bottom:0;

    color:#A9BDC8;

    font-size:13px;
}


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

.tm-principles{
    padding:80px 0;
}

.tm-principles__grid{
    display:grid;

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

    gap:12px;

    margin-top:30px;
}

.tm-principles article{
    min-height:190px;

    padding:21px;

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

    border-radius:16px;

    background:
        linear-gradient(
            180deg,
            #FFFFFF,
            #FAFCFD
        );
}

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

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

.tm-principles strong{
    display:block;

    margin-top:24px;

    color:var(--tm-navy);

    font-size:16px;
}

.tm-principles p{
    color:var(--tm-muted);

    font-size:12px;
}


/* =========================================================
   TERMS LAYOUT
   ========================================================= */

.tm-terms{
    padding:72px 0;

    background:var(--tm-bg);
}

.tm-layout{
    display:grid;

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

    gap:42px;

    align-items:start;
}


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

.tm-sidebar{
    position:sticky;

    top:105px;
}

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

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

    text-transform:uppercase;
}

.tm-sidebar nav{
    max-height:
        calc(100vh - 245px);

    overflow:auto;

    display:grid;

    gap:2px;

    margin-top:12px;

    padding-right:4px;
}

.tm-sidebar nav a{
    padding:8px 10px;

    border-radius:7px;

    color:#627B89;

    text-decoration:none;

    font-size:11px;
    font-weight:730;

    transition:.2s ease;
}

.tm-sidebar nav a:hover,
.tm-sidebar nav a.active{
    background:#E5F3F4;

    color:var(--tm-teal);
}

.tm-sidebar__help{
    margin-top:17px;

    padding:16px;

    border-radius:13px;

    background:var(--tm-navy);

    color:#FFFFFF;
}

.tm-sidebar__help strong{
    font-size:12px;
}

.tm-sidebar__help p{
    margin:5px 0;

    color:#A8BDC9;

    font-size:10px;
}

.tm-sidebar__help a{
    color:#82E0E6;

    text-decoration:none;

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


/* =========================================================
   TERMS SECTIONS
   ========================================================= */

.tm-article{
    min-width:0;
}

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

    display:grid;

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

    gap:22px;

    padding:32px;

    margin-bottom:14px;

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

    border-radius:20px;

    background:#FFFFFF;
}

.tm-section__number{
    width:42px;
    height:42px;

    display:grid;
    place-items:center;

    border-radius:12px;

    background:#EDF7F8;

    color:var(--tm-teal);

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

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

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

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

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

    color:var(--tm-navy);

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(
            30px,
            3vw,
            41px
        );

    font-weight:600;

    line-height:1.09;
}

.tm-section p{
    color:#5E7786;

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

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


/* =========================================================
   NOTES / WARNINGS
   ========================================================= */

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

    padding:18px;

    border-radius:13px;
}

.tm-note{
    border:
        1px solid
        #CFE5E8;

    background:#F1F9FA;
}

.tm-note strong{
    color:#276A75;

    font-size:13px;
}

.tm-note p{
    margin:5px 0 0;

    color:#607E88;

    font-size:12px;
}

.tm-warning{
    border:
        1px solid
        #EAD7B6;

    background:#FFF9EF;
}

.tm-warning strong{
    color:#805621;

    font-size:13px;
}

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

    color:#816B4B;

    font-size:12px;
}


/* =========================================================
   LIST
   ========================================================= */

.tm-list{
    display:grid;

    gap:8px;

    padding:0;

    margin:20px 0;

    list-style:none;
}

.tm-list li{
    position:relative;

    padding:
        11px 12px 11px 38px;

    border:
        1px solid
        #E5ECEF;

    border-radius:10px;

    background:#FCFDFD;

    color:#617A88;

    font-size:12px;
}

.tm-list li::before{
    content:"✓";

    position:absolute;

    left:13px;
    top:10px;

    color:var(--tm-teal);

    font-weight:900;
}


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

.tm-contact-card{
    display:flex;

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

    gap:25px;

    margin-top:20px;

    padding:20px;

    border:
        1px solid
        #D5E5E9;

    border-radius:14px;

    background:#F8FBFC;
}

.tm-contact-card > div > span{
    color:var(--tm-teal);

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

    text-transform:uppercase;
}

.tm-contact-card strong{
    display:block;

    margin-top:4px;

    color:var(--tm-navy);

    font-size:16px;
}

.tm-contact-card p{
    max-width:680px;

    margin:5px 0 0;

    font-size:11px;
}

.tm-contact-card > a{
    flex:none;

    min-height:42px;

    display:inline-flex;
    align-items:center;

    padding:0 14px;

    border-radius:9px;

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

    color:#FFFFFF;

    text-decoration:none;

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


/* =========================================================
   CHECKLIST
   ========================================================= */

.tm-checklist{
    padding:80px 0;
}

.tm-checklist__grid{
    display:grid;

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

    gap:12px;

    margin-top:30px;
}

.tm-checklist article{
    min-height:165px;

    padding:21px;

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

    border-radius:15px;

    background:
        linear-gradient(
            180deg,
            #FFFFFF,
            #FAFCFD
        );
}

.tm-checklist article > span{
    color:var(--tm-teal);

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

.tm-checklist strong{
    display:block;

    margin-top:20px;

    color:var(--tm-navy);

    font-size:15px;
}

.tm-checklist p{
    color:var(--tm-muted);

    font-size:11px;
}


/* =========================================================
   RELATED
   ========================================================= */

.tm-related{
    padding:80px 0;

    background:var(--tm-bg);
}

.tm-related__grid{
    display:grid;

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

    gap:12px;

    margin-top:30px;
}

.tm-related__grid a{
    min-height:160px;

    display:grid;

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

    gap:14px;

    padding:21px;

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

    border-radius:15px;

    background:#FFFFFF;

    color:var(--tm-text);

    text-decoration:none;
}

.tm-related__grid a > span{
    color:#93A5AF;

    font-size:10px;
}

.tm-related__grid strong{
    color:var(--tm-navy);

    font-family:
        "Playfair Display",
        Georgia,
        serif;

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

.tm-related__grid p{
    color:var(--tm-muted);

    font-size:11px;
}

.tm-related__grid b{
    color:var(--tm-teal);
}


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

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

.tm-final > .tm-shell > div{
    padding:42px;

    border-radius:24px;

    color:#FFFFFF;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(22,184,196,.18),
            transparent 28%
        ),
        linear-gradient(
            145deg,
            var(--tm-deep),
            var(--tm-navy)
        );
}

.tm-final span{
    color:#86E0E6;
}

.tm-final h2{
    max-width:800px;

    color:#FFFFFF;
}

.tm-final p{
    max-width:760px;

    color:#A8BDC9;
}

.tm-final a{
    min-height:44px;

    display:inline-flex;
    align-items:center;

    margin-top:10px;

    padding:0 16px;

    border-radius:9px;

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

    color:#FFFFFF;

    text-decoration:none;

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


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

@media(max-width:1180px){

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

    .tm-hero__grid{
        grid-template-columns:1fr;

        gap:30px;
    }

    .tm-hero aside{
        max-width:700px;
    }

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

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

        gap:25px;
    }
}


@media(max-width:900px){

    .tm-section-head{
        grid-template-columns:1fr;

        gap:14px;
    }

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

    .tm-sidebar{
        position:static;
    }

    .tm-sidebar > span,
    .tm-sidebar__help{
        display:none;
    }

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

        display:flex;

        overflow-x:auto;

        gap:6px;

        margin-top:0;

        padding-bottom:8px;
    }

    .tm-sidebar nav a{
        flex:none;

        border:
            1px solid
            #DDE7EB;

        background:#FFFFFF;
    }

    .tm-checklist__grid,
    .tm-related__grid{
        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );
    }
}


@media(max-width:720px){

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

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

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

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

    .tm-hero__actions a{
        width:100%;
    }

    .tm-principles,
    .tm-terms,
    .tm-checklist,
    .tm-related,
    .tm-final{
        padding:
            56px 0;
    }

    .tm-principles__grid,
    .tm-checklist__grid,
    .tm-related__grid{
        grid-template-columns:1fr;
    }

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

        gap:12px;

        padding:22px 16px;

        border-radius:16px;
    }

    .tm-section__number{
        width:36px;
        height:36px;
    }

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

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

    .tm-contact-card{
        align-items:flex-start;

        flex-direction:column;
    }

    .tm-contact-card > a{
        width:100%;

        justify-content:center;
    }

    .tm-final > .tm-shell > div{
        padding:30px 22px;
    }
}


@media(max-width:460px){

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

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

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


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

@media print{

    .tm-hero,
    .tm-principles,
    .tm-sidebar,
    .tm-checklist,
    .tm-related,
    .tm-final,
    .t09-header,
    .t09-topbar,
    footer{
        display:none !important;
    }

    .tm-terms{
        padding:0;

        background:#FFFFFF;
    }

    .tm-shell{
        width:100%;
    }

    .tm-layout{
        display:block;
    }

    .tm-section{
        break-inside:avoid;

        border:0;

        padding:12px 0;

        margin:0;
    }
}


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

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

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