/* =========================================================
   TRAVEL BLOG - COMPLETE RESPONSIVE CSS
   Header / Footer included nahi hain
========================================================= */

.travel-blog {
    --primary: #6256e8;
    --secondary: #df4d9f;
    --dark: #18253d;
    --text: #5d6b80;
    --muted: #8994a6;
    --border: #e3e7ef;
    --light: #f7f8fc;

    width: 100%;
    overflow: hidden;

    font-family:
        "DM Sans",
        Arial,
        sans-serif;

    color: var(--dark);
    background: #fff;
}

.travel-blog *,
.travel-blog *::before,
.travel-blog *::after {
    box-sizing: border-box;
}

.travel-blog img {
    max-width: 100%;
}

.travel-blog a {
    text-decoration: none;
}

.travel-blog button,
.travel-blog input {
    font-family: inherit;
}


/* =========================================================
   CONTAINER
========================================================= */

.blog-container {
    width: min(1180px, calc(100% - 40px));
    margin-left: auto;
    margin-right: auto;
}


/* =========================================================
   HERO SECTION
========================================================= */

.blog-hero {
    position: relative;

    width: 100%;

    padding: 65px 20px 70px;

    overflow: hidden;

    text-align: center;

    background:
        linear-gradient(
            135deg,
            #f3f6ff 0%,
            #faf5ff 50%,
            #fff6fb 100%
        );
}


/* Hero Decorative Shapes */

.blog-hero-shape {
    position: absolute;

    width: 300px;
    height: 300px;

    border-radius: 50%;

    filter: blur(80px);

    opacity: .22;

    pointer-events: none;
}

.shape-one {
    top: -130px;
    left: -120px;

    background: #7569ff;
}

.shape-two {
    right: -100px;
    bottom: -130px;

    background: #ec67bd;
}


/* Hero Container */

.blog-hero .blog-container {
    position: relative;

    z-index: 2;
}


/* =========================================================
   BLOG BADGE
========================================================= */

.blog-badge {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 8px;

    padding: 8px 18px;

    border: 1px solid #d9d4ff;

    border-radius: 50px;

    background: #eeebff;

    color: var(--primary);

    font-size: 12px;

    font-weight: 800;

    letter-spacing: .6px;

    white-space: nowrap;
}


/* =========================================================
   HERO HEADING
========================================================= */

.blog-hero h1 {
    max-width: 900px;

    margin:
        23px auto
        17px;

    font-family:
        "Plus Jakarta Sans",
        "DM Sans",
        Arial,
        sans-serif;

    font-size:
        clamp(36px, 5vw, 58px);

    line-height: 1.12;

    font-weight: 800;

    letter-spacing: -2px;
}

.blog-hero h1 span {
    background:
        linear-gradient(
            90deg,
            var(--primary),
            var(--secondary)
        );

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;
}

.blog-hero p {
    max-width: 680px;

    margin: 0 auto;

    color: #68768b;

    font-size: 16px;

    line-height: 1.7;
}


/* =========================================================
   BLOG CONTENT
========================================================= */

.blog-content {
    padding-top: 62px;
    padding-bottom: 85px;
}

.blog-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        335px;

    gap: 52px;

    align-items: start;
}


/* =========================================================
   CATEGORY FILTER
========================================================= */

.blog-filters {
    width: 100%;

    display: flex;

    flex-wrap: nowrap;

    align-items: center;

    gap: 10px;

    margin-bottom: 34px;

    padding:
        3px 2px;

    /*
       IMPORTANT

       No visible scrollbar.
       User can swipe horizontally.
    */

    overflow-x: auto;

    overflow-y: hidden;

    white-space: nowrap;

    scroll-behavior: smooth;

    -webkit-overflow-scrolling: touch;

    /*
       Firefox
    */

    scrollbar-width: none;

    /*
       Prevent scrollbar space
    */

    -ms-overflow-style: none;
}


/*
   Chrome / Edge / Safari
   Hide scrollbar completely
*/

.blog-filters::-webkit-scrollbar {
    display: none;

    width: 0;
    height: 0;
}

