:root{--paper:#e8e4dc;--paper-deep:#d9d3c8;--fiber:#c4b9a8;--ink:#2c2926;--ink-soft:#4a4540;--moss:#5a6b52;--moss-dark:#3d4a38;--panel-edge:#b8aea0;--accent:#6b7f62;--error:#8b3a3a;--success:#3d5c45;--radius:6px;--shadow:0 2px 12px rgba(44, 41, 38, 0.08);--font-head:"IBM Plex Sans Thai", "Noto Sans Thai", sans-serif;--font-body:"Noto Sans Thai", sans-serif;--max-read:42rem;--max-site:72rem}@font-face{font-family:ibm plex sans thai;src:url(/fonts/ibm-plex-sans-thai-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap;unicode-range:U+20-7F,U+E00-E7F}@font-face{font-family:noto sans thai;src:url(/fonts/noto-sans-thai-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+20-7F,U+E00-E7F}@font-face{font-family:noto sans thai;src:url(/fonts/noto-sans-thai-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+20-7F,U+E00-E7F}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{margin:0;font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;color:var(--ink);background:var(--paper);background-image:radial-gradient(circle at 20% 10%,rgba(196,185,168,.35),transparent 45%),radial-gradient(circle at 80% 90%,rgba(90,107,82,6%),transparent 50%)}h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;line-height:1.25;color:var(--ink)}a{color:var(--moss-dark);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--moss);outline-offset:2px}.img-grade--grayscale-contrasty{filter:grayscale(1)contrast(1.08)}.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:.5rem 1rem;z-index:100}.skip-link:focus{left:0}.site-header{background:var(--paper-deep);border-bottom:1px solid var(--panel-edge);padding:.75rem 1rem}.header-inner{max-width:var(--max-site);margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:.75rem}.brand-mark{font-family:var(--font-head);font-size:1.125rem;font-weight:600;color:var(--ink);text-decoration:none}.brand-mark:hover{color:var(--moss-dark)}.nav-centered{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.25rem;list-style:none;margin:0;padding:0}.nav-centered a{text-decoration:none;font-size:.95rem;padding:.35rem .25rem}.site-main{min-height:50vh}.panel{background:linear-gradient(145deg,var(--paper) 0%,var(--paper-deep) 100%);border:1px solid var(--panel-edge);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem}.bento-wrap{max-width:var(--max-site);margin-inline:auto;padding:1.25rem 1rem 3rem;display:flex;flex-direction:column;gap:1.5rem}.hero-text-narrow{max-width:36rem;margin-inline:auto;text-align:center;padding:2.5rem 1.5rem}.hero-text-narrow h1{font-size:clamp(1.65rem,4vw,2.35rem);margin:0 0 1rem}.hero-text-narrow .lead{font-size:1.125rem;color:var(--ink-soft);margin:0 0 1.5rem}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1.25rem;border-radius:var(--radius);font-family:var(--font-body);font-size:1rem;font-weight:700;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .15s ease}.btn-primary{background:var(--moss);color:#f5f3ef;border-color:var(--moss-dark)}.btn-primary:hover{background:var(--moss-dark);color:#fff}.btn-secondary{background:0 0;color:var(--moss-dark);border-color:var(--panel-edge)}.btn-secondary:hover{background:var(--paper-deep)}.section-title{font-size:clamp(1.35rem,3vw,1.75rem);margin:0 0 1rem}.comp-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:center}.comp-two-col .section-title{text-align:left}.comp-media-left{direction:rtl}.comp-media-left>*{direction:ltr}.comp-media-left .section-title{text-align:left}.media-frame{border-radius:var(--radius);overflow:hidden;border:1px solid var(--panel-edge);background:var(--paper-deep)}.media-frame img{width:100%;height:100%;object-fit:cover;display:block}.portrait-frame{aspect-ratio:4/5;max-height:520px}.asym-grid{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:auto auto;gap:1rem}.asym-grid .wide-cell{grid-row:span 2}.asym-grid .card-cell img{aspect-ratio:1;width:100%;object-fit:cover}.asym-grid .wide-cell img{width:100%;height:100%;min-height:280px;object-fit:cover}.timeline-rail{position:relative;padding-left:2.5rem;list-style:none;margin:0;padding-top:0}.timeline-rail::before{content:"";position:absolute;left:.65rem;top:.25rem;bottom:.25rem;width:2px;background:var(--fiber)}.timeline-rail li{position:relative;margin-bottom:1.25rem;padding-bottom:.25rem}.timeline-rail li::before{content:attr(data-step);position:absolute;left:-2.5rem;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--moss);color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center}.courses-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.course-card{display:flex;flex-direction:column;height:100%}.course-card h3{font-size:1.1rem;margin:0 0 .5rem}.course-meta{font-size:.875rem;color:var(--ink-soft);margin-bottom:.75rem}.course-price{font-size:1.25rem;font-weight:700;margin-top:auto;padding-top:1rem}.price-strike{text-decoration:line-through;color:var(--ink-soft);font-size:.95rem;font-weight:400;margin-right:.5rem}.promo-tag{display:inline-block;background:var(--moss);color:#fff;font-size:.75rem;padding:.2rem .5rem;border-radius:3px;margin-bottom:.5rem}.faq-list dt{font-weight:700;margin-top:1rem}.faq-list dd{margin:.35rem 0 0;color:var(--ink-soft)}.site-footer{background:var(--paper-deep);border-top:1px solid var(--panel-edge);padding:2rem 1rem;margin-top:2rem}.footer-centered{max-width:var(--max-read);margin-inline:auto;text-align:center;font-size:.9rem;line-height:1.7}.footer-centered .identity-line{margin-bottom:1rem}.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1rem;list-style:none;margin:1rem 0;padding:0}.footer-nav a{text-decoration:none}.disclaimer{font-size:.8rem;color:var(--ink-soft);margin-top:1.25rem;padding-top:1rem;border-top:1px dashed var(--panel-edge)}.tel-prominent{font-weight:700}.form-section label{display:block;margin-bottom:.35rem;font-weight:700}.form-section input,.form-section textarea{width:100%;min-height:44px;padding:.5rem .75rem;border:1px solid var(--panel-edge);border-radius:var(--radius);font-family:var(--font-body);font-size:1rem;background:#faf8f5;margin-bottom:.25rem}.form-section textarea{min-height:120px;resize:vertical}.field-error{color:var(--error);font-size:.875rem;margin:0 0 .75rem;min-height:1.25rem}.form-status{margin:1rem 0;padding:.75rem 1rem;border-radius:var(--radius);font-weight:700}.form-status--success{background:#e2ebe4;color:var(--success)}.form-status--error{background:#f0e4e4;color:var(--error)}.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.consent-banner{position:fixed;bottom:0;left:0;right:0;background:var(--ink);color:var(--paper);padding:1rem;z-index:90;box-shadow:0 -4px 20px rgba(0,0,0,.15)}.consent-inner{max-width:var(--max-site);margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.consent-inner p{margin:0;flex:1 1 16rem;font-size:.9rem}.consent-actions{display:flex;gap:.5rem;flex-wrap:wrap}.consent-actions .btn{min-height:44px}.consent-actions .btn-secondary{color:var(--paper);border-color:var(--fiber)}.legal-page{max-width:var(--max-read);margin-inline:auto;padding:2rem 1rem 3rem}.legal-page h1{margin-top:0}.contact-block{margin:1.5rem 0;padding:1rem;background:var(--paper-deep);border-radius:var(--radius)}.page-404{text-align:center;padding:4rem 1rem;max-width:var(--max-read);margin-inline:auto}@media(max-width:767px){.comp-two-col{grid-template-columns:1fr}.comp-two-col .section-title,.comp-media-left .section-title{text-align:left}.asym-grid{grid-template-columns:1fr}.asym-grid .wide-cell{grid-row:span 1}}