/* =====================================================
   GNORTE — Sistema Tipográfico Compartido
   Páginas navegables: Inicio, Servicios, Gestión
   Inmobiliaria, Sobre GNORTE, Contacto
   ===================================================== */

:root {
  --g-heading: "Varela Round", sans-serif;
  --g-body:    "Montserrat", sans-serif;
  --g-blue:    #3E4AF6;
  --g-text:    #3d4459;
  --g-muted:   #808080;
}

/* =====================================================
   HEADINGS — Elementor
   ===================================================== */

/* Hero page titles */
.elementor-element-463a3717 .elementor-heading-title,
.elementor-element-2bc0c8e4 .elementor-heading-title,
.elementor-element-182c40b9 .elementor-heading-title,
.elementor-element-7833788  .elementor-heading-title {
  font-family: var(--g-heading) !important;
  font-size: clamp(32px, 4vw, 52px) !important;
  font-weight: 300 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.01em !important;
  color: var(--g-blue) !important;
}

/* Sobre GNORTE — section headings */
.elementor-element-24c6cc6a .elementor-heading-title,
.elementor-element-26e73b8  .elementor-heading-title,
.elementor-element-703c1683 .elementor-heading-title {
  font-family: var(--g-heading) !important;
  font-weight: 300 !important;
  letter-spacing: -0.005em !important;
}

/* Todos los headings Elementor — font + jerarquía */
.elementor-widget-heading h2.elementor-heading-title {
  font-family: var(--g-heading) !important;
  font-weight: 300 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
}

.elementor-widget-heading h3.elementor-heading-title,
.elementor-widget-heading h4.elementor-heading-title {
  font-family: var(--g-heading) !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
}

/* =====================================================
   BODY TEXT — Elementor
   ===================================================== */

.elementor-widget-text-editor p,
.elementor-widget-text-editor li {
  font-family: var(--g-body) !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  line-height: 1.75 !important;
  color: var(--g-text) !important;
}

.elementor-widget-text-editor strong,
.elementor-widget-text-editor b {
  font-family: var(--g-body) !important;
  font-weight: 600 !important;
}

/* =====================================================
   LISTAS — Elementor icon-list
   ===================================================== */

.elementor-icon-list-text {
  font-family: var(--g-body) !important;
  font-weight: 300 !important;
  line-height: 1.55 !important;
  color: var(--g-text) !important;
}

/* =====================================================
   IMAGE BOX — Misión / Visión / Valor / Cards
   ===================================================== */

.elementor-image-box-title {
  font-family: var(--g-heading) !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
}

.elementor-image-box-description {
  font-family: var(--g-body) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: 1.65 !important;
  color: var(--g-text) !important;
}

/* =====================================================
   GESTIÓN INMOBILIARIA — RealHomes theme overrides
   ===================================================== */

/* Banner "Propiedades Disponibles" */
h1.rh_banner__title {
  font-family: var(--g-heading) !important;
  font-weight: 300 !important;
  letter-spacing: -0.02em !important;
}

/* Sección de búsqueda / títulos de página */
h2.rh_page__title,
.rh_section__title {
  font-family: var(--g-heading) !important;
  font-weight: 300 !important;
  letter-spacing: -0.01em !important;
}

/* Property card title */
.item-title,
.item-title a,
h5.entry-title,
h5.entry-title a {
  font-family: var(--g-body) !important;
  font-weight: 600 !important;
}

/* Body text general en tema */
.rh_wrap p:not(.elementor-heading-title),
.rh_banner__sub_title {
  font-family: var(--g-body) !important;
  font-weight: 300 !important;
  line-height: 1.65 !important;
}

/* =====================================================
   FOOTER — contact info on dark background (override g-text → white)
   ===================================================== */

.elementor-element-1791f2ec .elementor-heading-title {
  font-weight: 300 !important;
}

.elementor-element-708c3cf .elementor-heading-title {
  color: #ffffff !important;
}

.elementor-element-b830201 .elementor-icon-list-text {
  color: #ffffff !important;
}

.elementor-element-b830201 .elementor-icon-list-icon i {
  color: #ffffff !important;
}

/* =====================================================
   CONTACTO — "GESTIÓN EN TERRENO" heading (white on blue wave)
   text-shadow ensures readability at the wave boundary
   ===================================================== */

.elementor-element-275c59fd > .elementor-element-populated {
  padding-top: 100px !important;
}

/* =====================================================
   RESPONSIVE
   ===================================================== */

@media (max-width: 767px) {
  .elementor-element-463a3717 .elementor-heading-title,
  .elementor-element-2bc0c8e4 .elementor-heading-title,
  .elementor-element-182c40b9 .elementor-heading-title,
  .elementor-element-7833788  .elementor-heading-title {
    font-size: clamp(28px, 8vw, 38px) !important;
    letter-spacing: 0 !important;
  }
}

/* =====================================================
   RESPONSIVE MOBILE — 480px breakpoint
   Grid, Form, Footer, Images, Navigation
   ===================================================== */

