/* ---------- services page ---------- */
.shero{ background:#fff; padding:clamp(3rem,7vw,6rem) 0 clamp(2rem,5vw,4rem); }
.shero__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,6vw,5rem); align-items:end; }
.shero__h1{ font-family:var(--font-head); font-weight:600; color:var(--navy); font-size:clamp(2.8rem,7vw,5.6rem); line-height:.98; letter-spacing:-.045em; margin:0; max-width:11ch; }
.shero__h1 .em{ font-family:var(--font-emph); font-style:italic; font-weight:500; }
.shero__lede{ font-size:clamp(1.05rem,1.4vw,1.2rem); color:var(--ink); line-height:1.6; margin:1.5rem 0 0; max-width:42ch; }
.shero__index{ list-style:none; margin:2.25rem 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; column-gap:2rem; border-top:1px solid var(--navy); }
.shero__index a{ display:flex; align-items:baseline; gap:.8rem; padding:.7rem 0; border-bottom:1px solid var(--border); color:var(--navy); text-decoration:none; font-family:var(--font-head); font-weight:500; font-size:.95rem; transition:color .2s var(--ease); }
.shero__index a:hover{ color:var(--sky-dark); }
.shero__index span{ font-family:var(--font-emph); font-style:italic; font-size:.9rem; color:var(--ink-soft); min-width:2ch; }
.shero__media{ margin:0; position:relative; }
.shero__media img{ width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 30%; border-radius:24px; display:block; }
.shero__media figcaption{ position:absolute; left:16px; bottom:16px; font-family:var(--font-head); font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:rgba(10,21,48,.55); padding:.4rem .7rem; border-radius:999px; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }

.svcs{ background:var(--paper); border-top:1px solid var(--border); }
.svcs__grid{ display:grid; grid-template-columns:18rem 1fr; gap:clamp(2rem,6vw,6rem); align-items:start; }
.svcs__side{ position:sticky; top:calc(var(--nav-h) + 32px); }
.svcs__nav{ list-style:none; margin:0; padding:0; border-top:1px solid var(--navy); }
.svcs__nav a{ display:flex; align-items:baseline; gap:.8rem; padding:.75rem 0; border-bottom:1px solid var(--border); color:var(--ink-soft); text-decoration:none; font-family:var(--font-head); font-weight:500; font-size:.95rem; transition:color .25s var(--ease), padding-left .25s var(--ease); }
.svcs__nav a span{ font-family:var(--font-emph); font-style:italic; font-size:.9rem; min-width:2ch; }
.svcs__nav a.on{ color:var(--navy); padding-left:.35rem; }
.svcs__nav a.on span{ color:var(--red); }
.svcs__cta{ margin-top:1.5rem; width:100%; }
.svcs__rows{ display:grid; }
.srow{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,4rem); align-items:center; padding:clamp(2.5rem,5vw,4.5rem) 0; border-bottom:1px solid var(--border); }
.srow:first-child{ padding-top:.5rem; }
.srow:last-child{ border-bottom:0; }
.srow:nth-child(even) .srow__copy{ order:2; }
.srow__num{ display:block; font-family:var(--font-emph); font-style:italic; font-weight:500; font-size:clamp(2rem,3.4vw,2.8rem); line-height:1; color:var(--red); margin-bottom:1rem; }
.srow__t{ font-family:var(--font-head); font-weight:600; color:var(--navy); font-size:clamp(1.7rem,3vw,2.5rem); line-height:1.08; letter-spacing:-.03em; margin:0; }
.srow__d{ color:var(--ink); font-size:1.05rem; line-height:1.6; margin:1rem 0 0; max-width:40ch; }
.srow__pts{ list-style:none; margin:1.3rem 0 0; padding:0; display:grid; gap:.5rem; max-width:40ch; }
.srow__pts li{ position:relative; padding-left:1.1rem; font-size:.95rem; color:var(--navy); line-height:1.45; }
.srow__pts li::before{ content:""; position:absolute; left:0; top:.66em; width:6px; height:1px; background:var(--navy); }
.srow__photo{ aspect-ratio:4/3; border-radius:22px; overflow:hidden; background:var(--grey-card); box-shadow:0 30px 70px -36px rgba(16,34,82,.35); }
.srow__photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s var(--ease); }
.srow:hover .srow__photo img{ transform:scale(1.03); }

