/* ==========================================
   THE EXPAT EDITS
   VERSION 4.0
   PART 1
   Global • Navigation • Hero
========================================== */


/* ==========================
   RESET
========================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    background:#090909;
    color:#ffffff;
    font-family:'Inter',sans-serif;
    line-height:1.8;
    overflow-x:hidden;
}

img{
    display:block;
    max-width:100%;
}

a{
    text-decoration:none;
}


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

.section{
    width:100%;
    padding:140px 8%;
}

.section-heading{
    max-width:1200px;
    margin:0 auto 70px;
}

.section-heading p{
    color:#d4af37;
    text-transform:uppercase;
    letter-spacing:5px;
    font-size:.8rem;
    margin-bottom:14px;
}

.section-heading h2{
    font-family:'Cormorant Garamond',serif;
    font-size:3.2rem;
    font-weight:600;
    line-height:1.1;
}


/* ==========================
   NAVIGATION
========================== */

nav{

    position:absolute;

    top:0;

    left:0;

    width:100%;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:35px 8%;

    z-index:1000;

}

.logo{

    font-family:'Cormorant Garamond',serif;

    font-size:2rem;

    font-weight:600;

    letter-spacing:5px;

    color:#ffffff;

    white-space:nowrap;

}

.nav-links{

    display:flex;

    gap:35px;

    list-style:none;

}

.nav-links a{

    color:white;

    font-size:.95rem;

    letter-spacing:2px;

    transition:.3s;

}

.nav-links a:hover{

    color:#d4af37;

}


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

.hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    background-size:cover;

    background-position:center center;

    overflow:hidden;

}

.hero::before{

    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.82) 0%,
            rgba(0,0,0,.55) 45%,
            rgba(0,0,0,.20) 100%
        );

}

.hero::after{

    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            to top,
            #090909 0%,
            rgba(9,9,9,.2) 30%,
            transparent 60%
        );

}

.hero-overlay{

    position:relative;

    z-index:2;

    width:min(700px,90%);

    margin-left:8%;

    padding-top:120px;

}

.eyebrow{

    color:#d4af37;

    text-transform:uppercase;

    letter-spacing:6px;

    font-size:.82rem;

    margin-bottom:26px;

    font-weight:600;

}

.hero h1{

    font-family:'Cormorant Garamond',serif;

    font-size:5.4rem;

    line-height:.92;

    font-weight:600;

    letter-spacing:.5px;

    margin-bottom:36px;

    max-width:700px;

}

.hero-text{

    color:#dddddd;

    font-size:1.12rem;

    line-height:2;

    max-width:640px;

    margin-bottom:28px;

}

.hero-text:last-of-type{

    margin-bottom:0;

}

.button{

    display:inline-flex;

    align-items:center;

    gap:10px;

    margin-top:40px;

    padding:16px 38px;

    border:1px solid #d4af37;

    border-radius:100px;

    color:#d4af37;

    transition:.35s ease;

}

.button:hover{

    background:#d4af37;

    color:#111;

    transform:translateY(-2px);

}
/* ==========================================
   VERSION 4.0
   PART 2
   Homepage + Shared Layout
========================================== */


/* ==========================
   FEATURED JOURNEYS V5
========================== */

.journey{

    max-width:1350px;

    margin:0 auto 220px;

    display:grid;

    grid-template-columns:1.3fr 1fr;

    gap:110px;

    align-items:center;

}

.journey.reverse{

    grid-template-columns:1fr 1.3fr;

}

.journey.reverse .journey-image{

    order:2;

}

.journey.reverse .journey-content{

    order:1;

}

.journey-image{

    overflow:hidden;

    border-radius:22px;

}

.journey-image img{

    width:100%;

    height:620px;

    object-fit:cover;

    transition:
        transform .9s ease,
        filter .6s ease;

    box-shadow:
        0 40px 90px rgba(0,0,0,.45);

}

.journey:hover img{

    transform:scale(1.035);

    filter:brightness(1.04);

}

.journey-location{

    color:#d4af37;

    letter-spacing:6px;

    text-transform:uppercase;

    font-size:.78rem;

    margin-bottom:18px;

}

