.landing-title {
  font-size: 48px;
  color: #1b1b1f;
  align-self: stretch;
  font-style: normal;
  font-weight: 700;
  line-height: 56px; /* 116.667% */
  padding-bottom: 24px;
}




.vertical-text {
    writing-mode: vertical-rl;
    -moz-transform: scale(-1, -1);
    -webkit-transform: scale(-1, -1);
    -o-transform: scale(-1, -1);
    -ms-transform: scale(-1, -1);
    transform: scale(-1, -1);
    text-orientation: mixed;
}

.vertical-text-md {
    writing-mode: vertical-rl;
    -moz-transform: scale(-1, -1);
    -webkit-transform: scale(-1, -1);
    -o-transform: scale(-1, -1);
    -ms-transform: scale(-1, -1);
    transform: scale(-1, -1);
    text-orientation: mixed;
}



@media screen and (max-width: 768px) {
  .landing-title {
    font-size: 40px;
    line-height: 48px;
  }

  .vertical-text-md {
    writing-mode: unset;
    transform: none;
  }
}

.container.header {
  padding: 0.75rem 2.5rem;
  margin: 0;
  flex-direction: row;
  width: 100%;
  max-width: 100%;
}

.container.footer {
  flex-direction: row;
  padding: 0.75rem 2.5rem;
  margin: 0;
  width: 100%;
  max-width: 100%;
}

.menu-nav-item {
  color: var(--text-secondary);
  border-radius: 4px;
  padding: 4px 8px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all 0.2s ease;
}

.active-nav-item {
  color: var(--text-secondary);
  font-weight: 500;
  border-radius: 4px;
  padding: 4px 8px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #f2f3f7;
}

.active-nav-item:hover {
  background-color: #f2f3f7;
}

.language-wrapper {
  background-color: #f2f3f7;
  padding: 4px 8px;
  border-radius: 8px;
}
.language-wrapper a {
  padding: 2px 8px;
  border-radius: 4px;
}

.language-wrapper a.active {
  background-color: #fff;
}

.follow-us-wrapper a {
  display: flex;
  align-items: center;
}
.follow-us-wrapper a svg {
  width: 12px;
  height: 12px;
}

.header-center {
  width: 40px;
  height: auto;
  background-color: var(--primary-color);
  color: #fcfcfc;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px 0;
  margin: auto;
}

.header-center-text {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  color: #fcfcfc;
  letter-spacing: 2px;
}

.divider-small {
  height: 1px;
  width: 32px;
  background-color: #dfe0e5;
}

.home-content-background {
  background: #00000066;
  pointer-events: none; /* Allow touch/drag events to pass through */
}

/* Re-enable pointer events for interactive elements */
.home-content-background a,
.home-content-background button,
.home-content-background input,
.home-content-background select {
  pointer-events: auto;
}

/* Ensure the slider container fills available space */
#slider-container {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

#slider-container:active {
  cursor: grabbing;
}

/* Smooth transitions for slides */
.slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: opacity 0.5s cubic-bezier(0.4, 0.0, 0.2, 1);
  will-change: opacity;
}

/* Touch feedback */
@media (hover: hover) and (pointer: fine) {
  #slider-container:hover {
    cursor: grab;
  }
  
  #slider-container:active {
    cursor: grabbing;
  }
}

/* Mobile touch optimization */
@media (max-width: 768px) {
  #slider-container {
    cursor: default;
    touch-action: pan-y pinch-zoom;
  }
  
  .slide {
    transition: opacity 0.3s ease-out;
  }
}

/* Sub-header styles */
.sub-header {
  padding: 0.5rem 2rem;
  background-color: white;
  border-bottom: 1px solid #dfe0e5;
  height: 48px; /* Fixed height for sub-header */
}

/* Adjust content to account for sticky headers */
.content-with-sticky-header {
  padding-top: 1rem;
}

/* Ensure the dropdown appears above other elements */
.dropdown-content {
  z-index: 100;
}

/* Mobile */

@media screen and (max-width: 768px) {
  .container.header {
    padding: 1rem !important;
    /* Handle iPhone 15 Dynamic Island */
    padding-top: max(1rem, var(--safe-area-inset-top));
  }
  .container.footer {
    padding: 1rem !important;
    padding-bottom: max(1rem, var(--safe-area-inset-bottom));
  }
  
  /* iOS specific fixes */
  body {
    padding-left: var(--safe-area-inset-left);
    padding-right: var(--safe-area-inset-right);
  }
  
  /* Prevent overscroll bounce on iOS */
  body {
    overscroll-behavior: none;
    -webkit-overflow-scrolling: touch;
  }
  
  /* Fix sticky header on mobile */
  header.sticky {
    position: -webkit-sticky;
    position: sticky;
    top: var(--safe-area-inset-top, 0);
  }
}


