/*
Theme Name: TSAD 2025
Theme URI: N/A
Author: Biscuit Studio
Author URI: https://www.biscuitstudio.co
Description: An official theme for TSAD.
Version: 1.0
Text Domain: tsad2025
*/

:root {
  --white: #ffffff;

  --gray-50: #f8f8f8;
  --gray-100: #f0f0f0;
  --gray-200: #d9d9d9;
  --gray-300: #bfbfbf;
  --gray-400: #999999;
  --gray-500: #808080;
  --gray-600: #666666;
  --gray-700: #4d4d4d;
  --gray-800: #333333;
  --gray-900: #1a1a1a;

  --primary-50: #f7fcd9;
  --primary-100: #eef8b3;
  --primary-200: #e4f48d;
  --primary-300: #daf067;
  --primary-400: #d0ec51;
  --primary-500: #cae741;
  --primary-600: #b5d13a;
  --primary-700: #98b52f;
  --primary-800: #7a9825;
  --primary-900: #5c7b1c;

  --warning-50: #fff8ed;
  --warning-100: #ffefd6;
  --warning-200: #ffddb0;
  --warning-300: #ffc785;
  --warning-400: #ffae54;
  --warning-500: #ff9800;
  --warning-600: #db7f00;
  --warning-700: #b06500;
  --warning-800: #854c00;
  --warning-900: #583200;

  --error-50: #fdecec;
  --error-100: #f9d2d2;
  --error-200: #f4afaf;
  --error-300: #ec8585;
  --error-400: #e45d5d;
  --error-500: #dc3a3a;
  --error-600: #b92d2d;
  --error-700: #8f2222;
  --error-800: #671818;
  --error-900: #431010;

  --success-50: #f3fceb;
  --success-100: #e2f7cc;
  --success-200: #c6ee9e;
  --success-300: #a8e06e;
  --success-400: #8cd24a;
  --success-500: #73c232;
  --success-600: #5aa026;
  --success-700: #457a1d;
  --success-800: #315715;
  --success-900: #1f380d;
}

html {
  overflow-x: hidden;
}

body {
  min-height: 100vh;
  background-image: linear-gradient(180deg, rgba(240, 255, 228, 0.2) 0%, rgba(255, 255, 255, 1) 90%), url("./assets/images/bg-grid-pattern.png");
  background-repeat: no-repeat, repeat;
  background-size:
    100% 100%,
    72px;
  /* background-blend-mode: multiply; */
  font-family: "Anuphan", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 16px;
  color: var(--gray-900);
  line-height: normal !important;
  letter-spacing: 0.15px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
}

/* Hide arrows in Webkit (Chrome, Safari, Edge) */
.no-spinners::-webkit-outer-spin-button,
.no-spinners::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Hide arrows in Firefox */
.no-spinners {
  -moz-appearance: textfield;
}

/* General appearance for textfield look */
.no-spinners {
  appearance: textfield;
}

.aligncenter > * {
  margin: auto;
}

.prose .wp-element-button {
  color: #fff;
  text-decoration: none;
}

.prose ol > li:has(> strong:first-child)::before {
  font-weight: 700 !important;
  color: currentColor;
}

.prose,
.prose strong {
  color: currentColor;
}

.prose ol > li::before {
  color: currentColor;
}

.prose ul > li::before {
  background-color: currentColor;
}

.prose li + li {
  margin-top: 0;
}

.prose li:has(+ li) {
  margin-bottom: 0;
}

.prose a:not(.btn) {
  color: var(--primary-700);
}

.wpcf7 form .wpcf7-response-output,
.wpcf7-response-output {
  padding: 16px;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  border-radius: 12px;
}

.wpcf7 form.sent .wpcf7-response-output {
  color: var(--success-700);
  background-color: var(--success-50);
  border: 2px solid var(--success-700);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  color: var(--error-700);
  background-color: var(--error-50);
  border: 2px solid var(--error-700);
}

.wpcf7-not-valid-tip {
  margin-top: 4px;
}

.acf-map {
  width: 100%;
  min-height: 400px;
}

.drawing-line path {
  stroke-dasharray: 1000; /* total length of the line */
  stroke-dashoffset: 1000; /* hide it initially */
  animation: drawLine 2s forwards ease-in-out;
}

@keyframes drawLine {
  to {
    stroke-dashoffset: 0;
  }
}

#mobile-menu .current-menu-item > a,
#menu-main-menus .current-menu-item > a {
  color: var(--primary-500);
}

