:root{--bg:#fffaf0;--card:#fff;--main:#f29b4c;--main-d:#c97322;--green:#8cc67f;--blue:#7fb7e0;--text:#4a3f35;--soft:#fff0d6}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Hiragino Maru Gothic ProN","BIZ UDPGothic","Noto Sans CJK JP","Yu Gothic",Meiryo,sans-serif;color:var(--text);background:var(--bg);line-height:1.85;font-size:16px}
img{max-width:100%;height:auto;display:block}
a{color:var(--main-d)}
.wrap{max-width:960px;margin:0 auto;padding:0 20px}
header.site{position:sticky;top:0;z-index:10;background:rgba(255,250,240,.95);border-bottom:2px solid var(--soft)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 20px;max-width:960px;margin:0 auto}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.05rem;text-decoration:none;color:var(--text)}
.brand img{width:36px;height:36px}
.nav ul{display:flex;gap:4px 14px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.nav a{text-decoration:none;font-size:.88rem;color:var(--text);padding:2px 4px}
.nav a:hover{color:var(--main-d)}
.hero{position:relative;background:#fff4dc;overflow:hidden}
.hero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .wrap{position:relative;padding:72px 20px 84px}
.hero .box{background:rgba(255,255,255,.88);border-radius:28px;padding:32px 28px;max-width:520px}
.badge{display:inline-block;background:var(--soft);color:var(--main-d);border-radius:99px;padding:2px 14px;font-size:.85rem;font-weight:700}
.hero h1{font-size:clamp(1.6rem,5vw,2.4rem);line-height:1.4;margin:.5em 0}
.btn{display:inline-block;background:var(--main);color:#fff;text-decoration:none;font-weight:700;border-radius:99px;padding:12px 28px;box-shadow:0 4px 0 var(--main-d)}
.btn:hover{background:var(--main-d)}
section{padding:60px 0}
section:nth-of-type(even){background:var(--soft)}
h2{text-align:center;font-size:1.6rem;margin:0 0 .3em}
h2::after{content:"";display:block;width:60px;height:5px;border-radius:3px;background:var(--green);margin:10px auto 0}
.lead{text-align:center;margin:0 0 32px}
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{background:var(--card);border-radius:22px;padding:24px;box-shadow:0 3px 10px rgba(120,90,50,.08)}
.card img{width:84px;height:84px;margin:0 auto 12px}
.card h3{margin:.2em 0 .4em;text-align:center;font-size:1.1rem}
.timeline{list-style:none;margin:0 auto;padding:0;max-width:640px;position:relative}
.timeline::before{content:"";position:absolute;left:68px;top:8px;bottom:8px;width:4px;background:var(--green);border-radius:2px}
.timeline li{display:flex;gap:18px;margin-bottom:18px;position:relative}
.timeline time{flex:0 0 56px;text-align:right;font-weight:700;color:var(--main-d);padding-top:12px}
.timeline .t{background:var(--card);border-radius:18px;padding:10px 18px;flex:1;position:relative;box-shadow:0 3px 10px rgba(120,90,50,.08)}
.timeline .t::before{content:"";position:absolute;left:-20px;top:20px;width:14px;height:14px;border-radius:50%;background:var(--main);border:3px solid var(--bg)}
.timeline b{display:block}
table{width:100%;border-collapse:collapse;background:var(--card);border-radius:18px;overflow:hidden}
th,td{padding:12px 16px;border-bottom:1px solid #f1e6d0;text-align:left;vertical-align:top}
th{background:#fff7e6;width:32%}
.steps{counter-reset:s;list-style:none;padding:0;margin:28px 0 0;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.steps li{counter-increment:s;background:var(--card);border-radius:18px;padding:18px 18px 18px 58px;position:relative;box-shadow:0 3px 10px rgba(120,90,50,.08)}
.steps li::before{content:counter(s);position:absolute;left:14px;top:16px;width:32px;height:32px;border-radius:50%;background:var(--green);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center}
.sub{font-size:1.2rem;text-align:center;margin:44px 0 12px}
.note{font-size:.85rem;color:#8a7a68}
.staff{text-align:center}
.staff img{width:110px;height:110px;margin:0 auto 10px}
details{background:var(--card);border-radius:16px;padding:14px 20px;margin-bottom:12px;box-shadow:0 3px 10px rgba(120,90,50,.08)}
summary{cursor:pointer;font-weight:700}
details p{margin:.6em 0 0}
.dummy{background:#fff;border:2px dashed var(--main);border-radius:12px;padding:2px 10px;color:var(--main-d);font-weight:700}
form{background:var(--card);border-radius:22px;padding:24px;box-shadow:0 3px 10px rgba(120,90,50,.08)}
label{display:block;font-weight:700;margin-top:12px}
input,textarea,select{width:100%;font:inherit;padding:10px 12px;border:2px solid #f1e6d0;border-radius:12px;background:#fffdf8}
footer{background:#6b5a48;color:#fff;text-align:center;padding:26px 20px;font-size:.85rem}
.sample{background:#6b5a48;color:#fff;text-align:center;font-size:.8rem;padding:4px 10px}
@media(max-width:600px){.nav ul{gap:2px 8px}.nav a{font-size:.8rem}.hero .wrap{padding:40px 16px 56px}.timeline::before{left:62px}.timeline time{flex-basis:50px}th{width:38%}}
