/* Olpul Safaris shared polish */
:root{
  --olpul-bg:#0B0F0C;
  --olpul-gold:#f59e0b;
  --olpul-gold-light:#ffb21f;
  --olpul-text:#ffffff;
  --olpul-muted:#d1d5db;
  --olpul-soft:#9ca3af;
}

.logo-bg{
  overflow:hidden;
}

.logo-bg img,
.site-logo{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
}

.site-brand .logo-bg{
  width:58px;
  height:58px;
  flex:0 0 58px;
}

.mobile-nav-toggle{
  display:none;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:#fff;
  border-radius:999px;
  padding:10px 16px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}

.site-nav .nav-links a[href="faq.html"]{
  white-space:nowrap;
}

/* Desktop hero balance */
@media(min-width:769px){
  .hero{
    min-height:100vh;
    padding-top:132px !important;
  }

  .hero-container{
    grid-template-columns:minmax(0,0.9fr) minmax(420px,0.9fr) !important;
    gap:clamp(34px,5vw,72px) !important;
    align-items:center !important;
  }

  .hero-container > div:first-child{
    min-width:0;
    max-width:560px;
  }

  .hero h1{
    max-width:560px;
    font-size:clamp(3rem,4.65vw,4.35rem) !important;
    line-height:1.04 !important;
    overflow-wrap:normal;
  }

  .hero-text{
    max-width:560px !important;
  }

  .hero-image{
    max-width:540px;
    justify-self:end;
  }

  .hero-image img{
    height:clamp(520px,54vw,680px) !important;
  }

  .hero-image .overlay-card{
    left:28px !important;
    right:28px !important;
    bottom:28px !important;
    padding:26px !important;
  }

  .hero-image .overlay-card h3{
    font-size:1.25rem;
    line-height:1.3;
  }

  .hero-image .overlay-card p{
    font-size:.98rem;
    line-height:1.7;
  }
}

@media(min-width:769px) and (max-width:1180px){
  .hero-container{
    grid-template-columns:minmax(0,0.9fr) minmax(360px,0.9fr) !important;
    gap:34px !important;
  }

  .hero h1{
    font-size:clamp(2.75rem,4.4vw,3.85rem) !important;
    max-width:500px;
  }

  .hero-image{
    max-width:480px;
  }
}

@media(min-width:769px) and (max-width:980px){
  .hero-container{
    grid-template-columns:1fr !important;
    max-width:760px !important;
  }

  .hero-container > div:first-child,
  .hero h1,
  .hero-text{
    max-width:100% !important;
  }

  .hero-image{
    justify-self:stretch;
    max-width:100%;
  }
}

.hero,
.gallery-hero{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
}

body.page-loaded .hero,
body.page-loaded .gallery-hero{
  animation:olpulFadeUp .6s ease both;
}

.page-animate{
  opacity:1;
  visibility:visible;
  transform:none;
}

body.animations-ready .page-animate{
  opacity:0;
  transform:translateY(22px);
}

body.animations-ready .page-animate.is-visible{
  opacity:1;
  transform:none;
  transition:opacity .72s ease,transform .72s ease;
}

