:root{--blue:#1a8cd8;--navy:#1a2b3c;--bg:#f6f8fa;--line:#c9d3dc;--text:#1a2b3c;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-padding-top:7rem}
body{margin:0;padding-top:30px;background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.6;font-size:1rem}
.banner{position:fixed;top:0;left:0;right:0;z-index:10000;height:30px;background:#111;color:#f2f2f2;font:12px/30px var(--mono);text-align:center;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.watermark{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='700'%3E%3Ctext x='450' y='350' text-anchor='middle' transform='rotate(-30 450 350)' font-family='Arial,Helvetica,sans-serif' font-weight='900' font-size='120' fill='%23808080'%3EPREVIEW%3C/text%3E%3C/svg%3E");background-repeat:repeat}
.wrap{max-width:1100px;margin:0 auto;padding:0 1.25rem}
a{color:var(--navy);text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.lbl,.n,dt{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.lbl{margin:0 0 .5rem;font-weight:700}
.site-header{position:sticky;top:30px;z-index:50;background:#fff;border-bottom:1px solid var(--navy)}
.bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:.6rem;padding-bottom:.6rem}
.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--mono);font-weight:700;text-decoration:none;letter-spacing:.04em}
.mark{display:inline-grid;place-items:center;width:2rem;height:2rem;background:var(--navy);color:#fff;border-bottom:3px solid var(--blue);font-size:.85rem}
.tel{font-family:var(--mono);font-weight:700;text-decoration:none;background:var(--navy);color:#fff;padding:.45rem .8rem;white-space:nowrap}
.tel .lbl{margin:0;color:#fff}
.nav{display:flex;gap:0;border-top:1px solid var(--line)}
.nav a{flex:1;text-align:center;padding:.55rem .5rem;font-family:var(--mono);font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;border-right:1px solid var(--line)}
.nav a:first-child{border-left:1px solid var(--line)}
.nav a:hover{background:#e8f2fa}
.nav a[aria-current]{background:var(--navy);color:#fff}
.hero{background:#fff;border-bottom:1px solid var(--navy);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:32px 32px}
.hero-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:0;padding-top:2rem;padding-bottom:2rem;align-items:stretch}
.hero-fig{margin:0;background:#fff;border:1px solid var(--navy);display:flex;flex-direction:column}
.diagram{width:100%;height:auto;display:block;padding:1rem}
.caption{border-top:1px solid var(--navy);padding:.7rem 1rem;font-size:.9rem;background:#fff;margin-top:auto}
.hero-copy{background:#fff;border:1px solid var(--navy);border-left:0;padding:1.75rem}
h1{font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.15;margin:.2rem 0 1rem}
h2{font-size:clamp(1.25rem,2.6vw,1.6rem);line-height:1.25;margin:0 0 .75rem}
.lead{font-size:1.1rem}
.btn{display:inline-block;background:var(--navy);color:#fff;border:2px solid var(--navy);padding:.7rem 1.2rem;font:700 .9rem var(--mono);text-transform:uppercase;letter-spacing:.06em;text-decoration:none;cursor:pointer;margin:.25rem .25rem .25rem 0}
.btn:hover{background:#fff;color:var(--navy);box-shadow:inset 0 -4px 0 var(--blue)}
.btn.ghost{background:#fff;color:var(--navy)}
.btn.ghost:hover{background:#e8f2fa}
.block{padding-top:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--line)}
.pagehead{border-bottom:2px solid var(--navy)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.specs{display:grid;grid-template-columns:repeat(3,1fr);margin:1rem 0;border-top:1px solid var(--navy);border-left:1px solid var(--navy);background:#fff}
.specs>div{border-right:1px solid var(--navy);border-bottom:1px solid var(--navy);padding:.8rem 1rem}
.specs.one{grid-template-columns:1fr;margin-top:0;align-self:start}
dd{margin:.2rem 0 0;font-family:var(--mono);font-size:1.05rem;font-weight:700;overflow-wrap:anywhere}
.idx{list-style:none;padding:0;margin:0;border-top:1px solid var(--navy)}
.idx li{display:flex;gap:1.2rem;padding:.9rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.n{font-weight:700;color:var(--navy);border-bottom:3px solid var(--blue);margin:0}
.svc{display:grid;grid-template-columns:4rem 1fr;gap:1rem;padding:2rem 0;border-bottom:1px solid var(--navy)}
.svc .n{font-size:1.4rem;align-self:start;border:0;border-top:3px solid var(--blue);padding-top:.3rem}
.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:2rem}
form{background:#fff;border:1px solid var(--navy);padding:1.5rem}
.field{margin-bottom:1rem}
label{display:block;font-family:var(--mono);font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.3rem;font-weight:700}
input,textarea{width:100%;padding:.65rem;border:1px solid var(--navy);border-radius:0;font:inherit;color:var(--text);background:#fff}
input[aria-invalid=true],textarea[aria-invalid=true]{border:2px solid #a30000}
.err{display:block;color:#a30000;font-size:.88rem;min-height:1.2em;margin-top:.2rem}
.status{font-weight:700;margin:.8rem 0 0}
.note{font-size:.88rem;margin-top:.8rem}
.site-footer{background:var(--navy);color:#fff;padding:2rem 0 1.25rem}
.site-footer a{color:#fff}
.foot-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.site-footer p{margin:.25rem 0}
.proposal{margin-top:1.5rem!important;padding-top:1rem;border-top:1px solid #4a5d70;font-size:.9rem}
@media(max-width:800px){
.hero-grid,.cols,.contact-grid,.foot-grid{grid-template-columns:1fr}
.hero-copy{border-left:1px solid var(--navy);border-top:0}
.specs{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
.brand{font-size:.85rem}.tel{padding:.4rem .6rem;font-size:.9rem}
.nav a{font-size:.72rem;padding:.55rem .1rem;letter-spacing:0}
.svc{grid-template-columns:1fr}.specs{grid-template-columns:1fr}
.banner{font-size:10px}
}