.journey-content h3{

    font-family:'Cormorant Garamond',serif;

    font-size:4.2rem;

    line-height:.95;

    font-weight:600;

    margin-bottom:28px;

}

.journey-content p{

    color:#d7d7d7;

    font-size:1.08rem;

    line-height:2;

    max-width:540px;

    margin-bottom:34px;

}

.text-link{

    display:inline-flex;

    align-items:center;

    gap:10px;

    color:#d4af37;

    font-weight:600;

    letter-spacing:.5px;

    transition:.35s;

}

.text-link:hover{

    color:#ffffff;

    transform:translateX(10px);

}


/* ==========================================
   INTERACTIVE WORLD MAP V5
========================================== */

.map-wrapper{

    position:relative;

    width:100%;

    max-width:1600px;

    margin:60px auto;

    padding:0;

}

.interactive-map{

    width:100%;

    display:block;

    opacity:.72;

    filter:

        grayscale(100%)

        brightness(1)

        contrast(1.05);

}

.map-wrapper:hover .interactive-map{

    transform:scale(1.05);

}

.map-wrapper::before{

    content:"";

    position:absolute;

    inset:-180px;

    background:
        radial-gradient(circle,
        rgba(212,175,55,.15) 0%,
        rgba(212,175,55,.07) 35%,
        transparent 75%);

    filter:blur(90px);

    z-index:0;

}

.travel-stats{

    display:flex;

    justify-content:center;

    gap:100px;

    margin:70px 0;

    flex-wrap:wrap;

}

.stat{

    text-align:center;

}

.stat .number{

    display:block;

    font-family:'Cormorant Garamond',serif;

    font-size:4rem;

    color:#d4af37;

    line-height:1;

}

.stat .label{

    margin-top:10px;

    color:#cfcfcf;

    text-transform:uppercase;

    letter-spacing:3px;

    font-size:.82rem;

}

.map-pin{

    position:absolute;

    width:18px;

    height:18px;

    margin-left:-9px;

    margin-top:-9px;

    border-radius:50%;

    background:#d4af37;

    border:3px solid white;

    z-index:10;

    box-shadow:

        0 0 18px rgba(212,175,55,.95),

        0 0 45px rgba(212,175,55,.65),

        0 0 90px rgba(212,175,55,.35);

    animation:mapPulse 2.8s infinite;

    transition:.35s;

}

.map-pin:hover{

    transform:scale(1.45);

}

.map-pin span{

    position:absolute;

    inset:-10px;

    border:2px solid rgba(212,175,55,.35);

    border-radius:50%;

}

@keyframes mapPulse{

    0%{

        transform:scale(1);

        box-shadow:0 0 0 0 rgba(212,175,55,.6);

    }

    70%{

        box-shadow:0 0 0 24px rgba(212,175,55,0);

    }

    100%{

        transform:scale(1);

        box-shadow:0 0 0 0 rgba(212,175,55,0);

    }

}

.map-tip{

    text-align:center;

    margin-top:35px;

    color:#bfbfbf;

    letter-spacing:3px;

    text-transform:uppercase;

    font-size:.82rem;

}


/* ==========================
   SHARED IMAGE STYLES
========================== */

img{

    max-width:100%;

    height:auto;

}

figure{

    margin:0;

}


/* ==========================
   CONTENT WIDTH
========================== */

.story-grid,
.snapshot-grid,
.gallery,
.journey,
.about,
.map-intro,
.section-heading{

    max-width:1200px;

    margin-left:auto;

    margin-right:auto;

}

/* ==========================================
   VERSION 4.0
   PART 3
   Destination Pages
========================================== */


/* ==========================
   STORY INTRO
========================== */

.story-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:center;

}

.story-text{

    font-size:1.08rem;

    line-height:2;

    color:#d8d8d8;

}

.story-image{

    width:100%;

    height:600px;

    object-fit:cover;

    border-radius:18px;

    box-shadow:0 25px 60px rgba(0,0,0,.35);

}


/* ==========================
   TRIP SNAPSHOT
========================== */

.snapshot-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

    gap:30px;

}