#service-blur-bg {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 21.88%, rgba(0, 0, 0, 0.70) 68.82%);
}

#service-tabs .service-tab.active span {
  color: #F77E1A;
  border-bottom: 2px solid #F77E1A;
}

#service-tabs .service-tab span {
  color: #BFC1C7;
  border-bottom: 2px solid transparent;
  padding-bottom: 4px;
}

#service-tabs .service-tab:hover span {
  border-color: #F77E1A;
  color: #F77E1A;
}


#service-thumbnail .thumbnail-container {
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  scroll-behavior: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

#service-thumbnail .thumbnail-container::-webkit-scrollbar {
  display: none;
}

#service-thumbnail .thumbnail {
  scroll-snap-align: start;
  border: 2px solid transparent;
  width: 80px;
  height: 80px;
  object-fit: cover;
  cursor: pointer;
  border-radius: 8px;
  opacity: 0.7;
  transition: all 0.3s ease;
}

#service-thumbnail .thumbnail:hover {
  border: 2px solid #FFF;
}

#service-thumbnail .thumbnail.active {
  border: 2px solid #FFF;
  width: 160px;
  opacity: 1;
}


/* --------------Start Projects------------------- */

/* hidden scrollbar */
#project-tab {
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: none;
  scrollbar-width: none;
  display: flex;
  flex-wrap: nowrap;
}
#project-tab .tab-button {
  border: none;
  background: none;
  cursor: pointer;
  padding: 0;
  font-size: 16px;
  font-weight: 700;
  color: #BFC1C7;
  white-space: nowrap;
}

#project-tab .tab-button.active {
  border-bottom: 2px solid #F77E1A;
  color: #F77E1A;
}


#projects .project-card {
  border-radius: 8px;
  overflow: hidden;
  height: 100%;
  height: 260px;
  background-color: #DFE0E5;
  transition: transform 0.3s;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

#projects .project-card:hover {
  transform: translateY(-5px);
}

#projects .car-image-container {
  height: 60%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 16px;
}

#projects .car-image-container img {
  height: 140px;
  width: auto;
  max-width: 100%;
  object-fit: cover;
  border-radius: 4px;
}

#projects .project-info {
  padding: 0.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}

#projects .project-client {
  font-size: 18px;
  font-weight: bold;
  text-align: center;
  color: #1b1b1f;
  line-height: 26px;
}

/* --------------End Projects------------------- */

.button-primary {
  background-color: #F77E1A;
  color: #fff;
  padding: 0px 20px;
  border-radius: 4px;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  width: fit-content;
  height: 40px;
  font-size: 14px;
}

.button-primary:hover {
 opacity: 0.8;
}

.button-secondary {
  border: 1.5px solid #F77E1A;
  color: #F77E1A;
  padding: 0px 20px;
  border-radius: 4px;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  width: fit-content;
  height: 40px;
  min-height: 40px;
  font-size: 14px;
}

.button-secondary:hover {
  background-color: #F77E1A;
  color: #fff;
}

.about-donut-chart {
  min-width: 140px;
  min-height: 140px;
  width: 140px;
  height: 140px;
  object-fit: cover;
}

@media screen and (max-width: 768px) {
  .about-donut-chart {
    min-width: 96px;
    min-height: 96px;
    width: 96px;
    height: 96px;
  }
}
/* CSS tùy chỉnh cho trang đăng nhập */

/* Đảm bảo form đăng nhập có đủ padding khi ở mobile */
@media (max-width: 768px) {
  .login-form-container {
    padding: 2rem 1rem;
  }
}

/* Hiệu ứng hover cho nút đăng nhập */
.login-button:hover {
  box-shadow:
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
}

/* Tạo không gian cho error message */
.flash-message {
  margin-bottom: 1rem;
}

/* Fallback cho trường hợp không có hình nền */
.login-bg-fallback {
  background-color: #ff6b35; /* Màu cam phù hợp với theme */
}
/* This file may be used for providing additional customizations to the Trestle
 * admin. It will be automatically included within all admin pages.
 *
 * For organizational purposes, you may wish to define your customizations
 * within individual partials in this folder and they'll be required below.
 *

*/
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */

