  :root{
    color-scheme:dark;
    --fs:1.2;
    --char:#24211d; --char2:#1d1a17; --paper:#faf9f7; --card:#ffffff;
    --ink:#26231f; --muted:#6f6a61; --line:#e5e1da; --line-d:rgba(216,210,198,.22);
    --champ:#d8d2c6; --champ-hi:#f1ece1; --gold:#b08d4f; --gold-d:#c6a86a;
    --disp:"Jost","Gill Sans","Gill Sans MT",Calibri,sans-serif;
    --head:'Cormorant Garamond',Georgia,serif;
    --serif:"Playfair Display",Didot,"Bodoni 72",Georgia,serif;
    --body:'Cormorant Garamond',Georgia,serif;
  }
  html{ scroll-behavior:smooth; }
  body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--body);
        font-variant-numeric:lining-nums;
        -webkit-font-smoothing:antialiased; font-size:calc((16px)*var(--fs,1)); line-height:1.65; }

  .label{ font-family:var(--head); font-weight:400; font-size:calc((11px)*var(--fs,1)); letter-spacing:.32em;
          text-transform:uppercase; color:var(--gold); }
  h1,h2{ font-family:var(--head); font-weight:300; letter-spacing:.01em; text-wrap:balance; }
  h2{ font-size:calc((clamp(28px,3.4vw,38px))*var(--fs,1)); line-height:1.2; margin:14px 0 0; }

  .wrap{ max-width:1160px; margin:0 auto; padding:0 28px; }

  /* header */
  header{ position:fixed; inset:0 0 auto; z-index:10; background:rgba(29,26,23,.82);
          -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
          border-bottom:1px solid rgba(216,210,198,.12); }
  .hrow{ display:flex; align-items:center; justify-content:space-between; height:64px; }
  .wm{ font-family:var(--disp); font-weight:300; font-size:15px; letter-spacing:.42em;
       text-transform:uppercase; color:var(--champ); text-decoration:none; white-space:nowrap; }
  nav{ display:flex; gap:26px; }
  nav a{ font-family:var(--disp); font-weight:300; font-size:11px; letter-spacing:.18em;
         text-transform:uppercase; color:rgba(216,210,198,.72); text-decoration:none; }
  nav a:hover,nav a:focus-visible{ color:var(--champ-hi); }
  nav a.act{ color:var(--champ-hi); }
  nav{ margin-left:auto; }
  .langs-top{ display:flex; gap:14px; margin-left:30px; }
  .langs-top a{ font-family:var(--disp); font-weight:300; font-size:11px; letter-spacing:.18em;
                text-transform:uppercase; color:rgba(216,210,198,.5); text-decoration:none; }
  .langs-top a.on{ color:var(--champ-hi); border-bottom:1px solid var(--gold-d); padding-bottom:2px; }
  .menu-btn{ display:none; align-items:center; justify-content:center; width:44px; height:44px;
             margin:0 -10px 0 16px; padding:0; background:none; border:0; cursor:pointer;
             color:var(--champ); }
  .menu-btn:hover,.menu-btn:focus-visible{ color:var(--champ-hi); }
  .menu-btn svg{ width:22px; height:22px; }
  .menu-btn svg[hidden]{ display:none; }
  .mnav{ display:none; border-top:1px solid rgba(216,210,198,.1); }
  .mnav nav{ display:flex; flex-direction:column; gap:0; margin:0; padding:6px 0; }
  .mnav nav a{ padding:16px 2px; font-size:12px; letter-spacing:.22em; }
  .mnav nav a + a{ border-top:1px solid rgba(216,210,198,.08); }
  .mnav-foot{ display:flex; align-items:center; justify-content:space-between;
              padding:16px 2px 22px; border-top:1px solid rgba(216,210,198,.08); }
  .mnav .langs-top{ margin-left:0; }
  @media (max-width:900px){
    .hrow nav{ display:none; }
    .hrow .langs-top{ display:none; }
    .menu-btn{ display:flex; margin-left:auto; }
    .mnav.open{ display:block; }
  }

  /* hero */
  .hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end;
         background:var(--char); isolation:isolate; }
  .hero img.bg,.hero video.bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
  .hero video.bg{ opacity:0; transition:opacity 1s ease; }
  .hero video.bg.on{ opacity:1; }
  .hero .veil{ position:absolute; inset:0; z-index:-1;
    background:linear-gradient(75deg,rgba(29,26,23,.78) 0%,rgba(29,26,23,.45) 38%,rgba(29,26,23,.06) 68%),
               linear-gradient(0deg,rgba(29,26,23,.72) 0%,rgba(29,26,23,0) 42%); }
  .hcontent{ padding:0 0 11vh; max-width:640px; }
  .hcontent .label{ color:var(--gold-d); }
  h1{ font-size:calc((clamp(34px,5vw,58px))*var(--fs,1)); line-height:1.12; color:var(--champ-hi); margin:18px 0 0; }
  .hsub{ color:rgba(232,226,214,.82); font-size:calc((17px)*var(--fs,1)); max-width:46ch; margin:20px 0 34px; }
  .ctas{ display:flex; gap:14px; flex-wrap:wrap; }
  .btn{ font-family:var(--head); font-weight:400; font-size:calc((12px)*var(--fs,1)); letter-spacing:.22em;
        text-transform:uppercase; text-decoration:none; padding:15px 26px; display:inline-block; }
  .btn.primary{ background:var(--champ); color:var(--char2); }
  .btn.primary:hover{ background:var(--champ-hi); }
  .btn.ghost{ border:1px solid rgba(216,210,198,.55); color:var(--champ); }
  .btn.ghost:hover{ border-color:var(--champ-hi); color:var(--champ-hi); }
  .scrollcue{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
              width:1px; height:44px; background:linear-gradient(rgba(216,210,198,0),rgba(216,210,198,.75)); }

  /* sections */
  section{ padding:96px 0; }
  .split{ display:grid; grid-template-columns:5fr 7fr; gap:56px; align-items:start; }
  @media (max-width:820px){ .split{ grid-template-columns:1fr; gap:24px; } }
  .lead{ font-size:calc((17.5px)*var(--fs,1)); color:#43403a; max-width:58ch; }
  .lead + .lead{ margin-top:18px; }
  .more{ font-family:var(--head); font-size:calc((12px)*var(--fs,1)); letter-spacing:.2em; text-transform:uppercase;
         color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold);
         padding-bottom:5px; display:inline-block; margin-top:26px; }
  .more:hover{ color:var(--gold); }

  /* philosophy */
  .phil{ border-top:1px solid var(--line); }
  .pgrid{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:0; margin-top:56px; }
  .pgrid .p{ padding:8px 36px 0; border-left:1px solid var(--line); }
  .pgrid .p:first-child{ padding-left:0; border-left:0; }
  .pnum{ font-family:var(--serif); font-size:calc((15px)*var(--fs,1)); color:var(--gold); letter-spacing:.1em; }
  .p h3{ font-family:var(--head); font-weight:400; font-size:calc((19px)*var(--fs,1)); letter-spacing:.04em; margin:10px 0 10px; }
  .p p{ color:var(--muted); font-size:calc((15px)*var(--fs,1)); }
  @media (max-width:820px){ .pgrid{ grid-template-columns:1fr; gap:32px; }
    .pgrid .p{ border-left:0; padding:0; } }

  /* counters */
  .stats{ background:var(--char); color:var(--champ); }
  .sgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px; text-align:center; }
  @media (max-width:820px){ .sgrid{ grid-template-columns:1fr 1fr; gap:44px 20px; } }
  .snum{ font-family:var(--serif); font-size:calc((clamp(44px,5vw,64px))*var(--fs,1)); line-height:1; color:var(--gold-d);
         font-variant-numeric:tabular-nums lining-nums; }
  .snum sup{ font-size:calc((.45em)*var(--fs,1)); vertical-align:.7em; }
  .slab{ font-family:var(--head); font-weight:300; font-size:calc((11px)*var(--fs,1)); letter-spacing:.28em;
         text-transform:uppercase; color:rgba(216,210,198,.66); margin-top:14px; }
  .sfoot{ text-align:center; color:rgba(216,210,198,.34); font-size:calc((12px)*var(--fs,1)); margin-top:52px; }

  /* services */
  .cards{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; margin-top:52px; }
  @media (max-width:820px){ .cards{ grid-template-columns:1fr; } }
  .card{ border:1px solid var(--line); background:var(--card); padding:38px 32px 30px;
         text-decoration:none; color:inherit; display:flex; flex-direction:column; min-height:250px;
         transition:border-color .25s; }
  .card:hover{ border-color:#b9b2a5; }
  .card h3{ font-family:var(--head); font-weight:300; font-size:calc((24px)*var(--fs,1)); margin:0 0 12px; }
  .card p{ color:var(--muted); font-size:calc((15px)*var(--fs,1)); flex:1; }
  .card .go{ font-family:var(--head); font-size:calc((11.5px)*var(--fs,1)); letter-spacing:.22em; text-transform:uppercase;
             color:var(--gold); margin-top:24px; }
  .card:hover .go{ color:var(--ink); }
  .reno{ margin-top:26px; color:var(--muted); font-size:calc((15px)*var(--fs,1)); }
  .reno a{ color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); }

  /* projects */
  .proj{ background:#f3f1ec; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .sechead{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; }
  .pjgrid{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; margin-top:52px; }
  @media (max-width:820px){ .pjgrid{ grid-template-columns:1fr; } }
  .pj{ background:var(--card); border:1px solid var(--line); text-decoration:none; color:inherit;
       display:block; transition:border-color .25s; }
  .pj[hidden]{ display:none; } /* filter: author .pj{display:block} would otherwise beat UA [hidden] */
  .pj:hover{ border-color:#b9b2a5; }
  .pj .im{ aspect-ratio:16/9; overflow:hidden; }
  .pj img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
  .pj:hover img{ transform:scale(1.035); }
  .pj .meta{ padding:20px 22px 22px; }
  .pj .tag{ font-family:var(--head); font-size:calc((10.5px)*var(--fs,1)); letter-spacing:.26em; text-transform:uppercase;
            color:var(--gold); }
  .pj h3{ font-family:var(--head); font-weight:400; font-size:calc((19px)*var(--fs,1)); margin:8px 0 4px; }
  .pj .loc{ color:var(--muted); font-size:calc((13.5px)*var(--fs,1)); }

  /* cta band */
  .ctaband{ background:var(--char2); color:var(--champ); text-align:center; }
  .ctaband h2{ color:var(--champ-hi); }
  .ctaband .sub{ color:rgba(216,210,198,.7); margin:16px auto 36px; max-width:46ch; }
  .ctaband .tel{ display:block; margin-top:26px; font-family:var(--head); font-weight:300;
                 letter-spacing:.14em; font-size:calc((19px)*var(--fs,1)); color:var(--gold-d); text-decoration:none; }

  /* footer */
  footer{ background:var(--char); color:rgba(216,210,198,.6); padding:64px 0 40px;
          border-top:1px solid var(--line-d); }
  .frow{ display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; }
  .fcol .wm{ font-size:14px; }
  .fcol p{ font-size:calc((13.5px)*var(--fs,1)); line-height:2; margin-top:14px; }
  .fcol a{ color:rgba(216,210,198,.6); text-decoration:none; }
  .fcol a:hover{ color:var(--champ-hi); }
  .fnav{ display:flex; gap:48px; }
  .fnav ul{ list-style:none; padding:0; margin:0; }
  .fnav li{ margin-bottom:10px; }
  .fnav a{ font-family:var(--disp); font-weight:300; font-size:11px; letter-spacing:.18em;
           text-transform:uppercase; color:rgba(216,210,198,.6); text-decoration:none; }
  .fbot{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
         border-top:1px solid var(--line-d); margin-top:48px; padding-top:24px;
         font-size:calc((12px)*var(--fs,1)); color:rgba(216,210,198,.38); }
  .langs a{ margin-left:14px; letter-spacing:.14em; color:rgba(216,210,198,.5); text-decoration:none; }
  .langs a.on{ color:var(--champ-hi); }
  .fcredit a{ color:rgba(216,210,198,.6); text-decoration:none; border-bottom:1px solid var(--line-d); transition:color .2s, border-color .2s; }
  .fcredit a:hover{ color:var(--champ-hi); border-color:var(--gold-d); }

  /* reveal — hidden state only when JS is live (.anim on root) */
  .anim .rv{ opacity:0; transform:translateY(14px); transition:opacity .7s ease,transform .7s ease; }
  .anim .rv.in{ opacity:1; transform:none; }
  @media (prefers-reduced-motion:reduce){
    html{ scroll-behavior:auto; }
    .rv{ opacity:1; transform:none; transition:none; }
    .pj img{ transition:none; }
  }
  :root{ --c-champ:var(--champ); --c-champ-hi:var(--champ-hi); --c-gold:var(--gold); --c-gold-d:var(--gold-d);
         --f-disp:var(--disp); --f-serif:var(--serif); --f-head:var(--head); --f-tenor:'Tenor Sans',var(--disp); }
  .wm.has-logo{ letter-spacing:normal; text-transform:none; font-weight:normal; line-height:1;
                display:inline-flex; align-items:center; }
  header .wm svg{ height:15.3px; display:block; }
  .wm.has-logo svg{ height:19.5px; width:auto; display:block; }
.lg-m-jm-eq{display:inline-flex;align-items:center;gap:.7em;color:var(--c-champ);line-height:1;}
.lg-m-jm-eq .jm-mono{display:inline-flex;flex-direction:column;align-items:center;}
.lg-m-jm-eq .jm-bar{width:1.26em;height:.07em;background:var(--c-gold);margin-bottom:.14em;}
.lg-m-jm-eq .jm-l{font-family:var(--f-serif);font-weight:400;font-size:.92em;letter-spacing:.04em;margin-right:-.04em;color:var(--c-champ-hi);}
.lg-m-jm-eq .jm-rule{width:1px;height:1.05em;background:currentColor;opacity:.4;}
.lg-m-jm-eq .jm-tx{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.42em;}
.lg-m-jm-eq .jm-nm{font-family:var(--f-disp);font-weight:300;font-size:.92em;letter-spacing:.38em;margin-right:-.38em;white-space:nowrap;}
.lg-m-jm-eq .jm-sub{font-family:var(--f-disp);font-weight:300;font-size:.43em;letter-spacing:.34em;margin-right:-.34em;opacity:.75;white-space:nowrap;}
/* ===== quiet-luxe additions: subpages, projects grid, filters ===== */
.pj>a{ display:block; color:inherit; text-decoration:none; } /* cards are now <article class="pj"> wrapping an <a> */
.page{ padding-top:112px; padding-bottom:40px; }
.page .wrap{ max-width:1180px; }
.page h1{ color:var(--ink); }
.crumb{ font-family:var(--head); font-size:calc(12px*var(--fs,1)); letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.crumb a{ color:inherit; text-decoration:none; }
.crumb a:hover{ color:var(--gold); }
.fbar{ margin:34px 0 8px; display:flex; flex-direction:column; gap:10px; }
.fgroup{ display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 10px; }
.fgroup .flab{ font-family:var(--head); font-size:calc(11px*var(--fs,1)); letter-spacing:.22em; text-transform:uppercase; color:var(--muted); min-width:86px; }
.fbtn{ font-family:var(--head); font-size:calc(11.5px*var(--fs,1)); letter-spacing:.18em; text-transform:uppercase;
       background:none; border:1px solid var(--line); color:var(--ink); padding:7px 14px; border-radius:999px; cursor:pointer;
       transition:color .25s,border-color .25s; }
.fbtn:hover{ border-color:var(--gold); color:var(--gold); }
.fbtn.on{ border-color:var(--gold); color:var(--gold); }
/* mobile filter chrome — hidden everywhere by default; Task-3 media query + html.js enable it ≤820px */
.fmob,.fdim,.fhandle,.fshead,.fapply{ display:none; }
.pempty{ margin:44px 0; color:var(--muted); font-style:italic; }
.pj .badge{ font-family:var(--head); font-size:calc(10.5px*var(--fs,1)); letter-spacing:.2em; text-transform:uppercase;
            color:var(--gold); border:1px solid currentColor; border-radius:999px; padding:3px 9px; margin-left:8px; }
.pj .badge.sold{ color:var(--muted); border-color:transparent; padding:3px 0; margin-left:10px; }
/* for-sale emphasis — the sale card leads the grid as a full-width feature card */
.pj .badge.sale{ background:var(--gold); border-color:var(--gold); color:#fff; }
.pj[data-status="sale"]{ border-color:var(--gold); }
.pj[data-status="sale"]:hover{ border-color:var(--gold-d); }
@media (min-width:821px){
  .pjgrid .pj[data-status="sale"]{ grid-column:1/-1; }
  .pj[data-status="sale"]>a{ display:grid; grid-template-columns:1.55fr 1fr; align-items:stretch; }
  .pj[data-status="sale"] .im{ aspect-ratio:auto; height:100%; min-height:340px; }
  .pj[data-status="sale"] .meta{ align-self:center; padding:40px 44px; }
  .pj[data-status="sale"] h3{ font-size:calc(28px*var(--fs,1)); font-weight:300; margin:12px 0 8px; }
}
.pj .book{ display:inline-block; margin-top:10px; font-family:var(--head); font-size:calc(11.5px*var(--fs,1));
           letter-spacing:.2em; text-transform:uppercase; color:var(--gold); text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:2px; }
/* project detail — reserve CTA */
.pcta-row{ display:flex; align-items:center; flex-wrap:wrap; gap:16px 26px; margin:24px 0 4px; }
.pcta{ display:inline-flex; align-items:center; gap:.7em; font-family:var(--head); font-weight:500;
       font-size:calc(13px*var(--fs,1)); letter-spacing:.22em; text-transform:uppercase; text-decoration:none;
       color:var(--champ-hi); background:var(--char2); border:1px solid var(--char2); border-radius:2px;
       padding:15px 30px; border-bottom:1px solid var(--char2); /* override .pj .book border rule if inherited */
       transition:background .28s ease,color .28s ease,border-color .28s ease,box-shadow .28s ease,transform .28s ease; }
.pcta:hover,.pcta:focus-visible{ background:var(--gold); border-color:var(--gold); color:#fff;
       box-shadow:0 12px 28px rgba(176,141,79,.30); transform:translateY(-1px); }
.pcta:focus-visible{ outline:2px solid var(--gold-d); outline-offset:3px; }
.pcta-ic{ width:1.05em; height:1.05em; flex:0 0 auto; }
.pmeta{ display:flex; flex-wrap:wrap; gap:6px 18px; margin:14px 0 6px; font-family:var(--head);
        font-size:calc(12px*var(--fs,1)); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.pgal{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:36px; }
@media (max-width:820px){ .pgal{ grid-template-columns:1fr 1fr; } }
.pgal a{ display:block; aspect-ratio:4/3; overflow:hidden; border-radius:4px; background:var(--champ-hi); }
.pgal img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.pgal a{ cursor:zoom-in; }
.pgal a:hover img{ transform:scale(1.04); }

/* ---- gallery lightbox (progressive enhancement over .pgal) ---- */
.lightbox{ position:fixed; inset:0; z-index:200; display:none;
  align-items:center; justify-content:center; padding:24px;
  background:rgba(29,26,23,.94); }
.lightbox.is-open{ display:flex; }
.lightbox img{ max-width:min(92vw,1500px); max-height:86vh; width:auto; height:auto;
  border-radius:4px; box-shadow:0 30px 80px rgba(0,0,0,.55); }
.lightbox__btn{ position:absolute; display:flex; align-items:center; justify-content:center;
  width:46px; height:46px; border-radius:999px; cursor:pointer; padding:0;
  color:var(--paper); background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.28);
  font-family:var(--disp); font-weight:300; font-size:24px; line-height:1;
  transition:background .25s ease, border-color .25s ease, color .25s ease; }
.lightbox__btn:hover{ background:var(--gold); border-color:var(--gold-d); color:#fff; }
.lightbox__close{ top:18px; right:18px; }
.lightbox__prev{ left:16px; top:50%; transform:translateY(-50%); }
.lightbox__next{ right:16px; top:50%; transform:translateY(-50%); }
.lightbox__count{ position:absolute; bottom:16px; left:50%; transform:translateX(-50%);
  color:rgba(250,249,247,.72); font-family:var(--disp); font-weight:300;
  font-size:11px; letter-spacing:.22em; }
@media (max-width:600px){
  .lightbox{ padding:12px; }
  .lightbox__prev{ left:8px; } .lightbox__next{ right:8px; }
  .lightbox__btn{ width:40px; height:40px; font-size:21px; }
}
.pbody{ max-width:760px; font-size:calc(17px*var(--fs,1)); line-height:1.75; color:var(--ink); }

/* ---- project detail — plans & info below the gallery (.pinfo) ---- */
.pinfo{ margin-top:26px; }
.pi-sec{ border-top:1px solid var(--line); padding-top:46px; margin-top:46px; }
.pi-sec h2{ font-size:calc(clamp(24px,2.6vw,30px)*var(--fs,1)); margin:0; }
.pi-about p{ max-width:760px; font-size:calc(17px*var(--fs,1)); line-height:1.75; margin:16px 0 0; }
.pi-cols{ display:grid; grid-template-columns:1fr 1fr; gap:40px 56px; }
@media (max-width:860px){ .pi-cols{ grid-template-columns:1fr; } }
.pi-list{ list-style:none; margin:20px 0 0; padding:0; max-width:56ch; }
.pi-list li{ position:relative; padding:7px 0 7px 26px; font-size:calc(15.5px*var(--fs,1)); line-height:1.6; }
.pi-list li::before{ content:"—"; position:absolute; left:0; color:var(--gold); }
.pi-lead{ max-width:760px; margin-top:16px; }
.pi-lead p{ font-size:calc(16.5px*var(--fs,1)); line-height:1.7; margin:10px 0 0; }
.pi-feats{ display:grid; grid-template-columns:repeat(4,1fr); gap:36px 30px; margin-top:38px; }
@media (max-width:1020px){ .pi-feats{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .pi-feats{ grid-template-columns:1fr; } }
.pi-feat{ border-left:1px solid var(--line); padding:6px 0 0 22px; }
.pi-feat h3{ font-family:var(--head); font-weight:400; font-size:calc(17.5px*var(--fs,1)); letter-spacing:.05em; margin:0 0 10px; }
.pi-feat p{ color:var(--muted); font-size:calc(14.5px*var(--fs,1)); line-height:1.7; margin:0; }
.pi-plan-link{ display:block; cursor:zoom-in; }
.pi-plan-img{ width:100%; height:auto; display:block; margin-top:26px; border-radius:4px; }
.pi-plans{ display:grid; grid-template-columns:1fr 1fr; gap:48px 44px; margin-top:28px; }
@media (max-width:900px){ .pi-plans{ grid-template-columns:1fr; } }
.pi-plan{ margin:0; }
.pi-plan img{ width:100%; height:auto; display:block; }
.pi-table{ width:100%; border-collapse:collapse; font-family:var(--head); font-size:calc(15px*var(--fs,1)); margin-top:20px; }
.pi-table caption{ caption-side:top; text-align:left; font-family:var(--head); font-size:calc(12px*var(--fs,1));
                   letter-spacing:.24em; text-transform:uppercase; color:var(--gold); padding-bottom:12px; }
.pi-table th[scope=row]{ font-weight:500; color:var(--gold); text-align:left; width:3.6em; }
.pi-table th,.pi-table td{ padding:9px 10px 9px 0; border-bottom:1px solid var(--line); }
.pi-table td:last-child{ text-align:right; white-space:nowrap; color:var(--muted); }
.pi-table tfoot td{ border-bottom:none; padding-top:14px; color:var(--ink); }
.pi-table tfoot td:last-child{ font-weight:500; }
.p404{ min-height:60vh; display:flex; align-items:center; }
/* ---- service pages (projektēšana / būvniecība / remonts) ---- */
.svc-page .pbody{ margin-top:10px; }
.pi-faq h3{ font-family:var(--head); font-weight:400; font-size:calc(19px*var(--fs,1)); letter-spacing:.02em; margin:30px 0 8px; }
.pi-faq h3:first-of-type{ margin-top:22px; }
.pi-faq p{ max-width:70ch; font-size:calc(15.5px*var(--fs,1)); line-height:1.7; margin:0; }
.svc-other .cards{ grid-template-columns:1fr 1fr; margin-top:34px; }
@media (max-width:820px){ .svc-other .cards{ grid-template-columns:1fr; } }
/* ===== mobile bottom-sheet filter (≤820px, JS present) ===== */
@media (max-width:820px){
  body.fsheet-open{ overflow:hidden; }
  .js .fmob{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:26px 0 4px; }
  .js .fmob .fchips{ display:contents; }
  .js .fopen{ display:inline-flex; align-items:center; gap:7px; font-family:var(--head);
    font-size:calc(11.5px*var(--fs,1)); letter-spacing:.18em; text-transform:uppercase;
    background:none; border:1px solid var(--gold); color:var(--gold); padding:7px 14px;
    border-radius:999px; cursor:pointer; }
  .js .fcnt{ font-family:var(--disp); font-size:calc(9px*var(--fs,1)); line-height:1;
    background:var(--gold); color:#fff; border-radius:999px; padding:3px 6px; }
  .js .fchip{ font-family:var(--head); font-size:calc(10.5px*var(--fs,1)); letter-spacing:.14em;
    text-transform:uppercase; background:none; border:1px solid var(--gold); color:var(--gold);
    padding:6px 11px; border-radius:999px; cursor:pointer; }
  .js .fdim{ display:block; position:fixed; inset:0; z-index:50; background:rgba(29,26,23,.4);
    opacity:0; pointer-events:none; transition:opacity .3s; }
  body.fsheet-open .fdim{ opacity:1; pointer-events:auto; }
  .js .fsheet{ position:fixed; left:0; right:0; bottom:0; z-index:60; background:var(--card);
    border-radius:14px 14px 0 0; box-shadow:0 -14px 44px rgba(0,0,0,.28);
    padding:10px 20px calc(16px + env(safe-area-inset-bottom));
    max-height:75vh; overflow-y:auto; visibility:hidden; transform:translateY(102%);
    transition:transform .3s ease, visibility 0s .3s; }
  body.fsheet-open .fsheet{ visibility:visible; transform:none; transition:transform .3s ease; }
  .js .fsheet .fbar{ margin:0; }
  .js .fsheet .rv{ opacity:1; transform:none; } /* reveal-anim (.anim .rv) never fires inside the fixed sheet */
  .js .fsheet .flab{ flex-basis:100%; min-width:0; margin-bottom:2px; }
  .js .fsheet .fgroup:first-child .flab{ display:none; }
  .js .fhandle{ display:block; width:38px; height:4px; border-radius:2px; background:var(--line);
    margin:2px auto 12px; }
  .js .fshead{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:8px; }
  .js .fstitle{ font-family:var(--head); font-size:calc(11px*var(--fs,1)); letter-spacing:.22em;
    text-transform:uppercase; color:var(--muted); }
  .js .fclear{ font-family:var(--head); font-size:calc(10.5px*var(--fs,1)); letter-spacing:.16em;
    text-transform:uppercase; background:none; border:0; color:var(--gold); cursor:pointer; padding:0; }
  .js .fclear[hidden]{ display:none; }
  .js .fapply{ display:block; width:100%; margin:14px 0 4px; background:var(--gold); color:#fff;
    border:0; border-radius:999px; padding:11px 0; font-family:var(--head);
    font-size:calc(11.5px*var(--fs,1)); letter-spacing:.22em; text-transform:uppercase; cursor:pointer; }
}
