:root{
  --bg:#ffffff; --ink:#0f172a; --muted:#6b7280; --panel:#F1E6DE; --divider:#e5e7eb;
  --brand:#0b0b0b; --accent:#111827; --card:#fbfbfb;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;line-height:1.65}
img{max-width:100%;height:auto;display:block}

/* ---------- Header (desktop + mobile) ---------- */
/* ---- Mobile scroll stability ---- */
html, body { overflow-x: hidden; }
body { overscroll-behavior-y: contain; }

/* Reserve space so injected footer doesn't shift layout */
#site-header { min-height: 64px; }                 /* adjust if your header is taller */
#site-footer { min-height: clamp(240px, 26vh, 340px); }  /* match your real footer height */

/* Optional: avoid map causing jank when swiping near bottom */
.map-frame { -webkit-transform: translateZ(0); transform: translateZ(0); }


.nav-wrap{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.95);backdrop-filter:saturate(1.1) blur(8px);border-bottom:1px solid var(--divider)}
.nav{width:min(1100px,94vw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:inherit}
.brand .name{font-family:"Playfair Display",serif;font-weight:800;font-size:clamp(1.2rem,2.2vw,1.6rem)}
.brand .kicker{font-size:.72rem;color:var(--muted);font-weight:800;letter-spacing:.22em;text-transform:uppercase}

.hamburger{display:none;border:1px solid var(--divider);border-radius:10px;background:#fff;padding:8px;cursor:pointer}
.hamburger span{display:block;width:22px;height:2px;background:#111;margin:4px 0}

/* desktop nav */
.links{display:flex;gap:6px;align-items:center;margin:0;padding:0;list-style:none}
.links>li{position:relative}
.links a{color:var(--brand);text-decoration:none;font-weight:800;padding:10px 12px;border-radius:10px;position:relative;text-transform:uppercase;letter-spacing:.14em;font-size:.85rem;display:inline-block}
.links a.active::after,.links a:hover::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:2px;background:var(--accent)}

.has-sub{position:relative;display:inline-flex;align-items:center}
.caret{margin-left:4px;border:0;background:transparent;cursor:pointer;line-height:1;padding:8px;display:inline-flex;align-items:center;justify-content:center}
.caret::after{content:"▾";font-size:.9rem}
.sub{
  position:absolute; top:100%; left:0; min-width:220px;
  background:#fff; border:1px solid var(--divider); border-radius:10px;
  box-shadow:0 12px 30px rgba(2,6,23,.12); padding:8px; margin-top:0; display:none; z-index:50;
}
.sub li{list-style:none}
.sub a{display:block;padding:10px 12px;border-radius:8px;letter-spacing:.08em;text-transform:none;font-weight:700}
.sub a:hover{background:#f8fafc}

/* hover (desktop), click (both), focus (keyboard) */
.has-sub.open > .sub{display:block}
@media (hover:hover) and (pointer:fine){ .has-sub:hover > .sub{display:block} }
.has-sub:focus-within > .sub{display:block}

/* ---------- Footer ---------- */
.site-footer{margin:56px 0 28px}
.foot{
  width:min(1100px,94vw);margin:0 auto;
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
  padding-top:16px;border-top:1px solid var(--divider);text-align:center
}
.foot h4{margin:0 0 8px;font-size:.9rem;color:var(--muted);font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.foot .cell,.foot .email{font-weight:700}
.foot .follow{display:flex;gap:10px;justify-content:center}
.foot .follow a{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--divider)}
.foot .follow img{width:18px;height:18px}

/* ---------- Mobile adjustments ---------- */
@media (max-width:980px){
  .nav{padding:12px 0}
  .hamburger{display:inline-block}
  .links{
    position:fixed; inset:auto 0 0 0; /* bottom sheet on phones */
    background:#fff; border-top:1px solid var(--divider);
    display:none; flex-direction:column; gap:0; padding:8px 12px;
    box-shadow:0 -10px 30px rgba(2,6,23,.08)
  }
  .links.show{display:flex}
  .links a{padding:14px 12px;font-size:.95rem;letter-spacing:.12em}
  .has-sub{width:100%}
  .has-sub > .sub{position:static;box-shadow:none;border:0;padding:0;margin:0}
  .has-sub > .sub a{padding:12px;border-radius:8px}

  .site-footer .foot{grid-template-columns:1fr;gap:12px}
}
