/* ==========================================================================
   RURAL SEGURA (LA TINÁ) — MOBILE-FIRST USABILITY & UX ENHANCEMENTS
   Base styles: Mobile (< 768px) -> Tablet (>= 768px) -> Desktop (>= 992px/1025px)
   ========================================================================== */

/* 1. Global Mobile-First Ergonomics, Smooth Scroll & Overflow Prevention */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 84px;
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
  padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px));
  font-size: 16px;
  line-height: 1.65;
  color: #3a3a3a;
}

@media (min-width: 992px) {
  body {
    padding-bottom: 0;
  }
}

/* Visible keyboard focus for accessibility */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid #bc906b !important;
  outline-offset: 2px;
}

/* Prevent iOS Safari zoom on form focus (requires >= 16px font-size) */
.form-control,
.wpcf7-form-control,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
select,
textarea {
  font-size: 16px !important;
  min-height: 48px;
  border-radius: 6px !important;
  border: 1px solid #d6d2cc;
  padding: 10px 16px;
  background-color: #fff;
  color: #2c2c2c;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

textarea.form-control,
textarea.wpcf7-form-control {
  min-height: 120px;
  padding-top: 12px;
}

.form-control:focus,
.wpcf7-form-control:focus {
  border-color: #bc906b !important;
  box-shadow: 0 0 0 3px rgba(188, 144, 107, 0.18) !important;
}

/* Touch targets: minimum 44x44px on interactive buttons */
.btn,
.elementor-button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px !important;
  font-weight: 700;
  letter-spacing: 0.6px;
  transition: transform 0.2s ease, background-color 0.25s ease, box-shadow 0.25s ease !important;
}

.btn:active,
.elementor-button:active {
  transform: translateY(1px);
}

/* ==========================================================================
   2. STICKY HEADER & MOBILE NAVIGATION (Mobile-First)
   ========================================================================== */
.rural-sticky-header {
  position: sticky;
  top: 0;
  z-index: 1050;
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.08);
  transition: all 0.25s ease;
}

.header-standard .navbar-container .navbar-light {
  min-height: 66px;
  padding: 6px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Mobile-first compact logo so it doesn't cover the hero */
.header-standard .navbar-container .navbar-light .navbar-brand {
  max-width: 96px;
  padding: 6px 10px;
  margin-bottom: 0;
  border-radius: 0 0 6px 6px;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.08);
  transition: max-width 0.25s ease, padding 0.25s ease, margin-bottom 0.25s ease;
}

.header-standard .navbar-container .navbar-light .navbar-brand img {
  width: 100%;
  height: auto;
  display: block;
}

@media (min-width: 992px) {
  .header-standard .navbar-container .navbar-light {
    min-height: 86px;
    padding: 0;
  }
  .header-standard .navbar-container .navbar-light .navbar-brand {
    max-width: 136px;
    padding: 12px 15px;
    margin-bottom: -22px;
  }
  .rural-sticky-header.is-scrolled .navbar-container .navbar-light .navbar-brand {
    max-width: 108px;
    padding: 8px 12px;
    margin-bottom: 0;
  }
}

/* Header Mobile Actions (Call + Hamburger) */
.rural-header-mobile-actions {
  gap: 10px;
}

.rural-header-phone-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f8f3ee;
  color: #9e714c !important;
  border: 1px solid rgba(188, 144, 107, 0.4);
  padding: 8px 14px;
  border-radius: 50px;
  font-size: 13px;
  font-weight: 700;
  min-height: 42px;
}

.rural-header-phone-btn:hover,
.rural-header-phone-btn:focus {
  background: #bc906b;
  color: #fff !important;
}

.header .navbar-toggler {
  min-width: 46px;
  min-height: 46px;
  padding: 8px 12px;
  border: 1px solid #bc906b !important;
  border-radius: 6px;
  background: #bc906b !important;
  color: #ffffff !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(188, 144, 107, 0.35);
}

