/*
  ลอกจากเว็บร้านของจริง ไม่ได้เดาเอง — ค่าทุกตัวในนี้อ่านมาจาก computed style
  ของหน้า scimath (ธีม Astra + Elementor) ที่รันอยู่ ตอน 2026-10-06

  หน้านี้อยู่คนละที่กับเว็บร้าน (คนละโดเมน คนละระบบ) แต่ลูกค้าต้องไม่รู้สึกแบบนั้น
  ถ้าแถบบน ฟอนต์ สี และปุ่ม ไม่ตรงกัน ลูกค้าจะเริ่มสงสัยว่าหลุดไปเว็บอื่นหรือเปล่า
  ซึ่งเป็นปัญหาเดียวกับที่เราย้ายหนีมาจาก Apps Script

  ถ้าเว็บร้านเปลี่ยนธีมเมื่อไหร่ ต้องกลับมาวัดใหม่แล้วแก้ที่นี่
*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@400;500;600;700&family=Lora:wght@600;700&display=swap');

:root {
  /* ---- สีที่วัดมาจากเว็บร้าน ---- */
  --primary: #0b5ccb;          /* ปุ่มหลัก */
  --primary-ink: #10213f;      /* หัวเรื่องใหญ่ */
  --heading: #172033;          /* หัวข้อย่อย */
  --brand-ink: #1e293b;        /* ชื่อร้านบนแถบบน */
  --ink: #222222;              /* ตัวอักษรทั่วไป */
  --nav-ink: #1a1a1a;          /* เมนูชั้นบนสุด (#333 คือเมนูย่อย คนละตัว) */
  --muted: #8a8a8a;            /* ท้ายหน้า ข้อความรอง */
  --line: #E2E5EA;             /* เส้นขอบการ์ด */
  --bar-line: #f0ede7;         /* เส้นใต้แถบบน จางกว่าเส้นการ์ด */
  --pill-line: #afc8f7;        /* ขอบเม็ดยาบนหน้าวิธีสั่งซื้อ */
  /* เว็บร้านใช้สีอุ่นคนละเฉดกันเล็กน้อยในแต่ละที่ ต่างกัน 1 หน่วยจนตามองไม่ออก
     แต่แยกไว้เพื่อให้รู้ว่าแต่ละค่ามาจากชิ้นไหน เวลาเว็บร้านเปลี่ยนจะได้ตามถูกตัว */
  --cream: #faf8f3;            /* แถบหัวเรื่อง — วัดจากหน้า "วิธีสั่งซื้อ" */
  --cream-foot: #faf8f4;       /* ท้ายหน้า */
  --tint: #f0f5fa;
  --white: #ffffff;

  --amber-bg: #fff7e6; --amber-line: #f0c36d; --amber-ink: #7a5300;
  --green-bg: #eaf6ee; --green-line: #8fcba3; --green-ink: #1f6b3a;
  --blue-bg: #eaf1fc;  --blue-line: #9dbbec;  --blue-ink: #1d4ed8;
  --grey-bg: #f3f4f6;  --grey-line: #cbd0d8;  --grey-ink: #475569;

  /* ธีม Astra ของร้านใส่เงานี้ให้ "ทุกปุ่มและทุกช่องกรอก" เท่ากันหมด
     (button,.ast-button,.button,input[type=submit],input[type=text],select,textarea)
     จางมากจนแทบไม่เห็น ซึ่งเป็นสิ่งที่ถูกแล้ว — ปุ่มไหนในหน้านี้มีเงาเข้มกว่านี้
     จะเด้งออกมาจากทั้งหน้าทันที จึงต้องใช้ตัวแปรตัวเดียวกันให้หมด ห้ามใส่ค่าเอง */
  --btn-shadow: 0 1px 2px rgba(0, 0, 0, .05);

  --bar-h: 85px;               /* ความสูงแถบบนของเว็บร้าน */
  --bar-max: 1240px;           /* ความกว้างในแถบบน */
  /* เว็บร้านใช้ 940px กับหน้าบทความที่เป็นข้อความยาวเต็มความกว้าง
     แต่หน้านี้เป็นรายการให้เลือกกับปุ่มกด ไม่ใช่บทความ
     กว้างขนาดนั้นแล้วสายตาต้องกวาดไกลเกินไปกว่าจะเจอปุ่ม จึงแคบลงมา */
  --page-max: 720px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--white);
  color: var(--ink);
  font-family: "Noto Sans Thai", sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--primary); }

