:root{--ink:#091f33;--blue:#0d3d62;--accent:#f3b61f;--accent-dark:#a66d00;--paper:#f3f6f8;--line:#c8d2da;--white:#fff;--muted:#516474;--positive:#157451}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--white);font-family:"Noto Sans JP",sans-serif;font-size:16px;line-height:1.7}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
.site-header{height:78px;padding:0 clamp(20px,5vw,76px);display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}
.company-brand{margin-right:auto}.company-brand img{height:48px;width:auto;max-width:min(350px,42vw);object-fit:contain}
.site-header nav{display:flex;align-items:center;gap:22px;font-size:14px;font-weight:700}.site-header nav a:hover{color:var(--accent-dark)}.nav-cta{padding:10px 17px;background:var(--accent)}
.intro{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,8vw,120px);align-items:center;padding:clamp(34px,4vw,54px) clamp(20px,7vw,110px) 32px;background:var(--paper);border-bottom:1px solid var(--line)}
.eyebrow,.step-label{margin:0;color:var(--accent-dark);font:700 12px/1.5 "Roboto Mono",monospace;letter-spacing:.14em}
.intro h1{margin:10px 0 0;font-size:clamp(46px,5vw,68px);line-height:1.03;letter-spacing:-.06em}.intro h1 span{color:var(--blue)}
.intro>p{max-width:760px;margin:0;color:var(--muted);font-size:18px}
.calculator{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);align-items:start;gap:clamp(28px,5vw,76px);padding:clamp(44px,6vw,82px) clamp(20px,7vw,110px)}
.panel-heading{margin-bottom:34px}.panel-heading h2,.result-top h2{margin:6px 0 8px;font-size:clamp(28px,3vw,42px);line-height:1.3}.panel-heading>p:last-child{margin:0;color:var(--muted)}
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field{display:flex;flex-direction:column;gap:8px;padding:19px;border:1px solid var(--line);background:var(--paper)}.field>span:first-child{font-weight:800}.field small{margin-top:-7px;color:var(--muted);font-size:12px}
.input-wrap{display:grid;grid-template-columns:1fr auto;align-items:center;background:var(--white);border-bottom:2px solid var(--ink)}.input-wrap:focus-within{border-color:var(--accent-dark);box-shadow:0 3px 0 rgba(243,182,31,.23)}.input-wrap input{width:100%;min-width:0;padding:12px;border:0;outline:0;background:transparent;color:var(--ink);font:700 20px "Roboto Mono",monospace}.input-wrap b{padding-right:12px;color:var(--muted);font-size:12px;white-space:nowrap}
.reset-button{margin-top:20px;padding:9px 0;border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);font-size:13px;font-weight:700;cursor:pointer}.reset-button:hover{color:var(--accent-dark);border-color:var(--accent-dark)}
.result-panel{position:sticky;top:106px;padding:30px;background:var(--ink);color:var(--white);box-shadow:0 28px 70px rgba(9,31,51,.25)}.result-top{display:flex;align-items:center;justify-content:space-between;gap:24px}.result-top h2{margin-bottom:0}.result-top img{width:70px;height:70px;border-radius:50%;object-fit:cover;border:3px solid var(--white)}
.result-card{margin:28px 0 16px;padding:28px;background:var(--accent);color:var(--ink);text-align:center}.result-card p{margin:0;font:700 14px "Roboto Mono",monospace;letter-spacing:.1em}.result-card strong{display:block;margin:3px 0;font-size:clamp(50px,6vw,82px);line-height:1.1;letter-spacing:-.05em}.result-card strong span{font-family:"Roboto Mono",monospace}.result-card h3{margin:0;font-size:24px}
.hazai-price{padding:22px;border:1px solid rgba(255,255,255,.3);text-align:center}.hazai-price>span{display:block;color:#c9d8e4;font-size:13px}.hazai-price strong{display:block;margin-top:4px;font-size:clamp(26px,3vw,38px)}.hazai-price b{color:var(--accent)}
.breakdown{margin-top:26px}.breakdown h3{margin:0 0 10px;font-size:16px}.breakdown dl{margin:0;border-top:1px solid rgba(255,255,255,.22)}.breakdown dl div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.16)}.breakdown dt{color:#c9d8e4;font-size:13px}.breakdown dd{margin:0;font-weight:800;white-space:nowrap}
.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:26px}.button{min-height:50px;padding:0 15px;display:flex;align-items:center;justify-content:center;border:1px solid var(--white);font-size:14px;font-weight:800;text-align:center}.button-primary{background:var(--white);color:var(--ink)}.button-secondary{background:transparent;color:var(--white)}
.assumptions{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,8vw,120px);padding:clamp(65px,8vw,110px) clamp(20px,7vw,110px);background:var(--paper);border-top:1px solid var(--line)}.assumptions h2{margin:9px 0 15px;font-size:clamp(34px,4vw,56px)}.assumptions p{color:var(--muted)}.assumptions ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.assumptions li{display:grid;grid-template-columns:140px 1fr;gap:24px;padding:17px 0;border-bottom:1px solid var(--line)}.assumptions li span{color:var(--muted)}
footer{display:grid;grid-template-columns:1.2fr 1.5fr 1fr;gap:36px;align-items:start;padding:48px clamp(20px,7vw,110px);background:#061625;color:#c8d5df;font-size:13px}footer img{height:50px;width:auto;background:var(--white);padding:7px 10px}footer p{margin:0}footer div{display:grid;gap:6px}footer div a:hover{color:var(--white)}footer small{grid-column:1/-1;padding-top:20px;border-top:1px solid #314454}.noscript{position:fixed;bottom:0;left:0;right:0;margin:0;padding:12px;background:#b12020;color:white;text-align:center}
@media(max-width:980px){.intro{grid-template-columns:1fr}.calculator{grid-template-columns:1fr}.result-panel{position:static}.assumptions{grid-template-columns:1fr}}
@media(max-width:680px){.site-header{height:68px}.company-brand img{height:38px;max-width:68vw}.site-header nav a:not(.nav-cta){display:none}.intro{padding:46px 20px 34px}.intro h1{font-size:54px}.intro>p{font-size:16px}.calculator{padding:48px 20px}.field-grid{grid-template-columns:1fr}.result-panel{padding:22px}.result-actions{grid-template-columns:1fr}.assumptions{padding:64px 20px}.assumptions li{grid-template-columns:1fr;gap:2px}footer{grid-template-columns:1fr;padding:44px 20px}.result-card strong{font-size:52px}}
