.elementor-kit-7{--e-global-color-primary:#F0701E;--e-global-color-secondary:#092D4C;--e-global-color-text:#030E16;--e-global-color-accent:#FAE6D4;--e-global-color-61a8725:#72ABCD;--e-global-color-fcf2fe0:#D3E9F4;--e-global-color-ef2c7ee:#3C1F04;--e-global-color-4c7d22b:#F9A450;--e-global-color-a98b861:#FAE6D4;--e-global-color-fc42583:#000000;--e-global-color-d032450:#FFFFFF;--e-global-typography-primary-font-family:"PSU_Stidti";--e-global-typography-primary-font-weight:bold;--e-global-typography-primary-line-height:1.2em;--e-global-typography-secondary-font-family:"PSU_Stidti";--e-global-typography-secondary-font-weight:normal;--e-global-typography-secondary-line-height:1.4em;--e-global-typography-text-font-family:"PSU_Stidti";--e-global-typography-text-font-weight:normal;--e-global-typography-text-line-height:1.7em;--e-global-typography-accent-font-family:"PSU_Stidti";--e-global-typography-accent-font-weight:normal;--e-global-typography-accent-line-height:1.3em;color:var( --e-global-color-fc42583 );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 p{margin-block-end:1.7em;}.elementor-kit-7 a{color:var( --e-global-color-primary );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-7 h1{color:var( --e-global-color-text );font-family:"PSU_Stidti", Sans-serif;font-size:52px;font-weight:bold;line-height:1.2em;}.elementor-kit-7 h2{color:var( --e-global-color-text );font-family:"PSU_Stidti", Sans-serif;font-size:38px;font-weight:bold;line-height:1.2em;}.elementor-kit-7 h3{color:var( --e-global-color-text );font-family:"PSU_Stidti", Sans-serif;font-size:28px;font-weight:bold;line-height:1.2em;}.elementor-kit-7 h4{color:var( --e-global-color-text );font-family:"PSU_Stidti", Sans-serif;font-size:22px;font-weight:bold;line-height:1.2em;}.elementor-kit-7 h5{color:var( --e-global-color-text );font-family:"PSU_Stidti", Sans-serif;font-size:16px;font-weight:normal;line-height:1.7em;}.elementor-kit-7 h6{color:var( --e-global-color-text );font-family:"PSU_Stidti", Sans-serif;font-size:14px;font-weight:normal;line-height:1.3em;}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );border-radius:99999px 99999px 99999px 99999px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-7{line-height:var( --e-global-typography-text-line-height );}.elementor-kit-7 a{line-height:var( --e-global-typography-text-line-height );}.elementor-kit-7 h1{font-size:42px;line-height:1.3em;}.elementor-kit-7 h2{font-size:30px;line-height:1.4em;}.elementor-kit-7 h3{font-size:24px;line-height:1.4em;}.elementor-kit-7 h4{font-size:20px;line-height:1.4em;}.elementor-kit-7 h5{font-size:15px;line-height:1.5em;}.elementor-kit-7 h6{font-size:13px;line-height:1.5em;}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{line-height:var( --e-global-typography-text-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-7{line-height:var( --e-global-typography-text-line-height );}.elementor-kit-7 a{line-height:var( --e-global-typography-text-line-height );}.elementor-kit-7 h1{font-size:32px;line-height:1.8em;}.elementor-kit-7 h2{font-size:26px;line-height:1.3em;}.elementor-kit-7 h3{font-size:22px;line-height:1.5em;}.elementor-kit-7 h4{font-size:18px;line-height:1.5em;}.elementor-kit-7 h5{font-size:14px;line-height:1.5em;}.elementor-kit-7 h6{font-size:12px;line-height:1.5em;}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{line-height:var( --e-global-typography-text-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//**********************************************************
 * 0) Utility: กันเซฟ/ลากรูป
 **********************************************************/
.nosave img {
  pointer-events: none;
  -webkit-user-drag: none;
  user-select: none;
  -webkit-touch-callout: none;
}

/**********************************************************
 * 1) Header sticky แบบ Slide-in on scroll
 **********************************************************/
.header-2 {
  transform: translateY(-80px);
  transition: all 0.3s ease !important;
}

