/*!**********************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./assets/css/public/public.css ***!
  \**********************************************************************************************************************************************************************************/
/* Shared base styles */
* {
  box-sizing: border-box;
}
html {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  line-height: 1.5;
}
body {
  margin: 0;
  padding: 0;
  color: #333;
  background-color: #fff;
}
/* Common form elements */
input, textarea, select, button {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
/* Common utility classes */
.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;
}
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
/* Shared component styles */
/* Button base styles */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  border: 1px solid transparent;
  border-radius: 0.375rem;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}
.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.btn-primary {
  background-color: #2563eb;
  color: white;
  border-color: #2563eb;
}
.btn-primary:hover:not(:disabled) {
  background-color: #1d4ed8;
  border-color: #1d4ed8;
}
.btn-secondary {
  background-color: #6b7280;
  color: white;
  border-color: #6b7280;
}
.btn-secondary:hover:not(:disabled) {
  background-color: #4b5563;
  border-color: #4b5563;
}
/* Form base styles */
.form-group {
  margin-bottom: 1rem;
}
.form-label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 500;
  color: #374151;
}
.form-input {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border: 1px solid #d1d5db;
  border-radius: 0.375rem;
  font-size: 1rem;
  line-height: 1.5;
  transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.form-input:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.form-input:invalid {
  border-color: #ef4444;
}
/* Card base styles */
.card {
  background-color: white;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
}
.card-header {
  padding: 1rem 1.5rem;
  border-bottom: 1px solid #e5e7eb;
}
.card-body {
  padding: 1.5rem;
}
.card-footer {
  padding: 1rem 1.5rem;
  border-top: 1px solid #e5e7eb;
  background-color: #f9fafb;
}
/* Loading states */
.loading {
  position: relative;
  pointer-events: none;
}
.loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1rem;
  height: 1rem;
  margin: -0.5rem 0 0 -0.5rem;
  border: 2px solid #e5e7eb;
  border-top-color: #2563eb;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
/* Bartender theme compatibility styles */
/* For SVG mask icons */
.cs-mask {
  -webkit-mask-image: var(--mask-img);
          mask-image: var(--mask-img);
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  display: block;
  width: 100%;
  height: 100%;
}
/* For image cover boxes */
.cs-coverbox img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
/* Shared utility classes */
/* Spacing utilities */
.m-0 { margin: 0; }
.m-1 { margin: 0.25rem; }
.m-2 { margin: 0.5rem; }
.m-3 { margin: 0.75rem; }
.m-4 { margin: 1rem; }
.m-5 { margin: 1.25rem; }
.m-6 { margin: 1.5rem; }
.m-8 { margin: 2rem; }
.p-0 { padding: 0; }
.p-1 { padding: 0.25rem; }
.p-2 { padding: 0.5rem; }
.p-3 { padding: 0.75rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
/* Text utilities */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-base { font-size: 1rem; line-height: 1.5rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
/* Color utilities */
.text-gray-500 { color: #6b7280; }
.text-gray-600 { color: #4b5563; }
.text-gray-700 { color: #374151; }
.text-gray-800 { color: #1f2937; }
.text-gray-900 { color: #111827; }
.text-red-500 { color: #ef4444; }
.text-red-600 { color: #dc2626; }
.text-green-500 { color: #10b981; }
.text-green-600 { color: #059669; }
.text-blue-500 { color: #3b82f6; }
.text-blue-600 { color: #2563eb; }
/* Display utilities */
.block { display: block; }
.inline-block { display: inline-block; }
.inline { display: inline; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.grid { display: grid; }
.hidden { display: none; }
/* Flexbox utilities */
.flex-row { flex-direction: row; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.flex-nowrap { flex-wrap: nowrap; }
.items-start { align-items: flex-start; }
.items-center { align-items: center; }
.items-end { align-items: flex-end; }
.items-stretch { align-items: stretch; }
.justify-start { justify-content: flex-start; }
.justify-center { justify-content: center; }
.justify-end { justify-content: flex-end; }
.justify-between { justify-content: space-between; }
.justify-around { justify-content: space-around; }
/* Position utilities */
.relative { position: relative; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.static { position: static; }
/* Border utilities */
.border { border-width: 1px; }
.border-2 { border-width: 2px; }
.border-t { border-top-width: 1px; }
.border-r { border-right-width: 1px; }
.border-b { border-bottom-width: 1px; }
.border-l { border-left-width: 1px; }
.rounded { border-radius: 0.25rem; }
.rounded-md { border-radius: 0.375rem; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-full { border-radius: 9999px; }
/* Shadow utilities */
.shadow { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); }
.shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); }
.shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); }
.shadow-none { box-shadow: none; }
/* Responsive utilities */
@media (min-width: 640px) {
  .sm\:block { display: block; }
  .sm\:hidden { display: none; }
  .sm\:flex { display: flex; }
  .sm\:grid { display: grid; }
}
@media (min-width: 768px) {
  .md\:block { display: block; }
  .md\:hidden { display: none; }
  .md\:flex { display: flex; }
  .md\:grid { display: grid; }
}
@media (min-width: 1024px) {
  .lg\:block { display: block; }
  .lg\:hidden { display: none; }
  .lg\:flex { display: flex; }
  .lg\:grid { display: grid; }
}
/* Custom spacing utilities for booking components */
.w-25p { width: 25px; }
.h-30p { height: 30px; }
.w-55p { width: 55px; }
.h-55p { height: 55px; }
.w-7 { width: 1.75rem; }
.h-7 { height: 1.75rem; }
.px-10p { padding-left: 10px; padding-right: 10px; }
.px-15p { padding-left: 15px; padding-right: 15px; }
.px-30p { padding-left: 30px; padding-right: 30px; }
.py-18p { padding-top: 18px; padding-bottom: 18px; }
.gap-x-2 { gap: 0.5rem; }
.gap-x-4 { gap: 1rem; }
.gap-y-2 { gap: 0.5rem; }
.gap-20p { gap: 20px; }
.gap-40p { gap: 40px; }
.mt-2 { margin-top: 0.5rem; }
.mt-40p { margin-top: 40px; }
.mt-130p { margin-top: 130px; }
/* Custom responsive utilities */
@media (max-width: 767px) {
  .max-medium\:flex-col { flex-direction: column; }
  .max-medium\:text-\[1rem\] { font-size: 1rem; }
  .max-medium\:text-\[1\.25rem\] { font-size: 1.25rem; }
}
@media (min-width: 768px) {
  .medium\:justify-between { justify-content: space-between; }
  .medium\:items-center { align-items: center; }
  .medium\:w-3\/4 { width: 75%; }
  .medium\:w-3\/5 { width: 60%; }
}
/* Custom typography utilities */
.af-p24 { font-size: 24px; line-height: 1.2; }
.af-p27 { font-size: 27px; line-height: 1.2; }
/* Custom color utilities */
.text-th-orange-light { color: #ffa500; }
.text-th-orange { color: #ff8c00; }
.bg-th-orange-light { background-color: #ffa500; }
.bg-th-orange { background-color: #ff8c00; }
.border-th-blue { border-color: #3b82f6; }
.border-th-blue-light { border-color: #93c5fd; }
.bg-th-blue { background-color: #3b82f6; }
.text-black { color: #000000; }
.bg-white { background-color: #ffffff; }
/* Custom border radius utilities */
.rounded-\[10px\] { border-radius: 10px; }
.rounded-\[50px\] { border-radius: 50px; }
/* Custom flex utilities */
.shrink-0 { flex-shrink: 0; }
.grow { flex-grow: 1; }
/* Custom cursor utilities */
.cursor-pointer { cursor: pointer; }
/* Custom mask utilities */
.cs-mask {
  -webkit-mask: var(--mask-img) no-repeat center;
  mask: var(--mask-img) no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
/* Custom component utilities */
.aff-number-field { position: relative; }
/* Public booking form components */
.booking-form {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  padding: 24px;
  margin-bottom: 24px;
}
.booking-form-header {
  margin-bottom: 24px;
  text-align: center;
}
.booking-form-title {
  font-size: 24px;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 8px 0;
}
.booking-form-subtitle {
  font-size: 16px;
  color: #6b7280;
  margin: 0;
}
.booking-form-section {
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid #e5e7eb;
}
.booking-form-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.booking-form-section-title {
  font-size: 18px;
  font-weight: 600;
  color: #374151;
  margin: 0 0 16px 0;
}
.booking-form-group {
  margin-bottom: 20px;
}
.booking-form-group:last-child {
  margin-bottom: 0;
}
.booking-form-label {
  display: block;
  font-weight: 500;
  color: #374151;
  margin-bottom: 6px;
  font-size: 14px;
}
.booking-form-label-required::after {
  content: " *";
  color: #ef4444;
}
.booking-form-input {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 16px;
  line-height: 1.5;
  background-color: #fff;
  color: #1f2937;
  transition: all 0.2s ease-in-out;
}
.booking-form-input:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.booking-form-input:invalid {
  border-color: #ef4444;
}
.booking-form-input:disabled {
  background-color: #f9fafb;
  color: #6b7280;
  cursor: not-allowed;
}
.booking-form-textarea {
  min-height: 100px;
  resize: vertical;
}
.booking-form-select {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3E%3Cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px 12px;
  padding-right: 40px;
}
.booking-form-help {
  font-size: 14px;
  color: #6b7280;
  margin-top: 6px;
}
.booking-form-error {
  color: #ef4444;
  font-size: 14px;
  margin-top: 6px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.booking-form-error::before {
  content: "⚠";
  font-size: 12px;
}
.booking-form-success {
  color: #10b981;
  font-size: 14px;
  margin-top: 6px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.booking-form-success::before {
  content: "✓";
  font-size: 12px;
}
/* Booking form layout */
.booking-form-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-bottom: 20px;
}
@media (min-width: 640px) {
  .booking-form-row-2 {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 768px) {
  .booking-form-row-3 {
    grid-template-columns: 1fr 1fr 1fr;
  }
}
/* Booking form buttons */
.booking-form-actions {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid #e5e7eb;
}
.booking-form-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  min-height: 48px;
}
.booking-form-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.booking-form-btn-primary {
  background-color: #2563eb;
  color: #fff;
  border-color: #2563eb;
}
.booking-form-btn-primary:hover:not(:disabled) {
  background-color: #1d4ed8;
  border-color: #1d4ed8;
}
.booking-form-btn-secondary {
  background-color: #fff;
  color: #374151;
  border-color: #d1d5db;
}
.booking-form-btn-secondary:hover:not(:disabled) {
  background-color: #f9fafb;
  border-color: #9ca3af;
}
.booking-form-btn-danger {
  background-color: #ef4444;
  color: #fff;
  border-color: #ef4444;
}
.booking-form-btn-danger:hover:not(:disabled) {
  background-color: #dc2626;
  border-color: #dc2626;
}
/* Booking form loading state */
.booking-form-loading {
  position: relative;
  pointer-events: none;
}
.booking-form-loading::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(255, 255, 255, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
}
.booking-form-loading::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 32px;
  height: 32px;
  margin: -16px 0 0 -16px;
  border: 3px solid #e5e7eb;
  border-top-color: #2563eb;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  z-index: 11;
}
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* Button disabled states */
.cs-form-button-next:disabled,
.cs-form-button-next.is-disabled,
.cs-form-button-submit.is-disabled,
.cs-form-button-submit:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
.cs-form-button-prev:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
/* Button loading states */
.cs-form-button-next.loading::after {
  display: none;
}
.cs-form-button-next.loading::before {
  content: "";
  transition-property: transform;
  position: absolute;
  width: 2rem;
  height: 2rem;
  top: 18px;
  border: 4px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  border-top-color: #fff;
  vertical-align: middle;
  -webkit-mask-image: none;
  mask-image: none;
  background-color: transparent;
  right: 1rem;
  left: unset;
  transform-origin: center;
  animation: spin 1s linear infinite;
}
.cs-form-button-prev.loading::after {
  display: none;
}
.cs-form-button-prev.loading::before {
  content: "";
  transition-property: transform;
  position: absolute;
  width: 2rem;
  height: 2rem;
  top: 11px;
  border: 4px solid #ee7013;
  border-radius: 50%;
  border-top-color: rgba(238, 112, 19, 0.2588235294);
  vertical-align: middle;
  -webkit-mask-image: none;
  mask-image: none;
  background-color: transparent;
  right: unset;
  left: 1rem;
  transform-origin: center;
  animation: spin 1s linear infinite;
}
/* Booking form validation states */
.booking-form-group-error .booking-form-input {
  border-color: #ef4444;
}
.booking-form-group-error .booking-form-input:focus {
  border-color: #ef4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}
.booking-form-group-success .booking-form-input {
  border-color: #10b981;
}
.booking-form-group-success .booking-form-input:focus {
  border-color: #10b981;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
}
/* Summary icon specific styles */
.summary-icon {
  /* Use existing ACF Flowform classes */
  display: flex;
  gap: 20px;
  align-items: center;
  flex-shrink: 0;
}
.summary-icon.current {
  background-color: #fef3e2;
  border-radius: 50px;
}
.summary-icon.available {
  display: flex;
  position: relative;
  flex-shrink: 0;
}
.summary-icon.disabled {
  flex-shrink: 0;
}
/* Icon container styles */
.summary-icon-container {
  flex-shrink: 0;
  width: 85px;
  height: 85px;
  border-radius: 50%;
  border: 8px solid;
  display: flex;
  align-items: center;
  justify-content: center;
}
.summary-icon-container.current {
  border-color: white;
  background-color: white;
  box-shadow: 0 0 20px #ee70136b;
}
.summary-icon-container.available {
  border-color: black;
  background-color: black;
}
.summary-icon-container.disabled {
  border-color: #e5e7eb;
  background-color: white;
}
/* Icon mask styles */
.summary-icon-mask {
  width: 40px;
  height: 40px;
  -webkit-mask: var(--mask-img) no-repeat center;
  mask: var(--mask-img) no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.summary-icon-mask.current {
  background-color: #f97316;
}
.summary-icon-mask.available {
  background-color: white;
}
.summary-icon-mask.disabled {
  background-color: #9ca3af;
}
/* Summary icon hover effects */
.summary-icon-container:hover {
  transform: scale(1.05);
  transition: transform 0.2s ease-in-out;
}
.summary-icon-container:active {
  transform: scale(0.95);
}
/* Summary icon accessibility */
.summary-icon-container:focus {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}
/* Responsive booking form */
@media (max-width: 640px) {
  .booking-form {
    padding: 16px;
    margin: 0 -16px 24px -16px;
    border-radius: 0;
  }

  .booking-form-actions {
    flex-direction: column;
  }

  .booking-form-btn {
    width: 100%;
  }

  /* Mobile summary icon adjustments */
  .summary-icon-container {
    width: 70px;
    height: 70px;
  }

  .summary-icon-mask {
    width: 35px;
    height: 35px;
  }
}
/* Button icon styles */
.button-icon {
  position: absolute;
  width: 22px !important;
  height: 22px !important;
  background-color: white;
  flex-shrink: 0;
  right: 25px;
}
/* Public datepicker components */
.booking-datepicker {
  position: relative;
  display: inline-block;
  width: 100%;
}
.booking-datepicker-input {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 16px;
  line-height: 1.5;
  background-color: #fff;
  color: #1f2937;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}
.booking-datepicker-input:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.booking-datepicker-input:disabled {
  background-color: #f9fafb;
  color: #6b7280;
  cursor: not-allowed;
}
.booking-datepicker-calendar {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  margin-top: 4px;
  overflow: hidden;
}
.booking-datepicker-calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px;
  background-color: #f9fafb;
  border-bottom: 1px solid #e5e7eb;
}
.booking-datepicker-calendar-title {
  font-size: 16px;
  font-weight: 600;
  color: #1f2937;
  margin: 0;
}
.booking-datepicker-calendar-nav {
  display: flex;
  gap: 8px;
}
.booking-datepicker-calendar-nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid #d1d5db;
  background: #fff;
  color: #374151;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}
.booking-datepicker-calendar-nav-btn:hover {
  background-color: #f3f4f6;
  border-color: #9ca3af;
}
.booking-datepicker-calendar-nav-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.booking-datepicker-calendar-body {
  padding: 16px;
}
.booking-datepicker-calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 8px;
}
.booking-datepicker-calendar-weekday {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  font-size: 12px;
  font-weight: 500;
  color: #6b7280;
  text-transform: uppercase;
}
.booking-datepicker-calendar-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.booking-datepicker-calendar-day {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  font-size: 14px;
  color: #374151;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  position: relative;
}
.booking-datepicker-calendar-day:hover {
  background-color: #f3f4f6;
}
.booking-datepicker-calendar-day.selected {
  background-color: #2563eb;
  color: #fff;
}
.booking-datepicker-calendar-day.today {
  background-color: #dbeafe;
  color: #1d4ed8;
  font-weight: 600;
}
.booking-datepicker-calendar-day.today.selected {
  background-color: #2563eb;
  color: #fff;
}
.booking-datepicker-calendar-day.disabled {
  color: #d1d5db;
  cursor: not-allowed;
}
.booking-datepicker-calendar-day.disabled:hover {
  background-color: transparent;
}
.booking-datepicker-calendar-day.other-month {
  color: #9ca3af;
}
.booking-datepicker-calendar-day.other-month:hover {
  background-color: #f9fafb;
}
/* Datepicker animations */
.booking-datepicker-calendar-enter {
  opacity: 0;
  transform: translateY(-8px);
}
.booking-datepicker-calendar-enter-active {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.2s ease-out, transform 0.2s ease-out;
}
.booking-datepicker-calendar-exit {
  opacity: 1;
  transform: translateY(0);
}
.booking-datepicker-calendar-exit-active {
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.15s ease-in, transform 0.15s ease-in;
}
/* Datepicker range selection */
.booking-datepicker-calendar-day.range-start {
  background-color: #2563eb;
  color: #fff;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}
.booking-datepicker-calendar-day.range-end {
  background-color: #2563eb;
  color: #fff;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}
.booking-datepicker-calendar-day.range-middle {
  background-color: #dbeafe;
  color: #1d4ed8;
}
.booking-datepicker-calendar-day.range-start.range-end {
  border-radius: 6px;
}
/* Datepicker footer */
.booking-datepicker-calendar-footer {
  padding: 12px 16px;
  background-color: #f9fafb;
  border-top: 1px solid #e5e7eb;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.booking-datepicker-calendar-actions {
  display: flex;
  gap: 8px;
}
.booking-datepicker-calendar-btn {
  padding: 6px 12px;
  border: 1px solid #d1d5db;
  background: #fff;
  color: #374151;
  border-radius: 4px;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}
.booking-datepicker-calendar-btn:hover {
  background-color: #f3f4f6;
  border-color: #9ca3af;
}
.booking-datepicker-calendar-btn-primary {
  background-color: #2563eb;
  color: #fff;
  border-color: #2563eb;
}
.booking-datepicker-calendar-btn-primary:hover {
  background-color: #1d4ed8;
  border-color: #1d4ed8;
}
/* Responsive datepicker */
@media (max-width: 640px) {
  .booking-datepicker-calendar {
    left: -16px;
    right: -16px;
    border-radius: 0;
    border-left: none;
    border-right: none;
  }
  
  .booking-datepicker-calendar-header {
    padding: 12px 16px;
  }
  
  .booking-datepicker-calendar-body {
    padding: 12px 16px;
  }
  
  .booking-datepicker-calendar-day {
    height: 40px;
    font-size: 16px;
  }
  
  .booking-datepicker-calendar-weekday {
    height: 40px;
    font-size: 14px;
  }
}
/* Note: Preline/Vanilla Calendar (.vc-*) styles are now in assets/css/preline/datepicker.css */
/* Custom Timepicker Styles - matching DatePicker design */
/* Flatpickr time picker container */
.flatpickr-calendar.noCalendar {
  background: white !important;
  border-radius: 12px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
  border: 1px solid #e5e7eb;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  padding: 20px 24px;
  width: auto;
  min-width: 280px;
  margin-top: 8px;
}
/* Time container */
.flatpickr-time {
  border: none !important;
  padding: 0 !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 8px !important;
  height: auto !important;
  max-height: none !important;
}
/* Time wrapper */
.flatpickr-time .flatpickr-time-wrapper {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  height: auto !important;
}
/* Number input wrapper - grid layout: input + stacked arrows */
.flatpickr-time .numInputWrapper {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 60px 28px !important;
  grid-template-rows: 28px 28px !important;
  -moz-column-gap: 4px !important;
       column-gap: 4px !important;
  row-gap: 0 !important;
  width: auto !important;
  height: auto !important;
  flex-shrink: 0 !important;
}
/* Input styling - spans both rows */
.flatpickr-time .numInputWrapper .numInput {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
  width: 60px !important;
  height: 56px !important;
}
/* Hour and Minute inputs */
.flatpickr-time .flatpickr-hour,
.flatpickr-time .flatpickr-minute {
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #1f2937 !important;
  background: #f9fafb !important;
  border: 2px solid #e5e7eb !important;
  border-radius: 8px !important;
  padding: 8px 12px !important;
  width: 60px !important;
  height: 56px !important;
  text-align: center !important;
  transition: all 0.2s ease !important;
  box-shadow: none !important;
  line-height: 1.2 !important;
}
.flatpickr-time .flatpickr-hour:hover,
.flatpickr-time .flatpickr-minute:hover {
  border-color: #ff8c00 !important;
  background: #fff7ed !important;
}
.flatpickr-time .flatpickr-hour:focus,
.flatpickr-time .flatpickr-minute:focus {
  border-color: #ff8c00 !important;
  background: white !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(255, 140, 0, 0.1) !important;
}
/* Time separator (colon) */
.flatpickr-time .flatpickr-time-separator {
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #6b7280 !important;
  margin: 0 4px !important;
  align-self: center !important;
  padding-top: 0 !important;
}
/* Arrow buttons - stacked in right grid column */
.flatpickr-time .arrowUp,
.flatpickr-time .arrowDown {
  width: 28px !important;
  height: 28px !important;
  border-radius: 6px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #ff8c00 !important;
  background: white !important;
  border: 2px solid #e5e7eb !important;
  transition: all 0.2s ease !important;
  cursor: pointer !important;
  position: relative !important;
  padding: 0 !important;
  line-height: 1 !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.flatpickr-time .arrowUp {
  grid-column: 2 !important;
  grid-row: 1 !important;
  margin-bottom: 0px !important;
}
.flatpickr-time .arrowDown {
  grid-column: 2 !important;
  grid-row: 1 !important;
  margin-top: 13px !important;
}
.flatpickr-time .arrowUp:hover,
.flatpickr-time .arrowDown:hover {
  background-color: #fff7ed !important;
  border-color: #ff8c00 !important;
}
.flatpickr-time .arrowUp:active,
.flatpickr-time .arrowDown:active {
  background-color: #ff8c00 !important;
  color: white !important;
}
/* Arrow icons */
.flatpickr-time .arrowUp::after {
  /* content: "▲" !important; */
  font-size: 10px !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  color: inherit !important;
}
.flatpickr-time .arrowDown::after {
  /* content: "▼" !important; */
  font-size: 10px !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  color: inherit !important;
}
/* Hide default SVG arrows */
.flatpickr-time .arrowUp svg,
.flatpickr-time .arrowDown svg {
  display: none !important;
}
.flatpickr-time .arrowUp *:not(::after),
.flatpickr-time .arrowDown *:not(::after) {
  display: none !important;
}
/* Remove default spinner buttons from number inputs */
.flatpickr-time input[type="number"]::-webkit-outer-spin-button,
.flatpickr-time input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
  display: none !important;
}
.flatpickr-time input[type="number"] {
  -webkit-appearance: textfield !important;
          appearance: textfield !important;
  -moz-appearance: textfield !important;
}
/* Make sure the calendar is visible */
.flatpickr-calendar.open,
.flatpickr-calendar.inline {
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
}
/* Ensure proper stacking */
.flatpickr-calendar {
  z-index: 9999 !important;
}
/* Fix for hover background */
.numInputWrapper:hover {
  background-color: transparent !important;
}
/* Time picker action buttons container */
.flatpickr-time-buttons {
  display: flex !important;
  gap: 8px !important;
  margin-top: 16px !important;
  padding-top: 16px !important;
  border-top: 1px solid #e5e7eb !important;
  width: 100% !important;
}
/* Base button styles */
.flatpickr-time-btn {
  flex: 1 !important;
  padding: 10px 16px !important;
  border: 2px solid transparent !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  text-align: center !important;
  line-height: 1.2 !important;
  font-family: inherit !important;
}
/* Now button - secondary style */
.flatpickr-time-btn-now {
  background: #f9fafb !important;
  color: #374151 !important;
  border-color: #e5e7eb !important;
}
.flatpickr-time-btn-now:hover {
  background: #fff7ed !important;
  border-color: #ff8c00 !important;
  color: #ff8c00 !important;
}
.flatpickr-time-btn-now:active {
  background: #ffedd5 !important;
}
/* Select button - primary style (orange theme) */
.flatpickr-time-btn-select {
  background: #ff8c00 !important;
  color: white !important;
  border-color: #ff8c00 !important;
}
.flatpickr-time-btn-select:hover {
  background: #f97316 !important;
  border-color: #f97316 !important;
}
.flatpickr-time-btn-select:active {
  background: #ea580c !important;
  border-color: #ea580c !important;
}
/* Responsive adjustments */
@media (max-width: 640px) {
  .flatpickr-calendar.noCalendar {
    min-width: 280px !important;
    padding: 16px !important;
  }

  .flatpickr-time .flatpickr-hour,
  .flatpickr-time .flatpickr-minute {
    font-size: 16px !important;
    width: 55px !important;
    padding: 6px 10px !important;
  }

  .flatpickr-time .flatpickr-time-separator {
    font-size: 16px !important;
    padding-top: 0 !important;
    margin: 0 3px !important;
  }

  .flatpickr-time .arrowUp,
  .flatpickr-time .arrowDown {
    width: 24px !important;
    height: 24px !important;
  }

  .flatpickr-time .arrowUp::after,
  .flatpickr-time .arrowDown::after {
    font-size: 8px !important;
  }

  .flatpickr-time-buttons {
    margin-top: 12px !important;
    padding-top: 12px !important;
  }

  .flatpickr-time-btn {
    padding: 8px 12px !important;
    font-size: 13px !important;
  }
}
/* Public Google Maps components */
.booking-google-map {
  position: relative;
  width: 100%;
  height: 400px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}
.booking-google-map-loading {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
}
.booking-google-map-loading-spinner {
  width: 32px;
  height: 32px;
  border: 3px solid #e5e7eb;
  border-top-color: #2563eb;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.booking-google-map-error {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #fef2f2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 10;
  padding: 20px;
  text-align: center;
}
.booking-google-map-error-icon {
  width: 48px;
  height: 48px;
  color: #ef4444;
  margin-bottom: 12px;
}
.booking-google-map-error-title {
  font-size: 16px;
  font-weight: 600;
  color: #dc2626;
  margin: 0 0 8px 0;
}
.booking-google-map-error-message {
  font-size: 14px;
  color: #991b1b;
  margin: 0;
}
.booking-google-map-container {
  width: 100%;
  height: 100%;
  position: relative;
}
.booking-google-map-controls {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.booking-google-map-control {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.booking-google-map-control:hover {
  background-color: #f9fafb;
  border-color: #9ca3af;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.booking-google-map-control:active {
  transform: translateY(1px);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.booking-google-map-control-icon {
  width: 20px;
  height: 20px;
  color: #374151;
}
.booking-google-map-search {
  position: absolute;
  top: 16px;
  left: 16px;
  right: 16px;
  z-index: 20;
  max-width: 300px;
}
.booking-google-map-search-input {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 14px;
  background: #fff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transition: all 0.2s ease-in-out;
}
.booking-google-map-search-input:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.booking-google-map-search-suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #d1d5db;
  border-top: none;
  border-radius: 0 0 6px 6px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  z-index: 30;
  max-height: 200px;
  overflow-y: auto;
}
.booking-google-map-search-suggestion {
  padding: 12px 16px;
  cursor: pointer;
  transition: background-color 0.2s ease-in-out;
  border-bottom: 1px solid #f3f4f6;
}
.booking-google-map-search-suggestion:hover {
  background-color: #f9fafb;
}
.booking-google-map-search-suggestion:last-child {
  border-bottom: none;
}
.booking-google-map-search-suggestion-title {
  font-size: 14px;
  font-weight: 500;
  color: #1f2937;
  margin: 0 0 2px 0;
}
.booking-google-map-search-suggestion-address {
  font-size: 12px;
  color: #6b7280;
  margin: 0;
}
.booking-google-map-marker {
  position: absolute;
  z-index: 15;
  transform: translate(-50%, -100%);
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}
.booking-google-map-marker:hover {
  transform: translate(-50%, -100%) scale(1.1);
}
.booking-google-map-marker-icon {
  width: 32px;
  height: 32px;
  color: #2563eb;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}
.booking-google-map-marker-selected .booking-google-map-marker-icon {
  color: #dc2626;
  transform: scale(1.2);
}
.booking-google-map-info-window {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  padding: 16px;
  max-width: 250px;
}
.booking-google-map-info-window-title {
  font-size: 16px;
  font-weight: 600;
  color: #1f2937;
  margin: 0 0 8px 0;
}
.booking-google-map-info-window-address {
  font-size: 14px;
  color: #6b7280;
  margin: 0 0 12px 0;
}
.booking-google-map-info-window-actions {
  display: flex;
  gap: 8px;
}
.booking-google-map-info-window-btn {
  padding: 6px 12px;
  border: 1px solid #d1d5db;
  background: #fff;
  color: #374151;
  border-radius: 4px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}
.booking-google-map-info-window-btn:hover {
  background-color: #f3f4f6;
  border-color: #9ca3af;
}
.booking-google-map-info-window-btn-primary {
  background-color: #2563eb;
  color: #fff;
  border-color: #2563eb;
}
.booking-google-map-info-window-btn-primary:hover {
  background-color: #1d4ed8;
  border-color: #1d4ed8;
}
/* Map height variants */
.booking-google-map-sm {
  height: 200px;
}
.booking-google-map-md {
  height: 400px;
}
.booking-google-map-lg {
  height: 600px;
}
.booking-google-map-xl {
  height: 800px;
}
/* Responsive Google Maps */
@media (max-width: 768px) {
  .booking-google-map-controls {
    top: 12px;
    right: 12px;
  }
  
  .booking-google-map-control {
    width: 36px;
    height: 36px;
  }
  
  .booking-google-map-control-icon {
    width: 18px;
    height: 18px;
  }
  
  .booking-google-map-search {
    top: 12px;
    left: 12px;
    right: 12px;
  }
  
  .booking-google-map-info-window {
    max-width: 200px;
    padding: 12px;
  }
  
  .booking-google-map-info-window-title {
    font-size: 14px;
  }
  
  .booking-google-map-info-window-address {
    font-size: 12px;
  }
}
@media (max-width: 640px) {
  .booking-google-map {
    height: 300px;
    border-radius: 0;
    margin: 0 -16px;
  }
  
  .booking-google-map-controls {
    top: 8px;
    right: 8px;
  }
  
  .booking-google-map-search {
    top: 8px;
    left: 8px;
    right: 8px;
  }
}
/* Public-specific utility classes */
/* Booking color scheme */
.booking-primary { color: #2563eb; }
.booking-primary-bg { background-color: #2563eb; }
.booking-primary-border { border-color: #2563eb; }
.booking-secondary { color: #1d4ed8; }
.booking-secondary-bg { background-color: #1d4ed8; }
.booking-secondary-border { border-color: #1d4ed8; }
.booking-success { color: #10b981; }
.booking-success-bg { background-color: #10b981; }
.booking-success-border { border-color: #10b981; }
.booking-warning { color: #f59e0b; }
.booking-warning-bg { background-color: #f59e0b; }
.booking-warning-border { border-color: #f59e0b; }
.booking-error { color: #ef4444; }
.booking-error-bg { background-color: #ef4444; }
.booking-error-border { border-color: #ef4444; }
.booking-info { color: #3b82f6; }
.booking-info-bg { background-color: #3b82f6; }
.booking-info-border { border-color: #3b82f6; }
/* Booking spacing utilities */
.booking-spacing-xs { margin: 4px; }
.booking-spacing-sm { margin: 8px; }
.booking-spacing-md { margin: 16px; }
.booking-spacing-lg { margin: 24px; }
.booking-spacing-xl { margin: 32px; }
.booking-padding-xs { padding: 4px; }
.booking-padding-sm { padding: 8px; }
.booking-padding-md { padding: 16px; }
.booking-padding-lg { padding: 24px; }
.booking-padding-xl { padding: 32px; }
/* Booking typography utilities */
.booking-text-xs { font-size: 12px; line-height: 1.4; }
.booking-text-sm { font-size: 14px; line-height: 1.5; }
.booking-text-base { font-size: 16px; line-height: 1.6; }
.booking-text-lg { font-size: 18px; line-height: 1.6; }
.booking-text-xl { font-size: 20px; line-height: 1.5; }
.booking-text-2xl { font-size: 24px; line-height: 1.4; }
.booking-font-normal { font-weight: 400; }
.booking-font-medium { font-weight: 500; }
.booking-font-semibold { font-weight: 600; }
.booking-font-bold { font-weight: 700; }
/* Booking border utilities */
.booking-border { border: 1px solid #d1d5db; }
.booking-border-t { border-top: 1px solid #d1d5db; }
.booking-border-r { border-right: 1px solid #d1d5db; }
.booking-border-b { border-bottom: 1px solid #d1d5db; }
.booking-border-l { border-left: 1px solid #d1d5db; }
.booking-border-light { border-color: #f3f4f6; }
.booking-border-medium { border-color: #d1d5db; }
.booking-border-dark { border-color: #9ca3af; }
/* Booking background utilities */
.booking-bg-white { background-color: #fff; }
.booking-bg-light { background-color: #f9fafb; }
.booking-bg-medium { background-color: #f3f4f6; }
.booking-bg-dark { background-color: #1f2937; }
/* Booking shadow utilities */
.booking-shadow-sm { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); }
.booking-shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); }
.booking-shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); }
.booking-shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1); }
/* Booking focus utilities */
.booking-focus-ring:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.booking-focus-ring-inset:focus {
  outline: none;
  box-shadow: inset 0 0 0 3px rgba(37, 99, 235, 0.1);
}
/* Booking transition utilities */
.booking-transition { transition: all 0.2s ease-in-out; }
.booking-transition-fast { transition: all 0.1s ease-in-out; }
.booking-transition-slow { transition: all 0.3s ease-in-out; }
/* Booking hover utilities */
.booking-hover-bg:hover { background-color: #f3f4f6; }
.booking-hover-text:hover { color: #1f2937; }
.booking-hover-border:hover { border-color: #9ca3af; }
/* Booking active utilities */
.booking-active-bg:active { background-color: #e5e7eb; }
.booking-active-text:active { color: #111827; }
.booking-active-border:active { border-color: #6b7280; }
/* Booking disabled utilities */
.booking-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
/* Booking animation utilities */
.booking-animate-fade-in {
  animation: fadeIn 0.3s ease-in-out;
}
.booking-animate-slide-up {
  animation: slideUp 0.3s ease-out;
}
.booking-animate-bounce-in {
  animation: bounceIn 0.5s ease-out;
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes slideUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
@keyframes bounceIn {
  0% {
    transform: scale(0.3);
    opacity: 0;
  }
  50% {
    transform: scale(1.05);
  }
  70% {
    transform: scale(0.9);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
/* Booking responsive utilities */
@media (max-width: 640px) {
  .booking-mobile-hidden { display: none; }
  .booking-mobile-block { display: block; }
  .booking-mobile-flex { display: flex; }
  .booking-mobile-grid { display: grid; }
  
  .booking-mobile-text-xs { font-size: 12px; }
  .booking-mobile-text-sm { font-size: 14px; }
  .booking-mobile-text-base { font-size: 16px; }
  
  .booking-mobile-padding-sm { padding: 8px; }
  .booking-mobile-padding-md { padding: 16px; }
  .booking-mobile-padding-lg { padding: 24px; }
}
@media (min-width: 641px) {
  .booking-desktop-hidden { display: none; }
  .booking-desktop-block { display: block; }
  .booking-desktop-flex { display: flex; }
  .booking-desktop-grid { display: grid; }
}
@media (min-width: 768px) {
  .booking-tablet-hidden { display: none; }
  .booking-tablet-block { display: block; }
  .booking-tablet-flex { display: flex; }
  .booking-tablet-grid { display: grid; }
}
@media (min-width: 1024px) {
  .booking-laptop-hidden { display: none; }
  .booking-laptop-block { display: block; }
  .booking-laptop-flex { display: flex; }
  .booking-laptop-grid { display: grid; }
}
/* Booking print utilities */
@media print {
  .booking-print-hidden { display: none !important; }
  .booking-print-visible { display: block !important; }
  .booking-print-text-black { color: #000 !important; }
  .booking-print-bg-white { background-color: #fff !important; }
}
/* Wpify main styles */
.sub-tabs-container {
    margin: 20px 0;
    border: 1px solid #e1e5e9;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}
.sub-tabs-nav {
    display: flex;
    background: #f8f9fa;
    border-bottom: 1px solid #e1e5e9;
}
.sub-tab-button {
    flex: 1;
    padding: 12px 16px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: #6c757d;
    transition: all 0.3s ease;
    position: relative;
    text-align: center;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.sub-tab-button:hover {
    background: #e9ecef;
    color: #495057;
}
.sub-tab-button.active {
    background: #fff;
    color: #007cba;
    border-bottom: 2px solid #007cba;
}
.sub-tab-button.active::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 2px;
    background: #007cba;
}
/* Hide all wpifycf-field__wrapper with data-tab by default */
.wpifycf-field__wrapper[data-tab] {
    display: none;
    animation: fadeIn 0.3s ease-in-out;
}
/* Show only active wpifycf-field__wrapper */
.wpifycf-field__wrapper[data-tab].active {
    display: block;
}
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* Responsive design */
@media (max-width: 768px) {
    .sub-tabs-nav {
        flex-direction: column;
    }
    
    .sub-tab-button {
        border-bottom: 1px solid #e1e5e9;
        border-radius: 0;
    }
    
    .sub-tab-button.active {
        border-bottom: 2px solid #007cba;
    }
}
/* ============================================
   Wpify Custom Fields - Vlastní styly
   ============================================
   
   Tento soubor obsahuje vlastní styling pro wpify
   custom fields odpovídající designu booking formu.
   
   Styly jsou organizované podle field typů.
   ============================================ */
/* ============================================
   CSS Proměnné - Bartender Theme Colors
   ============================================ */
:root {
  /* Barvy z Bartender tématu */
  --wpifycf-primary: #ee7013; /* th-orange */
  --wpifycf-primary-light: #ffa25e; /* th-orange-light */
  --wpifycf-primary-gradient-start: #ee7013; /* th-orange */
  --wpifycf-primary-gradient-end: #ff2a6b; /* th-pink */
  --wpifycf-accent: #2b76ed; /* th-blue */
  --wpifycf-accent-light: #cfe2ff; /* th-blue-light */
  
  /* Šedé tóny */
  --wpifycf-border: #e9f1fd; /* th-grey-ultralight */
  --wpifycf-border-input: #2b76ed; /* th-blue pro inputy */
  --wpifycf-bg-light: #f5f5f5; /* th-grey-lighter */
  --wpifycf-bg-ultralight: #e9f1fd; /* th-grey-ultralight */
  --wpifycf-bg-white: #fff;
  --wpifycf-text-gray: #707070; /* th-grey */
  --wpifycf-text-dark: #000000;
  
  /* Další barvy */
  --wpifycf-success: #28a745;
  --wpifycf-error: #dc3545;
  --wpifycf-cyan: #13dbed; /* th-cyan */
  --wpifycf-yellow: #ffd736; /* th-yellow */

  /* Mezery (Bartender používá 5px kroky) */
  --wpifycf-radius-sm: 10px; /* rounded-[10px] */
  --wpifycf-radius-md: 50px; /* rounded-full pro některé elementy */
  --wpifycf-gap-sm: 10px; /* 10p */
  --wpifycf-gap-md: 15px; /* 15p */
  --wpifycf-gap-lg: 20px; /* 20p */
  --wpifycf-input-height: 55px; /* h-55p */

  /* Animace */
  --wpifycf-transition: all 0.3s ease;
}
/* ============================================
   Toggle Field (WordPress ToggleControl)
   ============================================ */
.wpifycf-field-toggle {
  display: flex;
  align-items: center;
  gap: var(--wpifycf-gap-md);
  margin-bottom: var(--wpifycf-gap-md);
}
/* Toggle container */
.wpifycf-field-toggle .components-toggle-control {
  margin: 0;
  display: inline-flex;
  align-items: center;
}
/* Track (pozadí) */
.wpifycf-field-toggle .components-toggle-control__track {
  background: #ddd !important;
  border: none !important;
  border-radius: 20px !important;
  width: 48px !important;
  height: 24px !important;
  padding: 0 !important;
  transition: var(--wpifycf-transition) !important;
  position: relative;
  cursor: pointer;
}
/* Track - checked stav */
.wpifycf-field-toggle
  .components-toggle-control
  input:checked
  + .components-toggle-control__track {
  background: linear-gradient(
    to right,
    var(--wpifycf-primary-gradient-start) 0%,
    var(--wpifycf-primary-gradient-end) 100%
  ) !important;
  box-shadow: 0 2px 8px rgba(238, 112, 19, 0.3);
}
/* Track - hover */
.wpifycf-field-toggle .components-toggle-control__track:hover {
  box-shadow: 0 0 0 2px rgba(238, 112, 19, 0.15);
}
/* Thumb (kulička) */
.wpifycf-field-toggle .components-toggle-control__thumb {
  background: white !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  position: absolute;
  top: 3px !important;
  left: 3px !important;
  transition: var(--wpifycf-transition) !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
/* Thumb - checked stav */
.wpifycf-field-toggle
  .components-toggle-control
  input:checked
  ~ .components-toggle-control__thumb {
  left: 27px !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}
/* Input element (skrytý) */
.wpifycf-field-toggle .components-toggle-control input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
/* Focus stav */
.wpifycf-field-toggle
  .components-toggle-control
  input:focus
  + .components-toggle-control__track {
  outline: none;
  box-shadow: 0 0 0 3px rgba(238, 112, 19, 0.2);
}
/* Disabled stav */
.wpifycf-field-toggle
  .components-toggle-control
  input:disabled
  + .components-toggle-control__track {
  opacity: 0.5;
  cursor: not-allowed;
}
/* Label */
.wpifycf-field-toggle .components-toggle-control__label {
  font-size: 14px;
  font-weight: 500;
  color: var(--wpifycf-text-dark);
  margin-left: var(--wpifycf-gap-sm);
  cursor: pointer;
}
/* ============================================
   Obecné field wrapper styly
   ============================================ */
.wpifycf-field__wrapper {
  margin-bottom: var(--wpifycf-gap-lg);
}
.wpifycf-field__label {
  font-size: 14px;
  font-weight: 600;
  color: var(--wpifycf-text-dark);
  margin-bottom: var(--wpifycf-gap-sm);
  display: block;
}
.wpifycf-field__description {
  font-size: 13px;
  color: var(--wpifycf-text-gray);
  margin-top: var(--wpifycf-gap-sm);
  line-height: 1.5;
}
/* ============================================
   Text Fields
   ============================================ */
.wpifycf-field-text input[type="text"],
.wpifycf-field-email input[type="email"],
.wpifycf-field-url input[type="url"],
.wpifycf-field-tel input[type="tel"],
.wpifycf-field-password input[type="password"],
.wpifycf-field-number input[type="number"],
.wpifycf-field-textarea textarea {
  border: 2px solid var(--wpifycf-border-input);
  border-radius: var(--wpifycf-radius-sm);
  padding: 0 var(--wpifycf-gap-md);
  height: var(--wpifycf-input-height);
  font-size: 16px;
  line-height: 1.5;
  color: var(--wpifycf-primary-light);
  transition: var(--wpifycf-transition);
  width: 100%;
  max-width: 100%;
  background: white;
}
.wpifycf-field-textarea textarea {
  height: auto;
  min-height: 120px;
  padding: var(--wpifycf-gap-md);
}
.wpifycf-field-text input:focus,
.wpifycf-field-email input:focus,
.wpifycf-field-url input:focus,
.wpifycf-field-tel input:focus,
.wpifycf-field-password input:focus,
.wpifycf-field-number input:focus,
.wpifycf-field-textarea textarea:focus {
  outline: none;
  border-color: var(--wpifycf-accent);
  box-shadow: 0 0 0 3px var(--wpifycf-accent-light);
}
.wpifycf-field-text input::-moz-placeholder, .wpifycf-field-email input::-moz-placeholder, .wpifycf-field-url input::-moz-placeholder, .wpifycf-field-tel input::-moz-placeholder, .wpifycf-field-password input::-moz-placeholder, .wpifycf-field-number input::-moz-placeholder, .wpifycf-field-textarea textarea::-moz-placeholder {
  color: var(--wpifycf-text-gray);
  opacity: 0.6;
}
.wpifycf-field-text input::placeholder,
.wpifycf-field-email input::placeholder,
.wpifycf-field-url input::placeholder,
.wpifycf-field-tel input::placeholder,
.wpifycf-field-password input::placeholder,
.wpifycf-field-number input::placeholder,
.wpifycf-field-textarea textarea::placeholder {
  color: var(--wpifycf-text-gray);
  opacity: 0.6;
}
/* ============================================
   Select Fields
   ============================================ */
.wpifycf-select select,
.wpifycf-field-select select {
  border: 2px solid var(--wpifycf-border-input);
  border-radius: var(--wpifycf-radius-sm);
  padding: 0 var(--wpifycf-gap-md);
  height: var(--wpifycf-input-height);
  font-size: 16px;
  color: var(--wpifycf-primary-light);
  transition: var(--wpifycf-transition);
  background-color: white;
  cursor: pointer;
}
.wpifycf-select select:focus,
.wpifycf-field-select select:focus {
  outline: none;
  border-color: var(--wpifycf-accent);
  box-shadow: 0 0 0 3px var(--wpifycf-accent-light);
}
/* ============================================
   Checkbox Fields
   ============================================ */
.wpifycf-field-checkbox input[type="checkbox"],
.wpifycf-field-multi-checkbox input[type="checkbox"] {
  width: 24px;
  height: 24px;
  border: 2px solid var(--wpifycf-border);
  border-radius: 4px;
  cursor: pointer;
  transition: var(--wpifycf-transition);
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  position: relative;
  background: white;
}
.wpifycf-field-checkbox input[type="checkbox"]:checked,
.wpifycf-field-multi-checkbox input[type="checkbox"]:checked {
  background: var(--wpifycf-accent);
  border-color: var(--wpifycf-accent);
}
.wpifycf-field-checkbox input[type="checkbox"]:checked::after,
.wpifycf-field-multi-checkbox input[type="checkbox"]:checked::after {
  content: "✓";
  position: absolute;
  color: white;
  font-size: 14px;
  font-weight: bold;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.wpifycf-field-checkbox input[type="checkbox"]:focus,
.wpifycf-field-multi-checkbox input[type="checkbox"]:focus {
  outline: none;
  box-shadow: 0 0 0 3px var(--wpifycf-accent-light);
}
/* ============================================
   Radio Fields
   ============================================ */
.wpifycf-field-radio input[type="radio"] {
  width: 32px;
  height: 32px;
  border: 2px solid var(--wpifycf-border);
  border-radius: 50%;
  cursor: pointer;
  transition: var(--wpifycf-transition);
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  position: relative;
  background: white;
}
.wpifycf-field-radio input[type="radio"]:checked {
  border-color: var(--wpifycf-primary-light);
}
.wpifycf-field-radio input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--wpifycf-primary-light);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.wpifycf-field-radio input[type="radio"]:focus {
  outline: none;
  box-shadow: 0 0 0 3px var(--wpifycf-accent-light);
}
/* ============================================
   Button Fields
   ============================================ */
.wpifycf-button {
  background: white;
  border: 2px solid var(--wpifycf-primary);
  border-radius: var(--wpifycf-radius-md);
  color: var(--wpifycf-primary);
  padding: 12px 30px;
  min-height: var(--wpifycf-input-height);
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  transition: var(--wpifycf-transition);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--wpifycf-gap-sm);
}
.wpifycf-button:hover {
  background: linear-gradient(
    to right,
    var(--wpifycf-primary-gradient-start),
    var(--wpifycf-primary-gradient-end)
  );
  color: white;
  border-color: transparent;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(238, 112, 19, 0.3);
}
.wpifycf-button:active {
  transform: translateY(0);
}
.wpifycf-button--primary {
  background: linear-gradient(
    to right,
    var(--wpifycf-primary-gradient-start),
    var(--wpifycf-primary-gradient-end)
  );
  color: white;
  border: none;
}
.wpifycf-button--primary:hover {
  box-shadow: 0 6px 16px rgba(238, 112, 19, 0.4);
  transform: translateY(-2px);
}
/* ============================================
   Field Groups
   ============================================ */
.wpifycf-field-group {
  border: 1px solid var(--wpifycf-border);
  border-radius: var(--wpifycf-radius-sm);
  padding: var(--wpifycf-gap-lg);
  background: var(--wpifycf-bg-white);
}
.wpifycf-field-multi-group__item {
  border: 1px solid var(--wpifycf-border);
  border-radius: var(--wpifycf-radius-sm);
  margin-bottom: var(--wpifycf-gap-md);
  overflow: hidden;
  transition: var(--wpifycf-transition);
}
.wpifycf-field-multi-group__item:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.wpifycf-field-multi-group__item-header {
  background: var(--wpifycf-bg-light);
  padding: var(--wpifycf-gap-md);
  border-bottom: 1px solid var(--wpifycf-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.wpifycf-field-multi-group__title {
  font-weight: 600;
  color: var(--wpifycf-text-dark);
  cursor: pointer;
}
/* ============================================
   Validation States
   ============================================ */
.wpifycf-field--invalid input,
.wpifycf-field--invalid textarea,
.wpifycf-field--invalid select {
  border-color: var(--wpifycf-error) !important;
}
.wpifycf-field__error {
  color: var(--wpifycf-error);
  font-size: 13px;
  margin-top: var(--wpifycf-gap-sm);
  display: flex;
  align-items: center;
  gap: 4px;
}
.wpifycf-field__error::before {
  content: "⚠";
}
/* ============================================
   Range / Slider Fields
   ============================================ */
.wpifycf-field-range {
  display: flex;
  align-items: center;
  gap: var(--wpifycf-gap-md);
}
.wpifycf-field-range input[type="range"] {
  flex: 1;
  height: 8px;
  border-radius: 4px;
  background: var(--wpifycf-bg-light);
  outline: none;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
}
.wpifycf-field-range input[type="range"]::-webkit-slider-thumb {
  appearance: none;
  -webkit-appearance: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(
    to right,
    var(--wpifycf-primary-gradient-start),
    var(--wpifycf-primary-gradient-end)
  );
  cursor: pointer;
  border: 2px solid white;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.wpifycf-field-range input[type="range"]::-moz-range-thumb {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(
    to right,
    var(--wpifycf-primary-gradient-start),
    var(--wpifycf-primary-gradient-end)
  );
  cursor: pointer;
  border: 2px solid white;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.wpifycf-field-range__value {
  min-width: 60px;
  padding: var(--wpifycf-gap-sm) var(--wpifycf-gap-md);
  background: var(--wpifycf-bg-light);
  border: 2px solid var(--wpifycf-border);
  border-radius: var(--wpifycf-radius-sm);
  text-align: center;
  font-weight: 600;
  color: var(--wpifycf-primary-light);
}
/* ============================================
   Color Picker Fields
   ============================================ */
.wpifycf-field-color input[type="color"] {
  width: 60px;
  height: var(--wpifycf-input-height);
  border: 2px solid var(--wpifycf-border-input);
  border-radius: var(--wpifycf-radius-sm);
  cursor: pointer;
  padding: 4px;
  background: white;
}
.wpifycf-field-color input[type="color"]::-webkit-color-swatch-wrapper {
  padding: 0;
}
.wpifycf-field-color input[type="color"]::-webkit-color-swatch {
  border: none;
  border-radius: 6px;
}
/* ============================================
   Date/Time Fields
   ============================================ */
.wpifycf-field-date input[type="date"],
.wpifycf-field-time input[type="time"],
.wpifycf-field-datetime input[type="datetime-local"] {
  border: 2px solid var(--wpifycf-border-input);
  border-radius: var(--wpifycf-radius-sm);
  padding: 0 var(--wpifycf-gap-md);
  height: var(--wpifycf-input-height);
  font-size: 16px;
  color: var(--wpifycf-primary-light);
  transition: var(--wpifycf-transition);
  background: white;
  cursor: pointer;
}
.wpifycf-field-date input:focus,
.wpifycf-field-time input:focus,
.wpifycf-field-datetime input:focus {
  outline: none;
  border-color: var(--wpifycf-accent);
  box-shadow: 0 0 0 3px var(--wpifycf-accent-light);
}
/* ============================================
   File Upload Fields
   ============================================ */
.wpifycf-field-attachment__button,
.wpifycf-field-multi-attachment__button {
  background: white;
  border: 2px dashed var(--wpifycf-border);
  border-radius: var(--wpifycf-radius-sm);
  padding: var(--wpifycf-gap-lg);
  text-align: center;
  cursor: pointer;
  transition: var(--wpifycf-transition);
  color: var(--wpifycf-text-gray);
}
.wpifycf-field-attachment__button:hover,
.wpifycf-field-multi-attachment__button:hover {
  border-color: var(--wpifycf-primary);
  color: var(--wpifycf-primary);
  background: var(--wpifycf-bg-ultralight);
}
.wpifycf-attachment-item {
  border: 2px solid var(--wpifycf-border);
  border-radius: var(--wpifycf-radius-sm);
  overflow: hidden;
  transition: var(--wpifycf-transition);
}
.wpifycf-attachment-item:hover {
  border-color: var(--wpifycf-accent);
  box-shadow: 0 2px 8px rgba(43, 118, 237, 0.2);
}
/* ============================================
   WYSIWYG Editor Fields
   ============================================ */
.wpifycf-field-wysiwyg__editor {
  border: 2px solid var(--wpifycf-border-input);
  border-radius: var(--wpifycf-radius-sm);
  min-height: 200px;
  padding: var(--wpifycf-gap-md);
}
.wpifycf-field-wysiwyg__editor:focus-within {
  border-color: var(--wpifycf-accent);
  box-shadow: 0 0 0 3px var(--wpifycf-accent-light);
}
/* ============================================
   Link Fields
   ============================================ */
.wpifycf-field-link__url-input {
  display: flex;
  gap: var(--wpifycf-gap-sm);
  align-items: center;
}
.wpifycf-field-link__url-input input {
  flex: 1;
}
/* ============================================
   Post/Term Selection Fields
   ============================================ */
.wpifycf-post-preview,
.wpifycf-term-item {
  border: 2px solid var(--wpifycf-border);
  border-radius: var(--wpifycf-radius-sm);
  padding: var(--wpifycf-gap-md);
  background: white;
  transition: var(--wpifycf-transition);
}
.wpifycf-post-preview:hover,
.wpifycf-term-item:hover {
  border-color: var(--wpifycf-accent);
  box-shadow: 0 2px 8px rgba(43, 118, 237, 0.15);
}
/* ============================================
   Icon Button Styling
   ============================================ */
.wpifycf-icon-button {
  padding: 8px;
  border-radius: 50%;
  transition: var(--wpifycf-transition);
  background: transparent;
}
.wpifycf-icon-button:hover {
  background: var(--wpifycf-bg-light);
}
.wpifycf-icon-button--trash:hover {
  background: rgba(220, 53, 69, 0.1);
}
.wpifycf-icon-button--plus,
.wpifycf-icon-button--minus {
  background: var(--wpifycf-bg-light);
  border: 2px solid var(--wpifycf-accent);
  border-radius: var(--wpifycf-radius-sm);
}
.wpifycf-icon-button--plus:hover,
.wpifycf-icon-button--minus:hover {
  background: var(--wpifycf-accent);
}
.wpifycf-icon-button--plus:hover svg,
.wpifycf-icon-button--minus:hover svg {
  fill: white;
}
/* ============================================
   Responsive
   ============================================ */
@media (max-width: 768px) {
  .wpifycf-field__wrapper {
    margin-bottom: var(--wpifycf-gap-md);
  }

  .wpifycf-field-toggle {
    flex-direction: column;
    align-items: flex-start;
  }
  
  .wpifycf-field-text input[type="text"],
  .wpifycf-field-email input[type="email"],
  .wpifycf-field-url input[type="url"],
  .wpifycf-field-tel input[type="tel"],
  .wpifycf-field-password input[type="password"],
  .wpifycf-field-number input[type="number"] {
    font-size: 16px; /* Prevents zoom on iOS */
  }
}
.wpify {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
.wpify__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}
.wpify__header {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  padding: 2rem 0;
  margin-bottom: 2rem;
}
.wpify__title {
  font-size: 2rem;
  font-weight: bold;
  margin: 0;
}
/* Gutenberg Block Tabs Styling - inspired by subTabs.css */
.wpifycf-gutenberg-block {
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}
.wpifycf-gutenberg-block .nav-tab-wrapper {
    display: flex;
    background: #f8f9fa;
    border-bottom: 1px solid #e1e5e9;
    margin: 0;
    padding: 0;
}
.wpifycf-gutenberg-block .nav-tab {
    flex: 1;
    padding: 12px 16px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: #6c757d;
    transition: all 0.3s ease;
    position: relative;
    text-align: center;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    border-radius: 0;
    text-decoration: none;
    white-space: nowrap;
}
.wpifycf-gutenberg-block .nav-tab:hover {
    background: #e9ecef;
    color: #495057;
}
.wpifycf-gutenberg-block .nav-tab-active {
    background: #fff;
    color: #007cba;
    border-bottom: 2px solid #007cba;
}
.wpifycf-gutenberg-block .nav-tab-active::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 2px;
    background: #007cba;
}
.wpifycf-gutenberg-block .wpifycf-gutenberg-block__fields {
    background: #fff;
    padding: 20px;
    animation: fadeIn 0.3s ease-in-out;
}
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* Responsive design for Gutenberg tabs */
@media (max-width: 768px) {
    .wpifycf-gutenberg-block .nav-tab-wrapper {
        flex-direction: column;
    }
    
    .wpifycf-gutenberg-block .nav-tab {
        border-bottom: 1px solid #e1e5e9;
        border-radius: 0;
    }
    
    .wpifycf-gutenberg-block .nav-tab-active {
        border-bottom: 2px solid #007cba;
    }
}
/* Price Table Builder Styles */
.wpcbooking-price-table-popup {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: center;
}
.wpcbooking-price-table-popup.hidden {
    display: none;
}
.wpcbooking-price-table-popup-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
}
.wpcbooking-price-table-popup-content {
    position: relative;
    background: white;
    border-radius: 0.5rem;
    max-width: 56rem;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    z-index: 51;
}
.wpcbooking-price-table-popup-header,
.wpcbooking-price-table-popup-footer {
    display: flex;
    align-items: center;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e5e7eb;
}
.wpcbooking-price-table-popup-footer {
    justify-content: flex-end;
    gap: 0.75rem;
    border-top: 1px solid #e5e7eb;
    border-bottom: none;
}
.wpcbooking-price-table-popup-header h3 {
    flex: 1;
    margin: 0;
}
.wpcbooking-price-table-popup-body {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 1.5rem;
}
/* Custom Datepicker Styles - Updated for webpack compilation */
.vc {
  background: white !important;
  border-radius: 12px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
  border: 1px solid #e5e7eb;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  position: absolute;
  top: 100%;
  left: auto;
  width: 400px;
  min-width: 320px;
  z-index: 1000;
  margin-top: 4px;
  color: #1f2937 !important;
}
/* Ensure input container has relative positioning */
.hs-datepicker {
  position: relative;
}
/* Header styling */
.vc [data-vc="header"] {
  padding: 16px 20px 12px;
  border-bottom: 1px solid #f3f4f6;
}
/* Month/Year selector styling */
.vc [data-vc="header"] .hs-select button {
  font-weight: 600;
  color: #1f2937 !important;
  font-size: 16px;
  padding: 8px 12px;
  border-radius: 8px;
  transition: all 0.2s ease;
}
.vc [data-vc="header"] .hs-select button:hover {
  background-color: #f3f4f6;
  color: #374151 !important;
}
/* Arrow buttons */
.vc-arrow {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ff8c00 !important;
  transition: all 0.2s ease;
  border: 1px solid transparent;
  position: relative;
}
.vc-arrow:hover {
  background-color: #fff7ed;
  color: #ea580c !important;
  border-color: #ff8c00;
}
.vc-arrow svg {
  width: 16px;
  height: 16px;
  color: inherit;
}
/* Šipka vlevo (předchozí měsíc) */
.vc-arrow_prev::before {
  content: "‹";
  font-size: 24px;
  font-weight: 600;
  line-height: 1;
  color: inherit;
}
/* Šipka vpravo (další měsíc) */
.vc-arrow_next::before {
  content: "›";
  font-size: 24px;
  font-weight: 600;
  line-height: 1;
  color: inherit;
}
/* Week day headers - flexbox pro 7 sloupců */
.vc-week {
  padding: 12px 20px 8px;
  border-bottom: 1px solid #f3f4f6;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.vc-week__day {
  font-weight: 600;
  color: #6b7280 !important;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 8px 4px;
  flex: 1;
  text-align: center;
  min-width: 0;
}
/* Date grid - flexbox pro 7 sloupců */
.vc-dates {
  padding: 8px 20px 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.vc-date {
  display: flex;
  width: calc(100% / 7);
  height: 40px;
  margin: 2px 0;
  justify-content: center;
  align-items: center;
}
.vc-date__btn {
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 500;
  color: #1f2937 !important;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Current month dates */
.vc-date[data-vc-date-month="current"] .vc-date__btn:hover {
  background-color: #fff7ed;
  color: #ff8c00 !important;
}
/* Next month dates (faded) */
.vc-date[data-vc-date-month="next"] .vc-date__btn {
  color: #9ca3af !important;
}
/* Previous month dates (faded) */
.vc-date[data-vc-date-month="prev"] .vc-date__btn {
  color: #9ca3af !important;
}
/* Selected date (vybrané datum) */
.vc-date[data-vc-date-selected] .vc-date__btn {
  background-color: #ff8c00 !important;
  color: white !important;
  font-weight: 600;
}
.vc-date[data-vc-date-selected] .vc-date__btn:hover {
  background-color: #ea580c !important;
}
/* Today date (dnešní datum s outline) */
.vc-date[data-vc-date-today] .vc-date__btn {
  border: 2px solid #ff8c00;
  color: #ff8c00 !important;
  font-weight: 600;
}
.vc-date[data-vc-date-today] .vc-date__btn:hover {
  background-color: #fff7ed;
}
/* Today date když je selected */
.vc-date[data-vc-date-today][data-vc-date-selected] .vc-date__btn {
  background-color: #ff8c00 !important;
  border-color: #ff8c00;
  color: white !important;
}
/* Weekend dates */
.vc-date[data-vc-date-weekend] .vc-date__btn {
  color: #ef4444 !important;
}
.vc-date[data-vc-date-weekend] .vc-date__btn:hover {
  background-color: #fef2f2;
}
/* Disabled dates */
.vc-date[data-vc-date-disabled] .vc-date__btn {
  color: #d1d5db !important;
  cursor: not-allowed;
}
/* Dropdown styling for month/year selectors */
.hs-select-dropdown {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  background: white !important;
}
.hs-select-dropdown [data-value] {
  border-radius: 6px;
  margin: 2px;
  transition: all 0.2s ease;
  color: #1f2937 !important;
}
.hs-select-dropdown [data-value]:hover {
  background-color: #fff7ed;
}
.hs-select-dropdown [data-value].selected {
  background-color: #ff8c00;
  color: white !important;
}
/* Input field styling */
.hs-datepicker {
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  padding: 12px 16px;
  font-size: 14px;
  transition: all 0.2s ease;
  background: white;
}
.hs-datepicker:focus {
  border-color: #ff8c00;
  box-shadow: 0 0 0 3px rgba(255, 140, 0, 0.1);
  outline: none;
}
.hs-datepicker::-moz-placeholder {
  color: #9ca3af;
}
.hs-datepicker::placeholder {
  color: #9ca3af;
}
.hs-leaflet.leaflet-touch .leaflet-control-layers,
  .hs-leaflet.leaflet-touch .leaflet-bar {
    border-width: 0px;
  }
.hs-leaflet.leaflet-touch .leaflet-bar a {
    line-height: 1.5;
    background-color: rgba(255,255,255,.8);
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  }
.hs-leaflet.leaflet-touch .leaflet-bar a:first-child,
  .hs-leaflet.leaflet-touch .leaflet-bar a:last-child {
    border-radius: 8px;
  }
.hs-leaflet .leaflet-control-zoom-in,
  .hs-leaflet .leaflet-control-zoom-out {
    font-weight: 400;
    font-size: 18px;
    color: #1f2937;
    text-indent: 0px;
  }
.hs-leaflet .leaflet-bar {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
.hs-leaflet .leaflet-bar a {
    border-width: 0;
  }
.hs-leaflet .leaflet-bar a:hover,
  .hs-leaflet .leaflet-bar a:focus {
    background-color: #e5e7eb;
  }
.hs-leaflet .leaflet-popup-content-wrapper,
  .hs-leaflet .leaflet-popup-tip {
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  }
.hs-leaflet .leaflet-popup-tip {
    border-radius: 4px;
  }
.hs-leaflet.leaflet-container a.leaflet-popup-close-button {
    top: -10px;
    right: -10px;
    border-radius: 9999px;
    background-color: #f3f4f6;
    color: #1f2937;
    font-size: 14px;
    line-height: 1.6;
  }
.hs-leaflet.leaflet-container a.leaflet-popup-close-button:hover {
    background-color: #f3f4f6;
  }
.hs-leaflet-unstyled-popover .leaflet-popup-content-wrapper {
    display: flex;
  }
.hs-leaflet-unstyled-popover .leaflet-popup-content {
    padding: 0;
    margin: 0;
    background: none;
    line-height: normal;
    border-radius: 0;
    font-size: inherit;
    min-height: auto;
  }
.google-map {
  position: relative;
  overflow: hidden;
  border: 10px solid red;
}
.google-map .gm-style {
  border-radius: 10px;
}
/* Google Maps Controls Styling */
.google-map .gm-style-mtc {
  border-radius: 8px;
  overflow: hidden;
}
.google-map .gm-style-mtc button {
  background: rgba(255, 255, 255, 0.9) !important;
  border: none !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
  font-weight: 500 !important;
  color: #1f2937 !important;
  transition: all 0.2s ease !important;
}
.google-map .gm-style-mtc button:hover {
  background: #e5e7eb !important;
  color: #111827 !important;
}
.google-map .gm-style-mtc button[aria-checked="true"] {
  background: #f3f4f6 !important;
  color: #1f2937 !important;
}
/* Zoom Controls */
.google-map .gmnoprint[data-control-width="40"][data-control-height="81"] {
  border-radius: 8px;
  overflow: hidden;
}
.google-map .gmnoprint[data-control-width="40"][data-control-height="81"] button {
  background: rgba(255, 255, 255, 0.9) !important;
  border: none !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
  transition: all 0.2s ease !important;
}
.google-map .gmnoprint[data-control-width="40"][data-control-height="81"] button:hover {
  background: #e5e7eb !important;
}
.google-map .gmnoprint[data-control-width="40"][data-control-height="81"] button:focus {
  background: #d1d5db !important;
  outline: 2px solid #3b82f6;
  outline-offset: 2px;
}
/* Fullscreen Control */
.google-map .gm-fullscreen-control {
  border-radius: 8px !important;
  background: rgba(255, 255, 255, 0.9) !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
  transition: all 0.2s ease !important;
}
.google-map .gm-fullscreen-control:hover {
  background: #e5e7eb !important;
}
/* Street View Control */
.google-map .gm-svpc {
  border-radius: 8px !important;
  background: rgba(255, 255, 255, 0.9) !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
  transition: all 0.2s ease !important;
}
.google-map .gm-svpc:hover {
  background: #e5e7eb !important;
}
/* Camera Control */
.google-map gmp-internal-camera-control button {
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.9) !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
  transition: all 0.2s ease !important;
}
.google-map gmp-internal-camera-control button:hover {
  background: #e5e7eb !important;
}
.google-map gmp-internal-camera-control menu button {
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.9) !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
  transition: all 0.2s ease !important;
}
.google-map gmp-internal-camera-control menu button:hover {
  background: #e5e7eb !important;
}
/* Map Type Controls Dropdown */
.google-map .gm-style-mtc ul {
  border-radius: 8px !important;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important;
  border: none !important;
}
.google-map .gm-style-mtc ul li {
  border-radius: 4px !important;
  margin: 2px !important;
  transition: all 0.2s ease !important;
}
.google-map .gm-style-mtc ul li:hover {
  background: #f3f4f6 !important;
}
/* Attribution */
.google-map .gm-style-cc {
  background: rgba(245, 245, 245, 0.9) !important;
  border-radius: 4px !important;
}
.google-map .gm-style-cc button,
.google-map .gm-style-cc a {
  color: #374151 !important;
  transition: color 0.2s ease !important;
}
.google-map .gm-style-cc button:hover,
.google-map .gm-style-cc a:hover {
  color: #111827 !important;
}
/* Google Logo */
.google-map .gmnoprint a[href*="maps.google.com"] {
  border-radius: 4px !important;
  transition: all 0.2s ease !important;
}
.google-map .gmnoprint a[href*="maps.google.com"]:hover {
  background: rgba(255, 255, 255, 0.1) !important;
}
/* Scale Control */
.google-map .gm-style-cc[aria-describedby] {
  border-radius: 4px !important;
  background: rgba(245, 245, 245, 0.9) !important;
}
/* Custom marker styling if needed */
.google-map .gm-style img[src*="spotlight-poi"] {
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
}
/* Loading state */
.google-map.loading {
  background: #f9fafb;
  display: flex;
  align-items: center;
  justify-content: center;
}
.google-map.loading::before {
  content: "Načítání mapy...";
  color: #6b7280;
  font-size: 14px;
}
/* Responsive adjustments */
@media (max-width: 768px) {
  .google-map .gm-style-mtc button {
    font-size: 16px !important;
    padding: 0 12px !important;
  }

  .google-map .gmnoprint[data-control-width="40"][data-control-height="81"] {
    margin: 8px !important;
  }

  .google-map .gm-fullscreen-control,
  .google-map .gm-svpc {
    margin: 8px !important;
  }
}
/* Import wpify modules */
*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
/* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */
/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/
*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}
::before,
::after {
  --tw-content: '';
}
/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/
html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}
/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/
body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}
/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/
hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}
/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/
abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
/*
Remove the default font size and weight for headings.
*/
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}
/*
Reset links to optimize for opt-in styling instead of opt-out.
*/
a {
  color: inherit;
  text-decoration: inherit;
}
/*
Add the correct font weight in Edge and Safari.
*/
b,
strong {
  font-weight: bolder;
}
/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}
/*
Add the correct font size in all browsers.
*/
small {
  font-size: 80%;
}
/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/
table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}
/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}
/*
Remove the inheritance of text transform in Edge and Firefox.
*/
button,
select {
  text-transform: none;
}
/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/
button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}
/*
Use the modern Firefox focus style for all focusable elements.
*/
:-moz-focusring {
  outline: auto;
}
/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/
:-moz-ui-invalid {
  box-shadow: none;
}
/*
Add the correct vertical alignment in Chrome and Firefox.
*/
progress {
  vertical-align: baseline;
}
/*
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}
/*
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
  -webkit-appearance: none;
}
/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
/*
Add the correct display in Chrome and Safari.
*/
summary {
  display: list-item;
}
/*
Removes the default spacing and border for appropriate elements.
*/
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}
fieldset {
  margin: 0;
  padding: 0;
}
legend {
  padding: 0;
}
ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}
/*
Prevent resizing textareas horizontally by default.
*/
textarea {
  resize: vertical;
}
/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/
input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}
input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}
/*
Set the default cursor for buttons.
*/
button,
[role="button"] {
  cursor: pointer;
}
/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}
/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}
/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/
img,
video {
  max-width: 100%;
  height: auto;
}
/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  border-color: #6b7280;
  border-width: 1px;
  border-radius: 0px;
  padding-top: 0.5rem;
  padding-right: 0.75rem;
  padding-bottom: 0.5rem;
  padding-left: 0.75rem;
  font-size: 1rem;
  line-height: 1.5rem;
  --tw-shadow: 0 0 #0000;
}
[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: #2563eb;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  border-color: #2563eb;
}
input::-moz-placeholder, textarea::-moz-placeholder {
  color: #6b7280;
  opacity: 1;
}
input::placeholder,textarea::placeholder {
  color: #6b7280;
  opacity: 1;
}
::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}
::-webkit-date-and-time-value {
  min-height: 1.5em;
  text-align: inherit;
}
::-webkit-datetime-edit {
  display: inline-flex;
}
::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {
  padding-top: 0;
  padding-bottom: 0;
}
select {
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27none%27 viewBox=%270 0 20 20%27%3e%3cpath stroke=%27%236b7280%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%271.5%27 d=%27M6 8l4 4 4-4%27/%3e%3c/svg%3e");
  background-position: right 0.5rem center;
  background-repeat: no-repeat;
  background-size: 1.5em 1.5em;
  padding-right: 2.5rem;
  -webkit-print-color-adjust: exact;
          print-color-adjust: exact;
}
[multiple],[size]:where(select:not([size="1"])) {
  background-image: initial;
  background-position: initial;
  background-repeat: unset;
  background-size: initial;
  padding-right: 0.75rem;
  -webkit-print-color-adjust: unset;
          print-color-adjust: unset;
}
[type='checkbox'],[type='radio'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  -webkit-print-color-adjust: exact;
          print-color-adjust: exact;
  display: inline-block;
  vertical-align: middle;
  background-origin: border-box;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  flex-shrink: 0;
  height: 1rem;
  width: 1rem;
  color: #2563eb;
  background-color: #fff;
  border-color: #6b7280;
  border-width: 1px;
  --tw-shadow: 0 0 #0000;
}
[type='checkbox'] {
  border-radius: 0px;
}
[type='radio'] {
  border-radius: 100%;
}
[type='checkbox']:focus,[type='radio']:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
  --tw-ring-offset-width: 2px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: #2563eb;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
[type='checkbox']:checked,[type='radio']:checked {
  border-color: transparent;
  background-color: currentColor;
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
}
[type='checkbox']:checked {
  background-image: url("data:image/svg+xml,%3csvg viewBox=%270 0 16 16%27 fill=%27white%27 xmlns=%27http://www.w3.org/2000/svg%27%3e%3cpath d=%27M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z%27/%3e%3c/svg%3e");
}
@media (forced-colors: active)  {
  [type='checkbox']:checked {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}
[type='radio']:checked {
  background-image: url("data:image/svg+xml,%3csvg viewBox=%270 0 16 16%27 fill=%27white%27 xmlns=%27http://www.w3.org/2000/svg%27%3e%3ccircle cx=%278%27 cy=%278%27 r=%273%27/%3e%3c/svg%3e");
}
@media (forced-colors: active)  {
  [type='radio']:checked {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}
[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {
  border-color: transparent;
  background-color: currentColor;
}
[type='checkbox']:indeterminate {
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27none%27 viewBox=%270 0 16 16%27%3e%3cpath stroke=%27white%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M4 8h8%27/%3e%3c/svg%3e");
  border-color: transparent;
  background-color: currentColor;
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
}
@media (forced-colors: active)  {
  [type='checkbox']:indeterminate {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}
[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {
  border-color: transparent;
  background-color: currentColor;
}
[type='file'] {
  background: unset;
  border-color: inherit;
  border-width: 0;
  border-radius: 0;
  padding: 0;
  font-size: unset;
  line-height: inherit;
}
[type='file']:focus {
  outline: 1px solid ButtonText;
  outline: 1px auto -webkit-focus-ring-color;
}
.container {
  width: 100%;
}
@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}
@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {
  .container {
    max-width: 1536px;
  }
}
.form-input,.form-textarea,.form-select,.form-multiselect {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  border-color: #6b7280;
  border-width: 1px;
  border-radius: 0px;
  padding-top: 0.5rem;
  padding-right: 0.75rem;
  padding-bottom: 0.5rem;
  padding-left: 0.75rem;
  font-size: 1rem;
  line-height: 1.5rem;
  --tw-shadow: 0 0 #0000;
}
.form-input:focus, .form-textarea:focus, .form-select:focus, .form-multiselect:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: #2563eb;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  border-color: #2563eb;
}
.form-input::-moz-placeholder, .form-textarea::-moz-placeholder {
  color: #6b7280;
  opacity: 1;
}
.form-input::placeholder,.form-textarea::placeholder {
  color: #6b7280;
  opacity: 1;
}
.form-input::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}
.form-input::-webkit-date-and-time-value {
  min-height: 1.5em;
  text-align: inherit;
}
.form-input::-webkit-datetime-edit {
  display: inline-flex;
}
.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-year-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-second-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-meridiem-field {
  padding-top: 0;
  padding-bottom: 0;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.pointer-events-none {
  pointer-events: none;
}
.visible {
  visibility: visible;
}
.collapse {
  visibility: collapse;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.inset-0 {
  inset: 0px;
}
.bottom-0 {
  bottom: 0px;
}
.left-0 {
  left: 0px;
}
.left-1\/2 {
  left: 50%;
}
.right-0 {
  right: 0px;
}
.right-2 {
  right: 0.5rem;
}
.right-3 {
  right: 0.75rem;
}
.right-4 {
  right: 1rem;
}
.right-\[15px\] {
  right: 15px;
}
.top-0 {
  top: 0px;
}
.top-1\/2 {
  top: 50%;
}
.top-2 {
  top: 0.5rem;
}
.top-3 {
  top: 0.75rem;
}
.top-\[27\.5px\] {
  top: 27.5px;
}
.top-full {
  top: 100%;
}
.-z-10 {
  z-index: -10;
}
.z-0 {
  z-index: 0;
}
.z-10 {
  z-index: 10;
}
.z-20 {
  z-index: 20;
}
.z-40 {
  z-index: 40;
}
.z-50 {
  z-index: 50;
}
.col-\[1\/-1\] {
  grid-column: 1/-1;
}
.col-\[2\/span_8\] {
  grid-column: 2/span 8;
}
.col-\[7\/span_5\] {
  grid-column: 7/span 5;
}
.col-span-1 {
  grid-column: span 1 / span 1;
}
.col-span-3 {
  grid-column: span 3 / span 3;
}
.col-span-full {
  grid-column: 1 / -1;
}
.row-span-full {
  grid-row: 1 / -1;
}
.m-0 {
  margin: 0px;
}
.m-0\.5 {
  margin: 0.125rem;
}
.m-1 {
  margin: 0.25rem;
}
.m-2 {
  margin: 0.5rem;
}
.m-3 {
  margin: 0.75rem;
}
.m-4 {
  margin: 1rem;
}
.m-5 {
  margin: 1.25rem;
}
.m-6 {
  margin: 1.5rem;
}
.m-8 {
  margin: 2rem;
}
.mx-1\.5 {
  margin-left: 0.375rem;
  margin-right: 0.375rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.mb-0 {
  margin-bottom: 0px;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-1\.5 {
  margin-bottom: 0.375rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.mb-\[25px\] {
  margin-bottom: 25px;
}
.me-2 {
  margin-inline-end: 0.5rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-2 {
  margin-left: 0.5rem;
}
.ml-4 {
  margin-left: 1rem;
}
.ml-\[25px\] {
  margin-left: 25px;
}
.ml-auto {
  margin-left: auto;
}
.mr-2 {
  margin-right: 0.5rem;
}
.ms-2\.5 {
  margin-inline-start: 0.625rem;
}
.mt-0 {
  margin-top: 0px;
}
.mt-0\.5 {
  margin-top: 0.125rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-12 {
  margin-top: 3rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-5 {
  margin-top: 1.25rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-8 {
  margin-top: 2rem;
}
.mt-px {
  margin-top: 1px;
}
.\!block {
  display: block !important;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.inline {
  display: inline;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.h-0 {
  height: 0px;
}
.h-10 {
  height: 2.5rem;
}
.h-16 {
  height: 4rem;
}
.h-2\.5 {
  height: 0.625rem;
}
.h-4 {
  height: 1rem;
}
.h-5 {
  height: 1.25rem;
}
.h-6 {
  height: 1.5rem;
}
.h-7 {
  height: 1.75rem;
}
.h-8 {
  height: 2rem;
}
.h-\[120vh\] {
  height: 120vh;
}
.h-\[20px\] {
  height: 20px;
}
.h-\[22px\] {
  height: 22px;
}
.h-\[55px\] {
  height: 55px;
}
.h-\[649px\] {
  height: 649px;
}
.h-full {
  height: 100%;
}
.max-h-60 {
  max-height: 15rem;
}
.max-h-\[90vh\] {
  max-height: 90vh;
}
.min-h-\[66px\] {
  min-height: 66px;
}
.min-h-\[70px\] {
  min-height: 70px;
}
.w-0 {
  width: 0px;
}
.w-10 {
  width: 2.5rem;
}
.w-11 {
  width: 2.75rem;
}
.w-11\/12 {
  width: 91.666667%;
}
.w-16 {
  width: 4rem;
}
.w-2\.5 {
  width: 0.625rem;
}
.w-3 {
  width: 0.75rem;
}
.w-3\/5 {
  width: 60%;
}
.w-4 {
  width: 1rem;
}
.w-5 {
  width: 1.25rem;
}
.w-6 {
  width: 1.5rem;
}
.w-7 {
  width: 1.75rem;
}
.w-8 {
  width: 2rem;
}
.w-\[110vw\] {
  width: 110vw;
}
.w-\[170px\] {
  width: 170px;
}
.w-\[200\%\] {
  width: 200%;
}
.w-\[20px\] {
  width: 20px;
}
.w-fit {
  width: -moz-fit-content;
  width: fit-content;
}
.w-full {
  width: 100%;
}
.min-w-\[200px\] {
  min-width: 200px;
}
.min-w-\[240px\] {
  min-width: 240px;
}
.max-w-\[1200px\] {
  max-width: 1200px;
}
.max-w-\[50\%\] {
  max-width: 50%;
}
.flex-1 {
  flex: 1 1 0%;
}
.flex-shrink {
  flex-shrink: 1;
}
.flex-shrink-0 {
  flex-shrink: 0;
}
.shrink-0 {
  flex-shrink: 0;
}
.flex-grow {
  flex-grow: 1;
}
.grow {
  flex-grow: 1;
}
.basis-0 {
  flex-basis: 0px;
}
.border-collapse {
  border-collapse: collapse;
}
.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-1\/2 {
  --tw-translate-x: 50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-\[42\%\] {
  --tw-translate-y: 42%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes bounceIn {
  0% {
    transform: scale(0.3);
    opacity: 0;
  }
  50% {
    transform: scale(1.05);
  }
  70% {
    transform: scale(0.9);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.animate-bounce-in {
  animation: bounceIn 0.5s ease-out;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.animate-fade-in {
  animation: fadeIn 0.3s ease-in-out;
}
@keyframes slideUp {
  0% {
    transform: translateY(20px);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}
.animate-slide-up {
  animation: slideUp 0.3s ease-out;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.animate-spin {
  animation: spin 1s linear infinite;
}
.cursor-not-allowed {
  cursor: not-allowed;
}
.cursor-pointer {
  cursor: pointer;
}
.resize {
  resize: both;
}
.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.grid-cols-9 {
  grid-template-columns: repeat(9, minmax(0, 1fr));
}
.flex-row {
  flex-direction: row;
}
.flex-col {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.flex-nowrap {
  flex-wrap: nowrap;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.items-baseline {
  align-items: baseline;
}
.items-stretch {
  align-items: stretch;
}
.justify-start {
  justify-content: flex-start;
}
.justify-end {
  justify-content: flex-end;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.justify-around {
  justify-content: space-around;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-x-1 {
  -moz-column-gap: 0.25rem;
       column-gap: 0.25rem;
}
.gap-x-2 {
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}
.gap-x-3 {
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.gap-x-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
.gap-x-5 {
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
.gap-y-2 {
  row-gap: 0.5rem;
}
.gap-y-7 {
  row-gap: 1.75rem;
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}
.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.divide-gray-100 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-divide-opacity, 1));
}
.self-start {
  align-self: flex-start;
}
.self-center {
  align-self: center;
}
.overflow-auto {
  overflow: auto;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-y-auto {
  overflow-y: auto;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-\[10px\] {
  border-radius: 10px;
}
.rounded-\[15px\] {
  border-radius: 15px;
}
.rounded-\[35px\] {
  border-radius: 35px;
}
.rounded-\[50px\] {
  border-radius: 50px;
}
.rounded-full {
  border-radius: 9999px;
}
.rounded-lg {
  border-radius: 0.5rem;
}
.rounded-md {
  border-radius: 0.375rem;
}
.rounded-e-\[10px\] {
  border-start-end-radius: 10px;
  border-end-end-radius: 10px;
}
.rounded-r-\[20px\] {
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
}
.rounded-r-\[80px\] {
  border-top-right-radius: 80px;
  border-bottom-right-radius: 80px;
}
.rounded-r-full {
  border-top-right-radius: 9999px;
  border-bottom-right-radius: 9999px;
}
.rounded-s-\[10px\] {
  border-start-start-radius: 10px;
  border-end-start-radius: 10px;
}
.border {
  border-width: 1px;
}
.border-2 {
  border-width: 2px;
}
.border-4 {
  border-width: 4px;
}
.border-8 {
  border-width: 8px;
}
.border-\[5px\] {
  border-width: 5px;
}
.border-y {
  border-top-width: 1px;
  border-bottom-width: 1px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-l {
  border-left-width: 1px;
}
.border-r {
  border-right-width: 1px;
}
.border-r-0 {
  border-right-width: 0px;
}
.border-s-0 {
  border-inline-start-width: 0px;
}
.border-t {
  border-top-width: 1px;
}
.border-dashed {
  border-style: dashed;
}
.border-black {
  --tw-border-opacity: 1;
  border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));
}
.border-gray-200 {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}
.border-gray-300 {
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}
.border-red-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}
.border-red-300 {
  --tw-border-opacity: 1;
  border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));
}
.border-white {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.border-white\/30 {
  border-color: rgb(255 255 255 / 0.3);
}
.border-yellow-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 240 138 / var(--tw-border-opacity, 1));
}
.border-yellow-300 {
  --tw-border-opacity: 1;
  border-color: rgb(253 224 71 / var(--tw-border-opacity, 1));
}
.border-t-transparent {
  border-top-color: transparent;
}
.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}
.bg-blue-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
.bg-gray-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.bg-gray-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
.bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.bg-gray-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));
}
.bg-red-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}
.bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
.bg-red-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.bg-white\/70 {
  background-color: rgb(255 255 255 / 0.7);
}
.bg-yellow-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));
}
.bg-yellow-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));
}
.bg-yellow-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));
}
.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.bg-left-top {
  background-position: left top;
}
.bg-no-repeat {
  background-repeat: no-repeat;
}
.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}
.p-0 {
  padding: 0px;
}
.p-1 {
  padding: 0.25rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-3 {
  padding: 0.75rem;
}
.p-4 {
  padding: 1rem;
}
.p-5 {
  padding: 1.25rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-8 {
  padding: 2rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.py-\[18px\] {
  padding-top: 18px;
  padding-bottom: 18px;
}
.pb-3 {
  padding-bottom: 0.75rem;
}
.pl-\[15px\] {
  padding-left: 15px;
}
.pr-12 {
  padding-right: 3rem;
}
.pr-6 {
  padding-right: 1.5rem;
}
.pr-\[45px\] {
  padding-right: 45px;
}
.pt-0 {
  padding-top: 0px;
}
.pt-4 {
  padding-top: 1rem;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.align-middle {
  vertical-align: middle;
}
.font-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-\[14px\] {
  font-size: 14px;
}
.text-\[19px\] {
  font-size: 19px;
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-black {
  font-weight: 900;
}
.font-bold {
  font-weight: 700;
}
.font-light {
  font-weight: 300;
}
.font-medium {
  font-weight: 500;
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.leading-6 {
  line-height: 1.5rem;
}
.leading-\[3rem\] {
  line-height: 3rem;
}
.leading-none {
  line-height: 1;
}
.leading-tight {
  line-height: 1.25;
}
.text-black {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.text-blue-500 {
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}
.text-blue-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.text-blue-800 {
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}
.text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.text-gray-700 {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.text-gray-800 {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}
.text-gray-900 {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}
.text-green-500 {
  --tw-text-opacity: 1;
  color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}
.text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}
.text-red-400 {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}
.text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.text-red-700 {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.text-red-800 {
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}
.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-white\/80 {
  color: rgb(255 255 255 / 0.8);
}
.text-white\/90 {
  color: rgb(255 255 255 / 0.9);
}
.text-yellow-700 {
  --tw-text-opacity: 1;
  color: rgb(161 98 7 / var(--tw-text-opacity, 1));
}
.opacity-60 {
  opacity: 0.6;
}
.shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_8px_20px_-8px_rgba\(0\2c 0\2c 0\2c 0\.15\)\] {
  --tw-shadow: 0 8px 20px -8px rgba(0,0,0,0.15);
  --tw-shadow-colored: 0 8px 20px -8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-none {
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline {
  outline-style: solid;
}
.drop-shadow {
  --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.grayscale {
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-200 {
  transition-duration: 200ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.\[box-shadow\:0_0_10px_\#e5e5e5\] {
  box-shadow: 0 0 10px #e5e5e5;
}
/* Custom public styles below */
.before\:absolute::before {
  content: var(--tw-content);
  position: absolute;
}
.before\:top-0::before {
  content: var(--tw-content);
  top: 0px;
}
.before\:rounded-full::before {
  content: var(--tw-content);
  border-radius: 9999px;
}
.last\:border-b-0:last-child {
  border-bottom-width: 0px;
}
.hover\:bg-blue-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.hover\:text-gray-600:hover {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.hover\:text-red-600:hover {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.focus\:border-blue-500:focus {
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-blue-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}
.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}
.disabled\:opacity-50:disabled {
  opacity: 0.5;
}
.group:hover .group-hover\:scale-105 {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@media (prefers-color-scheme: dark) {
  .dark\:text-neutral-200 {
    --tw-text-opacity: 1;
    color: rgb(229 229 229 / var(--tw-text-opacity, 1));
  }
}
.\[\&\.is-active\]\:shadow-none.is-active {
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.\[\&_\*\]\:transition-all * {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.\[\&_\*\]\:duration-300 * {
  transition-duration: 300ms;
}
.\[\&_svg\]\:h-full svg {
  height: 100%;
}
.\[\&_svg\]\:w-full svg {
  width: 100%;
}
.\[\&_svg\]\:object-contain svg {
  -o-object-fit: contain;
     object-fit: contain;
}
.is-active .\[\.is-active_\&\]\:bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.is-included .\[\.is-included_\&\]\:flex {
  display: flex;
}