@media (max-width: 480px) {
  /* General column stacking */
  .elementor-column {
    width: 100% !important;
  }

  /* Grid servicios — 1 column */
  .elementor-5005 .elementor-column > .elementor-widget-wrap {
    width: 100% !important;
  }

  /* Navigation padding reduction */
  .elementor-nav-menu--main .elementor-item {
    padding-top: 15px !important;
    padding-bottom: 15px !important;
    font-size: 14px !important;
  }

  /* Headers responsive */
  .elementor-heading-title {
    font-size: clamp(24px, 6vw, 32px) !important;
  }

  /* Cards/boxes padding on mobile */
  .elementor-element > .elementor-element-populated {
    padding: 10% 10% 10% 10% !important;
  }

  /* Form inputs — mobile friendly */
  .elementor-form-fields-wrapper input,
  .elementor-form-fields-wrapper textarea,
  .elementor-form-fields-wrapper select {
    font-size: 16px !important;
    padding: 12px 10px !important;
    width: 100% !important;
  }

  .elementor-form-fields-wrapper .elementor-field-group {
    width: 100% !important;
  }

  /* Images responsive */
  img {
    max-width: 100% !important;
    height: auto !important;
  }

  .elementor-widget-image img {
    width: 100% !important;
  }

  /* Footer stacking */
  .elementor-footer-area .elementor-column {
    margin-bottom: 20px !important;
  }

  /* Text sizing for mobile */
  p, li {
    font-size: 15px !important;
  }

  /* Button sizing */
  .elementor-button {
    font-size: 14px !important;
    padding: 10px 15px !important;
  }

  /* Spacing reduction on mobile */
  .elementor-spacer-inner {
    height: 30px !important;
  }

  /* Contact page form optimization */
  .elementor-4959 .elementor-nav-menu--main .elementor-item {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}

/* =====================================================
   HAMBURGER MENU — Mobile toggle animation
   ===================================================== */

.elementor-nav-menu--main {
  display: block !important;
  position: fixed !important;
  top: 60px !important;
  left: 0 !important;
  right: auto !important;
  background: #ffffff !important;
  height: 0 !important;
  overflow: hidden !important;
  transition: height 0.3s ease-in-out !important;
  z-index: 999 !important;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1) !important;
  width: 100vw !important;
}

.elementor-nav-menu--main.active {
  height: 220px !important;
}

.elementor-nav-menu--main .elementor-nav-menu {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
}

.elementor-nav-menu--main .menu-item {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  border-bottom: 1px solid #f0f0f0 !important;
  min-height: 44px !important;
}

.elementor-nav-menu--main .menu-item a {
  display: block !important;
  width: 100% !important;
  padding: 12px 16px !important;
  line-height: 1.5 !important;
  font-size: 15px !important;
  color: var(--g-text) !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
}

@media (min-width: 1025px) {
  .elementor-nav-menu--main {
    max-height: none !important;
    opacity: 1 !important;
    overflow: visible !important;
  }

  .elementor-menu-toggle {
    display: none !important;
  }
}

/* 768px tablet breakpoint */
@media (min-width: 481px) and (max-width: 768px) {
  /* 2 column layout for tablet */
  .elementor-col-25 {
    width: 50% !important;
  }

  .elementor-column:nth-child(odd) {
    margin-right: 0 !important;
  }

  .elementor-column:nth-child(even) {
    margin-left: 0 !important;
  }

  /* Spacing adjustment */
  .elementor-element > .elementor-element-populated {
    padding: 12% 12% 12% 12% !important;
  }

  /* Form on tablet */
  .elementor-form-fields-wrapper .elementor-field-group {
    width: 100% !important;
    margin-bottom: 15px !important;
  }
}

/* =====================================================
   HAMBURGER MENU — Mobile toggle animation
   ===================================================== */

.elementor-nav-menu--main {
  display: block !important;
  position: fixed !important;
  top: 60px !important;
  left: 0 !important;
  right: auto !important;
  background: #ffffff !important;
  height: 0 !important;
  overflow: hidden !important;
  transition: height 0.3s ease-in-out !important;
  z-index: 999 !important;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1) !important;
  width: 100vw !important;
}

.elementor-nav-menu--main.active {
  height: 220px !important;
}

.elementor-nav-menu--main .elementor-nav-menu {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
}

.elementor-nav-menu--main .menu-item {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  border-bottom: 1px solid #f0f0f0 !important;
  min-height: 44px !important;
}

.elementor-nav-menu--main .menu-item a {
  display: block !important;
  width: 100% !important;
  padding: 12px 16px !important;
  line-height: 1.5 !important;
  font-size: 15px !important;
  color: var(--g-text) !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
}

@media (min-width: 1025px) {
  .elementor-nav-menu--main {
    max-height: none !important;
    opacity: 1 !important;
    overflow: visible !important;
  }

  .elementor-menu-toggle {
    display: none !important;
  }
}
