.excursion form input:required,
.hmmc-excursion form input:required,
.excursion form select:required,
.hmmc-excursion form select:required,
.excursion form textarea:required,
.hmmc-excursion form textarea:required {
  box-shadow: none;
}

.excursion form input:required:focus,
.hmmc-excursion form input:required:focus,
.excursion form select:required:focus,
.hmmc-excursion form select:required:focus,
.excursion form textarea:required:focus,
.hmmc-excursion form textarea:required:focus {
  border-color: #66afe9;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
}

/* Excursion form – original styling */

.section--excursion {
  padding: 60px 0;
  background-color: #f6f3f2;
}

.excursion,
.hmmc-excursion {
  position: relative;
  font-family: 'HyundaiSansText', Arial, sans-serif;
  color: #323232;
}

.excursion a,
.hmmc-excursion a {
  color: #00AAD2;
}

.excursion__nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  counter-reset: excursion-nav;
  padding: 19px 0;
  margin: 0;
}

.excursion__nav-step {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  max-width: 240px;
  margin: 5px 0;
  background: transparent;
  border: none;
  font-family: 'HyundaiSansHead', Arial, sans-serif;
  font-weight: 500;
  font-size: 0.875rem;
  color: #B7B7B7;
  text-align: left;
  padding: 0;
}

.excursion__nav-step:focus {
  outline: none;
}

.excursion__nav-step::before {
  content: '0' counter(excursion-nav);
  counter-increment: excursion-nav;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  margin-right: 10px;
  border-radius: 50%;
  background-color: #B7B7B7;
  color: #ffffff;
  font-size: 0.6875rem;
}

.excursion__nav-step--active {
  color: #00AAD2;
}

.excursion__nav-step--active::before {
  background-color: #00AAD2;
}

.excursion__nav-step--done {
  color: #666666;
  cursor: pointer;
  transition: color 0.3s ease;
}

.excursion__nav-step--done::before {
  background-color: #666666;
  transition: background-color 0.3s ease;
}

.excursion__nav-step--done:hover {
  color: #323232;
}

.excursion__nav-step--done:hover::before {
  background-color: #323232;
}

.excursion__step {
  display: none;
}

.excursion__step--active {
  display: block;
}

.excursion__title {
  padding: 40px 0 32px;
  text-align: center;
  background-color: #f6f3f2;
}

.excursion__title .h2 {
  font-family: 'HyundaiSansHead', Arial, sans-serif;
  font-weight: 500;
  margin: 0;
}

.excursion__calendar-wrapper {
  position: relative;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  background-color: #e2dcd3;
}

.hmmc-excursion .excursion__calendar,
.excursion__calendar {
  width: 100%;
  max-width: 475px !important;
  margin: 30px 35px;
  background: #ffffff;
  border: 1px solid #e2dcd3;
  padding: 36px 28px;
  box-sizing: border-box;
  font-family: 'HyundaiSansHead', Arial, sans-serif;
}

.excursion__calendar-header {
  font-size: 1.428rem;
  font-weight: 500;
  text-align: center;
  margin-bottom: 18px;
  color: #072E5E;
}

.excursion__calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border-top: none;
}

.excursion__calendar-day-name {
  text-align: center;
  padding: 12px 4px;
  font-size: 0.8125rem;
  font-weight: 500;
  border: 1px solid #ffffff;
  margin-bottom: 5px;
  background-color: #e2dcd3;
  color: #666666;
}

.excursion__calendar-day {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  border: 1px solid #e2dcd3;
  background-color: #ffffff;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #323232;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.excursion__calendar-day--empty {
  background: transparent;
  border: none;
  cursor: default;
}

.excursion__calendar-day--past {
  background: #f6f3f2;
  color: #B7B7B7;
  cursor: default;
}

.excursion__calendar-day--free {
  background: #ffffff;
  color: #323232;
  cursor: default;
}

.excursion__calendar-day--available {
  background-color: #AFCAE5;
  color: #072E5E;
}

.excursion__calendar-day--available:hover {
  background-color: #9BB9DC;
}

.excursion__calendar-day--selected {
  background-color: #072E5E;
  color: #ffffff;
}

.excursion__calendar-day--full {
  background-color: #767676;
  color: #ffffff;
  cursor: default;
}

.excursion__calendar-button {
  position: absolute;
  top: 20px;
  width: 44px;
  height: 44px;
  background-color: rgba(0, 0, 0, 0.3);
  border: none;
  border-radius: 0;
  color: transparent;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.excursion__calendar-button:hover {
  background-color: rgba(0, 0, 0, 0.6);
}

.excursion__calendar-button:focus {
  outline: none;
}

.excursion__calendar-button::after {
  content: '';
  position: absolute;
  top: 14px;
  width: 16px;
  height: 16px;
  border-top: 1px solid #ffffff;
}

.excursion__calendar-button--prev {
  left: 0;
}

.excursion__calendar-button--prev::after {
  left: 17px;
  transform: rotate(-45deg);
  border-left: 1px solid #ffffff;
}

.excursion__calendar-button--next {
  right: 0;
}

.excursion__calendar-button--next::after {
  right: 17px;
  transform: rotate(45deg);
  border-right: 1px solid #ffffff;
}

.excursion__calendar-hints {
  display: block;
  padding: 20px 40px 80px 50px;
  background-color: #e2dcd3;
  text-align: center;
  font-family: 'HyundaiSansText', Arial, sans-serif;
  font-size: 0.875rem;
}

.excursion__calendar-hint {
  display: inline-block;
  width: 50px;
  height: 50px;
  margin-right: 15px;
  vertical-align: middle;
}

.excursion__calendar-hint--free {
  background-color: #ffffff;
  border: 1px solid #e2dcd3;
}

.excursion__calendar-hint--available {
  background-color: #AFCAE5;
}

.excursion__calendar-hint--selected {
  background-color: #072E5E;
}

.excursion__calendar-hint--full {
  background-color: #767676;
}

.excursion__events {
  background-color: #f6f3f2;
  padding: 35px 20px 60px;
}

.excursion__events-wrapper {
  max-width: 750px;
  margin: 35px auto 0;
}

.excursion__events-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  padding: 25px 0;
  font-weight: 500;
  text-align: center;
  border-bottom: 1px solid #e2dcd3;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.excursion__events-row:last-of-type {
  border-bottom: none;
}

