.jrt-booking-card{margin:22px 0 28px;border:1px solid #EAECF0;border-radius:26px;background:#fff;box-shadow:0 18px 60px rgba(16,24,40,.12);overflow:hidden}
.jrt-booking-price{display:flex;align-items:baseline;gap:8px;padding:18px 20px;background:linear-gradient(135deg,#F4F8FF,#E9F9FF);border-bottom:1px solid #EAECF0}
.jrt-booking-price span,.jrt-booking-price small{color:#667085;font-weight:800}
.jrt-booking-price strong{font-size:30px;letter-spacing:-.04em;color:#101828}
.jrt-booking-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:18px}
.jrt-booking-grid label{font-size:13px;font-weight:900;color:#344054}
.jrt-booking-grid input,.jrt-booking-grid select{display:block;width:100%;margin-top:7px;border:1px solid #D0D5DD!important;border-radius:14px!important;padding:12px!important;background:#fff!important;min-height:46px}
.jrt-extras{padding:0 18px 14px;display:grid;gap:10px}
.jrt-extras>strong{display:block;color:#101828}
.jrt-extras label{display:flex;align-items:center;gap:10px;justify-content:space-between;border:1px solid #EAECF0;border-radius:14px;padding:12px;background:#F9FAFB;font-weight:800}
.jrt-extras label input{margin-right:8px}
.jrt-extras span{color:#0062EB}
.jrt-live-total{margin:0 18px 18px;border-radius:18px;background:#101828;color:#fff;padding:15px 16px;display:flex;align-items:center;justify-content:space-between}
.jrt-live-total span{color:rgba(255,255,255,.72);font-weight:800}
.jrt-live-total strong{font-size:26px}
.jrt-note{padding:0 18px 18px;color:#667085;font-size:13px;margin-top:-8px}
.jrt-tour-card a{text-decoration:none}
.jrt-category{text-decoration:none;color:#101828}
.jrt-category:hover,.jrt-tour-foot a:hover{opacity:.92}
.single-product .cart .quantity{display:none!important}
.jrt-tour-img img{display:block}

.jrt-cat-icon{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:18px;background:rgba(0,98,235,.08);color:#0062eb;font-size:24px;margin-bottom:16px;transition:all .25s ease}
.jrt-category:hover .jrt-cat-icon{background:#0062eb;color:#fff;transform:translateY(-3px)}
.jrt-cat-icon i{line-height:1}

.jrt-hero-carousel{position:relative;overflow:hidden;background:#06172f!important}
.jrt-hero-slides,.jrt-hero-slide,.jrt-hero-overlay{position:absolute;inset:0}
.jrt-hero-slide{background-size:cover;background-position:center;opacity:0;transform:scale(1.04);transition:opacity 1.1s ease,transform 6s ease;animation:jrtHeroFade 25s infinite}
.jrt-hero-slide:nth-child(1){animation-delay:0s}
.jrt-hero-slide:nth-child(2){animation-delay:5s}
.jrt-hero-slide:nth-child(3){animation-delay:10s}
.jrt-hero-slide:nth-child(4){animation-delay:15s}
.jrt-hero-slide:nth-child(5){animation-delay:20s}
.jrt-hero-overlay{background:linear-gradient(90deg,rgba(3,22,52,.86) 0%,rgba(3,22,52,.55) 46%,rgba(3,22,52,.22) 100%),linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.25));z-index:2}
.jrt-hero-inner{position:relative;z-index:3}

@keyframes jrtHeroFade{
    0%{opacity:0;transform:scale(1.04)}
    6%{opacity:1}
    20%{opacity:1}
    26%{opacity:0;transform:scale(1.12)}
    100%{opacity:0}
}

.jrt-single-sections{max-width:1180px;margin:34px auto;padding:0 20px}
.jrt-single-tabs{position:sticky;top:80px;z-index:20;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border:1px solid #EAECF0;border-radius:999px;padding:8px;display:flex;gap:8px;margin-bottom:22px;box-shadow:0 12px 35px rgba(16,24,40,.08)}
.jrt-single-tabs a{padding:10px 14px;border-radius:999px;text-decoration:none;color:#344054;font-weight:900}
.jrt-single-tabs a:hover{background:#F2F4F7;color:#0062EB}
.jrt-single-block h2{font-size:30px;letter-spacing:-.04em;margin-top:0}
.tour-included,.tour-excluded{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.tour-included li,.tour-excluded li{padding:12px 14px;border-radius:14px;background:#F9FAFB;border:1px solid #EAECF0}
.tour-included li:before{content:'✓ ';color:#12B76A;font-weight:900}
.tour-excluded li:before{content:'× ';color:#F04438;font-weight:900}
.jrt-plan{display:grid;gap:12px}
.jrt-plan-item{display:flex;gap:14px;align-items:center;border:1px solid #EAECF0;background:#F9FAFB;border-radius:16px;padding:14px}
.jrt-plan-item span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:#0062EB;color:#fff;font-weight:950;flex:0 0 auto}

@media(max-width:768px){
    .jrt-hero-carousel{min-height:620px;border-radius:0 0 34px 34px}
    .jrt-hero-overlay{background:linear-gradient(180deg,rgba(3,22,52,.82) 0%,rgba(3,22,52,.72) 55%,rgba(3,22,52,.55) 100%)}
    .jrt-hero-inner{padding-top:90px;padding-bottom:160px}
    .jrt-hero-inner h1{font-size:clamp(42px,12vw,64px);line-height:.96}
    .jrt-hero-inner p{font-size:18px;line-height:1.55}
}

@media(max-width:680px){
    .jrt-booking-grid{grid-template-columns:1fr}
    .jrt-extras label{display:block}
    .jrt-live-total strong{font-size:22px}
    .jrt-single-tabs{overflow:auto;border-radius:18px}
    .tour-included,.tour-excluded{grid-template-columns:1fr}
}

.jrt-hero.jrt-hero-carousel {
    position: relative !important;
    overflow: hidden !important;
    background: #06172f !important;
}

.jrt-hero.jrt-hero-carousel::before,
.jrt-hero.jrt-hero-carousel::after {
    display: none !important;
    content: none !important;
}

.jrt-hero-carousel .jrt-hero-slides,
.jrt-hero-carousel .jrt-hero-slide,
.jrt-hero-carousel .jrt-hero-overlay {
    position: absolute !important;
    inset: 0 !important;
}

.jrt-hero-carousel .jrt-hero-slides {
    z-index: 1 !important;
}

.jrt-hero-carousel .jrt-hero-slide {
    background-size: cover !important;
    background-position: center !important;
    opacity: 0;
    transform: scale(1.04);
    animation: jrtHeroFade 25s infinite;
}

.jrt-hero-carousel .jrt-hero-slide:nth-child(1) { animation-delay: 0s; }
.jrt-hero-carousel .jrt-hero-slide:nth-child(2) { animation-delay: 5s; }
.jrt-hero-carousel .jrt-hero-slide:nth-child(3) { animation-delay: 10s; }
.jrt-hero-carousel .jrt-hero-slide:nth-child(4) { animation-delay: 15s; }
.jrt-hero-carousel .jrt-hero-slide:nth-child(5) { animation-delay: 20s; }

.jrt-hero-carousel .jrt-hero-overlay {
    z-index: 2 !important;
    background:
        linear-gradient(90deg, rgba(3,22,52,.82) 0%, rgba(3,22,52,.55) 46%, rgba(3,22,52,.18) 100%),
        linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.28)) !important;
}

.jrt-hero-carousel .jrt-hero-inner {
    position: relative !important;
    z-index: 3 !important;
}

@keyframes jrtHeroFade {
    0% { opacity: 0; transform: scale(1.04); }
    6% { opacity: 1; }
    20% { opacity: 1; }
    26% { opacity: 0; transform: scale(1.12); }
    100% { opacity: 0; }
}

.jrt-hero.jrt-hero-carousel {
    background: none !important;
    background-image: none !important;
}

.jrt-hero-carousel .jrt-hero-slide.is-active {
    opacity: 1 !important;
    z-index: 1 !important;
}

.jrt-hero-carousel .jrt-hero-slide {
    z-index: 1 !important;
}

.jrt-hero-carousel .jrt-hero-overlay {
    z-index: 2 !important;
}

.jrt-hero-carousel .jrt-hero-inner {
    z-index: 3 !important;
}

.jrt-tour-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    gap:28px;
}

.jrt-tour-card{
    background:#fff;
    border-radius:28px;
    overflow:hidden;
    border:1px solid #EAECF0;
    box-shadow:0 14px 45px rgba(16,24,40,.08);
    transition:.25s ease;
}

.jrt-tour-card:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 55px rgba(16,24,40,.12);
}

.jrt-tour-image-wrap{
    position:relative;
    display:block;
    overflow:hidden;
}

.jrt-tour-image{
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    display:block;
    transition:transform .5s ease;
}

.jrt-tour-card:hover .jrt-tour-image{
    transform:scale(1.05);
}

.jrt-tour-badge{
    position:absolute;
    top:18px;
    left:18px;
    background:#DDFBE6;
    color:#14532D;
    padding:10px 16px;
    border-radius:999px;
    font-size:14px;
    font-weight:800;
    z-index:2;
}

.jrt-tour-fav{
    position:absolute;
    top:18px;
    right:18px;
    width:42px;
    height:42px;
    border-radius:999px;
    border:none;
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(10px);
    font-size:18px;
    color:#fff;
    cursor:pointer;
    z-index:2;
}

.jrt-tour-fav i{
    color:#fff;
    -webkit-text-stroke:1.4px #fff;
    text-shadow:0 2px 10px rgba(0,0,0,.45);
}

.jrt-tour-content{
    padding:24px;
}

.jrt-tour-title{
    font-size:34px;
    line-height:1.15;
    margin:0 0 18px;
    letter-spacing:-.03em;

    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.jrt-tour-title a{
    color:#101828;
    text-decoration:none;
}

.jrt-tour-features{
    display:grid;
    gap:12px;
    margin-bottom:22px;
}

.jrt-tour-features span{
    display:flex;
    align-items:center;
    gap:10px;
    color:#344054;
    font-weight:700;
}

.jrt-tour-features i{
    color:#101828;
}

.jrt-tour-bottom{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
}

.jrt-tour-rating{
    display:flex;
    align-items:center;
    gap:6px;
    color:#101828;
    font-weight:900;
}

.jrt-tour-rating i{
    color:#10B981;
}

.jrt-tour-price{
    text-align:right;
}

.jrt-tour-price small{
    display:block;
    color:#667085;
    margin-bottom:2px;
}

.jrt-tour-price strong{
    font-size:34px;
    line-height:1;
    color:#101828;
    letter-spacing:-.04em;
}

@media(max-width:768px){

    .jrt-tour-grid{
        grid-template-columns:1fr;
    }

    .jrt-tour-title{
        font-size:30px;
    }

    .jrt-tour-price strong{
        font-size:30px;
    }

}

.jrt-tour-card {
    position: relative;
    background: #fff;
    border-radius: 26px;
    overflow: hidden;
    border: 1px solid #dfe7ef;
    box-shadow: 0 16px 45px rgba(16,24,40,.08);
}

.jrt-tour-image-wrap {
    position: relative !important;
    display: block !important;
    width: 100%;
    overflow: hidden;
}

.jrt-tour-image {
    display: block !important;
    width: 100% !important;
    height: 250px !important;
    object-fit: cover !important;
}

.jrt-tour-badge {
    position: absolute !important;
    top: 16px !important;
    left: 16px !important;
    z-index: 5 !important;
    display: inline-flex !important;
    align-items: center;
    background: #dff8eb !important;
    color: #064e3b !important;
    padding: 9px 15px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

.jrt-tour-fav {
    position: absolute !important;
    top: 14px !important;
    right: 14px !important;
    z-index: 5 !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 999px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.18) !important;
    backdrop-filter: blur(8px);
    color: #fff !important;
    font-size: 22px !important;
}

.jrt-tour-fav i {
    color: #fff !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.45);
}

.jrt-tour-content {
    padding: 22px 22px 24px !important;
}

.jrt-tour-title {
    margin: 0 0 14px !important;
    font-size: 24px !important;
    line-height: 1.18 !important;
    letter-spacing: -.03em !important;
}

.jrt-tour-title a {
    color: #101828 !important;
    text-decoration: none !important;
}

.jrt-tour-title a:hover {
    color: #101828 !important;
}

.jrt-tour-features {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px 14px !important;
    margin-bottom: 18px !important;
}

.jrt-tour-features span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    color: #344054 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    white-space: nowrap;
}

.jrt-tour-features i {
    color: #101828 !important;
    font-size: 15px !important;
}

.jrt-tour-bottom {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 14px !important;
    padding-top: 4px !important;
}

.jrt-tour-rating {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    color: #101828 !important;
    font-size: 18px !important;
    font-weight: 800 !important;
}

.jrt-tour-rating i {
    color: #10b981 !important;
}

.jrt-tour-price {
    text-align: right !important;
    color: #101828 !important;
}

.jrt-tour-price small {
    display: inline !important;
    color: #667085 !important;
    font-size: 14px !important;
    margin-right: 5px !important;
}

.jrt-tour-price strong {
    display: inline !important;
    color: #101828 !important;
    font-size: 22px !important;
    font-weight: 900 !important;
    letter-spacing: -.03em !important;
}

@media (max-width: 680px) {
    .jrt-tour-image {
        height: 235px !important;
    }

    .jrt-tour-content {
        padding: 20px !important;
    }

    .jrt-tour-title {
        font-size: 22px !important;
    }

    .jrt-tour-bottom {
        align-items: center !important;
    }

    .jrt-tour-price strong {
        font-size: 21px !important;
    }
}

/* ================================
   SINGLE PRODUCT - FINAL MOBILE FIX
================================ */

html,
body {
    overflow-x: hidden !important;
    max-width: 100% !important;
}

.single-product *,
.single-product *::before,
.single-product *::after {
    box-sizing: border-box !important;
}

@media (max-width: 768px) {

    .single-product div.product,
    .single-product .woocommerce,
    .single-product #primary,
    .single-product .site-content,
    .single-product main {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
        overflow-x: hidden !important;
    }

    .single-product div.product .summary,
    .single-product div.product .woocommerce-product-gallery {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 0 24px !important;
        padding: 0 !important;
        clear: both !important;
    }

    .single-product .product_title {
        font-size: 34px !important;
        line-height: 1.08 !important;
    }

    .single-product .jrt-booking-card {
        width: 100% !important;
        max-width: 100% !important;
        margin: 22px 0 28px !important;
        border-radius: 26px !important;
        overflow: hidden !important;
    }

    .single-product .jrt-booking-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
        width: 100% !important;
        padding: 18px !important;
    }

    .single-product .jrt-booking-grid label,
    .single-product .jrt-booking-grid input,
    .single-product .jrt-booking-grid select {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .single-product .jrt-extras {
        padding: 0 18px 18px !important;
    }

    .single-product .jrt-extras label {
        display: grid !important;
        grid-template-columns: 24px 1fr !important;
        gap: 10px 14px !important;
        align-items: start !important;
        width: 100% !important;
        padding: 16px !important;
        border-radius: 18px !important;
    }

    .single-product .jrt-extras label input {
        width: 22px !important;
        height: 22px !important;
        margin: 0 !important;
    }

    .single-product .jrt-extras label span {
        grid-column: 2 !important;
        display: block !important;
        white-space: normal !important;
        word-break: normal !important;
        line-height: 1.35 !important;
        font-size: 18px !important;
    }

    .single-product .jrt-live-total {
        margin: 0 18px 18px !important;
        padding: 18px !important;
        border-radius: 22px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 14px !important;
        width: auto !important;
    }

    .single-product .jrt-live-total span {
        font-size: 18px !important;
        line-height: 1.25 !important;
    }

    .single-product .jrt-live-total strong {
        font-size: 26px !important;
        white-space: nowrap !important;
    }

    .single-product .jrt-note {
        padding: 0 18px 24px !important;
        font-size: 15px !important;
        line-height: 1.6 !important;
        overflow-wrap: break-word !important;
    }

    .single-product .jrt-single-sections {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        padding: 0 14px !important;
        overflow-x: hidden !important;
    }

    .single-product .jrt-single-tabs {
        width: 100% !important;
        overflow-x: auto !important;
        border-radius: 18px !important;
        white-space: nowrap !important;
    }

    .single-product .jrt-single-block {
        width: 100% !important;
        max-width: 100% !important;
        overflow-wrap: break-word !important;
    }

    .gt_float_switcher {
        top: 72px !important;
        right: 10px !important;
        transform: scale(.78) !important;
        transform-origin: top right !important;
    }
}

/* ================================
   JRT CUSTOM TOUR GALLERY
================================ */

.single-product .woocommerce-product-gallery {
    display: none !important;
}

.jrt-tour-gallery {
    width: 48%;
    float: left;
    margin: 0 4% 40px 0;
}

.jrt-tour-gallery-main {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 0;
    background: #f2f4f7;
}

.jrt-tour-main-img {
    display: block;
    width: 100%;
    height: 520px;
    object-fit: cover;
    transition: opacity .18s ease;
}

.jrt-tour-gallery-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    background: #ff3b5f;
    color: #fff;
    padding: 7px 11px;
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    z-index: 2;
}

.jrt-tour-gallery-thumbs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-top: 14px;
}

.jrt-tour-thumb {
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    overflow: hidden;
    border-radius: 0;
    opacity: .82;
    transition: opacity .2s ease, transform .2s ease;
}

.jrt-tour-thumb.is-active,
.jrt-tour-thumb:hover {
    opacity: 1;
    transform: translateY(-2px);
}

.jrt-tour-thumb img {
    display: block;
    width: 100%;
    height: 92px;
    object-fit: cover;
}

/* Desktop summary alignment */
.single-product div.product .summary {
    width: 48% !important;
    float: right !important;
    clear: none !important;
    margin: 0 0 40px !important;
}

/* Mobile */
@media (max-width: 1024px) {
    .jrt-tour-gallery,
    .single-product div.product .summary {
        width: 100% !important;
        float: none !important;
        margin: 0 0 28px !important;
    }

    .jrt-tour-main-img {
        height: 460px;
    }
}

@media (max-width: 680px) {
    .jrt-tour-gallery {
        margin-bottom: 24px !important;
    }

    .jrt-tour-main-img {
        height: 330px;
        border-radius: 0;
    }

    .jrt-tour-gallery-thumbs {
        display: flex;
        overflow-x: auto;
        gap: 10px;
        padding-bottom: 8px;
        scroll-snap-type: x mandatory;
    }

    .jrt-tour-thumb {
        min-width: 92px;
        scroll-snap-align: start;
    }

    .jrt-tour-thumb img {
        height: 76px;
    }
}

.single-product .onsale {
    display: none !important;
}