/* ---------------------------------------------------------------------------
 * morluang.css — ชั้น override ของ "หมอหลวง" ที่ทับบน theme 24HOS (Themesflat)
 *
 * กติกา:
 *   1. ห้ามแก้ styles.css ของธีมโดยตรง — ถ้าจะปรับสี/ระยะ ให้เขียนทับที่ไฟล์นี้
 *      เพื่อให้ยัง re-compile theme-src/scss ทับของเดิมได้โดยไม่เสียงานเรา
 *   2. ธีมผูกสีทั้งชุดไว้กับตัวแปร CSS ใน :root — เปลี่ยนแบรนด์ให้แก้ที่ตัวแปร
 *      ไม่ต้องไล่แก้รายคลาส
 *   3. โหลดไฟล์นี้เป็นไฟล์สุดท้ายของ <head> เสมอ (หลัง styles.css และหลัง Tailwind)
 * ------------------------------------------------------------------------- */

:root {
  /* ═══ จานสีแบรนด์ — ยึดจากโลโก้หมอหลวง ═══════════════════════════════════
   * โลโก้ (src/components/theme/Logo.astro) มีสองสีเท่านั้น
   *   #2E37A4  น้ำเงินคราม  แกนตั้ง + แขนซ้ายของกากบาท
   *   #DC2626  แดง          แขนขวาของกากบาท
   * ก่อนหน้านี้เว็บใช้เขียวมิ้น (#006c68 / #00D3C7) ตาม inno.24hos.com
   * ซึ่งเป็นสีของ 24HOS ไม่ใช่ของเรา จึงเปลี่ยนมาใช้สีโลโก้ตัวเองทั้งชุด
   *
   * ⚠️ ชื่อตัวแปร --red / --red-2 เป็นของธีม ห้ามเปลี่ยนชื่อ ทั้งธีมอ้างชื่อนี้
   *    (ชื่อมาจากสีเดิมของ template ที่เป็นแดงส้ม #FF3F25) */

  /* accent หลักของธีมทั้งใบ — ปุ่ม ไอคอน ลิงก์ เส้นใต้หัวข้อ hover */
  --red: #2E37A4;
  /* accent รอง — ในเว็บนี้ถูกใช้เป็น "สีตัวหนังสือ/ไอคอนบนพื้นเข้ม" ทั้งหมด
   * (ตรวจแล้ว: ไม่มีที่ไหนใช้เป็นพื้นหลัง คลาส bg-red-2/style-bg-red-2 ของธีม
   *  ไม่ถูกใช้ในหน้าใดเลย) จึงต้องเป็นแดงที่ "สว่างพอ" ไม่ใช่แดงโลโก้ตรง ๆ
   * #DC2626 บนพื้น ink #0C171A ได้แค่ 3.77:1 ตก WCAG AA (ต้องการ 4.5)
   * #F87171 เป็นสีเดียวกัน (hue 0 เท่ากัน) แต่สว่างกว่า ได้ 6.6:1
   * สีมิ้นเดิมไม่เจอปัญหานี้เพราะ #00D3C7 สว่างอยู่แล้ว
   * ถ้าจะเอาแดงโลโก้เป็นพื้นทึบ ให้ใช้ --mor-red (ขาวบนนั้นได้ 5.2:1 ผ่าน) */
  --red-2: #F87171;

  /* โทเคนของหมอหลวงเอง ใช้ตอนต้องการสีแบรนด์ตรง ๆ */
  --mor-navy: #2E37A4;
  --mor-navy-dark: #232A82;   /* ตัวหนังสือเข้มบนพื้นอ่อน */
  --mor-red: #DC2626;
  --mor-tint: #EEF0FA;        /* พื้นอ่อนของแบรนด์ (เดิมเป็นมิ้นอ่อน #E6FAF8) */
  --mor-ink: #0C171A;
}

/* --- พื้นอ่อนของธีม: ฟ้าอมเขียว -> น้ำเงินอ่อน ------------------------------
 * ธีม 24HOS ใช้พื้นอ่อนโทนฟ้าอมเขียวคู่กับ accent เขียวมิ้นของเขา
 * พอเราเปลี่ยน accent เป็นน้ำเงินคราม พื้นพวกนี้เลยอมเขียวตีกับน้ำเงินทันที
 * (พื้นที่ใหญ่ที่สุดของเว็บคือ .section-department-inner เช่นบล็อก "โมดูลครบทุกแผนก")
 *
 * เลือกสีใหม่โดยยึด "ความสว่างเท่าเดิม" เพื่อไม่ให้โครงน้ำหนักของดีไซน์เปลี่ยน
 *   --gray-light  #D6E8EB (hue 189, luminance .780) -> #DDE6F6 (hue 218, .786)
 *   --gray-1      #EFF8FA (hue 191, luminance .924) -> #F3F6FD (hue 222, .921)
 * ไม่ใช้ tint ของ #2E37A4 ตรง ๆ เพราะออกมา hue 236 อมม่วง อ่านเป็นเทา-ลาเวนเดอร์
 * มากกว่าน้ำเงิน hue ~218-222 อ่านเป็นฟ้า-น้ำเงินสะอาดกว่า
 * คอนทราสต์ดีขึ้นเล็กน้อยด้วย: ตัวอักษรเข้ม 14.40 -> 14.50, ปุ่มน้ำเงิน 7.55 -> 7.61 */
:root {
  --gray-light: #DDE6F6;
  --gray-1: #F3F6FD;
}

/* ธีม hardcode สีเดิมไว้ในกราเดียนต์อีก 3 จุด ไม่ผูกกับตัวแปร
 * ตัวที่สำคัญที่สุดคือฝ้าที่ทาบบนรูปฮีโร่ ถ้าไม่เปลี่ยนตามจะเขียวตีกับ
 * บล็อกน้ำเงินอ่อนที่อยู่ถัดลงมาทันที (rgb เดิม 214,232,235 -> 221,230,246) */
