:root{--ink:#1d2830;--soft:#576670;--blue:#145e66;--blue-dark:#0d444b;--mint:#e6f5f1;--white:#fff;--page:#f4f7f6;--line:#dbe4e2;--yellow:#fff4d6;--warn:#815500;--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,system-ui,sans-serif;color:var(--ink);background:var(--page);line-height:1.75}a{color:#116572;text-underline-offset:3px}a:hover{color:#08434a}.wrap{width:min(1080px,calc(100% - 40px));margin:auto}.skip{position:absolute;left:-9999px;top:0}.skip:focus{left:10px;top:10px;z-index:999;padding:12px;background:white}header{background:var(--white);border-bottom:1px solid var(--line)}.top{display:flex;gap:20px;justify-content:space-between;align-items:center;min-height:78px}.logo{font-size:1.18rem;font-weight:900;letter-spacing:-.03em;color:var(--blue-dark);text-decoration:none}.top nav{display:flex;gap:14px;flex-wrap:wrap}.top nav a{font-size:.88rem;font-weight:700;text-decoration:none;color:#314f55}nav a:hover{text-decoration:underline}.hero{background:linear-gradient(132deg,#e3f4ee,#f6f8f3 65%,#f9edd5);border-bottom:1px solid var(--line);padding:54px 0 60px}.eyebrow{font-size:.8rem;color:var(--blue);font-weight:850;letter-spacing:.07em}.hero h1{font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.35;letter-spacing:-.055em;max-width:900px;margin:.4em 0}.hero p{max-width:740px;font-size:1.07rem}.tagline{display:inline-block;background:#fff;padding:7px 12px;border:1px solid #c9e0dc;border-radius:99px;font-size:.8rem;font-weight:800;color:var(--blue-dark)}main{padding:34px 0 80px}section{margin:0 0 42px}.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,3.5vw,34px);box-shadow:0 10px 35px #1e525808}h2{font-size:clamp(1.35rem,2vw,1.75rem);letter-spacing:-.03em;margin:0 0 12px}h3{margin:0 0 10px;font-size:1.12rem}.intro{color:var(--soft)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:22px}.pill{display:inline-block;background:var(--mint);color:var(--blue-dark);font-size:.75rem;border-radius:60px;padding:3px 10px;font-weight:800}.price{font-size:2rem;font-weight:900;line-height:1.1;color:var(--blue-dark);margin:14px 0}.muted,.note{font-size:.87rem;color:var(--soft)}.caution{background:var(--yellow);color:#624913;padding:14px 17px;border-left:4px solid #c29534;border-radius:7px;font-size:.91rem}.calc{background:#fff;border:2px solid #c2ded8;border-radius:var(--radius);padding:clamp(20px,4vw,35px)}.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:22px 0}label{font-weight:750;display:block;margin-bottom:5px}select,input{width:100%;font:inherit;color:var(--ink);border:1px solid #a7b9b8;border-radius:10px;background:white;padding:11px 12px;min-height:48px}input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #87b7ce;outline-offset:2px}.help{font-size:.75rem;color:var(--soft);margin-top:3px}.result{background:var(--mint);border:1px solid #b6d9cf;border-radius:14px;padding:21px;margin-top:12px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.result strong.value{font-size:clamp(1.55rem,4vw,2.4rem);display:block;color:#0c4d53;font-variant-numeric:tabular-nums}.result small{display:block}.summary{font-size:.9rem;margin:12px 0 0}.steps{display:grid;grid-template-columns:1fr 1fr;gap:15px}.steps .card{background:#f8fbf9}.mini{font-size:.87rem}.btn-link{display:inline-block;background:var(--blue);color:white!important;font-weight:800;text-decoration:none;padding:12px 20px;border-radius:9px}.btn-link:hover{background:var(--blue-dark)}.meta{font-size:.77rem;color:var(--soft);margin:0 0 8px}footer{border-top:1px solid var(--line);padding:32px 0 40px;background:#eef3f1;color:#506168;font-size:.83rem}footer a{color:#345e64}.notice{background:#eef4f5;border-left:4px solid #537f89;padding:12px 16px;border-radius:6px}table{border-collapse:collapse;width:100%;font-size:.93rem;background:white}th,td{border-bottom:1px solid var(--line);padding:12px 10px;text-align:left;vertical-align:top}th{background:#eaf4f1;font-weight:850}table tr:last-child td{border-bottom:0}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px}ul,ol{padding-left:1.4em}li+li{margin-top:8px}details{background:#fff;border:1px solid var(--line);padding:14px 18px;border-radius:10px;margin:10px 0}summary{font-weight:800;cursor:pointer}.smallcaps{font-size:.75rem;letter-spacing:.03em;font-weight:800;color:var(--blue)}@media(max-width:820px){.grid,.fields{grid-template-columns:1fr 1fr}.top{align-items:start;flex-direction:column;padding:14px 0;gap:10px}}@media(max-width:570px){.wrap{width:min(100% - 28px,1080px)}.hero{padding:37px 0}.grid,.fields,.steps,.result-grid{grid-template-columns:1fr}.top nav{gap:6px 14px}.top nav a{font-size:.82rem}.price{font-size:1.75rem}.result strong.value{font-size:1.9rem}}

.timeline{margin-top:18px;padding:18px 22px;background:#f8fbf9;border:1px solid var(--line);border-radius:12px}.timeline h3{font-size:1.05rem}.timeline ol{margin:8px 0 12px;padding-left:1.45em}.timeline li{font-variant-numeric:tabular-nums}input:disabled{background:#e8eeee;color:#788787;cursor:not-allowed}

/* v0.4: expose the distinction between paid contracts and prorated service usage */
.value-explain {margin-top:1rem;padding:1rem 1.15rem;border:1px solid #b9d8d2;border-radius:12px;background:#f4fbfa;color:#173932;}
.value-explain h3 {font-size:1.05rem;margin:.15rem 0 .6rem;}
.value-explain p {line-height:1.8;margin:.5rem 0;}
.value-explain strong {font-variant-numeric:tabular-nums;}

/* v0.5 one-glance independent plan comparison */
.comparison .table-scroll {margin:1rem 0;}
.comparison table {min-width:750px;font-variant-numeric:tabular-nums;}
.comparison caption {caption-side:top;text-align:left;font-size:.82rem;color:var(--soft);padding:12px 10px;}
.comparison td:nth-child(n+2) {white-space:nowrap;}
.comparison th:first-child {white-space:nowrap;}
.comparison tbody tr:last-child {background:#edf8f5;}
.comparison tbody tr:last-child th {font-weight:900;}
