/* ============================================================
   AfriTrek Expedition — "Altitude" design system
   Signature: topographic contour motif + elevation eyebrows
   ============================================================ */
:root{
  --pine:#12362a;        /* deep alpine forest */
  --pine-d:#0c261e;
  --pine-2:#1c4a3a;
  --ice:#3fa9b8;         /* glacier accent */
  --ice-d:#2c8593;
  --summit:#e0a83d;      /* summit gold, used sparingly */
  --summit-d:#c48c25;
  --snow:#f6f8f7;        /* page bg */
  --paper:#ffffff;
  --ink:#14201b;
  --muted:#5d6b64;
  --line:#e3e8e5;
  --shadow:0 18px 44px -18px rgba(12,38,30,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--snow);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
h1,h2,h3,h4,.logo-txt,.display{font-family:'Barlow Condensed',sans-serif;line-height:1.02;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1200px;margin:0 auto;padding:0 22px}

/* ---- Elevation eyebrow (the signature label system) ---- */
.ey{display:inline-flex;align-items:center;gap:9px;font-family:'Barlow Condensed',sans-serif;
  font-weight:600;font-size:14px;letter-spacing:.22em;text-transform:uppercase;color:var(--ice-d)}
.ey::before{content:"";width:26px;height:2px;background:var(--summit);display:inline-block}
.ey.on-dark{color:#8fd6e0}.ey.on-dark::before{background:var(--summit)}

/* contour background motif */
.contour{position:relative;overflow:hidden}
.contour::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(120% 90% at 90% -10%, transparent 60%, rgba(63,169,184,.06) 61%, transparent 62%),
    radial-gradient(120% 90% at 90% -10%, transparent 68%, rgba(63,169,184,.05) 69%, transparent 70%),
    radial-gradient(120% 90% at 90% -10%, transparent 76%, rgba(63,169,184,.04) 77%, transparent 78%)}

/* ---- Topbar ---- */
.topbar{background:var(--pine-d);color:#bcd3ca;font-size:12.5px;letter-spacing:.02em}
.topbar-in{display:flex;justify-content:space-between;align-items:center;min-height:40px;flex-wrap:wrap;gap:6px}
.topbar a{color:#cfe0d8}.topbar a:hover{color:#fff}
.tb-left{display:flex;gap:16px;flex-wrap:wrap}
.tb-right{display:flex;gap:12px;align-items:center}
.tb-right a{font-weight:600;color:#8fd6e0}.tb-right a:hover{color:#fff}
.tb-ic{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.08);transition:background .2s,color .2s;color:#cfe0d8}
.tb-ic svg{width:14px;height:14px}
.tb-ic:hover{background:var(--summit);color:var(--pine-d)!important}

/* ---- Nav ---- */
.nav{background:rgba(255,255,255,.95);backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:90}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:76px}
.logo img{max-height:84px;width:auto;display:block}
.logo-txt{font-size:27px;font-weight:700;color:var(--pine);letter-spacing:-.02em}
.logo-txt em{color:var(--ice);font-style:normal}
.logo-txt.light{color:#fff}.logo-txt.light em{color:var(--summit)}
.menu{display:flex;align-items:center;gap:30px}
.menu a{font-weight:500;font-size:15px;color:var(--ink);position:relative;padding:4px 0}
.menu a:not(.btn-book)::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--ice);transition:width .25s}
.menu a:not(.btn-book):hover::after,.menu a.on::after{width:100%}
.menu a.on{color:var(--pine)}
.menu a.btn-book{display:inline-flex;align-items:center;justify-content:center;background:var(--summit);color:#fff!important;padding:11px 28px;border-radius:0;font-weight:600;font-size:14.5px;letter-spacing:normal;text-transform:none;box-shadow:none;transition:background .18s;border:none}
.menu a.btn-book:hover{background:var(--summit-d);transform:none}
.menu a.btn-book:active{transform:none}
.navtog,.burger{display:none}

/* ---- Buttons ---- */
.btn{display:inline-block;padding:14px 32px;border-radius:30px;font-weight:600;font-size:15px;cursor:pointer;border:none;transition:transform .15s,background .15s,box-shadow .15s;letter-spacing:.01em}
.btn:hover{transform:translateY(-2px)}
.btn-p{background:var(--summit);color:var(--pine-d);box-shadow:0 4px 16px rgba(224,168,61,.35)}.btn-p:hover{background:var(--summit-d);box-shadow:0 6px 22px rgba(224,168,61,.45)}
.btn-g{background:var(--pine);color:#fff}.btn-g:hover{background:var(--pine-2)}
.btn-i{background:var(--ice);color:#fff}.btn-i:hover{background:var(--ice-d)}
.btn-o{background:rgba(255,255,255,.08);color:#fff;border:1.5px solid rgba(255,255,255,.6);backdrop-filter:blur(4px)}.btn-o:hover{background:#fff;color:var(--pine);border-color:#fff}

/* ---- Hero ---- */
.hero{position:relative;min-height:90vh;display:flex;align-items:center;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.05);animation:heroZoom 18s ease-out forwards}
@keyframes heroZoom{to{transform:scale(1)}}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,28,22,.82) 0%,rgba(9,28,22,.6) 38%,rgba(9,28,22,.15) 70%,rgba(9,28,22,0) 100%)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,28,22,.35) 0%,rgba(9,28,22,0) 30%,rgba(9,28,22,0) 65%,rgba(9,28,22,.5) 100%)}
.hero-in{position:relative;z-index:2;width:100%;max-width:1200px;margin:0 auto;padding:0 clamp(20px,5vw,48px)}
.hero .ey{display:inline-flex;margin-bottom:22px;opacity:1;animation:rise .7s .1s both;
  background:rgba(224,168,61,.14);border:1px solid rgba(224,168,61,.35);color:#f0c675;
  padding:8px 16px;border-radius:30px;font-size:12px;letter-spacing:.18em}