.page-title-home .page-title-home-inner::before {
  background: linear-gradient(270deg, rgba(221, 230, 246, 0) 35%, #DDE6F6 70%);
}
.education-specia .image::before {
  background: linear-gradient(180deg, rgba(221, 230, 246, 0) 45%, #DDE6F6 100%);
}
.section-appointment.p-make .image::before {
  background: linear-gradient(180deg, rgba(221, 230, 246, 0) 0%, #DDE6F6 100%);
}

/* --- สีหมึกของธีม: ดำอมเขียว -> ดำอมน้ำเงิน --------------------------------
 * ธีม 24HOS ใช้ #0C171A เป็น "สีดำ" ของเขา ซึ่งไม่ใช่ดำจริง แต่เป็น hue 193
 * (ฟ้าอมเขียว) ให้เข้ากับ accent เขียวมิ้นของเขา พอเราเปลี่ยนแบรนด์เป็นน้ำเงิน
 * บล็อกทึบ (.mor-dark) กับหัวข้อทั้งเว็บเลยยังอมเขียวค้างอยู่
 *
 * เปลี่ยนเป็น #0E1525 = hue 222 เท่ากับพื้นน้ำเงินอ่อนที่ตั้งไว้ข้างบน
 * โดยยึด "ความสว่างเท่าเดิม" เหมือนเดิม: luminance .007655 -> .007633 (ต่างกัน
 * 0.3%) คอนทราสต์กับขาวจึงคงที่ 18.21 -> 18.22 และ --red-2 บนพื้นนี้ยังได้ 6.59
 * เท่าเดิม — ไม่มีจุดไหนที่ผ่าน/ตก WCAG ต่างจากเดิม
 *
 * ⚠️ ธีม hardcode สีนี้ไว้อีก 9 จุดที่ไม่ผูกกับตัวแปร (rgb 12,23,26 -> 14,21,37)
 *    ตัวที่เห็นจริงบนเว็บเราคือฝ้าดำบนหัวหน้าเพจ (.page-title-content) ที่ใช้ทุกหน้ารอง
 *    ที่เหลือเป็นเซกชันของ template ที่เรายังไม่ได้ใช้ แต่ override ไว้ก่อน
 *    เผื่อหยิบมาใช้ทีหลังจะได้ไม่โผล่สีเขียวกลับมา */
:root {
  --black: #0E1525;
  --color-title: #0E1525;
  --border-7: rgba(14, 21, 37, 0.1);
  --color-text-2: rgba(14, 21, 37, 0.5);
  --color-text-5: rgba(14, 21, 37, 0.2);
  --mor-ink: #0E1525;
}

/* ฝ้าดำบนหัวหน้าเพจ — ใช้ทุกหน้ารอง (components/theme/PageTitle.astro)
 *
 * ธีมไล่ฝ้าจากทึบซ้ายไปโปร่งที่ 60% เพราะรูปเดโมของธีมมืดอยู่แล้ว แต่รูปหัวเพจ
 * ที่เราใช้ (page-title-1 / -2 / -h4-2) สว่างเกือบขาวทางขวา หัวเรื่องสีขาวจึงลอย
 * อยู่บนพื้นสว่างที่ 1.33-1.37:1 — อ่านแทบไม่ออก และเป็นแบบนี้ทุกหน้ารอง
 *
 * แก้ด้วยการตั้ง "พื้นฝ้าขั้นต่ำ" ที่ 0.6 ตลอดแนว ยังไล่จากเข้มซ้ายไปจางขวา
 * ตามดีไซน์เดิม แต่ไม่มีจุดไหนโปร่งจนตัวหนังสือหาย: ขาวบนฝ้า 0.6 ทับพื้นขาวล้วน
 * (กรณีแย่สุดที่เป็นไปได้) ยังได้ 4.77:1 ผ่าน AA
 *
 * ⚠️ ถ้าเปลี่ยนรูปหัวเพจเป็นชุดใหม่ที่มืดอยู่แล้ว ลดค่าพวกนี้ลงได้
 *    วัดซ้ำด้วย D:\tmp\scrim2.mjs (ซ่อนตัวอักษรแล้ววัดพื้นหลังจริง) */
.page-title .page-title-content::before {
  background: linear-gradient(90deg,
    #0E1525 0%,
    rgba(14, 21, 37, 0.86) 40%,
    rgba(14, 21, 37, 0.68) 70%,
    rgba(14, 21, 37, 0.60) 100%);
}
/* เซกชันของ template ที่ยังไม่ได้ใช้ — override ไว้กันสีเขียวย้อนกลับ */
.tf-post-grid.style-absolute .image::before,
.section-lab.h-1 .image::before,
.section-appointment.h-3 .image.image-1::before,
.section-team.p-about .image-section::before {
  background: linear-gradient(180deg, rgba(14, 21, 37, 0) 0%, #0E1525 100%);
}
.section-appointment.p-make .text-overlay {
  background: linear-gradient(180deg, rgba(14, 21, 37, 0.05) 0%, rgba(14, 21, 37, 0) 100%);
}
.portfolio-item .image::before {
  background: rgba(14, 21, 37, 0.7);
}
.tf-post-list.small-2 .metas-item::before,
.section-history.p-history .sw-history .swiper-pagination-bullet::before {
  background: rgba(14, 21, 37, 0.2);
}

/* --- ฟอนต์ -----------------------------------------------------------------
 * ⚠️ ลำดับต้องเป็น Rethink Sans ก่อน ไม่ใช่ Noto Sans Thai
 *    Rethink Sans คือฟอนต์ที่ธีมออกแบบมา ถ้าเอา Noto Sans Thai ขึ้นก่อน
 *    ข้อความละติน (เมนู ปุ่ม หัวข้ออังกฤษ) จะเปลี่ยนไปใช้อีกฟอนต์ที่ความกว้าง
 *    และน้ำหนักไม่เท่ากัน หน้าตาจะเพี้ยนจากเว็บต้นฉบับทันที — เทียบกับ
 *    inno.24hos.com แล้วต่างกันชัดเจน
 *    อักษรไทยที่ไม่มีใน Rethink Sans จะตกไป Noto Sans Thai เองตามลำดับ
 *    (เว็บต้นฉบับไม่ได้ประกาศ fallback ไทยไว้ ปล่อยให้เป็นฟอนต์ระบบ) */
body {
  font-family: 'Rethink Sans', 'Noto Sans Thai', system-ui, -apple-system, sans-serif;
}
.font-thai {
  font-family: 'Prompt', 'Noto Sans Thai', system-ui, sans-serif;
}
/* หน้าอังกฤษไม่ควรโดน Prompt บีบ ให้ใช้ Rethink Sans ตามดีไซน์ต้นฉบับ */
html[lang="en"] .font-thai {
  font-family: 'Rethink Sans', 'Noto Sans Thai', system-ui, sans-serif;
}

/* --- กันไม่ให้อักษรไทยหล่นไปเป็นฟอนต์ระบบ ------------------------------------
 * ธีมประกาศ `font-family: "Rethink Sans", sans-serif` ไว้ 3 ที่โดยไม่มีฟอนต์ไทย
 * ต่อท้าย (styles.css บรรทัด 263 = body/button/input/select/textarea, 595 = h1-h6
 * และ 8067 = ตัวเลข counter) เราแก้ให้ body แล้วแต่ selector อื่นยังไม่ได้แก้
 *
 * Rethink Sans ไม่มีอักษรไทยเลย (วัดแล้ว: ข้อความไทย 40px กว้างเท่ากับ sans-serif
 * เป๊ะ ๆ = เบราว์เซอร์ตกไปใช้ฟอนต์ระบบ) ผลคือหัวข้อและช่องกรอกที่ไม่ได้ใส่คลาส
 * .font-thai จะแสดงไทยด้วยฟอนต์ของ Windows คนละตัวกับทั้งเว็บ **โดยไม่มีอะไรฟ้อง**
 * ที่เจอจริง: หัวคอลัมน์ฟุตเตอร์, หัวข้อ breadcrumb, placeholder ฟอร์มติดต่อ,
 * ช่องค้นหาใน offcanvas, <option> ของ select
 *
 * หัวข้อให้ตกไป Prompt เพราะหัวข้อไทย 95 จาก 145 จุดในเว็บใส่ .font-thai (= Prompt)
 * อยู่แล้ว ส่วนช่องกรอกให้ตกไป Noto Sans Thai ให้เท่ากับเนื้อความใน body
 * ละตินยังได้ Rethink Sans ตัวแรกเหมือนเดิม หน้าอังกฤษจึงไม่เปลี่ยนสักจุด
 *
 * ⚠️ ตรวจซ้ำด้วย D:\tmp\fontaudit.mjs (ไล่หา element ที่มีข้อความไทย
 *    แต่ font-family ไม่มีฟอนต์ไทยอยู่ใน stack เลย) — ต้องได้ 0 ทุกหน้า */
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
  font-family: 'Rethink Sans', 'Prompt', system-ui, sans-serif;
}
button, input, select, textarea, option,
.counter-item .number-counter span {
  font-family: 'Rethink Sans', 'Noto Sans Thai', system-ui, sans-serif;
}

/* --- ขนาดหัวข้อในฮีโร่ ------------------------------------------------------
 * ธีมใช้ <h2 class="title"> ในฮีโร่ (48px) แต่เราต้องมี <h1> หนึ่งตัวต่อหน้าเพื่อ SEO
 * ตัว h1 ของธีมคือ 75px ซึ่งใหญ่กว่าที่ดีไซน์ตั้งใจไว้มาก จึงบังคับให้ h1 ในฮีโร่
 * ใช้สเกลเดียวกับ h2 ของธีมเป๊ะ ๆ ได้ทั้ง SEO และหน้าตาตรงต้นฉบับ */
.page-title-home .title {
  font-size: 48px;
  line-height: 55px;
  letter-spacing: -0.96px;
}
@media (max-width: 767px) {
  .page-title-home .title { font-size: 36px; line-height: 44px; }
}

/* --- โลโก้หมอหลวงในเฮดเดอร์ ------------------------------------------------ */
.logo-header .mor-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.logo-header .mor-logo svg { height: 38px; width: auto; flex: none; }
.logo-header .mor-logo .mor-wordmark {
  font-family: 'Prompt', 'Noto Sans Thai', sans-serif;
  font-weight: 700;
  font-size: 26px;
  line-height: 1;
  color: var(--mor-ink);
  white-space: nowrap;
}
.logo-header .mor-logo .mor-tagline {
  display: block;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .02em;
  color: var(--color-paragraph);
  margin-top: 2px;
}
/* บนพื้นเข้ม (footer / offcanvas) */
.mor-logo.is-light .mor-wordmark { color: var(--white); }
.mor-logo.is-light .mor-tagline  { color: var(--color-text-3); }

/* --- ตัวสลับภาษา TH/EN ในแถบบน ------------------------------------------- */
.mor-lang {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 2px;
  background: var(--white);
}
.mor-lang a {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  line-height: 18px;
  color: var(--color-paragraph);
  transition: all .3s ease;
}
.mor-lang a.is-active { background: var(--red); color: var(--white); }
.mor-lang a:not(.is-active):hover { color: var(--red); }

/* --- เนื้อหา markdown (หน้าโมดูล / โซลูชัน / กฎหมาย) ------------------------
 * เพจพวกนี้ render markdown ตรง ๆ ธีมไม่มีสไตล์ให้ จึงตั้งของเราเอง
 * โดยยืมโทเคนสีของธีมมาใช้ ไม่ hardcode */
.mor-prose { color: var(--color-paragraph); font-size: 16px; line-height: 1.75; }
.mor-prose > * + * { margin-top: 20px; }
.mor-prose h2 {
  font-size: 30px; line-height: 1.3; font-weight: 700;
  color: var(--color-title); margin-top: 48px;
}
.mor-prose h3 {
  font-size: 22px; line-height: 1.4; font-weight: 700;
  color: var(--color-title); margin-top: 36px;
}
.mor-prose h4 { font-size: 18px; font-weight: 700; color: var(--color-title); margin-top: 28px; }
.mor-prose p { margin-bottom: 0; }
.mor-prose a { color: var(--red); text-decoration: underline; text-underline-offset: 3px; }
.mor-prose ul, .mor-prose ol { padding-left: 0; margin-bottom: 0; }
.mor-prose ul li, .mor-prose ol li { position: relative; padding-left: 30px; margin-bottom: 12px; }
.mor-prose ul li::before {
  content: "\e903"; /* icon-check ของ icomoon */
  font-family: 'icomoon';
  position: absolute; left: 0; top: 2px;
  font-size: 13px; color: var(--red);
}
.mor-prose ol { counter-reset: mor-ol; }
.mor-prose ol li { counter-increment: mor-ol; }
.mor-prose ol li::before {
  content: counter(mor-ol) ".";
  position: absolute; left: 0; top: 0;
  font-weight: 700; color: var(--red);
}
.mor-prose strong { color: var(--color-title); font-weight: 700; }
.mor-prose blockquote {
  border-left: 3px solid var(--red);
  padding: 4px 0 4px 20px;
  color: var(--color-title);
  font-weight: 500;
}
.mor-prose table { width: 100%; border-collapse: collapse; }
.mor-prose th, .mor-prose td { border: 1px solid var(--border); padding: 12px 16px; text-align: left; }
.mor-prose th { background: var(--gray-1); color: var(--color-title); font-weight: 700; }
.mor-prose code {
  background: var(--gray-1); border-radius: 6px; padding: 2px 6px;
  font-size: .9em; color: var(--mor-navy-dark);
}
.mor-prose img { max-width: 100%; height: auto; border-radius: 16px; }

/* --- การ์ดภาพหน้าจอระบบ ----------------------------------------------------
 * ธีมมาพร้อมภาพหมอ/คนไข้ แต่เนื้อหาเราคือ screenshot ซอฟต์แวร์
 * กรอบนี้ทำให้ภาพจอกว้าง ๆ วางในเลย์เอาต์ของธีมแล้วไม่หลุด */
.mor-shot {
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--gray-1);
  box-shadow: 0 24px 60px rgba(12, 23, 26, .10);
}
.mor-shot img { width: 100%; height: auto; display: block; }
.mor-shot.is-flush { border-radius: 0; border: 0; box-shadow: none; }

/* --- ตารางเปรียบเทียบ / ราคา ---------------------------------------------- */
.mor-table-wrap { overflow-x: auto; }
.mor-table { width: 100%; border-collapse: separate; border-spacing: 0; min-width: 760px; }
.mor-table th, .mor-table td {
  padding: 16px 20px; border-bottom: 1px solid var(--border); vertical-align: top;
}
.mor-table thead th {
  background: var(--gray-1); color: var(--color-title);
  font-weight: 700; font-size: 15px; white-space: nowrap;
}
.mor-table thead th:first-child { border-top-left-radius: 16px; }
.mor-table thead th:last-child  { border-top-right-radius: 16px; }
.mor-table td { color: var(--color-paragraph); font-size: 15px; }
.mor-table tbody tr:hover td { background: var(--gray-4); }
.mor-table .is-yes { color: var(--red); font-weight: 700; }
.mor-table .is-no  { color: var(--color-text-5); }

/* --- ป้ายกำกับเล็ก ๆ -------------------------------------------------------- */
.mor-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 14px; border-radius: 999px;
  background: var(--mor-tint); color: var(--mor-navy-dark);
  font-size: 12px; font-weight: 700; line-height: 18px;
}
.mor-badge.is-solid { background: var(--red); color: var(--white); }

/* --- อยู่ร่วมกับ Tailwind ---------------------------------------------------
 * เราปิด preflight ของ Tailwind ไว้ (tailwind.config.mjs) เพราะมันรีเซ็ต
 * ทับ reset ของธีม แต่ utility ยังใช้ได้ตามปกติสำหรับงานเสริมเล็ก ๆ */
.tf-container img { max-width: 100%; }

/* --- เมกะพาเนล "โมดูล" ------------------------------------------------------
 * เมนูโมดูลของเรามี 18 รายการ ถ้าใช้ .sub-menu ปกติจะยาวเกินจอ
 * จึงยืมกลไก hover ของ .sub-menu-home (ธีมเปิด/ปิดให้อยู่แล้ว) มาทำเป็นตาราง */
.sub-menu-home.mor-megapanel { padding: 0; }
.sub-menu-home.mor-megapanel > ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2px 32px;
  padding: 28px 40px 32px;
  margin: 0;
  list-style: none;
}
.sub-menu-home.mor-megapanel > ul > li { width: auto; }
.sub-menu-home.mor-megapanel .mor-mega-link {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  transition: all .3s ease;
}
.sub-menu-home.mor-megapanel .mor-mega-link i {
  font-size: 18px;
  color: var(--red);
  line-height: 24px;
  flex: none;
  transition: all .3s ease;
}
.sub-menu-home.mor-megapanel .mor-mega-link .mor-mega-name {
  display: block;
  font-size: 15px;
  font-weight: 600;
  line-height: 24px;
  color: var(--color-title);
}
.sub-menu-home.mor-megapanel .mor-mega-link:hover { background: var(--gray-1); }
.sub-menu-home.mor-megapanel .mor-mega-link:hover .mor-mega-name { color: var(--red); }
.sub-menu-home.mor-megapanel .mor-mega-foot {
  grid-column: 1 / -1;
  border-top: 1px solid var(--border);
  margin-top: 12px;
  padding: 20px 12px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.sub-menu-home.mor-megapanel .mor-mega-foot p {
  margin: 0;
  color: var(--color-paragraph);
  font-size: 14px;
}

/* --- แผงเมนูด้านข้าง (offcanvasMegamenu) ----------------------------------
 * ธีมวางโครงไว้เป็น: โลโก้ / คำอธิบาย / ช่องทางติดต่อ / สมัครรับข่าว / บทความล่าสุด
 * เราไม่มีบล็อกและไม่มีจดหมายข่าว จึงสลับสองช่องท้ายเป็น
 *   - การ์ดรูป 3 ใบ พาไปหน้าหลักพร้อมภาพหน้าจอจริง (.mor-mega-card)
 *   - ทางลัดแบบชิป ไปหน้าที่เหลือ (.mor-mega-links)
 *   - ปุ่มหลัก + ไอคอนโซเชียล
 *
 * ⚠️ เคยพลาดมาแล้ว: ลิงก์ทางลัดใช้ var(--color-text-3) ซึ่งธีมนิยามเป็น
 *    rgba(255,255,255,.65) (ไว้ใช้บนพื้นเข้ม) แต่แผงนี้พื้นขาว ตัวหนังสือจึงหาย
 *    ไปทั้งชุด เหลือแค่ไอคอนลูกศรลอย ๆ **ไม่มี error อะไรฟ้อง**
 *    บนพื้นสว่างต้องใช้ --color-paragraph / --color-title เท่านั้น */
.offcanvasMegamenu .megamenu-recent { margin-bottom: 34px; }
.megamenu-links { margin-bottom: 30px; }
.mor-mega-links {
  padding: 0; margin: 0; list-style: none;
  display: flex; flex-wrap: wrap; gap: 8px;
}
.mor-mega-links a {
  display: inline-block;
  padding: 7px 14px;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 14px;
  line-height: 20px;
  color: var(--color-paragraph);
  white-space: nowrap;
  transition: all .25s ease;
}
.mor-mega-links a:hover {
  color: var(--white);
  background: var(--red);
  border-color: var(--red);
}

/* การ์ดรูปในแผงด้านข้าง
 * ธีมมี .tf-post-list style-small ให้อยู่แล้วแต่ตรึงรูปไว้ max-width 100px
 * ซึ่งเล็กเกินกว่าจะดูภาพหน้าจอระบบรู้เรื่อง จึงทำการ์ดรูปเต็มความกว้างแทน */
.mor-mega-card {
  display: block;
  margin-bottom: 16px;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--white);
  transition: all .3s ease;
}
.mor-mega-card:last-child { margin-bottom: 0; }
.mor-mega-card-img {
  display: block;
  aspect-ratio: 820 / 400;
  overflow: hidden;
  background: var(--gray-1);
}
.mor-mega-card-img img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: top center;
  display: block;
  transition: transform .5s ease;
}
.mor-mega-card-body { display: block; padding: 12px 14px 14px; }
.mor-mega-card-title {
  display: block;
  font-weight: 600; font-size: 15px; line-height: 22px;
  color: var(--color-title);
}
.mor-mega-card-desc {
  display: block; margin-top: 3px;
  font-size: 13px; line-height: 19px;
  color: var(--color-paragraph);
}
.mor-mega-card:hover {
  border-color: var(--red);
  box-shadow: 0 10px 24px rgba(46, 55, 164, .12);
}
.mor-mega-card:hover .mor-mega-card-img img { transform: scale(1.06); }
.mor-mega-card:hover .mor-mega-card-title { color: var(--red); }

