/* ==========================
CUSTOMIZED ANDAMAN TOUR HERO
Namespace : cat-
========================== */

.cat-hero-shell {

    position: relative;

    overflow: hidden;

    padding: 50px 6%;

    background:
        linear-gradient(135deg,
            #faf5ff,
            #f5f3ff,
            #ffffff);
}

.cat-hero-container {

    width: min(1400px, 92%);

    margin: auto;

    display: grid;

    grid-template-columns:
        55% 45%;

    gap: 50px;

    align-items: center;

    position: relative;

    z-index: 2;
}

/* ORBS */

.cat-bg-orb {

    position: absolute;

    border-radius: 50%;

    filter: blur(100px);

    opacity: .22;
}

.cat-orb-one {

    width: 300px;
    height: 300px;

    background: #8b5cf6;

    top: -100px;
    left: -100px;
}

.cat-orb-two {

    width: 260px;
    height: 260px;

    background: #c084fc;

    right: -80px;
    bottom: -80px;
}

/* LEFT */

.cat-badge {

    display: inline-block;

    padding: 12px 24px;

    border-radius: 50px;

    background: #ffffff;

    color: #7c3aed;

    font-weight: 700;

    margin-bottom: 20px;

    box-shadow:
        0 15px 35px rgba(124, 58, 237, .12);
}

.cat-copy-zone h1 {

    font-size:
        clamp(1.8rem,
            2.5vw,
            2rem);

    line-height: 1.2;

    color: #1f2937;

    margin-bottom: 20px;
}

.cat-copy-zone p {

    color: #6b7280;

    line-height: 1.9;

    margin-bottom: 35px;
}

/* HIGHLIGHTS */

.cat-highlight-grid {

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 18px;

    margin-bottom: 35px;
}

.cat-highlight-card {

    background: #ffffff;

    padding: 22px;

    border-radius: 24px;

    display: flex;

    align-items: center;

    gap: 15px;

    box-shadow:
        0 15px 35px rgba(0, 0, 0, .07);

    transition: .35s;
}

.cat-highlight-card:hover {

    transform:
        translateY(-6px);
}

.cat-highlight-card span {

    font-size: 1.8rem;
}

.cat-highlight-card h3 {

    font-size: 1rem;

    color: #374151;

    margin: 0;
}

/* BUTTONS */

.cat-btn-group {

    display: flex;

    flex-wrap: wrap;

    gap: 15px;
}

.cat-primary-btn,
.cat-secondary-btn {

    text-decoration: none;

    padding: 16px 30px;

    border-radius: 50px;

    font-weight: 700;

    transition: .35s;
}

.cat-primary-btn {

    background: #7c3aed;

    color: #ffffff;
}

.cat-secondary-btn {

    background: #ede9fe;

    color: #7c3aed;
}

.cat-primary-btn:hover,
.cat-secondary-btn:hover {

    transform:
        translateY(-5px);
}

/* RIGHT */

.cat-visual-zone {

    position: relative;

    display: flex;

    justify-content: center;
}

.cat-main-card {

    width: 100%;
    max-width: 430px;

    overflow: hidden;

    border-radius: 35px;

    box-shadow:
        0 35px 60px rgba(0, 0, 0, .15);

    transform:
        rotate(-3deg);
}

.cat-main-card img {

    width: 100%;
    height: 500px;

    object-fit: cover;

    display: block;
}

/* FLOATING CARDS */

.cat-floating-card {

    position: absolute;

    background: #ffffff;

    padding: 15px 20px;

    border-radius: 18px;

    box-shadow:
        0 20px 40px rgba(0, 0, 0, .12);

    font-weight: 600;

    animation:
        catFloat 6s ease-in-out infinite;
}

.cat-card-one {

    top: 30px;
    left: -20px;
}

.cat-card-two {

    top: 220px;
    right: -20px;
}

.cat-card-three {

    bottom: 40px;
    left: 20px;
}

@keyframes catFloat {

    0%,
    100% {

        transform:
            translateY(0);
    }

    50% {

        transform:
            translateY(-15px);
    }
}

/* TABLET */

@media(max-width:992px) {

    .cat-hero-container {

        grid-template-columns: 1fr;

        text-align: center;
    }

    .cat-highlight-grid,
    .cat-btn-group {

        justify-content: center;
    }
}

/* MOBILE */

@media(max-width:768px) {

    .cat-hero-shell {

        padding: 40px 5%;
    }

    .cat-highlight-grid {

        grid-template-columns: 1fr;
    }

    .cat-main-card img {

        height: 340px;
    }

    .cat-floating-card {

        display: none;
    }

    .cat-primary-btn,
    .cat-secondary-btn {

        width: 100%;

        text-align: center;
    }
}


/* =========================================
CUSTOMIZED ANDAMAN JOURNEY
Namespace : cat-
FINAL CSS
========================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

img {
    max-width: 100%;
    display: block;
}

.cat-journey-section {

    position: relative;
    overflow: hidden;

    padding:
        60px 5% 70px;

    background:
        linear-gradient(180deg,
            #faf5ff 0%,
            #f3e8ff 45%,
            #ffffff 100%);
}

/* =========================================
CONTAINER
========================================= */

.cat-container {

    width:
        min(1450px,
            96%);

    margin: auto;

    position: relative;

    z-index: 10;
}

/* =========================================
BACKGROUND GLOW
========================================= */

.cat-bg-glow {

    position: absolute;

    border-radius: 50%;

    filter:
        blur(120px);

    pointer-events: none;
}

.cat-glow-left {

    width: 420px;
    height: 420px;

    background:
        rgba(192,
            132,
            252,
            .25);

    top: -120px;
    left: -120px;
}

.cat-glow-right {

    width: 380px;
    height: 380px;

    background:
        rgba(216,
            180,
            254,
            .30);

    top: 180px;
    right: -100px;
}

/* =========================================
HEADER
========================================= */

.cat-header {

    max-width: 900px;

    margin: auto;

    text-align: center;

    margin-bottom: 70px;
}

.cat-badge {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

    padding:
        14px 30px;

    border-radius: 999px;

    background:
        rgba(255,
            255,
            255,
            .75);

    backdrop-filter:
        blur(20px);

    border:
        1px solid rgba(124,
            58,
            237,
            .12);

    color:
        #6d28d9;

    font-weight: 700;

    margin-bottom: 28px;

    box-shadow:
        0 15px 40px rgba(109,
            40,
            217,
            .08);
}

.cat-header h2 {

    font-size:
        clamp(2.2rem,
            4vw,
            4.4rem);

    line-height: 1.1;

    font-weight: 800;

    color:
        #111827;

    margin-bottom: 18px;
}

.cat-header h2 span {

    display: block;

    background:
        linear-gradient(90deg,
            #7c3aed,
            #9333ea);

    -webkit-background-clip: text;

    color: transparent;
}

.cat-header h3 {

    font-size:
        clamp(1.5rem,
            2vw,
            2.3rem);

    color:
        #7c3aed;

    font-weight: 500;

    margin-bottom: 22px;
}

.cat-header p {

    max-width: 650px;

    margin: auto;

    color:
        #6b7280;

    line-height: 1.6;

    font-size: .95rem;
}

/* =========================================
DESKTOP INFOGRAPHIC
========================================= */

.cat-desktop-map {
    position: relative;
    min-height: 720px;
}

/* =========================================
SVG ROUTE
========================================= */

.cat-route-svg {

    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    z-index: 1;

    pointer-events: none;
}

.cat-route-path {

    fill: none;

    stroke:
        #8b5cf6;

    stroke-width: 6;

    stroke-linecap: round;

    stroke-dasharray:
        14;

    filter:
        drop-shadow(0 0 15px rgba(139,
                92,
                246,
                .25));
}

/* =========================================
COMMON CARD
========================================= */

.cat-card {

    position: absolute;

    width: 320px;

    background:
        rgba(255,
            255,
            255,
            .92);

    backdrop-filter:
        blur(25px);

    border:
        1px solid rgba(255,
            255,
            255,
            .85);

    border-radius:
        28px;

    padding:
        22px;

    box-shadow:
        0 30px 70px rgba(15,
            23,
            42,
            .08);

    z-index: 5;

    transition:
        .45s ease;
}

.cat-card:hover {

    transform:
        translateY(-12px);

    box-shadow:
        0 40px 90px rgba(109,
            40,
            217,
            .14);
}

/* =========================================
STEP NUMBER
========================================= */

.cat-step {

    position: absolute;

    top: -22px;
    left: 28px;

    width: 60px;
    height: 60px;

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    background:
        linear-gradient(135deg,
            #7c3aed,
            #9333ea);

    color: #fff;

    font-size: 1.4rem;

    font-weight: 700;

    box-shadow:
        0 15px 35px rgba(124,
            58,
            237,
            .30);
}

/* =========================================
CARD ICON
========================================= */

.cat-card-icon {

    font-size:
        2rem;

    margin-bottom: 12px;
}

/* =========================================
CARD TEXT
========================================= */

.cat-card h4 {

    font-size:
        1.05rem;

    color:
        #111827;

    margin-bottom: 10px;

    line-height: 1.3;
}

.cat-card p {

    color:
        #6b7280;

    line-height: 1.65;

    margin-bottom: 14px;

    font-size: .92rem;
}

/* =========================================
TAGS
========================================= */

.cat-tags {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;
}

.cat-tags span {

    padding: 8px 14px;

    border-radius: 999px;

    background:
        #f3e8ff;

    color:
        #7c3aed;

    font-size: .8rem;

    font-weight: 600;
}

/* =========================================
DESKTOP CARD POSITIONING
========================================= */

.cat-card-1 {
    top: 40px;
    left: 1%;
}

.cat-card-2 {
    top: 40px;
    right: 1%;
}

.cat-card-3 {
    top: 420px;
    left: 3%;
}

.cat-card-4 {
    top: 420px;
    right: 3%;
}

.cat-card-5 {
    left: 50%;
    top: 520px;

    transform:
        translateX(-50%);

    z-index: 10;
}

.cat-card-5:hover {
    transform:
        translateX(-50%) translateY(-12px);
}

/* =========================================
CENTER ISLAND
========================================= */

.cat-island {

    position: absolute;

    left: 50%;
    top: 99px;

    transform:
        translateX(-50%);

    text-align: center;

    z-index: 20;
}

.cat-island img {

    width: 330px;
    max-width: 100%;

    margin: auto;

    filter:
        drop-shadow(0 35px 60px rgba(124,
                58,
                237,
                .18));
}

.cat-island h4 {

    margin-top: 8px;

    font-size: 1.6rem;

    color:
        #111827;

    font-weight: 700;
}

.cat-island h5 {

    font-size: 3rem;

    color:
        #7c3aed;

    font-weight: 500;

    line-height: 1;
}

/* =========================================
CTA
========================================= */

.cat-cta {

    text-align: center;

    margin-top: 132px;
}

.cat-cta a {

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 12px;

    text-decoration: none;

    padding:
        20px 40px;

    border-radius:
        999px;

    background:
        linear-gradient(135deg,
            #7c3aed,
            #9333ea);

    color: #fff;

    font-weight: 700;

    font-size:
        1rem;

    box-shadow:
        0 20px 50px rgba(124,
            58,
            237,
            .25);

    transition:
        .35s ease;
}

.cat-cta a:hover {

    transform:
        translateY(-5px) scale(1.03);

    filter:
        brightness(1.08);
}

/* =========================================
DECORATIVE ELEMENTS
========================================= */

.cat-plane{

    position:absolute;

    top:120px;

    left:-250px;

    width:180px;

    z-index:2;

    pointer-events:none;

    animation:
    catPlaneFly
    18s
    linear
    infinite;
}

@keyframes catPlaneFly{

    from{

        left:-250px;

        transform:
        translateY(20px)
        rotate(10deg);
    }

    to{

        left:
        calc(
            100vw + 250px
        );

        transform:
        translateY(-10px)
        rotate(-5deg);
    }

}

.cat-palm-left {

    position: absolute;

    width: 240px;

    top: 331px;
    left: 0;

    opacity: 12;

    z-index: 1;
}

.cat-palm-right {

    position: absolute;

    width: 240px;

    top: 331px;
    right: 0;

    opacity: 1;

    z-index: 1;
}

.cat-camera,
.cat-luggage,
.cat-hat,
.cat-map-icon {

    position: absolute;

    font-size:
        2rem;

    opacity: .15;

    pointer-events: none;
}

.cat-camera {

    top: 200px;
    right: 15%;
}

.cat-luggage {

    top: 820px;
    left: 14%;
}

.cat-hat {

    top: 800px;
    right: 12%;
}

.cat-map-icon {

    top: 650px;
    left: 50%;
}

/* =========================================
CLOUDS
========================================= */

.cat-cloud {

    position: absolute;

    width: 140px;
    height: 50px;

    background:
        rgba(255,
            255,
            255,
            .55);

    border-radius:
        50px;

    filter:
        blur(6px);

    opacity: .5;
}

.cat-cloud-1 {

    top: 130px;
    right: 12%;
}

.cat-cloud-2 {

    top: 280px;
    left: 12%;
}

/* =========================================
ANIMATIONS
========================================= */

.cat-island {

    animation:
        catFloatIsland 6s ease-in-out infinite;
}

@keyframes catFloatIsland {

    0%,
    100% {

        transform:
            translateX(-50%) translateY(0);
    }

    50% {

        transform:
            translateX(-50%) translateY(-18px);
    }
}

/* AIRPLANE */

.cat-plane {

    animation:
        catPlane 18s linear infinite;
}

@keyframes catPlane {

    0% {

        transform:
            translateX(0) translateY(0) rotate(10deg);
    }

    50% {

        transform:
            translateX(600px) translateY(40px) rotate(2deg);
    }

    100% {

        transform:
            translateX(1300px) translateY(-20px) rotate(-3deg);
    }
}

/* ROUTE */

.cat-route-path {

    animation:
        catGlow 4s ease-in-out infinite;
}

@keyframes catGlow {

    0%,
    100% {

        filter:
            drop-shadow(0 0 10px rgba(139,
                    92,
                    246,
                    .25));
    }

    50% {

        filter:
            drop-shadow(0 0 30px rgba(139,
                    92,
                    246,
                    .55));
    }
}

/* =========================================
SCROLL REVEAL
========================================= */

/* .scroll-reveal{

    opacity:0;

    transform:
    translateY(80px);

    transition:
    .8s ease;
}

.scroll-reveal.active{

    opacity:1;

    transform:
    translateY(0);
} */

/* =========================================
TABLET
========================================= */

.cat-mobile-layout {
    display: none;
}

@media(max-width:1200px) {

    .cat-desktop-map {

        display: none;
    }

    .cat-mobile-layout {

        display: grid;

        grid-template-columns:
            repeat(2,
                1fr);

        gap: 30px;

        align-items: start;
    }

    .cat-mobile-island {

        grid-column:
            1/-1;

        text-align: center;
    }

    .cat-mobile-island img {

        width: 320px;

        margin: auto;
    }

    .cat-mobile-card {

        background: #fff;

        padding: 30px;

        border-radius: 30px;

        box-shadow:
            0 20px 50px rgba(15,
                23,
                42,
                .08);
    }
}

/* =========================================
MOBILE
========================================= */

@media(max-width:768px) {

    .cat-journey-section {

        padding:
            50px 5%;
    }

    .cat-header {

        margin-bottom: 40px;
    }

    .cat-header h2 {

        font-size: clamp(2rem, 3vw, 3.5rem);
        margin-bottom: 10px;
    }

    .cat-header h3 {

        font-size: 1.6rem;
        margin-bottom: 12px;
    }

    .cat-mobile-layout {

        display: flex;

        flex-direction: column;

        gap: 24px;
    }

    .cat-mobile-island img {

        width: 260px;
    }

    .cat-mobile-card {

        background: #fff;

        border-radius: 28px;

        padding: 28px;

        box-shadow:
            0 15px 40px rgba(15,
                23,
                42,
                .08);
    }

    .cat-mobile-card h4 {

        margin:
            20px 0 12px;

        color:
            #111827;

        font-size:
            1.25rem;
    }

    .cat-mobile-card p {

        color:
            #6b7280;

        line-height: 1.8;
    }

    .cat-cta a {

        width: 100%;
    }

    .cat-plane,
    .cat-palm-left,
    .cat-palm-right,
    .cat-camera,
    .cat-luggage,
    .cat-hat,
    .cat-map-icon,
    .cat-cloud {

        display: none;
    }
}

/* =========================
CUSTOMIZED TOUR CTA FORM
========================= */

.cat-cta-form-section{

    padding:29px 6%;

    background:
    linear-gradient(
        180deg,
        #faf5ff 0%,
        #f3e8ff 50%,
        #ffffff 100%
    );

    position:relative;

    overflow:hidden;
}

/* CONTAINER */

.cat-cta-form-container{

    max-width:1200px;

    margin:auto;

    background:
    rgba(
        255,
        255,
        255,
        .75
    );

    backdrop-filter:
    blur(
        25px
    );

    border:
    1px solid
    rgba(
        255,
        255,
        255,
        .8
    );

    border-radius:40px;

    padding:
    60px;

    box-shadow:
    0 30px 80px
    rgba(
        124,
        58,
        237,
        .10
    );
}

/* =========================
HEADING
========================= */

.cat-cta-heading{

    text-align:center;

    max-width:750px;

    margin:auto;

    margin-bottom:55px;
}

.cat-cta-heading span{

    display:inline-block;

    padding:
    12px
    28px;

    background:
    #f3e8ff;

    color:
    #7c3aed;

    border-radius:
    50px;

    font-weight:700;

    margin-bottom:22px;
}

.cat-cta-heading h2{

    font-size:
    clamp(
        2rem,
        4vw,
        3.2rem
    );

    color:
    #111827;

    line-height:1.2;

    margin-bottom:20px;
}

.cat-cta-heading p{

    color:
    #6b7280;

    line-height:1.9;

    font-size:
    1rem;
}

/* =========================
FORM
========================= */

.cat-trip-form{

    width:100%;
}

/* FORM ROW */

.cat-form-group{

    display:grid;

    grid-template-columns:
    repeat(
        2,
        1fr
    );

    gap:30px;

    margin-bottom:30px;
}

/* SINGLE ROW */

.cat-single-row{

    grid-template-columns:
    1fr;
}

/* INPUT BOX */

.cat-input-box{

    display:flex;

    flex-direction:column;
}

.cat-input-box label{

    font-size:
    .95rem;

    font-weight:700;

    color:
    #111827;

    margin-bottom:12px;
}

/* INPUTS */

.cat-input-box input,
.cat-input-box select,
.cat-input-box textarea{

    width:100%;

    padding:
    18px
    22px;

    border:
    1.5px solid
    #e9d5ff;

    background:
    rgba(
        255,
        255,
        255,
        .95
    );

    border-radius:
    18px;

    outline:none;

    font-size:
    .95rem;

    color:
    #111827;

    transition:
    .35s ease;
}

/* TEXTAREA */

.cat-input-box textarea{

    resize:none;
}

/* PLACEHOLDER */

.cat-input-box input::placeholder,
.cat-input-box textarea::placeholder{

    color:
    #9ca3af;
}

/* FOCUS EFFECT */

.cat-input-box input:focus,
.cat-input-box select:focus,
.cat-input-box textarea:focus{

    border-color:
    #8b5cf6;

    box-shadow:
    0 0 0 5px
    rgba(
        139,
        92,
        246,
        .12
    );
}

/* SELECT */

.cat-input-box select{

    cursor:pointer;
}

/* =========================
BUTTON
========================= */

.cat-submit-btn{

    display:flex;

    align-items:center;
    justify-content:center;

    gap:10px;

    width:100%;

    padding:
    20px;

    border:none;

    outline:none;

    border-radius:
    999px;

    background:
    linear-gradient(
        135deg,
        #7c3aed,
        #9333ea
    );

    color:#fff;

    font-size:
    1rem;

    font-weight:700;

    cursor:pointer;

    box-shadow:
    0 20px 50px
    rgba(
        124,
        58,
        237,
        .25
    );

    transition:
    .35s ease;
}

.cat-submit-btn:hover{

    transform:
    translateY(-5px);

    box-shadow:
    0 30px 70px
    rgba(
        124,
        58,
        237,
        .35
    );
}

/* =========================
DECORATIVE GLOW
========================= */

.cat-cta-form-section::before{

    content:"";

    position:absolute;

    width:350px;
    height:350px;

    border-radius:50%;

    background:
    rgba(
        192,
        132,
        252,
        .18
    );

    top:-120px;
    left:-120px;

    filter:
    blur(
        90px
    );
}

.cat-cta-form-section::after{

    content:"";

    position:absolute;

    width:320px;
    height:320px;

    border-radius:50%;

    background:
    rgba(
        216,
        180,
        254,
        .20
    );

    bottom:-120px;
    right:-120px;

    filter:
    blur(
        90px
    );
}

/* =========================
TABLET
========================= */

@media(max-width:991px){

    .cat-cta-form-container{

        padding:
        45px;
    }

    .cat-form-group{

        gap:20px;
    }
}

/* =========================
MOBILE
========================= */

@media(max-width:768px){

    .cat-cta-form-section{

        padding:
        70px
        5%;
    }

    .cat-cta-form-container{

        padding:
        35px
        25px;

        border-radius:
        30px;
    }

    .cat-form-group{

        grid-template-columns:
        1fr;
    }

    .cat-cta-heading{

        margin-bottom:40px;
    }

    .cat-cta-heading h2{

        font-size:
        2rem;
    }

    .cat-submit-btn{

        padding:
        18px;
    }
}