:root { --ink:#102d35; --orange:#ff6433; --mint:#8fd7c8; --cream:#f6f3ec; --white:#fffefa; --line:rgba(16,45,53,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif; font-weight:600; }
a { color:inherit; text-decoration:none; }
main { overflow:hidden; }

.site-header { height:82px; display:flex; align-items:center; padding:0 clamp(24px,5vw,82px); background:rgba(255,254,250,.95); border-bottom:1px solid var(--line); position:relative; z-index:10; }
.brand { display:flex; align-items:center; gap:11px; font-weight:700; letter-spacing:-.04em; white-space:nowrap; }
.brand b { color:var(--orange); }
.brand-mark { width:40px; height:40px; display:grid; place-items:center; background:var(--orange); color:white; border-radius:50% 50% 50% 8px; font-weight:900; }
.site-header nav { margin-left:auto; display:flex; gap:36px; font-size:13px; font-weight:700; }
.site-header nav a:hover { color:var(--orange); }
.header-cta { margin-left:42px; height:48px; display:flex; align-items:center; gap:14px; padding:0 22px; background:var(--ink); color:white; border-radius:4px; font-weight:800; font-size:14px; }
.header-cta span { color:var(--mint); font-size:11px; }

.hero { min-height:760px; position:relative; padding:106px clamp(24px,7vw,112px) 0; background:var(--white); }
.hero-grid { position:absolute; inset:0; opacity:.48; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(to right,#000,transparent 82%); }
.hero-copy { width:58%; position:relative; z-index:2; }
.eyebrow,.section-index { font-size:11px; letter-spacing:.18em; font-weight:900; }
.eyebrow { display:flex; align-items:center; gap:10px; color:var(--orange); }
.eyebrow span { width:28px; height:2px; background:var(--orange); }
.hero h1 { font-size:clamp(50px,6.1vw,88px); line-height:1.06; letter-spacing:-.075em; margin:30px 0 28px; font-weight:900; }
.hero h1>span,.hero h1>em { white-space:nowrap; }
h1 em,h2 em { font-style:normal; color:var(--orange); position:relative; }
.hero h1 em::after { content:""; position:absolute; left:0; right:0; bottom:-3px; height:7px; background:var(--orange); border-radius:100%; opacity:.32; }
.hero-lead { font-size:clamp(17px,1.55vw,22px); line-height:1.9; font-weight:700; letter-spacing:.02em; }
.hero-actions { display:flex; flex-direction:column; align-items:flex-start; gap:18px; margin-top:38px; }
.primary-cta { width:min(470px,100%); min-height:112px; padding:32px 38px; background:var(--orange); color:white; border:2px solid var(--orange); font-size:23px; font-weight:900; display:flex; justify-content:space-between; align-items:center; box-shadow:12px 12px 0 var(--ink); transition:.2s; }
.primary-cta:hover { transform:translate(4px,4px); box-shadow:4px 4px 0 var(--ink); }
.primary-cta span,.contact-actions a span { font-size:22px; }
.hero-actions p { width:min(470px,100%); margin:0; padding:0 4px; display:flex; flex-direction:column; gap:5px; }
.hero-actions b { font-size:15px; }
.hero-actions small { font-size:12px; color:#64777b; }
.hero-visual { position:absolute; z-index:1; width:min(45vw,610px); aspect-ratio:1; right:2.5vw; top:70px; border-radius:50%; background:#d9eee9; }
.orbit { position:absolute; border:1px solid rgba(16,45,53,.25); border-radius:50%; }
.orbit-one { inset:11%; } .orbit-two { inset:27%; border-style:dashed; }
.center-badge { position:absolute; inset:34%; border-radius:50%; background:var(--ink); color:white; display:grid; place-content:center; text-align:center; box-shadow:0 20px 50px rgba(16,45,53,.24); }
.center-badge small { color:var(--mint); letter-spacing:.18em; font-size:9px; }
.center-badge strong { font-size:clamp(25px,3vw,40px); line-height:1.15; margin-top:8px; }
.support-chip { position:absolute; background:white; border:1px solid rgba(16,45,53,.12); padding:13px 18px 13px 12px; display:flex; align-items:center; gap:11px; box-shadow:0 15px 35px rgba(16,45,53,.11); min-width:165px; }
.support-chip i { width:42px; height:42px; display:grid; place-items:center; background:var(--orange); color:white; border-radius:50%; font-style:normal; font-size:22px; }
.support-chip i b { display:block; position:relative; }
.hospital-icon b { width:21px; height:22px; background:white; border-radius:2px 2px 1px 1px; }
.hospital-icon b::before { content:""; position:absolute; width:12px; height:4px; background:var(--orange); left:4.5px; top:6px; box-shadow:4px -4px 0 -1px white; }
.hospital-icon b::after { content:""; position:absolute; width:4px; height:12px; background:var(--orange); left:8.5px; top:2px; }
.car-icon b { width:25px; height:11px; margin-top:7px; background:white; border-radius:6px 7px 3px 3px; }
.car-icon b::before { content:""; position:absolute; left:5px; top:-7px; width:14px; height:9px; background:white; clip-path:polygon(25% 0,75% 0,100% 100%,0 100%); }
.car-icon b::after { content:""; position:absolute; left:4px; top:8px; width:5px; height:5px; border-radius:50%; background:var(--ink); box-shadow:13px 0 0 var(--ink); }
.support-chip span { display:flex; flex-direction:column; font-weight:900; }
.support-chip small { font-size:9px; color:#718287; letter-spacing:.15em; }
.chip-care { top:9%; left:3%; } .chip-car { right:-2%; top:44%; } .chip-car i { background:var(--ink); }
.chip-law { bottom:4%; left:22%; } .chip-law i { background:var(--mint); color:var(--ink); }
.trust-strip { position:absolute; z-index:3; bottom:0; left:0; right:0; height:80px; background:var(--ink); color:white; display:flex; align-items:center; justify-content:center; gap:25px; }
.trust-strip span { font-size:11px; color:var(--mint); letter-spacing:.12em; } .trust-strip b { font-size:18px; }
.trust-strip i { color:#6e898f; font-style:normal; } .trust-strip strong { background:var(--orange); padding:7px 12px; font-size:12px; }

.problem-section { padding:120px clamp(24px,8vw,128px) 140px; }
.section-heading { display:grid; grid-template-columns:.65fr 1fr; align-items:start; }
.section-index { color:#7a8b8e; margin:9px 0; }
.section-heading h2,.support-intro h2,.flow-heading h2,.contact-section h2 { font-size:clamp(38px,5vw,68px); letter-spacing:-.06em; line-height:1.2; margin:0; }
.section-heading h2>span { white-space:nowrap; }
.concern-list { margin:76px 0 0 26%; border-top:1px solid var(--line); }
.concern { min-height:80px; display:grid; grid-template-columns:60px 1fr 46px; align-items:center; border-bottom:1px solid var(--line); }
.concern span { color:var(--orange); font-size:11px; font-weight:900; } .concern p { font-weight:800; margin:0; font-size:16px; }
.concern i { width:35px; height:35px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:#7a8b8e; font-style:normal; }
.bridge-copy { text-align:center; font-size:clamp(28px,4vw,52px); font-weight:900; margin:120px 0 0; letter-spacing:-.05em; }
.bridge-copy span { color:var(--orange); padding:0 8px; }

.support-section { background:var(--ink); color:white; padding:122px clamp(24px,7vw,110px); }
.support-intro { display:grid; grid-template-columns:.4fr 1.25fr .9fr; gap:42px; align-items:end; }
.section-index.light { color:var(--mint); } .support-intro h2 { font-size:clamp(36px,4.5vw,62px); }
.support-intro h2 span { white-space:nowrap; }
.support-intro>p:last-child { line-height:2; color:#b9c8ca; font-size:14px; max-width:390px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:80px; }
.service-card { background:var(--white); color:var(--ink); padding:28px 30px 32px; min-height:386px; display:flex; flex-direction:column; transition:transform .25s; }
.service-card:hover { transform:translateY(-8px); } .service-card:nth-child(2) { background:var(--orange); color:white; } .service-card:nth-child(3) { background:var(--mint); }
.service-top { display:flex; align-items:center; justify-content:space-between; } .service-top span { font-size:11px; font-weight:900; opacity:.65; }
.service-top i { width:54px; height:54px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; font-size:25px; font-style:normal; }
.service-icon b { display:block; position:relative; color:currentColor; }
.service-icon-hospital b { width:26px; height:25px; border:2px solid currentColor; border-radius:3px; }
.service-icon-hospital b::before,.service-icon-hospital b::after { content:""; position:absolute; background:currentColor; border-radius:2px; }
.service-icon-hospital b::before { width:12px; height:4px; left:5px; top:6px; }
.service-icon-hospital b::after { width:4px; height:12px; left:9px; top:2px; }
.service-icon-car b { width:29px; height:12px; margin-top:7px; background:currentColor; border-radius:7px 8px 4px 4px; }
.service-icon-car b::before { content:""; position:absolute; left:6px; top:-8px; width:17px; height:10px; background:currentColor; clip-path:polygon(24% 0,76% 0,100% 100%,0 100%); }
.service-icon-car b::after { content:""; position:absolute; left:4px; top:9px; width:6px; height:6px; border-radius:50%; background:var(--ink); box-shadow:15px 0 0 var(--ink); }
.service-label { margin:52px 0 8px!important; font-size:9px!important; letter-spacing:.18em; font-weight:900; opacity:.65; }
.service-card h3 { font-size:30px; margin:0 0 20px; letter-spacing:-.05em; font-weight:900; } .service-card>p { font-size:13px; line-height:1.9; margin:0; font-weight:700; }
.service-card>small { margin-top:auto; padding-top:20px; border-top:1px solid currentColor; opacity:.65; font-size:10px; }

.promise-section { display:grid; grid-template-columns:1.45fr 1fr; min-height:650px; }
.promise-card { padding:110px clamp(24px,8vw,120px); background:var(--white); }
.promise-card h2 { font-size:clamp(40px,5vw,68px); letter-spacing:-.06em; line-height:1.18; margin:24px 0; }
.promise-card>p:last-of-type { line-height:2; font-size:14px; max-width:560px; }
.promise-card ul { list-style:none; padding:0; margin:48px 0 0; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.promise-card li { padding:24px 16px 0 0; font-size:12px; font-weight:800; display:flex; flex-direction:column; gap:8px; }
.promise-card li b { color:var(--orange); font-size:10px; }
.quote-card { background:var(--orange); color:white; display:flex; flex-direction:column; justify-content:center; padding:70px clamp(35px,6vw,90px); }
.quote-card>span { font:100px Georgia,serif; height:70px; color:rgba(255,255,255,.5); }
.quote-card p { font-size:clamp(24px,2.8vw,38px); line-height:1.45; font-weight:700; letter-spacing:-.04em; } .quote-card p b { color:var(--ink); white-space:nowrap; }
.quote-card small { font-size:13px; font-weight:700; opacity:.88; }

.flow-section { padding:120px clamp(24px,8vw,128px); }
.flow-heading { display:grid; grid-template-columns:.55fr 1fr; }
.flow-list { display:grid; grid-template-columns:repeat(3,1fr); margin-top:76px; border:1px solid var(--line); }
.flow-list article { min-height:350px; padding:28px; position:relative; border-right:1px solid var(--line); } .flow-list article:last-child { border-right:0; }
.flow-list span { font-size:11px; letter-spacing:.18em; font-weight:900; color:var(--orange); }
.flow-list i { position:absolute; right:20px; top:16px; font-style:normal; font-size:75px; font-weight:900; color:rgba(16,45,53,.06); }
.flow-list h3 { margin-top:150px; font-size:26px; font-weight:900; } .flow-list p { font-size:14px; line-height:1.85; color:#3f5a60; font-weight:700; }

.faq-section { background:#e4efec; padding:120px clamp(24px,8vw,128px); display:grid; grid-template-columns:.65fr 1.35fr; gap:80px; }
.faq-heading h2 { font-size:clamp(42px,5vw,66px); letter-spacing:-.06em; line-height:1.15; margin:24px 0; } .faq-heading>p:last-child { line-height:1.8; font-size:17px; font-weight:800; border-left:4px solid var(--orange); padding:10px 0 10px 18px; }
.faq-list { border-top:1px solid rgba(16,45,53,.25); } .faq-list details { border-bottom:1px solid rgba(16,45,53,.25); }
.faq-list summary { min-height:82px; display:grid; grid-template-columns:35px 1fr 30px; align-items:center; cursor:pointer; list-style:none; font-weight:800; font-size:14px; }
.faq-list summary::-webkit-details-marker { display:none; } .faq-list summary span,.faq-list div>span { color:var(--orange); font-size:18px; font-weight:900; }
.faq-list summary i { font-style:normal; transition:transform .2s; } .faq-list details[open] summary i { transform:rotate(45deg); }
.faq-list details>div { display:grid; grid-template-columns:35px 1fr; padding:0 35px 26px 0; } .faq-list details p { margin:0; line-height:1.9; font-size:13px; color:#38545b; font-weight:700; }

.contact-section { position:relative; background:var(--ink); color:white; text-align:center; padding:120px 24px 110px; }
.contact-glow { width:500px; height:500px; border:1px solid rgba(143,215,200,.2); border-radius:50%; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); box-shadow:0 0 0 90px rgba(143,215,200,.03),0 0 0 180px rgba(143,215,200,.02); }
.contact-section>*:not(.contact-glow) { position:relative; z-index:1; } .contact-section h2 { margin:25px 0; } .contact-section h2 em { color:var(--mint); }
.contact-section>p:not(.section-index):not(.contact-note) { color:#c6d2d4; line-height:2; font-size:15px; font-weight:700; }
.contact-actions { margin:40px auto 0; width:min(850px,100%); display:grid; grid-template-columns:repeat(2,1fr); gap:22px; text-align:left; }
.contact-actions a,.phone-contact { min-height:128px; padding:24px 28px; display:grid; grid-template-columns:1fr auto; align-content:center; background:var(--orange); color:white; box-shadow:8px 8px 0 var(--mint); }
.contact-actions a small,.phone-contact small { grid-column:1/-1; margin:0 0 8px; color:white; font-size:11px; font-weight:900; letter-spacing:.12em; }
.contact-actions a b,.phone-contact b { font-size:20px; }
.contact-actions a>span { grid-column:2; grid-row:2; }
.phone-contact { background:white; color:var(--ink); box-shadow:8px 8px 0 var(--orange); }
.phone-contact small { color:var(--orange); }
.phone-contact>span { grid-column:1/-1; margin-top:8px; color:#60767b; font-size:11px; }
.contact-actions>p { grid-column:1/-1; margin:2px 0 0; text-align:center; color:var(--mint); font-size:11px; font-weight:800; letter-spacing:.06em; }
.contact-note { margin-top:24px; color:#799096; font-size:10px; }

footer { padding:60px clamp(24px,6vw,90px) 34px; background:#0a2228; color:white; display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:30px; align-items:center; }
.footer-brand { font-size:16px; } footer>p { color:#94a7ab; font-size:12px; } footer>div { display:flex; justify-content:flex-end; gap:24px; font-size:11px; }
footer>small { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.1); padding-top:25px; color:#657d82; } .mobile-cta { display:none; }

@media (max-width:960px) {
  .site-header nav{display:none}.header-cta{margin-left:auto}.hero{min-height:880px;padding-top:70px}.hero-copy{width:100%}.hero-visual{width:430px;max-width:78vw;top:auto;bottom:72px;right:-40px}.hero-copy h1{font-size:clamp(52px,9vw,82px)}.hero-actions{align-items:flex-start}
  .section-heading,.flow-heading{grid-template-columns:1fr;gap:20px}.concern-list{margin-left:0}.support-intro{grid-template-columns:1fr;gap:22px}.service-grid{grid-template-columns:1fr}.service-card{min-height:330px}.promise-section{grid-template-columns:1fr}.promise-card ul{grid-template-columns:1fr}.promise-card li{flex-direction:row}.flow-list{grid-template-columns:1fr}.flow-list article{min-height:240px;border-right:0;border-bottom:1px solid var(--line)}.flow-list article:last-child{border-bottom:0}.flow-list h3{margin-top:75px}.faq-section{grid-template-columns:1fr;gap:45px}.contact-actions{grid-template-columns:1fr;width:min(470px,100%)}footer{grid-template-columns:1fr;text-align:center}footer .brand{justify-content:center}footer>div{justify-content:center}footer>small{grid-column:auto}
}
@media (max-width:620px) {
  .site-header{height:68px;padding:0 17px}.brand{font-size:13px}.brand-mark{width:34px;height:34px}.header-cta{display:none}.hero{min-height:860px;padding:56px 20px 0}.hero h1{font-size:clamp(38px,11.3vw,50px);margin-top:24px}.hero-lead{font-size:15px}.hero-actions{margin-top:30px;gap:16px}.primary-cta{min-height:96px;padding:27px 25px;font-size:19px;box-shadow:9px 9px 0 var(--ink)}.hero-visual{width:350px;max-width:94vw;bottom:68px;right:-80px}.support-chip{min-width:140px;padding:9px;font-size:12px}.support-chip i{width:34px;height:34px}.chip-care{left:-8%}.chip-car{right:-7%}.chip-law{left:13%;bottom:-2%}.trust-strip{justify-content:flex-start;overflow:hidden;padding:0 20px;gap:15px;white-space:nowrap}.trust-strip span,.trust-strip strong{display:none}
  .problem-section,.support-section,.flow-section,.faq-section{padding:88px 20px}.concern-list{margin-top:55px}.concern{grid-template-columns:38px 1fr 35px}.concern p{font-size:13px}.bridge-copy{margin-top:80px}.service-grid{margin-top:52px}.promise-card{padding:86px 20px}.quote-card{padding:65px 30px}.flow-list{margin-top:52px}.faq-list summary{grid-template-columns:32px 1fr 22px;font-size:13px}.contact-section{padding:92px 20px 105px}footer{padding-bottom:100px}footer>div{flex-direction:column;gap:14px}.mobile-cta{display:flex;position:fixed;z-index:20;left:14px;right:14px;bottom:14px;height:58px;padding:0 22px;align-items:center;justify-content:space-between;background:var(--orange);color:white;font-weight:900;box-shadow:0 7px 25px rgba(16,45,53,.28)}
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *{transition:none!important} }

/* Native Netlify form; no framework or build step is required. */
.contact-layout{width:min(1060px,100%);margin:52px auto 0;display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;text-align:left;align-items:start}
.contact-aside h3{font-size:26px;margin:0 0 18px}.contact-aside>p{font-size:14px;line-height:2;color:#d5e1e2;margin:0 0 18px}
.contact-safety{border-left:3px solid var(--mint);padding-left:16px}.contact-aside .phone-contact{margin-top:28px;box-shadow:none;min-height:120px}
.contact-form{background:var(--white);color:var(--ink);padding:36px;box-shadow:12px 12px 0 var(--orange)}
.contact-form h3{font-size:26px;margin:0 0 6px}.contact-form .form-intro{font-size:13px;color:#4d666c;margin:0 0 28px}.form-intro span{display:block;font-size:11px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}.form-grid label{display:block;font-size:13px;font-weight:800}.form-grid label span,.consent b{color:#c84319}
.form-grid input,.form-grid select{display:block;margin-top:8px;font:inherit;width:100%;min-height:48px;padding:10px 12px;border:1px solid #9db2b4;border-radius:2px;background:#fff;color:var(--ink)}
.form-grid input:focus,.form-grid select:focus,.consent input:focus-visible,.contact-form button:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.consent{display:flex;gap:12px;align-items:flex-start;margin-top:28px;font-size:13px;line-height:1.6;cursor:pointer}.consent input{width:18px;height:18px;flex:none;accent-color:var(--orange);margin-top:2px}.consent a{text-decoration:underline;text-underline-offset:3px}
.contact-form button{width:100%;min-height:62px;margin-top:26px;padding:12px 22px;background:var(--orange);color:white;border:0;font-family:inherit;font-size:18px;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:space-between}
.contact-form button:hover{background:#e8582b}.contact-form .form-note{font-size:11px;color:#547075;line-height:1.7;margin:14px 0 0}
.contact-form .honeypot{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}
.contact-section .contact-note{color:#aec5c6;font-size:11px;margin-top:42px}.operator-note{grid-column:1/-1;font-size:11px;color:#b4c2c4;margin:0}
.simple-page{max-width:860px;margin:0 auto;padding:56px 24px 100px;line-height:1.85}.simple-page h1{font-size:clamp(30px,5vw,48px);line-height:1.3}.simple-page h2{font-size:22px;margin-top:36px}.simple-page a{color:#bd4b28;text-decoration:underline}.simple-page .notice{background:#fff0dc;border-left:4px solid var(--orange);padding:16px 20px}.simple-page .back-link{display:inline-block;margin-top:30px}
@media(max-width:960px){.contact-layout{grid-template-columns:1fr;max-width:620px}}
@media(max-width:620px){.contact-section h2{font-size:30px;line-height:1.35}.contact-layout{margin-top:38px;gap:26px}.contact-form{padding:26px 20px;box-shadow:7px 7px 0 var(--orange)}.form-grid{grid-template-columns:1fr}.contact-section .contact-aside>p{text-align:left}}
