/* ============================================================
   ธีมกระจกโทนสว่าง (v5) · ที่มา: design/mockup-v5-glass/style.css
   ใช้ token ใน :root เท่านั้น · Thai line-height ≥ 1.6 · ดูกติกาใน CLAUDE.md
   ============================================================ */
/* v5: glassmorphism โทนสว่าง · หลักออกแบบจาก apple-design (ดู CLAUDE.md)
   - พื้นหลังเป็นแสงสีจาง ๆ ที่ "อยู่กับที่" แผ่นกระจกเลื่อนผ่านด้านบน จึงเห็นการเบลอเปลี่ยนไปตามที่เลื่อน
   - สีแสงมาจากสีประจำคอร์ส ไม่ใช้ cyan ของ eddu (กันสับสนกับหน้า B2B)
   - กระจกไม่ซ้อนกระจก (ตัวหนังสือจะอ่านยาก) · ปิดความโปร่งใสได้ด้วย prefers-reduced-transparency
   - rem ทั้งหน้า · ไทย line-height ≥ 1.6 · มุมโค้ง: แผ่น 1.25rem / ปุ่ม-ป้าย pill */
:root{
  --bg:#F2F2F5; --ink:#1D1D1F; --muted:#5B5B63; --hair:rgba(29,29,31,.09);
  --glass:rgba(255,255,255,.5); --glass-hi:rgba(255,255,255,.8);
  --rim:inset 0 1px 0 rgba(255,255,255,.95),0 0 0 1px rgba(255,255,255,.55);
  --lift:0 1px 2px rgba(30,30,60,.05),0 1rem 2.5rem -1rem rgba(40,40,80,.2);
  --blur:blur(24px) saturate(180%);
  --r:1.25rem; --wrap:74rem; --g:1.5rem;
  --font:'IBM Plex Sans Thai',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.7 var(--font);-webkit-tap-highlight-color:transparent}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{margin:0;line-height:1.6;font-weight:700}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--g)}
@media(max-width:40rem){:root{--g:1rem}}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* แสงพื้นหลัง: fixed อยู่หลังทุกอย่าง */
.aurora{position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(44rem 34rem at 92% 0%,rgba(245,158,66,.55),transparent 70%),
  radial-gradient(40rem 34rem at 0% 38%,rgba(110,231,183,.55),transparent 70%),
  radial-gradient(42rem 34rem at 78% 70%,rgba(249,168,212,.55),transparent 70%),
  radial-gradient(36rem 30rem at 18% 100%,rgba(208,139,219,.42),transparent 70%),var(--bg)}