.elementor-sticky--effects.header-2 {
  height: auto !important;
  transform: translateY(0);
}

.elementor-sticky--effects.header-1 {
  display: none !important;
}

/**********************************************************
 * 2) Chip / Controls (สวิตช์เลือกผู้บริหาร + ปุ่มควบคุม)
 **********************************************************/
:root {
  --color-laemthong: #ae92e9;
  --color-ponsit: #54bfe7;
  --color-muttanachai: #9fd46e;
  --color-dennapa: #fcc149;
  --color-chanon: #ec5c66;
  --ring: #e8ecf2;
}

/* ตัวเลื่อนแนวนอน (เป็น wrapper) */
.chips-scroll {
  overflow-x: auto;                  /* เลื่อนแนวนอน */
  overflow-y: hidden;                /* ซ่อนแกน Y */
  -webkit-overflow-scrolling: touch;

  padding-block: 12px;               /* เผื่อพื้นที่ให้เงา/เด้ง */
  padding-inline: 10px;

  margin-inline: -10px;              /* ชดเชย padding */
  margin-block: 6px 14px;

  scroll-padding-left: 10px;         /* snap แล้วไม่ซ่อนปุ่มแรก */
}

/* แถวชิปจริง */
.exec-switch {
  display: flex;
  gap: 10px;
  justify-content: flex-start;       /* เห็นคนแรกชิดซ้ายเสมอ */
  flex-wrap: nowrap;                 /* ไม่ตกบรรทัด */
  overflow: visible;                 /* ให้เงา/เด้งทะลุได้ */
  scroll-snap-type: x proximity;
}

.exec-switch::before,
.exec-switch::after {
  content: "";
  flex: 0 0 8px;                     /* กันชนซ้าย/ขวา */
}

.exec-switch .chip {
  position: relative;
  z-index: 1;
  border: 1px solid var(--ring);
  background: #fff;
  color: #000;
  font-weight: 700;
  font-size: 14px;
  padding: 8px 20px;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  white-space: nowrap;               /* ห้ามตัดคำในชิป */
  scroll-snap-align: start;
  will-change: transform;
}

.exec-switch .chip:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}

/* สี hover/active ตามบุคคล */
.exec-switch .chip[data-person="laemthong"]:hover,
.exec-switch .chip[data-person="laemthong"].active {
  background: var(--color-laemthong);
  border-color: var(--color-laemthong);
  color: #fff;
}

.exec-switch .chip[data-person="ponsit"]:hover,
.exec-switch .chip[data-person="ponsit"].active {
  background: var(--color-ponsit);
  border-color: var(--color-ponsit);
  color: #fff;
}

.exec-switch .chip[data-person="muttanachai"]:hover,
.exec-switch .chip[data-person="muttanachai"].active {
  background: var(--color-muttanachai);
  border-color: var(--color-muttanachai);
  color: #fff;
}

.exec-switch .chip[data-person="dennapa"]:hover,
.exec-switch .chip[data-person="dennapa"].active {
  background: var(--color-dennapa);
  border-color: var(--color-dennapa);
  color: #fff;
}

.exec-switch .chip[data-person="chanon"]:hover,
.exec-switch .chip[data-person="chanon"].active {
  background: var(--color-chanon);
  border-color: var(--color-chanon);
  color: #fff;
}

/**********************************************************
 * 2.1 ปุ่มควบคุมปฏิทิน
 **********************************************************/
.calendar-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  margin: 6px 0 14px;
}

.ghost {
  border: 1px solid var(--ring);
  background: #fff;
  padding: 5px 10px;
  border-radius: 999px;
  font-weight: 400;
  font-size: 14px;
  color: #000;
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  white-space: nowrap;
}

.ghost:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
  background-color: #ffffff;
  color: #000;
  border-color: transparent;
}

.ghost:active,
.ghost:focus {
  background: #fff !important;
  color: #000 !important;
  border-color: var(--ring) !important;
  transform: none !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05) !important;
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
}

