/* Courtesywide v7.34 — polished private safari detail pages */

.private-safari-detail-hero .premium-detail-image{
    min-height:520px;
    background:#f2f5f2;
}
.private-safari-detail-hero .premium-detail-image img,
.private-safari-detail-hero .premium-detail-image .media-fallback{
    width:100%;
    height:100%;
    min-height:520px;
    object-fit:cover;
}
.private-safari-detail-hero .premium-detail-image .media-fallback{
    display:grid;
    place-items:center;
    align-content:center;
    gap:12px;
    background:#eef3eb;
    color:#273a2a;
}
.private-safari-detail-hero .premium-detail-image .media-fallback svg{
    width:62px;height:62px;color:var(--primary);
}
.private-safari-detail-hero .premium-detail-image .media-fallback span{
    max-width:520px;padding:0 20px;text-align:center;font-weight:850;font-size:20px;
}

.private-safari-detail-hero .premium-detail-panel{
    max-width:790px;
}
.private-safari-detail-hero .premium-detail-panel h1{
    max-width:760px;
}
.private-safari-detail-hero .premium-detail-panel>p{
    max-width:700px;
    line-height:1.65;
}

.private-safari-detail-content{
    background:#f7f9f6;
}
.private-safari-detail-content .detail-layout{
    grid-template-columns:minmax(0,1fr) 355px;
    gap:24px;
    align-items:start;
}
.private-safari-detail-content .detail-main{
    min-width:0;
}
.private-safari-detail-content .booking-sidebar{
    position:sticky;
    top:96px;
}

.private-tour-overview-copy{
    white-space:normal;
    line-height:1.82!important;
    color:#455664!important;
}

/* Replace the obsolete coordinate route map with a compact route sequence.
   Destination coordinates intentionally live on parks/reserves, not broad destinations. */
.private-route-flow{
    display:flex;
    align-items:center;
    gap:7px;
    overflow-x:auto;
    margin-top:16px;
    padding:13px;
    border:1px solid #e1e7e0;
    border-radius:12px;
    background:#fbfcfa;
    scrollbar-width:thin;
}
.private-route-flow>a,
.private-route-origin{
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    gap:7px;
    min-height:38px;
    padding:7px 10px;
    border-radius:9px;
    background:#fff;
    border:1px solid #dce5db;
    color:#304537;
    text-decoration:none;
    font-size:10.5px;
    font-weight:800;
}
.private-route-flow>a:hover{
    border-color:rgba(57,201,35,.55);
    background:#f5fbf3;
}
.private-route-flow>a b{
    display:grid;
    place-items:center;
    width:21px;height:21px;
    border-radius:50%;
    background:var(--primary);
    color:#fff;
    font-size:9px;
}
.private-route-origin svg{
    width:14px;height:14px;color:#8b4a21;
}
.private-route-arrow{
    width:14px;height:14px;
    flex:0 0 auto;
    color:#9aaa9d;
}

/* Itinerary */
.premium-itinerary-list{
    display:grid;
    gap:9px;
}
.premium-itinerary-list .itinerary-item{
    overflow:hidden;
    border:1px solid #dde5dc;
    border-radius:12px;
    background:#fff;
    box-shadow:none;
}
.premium-itinerary-list .itinerary-toggle{
    display:grid;
    grid-template-columns:38px minmax(0,1fr) 18px;
    gap:11px;
    align-items:center;
    width:100%;
    padding:14px 15px;
}
.itinerary-title-copy{
    display:block;
    min-width:0;
    text-align:left;
}
.itinerary-title-copy small,
.itinerary-title-copy strong,
.itinerary-title-copy em{
    display:block;
}
.itinerary-title-copy small{
    margin-bottom:2px;
    color:#8b4a21;
    font-size:9px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.itinerary-title-copy strong{
    color:#1e3425;
    font-size:13px;
    line-height:1.4;
}
.itinerary-title-copy em{
    display:inline-flex;
    align-items:center;
    gap:4px;
    margin-top:4px;
    color:#6b7d70;
    font-size:9px;
    font-style:normal;
    font-weight:700;
}
.itinerary-title-copy em svg{
    width:11px;height:11px;
}
.premium-itinerary-list .itinerary-content{
    padding:0 16px 17px 64px;
}
.premium-itinerary-list .itinerary-content>p{
    margin:12px 0 0;
    color:#4f6255;
    line-height:1.72;
}
.itinerary-smart-meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin:2px 0 7px;
}
.itinerary-smart-meta span{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:5px 7px;
    border:1px solid #e0e7df;
    border-radius:999px;
    background:#f8faf7;
    color:#647568;
    font-size:9px;
    font-weight:750;
}
.itinerary-smart-meta svg{
    width:12px;height:12px;color:var(--primary);
}