.snapshot-card{

    background:#111;

    border:1px solid rgba(212,175,55,.15);

    border-radius:18px;

    padding:30px;

    transition:.35s;

}

.snapshot-card:hover{

    transform:translateY(-6px);

    border-color:#d4af37;

}

.snapshot-card h3{

    color:#d4af37;

    font-size:.85rem;

    letter-spacing:1px;

    margin-bottom:18px;

}

.snapshot-card p{

    color:white;

    font-size:1.15rem;

    line-height:1.6;

}


/* ==========================
   EDITORIAL STORY
========================== */

.journey-story{

    max-width:1200px;

    margin:140px auto;

    padding:0 8%;

}

.story-block{

    margin-bottom:140px;

}

.story-block:last-child{

    margin-bottom:0;

}

.story-block img{

    width:100%;

    height:70vh;

    min-height:460px;

    max-height:720px;

    object-fit:cover;

    border-radius:18px;

}

.journey-story .story-text{

    max-width:720px;

    margin:45px auto 0;

    text-align:center;

}

.story-number{

    color:#d4af37;

    letter-spacing:5px;

    text-transform:uppercase;

    font-size:.8rem;

    margin-bottom:14px;

}

.journey-story h2{

    font-family:'Cormorant Garamond',serif;

    font-size:3rem;

    font-weight:600;

    margin-bottom:20px;

}

.journey-story p{

    color:#d5d5d5;

    line-height:1.9;

}


/* ==========================
   GALLERY
========================== */

.gallery{

    display:flex;

    flex-direction:column;

    gap:35px;

}

.gallery img{

    width:100%;

    border-radius:18px;

    object-fit:cover;

}

.gallery > img{

    height:560px;

}

.gallery-row{

    display:grid;

    grid-template-columns:1.5fr 1fr;

    gap:35px;

}

.gallery-row img{

    height:400px;

}


/* ==========================
   DESTINATION IMAGE POLISH
========================== */

.story-image,
.story-block img,
.gallery img{

    box-shadow:0 25px 60px rgba(0,0,0,.35);

}

/* ==========================================
   VERSION 4.0
   PART 4
   Footer + Mobile
========================================== */


/* ==========================
   HOTELS
========================== */



.hotel-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    gap:35px;
    max-width:1200px;
    margin:0 auto;
}

.hotel-card{
    background:#111;
    border:1px solid rgba(212,175,55,.15);
    border-radius:18px;
    padding:35px;
    transition:.35s;
}

.hotel-card:hover{
    transform:translateY(-6px);
    border-color:#d4af37;
}

.hotel-card h3{
    color:#d4af37;
    margin-bottom:18px;
    font-family:'Cormorant Garamond',serif;
    font-size:2rem;
}

.hotel-card p{
    color:#d8d8d8;
}


/* ==========================
   SIGNATURE CLOSING
========================== */

.closing-message{

    max-width:900px;

    margin:180px auto 120px;

    padding:0 40px;

    text-align:center;

}

.closing-label{

    color:#d4af37;

    text-transform:uppercase;

    letter-spacing:6px;

    font-size:.82rem;

    margin-bottom:20px;

}

.closing-message h2{

    font-family:'Cormorant Garamond',serif;

    font-size:4rem;

    font-weight:500;

    line-height:1.15;

    margin-bottom:40px;

}

.closing-message p{

    color:#d6d6d6;

    font-size:1.12rem;

    line-height:2;

    max-width:720px;

    margin:auto;

}

/* ==========================
   FOOTER
========================== */

footer{

    margin-top:0;

    padding:70px 8%;

    border-top:1px solid rgba(212,175,55,.18);

    text-align:center;

}

footer h3{

    font-family:'Cormorant Garamond',serif;

    font-size:2.3rem;

    font-weight:600;

    letter-spacing:8px;

    color:#d4af37;

    margin-bottom:18px;

}

footer p{

    color:#bfbfbf;

    margin:12px auto;

    max-width:700px;

}

footer .text-link{

    margin-top:18px;

    display:inline-block;

}

.copyright{

    margin-top:40px;

    opacity:.6;

    font-size:.82rem;

}


/* ==========================
   MOBILE
========================== */

