/* ===========================
   HERO (VIDEO BACKGROUND)
=========================== */
.hero {
  position: relative;
  width: 100%;
  height: 62vh; /* was 85vh */
  overflow: hidden;
  margin-top: 0; /* keep content clear of fixed nav */
  padding: 0;
}

#bg-video {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover; /* fill without letterboxing */
  object-position: center;
  transform: none; /* remove the 60%/-50% shift */
  z-index: -1; /* behind everything */
  pointer-events: none; /* clicks go to your content */
}

.hero-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  z-index: 1;
  text-align: center;
  color: #fff6ef;
  padding: 0 20px;
}

.hero-content h1 {
  font-size: 3rem;
  font-weight: bold;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.9), 2px 2px 10px rgba(0, 0, 0, 0.8);
}

/* keep the effective p rule (valid one) */
.hero-content p {
  font-size: 1.5rem;
  margin-top: 10px;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.9), 2px 2px 10px rgba(0, 0, 0, 0.8);
}

/* Default height (desktop) */
.hero {
  height: 62vh; /* was 85vh */
}
/* Prefer small-viewport units where supported (desktop keeps 62) */
@supports (height: 10svh) {
  .hero {
    height: 62svh; /* was 85svh */
  }
}

/* Keep video full-bleed; nudge focal point for tall phones */
@media (max-width: 640px) {
  /* Mobile height = 85 */
  .hero {
    height: 85vh;
  }

  #bg-video {
    object-position: 50% 60%;
    transform: translateZ(0) scale(1.2);
  } /* try 60–70% if you want more road */

  .hero-content {
    padding: 0 14px;
  }
  .hero-content h1 {
    font-size: clamp(1.8rem, 8vw, 2.4rem);
  }
  .hero-content p {
    font-size: clamp(1rem, 3.8vw, 1.2rem);
  }
}

/* ===========================
   NAVBAR (COMPONENT)
=========================== */

/* Language switcher (top-left) */
.lang-switch {
  position: absolute;
  left: 18px;
  top: 12px;
  font-size: 0.95rem;
  z-index: 10;
}

.lang-current {
  display: flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 0;
  cursor: pointer;
  color: #383a38;
  padding: 4px 6px;
  line-height: 1;
}

.lang-current .flag {
  font-size: 1.05em;
}

.lang-current .caret {
  width: 16px;
  height: 16px;
}

.lang-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  list-style: none;
  margin: 0;
  padding: 6px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
  display: none;
  min-width: 110px;
}

.lang-switch.open .lang-menu {
  display: block;
}

.lang-menu li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  cursor: pointer;
  border-radius: 6px;
  color: #222;
}

.lang-menu li:hover {
  background: #f3f3f3;
}

.lang-menu .flag {
  font-size: 1.05em;
}

/* Open language menu on hover, too */
.lang-switch:hover .lang-menu {
  display: block;
}

/* Flag images (SVG) */
.lang-current .flag,
.lang-menu .flag {
  width: 18px;
  height: 18px;
  display: block;
}

/* --- FIX: Hover stability for the Language Switcher --- */

/* Invisible buffer to prevent flicker when moving mouse between button and menu */
.lang-switch::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 10px; /* 8–12px works well */
}

/* Keep menu visible while hovering or menu is toggled open */
.lang-switch:hover .lang-menu,
.lang-switch.open .lang-menu {
  display: block;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.double-navbar navbar {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1000;
  border-bottom: 0px solid #fff6ef;
}

/* Top row (centered logo + positioned controls) */
.navbar-top {
  position: relative; /* anchor for absolute children */
  display: flex;
  justify-content: center;
  align-items: center;
  height: 145px;
  padding: 5px;
  background-color: #fff6ef;
}
.logo-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
/*leopard logo */
.logo-symbol {
  height: 95px;
  width: auto;
  margin-bottom: -1px;
}

/*logo black*/
.logo-wordmark {
  height: 35px;
  width: auto;
  margin-top: 0;
}
@media (max-width: 768px) {
  .navbar-top .logo-centered {
    max-width: 150px; /* adjust to taste */
  }
}

/* Bottom row (links) */
.navbar-bottom {
  position: relative; /* ensure it stacks above any overlap */
  z-index: 3;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 35px;
  background-color: #fff6ef;
  padding: 12px 0;
  border-top: 2px solid #646060;
}

/* Buttons */
.navbar-bottom button,
.dropbtn {
  background: none;
  border: none;
  font-weight: bold;
  font-size: 0.9rem;
  color: #383a38;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 18px;
}
.navbar-bottom button:hover,
.dropbtn:hover {
  color: #b0b0b0;
}

/* Account link (top-right) */
.nav-account {
  position: absolute;
  right: 24px;
  top: 12px;
  transform: none;
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: #383a38;
  font-weight: 600;
  line-height: 1;
  z-index: 1;
}
.nav-account svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
}

