/* ของเราเพิ่มจากเล่ม 107 (ห้ามแก้ tokens.css / site.css) — โหลดหลัง site.css
   1) ช่วงจอ 900–1,130 px ที่เล่ม 107 บอกว่ายังไม่ผ่าน: ให้เมนูบนและตัวเลข hero ห่อบรรทัด
   2) สถานะที่ JS คุม: ลิ้นชักทริปที่ดูล่าสุด · รายละเอียดรายวัน · ปุ่มที่ซ่อนเมื่อยังไม่มีข้อมูล */
@media (min-width:900px) and (max-width:1139px){
  .tw-nav-menu{flex-wrap:wrap;row-gap:4px;white-space:normal;margin-left:14px;gap:12px}
  .tw-hero .tw-hero-nums,.tw-hero-prog .tw-hero-nums{flex-wrap:wrap}
}
[hidden]{display:none!important}
.tw-itinerary li .tw-day-detail{grid-column:1/-1}
.tw-itinerary li.is-open .tw-more-link{display:none}
.tw-drawer{position:fixed;bottom:0;max-height:60vh;overflow:auto}
@media (min-width:900px){.tw-drawer{left:auto;right:24px;bottom:84px;width:420px;border-radius:22px}}
.tw-drawer-item{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);color:inherit;text-decoration:none}
.tw-drawer-item .tw-ph{width:56px;height:42px;border-radius:10px;background:var(--bgs) center/cover no-repeat;flex:none}
.tw-drawer-item b{display:block;font-size:13px}
.tw-drawer-item small{color:var(--mut)}
.tw-empty{color:var(--mut);font-size:13px;padding:6px 0}
img.tw-img[src=""]{display:none}
/* ตัวกรองซ้ายของเราเป็นลิงก์หน้าจริง (ไม่ใช่ checkbox) ให้หน้าตาเท่า label ของเล่ม 107 */
/* ตัวกรองซ้าย: ทุกช่องเป็นลิงก์ที่หน้าตาเหมือนช่องติ๊กของแบบ 107 (label i/b) · .is-on = ติ๊กแล้ว (20 ต.ค. 2569 ช่องติ๊กเดิมกดไม่ได้) */
.tw-filter-side a.tw-flabel{display:flex;align-items:center;gap:6px;padding:2px 0;line-height:1.35;color:inherit;text-decoration:none}
.tw-filter-side a.tw-flabel i{width:13px;height:13px;border:1.5px solid var(--mut);border-radius:3px;flex:none;opacity:.6;display:grid;place-items:center;font-style:normal}
.tw-filter-side a.tw-flabel b{margin-left:auto;font-weight:400;color:var(--mut);font-size:11.5px}
.tw-filter-side a.tw-flabel:hover{color:var(--c-blue)}
.tw-filter-side a.tw-flabel.is-on{font-weight:700;color:var(--c-blue)}
.tw-filter-side a.tw-flabel.is-on i{opacity:1;border-color:var(--c-blue);background:var(--c-blue)}
.tw-filter-side a.tw-flabel.is-on i::after{content:"";width:6px;height:3px;border:solid var(--c-white);border-width:0 0 2px 2px;transform:translateY(-1px) rotate(-45deg)}
.tw-filter-side .tw-filter-head a{font-size:12px}
.tw-quick .tw-q.is-on{outline:2px solid var(--c-blue)}
.tw-sortbar a.tw-sort{color:inherit;text-decoration:none}
.tw-month-list span.tw-month-cell{display:inline-flex;flex-direction:column}
/* ช่องค้นหาจริง (หน้า /search และ 404) ให้หน้าตาเท่า span ปลอมของเล่ม 107 */
.tw-search input[type=search]{flex:1;min-width:0;height:46px;padding:0 16px;border-radius:99px;background:var(--c-white);border:1px solid var(--line);color:var(--ink);font:inherit;font-size:14.5px;outline:0}
.tw-search input[type=search]:focus{border-color:var(--c-blue)}
.tw-search input[type=search]::placeholder{color:var(--mut)}
/* ฟอร์มกรุ๊ปส่วนตัว (เล่ม 107 ใช้ปุ่มเลือก JS · ของเราเป็นฟอร์มจริง) */
.tw-lead-form .tw-q{margin-top:12px}
.tw-lead-form .tw-opt-note{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.tw-lead-form label{display:inline-flex;align-items:center;gap:6px;font-size:13.5px}
.tw-lead-form .tw-radio,.tw-lead-form .tw-check{border:1px solid var(--line);border-radius:99px;padding:6px 12px;background:var(--c-white);cursor:pointer}
.tw-lead-form .tw-radio:has(input:checked),.tw-lead-form .tw-check:has(input:checked){border-color:var(--c-blue);background:#eaf2ff;color:var(--c-blue)}
.tw-lead-form input[type=radio],.tw-lead-form input[type=checkbox]{accent-color:var(--c-blue)}
.tw-lead-form input[type=text],.tw-lead-form input[type=number],.tw-lead-form textarea{font:inherit;font-size:14px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0}
.tw-lead-form input[type=number]{width:72px}
.tw-lead-form textarea{width:100%;margin-top:8px}
.tw-lead-form button[type=submit]{margin-top:14px}
/* ใบจอง /order/{key} (เล่ม 107 order*.html): ปุ่มจ่ายเป็นลิงก์จริง · ป้ายวันครบกำหนด · กล่องเตือนเมื่อเปิดหน้าจ่ายไม่สำเร็จ */
.tw-pay-methods a.tw-cta{display:flex;align-items:center;justify-content:center;height:46px;border-radius:12px;font:600 14.5px var(--hf);text-decoration:none;text-align:center;padding:0 14px}
.tw-pay .tw-pay-due{margin:-2px 0 10px;font-size:13.5px;color:var(--tx20,var(--ink))}
.tw-pay .tw-pay-err{margin:0 0 10px;padding:8px 10px;border-radius:10px;background:#fff4e5;color:#b54708;font-size:13px}
.tw-table .tw-pay-how{display:block;color:var(--mut);font-size:11.5px}
span.tw-prog-link{cursor:default}
.tw-bottombar a.tw-cta{display:inline-flex;align-items:center;text-decoration:none}
/* ชื่อ 3 แบบ + เรื่องเล่า (เล่ม 110 · Pools ส่งข้อมูล 19 ต.ค. 2569) */
.tw-theme .tw-card-body h3.tw-card-name{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}   /* ชื่อการ์ดยาวขึ้น ตัด 3 บรรทัด (เดิม 2) */
.tw-itinerary li:not(.is-open) p.tw-story-text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tw-itinerary .tw-story-notes{color:var(--mut);opacity:.85}
/* สไลด์รูปใหญ่หน้าโปรแกรม (เล่ม 110 ส่วน 8): สไลด์ 1 = รูปเดิม · 2+ โหลดหลังหน้านิ่ง · ข้อความทุกสไลด์อยู่ใน HTML · ปิด JS = ค้างสไลด์ 1 */
.tw-hero-prog.has-story .tw-img{transition:opacity .9s ease}
.tw-hero-prog.has-story .tw-img.tw-slide{opacity:0;animation:none}
.tw-hero-prog.has-story .tw-img.tw-slide.is-on{opacity:1;animation:kb20 16s ease-in-out infinite alternate}
.tw-hero-prog.has-story .tw-img.is-off{opacity:0}
.tw-hero-prog .tw-slide-plain{position:absolute;inset:0;display:block;background:linear-gradient(160deg,#2b66b1,#0f2a52 60%,#071a3a)}   /* ไม่มีรูป = พื้นไล่สี */
.tw-hero-prog .tw-story{list-style:none;margin:0;padding:0;position:relative;z-index:1}
.tw-hero-prog .tw-story li{display:none;color:var(--c-white);text-shadow:0 1px 6px rgba(6,24,58,.85);max-width:820px}
.tw-hero-prog .tw-story li[aria-current="true"]{display:block}
.tw-hero-prog .tw-story li b{display:block;font:700 16px/1.3 var(--hf)}
.tw-hero-prog .tw-story li br{display:none}
.tw-hero-prog .tw-story li b+*{display:block}
.tw-hero-prog .tw-story li{font-size:14px;line-height:1.45;margin-top:6px}
.tw-hero-prog .tw-story-nav{display:flex;gap:6px;align-items:center;margin-top:10px;position:relative;z-index:2}
.tw-hero-prog .tw-story-nav button{width:8px;height:8px;border-radius:99px;border:0;padding:0;background:rgba(255,255,255,.45);cursor:pointer}
.tw-hero-prog .tw-story-nav button[aria-current="true"]{width:22px;background:var(--c-white)}
.tw-hero-prog .tw-story-nav .tw-story-pause{width:auto;height:auto;margin-left:auto;background:rgba(0,0,0,.35);color:#fff;font-size:10px;padding:3px 8px;border-radius:99px}
.tw-hero-prog .tw-credit{position:absolute;right:10px;bottom:8px;z-index:2;font-size:10px;color:rgba(255,255,255,.7)}
.tw-hero-prog .tw-credit:empty{display:none}
/* สไลด์ 2 ขึ้นไป (มติเจ้าของ 14 ต.ค.): ข้อความสไลด์เป็นตัวหลัก · H1 ย้ายไปใต้ข้อความ ขนาดเท่าบรรทัด 1 · ซ่อน breadcrumb และชื่อยาว · ทำด้วย CSS order */
.tw-hero-prog.has-story{display:flex;flex-direction:column;justify-content:flex-end}
.tw-hero-prog.has-story.is-later .tw-breadcrumb,.tw-hero-prog.has-story.is-later .tw-hero-sub{display:none}
.tw-hero-prog.has-story.is-later .tw-story{order:1}
.tw-hero-prog.has-story.is-later h1{order:2;font-size:16px;line-height:1.3;font-weight:600;margin:8px 0 0;opacity:.92}
.tw-hero-prog.has-story.is-later .tw-story li b{font-size:23px;line-height:1.25}
.tw-hero-prog.has-story.is-later .tw-story li{font-size:15px}
.tw-hero-prog.has-story .tw-story-nav{order:3}
@media (min-width:900px){
  .tw-hero-prog .tw-story li b{font-size:20px}.tw-hero-prog .tw-story li{font-size:15px}
  .tw-hero-prog.has-story.is-later .tw-story li b{font-size:30px}.tw-hero-prog.has-story.is-later h1{font-size:20px;max-width:820px}
}
@media (prefers-reduced-motion:reduce){.tw-hero-prog.has-story .tw-img{transition:none;animation:none!important}}
/* ระยะขอบข้างเพิ่ม (เจ้าของขอ 20 ต.ค. 2569 "เว็บดูแน่นมาก") — เติมที่รากหน้า ไม่แตะ site.css ของเล่ม 107
   มือถือ +4px ต่อข้าง · จอคอม +24px ต่อข้าง และจอกว้างจัดเนื้อหากึ่งกลางที่ราว 1,400px (พื้นหลังยังเต็มจอ เพราะเป็นของรากหน้า) */
.tw-page{padding-inline:4px}
@media (min-width:900px){.tw-page{padding-inline:max(24px,calc((100% - 1400px) / 2))}}
/* กล่อง "ไปต่อ" 3 คอลัมน์: คอลัมน์ 1fr ขยายตามคำยาว → มือถือเลื่อนข้างได้ 96px (พบ 20 ต.ค. 2569) · ให้คอลัมน์หดได้และตัดคำ */
.tw-ctr .tw-next3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tw-ctr .tw-next3 a,.tw-ctr .tw-next3 b{overflow-wrap:anywhere}

/* ใบจอง /order/{key} แบบ C "เส้นทางจนถึงวันเดินทาง" (22 ต.ค. 2569) — ใช้ตัวแปรกระจกของเล่ม 107 (--gl --ed --sh --bf --r) */
.tw-oc{max-width:1160px;margin:0 auto;padding:22px var(--g17,16px) 40px;display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}
.tw-oc-main{flex:999 1 600px;min-width:0;display:flex;flex-direction:column;gap:22px}
.tw-oc-side{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:16px}
.tw-oc-glass{background:var(--gl,rgba(255,255,255,.62));border:1px solid var(--ed,rgba(255,255,255,.88));box-shadow:var(--sh);-webkit-backdrop-filter:var(--bf);backdrop-filter:var(--bf);border-radius:var(--r,26px)}
.tw-oc-head small{font-size:13.5px;color:var(--mut)}
.tw-oc-head small b{color:var(--ink)}
.tw-oc-head small a{color:var(--c-blue);text-decoration:none}
.tw-oc-head h1{margin:4px 0 6px;font:800 28px/1.3 var(--hf);text-wrap:balance}
.tw-oc-h1{margin:8px 0 0;font:600 16px/1.4 var(--hf);color:var(--ink)}
.tw-oc-chips{display:flex;gap:8px;flex-wrap:wrap}
.tw-oc-chip{display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:2px 11px 2px 4px;font:600 13px/1.5 var(--hf);white-space:nowrap;background:var(--c-white);color:var(--ink);border:1px solid var(--line)}
.tw-oc-chip.is-plain{padding-left:11px}
.tw-oc-chip i{width:14px;height:14px;border-radius:50%;display:inline-block;flex:none;background:#b8c4d6}
.tw-oc-chip.is-ok i{background:#22c55e}.tw-oc-chip.is-warn i{background:#f59e0b}.tw-oc-chip.is-bad i{background:#d2341f}
.tw-oc-sec{padding:26px 28px}
.tw-oc-sec-h{margin:0 0 6px;font:700 21px/1.35 var(--hf)}
.tw-oc-sub{margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--mut)}
.tw-oc-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tw-oc-step{display:grid;grid-template-columns:52px 1fr auto;gap:0 12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.tw-oc-step:last-child{border-bottom:0}
.tw-oc-step.is-pay{display:block;padding:6px 0 18px}
.tw-oc-num{font:700 14px var(--hf);color:var(--c-brand)}
.tw-oc-step.is-done .tw-oc-num{color:var(--mut)}
.tw-oc-step.is-todo .tw-oc-num{color:var(--mut)}
.tw-oc-step.is-late .tw-oc-num{color:var(--hot)}
.tw-oc-step-t{font:700 16px/1.4 var(--hf)}
.tw-oc-step.is-done .tw-oc-step-t{color:var(--c-slate)}
.tw-oc-step.is-todo .tw-oc-step-t{color:var(--ink)}
.tw-oc-step-s{font-size:13.5px;color:var(--mut)}
.tw-oc-paybox{border:2px solid var(--c-brand);border-radius:22px;padding:18px 20px;background:rgba(255,255,255,.85);display:flex;flex-direction:column;gap:12px}
.tw-oc-paybox.is-late{border-color:var(--hot)}
.tw-oc-payhead{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}
.tw-oc-paytitle{font:700 19px/1.3 var(--hf)}
.tw-oc-paydue{font-size:13.5px;color:var(--c-slate)}
.tw-oc-paydue b{color:var(--ink)}
.tw-oc-late{color:var(--hot)!important}
.tw-oc-payamt{font:800 28px/1.2 var(--hf);color:var(--c-brand);white-space:nowrap}
.tw-oc-payamt small{font:600 13px var(--hf);margin-left:4px;color:var(--ink)}
.tw-oc-paybox.is-late .tw-oc-payamt{color:var(--hot)}
.tw-oc-paybtns{display:flex;gap:10px;flex-wrap:wrap}
.tw-oc-pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border-radius:99px;font:600 15px var(--hf);text-decoration:none;white-space:nowrap;box-sizing:border-box;color:var(--ink)}
.tw-oc-pill-pay{background:var(--c-brand);color:var(--c-white);box-shadow:0 4px 12px rgba(43,102,177,.2);flex:1 1 200px}
.tw-oc-pill-ghost{background:var(--c-white);border:1px solid var(--line);flex:1 1 180px}
.tw-oc-pill-line{background:var(--line-g);color:var(--c-white)}
.tw-oc-pill-sm{min-height:36px;padding:0 14px;font-size:13px}
.tw-oc-w{width:100%}
.tw-oc-fine{margin:-2px 0 0;font-size:12.5px;color:var(--mut)}
.tw-oc-fine b{color:var(--ink)}
.tw-oc-notice{padding:10px 14px;border-radius:14px;font-size:13.5px;border:1px solid var(--line);background:var(--c-white)}
.tw-oc-notice.is-bad{background:#fff4e5;color:#b54708;border-color:#f0d9a0}
.tw-oc-notice.is-wait{background:#eef6ff;border-color:#c9d6ea}
.tw-oc-ask{padding:16px 20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.tw-oc-ask-ic{flex:none;width:46px;height:46px;border-radius:50%;background:#eef3fa;display:grid;place-items:center;font-size:20px}
.tw-oc-ask>div{flex:1 1 260px;min-width:0}
.tw-oc-ask h2{margin:0;font:700 16px var(--hf)}
.tw-oc-ask .tw-oc-pill-line{min-width:220px}
.tw-oc-bal{padding:20px;display:flex;flex-direction:column;gap:10px;background:rgba(255,255,255,.72)}
.tw-oc-pic{height:140px;border-radius:18px;background:#cfe0f5 center/cover no-repeat;display:grid;place-items:center;font:600 14px var(--hf);color:#44546e}
.tw-oc-bal-h{margin:4px 0 0;font:500 13px var(--bf-font,Sarabun,sans-serif);color:var(--mut)}
.tw-oc-big{font:800 34px/1.1 var(--hf);color:var(--c-brand);font-variant-numeric:tabular-nums}
.tw-oc-bar{height:8px;border-radius:4px;background:#e3eaf4;overflow:hidden}
.tw-oc-bar i{display:block;height:100%;background:var(--c-brand)}
.tw-oc-sub2{font-size:13px;color:#44546e}
.tw-oc-sum{padding:18px 20px}
.tw-oc-sum h2{margin:0 0 6px;font:700 16px var(--hf)}
.tw-oc-kv{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid #e3eaf4;font-size:13.5px}
.tw-oc-kv span{color:var(--mut)}
.tw-oc-kv b{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.tw-oc-kv.is-total b{font-weight:700}
.tw-oc-kv.is-last{border-bottom:0}
.tw-oc-inst{margin-top:8px;font-size:13px}
.tw-oc-inst summary{cursor:pointer;color:var(--c-blue);font:600 13px var(--hf)}
.tw-oc-foot{margin:0;font-size:12.5px;color:var(--mut)}
@media (max-width:599px){
  .tw-oc{padding-top:14px;gap:16px}
  .tw-oc-head h1{font-size:23px}
  .tw-oc-sec{padding:18px 16px}
  .tw-oc-step{grid-template-columns:44px 1fr;gap:4px 10px}
  .tw-oc-step .tw-oc-pill-sm{grid-column:2;justify-self:start;margin-top:4px}
  .tw-oc-paybox{padding:14px}
  .tw-oc-glass{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .tw-oc-ask .tw-oc-pill-line{width:100%;min-width:0}
}
.tw-oc-bal .tw-oc-pill{flex:none}

/* QA 22 ต.ค. 2569 — ช่องค้นหาบนเมนูเป็น input จริง (site.css จัดสไตล์ไว้กับ span) */
.tw-theme .tw-search.tw-nav-search input[type=search]{width:100%;min-width:0;height:34px;padding:0 12px;border-radius:99px;border:1px solid var(--line);background:var(--c-white);color:var(--ink);font:inherit;font-size:12.5px;outline:0;-webkit-appearance:none}
.tw-theme .tw-search.tw-nav-search input[type=search]:focus{border-color:var(--c-blue)}
.tw-theme .tw-search.tw-nav-search input[type=search]::placeholder{color:var(--mut)}
/* ฟอร์มกรุ๊ปส่วนตัว: class .tw-q ชนกับชิปตัวกรอง → .tw-pq (สไตล์เดียวกับ .is-qa .tw-q ของเล่ม 107) */
.tw-theme .is-qa .tw-pq{margin-top:12px;background:var(--c-white);color:var(--ink);border-radius:18px;padding:14px;display:grid;gap:10px}
.tw-theme .is-qa .tw-pq>b{font:600 16px var(--hf)}
.tw-theme .is-qa .tw-pq small{color:var(--mut);font-size:11.5px}
.tw-theme .is-qa .tw-pq .tw-opt-note{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tw-theme .is-qa .tw-pq .tw-opt-note label{display:flex;align-items:center;gap:6px;font-size:13.5px}
.tw-theme .is-qa .tw-pq textarea{width:100%;box-sizing:border-box;margin-top:8px}
@media (min-width:900px){.tw-theme .is-qa .tw-pq .tw-opt-note{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* หน้ากรุ๊ปส่วนตัวไม่มีแถบตัวกรอง → ไม่แบ่งคอลัมน์ (เดิมการ์ดตกไปอยู่คอลัมน์ 216px) */
@media (min-width:900px){.tw-list-layout.is-noaside{grid-template-columns:minmax(0,1fr)}}

/* QA Grok 26 ต.ค. 2569 (รายงาน staging2-qa-20261026) — แก้ที่นี่ ไม่แตะ site.css ของทีมดีไซน์ */
@media (min-width:900px){
  /* QA-005 การ์ด "สายการบิน ที่พัก และอาหาร" ใน .tw-main-col โดนกฎ padding-left/right:0 ของเลย์เอาต์ → ข้อความชิดขอบการ์ด */
  .tw-theme .tw-prog-layout .tw-main-col .tw-block.is-card{padding-left:22px!important;padding-right:22px!important}
  /* QA-008 แกลเลอรีไฮไลต์ 4 คอลัมน์คงที่ มี 2 รูปก็กินแค่ครึ่งซ้าย → ให้รูปกระจายเต็มความกว้าง */
  .tw-theme .tw-wides{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
}
/* QA-010 การ์ดสไลเดอร์ "ข้อมูลช่วยเลือก" ยืดสูงเท่าการ์ดที่ยาวที่สุด → สูงตามเนื้อหา */
.tw-theme .tw-info-slider.tw-pc-block{align-items:flex-start}
/* QA-013 เบอร์โทรท้ายหน้าหักบรรทัดกลางเบอร์ */
.tw-theme footer address a[href^="tel:"]{white-space:nowrap}
/* QA-018 จุด dots ของ hero อยู่แถวเดียวกับปุ่ม CTA บนมือถือ → ย้ายไปมุมซ้ายบนของรูป (ขวาบนมีริบบิ้นยกเลิกฟรี) */
.tw-theme .tw-hero-slider .tw-hero-dots{left:18px;bottom:auto;top:16px}
/* QA-021 กด month chip แล้วแถวแรกของเดือนไปซ่อนใต้ sticky header (59px) */
.tw-theme .tw-rounds tr[id^="m-"]{scroll-margin-top:76px}
/* QA-024 วันที่ไม่มีรูปของตัวเอง → ไม่โชว์กรอบรูปว่าง (เดิมใส่รูปหลักซ้ำทุกวัน) */
.tw-theme .tw-itinerary .tw-day-left .tw-ph:not([style]){display:none}
/* QA-008 (retest) แกลเลอรีไฮไลท์บน desktop กว้างเท่าทั้ง layout (x=24) ขณะหัวข้อ/การ์ดเริ่ม x=68 → เว้นขอบให้ตรงคอลัมน์หลัก */
@media(min-width:900px){.tw-theme .tw-main-prog>.tw-wides{margin-left:44px;margin-right:44px}}
/* QA-010 (retest) ราง slider "ข้อมูลช่วยเลือก" สูงเท่าการ์ดยาวสุด (~640px) บนมือถือ → จำกัดความสูงการ์ด เลื่อนอ่านในการ์ดได้ */
@media(max-width:899px){.tw-theme .tw-info-slider.tw-pc-block>.tw-block{max-height:380px;overflow-y:auto;-webkit-overflow-scrolling:touch}}

/* ===== Grok retest 27 ต.ค. 2569 — QA-012 เมนูมือถือ + skip link · QA-011 ตัวกรอง/เรียง/pager บนมือถือ (แก้ที่นี่ ไม่แตะ site.css) ===== */
/* skip link: ซ่อนจนกว่าจะโฟกัสด้วยคีย์บอร์ด */
.tw-skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--c-navy,#0d2344);color:#fff;padding:10px 16px;border-radius:99px;font:600 14px var(--hf,Prompt,sans-serif);text-decoration:none;transition:top .15s}
.tw-skip:focus{top:12px;outline:3px solid #ffd166}
/* เมนูมือถือ ☰ (details/summary ทำงานได้โดยไม่มี JS) */
.tw-theme .tw-mnav{position:static;margin-left:4px;flex:none}
.tw-theme .tw-mnav>summary{list-style:none;display:grid;gap:4px;place-content:center;width:36px;height:36px;border-radius:99px;cursor:pointer;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.8);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.tw-theme .tw-mnav>summary::-webkit-details-marker{display:none}
.tw-theme .tw-mnav>summary i{display:block;width:16px;height:2px;border-radius:2px;background:var(--c-navy,#0d2344);transition:transform .15s,opacity .15s}
.tw-theme .tw-mnav[open]>summary i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.tw-theme .tw-mnav[open]>summary i:nth-child(2){opacity:0}
.tw-theme .tw-mnav[open]>summary i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.tw-theme .tw-mnav:not([open])>nav{display:none}
.tw-theme .tw-mnav>nav{position:absolute;left:10px;right:10px;top:calc(100% + 4px);z-index:40;display:grid;padding:8px;border-radius:22px;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);border:1px solid rgba(255,255,255,.9);box-shadow:0 16px 40px rgba(20,40,80,.18)}
.tw-theme .tw-mnav>nav a{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:11px 14px;border-radius:14px;color:var(--ink);font:500 15px var(--hf);text-decoration:none}
.tw-theme .tw-mnav>nav a:hover,.tw-theme .tw-mnav>nav a:focus-visible{background:rgba(43,102,177,.08)}
.tw-theme .tw-mnav>nav a small{color:var(--mut);font-size:12px}
.tw-theme .tw-mnav>nav a.is-tel{margin-top:4px;border-top:1px solid var(--line);border-radius:0 0 14px 14px;color:var(--c-blue,#2b66b1);font-weight:600}
@media (max-width:899px){
  /* ปุ่ม LINE บนหัวมือถือหดให้มีที่สำหรับ ☰ */
  .tw-theme .tw-nav .tw-btn-line{padding:0 12px}
  /* ตัวกรอง: label→checkbox พับ/กาง · ค่าตั้งต้นพับ */
  .tw-theme .tw-fdd-btn{display:flex;align-items:center;justify-content:space-between;margin:0 var(--g17) 10px;padding:9px 14px;border-radius:99px;background:var(--card,#fff);border:1px solid var(--line);font:600 13.5px var(--hf);color:var(--ink);cursor:pointer;user-select:none}
  .tw-theme .tw-fdd-btn b{margin-left:8px;font:500 11.5px var(--hf);color:var(--c-blue,#2b66b1)}
  .tw-theme .tw-fdd-btn i{font-style:normal;transition:transform .15s;color:var(--mut)}
  .tw-theme .tw-fdd:checked~.tw-fdd-btn i{transform:rotate(180deg)}
  .tw-theme .tw-fdd:not(:checked)~.tw-filter-side{display:none}
  .tw-theme .tw-filter-side{margin:0 var(--g17) 12px;padding:10px 14px 4px;border-radius:18px;background:var(--card,#fff);border:1px solid var(--line);font-size:13px;color:var(--ink)}
  .tw-theme .tw-filter-side .tw-filter-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:6px;border-bottom:1px solid var(--line)}
  .tw-theme .tw-filter-side .tw-filter-head b{font:600 14px var(--hf)}
  .tw-theme .tw-filter-side .tw-filter-head a{color:var(--c-blue,#2b66b1);font-size:12px}
  .tw-theme .tw-filter-side .tw-filter-group{padding:8px 0;border-bottom:1px solid var(--line)}
  .tw-theme .tw-filter-side .tw-filter-group:last-child{border-bottom:0}
  .tw-theme .tw-filter-side h4{font:600 12px var(--hf);margin:0 0 4px;color:var(--mut)}
  .tw-theme .tw-filter-side a.tw-flabel{padding:5px 0}
  .tw-theme .tw-filter-side a.tw-flabel i{width:15px;height:15px}
  /* แถบเรียง (site.css มีสไตล์เฉพาะ ≥900) */
  .tw-theme .tw-sortbar{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;padding:0 var(--g17) 10px;font-size:12.5px!important;color:var(--mut)}
  .tw-theme .tw-sortbar>span:first-child{flex:1 0 100%}
  .tw-theme .tw-sortbar b{color:var(--ink)}
  .tw-theme .tw-sortbar .tw-s{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
  .tw-theme .tw-sortbar .tw-s b{font-weight:500;border:1px solid var(--line);border-radius:99px;padding:4px 12px;background:var(--card,#fff);display:inline-block}
  .tw-theme .tw-sortbar .tw-s b.is-on{background:var(--ink);color:var(--card,#fff);border-color:var(--ink)}
  /* แสดงอีก N โปรแกรมในหน้านี้ (checkbox เปิด .tw-pc-col ที่ site.css ซ่อนไว้) */
  .tw-theme .tw-more:checked~.tw-pc-col{display:contents}
  .tw-theme .tw-more:checked~.tw-more-btn{display:none}
  .tw-theme .tw-grid3>.tw-more-btn{margin:4px var(--g17) 0;align-self:center;justify-content:center;cursor:pointer;background:var(--card,#fff);color:var(--ink);border:1px solid var(--line)}
  /* pager (site.css มีสไตล์เฉพาะ ≥900) */
  .tw-theme .tw-pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;padding:16px var(--g17) 0}
  .tw-theme .tw-pager a,.tw-theme .tw-pager span{min-width:34px;text-align:center;border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:13px;background:var(--card,#fff);color:var(--ink);text-decoration:none}
  .tw-theme .tw-pager span.is-on{background:var(--ink);color:var(--card,#fff)}
}

/* /about-us 27 ต.ค. 2569 — รูปใบอนุญาต · รูปลูกค้า · แผนที่ Google (เจ้าของส่งมา) */
.tw-theme .tw-about-fig{margin:18px 0 0;display:grid;gap:8px}
.tw-theme .tw-about-fig img,.tw-theme .tw-about-fig iframe{display:block;width:100%;height:auto;max-width:100%;border:1px solid var(--line);border-radius:18px;background:var(--card,#fff);box-shadow:0 8px 24px rgba(20,40,80,.08)}
.tw-theme .tw-about-fig iframe{aspect-ratio:4/3;height:auto;min-height:260px}
.tw-theme .tw-about-fig figcaption{font-size:12.5px;color:var(--mut);line-height:1.45}
.tw-theme .tw-about-fig.is-wide img{max-width:640px;margin:0 auto}
.tw-theme .tw-about-fig a{display:block}
.tw-theme .tw-about-2col{display:grid;gap:18px;margin-bottom:18px}
@media (min-width:900px){
  .tw-theme .tw-about-2col{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:start}
  .tw-theme .tw-about-fig.is-wide{margin-top:24px}
}

/* 27 ต.ค. 2569 — เมนู header มี "เกี่ยวกับเรา" แล้ว 12 ลิงก์ · จอ 900–1439px ช่องค้นหาเคยหดเหลือ 0 และปุ่ม LINE ล้นขอบ → ลด gap · ซ่อนเบอร์โทรในเมนู (มีในท้ายหน้า+ปุ่ม LINE) · ช่องค้นหาไม่ต่ำกว่า 110px */
@media (min-width:900px){.tw-theme .tw-search.tw-nav-search{min-width:110px}}
@media (min-width:900px) and (max-width:1439px){
  .tw-theme .tw-nav-menu{gap:12px;margin-left:18px}
  .tw-theme .tw-nav-menu a[href^="tel:"]{display:none}
}

/* 27 ต.ค. 2569 — ปุ่มดาวน์โหลดโปรแกรม PDF (Pools ส่ง pdf_url) · ใต้หัว "แผนการเดินทางรายวัน" + กล่องราคาด้านขวา (จอใหญ่) */
.tw-theme .tw-pdf-row{margin:10px 0 12px}
.tw-theme .tw-pdf-row .tw-btn{margin:0;max-width:100%;text-decoration:none}
.tw-theme .tw-side .tw-pdf-btn{display:flex;width:100%;justify-content:center;margin:8px 0 0;height:38px;padding:0 10px;font-size:13px;text-decoration:none}
@media (max-width:899px){.tw-theme .tw-pdf-row .tw-btn{display:flex;width:100%;justify-content:center;padding:10px 14px;font-size:15px!important;white-space:nowrap}}

/* ===== Grok รอบ 4 (staging2-round4-20261027) ===== */
/* checkbox ของปุ่มตัวกรอง/แสดงอีก: มองไม่เห็นแต่กด Tab ถึง + Space เปิดปิด (เดิมใช้ hidden คีย์บอร์ดใช้ไม่ได้) */
.tw-vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;opacity:0}
.tw-theme .tw-fdd:focus-visible~.tw-fdd-btn,.tw-theme .tw-more:focus-visible~.tw-more-btn{outline:3px solid var(--c-blue,#2b66b1);outline-offset:2px}
@media (min-width:900px){.tw-theme .tw-fdd{display:none}}
/* R4-N6 ปุ่ม ☰ พื้นที่แตะ 44×44 (วงกลมที่เห็นยัง 36) */
.tw-theme .tw-mnav>summary{width:44px;height:44px;margin:-4px -4px -4px 0;background:transparent;border:0;box-shadow:none;position:relative}
.tw-theme .tw-mnav>summary::before{content:'';position:absolute;inset:4px;border-radius:99px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.8);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.tw-theme .tw-mnav>summary i{position:relative}
.tw-theme .tw-mnav>summary:focus-visible{outline:3px solid var(--c-blue,#2b66b1);outline-offset:-2px;border-radius:99px}
/* R4-N2 จอ 360: ช่องค้นหาเหลือ 45px → ย่อโลโก้/ปุ่ม LINE เล็กน้อย */
@media (max-width:379px){.tw-theme .tw-nav .tw-logo img{width:92px;height:auto}.tw-theme .tw-nav .tw-btn-line{padding:0 10px}.tw-theme .tw-nav>div{gap:6px}}
/* R4-N4 การ์ด slider มือถือเลื่อนซ้อนในการ์ด → เลิกจำกัดความสูง (รางสูงตามการ์ดยาวสุด ดีกว่าเนื้อหาถูกตัด) */
@media (max-width:899px){.tw-theme .tw-info-slider.tw-pc-block>.tw-block{max-height:none;overflow:visible}}
/* ข้อ 4 ช่องค้นหาที่ 1440 หดเหลือ 110 เพราะเมนูกว้างขึ้น → ซ่อนเบอร์โทรในเมนูถึง 1599 (เบอร์อยู่ท้ายหน้า + ปุ่ม LINE) */
@media (min-width:1440px) and (max-width:1599px){.tw-theme .tw-nav-menu a[href^="tel:"]{display:none}}
/* R4-N4 (ต่อ) การ์ด "บิน…สายการบินไหน" มือถือสูง ~700px เพราะรายชื่อสายการบิน/สนามบินทุกตัวต่อกันยาว → ตัดเหลือ 3 บรรทัด (ชื่อหลักตัวหนายังเต็ม · รายการครบอยู่ในตัวกรอง) */
@media (max-width:899px){.tw-theme .tw-info-slider #flight .tw-tile span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}}
/* R4-N3 จอ 360: กล่อง "ขั้นถัดไป" 3 คอลัมน์แคบจนล้น 2px → เรียงคอลัมน์เดียวเมื่อจอแคบกว่า 400 */
@media (max-width:399px){.tw-ctr .tw-next3{grid-template-columns:minmax(0,1fr)}}

/* 29 ต.ค. 2569 — ตัวหนังสือบนรูป hero ถูกเลือก (ดับเบิลคลิก/ลากเมาส์) แล้วเครื่องที่ตั้งสีไฮไลต์อ่อน เช่นเหลือง ทำให้ตัวขาวกลืนพื้นจนอ่านไม่ออก → กำหนดสีเลือกเองบนพื้นมืด */
.tw-theme .tw-hero-slider ::selection,.tw-theme .tw-hero-prog ::selection,.tw-theme .tw-hero ::selection{background:rgba(8,26,60,.85);color:#fff}
