/* ============================================================
   Foushee Properties — shared components
   Loaded after each page's own <style>. Uses the same tokens.
   ============================================================ */

/* ---------- nav: current page ---------- */
.mh-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--mark)}
.masthead.light .mh-nav a[aria-current="page"]{color:#fff;border-bottom-color:#fff}

/* ---------- status badges (one system, everywhere) ---------- */
.badge{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px 2px;border:1px solid currentColor;line-height:1.5;white-space:nowrap}
.badge.available{color:var(--mark)}
.badge.pending{color:#8A6A1F}
.badge.sold{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.badge.soon{color:var(--ink-2)}

/* ---------- film: poster + play, no autoplay ---------- */
.film{position:relative;background:var(--ink);cursor:pointer}
.film video{display:block;width:100%;height:auto}
.film .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border:0;background:rgba(22,21,15,.18);cursor:pointer;transition:background .3s}
.film .play:hover{background:rgba(22,21,15,.3)}
.film .play span{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--paper);border:1px solid rgba(242,240,233,.7);padding:14px 26px 13px;background:rgba(22,21,15,.35);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.film .play svg{width:12px;height:14px;fill:currentColor}
.film.playing .play{display:none}

/* ---------- gallery: zoom affordance ---------- */
.gal figure .ph{cursor:zoom-in}
.gal-count{display:flex;justify-content:space-between;gap:16px;margin:0 0 12px}
.gal-count button{background:none;border:0;border-bottom:1px solid var(--rule-2);font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);cursor:pointer;padding:0 0 3px}
.gal-count button:hover{border-bottom-color:var(--mark);color:var(--mark)}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:200;background:rgba(14,13,10,.96);display:none;flex-direction:column;touch-action:pan-y}
.lb.on{display:flex}
.lb-top{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;color:rgba(242,240,233,.8);font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}
.lb-top button{background:none;border:0;color:var(--paper);font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;padding:8px 0 8px 18px}
.lb-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 72px}
.lb-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none;transition:opacity .25s}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:1px solid rgba(242,240,233,.35);background:rgba(22,21,15,.4);color:var(--paper);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .3s,background .3s}
.lb-nav:hover{border-color:var(--paper);background:rgba(22,21,15,.7)}
.lb-prev{left:12px}.lb-next{right:12px}
.lb-cap{padding:14px 22px 22px;text-align:center;color:rgba(242,240,233,.72);font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;min-height:48px}
@media(max-width:760px){
  .lb-stage{padding:0}
  .lb-nav{display:none}
}

/* ---------- mobile call bar ---------- */
.callbar{display:none}
@media(max-width:760px){
  .callbar{display:grid;grid-template-columns:1fr 1fr 1.4fr;position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--ink);border-top:1px solid rgba(242,240,233,.14);padding-bottom:env(safe-area-inset-bottom);transform:translateY(0);transition:transform .35s ease}
  .callbar.hide{transform:translateY(110%)}
  .callbar a{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px 6px 14px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);border-right:1px solid rgba(242,240,233,.14)}
  .callbar a:last-child{border-right:0;background:var(--mark)}
  .callbar svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6}
  body.has-callbar{padding-bottom:calc(50px + env(safe-area-inset-bottom))}
}

/* ---------- payment calculator (property pages) ---------- */
.pcalc{margin-top:26px;border-top:1px solid var(--ink)}
.pcalc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule)}
.pcalc summary::-webkit-details-marker{display:none}
.pcalc summary .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.pcalc summary .v{font-family:var(--mono);font-size:12px;color:var(--ink)}
.pcalc summary .v::after{content:" +";color:var(--mark)}
.pcalc[open] summary .v::after{content:" –"}
.pcalc .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--rule)}
.pcalc label{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.pcalc input,.pcalc select{width:120px;text-align:right;background:none;border:0;outline:none;font-family:var(--mono);font-size:12px;color:var(--ink);padding:2px 0;-webkit-appearance:none;appearance:none}
.pcalc .out{padding:14px 0 4px}
.pcalc .out b{display:block;font-family:var(--serif);font-weight:400;font-size:34px;line-height:1.05;letter-spacing:-.02em;margin:4px 0}
.pcalc .fine{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--ink-3);line-height:1.7}

/* ---------- reviews ---------- */
.reviews[hidden]{display:none}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 44px;margin-top:30px}
.rev{border-top:1px solid var(--ink);padding:22px 0 10px}
.rev q{display:block;font-family:var(--serif);font-size:clamp(20px,2vw,26px);line-height:1.25;letter-spacing:-.01em;quotes:"\201C" "\201D"}
.rev .who{margin-top:16px}
@media(max-width:900px){.rev-grid{grid-template-columns:1fr;gap:28px}}

/* ---------- spec aside: never taller than the screen on desktop ---------- */
@media(min-width:1081px){
  .spec{max-height:calc(100vh - 96px);overflow-y:auto;scrollbar-width:thin;padding-right:4px}
}