/* ---------- แถบบน ---------- */

.topbar {
  height: var(--bar-h);
  background: var(--white);
  display: flex;
  align-items: center;
  /* เส้นใต้บางๆ มีจริงบนเว็บร้าน แต่อยู่ที่ชั้นใน .main-header-bar
     วัดจากชั้นนอกเลยไม่เห็น ต้องไปอ่านจาก CSS ของธีมถึงเจอ */
  border-bottom: 1px solid var(--bar-line);
}
.topbar-in {
  max-width: var(--bar-max);
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.brand img { width: 40px; height: 40px; border-radius: 50%; display: block; }
.brand span {
  /* ชื่อร้านใช้ Lora ไม่ใช่ Noto Sans Thai — เป็นจุดที่สังเกตง่ายที่สุดถ้าลอกผิด */
  font-family: Lora, serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--brand-ink);
  white-space: nowrap;
}
.nav { margin-left: auto; display: flex; align-items: center; gap: 26px; }
.nav a {
  font-size: 14px;
  font-weight: 500;
  color: var(--nav-ink);
  text-decoration: none;
  white-space: nowrap;
  padding: 10px 0;
}
.nav a:hover { color: var(--primary); }

/* ---------- แถบหัวเรื่อง ---------- */

.hero { background: var(--cream); padding: 54px 20px 48px; text-align: center; }
.hero h1 {
  margin: 0 0 10px;
  font-size: 40px;
  font-weight: 700;
  color: var(--primary-ink);
  line-height: 1.3;
}
.hero p { margin: 0; color: var(--ink); font-size: 17px; }

/* ---------- เนื้อหา ---------- */

.wrap { max-width: var(--page-max); margin: 0 auto; padding: 44px 20px 72px; }

h2 { font-size: 20px; font-weight: 700; color: var(--heading); margin: 36px 0 14px; }
h2:first-child { margin-top: 0; }
h2.plain { margin-top: 0; }

.who {
  background: var(--tint);
  border-radius: 8px;
  padding: 13px 18px;
  font-size: 15px;
  margin-bottom: 30px;
  word-break: break-all;
}
.who b { color: var(--ink); font-weight: 600; }
.who a { font-weight: 600; margin-left: 8px; white-space: nowrap; }

.card { border: 1px solid var(--line); border-radius: 10px; padding: 26px; background: var(--white); }
.card p { margin: 0 0 14px; }
.card p b { color: var(--ink); font-weight: 600; }
.card p:last-of-type { margin-bottom: 0; }

/* ปุ่มเข้าสู่ระบบ — ทำตามหน้าตามาตรฐานของ Google (พื้นขาว ขอบเทา โลโก้ซ้าย)
   ซึ่งเป็นแบบที่คนคุ้นตาและดูน่าเชื่อถือกว่าปุ่มสีของเราเอง

   ที่ไม่ใช้ปุ่มสำเร็จรูปของ Google เพราะพอผู้ใช้เคยล็อกอินแล้ว มันจะเปลี่ยน
   เป็นปุ่มโชว์ชื่อกับอีเมลพร้อมลูกศรเอง ซึ่งสั่งไม่ให้เปลี่ยนไม่ได้
   ทำเองจึงได้หน้าตาคงที่ทุกครั้ง และยังเป็นภาษาไทยให้เข้ากับทั้งหน้า

   **เงาใช้ของเว็บร้าน ไม่ใช่ของ Google** — ตอนแรกใส่เงาตอน hover ตามสเปกของ Google
   (rgba(60,64,67,.3) ซ้อนสองชั้น) ซึ่งเข้มจนดูเป็นเงาดำ ผิดจากทั้งหน้าที่เหลือ
   เพราะธีม Astra ของร้านใส่เงาจางมากให้ทุกปุ่มและทุกช่องกรอกเท่ากันหมด (ดู --btn-shadow)
   หน้าตาปุ่มยังเป็นแบบ Google อยู่ แค่เงาตามบ้านเรา */
