/*
Theme Name: Topma Safari
Theme URI: https://example.com/topma-safari-theme
Author: Topma Tours & Safaris
Author URI: https://example.com
Description: A complete, plug-and-play WordPress theme for safari, tour, and travel operators. Built around a custom "Safari Package" post type with categories, destinations, testimonials, and Google-style reviews — everything editable from wp-admin, no page builder required. Includes a one-click demo content importer (Appearance > Import Demo Data).
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: topma-safari
Tags: travel, safari, tour-operator, custom-post-type, one-column, custom-menu, custom-logo, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

== Screen reader text ==
*/
.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;
  padding:0;position:absolute;width:1px;word-wrap:normal!important;
}
.screen-reader-text:focus{
  background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;
  clip-path:none;color:#21759b;display:block;font-size:14px;font-weight:700;height:auto;left:5px;
  line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000;
}

/* WordPress core alignment classes */
.alignleft{float:left;margin-right:1.5em;margin-bottom:1em;}
.alignright{float:right;margin-left:1.5em;margin-bottom:1em;}
.aligncenter{display:block;margin-left:auto;margin-right:auto;}
.wp-caption{max-width:100%;}
.wp-caption-text{text-align:center;font-size:0.85rem;color:var(--ink-soft,#5A5045);}
.gallery{margin-bottom:1.5em;}
img.wp-smiley,img.emoji{display:inline!important;border:none!important;box-shadow:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-0.1em!important;background:none!important;padding:0!important;}

/* ============================================================
   THEME STYLES BELOW
   (design system: rust/amber/near-black palette derived from
   the site's own logo — see inc/customizer.php for editable colors)
   ============================================================ */
/* ============ TOKENS ============ */
:root{
  --paper:#F3EDE2;
  --paper-deep:#E8DFCD;
  --ink:#17130F;
  --ink-soft:#5A5045;
  --dark:#1E1712;
  --dark-deep:#120D09;
  --rust:#A55E26;
  --rust-deep:#7E4A1D;
  --brass:#F0A21F;
  --brass-light:#F5B84A;
  --teal:#7A5230;
  --cream-card:#FBF8F0;
  --shadow-soft:0 18px 40px rgba(23,19,15,0.14);
  --shadow-lift:0 26px 55px rgba(23,19,15,0.22);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Work Sans',sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.65;
  overflow-x:hidden;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}
h1,h2,h3,h4{font-family:'Fraunces',serif; line-height:1.05; color:var(--ink);}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
img{max-width:100%;display:block;}
.container{width:100%;max-width:1220px;margin:0 auto;padding:0 24px;}
.mono{font-family:'Space Mono',monospace;}
section{padding:120px 0;position:relative;}
:focus-visible{outline:3px solid var(--rust);outline-offset:3px;}

/* ============ TEXTURE ============ */
.grain{
  position:fixed;inset:0;pointer-events:none;z-index:2;opacity:0.045;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ============ EYEBROW / STAMP LABEL ============ */
.stamp-label{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Space Mono',monospace;font-size:0.72rem;letter-spacing:2px;text-transform:uppercase;
  color:var(--rust);border:1.5px dashed var(--rust);border-radius:999px;padding:7px 18px;
}
.stamp-label i{font-size:0.7rem;}
.section-head{max-width:640px;margin:0 auto 64px;text-align:center;}
.section-head .stamp-label{margin-bottom:20px;}
.section-head h2{font-size:clamp(2.1rem,4vw,3rem);font-weight:600;margin-top:6px;}
.section-head h2 em{font-style:italic;color:var(--rust);font-weight:500;}
.section-head p{color:var(--ink-soft);margin-top:16px;font-size:1.08rem;}
.on-dark .section-head h2{color:var(--paper);}
.on-dark .section-head p{color:#C9C2AC;}

/* ============ TICKET STRIP (top bar) ============ */
.ticket-strip{
  background:var(--rust);color:var(--paper);
  font-family:'Space Mono',monospace;font-size:0.78rem;
  border-bottom:none;
}
.ticket-strip .container{display:flex;justify-content:space-between;align-items:center;padding-top:9px;padding-bottom:9px;flex-wrap:wrap;gap:10px;}
.route-line{display:flex;align-items:center;gap:10px;letter-spacing:1px;color:#FFFFFF;}
.route-line i{font-size:0.7rem;color:#FFFFFF;}
.strip-contact{display:flex;gap:22px;flex-wrap:wrap;}
.strip-contact a{color:#FFFFFF;opacity:0.92;display:flex;align-items:center;gap:7px;}
.strip-contact a:hover{opacity:1;color:var(--dark-deep);}

/* ============ HEADER ============ */
header{position:sticky;top:0;z-index:1000;background:#FFFFFF;border-bottom:1px solid rgba(23,19,15,0.1);transition:box-shadow .3s ease;}
header.scrolled{box-shadow:0 8px 24px rgba(23,19,15,0.1);}
.header-main{display:flex;justify-content:space-between;align-items:center;padding:18px 0;}
.logo{display:flex;align-items:center;gap:12px;min-width:0;flex-shrink:1;}
.logo-text-link{display:flex;align-items:center;}
/* WordPress's the_custom_logo() outputs .custom-logo-link > img.custom-logo —
   these are the ONLY selectors that reliably match every custom logo a site
   owner uploads, regardless of the image's own native dimensions. Height is
   fluid (clamp) so it scales smoothly between mobile and desktop instead of
   jumping between fixed sizes, and max-width guards against unusually wide
   logos overflowing the header on narrow screens. */
.custom-logo-link{display:flex;align-items:center;min-width:0;}
.custom-logo-link img.custom-logo,
.logo-img{
  height:clamp(36px, 8vw, 64px);
  width:auto;
  max-width:100%;
  object-fit:contain;
}
.footer-logo-badge .custom-logo-link img.custom-logo,
.footer-logo-badge .logo-img{
  height:clamp(34px, 7vw, 56px);
  width:auto;
  max-width:100%;
}

.nav-menu{display:flex;align-items:center;gap:6px;}
.nav-list{display:flex;gap:2px;}
.nav-item{position:relative;}
.nav-link{padding:11px 18px;font-weight:500;font-size:0.95rem;color:var(--ink);border-radius:999px;display:flex;align-items:center;gap:7px;transition:.25s;}
.nav-link i{font-size:0.65rem;color:var(--ink-soft);}
.nav-link:hover,.nav-link.active{color:var(--rust);background:rgba(179,74,37,0.08);}
.dropdown-content{
  position:absolute;top:calc(100% + 10px);left:0;background:var(--cream-card);min-width:230px;
  box-shadow:var(--shadow-lift);border-radius:4px;opacity:0;visibility:hidden;transform:translateY(10px);
  transition:.25s;z-index:1000;padding:8px 0;border-top:3px solid var(--rust);
}
.dropdown:hover .dropdown-content{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown-content a{padding:11px 22px;display:flex;align-items:center;gap:11px;color:var(--ink);font-size:0.92rem;border-left:3px solid transparent;}
.dropdown-content a:hover{background:rgba(179,74,37,0.06);color:var(--rust);border-left-color:var(--rust);padding-left:26px;}
.dropdown-content a i{width:16px;color:var(--rust);}

/* Nested submenus (levels 2-4): each .subdropdown is a flyout trigger whose
   own children open in a sibling panel to the RIGHT rather than below —
   stacking multiple levels downward would run off-screen and overlap. */
.subdropdown{position:relative;}
.subdropdown-toggle{
  padding:11px 22px;display:flex;align-items:center;gap:11px;color:var(--ink);font-size:0.92rem;
  border-left:3px solid transparent;cursor:pointer;width:100%;
}
.subdropdown-toggle .subdropdown-caret{margin-left:auto;font-size:0.65rem;color:var(--rust);width:auto;}
.subdropdown-toggle:hover{background:rgba(179,74,37,0.06);color:var(--rust);border-left-color:var(--rust);padding-left:26px;}
.dropdown-content-flyout{
  position:absolute;top:-9px;left:100%;margin-left:2px;background:var(--cream-card);min-width:220px;
  box-shadow:var(--shadow-lift);border-radius:4px;opacity:0;visibility:hidden;transform:translateX(6px);
  transition:.2s;z-index:1001;padding:8px 0;border-top:3px solid var(--rust);
}
.subdropdown:hover > .dropdown-content-flyout{opacity:1;visibility:visible;transform:translateX(0);}
/* If a flyout would run off the right edge of the viewport, flip it to open
   leftward instead — toggled by a small JS check, see main.js. */
.dropdown-content-flyout.flip-left{left:auto;right:100%;margin-left:0;margin-right:2px;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 30px;
  font-weight:600;font-size:0.88rem;letter-spacing:0.4px;text-transform:uppercase;border:none;cursor:pointer;
  transition:.3s cubic-bezier(.2,.8,.3,1);position:relative;font-family:'Work Sans',sans-serif;
}
.btn-primary{background:var(--rust);color:var(--paper);border-radius:3px;box-shadow:0 8px 20px rgba(179,74,37,0.32);}
.btn-primary:hover{background:var(--rust-deep);transform:translateY(-3px);box-shadow:0 14px 26px rgba(179,74,37,0.4);}
.btn-outline{background:transparent;border:2px solid var(--ink);color:var(--ink);border-radius:3px;padding:12px 28px;}
.btn-outline:hover{background:var(--ink);color:var(--paper);}
.btn-outline-light{background:transparent;border:2px solid var(--paper);color:var(--paper);border-radius:3px;padding:12px 28px;}
.btn-outline-light:hover{background:var(--paper);color:var(--dark-deep);}
.book-now-btn{margin-left:12px;}
.mobile-menu-btn{display:none;background:var(--ink);color:var(--paper);border:none;width:46px;height:46px;min-width:46px;flex-shrink:0;border-radius:50%;font-size:1.15rem;cursor:pointer;}

/* ============ HERO ============ */
.hero{
  min-height:94vh;display:flex;align-items:center;position:relative;overflow:hidden;
  background:url('https://images.unsplash.com/photo-1516426122078-c23e76319801?ixlib=rb-4.0.3&auto=format&fit=crop&w=2070&q=80');
  background-size:cover;background-position:center;
}
.hero-motif{position:absolute;right:-40px;bottom:-20px;width:480px;opacity:0.75;pointer-events:none;z-index:1;}
.hero .container{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr 0.85fr;gap:40px;align-items:end;}
.hero-ticket{
  padding:44px 0 38px;position:relative;max-width:620px;
}
.hero-ticket .stamp-label{margin-bottom:22px;color:var(--brass-light);border-color:var(--brass-light);background:rgba(18,13,9,0.45);backdrop-filter:blur(3px);}
.hero-ticket h1{font-size:clamp(2.4rem,4.6vw,3.6rem);font-weight:600;color:var(--paper);margin-bottom:20px;text-shadow:0 2px 10px rgba(0,0,0,0.85), 0 8px 34px rgba(0,0,0,0.6);}
.hero-ticket h1 em{font-style:italic;color:var(--brass-light);font-weight:500;}
.hero-ticket p{color:var(--paper);opacity:0.98;font-size:1.08rem;max-width:480px;margin-bottom:32px;text-shadow:0 2px 8px rgba(0,0,0,0.8), 0 5px 20px rgba(0,0,0,0.55);}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap;}
.hero-side{color:var(--paper);padding-bottom:12px;text-shadow:0 2px 8px rgba(0,0,0,0.75);}
.hero-side .route-mini{font-family:'Space Mono',monospace;font-size:0.85rem;letter-spacing:1px;opacity:0.9;margin-bottom:14px;display:block;}
.hero-side-list{display:flex;flex-direction:column;gap:10px;}
.hero-side-list li{display:flex;align-items:center;gap:12px;font-size:0.95rem;}
.hero-side-list i{color:var(--brass-light);width:18px;}

/* ============ FEATURES — luggage tags ============ */
.features{background:var(--paper);}
.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.tag-card{
  background:var(--cream-card);padding:38px 26px 30px;text-align:center;position:relative;
  box-shadow:var(--shadow-soft);border-radius:4px;transition:.35s cubic-bezier(.2,.8,.3,1);
}
.tag-card:nth-child(odd){transform:rotate(-1.1deg);}
.tag-card:nth-child(even){transform:rotate(1.1deg);}
.tag-card:hover{transform:translateY(-10px) rotate(0deg);box-shadow:var(--shadow-lift);}
.tag-hole{position:absolute;top:16px;left:50%;transform:translateX(-50%);width:14px;height:14px;border-radius:50%;background:var(--paper);border:2px solid rgba(23,19,15,0.25);}
.tag-card .feature-icon{
  width:64px;height:64px;border-radius:50%;background:var(--dark);color:var(--brass-light);
  display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:14px auto 20px;
}
.tag-card h3{font-size:1.25rem;font-weight:600;margin-bottom:10px;}
.tag-card p{color:var(--ink-soft);font-size:0.94rem;}

/* ============ PACKAGES — boarding passes ============ */
.packages{background:var(--paper-deep);}
.packages-slider-container{position:relative;padding:0 70px;}
.packages-slider{overflow:hidden;padding:12px 0;}
.packages-track{display:flex;gap:30px;transition:transform .6s cubic-bezier(.25,.46,.45,.94);}
.ticket-card{
  flex:0 0 calc(33.333% - 20px);background:var(--cream-card);border-radius:6px;overflow:hidden;
  box-shadow:var(--shadow-soft);transition:.4s cubic-bezier(.2,.8,.3,1);min-width:0;
}
.ticket-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-lift);}
.ticket-img{height:220px;position:relative;overflow:hidden;}
.ticket-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease;}
.ticket-card:hover .ticket-img img{transform:scale(1.1);}
.ticket-code{
  position:absolute;top:16px;left:16px;background:var(--dark-deep);color:var(--brass-light);
  font-family:'Space Mono',monospace;font-size:0.72rem;letter-spacing:1.5px;padding:6px 12px;border-radius:3px;
}
.ticket-perf{
  position:relative;height:0;border-top:2px solid rgba(23,19,15,0.15);margin:0 26px;
}
.ticket-perf:before,.ticket-perf:after{
  content:'';position:absolute;top:-9px;width:18px;height:18px;border-radius:50%;background:var(--paper-deep);
}
.ticket-perf:before{left:-26px;}
.ticket-perf:after{right:-26px;}
.ticket-body{padding:26px;}
.ticket-body h3{font-size:1.3rem;font-weight:600;margin-bottom:8px;}
.ticket-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:8px;}
.ticket-duration{font-family:'Space Mono',monospace;font-size:0.78rem;color:var(--ink-soft);display:flex;align-items:center;gap:7px;}
.ticket-price{font-family:'Fraunces',serif;font-size:1.7rem;font-weight:700;color:var(--rust);}
.ticket-price span{font-family:'Work Sans',sans-serif;font-size:0.8rem;color:var(--ink-soft);font-weight:400;}
.ticket-features{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:22px;}
.ticket-features li{display:flex;align-items:center;gap:8px;font-size:0.85rem;color:var(--ink-soft);}
.ticket-features i{color:var(--rust);font-size:0.75rem;}
.ticket-actions{display:flex;gap:10px;}
.ticket-actions .btn{flex:1;padding-left:14px;padding-right:14px;font-size:0.78rem;}

.packages-slider-nav{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:52px;}
.slide-btn{
  width:52px;height:52px;min-width:52px;min-height:52px;flex-shrink:0;border-radius:50%;
  background:var(--cream-card);color:var(--ink);border:1.5px solid rgba(23,19,15,0.18);
  font-size:1rem;cursor:pointer;transition:.25s cubic-bezier(.2,.8,.3,1);display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(23,19,15,0.12);
}
.slide-btn:hover{background:var(--rust);border-color:var(--rust);color:var(--paper);transform:translateY(-2px);box-shadow:0 8px 20px rgba(165,94,38,0.3);}
.slide-btn:active{transform:translateY(0);}
.slide-btn:disabled{opacity:0.35;cursor:not-allowed;box-shadow:none;}
.slide-btn:disabled:hover{background:var(--cream-card);border-color:rgba(23,19,15,0.18);color:var(--ink);transform:none;}
.slider-dots{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;max-width:240px;}
.slider-dot{width:8px;height:8px;min-width:8px;flex-shrink:0;border-radius:50%;background:rgba(23,19,15,0.22);border:none;cursor:pointer;transition:.3s;padding:0;}
.slider-dot:hover{background:rgba(23,19,15,0.4);}
.slider-dot.active{background:var(--rust);width:24px;border-radius:5px;}

/* ============ CATEGORY PACKAGE SECTIONS — static ticket grids ============ */
.ticket-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.ticket-grid .ticket-card{flex:none;}

/* ============ DESTINATIONS — passport stamps ============ */
.destinations{background:var(--paper);}
.destinations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:28px;}
.dest-card{border-radius:6px;overflow:hidden;position:relative;height:400px;box-shadow:var(--shadow-soft);transition:.4s;}
.dest-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lift);}
.dest-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease;}
.dest-card:hover img{transform:scale(1.08);}
.dest-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(18,13,9,0.92));display:flex;flex-direction:column;justify-content:flex-end;padding:30px;color:var(--paper);}
.dest-overlay h3{font-size:1.5rem;font-weight:600;margin-bottom:8px;}
.dest-overlay p{font-size:0.88rem;opacity:0.85;margin-bottom:18px;}
.passport-stamp{
  position:absolute;top:22px;right:22px;width:88px;height:88px;border-radius:50%;
  border:2.5px solid var(--brass-light);display:flex;align-items:center;justify-content:center;flex-direction:column;
  color:var(--paper);background:rgba(18,13,9,0.40);backdrop-filter:blur(2px);transform:rotate(-8deg);
  font-family:'Space Mono',monospace;text-align:center;
}
.passport-stamp .stamp-country{font-size:0.62rem;letter-spacing:1px;line-height:1.2;padding:0 6px;}
.passport-stamp i{font-size:1.1rem;margin-bottom:3px;color:var(--brass-light);}

