:root{--ink:#202225;--muted:#6f756f;--line:#e4e1d9;--bg:#fbfaf7;--surface:#fff;--navy:#17324d;--green:#2f6f5e;--gold:#b88a3b;--soft:#eef4f1;--radius:18px;--shadow:0 18px 45px rgba(23,50,77,.08)}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--bg);line-height:1.75}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1120px;margin:auto;padding:0 24px}
.topbar{background:#11283d;color:#fff;font-size:13px}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;padding:8px 24px}
.header{position:sticky;top:0;z-index:20;background:rgba(251,250,247,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px}
.brand{display:flex;align-items:center;min-height:44px}
.brand img{max-height:52px;width:auto}
.links{display:flex;gap:20px;font-size:14px;color:#39423f;flex-wrap:wrap}
.links a{padding:6px 2px;border-bottom:2px solid transparent}
.links a:hover,.links a.is-current{border-bottom-color:var(--green);color:var(--green)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:999px;font-weight:700;border:1px solid transparent}
.btn.primary{background:var(--green);color:#fff}
.btn.secondary{border-color:var(--line);background:#fff}
.btn:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #2783de;outline-offset:2px}
.crumbs{background:#f3f1ec;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}
.crumbs .wrap{padding:10px 24px}
.crumbs i{font-style:normal;margin:0 8px;color:#b7b3aa}
.crumbs a:hover{color:var(--green)}
.hero{padding:80px 0 64px;background:linear-gradient(135deg,#fbfaf7 0%,#eef4f1 62%,#f7efe2 100%)}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}
.eyebrow{color:var(--green);font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:13px;margin:0}
.hero h1{font-size:clamp(32px,4.4vw,58px);line-height:1.18;margin:12px 0 18px;letter-spacing:-.03em}
.lead{font-size:18px;color:#49514d;max-width:680px}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero-card{background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:28px;padding:24px;box-shadow:var(--shadow)}
.hero-card h2{font-size:20px;margin:0 0 16px}
.portrait{border-radius:20px;overflow:hidden;border:1px solid var(--line);margin-bottom:18px;background:#f0efed}
.portrait img{width:100%}
.portrait figcaption{font-size:13px;color:var(--muted);padding:10px 14px;background:#fff}
.page-hero{padding:56px 0 44px;background:linear-gradient(135deg,#fbfaf7,#eef4f1)}
.page-hero h1{font-size:clamp(28px,3.6vw,44px);line-height:1.25;margin:10px 0 14px;letter-spacing:-.02em}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.checks li{display:flex;gap:10px}
.checks li:before{content:"\2713";color:var(--green);font-weight:900}
.plain{padding-left:1.1em;margin:0;display:grid;gap:8px}
.section{padding:64px 0}
.section h2{font-size:clamp(26px,2.8vw,38px);line-height:1.28;margin:0 0 14px}
.section h3{color:var(--navy)}
.section-head{max-width:780px;margin-bottom:32px}
.muted{color:var(--muted)}
.grid{display:grid;gap:18px}
.cols3{grid-template-columns:repeat(3,1fr)}
.cols2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 6px 20px rgba(23,50,77,.04)}
.card h3{margin:0 0 8px;font-size:20px}
.card p{margin:0 0 8px}
.more a{color:var(--green);font-weight:700;font-size:14px}
.tag{display:inline-block;background:var(--soft);color:var(--green);font-size:12px;font-weight:800;border-radius:999px;padding:4px 10px;margin-bottom:12px}
.band{background:var(--navy);color:#fff}
.band .muted{color:rgba(255,255,255,.72)}
.band .eyebrow{color:#d6b46d}
.band .card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.2);color:#fff;box-shadow:none}
.band .card h3{color:#fff}
.white{background:#fff}
.steps{counter-reset:step}
.step{position:relative;padding-left:60px}
.step:before{counter-increment:step;content:counter(step);position:absolute;left:16px;top:24px;width:34px;height:34px;border-radius:50%;background:var(--gold);color:#fff;display:grid;place-items:center;font-weight:900}
.compare{overflow:auto}
.compare table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;font-size:15px}
.compare th,.compare td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
.compare th{background:#f2f0ea;color:var(--navy)}
.compare tr:last-child td{border-bottom:0}
.faq{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:12px}
.faq summary{font-weight:700;cursor:pointer;color:var(--navy);min-height:28px}
.faq p{margin:12px 0 0;color:#49514d}
.cta-card{background:linear-gradient(135deg,#eef4f1,#fff);border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow)}
.cta-card h2{margin:10px 0 10px}
.notice{background:#fbebde;border:1px solid #edd6bd;border-radius:14px;padding:16px 20px;color:#6d4a1f;font-size:15px}
.profile{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:stretch}
.profile-visual{border-radius:24px;overflow:hidden;border:1px solid var(--line);background:#f0efed}
.profile-visual img{width:100%;height:100%;object-fit:cover}
.service-list{columns:2;column-gap:28px;padding-left:1.1em}
.service-list li{break-inside:avoid;margin:0 0 8px}
.form{display:grid;gap:16px;max-width:720px}
.form label{display:grid;gap:6px;font-weight:700;font-size:15px}
.form input,.form select,.form textarea{font:inherit;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;min-height:44px}
.form textarea{min-height:140px}
.dl-list{display:grid;gap:12px;padding:0;list-style:none}
.dl-list li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}
.footer{padding:44px 0 32px;border-top:1px solid var(--line);color:var(--muted);font-size:14px;background:#f4f2ed}
.foot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:28px}
.foot-grid h4{margin:0 0 10px;color:var(--navy);font-size:14px}
.foot-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot-grid a:hover{color:var(--green)}
.foot-note{margin:0 0 8px}
@media(max-width:900px){.foot-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.hero-grid,.cols3,.cols2,.profile{grid-template-columns:1fr}.links{display:none}.hero{padding:44px 0}.section{padding:44px 0}.service-list{columns:1}.topbar .wrap{display:block}.wrap{padding:0 18px}.nav{padding:12px 18px}.cta-card{padding:24px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