/* ปุ่มหลัก + โซเชียล ท้ายแผง */
.offcanvasMegamenu .megamenu-subscribe { margin-bottom: 10px; }
.mor-mega-social { margin-top: 20px; justify-content: center; }

/* --- ผลค้นหาในช่อง offcanvas ---------------------------------------------- */
.mor-search-results { margin-top: 24px; max-height: 46vh; overflow-y: auto; }
.mor-search-results a {
  display: block; padding: 12px 16px; border-radius: 12px;
  color: var(--color-title); font-weight: 500;
}
.mor-search-results a:hover { background: var(--gray-1); color: var(--red); }
.mor-search-results .mor-search-kind {
  display: block; font-size: 12px; font-weight: 500; color: var(--color-paragraph);
}
.mor-search-empty { padding: 16px; color: var(--color-paragraph); }

/* --- ปุ่มด้านขวาของเฮดเดอร์ ---------------------------------------------
 * ธีมมีแค่ปุ่มเดียวใน .nav-btn เราเพิ่มตัวสลับภาษาเข้าไปด้วย จึงต้องจัดเป็นแถว
 *
 * ⚠️ ต้องครอบด้วย min-width: 1351px ให้ตรงกับจุดที่ธีมซ่อน .nav-btn (max-width: 1350px)
 *    ถ้าเขียนลอย ๆ กฎนี้จะชนะ .nav-btn{display:none} ของธีมด้วยความเฉพาะเจาะจงที่สูงกว่า
 *    (media query ไม่เพิ่ม specificity) แล้วปุ่มจะไปทับโลโก้บนมือถือ — กัดมาแล้ว
 *    บนจอเล็ก ตัวสลับภาษาและปุ่มทดลองใช้ไปอยู่ในเมนู offcanvas แทน */
@media (min-width: 1351px) {
  .header-right .nav-btn {
    display: flex;
    align-items: center;
    gap: 14px;
  }
}

/* --- คอลัมน์ลิงก์ท้ายเว็บ --------------------------------------------------
 * ธีมออกแบบไว้ 2 คอลัมน์ แต่ของเรามี 4 (ผลิตภัณฑ์/โซลูชัน/บริษัท/นโยบาย)
 * จึงจัดเป็นกริดของเราเองแทน flex เดิม เพื่อไม่ให้บีบจนอ่านไม่ออก */
.mor-footer-cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px 40px;
  flex: 1 1 auto;
}
@media (min-width: 1200px) {
  .mor-footer-cols { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; }
}
@media (max-width: 575px) {
  .mor-footer-cols { grid-template-columns: minmax(0, 1fr); }
}
.mor-footer-cols .footer-content { padding-top: 0; max-width: 100%; }

/* --- บล็อกพื้นเข้ม ----------------------------------------------------------
 * ธีมมีเซกชันพื้นเข้มอยู่แล้ว (footer, section-lab) แต่ไม่มีคลาสกลางให้เรียกใช้
 * จึงทำตัวห่อของเราเอง ใช้โทเคนสีของธีมล้วน ๆ ไม่ hardcode */
.mor-dark {
  background-color: var(--black);
  border-radius: 15px;
  color: var(--color-text-3);
}
.mor-dark .heading-section .title,
.mor-dark .heading-section .sub-title { color: var(--white); }
.mor-dark .heading-section .sub-title { color: var(--red-2); }
.mor-dark .heading-section .text { color: var(--color-text-3); }

/* การ์ดบนพื้นเข้ม — ใช้ .features-item ของธีมแล้วพลิกสีเอา */
.mor-dark .features-item {
  background-color: var(--bg-1);
  border-color: var(--border-4);
}
.mor-dark .features-item .title { color: var(--white); }
.mor-dark .features-item .desc { color: var(--color-text-3); }
.mor-dark .features-item .icon i { color: var(--red-2); }
.mor-dark .features-item:hover {
  background-color: var(--bg-1);
  border-color: var(--border-10);
  box-shadow: none;
}
/* ธีมตั้ง .benefit-items เป็น align-items:center ซึ่งพอข้อความตกบรรทัด
 * (ภาษาไทยยาว ๆ บนมือถือ) ติ๊กถูกจะไปลอยกลางระหว่างสองบรรทัด
 * ให้ยึดบรรทัดแรกแทน */
.benefit-list .benefit-items { align-items: flex-start; }
.benefit-list .benefit-items i { margin-top: 6px; flex: none; }

.mor-dark .benefit-items span,
.mor-dark .benefit-items { color: var(--color-text-3); }
.mor-dark .benefit-items i { color: var(--red-2); }

/* --- แถวไทล์ระบบที่เชื่อมต่อได้ (LIS / PACS / EDC …) ----------------------- */
.mor-tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.mor-tile {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px 10px;
  text-align: center;
  transition: all .3s ease;
}
.mor-tile i { display: block; font-size: 30px; color: var(--red); margin-bottom: 8px; }
.mor-tile span { font-size: 13px; font-weight: 700; color: var(--color-title); }
.mor-tile:hover { border-color: var(--red); box-shadow: 10px 4px 40px rgba(193, 193, 193, .25); }

/* ไทล์แบบมีชื่อไทย — ใช้ที่เซกชัน "เชื่อมต่อกับระบบที่มีอยู่" หน้าแรก
 * เดิมไทล์มีแต่ตัวย่อ (LIS / PACS / EDC / UC / QMS / API) ซึ่งคนอ่านทั่วไป
 * ไม่รู้ว่าคืออะไร ตอนนี้ชื่อไทยเป็นตัวหลัก ตัวย่ออยู่บรรทัดล่างตัวเล็ก
 * (is-named เป็น modifier เพราะ .mor-tile ยังถูกใช้แบบเดิมในหน้า product) */
.mor-tiles.is-named .mor-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 2px;
  padding: 22px 12px 18px;
  height: 100%;
}
.mor-tiles.is-named .mor-tile i { margin-bottom: 12px; }
.mor-tile-name {
  font-size: 15px; font-weight: 600; line-height: 22px;
  color: var(--color-title);
}
.mor-tile-tech {
  font-size: 12px; font-weight: 500; line-height: 18px;
  color: var(--color-paragraph);
  letter-spacing: .01em;
}
@media (max-width: 575px) {
  .mor-tiles.is-named { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --- สามข้อ "ออกแบบเพื่อสถานพยาบาลไทย" -------------------------------------
 * ปัญหาเดิม: ใช้ .about-item style-desc ของธีมซึ่งซ่อน .desc ไว้จนกว่าจะ hover
 * และดัน .item-content ลง 57% การ์ดจึงสูงมากแต่มีแค่เลขกับหัวข้อลอยอยู่
 * สามใบรวมกันทำให้คอลัมน์ขวาสูงกว่ารูปฝั่งซ้ายเยอะ เซกชันเลยดูโหว่ไม่ได้สัดส่วน
 * (บั๊กเดียวกับที่แก้ไปแล้วในเซกชัน "ทำไมต้องหมอหลวง")
 *
 * แบบใหม่เป็นรายการแนวนอน เลขอยู่ซ้าย เนื้อหาอยู่ขวา โชว์ครบตลอดเวลา
 * สูงรวมพอ ๆ กับรูปฝั่งซ้าย สองคอลัมน์เลยสมดุลกัน */
.mor-thai-points { display: flex; flex-direction: column; gap: 14px; }
.mor-thai-point {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 18px 20px;
  border-radius: 12px;
  background: var(--gray-light);
  transition: all .3s ease;
}
.mor-thai-num {
  flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px;
  border-radius: 999px;
  background: var(--red); color: var(--white);
  font-size: 14px; font-weight: 700; line-height: 1;
}
.mor-thai-body { display: block; }
.mor-thai-title {
  display: block;
  color: var(--color-title);
  font-size: 17px; line-height: 25px; font-weight: 600;
  margin-bottom: 2px;
}
.mor-thai-desc {
  display: block;
  color: var(--color-paragraph);
  font-size: 14px; line-height: 22px;
}
.mor-thai-point:hover {
  background: var(--white);
  box-shadow: 0 10px 24px rgba(46, 55, 164, .1);
}

/* --- แกลเลอรีภาพหน้าจอ -----------------------------------------------------
 * เดิมเป็นรูป 3 ใบ วางแบบ 8/4 คอลัมน์ ไม่มีหัวข้อไม่มีคำบรรยาย และสองใบขวา
 * ถูกบีบจนเล็กเกินกว่าจะดูรู้เรื่อง เปลี่ยนเป็นสามใบเท่ากัน + คำบรรยายใต้ภาพ
 * ทั้งการ์ดเป็นลิงก์ไปหน้าโมดูลของภาพนั้น รูปจึงมีหน้าที่ ไม่ใช่แค่ของประดับ */
.mor-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}
.mor-gallery-item {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--white);
  transition: all .3s ease;
}
.mor-gallery-img {
  display: block;
  overflow: hidden;
  background: var(--gray-1);
  aspect-ratio: 2540 / 1235;   /* สัดส่วนจริงของภาพหน้าจอ */
}
.mor-gallery-img img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: top center;
  display: block;
  transition: transform .5s ease;
}
.mor-gallery-cap {
  display: block;
  padding: 16px 18px 18px;
  color: var(--color-paragraph);
  font-size: 14px; line-height: 22px;
}
.mor-gallery-item:hover {
  border-color: var(--red);
  box-shadow: 0 14px 30px rgba(46, 55, 164, .12);
}
.mor-gallery-item:hover .mor-gallery-img img { transform: scale(1.05); }
.mor-gallery-item:hover .mor-gallery-cap { color: var(--color-title); }

@media (max-width: 991px) {
  .mor-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 575px) {
  .mor-gallery { grid-template-columns: minmax(0, 1fr); }
  .mor-thai-point { padding: 16px; gap: 12px; }
}

/* --- การ์ดแจ้งเตือนผ่าน LINE ------------------------------------------------
 * แยกจากไทล์อุปกรณ์เพราะเป็นช่องทางถึงตัวคนไข้ ไม่ใช่ของที่ตั้งอยู่ในโรงพยาบาล
 * (และไทล์เป็นกริด 3 คอลัมน์ ใบที่ 7 จะโดดอยู่ท้ายแถวเปล่า ๆ)
 *
 * โลโก้เป็นกลิฟแบรนด์ของ Font Awesome Free 5 Brands (ไอคอน CC BY 4.0)
 * ดึงเส้นจากฟอนต์มาทำเป็น public/assets/images/line-logo.svg ไม่ได้วาดเลียนแบบเอง
 * กลิฟเป็นสี่เหลี่ยมทึบที่เจาะลูกโป่งกับตัวอักษรออก จึงระบายด้วยสีเดียวได้
 * ใช้เขียว #06C755 ตามคู่มือแบรนด์ LINE — สีนี้ห้ามเปลี่ยนตามธีมเรา
 * สีฝังอยู่ในไฟล์ .svg เอง ไม่ได้ใช้ currentColor เพราะโหลดผ่าน <img src>
 * แล้ว currentColor ไม่ทะลุเข้าไป (เคยพลาด โลโก้ออกมาเป็นสีดำ) */
