:root{--serif:"Noto Serif JP","Hiragino Mincho ProN",YuMincho,serif;--en:"Cormorant Garamond",Georgia,serif}
body{font-family:var(--serif);font-weight:400;letter-spacing:.035em}
strong{font-weight:700;color:#2c2924}
.hero{grid-template-columns:minmax(0,1.04fr) minmax(25rem,.96fr);min-height:min(48rem,calc(100vh - 6rem));overflow:hidden}
.brand{width:9.2rem}.brand img{display:block;width:100%;height:auto}.brand-name{font-family:var(--en)}
.site-header nav a,.header-cta,.button,.draft-note,.course-card h3 span,dt,.price small{font-family:var(--serif)}
.eyebrow,.section-en,.course-no,.label{font-family:var(--en);font-size:.92rem;font-weight:600;letter-spacing:.2em}
.hero-copy{position:relative;z-index:2;padding:clamp(3rem,7vw,7.5rem)}
.hero-copy::before{content:"";position:absolute;left:clamp(2rem,5vw,5rem);top:clamp(2rem,5vw,5rem);width:4.5rem;border-top:1px solid var(--c-gold)}
h1 span{display:block;white-space:nowrap}.hero .lead{line-height:2.1}
.hero-visual{position:relative;min-height:38rem;background:#d9c7ad;overflow:hidden;isolation:isolate}
.hero-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(56,38,20,.48));z-index:1}
.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 1.5s cubic-bezier(.2,.75,.25,1)}
.hero-visual p{position:absolute;z-index:2;left:2rem;bottom:1.6rem;margin:0;color:#fff;font:600 1.05rem/1.25 var(--en);letter-spacing:.14em;text-transform:uppercase}
.hero-visual p span{display:block;margin-top:.45rem;font:400 .68rem/1.5 var(--serif);letter-spacing:.06em;text-transform:none}
.atmosphere{position:relative;min-height:clamp(20rem,46vw,40rem);overflow:hidden;background:#d6bda8}
.atmosphere::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(54,31,22,.67),rgba(54,31,22,.08) 70%)}
.atmosphere img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.atmosphere>div{position:absolute;z-index:1;left:max(1.5rem,calc((100% - var(--container))/2));bottom:clamp(2rem,7vw,6rem);max-width:34rem;color:#fff;padding-right:1.5rem}
.atmosphere .section-en{color:#f0d59d}.atmosphere p:not(.section-en){font-size:clamp(1.5rem,3.2vw,2.75rem);line-height:1.6;margin:.65rem 0}.atmosphere small{font-size:.7rem;opacity:.82}
.section{padding-block:clamp(5rem,11vw,8.5rem)}
.center-heading{text-align:center;max-width:46rem;margin:0 auto clamp(2.5rem,6vw,4.5rem)}
.center-heading h2{margin-bottom:1rem}.center-heading>p:last-child{max-width:38rem;margin-inline:auto;color:var(--c-muted);line-height:2}
.section-heading,.split,.contact-inner{gap:clamp(2.5rem,8vw,7rem)}
.section-heading>p{line-height:2}.section-heading strong,.intro strong,.hero .lead strong{font-weight:700}
.course-compare{margin:0 0 2.5rem;background:#fff;border:1px solid var(--c-line);box-shadow:0 1rem 3rem rgba(90,73,45,.06)}
.compare-title{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.25rem;background:#f9ede4;font-weight:600}.compare-title span{font-size:.75rem;font-weight:400;color:var(--c-muted)}
.compare-scroll{overflow-x:auto}.course-compare table{width:100%;min-width:44rem;border-collapse:collapse;text-align:center}.course-compare th,.course-compare td{padding:.85rem 1rem;border:1px solid var(--c-line)}.course-compare thead th{background:#fffdf8;font-weight:600}.course-compare tbody th{text-align:left;background:#fffdf8;white-space:nowrap}.course-compare a{text-underline-offset:.25em}.course-jump{display:none}
.course-card{border-color:rgba(211,172,105,.45);box-shadow:0 1.4rem 3.6rem rgba(90,73,45,.08);transition:transform .25s ease,box-shadow .25s ease}
.course-card[id]{scroll-margin-top:7rem}
.course-card h3{font-weight:600}.course-card .for{font-size:.82rem;letter-spacing:.08em}.course-card dt{letter-spacing:.08em}.course-card dd{line-height:1.75}
.course-card:hover{transform:translateY(-4px);box-shadow:0 1.8rem 4rem rgba(90,73,45,.14)}
.course-card>a,.cta-stack button,.header-cta,.button{border-radius:999px;letter-spacing:.06em}.course-card>a{margin-inline:.25rem}
.curriculum{position:relative;background:#51432f}.steps li{padding-block:1.8rem}summary{letter-spacing:.025em}
.contact{background:linear-gradient(135deg,#d6b170,#e8d1a4)}
.contact h2{font-weight:600}.contact-note{margin-top:1rem;padding-left:1rem;border-left:2px solid rgba(90,73,45,.45);font-size:.82rem;color:#5f4a30}.cta-stack button{font-weight:600;font-size:1rem}.faq summary{font-weight:600}.faq details p{max-width:42rem}
.motion-ready [data-reveal],.motion-ready .section-heading,.motion-ready .course-card,.motion-ready .split>* ,.motion-ready .support-box>div,.motion-ready .faq details,.motion-ready .contact-inner>*{opacity:0;transform:translateY(12px)}
html.motion-ready .is-visible{opacity:1;transform:none;transition:opacity .7s ease,transform .7s cubic-bezier(.2,.75,.25,1)}
.motion-ready .course-card:nth-child(2),.motion-ready .support-box>div:nth-child(2){transition-delay:.08s}.motion-ready .course-card:nth-child(3),.motion-ready .support-box>div:nth-child(3){transition-delay:.16s}
@media(max-width:900px){.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{order:2}.hero-visual{order:1;min-height:clamp(24rem,80vw,35rem)}.hero-visual img{object-position:center 22%}.section-heading{text-align:center}.section-heading>p{max-width:38rem;margin:1rem auto 0}}
@media(max-width:520px){.brand{width:7.5rem}.hero-copy{padding:4.25rem 1.25rem}.hero-copy::before{left:1.25rem;top:2.6rem;width:3rem}.hero-visual{min-height:24rem}.hero-visual p{left:1.25rem;bottom:1.15rem}.atmosphere{min-height:25rem}.sample-bar{font-size:.68rem}.course-compare{margin-bottom:1.5rem}.compare-title{display:block;text-align:center}.compare-title span{display:block;margin-top:.35rem}.compare-scroll{display:none}.course-jump{display:grid;grid-template-columns:1fr repeat(3,2.75rem);align-items:center;gap:.5rem;padding:1rem}.course-jump span{font-size:.8rem;font-weight:600}.course-jump a{display:grid;place-items:center;min-height:2.75rem;border:1px solid var(--c-gold);border-radius:50%;text-decoration:none;font-family:var(--en);font-weight:600}}
@media(prefers-reduced-motion:reduce){.hero-visual img,.course-card{transition:none!important}.course-card:hover{transform:none}.motion-ready [data-reveal],.motion-ready .section-heading,.motion-ready .course-card,.motion-ready .split>* ,.motion-ready .support-box>div,.motion-ready .faq details,.motion-ready .contact-inner>*{opacity:1!important;transform:none!important}}
html[data-capture="true"] .site-header{position:static}html[data-capture="true"] .mobile-cta{display:none}
