
:root{--ink:#183b43;--green:#156d63;--leaf:#8aae3f;--gold:#d89d2b;--cream:#f7f5ef;--line:#dce5e3;--muted:#60777d;--footer:#102f36}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Yu Gothic",Meiryo,sans-serif;color:var(--ink);line-height:1.8;background:#fff}a{color:inherit}.container{width:min(1160px,calc(100% - 34px));margin:auto}
header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}.head{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px}.logo img{width:290px;display:block}.nav{display:flex;flex-wrap:wrap;gap:21px;align-items:center;font-size:14px;font-weight:700}.nav a{text-decoration:none}.nav a:hover{color:var(--green)}.nav .contact{background:var(--ink);color:#fff;padding:9px 16px;border-radius:999px}.nav .contact:hover{color:#fff}
.hero{padding:88px 0;background:linear-gradient(135deg,#f3f9f7,#fff 62%,#fbf8ef)}.herogrid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}.kicker{color:var(--green);font-size:13px;font-weight:900;letter-spacing:.12em}h1{font-size:clamp(40px,6vw,68px);line-height:1.17;letter-spacing:-.04em;margin:13px 0 22px}h1 span{color:var(--green)}h2{font-size:clamp(29px,4vw,43px);line-height:1.35;margin:8px 0 15px}h3{line-height:1.45}.lead{font-size:18px;color:#3d5a61}.btn{display:inline-block;text-decoration:none;font-weight:800;border-radius:999px;padding:13px 20px;margin:4px 6px 4px 0}.btn.primary{background:var(--ink);color:#fff}.btn.secondary{border:1px solid var(--ink);background:#fff}
.hero-card,.card,.panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px}.hero-card{box-shadow:0 16px 44px rgba(24,59,67,.10)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{background:var(--cream);padding:8px 11px;border-radius:999px;font-size:13px;font-weight:700}.section{padding:76px 0}.alt{background:var(--cream)}.section-head{max-width:780px;margin-bottom:34px}.muted,.card p,.section-head p{color:var(--muted)}
.grid{display:grid;gap:20px}.services{grid-template-columns:repeat(3,1fr)}.card .num{font-size:12px;font-weight:900;color:var(--green);letter-spacing:.11em}.card h3{font-size:21px;margin:7px 0 10px}.card a{color:var(--green);font-weight:800;text-decoration:none}.card a:hover{text-decoration:underline}.two{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.value{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:12px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.step{border:1px solid var(--line);border-radius:18px;padding:21px;background:#fff}
.pagehero{padding:58px 0 42px;background:linear-gradient(135deg,#f3f8f7,#fff)}.pagehero h1{font-size:clamp(34px,5vw,55px);margin:0 0 12px}.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:12px}.breadcrumb a{text-decoration:none}.prose{max-width:900px}.prose h2{font-size:31px;margin-top:45px}.prose h3{font-size:21px;margin-top:28px}.prose p,.prose li{color:#425e65}.detail-points{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:28px 0}.detail-point{border:1px solid var(--line);border-radius:17px;padding:20px;background:#fff}.detail-point strong{display:block;margin-bottom:6px}.notice{border-left:4px solid var(--gold);background:#fff8e8;padding:17px 20px;border-radius:0 12px 12px 0}
table{width:100%;border-collapse:collapse;background:#fff}th,td{border:1px solid var(--line);padding:15px;text-align:left;vertical-align:top}th{width:190px;background:#f7faf9}.contactgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contactcard{border:1px solid var(--line);border-radius:20px;padding:25px}.big{font-size:24px;font-weight:900;word-break:break-word}.cta{background:var(--ink);color:#fff;border-radius:28px;padding:37px;display:flex;align-items:center;justify-content:space-between;gap:25px}.cta .btn{background:#fff;color:var(--ink)}
.service-list{display:grid;gap:18px}.service-row{display:grid;grid-template-columns:130px 1fr auto;align-items:center;gap:22px;border:1px solid var(--line);border-radius:20px;padding:24px;background:#fff}.service-row .badge{font-size:12px;font-weight:900;color:var(--green);letter-spacing:.1em}.service-row h3{margin:0 0 7px;font-size:22px}.service-row p{margin:0;color:var(--muted)}.service-row a{text-decoration:none;font-weight:800;color:var(--green);white-space:nowrap}
footer{background:var(--footer);color:#fff;padding:48px 0 22px}.footergrid{display:grid;grid-template-columns:1.25fr .75fr .9fr;gap:36px;align-items:start}.footerbrand{display:flex;align-items:center;gap:18px}.footer-mark{width:54px;height:54px;flex:0 0 54px}.footer-title{font-size:26px;font-weight:900;letter-spacing:.05em}.footer-sub{font-size:13px;color:#c6d8da;margin-top:2px}.footer-copy{margin-top:16px;max-width:420px;color:#b8cbcd;font-size:13px}.footer-heading{font-size:14px;font-weight:900;margin-bottom:12px}.footer-links{display:grid;gap:7px}.footer-links a{color:#dce8e7;text-decoration:none}.small{font-size:13px;color:#b8cbcd}.footer-bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:32px;padding-top:20px;font-size:12px;color:#9fb8bb}.footer-bottom a{color:#cfe0e2;text-decoration:none}
@media(max-width:900px){.head{align-items:flex-start;padding:14px 0}.nav{justify-content:flex-end}.herogrid,.two,.contactgrid{grid-template-columns:1fr}.services{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr 1fr}.detail-points{grid-template-columns:1fr 1fr}.footergrid{grid-template-columns:1fr}.service-row{grid-template-columns:100px 1fr}.service-row a{grid-column:2}}
@media(max-width:650px){.logo img{width:220px}.nav{display:none}.hero{padding:58px 0}.section{padding:58px 0}.services,.steps,.detail-points{grid-template-columns:1fr}.cta{display:block}.cta .btn{margin-top:14px}th,td{display:block;width:100%}.service-row{grid-template-columns:1fr}.service-row a{grid-column:1}.footerbrand{align-items:flex-start}}

/* v3: header/logo and headline wrapping fixes */
.logo{display:flex;align-items:center;flex:0 0 auto}
.logo img{width:300px;height:auto;display:block}
.head{min-height:82px}
.section-head{max-width:1040px}
.section-head h2{font-size:clamp(29px,3.35vw,41px)}
.heading-segment{display:inline-block;white-space:nowrap}
.heading-segment + .heading-segment{margin-left:.22em}
@media(max-width:650px){
  .logo img{width:238px}
  .heading-segment{white-space:normal;display:inline}
  .heading-segment + .heading-segment{margin-left:0}
}
