/* ============================================================
   LENCOIS VIBE — Custom Design Enhancement
   Colors: #FFBC57 (amber) + #2E3092 (navy)
   ============================================================ */

/* ---- TOKENS & BASE ---- */
:root {
  --lv-amber: #FFBC57;
  --lv-amber-dark: #e6a33e;
  --lv-amber-light: #FFD08A;
  --lv-navy: #2E3092;
  --lv-navy-dark: #1d1f6a;
  --lv-dark: #0C0C0C;
  --lv-white: #FFFFFF;
  --lv-gray: #f5f5f3;
  --lv-text: #333333;
  --lv-text-muted: #6b7280;
  --lv-radius: 16px;
  --lv-radius-lg: 24px;
  --lv-shadow: 0 8px 32px rgba(46, 48, 146, 0.12);
  --lv-shadow-hover: 0 20px 48px rgba(46, 48, 146, 0.22);
  --lv-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

html { scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }
body {
  font-family: 'Roboto', sans-serif;
  -webkit-font-smoothing: antialiased;
  color: var(--lv-text);
}

/* ---- HEADER / NAV (section 2e43ab1) ---- */
.elementor-element-2e43ab1 {
  position: sticky !important;
  top: 0;
  z-index: 9999 !important;
  backdrop-filter: blur(12px) saturate(1.6);
  -webkit-backdrop-filter: blur(12px) saturate(1.6);
  background: rgba(255, 255, 255, 0.92) !important;
  border-bottom: 1px solid rgba(255, 188, 87, 0.25) !important;
  box-shadow: 0 2px 24px rgba(46, 48, 146, 0.08) !important;
  transition: var(--lv-transition) !important;
}

.elementor-element-2e43ab1 .elementor-nav-menu--main .elementor-item {
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 0.04em !important;
  color: var(--lv-navy) !important;
  position: relative;
  padding-bottom: 4px !important;
  transition: color 0.25s ease !important;
}

.elementor-element-2e43ab1 .elementor-nav-menu--main .elementor-item::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 2px;
  background: var(--lv-amber);
  border-radius: 2px;
  transition: width 0.3s ease;
}
.elementor-element-2e43ab1 .elementor-nav-menu--main .elementor-item:hover::after {
  width: 100%;
}
.elementor-element-2e43ab1 .elementor-nav-menu--main .elementor-item:hover {
  color: var(--lv-amber-dark) !important;
}

.elementor-element-2e43ab1 .elementor-button,
.elementor-element-2e43ab1 [role="button"] {
  background: var(--lv-amber) !important;
  color: var(--lv-dark) !important;
  border-radius: 50px !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.03em !important;
  padding: 10px 20px !important;
  border: none !important;
  box-shadow: 0 4px 16px rgba(255, 188, 87, 0.4) !important;
  transition: var(--lv-transition) !important;
}
.elementor-element-2e43ab1 .elementor-button:hover,
.elementor-element-2e43ab1 [role="button"]:hover {
  background: var(--lv-amber-dark) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(255, 188, 87, 0.55) !important;
}

/* ---- HERO SECTION (section e7f19f1) ---- */
.elementor-element-e7f19f1 {
  position: relative;
  overflow: hidden;
}

.elementor-element-e7f19f1 h1,
.elementor-element-e7f19f1 .elementor-heading-title {
  font-family: 'Roboto Slab', serif !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.02em !important;
}

.elementor-element-e7f19f1 .elementor-button,
.elementor-element-e7f19f1 [role="button"] {
  border-radius: 50px !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  letter-spacing: 0.04em !important;
  padding: 18px 36px !important;
  box-shadow: 0 6px 24px rgba(255, 188, 87, 0.5) !important;
  transition: var(--lv-transition) !important;
}
.elementor-element-e7f19f1 .elementor-button:hover,
.elementor-element-e7f19f1 [role="button"]:hover {
  transform: translateY(-3px) scale(1.02) !important;
  box-shadow: 0 12px 36px rgba(255, 188, 87, 0.65) !important;
}

/* ---- FEATURES SECTION (section ecc8b8a) ---- */
.elementor-element-ecc8b8a {
  padding-top: 72px !important;
  padding-bottom: 72px !important;
  background: var(--lv-gray) !important;
}

