/* ============================================================
   post-9.css — Elementor framework + global styles (Kit 9)
   Replaces: elementor-frontend.min.css, hello-elementor-*.css,
   widget-*.min.css, elementor-icons.min.css, swiper.min.css,
   e-swiper.min.css, slideInUp.min.css, sticky.min.css,
   widget-form.min.css
   ============================================================ */

/* === RESET & BASE === */
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0;
  padding: 0;
  font-family: "Nunito Sans", sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #7a7a7a;
  background: #fff;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Kanit", sans-serif;
  font-weight: 600;
  color: #0B1C3E;
  margin: 0;
  padding: 0;
  line-height: 1.2;
}

p { margin: 0 0 10px; }

a {
  color: inherit;
  text-decoration: none;
  outline: none;
}

img {
  max-width: 100%;
  height: auto;
  border: 0;
  vertical-align: middle;
}

ul, ol { margin: 0; padding: 0; list-style: none; }

button, input, select, textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

/* === ELEMENTOR LAYOUT ENGINE === */
.elementor {
  -webkit-text-size-adjust: 100%;
}

/* Sections */
.elementor-section {
  position: relative;
  width: 100%;
}

.elementor-section-boxed > .elementor-container {
  max-width: 1140px;
  margin: 0 auto;
}

.elementor-section-full_width > .elementor-container {
  max-width: 100%;
}

/* Container */
.elementor-container {
  display: flex;
  position: relative;
}

.elementor-column-gap-default > .elementor-container {
  /* handled by column padding */
}

/* Columns */
.elementor-column {
  position: relative;
  min-height: 1px;
  display: flex;
}

.elementor-col-100 { width: 100%; }
.elementor-col-50 { width: 50%; }
.elementor-col-33 { width: 33.333%; }
.elementor-col-25 { width: 25%; }
.elementor-col-66 { width: 66.666%; }
.elementor-col-20 { width: 20%; }

/* Column gap */
.elementor-column-gap-default > .elementor-column > .elementor-element-populated {
  padding: 10px;
}

.elementor-column-gap-no > .elementor-column > .elementor-element-populated {
  padding: 0;
}

/* Widget wrap */
.elementor-widget-wrap {
  position: relative;
  width: 100%;
  flex-wrap: wrap;
  align-content: flex-start;
}

.elementor-widget-wrap.elementor-element-populated {
  display: flex;
  flex-direction: column;
}

.elementor-widget-align{
  text-align: end;
}

/* Widget */
.elementor-widget {
  position: relative;
  width: 100%;
}

.elementor-widget-container {
  /* transition: background .3s, border .3s, border-radius .3s, box-shadow .3s; */
  /* padding-bottom: 10px; */
}

.elementor-widget__width-auto {
  width: auto;
  max-width: 100%;
}

/* === HEADING WIDGET === */
.elementor-heading-title {
  margin: 0;
  padding: 0;
}

/* === IMAGE WIDGET === */
.elementor-widget-image img {
  vertical-align: middle;
  display: inline-block;
}

/* === SPACER WIDGET === */
.elementor-spacer { width: 100%; }
.elementor-spacer-inner { height: 100%; }

/* === TEXT EDITOR WIDGET === */
.elementor-widget-text-editor {
  /* inherits body styles */
}

/* === ICON LIST WIDGET === */
.elementor-icon-list-items {
  list-style: none;
  margin: 0;
  padding: 0;
}

.elementor-icon-list-item {
  margin: 0;
  padding: 0;
}

.elementor-icon-list-item a {
  display: flex;
  align-items: center;
  text-decoration: none;
  font-size: inherit;
  color: inherit;
}

.elementor-icon-list-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.elementor-icon-list-icon i {
  width: 1.25em;
  font-size: inherit;
}

.elementor-icon-list-icon + .elementor-icon-list-text {
  padding-left: 5px;
}

.elementor-icon-list--layout-traditional .elementor-icon-list-items {
  display: flex;
  flex-direction: column;
}

/* === BUTTON WIDGET === */
.elementor-button-wrapper {
  display: flex;
}

.elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Kanit", sans-serif;
  font-size: 15px;
  font-weight: 500;
  border: none;
  border-radius: 5px;
  padding: 12px 24px;
  cursor: pointer;
  text-decoration: none;
  transition: all .3s ease;
  line-height: 1;
  white-space: nowrap;
}

.elementor-button-content-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
}

.elementor-button-icon {
  margin-right: 8px;
  display: flex;
  align-items: center;
}

.elementor-button-text {
  /* text */
  font-weight: 400;
}

.elementor-size-sm {
  font-size: 13px;
  padding: 12px 24px;
}

.elementor-size-xs {
  font-size: 12px;
  padding: 10px 20px;
}

.elementor-align-justify .elementor-button-wrapper {
  width: 100%;
}
.elementor-align-justify .elementor-button {
  width: 100%;
  justify-content: center;
}

.elementor-align-left .elementor-button-wrapper {
  justify-content: flex-start;
}

.elementor-align-right .elementor-button-wrapper {
  justify-content: flex-end;
}

.elementor-align-center .elementor-button-wrapper {
  justify-content: center;
}

/* === FORM WIDGET === */
.elementor-form {
  width: 100%;
}

.elementor-form-fields-wrapper {
  display: flex;
  flex-wrap: wrap;
}

