/*
Theme Name: Safari Kenya
Theme URI: https://example.com/safari-kenya
Author: Safari Kenya
Author URI: https://example.com
Description: A modern, fully customizable WordPress theme for tours, travel, and car rental companies in Kenya. Two equal services (safaris + car rentals), hero slider, multi-image galleries with smooth sliders, reservation flow with extras (baby seat, camping gear, driver hire), USD/KES dual pricing, WhatsApp & email top bar, M-Pesa Till + Visa/Mastercard footer.
Version: 1.7.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: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: safari-kenya
Tags: travel, tourism, car-rental, booking, custom-logo, custom-menu, custom-colors, featured-images, threaded-comments, translation-ready, block-styles, wide-blocks
*/

/* ===== Reset & Base ===== */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:'Inter','Helvetica Neue',Arial,sans-serif;line-height:1.6;color:#1f2937;background:var(--sk-bg,#faf7f2);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--sk-primary,#c2410c);text-decoration:none;transition:color .2s}
a:hover{color:var(--sk-accent,#0f766e)}
h1,h2,h3,h4,h5,h6{font-family:'Playfair Display',Georgia,serif;color:#111827;line-height:1.2;margin:0 0 .6em}
h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}
p{margin:0 0 1em}
.container{max-width:1200px;margin:0 auto;padding:0 1.25rem}

/* ===== Top bar ===== */
.site-topbar{background:#0f172a;color:#e5e7eb;font-size:.85rem}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;padding:.45rem 1.25rem;gap:1rem;flex-wrap:wrap}
.topbar-left{display:flex;gap:1.25rem;flex-wrap:wrap}
.topbar-link{color:#e5e7eb;display:inline-flex;align-items:center;gap:.4rem}
.topbar-link:hover{color:#fff}
.topbar-ico{opacity:.9}
.topbar-tag{color:#cbd5e1;font-style:italic}
@media(max-width:600px){.topbar-right{display:none}}

/* ===== Header ===== */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid #f1f5f9;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding-top:.9rem;padding-bottom:.9rem;gap:1rem}
.site-branding a{font-family:'Playfair Display',serif;font-weight:700;font-size:1.5rem;color:#111827}
.site-branding img{max-height:54px;width:auto}
.logo-placeholder{display:inline-flex;align-items:center;gap:.7rem}
.logo-mark{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:10px;background:linear-gradient(135deg,var(--sk-primary,#c2410c),var(--sk-accent,#0f766e));color:#fff;font-family:'Playfair Display',serif;font-weight:700;letter-spacing:.02em}
.logo-text{display:flex;flex-direction:column;line-height:1}
.logo-text strong{font-family:'Playfair Display',serif;font-size:1.35rem;color:#111827}
.logo-text em{font-style:normal;font-size:.7rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.12em;margin-top:.2rem}
.main-navigation ul{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem}
.main-navigation a{color:#374151;font-weight:500;font-size:.95rem}
.main-navigation a:hover,.main-navigation .current-menu-item>a{color:var(--sk-primary,#c2410c)}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:.5rem;font-size:1.5rem}

/* ===== Hero slider ===== */
.hero-slider{position:relative;min-height:620px;overflow:hidden;background:#1f2937}
.hero-slide{position:absolute;inset:0;background-position:center;background-size:cover;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center;opacity:0;transform:scale(1.04);transition:opacity 1s ease,transform 6s ease}
.hero-slide.is-active{opacity:1;transform:scale(1)}
.hero-content{padding:5rem 1.25rem}
.hero-content h1{color:#fff;font-size:3.4rem;margin-bottom:1rem;text-shadow:0 2px 22px rgba(0,0,0,.45)}
.hero-content p{font-size:1.2rem;max-width:720px;margin:0 auto 2rem;opacity:.95}
.hero-ctas{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center;margin-top:1rem}
.hero-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:2rem;cursor:pointer;z-index:3;display:grid;place-items:center;line-height:1;transition:background .2s}
.hero-arrow:hover{background:rgba(0,0,0,.7)}
.hero-prev{left:18px}.hero-next{right:18px}
.hero-dots{position:absolute;bottom:22px;left:0;right:0;display:flex;gap:.5rem;justify-content:center;z-index:3}
.hero-dot{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.45);cursor:pointer;transition:all .2s}
.hero-dot.is-active{background:#fff;width:28px;border-radius:6px}

/* ===== Buttons ===== */
.btn{display:inline-block;padding:.85rem 1.8rem;background:var(--sk-primary,#c2410c);color:#fff;border-radius:6px;font-weight:600;border:0;cursor:pointer;font-size:1rem;transition:transform .15s,box-shadow .2s,background .2s}
.btn:hover{background:#9a3412;color:#fff;transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,0,0,.15)}
.btn-outline{background:transparent;border:2px solid #fff;color:#fff}
.btn-outline:hover{background:#fff;color:var(--sk-primary,#c2410c)}
.btn-accent{background:var(--sk-accent,#0f766e)}
.btn-accent:hover{background:#115e59}
.btn-sm{padding:.55rem 1.1rem;font-size:.9rem}
.btn-block{display:block;width:100%;text-align:center;margin-top:.6rem}
.btn-wa{background:#25d366;color:#fff}
.btn-wa:hover{background:#1da851;color:#fff}

/* ===== Sections ===== */
.section{padding:5rem 0}
.section-alt{background:#fff}
body{background:var(--sk-bg,#faf7f2)}
.section-header{text-align:center;max-width:700px;margin:0 auto 3rem}
.section-header h2{margin-bottom:.5rem}
.section-header p{color:#6b7280;font-size:1.1rem}

/* ===== Grids ===== */
.grid{display:grid;gap:2rem}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.grid-3,.grid-2{grid-template-columns:1fr}}

/* ===== Services intro ===== */
.services-intro .service-card{display:block;padding:2rem;background:#fff;border:1px solid #f0e8dc;border-radius:14px;text-align:center;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
.services-intro .service-card:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(0,0,0,.08)}
.service-icon{font-size:3rem;line-height:1}
.service-card h2{margin:.5rem 0;font-family:'Playfair Display',serif}
.service-link{color:var(--sk-primary);font-weight:600}

/* ===== Tabs ===== */
.sk-tab-buttons{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.5rem}
.sk-tab-btn{background:#fff;border:1px solid #e7dfd1;padding:.5rem 1rem;border-radius:999px;cursor:pointer;font:inherit;color:#333;transition:all .15s}
.sk-tab-btn:hover{border-color:var(--sk-primary);color:var(--sk-primary)}
.sk-tab-btn.is-active{background:var(--sk-primary);border-color:var(--sk-primary);color:#fff}
.sk-tab-panel{display:none}.sk-tab-panel.is-active{display:block}

/* ===== Cards ===== */
.card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.06);transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(0,0,0,.12)}
.card-media{display:block;aspect-ratio:16/10;position:relative;overflow:hidden;background:#e5e7eb}
.card-slider{position:relative;width:100%;height:100%;overflow:hidden}
.card-slide{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transform:scale(1);transition:opacity .6s ease,transform 6s ease}
.card-slide.is-active{opacity:1}
.card-hover:hover .card-slide.is-active{transform:scale(1.12)}
.card-slider-dots{position:absolute;bottom:8px;left:0;right:0;display:flex;gap:5px;justify-content:center;z-index:2}
.card-slider-dots span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6);transition:all .2s}
.card-slider-dots span.is-active{background:#fff;width:18px;border-radius:4px}
.card-badge{position:absolute;top:.6rem;right:.6rem;background:var(--sk-primary,#c2410c);color:#fff;padding:.3rem .65rem;border-radius:4px;font-size:.75rem;font-weight:600;z-index:2}
.card-tag{position:absolute;top:.6rem;left:.6rem;background:rgba(0,0,0,.7);color:#fff;font-size:.7rem;font-weight:600;padding:.25rem .55rem;border-radius:4px;text-transform:uppercase;letter-spacing:.05em;z-index:2}
.card-body{padding:1.4rem;flex:1;display:flex;flex-direction:column;gap:.4rem}
.card h3{font-size:1.3rem;margin:0 0 .35rem}
.card-meta{color:#6b7280;font-size:.9rem}
.card-price{font-size:1.2rem;font-weight:700;color:var(--sk-accent,#0f766e);margin-top:auto;padding-top:.6rem}
.card-price .price-usd{font-weight:700;color:var(--sk-primary)}
.card-price .price-kes{font-size:.85em;color:#666;font-weight:500;margin-left:.35rem}
.card-price.big{font-size:1.6rem;margin:0 0 1rem}

/* ===== Single (tour + car) layout ===== */
.single-tour,.single-car{padding:2.5rem 0 4rem}
.tour-head{margin-bottom:1.5rem}
.single-grid{display:grid;grid-template-columns:1fr 380px;gap:2rem;margin-top:2rem}
@media(max-width:980px){.single-grid{grid-template-columns:1fr}}
.tour-section{background:#fff;border:1px solid #f0e8dc;border-radius:14px;padding:1.75rem;margin-bottom:1.5rem}
.itinerary{list-style:none;counter-reset:day;padding:0;margin:0}
.itinerary li{position:relative;padding:1rem 1rem 1rem 3.2rem;border-left:3px solid var(--sk-accent,#0f766e);margin-left:1.2rem;counter-increment:day}
.itinerary li::before{content:counter(day);position:absolute;left:-1.05rem;top:1rem;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--sk-accent,#0f766e);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.9rem}
.itinerary-title{font-weight:600;color:#111827;margin-bottom:.25rem}
.itinerary-desc{color:#4b5563;font-size:.95rem}
.checklist{list-style:none;padding:0;margin:0}
.checklist li{padding:.4rem 0 .4rem 1.6rem;position:relative;color:#374151}
.checklist.incl li::before{content:"✓";position:absolute;left:0;color:#16a34a;font-weight:700}
.checklist.excl li::before{content:"✕";position:absolute;left:0;color:#dc2626;font-weight:700}
.spec-list{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;color:#374151}

/* ===== Reservation aside ===== */
.single-aside{position:sticky;top:90px;align-self:start}
.reserve-box{background:#fff;border:1px solid #f0e8dc;border-radius:14px;padding:1.75rem;box-shadow:0 10px 30px rgba(0,0,0,.06)}
.reserve-box h3{margin-top:0}
.reserve-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}
@media(max-width:480px){.reserve-form .form-row{grid-template-columns:1fr}}
.reserve-form .form-group{display:flex;flex-direction:column}
.reserve-form label{font-size:.82rem;font-weight:600;color:#374151;margin-bottom:.3rem}
.reserve-form input,.reserve-form select,.reserve-form textarea{width:100%;padding:.55rem .65rem;border:1px solid #d6cdbb;border-radius:6px;font-size:.95rem;font-family:inherit;background:#fff}
.reserve-form input:focus,.reserve-form select:focus,.reserve-form textarea:focus{outline:0;border-color:var(--sk-primary);box-shadow:0 0 0 3px rgba(194,65,12,.12)}
.extras-block{margin:.75rem 0}
.extra-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;border:1px solid #ece3d2;border-radius:8px;margin-bottom:.4rem;cursor:pointer;background:#fbfaf6;transition:border-color .15s,background .15s}
.extra-item:hover{border-color:var(--sk-primary)}
.extra-item.highlight{background:#f0fdfa;border-color:#5eead4}
.extras-total{font-weight:700;font-size:1.1rem;color:var(--sk-primary);padding:.55rem .65rem;background:#fbfaf6;border:1px solid #ece3d2;border-radius:6px;text-align:center}
.extra-item>span:first-of-type{flex:1}
.extra-hours-wrap{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem;color:#6b6051;white-space:nowrap}
.extra-hours{width:56px;padding:.25rem .35rem;border:1px solid #ddd;border-radius:6px}
/* Client-facing add-ons list on the safari page */
.tour-extras-intro{color:#6b6051;margin:.2rem 0 .8rem}
.tour-extras-list{list-style:none;padding:0;margin:0;border:1px solid #ece3d2;border-radius:10px;overflow:hidden}
.tour-extra{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.7rem .9rem;border-bottom:1px solid #f0e9da}
.tour-extra:nth-child(even){background:#fbfaf6}
.tour-extra:last-child{border-bottom:0}
.tour-extra-name{font-weight:600}
.tour-extra-price{font-weight:700;color:var(--sk-primary);white-space:nowrap}
.tour-extra-price small{font-weight:500;color:#8a7e6c}
.form-message{padding:.7rem;border-radius:6px;margin-top:.6rem;display:none;font-size:.9rem}
.form-message.success{display:block;background:#d1fae5;color:#065f46}
.form-message.error{display:block;background:#fee2e2;color:#991b1b}

/* ===== Booking form (legacy/home) ===== */
.booking-form{background:#fff;padding:2.5rem;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.08)}
.booking-form h3{margin-top:0;text-align:center}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1rem}
.form-group label{display:block;font-size:.85rem;font-weight:600;color:#374151;margin-bottom:.4rem}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:.7rem;border:1px solid #d6cdbb;border-radius:6px;font-size:.95rem;font-family:inherit;background:#fff}

/* ===== Single content / pages ===== */
.single-content,.page-content{max-width:800px;margin:3rem auto;padding:0 1.25rem;background:#fff;border-radius:14px;box-shadow:0 4px 18px rgba(0,0,0,.04)}
.entry-content blockquote{border-left:4px solid var(--sk-primary,#c2410c);padding-left:1.5rem;font-style:italic;color:#4b5563;margin:1.5rem 0}

/* ===== sk-slider (single page main media) ===== */
.sk-slider{position:relative;border-radius:14px;overflow:hidden;background:#000;margin:1.25rem 0}
.sk-slider-track{position:relative;width:100%;aspect-ratio:16/9}
.sk-slide{position:absolute;inset:0;opacity:0;transition:opacity .55s ease}
.sk-slide.is-active{opacity:1}
.sk-slide img{width:100%;height:100%;object-fit:cover;display:block}
.sk-arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:0;background:rgba(0,0,0,.5);color:#fff;font-size:1.7rem;cursor:pointer;line-height:1;display:grid;place-items:center;z-index:3}
.sk-arrow:hover{background:rgba(0,0,0,.8)}
.sk-prev{left:14px}.sk-next{right:14px}
.sk-slider-thumbs{display:flex;gap:.4rem;padding:.5rem;background:#0008;position:absolute;bottom:0;left:0;right:0;overflow-x:auto;justify-content:center}
.sk-thumb{padding:0;border:2px solid transparent;background:none;cursor:pointer;border-radius:6px;overflow:hidden;width:74px;height:54px;flex:0 0 auto}
.sk-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.sk-thumb.is-active{border-color:#fff}

/* ===== Footer ===== */
.site-footer{background:#0f172a;color:#cbd5e1;padding:4rem 0 1.5rem;margin-top:4rem}
.site-footer h4{color:#fff;font-family:inherit;font-size:1.05rem;margin-bottom:1rem;letter-spacing:.02em}
.site-footer a{color:#cbd5e1}
.site-footer a:hover{color:#fff}
.footer-widgets{display:grid;gap:2rem;margin-bottom:2.5rem}
.footer-4col{grid-template-columns:repeat(4,1fr)}
@media(max-width:980px){.footer-4col{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.footer-4col{grid-template-columns:1fr}}
.footer-widgets ul{list-style:none;padding:0;margin:0}
.footer-widgets li{padding:.3rem 0}
.site-info{border-top:1px solid #1f2937;padding-top:1.5rem;text-align:center;font-size:.9rem;color:#94a3b8}

/* Footer recent posts */
.footer-posts li{display:flex;gap:.7rem;align-items:flex-start;padding:.55rem 0;border-bottom:1px dashed #1f2937}
.footer-posts li:last-child{border-bottom:0}
.fp-thumb{flex:0 0 56px;width:56px;height:56px;border-radius:8px;background:#1f2937 center/cover no-repeat}
.fp-body{display:flex;flex-direction:column;gap:.15rem;font-size:.88rem}
.fp-body a{color:#e2e8f0;line-height:1.3}
.fp-body a:hover{color:#fff}
.fp-date{color:#94a3b8;font-size:.75rem}

.footer-links li{padding:.35rem 0;border-bottom:1px dashed transparent}
.footer-links li a{display:inline-block}
.footer-links li a::before{content:"›";color:var(--sk-primary,#c2410c);margin-right:.45rem;font-weight:700}

.contact-list li{padding:.35rem 0;font-size:.9rem}
.footer-about{color:#94a3b8;font-size:.88rem;margin-bottom:.75rem}

/* Payment column */
.pay-cards{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0 1rem}
.pay-badge{display:inline-grid;place-items:center;background:#fff;color:#0f172a;font-weight:800;padding:.5rem .8rem;border-radius:6px;font-size:.9rem;min-width:70px;letter-spacing:.04em;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.pay-visa{color:#1a1f71;font-style:italic;font-size:1.05rem}
.pay-mc{display:inline-flex;flex-direction:column;align-items:center;line-height:1;font-size:.7rem;background:linear-gradient(90deg,#eb001b 50%,#f79e1b 50%);color:#fff;padding:.45rem .7rem;font-weight:800}
.pay-mc span{display:block;text-shadow:0 1px 1px rgba(0,0,0,.3)}
.mpesa-block{display:flex;gap:.75rem;align-items:center;background:#0b1226;border:1px solid #1f2937;border-radius:10px;padding:.6rem;margin-top:.5rem}
.mpesa-img{width:130px;height:auto;border-radius:6px;flex:0 0 auto}
.mpesa-meta{display:flex;flex-direction:column;font-size:.85rem;color:#cbd5e1}
.mpesa-meta strong{color:#fff;font-family:inherit;font-size:.95rem}
.mpesa-meta b{color:#fff;font-size:1.05rem;letter-spacing:.05em}

/* ===== WhatsApp floating ===== */
.whatsapp-float{position:fixed;bottom:24px;right:24px;width:60px;height:60px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(37,211,102,.5);z-index:9999;transition:transform .2s,box-shadow .2s;text-decoration:none}
.whatsapp-float:hover{transform:scale(1.08);box-shadow:0 12px 32px rgba(37,211,102,.65);color:#fff}
@media(max-width:480px){.whatsapp-float{bottom:16px;right:16px;width:54px;height:54px}}

/* ===== Utilities ===== */
.text-center{text-align:center}
.mt-2{margin-top:2rem}
.alignwide{max-width:1100px;margin-left:auto;margin-right:auto}
.alignfull{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);max-width:100vw}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* ===== Responsive ===== */
@media(max-width:768px){
  .hero-content h1{font-size:2.2rem}
  .hero-content p{font-size:1rem}
  h1{font-size:1.85rem}h2{font-size:1.5rem}
  .menu-toggle{display:block}
  .main-navigation{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-top:1px solid #f1f5f9;padding:1rem}
  .main-navigation.toggled{display:block}
  .main-navigation ul{flex-direction:column;gap:.5rem}
  .section{padding:3rem 0}
}

/* ===== v1.3 enhancements ===== */

/* Header colors via vars */
.site-header{background:var(--sk-header-bg,#fff)}
.site-branding a,.site-branding .logo-text strong{color:var(--sk-header-text,#1f2937)}
.site-topbar{background:var(--sk-topbar-bg,#0f172a);color:var(--sk-topbar-text,#e5e7eb)}
.topbar-link{color:var(--sk-topbar-text,#e5e7eb)}
.topbar-right{display:flex;align-items:center;gap:1rem}

/* Floating CTA buttons centered above menu in header */
.header-floating-ctas{
  position:absolute;left:50%;top:100%;
  transform:translate(-50%,-50%);
  display:flex;gap:.6rem;z-index:60;
  background:transparent;
}
.site-header{position:sticky;overflow:visible}
.header-inner{position:relative}
.hcta{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.75rem 1.2rem;border-radius:999px;
  font-weight:700;font-size:.95rem;
  color:#fff;text-decoration:none;
  box-shadow:0 10px 25px rgba(0,0,0,.18);
  transition:transform .2s,box-shadow .2s,filter .2s;
}
.hcta:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.25);color:#fff;filter:brightness(1.05)}
.hcta-wa{background:linear-gradient(135deg,#25d366,#1ab552)}
.hcta-call{background:linear-gradient(135deg,var(--sk-primary,#c2410c),var(--sk-accent,#0f766e))}
@media(max-width:768px){
  .header-floating-ctas{position:static;transform:none;justify-content:center;margin:0 auto .6rem;padding:.4rem 0;flex-wrap:wrap}
  .hcta{padding:.6rem 1rem;font-size:.85rem}
}

/* Menu — bigger, fancier, hover effects */
.main-navigation ul{gap:2rem}
.main-navigation > ul > li > a,
.main-navigation a{
  color:var(--sk-header-text,#1f2937);
  font-weight:600;font-size:1.05rem;letter-spacing:.01em;
  position:relative;padding:.5rem 0;
  text-transform:capitalize;
}
.main-navigation > ul > li > a::after{
  content:'';position:absolute;left:0;right:0;bottom:0;
  height:3px;border-radius:3px;
  background:linear-gradient(90deg,var(--sk-primary),var(--sk-accent));
  transform:scaleX(0);transform-origin:center;transition:transform .3s ease;
}
.main-navigation > ul > li > a:hover::after,
.main-navigation .current-menu-item > a::after{transform:scaleX(1)}
.main-navigation > ul > li > a:hover{color:var(--sk-primary);transform:translateY(-1px)}
.main-navigation a{transition:color .2s,transform .2s}
/* Submenu styling */
.main-navigation li{position:relative}
.main-navigation .sub-menu{
  position:absolute;top:100%;left:0;min-width:220px;
  background:#fff;border-radius:10px;
  box-shadow:0 14px 40px rgba(0,0,0,.12);
  padding:.5rem;display:none;flex-direction:column;gap:0;z-index:55;
}
.main-navigation li:hover > .sub-menu{display:flex}
.main-navigation .sub-menu a{padding:.6rem .9rem;border-radius:8px;font-size:.95rem}
.main-navigation .sub-menu a:hover{background:linear-gradient(135deg,rgba(194,65,12,.08),rgba(15,118,110,.08));color:var(--sk-primary)}

/* Social icons */
.sk-socials{display:inline-flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.sk-social{
  width:36px;height:36px;border-radius:50%;
  display:inline-grid;place-items:center;
  background:rgba(255,255,255,.08);color:#fff;
  transition:transform .2s,background .2s,color .2s;
}
.sk-social svg{width:18px;height:18px}
.sk-social:hover{transform:translateY(-2px) scale(1.08);color:#fff}
.sk-social-facebook:hover{background:#1877f2}
.sk-social-instagram:hover{background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af)}
.sk-social-twitter:hover{background:#000}
.sk-social-youtube:hover{background:#ff0000}
.sk-social-tiktok:hover{background:#000}
.sk-social-linkedin:hover{background:#0a66c2}
.sk-social-tripadvisor:hover{background:#00aa6c}
.topbar-socials .sk-social{width:28px;height:28px;background:rgba(255,255,255,.1)}
.topbar-socials .sk-social svg{width:14px;height:14px}
.footer-socials{margin-top:1rem}

/* Footer color tokens */
.site-footer{background:var(--sk-footer-bg,#0b1226);color:var(--sk-footer-text,#cbd5e1);padding:4rem 0 1.5rem}
.site-footer h4{color:#fff;font-family:'Playfair Display',serif;font-size:1.1rem;margin-bottom:1rem}
.site-footer a{color:var(--sk-footer-text,#cbd5e1)}
.site-footer a:hover{color:#fff}
.footer-widgets.footer-4col{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
@media(max-width:900px){.footer-widgets.footer-4col{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.footer-widgets.footer-4col{grid-template-columns:1fr}}
.footer-posts{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.85rem}
.footer-posts li{display:flex;gap:.7rem}
.fp-thumb{width:60px;height:60px;border-radius:8px;background-size:cover;background-position:center;flex:0 0 60px}
.fp-body{display:flex;flex-direction:column;gap:.2rem;font-size:.9rem}
.fp-date{color:#94a3b8;font-size:.78rem}
.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem}
.contact-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem;font-size:.95rem}
.site-info{border-top:1px solid rgba(255,255,255,.08);margin-top:2.5rem;padding-top:1.2rem;text-align:center;font-size:.85rem;color:#94a3b8}

/* Payment badges (extended) */
.pay-cards{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}
.pay-badge{display:inline-block;padding:.45rem .75rem;border-radius:6px;color:#fff;font-weight:700;font-size:.8rem;letter-spacing:.04em;font-family:'Inter',sans-serif}
.pay-visa{background:#1a1f71}
.pay-mc{background:#eb001b;display:inline-flex;flex-direction:column;line-height:1;padding:.35rem .55rem;font-size:.65rem}
.pay-amex{background:#006fcf}
.pay-disc{background:#f47216}
.pay-paypal{background:linear-gradient(135deg,#003087,#009cde)}
.pay-stripe{background:#635bff}
.pay-note{font-size:.85rem;color:#94a3b8;margin-top:.4rem}
.paypal-btn{display:inline-block;background:#009cde;color:#fff!important;padding:.35rem .8rem;border-radius:5px;font-weight:600;font-size:.85rem;margin-left:.4rem}
.paypal-btn:hover{background:#003087}

/* Contact form (shortcode) */
.sk-contact-form{display:flex;flex-direction:column;gap:1rem;background:#fff;border:1px solid #f0e8dc;border-radius:14px;padding:1.5rem;box-shadow:0 8px 24px rgba(0,0,0,.05)}
.sk-contact-form h3{margin:0 0 .4rem}
.sk-field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.sk-field-row{grid-template-columns:1fr}}
.sk-contact-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600;color:#374151}
.sk-contact-form input,.sk-contact-form textarea{
  width:100%;padding:.7rem .85rem;border:1px solid #e5e7eb;border-radius:8px;
  font:inherit;background:#fafafa;transition:border-color .2s,box-shadow .2s;
}
.sk-contact-form input:focus,.sk-contact-form textarea:focus{
  border-color:var(--sk-primary);outline:none;background:#fff;
  box-shadow:0 0 0 3px rgba(194,65,12,.12);
}
.form-message{padding:.7rem 1rem;border-radius:8px;font-size:.9rem;display:none}
.form-message.success{display:block;background:#ecfdf5;color:#065f46;border:1px solid #6ee7b7}
.form-message.error{display:block;background:#fef2f2;color:#991b1b;border:1px solid #fca5a5}

/* Contact page layout */
.sk-contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:2rem;margin:2rem 0}
@media(max-width:768px){.sk-contact-grid{grid-template-columns:1fr}}
.sk-contact-card{background:#fff;border:1px solid #f0e8dc;border-radius:14px;padding:1.5rem}
.sk-contact-card h3{margin-top:0}
.sk-map-wrap{position:relative;width:100%;padding-top:42%;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.06)}
.sk-map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Card slider arrows */
.card-slider{position:relative}
.card-slider-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:34px;height:34px;border-radius:50%;border:0;
  background:rgba(0,0,0,.45);color:#fff;cursor:pointer;
  display:grid;place-items:center;font-size:1.4rem;line-height:1;
  opacity:0;transition:opacity .2s,background .2s;z-index:3;
}
.card-slider:hover .card-slider-arrow{opacity:1}
.card-slider-arrow:hover{background:rgba(0,0,0,.7)}
.card-slider-prev{left:8px}
.card-slider-next{right:8px}
.card-slider-dots{position:absolute;bottom:8px;left:0;right:0;display:flex;gap:5px;justify-content:center;z-index:3}
.card-slider-dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.55);transition:all .2s}
.card-slider-dots span.is-active{background:#fff;width:20px;border-radius:5px}

/* Section alt uses var */
.section-alt{background:var(--sk-section-alt,#fff)}

/* About page polish */
.page-content{max-width:900px;margin:0 auto;padding:3rem 1.25rem}
.page-content .entry-header h1{font-size:2.6rem;text-align:center;margin-bottom:1.5rem}
.page-content h2,.page-content h3{margin-top:1.8em}
.page-content ul{padding-left:1.2rem}
.page-content li{margin-bottom:.45rem}

/* External thumbnail */
.sk-ext-thumb{width:100%;height:auto;display:block;border-radius:10px}

/* Button uses tokens */
.btn{background:var(--sk-btn,var(--sk-primary));color:var(--sk-btn-text,#fff)}
.btn:hover{background:color-mix(in srgb,var(--sk-btn) 80%,#000);color:var(--sk-btn-text,#fff)}
a{color:var(--sk-link,var(--sk-primary))}

/* Archive page header polish */
.section-header h1{font-size:2.4rem}

/* Hide legacy mpesa styles cleanly (block kept for backward compat) */
.mpesa-block{display:none}

/* v1.4 — pin location block (replaces the embedded Google map) */
.sk-pin-location{background:#fff7ed;border:1px solid #fed7aa;border-left:4px solid #ea580c;border-radius:12px;padding:1rem 1.25rem;margin-top:.5rem;box-shadow:0 8px 24px rgba(0,0,0,.05)}
.sk-pin-location p{margin:.25rem 0;color:#1f2937}
.sk-pin-ico{display:inline-block;font-size:1.15rem;margin-right:.35rem}

/* ============ v1.5: Lightbox ============ */
.sk-lightbox{position:fixed;inset:0;background:rgba(8,12,24,.92);backdrop-filter:blur(6px);z-index:99999;display:none;align-items:center;justify-content:center}
.sk-lightbox.is-open{display:flex}
.sk-lightbox .sk-lb-stage{margin:0;text-align:center;max-width:min(92vw,1200px);max-height:90vh;position:relative}
.sk-lightbox img{max-width:92vw;max-height:78vh;display:block;margin:0 auto;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08);background:#111}
.sk-lightbox figcaption{color:#f8fafc;margin-top:1rem;font-size:1rem;letter-spacing:.02em}
.sk-lightbox .sk-lb-count{color:#cbd5e1;font-size:.85rem;margin-top:.25rem}
.sk-lightbox .sk-lb-close,.sk-lightbox .sk-lb-prev,.sk-lightbox .sk-lb-next{
  position:absolute;background:rgba(255,255,255,.1);color:#fff;border:0;cursor:pointer;
  width:54px;height:54px;border-radius:50%;font-size:2rem;line-height:1;display:grid;place-items:center;
  transition:all .2s;backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(0,0,0,.3)
}
.sk-lightbox .sk-lb-close{top:24px;right:24px;font-size:1.8rem}
.sk-lightbox .sk-lb-prev{left:max(2vw,18px);top:50%;transform:translateY(-50%)}
.sk-lightbox .sk-lb-next{right:max(2vw,18px);top:50%;transform:translateY(-50%)}
.sk-lightbox button:hover{background:rgba(255,255,255,.22);transform:translateY(-50%) scale(1.08)}
.sk-lightbox .sk-lb-close:hover{transform:scale(1.08)}
@keyframes sk-pop {
  0%   { transform: scale(.85) translateY(20px); opacity:0; filter: blur(8px); }
  60%  { transform: scale(1.03) translateY(-4px); opacity:1; filter: blur(0); }
  100% { transform: scale(1) translateY(0); opacity:1; }
}
.sk-lightbox img.sk-pop{animation:sk-pop .45s cubic-bezier(.2,.9,.3,1.2)}

/* Card slider clickable cue */
.card-slider{cursor:zoom-in}
.card-slider::after{
  content:"🔍";position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;
  background:rgba(0,0,0,.45);color:#fff;display:grid;place-items:center;font-size:.85rem;
  opacity:0;transition:opacity .2s;pointer-events:none;z-index:4
}
.card-hover:hover .card-slider::after{opacity:1}

/* ============ v1.5: Booking summary ============ */
.booking-summary{margin-top:1rem;padding:.85rem 1rem;background:linear-gradient(180deg,#fbfaf6,#f4eedf);border:1px solid #ece3d2;border-radius:10px}
.booking-summary .bs-row{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.95rem;color:#374151}
.booking-summary .bs-row strong{font-variant-numeric:tabular-nums;color:#111827}
.booking-summary .bs-total{margin-top:.4rem;padding-top:.55rem;border-top:1px dashed #d6c9aa;font-size:1.1rem}
.booking-summary .bs-total strong{color:var(--sk-primary,#c2410c);font-size:1.25rem}
.booking-summary .bs-note{display:block;margin-top:.4rem;color:#6b7280;font-size:.78rem;line-height:1.4}

/* Topbar removed in v1.5 */
.site-topbar{display:none !important}

/* ============ v1.6: Page Heroes ============ */
.sk-page-hero {
  position: relative;
  min-height: 320px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; text-align: center;
  overflow: hidden;
  margin-bottom: 2rem;
}
.sk-page-hero-bg,
.sk-page-hero-slider .hero-slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transition: opacity 1.2s ease;
}
.sk-page-hero-slider .hero-slide { opacity: 0; }
.sk-page-hero-slider .hero-slide.is-active { opacity: 1; }
.sk-page-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.6));
}
.sk-page-hero-inner {
  position: relative; z-index: 2; padding: 4rem 1.25rem;
  max-width: 880px;
}
.sk-page-hero-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 5vw, 3.4rem);
  margin: 0 0 .5rem; color: #fff; line-height: 1.1;
  text-shadow: 0 2px 16px rgba(0,0,0,.5);
}
.sk-page-hero-sub {
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  opacity: .95; margin: 0 auto; max-width: 640px;
}

/* ============ v1.6: FAQ Accordion ============ */
.sk-faqs { max-width: 820px; margin: 2rem auto; }
.sk-faq { border: 1px solid #e5e7eb; border-radius: 10px; margin-bottom: .75rem; background: #fff; overflow: hidden; transition: box-shadow .2s; }
.sk-faq:hover { box-shadow: 0 4px 12px rgba(0,0,0,.05); }
.sk-faq-q {
  width: 100%; text-align: left; padding: 1.1rem 1.25rem;
  background: transparent; border: 0; cursor: pointer;
  font-size: 1.05rem; font-weight: 600; color: #1f2937;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.sk-faq-ico { font-size: 1.4rem; line-height: 1; color: var(--sk-primary, #c2410c); transition: transform .25s; }
.sk-faq.is-open .sk-faq-ico { transform: rotate(45deg); }
.sk-faq-a { max-height: 0; overflow: hidden; transition: max-height .35s ease, padding .25s; padding: 0 1.25rem; }
.sk-faq.is-open .sk-faq-a { max-height: 600px; padding: 0 1.25rem 1.1rem; }
.sk-faq-a p { margin: 0; color: #4b5563; line-height: 1.65; }

/* ============ v1.6: Custom add-ons in safari form ============ */
.add-extra-row { display: flex; gap: .5rem; margin-top: .75rem; flex-wrap: wrap; align-items: center; }
.add-extra-row input { flex: 1; min-width: 120px; padding: .55rem .7rem; border: 1px solid #d1d5db; border-radius: 6px; }
.btn-outline { background: transparent; border: 1px solid var(--sk-primary, #c2410c); color: var(--sk-primary, #c2410c); }
.btn-outline:hover { background: var(--sk-primary, #c2410c); color: #fff; }
.extra-custom { position: relative; padding-right: 2rem; }
.extra-remove { position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); background: transparent; border: 0; font-size: 1.25rem; line-height: 1; color: #b91c1c; cursor: pointer; padding: .25rem .5rem; }
.extras-help { color: #6b7280; margin-top: .5rem; }

/* ============ v1.6: Rich itinerary bullets ============ */
.itinerary-rich .itinerary-day { margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px dashed #e5e7eb; }
.itinerary-rich .itinerary-day:last-child { border-bottom: 0; }
.itinerary-bullets { margin: .5rem 0 0 1.25rem; padding: 0; color: #4b5563; }
.itinerary-bullets li { margin: .25rem 0; line-height: 1.55; }

/* ============================================================
 * v1.7.0 — Four-tab safari template
 * ============================================================ */
.sk-tabs { margin-bottom: 2rem; }
.sk-tablist { display: flex; flex-wrap: wrap; gap: .25rem; border-bottom: 2px solid #e5e7eb; margin-bottom: 1.5rem; }
.sk-tab-btn {
	appearance: none; background: transparent; border: none; cursor: pointer;
	padding: .8rem 1.3rem; font-size: 1rem; font-weight: 600; color: #6b7280;
	border-bottom: 3px solid transparent; margin-bottom: -2px; transition: color .2s, border-color .2s;
}
.sk-tab-btn:hover { color: var(--sk-primary, #c2410c); }
.sk-tab-btn.is-active { color: var(--sk-primary, #c2410c); border-bottom-color: var(--sk-primary, #c2410c); }
.sk-tab-panel { display: none; animation: skFade .25s ease; }
.sk-tab-panel.is-active { display: block; }
@keyframes skFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.sk-block-title { font-size: 1.4rem; margin: 1.8rem 0 1rem; }

/* Top Features / Activities grid */
.sk-features-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
.sk-feature { display: flex; gap: .9rem; align-items: flex-start; background: var(--sk-section-alt, #fff); border: 1px solid #eee; border-radius: 12px; padding: 1rem; }
.sk-feat-icon { color: var(--sk-icon, var(--sk-primary, #c2410c)); font-size: 28px; width: 28px; height: 28px; line-height: 28px; flex: 0 0 auto; }
.sk-feat-icon.dashicons { font-size: 28px; width: 28px; height: 28px; }
.sk-feat-glyph { font-size: 26px; }
.sk-feature-text h3 { margin: 0 0 .25rem; font-size: 1.05rem; }
.sk-feature-text p { margin: 0; color: #555; font-size: .92rem; line-height: 1.45; }

/* Accommodation & Meals table */
.sk-acc-table { width: 100%; border-collapse: collapse; margin-top: .5rem; }
.sk-acc-table th, .sk-acc-table td { border: 1px solid #e5e7eb; padding: .6rem .7rem; text-align: left; vertical-align: top; }
.sk-acc-table thead th { background: var(--sk-primary, #c2410c); color: #fff; }
.sk-acc-table th:nth-child(n+3), .sk-acc-table td.sk-meal { text-align: center; width: 42px; }
.sk-acc-day { font-weight: 700; text-align: center; width: 48px; }
.sk-acc-name { color: #6b7280; font-size: .88rem; }
.sk-meal { font-weight: 700; }
.sk-acc-note { color: #6b7280; margin-top: .5rem; }

/* Itinerary list */
.sk-itinerary { list-style: none; margin: 0; padding: 0; }
.sk-it-day { display: flex; gap: 1rem; padding: 1.2rem 0; border-bottom: 1px solid #eee; }
.sk-it-num { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; background: var(--sk-primary, #c2410c); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.sk-it-body { flex: 1; min-width: 0; }
.sk-it-title { margin: 0 0 .3rem; font-size: 1.15rem; }
.sk-it-desc { margin: 0 0 .6rem; color: #444; }
.sk-it-meta { margin: .2rem 0; color: #555; font-size: .92rem; display: flex; align-items: center; gap: .4rem; }
.sk-it-meta .dashicons { color: var(--sk-icon, var(--sk-primary, #c2410c)); font-size: 18px; width: 18px; height: 18px; }
.sk-it-activities { margin: .5rem 0 .6rem 1.1rem; }
.sk-it-activities li { margin: .15rem 0; }

/* Thumbnail gallery */
.sk-thumbs { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
.sk-thumb-btn { position: relative; width: 96px; height: 96px; border: none; border-radius: 8px; cursor: pointer; background-size: cover; background-position: center; padding: 0; }
.sk-thumb-more { position: absolute; inset: 0; background: rgba(0,0,0,.55); color: #fff; font-weight: 700; font-size: 1.1rem; display: flex; align-items: center; justify-content: center; border-radius: 8px; }

/* Rates table */
.sk-rates-wrap { overflow-x: auto; }
.sk-rates-table { width: 100%; border-collapse: collapse; }
.sk-rates-table th, .sk-rates-table td { border: 1px solid #e5e7eb; padding: .7rem .9rem; text-align: center; }
.sk-rates-table thead th { background: var(--sk-primary, #c2410c); color: #fff; }
.sk-rates-table tbody tr:nth-child(even) { background: #faf7f2; }
.sk-rate-label { text-align: left; font-weight: 600; }

/* Inclusions */
.sk-incl-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.sk-incl-list { list-style: none; margin: 0; padding: 0; }
.sk-incl-list li { display: flex; gap: .6rem; align-items: flex-start; padding: .55rem 0; border-bottom: 1px dashed #eee; }
.sk-incl-icon { flex: 0 0 auto; font-size: 22px; width: 22px; height: 22px; }
.sk-incl-yes .sk-incl-icon { color: #16a34a; }
.sk-incl-no .sk-incl-icon { color: #dc2626; }
.sk-incl-text { display: flex; flex-direction: column; }
.sk-incl-text small { color: #6b7280; }

/* Lightbox */
.sk-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.9); display: none; align-items: center; justify-content: center; z-index: 9999; }
.sk-lightbox.is-open { display: flex; }
.sk-lb-img { max-width: 90vw; max-height: 85vh; border-radius: 6px; }
.sk-lb-close, .sk-lb-prev, .sk-lb-next { position: absolute; background: rgba(255,255,255,.15); color: #fff; border: none; cursor: pointer; font-size: 2rem; line-height: 1; width: 52px; height: 52px; border-radius: 50%; }
.sk-lb-close { top: 1rem; right: 1rem; }
.sk-lb-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.sk-lb-next { right: 1rem; top: 50%; transform: translateY(-50%); }
.sk-lb-close:hover, .sk-lb-prev:hover, .sk-lb-next:hover { background: rgba(255,255,255,.3); }

@media (max-width: 640px) {
	.sk-features-grid, .sk-incl-grid { grid-template-columns: 1fr; }
	.sk-thumb-btn { width: 72px; height: 72px; }
}