@media (max-width:900px){

nav{

    flex-direction:column;

    align-items:flex-start;

    gap:20px;

    padding:30px;

}

.logo{

    font-size:1.9rem;

    line-height:.9;

    white-space:normal;

    max-width:180px;

}

.nav-links{

    gap:18px;

    flex-wrap:wrap;

}

.hero{

    min-height:95vh;

}

.hero-overlay{

    margin:200px 30px 80px;

    max-width:none;

}

.hero h1{

    font-size:3rem;

}

.hero-text{

    font-size:1rem;

}

.section{

    padding:90px 30px;

}

.section-heading{

    margin-bottom:50px;

}

.section-heading h2{

    font-size:2.4rem;

}

.story-grid{

    grid-template-columns:1fr;

    gap:40px;

}

.story-image{

    height:420px;

}

.snapshot-grid{

    grid-template-columns:1fr;

}

.journey,

.journey.reverse{

    grid-template-columns:1fr;

    gap:40px;

    margin-bottom:100px;

}

.journey.reverse .journey-image,

.journey.reverse .journey-content{

    order:initial;

}

.journey-image img{

    height:360px;

}

.journey-content h3{

    font-size:2.5rem;

}

.journey-story{

    margin:100px auto;

    padding:0 30px;

}

.story-block{

    margin-bottom:100px;

}

.story-block img{

    height:420px;

    min-height:0;

}

.journey-story h2{

    font-size:2.3rem;

}

.gallery{

    gap:25px;

}

.gallery-row{

    grid-template-columns:1fr;

    gap:25px;

}

.gallery>img,

.gallery-row img{

    height:320px;

}

.about p{

    font-size:1rem;

}

footer{

    margin-top:80px;

    padding:50px 30px;

}

}

/* ==========================
   CAMERA ROLL
========================== */

.camera-roll{
    padding:120px 8%;
    overflow:hidden;
}

.camera-roll-slider{
    overflow:hidden;
    margin-top:50px;
}

.camera-roll-track{
    display:flex;
    gap:24px;
    width:max-content;
    animation:scrollRoll 45s linear infinite;
}

.camera-roll-track img{
    width:320px;
    height:420px;
    object-fit:cover;
    border-radius:18px;
    flex-shrink:0;
    transition:transform .4s ease;
}

.camera-roll-track img:hover{
    transform:scale(1.03);
}

@keyframes scrollRoll{

    from{
        transform:translateX(0);
    }

    to{
        transform:translateX(-50%);
    }

}

@media (max-width:768px){

    .camera-roll-track img{
        width:260px;
        height:350px;
    }

}

/* ==========================================
   INTERACTIVE WORLD MAP
========================================== */

.map-wrapper{
    position:relative;
    width:100%;
    max-width:1400px;
    margin:80px auto;
    padding:20px 0 60px;
    overflow:hidden;
}
.interactive-map{

    position:relative;

    width:100%;

    display:block;

    opacity:.65;

    filter:
        sepia(100%)
        hue-rotate(350deg)
        saturate(180%)
        brightness(.9)
        contrast(1.05);

    transform:scale(1.05);

    z-index:1;

}

.map-wrapper::before{
    content:"";
    position:absolute;
    inset:-100px;
    background:
        radial-gradient(circle at center,
        rgba(212,175,55,.12) 0%,
        rgba(212,175,55,.05) 35%,
        transparent 75%);
    filter:blur(70px);
    pointer-events:none;
    z-index:0;
}
/* Travel Stats */

.travel-stats{
    display:flex;
    justify-content:center;
    gap:70px;
    margin:45px 0;
    flex-wrap:wrap;
}

.stat{
    text-align:center;
}

.stat .number{
    display:block;
    font-family:'Cormorant Garamond',serif;
    font-size:3rem;
    color:#d4af37;
}

.stat .label{
    color:#cfcfcf;
    letter-spacing:2px;
    text-transform:uppercase;
    font-size:.8rem;
}

/* Pins */