.blog-filters::-webkit-scrollbar-track {
    display: none;
}

.blog-filters::-webkit-scrollbar-thumb {
    display: none;
}


/* Category Buttons */

.filter-btn {
    flex: 0 0 auto;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height: 44px;

    padding:
        0 20px;

    border:
        1px solid
        var(--border);

    border-radius: 50px;

    background: #fff;

    color: #53637a;

    white-space: nowrap;

    cursor: pointer;

    font-size: 13px;

    font-weight: 700;

    line-height: 1;

    transition:
        .25s ease;
}

.filter-btn:hover {
    border-color: #cfcaff;

    background: #faf9ff;

    color: var(--primary);
}

.filter-btn.active {
    border-color: transparent;

    background:
        linear-gradient(
            100deg,
            var(--primary),
            var(--secondary)
        );

    color: #fff;

    box-shadow:
        0 9px 22px
        rgba(98, 86, 232, .20);
}


/* =========================================================
   BLOG GRID
========================================================= */

.blog-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 28px;

    width: 100%;
}


/* =========================================================
   BLOG CARD
========================================================= */

.travel-blog-card {
    width: 100%;

    min-width: 0;

    overflow: hidden;

    border:
        1px solid
        var(--border);

    border-radius: 18px;

    background: #fff;

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

.travel-blog-card:hover {
    transform: translateY(-5px);

    box-shadow:
        0 18px 45px
        rgba(37, 43, 80, .10);
}


/* =========================================================
   CARD IMAGE
========================================================= */

.blog-card-image {
    position: relative;

    width: 100%;

    height: 205px;

    overflow: hidden;

    background: #f1f3f7;
}

.blog-card-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform .5s ease;
}

.travel-blog-card:hover
.blog-card-image img {
    transform: scale(1.06);
}


/* =========================================================
   CARD CATEGORY
========================================================= */

.blog-card-category {
    position: absolute;

    left: 17px;
    top: 17px;

    padding:
        6px 12px;

    border-radius: 50px;

    background: #f0eeff;

    color: var(--primary);

    font-size: 11px;

    font-weight: 800;

    line-height: 1;

    white-space: nowrap;
}


/* =========================================================
   CARD CONTENT
========================================================= */

.blog-card-content {
    padding:
        20px 20px 23px;
}


/* Meta */

.blog-card-meta {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 8px;

    margin-bottom: 9px;

    color: var(--muted);

    font-size: 11px;

    font-weight: 600;
}

.blog-card-meta i {
    font-style: normal;
}


/* Title */

.blog-card-content h2 {
    margin:
        0 0 9px;

    font-family:
        "Plus Jakarta Sans",
        "DM Sans",
        Arial,
        sans-serif;

    color: var(--dark);

    font-size: 18px;

    line-height: 1.4;

    font-weight: 800;

    letter-spacing: -.3px;
}


/* Description */

.blog-card-content p {
    margin: 0;

    color: var(--text);

    font-size: 13px;

    line-height: 1.7;

    display: -webkit-box;

    -webkit-line-clamp: 2;

    -webkit-box-orient: vertical;

    overflow: hidden;
}


/* =========================================================
   VIEW MORE
========================================================= */

.blog-view-more {
    display: inline-flex;

    align-items: center;

    gap: 7px;

    margin-top: 17px;

    color: var(--primary);

    font-size: 13px;

    font-weight: 800;

    transition: color .2s ease;
}

.blog-view-more span {
    display: inline-block;

    transition:
        transform .2s ease;
}

.blog-view-more:hover {
    color: var(--secondary);
}

.blog-view-more:hover span {
    transform:
        translateX(5px);
}


/* =========================================================
   SIDEBAR
========================================================= */

.blog-sidebar {
    display: flex;

    flex-direction: column;

    gap: 28px;

    min-width: 0;
}


/* Sidebar Box */

.blog-sidebar-box {
    position: relative;

    width: 100%;

    padding: 26px;

    border:
        1px solid
        var(--border);

    border-radius: 16px;

    background: #fff;

    overflow: hidden;
}