.hero .ey::before{display:none}
.hero h1{font-size:clamp(44px,8vw,92px);font-weight:700;text-transform:uppercase;letter-spacing:-.02em;
  line-height:.98;max-width:15ch;opacity:1;animation:rise .7s .2s both;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.hero p{font-size:clamp(16px,2.1vw,21px);max-width:52ch;margin-top:22px;opacity:.96;line-height:1.6;
  animation:rise .7s .32s both;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.hero-cta{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap;animation:rise .7s .44s both}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.hero-scroll{position:absolute;left:22px;bottom:26px;z-index:2;writing-mode:vertical-rl;font-size:12px;letter-spacing:.3em;text-transform:uppercase;opacity:.7;display:flex;align-items:center;gap:12px}
.hero-scroll::after{content:"";width:1px;height:44px;background:#fff;opacity:.5}

/* ---- Elevation strip (professional stat band) ---- */
.strip{background:linear-gradient(135deg,var(--pine-d),var(--pine));color:#fff;position:relative;overflow:hidden}
.strip::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--ice),var(--summit),var(--ice))}
.strip::after{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cpath d='M0 120 L40 40 L60 70 L90 20 L120 120 Z' fill='%23ffffff' opacity='0.025'/%3E%3C/svg%3E");background-size:240px;opacity:.6;pointer-events:none}
.strip-grid{display:grid;grid-template-columns:repeat(4,1fr);position:relative;z-index:1}
.strip .cell{padding:54px 28px;text-align:center;position:relative;transition:transform .3s ease,background .3s ease}
.strip .cell::after{content:"";position:absolute;top:26%;right:0;height:48%;width:1px;background:rgba(255,255,255,.12)}
.strip .cell:last-child::after{display:none}
.strip .cell:hover{background:rgba(255,255,255,.04);transform:translateY(-4px)}
.strip .s-ic{width:52px;height:52px;margin:0 auto 18px;border-radius:14px;
  display:grid;place-items:center;color:var(--summit);
  background:rgba(224,168,61,.12);border:1px solid rgba(224,168,61,.25)}
.strip .s-ic svg{width:26px;height:26px}
.strip b{font-family:'Barlow Condensed';font-size:clamp(42px,4.8vw,60px);font-weight:700;
  display:inline-flex;align-items:flex-start;justify-content:center;line-height:.9;letter-spacing:-.01em;color:#fff}
.strip b .u{color:var(--summit);font-size:.44em;font-weight:700;margin-left:3px;margin-top:.12em}
.strip .s-bar{width:34px;height:3px;border-radius:2px;background:var(--summit);margin:14px auto 0;opacity:.85}
.strip span{color:#a9c6ba;font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin-top:12px;display:block;font-weight:600}
@media(max-width:760px){
  .strip-grid{grid-template-columns:1fr 1fr}
  .strip .cell{padding:38px 18px}
  .strip .cell:nth-child(2)::after{display:none}
  .strip .cell:nth-child(1),.strip .cell:nth-child(2){border-bottom:1px solid rgba(255,255,255,.1)}
}

/* ---- Sections ---- */
.sec{padding:96px 0}
.sec.tight{padding:70px 0}
.alt{background:var(--paper)}
.sec-head{max-width:640px;margin-bottom:56px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{font-size:clamp(34px,5.2vw,58px);font-weight:700;text-transform:uppercase;margin-top:12px}
.sec-head p{color:var(--muted);margin-top:14px;font-size:17px}

/* ---- Split ---- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split .media{position:relative}
.split .media img{border-radius:3px;box-shadow:var(--shadow);width:100%}
.split .media .tab{position:absolute;bottom:-18px;left:-18px;background:var(--summit);color:var(--pine-d);
  padding:16px 22px;border-radius:2px;font-family:'Barlow Condensed';font-weight:700;line-height:1}
.split .media .tab b{font-size:30px;display:block}.split .media .tab span{font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.split h2{font-size:clamp(30px,4.4vw,48px);font-weight:700;text-transform:uppercase;margin:12px 0 16px}
.feat{display:flex;gap:16px;margin-top:22px}
.feat .ic{flex:none;width:46px;height:46px;border-radius:2px;background:var(--pine);color:var(--summit);display:grid;place-items:center;font-size:20px}
.feat h4{font-size:20px;font-weight:600}.feat p{color:var(--muted);font-size:14.5px;margin-top:2px}

/* ---- Cards ---- */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:3px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card-img{position:relative;aspect-ratio:4/3;overflow:hidden;background:#dfe6e2}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .card-img img{transform:scale(1.07)}
.card-img .tag{position:absolute;top:14px;left:14px;background:rgba(12,38,30,.82);backdrop-filter:blur(4px);
  color:#fff;font-family:'Barlow Condensed';font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:2px}
.card-b{padding:22px;flex:1;display:flex;flex-direction:column}
.card-b h3{font-size:25px;font-weight:600;line-height:1.06}
.card-b p{color:var(--muted);font-size:14.5px;margin-top:8px;flex:1}
.card-foot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.price{color:var(--pine);font-weight:700;font-family:'Barlow Condensed';font-size:27px;line-height:1}
.price small{color:var(--muted);font-family:Inter;font-size:12px;font-weight:500}
.meta{color:var(--muted);font-size:12.5px;letter-spacing:.04em;text-transform:uppercase}
.svc-num{font-family:'Barlow Condensed';font-weight:700;font-size:15px;color:var(--ice-d);letter-spacing:.1em}

/* service list (numbered — real sequence of offerings) */
.svc-card .card-b{padding-top:18px}
.svc-card .svc-top{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}

/* ---- Gallery ---- */
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gal a{position:relative;aspect-ratio:1;overflow:hidden;border-radius:3px;display:block}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gal a:hover img{transform:scale(1.09)}
.gal a::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(12,38,30,0),rgba(12,38,30,.4));opacity:0;transition:opacity .3s}
.gal a:hover::after{opacity:1}
.gal.tall a:nth-child(1),.gal.tall a:nth-child(6){grid-row:span 2;aspect-ratio:auto}

/* ---- CTA band ---- */
.cta{position:relative;color:#fff;text-align:center;padding:110px 0;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(12,38,30,.82),rgba(12,38,30,.9)),
  url('https://images.unsplash.com/photo-1454496522488-7a8e488e8606?w=1600&q=80') center/cover;background-attachment:fixed}
.cta>.wrap{position:relative;z-index:2}
.cta h2{font-size:clamp(36px,5.5vw,64px);font-weight:700;text-transform:uppercase}
.cta p{opacity:.94;max-width:52ch;margin:16px auto 30px;font-size:18px}

/* ---- Testimonials ---- */
.quote{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:32px;position:relative}
.quote::before{content:"\201C";position:absolute;top:6px;left:20px;font-family:'Barlow Condensed';font-size:90px;color:var(--summit);opacity:.28;line-height:1}
.quote p{font-size:16px;color:#33403a;position:relative;z-index:1}
.quote .who{margin-top:18px;font-family:'Barlow Condensed';font-weight:700;font-size:19px;color:var(--pine)}
.quote .who span{display:block;font-family:Inter;font-weight:500;font-size:13px;color:var(--muted);letter-spacing:.02em}

/* ---- Forms ---- */
.form{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:34px;box-shadow:var(--shadow)}
.form label{display:block;font-weight:600;font-size:13.5px;margin:16px 0 6px;letter-spacing:.01em}
.form input,.form select,.form textarea{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:2px;font-family:inherit;font-size:15px;background:#fbfcfb;transition:border .15s,box-shadow .15s}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--ice);box-shadow:0 0 0 3px rgba(63,169,184,.13);background:#fff}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.notice{padding:15px 19px;border-radius:2px;margin-bottom:20px;font-weight:600;font-size:14.5px;border-left:4px solid}
.notice.ok{background:#e9f6ef;color:#12362a;border-color:var(--pine)}
.notice.err{background:#fdecec;color:#b3261e;border-color:#b3261e}

/* ---- Page banner ---- */
.banner{position:relative;color:#fff;padding:120px 0 70px;overflow:hidden}
.banner::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(12,38,30,.62),rgba(12,38,30,.78)),
  url('https://images.unsplash.com/photo-1589553416260-f586c8f1514f?w=1600&q=80') center/cover}
.banner>.wrap{position:relative;z-index:2}
.banner h1{font-size:clamp(42px,7vw,80px);font-weight:700;text-transform:uppercase}
.crumb{opacity:.85;margin-top:10px;font-size:14px;letter-spacing:.05em}
.crumb a:hover{color:var(--summit)}

/* ---- Footer ---- */
.foot{background:var(--pine-d);color:#a9c2b7;padding:74px 0 0}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px}
.foot .logo-txt.light{margin-bottom:16px;display:inline-block}
.foot h4{color:#fff;font-size:21px;font-weight:600;margin-bottom:16px;text-transform:uppercase;letter-spacing:.03em}
.foot .muted{color:#8aa79b;font-size:14px}
.foot a{color:#bcd3ca}.foot a:hover{color:var(--summit)}
.fl{list-style:none}.fl li{margin-bottom:9px;font-size:14px}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:52px;padding:20px 0;font-size:13px;color:#8aa79b;text-align:center}
/* WhatsApp chat widget */
.wa-widget{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.wa-float{width:58px;height:58px;background:#25d366;color:#fff;border:none;border-radius:50%;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.28);transition:transform .2s}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:32px;height:32px}
.wa-ic-close{display:none;width:22px;height:22px}
.wa-widget.open .wa-ic-open{display:none}
.wa-widget.open .wa-ic-close{display:block}
.wa-box{width:340px;max-width:calc(100vw - 44px);background:#e5ddd5;border-radius:16px;overflow:hidden;
  box-shadow:0 16px 50px rgba(0,0,0,.3);transform:translateY(20px) scale(.92);opacity:0;pointer-events:none;
  transform-origin:bottom right;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .28s}
.wa-widget.open .wa-box{transform:translateY(0) scale(1);opacity:1;pointer-events:auto}
.wa-head{background:#075e54;color:#fff;padding:14px 16px;display:flex;align-items:center;gap:12px}
.wa-avatar{width:42px;height:42px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:none}
.wa-avatar svg{width:26px;height:26px}
.wa-head-txt{flex:1;line-height:1.3}
.wa-head-txt b{display:block;font-size:15px}
.wa-head-txt span{font-size:12px;color:#c5e8e2}
.wa-close{background:none;border:none;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:0 2px;opacity:.85}
.wa-close:hover{opacity:1}
.wa-body{padding:22px 16px 16px;min-height:130px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cg fill='%23d9cfc4' fill-opacity='0.4'%3E%3Ccircle cx='10' cy='10' r='1.5'/%3E%3Ccircle cx='40' cy='30' r='1.5'/%3E%3Ccircle cx='25' cy='50' r='1.5'/%3E%3C/g%3E%3C/svg%3E");background-color:#e5ddd5}
.wa-bubble{background:#fff;border-radius:0 10px 10px 10px;padding:9px 12px 20px;font-size:14px;color:#303030;line-height:1.5;
  box-shadow:0 1px 1px rgba(0,0,0,.12);max-width:88%;position:relative}
.wa-bubble::before{content:"";position:absolute;top:0;left:-8px;border:8px solid transparent;border-top-color:#fff;border-right-color:#fff}
.wa-bubble-name{display:block;font-size:12.5px;font-weight:700;color:#1f7aec;margin-bottom:3px}
.wa-time{position:absolute;right:10px;bottom:6px;font-size:10.5px;color:#8a8a8a}
.wa-input{display:flex;align-items:center;gap:8px;padding:10px;background:#f0f0f0}
.wa-input input{flex:1;border:none;border-radius:22px;padding:11px 16px;font-size:14px;outline:none;background:#fff}
.wa-send{width:44px;height:44px;border-radius:50%;background:#25d366;color:#fff;border:none;cursor:pointer;display:grid;place-items:center;flex:none;transition:background .18s}
.wa-send:hover{background:#1da851}
.wa-send svg{width:20px;height:20px;margin-left:2px}
@media(max-width:600px){
  .wa-widget{right:16px;bottom:16px}
  .wa-float{width:54px;height:54px}
}

/* ---- Lightbox ---- */
.lb{position:fixed;inset:0;background:rgba(8,25,20,.94);z-index:200;display:none;align-items:center;justify-content:center;padding:30px}
.lb.open{display:flex}
.lb img{max-width:92%;max-height:88%;border-radius:3px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lb-x{position:absolute;top:22px;right:28px;color:#fff;font-size:34px;cursor:pointer;line-height:1;opacity:.85}
.lb-x:hover{opacity:1}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:44px;cursor:pointer;opacity:.7;user-select:none;padding:0 18px}
.lb-nav:hover{opacity:1}.lb-prev{left:6px}.lb-next{right:6px}

.muted{color:var(--muted)}.center{text-align:center}.mt{margin-top:30px}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ---- Responsive ---- */
@media(max-width:900px){
  .grid3,.strip-grid,.foot-grid{grid-template-columns:1fr 1fr}
  .strip .cell{border-right:none;border-bottom:1px solid rgba(255,255,255,.09)}
  .split{grid-template-columns:1fr;gap:44px}
  .gal{grid-template-columns:repeat(2,1fr)}.gal.tall a:nth-child(1),.gal.tall a:nth-child(6){grid-row:auto;aspect-ratio:1}
  .burger{display:block;font-size:27px;cursor:pointer;color:var(--pine);z-index:70}
  /* Fixed header on mobile (sticky is unreliable with off-canvas menu) */
  body{padding-top:64px}
  .topbar{display:none}
  .nav{position:fixed;top:0;left:0;right:0;width:100%}
  .nav-in{height:64px}
  .menu{position:fixed;top:0;right:0;height:100vh;width:80%;max-width:330px;background:#fff;flex-direction:column;align-items:flex-start;padding:88px 30px;gap:22px;transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.7,.2,1);box-shadow:-6px 0 40px rgba(0,0,0,.16);will-change:transform;overflow-y:auto}
  .navtog:checked ~ .menu{transform:translateX(0)}
  .navtog:checked ~ .burger{position:fixed;right:24px}
  .cta::before{background-attachment:scroll}
}
@media(max-width:560px){
  .sec{padding:64px 0}
  .grid3,.strip-grid,.foot-grid,.form .row{grid-template-columns:1fr}
  .gal{grid-template-columns:1fr 1fr}
  .hero{min-height:82vh}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important}
  .reveal{opacity:1;transform:none;transition:none}
  .hero-bg{animation:none;transform:none}
  /* animations are disabled above, so force the animated-in elements to their visible state */
  .hero .ey,.hero h1,.hero p,.hero-cta,[style*="animation"]{opacity:1!important;transform:none!important}
}

/* ============================================================
   Reserve card (booking form) — Maasai-style layout
   ============================================================ */
.reserve{max-width:440px;margin:0 auto;background:var(--paper);border:1px solid var(--line);
  border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.reserve-head{background:var(--pine-d);color:#fff;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.reserve-head h2{font-size:22px;font-weight:700;text-transform:uppercase;letter-spacing:.01em;margin:0}
.reserve-badge{background:var(--summit);color:var(--pine-d);font-family:'Barlow Condensed';font-weight:700;
  font-size:13px;letter-spacing:.03em;text-transform:uppercase;padding:6px 12px;border-radius:20px;white-space:nowrap}
.reserve-price{background:#f4f7f5;border-bottom:1px solid var(--line);padding:16px 22px;display:flex;align-items:center;justify-content:space-between}
.reserve-price .lbl{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.reserve-price .cat{font-size:15px;font-weight:600;color:var(--ink);margin-top:2px}
.reserve-price .amt{font-family:'Barlow Condensed';font-weight:700;font-size:30px;color:var(--summit-d);line-height:1;text-align:right}
.reserve-price .amt small{display:block;font-family:Inter;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:2px}
.reserve-body{padding:22px}
.reserve-body label{display:block;font-weight:600;font-size:12.5px;color:#33403a;margin:14px 0 6px}
.reserve-body label:first-child{margin-top:0}
.reserve-body .req{color:#c0392b}
.reserve-body input,.reserve-body select,.reserve-body textarea{width:100%;padding:12px 14px;border:1px solid #dde3df;
  border-radius:8px;font-family:inherit;font-size:14.5px;background:#fff;transition:border .15s,box-shadow .15s}
.reserve-body input:focus,.reserve-body select:focus,.reserve-body textarea:focus{outline:none;border-color:var(--ice);box-shadow:0 0 0 3px rgba(63,169,184,.13)}
.reserve-body input::placeholder,.reserve-body textarea::placeholder{color:#aab4ae}
/* phone with prefix */
.phone-wrap{display:flex;gap:8px}
.phone-wrap .cc{flex:none;width:104px;display:flex;align-items:center;gap:6px;border:1px solid #dde3df;border-radius:8px;padding:0 10px;background:#f7f9f8;font-size:13.5px;color:#33403a}
.phone-wrap .cc img{width:22px;height:16px;object-fit:cover;border-radius:2px}
.phone-wrap input{flex:1}
/* two-col */
.rrow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
/* number stepper */
.step{display:flex;align-items:stretch;border:1px solid #dde3df;border-radius:8px;overflow:hidden}
.step button{flex:none;width:42px;border:none;background:#f2f5f3;font-size:20px;font-weight:600;color:var(--pine);cursor:pointer;transition:background .12s}
.step button:hover{background:#e6ebe8}
.step input{border:none;border-radius:0;text-align:center;box-shadow:none!important;-moz-appearance:textfield}
.step input::-webkit-outer-spin-button,.step input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.reserve-submit{width:100%;margin-top:20px;padding:15px;background:var(--summit);color:var(--pine-d);
  border:none;border-radius:8px;font-family:'Barlow Condensed';font-weight:700;font-size:19px;letter-spacing:.03em;
  text-transform:uppercase;cursor:pointer;transition:background .15s,transform .12s}
.reserve-submit:hover{background:var(--summit-d);transform:translateY(-1px)}
/* success state */
.reserve-success{padding:34px 26px;text-align:center}
.reserve-success .tick{width:64px;height:64px;border-radius:50%;background:#e7f6ec;color:#1f9d55;
  display:grid;place-items:center;margin:0 auto 16px;font-size:32px}
.reserve-success h3{font-size:26px;font-weight:700;text-transform:uppercase;color:var(--pine);margin-bottom:8px}
.reserve-success p{color:var(--muted);font-size:14.5px}
.reserve-trust{margin-top:18px;padding:12px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;gap:8px;color:#1f9d55;font-weight:600;font-size:14px}
.reserve-note{margin-top:14px;font-size:11.5px;color:#aab4ae;text-align:center}
@media(max-width:560px){.reserve{max-width:100%}.phone-wrap .cc{width:92px}}

/* dual-currency KES suffix on prices */
.price .kes{display:block;font-family:Inter;font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.01em;margin-top:2px}

/* ============================================================
   Package detail page — Stejos-style layout
   ============================================================ */
.pd-top{padding:28px 0 10px}
.pd-crumb{font-size:13px;color:var(--muted);letter-spacing:.02em;margin-bottom:10px}
.pd-crumb a:hover{color:var(--ice-d)}
.pd-title{font-size:clamp(30px,4.6vw,46px);font-weight:700;text-transform:uppercase;line-height:1.04}
.pd-valid{color:var(--muted);font-size:14px;margin-top:6px}
.pd-valid b{color:var(--pine);font-weight:600}

.pd-main{display:grid;grid-template-columns:1.6fr 1fr;gap:32px;align-items:flex-start;padding:22px 0 40px}
/* gallery */
.pd-gallery .hero-img{aspect-ratio:16/10;border-radius:12px;overflow:hidden;background:#e4eae6;box-shadow:var(--shadow)}
.pd-gallery .hero-img img{width:100%;height:100%;object-fit:cover}
.pd-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.pd-thumbs img{width:88px;height:64px;object-fit:cover;border-radius:8px;cursor:pointer;border:2px solid transparent;transition:border .15s,transform .15s}
.pd-thumbs img:hover{transform:translateY(-2px)}
.pd-thumbs img.on{border-color:var(--summit)}

/* booking sidebar */
.pd-book{position:sticky;top:92px;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);background:var(--paper)}
.pd-book-head{background:var(--pine-d);color:#fff;padding:16px 20px}
.pd-book-head .cat{display:inline-block;background:var(--ice);color:#fff;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:20px}
.pd-book-body{padding:20px}
.pd-book .basis{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.pd-book .from{font-size:12px;color:var(--muted);margin-top:8px}
.pd-book .amt{font-family:'Barlow Condensed';font-weight:700;font-size:40px;color:var(--summit-d);line-height:1}
.pd-book .amt .kes2{display:block;font-family:Inter;font-size:14px;color:var(--muted);font-weight:600;margin-top:2px}
.pd-book .desc{color:var(--muted);font-size:14px;margin:14px 0;max-height:0;overflow:hidden;transition:max-height .3s ease}
.pd-book .desc.open{max-height:400px}
.pd-readmore{background:none;border:none;color:var(--ice-d);font-weight:600;font-size:13.5px;cursor:pointer;padding:0;margin-bottom:14px}
.pd-book .btn{width:100%;text-align:center;margin-bottom:10px}
.pd-share{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.pd-share span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:8px}
.pd-share a{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#f2f5f3;color:var(--pine);margin-right:6px;font-weight:700;font-size:13px;transition:background .15s,color .15s}
.pd-share a:hover{background:var(--pine);color:#fff}

/* quick facts strip */
.pd-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;border:1px solid var(--line);border-radius:12px;padding:20px;background:var(--paper);margin-bottom:30px}
.pd-facts .f h5{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}
.pd-facts .f p{font-weight:600;font-size:14.5px;color:var(--ink)}

/* includes / excludes */
.pd-ie{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:30px}
.pd-ie .box{border:1px solid var(--line);border-radius:12px;padding:22px;background:var(--paper)}
.pd-ie h3{font-size:20px;font-weight:700;text-transform:uppercase;margin-bottom:12px}
.pd-ie ul{list-style:none}
.pd-ie li{position:relative;padding-left:26px;margin-bottom:10px;font-size:14px;color:#33403a;line-height:1.5}
.pd-ie .inc li::before{content:"\2713";position:absolute;left:0;top:0;color:#1f9d55;font-weight:700}
.pd-ie .exc li::before{content:"\2715";position:absolute;left:0;top:0;color:#c0392b;font-weight:700}

/* tabs */
.pd-tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:24px;flex-wrap:wrap}
.pd-tab{padding:12px 20px;font-family:'Barlow Condensed';font-weight:600;font-size:17px;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);cursor:pointer;border:none;background:none;border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .15s,border .15s}
.pd-tab:hover{color:var(--pine)}
.pd-tab.on{color:var(--pine);border-bottom-color:var(--summit)}
.pd-panel{display:none;animation:fadeIn .3s}
.pd-panel.on{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.pd-panel h3{font-size:24px;font-weight:700;text-transform:uppercase;margin:24px 0 12px}
.pd-panel h3:first-child{margin-top:0}
.pd-panel p{color:#33403a;margin-bottom:14px;line-height:1.7}

/* itinerary days */
.pd-day{border-left:3px solid var(--summit);padding:4px 0 20px 22px;position:relative;margin-left:8px}
.pd-day::before{content:"";position:absolute;left:-9px;top:6px;width:15px;height:15px;border-radius:50%;background:var(--pine);border:3px solid var(--summit)}
.pd-day .dn{font-family:'Barlow Condensed';font-weight:700;color:var(--ice-d);font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.pd-day h4{font-size:19px;font-weight:600;margin:2px 0 6px}
.pd-day p{color:var(--muted);font-size:14.5px;line-height:1.6}
.pd-para{color:#3a463f;font-size:15px;line-height:1.7}

/* hotel cards */
.pd-hotel{display:flex;gap:18px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper);margin-bottom:16px}
.pd-hotel img{width:180px;height:130px;object-fit:cover;flex:none}
.pd-hotel .h-b{padding:16px}
.pd-hotel h4{font-size:20px;font-weight:600;margin-bottom:6px}
.pd-hotel p{color:var(--muted);font-size:14px}

/* FAQ accordion */
.pd-faq{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden;background:var(--paper)}
.pd-faq summary{padding:16px 20px;font-weight:600;font-size:15.5px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.pd-faq summary::-webkit-details-marker{display:none}
.pd-faq summary::after{content:"+";font-size:22px;color:var(--ice-d);font-weight:400}
.pd-faq[open] summary::after{content:"\2212"}
.pd-faq .a{padding:0 20px 18px;color:var(--muted);font-size:14.5px;line-height:1.7}

/* booking modal */
.modal{position:fixed;inset:0;background:rgba(8,25,20,.72);z-index:120;display:none;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}
.modal.open{display:flex}
.modal-card{background:var(--paper);border-radius:14px;width:100%;max-width:520px;box-shadow:0 30px 80px rgba(0,0,0,.4);animation:rise .3s both}
.modal-head{background:var(--pine-d);color:#fff;padding:18px 22px;border-radius:14px 14px 0 0;display:flex;justify-content:space-between;align-items:center;gap:12px}
.modal-head h3{font-size:19px;font-weight:700;text-transform:uppercase;margin:0}
.modal-x{background:none;border:none;color:#fff;font-size:26px;cursor:pointer;line-height:1;opacity:.85}
.modal-x:hover{opacity:1}
.modal-body{padding:22px}
.modal-body label{display:block;font-weight:600;font-size:12.5px;color:#33403a;margin:14px 0 6px}
.modal-body label:first-child{margin-top:0}
.modal-body input,.modal-body select,.modal-body textarea{width:100%;padding:11px 13px;border:1px solid #dde3df;border-radius:8px;font-family:inherit;font-size:14.5px;background:#fff}
.modal-body input:focus,.modal-body select:focus,.modal-body textarea:focus{outline:none;border-color:var(--ice);box-shadow:0 0 0 3px rgba(63,169,184,.13)}
.trav-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.trav-grid.trav-solo{grid-template-columns:1fr}
.pd-check{display:flex;gap:8px;align-items:flex-start;margin-top:14px;font-size:13px;color:var(--muted)}
.pd-check input{width:auto;margin-top:3px}
.modal-submit{width:100%;margin-top:18px;padding:14px;background:var(--summit);color:var(--pine-d);border:none;border-radius:8px;font-family:'Barlow Condensed';font-weight:700;font-size:18px;letter-spacing:.03em;text-transform:uppercase;cursor:pointer}
.modal-submit:hover{background:var(--summit-d)}

@media(max-width:900px){
  .pd-main{grid-template-columns:1fr}
  .pd-book{position:static}
  .pd-facts{grid-template-columns:1fr 1fr}
  .pd-ie{grid-template-columns:1fr}
}
@media(max-width:560px){
  .pd-facts{grid-template-columns:1fr}
  .pd-hotel{flex-direction:column}.pd-hotel img{width:100%;height:170px}
  .trav-grid{grid-template-columns:1fr}
}

/* ==== Package detail refinements (reference match) ==== */
.pd-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap}
.pd-valid{color:#333;font-size:14px;margin-top:0;white-space:nowrap}
.pd-valid b{color:var(--pine);font-weight:700}

.pd-book{border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);background:var(--paper)}
.pd-book-body{padding:22px}
.pd-tagrow{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.ptag{background:#fdf3e2;color:#9a6a15;font-size:12.5px;font-weight:600;padding:5px 13px;border-radius:20px;white-space:nowrap}
.pd-book .from{font-size:13px;color:#888;font-weight:600;margin-bottom:2px}
.pd-book .amt{font-family:'Barlow Condensed';font-weight:700;font-size:38px;color:#e8622a;line-height:1}
.pd-book .amt .kes2{display:block;font-family:Inter;font-size:13px;color:var(--muted);font-weight:600;margin-top:4px}
.pd-desc{color:#5d6b64;font-size:14.5px;line-height:1.65;margin:16px 0 10px}
.pd-readmore{display:inline-flex;align-items:center;gap:8px;background:#e8622a;color:#fff;border:none;
  padding:10px 18px;border-radius:24px;font-weight:600;font-size:14px;cursor:pointer;transition:background .15s}
.pd-readmore:hover{background:#cf5320}
.pd-readmore .rm-ic{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;
  background:rgba(255,255,255,.28);font-size:15px;line-height:1}
.btn-book-now{display:block;width:100%;margin-top:18px;padding:14px;background:#e8622a;color:#fff;border:none;
  border-radius:8px;font-weight:700;font-size:15px;cursor:pointer;text-align:center;transition:background .15s,transform .12s}
.btn-book-now:hover{background:#cf5320;transform:translateY(-1px)}
.btn-wa{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:10px;padding:14px;
  background:#25d366;color:#fff;border-radius:8px;font-weight:700;font-size:15px;transition:background .15s,transform .12s}
.btn-wa:hover{background:#1fb857;transform:translateY(-1px);color:#fff}
.btn-wa svg{flex:none}
.pd-share{margin-top:20px}
.pd-share>span{font-size:13px;color:#555;font-weight:600;display:block;margin-bottom:10px}
.pd-share-icons{display:flex;gap:10px}
.sh{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#fff;transition:transform .15s,opacity .15s}
.sh:hover{transform:translateY(-2px);opacity:.92}
.sh-fb{background:#1877f2}.sh-x{background:#000}.sh-wa{background:#25d366}.sh-in{background:#0a66c2}

/* rounded gallery thumbs (reference) */
.pd-thumbs img{width:100%;height:78px;border-radius:10px}
.pd-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:900px){.pd-title-row{flex-direction:column;gap:6px}.pd-valid{margin-top:2px}}

/* residency toggle + price label + total box */
.pd-price-label{font-size:13px;color:#555;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-top:4px}
.pd-restoggle{display:inline-flex;border:1px solid #dde3df;border-radius:8px;overflow:hidden;margin:8px 0 4px}
.pd-restoggle .rt{border:none;background:#fff;padding:8px 16px;font-size:13px;font-weight:600;color:#5d6b64;cursor:pointer;transition:background .15s,color .15s}
.pd-restoggle .rt.on{background:var(--pine);color:#fff}
.pd-total-box{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:14px 16px;background:#f4f7f5;border:1px solid var(--line);border-radius:10px}
.pd-total-box span{font-size:13px;color:#555;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.pd-total-box strong{font-family:'Barlow Condensed';font-size:24px;color:var(--pine);font-weight:700}


/* ==== Dual price block (cards) — clean two-row layout ==== */
.pr-dual{display:flex;flex-direction:column;width:100%;margin-top:10px;
  border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fbfcfb}
.pr-dual .pr-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:9px 13px}
.pr-dual .pr-row + .pr-row{border-top:1px solid var(--line)}
.pr-dual .pr-row em{font-style:normal;font-family:Inter;font-size:10.5px;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.pr-dual .pr-row b{font-family:'Barlow Condensed';font-size:21px;font-weight:700;line-height:1}
.pr-dual .pr-row:not(.pr-nonres) b{color:var(--pine)}
.pr-dual .pr-nonres{background:#fdf9f0}
.pr-dual .pr-nonres b{color:var(--summit-d)}
.pr-dual .pr-nonres em{color:#a07d2e}
/* inline variant (detail sidebar / related) stays compact */
.pr-dual.pr-inline{flex-direction:row;border:none;background:none;margin-top:0;gap:14px}
.pr-dual.pr-inline .pr-row{border:none!important;padding:0;flex-direction:column;align-items:flex-start;gap:1px}

/* card footer: stack price above the button for room */
.card-foot{flex-direction:column;align-items:stretch;gap:12px}
.card-foot .price{width:100%}
.card-foot > a.btn{align-self:flex-start}
.card-foot .meta{margin-bottom:2px}

/* ============================================================
   Editorial "Who We Are" section (homepage) + rich About
   ============================================================ */
.wwa{background:var(--snow);overflow:hidden}
.wwa-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch}
.wwa-media{position:relative;min-height:520px}
.wwa-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wwa-body{padding:70px 64px;display:flex;flex-direction:column;justify-content:center;background:#f3f0e9}
.wwa-eyebrow{font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:13px;letter-spacing:.28em;
  text-transform:uppercase;color:var(--summit-d);margin-bottom:22px}
.wwa-title{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:clamp(32px,4vw,52px);
  line-height:1.05;color:var(--pine-d);margin-bottom:26px;letter-spacing:-.01em}
.wwa-title em{font-style:italic;font-weight:600;color:var(--summit-d);font-family:Georgia,'Times New Roman',serif}
.wwa-body p{color:#4a5751;font-size:15.5px;line-height:1.85;margin-bottom:18px;max-width:52ch}
.wwa-quote{border-left:3px solid var(--summit);padding:6px 0 6px 20px;margin:8px 0 24px;
  font-family:Georgia,serif;font-style:italic;font-size:17px;color:#6b6250;line-height:1.6}
.wwa-body .btn-g{align-self:flex-start;margin-top:6px}
@media(max-width:900px){
  .wwa-grid{grid-template-columns:1fr}
  .wwa-media{min-height:360px}
  .wwa-body{padding:48px 28px}
}

/* Rich About page */
.about-hero{position:relative;min-height:64vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.about-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,38,30,.15),rgba(12,38,30,.82))}
.about-hero .inner{position:relative;z-index:2;padding:0 0 56px}
.about-hero .ey{margin-bottom:16px}
.about-hero h1{font-size:clamp(40px,6vw,76px);font-weight:700;text-transform:uppercase;line-height:1.02;max-width:16ch}
.about-lead{font-size:clamp(19px,2.4vw,26px);line-height:1.6;color:var(--pine-d);font-family:Georgia,serif;font-style:italic;max-width:40ch}
.about-cols{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.about-cols p{color:#4a5751;font-size:16px;line-height:1.85;margin-bottom:18px}
.about-values{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:10px}
.about-val{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:28px}
.about-val .ic{width:50px;height:50px;border-radius:12px;background:var(--pine);color:var(--summit);
  display:grid;place-items:center;font-size:22px;margin-bottom:16px}
.about-val h3{font-size:22px;font-weight:600;margin-bottom:8px}
.about-val p{color:var(--muted);font-size:14.5px;line-height:1.6}
.about-imgrow{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;margin-top:8px}
.about-imgrow img{width:100%;height:260px;object-fit:cover;border-radius:12px}
@media(max-width:900px){
  .about-cols,.about-values{grid-template-columns:1fr}
  .about-imgrow{grid-template-columns:1fr 1fr}
  .about-imgrow img:first-child{grid-column:1/-1;height:300px}
}

/* ==== Premium service tiles (image with gradient overlay) ==== */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.svc-tile{position:relative;display:block;border-radius:14px;overflow:hidden;min-height:340px;
  box-shadow:var(--shadow);text-decoration:none;color:#fff;isolation:isolate}
.svc-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.svc-tile:hover img{transform:scale(1.07)}
.svc-tile::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(12,38,30,.05) 0%,rgba(12,38,30,.35) 45%,rgba(12,38,30,.92) 100%);z-index:1}
.svc-overlay{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;padding:26px}
.svc-n{font-family:'Barlow Condensed';font-size:15px;font-weight:700;letter-spacing:.1em;color:var(--summit);margin-bottom:6px}
.svc-overlay h3{font-family:'Barlow Condensed';font-size:26px;font-weight:700;line-height:1.05;margin-bottom:8px;color:#fff}
.svc-overlay p{font-size:14px;line-height:1.55;color:rgba(255,255,255,.85);margin-bottom:14px;
  max-height:0;opacity:0;overflow:hidden;transition:max-height .4s ease,opacity .3s ease,margin .3s ease}
.svc-tile:hover .svc-overlay p{max-height:120px;opacity:1}
.svc-more{font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--summit);text-transform:uppercase}
@media(max-width:900px){.svc-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.svc-grid{grid-template-columns:1fr}.svc-overlay p{max-height:120px;opacity:1}}

/* ============ Testimonials slider ============ */
.tst{display:flex;align-items:center;gap:14px;margin-top:8px}
.tst-viewport{overflow:hidden;flex:1}
.tst-track{display:flex;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.tst-slide{flex:none;padding:12px}
.tst-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:32px 28px;
  box-shadow:var(--shadow);height:100%;display:flex;flex-direction:column;gap:14px}
.tst-stars{color:var(--summit);font-size:16px;letter-spacing:2px}
.tst-msg{color:#40504a;font-size:15.5px;line-height:1.75;font-style:italic;flex:1;margin:0}
.tst-who{display:flex;align-items:center;gap:12px;margin-top:6px}
.tst-av{width:46px;height:46px;border-radius:50%;background:var(--pine);color:#fff;display:grid;place-items:center;
  font-family:'Barlow Condensed';font-weight:700;font-size:20px;flex:none}
.tst-who b{display:block;color:var(--ink);font-size:15px}
.tst-who span{display:block;color:var(--muted);font-size:12.5px;margin-top:1px}
.tst-arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--paper);
  color:var(--pine);font-size:26px;line-height:1;cursor:pointer;flex:none;transition:all .2s;box-shadow:var(--shadow)}
.tst-arrow:hover{background:var(--pine);color:#fff;border-color:var(--pine)}
.tst-dots{display:flex;justify-content:center;gap:8px;margin-top:22px}
.tst-dot{width:9px;height:9px;border-radius:50%;border:none;background:#cdd6d1;cursor:pointer;padding:0;transition:all .2s}
.tst-dot.on{background:var(--pine);width:26px;border-radius:5px}
@media(max-width:700px){.tst-arrow{width:38px;height:38px;font-size:22px}}

/* ============================================================
   About page — split offerings + Karibu story (reference)
   ============================================================ */
.ab-split{display:grid;grid-template-columns:1fr 1fr}
.ab-left{background-size:cover;background-position:center;display:flex;align-items:center;padding:70px 56px;color:#fff}
.ab-left-in{max-width:520px;margin-left:auto;display:flex;flex-direction:column;gap:34px}
.ab-offer h3{font-family:'Barlow Condensed';font-size:26px;font-weight:700;margin-bottom:10px;color:#fff;letter-spacing:.005em}
.ab-offer p{color:rgba(255,255,255,.82);font-size:14.5px;line-height:1.75;max-width:46ch}
.ab-right{background:var(--paper);display:flex;align-items:center;padding:70px 56px}
.ab-right-in{max-width:520px}
.ab-right .ey{margin-bottom:16px}
.ab-karibu{font-family:'Barlow Condensed';font-size:clamp(32px,3.6vw,46px);font-weight:700;color:var(--pine-d);line-height:1.05;margin-bottom:22px;letter-spacing:-.01em}
.ab-right p{color:#4a5751;font-size:15.5px;line-height:1.85;margin-bottom:16px;max-width:56ch}
.ab-quote{border-left:3px solid var(--summit);padding:4px 0 4px 18px;margin:22px 0;
  font-family:Georgia,serif;font-style:italic;font-size:17px;color:#6b6250;line-height:1.6}
.ab-quote-btn{margin-top:6px}
@media(max-width:900px){
  .ab-split{grid-template-columns:1fr}
  .ab-left,.ab-right{padding:52px 28px}
  .ab-left-in{margin-left:0}
}

/* About stats over photo */
.ab-stats{background-size:cover;background-position:center;position:relative}
.ab-stats::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--ice),var(--summit),var(--ice))}
.ab-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:70px 0}
.ab-stat{text-align:center;color:#fff;position:relative}
.ab-stat::after{content:"";position:absolute;top:20%;right:0;height:60%;width:1px;background:rgba(255,255,255,.16)}
.ab-stat:last-child::after{display:none}
.ab-stat b{font-family:'Barlow Condensed';font-size:clamp(40px,4.6vw,58px);font-weight:700;display:inline-flex;align-items:flex-start;line-height:.9;letter-spacing:-.01em}
.ab-stat b .u{color:var(--summit);font-size:.46em;font-weight:700;margin-left:2px;margin-top:.1em}
.ab-stat span{display:block;margin-top:10px;color:#cfe0d7;font-size:12.5px;letter-spacing:.15em;text-transform:uppercase;font-weight:600}
@media(max-width:760px){
  .ab-stats-grid{grid-template-columns:1fr 1fr;gap:38px 0;padding:48px 0}
  .ab-stat:nth-child(2)::after{display:none}
}

/* ============ Hero slider ============ */
.hero-slider .hero-slides{position:absolute;inset:0;z-index:0}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}
.hero-slide.on{opacity:1}
.hero-slide .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:none;transform:scale(1.06);transition:transform 7s ease-out}
.hero-slide.on .hero-bg{transform:scale(1)}
/* text crossfade — stack all slide texts, show active */
.hero-slider .hero-in{position:relative;z-index:2}
.hero-text{position:absolute;top:50%;transform:translateY(-40%);left:0;right:0;opacity:0;visibility:hidden;transition:opacity .8s ease,transform .8s ease;padding:0 clamp(20px,5vw,48px)}
.hero-text.on{position:relative;opacity:1;visibility:visible;transform:translateY(0);transition-delay:.25s}
/* dots */
.hero-dots{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:4;display:flex;gap:10px}
.hero-dot{width:10px;height:10px;border-radius:50%;border:none;background:rgba(255,255,255,.45);cursor:pointer;padding:0;transition:all .25s}
.hero-dot.on{background:var(--summit);width:30px;border-radius:5px}
.hero-dot:hover{background:rgba(255,255,255,.75)}
@media(max-width:700px){.hero-dots{bottom:22px}}

/* ============================================================
   RESPONSIVE POLISH — small devices
   ============================================================ */

/* Tablet & below */
@media(max-width:900px){
  .sec{padding:64px 0}
  .sec.tight{padding:48px 0}
  .sec-head{margin-bottom:36px}
  .split{gap:36px}
  .wrap{padding:0 20px}
}

/* Phones */
@media(max-width:600px){
  .wrap{padding:0 16px}
  .sec{padding:48px 0}
  .sec.tight{padding:38px 0}
  .sec-head{margin-bottom:28px}
  .sec-head p{font-size:15px}

  /* Hero */
  .hero,.hero-slider{min-height:82vh}
  .hero h1{font-size:clamp(34px,10vw,52px);max-width:100%}
  .hero p{font-size:15.5px;max-width:100%}
  .hero-in{padding:0 16px}
  .hero-text{padding:0 16px}
  .hero-cta{gap:10px;width:100%}
  .hero-cta .btn{flex:1;text-align:center;padding:13px 18px;font-size:14px}
  .hero-scroll{display:none}

  /* Buttons full-width friendly */
  .btn{padding:13px 24px}

  /* Split sections stack */
  .split{grid-template-columns:1fr;gap:28px}
  .split .media .tab{left:12px;bottom:-14px;padding:12px 16px}

  /* Cards / grids single column */
  .grid3{grid-template-columns:1fr;gap:20px}

  /* Stats: 2x2 already; tighten */
  .strip .cell{padding:30px 14px}
  .strip b{font-size:clamp(36px,11vw,48px)}
  .strip .s-ic{width:44px;height:44px;margin-bottom:12px}

  /* Testimonials */
  .tst{gap:8px}
  .tst-card{padding:24px 20px}
  .tst-msg{font-size:14.5px}

  /* Section headings */
  .sec-head h2{font-size:clamp(28px,8vw,40px)}

  /* WhoWeAre editorial */
  .wwa-body{padding:40px 20px}
  .wwa-title{font-size:clamp(28px,8vw,40px)}

  /* About */
  .about-hero{min-height:52vh}
  .about-hero h1{font-size:clamp(32px,10vw,52px)}
  .about-cols{grid-template-columns:1fr;gap:24px}
  .about-values{grid-template-columns:1fr}
  .about-imgrow{grid-template-columns:1fr}
  .about-imgrow img{height:220px}

  /* Footer stacks */
  .foot-grid{grid-template-columns:1fr;gap:28px}
  .foot{padding-top:48px}

  /* CTA */
  .cta{padding:56px 0}
  .cta h2{font-size:clamp(30px,9vw,44px)}

  /* Prevent long emails/words from overflowing */
  .topbar{display:none}
  .topbar-in{font-size:11.5px;gap:4px}
  a[href^="mailto"],a[href^="tel"],.muted{word-break:break-word;overflow-wrap:anywhere}

  /* Modals fit screen */
  .modal-card,.reserve,.pd-book{max-width:100%;margin:0 10px}

  /* Package detail responsive */
  .pd-gallery{grid-template-columns:1fr}
  .trav-grid{grid-template-columns:1fr}
}

/* Very small phones */
@media(max-width:380px){
  .strip-grid{grid-template-columns:1fr}
  .strip .cell::after{display:none}
  .hero h1{font-size:32px}
  .logo-txt{font-size:23px}
  .hero-cta{flex-direction:column}
  .hero-cta .btn{width:100%}
}

/* Ensure any wide element (tables, pre, iframes) never forces horizontal scroll */
table,pre,iframe,video{max-width:100%}
.wrap>*{min-width:0}

/* Prevent any stray horizontal overflow without breaking sticky nav.
   Applied to content sections (not html/body/nav ancestors). */
.sec,.hero,.strip,.wwa,.about-hero,.ab-split,.ab-stats,.cta,.banner,.foot,.pd-wrap{overflow-x:hidden}

/* ============================================================
   Booking wizard (book.php)
   ============================================================ */
.bk-wrap{display:grid;grid-template-columns:1fr 360px;gap:32px;align-items:start;max-width:1040px;margin:0 auto}
.bk-main{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:36px 34px;box-shadow:var(--shadow)}
/* step indicator */
.bk-steps{display:flex;align-items:center;margin-bottom:30px}
.bk-step-ind{display:flex;flex-direction:column;align-items:center;gap:6px;flex:none}
.bk-step-ind .n{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:700;
  background:#e7ebe8;color:#8a978f;border:2px solid #e7ebe8;transition:all .25s;font-family:'Barlow Condensed';font-size:18px}
.bk-step-ind .t{font-size:12px;color:#8a978f;font-weight:600;letter-spacing:.02em}
.bk-step-ind.on .n{background:var(--summit);color:var(--pine-d);border-color:var(--summit)}
.bk-step-ind.on .t{color:var(--pine-d)}
.bk-step-ind.done .n{background:var(--pine);color:#fff;border-color:var(--pine);font-size:0}
.bk-step-ind.done .n::after{content:"\2713";font-size:16px}
.bk-line{flex:1;height:2px;background:#e7ebe8;margin:0 10px;position:relative;top:-10px}
/* panes */
.bk-pane{display:none;animation:bkFade .35s ease}
.bk-pane.on{display:block}
@keyframes bkFade{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
.bk-h{font-family:'Barlow Condensed';font-size:26px;font-weight:700;color:var(--pine-d);margin-bottom:4px}
.bk-sub{color:var(--muted);font-size:14px;margin-bottom:20px}
.bk-main label{display:block;font-size:13px;font-weight:600;color:#3a463f;margin:16px 0 6px}
.bk-main input,.bk-main select,.bk-main textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:9px;font-size:14.5px;font-family:inherit;background:#fff}
.bk-main input:focus,.bk-main select:focus,.bk-main textarea:focus{outline:none;border-color:var(--summit);box-shadow:0 0 0 3px rgba(224,168,61,.15)}
.bk-nav{display:flex;justify-content:space-between;align-items:center;margin-top:26px;gap:12px}
.bk-nav .btn{cursor:pointer}
.bk-nav .btn-o{color:var(--pine);border-color:var(--line);background:#fff}
.bk-nav .btn-o:hover{background:var(--pine);color:#fff;border-color:var(--pine)}
/* review */
.bk-review{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:18px}
.bk-rev-row{display:flex;justify-content:space-between;gap:16px;padding:13px 16px;font-size:14px;border-bottom:1px solid var(--line)}
.bk-rev-row:last-child{border-bottom:none}
.bk-rev-row span{color:var(--muted)}
.bk-rev-row b{color:var(--ink);text-align:right;word-break:break-word}
.bk-agree{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;color:#4a5751;font-weight:500!important;cursor:pointer}
.bk-agree input{width:auto!important;margin-top:2px}
/* summary card */
.bk-side{position:sticky;top:96px}
.bk-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}
.bk-card-head{background:var(--pine-d);color:#fff;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;font-family:'Barlow Condensed';font-size:19px;font-weight:700;letter-spacing:.02em}
.bk-badge{background:var(--summit);color:var(--pine-d);font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;letter-spacing:.06em;font-family:Inter}
.bk-card-body{padding:20px}
.bk-sum-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;font-size:14px;border-bottom:1px dashed var(--line)}
.bk-sum-row span{color:var(--muted)}
.bk-sum-row b{color:var(--ink);text-align:right}
.bk-price{margin-top:14px;padding-top:14px}
.bk-price .lbl{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.bk-price .amt{font-family:'Barlow Condensed';font-size:34px;font-weight:700;color:var(--pine-d);line-height:1;margin-top:4px}
.bk-price .amt small{display:block;font-family:Inter;font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.bk-price .amt .k{display:block;font-family:Inter;font-size:13px;color:#5d6b64;font-weight:600;margin-top:2px}
.bk-perks{list-style:none;padding:16px 20px;margin:0;border-top:1px solid var(--line);background:#f7f5f0}
.bk-perks li{font-size:13px;color:#4a5751;padding:5px 0;font-weight:500}
/* success */
.bk-success{max-width:560px;margin:0 auto;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:50px 34px;box-shadow:var(--shadow)}
.bk-success .tick{width:70px;height:70px;border-radius:50%;background:var(--pine);color:#fff;font-size:34px;display:grid;place-items:center;margin:0 auto 18px}
.bk-success h3{font-family:'Barlow Condensed';font-size:30px;color:var(--pine-d);margin-bottom:8px}
.bk-success p{color:#4a5751;line-height:1.7}
.bk-trust{margin-top:16px;font-size:13px;color:var(--muted)}
@media(max-width:900px){
  .bk-wrap{grid-template-columns:1fr}
  .bk-side{position:static;order:-1}
  .bk-main{padding:28px 20px}
  .bk-step-ind .t{display:none}
  .bk-step-ind .n{width:34px;height:34px;font-size:16px}
}

/* Booking residency selector */
.bk-residency{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:4px}
.bk-res-opt{margin:0!important;cursor:pointer;display:block}
.bk-res-opt input{position:absolute;opacity:0;width:0;height:0}
.bk-res-card{display:block;border:2px solid var(--line);border-radius:11px;padding:14px 16px;transition:all .2s;background:#fff;height:100%}
.bk-res-card b{display:block;font-family:'Barlow Condensed';font-size:19px;color:var(--pine-d);margin-bottom:3px}
.bk-res-card small{display:block;font-size:12px;color:var(--muted);line-height:1.4}
.bk-res-opt input:checked + .bk-res-card{border-color:var(--summit);background:#fdf7ec;box-shadow:0 0 0 3px rgba(224,168,61,.14)}
.bk-res-opt:hover .bk-res-card{border-color:var(--summit)}
@media(max-width:600px){.bk-residency{grid-template-columns:1fr}}

/* ============================================================
   Payment page (pay.php) — Lipa na M-Pesa brochure
   ============================================================ */
.pay-grid{display:grid;grid-template-columns:1fr 420px;gap:32px;align-items:start;max-width:1000px;margin:0 auto}
.pay-info{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:32px 30px;box-shadow:var(--shadow)}
.pay-h{font-family:'Barlow Condensed';font-size:28px;color:var(--pine-d);margin-bottom:6px}
.pay-sub{color:var(--muted);font-size:14.5px;margin-bottom:20px}
.pay-lookup{display:flex;gap:10px;flex-wrap:wrap}
.pay-lookup input{flex:1;min-width:180px;padding:13px 16px;border:1px solid var(--line);border-radius:9px;font-size:16px;font-weight:600;letter-spacing:.05em}
.pay-lookup input:focus{outline:none;border-color:var(--summit);box-shadow:0 0 0 3px rgba(224,168,61,.15)}
.pay-summary{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:16px}
.pay-row{display:flex;justify-content:space-between;gap:16px;padding:13px 16px;font-size:14.5px;border-bottom:1px solid var(--line)}
.pay-row:last-child{border-bottom:none}
.pay-row span{color:var(--muted)}
.pay-row b{color:var(--ink);text-align:right}
.pay-total{background:#fdf7ec}
.pay-total b{font-family:'Barlow Condensed';font-size:22px;color:var(--pine-d)}
.pay-deposit{background:#e6f4ea;color:#1f7a3d;padding:12px 16px;border-radius:10px;font-size:13.5px;font-weight:500;margin-bottom:14px}
.pay-ref-note{font-size:13.5px;color:#4a5751;line-height:1.6}
/* M-Pesa brochure card */
.pay-methods{display:flex;flex-direction:column;gap:20px}
.mpesa-card{border:1px solid #d9e5dc;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);background:#fff}
.mpesa-head{background:#4bb74a;color:#fff;text-align:center;padding:18px;font-family:'Barlow Condensed',Arial,sans-serif;font-size:30px;font-weight:700;letter-spacing:2px}
.mpesa-body{padding:22px 20px}
.mpesa-label{text-align:center;color:#4bb74a;font-weight:700;font-size:15px;letter-spacing:1px;text-transform:uppercase;margin-bottom:12px}
.mpesa-boxes{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}
.mpesa-box{width:38px;height:46px;border:2px solid #ef3e33;border-radius:3px;display:grid;place-items:center;font-size:24px;font-weight:700;color:#333}
.mpesa-account{border:2px solid #ef3e33;border-radius:3px;padding:12px;text-align:center;font-size:20px;font-weight:700;color:#333;letter-spacing:1px}
.mpesa-amt-lbl{text-align:center;color:var(--muted);font-size:13px;margin-top:16px}
.mpesa-amt{text-align:center;font-family:'Barlow Condensed';font-size:30px;font-weight:700;color:var(--pine-d);line-height:1.1}
.mpesa-charges{text-align:center;color:#9aa4a0;font-size:11.5px;margin-top:14px}
/* Bank card */
.bank-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px 22px;box-shadow:var(--shadow)}
.bank-card h3{font-family:'Barlow Condensed';font-size:21px;color:var(--pine-d);margin-bottom:10px}
.pay-instr{background:#f7f5f0;border:1px solid var(--line);border-radius:10px;padding:14px 16px;font-size:13.5px;color:#4a5751;line-height:1.6}
.pay-confirm-note{background:#eef7f3;border-left:3px solid #25d366;border-radius:8px;padding:13px 16px;font-size:13.5px;color:#345;line-height:1.6}
.pay-confirm-note a{color:#128c4b;font-weight:700}
@media(max-width:900px){
  .pay-grid{grid-template-columns:1fr}
  .pay-info{padding:26px 20px}
  .mpesa-box{width:34px;height:42px;font-size:21px}
}

/* M-Pesa Till (Buy Goods) variant — matches the green Till brochure */
.mpesa-card.till .mpesa-label{font-size:17px}
.till-boxes{gap:9px;margin-top:6px}
.mpesa-box.till-box{width:52px;height:64px;border:2px solid #3aa856;border-radius:8px;font-size:34px;color:#111;box-shadow:0 2px 4px rgba(0,0,0,.08)}
.mpesa-till-name{text-align:center;color:#158a3b;font-family:'Barlow Condensed',Arial,sans-serif;font-weight:700;font-size:22px;letter-spacing:1px;margin-top:14px}
.mpesa-till-note{text-align:center;color:#333;font-weight:700;font-size:12.5px;letter-spacing:.03em;text-transform:uppercase;margin-top:12px}
@media(max-width:900px){.mpesa-box.till-box{width:40px;height:52px;font-size:26px}}

/* Package gear/includes list */
.pd-list{list-style:none;padding:0;margin:8px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}
.pd-list li{position:relative;padding-left:26px;font-size:14.5px;color:#3a463f;line-height:1.5}
.pd-list li::before{content:"\2713";position:absolute;left:0;top:0;color:var(--summit);font-weight:700}
@media(max-width:600px){.pd-list{grid-template-columns:1fr}}

/* ============================================================
   Services page — premium
   ============================================================ */
.svc-banner{position:relative}

/* Intro: two-column editorial lead */
.svc-intro{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.svc-intro-lead h2{font-family:'Barlow Condensed';font-weight:600;font-size:clamp(30px,4vw,46px);color:var(--pine-d);line-height:1.06;letter-spacing:-.01em;margin-top:8px}
.svc-intro-body p{color:#4a5751;font-size:16.5px;line-height:1.85}
.svc-stats{display:flex;gap:36px;margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}
.svc-stats b{display:block;font-family:'Barlow Condensed';font-size:40px;font-weight:700;color:var(--pine-d);line-height:1}
.svc-stats b span{color:var(--summit)}
.svc-stats .l{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}

/* Service rows */
.sec-svc{padding:20px 0 90px}
.svc-row{display:grid;grid-template-columns:1.05fr 1fr;gap:60px;align-items:center;padding:56px 0;border-top:1px solid var(--line)}
.svc-row:first-child{border-top:none}
.svc-row.rev .svc-row-media{order:2}
.svc-row-media{position:relative}
.svc-row-media img{width:100%;height:420px;object-fit:cover;border-radius:4px}
.svc-num{position:absolute;top:-26px;left:-6px;font-family:'Barlow Condensed';font-size:110px;font-weight:700;line-height:1;color:var(--pine-d);opacity:.06;z-index:0;letter-spacing:-.03em}
.svc-icon{position:absolute;right:22px;bottom:22px;width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.92);backdrop-filter:blur(4px);color:var(--pine);display:grid;place-items:center;box-shadow:0 10px 30px rgba(12,38,30,.25)}
.svc-icon svg{width:30px;height:30px}
.svc-tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ice-d);background:rgba(63,169,184,.1);padding:6px 14px;border-radius:30px;margin-bottom:16px}
.svc-row-text h2{font-family:'Barlow Condensed';font-weight:700;font-size:clamp(28px,3.6vw,40px);color:var(--pine-d);line-height:1.04;letter-spacing:-.01em;margin-bottom:14px}
.svc-row-text>p{color:#4a5751;font-size:15.5px;line-height:1.85;margin-bottom:22px}
.svc-features{list-style:none;padding:0;margin:0 0 28px;display:grid;grid-template-columns:1fr 1fr;gap:12px 22px}
.svc-features li{position:relative;padding-left:28px;font-size:14px;color:#2f3a34;line-height:1.5;font-weight:500}
.svc-features li::before{content:"";position:absolute;left:0;top:1px;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--summit)}
.svc-features li::after{content:"\2713";position:absolute;left:4.5px;top:1px;color:var(--summit-d);font-size:11px;font-weight:800}
.svc-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.svc-link{color:var(--pine);font-weight:600;font-size:14.5px;display:inline-flex;align-items:center;gap:6px;transition:gap .2s}
.svc-link span{transition:transform .2s}
.svc-link:hover span{transform:translateX(4px)}

/* Why band */
.svc-why{background:var(--pine-d);color:#e8f0ec;position:relative}
.svc-why .sec-head h2{color:#fff}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.why-card{background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:34px 24px;text-align:center;transition:transform .25s,border-color .25s}
.why-card:hover{transform:translateY(-6px);border-color:rgba(224,168,61,.5)}
.why-ic{width:60px;height:60px;margin:0 auto 18px;border-radius:16px;background:rgba(224,168,61,.14);color:var(--summit);display:grid;place-items:center;border:1px solid rgba(224,168,61,.3)}
.why-ic svg{width:30px;height:30px}
.why-card h3{font-family:'Barlow Condensed';font-size:22px;font-weight:600;color:#fff;margin-bottom:9px}
.why-card p{font-size:13.5px;color:#b9cabf;line-height:1.65}

/* Process timeline */
.proc{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.proc-line{position:absolute;top:22px;left:12%;right:12%;height:2px;background:linear-gradient(90deg,var(--summit),var(--ice));opacity:.35;z-index:0}
.proc-step{position:relative;z-index:1;text-align:center;padding:0 8px}
.proc-n{width:46px;height:46px;margin:0 auto 18px;border-radius:50%;background:var(--paper);border:2px solid var(--summit);color:var(--pine-d);font-family:'Barlow Condensed';font-size:22px;font-weight:700;display:grid;place-items:center;box-shadow:0 6px 16px rgba(12,38,30,.12)}
.proc-step h3{font-family:'Barlow Condensed';font-size:20px;font-weight:600;color:var(--pine-d);margin-bottom:8px}
.proc-step p{font-size:13.5px;color:#4a5751;line-height:1.65}

@media(max-width:900px){
  .svc-intro{grid-template-columns:1fr;gap:22px}
  .svc-row{grid-template-columns:1fr;gap:28px;padding:40px 0}
  .svc-row.rev .svc-row-media{order:0}
  .svc-row-media img{height:300px}
  .svc-num{font-size:80px;top:-20px}
  .why-grid{grid-template-columns:1fr 1fr}
  .proc{grid-template-columns:1fr 1fr;gap:32px 24px}
  .proc-line{display:none}
}
@media(max-width:560px){
  .svc-features{grid-template-columns:1fr}
  .why-grid,.proc{grid-template-columns:1fr}
  .svc-stats{gap:22px}
  .svc-stats b{font-size:32px}
}

/* --- Hero readability overlay v4 (scrim on slides container) --- */
.hero-slider .hero-slides{position:absolute;inset:0;z-index:0}
.hero-slider .hero-slides::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,
      rgba(8,26,20,.62) 0%,
      rgba(8,26,20,.40) 45%,
      rgba(8,26,20,.16) 100%);
}
.hero-slider .hero-in{position:relative;z-index:2}
.hero-dots{z-index:4}

/* On-request price label */
.pr-onreq{display:inline-block;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:20px;color:var(--pine-d)}

/* ===== Custom country-code dropdown with flags ===== */
.ccwrap{position:relative;display:inline-flex;align-items:center}
.cc-btn{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;cursor:pointer;padding:0 4px;font-size:13.5px;color:inherit;font-family:inherit}
.cc-flag{width:24px;height:18px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.cc-code{font-weight:600}
.cc-caret{font-size:10px;opacity:.6;margin-left:2px}
.cc-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:120;width:280px;max-width:78vw;background:#fff;border:1px solid var(--line,#e3e8e5);border-radius:12px;box-shadow:0 18px 44px -12px rgba(12,38,30,.35);overflow:hidden}
.cc-search{width:100%;border:none;border-bottom:1px solid var(--line,#e3e8e5);padding:12px 14px;font-size:14px;outline:none}
.cc-list{list-style:none;margin:0;padding:6px;max-height:260px;overflow-y:auto}
.cc-list li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:14px;color:#2f3a34}
.cc-list li:hover,.cc-list li.active{background:#f1f5f2}
.cc-list li .fl{width:24px;height:18px;object-fit:cover;border-radius:2px;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.cc-list li .nm{flex:1}
.cc-list li .dc{color:#6b7873;font-weight:600;font-size:13px}
.cc-list li.none{justify-content:center;color:#9aa4a0;cursor:default}
.cc-list li.none:hover{background:transparent}

/* Cancellation / policy page */
.policy-doc{max-width:820px;margin:0 auto}
.policy-doc h3{font-family:'Barlow Condensed',sans-serif;font-size:20px;color:var(--pine-d);margin:26px 0 8px;letter-spacing:.02em;text-transform:uppercase}
.policy-doc h3:first-child{margin-top:0}
.policy-doc p{color:#4a5751;font-size:15.5px;line-height:1.8;margin-bottom:14px}
.policy-cta{margin-top:32px;padding-top:24px;border-top:1px solid var(--line);display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.policy-cta p{margin:0 8px 0 0;font-weight:600;color:var(--pine-d)}

/* Review page */
.rv-form-wrap,.rv-thanks{max-width:640px;margin:0 auto}
.rv-intro{font-size:16px;color:#4a5751;line-height:1.7;margin-bottom:20px}
.rv-form label{display:block;font-size:13px;font-weight:600;color:#3a463f;margin:16px 0 6px}
.rv-form textarea,.rv-form input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:9px;font-size:15px;font-family:inherit}
.rv-form textarea:focus,.rv-form input:focus{outline:none;border-color:var(--summit);box-shadow:0 0 0 3px rgba(224,168,61,.15)}
.rv-stars{display:flex;gap:6px}
.rv-star{background:none;border:none;font-size:34px;line-height:1;cursor:pointer;color:#d8dcd9;transition:color .15s;padding:0}
.rv-star.on{color:var(--summit)}
.rv-google{margin-top:18px;font-size:14px;color:#4a5751}
.rv-google a{color:var(--ice-d);font-weight:600}
.rv-thanks{text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:44px 30px;box-shadow:var(--shadow)}
.rv-thanks .tick{width:64px;height:64px;border-radius:50%;background:var(--pine);color:#fff;font-size:30px;display:grid;place-items:center;margin:0 auto 16px}
.rv-thanks h3{font-family:'Barlow Condensed';font-size:28px;color:var(--pine-d);margin-bottom:8px}
.rv-thanks p{color:#4a5751;line-height:1.7}

/* Logo sizing on small screens */
@media(max-width:600px){.logo img{max-height:60px}}

/* ===== Public blog ===== */
.blog-list{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.blog-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.blog-card:hover{transform:translateY(-4px)}
.bc-img{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--pine)}
.bc-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.blog-card:hover .bc-img img{transform:scale(1.05)}
.bc-noimg{display:grid;place-items:center;height:100%;color:#fff;font-family:'Barlow Condensed';font-size:26px;letter-spacing:.05em;opacity:.6}
.bc-body{padding:20px;display:flex;flex-direction:column;flex:1}
.bc-date{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ice-d);font-weight:600;margin-bottom:8px}
.bc-body h3{font-family:'Barlow Condensed';font-size:22px;line-height:1.15;margin-bottom:8px}
.bc-body h3 a{color:var(--pine-d)}
.bc-body p{color:#4a5751;font-size:14px;line-height:1.6;flex:1;margin-bottom:12px}
.bc-more{color:var(--summit-d);font-weight:600;font-size:14px}
/* Single post */
.post-article{max-width:800px;margin:0 auto}
.post-cover{width:100%;border-radius:14px;margin-bottom:26px;box-shadow:var(--shadow)}
.post-body{font-size:16.5px;line-height:1.85;color:#2f3a34}
.post-body h2,.post-body h3,.post-body h4{font-family:'Barlow Condensed';color:var(--pine-d);margin:26px 0 10px;line-height:1.15}
.post-body h2{font-size:28px}.post-body h3{font-size:23px}.post-body h4{font-size:20px}
.post-body p{margin-bottom:16px}
.post-body img,.post-body video{max-width:100%;height:auto;border-radius:10px;margin:16px 0}
.post-body audio{width:100%;margin:12px 0}
.post-body a{color:var(--ice-d);text-decoration:underline}
.post-body ul,.post-body ol{margin:0 0 16px 22px}
.post-body li{margin-bottom:6px}
.post-body blockquote{border-left:4px solid var(--summit);padding:6px 18px;margin:18px 0;color:#4a5751;font-style:italic;background:#faf7f0}
.post-foot{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:900px){.blog-list{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.blog-list{grid-template-columns:1fr}}

/* ===== Blog enhancements ===== */
/* listing top / search */
.blog-top{display:flex;flex-direction:column;gap:10px;margin-bottom:28px}
.blog-search{display:flex;gap:8px;max-width:460px}
.blog-search input{flex:1;padding:12px 15px;border:1px solid var(--line);border-radius:9px;font-size:14.5px}
.blog-search input:focus{outline:none;border-color:var(--summit);box-shadow:0 0 0 3px rgba(224,168,61,.15)}
.blog-search button{display:inline-flex;align-items:center;gap:6px;background:var(--pine);color:#fff;border:none;border-radius:9px;padding:0 18px;font-weight:600;font-size:14px;cursor:pointer}
.blog-search button svg{width:16px;height:16px}
.blog-searchnote{font-size:13.5px;color:var(--muted)}
.blog-searchnote a{color:var(--ice-d);font-weight:600}
/* hero featured */
.blog-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:0;background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:34px;transition:transform .2s}
.blog-hero:hover{transform:translateY(-3px)}
.bh-img{aspect-ratio:16/11;overflow:hidden;background:var(--pine)}
.bh-img img{width:100%;height:100%;object-fit:cover}
.bh-body{padding:34px 32px;display:flex;flex-direction:column;justify-content:center}
.bh-tag{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--summit-d);font-weight:700;margin-bottom:12px}
.bh-body h2{font-family:'Barlow Condensed';font-size:clamp(26px,3.4vw,38px);line-height:1.08;color:var(--pine-d);margin-bottom:12px}
.bh-body p{color:#4a5751;font-size:15px;line-height:1.7;margin-bottom:16px}
/* post two-column layout */
.post-layout{display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:start;max-width:1080px;margin:0 auto}
.post-article{max-width:none;margin:0}
/* share row */
.post-share{display:flex;align-items:center;gap:10px;margin:0 0 24px;font-size:13px;color:var(--muted);font-weight:600}
.post-share .ps{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;transition:transform .15s}
.post-share .ps:hover{transform:translateY(-2px)}
.post-share .ps svg{width:17px;height:17px}
.post-share .fb{background:#1877f2}.post-share .x{background:#111}.post-share .wa{background:#25d366}.post-share .in{background:#0a66c2}
/* prev/next */
.post-nav{display:flex;justify-content:space-between;gap:16px;margin-top:34px;padding-top:24px;border-top:1px solid var(--line)}
.pn{flex:1;max-width:48%;border:1px solid var(--line);border-radius:12px;padding:14px 16px;transition:border-color .2s,background .2s}
.pn:hover{border-color:var(--summit);background:#fdf9f0}
.pn span{display:block;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:4px}
.pn b{color:var(--pine-d);font-size:14.5px;line-height:1.3;display:block}
.pn.next{text-align:right}
/* sidebar */
.post-sidebar{position:sticky;top:96px;display:flex;flex-direction:column;gap:20px}
.sb-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow)}
.sb-title{font-family:'Barlow Condensed';font-size:19px;color:var(--pine-d);margin:0 0 14px;padding-bottom:10px;border-bottom:2px solid var(--summit);display:inline-block}
.sb-search{display:flex;gap:6px}
.sb-search input{flex:1;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px}
.sb-search input:focus{outline:none;border-color:var(--summit)}
.sb-search button{background:var(--pine);color:#fff;border:none;border-radius:8px;width:42px;display:grid;place-items:center;cursor:pointer}
.sb-search button svg{width:16px;height:16px}
.sb-recent{list-style:none;padding:0;margin:0}
.sb-recent li{margin-bottom:14px}
.sb-recent li:last-child{margin-bottom:0}
.sb-recent a{display:flex;gap:12px;align-items:center}
.sr-thumb{width:60px;height:60px;border-radius:8px;overflow:hidden;flex:none;background:var(--pine);display:grid;place-items:center}
.sr-thumb img{width:100%;height:100%;object-fit:cover}
.sr-thumb i{color:#fff;font-style:normal;font-weight:700;opacity:.6;font-size:13px}
.sr-txt b{display:block;font-size:14px;color:var(--pine-d);line-height:1.3;font-weight:600}
.sr-txt em{font-style:normal;font-size:12px;color:var(--muted)}
.sb-recent a:hover .sr-txt b{color:var(--ice-d)}
.sb-cta{background:var(--pine-d);color:#fff;text-align:center}
.sb-cta h4{font-family:'Barlow Condensed';font-size:21px;color:#fff;margin:0 0 8px}
.sb-cta p{font-size:13.5px;color:#c3d4c9;line-height:1.6;margin-bottom:14px}
.sb-cta .btn{width:100%}
.sb-wa{display:block;margin-top:10px;font-size:13px;color:var(--summit)}
@media(max-width:900px){
  .post-layout{grid-template-columns:1fr}
  .post-sidebar{position:static}
  .blog-hero{grid-template-columns:1fr}
  .bh-img{aspect-ratio:16/9}
}

/* Blog listing with sidebar */
.blog-main-col{min-width:0}
.blog-main-col .blog-hero{grid-template-columns:1fr}
.blog-main-col .bh-img{aspect-ratio:16/8}
.blog-main-col .bh-body{padding:26px 28px}
.blog-list-2{grid-template-columns:1fr 1fr}
@media(max-width:1100px){.blog-list-2{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.blog-list-2{grid-template-columns:1fr}}
