:root{
  --bg:#ffffff;
  --text:#4D463A;
  --muted: rgba(77,70,58,.72);
  --muted2: rgba(77,70,58,.55);
  --line: rgba(0,0,0,.08);
  --line2: rgba(0,0,0,.06);
  --shadow: 0 18px 60px rgba(0,0,0,.10);
  --shadow-sm: 0 12px 30px rgba(0,0,0,.10);
  --radius: 24px;
  --radius-sm: 18px;
  --max: 1240px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
a{color:inherit}
img{display:block; max-width:100%}
.container{max-width:var(--max); margin:0 auto; padding:0 24px}
.small{font-size:14px; color:var(--muted)}
.kicker{font-size:12px; letter-spacing:.16px; text-transform:uppercase; color:var(--muted2)}
.h1{font-size:44px; line-height:1.06; letter-spacing:-.25px; margin:0}
.lead{margin:10px 0 0; max-width:78ch; color:var(--muted); font-size:15px}

/* Header */
.header{
  position:sticky; top:0; z-index:50;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px) saturate(180%);
  border-bottom:1px solid var(--line2);
}
.header-row{display:flex; align-items:center; gap:18px; height:78px}
.brand{font-weight:820; letter-spacing:.2px; text-decoration:none}
.nav{display:flex; align-items:center; gap:2px; margin:0 auto}
.nav a, .nav summary{
  text-decoration:none; font-weight:650; color: rgba(77,70,58,.85);
  padding:10px 12px; border-radius:999px;
}
.nav a:hover, .nav summary:hover{background: rgba(0,0,0,.04)}
.nav a[aria-current="page"]{background: rgba(0,0,0,.04)}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:10px 14px; border-radius:999px;
  border:1px solid rgba(0,0,0,.10);
  background:#fff; text-decoration:none; font-weight:760;
}
.btn:hover{box-shadow: var(--shadow-sm)}
.btn-primary{background: var(--text); color:#fff; border-color: transparent}
.btn-primary:hover{filter:brightness(.98)}

details.dropdown, details.lang{position:relative}
details.dropdown>summary, details.lang>summary{list-style:none; cursor:pointer; user-select:none}
details.dropdown>summary::-webkit-details-marker, details.lang>summary::-webkit-details-marker{display:none}
.menu{
  position:absolute; top:52px; left:0;
  background:#fff; border:1px solid var(--line);
  border-radius:18px; box-shadow: var(--shadow-sm);
  padding:8px; min-width:260px;
  display:flex; flex-direction:column; gap:2px;
}
.menu a{border-radius:14px; padding:11px 12px; text-decoration:none; color: rgba(77,70,58,.9); font-weight:650}
.menu a:hover{background: rgba(0,0,0,.04)}
details.lang .menu{left:auto; right:0; min-width:220px}

/* Main */
main{padding: 26px 0 44px}
.section{padding: 30px 0}
.center{text-align:center}
.section-title{margin:0; font-size:34px; line-height:1.12; letter-spacing:-.2px}
.section-sub{margin:10px auto 0; max-width:70ch; color:var(--muted); font-size:14px}

/* Gallery layout */
.gallery{margin-top:18px; border-radius: var(--radius); overflow:hidden; background:#fff}
.gallery-grid{display:grid; grid-template-columns: 2fr 1fr; gap:14px; align-items:stretch}
.gallery-left{border-radius: var(--radius); overflow:hidden}
.gallery-right{display:grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap:14px}
.photo{position:relative; border-radius: var(--radius); overflow:hidden; background:#f4f4f4}
.photo img{width:100%; height:100%; object-fit:cover}
.photo.tall{height: 340px}
.photo.small{height: 163px}
.photo .overlay-btn{
  position:absolute; right:14px; bottom:14px;
  background: rgba(255,255,255,.96);
  border:1px solid rgba(0,0,0,.10);
  border-radius:999px;
  padding:10px 12px;
  font-size:13px;
  font-weight:760;
  display:inline-flex; align-items:center; gap:8px;
}
.photo .overlay-btn svg{width:16px; height:16px; opacity:.85}

.chips{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:14px}
.chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
  color: rgba(77,70,58,.85);
  font-weight:650;
  font-size:13px;
}
.chip svg{width:16px; height:16px; opacity:.85}

/* Cards */
.cards{margin-top:22px; display:grid; grid-template-columns: repeat(3, 1fr); gap:22px}
.card{
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
  transition: transform .14s ease, box-shadow .14s ease;
}
.card:hover{transform: translateY(-2px); box-shadow: var(--shadow)}
.card-media{height: 190px; background:#f4f4f4}
.card-media img{width:100%; height:100%; object-fit:cover}
.card-body{padding:16px 16px 18px}
.card h3{margin:0 0 10px; font-size:16px}
.badges{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px}
.badge{
  display:inline-flex; align-items:center;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
  font-size:12px;
  color: rgba(77,70,58,.80);
  font-weight:650;
}
.card-actions{display:flex; gap:10px}
.btn-wide{flex:1}
.btn-outline{background:#fff; color: rgba(77,70,58,.9)}
.btn-outline:hover{box-shadow: var(--shadow-sm)}
.arrow{width:14px; height:14px; display:inline-block; transform: translateY(1px)}

/* Listing page */
.meta-row{display:flex; flex-wrap:wrap; gap:10px; color:var(--muted); font-size:14px; align-items:center; margin-top:10px}
.dot{width:4px; height:4px; border-radius:999px; background: rgba(77,70,58,.28)}
.two-col{margin-top:22px; display:grid; grid-template-columns: 1.55fr 0.95fr; gap:22px; align-items:start}
.panel{border:1px solid rgba(0,0,0,.10); border-radius: var(--radius); background:#fff; box-shadow: 0 1px 0 rgba(0,0,0,.02)}
.panel .pad{padding:18px}
.panel h3{margin:0 0 10px}
.panel ul{margin:0; padding-left:18px; color:var(--muted)}
.panel ul li{margin:6px 0}
.sticky{position:sticky; top:98px}
.hr{height:1px; background: rgba(0,0,0,.08); margin:14px 0}

/* FAQ */
.faq details{border:1px solid rgba(0,0,0,.10); border-radius:18px; padding:14px; background:#fff}
.faq details + details{margin-top:12px}
.faq summary{cursor:pointer; font-weight:760}
.faq p{margin:10px 0 0; color:var(--muted)}

/* Footer */
.footer{border-top:1px solid rgba(0,0,0,.08); padding:18px 0; color:var(--muted)}
.footer-row{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap}
.footer a{text-decoration:none; color:var(--muted)}
.footer a:hover{text-decoration:underline}

/* Responsive */
@media (max-width: 1100px){
  .cards{grid-template-columns: repeat(2, 1fr)}
  .two-col{grid-template-columns: 1fr}
  .sticky{position:static}
  .photo.tall{height: 300px}
}
@media (max-width: 820px){
  .h1{font-size:34px}
  .gallery-grid{grid-template-columns: 1fr}
  .gallery-right{grid-template-columns: 1fr 1fr}
  .photo.tall{height: 260px}
  .cards{grid-template-columns: 1fr}
  .nav{display:none}
}


/* === PATCH v7: Mobile header CTA + language + buttons === */
@media (max-width: 820px){
  .header-row{
    height:auto;
    padding:12px 0;
    flex-wrap:wrap;
    gap:10px;
	  padding-left: 24px;
    padding-right: 24px;
  }
  .brand{order:1}
  details.lang{order:2; margin-left:auto}
  .btn.btn-primary{
    order:3;
    width:100%;
    white-space:normal;
    text-align:center;
    padding:12px 14px;
    border-radius:16px;
    line-height:1.2;
  }
  /* keep dropdown menus within viewport */
  details.lang .menu{right:0; left:auto; max-width:calc(100vw - 32px)}
  details.dropdown .menu{left:0; max-width:calc(100vw - 32px)}
  /* card buttons stack nicely */
  .card-actions{flex-direction:column}
  .btn-wide{width:100%}
}

/* Remove non-functional overlay button */
.photo .overlay-btn{display:none !important;}

/* Pre-header phone link */
.pre-header a{color:#fff; text-decoration:underline; font-weight:760}
.pre-header .ph{display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:center}

/* === Lightbox (local, no libs) === */
.lightbox{
  position:fixed; inset:0;
  display:none; align-items:center; justify-content:center;
  background:rgba(0,0,0,.72);
  padding:20px;
  z-index:9999;
}
.lightbox.is-open{ display:flex; }
.lightbox__img{
  max-width:min(1100px, 96vw);
  max-height:86vh;
  border-radius:18px;
  background:#fff;
}
.lightbox__close{
  position:absolute; top:14px; right:14px;
  width:44px; height:44px;
  border:0; border-radius:999px;
  background:rgba(255,255,255,.9);
  font-size:28px; line-height:1;
  cursor:pointer;
}


/* === v11 UX fixes === */

/* Card images should always cover */
.card img,
.apartment-card img,
.listing-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* If image is inside a fixed media box */
.card .card-media,
.apartment-card .card-media,
.listing-card .card-media{
  overflow:hidden;
}

/* Home cards: make whole card clickable (keeps buttons usable) */
.card[data-href],
.apartment-card[data-href],
.listing-card[data-href]{
  cursor:pointer;
}

/* Promo topbar */
.topbar{
  background:#B88142;
  color:#fff;
  font-size:14px;
  line-height:1.3;
}
.topbar a{ color:#fff; text-decoration:underline; text-underline-offset:2px; }
.topbar .topbar-inner{
  max-width:1120px;
  margin:0 auto;
  padding:10px 16px;
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.topbar .topbar-phone{
  white-space:nowrap;
  opacity:.95;
}

/* Highlight box */
.highlight-box{
  background:#B88142;
  color:#fff;
  border-radius:18px;
  padding:18px 18px;
  margin-top:18px;
  box-shadow:0 10px 22px rgba(0,0,0,.12);
}
.highlight-box h3{
  margin:0 0 8px 0;
  font-size:18px;
  line-height:1.25;
}
.highlight-box p{
  margin:0;
  opacity:.98;
}
.highlight-box a{ color:#fff; text-decoration:underline; text-underline-offset:2px; }

/* Mobile: ensure header CTA doesn't squeeze language */
@media (max-width: 820px){
  .topbar .topbar-inner{ padding:10px 12px; }
  .header-row{ flex-wrap:wrap !important; height:auto !important; }
  .header-cta{ width:100% !important; }
}

/* === v12 sticky topbar + nav === */
.sitebar{
  position: sticky;
  top: 0;
  z-index: 9990;
  background: #fff;
}
.topbar{
  background:#B88142;
  color:#fff;
  font-size:14px;
}
.topbar-inner{
  max-width:1120px;
  margin:0 auto;
  padding:10px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.topbar a{
  color:#fff;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.topbar-phone{ white-space: nowrap; }
body{ scroll-padding-top: 120px; }

.highlight-box{
  background:#B88142;
  color:#fff;
  border-radius:18px;
  padding:18px;
  margin-top:16px;
}
.highlight-box a{
  color:#fff;
  text-decoration: underline;
  text-underline-offset:2px;
}

@media (max-width: 720px){
  body{ scroll-padding-top: 140px; }
  .topbar-inner{ font-size:12px; }
}