.social-list {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.social-list li > a {
  background-color: var(--gray-800);
  min-width: 44px;
  min-height: 44px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.social-list li > a img {
  max-width: 100%;
  max-height: 20px;
  filter: brightness(0) invert(1);
  opacity: 0.5;
}

#footer-panel {
  background-color: var(--gray-900);
  color: var(--gray-400);
  padding: 40px 0;
  background-image: url("./assets/images/scribble-line-gray.svg");
  background-size: auto 100%;
  background-position: center center;
  background-repeat: no-repeat;
  z-index: 0;
}

#mobile-menu {
  border-radius: 24px;
  overflow: hidden;
  opacity: 0;
  z-index: 0;
  padding: 0;
  transform: translateY(-48px);
  max-height: 0;
  transition: all 0.15s ease-in-out;
}

#mobile-menu.show {
  opacity: 1;
  max-height: 100vh;
  transform: translateY(-68px);
  padding: 72px 8px 0;
}

.app-pagination {
  display: flex;
  gap: 12px;
  align-items: center;
}

.app-pagination > li {
}

.app-pagination > li > .page-numbers {
  border: 1px solid var(--gray-300);
  min-height: 40px;
  min-width: 40px;
  border-radius: 100px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  background-color: var(--white);
}

.app-pagination > li > .page-numbers:not(.current):hover {
  background-color: var(--gray-50);
}

.app-pagination > li > .prev,
.app-pagination > li > .next {
  padding: 0 16px;
}

.app-pagination > li > .current {
  background-color: var(--gray-900);
  color: var(--white);
  border-color: var(--gray-900);
}

.btn {
  display: inline-flex;
  padding: 12px 24px;
  min-width: 100px;
  border-radius: 100px;
}

.btn:not(.animate):hover,
.btn.animated:hover {
  transform: scale(1.05) !important;
  transition: transform 0.15s ease-in-out;
}

.btn.btn-secondary {
  background-color: var(--gray-900);
  color: var(--white);
  font-weight: 600;
}

.btn.btn-gray {
  background-color: var(--gray-100);
  color: var(--gray-900);
  font-weight: 600;
}

.wpcf7-form label {
  font-size: 14px;
  font-weight: 500;
}

.wpcf7-form-control-wrap {
  margin-top: 8px;
  display: block;
}

.text-field {
  font-weight: 400;
  padding: 10px 20px;
  border-radius: 100px;
  border: 2px solid var(--gray-200);
  width: 100%;
  display: block;
}

.text-area:focus,
.text-field:focus,
.text-area:hover,
.text-field:hover {
  border-color: var(--primary-500);
  outline: none;
}

.text-area {
  font-weight: 400;
  padding: 14px 20px;
  border-radius: 20px;
  border: 2px solid var(--gray-200);
  width: 100%;
  display: block;
}

.wpcf7-form .text-field,
.wpcf7-form .text-area {
  font-size: 16px;
}

.tsad-tag {
  background-color: var(--primary-500);
  color: var(--gray-900);
  font-weight: 700;
  padding: 4px 12px;
}

.page-title {
  font-size: 40px;
  font-weight: 700;
}

.page-description {
  font-size: 18px;
  color: var(--gray-700);
  line-height: 1.5 !important;
}

.section-title {
  font-size: 32px;
  font-weight: 700;
}

.section-title.title-sm {
  font-size: 24px;
  font-weight: 700;
}

.section-subtitle {
  font-size: 16px;
  font-weight: 400;
  color: var(--gray-400);
}

.section-description {
  font-size: 18px;
  color: var(--gray-700);
  line-height: 1.5 !important;
}

.shadow-1 {
  box-shadow: 0px 2px 15px 5px rgba(0, 0, 0, 0.04);
}

.conference-box,
.article-box {
  border-radius: 24px;
  box-shadow: 0px 2px 15px 5px rgba(0, 0, 0, 0.04);
  background-color: var(--white);
  overflow: hidden;
  min-width: 300px;
  max-width: 340px;
}

.conference-box .header-panel,
.article-box .header-panel {
  min-height: 207px;
  height: 207px;
  position: relative;
  overflow: hidden;
  background-color: var(--gray-100);
}

.conference-box .header-panel .tag,
.article-box .header-panel .tag {
  position: absolute;
  top: 20px;
  left: 20px;
  z-index: 10;
}

.conference-box .body-panel,
.article-box .body-panel {
  padding: 20px;
  min-height: 140px;
  height: 100%;
}