/* ============ STATS — expedition ledger ============ */
.stats{
  background:linear-gradient(180deg, rgba(18,13,9,0.72), rgba(18,13,9,0.88)), url('https://images.unsplash.com/photo-1745526180300-443ef46e6a73?fm=jpg&q=80&w=2070&auto=format&fit=crop');
  background-size:cover;background-position:center;background-attachment:fixed;
  color:var(--paper);
}
.ledger{border-top:2px solid var(--brass);border-bottom:2px solid var(--brass);padding:10px 0;}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);}
.stat-item{padding:34px 20px;text-align:center;border-right:1px dashed rgba(245,184,74,0.35);}
.stat-item:last-child{border-right:none;}
.stat-number{font-family:'Fraunces',serif;font-size:3.2rem;font-weight:700;color:var(--brass-light);line-height:1;margin-bottom:10px;}
.stat-text{font-family:'Space Mono',monospace;font-size:0.75rem;letter-spacing:1.5px;text-transform:uppercase;opacity:0.8;}

/* ============ TESTIMONIALS — postcards ============ */
.testimonials{background:var(--paper-deep);}
.testimonial-slider{position:relative;overflow:hidden;max-width:820px;margin:0 auto;}
.testimonial-track{display:flex;transition:transform .5s ease;}
.testimonial-slide{min-width:100%;padding:0 10px;}
.postcard{
  background:var(--cream-card);padding:46px;border-radius:4px;box-shadow:var(--shadow-soft);position:relative;
}
.postcard:after{
  content:'';position:absolute;top:20px;right:20px;width:52px;height:52px;border-radius:50%;
  border:2px dashed var(--brass);opacity:0.5;
}
.postcard-header{display:flex;align-items:center;gap:18px;margin-bottom:22px;}
.postcard-avatar{width:66px;height:66px;border-radius:50%;overflow:hidden;border:2px solid var(--brass-light);flex-shrink:0;}
.postcard-avatar img{width:100%;height:100%;object-fit:cover;}
.postcard-info h4{font-size:1.1rem;font-weight:600;}
.postcard-location{font-family:'Space Mono',monospace;font-size:0.72rem;color:var(--rust);letter-spacing:0.5px;margin-top:2px;}
.postcard-stars{color:var(--brass);margin-top:6px;font-size:0.85rem;}
.postcard-text{font-size:1.08rem;line-height:1.75;color:var(--ink);font-style:italic;position:relative;padding-left:6px;}

