:root{--ink:#4c4238;--ink-soft:#7a6f62;--ground:#faf6ed;--ground-deep:#f2ecdd;--forest:#2e5b44;--forest-deep:#24402f;--leaf:#6d9b77;--sun:#d9a441;--line-green:#06c755;--font-display:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;--font-body:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic","Noto Sans JP",sans-serif;--maxw:960px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink);background:var(--ground);letter-spacing:.02em;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.9}img{max-width:100%;display:block}a{color:var(--forest)}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}section{padding:72px 0}.eyebrow{letter-spacing:.22em;color:var(--leaf);text-transform:uppercase;margin:0 0 14px;font-size:12.5px;font-weight:600}h2{font-family:var(--font-display);color:var(--forest);text-wrap:balance;margin:0 0 10px;font-size:clamp(24px,4.2vw,32px);font-weight:600;line-height:1.5}.lede{max-width:38em;margin:0 0 40px}.fade{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(16px)}.fade.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fade{opacity:1;transition:none;transform:none}*,:before,:after{transition:none!important;animation:none!important}}.hero{align-items:flex-end;min-height:88vh;display:flex;position:relative;overflow:hidden}.hero-bg{object-fit:cover;object-position:center 30%;width:100%;height:100%;position:absolute;inset:0}.hero-shade{background:linear-gradient(178deg,#2e5b442e 0%,#2642328c 55%,#1e3227db 100%);position:absolute;inset:0}.hero-inner{width:100%;max-width:var(--maxw);color:#fcf9f1;margin:0 auto;padding:96px 22px 64px;position:relative}.hero .eyebrow{color:#cfe3d3}.hero h1{font-family:var(--font-display);text-wrap:balance;text-shadow:0 1px 24px #14231b73;margin:0 0 20px;font-size:clamp(29px,5.6vw,50px);font-weight:600;line-height:1.55}.hero p.sub{color:#f1ebdd;max-width:34em;margin:0 0 34px;font-size:clamp(15px,2.2vw,17.5px)}.hero-badges{flex-wrap:wrap;gap:10px;margin:0 0 30px;padding:0;list-style:none;display:flex}.hero-badges li{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);letter-spacing:.04em;color:#fcf9f1;background:#faf6ed29;border:1px solid #faf6ed73;border-radius:999px;padding:7px 16px;font-size:13.5px}.btn-line{background:var(--line-green);color:#fff;letter-spacing:.05em;border-radius:999px;align-items:center;gap:10px;padding:16px 34px;font-size:17px;font-weight:700;text-decoration:none;transition:transform .15s;display:inline-flex;box-shadow:0 6px 22px #06c75559}.btn-line:hover{transform:translateY(-2px)}@media (max-width:420px){.btn-line{gap:8px;padding:14px 22px;font-size:14.5px}}.btn-line:focus-visible{outline-offset:3px;outline:3px solid #fff}.btn-line svg{flex:none}.btn-note{color:#dce8de;margin-top:12px;font-size:12.5px}.stats{background:var(--forest);color:#f5f1e6;padding:54px 0}.stats-grid{text-align:center;grid-template-columns:repeat(4,1fr);gap:28px;display:grid}.stat b{font-family:var(--font-display);color:#fff;font-variant-numeric:tabular-nums;font-size:clamp(26px,4vw,38px);font-weight:600;line-height:1.2;display:block}.stat b small{font-size:.5em;font-weight:600}.stat span{letter-spacing:.08em;color:#c9dccb;margin-top:8px;font-size:13px;display:block}@media (max-width:640px){.stats-grid{grid-template-columns:repeat(2,1fr);gap:30px 14px}}.why-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.why-card{border-top:4px solid var(--leaf);background:#fff;border-radius:14px;padding:30px 26px;box-shadow:0 1px 8px #4c42380f}.why-card h3{font-family:var(--font-display);color:var(--forest);margin:0 0 12px;font-size:19px;line-height:1.6}.why-card p{margin:0;font-size:14.5px}@media (max-width:760px){.why-grid{grid-template-columns:1fr}}.message-grid{grid-template-columns:340px 1fr;align-items:start;gap:48px;display:grid}.message-photo{border-radius:14px;margin:0;overflow:hidden}.message-photo img{border-radius:14px}.message-photo figcaption{color:var(--leaf);letter-spacing:.06em;padding:10px 2px 0;font-size:12.5px}.message-body p{max-width:36em;margin:0 0 1.4em}.message-sign{font-family:var(--font-display);color:var(--forest);letter-spacing:.1em;margin-top:28px;font-size:15px}@media (max-width:760px){.message-grid{grid-template-columns:1fr}.message-photo{max-width:340px}}.course{background:var(--ground-deep)}.course-grid{grid-template-columns:1fr 1fr;align-items:stretch;gap:24px;display:grid}.course-card{background:#fff;border-radius:16px;flex-direction:column;padding:34px 30px;display:flex;box-shadow:0 1px 8px #4c423812}.course-tag{letter-spacing:.14em;color:#fff;background:var(--leaf);border-radius:999px;align-self:flex-start;margin-bottom:16px;padding:4px 16px;font-size:12.5px;font-weight:700}.course-card.full .course-tag{background:var(--forest)}.course-card h3{font-family:var(--font-display);color:var(--forest);margin:0 0 6px;font-size:22px;line-height:1.5}.course-pay{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;margin:0 0 18px;font-size:20px}.course-pay small{color:var(--ink-soft);font-size:13px}.course-list{gap:10px;margin:0;padding:0;font-size:14.5px;list-style:none;display:grid}.course-list li{align-items:baseline;gap:10px;display:flex}.course-list .dot{color:var(--leaf);flex:none;font-size:10px;position:relative;top:-2px}.course-note{color:var(--ink-soft);margin-top:22px;font-size:13px}@media (max-width:760px){.course-grid{grid-template-columns:1fr}}.work-grid{grid-template-columns:1fr 380px;align-items:center;gap:48px;display:grid}.work-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.work-list li{background:#fff;border-radius:10px;align-items:baseline;gap:14px;padding:16px 20px;display:flex;box-shadow:0 1px 6px #4c423812}.work-list .dot{color:var(--leaf);flex:none;font-size:10px;position:relative;top:-2px}.work-photo{border-radius:14px;margin:0;overflow:hidden}.work-photo img{border-radius:14px}@media (max-width:760px){.work-grid{grid-template-columns:1fr}.work-photo{order:-1;max-width:420px}}.vision-list{gap:20px;display:grid}.vision-card{background:#fff;border-radius:14px;align-items:flex-start;gap:22px;padding:30px 28px;display:flex;box-shadow:0 1px 8px #4c42380f}.vision-num{background:var(--forest);color:#fff;width:46px;height:46px;font-family:var(--font-display);letter-spacing:.04em;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:17px;display:inline-flex}.vision-card h3{font-family:var(--font-display);color:var(--forest);margin:4px 0 10px;font-size:19px;line-height:1.6}.vision-card p{margin:0;font-size:14.5px}@media (max-width:560px){.vision-card{flex-direction:column;gap:12px}}.voice{background:var(--ground-deep)}.voice-grid{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}.voice-card{background:#fff;border-radius:16px;padding:32px 30px;box-shadow:0 1px 8px #4c423812}.voice-head{align-items:center;gap:16px;margin-bottom:20px;display:flex}.voice-avatar{object-fit:cover;border:2px solid var(--leaf);border-radius:50%;flex:none;width:64px;height:64px}.voice-card .motto{font-family:var(--font-display);color:var(--forest);margin:4px 0 0;font-size:17px;line-height:1.7}.voice-card .motto:before{content:"“";color:var(--sun);margin-right:2px}.voice-card .motto:after{content:"”";color:var(--sun);margin-left:2px}.voice-card .who{color:var(--ink-soft);letter-spacing:.04em;margin:0;font-size:12.5px}.voice-qa{margin:0}.voice-qa dt{color:var(--forest);margin:18px 0 6px;padding-left:1.6em;font-size:14.5px;font-weight:600;position:relative}.voice-qa dt:before{content:"Q";color:var(--sun);font-family:var(--font-display);font-weight:700;position:absolute;top:0;left:0}.voice-qa dd{color:var(--ink);margin:0;font-size:14px}@media (max-width:860px){.voice-grid{grid-template-columns:1fr}}.map-wrap{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 8px #4c423814}.map-wrap iframe{border:0;width:100%;height:340px;display:block}.map-links{flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:18px;font-size:14.5px;display:flex}.map-links a{color:var(--forest);font-weight:600}.map-links span{color:var(--ink-soft)}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.gallery-grid figure{border-radius:12px;margin:0;position:relative;overflow:hidden}.gallery-grid img{object-fit:cover;width:100%;height:220px}.gallery-grid figcaption{color:#fcf9f1;letter-spacing:.08em;background:linear-gradient(#0000,#1e3227bf);padding:26px 14px 10px;font-size:12.5px;position:absolute;bottom:0;left:0;right:0}@media (max-width:640px){.gallery-grid{grid-template-columns:1fr}.gallery-grid img{height:200px}}.req-title{font-family:var(--font-display);color:var(--forest);letter-spacing:.06em;margin:34px 0 14px;font-size:18px}.req-table-wrap{background:#fff;border-radius:14px;overflow-x:auto;box-shadow:0 1px 8px #4c423814}table.req{border-collapse:collapse;width:100%;font-size:15px}table.req th,table.req td{text-align:left;vertical-align:top;border-bottom:1px solid #eee7d6;padding:16px 22px}table.req tr:last-child th,table.req tr:last-child td{border-bottom:none}table.req th{width:9.5em;color:var(--forest);font-weight:600;font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap}table.req td{font-variant-numeric:tabular-nums}.req-note{color:var(--ink-soft);margin-top:16px;font-size:13px}.flow-list{counter-reset:flow;grid-template-columns:repeat(4,1fr);gap:18px;margin:0;padding:0;list-style:none;display:grid}.flow-list li{text-align:center;counter-increment:flow;background:#fff;border-radius:14px;padding:26px 22px 24px;box-shadow:0 1px 8px #4c42380f}.flow-list li:before{content:counter(flow);background:var(--forest);color:#fff;width:38px;height:38px;font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;margin-bottom:12px;font-size:17px;display:inline-flex}.flow-list b{color:var(--forest);margin-bottom:6px;font-size:15.5px;display:block}.flow-list p{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.7}@media (max-width:760px){.flow-list{grid-template-columns:1fr 1fr}}.faq details{background:#fff;border-radius:12px;margin-bottom:14px;box-shadow:0 1px 6px #4c423812}.faq summary{cursor:pointer;color:var(--forest);align-items:baseline;gap:14px;padding:20px 24px;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary .q{color:var(--sun);font-family:var(--font-display);flex:none;font-weight:700}.faq details p{margin:0;padding:0 24px 22px 52px;font-size:15px}.faq summary:focus-visible{outline:3px solid var(--leaf);outline-offset:2px;border-radius:12px}.cta{background:var(--forest);color:#f5f1e6;text-align:center;padding:84px 0}.cta .eyebrow{color:#c9dccb}.cta h2{color:#fff}.cta p{color:#dce8de;max-width:34em;margin:0 auto 36px}.cta .btn-note{color:#c9dccb}footer{background:var(--forest-deep);color:#b9cdbb;text-align:center;padding:30px 0;font-size:13px}footer a{color:#dce8de}
