/*
Theme Name: Golondrinas Child
Theme URI: 
Description: Tema hijo para Las Golondrinas Norte
Author: Antigravity
Author URI: 
Template: hello-elementor
Version: 1.2.2
*/

:root{
  --ink:#1C1B17;
  --paper:#EAE6DC;
  --paper-alt:#F3F0E8;
  --concrete:#ACA599;
  --moss:#3E4A38;
  --moss-deep:#2B342A;
  --bronze:#8C6A43;
  --line:#D2CBBB;
  --white:#FBFAF7;

  --display: 'Montserrat', sans-serif;
  --body: 'Montserrat', sans-serif;
  --mono: 'Montserrat', sans-serif;

  --wrap: 1180px;
}

html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
}

*, *::before, *::after {
  box-sizing: border-box;
}
body, .elementor-page, .elementor-template-canvas {
  font-family:var(--body);
  background-color:var(--paper);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  min-height: 100vh;
  overflow-x: hidden;
}

html { overflow-x: hidden; }

/* Force Elementor containers to be 100% width so backgrounds reach edges */
.elementor-section .elementor-container { max-width: 100% !important; padding: 0 !important; }
.elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding: 0 !important; }

/* Force overrides for Elementor global kits (Magenta/Pink issues) */
a { color: inherit !important; text-decoration: none !important; }
ul { list-style: none; padding: 0; margin: 0; }
img { max-width: 100%; display: block; }

.wrap{ width: 100%; max-width:var(--wrap); margin:0 auto; padding:0 32px; }
@media (max-width:640px){ .wrap{ padding:0 20px; } }

h1,h2,h3{ font-family:var(--display); font-weight:700; letter-spacing:0.01em; line-height:1.05; }

.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  font-weight:600;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--bronze);
}

section{ position:relative; }

/* ---------- signature horizon line ---------- */
.horizon{
  position:relative;
  height:1px;
  background:var(--line);
  width:100%;
}
.horizon::after{
  content:"";
  position:absolute;
  top:0; left:0;
  height:1px;
  width:64px;
  background:var(--bronze);
}

/* ---------- elementor structural overrides ---------- */
.elementor-section:has(.elementor-widget-golondrinas_header) { position: absolute; top: 0; left: 0; width: 100%; z-index: 100; padding: 0 !important; }
.elementor-section:has(.elementor-widget-golondrinas_hero) { padding: 0 !important; }
.elementor-section:has(.elementor-widget-golondrinas_hero) .elementor-container { max-width: 100% !important; padding: 0 !important; }
.elementor-section:has(.elementor-widget-golondrinas_hero) .elementor-element-populated { padding: 0 !important; }
.elementor-widget-golondrinas_hero { margin: 0 !important; }

/* ---------- nav ---------- */
.elementor-location-header { position: absolute; top: 0; left: 0; width: 100%; z-index: 100; }

.nav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  padding:22px 0;
  transition:background .4s ease, padding .4s ease, border-color .4s ease;
  border-bottom:1px solid transparent;
  background: transparent;
}
.nav.scrolled{
  background:rgba(234,230,220,0.92);
  backdrop-filter:blur(8px);
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; }
.brand{
  font-family:var(--display);
  font-size:15px;
  font-weight:500;
  letter-spacing:0.14em;
  text-transform:uppercase;
  display:flex; align-items:center; gap:10px;
  color: var(--paper) !important;
  transition: color .4s ease;
}
.nav.scrolled .brand { color: var(--ink) !important; }

.brand-text { display: none; }
.brand-logo { 
  height: 44px; 
  width: 180px; 
  padding: 6px; /* Aire alrededor (al corte) */
  display: block; 
  filter: brightness(0) invert(1); /* Color claro sobre fondo oscuro */
  transition: filter 0.4s ease;
}
.nav.scrolled .brand-logo {
  filter: brightness(0) opacity(0.9); /* Color oscuro sobre fondo claro */
}
.nav-links{ display:flex; gap:34px; }
.nav-links a{
  font-size:13px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  font-weight:600;
  color: var(--paper) !important;
  position:relative;
  padding-bottom:3px;
  transition: color .4s ease;
}
.nav.scrolled .nav-links a { color: var(--ink) !important; }

