:root {
  --clova-cream: #f8f5ef;
  --clova-paper: #fffdfa;
  --clova-green: #486b57;
  --clova-green-dark: #294437;
  --clova-sage: #dce8de;
  --clova-charcoal: #24312b;
  --clova-muted: #6f7972;
  --clova-warm: #d8c9b6;
  --clova-sand: #eee5d8;
  --clova-coral: #d78b72;
  --clova-line: rgba(36,49,43,.11);
  --clova-shadow: 0 1.2rem 3rem rgba(41,68,55,.09);
  --clova-shadow-hover: 0 1.4rem 3.5rem rgba(41,68,55,.15);
}
html { scroll-behavior: smooth; }
body { background: var(--clova-cream); color: var(--clova-charcoal); font-family: "DM Sans", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; font-size: .98rem; }
.navbar { background: rgba(248,245,239,.9); backdrop-filter: blur(18px); border-color: var(--clova-line) !important; }
.navbar .nav-link { color: #526057; border-radius: .8rem; padding: .55rem .75rem; font-size: .9rem; }
.navbar .nav-link:hover, .navbar .nav-link:focus { color: var(--clova-green-dark); background: var(--clova-sage); }
.navbar-brand { display:flex; align-items:center; gap:.75rem; letter-spacing:.1em; }
.navbar-brand small { display:block; letter-spacing:.03em; color:#7b847d; font-size:.62rem; font-weight:500; }
.brand-mark { display:inline-grid; place-items:center; width:2.35rem; height:2.35rem; border-radius:50%; background:var(--clova-green); color:white; font-family:Georgia,serif; font-style:italic; box-shadow:0 .35rem 1rem rgba(72,107,87,.22); }
.btn { border-radius: .85rem; padding: .72rem 1.1rem; font-weight: 600; }
.btn-lg { padding: .9rem 1.35rem; }
.btn-clova { background:var(--clova-green); border-color:var(--clova-green); color:white; box-shadow:0 .5rem 1.2rem rgba(72,107,87,.18); }
.btn-clova:hover,.btn-clova:focus { background:var(--clova-green-dark); border-color:var(--clova-green-dark); color:white; transform:translateY(-1px); }
.btn-soft { background: var(--clova-sage); border-color: var(--clova-sage); color: var(--clova-green-dark); }
.btn-soft:hover { background: #ceddce; color: var(--clova-green-dark); }
.btn-outline-dark { border-color: #aab4ac; color: var(--clova-green-dark); }
.btn-outline-dark:hover { background: var(--clova-green-dark); border-color: var(--clova-green-dark); }
.eyebrow,.letter-space { letter-spacing:.16em; font-size:.7rem; font-weight:700; color:var(--clova-green); }
.landing-hero { background: radial-gradient(circle at 82% 18%, #e2ebe2 0, transparent 30%), linear-gradient(180deg, #f8f5ef 0%, #f5f1e9 100%); overflow: hidden; }
.py-lg-6 { padding-top: 7rem !important; padding-bottom: 7rem !important; }
.display-1 { font-family:Georgia,"Times New Roman",serif; font-size: clamp(3.35rem, 7vw, 6.9rem); line-height:.96; letter-spacing:-.065em; font-weight:500; }
.display-1 em, .landing-cta h2 em { color:var(--clova-green); font-weight:400; }
.hero-copy { max-width:35rem; color:#68736b; font-size:1.15rem; line-height:1.7; }
.landing-proof { display:flex; flex-wrap:wrap; gap:1.2rem; color:#7b847c; font-size:.8rem; }
.landing-proof span { display:inline-flex; gap:.4rem; align-items:center; }
.landing-proof i { color:var(--clova-coral); }
.hero-orbit-card { min-height:29rem; border-radius:2rem; background:var(--clova-green-dark); position:relative; overflow:hidden; box-shadow:var(--clova-shadow); }
.hero-orbit-card::after { content:""; position:absolute; width:22rem; height:22rem; border:1px solid rgba(255,255,255,.13); border-radius:50%; left:-5rem; bottom:-9rem; }
.orbit-line { position:absolute; border:1px solid rgba(255,255,255,.15); border-radius:50%; transform:rotate(-28deg); }
.orbit-line-one { width:32rem; height:12rem; left:-5rem; top:7rem; }
.orbit-line-two { width:28rem; height:9rem; left:1rem; top:10rem; border-color:rgba(216,201,182,.35); }
.hero-orb { position:absolute; width:10rem; height:10rem; border-radius:50%; background:radial-gradient(circle at 35% 28%, #f6e5ce, #d5b898 58%, #b89470); top:8.3rem; left:50%; transform:translateX(-50%); display:grid; place-items:center; color:#6d5641; font-family:Georgia,serif; font-style:italic; font-size:2rem; box-shadow:0 1rem 2rem rgba(0,0,0,.2); }
.hero-card-note { position:absolute; color:#f8f5ef; z-index:2; }
.hero-card-note strong { display:block; font-family:Georgia,serif; font-size:1.2rem; font-weight:500; line-height:1.2; }
.note-top { top:2rem; left:2rem; }.note-top .eyebrow { color:#b7cdbb; margin-bottom:.65rem; }
.note-bottom { bottom:2rem; right:2rem; display:flex; gap:.75rem; align-items:center; color:#c7d8ca; font-size:.78rem; line-height:1.45; }.note-bottom i { color:#efd1af; font-size:1.35rem; }.note-bottom strong { font-size:.9rem; }
.section-intro { max-width:48rem; }.section-intro h2 { font-family:Georgia,serif; font-size:clamp(2rem,4vw,3.5rem); line-height:1.03; letter-spacing:-.04em; font-weight:500; margin:.8rem 0 1rem; }.section-intro p { color:var(--clova-muted); max-width:36rem; font-size:1.05rem; }
.feature-panel { height:100%; background:var(--clova-paper); border:1px solid var(--clova-line); border-radius:1.5rem; padding:2rem; transition:.2s ease; }.feature-panel:hover { transform:translateY(-4px); box-shadow:var(--clova-shadow-hover); }.feature-panel-dark { background:var(--clova-green-dark); border-color:transparent; color:#f7f3ec; }.feature-panel-dark p,.feature-panel-dark a { color:#c4d4c7; }.feature-panel-sand { background:var(--clova-sand); border-color:transparent; }.feature-panel .feature-number { font-family:Georgia,serif; color:var(--clova-coral); font-size:1.1rem; }.feature-panel h3 { font-family:Georgia,serif; font-size:1.7rem; font-weight:500; margin:3.2rem 0 .8rem; }.feature-panel p { color:var(--clova-muted); min-height:5rem; }.feature-panel a { display:inline-flex; align-items:center; gap:.55rem; color:var(--clova-green-dark); font-weight:700; font-size:.88rem; text-decoration:none; }.feature-panel-dark a { color:#e5efe4; }.landing-cta { background:var(--clova-green); color:#f8f5ef; padding:5rem 0; }.landing-cta .eyebrow { color:#c4dbc8; }.landing-cta h2 { font-family:Georgia,serif; font-size:clamp(2.6rem,5vw,5rem); line-height:.98; letter-spacing:-.05em; font-weight:500; margin-top:1rem; }.landing-cta h2 em { color:#f1d0b5; }.landing-cta .btn-light { color:var(--clova-green-dark); }
.wellness-card { background:#fff; border:1px solid rgba(72,107,87,.15); border-radius:2rem; padding:3rem; box-shadow:var(--clova-shadow); }.lotus { width:5rem; height:5rem; display:grid; place-items:center; border-radius:50%; background:var(--clova-sage); color:var(--clova-green); font-size:2.25rem; margin-bottom:4rem; }
.auth-shell { min-height:72vh; display:grid; align-items:center; }.auth-card { width:100%; max-width:460px; background:#fff; border:1px solid var(--clova-line); border-radius:1.5rem; padding:2.25rem; box-shadow:var(--clova-shadow); }.auth-card-wide { max-width:620px; }
.form-control,.form-select { border-color:#d7d8d3; border-radius:.8rem; padding:.72rem .9rem; }.form-control:focus,.form-select:focus { border-color:var(--clova-green); box-shadow:0 0 0 .2rem rgba(72,107,87,.12); }
.metric-card { height:100%; background:#fff; border:1px solid var(--clova-line); border-radius:1.25rem; padding:1.5rem; display:flex; flex-direction:column; gap:.35rem; }.metric-card i { color:var(--clova-coral); font-size:1.5rem; margin-bottom:1.25rem; }.metric-card span,.metric-card small { color:var(--clova-muted); }.metric-card strong { font-family:Georgia,serif; font-size:1.5rem; font-weight:500; }
.management-shell { background:#f5f3ed; }.management-sidebar { background:#fbfaf6; }.management-sidebar .nav-link { color:#525953; border-radius:.7rem; padding:.65rem .75rem; text-decoration:none; }.management-sidebar .nav-link:hover { background:var(--clova-sage); color:var(--clova-green-dark); }.sidebar-label { color:#8a8e89; font-size:.68rem; font-weight:700; letter-spacing:.14em; }.page-header { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; margin-bottom:2rem; }.page-header h1 { font-family:Georgia,serif; font-size:2.5rem; font-weight:500; margin:.35rem 0; }.page-header p { color:#747a74; margin:0; }.filter-card,.content-card,.table-card { background:#fff; border:1px solid var(--clova-line); border-radius:1.15rem; padding:1.35rem; }.table-card { padding:0; overflow:hidden; }.table-card thead th { background:#f1f3ee; color:#687069; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; padding:1rem; border:0; }.table-card td { padding:1rem; }.empty-state { color:#818680; text-align:center; padding:2.5rem !important; }.detail-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1rem; }.detail-grid > div { background:#fff; border:1px solid var(--clova-line); border-radius:1rem; padding:1.25rem; }.detail-grid small { color:#7b817c; display:block; font-size:.78rem; margin-bottom:.45rem; }.detail-grid strong { display:block; font-family:Georgia,serif; font-size:1.05rem; line-height:1.35; }.back-link { text-decoration:none; color:#6d746e; font-size:.86rem; }.studio-card,.instructor-card { display:block; height:100%; background:#fff; color:inherit; text-decoration:none; border:1px solid var(--clova-line); border-radius:1.2rem; padding:1.5rem; transition:.2s ease; }.studio-card:hover,.instructor-card:hover { transform:translateY(-3px); box-shadow:var(--clova-shadow); }.instructor-card img,.avatar-placeholder { width:76px; height:76px; object-fit:cover; border-radius:50%; flex:none; }.profile-card { background:#fff; text-align:center; border:1px solid var(--clova-line); border-radius:1.2rem; padding:2rem; }.profile-card img,.profile-placeholder { width:140px; height:140px; object-fit:cover; border-radius:50%; margin:0 auto 1.25rem; }
.package-card { background:var(--clova-paper); border:1px solid var(--clova-line); border-radius:1.5rem; padding:1.8rem; }.package-card h2 { font-family:Georgia,serif; font-size:1.7rem; font-weight:500; margin:1.4rem 0 .65rem; }.package-card p { color:var(--clova-muted); min-height:3.5rem; }.package-meta { display:flex; gap:.5rem; color:var(--clova-muted); font-size:.86rem; margin:1.5rem 0; }.package-price { font-family:Georgia,serif; font-size:1.55rem; margin:.75rem 0 1rem; }
.status-badge { display:inline-flex; align-items:center; border-radius:999px; padding:.32rem .65rem; font-size:.72rem; font-weight:700; letter-spacing:.04em; }.status-draft { background:#e9e7e0; color:#555b56; }.status-open { background:#dceadf; color:#28553a; }.status-full { background:#eee5d2; color:#755822; }.status-cancelled { background:#f0dddd; color:#7e3434; }.status-completed { background:#dde6ec; color:#385a70; }.session-actions,.session-action-bar { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.4rem; }.session-actions form,.session-action-bar form { display:inline-flex; }.session-summary { display:flex; flex-direction:column; gap:.25rem; padding:1.15rem; border-radius:1rem; background:#f4f5f1; }.calendar-card { overflow-x:auto; }#calendar { min-width:720px; }.calendar-legend { display:flex; flex-wrap:wrap; gap:1rem; color:#667068; font-size:.82rem; }.legend-dot { display:inline-block; width:.65rem; height:.65rem; border-radius:50%; margin-right:.25rem; }.legend-dot.draft { background:#8c8b84; }.legend-dot.open { background:#47795a; }.legend-dot.full { background:#a97b2c; }.legend-dot.cancelled { background:#a74a4a; }.legend-dot.completed { background:#55798e; }.fc .fc-button-primary { background:var(--clova-green); border-color:var(--clova-green); }.fc .fc-button-primary:hover,.fc .fc-button-primary:not(:disabled).fc-button-active { background:var(--clova-green-dark); border-color:var(--clova-green-dark); }.fc-event { border:0 !important; padding:2px 4px; cursor:pointer; }.fc-session-count { margin:.2rem .25rem; color:var(--clova-green-dark); font-size:.72rem; font-weight:700; }.fc-event.session-draft { background:#777a76; }.fc-event.session-open { background:#47795a; }.fc-event.session-full { background:#9a712e; }.fc-event.session-cancelled { background:#9e5050; opacity:.72; }.fc-event.session-completed { background:#55798e; }.schedule-card { height:100%; background:#fff; border:1px solid var(--clova-line); border-radius:1.25rem; padding:1.5rem; }.schedule-card h2 { font-family:Georgia,serif; font-size:1.45rem; font-weight:500; margin:1.25rem 0 1rem; }.schedule-card p { color:#626a63; margin-bottom:.5rem; }.booking-capacity { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.85rem 1rem; border-radius:.9rem; background:#f2f5f0; color:var(--clova-green-dark); }.booking-capacity span { color:#6d756e; font-size:.85rem; }.booking-page .btn { min-height:2.65rem; }.timeline { border-left:2px solid var(--clova-sage); margin-left:.4rem; padding-left:1.25rem; }.timeline-item { position:relative; padding:0 0 1.25rem; }.timeline-item::before { content:""; position:absolute; width:.7rem; height:.7rem; border-radius:50%; background:var(--clova-green); left:-1.68rem; top:.25rem; }.timeline-item small { display:block; color:#7b817c; margin:.15rem 0; }.timeline-item p { margin:.2rem 0; color:#626a63; }
@media (max-width: 991.98px) { .management-sidebar { border-right:0 !important; border-bottom:1px solid var(--bs-border-color); }.management-sidebar .nav { flex-direction:row !important; flex-wrap:wrap; }.page-header { align-items:flex-start; flex-direction:column; }.hero-orbit-card { min-height:22rem; max-width:32rem; margin:0 auto; }.hero-orb { top:5.5rem; }.orbit-line-one { top:4.5rem; }.orbit-line-two { top:7rem; } }
@media (max-width: 767.98px) { .py-lg-6 { padding-top:4.5rem !important; padding-bottom:4.5rem !important; }.display-1 { font-size:clamp(3rem,16vw,4.5rem); }.hero-copy { font-size:1rem; }.table-card table { min-width:760px; }.calendar-card { padding:.5rem; }#calendar { min-width:600px; }.fc .fc-toolbar { align-items:flex-start; flex-direction:column; gap:.5rem; }.session-action-bar { justify-content:flex-start; }.package-card { padding:1.35rem; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; animation-duration:.01ms !important; } }
/* Landing page refinements */
.landing-hero .container { position:relative; }
.hero-orbit-card { background:radial-gradient(circle at 70% 70%,#607b64 0%,transparent 39%),linear-gradient(145deg,#244135,#456b55); }
.hero-orb { width:12rem;height:12rem;top:8rem;font-size:2.4rem;letter-spacing:-.08em;background:radial-gradient(circle at 32% 26%,#fff2dd,#d8bb97 60%,#a87f5f); }
.landing-steps { background:#e9eee7;padding:5rem 0; }
.landing-steps h2 { font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.6rem);line-height:1.08;letter-spacing:-.04em;margin:1rem 0; }
.landing-steps p { color:#657169;max-width:28rem; }
.step-row { display:flex;gap:1.5rem;align-items:center;padding:1.35rem 0;border-bottom:1px solid rgba(36,49,43,.16);font-size:1.05rem; }
.step-row:first-child { border-top:1px solid rgba(36,49,43,.16); }
.step-row b { color:var(--clova-green);font-family:Georgia,serif;font-size:1.25rem; }
.feature-panel-dark p { color:#d6e0d6; }
.feature-panel-dark .feature-number { color:#f4c5a9; }
@media(max-width:767.98px){.landing-steps{padding:3.5rem 0}.hero-orb{top:5rem;width:10rem;height:10rem}}
/* Bright editorial public experience */
:root { --clova-cream:#fffaf2; --clova-paper:#fffefa; --clova-green:#377c6d; --clova-green-dark:#205d52; --clova-sage:#e2f4ea; --clova-charcoal:#253b35; --clova-coral:#e39170; --clova-sand:#fff0dd; }
body { background:var(--clova-cream); }
.navbar { background:rgba(255,250,242,.94); }
.fresh-hero { background:linear-gradient(135deg,#fffdf7 0%,#fff4e6 58%,#ebf8ee 100%);padding:5.5rem 0 6.5rem;overflow:hidden; }
.fresh-kicker { display:inline-flex;align-items:center;gap:.6rem;letter-spacing:.17em;font-size:.72rem;font-weight:800;color:#286d5c; }
.kicker-dot { width:.55rem;height:.55rem;border-radius:50%;background:#eea77b;box-shadow:0 0 0 .32rem #fce9d8; }
.hero-text h1 { font-family:Georgia,serif;font-size:clamp(3.5rem,6vw,6.7rem);line-height:.98;letter-spacing:-.065em;font-weight:500;margin:1.7rem 0; }
.hero-text h1 em { color:#3f927b;font-weight:400; }
.hero-text p { font-size:1.16rem;line-height:1.75;color:#586e64;max-width:34rem; }
.hero-micro { display:flex;flex-wrap:wrap;gap:1.4rem;color:#52746a;font-size:.82rem;font-weight:600; }
.hero-micro i { color:#df916e;margin-right:.35rem; }
.fresh-hero-photo { position:relative;border-radius:48% 48% 2.3rem 2.3rem;min-height:34rem;background:#e6ece4;box-shadow:0 2rem 4rem rgba(28,91,72,.13); }
.fresh-hero-photo>img { position:absolute;width:100%;height:100%;object-fit:cover;object-position:62% center;border-radius:inherit; }
.floating-note { position:absolute;bottom:1.3rem;left:-1.6rem;background:#fffefb;border-radius:1.2rem;padding:.8rem 1.15rem;display:flex;gap:.8rem;align-items:center;box-shadow:0 1rem 2.5rem rgba(30,64,55,.18); }
.floating-note strong,.floating-note small { display:block; }.floating-note small { color:#718078; }.note-icon { background:#fce4d2;color:#bd6f4e;border-radius:50%;padding:.7rem;font-size:1.25rem; }
.fresh-class-section { padding:6rem 0;background:#fffdf8; }.fresh-section-heading { display:flex;align-items:end;justify-content:space-between;gap:3rem;margin-bottom:2.5rem; }.fresh-section-heading h2,.fresh-steps h2,.fresh-cta h2 { font-family:Georgia,serif;font-size:clamp(2.4rem,4.2vw,4.4rem);letter-spacing:-.05em;line-height:1.03;font-weight:500;margin:.8rem 0; }.fresh-section-heading h2 em { color:#4a9b82; }.fresh-section-heading p { max-width:24rem;color:#6c7d73;line-height:1.7; }
.class-photo-card { background:white;border:1px solid #e9eee5;border-radius:1.65rem;overflow:hidden;height:100%;box-shadow:0 1rem 2rem rgba(38,83,65,.055);transition:transform .2s ease,box-shadow .2s ease; }.class-photo-card:hover { transform:translateY(-4px);box-shadow:var(--clova-shadow-hover); }
.class-photo { height:18rem;overflow:hidden; }.class-photo img { width:100%;height:100%;object-fit:cover;object-position:center; }.class-photo-body { padding:2rem; }.class-pill { color:#237d64;background:#e4f4e8;border-radius:100px;padding:.45rem .8rem;font-size:.7rem;font-weight:800;letter-spacing:.08em; }.class-pill.peach { color:#a85939;background:#fff0e3; }.class-photo-body h3 { font-family:Georgia,serif;font-size:2.25rem;margin:1rem 0 .45rem; }.class-photo-body p { color:#69776e;line-height:1.65; }.class-photo-body a { color:#237664;text-decoration:none;font-weight:700; }.class-photo-body a i { margin-left:.35rem; }
.fresh-steps { padding:6rem 0;background:#eff8ef; }.fresh-steps p { max-width:27rem;color:#64776c;line-height:1.7; }.fresh-steps .step-row { gap:1.7rem; }.fresh-steps .step-row span strong,.fresh-steps .step-row span small { display:block; }.fresh-steps .step-row span small { color:#657b70;margin-top:.25rem; }
.fresh-cta { padding:5rem 0;background:#287968;color:#fff; }.fresh-cta .eyebrow { color:#d5f4dd; }.fresh-cta h2 em { color:#f8d8b8; }.fresh-cta .btn-light { color:#245e51; }
.public-schedule-heading { border-radius:1.6rem;padding:2rem 2.4rem;background:linear-gradient(110deg,#e2f4e8,#fff0df);margin-bottom:2rem; }.public-schedule-heading h1 { font-family:Georgia,serif;font-size:clamp(2.3rem,4vw,3.5rem);letter-spacing:-.04em;margin:.5rem 0; }.public-schedule-heading p { color:#5a7567;max-width:33rem;margin:0; }
@media(max-width:991.98px){.fresh-hero{padding:3rem 0 4rem}.fresh-hero-photo{max-width:40rem;margin:auto;min-height:27rem}.floating-note{left:.8rem}.fresh-section-heading{display:block}.fresh-section-heading p{max-width:36rem}}
@media(max-width:575.98px){.fresh-hero-photo{min-height:23rem}.class-photo{height:14rem}.fresh-class-section,.fresh-steps{padding:4rem 0}.public-schedule-heading{padding:1.5rem}.hero-text h1{font-size:3.5rem}}
.home-gallery { padding:6rem 0;background:#fffdf8; }.gallery-card { background:white;border-radius:1.35rem;overflow:hidden;height:100%;border:1px solid #e6eee5;box-shadow:0 .8rem 1.8rem rgba(34,83,66,.07); }.gallery-card img,.gallery-card iframe { display:block;width:100%;height:15rem;object-fit:cover;border:0;background:#edf2ed; }.gallery-caption { padding:1.2rem 1.5rem; }.gallery-caption h3 { font-family:Georgia,serif;font-size:1.35rem;margin:0 0 .35rem; }.gallery-caption p { color:#68796c;margin:0; }.contact-section { padding:4.4rem 0;background:#eaf7ed; }.contact-section h2 { font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.04em;margin:.7rem 0 1.2rem; }.contact-section p { color:#486b5d;margin-bottom:.65rem; }.contact-section a:not(.btn) { color:inherit; }.social-links { display:flex;align-items:center;gap:.8rem;flex-wrap:wrap; }.social-links a { color:#327562;font-size:1.15rem; }.social-links a:hover { color:#185a48; }
