:root{--c-ink: #0a1f3d;--c-brand: #005098;--c-brand-bright: #1890d0;--c-brand-soft: #e8f1f9;--c-gold: #c9a44b;--c-gold-deep: #a48536;--c-cream: #faf6ef;--c-bg: #ffffff;--c-bg-soft: #faf7f2;--c-text: #1a2b44;--c-text-soft: #5a6b85;--c-text-mute: #8a96a8;--c-border: #e7eaef;--c-border-soft: #f0eee7;--f-display: "Fraunces", Georgia, "Times New Roman", serif;--f-body: "IBM Plex Sans Thai", "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--maxw: 1320px;--maxw-narrow: 820px;--pad: clamp(1rem, 4vw, 2.5rem);--radius: 4px;--radius-lg: 8px;--shadow-sm: 0 1px 3px rgba(10, 31, 61, .05), 0 1px 2px rgba(10, 31, 61, .04);--shadow-md: 0 4px 14px rgba(10, 31, 61, .08), 0 2px 6px rgba(10, 31, 61, .06);--shadow-lg: 0 14px 40px rgba(10, 31, 61, .12), 0 6px 16px rgba(10, 31, 61, .08);--shadow-gold: 0 8px 24px rgba(201, 164, 75, .25);--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--f-body);font-size:16px;line-height:1.65;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,svg{max-width:100%;height:auto;display:block}a{color:var(--c-brand);text-decoration:none;transition:color .2s var(--ease)}a:hover{color:var(--c-ink)}h1,h2,h3,h4,h5{font-family:var(--f-display);font-weight:600;line-height:1.15;letter-spacing:-.01em;color:var(--c-ink)}h1{font-size:clamp(2.2rem,5.5vw,4rem);font-weight:500}h2{font-size:clamp(1.7rem,3.5vw,2.6rem);font-weight:500}h3{font-size:clamp(1.25rem,2vw,1.5rem)}h4{font-size:1.1rem}p{line-height:1.7}.skip-link{position:absolute;left:-9999px;top:0;background:var(--c-ink);color:#fff;padding:.5rem 1rem;z-index:9999}.skip-link:focus{left:0;color:#fff}.topbar{background:var(--c-ink);color:#ffffffd9;font-size:.8125rem;padding:.5rem 0;position:relative;z-index:50}.topbar__inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.topbar__since{font-family:var(--f-display);font-style:italic;font-weight:400;color:var(--c-gold);letter-spacing:.02em}.topbar__links{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.topbar__links a{color:#ffffffe6}.topbar__links a:hover{color:var(--c-gold)}.topbar__sep{color:#ffffff4d}@media (max-width: 640px){.topbar__since{display:none}.topbar__inner{justify-content:center}}.header{position:sticky;top:0;z-index:100;background:var(--c-bg);border-bottom:1px solid var(--c-border);transition:box-shadow .3s var(--ease),padding .3s var(--ease)}.header.is-scrolled{box-shadow:var(--shadow-md)}.header__inner{max-width:var(--maxw);margin:0 auto;padding:.85rem var(--pad);display:flex;align-items:center;gap:1.5rem;transition:padding .3s var(--ease)}.header.is-scrolled .header__inner{padding:.55rem var(--pad)}.header.is-scrolled .brand__logo{width:48px;height:48px}.header.is-scrolled .brand__name{font-size:1.35rem}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--c-ink)}.brand__logo{width:60px;height:60px;object-fit:contain;transition:transform .3s var(--ease-out)}.brand:hover .brand__logo{transform:rotate(-3deg) scale(1.03)}.brand__text{display:flex;flex-direction:column;line-height:1.1}.brand__name{font-family:var(--f-display);font-weight:600;font-size:1.55rem;letter-spacing:-.01em}.brand__name em{color:var(--c-gold-deep);font-style:normal;font-weight:500}.brand__tagline{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-soft);font-weight:500;margin-top:3px}.nav{display:flex;gap:1.75rem;margin-left:auto;align-items:center}.nav a{font-size:.9375rem;color:var(--c-ink);font-weight:500;position:relative;padding:.5rem 0}.nav a:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--c-gold);transform:scaleX(0);transform-origin:center;transition:transform .3s var(--ease-out)}.nav a:hover:after{transform:scaleX(1)}.cta-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--c-ink);color:#fff;padding:.7rem 1.2rem;border-radius:var(--radius);font-size:.875rem;font-weight:600;letter-spacing:.02em;border:1px solid var(--c-ink);cursor:pointer;transition:all .25s var(--ease-out);text-decoration:none}.cta-btn:hover{background:var(--c-gold-deep);border-color:var(--c-gold-deep);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-gold)}.cta-btn--header svg{transition:transform .25s var(--ease-out)}.cta-btn--header:hover svg{transform:translate(3px)}.cta-btn--ghost{background:transparent;color:var(--c-ink)}.cta-btn--ghost:hover{background:var(--c-ink);color:#fff;border-color:var(--c-ink)}.cta-btn--gold{background:var(--c-gold);border-color:var(--c-gold);color:#fff}.cta-btn--gold:hover{background:var(--c-gold-deep);border-color:var(--c-gold-deep)}.cta-btn--line{background:#06c755;border-color:#06c755}.cta-btn--line:hover{background:#05a847;border-color:#05a847;box-shadow:0 8px 24px #06c7554d}.hamburger{display:none;background:transparent;border:none;cursor:pointer;padding:.5rem;margin-left:auto}.hamburger span{display:block;width:24px;height:2px;background:var(--c-ink);margin:5px 0;transition:all .3s var(--ease)}.hamburger.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.is-active span:nth-child(2){opacity:0}.hamburger.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-menu{display:none;flex-direction:column;background:var(--c-bg);padding:1rem var(--pad) 2rem;border-top:1px solid var(--c-border);gap:.25rem}.mobile-menu.is-open{display:flex}.mobile-menu a{padding:.85rem 0;border-bottom:1px solid var(--c-border);color:var(--c-ink);font-weight:500}.mobile-menu .cta-btn{margin-top:1rem;justify-content:center;border-bottom:1px solid var(--c-ink)}@media (max-width: 880px){.nav,.cta-btn--header{display:none}.hamburger{display:block}}.container{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}.container--narrow{max-width:var(--maxw-narrow)}.section{padding:clamp(3rem,6vw,5rem) 0}.section--soft{background:var(--c-bg-soft)}.section--ink{background:var(--c-ink);color:#fff}.section--cream{background:var(--c-cream)}.section-head{margin-bottom:clamp(2rem,4vw,3.5rem);max-width:var(--maxw-narrow)}.section-head--center{margin-left:auto;margin-right:auto;text-align:center}.kicker{font-family:var(--f-display);font-style:italic;font-size:.95rem;color:var(--c-gold-deep);font-weight:500;letter-spacing:.01em;margin-bottom:.75rem;display:inline-flex;align-items:center;gap:.6rem}.kicker:before{content:"";width:28px;height:1px;background:var(--c-gold)}.section--ink .kicker{color:var(--c-gold)}.section-title{font-family:var(--f-display);font-weight:500;color:var(--c-ink)}.section--ink .section-title{color:#fff}.section-lede{margin-top:1rem;color:var(--c-text-soft);font-size:1.05rem;max-width:60ch}.section--ink .section-lede{color:#ffffffbf}.btn-lg{display:inline-flex;align-items:center;gap:.6rem;padding:1rem 1.75rem;font-size:1rem;font-weight:600;border-radius:var(--radius);border:1.5px solid;cursor:pointer;transition:all .25s var(--ease-out);text-decoration:none;letter-spacing:.01em}.btn-primary{background:var(--c-ink);border-color:var(--c-ink);color:#fff}.btn-primary:hover{background:var(--c-gold-deep);border-color:var(--c-gold-deep);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-gold)}.btn-outline{background:transparent;border-color:var(--c-ink);color:var(--c-ink)}.btn-outline:hover{background:var(--c-ink);color:#fff}.btn-line{background:#06c755;border-color:#06c755;color:#fff}.btn-line:hover{background:#05a847;border-color:#05a847;transform:translateY(-2px);box-shadow:0 8px 24px #06c7554d}.footer{background:var(--c-ink);color:#ffffffd9;padding:4rem 0 0;margin-top:4rem}.footer__inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:3rem}@media (max-width: 880px){.footer__inner{grid-template-columns:1fr 1fr;gap:2rem}}@media (max-width: 520px){.footer__inner{grid-template-columns:1fr}}.footer__col h4{color:var(--c-gold);font-family:var(--f-display);font-size:.95rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.25rem}.footer__col a{display:block;color:#ffffffbf;padding:.25rem 0;font-size:.9375rem}.footer__col a:hover{color:#fff}.footer__col--brand .footer__logo{width:100px;height:100px;margin-bottom:1.25rem;object-fit:contain}.footer__tagline{font-family:var(--f-display);font-style:italic;color:#ffffffd9;line-height:1.6;margin-bottom:.75rem}.footer__since{font-size:.85rem;color:#ffffff8c}.footer__creds{list-style:none;padding:0}.footer__creds li{padding:.35rem 0;font-size:.9rem;color:#ffffffc7;display:flex;align-items:center;gap:.6rem}.footer__cred-mark{font-size:1.05em;flex-shrink:0}.footer__bottom{margin-top:3rem;border-top:1px solid rgba(255,255,255,.1);padding:1.5rem var(--pad);display:flex;justify-content:space-between;font-size:.825rem;color:#ffffff8c;max-width:var(--maxw);margin-left:auto;margin-right:auto;flex-wrap:wrap;gap:.5rem}.fab-group{position:fixed;bottom:1.5rem;right:1.5rem;display:flex;flex-direction:column;gap:.75rem;z-index:80}.fab{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-lg);transition:all .25s var(--ease-out)}.fab--line{background:#06c755}.fab--enroll{background:var(--c-gold-deep)}.fab:hover{transform:translateY(-4px) scale(1.05)}@media (max-width: 540px){.fab{width:46px;height:46px}.fab-group{bottom:1rem;right:1rem}}.cms-content{line-height:1.75;color:var(--c-text)}.cms-content p{margin-bottom:1.1em}.cms-content h2,.cms-content h3,.cms-content h4{margin-top:2em;margin-bottom:.6em}.cms-content h2{font-size:1.5rem}.cms-content h3{font-size:1.2rem}.cms-content ul,.cms-content ol{margin:0 0 1.1em 1.5em}.cms-content li{margin-bottom:.4em}.cms-content img{border-radius:var(--radius);margin:1em 0;max-width:100%;height:auto}.cms-content .teacher img,.cms-content .col-xl-12 img,.cms-content .col-md-12 img{max-height:280px;width:auto;max-width:280px;object-fit:cover}.cms-img-fallback{display:block;aspect-ratio:4/3;max-width:280px;background:linear-gradient(135deg,var(--c-cream) 0%,var(--c-brand-soft) 100%);border:1px dashed var(--c-border);border-radius:var(--radius);margin:1em 0;position:relative}.cms-img-fallback:before{content:"♪";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-size:3rem;color:var(--c-gold);opacity:.5}.cms-content .teacher .cms-img-fallback,.cms-content .col-xl-4 .cms-img-fallback,.cms-content .col-xl-6 .cms-img-fallback,.cms-content .col-xl-8 .cms-img-fallback,.cms-content .col-xl-12 .cms-img-fallback,.cms-content .col-md-6 .cms-img-fallback,.cms-content .col-md-12 .cms-img-fallback{aspect-ratio:1;max-width:100%;width:100%;margin-bottom:.75rem}.cms-content strong{color:var(--c-ink)}.cms-content a{color:var(--c-brand);text-decoration:underline;text-underline-offset:2px}.cms-content table{width:100%;border-collapse:collapse;margin:1em 0}.cms-content table td{padding:.5em .75em;border-bottom:1px solid var(--c-border);vertical-align:top}.cms-content .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin:1.5rem 0}.cms-content .col-xl-12,.cms-content .col-xl-8,.cms-content .col-xl-6,.cms-content .col-xl-4,.cms-content .col-md-12,.cms-content .col-md-6{background:var(--c-bg-soft);padding:1.25rem;border-radius:var(--radius-lg);border:1px solid var(--c-border)}.cms-content .col-xl-12,.cms-content .col-md-12{grid-column:1 / -1}.cms-content .teacher h2{font-size:1.4rem;margin:2rem 0 .75rem;padding-bottom:.5rem;border-bottom:2px solid var(--c-gold);font-family:var(--f-display);color:var(--c-ink)}.cms-content .teacher h2:first-child{margin-top:0}.cms-content .teacher h3{font-size:1.05rem;color:var(--c-brand);margin:0 0 .5rem;font-family:var(--f-display)}.cms-content .teacher img{border-radius:var(--radius);margin-bottom:.75rem;width:100%;aspect-ratio:1;object-fit:cover;background:var(--c-border-soft)}.cms-content .teacher p{font-size:.92rem;line-height:1.6}.cms-content .teacher strong{color:var(--c-gold-deep)}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mt-5{margin-top:3rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}@media print{.topbar,.header,.fab-group,.footer{display:none}}

/* ============================================================
   Dark Mode (toggle via [data-theme="dark"] on <html>)
   ============================================================ */
[data-theme="dark"] {
  --c-ink: #e8edf3;
  --c-brand: #4d8eef;
  --c-brand-bright: #7eb1f5;
  --c-brand-soft: #0e1f3a;
  --c-gold: #d4b56b;
  --c-gold-deep: #b08f3f;
  --c-cream: #1a2230;
  --c-bg: #0a1118;
  --c-bg-soft: #121b25;
  --c-text: #e8edf3;
  --c-text-soft: #b6c1cd;
  --c-text-mute: #8693a3;
  --c-border: #2a3744;
  --c-border-soft: #1f2a36;
}

[data-theme="dark"] body { background: var(--c-bg); color: var(--c-text); }
[data-theme="dark"] .header { background: var(--c-bg); border-bottom-color: var(--c-border); }
[data-theme="dark"] .nav a,
[data-theme="dark"] .brand,
[data-theme="dark"] .brand__name { color: var(--c-text); }
[data-theme="dark"] .brand__name em { color: var(--c-gold); }
[data-theme="dark"] .brand__tagline { color: var(--c-text-soft); }
[data-theme="dark"] .cta-btn { background: var(--c-brand); border-color: var(--c-brand); color: #fff; }
[data-theme="dark"] .cta-btn:hover { background: var(--c-gold); border-color: var(--c-gold); }
[data-theme="dark"] .mobile-menu { background: var(--c-bg); border-top-color: var(--c-border); }
[data-theme="dark"] .mobile-menu a { color: var(--c-text); border-bottom-color: var(--c-border); }
[data-theme="dark"] .hamburger span { background: var(--c-text); }

[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4 { color: var(--c-text); }

[data-theme="dark"] .section--soft { background: var(--c-bg-soft); }
[data-theme="dark"] .section--cream { background: #15202e; }
[data-theme="dark"] .section--ink { background: #050a12; }

[data-theme="dark"] .section-title { color: var(--c-text); }
[data-theme="dark"] .section-lede { color: var(--c-text-soft); }

[data-theme="dark"] .btn-primary { background: var(--c-brand); border-color: var(--c-brand); }
[data-theme="dark"] .btn-primary:hover { background: var(--c-gold); border-color: var(--c-gold); }
[data-theme="dark"] .btn-outline { color: var(--c-text); border-color: var(--c-text); }
[data-theme="dark"] .btn-outline:hover { background: var(--c-text); color: var(--c-bg); }

[data-theme="dark"] .pillar {
  background: var(--c-bg-soft);
  border-color: var(--c-border);
}
[data-theme="dark"] .pillar:hover { box-shadow: 0 14px 40px rgba(0,0,0,0.4); }
[data-theme="dark"] .pillar__icon { background: var(--c-brand-soft); color: var(--c-brand-bright); }
[data-theme="dark"] .pillar__title { color: var(--c-text); }
[data-theme="dark"] .pillar__body { color: var(--c-text-soft); }
[data-theme="dark"] .pillar__age { color: var(--c-text-mute); }
[data-theme="dark"] .pillar strong { color: var(--c-gold); }

[data-theme="dark"] .course-grid { background: var(--c-border); border-color: var(--c-border); }
[data-theme="dark"] .course-card { background: var(--c-bg-soft); color: var(--c-text); }
[data-theme="dark"] .course-card__title { color: var(--c-text); }
[data-theme="dark"] .course-card__icon { color: var(--c-brand-bright); }
[data-theme="dark"] .course-card:hover { background: var(--c-text); color: var(--c-bg); }
[data-theme="dark"] .course-card:hover .course-card__icon { color: var(--c-gold); }

[data-theme="dark"] .branch-card,
[data-theme="dark"] .branch-tile { background: var(--c-bg-soft); border-color: var(--c-border); color: var(--c-text); }
[data-theme="dark"] .branch-tile__name { color: var(--c-text); }
[data-theme="dark"] .branch-tile__addr,
[data-theme="dark"] .branch-tile__name-th { color: var(--c-text-soft); }
[data-theme="dark"] .branch-tile__phone { background: var(--c-brand-soft); color: var(--c-brand-bright); }

[data-theme="dark"] .news-card { background: var(--c-bg-soft); border-color: var(--c-border); }
[data-theme="dark"] .news-card__title { color: var(--c-text); }
[data-theme="dark"] .news-card__summary { color: var(--c-text-soft); }
[data-theme="dark"] .news-row { border-bottom-color: var(--c-border); color: var(--c-text); }
[data-theme="dark"] .news-row__title { color: var(--c-text); }
[data-theme="dark"] .news-row__summary { color: var(--c-text-soft); }

[data-theme="dark"] .cred { background: var(--c-bg-soft); border-color: var(--c-border); }
[data-theme="dark"] .cred__body { color: var(--c-text-soft); }

[data-theme="dark"] .contact-card { background: var(--c-bg-soft); border-color: var(--c-border); }
[data-theme="dark"] .contact-card h3 { color: var(--c-text); }
[data-theme="dark"] .contact-card p { color: var(--c-text-soft); }

[data-theme="dark"] .bc-card { background: var(--c-bg-soft); border-color: var(--c-border); }
[data-theme="dark"] .bc-card__addr { color: var(--c-text-soft); }

[data-theme="dark"] .faq { border-bottom-color: var(--c-border); }
[data-theme="dark"] .faq__q { color: var(--c-text); }
[data-theme="dark"] .faq__a { color: var(--c-text-soft); }

[data-theme="dark"] .rd-block { background: var(--c-bg-soft); border-color: var(--c-border); }
[data-theme="dark"] .rd-block li { color: var(--c-text-soft); border-bottom-color: var(--c-border); }

[data-theme="dark"] .step { background: var(--c-bg-soft); border-color: var(--c-border); }
[data-theme="dark"] .step p { color: var(--c-text-soft); }

[data-theme="dark"] .apply-cta { background: var(--c-bg-soft); }

[data-theme="dark"] .topbar { background: #050a12; }

[data-theme="dark"] .footer { background: #050a12; }

[data-theme="dark"] .branch-nav { background: var(--c-bg-soft); border-color: var(--c-border); }
[data-theme="dark"] .branch-nav__chip { background: var(--c-bg); border-color: var(--c-border); color: var(--c-text); }
[data-theme="dark"] .branch-nav__chip:hover { background: var(--c-brand); border-color: var(--c-brand); color: #fff; }

[data-theme="dark"] .quick-course { background: var(--c-bg-soft); border-color: var(--c-border); color: var(--c-text); }
[data-theme="dark"] .quick-course:hover { background: var(--c-text); color: var(--c-bg); }

[data-theme="dark"] .related-card { background: var(--c-bg-soft); border-color: var(--c-border); color: var(--c-text); }
[data-theme="dark"] .related-card:hover { background: var(--c-text); color: var(--c-bg); }
[data-theme="dark"] .related-card__title { color: var(--c-text); }
[data-theme="dark"] .related-card:hover .related-card__title { color: var(--c-bg); }
[data-theme="dark"] .related-card__arrow { color: var(--c-gold); }

[data-theme="dark"] .other-branch { background: var(--c-bg-soft); border-color: var(--c-border); color: var(--c-text); }
[data-theme="dark"] .other-branch__name { color: var(--c-brand-bright); }
[data-theme="dark"] .other-branch__name-th { color: var(--c-text-soft); }
[data-theme="dark"] .other-branch:hover { background: var(--c-text); }
[data-theme="dark"] .other-branch:hover .other-branch__name { color: var(--c-bg); }
[data-theme="dark"] .other-branch:hover .other-branch__name-th { color: var(--c-bg); }

[data-theme="dark"] .news-hero { background: var(--c-bg-soft); border-bottom-color: var(--c-border); }
[data-theme="dark"] .news-hero__title { color: var(--c-text); }

[data-theme="dark"] .news-nav__link { background: var(--c-bg-soft); border-color: var(--c-border); color: var(--c-text); }
[data-theme="dark"] .news-nav__link:hover { background: var(--c-text); color: var(--c-bg); }
[data-theme="dark"] .news-nav__title { color: var(--c-text); }
[data-theme="dark"] .news-nav__link:hover .news-nav__title { color: var(--c-bg); }

[data-theme="dark"] .cms-content,
[data-theme="dark"] .cms-content p { color: var(--c-text); }
[data-theme="dark"] .cms-content strong { color: var(--c-gold); }
[data-theme="dark"] .cms-content a { color: var(--c-brand-bright); }
[data-theme="dark"] .cms-content h2,
[data-theme="dark"] .cms-content h3,
[data-theme="dark"] .cms-content h4 { color: var(--c-text); }
[data-theme="dark"] .cms-content table td { border-bottom-color: var(--c-border); }
[data-theme="dark"] .cms-content .col-xl-12,
[data-theme="dark"] .cms-content .col-xl-8,
[data-theme="dark"] .cms-content .col-xl-6,
[data-theme="dark"] .cms-content .col-xl-4,
[data-theme="dark"] .cms-content .col-md-12,
[data-theme="dark"] .cms-content .col-md-6 { background: var(--c-bg-soft); border-color: var(--c-border); }
[data-theme="dark"] .cms-content .teacher h2 { color: var(--c-text); border-bottom-color: var(--c-gold); }
[data-theme="dark"] .cms-content .teacher h3 { color: var(--c-brand-bright); }
[data-theme="dark"] .cms-content .teacher strong { color: var(--c-gold); }
[data-theme="dark"] .cms-content .teacher p { color: var(--c-text-soft); }

[data-theme="dark"] .all-courses { border-top-color: var(--c-border); }
[data-theme="dark"] .course-row { border-bottom-color: var(--c-border); color: var(--c-text); }
[data-theme="dark"] .course-row__title { color: var(--c-text); }
[data-theme="dark"] .course-row__sub { color: var(--c-text-soft); }
[data-theme="dark"] .course-row:hover { background: linear-gradient(90deg, var(--c-bg-soft) 0%, transparent 80%); }

[data-theme="dark"] .partners { background: var(--c-bg-soft); }

[data-theme="dark"] .news-list__note { background: var(--c-bg-soft); color: var(--c-text-soft); }

[data-theme="dark"] .info-block p { color: var(--c-text); }
[data-theme="dark"] .phone-pill { background: var(--c-brand-soft); color: var(--c-brand-bright); }

[data-theme="dark"] .course-aside__card { background: var(--c-bg-soft); border-color: var(--c-border); }
[data-theme="dark"] .course-aside__title { color: var(--c-text); }
[data-theme="dark"] .course-aside__body,
[data-theme="dark"] .course-aside__list li { color: var(--c-text-soft); border-bottom-color: var(--c-border); }
[data-theme="dark"] .course-aside__list strong { color: var(--c-brand-bright); }

[data-theme="dark"] .news-card__img--empty {
  background: linear-gradient(135deg, var(--c-bg-soft) 0%, var(--c-brand-soft) 100%);
}

[data-theme="dark"] .cta-band { background: var(--c-bg-soft); }
[data-theme="dark"] .cta-band__lede { color: var(--c-text-soft); }
[data-theme="dark"] .not-found { background: var(--c-bg-soft); }
[data-theme="dark"] .not-found__lede { color: var(--c-text-soft); }

/* Theme toggle button in header */
.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid var(--c-border);
  border-radius: 50%;
  width: 38px;
  height: 38px;
  cursor: pointer;
  margin-left: 0.5rem;
  color: var(--c-text);
  transition: all 0.25s var(--ease);
  padding: 0;
}
.theme-toggle:hover {
  background: var(--c-brand-soft);
  border-color: var(--c-brand);
  color: var(--c-brand);
  transform: rotate(15deg);
}
[data-theme="dark"] .theme-toggle:hover {
  background: var(--c-brand-soft);
  color: var(--c-gold);
  border-color: var(--c-gold);
}
.theme-toggle .icon-sun { display: none; }
.theme-toggle .icon-moon { display: block; }
[data-theme="dark"] .theme-toggle .icon-sun { display: block; }
[data-theme="dark"] .theme-toggle .icon-moon { display: none; }

@media (max-width: 880px) {
.theme-toggle { width: 36px; height: 36px; margin-left: auto; margin-right: 0.5rem; order: 2; }
.header__inner .nav { order: 1; }
.header__inner .cta-btn--header { order: 3; }
}
}

/* ════════════════════════════════════════════════════════════
   v7-integrated sections: Wellness Benefits / Hall of Fame / Reviews
   ════════════════════════════════════════════════════════════ */

/* ===== Common: section title variants ===== */
.section-title--xl {
  font-size: clamp(3rem, 7vw, 5rem) !important;
  font-weight: 400;
  letter-spacing: -0.02em;
}
.section-title--light { color: white !important; }
.section-lede--light { color: rgba(255, 255, 255, 0.78) !important; }
.kicker--gold { color: var(--c-gold) !important; }
.kicker--gold .kicker__line { background: var(--c-gold) !important; }

/* ============ 1. WELLNESS BENEFITS ============ */
.section--wellness {
  background: linear-gradient(135deg, #003e76 0%, #0a1f3d 60%, #061830 100%);
  color: white;
  padding: clamp(4rem, 8vw, 7rem) 0;
  position: relative;
  overflow: hidden;
}
.section--wellness::before {
  content: '♬';
  position: absolute;
  top: -80px;
  right: 5%;
  font-family: var(--f-display);
  font-size: 24rem;
  color: var(--c-gold);
  opacity: 0.05;
  line-height: 1;
  pointer-events: none;
}
.section--wellness .section-head { margin-bottom: 3.5rem; }
.section--wellness .kicker { color: var(--c-gold); }
.section--wellness .kicker__line { background: var(--c-gold); }

.benefits-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.5rem;
}
.benefit-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-lg);
  padding: 2rem 1.75rem;
  backdrop-filter: blur(8px);
  transition: all 0.35s var(--ease-out);
  position: relative;
}
.benefit-card:hover {
  transform: translateY(-6px);
  border-color: var(--c-gold);
  background: rgba(201, 164, 75, 0.08);
}
.benefit-card__icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(201, 164, 75, 0.15);
  color: var(--c-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
  transition: all 0.4s var(--ease-out);
}
.benefit-card__icon svg { width: 28px; height: 28px; }
.benefit-card:hover .benefit-card__icon {
  background: var(--c-gold);
  color: white;
  transform: rotate(-8deg) scale(1.05);
}
.benefit-card__title {
  font-family: var(--f-display);
  font-weight: 500;
  font-size: 1.25rem;
  color: white;
  margin-bottom: 0.6rem;
}
.benefit-card__body {
  font-size: 0.92rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.75);
}

/* ============ 2. HALL OF FAME ============ */
.section--hof {
  background: #050a12;
  color: white;
  padding: clamp(4rem, 8vw, 7rem) 0;
  position: relative;
  overflow: hidden;
}
.section--hof::before {
  content: '★';
  position: absolute;
  top: 8%;
  right: 4%;
  font-family: var(--f-display);
  font-size: 26rem;
  color: var(--c-gold);
  opacity: 0.04;
  line-height: 1;
  pointer-events: none;
}
.section--hof .section-head { margin-bottom: 3rem; }
.section--hof .section-title em {
  color: var(--c-gold);
  font-style: italic;
}

.hof-layout {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 3.5rem;
  align-items: start;
}
@media (max-width: 880px) {
  .hof-layout { grid-template-columns: 1fr; gap: 2.5rem; }
}

.hof-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}
.hof-stat {
  padding: 1.5rem 1.25rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-lg);
  transition: all 0.3s var(--ease-out);
}
.hof-stat:hover {
  border-color: var(--c-gold);
  background: rgba(201, 164, 75, 0.06);
}
.hof-stat__num {
  font-family: var(--f-display);
  font-size: 3rem;
  font-weight: 500;
  color: var(--c-gold);
  line-height: 1;
  margin-bottom: 0.6rem;
  letter-spacing: -0.02em;
}
.hof-stat__num sub {
  font-size: 1.1rem;
  vertical-align: baseline;
  font-style: italic;
  font-weight: 400;
  margin-left: 0.15rem;
}
.hof-stat__label {
  font-size: 0.82rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.65);
}