/* Right side block (phone + quote) if present */
.nav-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  white-space: nowrap;
}
.quote-button {
  background-color: #152a51;
  color: #fff6ef;
  padding: 6px 10px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: bold;
  white-space: nowrap;
}
.phone-info {
  display: flex;
  align-items: center;
  color: #fff6ef;
}
.phone-icon {
  background-color: #152a51;
  padding: 6px;
  border-radius: 4px;
  margin-right: 8px;
}
.phone-icon i {
  color: #fff6ef;
}
.small-text {
  margin-right: 60px;
  font-size: 12px;
  color: #383a38;
}
.phone-number {
  font-size: 16px;
  font-weight: bold;
  color: #383a38;
}

/* Dropdown */
.dropdown {
  position: relative;
  display: inline-block;
}
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #152a51; /* keep effective (bottom) version */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  z-index: 1001;
  top: 100%;
  min-width: 160px;
}
.dropdown-content button {
  display: block;
  width: 100%;
  background: none;
  border: none;
  padding: 10px 15px;
  text-align: left;
  color: #fff6ef;
  font-weight: normal;
  cursor: pointer;
}

.dropdown-content {
  border-radius: 0 0 10px 10px;
  overflow: hidden;
}

.dropdown-content button:hover {
  background-color: #f0f0f0;
}
.dropdown:hover .dropdown-content {
  display: block;
}

/* Active tab highlight */
.navbar-bottom .is-active {
  outline: 2px solid #d4af37; /* the line */
  outline-offset: 2px; /* small gap around it */
  border-radius: 8px; /* rounded corners */
}

/* Position the Text-us pill under the Account link on the TOP bar */
.navbar-top {
  position: relative;
} /* enables absolute positioning inside */
.navbar-top .textrequest-badge {
  position: absolute;
  right: 16px; /* align with the right edge of Account */
  top: 45px; /* sits just under Account; tweak to taste */
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  background: #fff6e2; /* change color here */
  color: #383a38;
  text-decoration: none;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
.navbar-top .textrequest-badge:hover {
  filter: brightness(1.05);
}

/* Navbar “Text us” pill */
.textrequest-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.8rem;
  background: #fff6e2;
  color: #111;
  text-decoration: none;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
.textrequest-badge:hover {
  filter: brightness(1.05);
}

@supports (padding: max(0px)) {
  body {
    padding-bottom: max(0px, env(safe-area-inset-bottom));
  }
  #chatBox.chat-box {
    bottom: calc(70px + env(safe-area-inset-bottom));
  }
}

/* ===========================
   FOOTER (CLEAN + MOBILE CLONE LOGO)
=========================== */

/* Background */
.marble-bg {
  background: url("../images/navbar-cream.webp") center/cover no-repeat;
}

/* Wrapper */
.footer {
  width: 100%;
  max-width: 100vw;
  padding: 32px 25px 24px;
  overflow-x: clip;
}
.footer * {
  min-width: 0;
}
.footer img {
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}
.footer a,
.footer p,
.footer li {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* ===========================
   COLUMNS
=========================== */
.footer-columns {
  display: grid;
  gap: 16px 24px;
  grid-template-columns: repeat(
    auto-fit,
    minmax(220px, 1fr)
  ); /* mobile-first */
  align-items: start;
  max-width: 1880px;
  margin: 0 auto;
}

/* Desktop: predictably 5 columns (About, Rescue, Follow, More, Contact) */
@media (min-width: 1100px) {
  .footer-columns {
    column-gap: 60px;
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
  }
}

/* Column text */
.footer-column {
  min-width: 0;
}
.footer-column h3 {
  color: #000;
  font-size: 1.2rem;
  margin: 0 0 10px;
  line-height: 1.25;
}
.footer-column p,
.footer-column a {
  font-size: 0.95rem;
  color: #000;
  line-height: 1.6;
  margin: 6px 0;
  text-decoration: none;
  display: block;
}
.footer-column a:hover {
  color: #6f6f6f;
  text-decoration: underline;
}

/* ===========================
   PER-SECTION HOOKS
=========================== */
/* .footer-about {}
   .footer-rescue {}
   .footer-follow {}
   .footer-more {}
   .footer-contact {} */

/* Follow Us icons */
.footer-follow .social-icons a {
  color: #000;
  font-size: 1.02rem;
}
.footer-follow .social-icons a:hover {
  color: #6f6f6f;
}

/* Contact: icon + text in one line */
.footer-contact p {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 8px 0;
  width: 100%;
}
.footer-contact p i {
  width: 1.1em;
  min-width: 1.1em;
  text-align: center;
  line-height: 1;
}
.footer-contact p a {
  display: inline;
  color: inherit;
}

/* Rescue Project: primary image logo (shows on all sizes) */
.footer-rescue .rescue-logo {
  width: clamp(120px, 35vw, 220px);
  margin: 12px auto 0; /* centered under text */
  display: block;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.12));
}