.elementor-element-ecc8b8a .elementor-column {
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}
.elementor-element-ecc8b8a .elementor-column:hover {
  transform: translateY(-8px) !important;
}

.elementor-element-ecc8b8a .elementor-widget-wrap {
  background: var(--lv-white) !important;
  border-radius: var(--lv-radius-lg) !important;
  padding: 36px 28px !important;
  box-shadow: var(--lv-shadow) !important;
  transition: box-shadow 0.35s ease !important;
}
.elementor-element-ecc8b8a .elementor-column:hover .elementor-widget-wrap {
  box-shadow: var(--lv-shadow-hover) !important;
}

.elementor-element-ecc8b8a .elementor-widget-image .elementor-widget-container {
  width: 100px !important;
  height: 100px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, var(--lv-navy) 0%, #4547b8 100%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto 8px !important;
  box-shadow: 0 8px 24px rgba(46, 48, 146, 0.30) !important;
  transition: var(--lv-transition) !important;
}
.elementor-element-ecc8b8a .elementor-column:hover .elementor-widget-image .elementor-widget-container {
  background: linear-gradient(135deg, var(--lv-amber-dark) 0%, var(--lv-amber) 100%) !important;
  box-shadow: 0 12px 32px rgba(255, 188, 87, 0.45) !important;
  transform: translateY(-4px) scale(1.06) !important;
}

