/* KUBO shared: mobile menu, mobile action bar, footer, mobile house cards */
:root{--k-bg:#F7F4EF;--k-ink:#1C1B18;--k-muted:#6E6A62;--k-line:#DDD6CA;--k-accent:#8A6B4D;--k-accent-l:#A88A6A;--k-dark:#141310;--k-ease:cubic-bezier(.22,1,.36,1)}

/* ---------- Menu button (mobile only) ---------- */
.kmenu-btn{display:none;width:44px;height:44px;margin-left:.6rem;border:0;background:none;color:var(--k-ink);cursor:pointer;align-items:center;justify-content:center;position:relative;z-index:202;-webkit-tap-highlight-color:transparent}
.kmenu-btn span{position:absolute;left:11px;right:11px;height:1.5px;background:currentColor;transition:transform .45s var(--k-ease),opacity .3s}
.kmenu-btn span:nth-child(1){top:16px}.kmenu-btn span:nth-child(2){top:21.5px}.kmenu-btn span:nth-child(3){top:27px}
nav:not(.scrolled) .kmenu-btn{color:#fff}
body.kmenu-open .kmenu-btn{color:#F7F4EF}
body.kmenu-open .kmenu-btn span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
body.kmenu-open .kmenu-btn span:nth-child(2){opacity:0}
body.kmenu-open .kmenu-btn span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
@media(max-width:820px){
  .kmenu-btn{display:inline-flex}
  nav .nav-links{gap:0!important}
  nav .nav-links .btn{display:none!important}
  body.kmenu-open nav{z-index:200!important;background:var(--k-dark)!important;border-color:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  body.kmenu-open nav::before{display:none!important}
  body.kmenu-open nav .logo{color:#F7F4EF!important}
}

/* ---------- Menu overlay ---------- */
.kmenu{position:fixed;inset:0;z-index:150;background:var(--k-dark);color:#F7F4EF;display:flex;flex-direction:column;padding:6.5rem 1.75rem 2rem;opacity:0;visibility:hidden;transition:opacity .45s var(--k-ease),visibility .45s;overflow-y:auto}
body.kmenu-open{overflow:hidden}
body.kmenu-open .kmenu{opacity:1;visibility:visible}
.kmenu-kicker{font-family:'Inter',sans-serif;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--k-accent-l);margin-bottom:1.2rem}
.kmenu ul{list-style:none;margin:0;padding:0}
.kmenu li{border-bottom:1px solid rgba(247,244,239,.1);transform:translateY(16px);opacity:0;transition:transform .6s var(--k-ease),opacity .6s var(--k-ease)}
body.kmenu-open .kmenu li{transform:none;opacity:1}
.kmenu li a{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;font-family:'Fraunces',serif;font-size:1.65rem;font-weight:400;color:#F7F4EF;text-decoration:none}
.kmenu li a::after{content:"→";font-family:'Inter',sans-serif;font-size:1rem;color:var(--k-accent-l);transition:transform .3s}
.kmenu li a:active::after{transform:translateX(4px)}
.kmenu-cta{display:block;margin-top:2rem;padding:1.05rem;text-align:center;background:var(--k-accent);color:#fff!important;font-family:'Inter',sans-serif;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;border-radius:100px;text-decoration:none}
.kmenu-contact{margin-top:auto;padding-top:2rem;font-family:'Inter',sans-serif;font-size:.9rem;line-height:2;color:rgba(247,244,239,.6)}
.kmenu-contact a{color:#F7F4EF;text-decoration:none}

/* ---------- Mobile action bar ---------- */
.kbar{display:none}
@media(max-width:820px){
  .kbar{display:flex;position:fixed;left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));z-index:120;gap:.5rem;padding:.45rem;background:rgba(20,19,16,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:100px;box-shadow:0 10px 30px rgba(0,0,0,.25);transform:translateY(140%);transition:transform .5s var(--k-ease)}
  .kbar.show{transform:none}
  body.kmenu-open .kbar{transform:translateY(140%)}
  .kbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem .5rem;border-radius:100px;font-family:'Inter',sans-serif;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:#F7F4EF}
  .kbar a.primary{background:var(--k-accent);color:#fff}
  .kbar svg{width:15px;height:15px}
}

/* ---------- Mobile house cards: swipe ---------- */
@media(max-width:700px){
  .houses-grid{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:1rem!important;padding:0 0 1.2rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .houses-grid::-webkit-scrollbar{display:none}
  .houses-grid>.house-card{flex:0 0 84%;scroll-snap-align:start;opacity:1!important;transform:none!important}
  .kswipe{display:flex;align-items:center;justify-content:space-between;margin:.4rem 0 0;font-family:'Inter',sans-serif;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--k-muted)}
  .kdots{display:flex;gap:6px}
  .kdots i{width:6px;height:6px;border-radius:50%;background:var(--k-line);transition:background .3s,width .3s}
  .kdots i.on{background:var(--k-accent);width:18px;border-radius:3px}
}
@media(min-width:701px){.kswipe{display:none}}

/* ---------- Footer ---------- */
footer.kf{display:block!important;background:var(--k-dark)!important;color:rgba(247,244,239,.6)!important;padding:5rem clamp(1.5rem,5vw,4rem) 2rem!important;font-family:'Inter',sans-serif;font-size:.9rem;line-height:1.9;text-align:left!important}
.kf-in{max-width:1300px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:3rem}
.kf-logo{font-family:'Fraunces',serif;font-size:1.5rem;letter-spacing:.35em;color:#F7F4EF!important;text-decoration:none}
.kf-logo span{color:var(--k-accent-l)}
.kf-brand p{margin-top:1rem;max-width:30ch;color:rgba(247,244,239,.6)}
.kf h4{font-family:'Inter',sans-serif;font-weight:400;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--k-accent-l);margin:0 0 1rem}
.kf ul{list-style:none;margin:0;padding:0}
.kf a{color:rgba(247,244,239,.85);text-decoration:none;transition:color .3s}
.kf a:hover{color:#fff}
.kf-bottom{max-width:1300px;margin:4rem auto 0;padding-top:1.5rem;border-top:1px solid rgba(247,244,239,.12);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:rgba(247,244,239,.45)}
@media(max-width:900px){.kf-in{grid-template-columns:1fr 1fr}.kf-brand{grid-column:1/-1}}
@media(max-width:820px){footer.kf{padding-bottom:6.5rem!important}}
@media(max-width:480px){.kf-in{grid-template-columns:1fr;gap:2.2rem}}