.header .navbar-toggler .navbar-toggler-icon {
  background-image: none !important;
  width: auto !important;
  height: auto !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

.header .navbar-toggler .navbar-toggler-icon i {
  font-size: 24px !important;
  line-height: 1 !important;
  color: #ffffff !important;
}

/* Mobile Collapse Drawer (< 992px) */
@media (max-width: 991.98px) {
  .header.header-standard .navbar-collapse {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #191919 !important;
    padding: 16px 20px 22px !important;
    border-top: 2px solid #bc906b;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.35);
    max-height: calc(100vh - 70px);
    overflow-y: auto;
  }

  .header .navbar-container .navbar-light .main-menu > li {
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }

  .header .navbar-container .navbar-light .main-menu > li:last-child {
    border-bottom: none;
  }

  .header .navbar-container .navbar-light .main-menu > li > a {
    line-height: 48px !important;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #ffffff !important;
    font-size: 15px !important;
    padding: 0 6px !important;
  }

  .header .navbar-container .navbar-light .main-menu > li.active > a {
    color: #bc906b !important;
  }

  /* Always show house sub-links neatly indented on mobile drawer */
  .header .navbar-container .navbar-light ul.navbar-nav li .rural-submenu {
    display: flex !important;
    flex-direction: column;
    background: rgba(255, 255, 255, 0.04) !important;
    border-radius: 6px;
    padding: 6px 12px !important;
    margin: 0 0 10px 0 !important;
    box-shadow: none !important;
  }

  .header .navbar-container .navbar-light ul.navbar-nav li .rural-submenu li a {
    color: #e2e2e2 !important;
    font-size: 14px !important;
    line-height: 42px !important;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
  }

  .header .navbar-container .navbar-light ul.navbar-nav li .rural-submenu li:first-child a {
    border-top: none !important;
  }

  .header .navbar-container .navbar-light ul.navbar-nav li .rural-submenu li a.active,
  .header .navbar-container .navbar-light ul.navbar-nav li .rural-submenu li a:hover {
    color: #bc906b !important;
  }

  .rural-nav-cta {
    padding-top: 14px !important;
  }

  .rural-header-cta-btn {
    width: 100%;
    padding: 12px 20px !important;
    color: #fff !important;
    background: #bc906b !important;
    text-align: center;
    box-shadow: none !important;
  }
}

/* Desktop Submenu & CTA (>= 992px) */
@media (min-width: 992px) {
  .header .navbar-container .navbar-light .main-menu > li > a {
    line-height: 86px;
  }

  .rural-submenu {
    border-top: 3px solid #bc906b !important;
    border-radius: 0 0 6px 6px !important;
    padding: 8px 0 !important;
    min-width: 220px !important;
  }

  .rural-submenu li a {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    padding: 8px 18px !important;
    font-size: 13px !important;
    color: #2c2c2c !important;
    text-transform: none !important;
  }

  .rural-submenu li a:hover,
  .rural-submenu li a.active {
    background: #faf6f2 !important;
    color: #bc906b !important;
  }

  .rural-nav-cta {
    padding-right: 0 !important;
    padding-left: 12px !important;
  }

  .rural-nav-cta > a.rural-header-cta-btn {
    line-height: 1.3 !important;
    padding: 11px 22px !important;
    color: #fff !important;
    background: #bc906b;
    border-radius: 4px !important;
    box-shadow: 3px 3px 0 rgba(188, 144, 107, 0.3);
  }

  .rural-nav-cta > a.rural-header-cta-btn:before {
    display: none !important;
  }

  .rural-nav-cta > a.rural-header-cta-btn:hover {
    background: #222 !important;
    color: #fff !important;
  }
}

.rural-menu-badge {
  font-size: 11px;
  font-weight: 600;
  background: rgba(188, 144, 107, 0.18);
  color: #bc906b;
  padding: 2px 8px;
  border-radius: 20px;
  line-height: 1.4;
}

/* ==========================================================================
   3. MOBILE STICKY BOTTOM ACTION BAR (< 992px)
   ========================================================================== */
.rural-mobile-bottom-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1040;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #191919;
  border-top: 2px solid #bc906b;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  box-shadow: 0 -4px 18px rgba(0, 0, 0, 0.25);
}

