:root{--sand:#f6f1e7;--sand-2:#efe7d8;--cream:#fbf8f2;--ink:#2f3a32;--ink-soft:#5c6a5e;--sage:#6f8f6a;--sage-dark:#4f6b4c;--sage-deep:#33472f;--terracotta:#c47a54;--terracotta-dark:#a75f3b;--line:#e2d9c8;--white:#fff;--shadow:0 10px 30px -12px #33472f47;--shadow-sm:0 4px 14px -8px #33472f59;--radius:18px;--radius-sm:12px;--maxw:1140px;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--sans);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}h1,h2,h3,h4{font-family:var(--serif);letter-spacing:-.01em;color:var(--sage-deep);font-weight:600;line-height:1.15}a{color:inherit;text-decoration:none}button{font-family:inherit}img{max-width:100%;display:block}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 22px}.muted{color:var(--ink-soft)}.center{text-align:center}.stack{gap:16px;display:grid}.row{align-items:center;gap:12px;display:flex}.wrap{flex-wrap:wrap}.spread{justify-content:space-between;align-items:center;gap:16px;display:flex}.grow{flex:1}.btn{cursor:pointer;background:var(--sage);color:#fff;box-shadow:var(--shadow-sm);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:11px 22px;font-size:15px;font-weight:600;transition:transform .12s,background .15s,box-shadow .15s,color .15s;display:inline-flex}.btn:hover{background:var(--sage-dark);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.ghost{color:var(--sage-deep);border-color:var(--line);box-shadow:none;background:0 0}.btn.ghost:hover{background:var(--sand-2)}.btn.terra{background:var(--terracotta)}.btn.terra:hover{background:var(--terracotta-dark)}.btn.small{padding:7px 15px;font-size:13.5px}.btn.block{width:100%}.btn.link{color:var(--sage-dark);box-shadow:none;background:0 0;padding:4px 6px;font-weight:600}.btn.link:hover{background:0 0;text-decoration:underline;transform:none}.btn.danger{background:#b4533f}.btn.danger:hover{background:#973f2d}.field{gap:6px;display:grid}.field label{color:var(--ink-soft);font-size:13.5px;font-weight:600}.input,select.input,textarea.input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);width:100%;color:var(--ink);padding:11px 14px;font-family:inherit;font-size:15px}.input:focus{outline:2px solid var(--sage);outline-offset:1px;border-color:var(--sage)}textarea.input{resize:vertical;min-height:84px}.nav{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#fbf8f2e6;position:sticky;top:0}.nav-inner{align-items:center;gap:22px;height:66px;display:flex}.brand{font-family:var(--serif);color:var(--sage-deep);align-items:center;gap:10px;font-size:20px;font-weight:600;display:flex}.brand .mark{background:radial-gradient(circle at 30% 30%, var(--sage), var(--sage-deep));color:#fff;border-radius:50%;place-items:center;width:30px;height:30px;font-size:15px;display:grid}.nav-links{gap:4px;margin-left:8px;display:flex}.nav-links a{color:var(--ink-soft);border-radius:999px;padding:8px 12px;font-size:14.5px;font-weight:500}.nav-links a:hover,.nav-links a.active{background:var(--sand-2);color:var(--sage-deep)}.nav-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.nav-toggle{display:none}@media (width<=820px){.nav-links{display:none}.nav-links.open{background:var(--cream);border-bottom:1px solid var(--line);flex-direction:column;padding:10px 22px 18px;display:flex;position:absolute;top:66px;left:0;right:0}.nav-toggle{display:inline-flex}}.hero{background:linear-gradient(160deg, var(--sage-deep), #3f5a3b 55%, #58744f);color:#f3efe6;position:relative;overflow:hidden}.hero:after{content:"";pointer-events:none;background:radial-gradient(600px 320px at 78% 12%,#c47a5452,#0000 70%);position:absolute;inset:0}.hero-inner{max-width:640px;padding:96px 0 104px;position:relative}.hero .eyebrow{text-transform:uppercase;letter-spacing:.22em;color:#d7e0cf;font-size:12.5px;font-weight:600}.hero h1{color:#fbf8f2;margin:14px 0 18px;font-size:clamp(2.4rem,6vw,4rem)}.hero p{color:#e4e8dd;max-width:540px;font-size:18px}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.hero .btn.ghost{color:#f3efe6;border-color:#fff6}.hero .btn.ghost:hover{background:#ffffff1f}.section{padding:74px 0}.section.alt{background:var(--sand)}.section-head{max-width:620px;margin-bottom:36px}.section-head .kicker{text-transform:uppercase;letter-spacing:.2em;color:var(--terracotta);font-size:12px;font-weight:700}.section-head h2{margin:10px 0 8px;font-size:clamp(1.7rem,3.4vw,2.4rem)}.section-head p{color:var(--ink-soft);margin:0}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.grid{gap:20px;display:grid}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}@media (width<=900px){.grid.cols-3{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}}.day-block{margin-bottom:30px}.day-block h3{align-items:center;gap:10px;margin:0 0 12px;font-size:1.25rem;display:flex}.day-block h3 .pill{font-family:var(--sans);background:var(--sand-2);color:var(--sage-dark);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.class-row{border-radius:var(--radius-sm);background:var(--white);border:1px solid var(--line);align-items:center;gap:18px;margin-bottom:10px;padding:16px 20px;display:flex}.class-time{font-family:var(--serif);color:var(--terracotta-dark);min-width:74px;font-size:1.3rem;font-weight:600}.class-main{flex:1;min-width:0}.class-main .t{font-size:16px;font-weight:600}.class-main .s{color:var(--ink-soft);font-size:13.5px}.class-meta{flex-wrap:wrap;gap:8px;display:flex}.tag{background:var(--sand-2);color:var(--sage-dark);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.tag.level{color:var(--sage-dark);background:#eef2ea}.tag.room{color:var(--terracotta-dark);background:#f7ece4}@media (width<=640px){.class-row{flex-wrap:wrap}.class-meta{width:100%}}.instructor{text-align:center;padding:24px}.avatar{width:74px;height:74px;font-family:var(--serif);color:#fff;border-radius:50%;place-items:center;margin:0 auto 14px;font-size:26px;font-weight:600;display:grid}.instructor .spec{color:var(--terracotta-dark);margin:4px 0 8px;font-size:13.5px;font-weight:600}.instructor p{color:var(--ink-soft);margin:0;font-size:14px}.plan{flex-direction:column;padding:30px 26px;display:flex;position:relative}.plan.featured{border-color:var(--sage);box-shadow:var(--shadow)}.plan .badge{background:var(--sage);color:#fff;letter-spacing:.04em;border-radius:999px;padding:4px 14px;font-size:12px;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.plan h3{margin:0 0 4px;font-size:1.4rem}.plan .price{font-family:var(--serif);color:var(--sage-deep);font-size:2.6rem;font-weight:600}.plan .price span{color:var(--ink-soft);font-size:1rem;font-family:var(--sans);font-weight:500}.plan ul{gap:10px;margin:18px 0 24px;padding:0;list-style:none;display:grid}.plan li{color:var(--ink-soft);gap:10px;font-size:14.5px;display:flex}.plan li:before{content:"✓";color:var(--sage);font-weight:700}.plan .btn{margin-top:auto}.product{flex-direction:column;display:flex;overflow:hidden}.product .thumb{aspect-ratio:4/3;background:linear-gradient(150deg, var(--sand-2), #e4dcc9);place-items:center;font-size:54px;display:grid}.product .body{flex-direction:column;flex:1;gap:10px;padding:18px 20px 20px;display:flex}.product .body h3{margin:0;font-size:1.15rem}.product .body p{color:var(--ink-soft);flex:1;margin:0;font-size:14px}.product .price-row{justify-content:space-between;align-items:center;display:flex}.product .price{font-family:var(--serif);color:var(--sage-deep);font-size:1.5rem;font-weight:600}.cart-line{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.qty{border:1px solid var(--line);border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.qty button{background:var(--sand);cursor:pointer;width:30px;height:30px;color:var(--sage-deep);border:none;font-size:16px}.qty span{text-align:center;min-width:30px;font-size:14px;font-weight:600}.auth-wrap{background:var(--sand);place-items:center;min-height:calc(100vh - 66px);padding:48px 22px;display:grid}.auth-card{width:100%;max-width:420px;padding:34px 30px}.auth-card h1{margin:0 0 6px;font-size:1.8rem}.auth-alt{text-align:center;color:var(--ink-soft);margin-top:18px;font-size:14px}.page-head{padding:44px 0 8px}.page-head h1{margin:0 0 6px;font-size:clamp(1.8rem,4vw,2.5rem)}.panel{padding:26px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}@media (width<=800px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.stat{padding:18px 20px}.stat .n{font-family:var(--serif);color:var(--sage-deep);font-size:2rem;font-weight:600}.stat .l{color:var(--ink-soft);font-size:13px}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px;margin-bottom:22px;display:flex}.tabs button{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:11px 16px;font-size:14.5px;font-weight:600}.tabs button.active{color:var(--sage-deep);border-bottom-color:var(--sage)}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 12px}th{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-size:12px}.badge-status{text-transform:capitalize;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.badge-status.paid,.badge-status.active{color:#3c6135;background:#e4efe0}.badge-status.pending,.badge-status.trialing{color:#8a6d1f;background:#f6efd9}.badge-status.expired,.badge-status.failed,.badge-status.canceled,.badge-status.refunded,.badge-status.past_due{color:#9c4a30;background:#f5e2dc}.table-wrap{overflow-x:auto}.notice{border-radius:var(--radius-sm);padding:14px 18px;font-size:14px}.notice.warn{color:#7c5f1c;background:#f8efdc;border:1px solid #ecd9ac}.notice.info{color:var(--sage-deep);background:#eef2ea;border:1px solid #d6e0cf}.notice.err{color:#9c4a30;background:#f7e5df;border:1px solid #ecc7ba}.notice.ok{color:#3c6135;background:#e4efe0;border:1px solid #c7ddbe}.empty{text-align:center;color:var(--ink-soft);padding:46px 20px}.empty .big{margin-bottom:8px;font-size:40px}.footer{background:var(--sage-deep);color:#cfd8c7;padding:46px 0 30px}.footer a{color:#cfd8c7}.footer .brand{color:#f3efe6}.footer-grid{flex-wrap:wrap;justify-content:space-between;gap:30px;display:flex}.footer small{color:#9fb096;margin-top:22px;display:block}.spinner{border:3px solid var(--line);border-top-color:var(--sage);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.center-load{place-items:center;padding:60px;display:grid}.toast{background:var(--sage-deep);color:#fff;box-shadow:var(--shadow);z-index:80;border-radius:999px;padding:12px 20px;font-size:14px;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}