.nav-links a::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:0; height:1px; background:var(--bronze);
  transition:width .25s ease;
}
.nav-links a:hover::after, .nav-links a.active::after{ width:100%; }

.nav-cta{
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-weight:600;
  background: rgba(235,230,220,0.05) !important;
  color: var(--paper) !important;
  border: 1px solid rgba(235,230,220,0.4) !important;
  padding:11px 20px;
  transition: background .4s ease, color .4s ease, border-color .4s ease !important;
}
.nav-cta:hover{ background: var(--paper) !important; color: var(--ink) !important; }

.nav.scrolled .nav-cta {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border-color: var(--ink) !important;
}
.nav.scrolled .nav-cta:hover {
  background: var(--moss-deep) !important;
  border-color: var(--moss-deep) !important;
}

#nav .menu-toggle, nav#nav button.menu-toggle {
  -webkit-appearance:none !important; appearance:none !important;
  display:none;
  background-color:transparent !important; background:transparent !important;
  border:none !important; border-width:0 !important;
  padding:0 !important; margin:0 !important;
  cursor:pointer !important;
  outline:none !important; box-shadow:none !important;
  min-width:0 !important; min-height:0 !important;
}
#nav .menu-toggle span{ 
  display:block; width:24px; height:2px; background:var(--paper) !important; margin:5px 0; 
  transition: transform .4s ease, opacity .4s ease, background .4s ease;
  pointer-events: none;
}
#nav.scrolled .menu-toggle span { background:var(--ink) !important; }

@media (max-width:880px){
  .nav-links, .nav-cta{ display:none !important; }
  #nav .menu-toggle, nav#nav button.menu-toggle { display:block !important; position:relative !important; z-index:9002 !important; }
  
  /* Full screen menu */
  .nav.open { height: 100vh !important; background: var(--paper) !important; display: flex !important; flex-direction: column; overflow-y: auto; }
  .nav.open .wrap { flex: 1; display: flex; flex-direction: column; align-items: stretch; justify-content: center; }
  
  .nav.open .nav-links {
    display:flex !important; flex-direction:column; align-items:center; justify-content:center;
    flex: 1; margin:0; padding:40px 0; gap:36px;
  }
  .nav.open .nav-links a { color:var(--ink) !important; font-size:24px; font-weight:300; padding:0; letter-spacing:0.04em; }
  .nav.open .nav-links a::after { bottom: -8px; }
  
  .nav.open .nav-cta {
    display:block !important; align-self:center; margin-bottom:60px; margin-top:0;
    background: var(--ink) !important; color: var(--paper) !important;
    border-color: var(--ink) !important;
  }
  
  /* Brand and toggle colors over paper background */
  .nav.open .brand-logo { filter: brightness(0) opacity(0.9) !important; }
  .nav.open .brand-text { color: var(--ink) !important; }
  #nav.open .menu-toggle span { background:var(--ink) !important; }
  #nav.open .menu-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  #nav.open .menu-toggle span:nth-child(2) { opacity: 0; }
  #nav.open .menu-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  margin-top: -100px; /* Bulletproof full bleed to absorb Elementor/WP gaps */
  padding-top: 220px; /* Compensate for the negative margin */
  padding-bottom:80px;
  background:
    linear-gradient(180deg, var(--paper) 0%, var(--paper) 55%, var(--paper-alt) 100%);
  overflow:hidden;
}
.hero-bg { position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; }
.hero-overlay { position:absolute; inset:0; z-index:1; }

.hero-bands{
  position:absolute; inset:0; z-index:2; opacity:0.5;
}
.hero-bands span{
  position:absolute; left:0; right:0; height:1px; background:var(--line);
}
.hero-content{ position:relative; z-index:3; }
.hero .eyebrow{ margin-bottom:22px; display:block; }
.hero h1{
  font-size:clamp(34px, 7vw, 90px);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.02em;
  margin: 0;
}
.hero h1 em{ font-style:normal; font-weight:400; color:var(--white); }
.hero-sub{
  max-width:520px;
  font-size:18px;
  color:var(--ink);
  opacity:0.82;
  margin-top:26px;
  margin-bottom:0;
}