.rural-mbar-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 6px 4px;
  color: #f0f0f0 !important;
  font-size: 11px;
  font-weight: 600;
  text-decoration: none;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  transition: background-color 0.2s ease, color 0.2s ease;
}

.rural-mbar-item:last-child {
  border-right: none;
}

.rural-mbar-item i {
  font-size: 18px;
  margin-bottom: 3px;
  color: #bc906b;
}

.rural-mbar-wa i {
  color: #25d366;
}

.rural-mbar-cta {
  background: #bc906b;
  color: #ffffff !important;
  font-weight: 700;
}

.rural-mbar-cta i {
  color: #ffffff;
}

.rural-mbar-item:active {
  background: rgba(188, 144, 107, 0.25);
}

@media (min-width: 992px) {
  .rural-mobile-bottom-bar {
    display: none;
  }
}

/* Adjust BackTo button & CookieBanner on mobile so they sit above the bottom bar */
@media (max-width: 991.98px) {
  .BackTo {
    bottom: calc(74px + env(safe-area-inset-bottom, 0px)) !important;
    right: 16px !important;
    width: 42px;
    height: 42px;
    z-index: 1035;
  }

  #moove_gdpr_cookie_info_bar {
    bottom: calc(58px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 12px 16px !important;
  }
}

/* ==========================================================================
   4. HERO SLIDERS & FLUID TYPOGRAPHY (Mobile-First)
   ========================================================================== */
/* Home & Restaurante Hero Sliders: sensible height on mobile, full height on desktop */
.elementor-715 .elementor-element.elementor-element-9d351b2 .slider-item,
.elementor-65 .elementor-element.elementor-element-4f34286 .slider-item {
  height: auto !important;
  min-height: 420px;
  padding: 70px 0 80px;
}

/* Ensure strong text legibility on Restaurante slider */
.elementor-65 .elementor-element.elementor-element-4f34286 .slider-item:before {
  background: linear-gradient(
    to bottom,
    rgba(20, 20, 20, 0.45) 0%,
    rgba(20, 20, 20, 0.62) 100%
  ) !important;
}

.elementor-715 .elementor-element.elementor-element-9d351b2 .slider-title {
  font-size: clamp(2.4rem, 7vw, 6.25rem) !important;
  line-height: 1.1 !important;
  margin: 0 0 24px 0 !important;
}

.elementor-65 .elementor-element.elementor-element-4f34286 .slider-title {
  font-size: clamp(3rem, 9vw, 9.5rem) !important;
  line-height: 0.95 !important;
  margin: 0 0 24px 0 !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}

.elementor-65 .elementor-element.elementor-element-4f34286 .slider-title > span {
  font-size: clamp(1.5rem, 4vw, 3.1rem) !important;
  display: block;
  margin-bottom: 6px !important;
  color: #ffffff;
}

.elementor-65 .elementor-element.elementor-element-4f34286 .slider-info {
  font-size: clamp(0.8rem, 2vw, 1.05rem) !important;
  letter-spacing: 2.5px !important;
  color: #f3f3f3 !important;
}

@media (min-width: 768px) {
  .elementor-715 .elementor-element.elementor-element-9d351b2 .slider-item {
    min-height: 540px;
    padding: 100px 0;
  }
  .elementor-65 .elementor-element.elementor-element-4f34286 .slider-item {
    min-height: 640px;
    padding: 120px 0 140px;
  }
}

@media (min-width: 1025px) {
  .elementor-715 .elementor-element.elementor-element-9d351b2 .slider-item {
    height: 640px !important;
    padding: 0;
  }
  .elementor-65 .elementor-element.elementor-element-4f34286 .slider-item {
    height: 780px !important;
    padding: 0;
  }
}

/* Section Titles fluid sizing */
.ts-section-title .section-title {
  font-size: clamp(2.25rem, 5.5vw, 3.375rem) !important;
  line-height: 1.15 !important;
}

/* Fix testimonial quote icon overlapping on top of review text (master.css had margin-bottom: -45px & 80px size) */
.ts-testimonial-classic .testimonial-author-content p.testimonial-text i {
  font-size: 38px !important;
  line-height: 1 !important;
  display: block;
  margin-bottom: 14px !important;
  color: #bc906b !important;
  opacity: 0.45;
}