.conference-box .body-panel .title,
.article-box .body-panel .title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}

.conference-box .body-panel .description,
.article-box .body-panel .description {
  font-size: 14px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  text-overflow: ellipsis;
  overflow: hidden;
  margin-top: 8px;
  color: var(--gray-700);
  height: 40px;
  line-height: 1.5;
}

.conference-box .footer-panel,
.article-box .footer-panel {
  padding: 20px;
}

.conference-box .footer-panel .date,
.article-box .footer-panel .date {
  font-size: 12px;
  color: var(--gray-500);
  display: flex;
  gap: 6px;
  align-items: center;
}

.tag {
  padding: 4px 12px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 50px;
  min-height: 24px;
  min-width: 40px;
  font-size: 12px;
  font-weight: 500;
}

.full-article-title {
  font-size: 44px;
  line-height: 1.5;
}

.full-article-content {
  line-height: 1.6;
  font-size: 18px;
  max-width: 100%;
}

.full-article-content .has-small-font-size {
  font-size: 14px;
}

.video-box {
  min-width: 300px;
}

.video-box .header-panel {
  border-radius: 24px;
  padding-bottom: 62.5%;
  background-color: var(--gray-100);
  position: relative;
}

.video-box .header-panel .tag {
  position: absolute;
  top: 20px;
  right: 20px;
}

.video-box .body-panel {
  padding: 16px 0;
}

.video-box .body-panel .title {
  font-size: 20px;
  font-weight: 700;
}

.video-box .body-panel .subtitle {
  font-size: 14px;
  color: var(--gray-400);
  margin-top: 4px;
}

.video-box .body-panel .time {
  display: flex;
  align-items: center;
  gap: 6px;
}

.video-box .body-panel .view {
  display: flex;
  align-items: center;
  gap: 6px;
}

.video-box.overlay-content-style {
  position: relative;
}

.video-box.overlay-content-style .body-panel {
  position: absolute;
  bottom: 1%;
  left: 2%;
}

.cta-register-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 60px 30px;
  gap: 10px;
  width: 100%;
  background-image: url("./assets/images/bg-grid-pattern.png"), linear-gradient(90deg, rgba(219, 251, 92, 0.5) 0%, rgba(84, 219, 186, 0.75) 100%);
  background-repeat: repeat, no-repeat;
  background-size: 72px, cover;
  background-blend-mode: screen;
}

.scroll-container {
  position: relative;
  overflow: hidden;
}

.scroll-text {
  white-space: nowrap;
  font-size: 72px;
  font-weight: 700;
  color: var(--gray-100);
}

.scroll-text:nth-child(1) {
  margin-left: -1750px;
}

.scroll-text:nth-child(2) {
}

.scroll-text:nth-child(3) {
  margin-left: -1500px;
}

.number-info-box {
}

.number-info-box .label-text {
  font-size: 16px;
  font-weight: 500;
  color: var(--gray-400);
}

.number-info-box .label-value {
  font-size: 64px;
  font-weight: 700;
  color: var(--gray-900);
}

.scribble-line-bg {
  background-image: url("./assets/images/scribble-line.svg");
  background-size: 110% auto;
  background-position: center center;
  background-repeat: no-repeat;
  z-index: 0;
}

.grid-bg {
  background-image: url("./assets/images/bg-grid-pattern.png");
  background-size: 50px auto;
  background-position: center center;
  background-repeat: repeat;
  z-index: 0;
}

#introduction-section {
  font-size: 48px;
  font-weight: 700;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.7));
  z-index: 0;
}

#introduction-text {
  height: 75vh;
  max-height: 750px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

#intro-text-tsad {
  font-size: 48px;
  font-weight: bold;
}

.gradient-text-primary {
  background: linear-gradient(92.73deg, #efec2d 0%, #75982d 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

#who-we-are-section {
  --c1: #ffffff;
  --c2: #ffffff;

  background: linear-gradient(180deg, var(--c1), var(--c2));
  transition: none;
}

#explain-section {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.8));
}

#who-we-are-section .floating-element .image {
  background-color: var(--gray-200);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  width: 180px;
  height: 180px;
  border-radius: 100%;
  box-shadow: 0px 2px 15px 5px rgba(0, 0, 0, 0.04);
}

#who-we-are-section .floating-element .title {
  font-weight: 600;
  font-size: 18px;
  line-height: normal;
  text-align: center;
  margin-top: 16px;
}