.mor-line-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-top: 16px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--white);
}
.mor-line-logo {
  flex: none;
  display: inline-flex;
}
.mor-line-logo img { width: 40px; height: 40px; display: block; }
.mor-line-body { display: block; }
.mor-line-title {
  display: block;
  color: var(--color-title);
  font-size: 16px; line-height: 24px; font-weight: 600;
  margin-bottom: 4px;
}
.mor-line-desc {
  display: block;
  color: var(--color-paragraph);
  font-size: 14px; line-height: 23px;
  margin-bottom: 10px;
}
.mor-line-tech {
  display: inline-block;
  padding: 4px 11px;
  border-radius: 999px;
  background: var(--mor-tint);
  color: var(--mor-navy-dark);
  font-size: 12px; line-height: 18px; font-weight: 600;
}
@media (max-width: 575px) {
  .mor-line-card { flex-direction: column; gap: 12px; }
}

/* หัวข้อเล็กเหนือกลุ่มไทล์ */
.mor-tiles-label {
  font-size: 13px; font-weight: 600; line-height: 20px;
  letter-spacing: .02em;
  color: var(--color-paragraph);
  margin-bottom: 14px;
}

/* --- แถบมาตรฐานข้อมูลสุขภาพ ------------------------------------------------
 * อยู่ใต้สองคอลัมน์ของเซกชัน "เชื่อมต่อกับระบบที่มีอยู่" เต็มความกว้าง
 * แต่ละช่อง = ชิปรหัสมาตรฐาน + คำอธิบายว่ามันทำอะไรให้ (ภาษาคนทั่วไป)
 * เพราะลำพังคำว่า HL7 / DICOMweb / LOINC คนนอกวงการอ่านแล้วไม่รู้เรื่อง
 *
 * ⚠️ รายชื่อมาตรฐานอยู่ใน src/i18n/home-lists.ts และมีหมายเหตุกำกับว่า
 *    แต่ละตัวอ้างอิงโค้ดไฟล์ไหน — เพิ่มมาตรฐานใหม่ต้องมีของรองรับจริงก่อน */
.mor-std {
  margin-top: 70px;
  padding: 44px 44px 40px;
  border-radius: 16px;
  background: var(--gray-1);
  border: 1px solid var(--border);
}
.mor-std-head { max-width: 760px; margin-bottom: 34px; }
.mor-std-title {
  color: var(--color-title);
  font-size: 26px; line-height: 34px; font-weight: 700;
  letter-spacing: -0.4px;
  margin-bottom: 10px;
}
.mor-std-desc {
  color: var(--color-paragraph);
  font-size: 15px; line-height: 25px;
  margin: 0;
}
.mor-std-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px 34px;
}
.mor-std-item { display: flex; flex-direction: column; gap: 9px; }
.mor-std-code {
  align-self: flex-start;
  padding: 5px 12px;
  border-radius: 8px;
  background: var(--white);
  border: 1px solid rgba(46, 55, 164, .22);
  color: var(--mor-navy-dark);
  font-size: 13px; line-height: 20px; font-weight: 700;
  letter-spacing: .02em;
  white-space: nowrap;
}
.mor-std-text {
  color: var(--color-paragraph);
  font-size: 14px; line-height: 23px;
  margin: 0;
}
@media (max-width: 991px) {
  .mor-std { margin-top: 50px; padding: 34px 28px 30px; }
  .mor-std-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .mor-std-title { font-size: 22px; line-height: 30px; }
}
@media (max-width: 575px) {
  .mor-std-grid { grid-template-columns: minmax(0, 1fr); }
  .mor-std-code { white-space: normal; }
}

/* --- แถบขั้นตอน (patient journey) ------------------------------------------ */
/* --- การเดินทางของผู้ป่วย (หน้าแรก) ----------------------------------------
 * เดิมเป็นวงกลมเลข 6 วงเรียงกันเฉย ๆ ใต้เลขมีแต่ตัวย่อ (OPD/QMS/CPOE)
 * คนนอกวงการอ่านแล้วไม่รู้ว่าคืออะไรและระบบช่วยอะไร
 * เปลี่ยนเป็นการ์ด 3 คอลัมน์ ใส่คำอธิบายภาษาคนอ่านทั่วไปได้เต็ม ๆ
 * (6 คอลัมน์ได้ความกว้างแค่ ~190px ใส่คำอธิบาย 2 บรรทัดไม่ลง)
 *
 * ลูกศรเชื่อมการ์ดวาดด้วย ::after ไม่มี element จริง — ซ่อนตัวท้ายของแต่ละแถว
 * ด้วย :nth-child(3n) และซ่อนทั้งหมดตอนตกเหลือคอลัมน์เดียว */
.mor-journey {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px 40px;
}
.mor-journey-item {
  position: relative;
  padding: 26px 24px 24px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--white);
  transition: all .3s ease;
}
.mor-journey-item::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  width: 40px;
  height: 1px;
  background: var(--border);
}
.mor-journey-item:nth-child(3n)::after { display: none; }
/* หัวลูกศรที่ปลายเส้น — วาดจากมุมของสี่เหลี่ยมที่หมุน 45 องศา ไม่ต้องใช้ไอคอน */
.mor-journey-item::before {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(100% + 27px);
  width: 7px; height: 7px;
  border-top: 1px solid var(--border);
  border-right: 1px solid var(--border);
  transform: translateY(-50%) rotate(45deg);
}
.mor-journey-item:nth-child(3n)::before { display: none; }
.mor-journey-top {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 18px;
}
.mor-journey-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 999px;
  background: var(--red); color: var(--white);
  font-weight: 700; font-size: 16px; line-height: 1;
  flex: none;
}
.mor-journey-top i { font-size: 34px; color: var(--red); opacity: .28; transition: opacity .3s ease; }
.mor-journey-title {
  color: var(--color-title);
  font-size: 18px; line-height: 26px; font-weight: 600;
  margin-bottom: 8px;
}
.mor-journey-desc {
  color: var(--color-paragraph);
  font-size: 14px; line-height: 23px;
  margin-bottom: 16px;
}
.mor-journey-tag {
  display: inline-block;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--mor-tint);
  color: var(--mor-navy-dark);
  font-size: 12px; line-height: 18px; font-weight: 600;
  letter-spacing: .01em;
}
.mor-journey-item:hover {
  border-color: var(--red);
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(46, 55, 164, .1);
}
.mor-journey-item:hover .mor-journey-top i { opacity: 1; }

/* แถบสรุปผลลัพธ์ปิดท้ายเซกชัน */
.mor-journey-payoff {
  margin-top: 40px;
  padding: 28px 32px;
  border-radius: 16px;
  background: var(--gray-light);
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 16px 40px;
}
.mor-journey-payoff h5 {
  color: var(--color-title);
  font-size: 18px; line-height: 26px; font-weight: 700;
  margin: 0; flex: none;
}
.mor-journey-payoff ul {
  display: flex; flex-wrap: wrap; gap: 12px 32px;
  margin: 0; padding: 0; list-style: none; flex: 1 1 auto;
}
.mor-journey-payoff li {
  display: flex; align-items: flex-start; gap: 9px;
  color: var(--color-title); font-size: 15px; line-height: 23px;
}
.mor-journey-payoff li i { color: var(--red); font-size: 13px; line-height: 23px; flex: none; }

@media (max-width: 1199px) {
  .mor-journey { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .mor-journey-item::after,
  .mor-journey-item::before { display: none; }
}
@media (max-width: 767px) {
  .mor-journey { grid-template-columns: minmax(0, 1fr); }
  .mor-journey-payoff { padding: 24px; gap: 14px; }
  .mor-journey-payoff ul { flex-direction: column; gap: 10px; }
}

/* --- การ์ด "ทำไมต้องหมอหลวง" (หน้าแรก) --------------------------------------
 * ธีมมี .about-item style-desc ให้ แต่มันตั้งใจซ่อนคำอธิบายไว้จนกว่าจะ hover
 * (item-content ถูกดัน translateY(57%) + desc opacity:0) สำหรับการ์ดสั้น ๆ
 * ของ demo อาจดูเท่ แต่ของเราคำอธิบายคือเนื้อหาหลัก พอซ่อนแล้วเหลือกล่องว่าง
 * 6 ใบ มีแค่หัวข้อลอยอยู่ล่าง ๆ และบนมือถือไม่มีวัน hover ได้เลย
 *
 * การ์ดนี้จึงโชว์ ไอคอน + หัวข้อ + คำอธิบาย + ชิป "หลักฐาน" พร้อมกันตลอด
 * ชิปถูกดันไปชิดล่างด้วย margin-top:auto การ์ดในแถวเดียวกันจึงเรียงตรงกัน */
.mor-why-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 30px 28px 26px;
  border-radius: 14px;
  background: var(--gray-light);
  border: 1px solid transparent;
  transition: all .3s ease;
}
.mor-why-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 52px; height: 52px; margin-bottom: 22px;
  border-radius: 14px;
  background: var(--white);
  flex: none;
}
.mor-why-icon i { font-size: 24px; color: var(--red); }
.mor-why-title {
  color: var(--color-title);
  font-size: 19px; line-height: 27px; font-weight: 600;
  letter-spacing: -0.2px;
  margin-bottom: 10px;
}
.mor-why-desc {
  color: var(--color-paragraph);
  font-size: 14px; line-height: 23px;
  margin-bottom: 20px;
}
.mor-why-proof {
  display: inline-flex; align-items: flex-start; gap: 8px;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid rgba(46, 55, 164, .14);
  color: var(--mor-navy-dark);
  font-size: 13px; line-height: 20px; font-weight: 600;
}
.mor-why-proof i { font-size: 12px; line-height: 20px; color: var(--red); flex: none; }
.mor-why-card:hover {
  background: var(--white);
  border-color: var(--red);
  box-shadow: 0 14px 30px rgba(46, 55, 164, .1);
}

/* กล่องหัวเรื่องพื้นเข้มด้านซ้ายของเซกชันนี้ — ธีมตั้ง padding ไว้เยอะมาก
 * ทำให้สูงกว่าการ์ดข้าง ๆ ลดลงให้สมดุลกัน */
.section-why .heading-section.style-2 {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 48px 44px;
  border-radius: 14px;
}
@media (max-width: 767px) {
  .section-why .heading-section.style-2 { padding: 34px 26px; }
  .mor-why-card { padding: 26px 22px 22px; }
}

/* --- คำโปรยในฮีโร่ ---------------------------------------------------------
 * ธีมต้นทางฮีโร่มีแต่หัวข้อ ไม่มีย่อหน้า พอใส่ของเราเข้าไปมันยาวพาดทั้งจอ */
.mor-hero-desc {
  max-width: 620px;
  color: var(--color-paragraph);
  margin-bottom: 40px;
}

/* --- การ์ดตัวเลขสำคัญ -------------------------------------------------------
 * ใช้โครง .fun-fact-item ของธีม แต่เปลี่ยนชุดสีจากเขียว/ม่วง/ชมพูของ demo
 * มาเป็นโทนแบรนด์ ไม่งั้นหน้าแรกมีสีหลุดจากที่เหลือทั้งเว็บ */
.mor-stat { display: flex; align-items: flex-end; min-height: 220px; }
.mor-stat .number-counter span {
  font-size: 55px; line-height: 100%; font-weight: 700;
}
.mor-stat.is-teal { background-color: var(--red); }
.mor-stat.is-teal .number-counter span,
.mor-stat.is-teal .title-counter { color: var(--white); }
.mor-stat.is-mint { background-color: var(--mor-tint); }
.mor-stat.is-mint .number-counter span { color: var(--mor-navy-dark); }
.mor-stat.is-mint .title-counter { color: var(--color-title); }
.mor-stat.is-ink { background-color: var(--black); }
.mor-stat.is-ink .number-counter span { color: var(--red-2); }
.mor-stat.is-ink .title-counter { color: var(--white); }
.mor-stat.is-soft { background-color: var(--gray-light); }
.mor-stat.is-soft .number-counter span { color: var(--red); }
.mor-stat.is-soft .title-counter { color: var(--color-title); }