/* Gradient Top Line */

.blog-sidebar-box::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 3px;

    background:
        linear-gradient(
            90deg,
            var(--primary),
            var(--secondary)
        );
}


/* Sidebar Heading */

.blog-sidebar-box h3 {
    margin:
        0 0 18px;

    font-family:
        "Plus Jakarta Sans",
        "DM Sans",
        Arial,
        sans-serif;

    color: var(--dark);

    font-size: 15px;

    line-height: 1.3;

    font-weight: 800;
}


/* =========================================================
   SEARCH
========================================================= */

.blog-search {
    display: flex;

    width: 100%;

    gap: 8px;
}

.blog-search input {
    width: 100%;

    min-width: 0;

    height: 45px;

    padding:
        0 13px;

    border:
        1px solid
        var(--border);

    border-radius: 10px;

    outline: none;

    background: #fff;

    color: var(--dark);

    font-size: 13px;
}

.blog-search input::placeholder {
    color: #8994a6;
}

.blog-search input:focus {
    border-color: #aaa2f4;

    box-shadow:
        0 0 0 3px
        rgba(98, 86, 232, .07);
}

.blog-search button {
    flex:
        0 0 45px;

    width: 45px;
    height: 45px;

    padding: 0;

    border: 0;

    border-radius: 10px;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--secondary)
        );

    color: #fff;

    font-size: 21px;

    cursor: pointer;
}


/* =========================================================
   SIDEBAR CATEGORIES
========================================================= */

.sidebar-categories {
    display: flex;

    flex-direction: column;

    gap: 8px;
}

.sidebar-category-btn {
    width: 100%;

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 10px;

    padding:
        11px 12px;

    border:
        1px solid
        var(--border);

    border-radius: 10px;

    background: #fff;

    color: #53637a;

    text-align: left;

    font-size: 13px;

    cursor: pointer;

    transition:
        .2s ease;
}

.sidebar-category-btn:hover {
    border-color: #cfcaff;

    background: #faf9ff;

    color: var(--primary);
}

.sidebar-category-btn small {
    display: grid;

    place-items: center;

    flex: 0 0 auto;

    width: 23px;
    height: 23px;

    border-radius: 50%;

    background: #f4f1ff;

    color: var(--primary);

    font-size: 10px;
}


/* =========================================================
   RECENT POSTS
========================================================= */

.recent-blog-list {
    display: flex;

    flex-direction: column;

    gap: 15px;
}

.recent-blog {
    display: grid;

    grid-template-columns:
        64px minmax(0, 1fr);

    gap: 11px;

    align-items: center;

    min-width: 0;
}

.recent-blog img {
    display: block;

    width: 64px;
    height: 52px;

    object-fit: cover;

    border-radius: 8px;

    background: #f1f3f7;
}

.recent-blog strong {
    display: block;

    overflow: hidden;

    color: var(--dark);

    font-size: 11.5px;

    line-height: 1.35;

    display: -webkit-box;

    -webkit-line-clamp: 2;

    -webkit-box-orient: vertical;

    overflow: hidden;
}

.recent-blog span {
    display: block;

    margin-top: 4px;

    color: #929aaa;

    font-size: 10px;
}


/* =========================================================
   SIDEBAR CTA
========================================================= */

.blog-sidebar-cta {
    padding: 27px;

    border-radius: 17px;

    background:
        linear-gradient(
            135deg,
            #211f49,
            #5d4fd2
        );

    color: #fff;

    box-shadow:
        0 18px 40px
        rgba(53, 45, 130, .18);
}

.cta-icon {
    display: grid;

    place-items: center;

    width: 42px;
    height: 42px;

    margin-bottom: 17px;

    border-radius: 12px;

    background:
        rgba(255,255,255,.15);
}

.blog-sidebar-cta h3 {
    margin:
        0 0 8px;

    font-family:
        "Plus Jakarta Sans",
        "DM Sans",
        Arial,
        sans-serif;

    font-size: 18px;

    line-height: 1.35;
}