#who-we-are-section #floating-research {
  left: -30px;
}

#who-we-are-section #floating-knowledge-sharing {
  left: 25%;
}

#who-we-are-section #floating-knowledge-sharing .image {
  width: 220px;
  height: 220px;
}

#who-we-are-section #floating-workshop {
  left: auto;
  right: 5%;
}

.floating-element {
  position: absolute;
}

#explain-section {
  position: relative;
}

#explain-section .explain-content-list {
  position: relative;
}

#explain-section .explain-content {
  width: 100%;
  height: 100%;
  position: absolute;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  opacity: 0;
}

#explain-section .explain-images {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

#explain-section .explain-image {
  background-color: var(--gray-100);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  border-radius: 32px;
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  opacity: 0;
  width: 400px;
  height: 400px;
  max-height: 100%;
  max-width: 100%;
  margin: auto;
}

#explain-section .explain-content.active,
#explain-section .explain-image.active {
  opacity: 1;
}

.explain-number {
  font-weight: 700;
  font-size: 72px;
}

.image-frame-container {
  position: relative;
  height: 800px;
}

#image-paralax-section .image-frame {
  width: 220px;
  height: 180px;
  border-radius: 32px;
  background-color: var(--gray-200);
  overflow: hidden;
  box-shadow: 0px 2px 25px 5px rgba(0, 0, 0, 0.1);
  position: absolute;
}

#image-paralax-section .image-frame img {
  width: 150%;
  height: 150%;
  object-fit: cover;
  object-position: top center;
}

#image-paralax-section #image-frame-1 {
  width: 230px;
  height: 160px;
  top: 0;
  left: 50%;
  transform: translateX(-109%);
}

#image-paralax-section #image-frame-2 {
  width: 230px;
  height: 180px;
  top: 220px;
  left: 50%;
  transform: translateX(-80%);
  z-index: 3;
}

#image-paralax-section #image-frame-3 {
  width: 300px;
  height: 200px;
  top: 50px;
  left: 50%;
  transform: translateX(-5%);
}

#image-paralax-section #image-frame-4 {
  width: 260px;
  height: 180px;
  top: 380px;
  left: 50%;
  transform: translateX(-100%);
}

#image-paralax-section #image-frame-5 {
  width: 300px;
  height: 200px;
  top: 560px;
  left: 50%;
  transform: translateX(-15%);
}

#tsad-images-marquee {
  overflow: hidden;
}

#tsad-images-marquee .gallery-item {
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  width: 350px;
  min-height: 218px;
  box-shadow: 0px 2px 15px 5px rgba(0, 0, 0, 0.04);
}

#tsad-images-marquee .gallery-item.text {
  background-color: var(--primary-500);
  width: 240px;
  background-color: var(--gray-900);
  color: var(--white);
  display: flex;
  align-items: flex-end;
}

.carousel-container-wrapper {
  position: relative;
  display: flex;
  width: 100%;
}

.carousel-container-wrapper .carousel-container {
  animation-name: marquee;
  animation-duration: 100s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  flex-shrink: 0;
  display: flex;
}

.carousel-container-wrapper .carousel-item {
  display: inline-block;
  font-size: 24px;
  background-color: #eee;
  border-radius: 30px;
  padding: 24px;
  width: 400px;
  max-width: 100%;
  margin-right: 24px;
}

.split-text-parent {
  line-height: 1.5;
  overflow: hidden;
}

.split-text-child {
  display: inline-block;
}

@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

@media (min-width: 576px) {
  #introduction-section,
  #intro-text-tsad {
    font-size: 56px;
  }

  #image-paralax-section #image-frame-1 {
    width: 230px;
    height: 160px;
    top: 0;
    left: 50%;
    transform: translateX(-115%);
  }

  #image-paralax-section #image-frame-2 {
    width: 230px;
    height: 180px;
    top: 220px;
    left: 50%;
    transform: translateX(-80%);
    z-index: 3;
  }

  #image-paralax-section #image-frame-3 {
    width: 300px;
    height: 200px;
    top: 50px;
    left: 50%;
    transform: translateX(-5%);
  }

  #image-paralax-section #image-frame-4 {
    width: 260px;
    height: 180px;
    top: 380px;
    left: 50%;
    transform: translateX(-100%);
  }

  #image-paralax-section #image-frame-5 {
    width: 300px;
    height: 200px;
    top: 560px;
    left: 50%;
    transform: translateX(-10%);
  }
}