@keyframes olpulFadeUp{
  from{opacity:.72;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

.olpul-footer{
  border-top:1px solid rgba(255,255,255,.08);
  padding:56px 5% 32px;
  background:#000;
}

.olpul-footer-inner{
  max-width:1400px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(260px,1.25fr) repeat(3,minmax(170px,1fr));
  gap:34px;
  align-items:start;
}

.olpul-footer-brand{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.olpul-footer-logo-row{
  display:flex;
  align-items:center;
  gap:12px;
}

.olpul-footer-logo{
  width:58px;
  height:58px;
  border-radius:10px;
  background:transparent;
  padding:0;
  overflow:hidden;
  display:flex;
}

.olpul-footer-logo img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
}

.olpul-house-logo{
  width:58px;
  height:58px;
  object-fit:cover;
  border-radius:10px;
  padding:0;
  background:transparent;
  border:0;
}

.olpul-footer h3,
.olpul-footer h4{
  color:#fff;
  margin:0 0 12px;
  font-weight:900;
}

.olpul-footer p,
.olpul-footer a{
  color:var(--olpul-muted);
  line-height:1.7;
  font-size:.95rem;
}

.olpul-footer a:hover{
  color:var(--olpul-gold);
}

.olpul-footer-links,
.olpul-footer-contact,
.olpul-footer-credentials{
  display:flex;
  flex-direction:column;
  gap:9px;
}

.olpul-footer-logos{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin:2px 0 8px;
}

.olpul-footer-logos img{
  width:58px;
  height:58px;
  object-fit:contain;
  border-radius:14px;
  padding:7px;
  background:#fff;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.22));
}

.olpul-footer-bottom{
  max-width:1400px;
  margin:34px auto 0;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.08);
  color:var(--olpul-soft);
  text-align:center;
}

@media(max-width:980px){
  .olpul-footer-inner{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:768px){
  body{
    padding-bottom:78px;
  }

  .site-header{
    padding:12px 5% !important;
  }

  .site-nav{
    display:grid !important;
    grid-template-columns:auto 1fr auto !important;
    align-items:center !important;
    gap:12px !important;
  }

  .site-brand{
    grid-column:1 / 3;
    min-width:0;
  }

  .site-brand .logo-bg{
    width:56px !important;
    height:56px !important;
    flex-basis:56px !important;
    border-radius:14px !important;
  }

  .site-brand span{
    font-size:1.15rem !important;
    line-height:1.15 !important;
  }

  .mobile-nav-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    grid-column:3;
  }

  .site-nav .nav-links{
    grid-column:1 / -1;
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    max-height:0 !important;
    overflow:hidden !important;
    opacity:0 !important;
    gap:8px !important;
    padding:0 !important;
    transition:max-height .32s ease,opacity .24s ease,padding .32s ease !important;
  }

  .site-nav.is-open .nav-links{
    max-height:520px !important;
    opacity:1 !important;
    padding-top:10px !important;
  }

  .site-nav .nav-links a{
    width:100% !important;
    text-align:left !important;
    padding:13px 14px !important;
    border-radius:14px !important;
    background:rgba(255,255,255,.055) !important;
    font-size:.98rem !important;
  }

  .site-nav .nav-links .nav-cta{
    text-align:center !important;
    background:var(--olpul-gold) !important;
  }

  .hero{
    padding-top:150px !important;
  }

  .floating-map-btn{
    width:58px !important;
    max-width:58px !important;
    height:58px !important;
    right:16px !important;
    left:auto !important;
    bottom:14px !important;
    padding:0 !important;
    border-radius:50% !important;
    justify-content:center !important;
  }

  .floating-map-btn .floating-map-label{
    max-width:0 !important;
    opacity:0 !important;
    overflow:hidden !important;
  }

  body.map-btn-folded .floating-map-btn.is-expanded,
  .floating-map-btn.is-expanded{
    width:calc(100% - 32px) !important;
    max-width:380px !important;
    height:58px !important;
    left:16px !important;
    right:auto !important;
    padding:0 22px !important;
    border-radius:999px !important;
    justify-content:center !important;
  }

  body.map-btn-folded .floating-map-btn.is-expanded .floating-map-label,
  .floating-map-btn.is-expanded .floating-map-label{
    max-width:240px !important;
    opacity:1 !important;
  }
}

@media(max-width:640px){
  .olpul-footer{
    padding:44px 5% 28px;
  }

  .olpul-footer-inner{
    grid-template-columns:1fr;
    gap:26px;
  }

  .olpul-footer-bottom{
    text-align:left;
  }

  .olpul-footer-logo,
  .olpul-house-logo,
  .olpul-footer-logos img{
    width:56px;
    height:56px;
    border-radius:13px;
  }
}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto !important;
    transition:none !important;
    animation:none !important;
  }

  .page-animate,
  .hero,
  .gallery-hero{
    opacity:1 !important;
    transform:none !important;
  }
}
.form-honeypot{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