.slider-nav{display:flex;justify-content:center;gap:18px;margin-top:38px;}

/* ============ GOOGLE REVIEWS ============ */
.google-reviews{background:var(--paper);}
.google-reviews-header{display:flex;gap:28px;flex-wrap:wrap;margin-bottom:50px;}
.rating-summary-card{
  background:var(--cream-card);padding:34px;border-radius:6px;box-shadow:var(--shadow-soft);
  display:flex;align-items:center;gap:32px;flex:1;min-width:min(320px, 100%);
}
.rating-score{font-family:'Fraunces',serif;font-size:3.6rem;font-weight:700;color:var(--rust);line-height:1;}
.rating-stars{color:var(--brass);font-size:1.2rem;margin:8px 0 4px;}
.rating-total{font-family:'Space Mono',monospace;font-size:0.78rem;color:var(--ink-soft);}
.rating-bars{flex:1;display:flex;flex-direction:column;gap:9px;}
.rating-bar{display:grid;grid-template-columns:52px 1fr 36px;align-items:center;gap:10px;font-size:0.8rem;color:var(--ink-soft);}
.bar-container{height:8px;background:rgba(23,19,15,0.1);border-radius:4px;overflow:hidden;}
.bar-fill{height:100%;background:linear-gradient(90deg,var(--brass),var(--rust));border-radius:4px;}
.google-badge-card{
  background:var(--dark-deep);color:var(--paper);padding:30px;border-radius:6px;display:flex;align-items:center;gap:18px;
  flex:1;min-width:min(300px, 100%);
}
.google-badge-card i{font-size:2.4rem;color:var(--brass-light);}
.google-badge-card h4{color:var(--paper);font-size:1.15rem;margin-bottom:6px;}
.google-badge-card p{font-size:0.88rem;opacity:0.8;margin-bottom:14px;}