/* --- ไอคอนการ์ด features-item ----------------------------------------------
 * demo ของธีมตั้ง style-2 ให้ไอคอนเป็นม่วง (--black-2) ซึ่งไม่ใช่สีแบรนด์เรา */
.features-item.style-2 .icon i { color: var(--red); }
/* ⚠️ บรรทัดบนอยู่ "หลัง" .mor-dark .features-item .icon i ในไฟล์นี้ และ
 *    specificity เท่ากันพอดี (3 คลาส + 1 element) ตัวหลังจึงชนะ ผลคือไอคอน
 *    ในบล็อกทึบกลายเป็นน้ำเงิน #2E37A4 บนพื้น #0E1525 = คอนทราสต์ 1.91:1
 *    มองแทบไม่เห็น ต้องประกาศเคสพื้นเข้มซ้ำให้เจาะจงกว่าตรงนี้ (ได้ 6.59:1) */
.mor-dark .features-item.style-2 .icon i { color: var(--red-2); }

/* --- การ์ด about-item style-desc บนอุปกรณ์สัมผัส -----------------------------
 * ธีมซ่อนคำอธิบายไว้จนกว่าจะ hover ซึ่งบนมือถือจะไม่มีวันเห็น
 * เครื่องที่ชี้ตำแหน่งแบบหยาบ (นิ้ว) จึงให้แสดงคำอธิบายตลอด */
@media (hover: none) {
  .about-item.style-desc .item-content { transform: none; }
  .about-item.style-desc .desc { opacity: 1; visibility: visible; transform: none; }
}

/* --- <select> ในฟอร์มติดต่อ -------------------------------------------------
 * ธีมใช้ nice-select (ul/li) ซึ่งไม่ส่งค่าจริงไปกับฟอร์ม เราจึงใช้ <select> จริง
 * แล้วแต่งให้หน้าตาเท่ากับ input ของธีม */
.form-contact-us .mor-select {
  width: 100%;
  border: 1px solid var(--border);
  background-color: var(--white);
  border-radius: 999px;
  padding: 16px 20px 14px 43px;
  color: var(--color-title);
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23666B68' d='M1.4 0 6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 22px center;
}
.form-contact-us .mor-select:focus { outline: none; border-color: var(--red); }
.form-contact-us .cols { flex-wrap: wrap; }
/* textarea ของธีมไม่ได้ตั้งความสูงไว้ ปล่อยไว้จะเตี้ยจนพิมพ์ไม่สะดวก */
.form-contact-us textarea { min-height: 132px; }

/* --- การ์ดข้อมูลติดต่อบนพื้นสว่าง -------------------------------------------
 * .box-item-footer ของธีมออกแบบมาสำหรับพื้นเข้มในท้ายเว็บ (ตัวหนังสือขาว)
 * หน้าติดต่อเป็นพื้นขาว จึงต้องมีการ์ดของเราเอง */
.mor-info-card {
  border: 1px solid var(--border);
  border-radius: 15px;
  padding: 24px 28px;
  background: var(--white);
  transition: all .3s ease;
}
.mor-info-card .top-box {
  display: flex; align-items: center; gap: 14px; margin-bottom: 10px;
}
.mor-info-card .top-box i { font-size: 26px; color: var(--red); }
.mor-info-card .title-box { color: var(--color-title); margin: 0; }
.mor-info-card .desc { color: var(--color-paragraph); }
.mor-info-card .desc a { color: var(--color-title); }
.mor-info-card .desc a:hover { color: var(--red); }
.mor-info-card:hover { border-color: var(--red); box-shadow: 10px 4px 40px rgba(193, 193, 193, .25); }

/* --- บรรทัดวันที่/หมายเหตุในเอกสารกฎหมาย ------------------------------------ */
.mor-prose-meta { color: var(--color-text-2); font-size: 14px; margin-bottom: 32px; }
.mor-prose-note {
  color: var(--color-text-2); font-size: 14px;
  border-top: 1px solid var(--border); padding-top: 24px; margin-top: 40px;
}

/* --- ชื่อไทยใต้หัวข้อการ์ดโมดูล --------------------------------------------- */
.features-item .sub-title-2 {
  color: var(--red);
  font-size: 14px;
  font-weight: 600;
  margin-top: -8px;
  margin-bottom: 14px;
}

/* --- หัวโมดูล + การ์ดแถบข้าง (หน้ารายละเอียดโมดูล/โซลูชัน) -------------------- */
.mor-module-icon {
  width: 72px; height: 72px; flex: none;
  border-radius: 18px;
  background: var(--mor-tint);
  display: flex; align-items: center; justify-content: center;
}
.mor-module-icon i { font-size: 36px; color: var(--red); }

.mor-side-card {
  border: 1px solid var(--border);
  border-radius: 15px;
  padding: 28px 28px 30px;
  background: var(--gray-1);
}
.mor-side-card .title { color: var(--color-title); font-size: 18px; }
.mor-side-card .desc { color: var(--color-paragraph); font-size: 14px; }
.mor-side-card.is-solid {
  background: var(--red);
  border-color: var(--red);
}
.mor-side-card.is-solid .title { color: var(--white); }
.mor-side-card.is-solid .desc { color: var(--color-text-4); }

.mor-side-links { list-style: none; padding: 0; margin: 0; }
.mor-side-links li + li { margin-top: 6px; }
.mor-side-links a {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 12px; border-radius: 12px;
  background: var(--white); transition: all .3s ease;
}
.mor-side-links a:hover { box-shadow: 10px 4px 30px rgba(193, 193, 193, .25); }
.mor-side-links i { font-size: 20px; color: var(--red); flex: none; }
.mor-side-links strong { display: block; font-size: 14px; color: var(--color-title); }
.mor-side-links em { display: block; font-style: normal; font-size: 12px; color: var(--color-paragraph); }

/* --- การ์ดลิงก์ (โมดูลแนะนำในหน้าโซลูชัน) ----------------------------------- */
.mor-link-card {
  display: flex; align-items: center; gap: 14px;
  padding: 16px 20px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--white);
  transition: all .3s ease;
  height: 100%;
}
.mor-link-card i { font-size: 26px; color: var(--red); flex: none; }
.mor-link-card strong { display: block; color: var(--color-title); font-size: 15px; }
.mor-link-card em { display: block; font-style: normal; font-size: 13px; color: var(--color-paragraph); }
.mor-link-card:hover { border-color: var(--red); box-shadow: 10px 4px 40px rgba(193, 193, 193, .25); }

/* --- การ์ดตัวเลขย่อย (หน้าเกี่ยวกับเรา) ------------------------------------- */
.mor-numcard {
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px 16px;
  text-align: center;
  background: var(--gray-1);
  height: 100%;
}
.mor-numcard strong {
  display: block; font-size: 20px; line-height: 1.2;
  color: var(--red); margin-bottom: 6px;
}
.mor-numcard span { font-size: 12px; color: var(--color-paragraph); }

/* --- คอลัมน์ที่ไฮไลต์ในตารางเปรียบเทียบ ------------------------------------ */
.mor-table th.is-highlight { background: var(--mor-tint); color: var(--mor-navy-dark); }
.mor-table td.is-highlight { background: rgba(46, 55, 164, .06); color: var(--color-title); }
.mor-table .is-yes { color: var(--red); font-weight: 700; margin-right: 4px; }
.mor-table .is-no  { color: var(--color-text-5); margin-right: 4px; }

/* --- ไทม์ไลน์ขั้นตอน (ย้ายระบบ / ขั้นตอนบริการ) ------------------------------ */
.mor-timeline-item {
  display: flex; gap: 24px; align-items: flex-start;
  background: var(--white);
  border-radius: 15px;
  padding: 24px 28px;
  margin-bottom: 16px;
}
.mor-timeline-num {
  width: 48px; height: 48px; flex: none;
  border-radius: 999px; background: var(--red); color: var(--white);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700;
}
.mor-timeline-item .title { color: var(--color-title); font-size: 18px; margin-bottom: 6px; }
.mor-timeline-item .desc { color: var(--color-paragraph); font-size: 15px; }
.mor-timeline-item.is-bordered { border: 1px solid var(--border); }

/* --- แผงย่อยในหน้าผลิตภัณฑ์ ------------------------------------------------ */
.mor-panel {
  background: var(--white);
  border-radius: 20px;
  padding: 40px;
  border: 1px solid var(--border);
}
@media (max-width: 767px) { .mor-panel { padding: 24px; } }

/* ไทล์แบบ 5 และ 6 คอลัมน์ (ประเภทฟิลด์ฟอร์ม / กลุ่มลูกค้า CCS) */
.mor-tiles.is-five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.mor-tiles.is-six  { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 991px) {
  .mor-tiles.is-five, .mor-tiles.is-six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
  .mor-tiles, .mor-tiles.is-five, .mor-tiles.is-six { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ป้ายกำกับที่มีไอคอนนำ */
.mor-badge i { font-size: 14px; }

/* ไอคอนในวงกลมขั้นตอน (ใช้เมื่อ step เป็นไอคอนไม่ใช่ตัวเลข) */
.mor-step-num i { font-size: 24px; }

/* --- ภาพหน้าจอแอปมือถือสามเครื่อง ------------------------------------------ */
.mor-phones {
  display: flex; align-items: flex-end; justify-content: center; gap: 14px;
}
.mor-phone {
  background: var(--black); border-radius: 28px; padding: 6px;
  box-shadow: 0 24px 60px rgba(12, 23, 26, .18);
  transition: transform .5s ease;
}
.mor-phone img { width: 100%; border-radius: 22px; display: block; }
.mor-phone.is-side { width: 32%; max-width: 180px; transform: translateY(-14px) rotate(-6deg); }
.mor-phone.is-side:last-child { transform: translateY(-14px) rotate(6deg); }
.mor-phone.is-main { width: 36%; max-width: 200px; z-index: 2; }
.mor-phone:hover { transform: none; }

/* สีเสริมที่ใช้ inline ในหน้า product */
.color-red { color: var(--red); }
.fs-24 { font-size: 24px; }

/* ═══ หน้าราคา ═══════════════════════════════════════════════════════════════
 * ธีมมี .pricing-item แต่เป็นดีไซน์คนละแบบ (ภาพ + รายการราคา) ของเราเป็นการ์ด
 * 5 ระดับที่ต้องเทียบกันได้ จึงทำการ์ดเองโดยยืมโทเคนสีและรัศมีของธีม */
.mor-founding {
  display: flex; align-items: center; gap: 28px; flex-wrap: wrap;
  background: var(--black);
  border-radius: 20px;
  padding: 32px 40px;
}
.mor-founding-icon {
  width: 60px; height: 60px; flex: none; border-radius: 18px;
  background: rgba(220, 38, 38, .12);
  display: flex; align-items: center; justify-content: center;
}
.mor-founding-icon i { font-size: 26px; color: var(--red-2); }
.mor-founding-body { flex: 1 1 320px; }
.mor-founding-body .sub-title { color: var(--red-2); }
.mor-founding-body .title { color: var(--white); font-size: 24px; }
.mor-founding-body .desc { color: var(--color-text-3); }
.mor-founding-body .desc strong { color: var(--red-2); }

.mor-price-card {
  position: relative;
  display: flex; flex-direction: column;
  height: 100%;
  padding: 32px 26px 30px;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: var(--white);
  transition: all .4s ease;
}
.mor-price-card:hover { box-shadow: 10px 4px 60px rgba(193, 193, 193, .25); }
.mor-price-card.is-featured {
  border-color: var(--red);
  box-shadow: 10px 4px 60px rgba(46, 55, 164, .18);
}
.mor-price-flag {
  position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
  background: var(--red); color: var(--white);
  font-size: 12px; font-weight: 700; line-height: 18px;
  padding: 5px 16px; border-radius: 999px; white-space: nowrap;
}
.mor-price-head .title { font-size: 22px; color: var(--color-title); margin-bottom: 4px; }
.mor-price-head .sub { color: var(--red); font-size: 14px; font-weight: 600; margin-bottom: 2px; }
.mor-price-head .limit { color: var(--color-text-2); font-size: 13px; margin-bottom: 0; }

.mor-price-amount {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin: 20px 0;
  padding: 18px 0;
  min-height: 120px;
}
.mor-price-amount .amount { display: flex; align-items: baseline; gap: 6px; }
.mor-price-amount .amount span { font-size: 34px; font-weight: 700; color: var(--color-title); line-height: 1.1; }
.mor-price-amount .amount small { font-size: 14px; color: var(--color-text-2); }
.mor-price-amount .total { font-size: 13px; color: var(--color-text-2); margin: 6px 0 0; }
.mor-price-amount .total strong { color: var(--color-title); }
.mor-price-amount .vat { font-size: 12px; color: var(--color-text-5); margin: 2px 0 0; }
.mor-price-amount .custom { color: var(--color-paragraph); margin: 0; }
.mor-price-amount .custom small { color: var(--color-text-2); }
.mor-price-amount .founding {
  margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--border);
}
.mor-price-amount .founding .tag {
  display: block; font-size: 11px; font-weight: 700; color: var(--red);
  text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px;
}
.mor-price-amount .founding p { margin: 0; font-size: 13px; color: var(--color-text-2); }
.mor-price-amount .founding strong { font-size: 20px; color: var(--red); margin-right: 4px; }

.mor-price-features { flex: 1 1 auto; margin-bottom: 24px; }
.mor-price-card .tf-btn { width: 100%; }
.mor-price-card .note {
  font-size: 12px; color: var(--color-text-2); text-align: center; margin: 8px 0 0;
}

/* แถวหัวข้อกลุ่มในตารางเปรียบเทียบแพ็กเกจ */
.mor-table .mor-table-group td {
  background: transparent;
  border-bottom: 0;
  padding-top: 30px; padding-bottom: 8px;
  font-weight: 700; font-size: 16px; color: var(--color-title);
}
.mor-table .text-center { text-align: center; }
.mor-table i.is-yes { font-size: 14px; }

/* --- ยูทิลิตี้ซ่อน ----------------------------------------------------------
 * ใช้แทน .hidden ของ Tailwind ที่ตอนนี้กลายเป็น .tw-hidden แล้ว
 * สคริปต์ในหน้า checkout สลับคลาสนี้ ห้ามเปลี่ยนชื่อโดยไม่แก้สคริปต์ด้วย */
.mor-hide { display: none !important; }

/* --- ฟอร์มทั่วไป (checkout) -------------------------------------------------- */
.mor-form label {
  display: block; margin-bottom: 6px;
  font-size: 14px; font-weight: 500; color: var(--color-title);
}
.mor-form .req { color: var(--red); }
.mor-form input[type="text"],
.mor-form input[type="email"],
.mor-form input[type="tel"],
.mor-form textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--white);
  padding: 13px 18px;
  color: var(--color-title);
}
.mor-form textarea { min-height: 90px; resize: vertical; }
.mor-form input:focus, .mor-form textarea:focus { outline: none; border-color: var(--red); }
.mor-form .hint { font-size: 12px; color: var(--color-text-2); margin: 6px 0 0; }
.mor-form .agree {
  font-size: 12px; color: var(--color-text-2);
  text-align: center; margin: 16px 0 0; line-height: 1.7;
}
.mor-form .agree a { color: var(--red); text-decoration: underline; }
.mor-form-error {
  margin-top: 20px; padding: 14px 18px; border-radius: 14px;
  background: #FFECEA; border: 1px solid rgba(255, 63, 37, .25);
  color: #A62310; font-size: 14px;
}

