/* Navegación por anclas — scroll suave y compensación del header fijo */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
}

/* Hero video slider — fondo absoluto, contenido sin moverse */
.hero--with-video {
  position: relative;
  overflow: hidden;
}

/* Capa de fondo (reemplaza el mapa), no ocupa espacio en el flujo */
.hero--with-video .hero--element__wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.hero--with-video .hero--video__slider {
  position: absolute;
  inset: 0;
}

.hero--with-video .hero--video__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.hero--with-video .hero--video,
.hero--with-video .hero--slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  visibility: hidden;
  z-index: 0;
  transition: opacity 1.2s ease-in-out, visibility 1.2s ease-in-out;
  pointer-events: none;
}

.hero--with-video .hero--video.is-active,
.hero--with-video .hero--slide.is-active {
  opacity: 1;
  visibility: visible;
  z-index: 1;
}

.hero--with-video .hero--video__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: rgba(0, 0, 0, 0.55);
  pointer-events: none;
}

/* Contenido encima del video, misma posición original del hero */
.hero--with-video .hero-content--wrap {
  position: relative;
  z-index: 3;
}

.hero--with-video .hero--content .title,
.hero--with-video .hero--content .subtitle,
.hero--with-video .hero--content .third--font {
  color: #ffffff !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
}

.hero--with-video .hero--content .text--base {
  color: hsl(var(--base)) !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

/* Vector decorativo — mismo tamaño que whychoose-bg2.png (308×237) */
img.shape-vectorm {
  width: 308px;
  max-width: 308px;
  height: auto;
  object-fit: contain;
}

.footer-area .bg--element img.shape-vectorm {
  opacity: 0.3;
}

.location--section .bg--element-two img.shape-vectorm {
  opacity: 0.5;
}

.why-choose .element img.shape-vectorm {
  opacity: 0.3;
}

.breadcrumb .bg--thumb-two img.shape-vectorm {
  opacity: 0.3;
}

.blog-card .bg--element img.shape-vectorm {
  width: 200px;
  max-width: 200px;
  opacity: 0.15;
}

/* Línea decorativa — mismo comportamiento que air-line.png */
.how-it--work .air--line img.shape-florerob2 {
  width: 100%;
  height: auto;
  max-height: 148px;
  object-fit: contain;
  opacity: 0.3;
}

/* Florero — mismo tamaño que tree5.png (164×252) */
.why-choose .element--two img.shape-florero,
.about--us .element--two img.shape-florero {
  width: 164px;
  max-width: 164px;
  height: auto;
  object-fit: contain;
}

/* vectorm en lugar de whychoose-bg3.png (409×432) */
.offer--section .bg--element-two img.shape-vectorm--bg3,
.feature--section .bg--element-two img.shape-vectorm--bg3 {
  width: 409px;
  max-width: 409px;
  height: auto;
  object-fit: contain;
  opacity: 0.5;
}

/* Nuestra Mejor Propuesta — overlay para legibilidad del texto */
.offer-card__thumb {
  position: relative;
  overflow: hidden;
  height: 100%;
}

.offer-card__thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
}

.offer-card.card--one .offer-card__thumb::after {
  background: linear-gradient(
    135deg,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.45) 45%,
    rgba(0, 0, 0, 0.2) 100%
  );
}

.offer-card.card--two .offer-card__thumb::after {
  background: linear-gradient(
    225deg,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.45) 45%,
    rgba(0, 0, 0, 0.2) 100%
  );
}

.offer-card__content {
  z-index: 2;
}

.offer-card__content .title,
.offer-card__content .sub--title {
  color: #ffffff !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}

/* Imagen circular decorativa — mismo tamaño que element-8.png (851×885 → 500px alto) */
.why-choose .bg--element,
.about--us .bg--element {
  top: 20%;
  left: -300px;
  height: 500px;
  width: auto;
}

.why-choose .bg--element img.shape-circles,
.about--us .bg--element img.shape-circles {
  height: 100%;
  width: auto;
  max-width: 481px;
  object-fit: contain;
  opacity: 0.5;
}

/* Preloader */
#preloader {
  background-color: #ffffff !important;
}
#preloader .preloader-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
  padding: 0 20px;
}

#preloader .preloader-logo {
  max-width: 280px;
  width: min(280px, 72vw);
  height: auto;
  animation: preloaderPulse 1.6s ease-in-out infinite;
}

#preloader .preloader-title {
  color: hsl(var(--base));
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  margin: 0;
  animation: fadeIn 1.6s ease-in-out infinite;
}

@keyframes preloaderPulse {
  0%,
  100% {
    opacity: 0.85;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.03);
  }
}

/* Header con fondo blanco fijo */
.header-main-area {
  position: relative;
  z-index: 99;
}

.header,
.header.fixed-header {
  background-color: #ffffff;
  box-shadow: 0 1px 12px rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.header.fixed-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.header-wrapper .main-menu a {
  color: #41291d;
}

.header-wrapper .ham__menu {
  color: #41291d;
}

/* Footer contacto */
.footer-contact-info {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-contact-info li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 10px;
  font-size: 14.5px;
  color: hsl(var(--black) / 0.8);
}

.footer-contact-info li span,
.footer-contact-info li a {
  color: hsl(var(--black) / 0.8);
  text-decoration: none;
}

.footer-contact-info li a:hover {
  color: #41291d;
}

.footer-contact-info i {
  color: #41291d !important;
  width: 18px;
  font-size: 16px;
  margin-top: 2px;
  flex-shrink: 0;
}