.elementor-labels-above .elementor-field-label {
  display: block;
  margin-bottom: 6px;
  font-family: "Nunito Sans", sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #333;
}

.elementor-field-group {
  padding: 0 10px 10px 0;
}

.elementor-field-group.elementor-col-100 {
  width: 100%;
}
.elementor-field-group.elementor-col-50 {
  width: 50%;
}

.elementor-field-textual {
  width: 100%;
  font-family: "Nunito Sans", sans-serif;
  font-size: 14px;
  color: #333;
  border: 1px solid #d5d8dc;
  border-radius: 4px;
  padding: 10px 14px;
  background: #fff;
  outline: none;
  transition: border-color .3s;
}

.elementor-field-textual:focus {
  border-color: #0B1C3E;
}

textarea.elementor-field-textual {
  resize: vertical;
  min-height: 80px;
}

.elementor-field.elementor-select-wrapper {
  position: relative;
  border: none;
  padding: 0;
}

.elementor-select-wrapper select {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  padding-right: 32px;
}

.select-caret-down-wrapper {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  pointer-events: none;
  color: #69727d;
  font-size: 12px;
}

.elementor-field-type-submit {
  display: flex;
  align-items: flex-end;
}

.elementor-button-align-stretch .elementor-field-type-submit .elementor-button {
  width: 100%;
}

/* Required field marker */
.elementor-mark-required .elementor-field-label::after {
  content: " *";
  color: #e25041;
}

.elementor-field.elementor-size-xs {
  padding: 8px 12px;
  font-size: 13px;
}

/* === POPUP / LIGHTBOX === */
.elementor-location-popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: none;
}

.dialog-type-lightbox {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* === STICKY === */
.elementor-sticky--effects,
.elementor-sticky--active {
  position: fixed !important;
  width: 100%;
  z-index: 999;
}

[data-settings*='"sticky":"bottom"'] {
  position: sticky;
  bottom: 0;
  z-index: 999;
}

/* === ANIMATIONS === */
@keyframes slideInUp {
  from { transform: translateY(30px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

.animated.slideInUp {
  animation-name: slideInUp;
}

/* === HIDDEN CLASSES (responsive) === */
/* These match Elementor breakpoints: mobile ≤767, tablet ≤1024 */
@media (min-width: 1025px) {
  .elementor-hidden-desktop { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-hidden-tablet { display: none !important; }
}
@media (max-width: 767px) {
  .elementor-hidden-mobile { display: none !important; }
}

/* === RESPONSIVE === */
@media (max-width: 1024px) {
  .elementor-section-boxed > .elementor-container {
    max-width: 1024px;
  }
  .elementor-container {
    flex-wrap: wrap;
  }
  .elementor-column.elementor-col-33 {
    width: 100%;
  }
  .elementor-column.elementor-col-50 {
    width: 100%;
  }
  .elementor-inner-section .elementor-column.elementor-col-33 {
    width: 100%;
  }
}

@media (max-width: 767px) {
  .elementor-section-boxed > .elementor-container {
    max-width: 100%;
  }
  .elementor-widget__width-auto {
    width: 100%;
  }
  .elementor-widget-mobile__width-inherit {
    width: auto;
  }
  .elementor-mobile-align-left .elementor-button-wrapper,
  .elementor-mobile-align-left .elementor-icon-list-items {
    justify-content: flex-start;
    text-align: left;
  }
  .elementor-field-group.elementor-col-50 {
    width: 100%;
  }
}

/* eicon (Elementor Icons) — caret down only */
.eicon-caret-down::before {
  content: "\25BC";
  font-size: 10px;
}
/* Elementor Kit 9 - Global Styles */

/* Typography */
body {
  font-family: "Nunito Sans", Sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #333333;
  background-color: #ffffff;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Kanit", Sans-serif;
  font-weight: 600;
  color: #0B1C3E;
}

h1 { font-size: 36px; }
h2 { font-size: 24px; }
h3 { font-size: 20px; }
h4 { font-size: 18px; }
h5 { font-size: 16px; }
h6 { font-size: 14px; }

p {
  font-family: "Nunito Sans", Sans-serif;
  font-size: 15px;
  line-height: 1.5;
}

a {
  color: #0B1C3E;
  text-decoration: none;
}

a:hover {
  color: #3B7DD8;
}

/* Buttons */
.elementor-button {
  font-family: "Kanit", Sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  border-radius: 5px;
  padding: 12px 24px;
  letter-spacing: 0.5px;
  transition: all 0.3s ease;
}

/* Form fields */
.elementor-field-textual {
  font-family: "Nunito Sans", Sans-serif;
  font-size: 14px;
  color: #333333;
  border: 1px solid #d4d4d4;
  border-radius: 5px;
  padding: 8px 12px;
  background-color: #ffffff;
}

.elementor-field-textual:focus {
  border-color: #0B1C3E;
  outline: none;
}

.elementor-field-label {
  font-family: "Nunito Sans", Sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #333333;
  padding-bottom: 4px;
}

/* Images */
.elementor-widget-image img {
  max-width: 100%;
  height: auto;
}

/* Heading */
.elementor-heading-title {
  margin: 0;
  padding: 0;
}

/* Icon list */
.elementor-icon-list-items {
  list-style: none;
  padding: 0;
  margin: 0;
}

.elementor-icon-list-item a {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.elementor-icon-list-icon {
  margin-right: 8px;
}

/* Spacer */
.elementor-spacer-inner {
  height: 100%;
}