.hof-recognised__label {
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  font-weight: 600;
  margin-bottom: 0.9rem;
}
.hof-cert-wall {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.hof-cert-pill {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.85);
  padding: 0.45rem 0.95rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 500;
  transition: all 0.25s var(--ease);
}
.hof-cert-pill:hover {
  background: var(--c-gold);
  color: white;
  border-color: var(--c-gold);
}

.hof-highlights {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.hof-highlight {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 1rem;
  align-items: start;
  padding: 1.25rem 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.25s var(--ease);
}
.hof-highlight:hover {
  background: rgba(201, 164, 75, 0.05);
  padding-left: 1.5rem;
}
.hof-highlight__year {
  font-family: var(--f-display);
  font-style: italic;
  color: var(--c-gold);
  font-size: 0.95rem;
  font-weight: 500;
  padding-top: 0.1rem;
  white-space: nowrap;
}
.hof-highlight__title {
  font-family: var(--f-display);
  font-weight: 500;
  font-size: 1.1rem;
  color: white;
  line-height: 1.3;
  margin-bottom: 0.3rem;
}
.hof-highlight__sub {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.5;
}

/* ============ 3. REAL REVIEWS ============ */
.section--reviews {
  background: var(--c-bg);
  padding: clamp(4rem, 7vw, 6rem) 0;
}
.section--reviews .section-title em {
  color: var(--c-gold-deep);
  font-style: italic;
}

.reviews-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1.5rem;
}
.review-card {
  background: white;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: 1.75rem;
  transition: all 0.3s var(--ease-out);
  position: relative;
}
.review-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: var(--c-gold);
}
.review-card::before {
  content: '"';
  position: absolute;
  top: 0.5rem;
  right: 1.25rem;
  font-family: var(--f-display);
  font-size: 5rem;
  line-height: 1;
  color: var(--c-gold);
  opacity: 0.18;
  font-weight: 500;
}
.review-card__head {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--c-border-soft);
}
.review-card__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-display);
  font-weight: 500;
  font-size: 1.15rem;
  color: white;
  flex-shrink: 0;
}
.review-card__avatar--blue { background: var(--c-brand); }
.review-card__avatar--gold { background: var(--c-gold); }
.review-card__avatar--sky { background: #1890d0; }
.review-card__meta { flex: 1; min-width: 0; }
.review-card__name {
  font-family: var(--f-display);
  font-weight: 500;
  font-size: 0.95rem;
  color: var(--c-ink);
  line-height: 1.2;
}
.review-card__role {
  font-size: 0.78rem;
  color: var(--c-text-soft);
  margin-top: 0.15rem;
}
.review-card__branch {
  background: var(--c-brand-soft);
  color: var(--c-brand);
  padding: 0.2rem 0.6rem;
  border-radius: var(--radius);
  font-size: 0.72rem;
  font-weight: 600;
  white-space: nowrap;
}
.review-card__stars {
  color: var(--c-gold);
  font-size: 0.95rem;
  letter-spacing: 0.1em;
  margin-bottom: 0.75rem;
}
.review-card__quote {
  font-size: 0.92rem;
  line-height: 1.65;
  color: var(--c-text);
  margin: 0;
}

/* ============ DARK MODE 對應 ============ */
[data-theme="dark"] .section--wellness {
  background: linear-gradient(135deg, #061830 0%, #0a1f3d 60%, #050a12 100%);
}
[data-theme="dark"] .section--reviews { background: var(--c-bg); }
[data-theme="dark"] .review-card {
  background: var(--c-bg-soft);
  border-color: var(--c-border);
}
[data-theme="dark"] .review-card__name { color: var(--c-text); }
[data-theme="dark"] .review-card__role { color: var(--c-text-soft); }
[data-theme="dark"] .review-card__quote { color: var(--c-text); }
[data-theme="dark"] .review-card__head { border-bottom-color: var(--c-border); }
[data-theme="dark"] .review-card__branch {
  background: var(--c-brand-soft);
  color: var(--c-brand-bright);
}
[data-theme="dark"] .review-card:hover {
  border-color: var(--c-gold);
  box-shadow: 0 14px 40px rgba(0,0,0,0.4);
}

/* ════════ Course photo cards (redesigned per client feedback) ════════ */
.pcard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.5rem;
}
.pcard {
  display: flex;
  flex-direction: column;
  background: white;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: var(--c-ink);
  transition: transform 0.3s var(--ease-out), box-shadow 0.3s var(--ease-out), border-color 0.3s var(--ease-out);
}
.pcard:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
  border-color: var(--c-gold);
}
.pcard__photo {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--c-brand-soft);
}
.pcard__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease-out);
}
.pcard:hover .pcard__photo img { transform: scale(1.06); }
.pcard__photo--empty {
  background: linear-gradient(135deg, var(--c-brand-soft) 0%, var(--c-cream) 100%);
}
.pcard__photo--empty::after {
  content: '♪';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-display);
  font-size: 3.5rem;
  color: var(--c-gold);
  opacity: 0.5;
}
.pcard__body {
  padding: 1.25rem 1.35rem 1.4rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.pcard__chip {
  align-self: flex-start;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  margin-bottom: 0.7rem;
}
.pcard__chip--blue { background: var(--c-brand-soft); color: var(--c-brand); }
.pcard__chip--gold { background: var(--c-gold-soft, #f7ecd0); color: var(--c-gold-deep); }
.pcard__chip--sky  { background: #e2f1fb; color: #1577ad; }
.pcard__title {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 1.3rem;
  line-height: 1.15;
  margin: 0 0 0.5rem;
  color: var(--c-ink);
}
.pcard__desc {
  font-size: 0.88rem;
  line-height: 1.6;
  color: var(--c-text-soft);
  margin: 0 0 1.1rem;
  flex: 1;
}
.pcard__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 0.85rem;
  border-top: 1px solid var(--c-border-soft);
}
.pcard__age {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--c-text-mute);
}
.pcard__arrow {
  color: var(--c-gold-deep);
  font-size: 1.1rem;
  transition: transform 0.25s var(--ease);
}
.pcard:hover .pcard__arrow { transform: translateX(4px); }

/* dark mode */
[data-theme="dark"] .pcard { background: var(--c-bg-soft); border-color: var(--c-border); }
[data-theme="dark"] .pcard__title { color: var(--c-text); }
[data-theme="dark"] .pcard__desc { color: var(--c-text-soft); }
[data-theme="dark"] .pcard__foot { border-top-color: var(--c-border); }
[data-theme="dark"] .pcard__chip--blue { background: var(--c-brand-soft); color: var(--c-brand-bright); }
[data-theme="dark"] .pcard__chip--gold { background: #2a2410; color: var(--c-gold); }
[data-theme="dark"] .pcard__chip--sky { background: #0e2535; color: #5bb3e8; }
[data-theme="dark"] .pcard:hover { border-color: var(--c-gold); box-shadow: 0 14px 40px rgba(0,0,0,0.4); }
[data-theme="dark"] .pcard__photo--empty { background: linear-gradient(135deg, var(--c-bg-soft) 0%, var(--c-brand-soft) 100%); }

/* branch LINE pill */
.branch-card__line {
  display: inline-block;
  background: rgba(6,199,85,0.12);
  color: #06994a;
  padding: 0.3rem 0.7rem;
  border-radius: var(--radius);
  font-size: 0.8rem;
  font-weight: 600;
  margin-top: 0.4rem;
}
[data-theme="dark"] .branch-card__line { background: rgba(6,199,85,0.18); color: #4ade80; }

/* ════════ Brand logo lockup (image-based, matches hand-drawn brand font) ════════ */
.brand { display: inline-flex; align-items: center; gap: 0.7rem; text-decoration: none; }
.brand__mark {
  height: 50px;
  width: auto;
  display: block;
  transition: height 0.3s var(--ease);
}
.brand__wordmark {
  height: 38px;
  width: auto;
  display: block;
  transition: height 0.3s var(--ease);
}
.brand__wordmark--dark { display: none; }
[data-theme="dark"] .brand__wordmark--light { display: none; }
[data-theme="dark"] .brand__wordmark--dark { display: block; }

/* scrolled 縮小 */
.header.is-scrolled .brand__mark { height: 42px; }
.header.is-scrolled .brand__wordmark { height: 32px; }

/* 手機版縮小 */
@media (max-width: 600px) {
  .brand__mark { height: 40px; }
  .brand__wordmark { height: 30px; }
  .brand { gap: 0.5rem; }
}
@media (max-width: 380px) {
  .brand__wordmark { height: 26px; }
}

/* ════════ Dark mode fix for Astro scoped pages (branches + contact) ════════
   scoped style 用 .x[data-astro-cid] (0,2,0) 寫死 #fff，
   用 html[data-theme="dark"] (0,2,1) 提高特異性蓋過 */

/* --- branches/index.html --- */
html[data-theme="dark"] .branch-tile { background: var(--c-bg-soft); border-color: var(--c-border); }
html[data-theme="dark"] .branch-tile:hover { border-color: var(--c-gold); box-shadow: 0 14px 40px rgba(0,0,0,0.45); }
html[data-theme="dark"] .branch-tile__name { color: var(--c-text); }
html[data-theme="dark"] .branch-tile__name-th,
html[data-theme="dark"] .branch-tile__addr { color: var(--c-text-soft); }
html[data-theme="dark"] .branch-tile__no { color: var(--c-gold); }
html[data-theme="dark"] .branch-tile__cta { color: var(--c-gold); border-top-color: var(--c-border); }
html[data-theme="dark"] .branch-tile__phone { background: var(--c-brand-soft); color: var(--c-brand-bright); }
html[data-theme="dark"] .partners { background: var(--c-bg-soft); }
html[data-theme="dark"] .partners__title { color: var(--c-text); }
html[data-theme="dark"] .partner__name { color: var(--c-brand-bright); }
html[data-theme="dark"] .partner__addr,
html[data-theme="dark"] .partner__contact { color: var(--c-text-soft); }
html[data-theme="dark"] .partner__contact a { color: var(--c-brand-bright); }

/* --- contact/index.html --- */
html[data-theme="dark"] .contact-card { background: var(--c-bg-soft); border-color: var(--c-border); }
html[data-theme="dark"] .contact-card h3 { color: var(--c-text); }
html[data-theme="dark"] .contact-card p { color: var(--c-text-soft); }
html[data-theme="dark"] .contact-card__id { color: var(--c-brand-bright) !important; }
html[data-theme="dark"] .bc-card { background: var(--c-bg-soft); }
html[data-theme="dark"] .bc-card__body { background: var(--c-bg-soft); }
html[data-theme="dark"] .bc-card__addr { color: var(--c-text-soft); }
html[data-theme="dark"] .bc-card__email a,
html[data-theme="dark"] .bc-card__link { color: var(--c-brand-bright); }
html[data-theme="dark"] .bc-card__map { background: var(--c-bg); }
html[data-theme="dark"] .phone-pill { background: var(--c-brand-soft); color: var(--c-brand-bright); }
html[data-theme="dark"] .branches-contact { color: var(--c-text); }

/* bc-card 標題帶：dark mode 下 var(--c-ink) 會變淺，改用固定深色 hex */
html[data-theme="dark"] .bc-card__head { background: #0a1422; }
html[data-theme="dark"] .bc-card__name { color: #fff; }
html[data-theme="dark"] .bc-card__name-th { color: var(--c-gold); }

/* ════════ Dark mode fix: sub-page heroes + teachers/about/enroll cards ════════ */

/* 所有子頁 hero 用 var(--c-ink) 當漸層起點，dark mode 會變淺 → 固定深色漸層 */
html[data-theme="dark"] .page-hero {
  background: linear-gradient(135deg, #0a1f3d 0%, #003e76 100%) !important;
}

/* --- teachers: branch-nav chips --- */
html[data-theme="dark"] .branch-nav { background: var(--c-bg-soft); border-color: var(--c-border); }
html[data-theme="dark"] .branch-nav__chip { background: var(--c-bg); border-color: var(--c-border); color: var(--c-text); }
html[data-theme="dark"] .branch-nav__chip:hover,
html[data-theme="dark"] .branch-nav__chip.is-active { background: var(--c-brand); border-color: var(--c-brand); color: #fff; }

/* --- about: accreditation cards + branch list --- */
html[data-theme="dark"] .cred { background: var(--c-bg-soft); border-color: var(--c-border); }
html[data-theme="dark"] .cred__name,
html[data-theme="dark"] .cred h3,
html[data-theme="dark"] .cred h4 { color: var(--c-brand-bright); }
html[data-theme="dark"] .cred__body,
html[data-theme="dark"] .cred p { color: var(--c-text-soft); }
html[data-theme="dark"] .branch-li { background: var(--c-bg-soft); border-color: var(--c-border); }
html[data-theme="dark"] .branch-li:hover { background: #0a1422; }
html[data-theme="dark"] .branch-li__name { color: var(--c-text); }
html[data-theme="dark"] .branch-li__name-th,
html[data-theme="dark"] .branch-li__addr { color: var(--c-text-soft); }

/* --- enroll: form card (var(--c-ink) flips) + base card + steps + quick-course --- */
html[data-theme="dark"] .enroll-card { background: var(--c-bg-soft); border-color: var(--c-border); }
html[data-theme="dark"] .enroll-card--form { background: #0a1422 !important; color: #fff; }
html[data-theme="dark"] .enroll-card--line { background: linear-gradient(135deg,#06c755,#05a847) !important; }
html[data-theme="dark"] .step { background: var(--c-bg-soft); border-color: var(--c-border); }
html[data-theme="dark"] .step p { color: var(--c-text-soft); }
html[data-theme="dark"] .step__title { color: var(--c-text); }
html[data-theme="dark"] .quick-course { background: var(--c-bg-soft); border-color: var(--c-border); color: var(--c-text); }
html[data-theme="dark"] .quick-course:hover { background: var(--c-text); color: var(--c-bg); }