/* ปุ่มเลือกโหมด Day / Week / Month / List */
.seg {
  display: inline-flex;
  border: 1px solid var(--ring);
  border-radius: 999px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.seg button {
  padding: 6px 10px;
  border: 0;
  background: #fff;
  font-weight: 400;
  font-size: 14px;
  color: #000;
  cursor: pointer;
  transition: all 0.25s ease;
  white-space: nowrap;
}

.seg button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
  background: linear-gradient(135deg, #f0701e, #f9a450);
  color: #fff;
}

.seg button.active {
  background: linear-gradient(135deg, #d95f00, #f9a450);
  color: #fff;
}

/* ตัวคั่นแนวตั้งสำหรับแถบปุ่ม */
.divider {
  display: inline-block;
  width: 1px;
  height: 30px;
  background-color: var(--ring);
  margin: 0 10px;
  vertical-align: middle;
  border-radius: 1px;
  opacity: 0.9;
}

/**********************************************************
 * 3) Calendar Grid (Desktop = เดิม, Tablet/Mobile = แก้)
 **********************************************************/

/* ---- Desktop (>=1025px) = ใช้ของเดิมทุกบรรทัด ---- */
#calendar-grid {
  display: inline-grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 520px));
  gap: 16px;
  align-items: stretch;
  width: auto;
  max-width: 100%;
  margin-inline: auto;
}

#calendar-grid.solo {
  grid-template-columns: minmax(360px, 640px);
}

#calendar-grid .elementor-element {
  background: #fff;
  border: 1px solid var(--ring);
  border-radius: 16px;
  padding: 8px;
  box-shadow: 0 12px 36px rgba(0,0,0,0.06);
}

#calendar-grid .ea-hidden {
  display: none !important;
}

#calendar-grid,
#calendar-grid .elementor-element,
#calendar-grid .eael-event-calendar {
  min-width: 0;
  overflow: hidden;
}

/* Desktop column rules (เหมือนเดิมทั้งหมด) */
#calendar-grid.cols-1 { grid-template-columns: minmax(1104px, 100%); justify-content: center; }
#calendar-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
#calendar-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
#calendar-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
#calendar-grid.cols-5 { grid-template-columns: repeat(5, 1fr); }

/* ---- Tablet (641px – 1024px) ---- */
/* 1 คน = เต็มหน้า / 2+ คน = 2 คอลัมน์ */
@media (min-width: 641px) and (max-width: 1024px) {
  #calendar-grid.cols-1 {
    grid-template-columns: minmax(0, 1fr);
  }

  #calendar-grid.cols-2,
  #calendar-grid.cols-3,
  #calendar-grid.cols-4,
  #calendar-grid.cols-5 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ---- Mobile (<=640px) ---- */
/* ทุกกรณี = 1 คอลัมน์ เรียงลงล่าง */
@media (max-width: 640px) {
  #calendar-grid,
  #calendar-grid.cols-1,
  #calendar-grid.cols-2,
  #calendar-grid.cols-3,
  #calendar-grid.cols-4,
  #calendar-grid.cols-5 {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/**********************************************************
 * 5) Calendar Full-Width Fix (ภายในการ์ด)
 **********************************************************/
#calendar-grid .elementor-element {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  box-sizing: border-box;
}

#calendar-grid .fc {
  width: 100% !important;
}

#calendar-grid .fc .fc-toolbar.fc-header-toolbar {
  margin: 0 0 8px !important;
  padding: 8px 12px !important;
  border-bottom: 1px solid #eee;
  border-radius: 8px 8px 0 0;
}

#calendar-grid .fc-view-harness {
  border-radius: 0 0 8px 8px;
  overflow: hidden;
}

/* กำหนดให้ header ของ FullCalendar เป็นแถวเดียวและเลื่อนข้างได้ */
#calendar-grid .fc .fc-header-toolbar {
  display: flex !important;
  flex-wrap: nowrap !important;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  gap: 8px;
  scrollbar-gutter: stable both-edges;
}

#calendar-grid .fc .fc-toolbar-chunk {
  flex: 0 0 auto;
  min-width: max-content;
}

#calendar-grid .fc .fc-toolbar-title {
  white-space: nowrap;
}

#calendar-grid .fc .fc-button-group,
#calendar-grid .fc .fc-button {
  flex: 0 0 auto;
}