/* ==========================================================================
   5. "NUESTRAS CASAS" GRID ON HOMEPAGE (Mobile-First Card Ordering)
   ========================================================================== */
.rural-card-title-link {
  color: inherit !important;
  text-decoration: none;
}

.rural-card-title-link:hover {
  color: #bc906b !important;
}

.rural-card-photo {
  position: relative;
}

.rural-card-photo-link {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: block;
}

/* On Mobile & Tablet (< 1024px):
   1) Guarantee every house photo (including Almena e49f4cc!) has a 240px height.
   2) Order each pair as Photo first, Text second so users clearly see which photo belongs to which house.
   3) Reduce excessive 90px vertical padding inside text cards to 36px. */
@media (max-width: 1024px) {
  .rural-house-grid-row-1 > .elementor-container > .elementor-row,
  .rural-house-grid-row-2 > .elementor-container > .elementor-row {
    display: flex !important;
    flex-wrap: wrap !important;
  }

  .rural-card-photo > .elementor-element-populated {
    min-height: 240px !important;
    padding: 0 !important;
    border-radius: 8px 8px 0 0;
  }

  .rural-card-text > .elementor-element-populated {
    padding: 32px 24px 36px 24px !important;
    margin-bottom: 24px !important;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
  }
}

@media (max-width: 767.98px) {
  /* Stack 100% width on phone with Photo always directly above its Text card */
  .rural-card-photo-1 { order: 1; width: 100% !important; }
  .rural-card-text-1  { order: 2; width: 100% !important; }
  .rural-card-photo-2 { order: 3; width: 100% !important; }
  .rural-card-text-2  { order: 4; width: 100% !important; }

  .rural-card-photo-3 { order: 1; width: 100% !important; }
  .rural-card-text-3  { order: 2; width: 100% !important; }
  .rural-card-photo-4 { order: 3; width: 100% !important; }
  .rural-card-text-4  { order: 4; width: 100% !important; }
}

/* Make "+ info" buttons comfortable to tap on mobile & desktop */
#casas .elementor-button.elementor-size-xs {
  padding: 12px 28px !important;
  font-size: 13px !important;
  min-height: 44px;
}

/* ==========================================================================
   6. CTA SECTIONS & STACKED BUTTONS ("Descubre un lugar con encanto")
   ========================================================================== */
/* Add vertical spacing when dual CTA buttons stack on mobile */
@media (max-width: 767.98px) {
  .elementor-element-9210af5 .elementor-column:first-child,
  .elementor-element-53616ce8 .elementor-column:first-child {
    margin-bottom: 14px;
  }

  .elementor-element-9210af5 .elementor-button,
  .elementor-element-53616ce8 .elementor-button {
    width: 100%;
    max-width: 290px;
    padding: 15px 24px !important;
  }
}

/* Improve contrast of secondary outline button ("reserva restaurante") over dark photo backgrounds */
.elementor-715 .elementor-element.elementor-element-9e5f05e a.elementor-button,
.elementor-1577 .elementor-element.elementor-element-657227c0 a.elementor-button,
.elementor-1751 .elementor-element.elementor-element-657227c0 a.elementor-button,
.elementor-1753 .elementor-element.elementor-element-657227c0 a.elementor-button {
  color: #ffffff !important;
  background-color: rgba(25, 25, 25, 0.55) !important;
  border: 2px solid #bc906b !important;
  font-weight: 700 !important;
}

.elementor-715 .elementor-element.elementor-element-9e5f05e a.elementor-button:hover,
.elementor-1577 .elementor-element.elementor-element-657227c0 a.elementor-button:hover,
.elementor-1751 .elementor-element.elementor-element-657227c0 a.elementor-button:hover,
.elementor-1753 .elementor-element.elementor-element-657227c0 a.elementor-button:hover {
  background-color: #bc906b !important;
  color: #ffffff !important;
}