/* Light text scheme for dark image backgrounds */
.hero-scheme-light h1, .hero-scheme-light .hero-sub, .hero-scheme-light .eyebrow { color: var(--paper) !important; opacity: 1; }
.hero-scheme-light h1 em { color: var(--white) !important; }
.hero-scheme-light .hero-bands span { background: rgba(235,230,220,0.15); }
.hero-scheme-light .btn-outline { color: var(--paper) !important; border-color: rgba(235,230,220,0.3) !important; }
.hero-scheme-light .btn-outline:hover { background: var(--paper) !important; color: var(--ink) !important; border-color: var(--paper) !important; }
.hero-scheme-light .hero-stats .num { color: var(--paper); }
.hero-scheme-light .hero-stats .lab { color: rgba(235,230,220,0.6); }

.hero-actions{ display:flex; gap:16px; margin-top:44px; flex-wrap:wrap; }
button, input[type="submit"], input[type="button"] { font-family:var(--body) !important; background-color:var(--ink) !important; color:var(--white) !important; }
.btn{
  display:inline-block;
  font-size:13px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-weight:600;
  padding:16px 30px;
  border:1px solid var(--ink) !important;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
  text-decoration:none !important;
}
.btn-solid{ background:var(--ink) !important; color:var(--white) !important; }
.btn-solid:hover{ background:var(--moss-deep) !important; border-color:var(--moss-deep) !important; }
.btn-outline{ background:transparent !important; color:var(--ink) !important; }
.btn-outline:hover{ background:var(--ink) !important; color:var(--white) !important; }

.hero-stats{
  margin-top:80px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  max-width:640px;
}
.hero-stats div{ padding-right:24px; }
.hero-stats .num{ font-family:var(--display); font-size:clamp(26px,3vw,36px); }
.hero-stats .lab{ font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--concrete); margin-top:6px; }
@media (max-width:600px){ 
  .hero-stats{ grid-template-columns:repeat(3, auto); justify-content:center; gap: 16px; } 
  .hero-stats div{ padding-right: 0; text-align: center; }
  .hero-stats .num{ font-size: 24px; }
  .hero-stats .lab{ font-size: 9px; letter-spacing: 0.04em; }
  .hero-actions { flex-wrap: nowrap; }
  .hero-actions .btn { flex: 1; text-align: center; padding-left: 0; padding-right: 0; font-size: 12px; }
}

/* ---------- section shell ---------- */
.section{ padding:110px 0; }
@media (max-width:640px){ .section{ padding:70px 0; } }
.section-head{ max-width:640px; margin-bottom:64px; }
.section-head .eyebrow{ display:block; margin-bottom:16px; }
.section-head h2{ font-size:clamp(32px,5vw,52px); text-transform:uppercase; margin: 0; }
.section-alt{ background:var(--paper-alt); }

.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }

/* ---------- el barrio ---------- */
.barrio-lead{ max-width:760px; font-size:20px; margin-bottom:72px; }
.barrio-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
  background:var(--line);
}
.barrio-card{ background:var(--paper); padding:44px; }
.barrio-card .idx{ font-family:var(--mono); font-size:12px; color:var(--bronze); }
.barrio-card h3{ font-size:22px; margin:14px 0 14px; text-transform:uppercase; }
.barrio-card p{ color:var(--ink); opacity:0.82; font-size:15px; margin:0; }
@media (max-width:760px){ .barrio-grid{ grid-template-columns:1fr; } }

.barrio-swiper {
  margin-top: 64px;
  width: 100%;
}
.barrio-swiper .swiper-wrapper { display: flex; }
.barrio-swiper .swiper-slide .tile {
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, var(--concrete), var(--paper-alt));
  display: flex; align-items: flex-end; padding: 16px;
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--white);
}
.barrio-swiper .swiper-slide .tile.text-dark { color: var(--ink); }
.barrio-swiper .swiper-slide .tile.text-light { color: var(--white); }
/* Let the aspect ratio be 4/3 for all tiles inside swiper to keep them uniform in height */