.band2{ display:grid; grid-template-columns:1fr 1fr; background:var(--navy-deep); color:#fff; }
.band2__media img{ width:100%; height:100%; min-height:420px; object-fit:cover; object-position:center 30%; display:block; }
.band2__copy{ padding:clamp(3rem,7vw,6rem) max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))) clamp(3rem,7vw,6rem) clamp(2rem,5vw,4rem); align-self:center; }
.band2__copy .eyebrow{ color:rgba(255,255,255,.6); }
.band2__copy .h2{ color:#fff; }
.band2__copy p{ color:rgba(255,255,255,.72); font-size:1.02rem; line-height:1.65; margin:1rem 0 0; max-width:46ch; }
.band2__row{ display:flex; align-items:center; gap:.6rem; margin-top:1.75rem; padding-top:1.25rem; border-top:1px solid rgba(255,255,255,.14); font-size:.9rem; color:rgba(255,255,255,.7); }
.band2__row b{ font-family:var(--font-head); color:#fff; font-size:1.1rem; }

.dmg{ background:#fff; }
.dmg__head{ display:grid; grid-template-columns:1.2fr .8fr; gap:2rem; align-items:end; margin-bottom:clamp(1.75rem,3vw,2.5rem); }
.dmg__head .sub{ margin:0; }
.dmg__table{ border-top:1px solid var(--navy); }
.dmg__r{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:1rem; align-items:baseline; padding:1.1rem 0; border-bottom:1px solid var(--border); }
.dmg__r--h span{ font-family:var(--font-head); font-size:.7rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.dmg__r:not(.dmg__r--h) span:first-child{ font-family:var(--font-head); font-weight:600; font-size:1.1rem; color:var(--navy); }
.dmg__r:not(.dmg__r--h) span:not(:first-child){ font-family:var(--font-head); font-weight:600; font-size:clamp(1.3rem,2.4vw,1.9rem); letter-spacing:-.02em; color:var(--navy); font-variant-numeric:tabular-nums; }
.dmg__r:not(.dmg__r--h) span:last-child{ color:var(--red); }
.dmg__fine{ margin:.9rem 0 0; font-size:.76rem; color:var(--ink-soft); }

.close{ background:#fff; color:var(--navy); border-top:1px solid var(--border); }
.close__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,6vw,5rem); align-items:end; }
.close .eyebrow{ color:var(--sky-dark); }
.close__h2{ font-family:var(--font-head); font-weight:600; color:var(--navy); font-size:clamp(2.2rem,5vw,4rem); line-height:1.02; letter-spacing:-.04em; margin:0; }
.close__h2 .em{ font-family:var(--font-emph); font-style:italic; font-weight:500; }
.close__side p{ color:var(--ink); line-height:1.6; margin:0 0 1.5rem; max-width:40ch; }

@media (max-width:1000px){ .svcs__grid{ grid-template-columns:1fr; } .svcs__side{ position:static; } .svcs__nav{ display:none; } .svcs__cta{ width:auto; } }
@media (max-width:900px){ .srow{ grid-template-columns:1fr; } .srow:nth-child(even) .srow__copy{ order:0; } .srow__photo{ order:-1; } .shero__grid{ grid-template-columns:1fr; } .shero__media img{ aspect-ratio:4/3; } .band2{ grid-template-columns:1fr; } .band2__copy{ padding:clamp(2.5rem,6vw,4rem) var(--gutter); } .dmg__head{ grid-template-columns:1fr; } .close__grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .shero__index{ grid-template-columns:1fr; } .srow{ grid-template-columns:1fr; } .srow:nth-child(even) .srow__copy{ order:0; } .srow__photo{ order:-1; } .dmg__r{ grid-template-columns:1.2fr 1fr 1fr; gap:.5rem; } .dmg__r:not(.dmg__r--h) span:first-child{ font-size:.95rem; } }

/* ---------- service panels (animated) ---------- */
.srow__panel{ min-height:0; border-radius:22px; overflow:hidden; background:linear-gradient(160deg,#E9EFF8,#F8FAFD); border:1px solid var(--border); display:grid; place-items:center; padding:clamp(.9rem,1.8vw,1.4rem); box-shadow:0 30px 70px -36px rgba(16,34,82,.35); }
.srow__panel .rep{ width:100%; max-width:440px; box-shadow:0 24px 50px -28px rgba(16,34,82,.4); }
.srow__panel .rep__body{ padding:6px 10px 10px; }
.srow__panel .row{ padding:9px 9px; gap:9px; }
.srow__panel .row{ grid-template-columns:auto minmax(0,1fr) auto auto; display:grid; }
.srow__panel .rep{ max-width:460px; }
.srow__panel .row__info{ min-width:0; }
.srow__panel .row__info b{ font-size:.8rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.srow__panel .row__ic{ width:30px; height:30px; }
.srow__panel .row__ic .ic{ width:16px; height:16px; }
.srow__panel .row__info span{ display:block; white-space:nowrap; }
.srow__panel .row__amt{ display:none; }
.srow__panel .row{ grid-template-columns:auto minmax(0,1fr) auto; }
.srow__panel .row__info span{ display:none; }
.srow__panel .rep__tit small{ display:none; }
.srow__panel .rep__head{ padding:12px 14px; }
.srow__panel .rep__tit small{ white-space:normal; }
.srow__panel .badge{ font-size:.62rem; padding:4px 7px; }
.srow__panel .rep__body{ min-height:0; }
.srow__panel .badge.neg{ opacity:0; transform:scale(.7); transition:opacity .3s var(--ease), transform .3s cubic-bezier(.34,1.56,.64,1); }
.srow__panel .badge.neg.on{ opacity:1; transform:none; }
.srow__panel .rep__foot .chk.on{ opacity:1; transform:scale(1); }
.bu{ width:100%; max-width:420px; background:#fff; border-radius:18px; border:1px solid var(--border); padding:1.25rem 1.4rem .9rem; box-shadow:0 24px 50px -28px rgba(16,34,82,.4); }
.bu__row{ display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:1rem; padding:.85rem 0; border-bottom:1px solid #EEF1F5; opacity:.45; transition:opacity .4s var(--ease); }
.bu__row.is-scan, .bu__row.is-done{ opacity:1; }
.bu__mark{ font-family:var(--font-head); font-weight:800; font-size:1.05rem; letter-spacing:-.02em; line-height:1; }
.bu__mark i{ font-style:normal; }
.bu__mark--eq{ color:#9E1B32; letter-spacing:.06em; font-size:.9rem; }
.bu__mark--tu{ color:#00A5DB; } .bu__mark--tu i{ color:#FFC20E; }
.bu__mark--ex{ color:#26478D; text-transform:lowercase; font-weight:700; } .bu__mark--ex i{ color:#E63888; }
.bu__bar{ height:5px; border-radius:3px; background:var(--grey-bg); overflow:hidden; }
.bu__bar i{ display:block; height:100%; width:0; border-radius:3px; background:var(--navy); }
.bu__row.is-scan .bu__bar i{ animation:bufill .9s var(--ease) forwards; }
.bu__row.is-done .bu__bar i{ width:100%; background:var(--green); }
@keyframes bufill{ to{ width:100%; } }
.bu__st{ width:24px; height:24px; display:grid; place-items:center; }
.bu__st .ic{ width:22px; height:22px; color:var(--green); stroke-width:2.2; opacity:0; transform:scale(.5); transition:opacity .3s var(--ease), transform .3s cubic-bezier(.34,1.56,.64,1); }
.bu__row.is-done .bu__st .ic{ opacity:1; transform:none; }
.bu__foot{ display:flex; justify-content:space-between; align-items:baseline; padding-top:.9rem; }
.bu__lbl{ font-family:var(--font-head); font-size:.7rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.bu__n{ font-family:var(--font-head); font-size:.9rem; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.bu__n b{ color:var(--navy); font-size:1.3rem; }
@media (prefers-reduced-motion:reduce){ .bu__row{ opacity:1; } .bu__bar i{ width:100%; background:var(--green); } }

/* score-climb panel (building support) */
.sc{ width:100%; max-width:440px; background:#fff; border-radius:18px; border:1px solid var(--border); padding:1.1rem 1.25rem 1rem; box-shadow:0 24px 50px -28px rgba(16,34,82,.4); }
.sc__head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:.6rem; }
.sc__lbl{ font-family:var(--font-head); font-size:.7rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.sc__num{ display:inline-flex; align-items:baseline; gap:.5rem; }
.sc__num b{ font-family:var(--font-head); font-size:2rem; font-weight:700; color:var(--navy); letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.sc__num i{ font-style:normal; font-family:var(--font-head); font-weight:700; font-size:.82rem; color:#147a43; background:#E2F4EA; border-radius:999px; padding:.2rem .55rem; font-variant-numeric:tabular-nums; }
.sc__chart{ width:100%; height:120px; display:block; overflow:visible; }
.sc__grid line{ stroke:#EEF1F5; stroke-width:1; }
.sc__area{ fill:url(#scFill); opacity:0; transition:opacity .6s var(--ease) 2.4s; }
.sc__line{ fill:none; stroke:var(--green); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:600; stroke-dashoffset:600; }
.srow__panel--score.in .sc__line{ animation:scdraw 3.1s linear forwards; }
.srow__panel--score.in .sc__area{ opacity:1; }
@keyframes scdraw{ to{ stroke-dashoffset:0; } }
.sc__pts circle{ fill:#fff; stroke:var(--green); stroke-width:2.5; opacity:0; transform-box:fill-box; transform-origin:center; transform:scale(.4); transition:opacity .25s var(--ease), transform .3s cubic-bezier(.34,1.56,.64,1); }
.sc__pts circle.on{ opacity:1; transform:none; }
.sc__msgs{ display:grid; gap:.45rem; margin-top:.9rem; min-height:4.9rem; }
.sc__msg{ display:flex; align-items:flex-start; gap:.5rem; font-size:.78rem; line-height:1.35; color:var(--navy); opacity:0; transform:translateY(6px); transition:opacity .35s var(--ease), transform .35s var(--ease); }
.sc__msg.on{ opacity:1; transform:none; }
.sc__msg span:last-child{ background:var(--grey-card); border-radius:10px; border-top-left-radius:3px; padding:.45rem .65rem; }
.sc__av{ flex:0 0 auto; width:22px; height:22px; border-radius:50%; background:var(--navy); color:#fff; display:grid; place-items:center; font-family:var(--font-head); font-weight:700; font-size:.7rem; }
@media (prefers-reduced-motion:reduce){ .sc__line{ stroke-dashoffset:0; } .sc__area{ opacity:1; } .sc__pts circle, .sc__msg{ opacity:1; transform:none; } }