.blog-sidebar-cta p {
    margin: 0;

    color: #e4e4ff;

    font-size: 12px;

    line-height: 1.65;
}

.blog-sidebar-cta a {
    display: inline-flex;

    align-items: center;

    gap: 7px;

    margin-top: 17px;

    padding:
        10px 14px;

    border-radius: 9px;

    background: #fff;

    color: #292454;

    font-size: 12px;

    font-weight: 800;
}

.blog-sidebar-cta a span {
    transition:
        transform .2s ease;
}

.blog-sidebar-cta a:hover span {
    transform:
        translateX(4px);
}


/* =========================================================
   NO RESULT
========================================================= */

.blog-no-result {
    display: none;

    width: 100%;

    margin-top: 20px;

    padding:
        55px 20px;

    border:
        1px dashed
        var(--border);

    border-radius: 16px;

    text-align: center;
}

.no-result-icon {
    margin-bottom: 8px;

    font-size: 32px;
}

.blog-no-result h3 {
    margin:
        0 0 5px;

    color: var(--dark);

    font-size: 18px;
}

.blog-no-result p {
    margin: 0;

    color: var(--muted);

    font-size: 13px;
}


/* =========================================================
   LARGE TABLET
========================================================= */

@media (max-width: 1100px) {

    .blog-layout {
        grid-template-columns:
            minmax(0, 1fr)
            300px;

        gap: 32px;
    }

    .blog-grid {
        gap: 22px;
    }

    .blog-card-content h2 {
        font-size: 17px;
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .blog-layout {
        display: block;
    }

    .blog-left {
        width: 100%;
    }

    .blog-sidebar {
        display: grid;

        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 20px;

        margin-top: 40px;
    }

    .blog-sidebar-cta {
        grid-column:
            1 / -1;
    }

}


/* =========================================================
   TABLET / SMALL
========================================================= */

@media (max-width: 700px) {

    .blog-container {
        width:
            calc(100% - 28px);
    }


    /* Hero */

    .blog-hero {
        padding:
            48px 15px
            52px;
    }

    .blog-badge {
        padding:
            7px 14px;

        font-size: 10px;
    }

    .blog-hero h1 {
        margin-top: 20px;

        font-size: 34px;

        line-height: 1.16;

        letter-spacing: -1px;
    }

    .blog-hero p {
        max-width: 600px;

        font-size: 14px;

        line-height: 1.65;
    }


    /* Content */

    .blog-content {
        padding-top: 40px;

        padding-bottom: 55px;
    }


    /* =========================================
       MOBILE CATEGORY SCROLL

       NO SCROLLBAR
       NO SECOND LINE
       ONLY SWIPE
    ========================================= */

    .blog-filters {
        width: 100%;

        display: flex;

        flex-wrap: nowrap;

        align-items: center;

        gap: 8px;

        margin-bottom: 25px;

        padding:
            2px 1px;

        overflow-x: auto;

        overflow-y: hidden;

        white-space: nowrap;

        /*
           Hide scrollbar Firefox
        */
        scrollbar-width: none;

        /*
           Hide scrollbar IE / Edge old
        */
        -ms-overflow-style: none;

        /*
           Smooth mobile swipe
        */
        -webkit-overflow-scrolling: touch;

        /*
           Prevent browser
           overscroll issues
        */
        overscroll-behavior-x: contain;
    }


    /*
       Hide scrollbar Chrome,
       Edge and Safari
    */

    .blog-filters::-webkit-scrollbar {
        display: none;

        width: 0;
        height: 0;
    }

    .blog-filters::-webkit-scrollbar-track {
        display: none;
    }

    .blog-filters::-webkit-scrollbar-thumb {
        display: none;
    }


    /* Buttons */

    .filter-btn {
        flex:
            0 0 auto;

        min-height: 42px;

        padding:
            0 16px;

        border-radius: 50px;

        font-size: 12px;

        white-space: nowrap;
    }


    /* Cards */

    .blog-grid {
        grid-template-columns: 1fr;

        gap: 20px;
    }

    .travel-blog-card {
        border-radius: 16px;
    }

    .blog-card-image {
        height: 215px;
    }

    .blog-card-content {
        padding:
            18px 18px 21px;
    }

    .blog-card-content h2 {
        font-size: 17px;

        line-height: 1.4;
    }

    .blog-card-content p {
        font-size: 13px;

        line-height: 1.65;
    }


    /* Sidebar */

    .blog-sidebar {
        display: flex;

        flex-direction: column;

        gap: 20px;

        margin-top: 35px;
    }

    .blog-sidebar-box {
        padding: 22px;
    }

    .blog-sidebar-cta {
        padding: 24px;
    }

}


/* =========================================================
   MOBILE 576
========================================================= */

@media (max-width: 576px) {

    .blog-container {
        width:
            calc(100% - 24px);
    }

    .blog-hero {
        padding:
            42px 12px
            48px;
    }

    .blog-hero h1 {
        font-size: 32px;

        letter-spacing:
            -.8px;
    }

    .blog-hero p {
        font-size: 13px;
    }


    /*
       Category row
    */

    .blog-filters {
        gap: 7px;

        margin-bottom: 22px;

        padding:
            2px 0;
    }

    .filter-btn {
        min-height: 40px;

        padding:
            0 15px;

        font-size: 12px;
    }


    /* Card */

    .blog-card-image {
        height: 205px;
    }

    .blog-card-content {
        padding:
            17px;
    }

    .blog-card-content h2 {
        font-size: 16px;
    }

    .blog-card-content p {
        font-size: 12.5px;
    }


    /* Sidebar */

    .blog-sidebar-box {
        padding: 20px;
    }

    .blog-sidebar-cta {
        padding: 23px;
    }

}


/* =========================================================
   SMALL MOBILE 420
========================================================= */

@media (max-width: 420px) {

    .blog-container {
        width:
            calc(100% - 20px);
    }


    /* Hero */

    .blog-hero {
        padding:
            38px 10px
            44px;
    }

    .blog-badge {
        padding:
            7px 12px;

        font-size: 9px;
    }

    .blog-hero h1 {
        margin-top: 17px;

        font-size: 29px;

        line-height: 1.18;
    }

    .blog-hero p {
        font-size: 12.5px;
    }


    /* Category */

    .blog-filters {
        gap: 7px;

        margin-bottom: 20px;
    }

    .filter-btn {
        min-height: 39px;

        padding:
            0 13px;

        font-size: 11.5px;
    }


    /* Image */

    .blog-card-image {
        height: 190px;
    }


    /* Card */

    .blog-card-content {
        padding:
            16px;
    }

    .blog-card-meta {
        font-size: 10px;
    }

    .blog-card-content h2 {
        font-size: 16px;
    }

    .blog-card-content p {
        font-size: 12px;
    }

    .blog-view-more {
        font-size: 12px;
    }


    /* Sidebar */

    .blog-sidebar-box {
        padding: 18px;
    }

    .blog-sidebar-box h3 {
        font-size: 14px;
    }

    .blog-sidebar-cta {
        padding: 21px;
    }

}


/* =========================================================
   VERY SMALL MOBILE 360
========================================================= */

@media (max-width: 360px) {

    .blog-hero h1 {
        font-size: 27px;
    }

    .blog-hero p {
        font-size: 12px;
    }

    .filter-btn {
        min-height: 38px;

        padding:
            0 12px;

        font-size: 11px;
    }

    .blog-card-image {
        height: 180px;
    }

}


/* =========================================================
   TOUCH DEVICES
========================================================= */

@media (hover: none) {

    .travel-blog-card:hover {
        transform: none;

        box-shadow: none;
    }

    .travel-blog-card:hover
    .blog-card-image img {
        transform: none;
    }

}


/* =========================================================
   REDUCE MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .travel-blog *,
    .travel-blog *::before,
    .travel-blog *::after {
        scroll-behavior: auto !important;

        transition: none !important;
    }

}