:root { --orange:#e8742b; --orange-deep:#c9551e; --green:#2d765d; --green-dark:#174b3a; --ink:#26302b; --paper:#fffdf8; --line:rgba(38,48,43,.14); }
* { box-sizing:border-box; }
html { background:var(--paper); }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial,Helvetica,sans-serif; font-size:1rem; line-height:1.6; }
.site-header { background:var(--paper); }
.hero { position:relative; display:grid; min-height:clamp(15rem,30vw,26rem); overflow:hidden; place-items:center; isolation:isolate; background:linear-gradient(105deg,rgba(45,118,93,.76),rgba(45,118,93,.22) 38%,rgba(232,116,43,.52)),linear-gradient(135deg,#d9c6ac,#9cb5a2 46%,#d87938); }
.hero::before,.hero::after { position:absolute; z-index:-1; width:50vw; height:50vw; content:""; border-radius:50%; opacity:.42; background:rgba(255,244,218,.4); }
.hero::before { top:-34vw; left:-12vw; }
.hero::after { right:-16vw; bottom:-42vw; background:rgba(31,86,67,.38); }
.hero > span { position:absolute; right:1.25rem; bottom:.8rem; color:rgba(255,255,255,.78); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; }
.logo-lockup { display:block; width:min(20rem,54vw); max-width:340px; transition:transform 180ms ease; }
.logo-lockup:hover { transform:scale(1.025); }
.logo-lockup img { display:block; width:100%; mix-blend-mode:multiply; }
.main-nav { display:flex; align-items:center; justify-content:center; gap:clamp(1rem,5vw,3.5rem); min-height:4.15rem; padding:.6rem 1rem; border-bottom:1px solid var(--line); background:var(--paper); }
.main-nav a { color:var(--green-dark); font-size:.94rem; font-weight:700; letter-spacing:.025em; text-decoration:none; }
.main-nav a[aria-current="page"],.main-nav a:hover { color:var(--orange-deep); }
.content-wrap { width:min(100% - 2.5rem,70rem); margin:0 auto; padding:clamp(2.5rem,6vw,5rem) 0; }
.page-intro { max-width:46rem; margin-bottom:2.4rem; }
h1,h2,h3 { margin:0; color:var(--green-dark); font-family:Georgia,'Times New Roman',serif; font-weight:500; line-height:1.14; }
h1 { font-size:clamp(2.3rem,6vw,4.5rem); }
h2 { margin-bottom:.85rem; font-size:clamp(1.6rem,3vw,2.35rem); }
h3 { font-size:1.3rem; }
p { margin:0 0 1rem; }
.eyebrow { margin-bottom:.75rem; color:var(--orange-deep); font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.course-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; margin:2.6rem 0 4rem; }
.course-card,.info-card,.schedule-section { border:1px solid var(--line); border-radius:1.1rem; background:#fff; box-shadow:0 1.25rem 2.75rem rgba(40,67,51,.07); }
.course-card { padding:clamp(1.4rem,4vw,2.3rem); }
.course-card h2 { color:var(--green); }
.course-card a { color:var(--orange-deep); font-weight:700; text-decoration-thickness:1px; text-underline-offset:.2em; }
.schedule-section { padding:clamp(1rem,3vw,2rem); }
.schedule-section h2 { margin:0 0 1rem; }
[data-momo-schedule] { width:100%; }
.prose { max-width:46rem; }
.prose p + h2 { margin-top:2.35rem; }
.info-card { margin:1.6rem 0; padding:1.3rem 1.4rem; border-left:.35rem solid var(--orange); }
.faq-list { display:grid; max-width:48rem; gap:.8rem; }
.faq-list details { padding:.9rem 0; border-bottom:1px solid var(--line); }
.faq-list summary { cursor:pointer; color:var(--green-dark); font-weight:700; }
.faq-list p { padding:.8rem 1.5rem 0 0; }
.site-footer { padding:1.5rem; border-top:1px solid var(--line); color:rgba(38,48,43,.66); text-align:center; font-size:.85rem; }
@media (max-width:640px) { .hero { min-height:13.5rem; } .logo-lockup { width:min(18rem,75vw); } .main-nav { justify-content:flex-start; gap:1.15rem; overflow-x:auto; white-space:nowrap; } .content-wrap { width:min(100% - 2rem,70rem); } .course-grid { grid-template-columns:1fr; } }