.signin {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 22px 0 4px;
  height: 46px;
  padding: 0 22px;
  background: var(--white);
  color: #1f1f1f;
  border: 1px solid #dadce0;
  border-radius: 4px;
  box-shadow: var(--btn-shadow);
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  transition: background .15s, border-color .15s;
}
.signin:hover {
  background: #f8f9fa;
  border-color: #d2d5d9;
}
.signin svg { width: 20px; height: 20px; flex: 0 0 auto; }

/* ฟอร์มผูกอีเมล — ช่องกรอกกับปุ่มอยู่บรรทัดเดียวบนจอกว้าง ซ้อนกันบนมือถือ */
.linkform { display: flex; gap: 10px; flex-wrap: wrap; margin: 16px 0 4px; }
.linkform input {
  flex: 1 1 240px;
  height: 46px;
  padding: 0 14px;
  font-family: inherit;
  font-size: 16px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 4px;
  box-shadow: var(--btn-shadow);   /* ธีมใส่เงาเดียวกันนี้ให้ช่องกรอกด้วย ไม่ใช่เฉพาะปุ่ม */
}
.linkform input:focus { outline: none; border-color: var(--primary); }
.linkform .cta { flex: 0 0 auto; margin: 0; height: 46px; line-height: 22px; }
@media (max-width: 544px) { .linkform .cta { flex: 1 1 100%; } }

.warn {
  background: var(--amber-bg); border: 1px solid var(--amber-line); color: var(--amber-ink);
  border-radius: 8px; padding: 12px 16px; font-size: 15px; margin: 16px 0;
}

/* ---------- การ์ดคำสั่งซื้อ ---------- */

.order {
  border: 1px solid var(--line); border-radius: 10px;
  padding: 20px 20px 18px; margin-bottom: 16px; background: var(--white);
}
.order-head {
  font-weight: 600; color: var(--heading); font-size: 16px;
  padding-bottom: 12px; margin-bottom: 14px; border-bottom: 1px solid var(--line);
}
/* บรรทัดรองในหัวการ์ด — บอกว่าใบนี้ยุบมาจากการส่งไฟล์หลายครั้ง
   ตัวเล็กและสีจางกว่าหัว เพราะเป็นคำอธิบาย ไม่ใช่หัวข้อ */
.order-times {
  display: block; margin-top: 4px;
  font-weight: 400; font-size: 13px; color: var(--muted);
}
.order-item { display: flex; align-items: flex-start; gap: 10px; padding: 3px 0; }
.order-item .tick { color: var(--primary); font-weight: 700; flex: 0 0 auto; }
.order .cta { margin-top: 18px; }

/* ข้อความบอกว่าคำสั่งซื้อใบนี้ยื่นไปแล้ว — อยู่เหนือปุ่มเสมอ
   คนที่กำลังจะกดยื่นซ้ำต้องอ่านเจอก่อนมือถึงปุ่ม */
.claimed {
  margin-top: 16px; padding: 11px 14px; border-radius: 6px;
  background: var(--tint); font-size: 15px; line-height: 1.6;
  /* ข้อความบางแบบมาเป็นหลายบรรทัด (ยื่นไปแล้ว / ยังยื่นได้ / ให้ทำอะไรต่อ)
     ต้องคงบรรทัดไว้ ไม่งั้นสามเรื่องจะไหลต่อกันเป็นพืดอ่านไม่ออก
     pre-line ไม่ใช่ pre เพราะยังต้องตัดบรรทัดเองเมื่อจอแคบ */
  white-space: pre-line;
}