/* --- กล่องสรุปรายการ -------------------------------------------------------- */
.mor-summary label {
  display: block; font-size: 13px; color: var(--color-text-2); margin-bottom: 6px;
}
.mor-summary .mor-select {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--white);
  padding: 12px 18px;
  color: var(--color-title);
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23666B68' d='M1.4 0 6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
}
.mor-summary-rows { border-top: 1px solid var(--border); padding-top: 16px; }
.mor-summary-rows > div {
  display: flex; justify-content: space-between; gap: 12px;
  font-size: 14px; color: var(--color-paragraph); margin-bottom: 10px;
}
.mor-summary-rows > div b { color: var(--color-title); }
.mor-summary-rows .is-total {
  border-top: 1px solid var(--border); padding-top: 12px; margin-bottom: 0;
}
.mor-summary-rows .is-total span { color: var(--color-title); font-weight: 700; }
.mor-summary-rows .is-total b { color: var(--red); font-size: 18px; }
.mor-summary .hint { font-size: 12px; color: var(--color-text-2); margin-top: 14px; }
.w-100 { width: 100%; }

/* --- แถบแจ้งเตือน / สถานะ ---------------------------------------------------- */
.mor-note {
  border-radius: 14px; padding: 14px 20px;
  border: 1px solid var(--border); background: var(--gray-1);
  color: var(--color-paragraph); font-size: 14px;
}
.mor-note strong { display: block; color: var(--color-title); margin-bottom: 2px; }
.mor-note.is-ok   { background: var(--mor-tint); border-color: rgba(46, 55, 164, .28); }
.mor-note.is-warn { background: #FFF8E6; border-color: rgba(253,181,23,.35); }

.mor-badge.is-ok   { background: var(--mor-tint); color: var(--mor-navy-dark); }
.mor-badge.is-warn { background: #FFF8E6; color: #8A6100; }
.mor-badge.is-bad  { background: #FFECEA; color: #A62310; }
.mor-badge.is-info { background: #E8F1FF; color: #164B9E; }

/* คู่ป้าย-ค่า (หน้าจัดการแพ็กเกจ) */
.mor-kv-label { font-size: 13px; color: var(--color-text-2); margin-bottom: 2px; }
.mor-kv-value { font-size: 16px; font-weight: 600; color: var(--color-title); margin-bottom: 0; }

/* ไอคอนสถานะกลมใหญ่ (หน้าขอบคุณ) */
.mor-state-icon {
  width: 72px; height: 72px; margin: 0 auto 20px;
  border-radius: 999px; background: var(--gray-1);
  display: flex; align-items: center; justify-content: center;
}
.mor-state-icon i { font-size: 28px; color: var(--color-paragraph); }
.mor-state-icon.is-ok   { background: var(--mor-tint); }
.mor-state-icon.is-ok i { color: var(--red); }
.mor-state-icon.is-warn { background: #FFF8E6; }
.mor-state-icon.is-warn i { color: #C58900; }

.text-start { text-align: left; }

/* --- ปุ่ม +/- ของแอคคอร์เดียน ------------------------------------------------
 * ธีม hardcode พื้นปุ่มเป็น rgba(255,63,37,.15) (แดงของ template) ไว้ใน scss
 * ซึ่งไม่ตามตัวแปรสี เลยกลายเป็นวงชมพูคู่กับเครื่องหมายสีเขียว */
.according-item .title-according span { background: var(--mor-tint); }
.according-item .title-according:not(.collapsed) span { background: var(--red); }

/* จุดที่เหลือที่ธีม hardcode สี rgba ไว้ ไม่ผูกกับ --red
 * (ค่าที่ hardcode คือแดงส้ม #FF3F25 = rgb(255,63,37) ของ template ดั้งเดิม
 *  ตอนที่ 24HOS แก้ SCSS เป็นเขียว เขาแก้แค่ตัวแปร จุดพวกนี้จึงยังเป็นแดงส้มค้างอยู่
 *  ไม่เห็นตอนใช้งานเพราะเป็นพื้นจาง ๆ แต่พอเปลี่ยนแบรนด์แล้วมันจะเพี้ยนชัด)
 * rgb ของ --red ใหม่คือ 46,55,164 */
.range-slider .range-two-val { background: rgba(46, 55, 164, 0.15); }
.sw-pagination-tes.style-color-red .swiper-pagination-bullet::before {
  background: rgba(46, 55, 164, 0.2);
}
.box-funfact.style-bg-3::before {
  background: linear-gradient(180deg, rgba(46, 55, 164, 0.15) 0%, rgba(46, 55, 164, 0) 100%);
}

/* --- ฮีโร่สไลด์: ความสูงต้องเท่าต้นฉบับ ------------------------------------
 * ธีมไม่ได้กำหนดความสูงให้ .page-title-home-inner แต่ใช้ padding 157px บน-ล่าง
 * แล้วปล่อยให้เนื้อหาดันความสูงเอง สไลด์ของธีมมีแค่ (หัวเรื่องเล็ก + หัวข้อ + ปุ่ม)
 * = 342px รวมเป็น 656px คงที่ทุกความกว้างตั้งแต่ 992px ขึ้นไป
 *
 * ของเราเพิ่มย่อหน้าคำโปรยเข้ามา เนื้อหาจึงเป็น 390px กล่องสูง 704px
 * พื้นหลังเป็น background-size: cover กับรูป 1860x750 ซึ่งกว้างกว่ากล่อง
 * cover จึงย่อ-ขยายตาม "ความสูง" — กล่องสูงขึ้น 48px = รูปถูกซูมขึ้น 7%
 * (สเกล 0.875 -> 0.939) มือกับโทรศัพท์เลยโดนตัดขอบล่าง ไม่พอดีเฟรมเหมือนต้นฉบับ
 *
 * แก้ด้วยการตรึงความสูงขั้นต่ำไว้ที่ 656px เท่าต้นฉบับ แล้วลด padding ลง
 * ให้เนื้อหาที่ยาวกว่ายังอยู่กึ่งกลางได้ (ธีมตั้ง align-items: center ไว้แล้ว)
 * ใช้ min-height ไม่ใช่ height เพราะ .page-title-home-inner มี overflow: hidden
 * ถ้าคำโปรยยาวขึ้นในอนาคตกล่องจะสูงตามแทนที่จะตัดตัวหนังสือทิ้ง
 *
 * --- ส่วนที่ "ทำเกินธีม" โดยตั้งใจ ---
 * ที่ความสูงคงที่ 656px พอจอกว้างเกิน ~1690px สัดส่วนกล่อง (กว้าง/สูง)
 * จะเกินสัดส่วนรูป 1860:750 = 2.48 แล้ว cover จะสลับมายึด "ความกว้าง"
 * เป็นตัวกำหนดแทน ผลคือรูปถูกตัดบน-ล่าง หัวโทรศัพท์กับมือหาย
 * (ยืนยันแล้วว่า inno.24hos.com ต้นฉบับก็เป็นแบบนี้เป๊ะที่จอกว้างเท่ากัน
 *  ตัดแนวตั้ง 167px เท่ากันที่ 2100px และไฟล์รูปเป็นไฟล์เดียวกัน md5 ตรง)
 *
 * เจ้าของระบบเลือกให้ "เห็นเต็มรูปเสมอ" จึงให้ความสูงขั้นต่ำโตตามความกว้างจอ
 * ตามสัดส่วนรูป กล่องจึงไม่มีทางกว้างเกิน 2.48 และไม่ตัดแนวตั้งที่ความกว้างใด
 * ต่ำกว่า ~1690px ค่า 656px ยังชนะอยู่ หน้าตาจึงเท่าต้นฉบับเหมือนเดิม
 *
 * 60px = mx-30 ซ้าย+ขวา / 750,1860 = ขนาดจริงของไฟล์รูปสไลด์
 * ถ้าเปลี่ยนรูปสไลด์เป็นสัดส่วนอื่น ต้องแก้เลขสองตัวนี้ด้วย
 *
 * จำกัดที่ >= 992px เพราะต่ำกว่านั้นธีมมีกฎของตัวเอง (padding 70/130) */
@media (min-width: 992px) {
  .page-title-home.h-1 .page-title-home-inner {
    padding-top: 100px;
    padding-bottom: 100px;
    min-height: max(656px, calc((100vw - 60px) * 750 / 1860));
  }
}

/* ป้ายเมนูห้ามตกบรรทัดเด็ดขาด
 * ไทยไม่มีช่องว่างระหว่างคำ แต่เบราว์เซอร์ตัดบรรทัดไทยด้วยพจนานุกรม
 * "หน้าแรก" จึงถูกหั่นเป็น "หน้า"/"แรก" ได้เองเมื่อพื้นที่ไม่พอ
 * ไม่มี error ไม่ล้นแนวนอน มีแต่เฮดเดอร์สูงจาก 80px เป็น 158px เงียบ ๆ
 * (ธีมต้นฉบับก็เจอกับ "About Us" แล้วแก้ด้วย inline white-space: nowrap) */
.menu-primary-menu .menu-item > a,
.menu-primary-menu .menu-item > a > span { white-space: nowrap; }

/* dropdown "โซลูชัน" — ธีมตรึงความกว้างไว้ 233px พอดีกับป้ายอังกฤษของ template
 * ป้ายไทยของเรายาวกว่า เลยถูกพจนานุกรมหั่นกลางคำ ("ความงาม" -> "ความ"/"งาม")
 * ให้กล่องกว้างตามเนื้อหาแทน โดยไม่แคบกว่าของเดิม */
.sub-menu { width: max-content; min-width: 233px; }
.sub-menu .sub-menu-item .item-link-2 { white-space: nowrap; }

/* ═══ เฮดเดอร์บนจอโน้ตบุ๊ก ═══════════════════════════════════════════════════
 * ธีมออกแบบเมนูไว้ 6 รายการภาษาอังกฤษ ของเรามี 8 รายการภาษาไทย บวกตัวสลับภาษา
 * ที่ธีมไม่มี รวมแล้วกว้างกว่าที่ธีมเผื่อไว้ราว 90px
 *
 * ผลคือที่จอ 1366px (จอโน้ตบุ๊กที่พบบ่อยที่สุด) เฮดเดอร์ล้นออกไป 31px
 * แล้วทั้งหน้ามีสกรอลล์แนวนอน — ธีมซ่อนปุ่ม CTA ให้เองก็ต่อเมื่อจอ <= 1350px
 * ซึ่งไม่ทันสำหรับเมนูชุดของเรา
 *
 * แก้ด้วยการบีบระยะห่างในช่วง 1351-1600px แทนการซ่อนปุ่ม CTA ทิ้ง
 * (เดิมบีบถึงแค่ 1500px ทำให้ช่วง 1501-1580px หลุด — รวมถึง 1536px ซึ่งคือ
 *  จอ 1920 ที่ตั้งสเกล Windows 125% พบบ่อยมาก — เมนูจึงตกบรรทัดเฉพาะช่วงนั้น)
 * (ปุ่มขอทดลองใช้คือปุ่มหลักของเว็บ ไม่ควรหายบนจอโน้ตบุ๊ก)
 * ระยะที่บีบได้มีสองก้อน: gap ของเมนู (47px) และ padding-right ของ
 * .nav-search กับ .nav-btn (35px ต่อก้อน) */
@media (max-width: 1600px) {
  .menu-primary-menu { gap: 28px; }
  .menu-primary-menu .menu-item .item-link,
  .menu-primary-menu .menu-item > a { font-size: 16px; }
  .header-right .nav-search { padding-right: 18px; }
  .header-right .nav-btn { padding-right: 18px; gap: 10px; }
  .logo-header .mor-logo .mor-wordmark { font-size: 22px; }
  .logo-header .mor-logo svg { height: 32px; }
}
@media (max-width: 1400px) {
  .menu-primary-menu { gap: 20px; }
  .menu-primary-menu .menu-item .item-link,
  .menu-primary-menu .menu-item > a { font-size: 15px; }
  .header-right .nav-search { padding-right: 12px; }
  .header-right .nav-btn { padding-right: 12px; }
}

/* กันไว้อีกชั้น: ไม่ว่ายังไงหน้าเว็บก็ไม่ควรสกรอลล์แนวนอน
 * (ธีมมีบล็อกที่ยื่นออกนอกจอโดยตั้งใจหลายอัน เช่น .img-item ของ section-banner) */
body { overflow-x: hidden; }

/* --- เมนูตกบรรทัดที่จอกว้าง ------------------------------------------------
 * ที่ >= 1700px ธีมดัน .main-menu ด้วย padding-left: 407px เพื่อจัดเมนู 6 รายการ
 * ภาษาอังกฤษให้เข้าใกล้กึ่งกลาง แต่เมนูไทย 8 รายการของเรากว้างกว่าราว 160px
 * พอโดนดันแล้วพื้นที่เหลือขาดไปสิบกว่าพิกเซล เมนูจึงตกลงมาสองบรรทัด
 * แล้วเฮดเดอร์สูงจาก 80px เป็น 158px — เห็นชัดบนจอ 1920 ขึ้นไป */
@media (min-width: 1700px) {
  .header .main-menu { padding-left: 110px; }
}
@media (min-width: 1920px) {
  .header .main-menu { padding-left: 200px; }
}

/* --- ไอคอนบางไม่เท่ากัน: เติมน้ำหนักเส้นให้ชุดที่บาง ---------------------------
 * ชุด icomoon ของธีมรวมไอคอนสองตระกูลไว้ในฟอนต์เดียวกัน
 *   ก. ภาพประกอบทางการแพทย์ของธีม (primary-care, phlebotomy, medicine-care ...)
 *      เส้นบางมาก ลายละเอียดเยอะ
 *   ข. ไอคอน UI แบบ Font Awesome (list, tag, cart-plus, suitcase ...) เส้นหนาทึบ
 * พอวางเรียงกันในเมกะเมนู "โมดูล" จึงเห็นชัดว่าหนาบ้างบางบ้าง
 *
 * ความหนาของเส้นถูกอบมากับ glyph เปลี่ยนด้วย font-weight ไม่ได้ ใช้
 * -webkit-text-stroke เติมเส้นรอบรูปแทน (รองรับทั้ง Chromium/WebKit/Firefox)
 *
 * **ต้องเป็นหน่วย em ไม่ใช่ px** ไอคอนชุดนี้ถูกใช้ตั้งแต่ 13px (เมนูฟุตเตอร์)
 * ไปจนถึง ~50px (การ์ด features-item) ถ้าตรึงเป็น px จะหนาเกินตอนเล็ก
 * และแทบไม่เห็นผลตอนใหญ่
 *
 * ค่าที่ใช้มาจากการวัดจริง ไม่ได้กะเอา: เรนเดอร์ทุก glyph ลง canvas 200px แล้ว
 * กร่อน (erode) รัศมี 4px วัดว่าหมึกเหลือกี่ % — เส้นบางหายเกลี้ยง เส้นหนาเหลือแกน
 * กลุ่ม ข. ที่เป็นเส้น (ไม่ใช่รูปทึบ) อยู่ที่ ~0.49
 *   ชั้น A วัดได้ 0.00-0.23 -> 0.04em ดันขึ้นเป็น 0.38-0.57 (หมึกโตราว 2 เท่า)
 *   ชั้น B วัดได้ 0.30-0.40 -> 0.02em ดันขึ้นเป็น 0.46-0.53
 * มากกว่านี้ (0.05-0.06em) ได้ค่าตรงกลุ่ม ข. พอดีแต่หมึกโต 2.6-3.1 เท่า
 * ลายในไอคอนจะตันจนดูเป็นก้อน — ลองมาแล้ว
 *
 * ⚠️ เพิ่มไอคอนใหม่ต้องจัดชั้นให้ด้วย วัดซ้ำด้วย D:\tmp\weigh.mjs
 *    (ไล่ทุกคลาสที่ใช้จริงใน src/ แล้วเรียงตามความหนา) และ D:\tmp\tune.mjs
 *    ถ้าลืม ไอคอนใหม่จะบางกว่าเพื่อนโดยไม่มีอะไรฟ้อง */
.icon-affordable,
.icon-comprehensive,
.icon-inpatient-care,
.icon-personalized-patient-care,
.icon-phlebotomy,
.icon-physical-rehabilitation,
.icon-plastic-surgery,
.icon-safety,
.icon-patient-centered,
.icon-primary-care,
.icon-our-location,
.icon-surgery-care,
.icon-schedule,
.icon-medicine-care,
.icon-schedule-hours,
.icon-groud-chat,
.icon-diagnostic,
.icon-emergency,
.icon-mental-health,
.icon-maternity {
  -webkit-text-stroke: 0.04em currentColor;
  paint-order: stroke fill;
}
.icon-headphones-simple,
.icon-user-doctor {
  -webkit-text-stroke: 0.02em currentColor;
  paint-order: stroke fill;
}

/* --- การ์ดขั้นตอน (หน้าผลิตภัณฑ์) ------------------------------------------
 * มาร์กอัป .mor-step / .mor-step-num ถูกใช้ในหน้า /product มาตั้งแต่ต้น
 * แต่ในไฟล์นี้มีแต่กฎของไอคอนข้างใน (.mor-step-num i) ตัวการ์ดกับวงกลมเลข
 * ไม่เคยถูกนิยาม การ์ด "3 ขั้นตอน" และ "เส้นทางผู้ป่วย" จึงออกมาเป็นข้อความ
 * เปลือย ๆ บนหน้าจริงโดยไม่มี error — ให้หน้าตาชุดเดียวกับ .mor-side-card
 * เพื่อไม่ให้มีภาษาการออกแบบเพิ่มอีกชุด
 */
.mor-step {
  height: 100%;
  padding: 28px 28px 30px;
  border: 1px solid var(--border);
  border-radius: 15px;
  background: var(--white);
  transition: all .3s ease;
}
.mor-step:hover { border-color: var(--red); box-shadow: 10px 4px 40px rgba(193, 193, 193, .25); }
.mor-step h5 { color: var(--color-title); font-size: 18px; margin-bottom: 8px; }
.mor-step .sub-title { font-size: 12px; }
.mor-step .desc { color: var(--color-paragraph); font-size: 14px; line-height: 23px; }
.mor-step-num {
  width: 48px; height: 48px; margin-bottom: 18px;
  border-radius: 999px;
  background: var(--red); color: var(--white);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 16px;
}

/* --- จุดยึดของสารบัญในหน้า -------------------------------------------------
 * เฮดเดอร์ sticky สูงราว 100px ถ้าไม่เว้นไว้ หัวเซกชันจะถูกแถบเมนูบังหลังกดลิงก์
 */
.mor-anchor { scroll-margin-top: 120px; }

/* สารบัญในหน้าใช้ .wg-tab ของธีม แต่เป็นลิงก์ข้ามเซกชัน ไม่ใช่ตัวกรอง
 * จึงต้องยอมให้ตกบรรทัดได้เมื่อจอแคบ แทนที่จะเลื่อนแนวนอนอย่างเดียว */
.mor-jump { overflow: visible; }
.mor-jump ul { min-width: 0; flex-wrap: wrap; gap: 10px 12px; }
.mor-jump ul li a { font-size: 14px; padding: 6px 18px; white-space: nowrap; }

/* --- ตารางรายงาน (หน้าผลิตภัณฑ์: ชุดรายงานห้องการเงิน) ---------------------- */
.mor-table.is-compact { min-width: 560px; }
.mor-table.is-compact td:first-child { color: var(--color-title); font-weight: 600; width: 38%; }

/* ไทล์ 2 คอลัมน์ (กล่องจุดเด่นข้างรายการติ๊กถูกในบล็อกคลัง) */
.mor-tiles.is-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* ภาพจำลองหน้าแชท LINE ในบล็อกนัดหมาย — พื้นหลังโปร่ง วางบนพื้นสีอ่อนของธีมได้
   ตรึงความกว้างไว้ ไม่งั้นคอลัมน์ lg-5 จะดันให้มือถือสูงเกินการ์ดที่อยู่ข้าง ๆ */
.mor-phone-solo { width: 100%; max-width: 300px; height: auto; display: inline-block; }


/* คำโปรยบนพื้นฟ้าอ่อน — --color-paragraph (#666B68) ได้แค่ 4.32:1 บน #DDE6F6 ตก AA
 * เป็นมาตั้งแต่ฮีโร่หน้าแรกแล้ว (.mor-hero-desc ใช้โทเคนเดียวกันบนพื้นเดียวกัน)
 * ไม่ใช่ของใหม่ที่เพิ่งเพิ่ม แต่แก้ทีเดียวทั้งสองที่ให้จบ
 * #555B69 = 5.42:1 ยังเป็นเทาอ่านสบาย ไม่ดำจนไปแย่งน้ำหนักหัวเรื่อง */
.mor-hero-desc { color: #555B69; }

/* --- หัวหน้าเพจโหมดรูปโฆษณา (.page-title.is-hero) ---------------------------
 * ใช้กับหน้าโซลูชัน ที่รูปเป็นงานออกแบบมาเฉพาะ ไม่ใช่ภาพสต็อก
 *
 * ต่างจากโหมดปกติสามอย่าง:
 *   1. สัดส่วนกล่องล็อกเท่าไฟล์ (2.48:1) รูปจึงไม่ถูกครอปแนวตั้งที่ความกว้างใด
 *   2. ยึดขอบขวา — ตัวแบบของรูปทุกใบอยู่ฝั่งขวา ครอปจากซ้ายจึงเสียหายน้อยสุด
 *   3. ไม่มี parallax และไม่มี background-attachment: fixed
 *      (fixed ทำให้ cover คิดจาก viewport ไม่ใช่จากกล่อง = คุมการครอปไม่ได้)
 *
 * ฝ้ายังเป็นโทนมืดและตัวหนังสือยังขาว เพราะรูปชุดนี้ไล่มืดฝั่งซ้ายมาให้เองแล้ว
 * แต่ **ยังต้องมีฝ้า** เพราะพอจอแคบ cover ครอปจากซ้ายทิ้งไป 400-760px ซึ่งกิน
 * พื้นที่มืดของรูปหายเกือบหมด ตัวหนังสือขาวจะไปลอยบนภาพสว่าง ๆ อ่านไม่ออก
 * (วัดที่ 992px: เหลือพื้นที่มืดเดิมไม่ถึง 100px)
 *
 * ผูกฝ้าเป็น px ไม่ใช่ % — % พังตอนจอแคบเพราะ padding 130px คงที่กินสัดส่วน
 * มากขึ้นเรื่อย ๆ คำโปรยเลยยื่นพ้นเขตฝ้า (เคยวัดได้ 1.51:1 ตก AA)
 * 780px = สุดขอบ breadcrumb ที่ยาวที่สุด (คลินิกเฉพาะทาง/ความงาม) + เผื่อ
 * วัดแล้วที่ 992px จุดนั้นเคยได้ 4.34:1 ตก AA อยู่นิดเดียว · 300px = ระยะไล่จาง */
.page-title.is-hero .page-title-content {
  background-position: right center;
  background-attachment: scroll;
  padding: 60px 130px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  /* 796/1975 = สัดส่วนไฟล์รูปโฆษณาชุดนี้ ถ้าเปลี่ยนสัดส่วนรูปต้องแก้เลขนี้ */
  min-height: calc((100vw - 60px) * 796 / 1975);
}
.page-title.is-hero .page-title-content::before {
  background: linear-gradient(90deg,
    rgba(14, 21, 37, 0.85) 0,
    rgba(14, 21, 37, 0.68) 780px,
    rgba(14, 21, 37, 0) 1080px);
}
.page-title.is-hero .page-title-content .title,
.page-title.is-hero .page-title-content .desc { max-width: 560px; position: relative; }
.page-title.is-hero .breadkcum { width: fit-content; }

/* โหมดรูปล้วน — หัวเรื่องกับคำโปรยถูกพิมพ์มาในรูปแล้ว ไม่ต้องทับซ้ำ
 * ไม่มีฝ้า ไม่มี padding ให้รูปเต็มกล่อง และห้ามครอปแนวนอนเด็ดขาด
 * (ครอปจากซ้ายทีเดียวหัวเรื่องในรูปหายไปครึ่งคำ) — กล่องล็อกสัดส่วนเท่าไฟล์อยู่แล้ว
 * cover จึงพอดีเป๊ะทุกความกว้าง ไม่เหลือขอบให้ต้องเติมสี */
.page-title.is-hero.is-bare .page-title-content {
  padding: 0;
  background-position: center;
}
.page-title.is-hero.is-bare .page-title-content::before { display: none; }

/* ซ่อนจากสายตาแต่ยังอยู่ใน DOM ให้โปรแกรมอ่านหน้าจอและ Google เห็น
 * ถ้าตัด h1 ทิ้งจริง หน้าจะไม่มีหัวเรื่องเลยเพราะข้อความอยู่ในไฟล์ JPEG */
.mor-sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

/* จอแคบกว่า 992px
 * โหมด hero: ครอปกินพื้นที่มืดของรูปหมด จึงวางข้อความบนพื้นทึบแล้วให้รูปโผล่ครึ่งล่าง
 * โหมด bare: แบนเนอร์ 2.48:1 ที่กว้าง 360px สูงแค่ 145px ตัวหนังสือในรูปเล็กจนอ่านไม่ออก
 *            จึงซ่อนรูปแล้วเอาข้อความจริงกลับมาแสดงแทน */
@media (max-width: 991px) {
  .page-title.is-hero .page-title-content {
    min-height: 0;
    padding: 48px 24px 180px;
    background-position: center bottom;
  }
  .page-title.is-hero .page-title-content::before {
    background: linear-gradient(180deg, #0E1525 0%, rgba(14, 21, 37, 0.92) 55%, rgba(14, 21, 37, 0.35) 100%);
  }
  .page-title.is-hero .page-title-content .title,
  .page-title.is-hero .page-title-content .desc { max-width: 100%; }

  .page-title.is-hero.is-bare .page-title-content {
    background-image: none !important;
    background-color: var(--mor-ink);
    padding: 48px 24px;
    min-height: 0;
  }
  .page-title.is-hero.is-bare .page-title-content::before { display: block; background: none; }
  .page-title.is-hero.is-bare .mor-sr-only {
    position: static !important;
    width: auto; height: auto;
    margin: 0; overflow: visible; clip: auto;
    white-space: normal;
  }
}

/* breadcrumb ใต้รูปสำหรับโหมดรูปล้วน — ตัวในกล่องถูกซ่อนไปกับข้อความ
 * บนพื้นขาวจึงต้องเป็นหมึกเข้ม ไม่ใช่ขาวแบบที่อยู่บนรูป */
.mor-crumb-below { margin-top: 18px; padding-left: 4px; }
.mor-crumb-below h3,
.mor-crumb-below a { color: var(--color-title); font-size: 15px; }
.mor-crumb-below a:hover { color: var(--red); }
.mor-crumb-below .dot {
  width: 4px; height: 4px; border-radius: 50%;
  background: var(--color-text-2); display: inline-block;
}
@media (max-width: 991px) { .mor-crumb-below { display: none; } }

/* ความกว้างคำโปรยหัวหน้าเพจ — เดิมเป็น inline style ใน PageTitle.astro
 * ย้ายมาไว้ที่นี่เพราะ inline ชนะ CSS เสมอ โหมด hero จึง override ไม่ได้ */
.page-title .page-title-content .desc { max-width: 720px; }

/* --- โลโก้ใหม่แบบไฟล์ภาพ (2026-09-06) --------------------------------------
 * โลโก้ทรงนอน 3.71:1 (เจดีย์ซ้าย + หมอหลวง/MORLUANG ขวา) แทน inline SVG เดิม
 * ที่เป็นตัวมาร์ก 30x30 + ตัวอักษรฟอนต์ Prompt — ของเดิมยังคอมเมนต์ไว้ครบใน
 * Logo.astro ถ้าจะกลับไปใช้ให้ถอดบล็อกนี้ออกด้วย
 *
 * คุมด้วย max-height/max-width ไม่ใช่ height ตายตัว เพราะถ้าวันหลังเปลี่ยนไฟล์
 * เป็นสัดส่วนอื่น จะได้ไม่ดันเฮดเดอร์หรือเบียดเมนูโดยไม่มีใครรู้
 *   48px  = เฮดเดอร์เดสก์ท็อปสูง 80px เหลือช่องไฟบน-ล่างข้างละ 16px
 *   200px = ที่ว่างจากโลโก้ถึงปุ่มแฮมเบอร์เกอร์ที่จอ 390px วัดได้ 205px
 *           (เดสก์ท็อปที่จุดคับสุด 1200px เหลือ 392px จึงไม่ใช่ตัวจำกัด) */
.mor-logo img {
  max-height: 48px;
  max-width: 200px;
  width: auto;
  height: auto;
  display: block;
  flex: none;
}
.logo-header .mor-logo { display: inline-flex; align-items: center; }

/* --- รูปหมอในแบนเนอร์ปิดท้าย (CTASection) ----------------------------------
 * ธีมไม่ได้กำหนดขนาดให้ .img-item img เลย เบราว์เซอร์จึงใช้ขนาดจริงของไฟล์
 * (ของธีมคือ 477x600) แปลว่าถ้าเปลี่ยนไฟล์เป็นความละเอียดอื่น รูปจะใหญ่/เล็ก
 * ตามไฟล์ทันทีโดยไม่มีอะไรกั้น — ไฟล์ใหม่เป็น 798x1200 ถ้าปล่อยไว้จะทะลุจอ
 *
 * ตรึงกว้าง 400px (สูงราว 600px เท่าของเดิม) แล้วให้ไฟล์เป็น 2 เท่าไว้
 * เพื่อให้คมบนจอ retina ซึ่งของธีมเดิมเป็น 1x จึงเบลอ */
.section-banner .img-item img { width: 400px; height: auto; }

/* --- รูปสไลด์ฮีโร่หน้าแรก (2026-09-07) --------------------------------------
 * เปลี่ยนจากรูปสต็อกของธีม (silder-page-title-home-1..5.jpg) เป็นรูปที่ทำเอง
 * ทับที่นี่แทนการแก้ styles.css ตามกติกาข้อ 1 ของ THEME.md และตั้งชื่อไฟล์ใหม่
 * ไม่ทับของเดิม เพราะ /theme/image/** ถูกตั้ง immutable 1 ปี (THEME.md §8)
 *
 * สไลด์เรียงตามข้อความ: 1 AI ทุกโมดูล · 2 เชื่อมต่อ LIS/PACS/API
 * 3 คำนวณสิทธิ์+ใบเสร็จ · 4 มือถือ/เทเลเมด · 5 ข้อมูลชุดเดียวทั้งโรงพยาบาล
 *
 * img-1 ถูกใช้ที่ฮีโร่หน้าผลิตภัณฑ์ด้วย (หัวข้อเดียวกับสไลด์แรกเป๊ะ)
 * ไฟล์ธีมเดิมยังอยู่ครบ ถ้าจะย้อนกลับให้ลบบล็อกนี้ทิ้งอย่างเดียว */
.page-title-home .page-title-home-inner.img-1 { background-image: url(../image/page-title/hero-1-2609.jpg); }
.page-title-home .page-title-home-inner.img-2 { background-image: url(../image/page-title/hero-2-2609.jpg); }
.page-title-home .page-title-home-inner.img-3 { background-image: url(../image/page-title/hero-3-2609.jpg); }
.page-title-home .page-title-home-inner.img-4 { background-image: url(../image/page-title/hero-4-2609.jpg); }
.page-title-home .page-title-home-inner.img-5 { background-image: url(../image/page-title/hero-5-2609.jpg); }

/* --- ฝ้าฮีโร่หน้าแรก: ผูกกับคอลัมน์ข้อความเป็น px (2026-09-07) ---------------
 * ของธีมเป็น % (ทึบแค่ซ้าย 30% จางหมดที่ 65%) ซึ่งพอใช้กับรูปสต็อกเดิมที่ฝั่งซ้าย
 * มืดและโล่ง แต่รูปชุดใหม่สว่างและมีของ (แผง LIS/PACS, การ์ดคำนวณสิทธิ์, แดชบอร์ด)
 * ลากมาถึงกลางภาพ หัวเรื่องบรรทัดสองกับคำโปรยจึงไปทับของพวกนั้นแล้วอ่านไม่ออก
 * วัดจริงที่ 1440px ได้ต่ำสุด 1.0-3.8:1 ตก AA เกือบทุกสไลด์
 *
 * คอลัมน์ข้อความจบราว 650-690px ทุกความกว้าง (คอนเทนเนอร์จัดกึ่งกลาง ที่จอกว้าง
 * ข้อความเริ่มขวาขึ้นแต่ก็จบใกล้เคียงเดิม) จึงทึบถึง 720px แล้วไล่จางจบที่ 1060px
 * ตัวแบบของรูปทุกใบอยู่ในสามส่วนขวา ยังเห็นเต็มเหมือนเดิม */
.page-title-home .page-title-home-inner::before {
  background: linear-gradient(90deg,
    #DDE6F6 0,
    #DDE6F6 720px,
    rgba(221, 230, 246, 0) 1060px);
}

/* ปุ่มขาวบนรูปสว่าง — ธีมทำมาสำหรับฮีโร่รูปมืด พื้นปุ่มขาวล้วนไม่มีเส้นขอบ
 * พอรูปเป็นโทนสว่างปุ่มเลยกลืนหายไปทั้งใบ เหลือแต่ตัวหนังสือลอย */
.page-title-home .tf-btn.style-white { border: 1px solid var(--border); }
.page-title-home .tf-btn.style-white:hover { border-color: var(--red); }
