:root{--bg:#f6faee;--card:#fff;--ink:#1b2a13;--sub:#5a6b82;--navy:#3a7d1c;--navy2:#5a9a22;--acc:#99cc33;--accd:#4a7c12;--line:#dce8c6;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0b1522;--card:#12223a;--ink:#e8eef7;--sub:#9db0c8;--line:#233755}}
:root[data-theme="dark"]{--bg:#0b1522;--card:#12223a;--ink:#e8eef7;--sub:#9db0c8;--line:#233755}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{background:var(--bg);color:var(--ink);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;line-height:1.8;line-break:strict;word-break:auto-phrase;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-feature-settings:"palt";letter-spacing:.02em}
@supports (text-box:trim-both cap alphabetic){h1,h2,h3,h4,.eyebrow,.btn,.cta,.tag,.ttl span{text-box:trim-both cap alphabetic}h1,h2,h3,h4{line-height:1.5}.btn,.cta{padding-block:calc(13px + .25em)}.cta{padding-block:calc(8px + .25em)}}
a{color:inherit;text-decoration:none}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:#99cc33;color:#1b2a13}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:88px}
.logo{--lh:72px;position:relative;display:block;flex:none;width:calc(var(--lh)*1.5);height:var(--lh);line-height:0}
.logo img{display:block;width:100%;height:100%}
.gear{position:absolute;left:13.9%;top:12.9%;width:23.34%;height:35%;transform-origin:50% 50%;animation:spin 8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fl{to{transform:translateY(-8px)}}
.spin{transform-box:fill-box;transform-origin:center;animation:spin 16s linear infinite}
.spin.r{animation-direction:reverse;animation-duration:11s}
.float{animation:fl 5s ease-in-out infinite alternate}
@media(prefers-reduced-motion:reduce){.gear,.spin,.float{animation:none}}
nav ul{display:flex;gap:26px;list-style:none;padding:0;font-size:14px}
nav a:hover{color:#fff}
.cta,nav li.menu-cta>a{background:#2f6b1a;color:#fff!important;padding:8px 18px;border-radius:99px;font-weight:700}
#bt{display:none;background:none;border:0;color:#111;font-size:26px;cursor:pointer}
.hero{background:linear-gradient(135deg,#2f6b1a,#4f8f21 62%,#8dc63f);color:#fff;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.25),transparent 70%)}
.hero .wrap{padding:88px 20px 96px;position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hero-art{display:block;width:100%;max-width:480px;height:auto;justify-self:end;filter:drop-shadow(0 18px 30px rgba(0,0,0,.18))}
.eyebrow{color:var(--acc);font-weight:700;letter-spacing:.2em;font-size:12px}
.hero h1{font-size:clamp(28px,4.2vw,46px);line-height:1.35;margin:22px 0 18px}
.hero p{max-width:560px;opacity:.88}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.btn{padding:13px 26px;border-radius:99px;font-weight:700;border:2px solid #fff}
.btn.p{background:var(--acc);border-color:var(--acc);color:#111}
section{padding:80px 0}
.ttl{text-align:center;margin-bottom:44px}
.ttl span{display:block;color:var(--accd);font-weight:700;letter-spacing:.25em;font-size:12px}
.ttl h2{font-size:clamp(22px,3.4vw,32px);margin-top:10px}
.grp{margin-bottom:38px}
.grp h3{display:flex;align-items:center;gap:10px;font-size:17px;margin-bottom:16px}
.grp .lead{color:var(--sub);font-size:14px;margin:-6px 0 16px}
.tag{margin-left:auto;font-size:11px;letter-spacing:.14em;padding:3px 12px;border-radius:99px;background:#111;color:var(--acc)}
.tag.p{background:var(--acc);color:#111}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.chips a{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);padding:8px 16px;border-radius:10px;font-size:13px}
.chips b{color:#eaf8c4;margin-right:6px}
.grp h3:before{content:"";width:6px;height:22px;border-radius:3px;background:var(--acc)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px;transition:.2s}
.card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.14)}
.ic{width:46px;height:46px;border-radius:12px;background:var(--navy);display:grid;place-items:center;margin-bottom:14px}
.ic svg{width:24px;height:24px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.card h4{font-size:16px;margin-bottom:6px}
.card p{font-size:13.5px;color:var(--sub)}
.alt{background:var(--card)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;counter-reset:s}
.steps div{counter-increment:s;padding:22px;border-radius:14px;background:var(--bg);border:1px solid var(--line)}
.steps div:before{content:"0" counter(s);color:var(--accd);font-weight:900;font-size:26px;display:block}
.steps b{display:block;margin:4px 0}
.steps p{font-size:13.5px;color:var(--sub)}
.contact{background:linear-gradient(135deg,#2f6b1a,#5a9a22);color:#fff;text-align:center}
.contact .ttl span,.hero .eyebrow{color:#eaf8c4}
.contact p{margin:12px 0 28px;opacity:.88}
.partners{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.partners a{padding:12px 22px;border:1px solid var(--line);background:var(--card);border-radius:10px;font-size:14px}
.partners a:hover{border-color:var(--acc)}
footer{background:#244a13;color:#d3e2c3;font-size:13px;padding:40px 0}
footer .wrap{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}
footer ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:16px}
@media(max-width:780px){
 #bt{display:block}
 header .wrap{height:76px}
 .logo{--lh:60px}
 .hero .wrap{grid-template-columns:1fr;padding:56px 20px 64px;gap:28px}
 .hero-art{justify-self:center;max-width:340px}
 nav{position:absolute;left:0;right:0;top:76px;background:#fff;border-bottom:3px solid var(--acc);display:none;padding:10px 20px 20px}
 nav.open{display:block}
 nav ul{flex-direction:column;gap:0}
 nav li a{display:block;padding:13px 0;border-bottom:1px solid #e5e5e5}
 section{padding:56px 0}
}
.page-main{padding:56px 0 80px;min-height:50vh}
.entry{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:32px}
.entry h1{font-size:clamp(22px,3.4vw,30px);margin-bottom:20px;padding-left:14px;border-left:6px solid var(--acc)}
.entry h2{font-size:20px;margin:28px 0 10px}
.entry p,.entry ul,.entry ol,.entry table{margin-bottom:16px}
.entry ul,.entry ol{padding-left:1.4em}
.entry a{color:var(--accd);text-decoration:underline}
.entry table{border-collapse:collapse;width:100%}
.entry th,.entry td{border:1px solid var(--line);padding:10px 12px;text-align:left}
.entry img{max-width:100%;height:auto}
@media(max-width:780px){.entry{padding:20px}}

.page-hero{background:linear-gradient(135deg,#2f6b1a,#5a9a22 65%,#8dc63f);color:#fff;padding:44px 0}
.page-hero .eyebrow{display:block;color:#eaf8c4;font-weight:700;letter-spacing:.22em;font-size:12px}
.page-hero h1{font-size:clamp(24px,4vw,36px);margin-top:14px;line-height:1.4}
.entry .lead{color:var(--sub);margin-bottom:26px}
dl.spec{display:grid;grid-template-columns:200px 1fr;border-top:1px solid var(--line)}
dl.spec dt,dl.spec dd{padding:16px 18px;border-bottom:1px solid var(--line);margin:0}
dl.spec dt{background:rgba(153,204,51,.16);font-weight:700}
.policy h2{font-size:18px;margin:34px 0 10px;padding-left:12px;border-left:5px solid var(--acc)}
.policy h2:first-of-type{margin-top:0}
.linkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:8px}
a.lk{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:18px 44px 18px 20px;position:relative;background:var(--card);transition:.2s}
.entry a.lk{background:var(--bg)}
a.lk:hover{border-color:var(--acc);transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.1)}
a.lk b{display:block;font-size:16px}
a.lk span{display:block;font-size:13px;color:var(--sub);margin-top:2px}
a.lk:after{content:"\2197";position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--accd);font-weight:700}
.form label,.form .lb{display:block;font-weight:700;margin:22px 0 6px}
.form .rq,.form .op{font-size:11px;padding:2px 8px;border-radius:99px;margin-left:8px;color:#fff;background:#d9534f;vertical-align:middle}
.form .op{background:#8a9a7a}
.entry input[type=text],.entry input[type=email],.entry input[type=tel],.entry input[type=url],.entry textarea,.entry select{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.entry input:focus,.entry textarea:focus{outline:3px solid rgba(153,204,51,.5);border-color:var(--acc)}
.entry textarea{min-height:180px}
.form .radios{display:grid;gap:10px}
.form .radios label{display:flex;align-items:center;gap:10px;margin:0;font-weight:400;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);cursor:pointer}
.entry input[type=submit],.form button.send{display:block;margin:32px auto 0;border:0;cursor:pointer;font:inherit;font-weight:700;background:#2f6b1a;color:#fff;padding:14px 56px;border-radius:99px}
.entry input[type=submit]:hover,.form button.send:hover{background:#244a13}
@media(max-width:780px){dl.spec{grid-template-columns:1fr}dl.spec dt{border-bottom:0;padding-bottom:6px}dl.spec dd{padding-top:6px}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form label.agree{display:flex;align-items:center;gap:10px;font-weight:400;margin:24px 0 0}
.form label.agree input{width:auto}
.notice{padding:14px 18px;border-radius:10px;background:rgba(217,83,79,.1);border:1px solid #d9534f;margin-bottom:20px}
.notice ul{margin:6px 0 0;padding-left:1.4em}
.center{text-align:center}