:root {
  --font-montserrat: 'Montserrat', sans-serif;
  --text-primary: #1b1b1f;
  --text-secondary: #575961;
  --primary-color: #f77e1a;
  --text-xs: 11px;
  --text-sm: 13px;
  
  /* Dynamic viewport variables for mobile */
  --vh: 1vh;
  --safe-area-inset-top: env(safe-area-inset-top, 0px);
  --safe-area-inset-right: env(safe-area-inset-right, 0px);
  --safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);
  --safe-area-inset-left: env(safe-area-inset-left, 0px);
}

/* Base font settings */
html,
body {
  font-family: var(--font-montserrat);
  color: var(--text-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow: auto;
  height: 100%;
  margin: 0;
  padding: 0;
}

button {
  cursor: pointer;
}

.text-primary {
  color: var(--primary-color);
}

.text-secondary {
  color: var(--text-secondary);
}

/* Custom font classes */
.font-montserrat {
  font-family: var(--font-montserrat);
}

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

table > thead > tr > th {
  height: 56px;
}

.container {
  position: relative;
  height: 100%;
  width: 100%;
  max-width: 100%;
  max-height: 100%;
  padding: 1rem 1.25rem;
  background: white;
  border-radius: 0.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* input field  */
.form-input-field {
  appearance: none;
  position: relative;
  width: 100%;
  padding: 0.5rem 1rem;
  border-radius: 0.25rem;
  background-color: #f2f3f7;
  color: var(--text-primary);
  font-size: 0.875rem;
  line-height: 1.5;
  border-radius: 4px;
  height: 40px;
  display: block;
  align-items: center;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  position: relative;
}

.form-input-field:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 102, 0, 0.25);
  z-index: 1;
}

.form-input-field::placeholder {
  color: #888994;
}

input[type='date']:invalid::-webkit-datetime-edit {
  color: #888994;
}

.form-input-field:invalid {
  color: #888994;
}

.form-input-field:focus::placeholder {
  color: transparent;
}

.form-input-field:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background-color: #f2f3f7;
}

/* button */

.primary-button {
  background-color: var(--primary-color);
  color: #ffffff;
  padding: 0.5rem 1rem;
  border-radius: 0.25rem;
  line-height: 1.5;
  cursor: pointer;
  height: 40px;
}

.primary-button:hover {
  background-color: #ff6600;
  color: #ffffff;
}

.secondary-button {
  padding: 0.5rem 1rem;
  border-radius: 0.25rem;
  line-height: 1.5;
  cursor: pointer;
  height: 40px;
  border: 1.5px solid var(--primary-color);
  color: var(--primary-color);
}

.secondary-button:hover {
  opacity: 0.6;
}

a.custom-link {
  color: #386aff;
  font-weight: 500;
  text-decoration: none;
}

a.custom-link:hover {
  color: #0047ff;
}

/* dropdown */
.dropdown {
  position: relative;
}

.dropdown-content {
  position: absolute;
  right: 0;
  top: 100%; /* Position below by default */
  margin-top: 0.5rem;
  min-width: 8rem;
  background-color: white;
  border-radius: 0.375rem;
  box-shadow:
    0 10px 15px -3px rgba(0, 0, 0, 0.1),
    0 4px 6px -2px rgba(0, 0, 0, 0.05);
  z-index: 100; /* Increased z-index value */
}

/* Add a small triangle/arrow pointing to the button */
.dropdown-content::after {
  content: '';
  position: absolute;
  top: -0.5rem;
  right: 0.75rem;
  width: 1rem;
  height: 0.5rem;
  background-color: transparent;
  border-left: 0.5rem solid transparent;
  border-right: 0.5rem solid transparent;
  border-bottom: 0.5rem solid white;
}

/* When dropdown is above, flip the arrow */
.dropdown-content.bottom-full::after {
  top: auto;
  bottom: -0.5rem;
  border-bottom: none;
  border-top: 0.5rem solid white;
}

.date-input-no-calendar {
  text-transform: uppercase;
}

.date-input-no-calendar::placeholder {
  color: #888994 !important;
}

.date-input-no-calendar::-webkit-calendar-picker-indicator {
  opacity: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  cursor: pointer;
}

