/* Villa 68 — styles */
:root{
  --bg:#ffffff;
  --text:#111317;
  --muted:#5c6370;
  --brand:#111317;
  --accent:#4b5563;
  --soft:#f4f5f7;
  --card:#ffffff;
  --border:#e6e7eb;
  --radius:18px;
  --shadow:0 10px 25px rgba(17,19,23,.07);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial,'Noto Sans',sans-serif;
  color:var(--text); background:var(--bg); line-height:1.5;
}
img{max-width:100%; display:block; border-radius:12px}
.container{width:min(1120px, 92%); margin:0 auto}

.site-header{position:sticky; top:0; backdrop-filter:saturate(180%) blur(8px); background:rgba(255,255,255,.75); border-bottom:1px solid var(--border); z-index:10}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:.75rem 0}
.brand{display:flex; align-items:center; gap:.75rem; text-decoration:none; color:inherit}
.brand-mark{font-size:1.35rem}
.brand-text{display:flex; flex-direction:column; line-height:1}
.brand-text strong{letter-spacing:.08em}
.brand-text span{color:var(--muted); font-size:.8rem}
.nav a{margin-left:1rem; text-decoration:none; color:var(--text)}
.nav .cta{padding:.5rem .9rem; border:1px solid var(--border); border-radius:999px}
.nav a:hover{opacity:.8}
.lang-switch{display:flex; gap:.4rem; margin-left:1rem; align-items:center}
.lang-switch img{width:24px; height:auto; border-radius:3px; border:1px solid #ddd; transition:transform .2s ease}
.lang-switch img:hover{transform:scale(1.08)}

.hero{padding:5rem 0 2rem; background:linear-gradient(180deg, #ffffff 0%, #fafbfc 100%)}
.hero-inner{display:grid; grid-template-columns:1.1fr .9fr; gap:2rem; align-items:center}
.hero h1{font-size:clamp(1.8rem, 3.5vw, 3rem); margin:0 0 .75rem}
.lead{font-size:1.1rem; color:var(--accent)}
.hero-actions{display:flex; gap:.75rem; margin:1.25rem 0 1rem}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border-radius:999px; padding:.7rem 1rem; border:1px solid var(--border); text-decoration:none; color:var(--text); box-shadow:var(--shadow); background:#fff}
.btn.primary{background:#111317; color:#fff; border-color:#111317}
.btn.outline{background:#fff}
.btn.wapp{background:#25D366; color:#fff; border-color:#25D366}
.btn:hover{transform:translateY(-1px)}
.hero-contact{color:var(--muted); font-size:.95rem}
.hero-contact a{color:inherit; text-decoration:none}
.photo-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:.75rem}

.section{padding:3.5rem 0}
.section-header{max-width:760px; margin:0 auto 2rem; text-align:center}
.section-header h2{margin:.25rem 0 0}
.section-header p{color:var(--accent)}

.apartments .apt-grid{display:grid; grid-template-columns:1fr; gap:1.5rem}
.apt-card{display:grid; grid-template-columns:1.05fr .95fr; gap:1.25rem; background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:1rem; box-shadow:var(--shadow)}
.apt-body h3{margin:.25rem 0 .25rem}
.bullets{padding-left:1.1rem; margin:.25rem 0 1rem; color:var(--accent)}
.apt-photos{display:grid; grid-template-columns:repeat(2,1fr); gap:.75rem}

.features .feat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem}
.feat{background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:1rem; box-shadow:var(--shadow)}
.icon{font-size:1.35rem}

.location .map-wrap{border-radius:16px; overflow:hidden; border:1px solid var(--border); box-shadow:var(--shadow)}
.location iframe{width:100%; height:420px; border:0}

.contact .contact-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:1rem}
.contact-card{background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:1rem; box-shadow:var(--shadow)}
.contact-form .form-row{display:flex; flex-direction:column; gap:.4rem; margin-bottom:.85rem}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea{
  border:1px solid var(--border); border-radius:12px; padding:.75rem .9rem; font:inherit; background:#fff
}
.contact-form .hp{position:absolute; left:-5000px; top:auto; width:1px; height:1px; overflow:hidden}
.checkbox{display:flex; align-items:flex-start; gap:.5rem}
.checkbox input{margin-top:.25rem}
.small{font-size:.9rem}
.muted{color:var(--muted)}

.vcard h3{margin:.25rem 0 .25rem}
.cta-stack{display:flex; gap:.5rem; flex-wrap:wrap; margin:1rem 0}

.site-footer{border-top:1px solid var(--border); padding:1rem 0 2rem; background:#fff}
.footer-inner{display:flex; align-items:center; justify-content:space-between}
.to-top{text-decoration:none; border:1px solid var(--border); padding:.4rem .6rem; border-radius:10px; color:var(--text)}

@media (max-width: 980px){
  .hero-inner{grid-template-columns:1fr; padding-top:.5rem}
  .apartments .apt-grid .apt-card{grid-template-columns:1fr}
  .features .feat-grid{grid-template-columns:1fr 1fr}
  .contact .contact-grid{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .features .feat-grid{grid-template-columns:1fr}
  .nav a{margin-left:.5rem}
}

/* --- Lightbox (vanilla) --- */
.lb-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.85);
  display:flex; align-items:center; justify-content:center;
  z-index:9999; opacity:0; pointer-events:none; transition:opacity .2s ease;
}
.lb-overlay.is-open{opacity:1; pointer-events:auto}
.lb-inner{position:relative; max-width:92vw; max-height:92vh}
.lb-img{max-width:92vw; max-height:92vh; border-radius:14px; box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb-close, .lb-prev, .lb-next{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.25);
  color:#fff; width:40px; height:40px; display:flex; align-items:center; justify-content:center;
  border-radius:999px; cursor:pointer; backdrop-filter:blur(4px)
}
.lb-close{top:10px; right:10px; transform:none}
.lb-prev{left:-56px}
.lb-next{right:-56px}
@media (max-width: 980px){
  .lb-prev{left:10px}
  .lb-next{right:10px}
}