/* "Experiencia Única" section on mobile: show background photo nicely above the card */
@media (max-width: 767.98px) {
  .elementor-715 .elementor-element.elementor-element-63088f5 {
    background-size: 100% 220px !important;
    background-position: top center !important;
    padding-top: 190px !important;
  }
  .elementor-715 .elementor-element.elementor-element-6d2b050 > .elementor-element-populated {
    border-radius: 8px;
    padding: 32px 24px !important;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1) !important;
  }
}

/* ==========================================================================
   7. RESERVATION CARDS & PHONE LINKS ("Hacer una reserva es sencillo")
   ========================================================================== */
/* Eliminate the 180px blank spacer gap in reservation cards */
.rural-compact-spacer .elementor-spacer-inner {
  height: 24px !important;
}

/* Left photo column in Home #reserva (matching Restaurante #reserva) */
.rural-reserva-photo-col > .elementor-element-populated {
  background-image: url("/assets/images/2021/10/Salon_Casa.jpg");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  min-height: 240px;
}

@media (max-width: 1024px) {
  .elementor-65 .elementor-element.elementor-element-5b25f09 > .elementor-element-populated {
    min-height: 240px;
  }
}

.elementor-715 .elementor-element.elementor-element-32240b0 > .elementor-element-populated,
.elementor-65 .elementor-element.elementor-element-b4917e0 > .elementor-element-populated {
  padding: 40px 24px !important;
}

@media (min-width: 768px) {
  .elementor-715 .elementor-element.elementor-element-32240b0 > .elementor-element-populated,
  .elementor-65 .elementor-element.elementor-element-b4917e0 > .elementor-element-populated {
    padding: 50px 45px !important;
  }
}

/* Interactive Phone Link styling */
.rural-phone-inline-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 18px;
  border-radius: 50px;
  background: rgba(188, 144, 107, 0.12);
  color: #bc906b !important;
  text-decoration: none;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.rural-phone-inline-link:hover,
.rural-phone-inline-link:focus {
  background: rgba(188, 144, 107, 0.24);
  transform: translateY(-1px);
}

/* ==========================================================================
   8. HOUSE DETAIL PAGES (/casas/aljibe, /casas/almena, /casas/torreon)
   ========================================================================== */
.rural-house-QuickNav {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 18px 0 4px;
  border-bottom: 1px solid #eee;
  margin-bottom: 10px;
}

@media (min-width: 768px) {
  .rural-house-QuickNav {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 24px 0 12px;
  }
}

.rural-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: #555 !important;
}

.rural-back-link:hover {
  color: #bc906b !important;
}

.rural-house-pills {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
  -webkit-overflow-scrolling: touch;
}

.rural-pill {
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border-radius: 50px;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  background: #f4f1ed;
  color: #444 !important;
  border: 1px solid transparent;
  min-height: 38px;
}

.rural-pill:hover {
  border-color: #bc906b;
  color: #bc906b !important;
}

.rural-pill.active {
  background: #bc906b;
  color: #fff !important;
}

/* Reduce top spacer on house pages since QuickNav provides clean spacing */
.elementor-1577 .elementor-element.elementor-element-6d235f7 .elementor-spacer-inner,
.elementor-1751 .elementor-element.elementor-element-6d235f7 .elementor-spacer-inner,
.elementor-1753 .elementor-element.elementor-element-6d235f7 .elementor-spacer-inner {
  height: 16px !important;
}

.rural-house-book-cta {
  margin-top: 20px;
}

/* Fix house details alignment on mobile */
@media (max-width: 767.98px) {
  .elementor-1577 .elementor-element.elementor-element-fc55ce2 > .elementor-widget-container,
  .elementor-1577 .elementor-element.elementor-element-352bf0b > .elementor-widget-container,
  .elementor-1751 .elementor-element.elementor-element-fc55ce2 > .elementor-widget-container,
  .elementor-1751 .elementor-element.elementor-element-352bf0b > .elementor-widget-container,
  .elementor-1753 .elementor-element.elementor-element-fc55ce2 > .elementor-widget-container,
  .elementor-1753 .elementor-element.elementor-element-352bf0b > .elementor-widget-container {
    margin-left: 0 !important;
    padding: 0 8px;
  }

  .elementor-1577 .elementor-element.elementor-element-b1dd1b1,
  .elementor-1751 .elementor-element.elementor-element-b1dd1b1,
  .elementor-1753 .elementor-element.elementor-element-b1dd1b1 {
    margin-top: 24px;
  }
}

