*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#FFFBF4;color:#1F2A44;font-family:'Noto Sans JP',sans-serif;line-height:1.85}
a{color:inherit;text-decoration:none}
a:hover{opacity:.88}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:780px;margin:0 auto;padding:0 24px}
header{background:#fff;border-bottom:1px solid #E6DFD6}
.head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;max-width:1120px;margin:0 auto}
.logo{font-family:'Noto Serif JP',serif;font-weight:700;font-size:24px;letter-spacing:.08em}
nav{display:flex;flex-wrap:wrap;gap:8px}
nav a{padding:10px 22px;font-weight:700;font-size:15px;border-radius:6px}
nav a.on{background:#C8321F;color:#fff}
.crumb{max-width:1120px;margin:0 auto;padding:18px 24px 0;font-size:14px;color:#5B6785}
.crumb a{text-decoration:underline}
.hero{background:linear-gradient(135deg,#FFE9C9 0%,#FFF5E3 50%,#DDEBF7 100%);padding:56px 0 64px;margin-top:18px}
.hero .wrap{display:flex;flex-wrap:wrap;gap:40px;align-items:center;justify-content:space-between}
.hero .txt{flex:1 1 440px}
.hero .pic{flex:0 1 380px;width:380px;max-width:100%}
.hero .pic img{border-radius:12px;box-shadow:0 8px 22px rgba(31,42,68,.15);width:100%}
.eyebrow{margin:0 0 14px;font-size:15px;font-weight:700;letter-spacing:.04em;color:#B8321F}
h1{margin:0;font-family:'Noto Serif JP',serif;font-weight:700;font-size:36px;line-height:1.5;color:#1F2A44}
.lead{margin:16px 0 0;font-size:17px;color:#34405E}
.sec{padding-top:64px}
h2{margin:0 0 20px;font-family:'Noto Serif JP',serif;font-weight:700;font-size:28px;line-height:1.5}
h3.t{margin:32px 0 10px;font-family:'Noto Serif JP',serif;font-size:21px;line-height:1.5}
.prose p{margin:0 0 18px;font-size:16px;color:#34405E}
.quote{margin:28px 0;padding:24px 28px;background:#FFF3DF;border-left:5px solid #F2A33A;border-radius:8px;font-size:16px;color:#34405E}
.quote p{margin:0 0 10px}
.quote p:last-child{margin:0;font-weight:700}
.btn{display:inline-block;padding:14px 34px;background:#C8321F;color:#fff;font-weight:700;border-radius:6px}
.btn.sec2{background:#fff;color:#C8321F;border:2px solid #C8321F;padding:12px 32px}
.note{font-size:14px;color:#5B6785}
.end{text-align:center;padding:72px 24px 88px}
.end p{margin:0 0 20px;font-size:18px;color:#34405E}
footer{background:#1F2A44;color:#C9CFDF;padding:28px 24px;text-align:center;font-size:13px}
footer a{text-decoration:underline;margin:0 6px}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;align-items:start}
.two img{border-radius:12px;box-shadow:0 6px 18px rgba(31,42,68,.12);width:100%}
.panel{background:#fff;border:1px solid #F0E6D6;border-radius:14px;padding:28px;box-shadow:0 6px 18px rgba(31,42,68,.07)}
.panel h3{margin:0 0 10px;font-family:'Noto Serif JP',serif;font-size:22px}
.panel p{margin:0 0 12px;font-size:15px;color:#4A5470}
.step{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:28px;align-items:center;margin-bottom:28px}
.step img{border-radius:12px;box-shadow:0 6px 18px rgba(31,42,68,.12);width:100%}
.step h3{margin:0 0 8px;font-family:'Noto Serif JP',serif;font-size:20px;line-height:1.5}
.step p{margin:0;font-size:15px;color:#4A5470}
.list{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.list li{position:relative;padding-left:26px;font-size:16px;color:#34405E}
.list li:before{content:"";position:absolute;left:4px;top:.62em;width:10px;height:10px;border-radius:50%;background:#F2A33A}
@media (max-width:760px){.step{grid-template-columns:1fr}h1{font-size:28px}.hero{padding:40px 0 48px}}