/* ======================================
   Dropdown Menu
====================================== */
.dropdown-menu {
  background-color: #111 !important;
  border: none;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.dropdown-menu .dropdown-item { color: #fff; }
.dropdown-menu .dropdown-item:hover {
  background-color: #ff0000;
  color: #fff;
}

/* ======================================
   Loader + Cross-fade
====================================== */
#loader {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9999;

  /* Dark overlay + background collage */
  background-image:
    linear-gradient(rgba(0,0,0,.65), rgba(0,0,0,.65)),
    url('../img/Logo/collage_large.png');
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;

  display: flex;
  justify-content: center;
  align-items: center;

  opacity: 1;
  transition: opacity 0.6s ease;
  will-change: opacity, transform;
  transform: translateZ(0); /* Force GPU acceleration (mobile fix) */
}

/* Responsive collage background per screen size */
@media (max-width: 1200px) {
  #loader {
    background-image:
      linear-gradient(rgba(0,0,0,.65), rgba(0,0,0,.65)),
      url('../img/Logo/collage_medium.png');
  }
}
@media (max-width: 600px) {
  #loader {
    background-image:
      linear-gradient(rgba(0,0,0,.65), rgba(0,0,0,.65)),
      url('../img/Logo/collage_small.png');
  }
}

/* Loader logo animation */
#loader img {
  width: 240px;
  max-width: 80vw;
  animation: pulse 2s infinite ease-in-out;
}
@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.07); }
}

/* Fade out loader */
#loader.fade-out {
  opacity: 0;
  pointer-events: none;
}

/* Page reveal transition */
.body {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease 0.15s;
}
.revealed .body {
  visibility: visible;
  opacity: 1;
}

/* Reduced motion — disable pulse animation */
@media (prefers-reduced-motion: reduce) {
  #loader img { animation: none !important; }
}



header .header-nav-main nav > ul#mainNav > li > a.nav-link {
  font-size: 14px !important;     /* readable size for desktop */
  letter-spacing: 1.1px !important;/* a touch more breathing room */
  padding: 10px 16px !important;   /* keeps horizontal rhythm tight */
  text-transform: uppercase !important;
  color: #fff !important;
  transition: all 0.3s ease !important;
}

/* Keep underline hover effect — no color change */
header .header-nav-main nav > ul#mainNav > li > a.nav-link:hover,
header .header-nav-main nav > ul#mainNav > li > a.nav-link.active,
header .header-nav-main nav > ul#mainNav > li > a.nav-link.current-page-active {
  color: #fff !important;          /* stays white on hover */
}

/* Preserve and smooth out Porto’s underline effect */
header .header-nav-main nav > ul#mainNav > li > a.nav-link::after {
  content: "";
  display: block;
  width: 0;
  height: 2px;
  background: #ff3c3c;             /* underline color */
  transition: width 0.3s ease;
  margin: 4px auto 0 auto;
}

header .header-nav-main nav > ul#mainNav > li > a.nav-link:hover::after,
header .header-nav-main nav > ul#mainNav > li > a.nav-link.active::after {
  width: 100%;
}

/* Slightly improve horizontal spacing between menu items */
header .header-nav-main nav > ul#mainNav > li {
  margin: 0 10px !important;
}

/* Owner carousel — keep images visible on touch (no hover fade-out) */
@media (max-width: 991px) {
  .thumb-info-container-full-img .thumb-info-wrapper img {
    opacity: 1 !important;
    transform: none !important;
  }
  .thumb-info-container-full-img .owl-stage-outer:hover .thumb-info-wrapper img {
    opacity: 1 !important;
  }
}

/* Owners row spacing */
.owners-row {
  row-gap: 2rem;
  column-gap: 4rem;
}
@media (max-width: 991px) {
  .owners-row {
    column-gap: 1.5rem;
  }
}

/* Owner cards hover/tap feedback */
.owner-card {
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.owner-card:hover,
.owner-card:focus-within {
  transform: translateY(-6px);
  box-shadow: 0 14px 30px rgba(0,0,0,0.35);
  border-color: rgba(255,255,255,0.18) !important;
}

/* Map + hours block */
.hours-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  padding: 24px 24px 8px;
  box-shadow: 0 18px 38px rgba(0,0,0,0.28);
}
.map-wrapper {
  position: relative;
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0,0,0,0.32);
  aspect-ratio: 16 / 9;
  min-height: 520px;
}
.map-wrapper iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  filter: invert(90%);
  pointer-events: auto;
  touch-action: pan-x pan-y;
}
/* Override Porto defaults so the iframe is fully clickable and not offset */
.google-map {
  margin: 0 !important;
  height: 100% !important;
  background: #0b0b0b;
}
@media (max-width: 767px) {
  .hours-card {
    padding: 20px 18px 6px;
  }
  .map-wrapper {
    aspect-ratio: auto;
    min-height: 720px;
  }
}

/* Testimonials heading tweaks */
.testimonials-heading h2 {
  letter-spacing: 1.6px;
}
.testimonials-heading p {
  color: rgba(255,255,255,0.92);
}

/* Testimonials readability: overlay + text shadow */
.testimonial-section {
  position: relative;
}
.testimonial-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.35) 35%, rgba(0,0,0,0.2) 100%);
  z-index: 1;
}
.testimonial-section .container {
  position: relative;
  z-index: 2;
}
.testimonial-section h2,
.testimonial-section p,
.testimonial-section .testimonial blockquote p,
.testimonial-section .testimonial-author p {
  text-shadow: 0 2px 10px rgba(0,0,0,0.65);
}

/* Owner section subtle texture */
.owner-texture {
  position: relative;
  overflow: hidden;
}
.owner-texture::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.04) 1px, transparent 0);
  background-size: 90px 90px;
  opacity: 0.25;
  pointer-events: none;
}
@media (max-width: 767px) {
  .owner-texture::after {
    background-size: 70px 70px;
    opacity: 0.22;
  }
}