/* ---------- ubicacion ---------- */
.ubicacion-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
@media (max-width:900px){ .ubicacion-grid{ grid-template-columns:1fr; } }
.loc-stats{ display:flex; gap:56px; margin-bottom:40px; }
.loc-stats .num{ font-family:var(--display); font-size:clamp(38px,5vw,56px); color:var(--moss); }
.loc-stats .lab{ font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--concrete); margin-top:8px; }
.loc-list{ margin-top:8px; }
.loc-list li{
  padding:16px 0; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; font-size:14px;
}
.loc-list li:last-child{ border-bottom:1px solid var(--line); }
.loc-list span:first-child{ color:var(--concrete); font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; align-self:center; }
.map-frame{ width:100%; aspect-ratio:4/3.3; border:1px solid var(--line); filter:grayscale(0.25) contrast(1.02); }

/* ---------- unidades ---------- */
.unidades-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); }
@media (max-width:820px){ .unidades-grid{ grid-template-columns:1fr; } }
.unidad-card{ background:var(--paper); }
.unidad-visual{
  aspect-ratio:16/10;
  background:linear-gradient(160deg, var(--concrete) 0%, var(--paper-alt) 70%);
  position:relative;
  display:flex; align-items:flex-end;
  background-size: cover; background-position: center;
}
.unidad-visual span{
  font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
  padding:16px; color:var(--white); opacity:1;
}
.unidad-visual.text-dark span {
  color: var(--ink);
}

.btn-planos {
  position: absolute;
  bottom: 20px;
  right: 20px;
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  color: var(--ink);
  padding: 8px 16px;
  border-radius: 40px;
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  opacity: 1;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
.btn-planos:hover {
  background: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.unidad-body{ padding:40px 44px 44px; }
.unidad-body h3{ font-size:26px; text-transform:uppercase; margin: 0; }
.unidad-m2{ font-family:var(--mono); font-size:14px; color:var(--bronze); margin-top:6px; }
.unidad-specs{ margin-top:26px; }
.unidad-specs li{
  font-size:14px; padding:11px 0; border-top:1px solid var(--line);
  display:flex; gap:10px;
}
.unidad-specs li::before{ content:"—"; color:var(--bronze); flex-shrink:0; }
.unidad-body .btn{ margin-top:30px; width:100%; text-align:center; }

/* ---------- preventa ---------- */
.preventa-lead{ max-width:700px; font-size:19px; margin-bottom:60px; }
.compare-table{ width:100%; border-collapse:collapse; margin-bottom:70px; }
.compare-table th, .compare-table td{
  text-align:left; padding:16px 18px; border-bottom:1px solid var(--line); font-size:14px;
}
.compare-table th{
  font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--concrete); font-weight:500;
}
.compare-table td.num, .compare-table th.num{ font-family:var(--mono); text-align:right; }
.compare-table td.save{ color:var(--moss); font-family:var(--mono); font-weight:500; }
.compare-table tbody tr:hover{ background:var(--paper-alt); }

.fin-tabs{ display:flex; gap:2px; margin-bottom:0; }
.fin-tab{
  flex:1; padding:18px; text-align:center; background:var(--paper-alt);
  font-family:var(--mono); font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
  cursor:pointer; border:1px solid var(--line); border-bottom:none;
}
.fin-tab.active{ background:var(--ink); color:var(--white); border-color:var(--ink); }
.fin-panel{ display:none; border:1px solid var(--line); padding:36px; background:var(--paper); }
.fin-panel.active{ display:block; }
.fin-summary{ display:flex; flex-wrap:wrap; gap:40px; margin-bottom:32px; padding-bottom:32px; border-bottom:1px solid var(--line); }
.fin-summary div .num{ font-family:var(--display); font-size:28px; }
.fin-summary div .lab{ font-family:var(--mono); font-size:11px; letter-spacing:0.05em; text-transform:uppercase; color:var(--concrete); margin-top:4px; }
.fin-schedule{ max-height:340px; overflow-y:auto; }
.fin-schedule table{ width:100%; border-collapse:collapse; }
.fin-schedule th{ position:sticky; top:0; background:var(--paper); text-align:left; padding:10px 8px; font-family:var(--mono); font-size:10px; letter-spacing:0.06em; text-transform:uppercase; color:var(--concrete); border-bottom:1px solid var(--line); }
.fin-schedule td{ padding:10px 8px; font-family:var(--mono); font-size:13px; border-bottom:1px solid var(--line); }
.fin-schedule td.num, .fin-schedule th.num{ text-align:right; }
.preventa-cta{ margin-top:44px; text-align:center; }

/* ---------- galeria ---------- */
.gal-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.gal-tile{
  aspect-ratio:1/1; position:relative; overflow:hidden;
  background:linear-gradient(150deg, var(--concrete), var(--paper-alt));
  display:flex; align-items:flex-end; padding:18px;
  background-size: cover; background-position: center;
}
.gal-tile:nth-child(1),.gal-tile:nth-child(4){ background:linear-gradient(150deg, var(--moss), var(--moss-deep)); }
.gal-tile span{ font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--white); position: relative; z-index: 2; }
.gal-tile.text-dark span { color: var(--ink); }
.gal-tile.text-light span { color: var(--white); }
.gal-tile.soon::after{
  content:"Próximamente"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(28,27,23,0.55); color:var(--white); font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
  z-index: 10;
}
@media (max-width:760px){ .gal-grid{ grid-template-columns:repeat(2,1fr); } }