.excursion__events-row--active {
  background-color: #AFCAE5;
}

.excursion__events-row--full {
  cursor: default;
  color: #767676;
}

.excursion__continue {
  text-align: center;
  margin: 60px 0;
}

.excursion__continue--hidden {
  display: none;
}

.excursion__contact,
.excursion__overview {
  background-color: #f6f3f2;
  padding: 0 20px 40px;
}

.excursion__contact-wrapper,
.excursion__overview-wrapper {
  max-width: 780px;
  margin: 0 auto;
}

.excursion__overview-table {
  width: 100%;
  margin: 40px auto;
  border-collapse: collapse;
}

.excursion__overview-label,
.excursion__overview-value {
  padding: 10px 16px;
  border: 1px solid #e2dcd3;
}

.excursion__overview-label {
  width: 220px;
  color: #666666;
  font-weight: 500;
}

.excursion__overview-value {
  font-weight: 500;
}

.excursion__radios .custom-control {
  min-width: 150px;
}

.excursion .invalid-feedback,
.hmmc-excursion .invalid-feedback {
  display: block;
  font-size: 0.8125rem;
  color: #d9534f;
  margin-top: 6px;
}

.excursion .is-invalid,
.hmmc-excursion .is-invalid {
  border-color: #d9534f !important;
  box-shadow: 0 0 0 0.2rem rgba(217, 83, 79, 0.25) !important;
}

/* Červené orámování pro nevalidní selecty */
.excursion select.is-invalid,
.hmmc-excursion select.is-invalid,
.excursion .custom-select.is-invalid,
.hmmc-excursion .custom-select.is-invalid {
  border-color: #d9534f !important;
  box-shadow: 0 0 0 0.2rem rgba(217, 83, 79, 0.25) !important;
}

/* Červené orámování pro nevalidní inputy */
.excursion input.is-invalid,
.hmmc-excursion input.is-invalid,
.excursion .form-control.is-invalid,
.hmmc-excursion .form-control.is-invalid {
  border-color: #d9534f !important;
  box-shadow: 0 0 0 0.2rem rgba(217, 83, 79, 0.25) !important;
}

/* Červené orámování pro nevalidní radio skupiny */
.excursion .form-group:has(input[type="radio"].is-invalid),
.hmmc-excursion .form-group:has(input[type="radio"].is-invalid) {
  border: 2px solid #d9534f;
  border-radius: 4px;
  padding: 8px;
  margin-bottom: 1rem;
}

/* Fallback pro prohlížeče bez podpory :has() */
.excursion .form-group.is-invalid-radio-group,
.hmmc-excursion .form-group.is-invalid-radio-group {
  border: 2px solid #d9534f;
  border-radius: 4px;
  padding: 8px;
  margin-bottom: 1rem;
}

/* Zvýraznění při scrollování k chybě */
.excursion .highlight-error,
.hmmc-excursion .highlight-error {
  animation: highlightError 1s ease-in-out;
}

@keyframes highlightError {
  0% {
    background-color: rgba(217, 83, 79, 0.1);
  }
  50% {
    background-color: rgba(217, 83, 79, 0.2);
  }
  100% {
    background-color: transparent;
  }
}

.excursion__events-row .btn {
  min-width: 160px;
}

.excursion__events-row .text-body {
  font-size: 1.125rem;
  color: #323232;
}

.excursion__events-row--active .text-body {
  color: #072E5E;
}

.excursion__events-row .text-muted {
  color: #666666 !important;
  margin: 6px 0 0;
}

.excursion__events-row--active .text-muted {
  color: #072E5E !important;
}

.alert {
  padding: 15px 20px;
  border-radius: 4px;
  margin: 20px 0;
  font-weight: 600;
}

.alert-danger {
  background: #f8d7da;
  border: 1px solid #f5c6cb;
  color: #721c24;
}

.alert-success {
  background: #d4edda;
  border: 1px solid #c3e6cb;
  color: #155724;
}

.loader-wrapper--excursion {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

.excursion__calendar-day-count {
  display: none !important;
}

@media (min-width: 768px) {
  .excursion__nav {
    flex-direction: row;
    justify-content: center;
    gap: 0;
  }

  .excursion__nav-step {
    max-width: none;
    width: auto;
    margin: 0 40px 0 0;
    justify-content: center;
    text-align: center;
  }

  .excursion__nav-step:last-of-type {
    margin-right: 0;
  }

  .excursion__nav-step:not(:last-of-type)::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -6px;
    transform: translateY(-50%) rotate(45deg);
    width: 12px;
    height: 12px;
    border-top: 1px solid #323232;
    border-right: 1px solid #323232;
  }

  .excursion__title {
    padding: 70px 0 62px;
  }

  .excursion__events {
    padding: 75px 20px;
  }

  .excursion__events-wrapper {
    margin-top: 75px;
  }

  .excursion__events-row {
    text-align: left;
  }
}

@media (max-width: 767px) {
  .excursion__calendar-hints {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 10px 20px 40px;
  }

  .excursion__calendar-hints strong {
    width: calc(50% - 65px);
    margin-top: 10px;
    text-align: left;
  }
}