.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:26px;}
.reviews-shortcode-embed{margin-top:10px;}
.reviews-shortcode-embed img{border-radius:6px;}
.review-ticket{background:var(--cream-card);border-radius:6px;padding:28px;box-shadow:var(--shadow-soft);position:relative;border-top:4px solid var(--brass);}
.review-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;}
.reviewer-info{display:flex;align-items:center;gap:13px;}
.reviewer-avatar{width:50px;height:50px;border-radius:50%;overflow:hidden;}
.reviewer-avatar img{width:100%;height:100%;object-fit:cover;}
.reviewer-details h4{font-size:1rem;font-weight:600;}
.review-date{font-family:'Space Mono',monospace;font-size:0.72rem;color:var(--ink-soft);}
.review-rating{color:var(--brass);font-size:1rem;}
.review-text{font-size:0.95rem;color:var(--ink-soft);line-height:1.7;margin-bottom:16px;}
.review-platform{display:flex;align-items:center;gap:8px;color:var(--teal);font-weight:600;font-size:0.82rem;}
.view-all-reviews{text-align:center;margin-top:46px;}

/* ============ NEWSLETTER ============ */
.newsletter{
  background:linear-gradient(180deg, rgba(18,13,9,0.55), rgba(18,13,9,0.85)), url('https://images.unsplash.com/photo-1516426122078-c23e76319801?ixlib=rb-4.0.3&auto=format&fit=crop&w=2070&q=80');
  background-size:cover;background-position:center;background-attachment:fixed;
  color:var(--paper);text-align:center;border-top:none;
}
.newsletter-content{max-width:680px;margin:0 auto;}
.newsletter h2{font-size:clamp(2rem,4vw,2.7rem);margin-bottom:16px;color:var(--paper);font-weight:600;}
.newsletter p{opacity:0.82;margin-bottom:36px;font-size:1.05rem;}
.newsletter-form{display:flex;max-width:520px;margin:0 auto;gap:0;border-radius:4px;overflow:hidden;box-shadow:var(--shadow-soft);}
.newsletter-form input{flex:1;padding:18px 22px;border:none;font-size:0.95rem;font-family:'Work Sans',sans-serif;background:var(--paper);color:var(--ink);}
.newsletter-form input:focus{outline:2px solid var(--brass-light);outline-offset:-2px;}
.newsletter-form button{border-radius:0;padding:18px 30px;}
.newsletter-note{margin-top:18px;font-size:0.82rem;opacity:0.65;font-family:'Space Mono',monospace;}

