:root{--blue:#0288d1;--blue-d:#01579b;--ink:#333;--bg:#f7f9fa;--line:#c9d3d9;--banner-h:30px}
*{box-sizing:border-box}
html{scroll-padding-top:120px}
body{margin:0;padding-top:var(--banner-h);font-family:Inter,system-ui,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;font-size:17px}
.mono,.label{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace}
.label{font-size:.78rem;letter-spacing:.08em;color:var(--blue-d);margin:0 0 .4rem;font-weight:600}
a{color:var(--blue-d)}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.banner{position:fixed;top:0;left:0;right:0;height:var(--banner-h);z-index:10000;background:#111;color:#f1f1f1;font:12px/30px "IBM Plex Mono",monospace;text-align:center;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.watermark{position:fixed;inset:0;z-index:9000;pointer-events:none;overflow:hidden;opacity:.06;color:#555;display:flex;flex-direction:column;justify-content:space-around;align-items:center}
.watermark span{font:900 clamp(60px,12vw,150px)/1 Arial,Helvetica,sans-serif;transform:rotate(-30deg);letter-spacing:.1em}
.site-header{background:#fff;border-bottom:1px solid var(--ink);position:sticky;top:var(--banner-h);z-index:100}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding-top:10px;padding-bottom:10px}
.brand{font-weight:700;text-decoration:none;color:var(--ink);font-size:.9rem;flex:1 1 260px}
.brand .mono{background:var(--ink);color:#fff;padding:2px 6px;margin-right:6px;font-size:.78rem}
.tel{background:var(--blue-d);color:#fff;text-decoration:none;padding:8px 14px;font-weight:700;font-size:1rem;white-space:nowrap}
.tel .mono{font-size:.7rem;margin-right:4px}
nav{display:flex;flex:1 1 100%;border-top:1px solid var(--line);margin-top:4px}
nav a{padding:8px 16px 8px 0;margin-right:16px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem;border-bottom:3px solid transparent}
nav a[aria-current],nav a:hover{border-bottom-color:var(--blue)}
.hero{border-bottom:1px solid var(--ink);background:#fff}
.herogrid{display:grid;grid-template-columns:1.4fr 1fr;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.heroart{min-height:340px;border-right:1px solid var(--line)}
.heroart svg{width:100%;height:100%;display:block}
.caption{padding:32px 24px;align-self:end}
h1{font-size:clamp(1.5rem,3.4vw,2.2rem);line-height:1.2;margin:.2rem 0 .8rem}
h2{font-size:1.3rem;margin:0 0 .8rem;border-bottom:1px solid var(--ink);padding-bottom:.4rem}
.num{color:var(--blue-d);margin-right:8px}
.lead{font-size:1.1rem}
.block{padding-top:36px;padding-bottom:12px}
.pagehead{padding-top:32px}
.btn{display:inline-block;background:var(--blue-d);color:#fff;border:2px solid var(--blue-d);padding:10px 18px;font:700 1rem Inter,sans-serif;text-decoration:none;cursor:pointer;margin:4px 6px 4px 0}
.btn.alt{background:#fff;color:var(--blue-d)}
.btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.sheet{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border:1px solid var(--ink);background:#fff}
.sheet.one{grid-template-columns:1fr}
.sheet>div{padding:14px 16px;border:1px solid var(--line)}
.sheet dt{font-size:.75rem;color:var(--blue-d);font-weight:600;letter-spacing:.08em}
.sheet dd{margin:4px 0 0;font-weight:600;overflow-wrap:anywhere}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.field{margin-bottom:14px;display:flex;flex-direction:column}
label{font:600 .8rem "IBM Plex Mono",monospace;margin-bottom:4px}
input,textarea{font:inherit;padding:10px;border:1px solid var(--ink);background:#fff;color:var(--ink);border-radius:0}
input:focus,textarea:focus,a:focus,.btn:focus{outline:3px solid var(--blue);outline-offset:2px}
input[aria-invalid=true],textarea[aria-invalid=true]{border:2px solid #b00020}
.err{color:#b00020;font-size:.88rem;min-height:1.1em}
.status{font-weight:600;color:#1b5e20}
.note{font-size:.9rem}
.site-footer{margin-top:48px;border-top:1px solid var(--ink);background:#fff;padding-top:24px;font-size:.92rem}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.proposal{border-top:1px solid var(--line);padding:14px 0 20px;margin:12px 0 0;font-family:"IBM Plex Mono",monospace;font-size:.85rem}
@media(max-width:760px){
.herogrid,.grid2,.grid3{grid-template-columns:1fr}
.heroart{min-height:220px;border-right:0;border-bottom:1px solid var(--line)}
.sheet{grid-template-columns:1fr 1fr}
.banner{font-size:10px}
.tel{padding:8px 10px}
}
@media(max-width:420px){.sheet{grid-template-columns:1fr}}
