/* ============================================================
   RESET — ปรับค่าเริ่มต้นของเบราว์เซอร์ให้เหมือนกันทุกตัว
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body, h1, h2, h3, h4, h5, p, figure, blockquote, dl, dd, ol, ul {
  margin: 0; padding: 0;
}

ul, ol { list-style: none; }

img, picture, svg, video, iframe { display: block; max-width: 100%; }
img { height: auto; }

input, button, textarea, select { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }

a { color: inherit; text-decoration: none; }

table { border-collapse: collapse; width: 100%; }

address { font-style: normal; }

/* ============================================================
   สำคัญมาก: บังคับให้ hidden ซ่อนจริงเสมอ
   กัน class ที่มี display:flex/grid ไปทับ จนกลายเป็นแผ่นใสดักคลิกทั้งหน้าจอ
   ============================================================ */
[hidden] { display: none !important; }

/* ซ่อนเฉพาะสายตา แต่ screen reader ยังอ่านได้ */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* โฟกัสด้วยคีย์บอร์ด */
:focus-visible { outline: 2px solid var(--c-navy); outline-offset: 3px; }

/* ปิดอนิเมชันทั้งหมดเมื่อผู้ใช้ตั้งค่าลดการเคลื่อนไหว */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}