@media (min-width: 768px) {
  #introduction-section,
  #intro-text-tsad {
    font-size: 62px;
  }
}

@media (min-width: 992px) {
  .scroll-text {
    font-size: 120px;
  }

  .section-title {
    font-size: 40px;
  }

  .section-title.title-sm {
    font-size: 32px;
    font-weight: 700;
  }

  .section-subtitle {
    font-size: 20px;
  }

  #tsad-images-marquee .gallery-item {
    width: 485px;
    min-height: 312px;
  }

  #tsad-images-marquee .gallery-item.text {
    width: 310px;
  }

  .carousel-container-wrapper .carousel-item {
    padding: 32px;
    width: 400px;
    margin-right: 32px;
  }

  #introduction-text {
    height: 75vh;
    min-height: 650px;
    max-height: 750px;
  }

  #introduction-section,
  #intro-text-tsad {
    font-size: 64px;
  }

  #image-paralax-section #image-frame-1 {
    width: 230px;
    height: 160px;
    top: 0;
    left: 50%;
    transform: translateX(-115%);
  }

  #image-paralax-section #image-frame-2 {
    width: 230px;
    height: 180px;
    top: 220px;
    left: 50%;
    transform: translateX(-80%);
    z-index: 3;
  }

  #image-paralax-section #image-frame-3 {
    width: 300px;
    height: 200px;
    top: 50px;
    left: 50%;
    transform: translateX(-5%);
  }

  #image-paralax-section #image-frame-4 {
    width: 260px;
    height: 180px;
    top: 380px;
    left: 50%;
    transform: translateX(-100%);
  }

  #image-paralax-section #image-frame-5 {
    width: 300px;
    height: 200px;
    top: 560px;
    left: 50%;
    transform: translateX(-10%);
  }

  #team-section #team-content-panel {
    justify-content: center;
  }
}

@media (min-width: 1024px) {
  .conference-box,
  .article-box {
    max-width: 100%;
  }

  .cta-register-panel {
    border-radius: 40px;
    padding: 60px 120px;
  }
}

@media (min-width: 1200px) {
  #explain-section .explain-image {
    width: 500px;
    height: 500px;
  }

  #introduction-section,
  #intro-text-tsad {
    font-size: 68px;
  }

  .image-frame-container {
    height: 900px;
  }

  #image-paralax-section #image-frame-1 {
    width: 460px;
    height: 344px;
    top: 0;
    left: 50%;
    transform: translateX(-118%);
  }

  #image-paralax-section #image-frame-2 {
    width: 323px;
    height: 225px;
    top: 320px;
    left: 50%;
    transform: translateX(-40%);
    z-index: 3;
  }

  #image-paralax-section #image-frame-3 {
    width: 408px;
    height: 280px;
    top: 80px;
    left: 50%;
    transform: translateX(25%);
    z-index: 4;
  }

  #image-paralax-section #image-frame-4 {
    width: 485px;
    height: 300px;
    top: 480px;
    left: 50%;
    transform: translateX(-100%);
  }

  #image-paralax-section #image-frame-5 {
    width: 436px;
    height: 316px;
    top: 560px;
    left: 50%;
    transform: translateX(10%);
  }

  .explain-number {
    font-weight: 600;
    font-size: 96px;
  }
}

@media (min-width: 1400px) {
  #image-paralax-section #image-frame-1 {
    width: 560px;
    height: 400px;
    top: 0;
    left: 50%;
    transform: translateX(-125%);
  }

  #image-paralax-section #image-frame-2 {
    width: 323px;
    height: 225px;
    top: 320px;
    left: 50%;
    transform: translateX(-60%);
    z-index: 3;
  }

  #image-paralax-section #image-frame-3 {
    width: 408px;
    height: 280px;
    top: 80px;
    left: 50%;
    transform: translateX(35%);
    z-index: 4;
  }

  #image-paralax-section #image-frame-4 {
    width: 485px;
    height: 300px;
    top: 520px;
    left: 50%;
    transform: translateX(-100%);
  }

  #image-paralax-section #image-frame-5 {
    width: 436px;
    height: 316px;
    top: 570px;
    left: 50%;
    transform: translateX(15%);
  }
}

.wp-block-button .wp-block-button__link {
  box-sizing: border-box;
  display: inline-block;
  min-width: 150px;
  padding: 12px 16px;
  text-align: center;
}

.wp-block-button__width-50 {
  width: 50%;
}

.is-content-justification-right > * {
  margin-left: auto;
}