/* ---------- contacto ---------- */
.contact-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:70px; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
.field{ margin-bottom:22px; }
.field label{ display:block; font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--concrete); margin-bottom:8px; }
.field input, .field textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--line);
  padding:10px 0; font-family:var(--body); font-size:15px; color:var(--ink);
}
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--ink); }
.field textarea{ resize:vertical; min-height:90px; }
.contact-info-block{ margin-bottom:36px; }
.contact-info-block .lab{ font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--concrete); margin-bottom:8px; }
.contact-info-block .val{ font-size:17px; }
.contact-actions{ display:flex; flex-direction:column; gap:14px; margin-top:8px; }
.icon-btn{ display:flex; align-items:center; gap:12px; border:1px solid var(--line); padding:16px 20px; font-size:14px; color:var(--ink) !important; text-decoration:none !important; }
.icon-btn:hover{ border-color:var(--ink) !important; color:var(--ink) !important; }

/* ---------- elementor native form overrides ---------- */
.elementor-field-group { margin-bottom: 22px !important; padding: 0 !important; }
.elementor-field-group label {
    display: block !important; font-family: var(--mono) !important; font-size: 11px !important;
    letter-spacing: 0.06em !important; text-transform: uppercase !important; color: var(--concrete) !important;
    margin-bottom: 8px !important; font-weight: normal !important;
}
.elementor-field-group input, .elementor-field-group textarea, .elementor-field-textual {
    width: 100% !important; background: transparent !important; border: none !important;
    border-bottom: 1px solid var(--line) !important; border-radius: 0 !important; padding: 10px 0 !important;
    font-family: var(--body) !important; font-size: 15px !important; color: var(--ink) !important;
    box-shadow: none !important; outline: none !important;
}
.elementor-field-group input:focus, .elementor-field-group textarea:focus, .elementor-field-textual:focus {
    border-bottom-color: var(--ink) !important;
}
.elementor-field-group .elementor-button[type="submit"] {
    display: inline-block !important; font-family: var(--body) !important; font-size: 13px !important;
    letter-spacing: 0.08em !important; text-transform: uppercase !important; font-weight: 600 !important;
    padding: 16px 30px !important; border: 1px solid var(--ink) !important; background: var(--ink) !important;
    color: var(--white) !important; border-radius: 0 !important; width: auto !important; margin-top: 10px !important;
}
.elementor-field-group .elementor-button[type="submit"]:hover {
    background: var(--moss-deep) !important; border-color: var(--moss-deep) !important; color: var(--white) !important;
}