/* สไตล์ scrollbar เล็ก ๆ */
#calendar-grid .fc .fc-header-toolbar::-webkit-scrollbar {
  height: 6px;
}

#calendar-grid .fc .fc-header-toolbar::-webkit-scrollbar-thumb {
  background: #d9dee6;
  border-radius: 8px;
}

#calendar-grid .fc .fc-header-toolbar::-webkit-scrollbar-track {
  background: transparent;
}

/**********************************************************
 * 6) Hover bounce สำหรับ Container (optional)
 **********************************************************/
.hover-bounce {
  transition: all 0.25s ease;
}

.hover-bounce:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/**********************************************************
 * 7) Responsive เพิ่มเติม
 **********************************************************/
/* iPad: actions บรรทัดเดียว ถ้าล้นให้เลื่อนได้ */
@media (min-width: 641px) and (max-width: 1024px) {
  .calendar-actions {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .divider {
    display: inline-block;
  }
}

/* Mobile: แบ่งแถบ actions เป็น 2 บรรทัด (บรรทัดแรก Select/Clear) */
.flex-break {
  display: none;
}

@media (max-width: 640px) {
  .calendar-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
  }

  .divider {
    display: none;
  }

  .flex-break {
    display: block;
    flex-basis: 100%;
    height: 0;
  }

  /* จัดลำดับให้ Select/Clear อยู่บรรทัดแรก */
  #ea-select,
  #ea-clear {
    order: 1;
  }

  .flex-break {
    order: 2;
  }

  #ea-prev,
  #ea-today,
  #ea-next,
  .seg {
    order: 3;
  }

  /* แถวล่างเลื่อนได้ถ้าล้น */
  #ea-prev,
  #ea-today,
  #ea-next,
  .seg {
    flex: 0 0 auto;
  }

  .seg {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 999px;
  }
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'PSU_Stidti';
	font-style: normal;
	font-weight: 100;
	font-display: auto;
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-light.eot');
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-light.eot?#iefix') format('embedded-opentype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-light.woff2') format('woff2'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-light.woff') format('woff'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-light.ttf') format('truetype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-light.svg#PSU_Stidti') format('svg');
}
@font-face {
	font-family: 'PSU_Stidti';
	font-style: italic;
	font-weight: 100;
	font-display: auto;
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-lightitalic.eot');
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-lightitalic.eot?#iefix') format('embedded-opentype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-lightitalic.woff2') format('woff2'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-lightitalic.woff') format('woff'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-lightitalic.ttf') format('truetype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-lightitalic.svg#PSU_Stidti') format('svg');
}
@font-face {
	font-family: 'PSU_Stidti';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-regular.eot');
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-regular.eot?#iefix') format('embedded-opentype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-regular.woff2') format('woff2'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-regular.woff') format('woff'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-regular.ttf') format('truetype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-regular.svg#PSU_Stidti') format('svg');
}
@font-face {
	font-family: 'PSU_Stidti';
	font-style: italic;
	font-weight: normal;
	font-display: auto;
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-italic.eot');
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-italic.eot?#iefix') format('embedded-opentype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-italic.woff2') format('woff2'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-italic.woff') format('woff'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-italic.ttf') format('truetype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-italic.svg#PSU_Stidti') format('svg');
}
@font-face {
	font-family: 'PSU_Stidti';
	font-style: normal;
	font-weight: bold;
	font-display: auto;
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bold.eot');
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bold.eot?#iefix') format('embedded-opentype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bold.woff2') format('woff2'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bold.woff') format('woff'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bold.ttf') format('truetype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bold.svg#PSU_Stidti') format('svg');
}
@font-face {
	font-family: 'PSU_Stidti';
	font-style: italic;
	font-weight: normal;
	font-display: auto;
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bolditalic.eot');
	src: url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bolditalic.eot?#iefix') format('embedded-opentype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bolditalic.woff2') format('woff2'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bolditalic.woff') format('woff'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bolditalic.ttf') format('truetype'),
		url('https://office.research.psu.ac.th/wp-content/uploads/2025/10/psu-stidti-bolditalic.svg#PSU_Stidti') format('svg');
}
/* End Custom Fonts CSS */