/* Real work library and transparent engineering estimator. */
.work-gallery-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; padding-top:42px; margin-top:35px; border-top:1px solid var(--line); }
.work-gallery-heading h3 { font-size:26px; margin:0 0 14px; }
.work-gallery-heading .eyebrow { margin-bottom:16px; }
.work-gallery-heading .text-link { white-space:nowrap; }
.work-filters { display:flex; gap:8px; flex-wrap:wrap; margin:28px 0 16px; }
.work-filters button { display:flex; align-items:center; gap:14px; border:1px solid #436274; padding:11px 15px; background:#102331; color:#c8deea; font-size:12px; cursor:pointer; }
.work-filters button span { font:9px var(--mono); color:#abcad9; }
.work-filters button[aria-pressed=true] { border-color:#73e4f2; background:#1b3c48; color:#e5faff; }
.work-filters button:disabled { opacity:1; cursor:default; }
.work-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.work-card { min-width:0; border:1px solid var(--line); background:#0e1d28; }
.work-image { position:relative; display:block; overflow:hidden; height:300px; background:#152935; }
.work-image img { display:block; width:100%; height:100%; object-fit:contain; }
.work-card[data-work-category=pcb] .work-image img { object-fit:cover; object-position:center 60%; }
.work-zoom { position:absolute; right:12px; bottom:12px; display:grid; place-items:center; width:35px; height:35px; border:1px solid #668c9c; background:#102633e8; color:#d4f6fb; }
.work-card-copy { padding:24px; }
.work-card-copy .eyebrow { margin-bottom:13px; font-size:9px; }
.work-card-copy :is(h2,h3) { font-size:21px; line-height:1.3; letter-spacing:-.4px; margin:0 0 14px; }
.work-card-copy p { color:#b0c4d1; font-size:13px; margin:0 0 16px; }
.work-card-copy .text-link { font-size:11px; }
.work-lightbox { width:min(1160px,calc(100% - 32px)); max-height:94vh; padding:22px; border:1px solid #64889b; background:#0e1d28; color:var(--ink); }
.work-lightbox::backdrop { background:#030a10e8; }
.lightbox-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:18px; }
.lightbox-counter { font:11px var(--mono); color:#c1dbe6; }
.lightbox-image { display:flex; align-items:center; justify-content:center; background:#07131c; }
.lightbox-image img { max-width:100%; width:auto; max-height:64vh; height:auto; object-fit:contain; }
.work-lightbox h2 { font-size:25px; margin:22px 0 13px; letter-spacing:-.6px; }
.lightbox-description { font-size:13px; color:#b6cbd8; max-width:850px; }
.lightbox-navigation { display:flex; justify-content:space-between; gap:12px; margin-top:20px; }
html:has(.work-lightbox[open]) { overflow:hidden; }
.projects-page .section-intro { margin-bottom:30px; }
.projects-page>.container>.button { margin-top:35px; }
.estimator-section { background:#0b1923; }
.estimator-section>.container>.section-intro { max-width:700px; margin-bottom:35px; }
.estimator-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:start; }
#estimate-form { border:1px solid #3c5d70; padding:30px; background:#0f2230; }
.estimate-tasks legend { font-size:21px; margin-bottom:20px; letter-spacing:-.4px; }
.estimate-tasks label { display:flex; align-items:start; gap:12px; border:1px solid #37576b; padding:14px 15px; cursor:pointer; margin:0 0 10px; background:#122938; }
.estimate-tasks label:has(input:checked) { border-color:#73e4f2; background:#183844; }
.estimate-tasks input { width:15px; height:15px; margin:4px 0 0; padding:0; flex-shrink:0; accent-color:#73e4f2; }
.estimate-tasks label span { display:flex; flex-direction:column; gap:4px; }
.estimate-tasks strong { font-size:13px; font-weight:500; color:#e0eff6; }
.estimate-tasks small { font-size:10px; color:#b7cedb; }
.estimate-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field-help { font-size:10px; line-height:1.8; color:#afc8d6; }
.estimate-visual-fields { padding:0 0 15px; }
#estimate-form .button { margin-top:24px; }
#estimate-form>.plain-button { margin-top:14px; }
#estimate-status { font-size:12px; line-height:1.8; margin-bottom:0; }
.estimate-result { position:sticky; top:24px; border:1px solid #4b7b8b; padding:30px; background:#112a35; min-width:0; }
.estimate-result>.eyebrow { color:#a8e6ed; font-size:9px; }
.estimate-price { padding:24px 0; border-top:1px solid #375d6d; border-bottom:1px solid #375d6d; margin:24px 0; }
.estimate-price>span { font-size:12px; color:#bfd9e4; display:block; margin-bottom:14px; }
.estimate-price strong { display:block; font-size:clamp(26px,2.65vw,40px); font-weight:500; letter-spacing:-1.5px; color:#9cf0ee; line-height:1.2; overflow-wrap:anywhere; }
.estimate-numbers { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.estimate-numbers span { display:block; color:#bfd9e4; font-size:11px; margin-bottom:10px; }
.estimate-numbers strong { font-size:23px; font-weight:500; letter-spacing:-.7px; }
.estimate-capacity { font-size:11px; line-height:1.8; color:#c0dae4; margin:20px 0 26px; }
.estimate-breakdown { border-top:1px solid #375d6d; padding-top:18px; }
.estimate-breakdown summary { font-size:12px; }
.estimate-breakdown ul { list-style:none; padding:0; margin:20px 0; }
.estimate-breakdown li { display:flex; justify-content:space-between; gap:20px; font-size:11px; padding:10px 0; border-bottom:1px solid #375465; color:#c4dce6; }
.estimate-breakdown li strong { white-space:nowrap; font:10px/1.8 var(--mono); }
.estimate-assumptions { padding-left:16px; margin:22px 0; font-size:10px; line-height:1.8; color:#b8d0dc; }
.estimate-assumptions li { margin-bottom:7px; }
.estimate-result[data-state=loading] .estimate-price strong { color:#b8d0dc; }
.estimate-result[data-state=stale] .estimate-price strong,.estimate-result[data-state=error] .estimate-price strong { font-size:24px; color:#d3dce1; letter-spacing:-.5px; }
.estimate-result[data-state=ready] { border-color:#73e4f2; }
.no-js .work-zoom { display:none; }
@media(min-width:901px) and (max-width:1150px) { .nav-shell { gap:14px; font-size:11px; } .header-contact { padding-left:14px; } }
@media(max-width:1000px) { .estimator-layout { gap:25px; } #estimate-form,.estimate-result { padding:24px; } .estimate-fields { grid-template-columns:1fr; gap:0; } .estimate-numbers { grid-template-columns:1fr; gap:18px; } .work-image { height:250px; } }
@media(max-width:700px) {
  .work-gallery-heading { display:block; }
  .work-gallery-heading .text-link { margin-top:10px; }
  .work-grid { grid-template-columns:1fr; }
  .work-image { height:270px; }
  .work-card-copy { padding:22px; }
  .work-filters { gap:7px; }
  .work-filters button { padding:10px 12px; font-size:11px; gap:10px; }
  .work-lightbox { padding:16px; }
  .lightbox-image img { max-height:58vh; }
  .work-lightbox h2 { font-size:22px; }
  .lightbox-navigation .plain-button { font-size:11px; padding:10px; }
  .estimator-layout { grid-template-columns:1fr; }
  .estimate-result { position:static; }
  .estimate-price strong { font-size:34px; }
  .estimate-numbers { grid-template-columns:1fr 1fr; }
  .estimate-numbers strong { font-size:24px; }
}
@media(max-width:360px) { #estimate-form,.estimate-result { padding:18px; } .work-image { height:230px; } .estimate-price strong { font-size:29px; } .estimate-numbers { grid-template-columns:1fr; } .lightbox-navigation { flex-wrap:wrap; } }
@media(prefers-reduced-motion:reduce) { .estimate-result,.work-card { transition:none; } }

.lightbox-toolbar [data-lightbox-original] { margin-left:auto; text-decoration:none; }
@media(max-width:540px) { .lightbox-toolbar { flex-wrap:wrap; gap:10px; } .lightbox-toolbar .plain-button { font-size:10px; padding:9px 11px; } }
.work-lightbox:not([open]) { display:none; }