/* ============ FOOTER ============ */
footer{background:var(--rust);color:rgba(255,255,255,0.95);padding:90px 0 26px;border-top:1px solid rgba(255,255,255,0.15);}
.footer-content{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:50px;margin-bottom:56px;}
.footer-content.footer-columns-1{grid-template-columns:1fr;max-width:500px;}
.footer-content.footer-columns-2{grid-template-columns:1.3fr 1fr;}
.footer-content.footer-columns-3{grid-template-columns:1.3fr 1fr 1fr;}
.footer-content.footer-columns-4{grid-template-columns:1.1fr 0.9fr 0.9fr 0.9fr;}
.footer-widgets .widget{color:rgba(255,255,255,0.95);}
.footer-widgets .widget a{color:rgba(255,255,255,0.85);}
.footer-widgets .widget a:hover{color:#FFFFFF;}
.footer-logo-row{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
.footer-logo-badge{background:var(--cream-card);border-radius:8px;padding:12px 18px;display:inline-flex;box-shadow:var(--shadow-soft);}
.footer-about p{margin-bottom:22px;line-height:1.8;font-size:0.92rem;}
.footer-social{display:flex;gap:12px;}
.footer-social a{
  width:42px;height:42px;border-radius:50%;border:1.5px solid rgba(255,255,255,0.4);display:flex;
  align-items:center;justify-content:center;font-size:1rem;transition:.3s;color:#FFFFFF;
}
.footer-social a:hover{background:var(--dark-deep);border-color:var(--dark-deep);color:var(--brass-light);transform:translateY(-4px);}
.footer-links h3,.footer-contact h3{color:#FFFFFF;margin-bottom:22px;font-size:1.2rem;font-weight:600;position:relative;padding-bottom:12px;}
.footer-links h3:after,.footer-contact h3:after{content:'';position:absolute;width:36px;height:2px;background:var(--dark-deep);bottom:0;left:0;}
.footer-links ul li{margin-bottom:13px;}
.footer-links ul li a{display:flex;align-items:center;gap:9px;font-size:0.92rem;transition:.25s;color:rgba(255,255,255,0.95);}
.footer-links ul li a:hover{color:#FFFFFF;transform:translateX(6px);}
.footer-contact p{margin-bottom:16px;display:flex;align-items:flex-start;gap:13px;font-size:0.92rem;}
.footer-contact i{color:#FFFFFF;margin-top:3px;}
.footer-bottom{text-align:center;padding-top:26px;border-top:1px solid rgba(255,255,255,0.2);font-size:0.82rem;font-family:'Space Mono',monospace;opacity:0.75;}

/* ============ BACK TO TOP ============ */
.back-to-top{
  position:fixed;bottom:28px;right:28px;width:50px;height:50px;background:var(--rust);color:var(--paper);
  border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;
  transition:.3s;opacity:0;visibility:hidden;z-index:999;border:none;box-shadow:var(--shadow-soft);
}
.back-to-top.active{opacity:1;visibility:visible;}
.back-to-top:hover{background:var(--rust-deep);transform:translateY(-5px);}

/* ============ WHATSAPP FLOATING BUTTON ============ */
.whatsapp-btn{
  position:fixed;bottom:28px;left:28px;width:58px;height:58px;background:#25D366;color:#FFFFFF;
  border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.7rem;
  box-shadow:0 10px 26px rgba(37,211,102,0.45);z-index:999;transition:.3s;
}
.whatsapp-btn:hover{transform:translateY(-5px) scale(1.05);box-shadow:0 16px 32px rgba(37,211,102,0.55);}
.whatsapp-btn:after{
  content:'';position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;
  animation:whatsapp-pulse 2.4s ease-out infinite;
}
@keyframes whatsapp-pulse{
  0%{transform:scale(1);opacity:0.7;}
  100%{transform:scale(1.6);opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .whatsapp-btn:after{animation:none;}
}

/* ============ SCROLL REVEAL ============ */
.reveal{opacity:0;transform:translateY(36px);transition:all .8s cubic-bezier(.2,.8,.3,1);}
.reveal.visible{opacity:1;transform:translateY(0);}

/* ============ RESPONSIVE ============ */
@media (max-width:1100px){
  .hero .container{grid-template-columns:1fr;}
  .hero-side{display:none;}
  .features-grid{grid-template-columns:repeat(2,1fr);}
  .ticket-card{flex:0 0 calc(50% - 15px);}
  .footer-content,
  .footer-content.footer-columns-3,
  .footer-content.footer-columns-4{grid-template-columns:1fr 1fr;}
  .ticket-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  .ticket-strip .strip-contact a:nth-child(2){display:none;}
  .nav-menu{
    position:fixed;top:0;right:0;width:300px;height:100vh;background:#FFFFFF;
    padding:110px 30px 30px;transition:transform .35s;transform:translateX(100%);box-shadow:-12px 0 30px rgba(0,0,0,0.15);z-index:999;overflow-y:auto;
    flex-direction:column;align-items:stretch;
  }
  .nav-menu.active{transform:translateX(0);}
  .nav-list{flex-direction:column;gap:4px;}
  .dropdown-content{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:rgba(23,19,15,0.04);display:none;width:100%;margin:6px 0;}
  .dropdown.active > .dropdown-content{display:block;}
  /* Nested levels (2-4): on mobile these become indented accordions too,
     each toggled independently by tapping its own .subdropdown-toggle —
     see main.js. Flyout positioning is irrelevant on mobile, so it's
     reset back to static/stacked like the top-level dropdown. */
  .dropdown-content-flyout{
    position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    background:rgba(23,19,15,0.06);display:none;width:100%;margin:4px 0 4px 14px;
    border-top:none;border-left:2px solid var(--rust);
  }
  .subdropdown.active > .dropdown-content-flyout{display:block;}
  .subdropdown-toggle .subdropdown-caret{transition:transform .25s;}
  .subdropdown.active > .subdropdown-toggle .subdropdown-caret{transform:rotate(90deg);}
  .mobile-menu-btn{display:flex;align-items:center;justify-content:center;}
  .book-now-btn{margin:20px 0 0;width:100%;}
  section{padding:80px 0;}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .stat-item:nth-child(2){border-right:none;}
  .stats,.newsletter{background-attachment:scroll;}
}
@media (max-width:600px){
  .features-grid{gap:14px;}
  .tag-card{padding:22px 14px 18px;}
  .tag-card:nth-child(odd),.tag-card:nth-child(even){transform:none;}
  .tag-card:hover{transform:translateY(-6px);}
  .tag-card .feature-icon{width:46px;height:46px;font-size:1.1rem;margin:10px auto 12px;}
  .tag-card h3{font-size:1rem;margin-bottom:6px;}
  .tag-card p{font-size:0.8rem;line-height:1.5;}
  .tag-hole{top:10px;}
  .ticket-card{flex:0 0 100%;}
  .packages-slider-container{padding:0 30px;}
  .destinations-grid{grid-template-columns:1fr;}
  .ticket-grid{grid-template-columns:1fr;}
  .footer-content,
  .footer-content.footer-columns-1,
  .footer-content.footer-columns-2,
  .footer-content.footer-columns-3,
  .footer-content.footer-columns-4{grid-template-columns:1fr;gap:38px;}
  .rating-summary-card{flex-direction:column;text-align:center;}
  .hero{min-height:unset;padding:64px 0 56px;}
  .hero-ticket{padding:24px 22px 20px;}
  .hero-ticket h1{font-size:2rem;margin-bottom:14px;}
  .hero-ticket p{font-size:0.98rem;margin-bottom:22px;}
  .hero-btns{gap:12px;}
  .hero-btns .btn{padding:12px 22px;font-size:0.8rem;}
  .whatsapp-btn{width:50px;height:50px;font-size:1.4rem;bottom:20px;left:20px;}
  .back-to-top{bottom:20px;right:20px;}
}
@media (max-width:400px){
  .hero{padding:52px 0 44px;}
  .hero-ticket h1{font-size:1.7rem;}
}

/* ============ WORDPRESS-SPECIFIC TEMPLATES ============ */

/* Page/post WYSIWYG content areas */
.entry-content{max-width:820px;margin:0 auto;padding:60px 24px;line-height:1.8;font-size:1.05rem;}
.entry-content h2{font-size:2rem;margin:1.4em 0 0.6em;color:var(--ink);}
.entry-content h3{font-size:1.5rem;margin:1.2em 0 0.5em;}
.entry-content p{margin-bottom:1.2em;}
.entry-content img{border-radius:6px;margin:1.5em 0;}
.entry-content a{color:var(--rust);text-decoration:underline;}
.entry-content ul,.entry-content ol{margin:0 0 1.2em 1.4em;}
.page-title-band{background:var(--rust);color:#fff;padding:70px 0 50px;text-align:center;}
.page-title-band h1{color:#fff;font-size:2.6rem;margin:0;}
.page-title-band .breadcrumb{font-family:'Space Mono',monospace;font-size:0.8rem;opacity:0.85;margin-top:10px;}
.page-title-band .breadcrumb a{color:#fff;opacity:0.85;}

/* Single Safari Package page */
.single-safari-hero{position:relative;height:60vh;min-height:420px;background-size:cover;background-position:center;display:flex;align-items:flex-end;}
.single-safari-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,13,9,0.1),rgba(18,13,9,0.85));}
.single-safari-hero-content{position:relative;z-index:2;padding:50px 0;color:#fff;width:100%;}
.single-safari-hero-content .container{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;}
.single-safari-hero h1{color:#fff;font-size:clamp(2rem,4vw,3rem);margin-bottom:10px;}
.single-safari-meta-bar{background:var(--cream-card);border-bottom:1px solid rgba(23,19,15,0.1);padding:22px 0;position:sticky;top:0;z-index:900;}
.single-safari-meta-bar .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.single-safari-meta-bar .meta-price{font-family:'Fraunces',serif;font-size:1.8rem;font-weight:700;color:var(--rust);}
.single-safari-meta-bar .meta-price span{font-size:0.85rem;color:var(--ink-soft);font-weight:400;font-family:'Work Sans',sans-serif;}
.single-safari-body{max-width:900px;margin:0 auto;padding:60px 24px;}
.single-safari-features{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:30px 0 40px;list-style:none;padding:0;}

/* Itinerary timeline */
.itinerary-timeline{margin:24px 0 40px;position:relative;}
.itinerary-day{display:flex;gap:22px;position:relative;padding-bottom:32px;}
.itinerary-day:last-child{padding-bottom:0;}
.itinerary-day:before{
  content:'';position:absolute;left:20px;top:44px;bottom:0;width:2px;background:rgba(165,94,38,0.2);
}
.itinerary-day:last-child:before{display:none;}
.itinerary-day-marker{
  flex-shrink:0;width:42px;height:42px;border-radius:50%;background:var(--rust);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:700;
  font-size:1.1rem;position:relative;z-index:1;
}
.itinerary-day-content{padding-top:6px;}
.itinerary-day-content h4{font-size:1.15rem;font-weight:600;margin-bottom:6px;}
.itinerary-day-content p{color:var(--ink-soft);font-size:0.95rem;line-height:1.7;margin:0;}

/* Includes / Excludes */
.includes-excludes-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:24px 0 40px;}
.includes-col h4,.excludes-col h4{font-size:1.05rem;font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:8px;}
.includes-col h4{color:#2E7D32;}
.excludes-col h4{color:#B3261E;}
.includes-col h4 i{color:#2E7D32;}
.excludes-col h4 i{color:#B3261E;}
.includes-col ul,.excludes-col ul{list-style:none;padding:0;margin:0;}
.includes-col li,.excludes-col li{display:flex;align-items:flex-start;gap:10px;padding:8px 0;font-size:0.92rem;color:var(--ink-soft);border-bottom:1px solid rgba(23,19,15,0.06);}
.includes-col li i{color:#2E7D32;margin-top:3px;flex-shrink:0;}
.excludes-col li i{color:#B3261E;margin-top:3px;flex-shrink:0;}
.single-safari-features li{display:flex;align-items:center;gap:10px;background:var(--cream-card);padding:14px 18px;border-radius:6px;font-size:0.95rem;}
.single-safari-features li i{color:var(--rust);}
.related-safaris{background:var(--paper-deep);padding:80px 0;}

/* Archive / category listing grid */
.safari-archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding:60px 0;}
.archive-filter-bar{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;padding:40px 0 10px;}
.archive-filter-bar a{
  padding:10px 20px;border-radius:999px;border:1.5px solid rgba(23,19,15,0.18);font-size:0.85rem;
  font-weight:500;transition:.25s;
}
.archive-filter-bar a.active,.archive-filter-bar a:hover{background:var(--rust);border-color:var(--rust);color:#fff;}
.pagination{display:flex;justify-content:center;gap:8px;padding:30px 0 70px;}
.pagination a,.pagination span{
  width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:1.5px solid rgba(23,19,15,0.18);font-size:0.9rem;
}
.pagination .current{background:var(--rust);border-color:var(--rust);color:#fff;}
.pagination a:hover{background:var(--ink);border-color:var(--ink);color:#fff;}
.no-results{text-align:center;padding:100px 24px;}

/* Comments */
.comments-area{max-width:820px;margin:0 auto;padding:0 24px 80px;}
.comment-list{list-style:none;padding:0;}
.comment-body{background:var(--cream-card);border-radius:8px;padding:24px;margin-bottom:20px;}
.comment-form input,.comment-form textarea{width:100%;padding:14px 16px;border:1.5px solid rgba(23,19,15,0.15);border-radius:6px;font-family:'Work Sans',sans-serif;margin-bottom:14px;}
.comment-form textarea{min-height:140px;}

/* Widget areas */
.widget{margin-bottom:40px;}
.widget-title{font-family:'Fraunces',serif;font-size:1.2rem;margin-bottom:16px;}

@media (max-width:900px){
  .safari-archive-grid{grid-template-columns:repeat(2,1fr);}
  .single-safari-features{grid-template-columns:1fr;}
  .includes-excludes-grid{grid-template-columns:1fr;gap:24px;}
  .itinerary-day{gap:16px;}
  .single-safari-hero{height:42vh;min-height:280px;}
}
@media (max-width:600px){
  .safari-archive-grid{grid-template-columns:1fr;}
  .single-safari-hero{height:34vh;min-height:230px;}
  .single-safari-hero h1{font-size:1.6rem;}
  .single-safari-hero-content{padding:30px 0;}
}
