body,html{margin:0;padding:0}
#spinner{opacity:0;visibility:hidden;transition:opacity .5s ease-out,visibility 0s linear .5s;z-index:99999}#spinner.show{transition:opacity .5s ease-out,visibility 0s linear 0s;visibility:visible;opacity:1}
:root{--bs-primary:#047857;--bs-secondary:#10b981;--mangrove-dark:#022c22;--mangrove-900:#064e3b;--mangrove-700:#047857;--mangrove-500:#22c55e;--mangrove-100:#dcfce7;--accent:#a3e635;--text:#12332b}html{scroll-behavior:smooth}body{font-family:'Roboto',system-ui,sans-serif;color:#41534d;background:#f7fbf8}h1,h2,h3,h4,h5,.navbar-brand{font-family:'Jost',sans-serif;color:var(--mangrove-dark)}a{text-decoration:none}.bg-primary,.btn-primary{background:linear-gradient(135deg,var(--mangrove-700),var(--mangrove-500))!important;border-color:var(--mangrove-700)!important}.text-primary{color:var(--mangrove-700)!important}.btn{border-radius:999px;font-weight:700;transition:.35s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 35px rgba(4,120,87,.28)}.btn-outline-primary{color:var(--mangrove-700);border-color:var(--mangrove-700)}.btn-outline-primary:hover{background:var(--mangrove-700);border-color:var(--mangrove-700)}.topbar{position:fixed;top:0;width:100%;z-index:1000;padding:5px 0;background:linear-gradient(135deg,#022c22 0%,#065f46 55%,#047857 100%);border-bottom:1px solid rgba(255,255,255,.1)}.topbar-social-icon{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border:1.5px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;font-size:.68rem;text-decoration:none;transition:all .25s ease}.topbar-social-icon:hover{background:#4ade80;border-color:#4ade80;color:#022c22;transform:translateY(-2px)}.topbar-auth-link{color:rgba(255,255,255,.85);text-decoration:none;font-weight:500;letter-spacing:.3px;transition:color .2s ease}.topbar-auth-link:hover{color:#4ade80!important}.topbar-sep{color:rgba(255,255,255,.25);margin:0 2px}.topbar-dd{border:none;border-radius:16px;box-shadow:0 24px 56px rgba(2,44,34,.22),0 0 0 1px rgba(2,44,34,.07);min-width:230px;padding:8px;margin-top:12px!important}.topbar-dd .dropdown-item{border-radius:9px;padding:9px 14px;font-size:.875rem;font-weight:500;transition:background .18s,color .18s;margin-bottom:2px}.topbar-dd .dropdown-item:hover,.topbar-dd .dropdown-item:focus{background:#effaf3;color:#065f46}.topbar-dd .dropdown-item.text-danger:hover,.topbar-dd .dropdown-item.text-danger:focus{background:#fff1f2!important;color:#dc2626!important}.topbar-dd .dropdown-divider{border-color:#e9f5ee;margin:6px 0}.topbar-dash-btn.dropdown-toggle::after{vertical-align:.15em}.page-hero{position:relative;background:linear-gradient(135deg,#022c22 0%,#065f46 50%,#047857 100%);padding-top:calc(38px + 83px + 3.5rem)!important;padding-bottom:4rem!important;margin:0!important}.page-hero h1,.page-hero h2,.page-hero h3,.page-hero p,.page-hero .lead{color:#fff!important}.page-hero .btn-mangrove{background:rgba(255,255,255,.15);border:2px solid rgba(255,255,255,.5);color:#fff!important;backdrop-filter:blur(4px)}.page-hero .btn-mangrove:hover{background:#fff;color:#065f46!important}@media(max-width:991px){.page-hero{padding-top:calc(83px + 2.5rem)!important;padding-bottom:2.5rem!important}}.navbar{transition:.3s ease;z-index:999;top:38px}@media(max-width:991px){.navbar{top:0!important;background:#fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:0 2px 8px rgba(0,0,0,.1)}.navbar.glass .nav-link,.navbar.glass .navbar-brand,.navbar.sticky-top .nav-link,.navbar.sticky-top .navbar-brand{color:#022c22!important}.navbar-toggler-icon{filter:invert(1) sepia(1) saturate(3) hue-rotate(90deg)}}.navbar.glass{background:rgba(2,44,34,.58);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.navbar.sticky-top{background:#fff!important;box-shadow:0 10px 30px rgba(2,44,34,.12)}.navbar .nav-link{font-weight:600;color:#fff!important;transition:color .25s ease,border-color .25s ease;position:relative;padding-bottom:6px}.navbar.glass .nav-link:hover,.navbar.glass .nav-link:focus{color:#a7f3d0!important}.navbar.sticky-top .nav-link:hover,.navbar.sticky-top .nav-link:focus{color:var(--mangrove-700)!important}.navbar.glass .nav-link.active{color:#4ade80!important}.navbar.glass .nav-link:not(.dropdown-toggle)::after{content:'';position:absolute;bottom:0;left:50%;right:50%;height:2px;background:rgba(74,222,128,.8);border-radius:2px;transition:left .25s ease,right .25s ease}.navbar.glass .nav-link:not(.dropdown-toggle):hover::after,.navbar.glass .nav-link:not(.dropdown-toggle).active::after{left:0;right:0}.navbar.sticky-top .nav-link,.navbar.sticky-top .navbar-brand{color:var(--mangrove-dark)!important}.navbar.sticky-top .nav-link.active{color:var(--mangrove-700)!important}.navbar-brand{font-weight:800;color:#fff!important;transition:color .25s ease;display:inline-flex;align-items:center;padding:0;height:50px}.navbar.glass .navbar-brand:hover{color:#a7f3d0!important}.dropdown-menu{border:0;border-radius:16px;box-shadow:0 16px 40px rgba(2,44,34,.14)}.dropdown-item{transition:background .2s ease,color .2s ease;border-radius:8px;margin:1px 6px;width:calc(100% - 12px)}.dropdown-item:hover,.dropdown-item:focus{background:#effaf3!important;color:#065f46!important}.hero .carousel-item{min-height:92vh;background:#022c22}.hero .carousel-item img{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.74}.hero .carousel-caption{inset:0;display:flex!important;align-items:center;justify-content:center;background:linear-gradient(90deg,rgba(2,44,34,.88),rgba(2,44,34,.35));padding-top:120px;padding-bottom:100px}.hero h1{font-size:clamp(2.4rem,7vw,5.5rem);color:#fff}.hero p{max-width:760px;margin:auto}.search-panel{margin-top:20px!important;position:relative;z-index:20}.glass-card{background:rgba(255,255,255,.86);backdrop-filter:blur(16px);box-shadow:0 25px 70px rgba(2,44,34,.16);border:1px solid rgba(255,255,255,.7);border-radius:28px}.section-title{letter-spacing:.18em;text-transform:uppercase;color:var(--mangrove-700);font-weight:800}.service-card,.package-card,.destination-card,.testimonial-card{transition:.35s ease;border:0;border-radius:24px;overflow:hidden;box-shadow:0 18px 40px rgba(2,44,34,.09)}.service-card:hover,.package-card:hover,.destination-card:hover{transform:translateY(-10px);box-shadow:0 28px 70px rgba(4,120,87,.18)}.service-icon{width:72px;height:72px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:var(--mangrove-700);font-size:2rem}.destination-card img,.package-card img,.gallery-item img{height:250px;object-fit:cover}.badge-soft{background:#dcfce7;color:#065f46;border-radius:999px;padding:.45rem .85rem}.filter-btn.active{background:var(--mangrove-700);color:#fff}.cta-section{background:linear-gradient(135deg,rgba(2,44,34,.96),rgba(4,120,87,.92)),url('../img/hero-2.svg') center/cover;color:#fff;border-radius:36px}.footer{background:#021b15;color:#c8f7df}.footer a{color:#e5fff0}.back-to-top,.whatsapp-float{position:fixed;right:24px;z-index:999;border-radius:50%;display:grid;place-items:center;box-shadow:0 14px 28px rgba(2,44,34,.25)}.back-to-top{bottom:24px;width:46px;height:46px;display:none}.whatsapp-float{bottom:84px;width:54px;height:54px;background:#25d366;color:#fff;font-size:1.5rem}.form-control,.form-select{border-radius:16px;padding:.9rem 1rem;border:1px solid #d8eee4}.form-control:focus,.form-select:focus{border-color:var(--mangrove-500);box-shadow:0 0 0 .25rem rgba(34,197,94,.18)}.booking-step{display:none}.booking-step.active{display:block}.payment-option{cursor:pointer;border:2px solid #e4f4ea;border-radius:18px;padding:1rem;transition:.25s}.payment-option.active,.payment-option:hover{border-color:var(--mangrove-700);background:#effaf3}.map-wrap iframe{border:0;border-radius:24px;min-height:360px;width:100%}.gallery-item{cursor:pointer;overflow:hidden;border-radius:24px}.gallery-item img{transition:.35s}.gallery-item:hover img{transform:scale(1.08)}.demo-link-card{border-radius:22px;border:1px solid #dff4e8;background:white;transition:.25s}.demo-link-card:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(2,44,34,.1)}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}.about-index-section{position:relative;background:linear-gradient(135deg,rgba(4,120,87,.04),rgba(34,197,94,.04));overflow:hidden}.about-index-section::before{content:'';position:absolute;top:0;right:-100px;width:300px;height:300px;background:radial-gradient(circle,rgba(4,120,87,.08),transparent);border-radius:50%;pointer-events:none}.about-index-section::after{content:'';position:absolute;bottom:-50px;left:-100px;width:250px;height:250px;background:radial-gradient(circle,rgba(34,197,94,.06),transparent);border-radius:50%;pointer-events:none}.about-index-image{animation:fadeInUp .8s ease-out}.about-index-image img{box-shadow:0 40px 80px rgba(2,44,34,.15);transition:.5s cubic-bezier(.34,1.56,.64,1);border:3px solid rgba(255,255,255,.5)}.about-index-image:hover img{transform:scale(1.04);box-shadow:0 60px 100px rgba(4,120,87,.25)}.about-index-badge{position:absolute;bottom:24px;left:24px;background:#fff;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.8);border-radius:20px;padding:16px 20px;display:flex;align-items:center;gap:12px;box-shadow:0 20px 40px rgba(2,44,34,.12);animation:slideInLeft .7s ease-out .3s both}.about-index-badge i{font-size:1.5rem;color:var(--mangrove-700);background:linear-gradient(135deg,#dcfce7,#bbf7d0);width:48px;height:48px;display:grid;place-items:center;border-radius:50%;flex-shrink:0}.about-index-badge strong{color:var(--mangrove-dark);font-size:.95rem;font-weight:700;display:block;line-height:1.3}.about-index-badge span{color:#41534d;font-size:.8rem;display:block;font-weight:500}.about-index-kicker{display:inline-block;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--mangrove-700);font-size:.85rem;animation:slideInRight .6s ease-out}.about-index-title{font-size:clamp(1.8rem,5vw,2.8rem);font-weight:800;color:var(--mangrove-dark);line-height:1.2;margin-bottom:1.5rem;animation:fadeInUp .8s ease-out .1s both;letter-spacing:-.5px}.about-index-text{font-size:1.05rem;line-height:1.8;color:#41534d;margin-bottom:1.25rem;animation:fadeInUp .8s ease-out .2s both}.row.g-3.mt-3{animation:fadeInUp .8s ease-out .3s both}.about-feature-card{background:#fff;border:0;border-radius:24px;padding:24px;text-align:center;transition:.35s ease;position:relative;overflow:hidden;box-shadow:0 18px 40px rgba(2,44,34,.09)}.about-feature-card::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(4,120,87,.08),rgba(34,197,94,.05));opacity:0;transition:.4s ease}.about-feature-card:hover{border:0;box-shadow:0 28px 70px rgba(4,120,87,.18);transform:translateY(-10px)}.about-feature-card:hover::before{opacity:1}.about-feature-card i{font-size:2.2rem;color:var(--mangrove-700);margin-bottom:12px;display:block;transition:.4s ease}.about-feature-card:hover i{transform:scale(1.15) rotate(8deg)}.about-feature-card h6{color:var(--mangrove-dark);font-weight:700;font-size:1.05rem;margin:12px 0 8px;font-family:'Jost',sans-serif;transition:.3s ease}.about-feature-card:hover h6{color:var(--mangrove-500)}.about-feature-card p{color:#41534d;font-size:.95rem;line-height:1.6;margin:0;transition:.3s ease}.about-feature-card:hover p{color:#065f46}.mt-4.d-flex{animation:fadeInUp .8s ease-out .4s both}.mt-4.d-flex .btn{transition:.35s ease;position:relative;overflow:hidden}.mt-4.d-flex .btn::before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.3);transform:translate(-50%,-50%);transition:.6s ease}.mt-4.d-flex .btn:hover::before{width:300px;height:300px}.navbar-logo{height:50px;width:220px;object-fit:contain;object-position:left;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.05));transition:opacity 0.3s ease;display:block;flex-shrink:0;max-height:100%;max-width:100%}.navbar-logo:hover{transform:scale(1.02)}.page-header-offset{padding-top:0}@media(max-width:991px){.page-header-offset{padding-top:0}}
/* =====================================================
   GLOBAL FOOTER — .site-footer
   ===================================================== */
.site-footer{background:#021b15;color:#a7d9bf;font-family:'Roboto',sans-serif}
.footer-top{padding:4rem 0 3rem}
.footer-brand{display:flex;align-items:center;gap:.6rem}
.footer-brand-name{font-family:'Jost',sans-serif;font-weight:800;font-size:1.2rem;color:#fff;letter-spacing:-.1px;line-height:1.2}
.footer-desc{color:#a7d9bf;font-size:.875rem;line-height:1.8;margin-top:.7rem;max-width:360px}
.footer-social{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:1.25rem}
.footer-social-icon{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.12);display:inline-flex;align-items:center;justify-content:center;color:#a7d9bf;font-size:.95rem;text-decoration:none;transition:all .25s ease}
.footer-social-icon:hover{background:linear-gradient(135deg,#065f46,#22c55e);border-color:#22c55e;color:#fff;transform:translateY(-3px);box-shadow:0 8px 20px rgba(34,197,94,.3)}
.footer-heading{font-family:'Jost',sans-serif;font-weight:700;color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.8px;margin-bottom:1.2rem;position:relative;padding-bottom:.7rem}
.footer-heading::after{content:'';position:absolute;bottom:0;left:0;width:24px;height:2px;background:linear-gradient(90deg,#22c55e,#4ade80);border-radius:2px}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin-bottom:.55rem}
.footer-links li a{color:#a7d9bf;text-decoration:none;font-size:.875rem;transition:all .2s ease;display:inline-flex;align-items:center;gap:.3rem;padding-left:0}
.footer-links li a::before{content:'›';color:#22c55e;font-size:1.1rem;line-height:1;flex-shrink:0;transition:transform .2s,color .2s}
.footer-links li a:hover{color:#4ade80;padding-left:5px}
.footer-links li a:hover::before{transform:translateX(3px);color:#4ade80}
.footer-contact{list-style:none;padding:0;margin:0}
.footer-contact li{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.9rem;font-size:.875rem;color:#a7d9bf}
.footer-contact-icon{width:32px;height:32px;border-radius:9px;background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.18);display:flex;align-items:center;justify-content:center;color:#4ade80;flex-shrink:0;font-size:.82rem;margin-top:1px}
.footer-contact a{color:#a7d9bf;text-decoration:none;transition:color .2s;word-break:break-all}
.footer-contact a:hover{color:#4ade80}
.footer-divider{height:1px;background:linear-gradient(90deg,transparent 0%,rgba(34,197,94,.22) 30%,rgba(34,197,94,.22) 70%,transparent 100%)}
.footer-bottom{padding:1.1rem 0;background:#010f0b}
.footer-bottom small,.footer-bottom small a{color:rgba(167,217,191,.6);font-size:.78rem}
.footer-bottom-link{color:rgba(167,217,191,.6)!important;text-decoration:none;transition:color .2s}
.footer-bottom-link:hover{color:#4ade80!important}
@media(max-width:767px){.footer-top{padding:2.5rem 0 1.5rem}.footer-desc{max-width:100%}.footer-social{margin-bottom:.25rem}.footer-heading{margin-top:1rem}}
/* ===================================================== */

/* DESTINATION SECTION */
.mangrove-destination-section {
  background: #f8fafc;
}

.destination-subtitle {
  position: relative;
  display: inline-block;
  color: #047857;
  font-weight: 800;
  letter-spacing: 2px;
  margin-bottom: 12px;
}

.destination-subtitle::before,
.destination-subtitle::after {
  content: "";
  width: 55px;
  height: 2px;
  background: #047857;
  position: absolute;
  top: 50%;
}

.destination-subtitle::before {
  left: -70px;
}

.destination-subtitle::after {
  right: -70px;
}

.destination-title {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 800;
  color: #021b15;
}

/* FILTERS */
.destination-filter-wrap {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 18px;
  margin-bottom: 50px;
}

.destination-filter-btn {
  min-width: 150px;
  border: 2px solid #047857;
  background: transparent;
  color: #021b15;
  border-radius: 50px;
  padding: 13px 28px;
  font-weight: 700;
  transition: 0.3s ease;
}

.destination-filter-btn.active,
.destination-filter-btn:hover {
  background: #047857;
  color: #fff;
}

/* IMAGE ONLY CARD */
.destination-image-card {
  position: relative;
  display: block;
  height: 320px;
  border-radius: 22px;
  overflow: hidden;
  background: #022c22;
  cursor: pointer;
  box-shadow: 0 18px 45px rgba(2, 44, 34, 0.12);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.destination-tall-card {
  height: 664px;
}

.destination-image-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.65s ease, filter 0.65s ease;
}

/* DEFAULT STATE: ONLY IMAGE SHOWS */
.destination-hover-content {
  position: absolute;
  inset: 0;
  padding: 26px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  opacity: 0;
  visibility: hidden;
  transform: translateY(26px);
  background:
    linear-gradient(
      180deg,
      rgba(2, 27, 21, 0.05) 0%,
      rgba(2, 27, 21, 0.55) 45%,
      rgba(2, 27, 21, 0.94) 100%
    );
  transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease;
}

/* HOVER STATE: INFO APPEARS */
.destination-image-card:hover,
.destination-image-card:focus-within {
  transform: translateY(-10px);
  box-shadow: 0 30px 75px rgba(4, 120, 87, 0.24);
}

.destination-image-card:hover img,
.destination-image-card:focus-within img {
  transform: scale(1.13);
  filter: brightness(0.78) saturate(1.18);
}

.destination-image-card:hover .destination-hover-content,
.destination-image-card:focus-within .destination-hover-content {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.destination-photo-count {
  width: fit-content;
  padding: 9px 16px;
  margin-bottom: 14px;
  border-radius: 999px;
  color: #021b15;
  background: #dcfce7;
  font-weight: 800;
  font-size: 0.85rem;
}

.destination-hover-content h4 {
  color: #ffffff;
  font-size: 1.65rem;
  font-weight: 800;
  margin-bottom: 10px;
}

.destination-hover-content p {
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 18px;
}

.destination-book-btn {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 20px;
  border-radius: 999px;
  color: #ffffff;
  background: linear-gradient(135deg, #047857, #22c55e);
  font-weight: 800;
  text-decoration: none;
  transition: 0.3s ease;
}

.destination-book-btn:hover {
  color: #ffffff;
  transform: translateX(4px);
  box-shadow: 0 14px 30px rgba(34, 197, 94, 0.35);
}

/* MOBILE */
@media (max-width: 991px) {
  .destination-tall-card {
    height: 320px;
  }

  .destination-filter-btn {
    min-width: 130px;
  }
}

@media (max-width: 767px) {
  .destination-filter-wrap {
    gap: 10px;
  }

  .destination-filter-btn {
    min-width: auto;
    flex: 1 1 42%;
    padding: 11px 16px;
    font-size: 0.9rem;
  }

  .destination-image-card {
    height: 260px;
  }

  .destination-hover-content {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    padding: 18px;
    background:
      linear-gradient(
        180deg,
        rgba(2, 27, 21, 0.05) 0%,
        rgba(2, 27, 21, 0.65) 45%,
        rgba(2, 27, 21, 0.94) 100%
      );
  }

  .destination-hover-content h4 {
    font-size: 1.25rem;
  }

  .destination-hover-content p {
    display: none;
  }

  .destination-book-btn {
    width: 100%;
    justify-content: center;
  }
}

/* Destinations section hover-only title + amount */
#destinations .destination-card {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
}

#destinations .destination-card img {
  transform: scale(1);
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), filter 0.8s ease;
}

#destinations .destination-card .card-body {
  position: absolute;
  inset: auto 0 0 0;
  padding: 1.25rem;
  opacity: 0;
  transform: translateY(22px);
  background: linear-gradient(180deg, rgba(2, 27, 21, 0.02) 0%, rgba(2, 27, 21, 0.95) 100%);
  transition: opacity 0.45s ease, transform 0.45s ease;
}

#destinations .destination-card .card-body h4 {
  margin: 0;
  color: #ffffff;
  font-size: 1.25rem;
}

#destinations .destination-amount {
  margin-top: 0.35rem;
  color: #86efac;
  font-weight: 800;
  font-size: 1.05rem;
}

#destinations .destination-card:hover,
#destinations .destination-card:focus-within,
#destinations .destination-card.is-open {
  transform: translateY(-8px);
  box-shadow: 0 28px 65px rgba(4, 120, 87, 0.25);
}

#destinations .destination-card:hover img,
#destinations .destination-card:focus-within img,
#destinations .destination-card.is-open img {
  transform: scale(1.14);
  filter: brightness(0.72);
}

#destinations .destination-card:hover .card-body,
#destinations .destination-card:focus-within .card-body,
#destinations .destination-card.is-open .card-body {
  opacity: 1;
  transform: translateY(0);
}

/* Keep all hero sections fully visible below fixed topbar and navbar */
:root {
  --header-offset-desktop: 121px;
  --header-offset-mobile: 83px;
  --home-hero-desktop: 95vh;
  --home-hero-tablet: 80vh;
  --home-hero-mobile: 80vh;
  --inner-hero-desktop: 70vh;
  --inner-hero-tablet: 60vh;
  --inner-hero-mobile: 55vh;
}

.hero,
.page-hero,
.mgt-about-hero {
  margin-top: var(--header-offset-desktop) !important;
}

/* Hard-coded hero heights */
.hero {
  min-height: var(--home-hero-desktop) !important;
}

.hero .carousel-inner,
.hero .carousel-item,
.hero .carousel-item img {
  height: 100%;
  min-height: var(--home-hero-desktop) !important;
}

.page-hero,
.mgt-about-hero {
  min-height: var(--inner-hero-desktop) !important;
}

.page-hero {
  padding-top: 3.5rem !important;
}

@media (max-width: 991px) {
  .hero,
  .page-hero,
  .mgt-about-hero {
    margin-top: var(--header-offset-mobile) !important;
  }

  .hero {
    min-height: var(--home-hero-tablet) !important;
  }

  .hero .carousel-inner,
  .hero .carousel-item,
  .hero .carousel-item img {
    min-height: var(--home-hero-tablet) !important;
  }

  .page-hero,
  .mgt-about-hero {
    min-height: var(--inner-hero-tablet) !important;
  }

  .page-hero {
    padding-top: 2.5rem !important;
  }
}

@media (max-width: 575px) {
  .hero {
    min-height: var(--home-hero-mobile) !important;
  }

  .hero .carousel-inner,
  .hero .carousel-item,
  .hero .carousel-item img {
    min-height: var(--home-hero-mobile) !important;
  }

  .page-hero,
  .mgt-about-hero {
    min-height: var(--inner-hero-mobile) !important;
  }
}

/* Desktop default header color */
@media (min-width: 992px) {
  .navbar.glass {
    background: linear-gradient(135deg, #022c22 0%, #065f46 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 10px 30px rgba(2, 44, 34, 0.22);
  }
}

/* Smooth animation for all hero CTA buttons */
.hero .btn,
.page-hero .btn {
  position: relative;
  overflow: hidden;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.45s ease, filter 0.35s ease;
  will-change: transform, box-shadow;
}

.hero .btn::before,
.page-hero .btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -130%;
  width: 55%;
  height: 100%;
  background: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.32), rgba(255, 255, 255, 0));
  transform: skewX(-22deg);
  transition: left 0.6s ease;
}

.hero .btn:hover,
.hero .btn:focus-visible,
.page-hero .btn:hover,
.page-hero .btn:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 18px 36px rgba(2, 44, 34, 0.28);
  filter: saturate(1.06);
}

.hero .btn:hover::before,
.hero .btn:focus-visible::before,
.page-hero .btn:hover::before,
.page-hero .btn:focus-visible::before {
  left: 145%;
}

@media (prefers-reduced-motion: reduce) {
  .hero .btn,
  .page-hero .btn,
  .hero .btn::before,
  .page-hero .btn::before {
    transition: none !important;
  }
}

/* Keep navbar dropdowns consistently visible above hero sections on desktop */
@media (min-width: 992px) {
  .navbar {
    z-index: 1100;
  }

  .navbar .dropdown-menu {
    display: block;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  }

  .navbar .nav-item.dropdown:hover > .dropdown-menu,
  .navbar .nav-item.dropdown:focus-within > .dropdown-menu,
  .navbar .nav-item.dropdown > .dropdown-menu.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }
}

@media (min-width: 992px) {
  .topbar {
    z-index: 1250;
  }

  .topbar .topbar-dd {
    z-index: 1260;
  }
}

@media (min-width: 992px) {
  .navbar .nav-link.active {
    font-weight: 800;
  }

  .navbar.glass .nav-link.active {
    color: #86efac !important;
  }

  .navbar.sticky-top .nav-link.active {
    color: var(--mangrove-700) !important;
  }

  .navbar .nav-link:not(.dropdown-toggle).active::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    border-radius: 2px;
  }

  .navbar.glass .nav-link:not(.dropdown-toggle).active::after {
    background: #86efac;
  }

  .navbar.sticky-top .nav-link:not(.dropdown-toggle).active::after {
    background: var(--mangrove-700);
  }
}

.whatsapp-float {
  display: none !important;
}

.mgt-guest-chat-fab {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1049;
  width: 62px;
  height: 62px;
  border: 0;
  border-radius: 22px;
  display: grid;
  place-items: center;
  gap: 0;
  background: linear-gradient(135deg, var(--mangrove-dark), var(--mangrove-700));
  color: #fff;
  box-shadow: 0 18px 44px rgba(4, 120, 87, .36);
  transition: opacity .18s ease, transform .18s ease;
}

.mgt-guest-chat-fab i {
  font-size: 1.45rem;
  line-height: 1;
}

.mgt-guest-chat-fab span {
  font-size: .62rem;
  font-weight: 800;
  line-height: 1;
}

.mgt-guest-chat-fab:hover {
  transform: translateY(-3px);
}

.mgt-guest-chat-fab.hidden {
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px) scale(.95);
}

.mgt-guest-chat-widget {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1050;
  width: 380px;
  max-width: calc(100vw - 28px);
  height: min(640px, calc(100dvh - 118px));
  max-height: calc(100dvh - 118px);
  display: none;
  flex-direction: column;
  isolation: isolate;
  contain: layout paint;
  transform: translateZ(0);
  overflow: hidden;
  background: #fff;
  border: 1px solid #d1fae5;
  border-radius: 24px;
  box-shadow: 0 28px 82px rgba(2, 44, 34, .26);
}

.mgt-guest-chat-widget.open {
  display: flex;
}

.mgt-guest-chat-head {
  flex: 0 0 auto;
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  color: #fff;
  background: linear-gradient(135deg, var(--mangrove-dark), var(--mangrove-700));
}

.mgt-guest-chat-head strong,
.mgt-guest-chat-head small {
  display: block;
  color: #fff;
}

.mgt-guest-chat-head small {
  margin-top: .18rem;
  color: #bbf7d0;
  font-size: .78rem;
}

.mgt-guest-chat-close {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--mangrove-dark);
  background: #fff;
}

.mgt-guest-chat-body {
  flex: 1;
  min-height: 0;
  padding: 1rem;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  overflow-anchor: none;
  scroll-behavior: smooth;
  background: #f8fafc;
}

.mgt-guest-chat-profile {
  margin-bottom: .8rem;
  padding: .9rem;
  background: #fff;
  border: 1px solid #d1fae5;
  border-radius: 18px;
}

.mgt-guest-chat-profile strong {
  display: block;
  margin-bottom: .75rem;
  color: var(--mangrove-dark);
}

.mgt-guest-chat-profile form {
  display: grid;
  gap: .55rem;
}

.mgt-guest-chat-messages {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  min-height: 100%;
}

.mgt-guest-msg {
  max-width: 84%;
  padding: .72rem .85rem;
  border-radius: 16px;
  font-size: .9rem;
  line-height: 1.36;
  overflow-wrap: anywhere;
}

.mgt-guest-msg small {
  display: block;
  margin-top: .32rem;
  opacity: .72;
  font-size: .72rem;
}

.mgt-guest-msg.guest {
  align-self: flex-end;
  color: #fff;
  background: var(--mangrove-700);
  border-bottom-right-radius: 5px;
}

.mgt-guest-msg.agent {
  align-self: flex-start;
  color: #1f2937;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-bottom-left-radius: 5px;
}

.mgt-guest-msg.system {
  align-self: center;
  max-width: 100%;
  color: #47615a;
  background: #ecfdf5;
  border: 1px solid #d1fae5;
  text-align: center;
}

.mgt-guest-chat-composer {
  flex: 0 0 auto;
  display: flex;
  gap: .5rem;
  padding: .75rem;
  border-top: 1px solid #ecfdf5;
  background: #fff;
}

.mgt-guest-chat-composer[hidden] {
  display: none;
}

.mgt-guest-chat-composer input {
  flex: 1;
  min-width: 0;
  border: 1px solid #d1fae5;
  border-radius: 16px;
  padding: .72rem .85rem;
  outline: none;
}

.mgt-guest-chat-composer input:focus {
  border-color: var(--mangrove-500);
  box-shadow: 0 0 0 .2rem rgba(34, 197, 94, .16);
}

@media (max-width: 575px) {
  .mgt-guest-chat-fab {
    right: 18px;
    bottom: 18px;
    width: 62px;
    height: 62px;
    border-radius: 22px;
  }

  .mgt-guest-chat-widget {
    left: 8px;
    right: 8px;
    bottom: calc(env(safe-area-inset-bottom) + 8px);
    width: auto;
    max-width: none;
    height: min(620px, calc(100dvh - 92px));
    max-height: calc(100dvh - 92px);
    border-radius: 22px;
  }
}

/* Keep the move-to-top control visible beside the guest chat launcher. */
.back-to-top {
  right: 96px;
  bottom: 24px;
  z-index: 1048;
}

body.mgt-guest-chat-open .back-to-top {
  right: calc(min(380px, calc(100vw - 28px)) + 32px);
}

@media (max-width: 575px) {
  .back-to-top {
    right: 84px;
    bottom: calc(env(safe-area-inset-bottom) + 16px);
    z-index: 1048;
  }

  body.mgt-guest-chat-open .back-to-top {
    left: 16px;
    right: auto;
    z-index: 1051;
  }
}