/* Optional activities inside each day */
.itinerary-optional-activities{
    margin-top:15px;
    padding:12px;
    border:1px solid #e4e9e2;
    border-radius:11px;
    background:#fafcf9;
}
.itinerary-optional-activities>strong{
    display:flex;
    align-items:center;
    gap:6px;
    margin-bottom:9px;
    color:#304538;
    font-size:10px;
}
.itinerary-optional-activities>strong svg{
    width:14px;height:14px;color:#8b4a21;
}
.itinerary-optional-activities>div{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.private-itinerary-activity{
    display:grid!important;
    grid-template-columns:58px minmax(0,1fr)!important;
    gap:9px!important;
    min-width:0;
    padding:8px!important;
    border:1px solid #e0e7df!important;
    border-radius:9px!important;
    background:#fff!important;
}
.private-itinerary-activity-media{
    display:grid;
    place-items:center;
    width:58px;height:58px;
    overflow:hidden;
    border-radius:8px;
    background:#edf4eb;
    color:var(--primary);
}
.private-itinerary-activity-media img{
    width:100%;height:100%;object-fit:cover;
}
.private-itinerary-activity-media svg{
    width:20px;height:20px;
}
.private-itinerary-activity>span{
    min-width:0;
}
.private-itinerary-activity b{
    display:block;
    color:#273d2e;
    font-size:10px;
    line-height:1.35;
}
.private-itinerary-activity em{
    display:flex;
    align-items:center;
    gap:3px;
    margin-top:3px;
    color:#778679;
    font-size:8.5px;
    font-style:normal;
}
.private-itinerary-activity em svg{
    width:10px;height:10px;
}
.private-itinerary-activity p{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    margin:4px 0!important;
    color:#6b786e!important;
    font-size:8.8px!important;
    line-height:1.4!important;
}
.private-itinerary-activity small{
    display:inline-flex;
    margin-top:3px;
    padding:4px 6px;
    border-radius:999px;
    background:#f5efe9;
    color:#8b4a21;
    font-size:8px;
    font-weight:850;
}

/* Inclusions/exclusions */
.premium-include-grid{
    gap:16px!important;
}
.premium-include-grid>div{
    padding:4px 2px;
}
.premium-include-grid .icon-list{
    display:grid;
    gap:7px;
}
.premium-include-grid .icon-list li{
    align-items:flex-start;
    padding:8px 0;
    border-bottom:1px dashed #e3e8e2;
    line-height:1.48;
}
.premium-include-grid .icon-list li:last-child{
    border-bottom:0;
}

/* Sidebar / quote card */
.private-safari-detail-content .booking-request-card{
    border-radius:14px;
    box-shadow:0 14px 34px rgba(25,45,30,.09);
}
.private-safari-detail-content .sidebar-help-card,
.private-safari-detail-content .tour-sidebar-wishlist{
    border-radius:12px;
}
.private-tour-empty-copy{
    color:#69796c;
    line-height:1.6;
}

/* Related tours without uploaded tour media still look deliberate */
.section-soft .product-card .media-fallback{
    min-height:210px;
    background:#eef3eb;
    color:#35503b;
}

@media(max-width:1050px){
    .private-safari-detail-content .detail-layout{
        grid-template-columns:minmax(0,1fr) 320px;
    }
    .itinerary-optional-activities>div{
        grid-template-columns:1fr;
    }
}
@media(max-width:900px){
    .private-safari-detail-content .detail-layout{
        grid-template-columns:1fr;
    }
    .private-safari-detail-content .booking-sidebar{
        position:static;
    }
    .private-safari-detail-hero .premium-detail-image,
    .private-safari-detail-hero .premium-detail-image img,
    .private-safari-detail-hero .premium-detail-image .media-fallback{
        min-height:430px;
    }
}
@media(max-width:620px){
    .private-safari-detail-hero .premium-detail-image,
    .private-safari-detail-hero .premium-detail-image img,
    .private-safari-detail-hero .premium-detail-image .media-fallback{
        min-height:350px;
    }
    .premium-itinerary-list .itinerary-toggle{
        grid-template-columns:34px minmax(0,1fr) 16px;
        padding:12px;
        gap:8px;
    }
    .premium-itinerary-list .itinerary-content{
        padding:0 12px 14px;
    }
    .itinerary-smart-meta{
        margin-top:5px;
    }
    .private-route-flow{
        margin-left:-2px;
        margin-right:-2px;
    }
}


/* v7.36 — simpler Experience Categories */
.tour-experience-simple{
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #e4e9e2;
}
.tour-destination-simple{
    margin-top:14px;
    padding-top:0;
    border-top:0;
}
.tour-destination-simple .tour-experience-pills a{
    background:#f9fbf8;
    border-color:#d8e4d7;
}
.tour-experience-label{
    display:block;
    margin-bottom:8px;
    color:#52645a;
    font-size:10px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.tour-experience-pills{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}
.tour-experience-pills a{
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-height:32px;
    padding:6px 9px;
    border:1px solid #dce5db;
    border-radius:8px;
    background:#fff;
    color:#344b3a;
    font-size:10px;
    font-weight:750;
    line-height:1.2;
    text-decoration:none;
    transition:border-color .14s ease,background .14s ease,color .14s ease;
}
.tour-experience-pills a svg{
    width:13px;
    height:13px;
    color:var(--primary);
}
.tour-experience-pills a:hover,
.tour-experience-pills a:focus-visible{
    border-color:rgba(57,201,35,.55);
    background:#f5faf3;
    color:#203a27;
}

/* v7.36 — itinerary is closed by default; only one day can be open */
.premium-itinerary-list .itinerary-content[hidden]{
    display:none!important;
}
.premium-itinerary-list .itinerary-item.open{
    border-color:rgba(57,201,35,.34);
    box-shadow:0 8px 22px rgba(37,67,42,.055);
}
.premium-itinerary-list .itinerary-item.open .itinerary-toggle{
    background:#f8fbf7;
}
.premium-itinerary-list .itinerary-toggle>svg:last-child{
    transition:transform .16s ease;
}
.premium-itinerary-list .itinerary-item.open .itinerary-toggle>svg:last-child{
    transform:rotate(180deg);
}

/* FAQs stay compact and only one answer opens at a time */
.faq-panel details{
    overflow:hidden;
    margin-top:8px;
    border:1px solid #e0e7df;
    border-radius:10px;
    background:#fff;
}
.faq-panel details summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 14px;
    cursor:pointer;
    color:#293f30;
    font-size:11px;
    font-weight:800;
    list-style:none;
}
.faq-panel details summary::-webkit-details-marker{
    display:none;
}
.faq-panel details summary svg{
    width:14px;
    height:14px;
    flex:0 0 14px;
    transition:transform .16s ease;
}
.faq-panel details[open]{
    border-color:rgba(57,201,35,.34);
}
.faq-panel details[open] summary{
    background:#f8fbf7;
}
.faq-panel details[open] summary svg{
    transform:rotate(45deg);
}
.faq-panel details>p{
    margin:0;
    padding:0 14px 14px;
    color:#596a5e;
    font-size:10.5px;
    line-height:1.65;
}

@media(max-width:620px){
    .tour-experience-pills{
        gap:6px;
    }
    .tour-experience-pills a{
        min-height:30px;
        padding:6px 8px;
        font-size:9.5px;
    }
}

/* v7.37 — saved catalogue gallery on tour / staycation detail pages */
.tour-gallery-panel{
    overflow:hidden;
}
.tour-gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.tour-gallery-item{
    position:relative;
    display:block;
    min-height:150px;
    aspect-ratio:4/3;
    overflow:hidden;
    border:1px solid #e1e8df;
    border-radius:14px;
    background:#f2f6f1;
    color:#fff;
    text-decoration:none;
}
.tour-gallery-item img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .2s ease;
}
.tour-gallery-item span{
    position:absolute;
    right:9px;
    bottom:9px;
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 8px;
    border-radius:999px;
    background:rgba(11,32,56,.78);
    color:#fff;
    font-size:9px;
    font-weight:800;
    backdrop-filter:blur(4px);
}
.tour-gallery-item span svg{
    width:12px;
    height:12px;
}
.tour-gallery-item:hover img,
.tour-gallery-item:focus-visible img{
    transform:scale(1.035);
}
.tour-gallery-item:focus-visible{
    outline:3px solid rgba(23,105,224,.22);
    outline-offset:2px;
}
@media(max-width:760px){
    .tour-gallery-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:480px){
    .tour-gallery-grid{
        grid-template-columns:1fr;
    }
}