/* Enhance Swiper arrows for touch on mobile */
.elementor-swiper-button {
  width: 42px;
  height: 42px;
  background: rgba(0, 0, 0, 0.45);
  border-radius: 50%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  color: #fff !important;
  transition: background-color 0.2s ease;
}

.elementor-swiper-button:hover {
  background: #bc906b;
}

/* ==========================================================================
   9. RESTAURANTE WINE LIST & MENU CARDS ON MOBILE
   ========================================================================== */
@media (max-width: 767.98px) {
  .menu-list-item .menu-block {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
    margin-bottom: 14px !important;
  }

  .menu-list-item .menu-block .post-thumb {
    width: 68px;
    height: 68px;
    flex-shrink: 0;
    border-radius: 6px;
    overflow: hidden;
  }

  .menu-list-item .menu-block .post-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .menu-list-item .menu-block .inner-box {
    flex: 1;
    padding-left: 0 !important;
  }

  .menu-list-item .menu-block .inner-box .info .post-title {
    font-size: 20px !important;
    margin: 0;
  }
}

/* ==========================================================================
   10. CONTACTO PAGE, FORMS & INTERACTIVE CALENDAR
   ========================================================================== */
.rural-field-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #444;
  margin-bottom: 5px;
  text-align: left;
}

.rural-date-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

@media (min-width: 576px) {
  .rural-date-row {
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }
}

.rural-cal-hint {
  text-align: center;
  font-size: 13px;
  color: #666;
  margin: -10px 0 16px;
}

.rural-cal-table td.available-day {
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.rural-cal-table td.available-day:hover {
  background: #bc906b !important;
  color: #fff !important;
  font-weight: 700;
}

.rural-cal-table td.selected-day {
  background: #bc906b !important;
  color: #fff !important;
  font-weight: 700;
}

.rural-form-feedback {
  margin-top: 16px;
  padding: 16px;
  border-radius: 8px;
  border: 2px solid #bc906b;
  background: #fdfaf6;
  color: #2c2c2c;
  text-align: left;
  font-size: 14px;
}

.rural-feedback-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.rural-feedback-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  color: #fff !important;
}

.rural-feedback-wa {
  background: #25d366;
}

.rural-feedback-mail {
  background: #bc906b;
}

/* ==========================================================================
   11. FOOTER & LEGAL PAGES (Mobile-First Readability)
   ========================================================================== */
.rural-footer {
  padding-top: 50px !important;
  padding-bottom: 30px !important;
}

.rural-footer-desc p {
  color: #bbb;
  font-size: 14px;
  line-height: 1.6;
}

.rural-footer-heading {
  color: #ffffff !important;
  font-size: 20px !important;
  margin-bottom: 16px !important;
  position: relative;
  padding-bottom: 8px;
}

.rural-footer-heading::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 36px;
  height: 2px;
  background: #bc906b;
}

.rural-footer-nav,
.rural-footer-contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.rural-footer-nav li {
  margin-bottom: 8px;
}

.rural-footer-nav li a {
  color: #cccccc !important;
  font-size: 14px;
  display: inline-block;
  padding: 3px 0;
}

.rural-footer-nav li a:hover {
  color: #bc906b !important;
  transform: translateX(3px);
}

.rural-footer-contact-list li {
  margin-bottom: 12px;
}

.rural-footer-contact-link {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #cccccc !important;
  font-size: 14px;
  line-height: 1.5;
}

.rural-footer-contact-link i {
  color: #bc906b;
  font-size: 16px;
  margin-top: 4px;
  flex-shrink: 0;
}

.rural-footer-contact-link:hover {
  color: #bc906b !important;
}

.rural-legal-links {
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  font-size: 13px;
}

/* Legal pages mobile padding & table responsiveness */
.elementor-1762,
.elementor-1764,
.elementor-1766 {
  padding: 40px 16px 60px;
  max-width: 860px;
  margin: 0 auto;
}

.elementor-1764 table.wp-block-table {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