.elementor-element-ecc8b8a .elementor-widget-image img {
  width: 52px !important;
  height: 52px !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 auto !important;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

.elementor-element-ecc8b8a h3,
.elementor-element-ecc8b8a .elementor-widget-heading h3 {
  font-family: 'Roboto Slab', serif !important;
  font-weight: 700 !important;
  font-size: 20px !important;
  color: var(--lv-navy) !important;
  margin-top: 16px !important;
  margin-bottom: 8px !important;
}

.elementor-element-ecc8b8a p,
.elementor-element-ecc8b8a .elementor-widget-text-editor p {
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: var(--lv-text-muted) !important;
}

/* ---- ABOUT SECTION (section e8b7ed3) ---- */
.elementor-element-e8b7ed3 h2,
.elementor-element-e8b7ed3 .elementor-widget-heading h2 {
  font-family: 'Roboto Slab', serif !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

.elementor-element-e8b7ed3 p {
  font-size: 16px !important;
  line-height: 1.75 !important;
}

.elementor-element-e8b7ed3 .elementor-button,
.elementor-element-e8b7ed3 [role="button"] {
  border-radius: 50px !important;
  font-weight: 700 !important;
  padding: 16px 32px !important;
  transition: var(--lv-transition) !important;
  box-shadow: 0 6px 24px rgba(255, 188, 87, 0.4) !important;
}
.elementor-element-e8b7ed3 .elementor-button:hover,
.elementor-element-e8b7ed3 [role="button"]:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 36px rgba(255, 188, 87, 0.6) !important;
}

/* ---- TOUR IMAGE SECTION (section 0c045c6) ---- */
.elementor-element-0c045c6 img {
  border-radius: var(--lv-radius-lg) !important;
  box-shadow: 0 16px 48px rgba(0,0,0,0.2) !important;
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.elementor-element-0c045c6 img:hover {
  transform: scale(1.02) !important;
}

/* ---- TOURS TITLE SECTION (section 996dd38) ---- */
.elementor-element-996dd38 h2,
.elementor-element-996dd38 .elementor-widget-heading h2 {
  font-family: 'Roboto Slab', serif !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

.elementor-element-996dd38 p {
  font-size: 17px !important;
  line-height: 1.7 !important;
}

/* ---- WHATSAPP CTA SECTION (section 24aba14) ---- */
.elementor-element-24aba14 {
  position: relative;
  overflow: hidden;
}
.elementor-element-24aba14::before {
  content: '';
  position: absolute;
  top: -50%; left: -20%;
  width: 140%; height: 200%;
  background: radial-gradient(ellipse at 60% 50%, rgba(255, 188, 87, 0.08) 0%, transparent 70%);
  pointer-events: none;
}

.elementor-element-24aba14 h2,
.elementor-element-24aba14 .elementor-widget-heading h2 {
  font-family: 'Roboto Slab', serif !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

.elementor-element-24aba14 .elementor-button,
.elementor-element-24aba14 [role="button"] {
  border-radius: 50px !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  padding: 20px 44px !important;
  letter-spacing: 0.03em !important;
  box-shadow: 0 8px 32px rgba(255, 188, 87, 0.45) !important;
  transition: var(--lv-transition) !important;
  animation: pulse-cta 2.5s ease-in-out infinite;
}
.elementor-element-24aba14 .elementor-button:hover,
.elementor-element-24aba14 [role="button"]:hover {
  transform: translateY(-4px) scale(1.04) !important;
  box-shadow: 0 16px 48px rgba(255, 188, 87, 0.65) !important;
  animation: none;
}

@keyframes pulse-cta {
  0%, 100% { box-shadow: 0 8px 32px rgba(255, 188, 87, 0.45); }
  50% { box-shadow: 0 8px 48px rgba(255, 188, 87, 0.75), 0 0 0 8px rgba(255, 188, 87, 0.1); }
}

/* ---- CONTACT INFO SECTION (section 5474419) ---- */
.elementor-element-5474419 ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.elementor-element-5474419 ul li {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  transition: color 0.2s ease !important;
}
.elementor-element-5474419 ul li:last-child {
  border-bottom: none !important;
}
.elementor-element-5474419 ul li svg {
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0 !important;
  margin-top: 2px !important;
  fill: var(--lv-amber) !important;
}
.elementor-element-5474419 a {
  transition: color 0.2s ease !important;
}
.elementor-element-5474419 a:hover {
  color: var(--lv-amber) !important;
}

/* ---- FOOTER / BOTTOM SECTIONS (b90a421, a850e56) ---- */
.elementor-element-b90a421 h2,
.elementor-element-b90a421 .elementor-widget-heading h2 {
  font-family: 'Roboto Slab', serif !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
.elementor-element-b90a421 .elementor-button,
.elementor-element-b90a421 [role="button"] {
  border-radius: 50px !important;
  font-weight: 700 !important;
  padding: 16px 36px !important;
  box-shadow: 0 6px 24px rgba(255, 188, 87, 0.4) !important;
  transition: var(--lv-transition) !important;
}
.elementor-element-b90a421 .elementor-button:hover,
.elementor-element-b90a421 [role="button"]:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 36px rgba(255, 188, 87, 0.6) !important;
}

.elementor-element-a850e56 p {
  font-size: 13px !important;
  letter-spacing: 0.03em !important;
  color: rgba(255,255,255,0.5) !important;
}

/* ---- GLOBAL ELEMENTOR ENHANCEMENTS ---- */
.elementor-social-icons a {
  transition: var(--lv-transition) !important;
}
.elementor-social-icons a:hover {
  transform: translateY(-3px) !important;
  opacity: 0.8 !important;
}

.elementor-button {
  border-radius: 50px !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
  transition: var(--lv-transition) !important;
}
.elementor-button:hover {
  transform: translateY(-2px) !important;
}

/* ---- FEATURE CARDS ENTRANCE ANIMATION ---- */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

.elementor-element-ecc8b8a .elementor-column:nth-child(1) .elementor-widget-wrap {
  animation: fadeInUp 0.6s ease 0.1s both;
}
.elementor-element-ecc8b8a .elementor-column:nth-child(2) .elementor-widget-wrap {
  animation: fadeInUp 0.6s ease 0.25s both;
}
.elementor-element-ecc8b8a .elementor-column:nth-child(3) .elementor-widget-wrap {
  animation: fadeInUp 0.6s ease 0.4s both;
}

/* ---- MOBILE RESPONSIVE ---- */
@media (max-width: 767px) {
  .elementor-element-ecc8b8a {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  .elementor-element-ecc8b8a .elementor-widget-wrap {
    padding: 28px 20px !important;
    margin-bottom: 16px !important;
  }
  .elementor-element-24aba14 .elementor-button,
  .elementor-element-24aba14 [role="button"] {
    padding: 16px 28px !important;
    font-size: 15px !important;
  }
  .elementor-element-e7f19f1 .elementor-button,
  .elementor-element-e7f19f1 [role="button"] {
    padding: 14px 28px !important;
    font-size: 15px !important;
  }
}
