
:root{
  --green:#123e2b;
  --green2:#1f5b3b;
  --gold:#b88a28;
  --gold2:#d4aa4d;
  --cream:#f7f3e9;
  --paper:#fbf8f1;
  --ink:#17221b;
  --muted:#667067;
  --line:#ddd4c2;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif}
a{text-decoration:none;color:inherit}
.container{width:min(1460px,calc(100% - 44px));margin:auto}
.site-shell{min-height:100vh}
.mock-header{background:#fbf9f3;border-bottom:1px solid rgba(18,62,43,.08);position:sticky;top:0;z-index:40}
.mock-nav{min-height:106px;display:grid;grid-template-columns:auto 1fr auto;gap:36px;align-items:center}
.mock-brand{display:flex;align-items:center;gap:14px}
.mock-brand img{width:78px;height:78px;object-fit:contain}
.mock-brand div{display:flex;flex-direction:column}
.mock-brand strong{font:700 34px/1 "Playfair Display",serif;letter-spacing:.08em;color:var(--green)}
.mock-brand span{font:700 15px/1.2 "DM Sans",sans-serif;letter-spacing:.24em;color:var(--green);margin-top:4px}
.mock-brand small{font-size:10px;letter-spacing:.08em;margin-top:6px;color:#304637}
.mock-menu{display:flex;justify-content:center;gap:40px;font-size:13px;text-transform:uppercase;font-weight:600}
.mock-menu a{padding:39px 0 18px;position:relative}
.mock-menu a:after{content:"";position:absolute;bottom:11px;left:50%;width:0;height:2px;background:var(--gold);transform:translateX(-50%);transition:.25s}
.mock-menu a:hover:after,.mock-menu a.active:after{width:42px}
.get-in-touch{background:var(--green);color:white;padding:15px 22px;border-radius:3px;font-size:13px;font-weight:700;text-transform:uppercase}
.menu-toggle{display:none;border:0;background:none}
.menu-toggle span{display:block;width:27px;height:2px;background:var(--green);margin:5px}

.mock-hero{position:relative;height:665px;min-height:665px;overflow:hidden}

.hero-image-layer{position:absolute;inset:0;background-image:url("../images/kilimanjaro-safari-hero.png?v=20260827-v12");background-repeat:no-repeat;background-size:cover;background-position:60% 30%;transform:none;}
.hero-image-layer:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(248,242,229,.94) 0%,rgba(248,242,229,.78) 33%,rgba(248,242,229,.23) 60%,rgba(248,242,229,.12) 100%)}
.hero-wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,244,218,.08),rgba(19,57,39,.12))}
.hero-layout{position:relative;display:grid;grid-template-columns:1.02fr 1.65fr;gap:45px;align-items:end;min-height:665px;padding:46px 0 34px}
.hero-main-copy{align-self:center;padding-left:40px}
.micro-kicker,.section-label{font-size:10px;letter-spacing:.24em;font-weight:800;color:var(--gold)}
.hero-main-copy h1{font:700 clamp(58px,5.6vw,94px)/.91 "Playfair Display",serif;color:var(--green);letter-spacing:-.045em;margin:15px 0 22px}
.hero-main-copy p{font-size:17px;line-height:1.55;max-width:470px}
.hero-button{display:inline-flex;align-items:center;gap:18px;margin-top:18px;background:var(--green);color:white;padding:14px 22px;text-transform:uppercase;font-size:12px;font-weight:700}
.hero-button span{color:var(--gold2)}
.hero-pillars{display:grid;grid-template-columns:repeat(5,1fr);align-self:end;background:rgba(247,243,233,.78);backdrop-filter:blur(3px);border:1px solid rgba(18,62,43,.15)}
.hero-pillars article{padding:25px 18px 22px;text-align:center;border-right:1px solid rgba(18,62,43,.14);min-height:195px}
.hero-pillars article:last-child{border:0}
.pillar-icon{font-size:33px;color:var(--green);height:43px}
.hero-pillars h3{font:700 14px "Playfair Display",serif;text-transform:uppercase;color:var(--green);margin:10px 0}
.hero-pillars p{font-size:11px;line-height:1.45;color:#394a3e}

.story-band{padding:105px 0;background:#fff}
.story-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:90px}
.story-grid h2,.sustain-grid h2,.contact-final h2{font:700 clamp(46px,4.7vw,72px)/1.02 "Playfair Display",serif;letter-spacing:-.035em;margin:14px 0 0}
.story-grid h2 em{color:var(--gold)}
.story-copy p{font-size:16px;line-height:1.75;color:#59645c}

.sustainability-band{background:var(--green);color:white;padding:78px 0}
.sustain-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:center}
.section-label.light{color:#e1c06e}
.sustain-grid h2{font-size:52px;margin-top:12px}
.sustain-items{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sustain-items span{border:1px solid rgba(255,255,255,.24);padding:14px 18px;font-size:13px}

.global-offices{padding:24px 0 45px;background:#f4efe3}
.dual-panel{display:grid;grid-template-columns:.9fr 1.55fr;border:1px solid #dbcdb0;border-radius:10px;overflow:hidden;background:#f9f5ea}
.global-panel,.offices-panel{padding:28px 26px}
.global-panel{border-right:1px solid #e0d3bb}
.panel-title{text-align:center}
.panel-title h2{font:700 29px "Playfair Display",serif;text-transform:uppercase;letter-spacing:.025em;color:var(--green);margin:0}
.panel-title p{font-size:13px;margin:9px 0 0}
.gold-rule{display:flex;align-items:center;gap:8px;justify-content:center;color:var(--gold);margin:8px 0}
.gold-rule:before,.gold-rule:after{content:"";height:1px;width:38px;background:var(--gold)}
.map-wrap{padding-top:4px}
.map-wrap svg{width:100%;height:auto;display:block}
.land{fill:#c9c5ba;opacity:.85}
.route{fill:none;stroke:#1f5b3b;stroke-width:2;stroke-dasharray:5 6;opacity:.8}
.ring{fill:#f9f5ea;stroke:#173d2b;stroke-width:2}
.core{fill:#d5a82f;stroke:#173d2b;stroke-width:4}
.map-name{font:700 15px "DM Sans";fill:#173d2b}
.map-sub{font:500 11px "DM Sans";fill:#565e59}
.map-tagline{display:flex;gap:15px;align-items:center;border-top:1px solid #ded2bb;padding-top:12px}
.leaf-mark{font-size:30px;color:var(--gold)}
.map-tagline strong{font-size:15px}
.map-tagline p{font-size:11px;margin:3px 0;color:#616a63}

.office-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}
.office-mini{background:#fbf8ef;border:1px solid #decfae;border-radius:8px;padding:10px;text-align:center;position:relative}
.office-photo{height:165px;background-size:cover;background-position:center;border-radius:5px}




.flag{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:white;font-size:25px;margin:-23px auto 8px;position:relative;border:1px solid #ddd}
.office-mini h3{font:700 16px "Playfair Display",serif;text-transform:uppercase;color:var(--green);margin:4px 0}
.office-mini>span{font-size:10px;color:var(--gold);font-weight:700}
.office-mini p{font-size:11px;line-height:1.55;color:#454e47;margin:12px 0 6px}
.office-more{text-align:right;margin-top:13px}
.office-more a{font-size:12px;font-weight:700;color:var(--green)}

.contact-final{background:#153d2b;color:white;padding:90px 0}
.contact-final-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.contact-final p{color:#d9e1db;line-height:1.7;max-width:570px}
.contact-form-new{display:grid;gap:12px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.contact-form-new input,.contact-form-new select,.contact-form-new textarea{width:100%;padding:15px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:white;font:inherit;outline:none}
.contact-form-new input::placeholder,.contact-form-new textarea::placeholder{color:#cfd8d2}
.contact-form-new option{color:#17221b}
.contact-form-new button{border:0;background:#d5aa46;color:#15251b;padding:15px;font-weight:800;text-transform:uppercase;cursor:pointer}

.mock-footer{background:#0d271b;color:white;padding:35px 0}
.footer-layout{display:flex;align-items:center;justify-content:space-between}
.footer-brand strong,.footer-brand span{color:white}
.footer-brand small{color:#b8c6bd}
.footer-copy{font-size:11px;color:#9eaea4}

.locations-hero-v5{background:linear-gradient(120deg,#103925,#1d5b3a);padding:110px 0;color:white}
.locations-hero-v5 h1{font:700 clamp(58px,7vw,92px)/.95 "Playfair Display",serif;margin:15px 0 20px}
.locations-hero-v5 h1 em{color:#d5aa46}
.locations-hero-v5 p{font-size:18px;color:#dbe6de}
.locations-page-v5{padding:80px 0;background:#f5f0e4}
.locations-cards-v5{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.locations-cards-v5 article{background:white;border:1px solid #ded2b9;padding:30px;min-height:320px}
.locations-cards-v5 article>span{font-size:10px;letter-spacing:.18em;font-weight:800;color:#a67b22}
.locations-cards-v5 h2{font:700 34px "Playfair Display",serif;color:var(--green);margin:9px 0 0}
.locations-cards-v5 small{color:#a67b22;font-weight:700}
.locations-cards-v5 p{margin:35px 0;color:#525e55;line-height:1.7}
.locations-cards-v5 a{font-size:12px;font-weight:800;border-bottom:1px solid}

@media(max-width:1180px){
  .mock-nav{grid-template-columns:auto auto}.mock-menu{display:none}.get-in-touch{display:none}.menu-toggle{display:block;justify-self:end}
  .mock-menu.open{display:flex;position:absolute;top:105px;left:0;right:0;background:#fbf9f3;flex-direction:column;padding:20px 30px;gap:5px}
  .mock-menu a{padding:12px 0}
  .hero-layout{grid-template-columns:1fr;padding-top:50px}
  .hero-pillars{grid-template-columns:repeat(5,1fr)}
  .dual-panel{grid-template-columns:1fr}.global-panel{border-right:0;border-bottom:1px solid #e0d3bb}
}
@media(max-width:900px){
  .hero-pillars{grid-template-columns:1fr 1fr}.hero-pillars article{border-bottom:1px solid rgba(18,62,43,.14)}
  .story-grid,.sustain-grid,.contact-final-grid{grid-template-columns:1fr;gap:40px}
  .office-cards,.locations-cards-v5{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .container{width:min(100% - 26px,1460px)}
  .mock-nav{min-height:82px}.mock-brand img{width:58px;height:58px}.mock-brand strong{font-size:23px}.mock-brand span{font-size:10px}.mock-brand small{font-size:8px}
  .mock-menu.open{top:82px}
  .mock-hero{min-height:auto}.hero-layout{min-height:auto;padding:60px 0 22px}.hero-main-copy{padding-left:0}
  .hero-main-copy h1{font-size:54px}.hero-main-copy p{font-size:15px}
  .hero-pillars{grid-template-columns:1fr}
  .office-cards,.locations-cards-v5{grid-template-columns:1fr}
  .field-grid{grid-template-columns:1fr}.footer-layout{flex-direction:column;gap:20px;align-items:flex-start}
  .panel-title h2{font-size:24px}
}


/* ===== V6 HTML FIXES ===== */

/* Cleaner sequential global route: Minnesota → Cairo → Nairobi → Kajiado */
.route-main{
  fill:none;
  stroke:#1f5b3b;
  stroke-width:2.2;
  stroke-dasharray:6 6;
  stroke-linecap:round;
  opacity:.86;
}

/* Footer now mirrors the header's light premium identity */
.mock-footer-light{
  background:#fbf9f3;
  color:var(--ink);
  border-top:1px solid rgba(18,62,43,.12);
  padding:30px 0;
}
.footer-layout-light{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:40px;
  align-items:center;
}
.footer-brand-light img{
  width:68px;
  height:68px;
}
.footer-brand-light strong{
  color:var(--green);
  font-size:26px;
}
.footer-brand-light span{
  color:var(--green);
  font-size:12px;
}
.footer-brand-light small{
  color:#304637;
}
.footer-nav{
  display:flex;
  justify-content:center;
  gap:28px;
  flex-wrap:wrap;
  font-size:11px;
  text-transform:uppercase;
  font-weight:700;
  color:var(--green);
}
.footer-nav a{
  position:relative;
  padding:8px 0;
}
.footer-nav a:after{
  content:"";
  position:absolute;
  left:50%;
  bottom:2px;
  width:0;
  height:1px;
  background:var(--gold);
  transform:translateX(-50%);
  transition:.2s;
}
.footer-nav a:hover:after{width:32px}
.footer-copy-light{
  text-align:right;
  display:flex;
  flex-direction:column;
  gap:4px;
  color:#566359;
  font-size:10px;
}
.footer-copy-light small{
  color:var(--gold);
  font-weight:700;
  letter-spacing:.08em;
}

@media(max-width:950px){
  .footer-layout-light{
    grid-template-columns:1fr;
    text-align:center;
  }
  .footer-brand-light{
    justify-content:center;
  }
  .footer-copy-light{
    text-align:center;
  }
}


/* ===== V7 FINAL DESIGN REFINEMENTS ===== */

/* Hero refinements */
.hero-image-layer:after{
  background:
    linear-gradient(90deg,rgba(250,245,235,.97) 0%,rgba(250,245,235,.85) 30%,rgba(250,245,235,.28) 55%,rgba(250,245,235,.08) 100%);
}
.hero-wash{
  background:
    linear-gradient(180deg,rgba(255,248,233,.04),rgba(17,61,42,.15)),
    linear-gradient(0deg,rgba(18,62,43,.06),transparent 38%);
}
.hero-main-copy{
  max-width:560px;
}
.hero-main-copy h1{
  text-shadow:0 1px 0 rgba(255,255,255,.15);
}

/* Office phone styling */
.office-phone{
  display:inline-block;
  margin:5px 0 6px;
  color:var(--green);
  font-weight:800;
  font-size:11px;
}
.office-phone:before{
  content:"☎";
  margin-right:6px;
  color:var(--gold);
}
.office-phone-page{
  display:block;
  margin:-18px 0 22px;
  color:var(--green);
  font-weight:800;
  font-size:13px;
}

/* Premium footer inspired by the header palette */
.mock-footer-light{
  background:#fbf8ef;
  border-top:1px solid #d9cfba;
  padding:0;
}
.footer-top-v7{
  display:grid;
  grid-template-columns:1.45fr .75fr .75fr 1fr;
  gap:48px;
  padding:54px 0 42px;
}
.footer-brand-block>p{
  max-width:320px;
  color:#59655c;
  font-size:12px;
  line-height:1.7;
  margin:18px 0 0;
}
.footer-column,
.footer-contact-box{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:9px;
}
.footer-column h4,
.footer-contact-box h4{
  text-transform:uppercase;
  color:var(--green);
  letter-spacing:.09em;
  font-size:11px;
  margin:0 0 10px;
  position:relative;
  padding-bottom:9px;
}
.footer-column h4:after,
.footer-contact-box h4:after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:26px;
  height:2px;
  background:var(--gold);
}
.footer-column a{
  color:#4f5b52;
  font-size:11px;
}
.footer-column a:hover{
  color:var(--green);
}
.footer-contact-box p{
  color:#606b63;
  font-size:12px;
  margin:0 0 7px;
}
.footer-contact-btn{
  display:inline-flex;
  background:var(--green);
  color:white;
  padding:11px 18px;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  border-radius:3px;
}
.footer-contact-btn:before{
  content:"✦";
  color:var(--gold2);
  margin-right:8px;
}
.footer-bottom-v7{
  border-top:1px solid #ddd3c0;
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:15px 0 18px;
  color:#788079;
  font-size:9px;
}

/* Improve office card vertical spacing now that phone is added */
.office-mini{
  padding-bottom:14px;
}
.office-mini p{
  margin-bottom:5px;
}

@media(max-width:1100px){
  .footer-top-v7{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:650px){
  .footer-top-v7{
    grid-template-columns:1fr;
    gap:28px;
  }
  .footer-bottom-v7{
    flex-direction:column;
  }
}








/* ===== V13 KILIMANJARO — NO CROP FIX ===== */

/*
  Important:
  'cover' was the reason the summit kept disappearing.
  The hero now fits the COMPLETE source image inside the hero area.
  No part of Kilimanjaro is cropped.
*/
.mock-hero{
  position:relative !important;
  width:100%;
  height:665px !important;
  min-height:665px !important;
  overflow:hidden;
  background:#e9e2d2;
}

.hero-image-layer{
  position:absolute !important;
  inset:0 !important;
  background-image:url("../images/kilimanjaro-safari-hero.png?v=20260827-v13") !important;
  background-repeat:no-repeat !important;
  background-size:100% 100% !important;
  background-position:center center !important;
  transform:none !important;
}

.hero-image-layer:after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(
      90deg,
      rgba(250,245,235,.94) 0%,
      rgba(250,245,235,.76) 27%,
      rgba(250,245,235,.31) 48%,
      rgba(250,245,235,.08) 73%,
      rgba(250,245,235,.02) 100%
    ) !important;
}

.hero-layout{
  position:relative !important;
  height:665px !important;
  min-height:665px !important;
}

/* Never change the image fit or direction on tablet. */
@media(max-width:1180px){
  .mock-hero{
    height:665px !important;
    min-height:665px !important;
  }
  .hero-image-layer{
    background-size:100% 100% !important;
    background-position:center center !important;
  }
  .hero-layout{
    height:665px !important;
    min-height:665px !important;
  }
}

/* Mobile keeps the complete image too. */
@media(max-width:700px){
  .mock-hero{
    height:900px !important;
    min-height:900px !important;
  }
  .hero-image-layer{
    background-size:100% 100% !important;
    background-position:center center !important;
  }
  .hero-layout{
    height:900px !important;
    min-height:900px !important;
    padding-top:60px;
    padding-bottom:22px;
  }
}
