:root{
  --brand:#0f4c81; --brand-dark:#0a3559; --accent:#2ea3e3; --accent-dark:#1f8fcb;
  --accent-soft:#e4f2fc; --ink:#1d2b3a; --bg:#f3f7fb;
  --card-shadow:0 10px 30px rgba(10,53,89,.10);
  --radius:1rem;
  --font-body:'DM Sans','Segoe UI',system-ui,-apple-system,sans-serif;
  --font-display:'Forum',Georgia,'Times New Roman',serif;
  --font-script:'Beau Rivage',cursive;
}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body)}
h1,h2,h3{font-family:var(--font-display);letter-spacing:.01em}
.script-accent{font-family:var(--font-script);color:var(--accent-dark)}
.text-brand{color:var(--brand)!important}

/* ---------- Nav transparente sobre banner (estilo lasmariasdelalto) ---------- */
.site-nav{
  background:transparent!important;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  transition:background .3s ease,box-shadow .3s ease;
  padding:.35rem 0;
}
.site-nav::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(5,24,46,.55),rgba(5,24,46,0));
  transition:opacity .3s ease;
}
.site-nav .container{position:relative;z-index:1}
.site-nav.scrolled{
  background:rgba(10,53,89,.96)!important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 8px 28px rgba(5,24,46,.28);
}
.site-nav.scrolled::before{opacity:0}
.site-nav .navbar-brand{
  display:inline-flex;align-items:center;
  font-family:var(--font-script);
  font-size:2.35rem;font-weight:400;font-style:normal;
  letter-spacing:.02em;line-height:1;
  color:#fff;
  padding:.1rem 0;
  text-shadow:0 2px 14px rgba(0,0,0,.35);
}
.site-nav .navbar-brand:hover{color:#eaf6ff}
.site-nav .brand-logo{width:auto;height:85px;border-radius:50%;object-fit:cover;box-shadow:0 4px 16px rgba(0,0,0,.35)}
.site-nav .nav-link{
  color:rgba(255,255,255,.92);
  font-weight:500;font-size:.95rem;letter-spacing:.02em;
  padding:.42rem .9rem!important;
  border-radius:999px;
  text-shadow:0 1px 8px rgba(0,0,0,.3);
  transition:background .15s,color .15s;
}
.site-nav .nav-link:hover,.site-nav .nav-link:focus{color:#fff;background:rgba(255,255,255,.16);text-shadow:none}
.site-nav .nav-link.active{color:#fff;background:rgba(255,255,255,.2);font-weight:600;text-shadow:none}
.site-nav .navbar-toggler{border-color:rgba(255,255,255,.45)}
.site-nav .btn-warning{text-shadow:none;box-shadow:0 4px 14px rgba(0,0,0,.25)}
@media (max-width:991.98px){
  .site-nav .navbar-collapse{
    background:rgba(8,38,66,.97);
    border-radius:0 0 1.1rem 1.1rem;
    padding:.85rem 1.1rem 1.15rem;
    box-shadow:0 18px 44px rgba(5,24,46,.4);
    margin-top:.65rem;
  }
  .site-nav .navbar-collapse .nav-link{text-shadow:none}
  .site-nav .navbar-collapse .btn-warning{width:100%;margin-top:.5rem}
}

/* ---------- Banner de cabecera por página ---------- */
.page-banner{
  position:relative;
  min-height:clamp(210px,34vh,320px);
  background-size:cover;background-position:center;
  display:flex;align-items:flex-end;
  padding:6.5rem 0 2.25rem;
  color:#fff;
}
.page-banner::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(5,24,46,.42) 0%,rgba(5,24,46,.18) 45%,rgba(5,24,46,.55) 100%);
}
.page-banner-inner{position:relative;z-index:1}
.page-banner-title{
  margin:0;color:#fff;
  font-size:clamp(2rem,4.6vw,3.1rem);
  text-shadow:0 3px 20px rgba(0,0,0,.45);
}

.hero{background-size:cover;background-position:center;min-height:78vh;display:flex;align-items:center;color:#fff;position:relative;padding-top:7rem}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,38,66,.58),rgba(8,38,66,.32))}
.hero>div{position:relative;z-index:1}
.hero h1{font-size:clamp(2.4rem,5vw,4rem)}
.card-lift{border:0;border-radius:var(--radius);box-shadow:var(--card-shadow);overflow:hidden}
.promo-band{background:linear-gradient(135deg,#0f4c81,#2ea3e3);color:#fff;border-radius:var(--radius)}
.promo-band .badge{background:#fff!important;color:var(--brand-dark)!important}
.site-footer{background:#0a3559;color:#dcebf7}
.site-footer a{color:#fff}
.wa-float{position:fixed;right:18px;bottom:18px;background:#25d366;color:#fff;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:0 8px 20px rgba(0,0,0,.25);z-index:50}
img{max-width:100%}
.gallery-img{height:220px;object-fit:cover;width:100%}
.house-cover{height:260px;object-fit:cover;width:100%}
/* Nosotros: foto destacada al costado del texto (responsive: apila en móvil) */
.about-featured{aspect-ratio:4/3;object-fit:cover;box-shadow:0 8px 24px rgba(10,53,89,.15);cursor:zoom-in}
.about-content{line-height:1.75}
@media (max-width:991.98px){.about-featured{aspect-ratio:16/10}}
/* Botones con identidad azul (Bootstrap 5.3 por variables) */
.btn-warning{--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-color:#fff;--bs-btn-hover-bg:var(--accent-dark);--bs-btn-hover-border-color:var(--accent-dark);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--accent-dark);--bs-btn-active-border-color:var(--accent-dark);--bs-btn-disabled-bg:var(--accent);--bs-btn-disabled-border-color:var(--accent)}
.btn-outline-warning{--bs-btn-color:var(--accent-dark);--bs-btn-border-color:var(--accent);--bs-btn-hover-bg:var(--accent);--bs-btn-hover-border-color:var(--accent);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--accent);--bs-btn-active-border-color:var(--accent)}
.btn-success{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand-dark);--bs-btn-hover-border-color:var(--brand-dark);--bs-btn-active-bg:var(--brand-dark);--bs-btn-active-border-color:var(--brand-dark)}
.btn-outline-success{--bs-btn-color:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--brand);--bs-btn-active-border-color:var(--brand)}
.btn-wa{--bs-btn-bg:#22b358;--bs-btn-border-color:#22b358;--bs-btn-color:#fff;--bs-btn-hover-bg:#1a9447;--bs-btn-hover-border-color:#1a9447;--bs-btn-hover-color:#fff;--bs-btn-active-bg:#1a9447;--bs-btn-active-border-color:#1a9447}
/* Reveal on scroll (data-reveal="up|down|left|right|zoom|fade"). Solo si hay JS y sin reduced-motion */
@media (prefers-reduced-motion: no-preference){
  html.js [data-reveal]{opacity:0;transition:opacity .7s ease,transform .7s cubic-bezier(.22,.61,.36,1)}
  html.js [data-reveal="up"]{transform:translateY(36px)}
  html.js [data-reveal="down"]{transform:translateY(-36px)}
  html.js [data-reveal="left"]{transform:translateX(-48px)}
  html.js [data-reveal="right"]{transform:translateX(48px)}
  html.js [data-reveal="zoom"]{transform:scale(.93)}
  html.js [data-reveal].revealed{opacity:1;transform:none}
}
/* Lightbox propio (sin dependencias) */
img[data-lightbox]{cursor:zoom-in}
.lb-backdrop{position:fixed;inset:0;background:rgba(5,20,35,.93);display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;pointer-events:none;transition:opacity .25s ease}
.lb-backdrop.open{opacity:1;pointer-events:auto}
.lb-figure{margin:0;max-width:min(92vw,1100px);text-align:center}
.lb-img{max-width:100%;max-height:80vh;border-radius:.6rem;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb-cap{color:#eaf4fc;margin-top:.6rem;font-size:.95rem}
.lb-count{color:#9fc3dd;font-size:.8rem;margin-top:.15rem}
.lb-btn{position:absolute;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:50%;width:46px;height:46px;font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}
.lb-btn:hover{background:var(--accent);border-color:var(--accent)}
.lb-prev{left:14px}.lb-next{right:14px}
.lb-close{top:14px;right:16px}