/* For Firefox */
.date-input-no-calendar::-moz-calendar-picker-indicator {
  opacity: 0;
}

/* For IE/Edge */
.date-input-no-calendar::-ms-clear {
  display: none;
}

/* Custom pagination styling */
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
}

.pagination a,
.pagination span.page.current,
.pagination .page.gap {
  padding: 0.5rem 1rem;
  border-radius: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  border: 1px solid #e2e8f0;
}

.pagination a {
  color: #4a5568;
  background-color: white;
  cursor: pointer;
}

.pagination a:hover {
  background-color: #f7fafc;
}

.pagination .page.current {
  background-color: #f77e1a;
  color: white;
  border-color: #f77e1a;
}

.pagination .page.gap {
  color: #4a5568;
  background-color: white;
}

.pagination .first,
.pagination .prev,
.pagination .next,
.pagination .last {
  display: inline-flex;
  align-items: center;
}

.pagination .disabled {
  color: #a0aec0;
  cursor: not-allowed;
  background-color: #f7fafc;
}

/* Sticky column styling - updated */
.sticky-col {
  position: sticky;
  right: 0;
  z-index: 10; /* Lower than dropdown z-index */
}

/* Ensure the sticky column in tbody has the right background */
tbody .sticky-col {
  background-color: white;
}

/* Handle hover states */
tr:hover .sticky-col {
  background-color: #f9fafb;
}

/* Ensure the container has proper overflow handling */
.overflow-x-auto {
  position: relative;
}

/* Table header with rounded corners (pill-like appearance) */
table.pill-header thead {
  border-radius: 0.5rem;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

/* Apply rounded corners to the first and last cells in the header row */
table.pill-header thead tr:first-child th:first-child {
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}

table.pill-header thead tr:first-child th:last-child {
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}

table thead {
  border: none;
}

table tbody tr td {
  border-bottom: 1px solid #dfe0e5;
}

/* 16:9 Aspect Ratio Container */
.aspect-ratio-16-9 {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 9/16 = 0.5625 = 56.25% */
  overflow: hidden;
}

/* Content inside the aspect ratio container */
.aspect-ratio-16-9 > * {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; /* For images to cover the area without distortion */
}

/* Alternative using modern CSS */
.aspect-ratio-modern {
  aspect-ratio: 16/9;
  width: 100%;
  overflow: hidden;
}

/* For image galleries with 16:9 ratio */
.image-gallery-16-9 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1rem;
}

.image-gallery-16-9 .image-container {
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: 0.5rem;
}

.image-gallery-16-9 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.image-gallery-16-9 img:hover {
  transform: scale(1.05);
}

/* Prevent scrollbar from overlaying content */
html {
  overflow-y: scroll;
}

body {
  overflow-x: hidden;
  width: 100%;
  max-width: 100vw;
  margin: 0;
  padding: 0;
}

/* Mobile viewport fixes */
.mobile-safe-height {
  min-height: calc(100vh - var(--safe-area-inset-top) - var(--safe-area-inset-bottom));
  min-height: calc(100dvh - var(--safe-area-inset-top) - var(--safe-area-inset-bottom));
}

/* iOS Safari viewport fix */
@supports (-webkit-touch-callout: none) {
  .ios-height-fix {
    min-height: -webkit-fill-available;
  }
}

/* Dynamic viewport height support */
@media screen and (max-width: 768px) {
  .mobile-full-height {
    height: calc(var(--vh, 1vh) * 100);
    min-height: calc(var(--vh, 1vh) * 100);
  }
  
  /* Modern viewport units fallback */
  @supports (height: 100dvh) {
    .mobile-safe-height {
      min-height: 100dvh; /* Dynamic viewport height */
    }
  }
  
  @supports (height: 100svh) {
    .mobile-safe-height {
      min-height: 100svh; /* Small viewport height */
    }
  }
}

@media screen and (min-width: 768px) {
  body {
    padding-right: env(safe-area-inset-right);
  }
}

/* Dropdown positioning classes */
#global-dropdown-container {
  position: fixed;
  z-index: 9999;
  box-shadow: 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
}

/* Ensure dropdown is visible on mobile */
@media (max-width: 767px) {
  #global-dropdown-container {
    position: absolute !important;
    width: auto;
    min-width: 160px;
    max-width: calc(100vw - 20px);
    right: 10px; /* Default right alignment */
  }

  #global-dropdown-container .py-1 {
    width: 100%;
  }
}