/* วัสดุกระจก ใช้ซ้ำทั้งหน้า */
.glass{background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--rim),var(--lift)}
@media(prefers-reduced-transparency:reduce){
  .glass,.nav,.sheet{background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .aurora{background:var(--bg)}
}

/* ปุ่ม: ยุบทันทีตอนแตะ (pointer-down) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.875rem;padding:.625rem 1.375rem;border-radius:999px;
  font:600 .9375rem/1.2 var(--font);text-decoration:none;white-space:nowrap;cursor:pointer;border:0;transition:transform .1s ease-out,background .2s,opacity .2s}
.btn:active,.press:active{transform:scale(.97)}
.btn-main{background:var(--ink);color:#fff}
.btn-main:hover{background:#000}
.btn-quiet{background:rgba(29,29,31,.06);color:var(--ink)}
.btn-quiet:hover{background:rgba(29,29,31,.1)}
.link{font-weight:600;text-underline-offset:.25rem;color:var(--ink)}
.sec{padding:clamp(3.5rem,8vw,6rem) 0}
.sec h2{font-size:clamp(1.625rem,3.2vw,2.25rem);letter-spacing:-.005em}
.sub{color:var(--muted);margin:.25rem 0 0}

/* หัวเว็บ: กระจกลอย เนื้อหาเลื่อนลอดใต้ · ขอบล่างจางขึ้นเมื่อมีเนื้อหาอยู่ใต้ ไม่ใช้เส้นแข็ง */
.nav{position:sticky;top:0;z-index:30;background:rgba(242,242,245,.6);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.nav::after{content:"";position:absolute;left:0;right:0;top:100%;height:1px;background:var(--hair);opacity:var(--edge,0);transition:opacity .2s}
.nav .wrap{display:flex;align-items:center;gap:1.75rem;height:4.25rem}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;flex-shrink:0}
.brand .logo-eddu{height:1.875rem;width:auto}
/* เมนู: ชี้แล้วขึ้นเป็นปุ่มกระจกขาว (ยกขึ้นจากแถบ) · กดแล้วยุบทันที */
.nav-links{display:flex;gap:.25rem;margin-left:auto;font-size:.9375rem}
.nav-links a{text-decoration:none;color:var(--muted);padding:.5rem .875rem;border-radius:999px;transition:background .2s,color .2s,box-shadow .2s,transform .1s ease-out}
.nav-links a:hover{color:var(--ink);background:rgba(255,255,255,.78);box-shadow:var(--rim),0 .25rem .75rem -.25rem rgba(40,40,80,.18)}
.nav-links a:active{transform:scale(.97)}
.cart-btn{min-height:2.625rem;padding:.5rem 1rem}
.count{display:inline-grid;place-items:center;min-width:1.375rem;height:1.375rem;padding:0 .3rem;border-radius:999px;background:var(--ink);color:#fff;font-size:.75rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
@media(max-width:54rem){.nav-links{display:none}.cart-btn{margin-left:auto}}

/* Hero: ข้อความซ้าย ภาพห้องเรียนขวา + แผ่นกระจก "รอบถัดไป" ลอยทับมุมภาพ */
.hero{padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(1.5rem,4vw,2.5rem)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,4rem);align-items:center}
.eyebrow{font-size:.875rem;font-weight:600;color:var(--muted);margin:0 0 .5rem}
.hero h1{font-size:clamp(2.25rem,5vw,3.5rem);letter-spacing:-.01em}
.lede{font-size:clamp(1.0625rem,1.6vw,1.25rem);color:var(--muted);max-width:26em;margin:.75rem 0 1.75rem}
.cert{display:flex;align-items:center;gap:.625rem;margin:-.75rem 0 1.75rem;font-size:.9375rem;font-weight:500;line-height:1.6;color:var(--ink)}.cert svg{flex:none} /* หน้าแรก: ได้ Certificate ทุกคอร์ส (อาร์มเลือกแบบ A 22 ต.ค.) */
.ctas{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.hero-media{position:relative;margin:0}
.hero-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:1.5rem;box-shadow:var(--lift)}
.next{position:absolute;left:-1.5rem;bottom:-1.5rem;width:min(20rem,80%);border-radius:var(--r);padding:1rem 1.125rem;text-decoration:none;display:grid;gap:.125rem;--glass:rgba(255,255,255,.66)}
.next small{font-size:.8125rem;color:var(--muted)}
.next b{font-size:1rem;line-height:1.5}
.next .row{display:flex;justify-content:space-between;align-items:center;margin-top:.375rem;font-size:.875rem}
.next .go{font-weight:600}
@media(max-width:54rem){.hero .wrap{grid-template-columns:1fr}.next{left:.75rem;bottom:-1.25rem}}

/* แถบโลโก้: สีเทาโปร่ง วางบนพื้นตรง ๆ (ไม่ต้องเป็นกระจก) */
.trust{padding:3rem 0 1rem}
.trust .wrap{display:grid;grid-template-columns:1fr auto;gap:1rem 1.5rem;align-items:center}
.trust .label{font-size:1.125rem;font-weight:600;color:var(--ink);margin:0}
.trust .more{grid-row:1;grid-column:2;font-size:1rem}
.logos{grid-column:1/-1;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:1.25rem;list-style:none;margin:0;padding:0}
.logos li{display:grid;place-items:center;height:3.5rem}
.logos img{width:auto;max-width:100%;object-fit:contain;filter:grayscale(1);opacity:.6;mix-blend-mode:multiply}
@media(max-width:62rem){.logos{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem 1.125rem}}

/* การ์ดคอร์ส = แผ่นกระจก · สีประจำคอร์สใช้เป็นจุดสีหน้าวันที่ (ไม่ใช้เป็นสีตัวหนังสือ เพราะสีพาสเทลบนพื้นขาวไม่ผ่าน AA) */
.card{position:relative;display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;
  background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--rim),var(--lift);
  transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
@media(hover:hover){.card:hover{transform:translateY(-.25rem);box-shadow:var(--rim),0 1.5rem 3rem -1rem color-mix(in srgb,var(--c) 55%,rgba(40,40,80,.25))}}
.card:has(.cover:active){transform:scale(.985)}
.cover{display:block;aspect-ratio:20/9;background:#0A0A0C;overflow:hidden}
.cover img{width:100%;height:100%;object-fit:cover}
.body{padding:1.25rem;display:flex;flex-direction:column;gap:.25rem;flex:1}
.when{font-size:.875rem;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:.5rem}
.when::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--c);box-shadow:0 0 0 .1875rem color-mix(in srgb,var(--c) 35%,transparent);flex-shrink:0}
.card h3{font-size:1.1875rem;line-height:1.5}
.tag{color:var(--muted);margin:0;font-size:.9375rem}
.who{font-size:.875rem;color:var(--muted);margin:.125rem 0 0}.who b{color:var(--ink);font-weight:600}
.buy{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:auto;padding-top:1.125rem}
.price{font-size:1.3125rem;font-weight:700;line-height:1.3}
.price small{display:block;font-size:.78rem;font-weight:400;color:var(--muted)}
.seats{font-size:.84rem;color:var(--muted)}
.seats.low{color:#B42318;font-weight:600}
.acts{display:flex;align-items:center;gap:1rem;margin-top:.875rem}
.acts .btn{flex:1}
/* ใบใหญ่: ภาพเต็มช่องไม่มีขอบดำ · คอลัมน์ภาพกว้างพอให้ความสูงภาพ (20:9) ≈ ความสูงข้อความ จึงแทบไม่ต้องตัดภาพ */
.feature{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);margin-top:2.25rem}
.feature .cover{aspect-ratio:auto;min-height:100%}
.feature .cover img{object-fit:cover;object-position:left center}
.feature .body{padding:1.5rem 1.75rem}
.feature h3{font-size:1.625rem}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.125rem;margin-top:1.125rem;list-style:none;padding:0}
@media(max-width:62rem){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* แคบกว่า ~1150px ข้อความสูงกว่าภาพ ถ้าวางข้างกันภาพจะโดนตัด จึงวางภาพบน-ข้อความล่างแทน */
@media(max-width:72rem){.feature{grid-template-columns:1fr}.feature .cover{aspect-ratio:20/9}.feature .body{padding:2rem}}
@media(max-width:40rem){.grid{grid-template-columns:1fr}.feature .body{padding:1.25rem}.feature h3{font-size:1.3125rem}}

/* สมัคร 3 ขั้น: แต่ละขั้นมีหน้าจอย่อส่วนให้เห็นว่าจะเจออะไร (ตกแต่งเท่านั้น aria-hidden) */
.steps-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.125rem;list-style:none;margin:2.25rem 0 0;padding:0;counter-reset:s}
.step{border-radius:var(--r);padding:1.5rem;display:flex;flex-direction:column;gap:.25rem}
.step .num{font-size:.8125rem;font-weight:700;color:var(--muted)}
.step h3{font-size:1.1875rem;line-height:1.6}
.step p{margin:0;color:var(--muted);font-size:.9375rem}
.mini{margin-block:auto;padding-top:1.25rem;position:relative;display:grid;gap:.625rem}
.mini-ui{background:rgba(255,255,255,.75);border-radius:.875rem;padding:.875rem;box-shadow:0 0 0 1px var(--hair);display:grid;gap:.5rem;font-size:.8125rem;line-height:1.6}
.mini-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.mini-step{display:inline-flex;align-items:center;gap:.625rem;background:rgba(29,29,31,.06);border-radius:999px;padding:.125rem .625rem;font-weight:600}
.chips{display:flex;gap:.375rem;flex-wrap:wrap}
.chip{border-radius:999px;padding:.25rem .75rem;box-shadow:0 0 0 1px var(--hair);background:#fff}
.chip.on{background:var(--ink);color:#fff;box-shadow:none}
.field{flex:1;border-radius:.5rem;box-shadow:0 0 0 1px var(--hair);background:#fff;padding:.375rem .625rem}
.field.ph{color:var(--muted)}
.check{display:flex;align-items:center;gap:.5rem;font-weight:600}
.check i{width:1rem;height:1rem;border-radius:.25rem;background:var(--ink);display:grid;place-items:center;color:#fff;font-style:normal;font-size:.6875rem;transition:background .15s}
.check i.off{background:#fff;box-shadow:inset 0 0 0 1.5px var(--muted);color:transparent}
.mini-step i{font-style:normal}
.mini-course{justify-content:flex-start}
.mini-course img{width:3.5rem;aspect-ratio:20/9;object-fit:cover;border-radius:.375rem;flex:none}
.mini-course>span:nth-child(2){flex:1;min-width:0;display:grid;line-height:1.5}
.mini-course>span>b{font-weight:600}
.mini-course small,.mini-label{color:var(--muted);font-size:.75rem}
.mini-label{font-weight:600}
/* เมาส์จำลองในกล่องตัวอย่าง (site.js สร้าง) */
.cursor{position:absolute;left:0;top:0;width:1.25rem;height:1.25rem;pointer-events:none;opacity:0;z-index:2;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}
.cursor svg{display:block;width:100%;height:100%}
.ripple{position:absolute;left:0;top:0;width:1.75rem;height:1.75rem;margin:-.875rem 0 0 -.875rem;border-radius:50%;background:rgba(29,29,31,.16);pointer-events:none}
.steps-note{margin:1.25rem 0 0;color:var(--muted);font-size:.9375rem}
@media(max-width:54rem){.steps-list{grid-template-columns:1fr}}

/* รีวิวคลิป: เลื่อนแนวนอนด้วย scroll-snap ของเบราว์เซอร์ (มี momentum ในตัว) */
.clips{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(14rem,1fr);gap:1.125rem;overflow-x:auto;scroll-snap-type:x mandatory;
  list-style:none;margin:2.25rem auto 0;padding:0 var(--g) 1rem;max-width:var(--wrap);scrollbar-width:none;overscroll-behavior-x:contain;scroll-padding-inline:var(--g)}
.clips::-webkit-scrollbar{display:none}
.clips li{scroll-snap-align:start}
.clip{position:relative;display:block;width:100%;border:0;padding:0;border-radius:var(--r);overflow:hidden;cursor:pointer;background:#000;text-align:left;font:inherit;color:inherit;
  aspect-ratio:9/16;box-shadow:var(--lift);transition:transform .1s ease-out}
.clip:active{transform:scale(.98)}
.clip img,.clip video{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
@media(hover:hover){.clip:hover img,.clip:hover video{transform:scale(1.03)}}
.clip .play{transition:opacity .2s}.clip.playing .play{opacity:0} /* คลิปเล่นอยู่ → ซ่อนไอคอนเล่น */
/* ชื่อคลาสของคลิป: ตัวเล็กจาง ๆ บนแถบมืดด้านล่าง (ไม่บังคลิป) */
.clip-tag{position:absolute;left:0;right:0;bottom:0;padding:2.5rem .875rem .75rem;font-size:.75rem;font-weight:600;line-height:1.6;color:rgba(255,255,255,.82);background:linear-gradient(transparent,rgba(0,0,0,.5));pointer-events:none}
video.vid{display:block;width:100%;height:auto;padding:0;background:#000}
.vid[hidden],.others>[hidden]{display:none} /* .others: sale-status.js ซ่อนการ์ดคอร์สอื่นที่ไม่ได้เลือก · .vid ตั้ง display เอง → ต้องบอกให้ hidden ซ่อนจริง */
.play{position:absolute;top:1rem;right:1rem;width:2.75rem;height:2.75rem;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.55);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--rim)}
.play::before{content:"";width:0;height:0;margin-left:.2rem;border-left:.75rem solid var(--ink);border-top:.45rem solid transparent;border-bottom:.45rem solid transparent}
.quote{position:absolute;left:.625rem;right:.625rem;bottom:.625rem;border-radius:.875rem;padding:.875rem 1rem;display:grid;gap:.25rem;--glass:rgba(255,255,255,.72)}
.quote b{font-size:.9375rem;line-height:1.6}
.quote small{font-size:.8125rem;color:var(--muted);line-height:1.6}
@media(max-width:40rem){.clips{grid-auto-columns:78%}}
@media(min-width:62rem){.clips{grid-auto-columns:minmax(0,1fr)}}

dialog.player{border:0;padding:0;border-radius:1.5rem;width:min(24rem,calc(100vw - 2rem));background:#0A0A0C;color:#F5F5F7;box-shadow:0 2rem 4rem rgba(0,0,0,.35)}
dialog.player::backdrop{background:rgba(20,20,30,.4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
dialog.player[open]{animation:pop .3s cubic-bezier(.2,.8,.2,1)}
/* ป๊อปอัปกดย้อนกลับตอนยังกรอกผู้เรียนไม่ครบ (learners.js) */
dialog.leave{border:0;padding:1.5rem;border-radius:var(--r);width:min(24rem,calc(100vw - 2rem));background:#fff;color:var(--ink);box-shadow:var(--lift)}
dialog.leave::backdrop{background:rgba(20,20,30,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
dialog.leave[open]{animation:pop .3s cubic-bezier(.2,.8,.2,1)}
dialog.leave h2{font-size:1.125rem;line-height:1.6;margin:0 0 .5rem}
dialog.leave p{color:var(--muted);line-height:1.7;margin:0}
dialog.leave p+p{margin-top:.5rem}
dialog.leave .say{margin-top:.375rem;padding:.5rem .75rem;border-radius:.75rem;background:rgba(29,29,31,.05);color:var(--ink)}
dialog.leave .say b{white-space:nowrap}
dialog.leave .acts{flex-wrap:wrap;margin-top:1.25rem}
@keyframes pop{from{opacity:0;transform:scale(.96)}}
.vid{aspect-ratio:9/16;display:grid;place-items:center;text-align:center;padding:2rem;color:#A1A1A6;font-size:.9375rem}
.player .close{position:absolute;top:.75rem;right:.75rem;background:rgba(255,255,255,.14);color:#fff}

/* FAQ (ตัดออกได้ทั้งส่วน) */
.narrow{max-width:50rem}
.faq-list{border-radius:var(--r);margin-top:2rem;padding:.25rem 1.5rem}
.faq details{border-bottom:1px solid var(--hair)}
.faq details:last-child{border-bottom:0}
.faq summary span{flex:1}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.125rem 0;font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.375rem;font-weight:400;color:var(--muted);transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 1.125rem;color:var(--muted)}

/* องค์กรที่เคยเรียนกับเรา: รูปรวม 54 โลโก้ บนแผ่นกระจกสว่าง */
.orgs-panel{border-radius:1.5rem;margin-top:2rem;padding:clamp(1rem,3vw,2rem);background:#fff}
.orgs-panel img{width:100%;height:auto}
/* มือถือ: รูปรวมเล็กจนอ่านไม่ออก จึงให้ปัดดูแนวนอนที่ขนาดอ่านได้ */
@media(max-width:40rem){.orgs-panel{padding:.625rem;border-radius:1rem}} /* มือถือ: รูปย่อเต็มความกว้าง คงสัดส่วน ไม่ต้องเลื่อน */

/* LINE */
.line-cta{border-radius:1.75rem;padding:clamp(2rem,5vw,3.5rem);display:grid;grid-template-columns:1fr auto;gap:1.5rem 2rem;align-items:center}
.line-cta h2{font-size:clamp(1.5rem,3vw,2rem)}
.line-cta p{margin:.25rem 0 0;color:var(--muted)}
@media(max-width:40rem){.line-cta{grid-template-columns:1fr}.line-cta .btn{width:100%}}

footer.site{padding:2rem 0 2.5rem;font-size:.875rem;color:var(--muted)}
footer.site .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--hair);padding-top:1.5rem}

/* ตะกร้า: แผ่นกระจกเลื่อน · desktop ออกจากขวา · มือถือขึ้นจากล่าง ปัดลงเพื่อปิด */
.scrim{position:fixed;inset:0;z-index:40;background:rgba(20,20,30,.28);opacity:0;pointer-events:none}
.sheet{position:fixed;z-index:50;top:.75rem;right:.75rem;bottom:.75rem;width:min(26rem,calc(100vw - 1.5rem));display:flex;flex-direction:column;
  background:rgba(250,250,252,.76);-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);
  border-radius:1.5rem;box-shadow:var(--rim),0 2rem 4rem rgba(30,30,60,.25);
  transform:translateX(calc(100% + 1rem));visibility:hidden;touch-action:none}
.sheet.open{visibility:visible}
.grab{display:none}
.sheet header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.25rem .5rem}
.sheet header h2{font-size:1.25rem}
.close{width:2.25rem;height:2.25rem;border-radius:999px;border:0;background:rgba(29,29,31,.07);color:var(--ink);font-size:1.25rem;line-height:1;cursor:pointer}
.items{flex:1;overflow:auto;list-style:none;margin:0;padding:.5rem 1.25rem;touch-action:pan-y}
.item{display:grid;grid-template-columns:5.5rem 1fr;gap:.875rem;padding:.875rem 0;border-bottom:1px solid var(--hair)}
.item img{width:100%;aspect-ratio:20/9;object-fit:cover;border-radius:.5rem}
.item b{display:block;font-size:.9375rem;line-height:1.5}
.item small{color:var(--muted);font-size:.8125rem}
.item .row{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}
.stepper{display:flex;align-items:center;background:rgba(29,29,31,.06);border-radius:999px}
.stepper button{width:2.25rem;height:2.25rem;border:0;background:none;color:var(--ink);font-size:1.125rem;cursor:pointer;border-radius:999px}
.stepper button:active{background:rgba(29,29,31,.1)}
.stepper output{min-width:1.5rem;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}
.remove{background:none;border:0;color:var(--muted);font:500 .8125rem var(--font);cursor:pointer;text-decoration:underline;text-underline-offset:.2rem}
.empty{color:var(--muted);text-align:center;padding:3rem 1rem}
.sheet footer{padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--hair)}
.total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.875rem}
.total b{font-size:1.375rem;font-variant-numeric:tabular-nums}
.total small{color:var(--muted)}
.sheet footer .btn{width:100%}
.help{font-size:.8125rem;color:var(--muted);text-align:center;margin:.75rem 0 0}
@media(max-width:40rem){
  .sheet{top:auto;left:0;right:0;bottom:0;width:auto;max-height:86dvh;border-radius:1.5rem 1.5rem 0 0;transform:translateY(100%);padding-bottom:env(safe-area-inset-bottom)}
  .grab{display:block;width:2.5rem;height:.3125rem;border-radius:999px;background:rgba(29,29,31,.2);margin:.5rem auto 0}
}
@media(prefers-reduced-motion:reduce){dialog.player[open],dialog.leave[open]{animation-name:fade}@keyframes fade{from{opacity:0}}.clip img,.clip video,.card{transition:none}}

/* ===================== หน้าคอร์ส (course.html) ===================== */
.crumbs{padding-top:1.25rem}
.back{display:inline-flex;align-items:center;gap:.375rem;font-size:.9375rem;color:var(--muted);text-decoration:none;padding:.375rem .75rem .375rem .5rem;margin-left:-.5rem;border-radius:999px;transition:background .2s,color .2s}
.back:hover{color:var(--ink);background:rgba(255,255,255,.7)}
.c-banner{margin-top:1rem;border-radius:1.5rem;overflow:hidden;background:#0A0A0C;box-shadow:var(--lift)}
.c-banner img{width:100%;height:auto;aspect-ratio:20/9;object-fit:cover} /* height:auto: ไม่งั้น height="810" ใน HTML ทับ aspect-ratio รูปถูกครอป */
/* desktop: ข้อความซ้าย กล่องซื้อขวา (ติดจอตอนเลื่อน) · มือถือ: กล่องซื้อแทรกหลังหัวเรื่อง */
.c-layout{display:grid;grid-template-columns:minmax(0,1fr) 22rem;grid-template-areas:"intro buy" "body buy";gap:0 clamp(2rem,4vw,3.5rem);margin-top:clamp(1.75rem,4vw,2.75rem)}
.c-intro{grid-area:intro}.c-body{grid-area:body}
.buybox{grid-area:buy;align-self:start;position:sticky;top:5.5rem;border-radius:var(--r);padding:1.5rem;display:grid;gap:1rem;--glass:rgba(255,255,255,.66)}
.c-intro h1{font-size:clamp(1.875rem,4vw,2.75rem);letter-spacing:-.01em;margin-top:.25rem}
.c-intro .lede{margin:.25rem 0 0;font-size:clamp(1.0625rem,1.6vw,1.25rem);color:var(--ink);font-weight:500}
.c-intro .lead{margin:.5rem 0 0;color:var(--muted)}
.c-block{margin-top:clamp(2.25rem,5vw,3.25rem)}
.c-block>h2{font-size:clamp(1.3125rem,2.4vw,1.625rem);margin-bottom:1rem}
.gets{list-style:none;margin:0;padding:.5rem 1.25rem;border-radius:var(--r)}
.gets li{display:flex;gap:.75rem;align-items:baseline;padding:.625rem 0;border-bottom:1px solid var(--hair)}
.gets li:last-child{border-bottom:0}
.gets li::before{content:"";flex-shrink:0;width:.5rem;height:.5rem;border-radius:50%;background:var(--c);box-shadow:0 0 0 .1875rem color-mix(in srgb,var(--c) 35%,transparent);transform:translateY(-.1rem)}
.mods{list-style:none;margin:0;padding:0;display:grid;gap:.625rem;counter-reset:m}
.mods li{display:grid;grid-template-columns:2.75rem 1fr;gap:.75rem;align-items:start;padding:1rem 1.125rem;border-radius:1rem;background:rgba(255,255,255,.45);box-shadow:0 0 0 1px rgba(255,255,255,.6)}
.mods .n{font-weight:700;font-size:.875rem;color:var(--ink);background:color-mix(in srgb,var(--c) 45%,#fff);border-radius:.625rem;height:2.25rem;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.mods h3{font-size:1rem;line-height:1.6}
.mods p{margin:0;color:var(--muted);font-size:.9375rem}
.tools{margin:1rem 0 0;color:var(--muted);font-size:.9375rem}.tools b{color:var(--ink);font-weight:600}
.incl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.625rem}
.incl li{border-radius:1rem;padding:.875rem 1rem;background:rgba(255,255,255,.45);box-shadow:0 0 0 1px rgba(255,255,255,.6);font-weight:600;font-size:.9375rem}
.incl li small{display:block;font-weight:400;color:var(--muted);font-size:.8125rem}
.teacher{display:grid;grid-template-columns:7.5rem 1fr;gap:1.25rem;align-items:center;border-radius:var(--r);padding:1.25rem}
.face{width:7.5rem;height:7.5rem;border-radius:1rem;object-fit:cover;background:#E9EEF4;box-shadow:0 0 0 1px var(--hair),0 .5rem 1rem -.5rem rgba(40,40,80,.25)}
.teacher b{display:block;font-size:1.125rem;line-height:1.6}
.teacher span{color:var(--muted);font-size:.9375rem}
.outline{display:grid;grid-template-columns:8rem 1fr;gap:1.25rem;align-items:center;border-radius:var(--r);padding:1.25rem}
.outline img{width:100%;border-radius:.5rem;box-shadow:0 0 0 1px var(--hair),0 .5rem 1rem -.5rem rgba(40,40,80,.3)}
.outline h2{font-size:1.125rem}
.outline p{margin:.125rem 0 .875rem;color:var(--muted);font-size:.9375rem}
.facts{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;font-size:.9375rem}
.facts li{display:grid;grid-template-columns:4.5rem 1fr;gap:.5rem}
.facts span{color:var(--muted)}
.facts .soon{color:var(--muted)}
.buybox .price{font-size:1.75rem;padding-top:1rem;border-top:1px solid var(--hair)}
.qty-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.qty-row label{font-size:.9375rem;font-weight:600}
.sum{display:flex;justify-content:space-between;align-items:baseline;font-size:.9375rem;color:var(--muted)}
.sum b{color:var(--ink);font-size:1.125rem;font-variant-numeric:tabular-nums}
.buybox .btn{width:100%}
.buybox .help{margin:0}
.others{margin-top:0}
/* แถบซื้อลอยล่างจอ (มือถือ) โผล่เมื่อกล่องซื้อเลื่อนพ้นจอ */
.buybar{position:fixed;left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));z-index:20;display:none;align-items:center;justify-content:space-between;gap:1rem;
  border-radius:1.25rem;padding:.75rem .75rem .75rem 1.125rem;--glass:rgba(255,255,255,.72);transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .35s}
.buybar b{display:block;font-size:1.125rem;line-height:1.4}
.buybar small{color:var(--muted);font-size:.8125rem}
.buybar[data-hidden]{transform:translateY(calc(100% + 1.5rem));opacity:0;pointer-events:none}
@media(max-width:62rem){
  .c-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "buy" "body"}
  .buybox{position:static;margin-top:1.5rem}
  .buybar{display:flex}
  body:has(.buybar){padding-bottom:6rem}
}
@media(max-width:40rem){.outline{grid-template-columns:5.5rem 1fr}.teacher{grid-template-columns:1fr;align-items:start;gap:.875rem}.face{width:5rem;height:5rem}} /* มือถือ: รูปผู้สอนอยู่บน ข้อความเต็มความกว้าง */
.nw{white-space:nowrap} /* คำที่ห้ามตัดบรรทัดกลางคำ */
@media(prefers-reduced-motion:reduce){.buybar{transition:opacity .2s}.buybar[data-hidden]{transform:none}}

/* ===================== Checkout / จ่ายเงิน / ผู้เรียน (checkout.html, pay.html, learners.html, thanks.html) ===================== */
.flow{padding-top:1.25rem;padding-bottom:4rem}
.flow h1{font-size:clamp(1.75rem,3.6vw,2.375rem);letter-spacing:-.01em;margin-top:.5rem}
/* ขั้น 1-2-3: บรรทัดเดียว กึ่งกลาง ทุกขนาดจอ (อาร์มกำหนด 14 ต.ค.) · ตัวอักษร/เส้นคั่นย่อตามจอ · จอแคบซ่อน "(ภายใน 24 ชม.)" */
.stepbar{display:flex;justify-content:center;flex-wrap:nowrap;gap:clamp(.25rem,1.5vw,.5rem);list-style:none;margin:.75rem 0 1.75rem;padding:0;font-size:clamp(.75rem,3.4vw,.875rem);color:var(--muted);white-space:nowrap}
.stepbar li{display:flex;align-items:center;gap:clamp(.25rem,1.5vw,.5rem)}
.stepbar li+li::before{content:"";width:clamp(.625rem,3vw,1.25rem);height:1px;background:var(--muted);opacity:.4}
@media(max-width:30rem){.stepbar .sb-note{display:none}}
.stepbar [aria-current]{color:var(--ink);font-weight:600}
.stepbar .ok{color:var(--ink)}
.co-grid{display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:clamp(1.5rem,3vw,2.5rem);align-items:start}
.panel{border-radius:var(--r);padding:clamp(1.25rem,3vw,1.75rem);margin-bottom:1rem}
.panel>h2{font-size:1.1875rem;margin-bottom:1rem}
.panel>h2 small{display:block;font-size:.875rem;font-weight:400;color:var(--muted)}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.f{display:grid;grid-template-columns:minmax(0,1fr);gap:.375rem;align-content:start;min-width:0}
.f.full{grid-column:1/-1}
.f>label{font-weight:600;font-size:.9375rem}
.f input:not([type=radio],[type=checkbox]),.f select,select[data-pick]{font:inherit;font-size:1rem;min-height:2.875rem;padding:.625rem .875rem;border-radius:.75rem;border:0;background:#fff;color:var(--ink);width:100%;
  box-shadow:0 0 0 1px rgba(29,29,31,.18);transition:box-shadow .15s}
.f input:not([type=radio],[type=checkbox]):focus,.f select:focus,select[data-pick]:focus{outline:none;box-shadow:0 0 0 2px var(--ink)}
.hint{font-size:.8125rem;color:var(--muted);margin:0}
.hint.warn{color:#B42318;margin:.75rem 0 1rem}.hint.warn span{display:inline-block} /* ข้อความเตือนสีแดงเดียวกับ .err (ผ่าน AA) */
.err{font-size:.8125rem;color:#B42318;margin:0;display:none}
.f.bad input:not([type=radio],[type=checkbox]){box-shadow:0 0 0 2px #B42318}
select[data-pick]{width:auto;min-height:2.5rem;font-size:.9375rem;padding:.375rem .75rem}
.f.bad .err{display:block}
.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.choice{display:flex;gap:.75rem;align-items:center;padding:1rem 1.125rem;border-radius:1rem;background:#fff;box-shadow:0 0 0 1px rgba(29,29,31,.14);cursor:pointer;transition:box-shadow .15s,transform .1s ease-out}
.choice:active{transform:scale(.985)}
.choice:has(input:checked){box-shadow:0 0 0 2px var(--ink)}
.choice b{display:block;line-height:1.6}.choice small{color:var(--muted);font-size:.8125rem}
input[type=radio],input[type=checkbox]{accent-color:var(--ink);width:1.125rem;height:1.125rem;margin:0;flex-shrink:0}
.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:rgba(29,29,31,.06);border-radius:999px;padding:.25rem;margin-bottom:1.25rem}
.seg label{position:relative;text-align:center;padding:.5rem;border-radius:999px;cursor:pointer;font-size:.9375rem;font-weight:500;color:var(--muted);transition:background .2s,color .2s,box-shadow .2s}
.seg input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.seg label:has(input:checked){background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(30,30,60,.12)}
.seg label:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}
.check-row{display:flex;gap:.625rem;align-items:flex-start;font-size:.9375rem;cursor:pointer}
.check-row input{margin-top:.3rem}
.branch{display:flex;gap:.75rem 1.25rem;flex-wrap:wrap;align-items:center}
.branch label{display:flex;gap:.5rem;align-items:center;font-weight:400}
.branch{flex-wrap:nowrap;gap:.75rem}
.branch label{white-space:nowrap}
.f .branch input[type=text]{width:auto;flex:0 1 7rem;min-width:3rem;min-height:2.5rem;padding:.5rem .625rem}
.err-summary{border-radius:var(--r);padding:1rem 1.25rem;margin-bottom:1rem;background:#FEF3F2;box-shadow:0 0 0 1px #FECDCA;color:#7A271A}
.err-summary h2{font-size:1rem;margin:0}
.err-summary ul{margin:.25rem 0 .5rem;padding-left:1.25rem}
.err-summary a{color:#7A271A}
.err-summary p{margin:0}
.notice{border-radius:var(--r);padding:1rem 1.25rem;margin-bottom:1rem;background:#FFFAEB;box-shadow:0 0 0 1px #FEDF89;color:#7A2E0E}
.notice a{color:inherit;font-weight:600}
.pay-btn{width:100%;min-height:3.25rem;font-size:1.0625rem;margin-top:.5rem}
.consent{margin:1.25rem 0 .25rem}
/* สรุปคำสั่งซื้อ: desktop ติดจอขวา · มือถือขึ้นก่อนฟอร์ม พับได้ */
.summary{border-radius:var(--r);padding:1.25rem 1.375rem;position:sticky;top:5.5rem;--glass:rgba(255,255,255,.66)}
.summary>summary{list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-weight:700;cursor:pointer}
.summary>summary::-webkit-details-marker{display:none}
.summary>summary .chev{font-size:.8125rem;font-weight:500;color:var(--muted)}
.sum-items{list-style:none;margin:1rem 0 0;padding:0}
.sum-items li{display:grid;grid-template-columns:4.5rem 1fr auto;gap:.75rem;align-items:center;padding:.75rem 0;border-top:1px solid var(--hair);font-size:.875rem}
.sum-items img{width:100%;aspect-ratio:20/9;object-fit:cover;border-radius:.375rem}
.sum-items b{display:block;font-size:.875rem;line-height:1.5}
.sum-items small{color:var(--muted)}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:.875rem;border-top:1px solid var(--hair)}
.sum-total b{font-size:1.375rem;font-variant-numeric:tabular-nums}
.sum-total small{color:var(--muted);font-size:.8125rem}
.edit-cart{display:inline-block;margin-top:.75rem;font-size:.875rem}
@media(max-width:62rem){.co-grid{grid-template-columns:1fr}.summary{position:static;order:-1}}
@media(max-width:40rem){.fields,.choices{grid-template-columns:minmax(0,1fr)}.seg label{font-size:.8125rem;padding:.5rem .25rem}}
@media(max-width:40rem){#cardBox .fields{grid-template-columns:repeat(2,minmax(0,1fr))}} /* วันหมดอายุ + CVV สั้น วางคู่กันบนมือถือ (ช่องอื่นเต็มแถวด้วย .full) */
@media(max-width:24rem){.hide-sm{display:none}}

/* จ่ายเงินบนหน้าเรา (Beam Charges API) */
.secure{margin-top:.875rem}
#cardErr{margin:1rem 0 0}
.btn[aria-busy=true]{opacity:.7;pointer-events:none}
.wait{margin:1rem 0 .25rem;font-weight:600}
.spin{display:inline-block;width:.875rem;height:.875rem;border:2px solid rgba(29,29,31,.15);border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-.125rem;margin-right:.5rem}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spin{animation:none;border-top-color:rgba(29,29,31,.15)}}

/* ความปลอดภัยการชำระเงิน + ลิงก์ footer */
.safe{display:flex;gap:.75rem;align-items:flex-start;margin-top:1.25rem;padding:.875rem 1rem;border-radius:1rem;background:rgba(18,183,106,.08);box-shadow:0 0 0 1px rgba(18,183,106,.25)}
.safe p{margin:0;font-size:.875rem;color:var(--muted)}
.safe b{display:block;color:#067647;font-size:.9375rem}
/* รูปกุญแจวาดด้วย CSS (ตัวกุญแจ + ห่วงด้านบน) */
.lock{position:relative;flex-shrink:0;width:1rem;height:.75rem;margin-top:.625rem;border-radius:.1875rem;background:#067647;display:inline-block}
.lock::before{content:"";position:absolute;left:50%;bottom:100%;width:.625rem;height:.5rem;transform:translateX(-50%);border:.125rem solid #067647;border-bottom:0;border-radius:.375rem .375rem 0 0}
.lock.sm{width:.625rem;height:.5rem;margin:0 .375rem 0 0;vertical-align:-.0625rem}
.lock.sm::before{width:.375rem;height:.3125rem;border-width:.09375rem}
.foot-links{display:flex;gap:1.25rem;flex-wrap:wrap}

/* ป้ายสถานะคอร์ส (sale-status.js ใช้) */
.badge{display:inline-block;border-radius:999px;padding:.25rem .75rem;font-size:.875rem;font-weight:600}
.badge-closed{background:#FEF3F2;color:#B42318;box-shadow:0 0 0 1px #FECDCA}
.closed{display:grid;gap:.5rem;justify-items:center;text-align:center;margin-top:.875rem}
.closed .hint{font-size:.875rem}
.closed .btn{width:100%}

/* ข้อความไทยต้อง line-height ≥ 1.6 (CLAUDE.md) */
.price small{line-height:1.6}
/* หน้าชำระเงิน: ซ่อนปุ่มตะกร้า แก้ตะกร้าผ่านลิงก์ "แก้ไขตะกร้า" แทน (ยอดบนปุ่มชำระเงินจะได้ตรงกับที่ส่ง server เสมอ) */
body[data-page=checkout] .cart-btn{display:none}
body[data-page=pay] .cart-btn{display:none}

/* หน้า /pay/: QR PromptPay + ผลชำระเงิน (จาก design/mockup-v5-glass) */
.paybox{max-width:26rem;margin:2rem auto 0;border-radius:1.5rem;padding:2rem;text-align:center;--glass:rgba(255,255,255,.7)}
.paybox h1{font-size:1.375rem;margin:0}
.paybox .amt{font-size:2.25rem;font-weight:700;line-height:1.4;font-variant-numeric:tabular-nums}
.paybox .hint{line-height:1.6;margin-top:.25rem}
.paybox .btn{width:100%;margin-top:.625rem}
.paybox .lines{list-style:none;margin:1rem 0 0;padding:0;text-align:left;font-size:.875rem;color:var(--muted);line-height:1.6}
.paybox .lines li{display:flex;justify-content:space-between;gap:1rem}
.qr{width:13rem;aspect-ratio:1;margin:1.5rem auto;border-radius:.25rem;background:#fff;box-shadow:0 0 0 .75rem #fff,0 0 0 calc(.75rem + 1px) var(--hair)}
.qr img{display:block;width:100%;height:100%;image-rendering:pixelated}
.wait{margin:1rem 0 .25rem;font-weight:600;line-height:1.6}
.spin{display:inline-block;width:.875rem;height:.875rem;border:2px solid rgba(29,29,31,.15);border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-.125rem;margin-right:.5rem}
@keyframes spin{to{transform:rotate(360deg)}}
.tick{width:4rem;height:4rem;margin:0 auto 1rem;border-radius:50%;background:#12B76A;display:grid;place-items:center;animation:pop .45s cubic-bezier(.2,.8,.2,1)}
.tick::before{content:"";width:1rem;height:1.875rem;border:solid #fff;border-width:0 .3rem .3rem 0;transform:translateY(-.125rem) rotate(45deg)}
.paybox .bad-msg{margin:1rem 0 0;padding:.875rem 1rem;border-radius:1rem;background:#FEF3F2;box-shadow:0 0 0 1px #FECDCA;color:#912018;line-height:1.6;text-align:left}
@media(prefers-reduced-motion:reduce){.spin{animation:none;border-top-color:rgba(29,29,31,.15)}.tick{animation:none}}

/* หน้าคอร์ส: เหมาะกับ · ปัญหา/สิ่งที่ต้องเตรียม (จุดสีเทา ไม่ใช้สีคอร์ส) · ประวัติผู้สอน */
.fit{margin:.75rem 0 0;line-height:1.6}
.fit b{display:block;font-size:.875rem;color:var(--muted);font-weight:600}
.gets.quiet li::before{background:var(--muted);box-shadow:none;opacity:.45}
.teacher .bio{margin:.5rem 0 0;font-size:.9375rem;line-height:1.6;color:var(--muted)}
.c-block .faq-list{margin-top:0}

/* หน้า /learners (ยกจาก design/mockup-v5-glass/style.css) */
.okbar{display:flex;gap:1rem;align-items:center;border-radius:var(--r);padding:1rem 1.25rem;margin:.5rem 0 1.5rem;--glass:rgba(255,255,255,.66)}
.okbar .tick{margin:0;width:2.5rem;height:2.5rem;border-radius:50%;background:#12B76A;display:grid;place-items:center;flex-shrink:0;animation:pop .45s cubic-bezier(.2,.8,.2,1)}
.okbar .tick::before{content:"";width:.625rem;height:1.125rem;border:solid #fff;border-width:0 .2rem .2rem 0;transform:translateY(-.125rem) rotate(45deg)}
.okbar b{display:block}.okbar small{color:var(--muted)}
.meterbox{position:sticky;top:4.75rem;z-index:5;border-radius:1rem;padding:.75rem 1rem;margin-bottom:1rem;display:grid;gap:.375rem;font-size:.9375rem;--glass:rgba(255,255,255,.72)}
.meter{height:.375rem;background:rgba(29,29,31,.08);border-radius:999px;overflow:hidden}
.meter i{display:block;height:100%;width:var(--p,0%);background:var(--ink);border-radius:999px;transition:width .35s cubic-bezier(.2,.8,.2,1)}
.seat{border:0;margin:1.25rem 0 0;padding:1.25rem 0 0;border-top:1px solid var(--hair);display:grid;gap:1rem;min-width:0}
.panel .seat:first-of-type{border-top:0;margin-top:0;padding-top:0}
.seat legend{font-weight:700;padding:0;float:left;width:100%;display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.seat legend .st{font-size:.8125rem;font-weight:600;color:var(--muted)}
.seat legend .st.done{color:#067647}
.seat .tools-row{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;clear:both}
.seat .tools-row .f{flex:1;min-width:12rem}
/* หน้าขอบคุณ */
.thanks{text-align:center;max-width:36rem;margin:2rem auto 0}
.thanks .tick{width:4rem;height:4rem;margin:0 auto 1rem}
.thanks .tick::before{width:1rem;height:1.875rem;border-width:0 .3rem .3rem 0}
.thanks .panel{text-align:left;margin-top:1.5rem}
.thanks .panel ul{margin:.25rem 0 0;padding-left:1.25rem;color:var(--muted)}
.thanks .ctas{justify-content:center;margin-top:1.5rem}
.thanks .order-no{white-space:nowrap}
.thanks .next-step{text-align:left;margin-top:1.25rem;background:#ECFDF3;box-shadow:0 0 0 1px #ABEFC6;color:#054F31}

/* ช่องกับดักบอตในหน้า checkout: คนจริงมองไม่เห็น (ไม่ใช้ display:none บอตบางตัวข้ามช่องที่ซ่อนแบบนั้น) */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#ts-box:not(:empty){margin:0 0 .75rem}
/* ราคาเดิมขีดฆ่า (price_was) วางหน้าราคาจริง */
.price .was,.buybar .was{font-weight:400;color:var(--muted);font-size:.8em;margin-right:.125rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* ที่นั่งเหลือเท่าที่เลือกแล้ว: ปุ่ม + จาง + บอกจำนวนที่เหลือ */
.stepper button:disabled{opacity:.3;cursor:not-allowed}
.item .limit{display:block;margin-top:.25rem;color:var(--muted);font-size:.8125rem}
