/*
Theme Name: Zula Zula Redesign
Theme URI: https://zulazula.africa/
Author: Zula Zula
Description: Lightweight custom theme for Zula Zula Adventure Bus, redesigned for fast mobile connections.
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: zula
*/
:root{--bg:#E0E2DB;--ink:#19241d;--muted:#526057;--green:#244f37;--lime:#d6f55f;--paper:#f6f7f2;--line:rgba(25,36,29,.16);--radius:22px;--shadow:0 16px 40px rgba(25,36,29,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit}button,input,select,textarea{font:inherit}.shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}.section{padding:96px 0}.skip-link{position:fixed;left:12px;top:-100px;z-index:999;background:#fff;padding:10px}.skip-link:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(224,226,219,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.nav-wrap{height:76px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;line-height:1}.brand-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:var(--lime);font-weight:900;font-size:13px;letter-spacing:-1px}.brand b{display:block;font-size:17px;letter-spacing:.08em}.brand small{display:block;margin-top:5px;font-size:8px;letter-spacing:.18em;color:var(--muted)}.site-nav{display:flex;align-items:center;gap:27px}.site-nav>a{text-decoration:none;font-weight:700;font-size:13px}.site-nav>a:hover{color:var(--green)}.menu-toggle{display:none;background:none;border:0;padding:10px}.menu-toggle span:not(.sr-only){display:block;width:26px;height:2px;background:var(--ink);margin:5px}
.button{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border:1px solid var(--lime);border-radius:999px;background:var(--lime);color:#172018;text-decoration:none;font-weight:800;cursor:pointer;transition:.2s}.button:hover{transform:translateY(-2px);box-shadow:0 9px 20px rgba(0,0,0,.12)}.button-small{min-height:40px;padding:8px 17px;font-size:13px}.button-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}.button-dark{background:var(--ink);border-color:var(--ink);color:#fff}.eyebrow{margin:0 0 11px;text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:900;color:var(--green)}.eyebrow.light{color:var(--lime)}h1,h2,h3{line-height:1.06;margin-top:0}h1{font-size:clamp(45px,7vw,94px);letter-spacing:-.06em;margin-bottom:24px}h2{font-size:clamp(36px,5vw,62px);letter-spacing:-.045em;margin-bottom:20px}h3{font-size:22px;letter-spacing:-.025em}.lead{max-width:650px;color:var(--muted);font-size:18px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:35px}.section-head h2{margin-bottom:12px}
.hero{height:min(780px,calc(100svh - 76px));min-height:600px;position:relative;display:flex;align-items:end;overflow:hidden;background:#1d2a22}.hero-slides{position:absolute;inset:0;overflow:hidden}.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-image{object-fit:cover;object-position:center;opacity:0;transition:opacity 1.2s ease}.hero-image.is-active{opacity:1}.hero-shade{background:linear-gradient(90deg,rgba(10,24,16,.86) 0%,rgba(10,24,16,.42) 55%,rgba(10,24,16,.05)),linear-gradient(0deg,rgba(10,24,16,.5),transparent 55%)}.hero-content{position:relative;color:white;padding-bottom:86px}.hero-content p:not(.eyebrow){font-size:20px;max-width:570px}.hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.ticker{background:var(--green);color:#fff;overflow:hidden;border-top:1px solid rgba(255,255,255,.2);white-space:nowrap}.ticker-track{display:inline-flex;align-items:center;gap:45px;padding:18px 0;animation:ticker 72s linear infinite}.ticker-track span{font-size:16px;letter-spacing:.08em;font-weight:800}.ticker-track em{font-style:normal;color:var(--lime);margin-left:8px;font-weight:900}.ticker-track span:before{content:'•';color:var(--lime);margin-right:45px}@keyframes ticker{to{transform:translateX(-50%)}}
.trips-short{padding-bottom:70px}.trip-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;min-height:480px}.trip-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#c8cdc5}.trip-media img{width:100%;height:100%;object-fit:cover;transition:.35s}.trip-media:hover img{transform:scale(1.03)}.trip-price{position:absolute;left:12px;bottom:12px;background:var(--lime);padding:6px 10px;border-radius:999px;font-weight:900;font-size:12px}.trip-card-body{padding:21px;display:flex;flex-direction:column;flex:1}.trip-card h3{font-size:20px;margin-bottom:10px}.trip-card p{font-size:14px;color:var(--muted);margin-top:0}.trip-depart{font-size:10px!important;text-transform:uppercase;letter-spacing:.13em;font-weight:900;color:var(--green)!important}.text-link{font-size:13px;font-weight:900;text-decoration:none;margin-top:auto}.text-link span{color:var(--green)}
.about-split{background:var(--paper)}.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.image-stack{position:relative}.image-stack img{width:100%;border-radius:var(--radius);aspect-ratio:4/3;object-fit:cover}.image-stack span{position:absolute;right:-24px;bottom:-24px;background:var(--lime);padding:24px;border-radius:18px;font-weight:900;font-size:20px;line-height:1.15}.split-copy>p:not(.eyebrow){color:var(--muted)}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:35px;padding-top:25px;gap:12px}.stat-row b,.stat-row span{display:block}.stat-row b{font-size:17px}.stat-row span{font-size:11px;color:var(--muted);margin-top:3px}
.design{background:var(--green);color:#fff}.design-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw;align-items:start}.design-grid h2{max-width:500px}.design-grid>div>p:not(.eyebrow){color:rgba(255,255,255,.75)}.check-list{list-style:none;padding:0;margin:30px 0}.check-list li{border-top:1px solid rgba(255,255,255,.15);padding:11px 0}.check-list li:before{content:'✓';color:var(--lime);margin-right:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:block}.form-grid label span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;margin:0 0 5px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:13px 14px;min-height:49px}.form-grid textarea{resize:vertical}.design-form{background:var(--paper);color:var(--ink);padding:28px;border-radius:var(--radius)}.full{grid-column:1/-1}.honeypot{position:absolute!important;left:-9999px!important}.form-note{font-size:12px;color:var(--muted)}
.details{background:var(--bg)}.details-list{border-top:1px solid var(--line)}.detail-card{display:grid;grid-template-columns:190px 1fr 190px;gap:28px;align-items:center;padding:25px 0;border-bottom:1px solid var(--line);scroll-margin-top:95px}.detail-media img{width:190px;height:135px;object-fit:cover;border-radius:16px}.detail-copy h3{margin-bottom:9px}.detail-copy>p{margin:5px 0;color:var(--muted)}details{margin-top:11px}summary{cursor:pointer;font-size:13px;font-weight:900;color:var(--green)}details p,details ul{font-size:14px}.detail-copy ul{color:var(--muted);margin:8px 0 0;padding-left:18px}.detail-action{display:flex;flex-direction:column;align-items:flex-start}.detail-action strong{font-size:20px}.detail-action small{color:var(--muted);margin-bottom:12px}
.shuttles{background:var(--paper)}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:45px}.service-grid article{background:var(--paper);padding:32px 25px;min-height:300px}.service-no{color:var(--green);font-size:11px;font-weight:900}.service-grid h3{margin-top:65px}.service-grid p{color:var(--muted);font-size:14px}.faq-section{background:var(--paper)}.faq-list{border-top:1px solid var(--line)}.faq-list details{margin:0;border-bottom:1px solid var(--line);background:transparent}.faq-list summary{position:relative;list-style:none;padding:23px 56px 23px 0;color:var(--ink);font-size:17px;font-weight:900;cursor:pointer}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:4px;top:50%;transform:translateY(-50%);width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--green);font-size:22px}.faq-list details[open] summary:after{content:'−'}.faq-list details>div{max-width:880px;padding:0 54px 21px 0}.faq-list p{margin:0;color:var(--muted);font-size:16px}
.seo-footer{background:var(--paper);border-top:1px solid var(--line)}.seo-footer h2{font-size:clamp(28px,4vw,42px)}.seo-footer h3{margin-top:28px}.seo-copy{max-width:860px;color:var(--muted)}.seo-copy p{font-size:16px}.seo-copy a{color:var(--green);font-weight:800}
.final-cta{text-align:center;background:var(--ink);color:white}.final-cta h2{font-size:clamp(48px,8vw,90px)}.final-cta .button{margin:5px}
.site-footer{background:#101812;color:#e7ebe5;padding:70px 0 25px}.footer-grid{display:grid;grid-template-columns:1.55fr .85fr 1.35fr 1.15fr;gap:40px;align-items:start}.brand-footer{color:#fff}.footer-grid p{max-width:380px;color:#9eaaa1}.footer-grid h3{font-size:13px;text-transform:uppercase;letter-spacing:.13em;color:var(--lime)}.footer-grid>div>a:not(.brand){display:block;color:#bdc6bf;text-decoration:none;margin:8px 0;font-size:14px}.footer-contact address{font-style:normal}.footer-contact address a,.footer-contact address span{display:block;color:#bdc6bf;text-decoration:none;margin:8px 0;font-size:14px}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:45px;padding-top:22px;display:flex;justify-content:space-between;color:#89958c;font-size:12px}
.modal{position:fixed;inset:0;z-index:100;display:none;place-items:center;background:rgba(7,14,9,.7);padding:20px}.modal.open{display:grid}.modal-panel{position:relative;background:var(--paper);width:min(720px,100%);max-height:90vh;overflow:auto;border-radius:var(--radius);padding:35px}.modal-close{position:absolute;right:17px;top:12px;border:0;background:none;font-size:32px;cursor:pointer}.deposit-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:22px 0 12px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.deposit-panel strong{display:block}.deposit-panel p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.jotform-wrap{min-height:420px;margin-top:8px}.jotform-wrap iframe{width:100%;min-height:720px;border:0;border-radius:12px}
.brand-logo{height:68px;width:74px;display:flex;align-items:center;justify-content:center}.whatsapp{position:fixed;right:18px;bottom:18px;z-index:45;width:56px;height:56px;display:grid;place-items:center;border-radius:17px;background:#25D366;color:#fff;text-decoration:none;font-weight:900;box-shadow:var(--shadow)}.social-strip{background:var(--paper);border-bottom:1px solid var(--line);padding:14px 0}.social-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}.social-links a{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-size:11px;font-weight:800;background:var(--bg)}
.trip-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:stretch}.form-status{padding:12px 14px;border-radius:10px;margin-bottom:12px;font-weight:700}.form-status.ok{background:#e4f7c8;color:#244f37}.form-status.err{background:#fde2e2;color:#7a1f1f}
.social-feeds{background:var(--paper)}.social-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:20%;max-width:236px;margin-inline:auto}.social-box{aspect-ratio:1/1;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;min-height:0}.social-box header{display:flex;align-items:center;justify-content:space-between;padding:2px 4px;border-bottom:1px solid var(--line);font-size:6px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.social-box header a{color:var(--green);text-decoration:none}.social-frame{flex:1;min-height:0;overflow:hidden;background:#f3f4f0}.social-frame iframe,.social-frame .twitter-timeline{width:100%;height:100%;border:0;display:block}
@media (max-width:1100px){.trip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-grid{grid-template-columns:1fr 1fr}.detail-card{grid-template-columns:140px 1fr;}.detail-action{grid-column:2}.footer-grid{grid-template-columns:1fr 1fr}.social-grid{grid-template-columns:repeat(5,minmax(0,1fr));width:20%}}
@media (max-width:800px){.site-nav{display:none}.site-nav.open{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:76px;background:var(--bg);padding:20px;border-bottom:1px solid var(--line)}.menu-toggle{display:block}.split-grid,.design-grid{grid-template-columns:1fr}.trip-grid,.service-grid,.footer-grid,.form-grid{grid-template-columns:1fr}.detail-card{grid-template-columns:1fr}.hero{min-height:520px;height:auto}.section{padding:64px 0}}


/* -------------------------------------------------------------------------
   Zula Zula requested additions — kept additive to the extracted redesign.
   ------------------------------------------------------------------------- */
.brand-logo { width: 78px; height: 64px; display: block; object-fit: contain; object-position: center; }
.hero-band { position: relative; }
.travel-week-sticker {
  position: absolute;
  left: max(20px, calc((100vw - 1180px) / 2));
  bottom: -48px;
  z-index: 10;
  width: min(450px, calc(100vw - 40px));
  overflow: hidden;
  border: 3px solid rgba(246,247,242,.95);
  border-radius: 12px;
  box-shadow: 0 16px 36px rgba(0,0,0,.32);
  transform: rotate(-20deg);
  transform-origin: center bottom;
}
.travel-week-sticker img { width: 100%; height: auto; }

/* Review strip: only the visual duplicate is aria-hidden in front-page.php. */
.review-section { background: var(--paper); border-top: 1px solid var(--line); }
.review-head { margin-bottom: 30px; }
.reviews-scroll { width: 100%; overflow: hidden; padding: 8px 0 20px; }
.reviews-track { display: flex; align-items: stretch; gap: 18px; width: max-content; animation: reviewsMarquee 120s linear infinite; will-change: transform; }
.review-group { display: flex; align-items: stretch; gap: 18px; flex: 0 0 auto; }
.review-card { flex: 0 0 310px; min-height: 245px; padding: 24px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.review-source { margin: 0 0 13px; color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.review-card blockquote { margin: 0 0 20px; font-size: 16px; line-height: 1.5; }
.review-card cite { color: var(--muted); font-size: 13px; font-style: normal; font-weight: 800; }
.review-links { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 12px; font-size: 13px; font-weight: 800; }
.review-links a { color: var(--green); }
@keyframes reviewsMarquee { from { transform: translate3d(0,0,0); } to { transform: translate3d(calc(-50% - 9px),0,0); } }

/* Current, lazily-loaded YouTube tour previews. */
.tour-videos { background: var(--bg); }
.tour-video-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 18px; }
.tour-video-card { min-width: 0; padding: 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }
.tour-video-card iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 10px; background: #c8cdc5; }
.tour-video-card h3 { margin: 14px 0 6px; font-size: 16px; }
.tour-video-card p { margin: 0; color: var(--muted); font-size: 13px; }

/* The source theme already had social frames; make the live previews legible. */
.social-feeds .social-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 18px; width: 100%; max-width: none; margin-inline: 0; }
.social-feeds .social-box { aspect-ratio: auto; min-height: 480px; border-radius: var(--radius); }
.social-feeds .social-box header { padding: 10px 12px; font-size: 12px; }
.social-feeds .social-frame { min-height: 430px; }
.social-feeds .social-frame iframe,
.social-feeds .social-frame .twitter-timeline { width: 100%; height: 100%; min-height: 430px; }

@media (max-width: 1100px) {
  .tour-video-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .social-feeds .social-grid { grid-template-columns: repeat(2, minmax(0,1fr)); width: 100%; }
}
@media (max-width: 800px) {
  .brand-logo { width: 66px; height: 58px; }
  .travel-week-sticker { left: 14px; bottom: -34px; width: min(330px, calc(100vw - 28px)); border-width: 2px; }
  .review-card { flex-basis: 278px; min-height: 230px; }
  .reviews-track { animation-duration: 95s; }
  .social-feeds .social-grid { grid-template-columns: 1fr; }
  .social-feeds .social-box { min-height: 430px; }
  .social-feeds .social-frame,
  .social-feeds .social-frame iframe,
  .social-feeds .social-frame .twitter-timeline { min-height: 380px; }
}
@media (prefers-reduced-motion: reduce) {
  .reviews-track, .ticker-track { animation: none; }
}
