/* ==========================================================================
   Requena y Asociados — estilos compartidos del sitio
   ========================================================================== */

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:#F6F1E8;
  color:#2B241B;
  font-family:'Lora',Georgia,serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{ color:#8A6A2E; text-decoration:none; }
a:hover{ color:#B08B4C; }
img{ max-width:100%; }
::selection{ background:#B08B4C; color:#fff; }

/* ---- reveal on scroll ---- */
@keyframes reqFade{ from{ opacity:0; transform:translateY(24px);} to{ opacity:1; transform:none;} }
.req-reveal{ opacity:0; }
.req-reveal.req-in{ animation:reqFade .9s cubic-bezier(.2,.7,.2,1) forwards; }

/* ---- hover states ---- */
.util-link:hover{ color:#F0C878; }
.nav-link:hover{ color:#B08B4C; }
.menu-item:hover{ background:rgba(176,139,76,.14); color:#F0C878; }
.btn-call:hover{ background:#17120C; color:#F3EAD4; border-color:#17120C; }
.btn-wa:hover{ background:#1da851; }
.btn-gold:hover{ background:#C6A263; }
.btn-ink:hover{ background:#241b10; }
.link-gold:hover{ color:#B08B4C; }
.hov-gold:hover{ color:#C6A263; }
.foot-link:hover{ color:#C6A263; }
.foot-wa:hover{ color:#8BE6A6; }
.serv-card{ transition:all .3s; }
.serv-card:hover{ border-color:rgba(198,162,99,.7)!important; transform:translateY(-5px); }
.list-card{ transition:all .3s; }
.list-card:hover{ border-color:rgba(198,162,99,.7)!important; transform:translateY(-4px); }
.wacard{ transition:all .3s; }
.wacard:hover{ background:#1da851; transform:translateY(-4px); }

/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header-wrap{ font-family:'Lora',Georgia,serif; position:relative; z-index:200; }

/* utility bar */
.util-bar{ background:#17120C; color:#D8CDB6; font-size:13px; letter-spacing:.04em; }
.util-inner{
  max-width:1240px; margin:0 auto; padding:9px clamp(18px,4vw,56px);
  display:flex; flex-wrap:wrap; gap:8px 26px; align-items:center; justify-content:space-between;
}
.util-left{ display:flex; flex-wrap:wrap; gap:6px 26px; align-items:center; }
.util-link{ color:#D8CDB6; display:inline-flex; align-items:center; gap:8px; }
.util-ico{ color:#B08B4C; display:inline-flex; align-items:center; }
.util-loc{ color:#B08B4C; font-family:'Cinzel',serif; letter-spacing:.16em; font-size:11px; }

/* main nav */
.main-nav{
  position:sticky; top:0; z-index:200; background:rgba(246,241,232,.9);
  border-bottom:1px solid rgba(176,139,76,.28); backdrop-filter:blur(8px);
  transition:background .3s, box-shadow .3s;
}
.hdr-inner{
  max-width:1240px; margin:0 auto; padding:8px clamp(18px,4vw,56px);
  display:flex; align-items:center; justify-content:space-between; gap:18px;
}
.hdr-logo{ display:flex; align-items:center; flex:none; }
.hdr-logo img{ height:clamp(46px,6vw,62px); width:auto; display:block; }

.hdr-nav{
  display:flex; flex-wrap:wrap; align-items:center; gap:clamp(12px,1.8vw,30px);
  font-family:'Cinzel',serif; font-size:13px; letter-spacing:.1em;
}
.nav-link{
  color:#3A3022; padding:6px 0; border-bottom:2px solid transparent;
  font-family:'Cinzel',serif; font-size:13px; letter-spacing:.1em; transition:color .2s;
}
.nav-link.active{ color:#8A6A2E; border-bottom-color:#B08B4C; }

.nav-drop{ position:relative; }
.nav-drop-toggle{ cursor:pointer; display:inline-flex; align-items:center; gap:7px; }
.nav-drop-menu{
  position:absolute; top:100%; left:50%; transform:translateX(-50%);
  padding-top:14px; display:none;
}
.nav-drop:hover .nav-drop-menu, .nav-drop:focus-within .nav-drop-menu{ display:block; }
.nav-drop-inner{
  position:relative; min-width:290px; background:#17120C; border:1px solid rgba(176,139,76,.4);
  box-shadow:0 26px 60px -24px rgba(0,0,0,.6); padding:8px; display:flex; flex-direction:column;
}
.nav-drop-arrow{
  position:absolute; top:-7px; left:50%; transform:translateX(-50%) rotate(45deg);
  width:12px; height:12px; background:#17120C;
  border-left:1px solid rgba(176,139,76,.4); border-top:1px solid rgba(176,139,76,.4);
}
.menu-item{ display:block; padding:14px 18px; color:#E6DCC6; letter-spacing:.06em; font-size:13px; }

.hdr-actions{ display:flex; align-items:center; gap:10px; flex:none; }
.btn-call{
  display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px;
  background:#17120C; color:#F3EAD4; border:1px solid #17120C; transition:all .25s;
}
.btn-wa{
  display:inline-flex; align-items:center; gap:9px; background:#25D366; color:#fff;
  font-family:'Cinzel',serif; font-weight:600; letter-spacing:.08em; font-size:13px;
  padding:12px 20px; transition:background .25s;
}

/* hamburger */
.hdr-burger{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:46px; height:46px; padding:0 11px; background:#17120C; border:1px solid #17120C;
  cursor:pointer; flex:none;
}
.hdr-burger span{ display:block; height:2px; width:100%; background:#F3EAD4; transition:transform .3s, opacity .3s; }
.hdr-burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hdr-burger.is-open span:nth-child(2){ opacity:0; }
.hdr-burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* mobile menu panel */
.mobile-menu{
  display:none; background:#17120C; border-top:1px solid rgba(176,139,76,.25);
  padding:10px clamp(18px,4vw,56px) 26px;
}
.mobile-menu.open{ display:block; animation:reqFade .35s ease forwards; }
.mm-link{
  display:block; padding:15px 4px; color:#E6DCC6; font-family:'Cinzel',serif;
  font-size:15px; letter-spacing:.08em; border-bottom:1px solid rgba(176,139,76,.16);
}
.mm-link.active{ color:#C6A263; }
.mm-group{ border-bottom:1px solid rgba(176,139,76,.16); padding:6px 0; }
.mm-group-title{
  padding:9px 4px 4px; color:#9A8A6E; font-family:'Cinzel',serif; font-size:12px;
  letter-spacing:.16em; text-transform:uppercase;
}
.mm-sub{ display:block; padding:11px 4px 11px 18px; color:#E6DCC6; font-size:15px; }
.mm-sub:hover, .mm-link:hover{ color:#F0C878; }
.mm-cta{ display:flex; flex-direction:column; gap:12px; margin-top:20px; }
.mm-cta .btn-wa, .mm-cta .btn-callm{
  justify-content:center; padding:15px 20px; font-size:14px;
}
.btn-callm{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  background:#B08B4C; color:#17120C; font-family:'Cinzel',serif; font-weight:600;
  letter-spacing:.08em; font-size:14px; transition:background .25s;
}
.btn-callm:hover{ background:#C6A263; color:#17120C; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{
  background:#0F0B06; color:#B7AC94;
  padding:clamp(56px,7vw,88px) clamp(18px,4vw,56px) 38px; font-family:'Lora',Georgia,serif;
}
.footer-inner{ max-width:1240px; margin:0 auto; }
.footer-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:44px;
  align-items:start; padding-bottom:44px; border-bottom:1px solid rgba(176,139,76,.2);
}
.footer-logo{ height:118px; width:auto; display:block; margin-bottom:18px; }
.footer-blurb{ font-size:15px; line-height:1.7; color:#8B7E68; margin:0; max-width:320px; }
.footer-h{ font-family:'Cinzel',serif; color:#C6A263; letter-spacing:.14em; font-size:12px; margin-bottom:20px; }
.footer-col{ display:flex; flex-direction:column; gap:12px; font-size:15px; }
.foot-link{ color:#B7AC94; }
.footer-bottom{
  padding-top:26px; display:flex; flex-wrap:wrap; gap:12px 24px;
  justify-content:space-between; align-items:center; font-size:13px; color:#6B6152;
}
.footer-tag{ font-family:'Cinzel',serif; letter-spacing:.12em; color:#8B7E68; }
.footer-credit{
  padding-top:20px; margin-top:20px; border-top:1px solid rgba(176,139,76,.12);
  text-align:center; font-size:13px; color:#6B6152; letter-spacing:.03em;
}

/* ==========================================================================
   COMPONENTS
   ========================================================================== */
/* interactive step buttons (home) */
.step-btn{
  all:unset; cursor:pointer; display:flex; gap:18px; align-items:center;
  padding:18px 22px; transition:all .25s;
}

/* before / after slider (inmuebles) */
.ba-range{ -webkit-appearance:none; appearance:none; background:transparent; cursor:ew-resize; }
.ba-range::-webkit-slider-thumb{ -webkit-appearance:none; width:46px; height:100%; }
.ba-range::-moz-range-thumb{ width:46px; height:340px; border:0; background:transparent; }

/* floating whatsapp button (added by JS) */
.wa-fab{
  position:fixed; right:16px; bottom:16px; z-index:250; width:56px; height:56px;
  border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center;
  justify-content:center; box-shadow:0 10px 26px -6px rgba(0,0,0,.45);
  transition:transform .2s, background .2s;
}
.wa-fab:hover{ background:#1da851; transform:scale(1.06); color:#fff; }

/* leaflet */
.leaflet-container{ font-family:'Lora',serif; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:900px){
  .hdr-nav{ display:none; }
  .hdr-actions{ display:none; }
  .hdr-burger{ display:flex; }
}
@media (min-width:901px){
  .mobile-menu{ display:none !important; }
}

@media (max-width:680px){
  .util-hide-sm{ display:none !important; }        /* email + location hidden on phones */
  .util-inner{ justify-content:center; }
}

/* homepage hero: stop the crowding on small screens */
@media (max-width:768px){
  .hero{ min-height:auto !important; display:block !important; }
  .hero-content{ padding-top:56px !important; padding-bottom:34px !important; }
  .hero-stats{ position:static !important; backdrop-filter:none !important; }
  .hero-stats-grid{ grid-template-columns:1fr 1fr !important; gap:16px 14px !important; }
}

/* keep negatively-positioned badges from overflowing / overlapping on mobile */
@media (max-width:640px){
  .float-badge{
    position:static !important; margin-top:-1px; max-width:none !important;
    box-shadow:none !important;
  }
  .float-badge-tr, .float-badge-bl{
    position:static !important; display:inline-block; margin-top:14px;
  }
}

/* generic type / spacing easing on very small screens */
@media (max-width:480px){
  h1{ line-height:1.12 !important; }
}