/* ปุ่มลอกจากปุ่ม "เลือกดูหนังสือ" บนหน้าแรกของเว็บร้าน

   คลาสนี้ใช้กับทั้ง <a> และ <button> — ปุ่มในฟอร์มผูกอีเมลต้องเป็น <button>
   เพราะมันส่งฟอร์มจริง ไม่ใช่ลิงก์ไปที่อื่น

   <button> พกค่าตั้งต้นของเบราว์เซอร์มาด้วย ซึ่ง <a> ไม่มี และไม่สืบทอดจาก body:
     font-family  -> Arial  ภาษาไทยเลยไม่ใช่ฟอนต์เดียวกับทั้งหน้า
     border       -> 2px outset สีดำ  มองแล้วนึกว่าเป็นเงาดำ
     cursor       -> default  ไม่รู้ว่ากดได้
   จึงต้องล้างทั้งสามตัวตรงนี้ ไม่ใช่ไปแก้ที่ปุ่มตัวนั้นตัวเดียว
   ไม่งั้นปุ่ม <button> ตัวต่อไปที่ใครเพิ่มเข้ามาก็จะเพี้ยนแบบเดิมอีก */
.cta {
  display: inline-block;
  padding: 12px 35px;
  background: var(--primary);
  color: #fff;
  border: 0;
  border-radius: 4px;
  font-family: inherit;
  font-weight: 600;
  font-size: 17px;
  /* เว็บร้านใช้ 1.15 ในปุ่ม ไม่ใช่ 1.65 ของเนื้อความ — ปุ่มมีบรรทัดเดียวเสมอ
     ระยะห่างระหว่างบรรทัดจึงไม่มีประโยชน์ มีแต่ทำให้ปุ่มสูงเกินจริง
     ปล่อยให้สืบทอดจาก body แล้วได้ 52px ส่วนของร้าน 45.5px

     วัดแล้วของเราได้ 43.5px เตี้ยกว่าร้าน 2px ซึ่งถูกแล้ว ไม่ต้องตามไปแก้:
     ร้านใช้ <button> ซึ่งเบราว์เซอร์จัดเนื้อหากึ่งกลางด้วยเมตริกฟอนต์
     (ฟอนต์ไทยสูงกว่า line-height เพราะต้องเผื่อสระบนสระล่าง) ส่วนเราใช้ <a>
     ซึ่งกล่องบรรทัดเท่ากับ line-height เป๊ะ — เป็นความต่างของชนิดอิลิเมนต์
     ไม่ใช่ของกฎที่ลอกมาผิด ถ้าไปเพิ่ม padding ให้เท่ากันจะเพี้ยนตอนร้านเปลี่ยนฟอนต์ */
  line-height: 1.15;
  text-decoration: none;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: var(--btn-shadow);
}
.cta:hover { background: #214fb0; }   /* สีเดียวกับปุ่มสั่งซื้อในหน้าสินค้า */
.cta.block { display: block; text-align: center; }

/* ---------- คำขอ ---------- */

.req { border: 1px solid var(--line); border-radius: 10px; padding: 16px 18px; margin-bottom: 12px; }
.req-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.req .rid { font-weight: 600; color: var(--heading); font-size: 16px; }
.req .when { color: var(--muted); font-size: 14px; }
.req .books { font-size: 15px; }
.req .note { margin-top: 10px; font-size: 15px; padding-top: 10px; border-top: 1px dashed var(--line); }
.req .note b { color: var(--ink); font-weight: 600; }

.badge {
  display: inline-block; font-size: 13px; font-weight: 600;
  padding: 3px 12px; border-radius: 24px; white-space: nowrap;
}
.badge.wait { background: var(--amber-bg); border: 1px solid var(--amber-line); color: var(--amber-ink); }
.badge.ok   { background: var(--green-bg); border: 1px solid var(--green-line); color: var(--green-ink); }
.badge.info { background: var(--blue-bg);  border: 1px solid var(--blue-line);  color: var(--blue-ink); }
.badge.no   { background: var(--grey-bg);  border: 1px solid var(--grey-line);  color: var(--grey-ink); }

.sub2 { color: var(--muted); font-size: 15px; margin-bottom: 18px; }
.foot-note { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 15px; color: var(--muted); }

/* ---------- ท้ายหน้า ---------- */

/* ข้อความระหว่างรอหลังบ้าน — ถูกส่งออกไปก่อนเนื้อหาจริง
   พอเนื้อหามาถึง หน้าจะส่ง <style> ปิดท้ายมาซ่อนมันเอง ไม่ต้องใช้ JavaScript */
.loadwrap { color: var(--muted); text-align: center; padding: 56px 20px; }

/* ลิงก์ท้ายหน้า — โผล่เฉพาะตอนเมนูบนถูกซ่อน */
.footlinks { display: none; text-align: center; padding: 0 20px 24px; }
.footlinks a { font-size: 15px; color: var(--primary); text-decoration: none; }

.sitefoot {
  background: var(--cream-foot);
  color: var(--muted);
  text-align: center;
  padding: 26px 20px;
  font-size: 15px;
}

/* ---------- จอเล็ก ----------
   จุดตัดกับขนาดตัวอักษรอ่านมาจาก stylesheet ของเว็บร้านโดยตรง ไม่ได้เดา
   เว็บร้านตั้ง root font-size = 17px แล้วสั่งขนาดเป็น rem
   .site-title: 1.17647rem (=20px) ที่ <=921 และ 0.764706rem (=13px) ที่ <=544

   **ตัวอักษรเนื้อหาไม่ลดขนาดบนมือถือ** เว็บร้านคง 17px ทุกจอ
   ลดขนาดลงเมื่อไหร่ หน้านี้จะอ่านแล้วรู้สึกเป็นคนละเว็บทันที */

@media (max-width: 921px) {
  .topbar { height: 72px; }
  .brand span { font-size: 20px; }
  .hero { padding: 44px 16px 40px; }
  .hero h1 { font-size: 32px; }
  .wrap { padding: 36px 16px 60px; }
}

@media (max-width: 768px) {
  /* เว็บร้านยุบเมนูเป็นแฮมเบอร์เกอร์ตรงนี้ แต่หน้านี้มีลิงก์เดียว
     ทำปุ่มแฮมเบอร์เกอร์เพื่อเปิดเมนูที่มีของชิ้นเดียวคือเพิ่มขั้นตอนเปล่าๆ
     จึงย้ายลิงก์ลงไปไว้ท้ายหน้าแทน ซึ่งยังกดถึงและยังหาเจอ
     (ลิงก์นโยบายต้องหาเจอง่าย เป็นเงื่อนไขของ Google ด้วย) */
  .nav { display: none; }
  .footlinks { display: block; }
}

@media (max-width: 544px) {
  .topbar { height: 64px; }
  .brand { gap: 10px; }
  .brand span { font-size: 13px; }
  .hero { padding: 36px 16px 32px; }
  .hero h1 { font-size: 28px; }
  .hero p { font-size: 16px; }
  .wrap { padding: 30px 16px 52px; }
  .card { padding: 20px; }
  .order { padding: 16px 16px 14px; }
  .cta, .signin { width: 100%; justify-content: center; }
}

/* ปุ่มที่กำลังทำงานอยู่ — จางลงนิดเดียวพอให้รู้ว่ากดไปแล้ว
   ไม่เปลี่ยนขนาดหรือสีพื้น ไม่งั้นหน้ากระตุกตอนกดทุกครั้ง */
.cta.is-busy, .signin.is-busy {
  opacity: .62;
  cursor: progress;
  pointer-events: none;
}

/* แถวบอกว่าข้อมูลมาจากที่จำไว้ ไม่ใช่เพิ่งดึงสด
   วางท้ายหน้าเพราะเป็นข้อมูลประกอบ ไม่ใช่สิ่งที่ลูกค้ามาทำ */
.cachenote {
  max-width: var(--page-max);
  margin: 26px auto 0;
  padding: 0 16px;
  color: var(--muted);
  font-size: 14px;
}
.cachenote a { color: var(--primary); }