/* ---------- footer ---------- */
.site-footer {
  background: transparent;
  color: var(--ink);
  padding: 120px 0 60px;
}
.footer-top-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 80px;
  padding-bottom: 20px;
}
.footer-logo {
  height: 42px;
  width: 173px;
  filter: brightness(0) opacity(0.9);
}
.footer-social-icons {
  display: flex;
  gap: 20px;
}
.footer-social-icons a {
  display: block;
  color: var(--ink) !important;
  opacity: 0.6;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.footer-social-icons svg {
  width: 18px;
  height: 18px;
}
.footer-social-icons a:hover {
  opacity: 1;
  transform: translateY(-2px);
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 60px;
  margin-bottom: 80px;
}
.footer-col { display: flex; flex-direction: column; gap: 20px; }
.footer-desc {
  font-family: var(--body);
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink);
  opacity: 0.75;
  max-width: 300px;
  margin: 0;
}
.footer-eyebrow {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
  opacity: 0.4;
}
.footer-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.footer-col ul a {
  color: var(--ink) !important;
  text-decoration: none;
  font-size: 14px;
  opacity: 0.7;
  transition: opacity 0.3s ease;
}
.footer-col ul a:hover { opacity: 1; }

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid rgba(28,27,23,0.1);
  padding-top: 30px;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  color: var(--ink);
  opacity: 0.5;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.footer-bottom p { margin: 0; }
@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .site-footer { padding: 80px 0 40px; }
  .footer-top-row { flex-direction: column; align-items: flex-start; gap: 24px; margin-bottom: 60px; padding-bottom: 0; }
  .footer-grid { grid-template-columns: 1fr; gap: 48px; margin-bottom: 60px; }
  .footer-bottom { flex-direction: column; gap: 16px; align-items: flex-start; text-align: left; }
  .footer-desc { font-size: 15px; opacity: 0.8; max-width: 100%; }
}

/* ---------- go to top ---------- */
.go-to-top {
  position: fixed;
  bottom: 40px;
  right: 40px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(28,27,23, 0.4);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(235,230,220, 0.15);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 99;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  padding: 0;
}
.go-to-top.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.go-to-top:hover {
  background: var(--ink);
  color: var(--paper);
  border-color: rgba(235,230,220, 0.4);
  transform: translateY(-4px);
}
.go-to-top svg {
  width: 20px;
  height: 20px;
}
@media (max-width: 760px) {
  .go-to-top {
    bottom: 24px;
    right: 24px;
    width: 40px;
    height: 40px;
  }
}

/* ---------- Lightbox ---------- */
.custom-lightbox {
  position: fixed;
  top: 0; left: 0; width: 100vw; height: 100vh;
  z-index: 9999;
  background: rgba(28,27,23, 0.4);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s ease;
}
.custom-lightbox.active {
  opacity: 1;
  visibility: visible;
}
.custom-lightbox img {
  max-width: 90vw;
  max-height: 90vh;
  object-fit: contain;
  border-radius: 4px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.2);
  transform: scale(0.95);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.custom-lightbox.active img {
  transform: scale(1);
}
.custom-lightbox-close {
  position: absolute;
  top: 30px;
  right: 40px;
  background: none;
  border: none;
  color: var(--white);
  cursor: pointer;
  padding: 10px;
  z-index: 2;
  transition: transform 0.3s ease;
}
.custom-lightbox-close:hover {
  transform: scale(1.1);
}
.custom-lightbox-close svg {
  width: 24px;
  height: 24px;
}
[data-lightbox-img] {
  cursor: pointer;
}

/* ---------- Load More ---------- */
.load-more-wrap {
  text-align: center;
  margin-top: 40px;
}
.btn-load-more {
  background: transparent;
  color: var(--ink);
  border: 1px solid rgba(28,27,23,0.2);
  padding: 12px 24px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.3s ease;
  border-radius: 2px;
}
.btn-load-more:hover {
  background: var(--ink);
  color: var(--paper);
}

:focus-visible{ outline:2px solid var(--bronze); outline-offset:3px; }

/* FIXES ELEMENTOR */
.elementor-widget-container { width: 100%; }
.elementor-section { width: 100%; }

/* ---------- Mobile Layout Optimizations ---------- */
@media (max-width: 600px) {
  .barrio-card { padding: 32px 24px; }
  .unidad-body { padding: 32px 24px; }
  .loc-stats { flex-direction: column; gap: 20px; }
  .loc-stats .num { font-size: 40px; }
  .compare-table th, .compare-table td { padding: 12px 10px; font-size: 13px; }
  .fin-panel { padding: 24px 20px; }
  .fin-summary { gap: 20px; }
}