/* Rescue Project: mobile-only cloned logo (extra badge) */
@media (max-width: 899px) {
  .footer-rescue .rescue-logo-link {
    display: inline-block;
    width: clamp(120px, 40vw, 220px);
    aspect-ratio: 1 / 1;
    background: url("/images/rescue-project.png") center/contain no-repeat;
    margin: 12px 0 0;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.12));
  }
}
@media (min-width: 700px) {
  .footer-rescue .rescue-logo-link {
    display: none;
  } /* hide clone on desktop */
}

/* Rescue “Learn more” link */
.footer-rescue .learn-more-link {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1.5px;
  color: #0645ad;
  cursor: pointer;
}
.footer-rescue .learn-more-link:hover {
  color: #0b59d0;
}

/* Bottom line */
.footer-bottom {
  grid-column: 1 / -1;
  width: 100%;
  text-align: center;
  margin-top: 24px;
  color: #989898;
  font-size: 0.85rem;
}
/* Nudge ONLY the Follow Us column to the right on desktop */
@media (min-width: 1100px) {
  .footer-follow {
    margin-left: auto; /* push to the right inside its grid track */
    justify-self: end; /* align its right edge with the track edge */
    transform: translateX(-75px); /* fine-tune: increase/decrease as needed */
  }
}

/* ===========================
   Icons (used in footer + phone icon in nav)
=========================== */

/* Footer icon sizing */
.footer-column .icon {
  width: 1.2em;
  height: 1.2em;
  vertical-align: -0.15em; /* nudge to baseline if needed */
  margin-right: 0.4rem;
  display: inline-block;
}

/* ===========================
   BOTTOM CTA (empty-section)
   (only selectors that match your HTML)
=========================== */
.empty-section {
  background-color: #152a51;
  color: #fff6e2;
  padding: 100px 20px;
  text-align: center;
}

/* ===========================
   SCROLL TO TOP + BOOKING MODAL (COMPONENT)
=========================== */
#scrollBtn {
  position: fixed;
  bottom: 40px;
  right: 30px;
  z-index: 999;
  font-size: 24px;
  background-color: #ffffff;
  color: black;
  border: none;
  outline: none;
  padding: 15px;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 4px 10px rgb(13, 0, 0);
  display: none;
  transition: all 0.3s ease;
}
#scrollBtn:hover {
  background-color: white;
  color: #d4af37;
}

/* CTA links (used in hero + bottom sections) */
.cta-button {
  display: inline-block;
  background-color: #fff6ef;
  color: #383a38;
  font-weight: bold;
  text-decoration: none;
  padding: 14px 28px;
  border-radius: 8px;
  transition: background-color 0.3s ease;
}
.cta-button:hover {
  background-color: #b0b0b0;
}

/* ===========================
   phone icon
  =========================== */

/* layout stays like before */
.phone-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* the icon itself – uses your local SVG */
.svg-phone {
  display: inline-block;
  width: 1.2em; /* scales with font-size */
  height: 1.2em;
  vertical-align: -0.125em;
  background-color: currentColor; /* inherits text color */
  -webkit-mask: url("/assets/fontawesome/phone-solid.svg") no-repeat center /
    contain;
  mask: url("/assets/fontawesome/phone-solid.svg") no-repeat center / contain;
}

/* optional: quick text styling */
.small-text {
  font-size: 0.8rem;
  opacity: 0.8;
}
.phone-number {
  color: black;
  text-decoration: none;
}
.phone-number:hover {
  text-decoration: underline;
}