.map-pin{

    position:absolute;

    width:18px;
    height:18px;

    margin-left:-9px;
    margin-top:-9px;

    border-radius:50%;

    background:#d4af37;

    border:2px solid #ffffff;

    box-shadow:
        0 0 10px rgba(212,175,55,.8),
        0 0 25px rgba(212,175,55,.55),
        0 0 50px rgba(212,175,55,.35);

    animation:pulse 2.5s infinite;

    z-index:10;

}

.map-pin:hover{
    transform:scale(1.35);
}

.map-pin span{
    position:absolute;
    inset:-8px;
    border:2px solid rgba(212,175,55,.45);
    border-radius:50%;
}

/* Correct pin positions */

.map-pin.hongkong{
    left:84%;
    top:39%;
}

.map-pin.borobudur{
    left:72%;
    top:57%;
}

.map-pin.komodo{
    left:80%;
    top:61%;
}

.map-pin.cambodia{

    left:68%;

    top:46%;

}

.map-pin.japan{

    left:84%;

    top:33%;

}
@keyframes pulse{

    0%{
        transform:scale(1);
        box-shadow:0 0 0 0 rgba(212,175,55,.6);
    }

    70%{
        box-shadow:0 0 0 18px rgba(212,175,55,0);
    }

    100%{
        transform:scale(1);
        box-shadow:0 0 0 0 rgba(212,175,55,0);
    }

}

.map-tip{
    text-align:center;
    color:#bfbfbf;
    margin-top:35px;
    letter-spacing:2px;
    text-transform:uppercase;
    font-size:.8rem;
}

@media(max-width:768px){

    .travel-stats{
        gap:35px;
    }

    .stat .number{
        font-size:2.2rem;
    }

    .map-pin{
        width:18px;
        height:18px;
        margin-left:-9px;
        margin-top:-9px;
    }

}

/* Destination Card */

.map-card{

    position:absolute;

    top:55%;
    left:50%;

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

    width:320px;

    z-index:20;
}
.map-card img{

    width:100%;

    height:180px;

    object-fit:cover;

    display:block;

}

.map-card-content{

    padding:22px;

}

.map-country{

    color:#d4af37;

    font-size:.75rem;

    letter-spacing:2px;

    text-transform:uppercase;

}

.map-card h3{

    margin:10px 0;

    font-family:'Cormorant Garamond',serif;

    font-size:2rem;

    color:white;

}

.map-card p{

    color:#bfbfbf;

    line-height:1.6;

}

.map-card a{

    display:inline-block;

    margin-top:18px;

    color:#d4af37;

    text-decoration:none;

    font-weight:600;

}

/* =====================================
   EXPERIENCE SECTION
===================================== */

.experience-section{
    max-width:900px;
    margin:120px auto;
    padding:0 28px;
}

.experience-section .section-label{
    color:#d4af37;
    text-transform:uppercase;
    letter-spacing:6px;
    font-size:.85rem;
    margin-bottom:18px;
}

.experience-section .section-title{
    font-family:'Cormorant Garamond',serif;
    font-size:4rem;
    font-weight:500;
    color:#fff;
    margin-bottom:50px;
    line-height:1.1;
}

.experience-section p{
    max-width:760px;
    color:#d7d7d7;
    font-size:1.15rem;
    line-height:2;
    margin-bottom:30px;
}


.story-text{
    max-width:700px;
    margin:40px auto 0;
    text-align:center;
    color:#d5d5d5;
    font-size:1.08rem;
    line-height:1.9;
}

.story-block h2{
    text-align:center;
    margin:18px 0 24px;
}

.story-number{
    display:block;
    text-align:center;
    color:#d4af37;
    letter-spacing:6px;
    margin-bottom:16px;
}
 
/* ==========================================
   V5 SCROLL ANIMATIONS
========================================== */

.fade-up{

    opacity:0;

    transform:translateY(60px);

    transition:

        opacity .9s ease,

        transform .9s ease;

}

.fade-up.visible{

    opacity:1;

    transform:translateY(0);

}

/* Slight delay options */

.delay-1{

    transition-delay:.15s;

}

.delay-2{

    transition-delay:.3s;

}

.delay-3{

    transition-delay:.45s;

}

.map-wrapper{

    margin-top:40px;

}

.interactive-map{

    transform:none;

}
