:root{
  --ink:#26313f; --ink-soft:#5b6775; --line:#efe5d8;
  --orange:#f5811f; --orange-deep:#e06c0a; --orange-soft:#fff0e0;
  --green:#54b15a; --green-deep:#3f9a45; --green-soft:#ecf8ed;
  --amber:#f6a609; --pink:#ff6f61;
  --cream:#fff7ec; --cream2:#fdf2e3; --sky:#eaf3ff;
  --bg:#ffffff;
  --radius:18px; --shadow:0 20px 54px rgba(193,120,40,.13);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Noto Sans JP",-apple-system,"Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--bg);line-height:1.85;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--orange-deep);text-decoration:none}
.wrap{width:min(1120px,calc(100% - 40px));margin:0 auto}
h1,h2,h3{word-break:keep-all;overflow-wrap:anywhere;letter-spacing:.01em}
.eyebrow,.crumb,.tagm,.sub,.subhero p{word-break:keep-all;overflow-wrap:anywhere}
html,body{overflow-x:hidden;max-width:100%;overflow-wrap:anywhere}
table,img,iframe{max-width:100%}
.num{color:var(--orange);font-weight:900}
.numg{color:var(--green-deep);font-weight:900}

/* header */
header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:22px;height:70px}
.logo{display:flex;align-items:center;gap:9px;font-weight:900;font-size:1.24rem;color:var(--ink)}
.logo .mk{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--orange),#ffb15a);display:grid;place-items:center;color:#fff;font-size:.95rem}
.nav .menu{display:flex;gap:20px;margin-left:14px}
.nav .menu a{color:var(--ink-soft);font-weight:700;font-size:.93rem}
.nav .menu a:hover{color:var(--orange-deep)}
.nav .right{margin-left:auto;display:flex;gap:10px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:900;border-radius:999px;padding:12px 22px;font-size:.95rem;cursor:pointer;border:2px solid transparent;transition:.15s;line-height:1.2}
.btn-primary{background:linear-gradient(135deg,var(--orange),#fb9a3d);color:#fff;box-shadow:0 8px 18px rgba(245,129,31,.32)}
.btn-primary:hover{filter:brightness(1.05);transform:translateY(-1px)}
.btn-green{background:linear-gradient(135deg,var(--green),#73c178);color:#fff;box-shadow:0 8px 18px rgba(84,177,90,.3)}
.btn-green:hover{filter:brightness(1.05);transform:translateY(-1px)}
.btn-ghost{background:#fff;color:var(--orange-deep);border-color:#f3cda1}
.btn-ghost:hover{background:var(--orange-soft)}
.btn-lg{padding:17px 34px;font-size:1.1rem}

/* hero */
.hero{background:radial-gradient(1100px 460px at 80% -12%,#fff2df,#fff 60%);padding:60px 0 30px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--orange-soft);color:var(--orange-deep);font-weight:900;font-size:.84rem;padding:8px 16px;border-radius:999px;margin-bottom:18px}
.priceline{font-size:1.05rem;font-weight:800;margin:0 0 6px;color:var(--ink)}
.priceline .num{font-size:1.9rem;vertical-align:-2px}
h1.hl{font-size:clamp(1.95rem,3.7vw,3rem);line-height:1.42;margin:6px 0 16px;font-weight:900}
.hl .mark{background:linear-gradient(transparent 58%,#ffdfa6 58%);padding:0 2px}
.lead{color:var(--ink-soft);font-size:1.04rem;margin:0 0 22px;max-width:560px}
.checks{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:11px}
.checks li{display:flex;gap:11px;align-items:flex-start;font-weight:700}
.checks .ic{flex:none;width:25px;height:25px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:.78rem;margin-top:4px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.cta-note{color:var(--ink-soft);font-size:.85rem;margin-top:12px}

/* product mock */
.mock{background:#fff;border:1px solid #f0dcc2;border-radius:20px;box-shadow:var(--shadow);overflow:hidden}
.mock .bar{height:40px;background:#fff6ec;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:7px;padding:0 14px}
.mock .bar i{width:11px;height:11px;border-radius:50%}
.mock .bar i:nth-child(1){background:#ff7a6e}.mock .bar i:nth-child(2){background:#ffcf4d}.mock .bar i:nth-child(3){background:#5cd07a}
.mock .screen{aspect-ratio:16/10;background:linear-gradient(135deg,#fff7ec,#fffdf9);display:grid;place-items:center;text-align:center;color:var(--ink-soft);padding:24px}
.ph{border:2px dashed #f1c79a;border-radius:14px;padding:24px;background:#fff;color:var(--ink-soft);font-weight:700;font-size:.9rem;display:grid;gap:6px;justify-items:center}
.ph .big{font-size:1.7rem;color:var(--orange)}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;justify-content:center}
.badge{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 15px;font-weight:800;font-size:.84rem;color:var(--ink)}
.badge .d{width:9px;height:9px;border-radius:50%;background:var(--green)}

/* stat band */
.stats{background:linear-gradient(135deg,#f7901f,#fb6d4c);color:#fff;margin-top:32px}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:30px 0}
.stat{text-align:center;padding:8px}
.stat .v{font-size:clamp(1.7rem,3vw,2.4rem);font-weight:900;line-height:1.2}
.stat .v small{font-size:.95rem}
.stat .k{font-size:.86rem;opacity:.95;margin-top:4px;font-weight:700}
.stat+.stat{border-left:1px solid rgba(255,255,255,.28)}

/* sections */
section.blk{padding:66px 0}
section.cream{background:var(--cream)}
.kicker{text-align:center;color:var(--orange);font-weight:900;letter-spacing:.14em;font-size:.8rem;margin-bottom:10px}
h2.t{text-align:center;font-size:clamp(1.55rem,2.8vw,2.15rem);line-height:1.4;margin:0 0 10px;font-weight:900}
h2.t .u{background:linear-gradient(transparent 60%,#ffdfa6 60%)}
.sub{text-align:center;color:var(--ink-soft);max-width:700px;margin:0 auto 38px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 10px 28px rgba(193,120,40,.06)}
.card .ico{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:1.4rem;font-weight:900;margin-bottom:14px;color:#fff}
.card h3{margin:0 0 8px;font-size:1.14rem}
.card p{margin:0;color:var(--ink-soft);font-size:.95rem}
.ico-o{background:linear-gradient(135deg,var(--orange),#ffb15a)}
.ico-g{background:linear-gradient(135deg,var(--green),#7cc880)}
.ico-a{background:linear-gradient(135deg,var(--amber),#ffce5a)}
.prob .ico{background:linear-gradient(135deg,#ff6f61,#ff9d72)}

/* quiz */
.quiz{max-width:760px;margin:0 auto;background:#fff;border:2px solid #ffd9ad;border-radius:22px;padding:34px;box-shadow:var(--shadow)}
.quiz .qnum{display:inline-block;background:var(--orange);color:#fff;font-weight:900;border-radius:999px;padding:5px 16px;font-size:.8rem;margin-bottom:14px}
.quiz .q{font-size:1.22rem;font-weight:900;margin:0 0 4px;line-height:1.5}
.opts{display:grid;gap:12px;margin:20px 0 6px}
.opt{display:flex;gap:13px;align-items:center;text-align:left;background:#fff;border:2px solid var(--line);border-radius:14px;padding:15px 18px;font-weight:700;cursor:pointer;font-size:1rem;font-family:inherit;color:var(--ink);transition:.12s;width:100%}
.opt:hover{border-color:#f3cda1;background:var(--orange-soft)}
.opt .mk{flex:none;width:30px;height:30px;border-radius:50%;background:var(--cream2);color:var(--orange-deep);font-weight:900;display:grid;place-items:center;font-size:.9rem}
.opt.correct{border-color:var(--green);background:var(--green-soft)}
.opt.correct .mk{background:var(--green);color:#fff}
.opt.correct::after{content:"正解";margin-left:auto;color:var(--green-deep);font-weight:900;font-size:.85rem}
.opt.wrong{border-color:#ff7a6e;background:#fff0ee}
.opt.wrong .mk{background:#ff6f61;color:#fff}
.opt:disabled{cursor:default}
.explain{display:none;margin-top:14px;background:var(--sky);border-left:5px solid var(--orange);border-radius:12px;padding:20px}
.explain.show{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.explain p{margin:0 0 10px}.explain p:last-child{margin:0}
.explain b{color:var(--orange-deep)}
.quiz .after{margin-top:18px;text-align:center}
.sample-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
.sample-grid .quiz{max-width:none;margin:0}
.vid-ph{aspect-ratio:16/9;border:2px dashed #f1c79a;border-radius:18px;background:linear-gradient(135deg,#fff7ec,#fffdf9);display:grid;place-content:center;justify-items:center;text-align:center;gap:10px;color:var(--ink-soft);font-weight:800;padding:20px}
.vid-ph .play{width:66px;height:66px;border-radius:50%;background:linear-gradient(135deg,var(--orange),#ffb15a);color:#fff;display:grid;place-items:center;font-size:1.6rem;box-shadow:0 12px 24px rgba(245,129,31,.35)}
.vid-ph .small{font-weight:500;font-size:.8rem;max-width:320px}
.vid-embed{cursor:pointer;display:block}
.vid-embed:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:18px}
.vid-embed .frame{position:relative;padding-top:56.25%;border-radius:18px;overflow:hidden}
.vid-embed .frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vidcap{color:var(--ink-soft);font-size:.92rem;margin:14px 2px 0}
.qmeta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.scorepill{background:var(--green-soft);color:var(--green-deep);font-weight:900;border-radius:999px;padding:6px 15px;font-size:.82rem}
.result{background:var(--green-soft);border-radius:14px;padding:18px;margin-bottom:14px;font-weight:900;color:var(--green-deep);font-size:1.1rem}
.reloadnote{color:var(--ink-soft);font-size:.8rem;text-align:center;margin:16px 0 0}
@media(max-width:880px){.sample-grid{grid-template-columns:1fr}}

/* why / diagrams */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.diagram{margin:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 10px 28px rgba(193,120,40,.06)}
.diagram figcaption{font-weight:900;font-size:1.08rem;margin-bottom:18px;color:var(--ink)}
.diagram .note{color:var(--ink-soft);font-size:.86rem;margin:16px 0 0}
.chain{display:grid;gap:7px;text-align:center}
.cstep{background:#fff7ec;border:1px solid #f1c79a;border-radius:12px;padding:13px;font-weight:800}
.cstep.warn{background:#fff0ee;border-color:#ff7a6e;color:#d6453f}
.arr{color:var(--orange);font-weight:900;font-size:.9rem}
.solve{margin-top:16px;background:var(--green-soft);color:var(--green-deep);border-radius:12px;padding:15px;text-align:center;font-weight:900}
@media(max-width:880px){.why-grid{grid-template-columns:1fr}}
.flow{display:grid;gap:0}
.fstep{border-radius:14px;padding:13px 16px;border:2px solid;text-align:left}
.fstep b{display:block;font-size:1rem;line-height:1.45}
.fstep span{display:block;font-weight:600;color:var(--ink-soft);font-size:.82rem;margin-top:3px}
.fstep.iso{border-color:#c4d0e0;background:#f4f7fb}
.fstep.qmsbox{border-color:var(--orange);background:var(--orange-soft)}
.fstep.qmsbox b{color:var(--orange-deep)}
.fstep.edu{border-color:var(--green);background:var(--green-soft)}
.fstep.edu b{color:var(--green-deep)}
.farr{text-align:center;font-weight:800;color:var(--ink-soft);font-size:.8rem;padding:6px 0}
.pdca{margin-top:12px;text-align:center;font-weight:800;color:var(--orange-deep);background:#fff;border-radius:10px;padding:9px;font-size:.92rem}

/* contents lineup */
.contents-legend{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:28px;font-size:.82rem;color:var(--ink-soft);font-weight:700}
.catgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.catcard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 26px;box-shadow:0 10px 28px rgba(193,120,40,.06)}
.catcard h3{margin:0 0 4px;font-size:1.1rem}
.catcard .ctag{color:var(--ink-soft);font-size:.84rem;margin:0 0 14px;line-height:1.5}
.courselist{list-style:none;margin:0;padding:0}
.courselist li{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.92rem;font-weight:700;padding:9px 0;border-top:1px dashed var(--line)}
.courselist li:first-child{border-top:0}
.lvl{flex:none;font-size:.66rem;font-weight:800;border-radius:6px;padding:2px 8px;color:#fff;white-space:nowrap}
.lvl.n{background:var(--green)}
.lvl.j{background:var(--orange)}
.lvl.k{background:#5b6775}
.contents-cta{text-align:center;margin-top:30px}
.chips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:24px}
.chip-tag{background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-weight:800;font-size:.9rem;color:var(--ink)}
@media(max-width:880px){.catgrid{grid-template-columns:1fr}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;text-align:center}
.step .n{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--orange),#fba94a);color:#fff;font-weight:900;font-size:1.25rem;display:grid;place-items:center;margin:0 auto 14px}
.step h3{margin:0 0 6px;font-size:1.05rem}
.step p{margin:0;color:var(--ink-soft);font-size:.9rem}

/* price */
.pricebox{max-width:640px;margin:0 auto;background:#fff;border:3px solid #ffd9ad;border-radius:24px;padding:38px;text-align:center;box-shadow:var(--shadow)}
.pricebox .tag{display:inline-block;background:var(--orange);color:#fff;font-weight:900;border-radius:999px;padding:6px 18px;font-size:.85rem;margin-bottom:14px}
.pricebox .main{font-size:clamp(2.1rem,5vw,3.1rem);font-weight:900;color:var(--ink);line-height:1.15}
.pricebox .main b{color:var(--orange)}
.pricebox .main small{font-size:1rem;color:var(--ink-soft);font-weight:700}
.pricebox .row{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;margin:16px 0;color:var(--ink-soft);font-weight:700}
.pricebox .grant{background:var(--green-soft);color:var(--green-deep);border-radius:14px;padding:13px 18px;font-weight:800;margin-top:6px;display:inline-block}

/* logos */
.logos{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:8px}
.logo-ph{height:66px;border:1px dashed #f1c79a;border-radius:12px;background:#fff;display:grid;place-items:center;color:#d2a877;font-weight:800;font-size:.8rem}

/* voice */
.voice{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.vcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:0 10px 28px rgba(193,120,40,.06)}
.vcard .stars{color:var(--amber);font-weight:900;margin-bottom:8px}
.vcard .who{display:flex;align-items:center;gap:12px;margin-top:16px}
.vcard .av{width:44px;height:44px;border-radius:50%;background:var(--orange-soft);display:grid;place-items:center;color:var(--orange-deep);font-weight:900}
.vcard .who b{font-size:.92rem}
.vcard .who span{display:block;color:var(--ink-soft);font-size:.8rem;font-weight:500}
.quote{color:var(--ink);font-weight:700}

/* faq */
.faq{max-width:760px;margin:0 auto}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;padding:6px 4px}
.faq summary{font-weight:800;cursor:pointer;padding:15px 18px;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"＋";color:var(--orange);font-weight:900}
.faq details[open] summary::after{content:"−"}
.faq p{margin:0;padding:0 18px 16px;color:var(--ink-soft)}

/* final cta */
.final{background:linear-gradient(135deg,var(--green-deep),#5fb56a);color:#fff;text-align:center;padding:66px 0}
.final h2{font-size:clamp(1.65rem,3vw,2.25rem);margin:0 0 10px}
.final p{opacity:.95;margin:0 0 26px}
.final .btn-primary{background:#fff;color:var(--orange-deep);box-shadow:0 10px 22px rgba(0,0,0,.14)}
.final .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.final .btn-ghost:hover{background:rgba(255,255,255,.12)}

/* apply form */
.applyform{max-width:720px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px;box-shadow:var(--shadow);text-align:left}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ffield{margin-bottom:16px}
.ffield.full{grid-column:1/-1}
.ffield>label{display:block;font-weight:800;font-size:.9rem;margin-bottom:6px}
.req{background:var(--orange);color:#fff;font-size:.66rem;font-weight:800;border-radius:6px;padding:2px 7px;margin-left:6px;vertical-align:2px}
.optbadge{background:#eef1f5;color:var(--ink-soft);font-size:.66rem;font-weight:800;border-radius:6px;padding:2px 7px;margin-left:6px;vertical-align:2px}
.applyform input,.applyform select,.applyform textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;font-size:1rem;font-family:inherit;color:var(--ink);background:#fff}
.applyform input[type=radio],.applyform input[type=checkbox]{width:auto}
.applyform input:focus,.applyform select:focus,.applyform textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}
.applyform textarea{min-height:92px;resize:vertical}
.pay{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.paycard{display:flex;gap:10px;align-items:flex-start;border:2px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;font-weight:800;font-size:.92rem}
.paycard small{display:block;font-weight:500;color:var(--ink-soft);font-size:.76rem;margin-top:2px}
.paycard.sel{border-color:var(--orange);background:var(--orange-soft)}
.cardplans{display:none}
.cardplans.show{display:block}
.cardplans .paycard{margin-top:10px}
.privacy{display:flex;gap:10px;align-items:flex-start;margin:6px 0 18px;font-weight:700;font-size:.92rem}
.applyform .submit{width:100%;border:0;border-radius:999px;padding:16px;font-size:1.12rem;font-weight:900;color:#fff;background:linear-gradient(135deg,var(--green),#73c178);cursor:pointer;box-shadow:0 8px 18px rgba(84,177,90,.3)}
.applyform .submit:hover{filter:brightness(1.05)}
.formresult{display:none;border-radius:12px;padding:16px;margin-top:16px;font-weight:800;background:var(--green-soft);color:var(--green-deep)}
.formresult.show{display:block}
@media(max-width:880px){.frow,.pay{grid-template-columns:1fr}}

footer{background:#2a2118;color:rgba(255,255,255,.72);padding:36px 0;font-size:.86rem}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer a{color:#ffd9ad}
.footlinks{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.logo{white-space:nowrap}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none}}
@media(max-width:560px){
  .nav{gap:10px;height:60px}
  .logo{font-size:1.05rem;gap:7px}
  .nav .right .btn-ghost{display:none}
  .nav .right .btn{padding:9px 15px;font-size:.88rem}
}

/* subpages */
.subhero{background:radial-gradient(1100px 460px at 80% -12%,#fff2df,#fff 60%);padding:58px 0 36px;text-align:center}
.subhero .eyebrow{margin-bottom:12px}
.subhero h1{font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.4;margin:6px 0 14px;font-weight:900}
.subhero p{color:var(--ink-soft);max-width:720px;margin:0 auto;font-size:1.04rem}
.crumb{font-size:.82rem;color:var(--ink-soft);font-weight:700;margin-bottom:8px}
.crumb a{color:var(--orange-deep)}
.svc-row{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center;margin-bottom:46px}
.svc-row:last-child{margin-bottom:0}
.svc-row.rev .svc-text{order:2}
.svc-text h3{font-size:1.35rem;margin:0 0 10px}
.svc-text .tagm{color:var(--orange-deep);font-weight:900;font-size:.85rem;letter-spacing:.06em;margin-bottom:6px}
.svc-text ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:9px}
.svc-text li{display:flex;gap:10px;align-items:flex-start;color:var(--ink);font-weight:700;font-size:.96rem}
.svc-text li::before{content:"✓";color:var(--green);font-weight:900;flex:none}
.svc-row .ph{aspect-ratio:16/11}
@media(max-width:880px){.svc-row{grid-template-columns:1fr;gap:18px}.svc-row.rev .svc-text{order:0}}
