/* Serengeti Holiday Safaris — Public Site Stylesheet
   Color palette & fonts matched to your original Travelfic theme_mods:
   primary #b58e53, secondary #917242, heading #595349, body text #99948d,
   border var(--cream), headings: Cormorant Garamond, body: Josefin Sans */

:root {
    --primary: #a9791f;       /* dark gold */
    --secondary: #8a611a;     /* darker gold, hover state */
    --cream: #fbf3e3;         /* cream background */
    --heading: #2e2a22;       /* near-black warm dark for headings */
    --body-text: #6b6355;     /* warm gray-brown for body text */
    --border: #e8ddc4;        /* light gold-cream border */
    --bg-lite: #fbf3e3;
    --white: #ffffff;
    --whatsapp: #25d366;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { overflow-x: hidden; max-width: 100%; }
body {
    font-family: 'Josefin Sans', sans-serif;
    color: var(--body-text);
    line-height: 1.7;
    background: var(--white);
}
h1, h2, h3, h4, h5 {
    font-family: 'Cormorant Garamond', serif;
    color: var(--heading);
    font-weight: 600;
    line-height: 1.3;
}
a { text-decoration: none; color: var(--primary); }
img { max-width: 100%; display: block; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* ---- Top trust bar ---- */
.top-bar { background: var(--heading); color: var(--cream); font-size: 13px; padding: 8px 0; }
.top-bar .container { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; }
.top-bar .trust-badges { display: flex; gap: 20px; flex-wrap: wrap; }
.top-bar .trust-badges span { display: inline-flex; align-items: center; gap: 6px; }
.top-bar a { color: var(--cream); }
.top-bar a:hover { color: #fff; }

/* ---- Header ---- */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--border); backdrop-filter: blur(6px); }
.header-inner { max-width: 1300px; margin: 0 auto; padding: 16px 24px; display: flex; align-items: center; justify-content: space-between; }
.logo { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 700; color: var(--heading); display: flex; align-items: center; }
.logo-img { height: 44px; width: auto; display: block; }
.main-nav { display: flex; align-items: center; gap: 28px; }
.main-nav a { color: var(--heading); font-size: 15px; font-weight: 500; }
.main-nav a:hover, .main-nav a.active { color: var(--primary); }
.dropdown { position: relative; }
.dropdown-toggle .caret { font-size: 10px; }
.dropdown-menu { display: none; position: absolute; top: 100%; left: 0; background: var(--white); border: 1px solid var(--border); border-radius: 6px; min-width: 220px; box-shadow: 0 8px 24px rgba(0,0,0,.08); padding: 8px 0; margin-top: 10px; }
.dropdown:hover .dropdown-menu { display: block; }
.dropdown-menu a { display: block; padding: 8px 18px; font-size: 14px; }
.dropdown-menu a:hover { background: var(--bg-lite); }
.btn-cta { background: var(--primary); color: #fff !important; padding: 10px 22px; border-radius: 30px; font-size: 14px; font-weight: 600; }
.btn-cta:hover { background: var(--secondary); }
.mobile-toggle { display: none; background: none; border: none; font-size: 24px; cursor: pointer; color: var(--heading); }

/* ---- Hero (video) + inline quote card ---- */
.hero { position: relative; min-height: 640px; display: flex; align-items: center; overflow: hidden; padding: 60px 0 140px; }
.hero video, .hero .hero-fallback-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.45) 45%, rgba(0,0,0,.25) 100%); z-index: 2; }
.hero-inner { position: relative; z-index: 3; width: 100%; display: grid; grid-template-columns: 1.3fr 1fr; gap: 50px; align-items: center; }
.hero-content { color: #fff; max-width: 620px; }
.hero-content h1 { color: #fff; font-size: 48px; margin-bottom: 16px; }
.hero-content p { font-size: 18px; margin-bottom: 26px; color: #f2ece1; }
.hero-buttons { display: flex; gap: 16px; flex-wrap: wrap; }
.btn-primary { background: var(--primary); color: #fff; padding: 14px 30px; border-radius: 30px; font-weight: 600; display: inline-block; }
.btn-primary:hover { background: var(--secondary); color: #fff; }
.btn-outline { border: 2px solid #fff; color: #fff; padding: 12px 28px; border-radius: 30px; font-weight: 600; display: inline-block; }
.btn-outline:hover { background: #fff; color: var(--heading); }

/* ---- Hero partners bar: full-width, centered, translucent gold overlay ---- */
.hero-partners-bar {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
    background: rgba(169, 121, 31, 0.55); /* translucent dark gold, sits above the photo */
    backdrop-filter: blur(2px);
    padding: 18px 0;
}
.hero-partners-label {
    color: #fff; font-size: 11px; text-transform: uppercase; letter-spacing: 1.5px;
    text-align: center; margin-bottom: 14px; opacity: .95; font-weight: 600;
}
.hero-partners-logos {
    display: flex; align-items: center; justify-content: center; gap: 40px; flex-wrap: wrap;
}
@media (max-width: 900px) {
    .hero-partners-logos { gap: 22px; }
    .hero-partners-logos img { height: 30px !important; }
}

/* ---- Quote form card (used in hero + as reusable widget) ---- */
.quote-card { background: #fff; border-radius: 12px; padding: 28px; box-shadow: 0 20px 50px rgba(0,0,0,.25); }
.quote-card h3 { font-size: 22px; margin-bottom: 4px; }
.quote-card .quote-sub { font-size: 13px; color: var(--body-text); margin-bottom: 18px; }
.quote-card .form-field { margin-bottom: 14px; }
.quote-card .form-field label { display: block; font-size: 12px; font-weight: 600; color: var(--heading); margin-bottom: 5px; text-transform: uppercase; letter-spacing: .5px; }
.quote-card .form-field input, .quote-card .form-field select, .quote-card .form-field textarea {
    width: 100%; padding: 11px 13px; border: 1px solid var(--border); border-radius: 6px; font-family: inherit; font-size: 14px; background: var(--bg-lite);
}
.quote-card .form-field textarea { min-height: 70px; }
.quote-card .form-submit-btn { width: 100%; background: var(--primary); color: #fff; border: 0; padding: 14px; border-radius: 6px; font-weight: 700; cursor: pointer; font-size: 15px; letter-spacing: .5px; }
.quote-card .form-submit-btn:hover { background: var(--secondary); }
.quote-card .form-success { background: #e8f5e9; border: 1px solid #4caf50; padding: 12px; border-radius: 6px; font-size: 13px; margin-bottom: 14px; }
.quote-card .form-error { background: #fdecea; border: 1px solid #f5c2c0; padding: 12px; border-radius: 6px; font-size: 13px; margin-bottom: 14px; }

/* ---- Sections ---- */
.section { padding: 80px 0; }
.section-lite { background: var(--bg-lite); }
.section-head { text-align: center; max-width: 680px; margin: 0 auto 48px; }
.section-head.left-align { text-align: left; margin: 0 0 24px; }
.section-head .eyebrow { color: var(--primary); text-transform: uppercase; letter-spacing: 2px; font-size: 13px; font-weight: 600; }
.section-head h2 { font-size: 38px; margin-top: 8px; }
.section-head p { margin-top: 12px; }

/* ---- Intro / About strip ---- */
.intro-strip { padding: 56px 0; text-align: center; }
.intro-strip p { max-width: 820px; margin: 0 auto; font-size: 17px; color: var(--heading); }

/* ---- Category block (description + quick-link list, mirrors tour operator UX pattern) ---- */
.category-block { padding: 50px 0; border-bottom: 1px solid var(--border); }
.category-block-head { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: end; margin-bottom: 20px; }
.category-block-head h2 { font-size: 30px; }
.category-block-head p { max-width: 640px; font-size: 15px; margin-top: 8px; }
.category-block-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.btn-sm { padding: 9px 20px; border-radius: 24px; font-size: 13px; font-weight: 600; display: inline-block; }
.btn-sm.filled { background: var(--primary); color: #fff; }
.btn-sm.filled:hover { background: var(--secondary); color: #fff; }
.btn-sm.outline { border: 1.5px solid var(--primary); color: var(--primary); }
.btn-sm.outline:hover { background: var(--primary); color: #fff; }
.itinerary-quicklist { columns: 2; column-gap: 40px; margin-top: 20px; }
.itinerary-quicklist a { display: block; padding: 7px 0; font-size: 14px; color: var(--heading); border-bottom: 1px dashed var(--border); break-inside: avoid; }
.itinerary-quicklist a:hover { color: var(--primary); }

/* ---- Tour cards ---- */
.tour-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.tour-card { position: relative; background: #fff; transition: box-shadow .2s, transform .2s; border-radius: 8px; overflow: visible; }
.tour-card:hover { box-shadow: 0 12px 30px rgba(0,0,0,.1); transform: translateY(-3px); }

/* Image with title overlaid directly on it (landscape aspect ratio, wider than tall) */
.tour-card-img {
    display: block; position: relative; aspect-ratio: 16 / 9; background: var(--bg-lite) center/cover no-repeat;
    border-radius: 8px 8px 0 0; overflow: hidden;
}
.tour-card-img::after {
    content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.75) 100%);
}
.tour-card-img-title { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 14px 16px; }
.tour-card-img-title .days-badge { display: inline-block; background: rgba(255,255,255,.92); color: var(--heading); font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 4px; margin-bottom: 8px; text-transform: uppercase; letter-spacing: .3px; }
.tour-card-img-title h3 { color: #fff; font-size: 17px; line-height: 1.3; font-family: 'Josefin Sans', sans-serif; font-weight: 700; text-shadow: 0 1px 3px rgba(0,0,0,.4); }

/* Floating WhatsApp button, overlapping the card's bottom-right corner */
.tour-card-whatsapp {
    position: absolute; right: 12px; bottom: -18px; z-index: 3; width: 42px; height: 42px; border-radius: 50%;
    background: var(--whatsapp); color: #fff; display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 12px rgba(0,0,0,.2);
}
.tour-card-whatsapp:hover { background: #1ebc59; color: #fff; }

/* Compact content strip below the image */
.tour-card-body { padding: 16px 16px 20px; border: 1px solid var(--border); border-top: 0; border-radius: 0 0 8px 8px; }
.tour-card-price { font-size: 20px; font-weight: 700; color: var(--heading); margin-bottom: 8px; }
.tour-card-price span { font-size: 11px; font-weight: 600; color: var(--body-text); text-transform: uppercase; margin-left: 4px; }
.tour-card-visits { font-size: 12.5px; color: var(--body-text); line-height: 1.6; margin-bottom: 14px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tour-card-visits strong { color: var(--heading); }
.tour-card-actions { display: flex; gap: 8px; }
.tour-card-actions a { flex: 1; text-align: center; padding: 9px 6px; border-radius: 4px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; }
.btn-outline-sm { border: 1.5px solid var(--heading); color: var(--heading); }
.btn-outline-sm:hover { background: var(--heading); color: #fff; }
.btn-fill-sm { background: var(--heading); color: #fff; }
.btn-fill-sm:hover { background: var(--primary); color: #fff; }

/* Generic simple card styles — used by blog cards (not the redesigned landscape tour cards above) */
.tour-card > .img-wrap { height: 200px; background: var(--bg-lite) center/cover no-repeat; position: relative; border-radius: 8px 8px 0 0; }
.tour-card > .img-wrap .cat-badge { position: absolute; top: 14px; left: 14px; background: var(--primary); color: #fff; font-size: 12px; padding: 4px 12px; border-radius: 20px; text-transform: uppercase; letter-spacing: .5px; }
.cat-badge { background: var(--primary); color: #fff; font-size: 12px; padding: 4px 12px; border-radius: 20px; text-transform: uppercase; letter-spacing: .5px; }
.tour-card > .body { padding: 18px; border: 1px solid var(--border); border-top: 0; border-radius: 0 0 8px 8px; }
.tour-card > .body h3 { font-size: 19px; margin-bottom: 4px; }
.act-view { display: inline-block; padding: 9px 16px; border-radius: 6px; background: var(--heading); color: #fff; font-size: 13px; }
.act-view:hover { background: var(--primary); color: #fff; }

/* ---- Category tabs / filters ---- */
.filter-bar { display: flex; gap: 12px; justify-content: center; margin-bottom: 40px; flex-wrap: wrap; }
.filter-bar a { padding: 8px 20px; border: 1px solid var(--border); border-radius: 30px; font-size: 14px; color: var(--heading); }
.filter-bar a.active, .filter-bar a:hover { background: var(--primary); color: #fff; border-color: var(--primary); }

/* ---- Tours archive sidebar layout ---- */
.archive-layout { display: grid; grid-template-columns: 270px 1fr; gap: 40px; align-items: start; }
.archive-sidebar { border: 1px solid var(--border); border-radius: 10px; padding: 22px; position: sticky; top: 100px; }
.archive-widget { padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--border); }
.archive-widget:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.archive-widget h4 { font-size: 15px; text-transform: uppercase; letter-spacing: .5px; color: var(--heading); margin-bottom: 14px; }
.archive-widget ul { list-style: none; }
.archive-widget li { margin-bottom: 4px; }
.archive-widget a {
    display: flex; justify-content: space-between; align-items: center; padding: 7px 10px; border-radius: 6px;
    font-size: 14px; color: var(--body-text);
}
.archive-widget a:hover { background: var(--cream); color: var(--heading); }
.archive-widget a.active { background: var(--primary); color: #fff; font-weight: 600; }
.archive-widget a .count { font-size: 12px; opacity: .7; }
.archive-reset { display: block; text-align: center; font-size: 13px; color: var(--primary); margin-top: 6px; }
@media (max-width: 900px) {
    .archive-layout { grid-template-columns: 1fr; }
    .archive-sidebar { position: static; }
}

/* ---- Tabbed category teaser (left tab list + right image panel) ---- */
.tabs-wrap { display: grid; grid-template-columns: 280px 1fr; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.tabs-list { background: #fff; border-right: 1px solid var(--border); }
.tab-btn {
    display: block; width: 100%; text-align: left; padding: 22px 24px; background: #fff; border: 0;
    border-bottom: 1px solid var(--border); cursor: pointer; font-size: 15px; color: var(--heading);
    font-family: inherit; border-left: 4px solid transparent;
}
.tab-btn:last-child { border-bottom: 0; }
.tab-btn:hover { background: var(--cream); }
.tab-btn.active { background: var(--cream); border-left-color: var(--primary); font-weight: 700; }
.tabs-panel-wrap { position: relative; background-size: cover; background-position: center; min-height: 540px; }
.tabs-panel-wrap::after { content: ''; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(46,42,34,.82) 0%, rgba(46,42,34,.55) 60%, rgba(46,42,34,.35) 100%); }
.tabs-panel { display: none; position: relative; z-index: 2; padding: 44px 50px; color: #fff; }
.tabs-panel.active { display: block; }
.tabs-panel h3 { color: #fff; text-decoration: underline; text-decoration-color: var(--primary); text-underline-offset: 6px; text-transform: uppercase; font-size: 26px; margin-top: 4px; }
.tabs-panel p { color: #f2ece1; max-width: 640px; margin-top: 14px; }
.tabs-panel .itinerary-quicklist a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255,255,255,.4); border-bottom: 0; }
.tabs-panel .itinerary-quicklist a:hover { text-decoration-color: var(--primary); color: var(--primary); }
.tabs-panel-buttons { margin-top: 30px; display: flex; gap: 14px; flex-wrap: wrap; }
.tabs-panel-buttons a { border: 1.5px solid #fff; color: #fff; padding: 12px 26px; border-radius: 4px; font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .5px; }
.tabs-panel-buttons a:hover { background: #fff; color: var(--heading); }
.coming-soon-note { color: #f2ece1; font-style: italic; font-size: 14px; margin-top: 24px; max-width: 500px; border-left: 3px solid var(--primary); padding-left: 16px; }
.coming-soon-badge { position: absolute; top: 14px; left: 14px; background: var(--heading); color: #fff; font-size: 11px; padding: 4px 12px; border-radius: 20px; text-transform: uppercase; letter-spacing: .5px; z-index: 1; }
@media (max-width: 900px) {
    .tabs-wrap { grid-template-columns: 1fr; }
    .tabs-list { display: flex; overflow-x: auto; }
    .tab-btn { border-bottom: 0; border-right: 1px solid var(--border); white-space: nowrap; border-left: 0; border-top: 4px solid transparent; }
    .tab-btn.active { border-left: 0; border-top-color: var(--primary); }
    .tabs-panel { padding: 30px 24px; }
}

/* ---- Why Choose Us ---- */
.why-choose { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.why-choose img { border-radius: 12px; }
.why-choose ol { list-style: none; counter-reset: reasons; }
.why-choose ol li { counter-increment: reasons; position: relative; padding: 10px 0 10px 46px; font-size: 15.5px; color: var(--heading); }
.why-choose ol li::before {
    content: counter(reasons); position: absolute; left: 0; top: 8px; width: 30px; height: 30px; border-radius: 50%;
    background: var(--primary); color: #fff; font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center;
}

/* ---- FAQ accordion ---- */
.faq-list { max-width: 820px; margin: 0 auto; }
.faq-item { border-bottom: 1px solid var(--border); }
.faq-question { width: 100%; text-align: left; background: none; border: 0; padding: 20px 4px; font-family: 'Cormorant Garamond', serif; font-size: 19px; font-weight: 600; color: var(--heading); cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
.faq-question .faq-icon { font-size: 18px; color: var(--primary); transition: transform .2s; }
.faq-item.open .faq-icon { transform: rotate(45deg); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height .25s ease; font-size: 14.5px; padding: 0 4px; }
.faq-item.open .faq-answer { max-height: 400px; padding-bottom: 18px; }

/* ---- Single tour page ---- */
.tour-hero-img { height: 420px; background: var(--bg-lite) center/cover no-repeat; }
.tour-single-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 50px; margin-top: 40px; align-items: start; }
.tour-facts { display: flex; gap: 30px; flex-wrap: wrap; padding: 20px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); margin: 24px 0; }
.tour-facts .fact { font-size: 14px; }
.tour-facts .fact strong { display: block; color: var(--heading); font-size: 15px; }
.itinerary-day { display: flex; gap: 20px; margin-bottom: 28px; padding-bottom: 28px; border-bottom: 1px solid var(--border); }
.itinerary-day .day-num { flex-shrink: 0; width: 90px; font-family: 'Cormorant Garamond', serif; font-size: 20px; font-weight: 700; color: var(--primary); }
.inc-exc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 24px; }
.inc-exc-grid ul { list-style: none; }
.inc-exc-grid li { padding: 6px 0; font-size: 14px; padding-left: 24px; position: relative; }
.inc-exc-grid .includes li::before { content: '✓'; position: absolute; left: 0; color: #4caf50; font-weight: 700; }
.inc-exc-grid .excludes li::before { content: '✕'; position: absolute; left: 0; color: #c0392b; font-weight: 700; }

/* ---- Sidebar / quote box on single tour page reuses .quote-card ---- */
.sidebar-box { position: sticky; top: 100px; }

/* ---- About / Contact pages ---- */
.page-header { background: var(--bg-lite); padding: 70px 0; text-align: center; }
.page-header h1 { font-size: 44px; }
.prose h2 { font-size: 30px; margin: 30px 0 14px; }
.prose p { margin-bottom: 16px; }
.prose ul { margin: 0 0 16px 20px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; margin-top: 40px; }

/* ---- WhatsApp floating button ---- */
.whatsapp-float {
    position: fixed; bottom: 24px; right: 24px; z-index: 999; background: var(--whatsapp); color: #fff;
    width: 58px; height: 58px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    box-shadow: 0 6px 20px rgba(0,0,0,.25); font-size: 28px;
}
.whatsapp-float:hover { background: #1ebc59; color: #fff; }

/* ---- Footer ---- */
.site-footer { background: var(--heading); color: var(--cream); padding: 60px 0 0; margin-top: 60px; }
.footer-inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr; gap: 30px; }
.footer-col h3, .footer-col h4 { color: var(--cream); margin-bottom: 16px; font-size: 15px; text-transform: uppercase; letter-spacing: .5px; }
.footer-col p { font-size: 14px; margin-bottom: 8px; color: #cbb98e; }
.footer-col a { display: block; color: #cbb98e; font-size: 13.5px; margin-bottom: 9px; }
.footer-col a:hover { color: var(--primary); }
.footer-social { display: flex; gap: 10px; margin-top: 14px; }
.footer-social a { width: 34px; height: 34px; border-radius: 50%; border: 1px solid #6b5d3f; display: flex; align-items: center; justify-content: center; font-size: 14px; margin-bottom: 0; }
.footer-social a:hover { background: var(--primary); border-color: var(--primary); color: #fff; }
.footer-bottom { text-align: center; padding: 24px; margin-top: 40px; border-top: 1px solid rgba(255,255,255,.1); font-size: 13px; color: #c9b98d; }
.footer-places { background: #201c16; padding: 30px 0; margin-top: 20px; }
.footer-places p { font-size: 12.5px; color: #a8977a; margin-bottom: 10px; line-height: 1.9; }
.footer-places strong { color: var(--cream); margin-right: 6px; }
.footer-places a { color: #a8977a; margin: 0 2px; }
.footer-places a:hover { color: var(--primary); }
.footer-bottom-nav { display: none; }

/* Mobile sticky bottom action bar */
.mobile-bottom-nav {
    display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 998; background: #fff;
    border-top: 1px solid var(--border); box-shadow: 0 -4px 16px rgba(0,0,0,.06);
}
.mobile-bottom-nav .row { display: flex; }
.mobile-bottom-nav a { flex: 1; text-align: center; padding: 10px 4px; font-size: 11px; color: var(--heading); }
.mobile-bottom-nav a .icon { display: block; font-size: 18px; margin-bottom: 2px; }

/* ---- Responsive ---- */
@media (max-width: 900px) {
    .main-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff; flex-direction: column; padding: 20px; border-bottom: 1px solid var(--border); gap: 16px; }
    .main-nav.open { display: flex; }
    .mobile-toggle { display: block; }
    .hero-inner { grid-template-columns: 1fr; }
    .hero-content { max-width: 100%; }
    .tour-grid { grid-template-columns: 1fr; }
    .tour-single-layout { grid-template-columns: 1fr; }
    .contact-grid { grid-template-columns: 1fr; }
    .footer-inner { grid-template-columns: 1fr 1fr; }
    .hero-content h1 { font-size: 32px; }
    .inc-exc-grid { grid-template-columns: 1fr; }
    .why-choose { grid-template-columns: 1fr; }
    .itinerary-quicklist { columns: 1; }
    .category-block-head { grid-template-columns: 1fr; }
    .top-bar .trust-badges { display: none; }
    .mobile-bottom-nav { display: block; }
    body { padding-bottom: 58px; }
    .whatsapp-float { bottom: 70px; }
}


/* =========================================
   SOCIAL SECTION (Instagram + YouTube) — homepage
========================================= */
.sws-social-section{padding:80px 0 90px;background:var(--bg-lite);color:#1b2d26;}
.sws-social-heading{max-width:760px;margin:0 auto;text-align:center;}
.sws-social-eyebrow{display:block;margin-bottom:10px;color:var(--primary);font-family:'Josefin Sans',sans-serif;font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase;}
.sws-social-heading h2{margin:0;color:#10241d;font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:700;line-height:1.2;}
.sws-social-heading p{max-width:650px;margin:14px auto 0;color:#666;font-family:'Josefin Sans',sans-serif;font-size:16px;line-height:1.8;text-align:center!important;}

.instagram-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;max-width:1080px;margin:40px auto 0;}
.instagram-mini-card{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;border:2px solid rgba(212,175,55,.34);border-radius:16px;background:#e9e4dc;box-shadow:0 14px 32px rgba(16,36,29,.16);isolation:isolate;transition:.3s ease;}
.instagram-mini-card__viewport{position:absolute;inset:0;overflow:hidden;background:#e9e4dc;}
.instagram-mini-card__embed{position:absolute;top:-73px;left:0;width:540px;min-width:540px;transform:scale(.5);transform-origin:top left;will-change:transform;}
.instagram-mini-card .instagram-media,.instagram-mini-card iframe{display:block!important;width:540px!important;min-width:540px!important;max-width:540px!important;margin:0!important;border:0!important;}
.instagram-mini-card__shade{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,rgba(16,36,29,0) 42%,rgba(16,36,29,.72) 100%);opacity:.45;transition:.3s ease;}
.instagram-mini-card__icon{position:absolute;top:13px;right:13px;z-index:5;display:flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:50%;background:rgba(16,36,29,.76);color:#fff;font-size:19px;pointer-events:none;}
.instagram-mini-card__label{position:absolute;right:14px;bottom:15px;left:14px;z-index:5;color:#fff;font-family:'Josefin Sans',sans-serif;font-size:13px;font-weight:800;text-align:center;text-transform:uppercase;opacity:0;transform:translateY(8px);pointer-events:none;transition:.3s ease;}
.instagram-mini-card__link{position:absolute;inset:0;z-index:10;display:block;}
.instagram-mini-card:hover{border-color:#d4af37;box-shadow:0 20px 42px rgba(16,36,29,.25);transform:translateY(-4px);}
.instagram-mini-card:hover .instagram-mini-card__shade{opacity:.9}
.instagram-mini-card:hover .instagram-mini-card__label{opacity:1;transform:translateY(0);}

.sws-social-button-row{margin-top:32px;text-align:center;}
.sws-social-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:9px;padding:12px 25px;border-radius:999px;color:#fff!important;font-family:'Josefin Sans',sans-serif;font-size:14px;font-weight:800;text-decoration:none!important;box-shadow:0 12px 28px rgba(16,36,29,.16);transition:.25s ease;}
.sws-social-button:hover{color:#fff!important;transform:translateY(-3px);}
.sws-social-button--instagram{background:linear-gradient(135deg,#833ab4,#fd1d1d 52%,#fcb045);}
.sws-social-button--youtube{background:#e60000}

.sws-youtube-heading{margin-top:76px}
.sws-youtube-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:38px;}
.sws-youtube-card{display:block;min-width:0;color:#1b2d26;text-decoration:none!important;}
.sws-youtube-card__media{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border:2px solid rgba(212,175,55,.28);border-radius:14px;background:#ddd;box-shadow:0 14px 30px rgba(16,36,29,.14);}
.sws-youtube-card__media img{width:100%;height:100%;object-fit:cover;transition:.45s ease;}
.sws-youtube-card__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,36,29,.04),rgba(16,36,29,.55));}
.sws-youtube-card__category{position:absolute;left:12px;bottom:11px;padding:5px 9px;border-radius:5px;background:rgba(16,36,29,.82);color:#fff;font-family:'Josefin Sans',sans-serif;font-size:11px;font-weight:700;}
.sws-youtube-card__play{position:absolute;top:50%;left:50%;display:flex;width:58px;height:42px;align-items:center;justify-content:center;border-radius:12px;background:#e60000;color:#fff;font-size:18px;transform:translate(-50%,-50%);transition:.25s ease;}
.sws-youtube-card__body{display:block;padding:16px 4px 0;}
.sws-youtube-card__body strong{display:block;color:#10241d;font-family:'Josefin Sans',sans-serif;font-size:16px;line-height:1.45;}
.sws-youtube-card__body small{display:block;margin-top:8px;color:#8a8178;font-size:12px;}
.sws-youtube-card:hover .sws-youtube-card__media img{transform:scale(1.06)}
.sws-youtube-card:hover .sws-youtube-card__play{background:#bc0000;transform:translate(-50%,-50%) scale(1.08);}

@media(max-width:991px){.instagram-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sws-youtube-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.sws-social-section{padding:62px 0 72px}.sws-social-heading h2{font-size:28px}.sws-youtube-grid{grid-template-columns:1fr}}

/* =========================================
   REVIEWS CAROUSEL — real Google reviews via Trustindex
========================================= */
.reviews-carousel-section { background: var(--bg-lite); }
.reviews-carousel-section .section-head { margin-bottom: 34px; }

.ti-widget.ti-goog .ti-widget-container {
    display: flex; align-items: flex-start; gap: 40px; max-width: 100%;
}

/* Left rating summary panel */
.ti-widget.ti-goog .ti-footer {
    flex: 0 0 220px; text-align: center; padding: 10px 0;
}
.ti-widget.ti-goog .ti-rating-text strong.ti-rating {
    display: block; font-size: 26px; font-weight: 800; letter-spacing: 1px; color: var(--heading);
    font-family: 'Josefin Sans', sans-serif; margin-bottom: 10px;
}
.ti-widget.ti-goog .ti-stars.star-lg { display: block; margin-bottom: 10px; }
.ti-widget.ti-goog .ti-stars.star-lg .ti-star { font-size: 30px; color: #fbbc04; margin-right: 2px; }
.ti-widget.ti-goog .ti-rating-text .nowrap { display: block; font-size: 15px; color: var(--body-text); margin-bottom: 16px; }
.ti-widget.ti-goog .ti-rating-text .nowrap strong { color: var(--heading); }
.google-wordmark { font-family: Arial, sans-serif; font-size: 26px; font-weight: 700; letter-spacing: -0.5px; }

/* Right reviews slider */
.ti-widget.ti-goog .ti-reviews-container { flex: 1; min-width: 0; position: relative; }
.ti-reviews-container-wrapper {
    overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory; scrollbar-width: none;
}
.ti-reviews-container-wrapper::-webkit-scrollbar { display: none; }
.ti-reviews-track { display: flex; gap: 16px; }
.ti-widget.ti-goog .ti-review-item { flex: 0 0 calc(33.333% - 11px); min-width: 0; scroll-snap-align: start; }
@media (max-width: 991px) { .ti-widget.ti-goog .ti-review-item { flex: 0 0 calc(50% - 8px); } }
@media (max-width: 767px) { .ti-widget.ti-goog .ti-review-item { flex: 0 0 88%; } }

.ti-widget.ti-goog .ti-review-item > .ti-inner {
    background: #fff; border-radius: 12px; padding: 20px; height: 100%;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.ti-widget.ti-goog .ti-review-header { display: flex; align-items: center; gap: 12px; position: relative; margin-bottom: 10px; }
.ti-avatar-initial {
    display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%;
    color: #fff; font-weight: 700; font-size: 17px; flex-shrink: 0;
}
.ti-widget.ti-goog .ti-profile-details { min-width: 0; }
.ti-widget.ti-goog .ti-profile-details .ti-name {
    font-weight: 700; font-size: 15px; color: var(--heading); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 0;
}
.ti-widget.ti-goog .ti-profile-details .ti-date { font-size: 12.5px; color: #9a9488; margin-top: 1px; }
.ti-google-g {
    margin-left: auto; flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%; background: #fff;
    display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px;
    color: #4285F4; box-shadow: 0 0 0 1px #eee;
}
.ti-widget.ti-goog .ti-stars { color: #fbbc04; font-size: 15px; letter-spacing: 1px; display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.ti-verified-review {
    display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px; border-radius: 50%;
    background: #1a73e8; color: #fff; font-size: 9px;
}
.ti-widget.ti-goog .ti-review-content {
    font-size: 14px; line-height: 1.6; color: var(--body-text);
    display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
.ti-widget.ti-goog .ti-review-content.expanded { -webkit-line-clamp: unset; overflow: visible; }
.ti-widget.ti-goog .ti-review-content strong { color: var(--heading); display: block; margin-bottom: 4px; }
.ti-widget.ti-goog .ti-read-more { display: block; margin-top: 8px; }
.ti-widget.ti-goog .ti-read-more span { font-size: 13px; color: #9a9488; cursor: pointer; }
.ti-widget.ti-goog .ti-read-more span:hover { color: var(--primary); text-decoration: underline; }

/* Prev/next arrows */
.ti-controls { position: absolute; top: 50%; left: 4px; right: 4px; display: flex; justify-content: space-between; transform: translateY(-50%); pointer-events: none; z-index: 2; }
.ti-controls .ti-prev, .ti-controls .ti-next {
    pointer-events: all; width: 40px; height: 40px; border-radius: 50%; background: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.15);
    cursor: pointer; position: relative;
}
.ti-controls .ti-prev::before, .ti-controls .ti-next::before {
    content: ''; position: absolute; top: 50%; left: 50%; width: 9px; height: 9px; border: solid var(--heading);
    border-width: 0 2px 2px 0;
}
.ti-controls .ti-prev::before { transform: translate(-30%, -50%) rotate(135deg); }
.ti-controls .ti-next::before { transform: translate(-70%, -50%) rotate(-45deg); }
.ti-controls .ti-prev:hover, .ti-controls .ti-next:hover { background: var(--primary); }
.ti-controls .ti-prev:hover::before, .ti-controls .ti-next:hover::before { border-color: #fff; }

/* Verified by Trustindex badge */
.ti-verified-by-row { text-align: right; margin-top: 16px; }
.ti-verified-by-row .ti-inner {
    display: inline-flex; align-items: center; gap: 6px; background: #157351; color: #fff; font-size: 12px; font-weight: 600;
    padding: 6px 14px; border-radius: 20px;
}

@media (max-width: 900px) {
    .ti-widget.ti-goog .ti-widget-container { flex-direction: column; align-items: stretch; gap: 24px; }
    .ti-widget.ti-goog .ti-footer { flex: none; width: 100%; padding: 0; }
}

@media (max-width: 767px) {
    .reviews-carousel-section { padding-left: 4px; padding-right: 4px; }
    .ti-widget.ti-goog .ti-review-item > .ti-inner { padding: 18px; }
    .ti-widget.ti-goog .ti-review-content { font-size: 13.5px; }
    .ti-avatar-initial { width: 38px; height: 38px; font-size: 15px; }
    .ti-widget.ti-goog .ti-profile-details .ti-name { font-size: 14px; }

    /* Arrows move above the card as a normal centered row instead of overlapping card content */
    .ti-controls {
        position: static; transform: none; justify-content: center; gap: 16px; margin-bottom: 14px; padding: 0;
    }
    .ti-controls .ti-prev, .ti-controls .ti-next { width: 36px; height: 36px; }
    .ti-verified-by-row { text-align: center; }
}

@media (max-width: 900px) {
    .ti-widget.ti-goog .ti-widget-container { flex-direction: column; align-items: center; }
    .ti-widget.ti-goog .ti-footer { flex: none; }
}
