/*********************************************/
/* CUSTOM COLORS                             */
/*********************************************/
:root {
  --jachting-primary: #22438F;
  --jachting-accent: #a9873f;
}

/*********************************************/
/* WRAPPER & LOADING STATES                  */
/*********************************************/
.jachting-reg-form-wrapper {
  min-height: 200px;
}

.jachting-reg-form-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-s, 1rem);
  padding: var(--space-l, 2rem);
  color: var(--neutral, #333);
}

.jachting-reg-form-spinner {
  width: 24px;
  height: 24px;
  border: 3px solid var(--neutral-trans-20, #ccc);
  border-top-color: var(--jachting-primary, #22438F);
  border-radius: 50%;
  animation: jachting-spin 0.8s linear infinite;
}

@keyframes jachting-spin {
  to { transform: rotate(360deg); }
}

.jachting-reg-form-error {
  text-align: center;
  padding: var(--space-l, 2rem);
  color: var(--neutral, #333);
}

.jachting-reg-form-retry {
  margin-top: var(--space-s, 1rem);
  padding: var(--space-xs, 0.5rem) var(--space-m, 1rem);
  border: 1px solid var(--neutral-trans-30, #999);
  border-radius: var(--radius-m, 4px);
  background: var(--white, #fff);
  cursor: pointer;
}

.jachting-reg-form-retry:hover {
  background: var(--neutral-trans-5, #f5f5f5);
}

/*********************************************/
/* HONEYPOT - hidden from humans             */
/*********************************************/
.contact-25__form .form-group--website {
  position: absolute;
  left: -9999px;
  top: -9999px;
  opacity: 0;
  height: 0;
  width: 0;
  overflow: hidden;
  pointer-events: none;
}

/*********************************************/
/* FORM BASE STYLES                          */
/*********************************************/

/* Form max-width and centering */
.contact-25__form.brxe-form {
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

.contact-25__form.brxe-form label {
  font-size: var(--text-m);
  text-transform: none;
  color: var(--neutral);
}

.contact-25__form.brxe-form .label {
  font-size: var(--text-m);
  text-transform: none;
  color: var(--neutral);
}

.contact-25__form.brxe-form .form-group input {
  line-height: 120%;
  font-size: var(--text-m);
  color: var(--neutral-trans-80);
  padding-top: var(--space-xs);
  padding-right: var(--space-xs);
  padding-bottom: var(--space-xs);
  padding-left: var(--space-xs);
  border-radius: var(--radius-m);
}

.contact-25__form.brxe-form select {
  line-height: 120%;
  font-size: var(--text-m);
  color: var(--neutral-trans-80);
  padding-top: var(--space-xs);
  padding-right: var(--space-xs);
  padding-bottom: var(--space-xs);
  padding-left: var(--space-xs);
  border-radius: var(--radius-m);
}

.contact-25__form.brxe-form textarea {
  line-height: 120%;
  font-size: var(--text-m);
  color: var(--neutral-trans-80);
  padding-top: var(--space-xs);
  padding-right: var(--space-xs);
  padding-bottom: var(--space-xs);
  padding-left: var(--space-xs);
  border-radius: var(--radius-m);
}

.contact-25__form.brxe-form .flatpickr {
  padding-top: var(--space-xs);
  padding-right: var(--space-xs);
  padding-bottom: var(--space-xs);
  padding-left: var(--space-xs);
  border-radius: var(--radius-m);
}

.contact-25__form.brxe-form .form-group:not(:last-child):not(.captcha) {
  padding-bottom: var(--space-s);
}

/* Buttons */
.contact-25__form.brxe-form .bricks-button {
  background-color: var(--jachting-primary, #22438F);
  font-size: var(--text-m);
  color: var(--white);
  line-height: 150%;
}

/* Submit button - accent color */
.contact-25__form.brxe-form button[type="submit"].bricks-button {
  background-color: var(--jachting-accent, #a9873f);
}

.contact-25__form.brxe-form button[type="submit"].bricks-button:hover {
  filter: brightness(1.1);
}

.contact-25__form.brxe-form .submit-button-wrapper {
  width: 100%;
}

.contact-25__form.brxe-form {
  margin-top: var(--content-gap);
}

.contact-25__form.brxe-form .bricks-button:not([type=submit]) {
  border-radius: var(--radius-m);
}

.contact-25__form.brxe-form .choose-files {
  border-radius: var(--radius-m);
}

.contact-25__form.brxe-form button[type=submit].bricks-button {
  border-radius: var(--radius-m);
}

/* Checkbox styling */
.contact-25__form .options-wrapper li {
  display: flex;
  align-items: flex-start;
  flex-wrap: nowrap;
  gap: 1rem;
}

/* Text and links for privacy checkbox */
.contact-25__form .options-wrapper label {
  font-size: var(--text-s);
  line-height: 1.15;
}

.contact-25__form .options-wrapper label a {
  color: var(--primary);
}

/*********************************************/
/* LAYOUT FOR FORM FIELDS                    */
/*********************************************/

/* Global wrapper for better layout control */
.contact-25__form .form-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-s);
}

/* Desktop 2-column layout */
@media (min-width: 768px) {
  .contact-25__form .form-row.columns-2 {
    grid-template-columns: 1fr 1fr;
  }
}

/* Desktop 3-column layout */
@media (min-width: 768px) {
  .contact-25__form .form-row.columns-3 {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

/* Form group alignment */
.contact-25__form .form-group {
  width: 100%;
}

/* Section title styling */
.contact-25__form .form-section-title {
  margin-top: var(--space-l);
  margin-bottom: var(--space-xs);
  font-size: var(--text-l);
  font-weight: 600;
}

/* Radio button display for dates */
.contact-25__form .options-wrapper {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

/* Date option item styling */
.contact-25__form .options-wrapper li {
  padding: var(--space-s);
  border-radius: var(--radius-m);
  border: 1px solid var(--neutral-trans-20);
}

/* Hover highlight */
.contact-25__form .options-wrapper li:hover {
  background: var(--neutral-trans-5);
}

/* Checkbox & radio label alignment */
.contact-25__form .options-wrapper li label {
  display: block;
  cursor: pointer;
}

/*********************************************/
/* Billing type tabs                         */
/*********************************************/
.contact-25__form .billing-tabs {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0;
  border: 1px solid var(--neutral-trans-20);
  border-radius: var(--radius-m);
  overflow: hidden;
}

.contact-25__form .billing-tabs li {
  flex: 1 1 auto;
  padding: 0;
  border: none;
  border-radius: 0;
  border-right: 1px solid var(--neutral-trans-20);
  text-align: center;
}

.contact-25__form .billing-tabs li:last-child {
  border-right: none;
}

.contact-25__form .billing-tabs li:hover {
  background: var(--neutral-trans-5);
}

.contact-25__form .billing-tabs li:has(input:checked) {
  background: var(--jachting-primary, #22438F);
}

.contact-25__form .billing-tabs li:has(input:checked) label {
  color: var(--white);
}

.contact-25__form .billing-tabs input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.contact-25__form .billing-tabs label {
  display: block;
  padding: var(--space-xs) var(--space-s);
  cursor: pointer;
  font-size: var(--text-s);
  font-weight: 500;
}

/*********************************************/
/* Billing sections layout                   */
/*********************************************/

/* Hidden billing boxes by default */
.contact-25__form .billing-box {
  display: none;
  margin-top: var(--space-s);
  padding: 0;
  border-radius: var(--radius-m);
  background: transparent;
}

/*********************************************/
/* Specific section layouts                  */
/*********************************************/

/* Personal details - 3 columns on desktop */
@media (min-width: 768px) {
  .contact-25__form .personal-names {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

/* Address - street alone, then 3-column section */
@media (min-width: 768px) {
  .contact-25__form .address-fields.columns-3 {
    grid-template-columns: 2fr 1fr 1fr;
  }
}

/*********************************************/
/* Note textarea - full width               */
/*********************************************/
.contact-25__form textarea {
  width: 100%;
}

/*********************************************/
/* Coupon row - inline with button          */
/*********************************************/
@media (min-width: 768px) {
  .contact-25__form .coupon-row {
    display: flex;
    gap: var(--space-s);
    align-items: center;
  }
  .contact-25__form .coupon-row input {
    flex: 1 1 auto;
  }
}

/*********************************************/
/* Submit button - centered                 */
/*********************************************/
.contact-25__form .submit-button-wrapper,
.contact-25__form button[type="submit"] {
  width: 100%;
}

/*********************************************/
/* Quantity buttons +/-                      */
/*********************************************/
.contact-25__form .form-group--quantity {
  max-width: 160px;
}

.contact-25__form .form-group--quantity .quantity-wrapper {
  display: inline-flex;
  align-items: stretch;
  border-radius: var(--radius-m, 8px);
  border: 1px solid var(--neutral-trans-20);
  overflow: hidden;
}

.contact-25__form .form-group--quantity .quantity-button {
  width: 48px;
  height: 48px;
  border: none;
  background: var(--neutral-trans-5);
  font-size: 24px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  transition: background 0.15s ease;
}

.contact-25__form .form-group--quantity .quantity-button:hover {
  background: var(--neutral-trans-10);
}

.contact-25__form .form-group--quantity .quantity-button:active {
  background: var(--neutral-trans-20);
}

.contact-25__form .form-group--quantity input[type="number"] {
  width: 60px;
  height: 48px;
  border: none;
  border-left: 1px solid var(--neutral-trans-20);
  border-right: 1px solid var(--neutral-trans-20);
  text-align: center;
  font-size: var(--text-m, 1rem);
  font-weight: 600;
  background: var(--white, #fff);
  -moz-appearance: textfield;
  cursor: default;
}

.contact-25__form .form-group--quantity input[type="number"]::-webkit-outer-spin-button,
.contact-25__form .form-group--quantity input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/*********************************************/
/* Total price field - right aligned         */
/*********************************************/
.contact-25__form .form-group--total {
  text-align: right;
}

.contact-25__form .form-group--total label {
  display: block;
  text-align: right;
}

.contact-25__form .form-group--total input {
  text-align: right;
}

/*********************************************/
/* IČO row - input + helper button           */
/*********************************************/
@media (min-width: 768px) {
  .contact-25__form .ico-row {
    display: flex;
    gap: var(--space-s);
    align-items: flex-start;
  }
  .contact-25__form .ico-row .form-group:first-child {
    flex: 1 1 auto;
  }
  .contact-25__form .ico-row .form-group--button {
    padding-top: calc(var(--text-m, 1rem) * 1.2 + var(--space-xs, 0.25rem));
  }
}

/* "Načítať z Finstat" button for IČO */
.contact-25__form .ico-read-button.bricks-button {
  padding: var(--space-xs) var(--space-m);
  border-radius: var(--radius-m);
  font-size: var(--text-s);
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  height: fit-content;
}

.contact-25__form .form-group--button {
  padding-bottom: var(--space-s);
}

/* Finstat error message */
.contact-25__form .finstat-error {
  color: var(--error, #dc3545);
  font-size: var(--text-s, 0.875rem);
  padding-top: 0.15rem;
  padding-bottom: var(--space-xs);
}

/*********************************************/
/* Coupon apply button                       */
/*********************************************/
.contact-25__form .coupon-apply-button {
  padding: var(--space-xs) var(--space-m);
  border-radius: var(--radius-m);
  border: none;
  background: var(--jachting-primary, #22438F);
  color: var(--white);
  font-size: var(--text-s);
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

.contact-25__form .coupon-apply-button:hover {
  filter: brightness(1.1);
}

/* Coupon messages */
.contact-25__form .coupon-message {
  font-size: var(--text-s, 0.875rem);
  padding-top: 0.15rem;
  padding-bottom: var(--space-xs);
}

.contact-25__form .coupon-message--success {
  color: var(--success, #28a745);
}

.contact-25__form .coupon-message--error {
  color: var(--error, #dc3545);
}

/* Discount applied message under total */
.contact-25__form .discount-applied-message {
  color: var(--success, #28a745);
  font-size: var(--text-s, 0.875rem);
  margin-top: 0.15rem;
  text-align: right;
}

/*********************************************/
/* Terms loading and display                 */
/*********************************************/
.contact-25__form .terms-loading {
  display: flex;
  align-items: center;
  gap: var(--space-s, 1rem);
  padding: var(--space-m, 1rem);
  color: var(--neutral, #333);
}

.contact-25__form .terms-list .no-terms {
  border: none;
  background: none;
  padding: var(--space-m, 1rem);
}

.contact-25__form .terms-list .no-terms p {
  margin: 0;
  color: var(--neutral-trans-60, #666);
}

/* Term item - clickable row */
.contact-25__form .terms-list li {
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.contact-25__form .terms-list li:has(input:checked) {
  background: rgba(34, 67, 143, 0.1);
  border-color: var(--jachting-primary, #22438F);
}

/* Hide radio button visually but keep accessible */
.contact-25__form .terms-list li input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

/* Term item label layout */
.contact-25__form .terms-list li label {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--space-s, 0.5rem);
  align-items: center;
  justify-content: space-between;
  width: 100%;
  cursor: pointer;
}

.contact-25__form .terms-list .term-date {
  font-weight: 500;
}

.contact-25__form .terms-list .term-right {
  display: flex;
  gap: var(--space-m, 1rem);
  align-items: center;
  margin-left: auto;
}

.contact-25__form .terms-list .term-availability {
  display: flex;
  align-items: center;
  gap: 0.4em;
  font-size: var(--text-s, 0.875rem);
  color: var(--neutral-trans-60, #666);
}

.contact-25__form .terms-list .term-availability-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--success, #28a745);
  flex-shrink: 0;
}

.contact-25__form .terms-list .term-full-text {
  color: var(--error, #dc3545);
}

.contact-25__form .terms-list .term-full-text .term-availability-dot {
  background: var(--error, #dc3545);
}

.contact-25__form .terms-list .term-price {
  font-weight: 600;
  color: var(--jachting-primary, #22438F);
  min-width: 80px;
  text-align: right;
}

/* Full/disabled term styling */
.contact-25__form .terms-list li.term-full {
  opacity: 0.6;
  cursor: not-allowed;
}

.contact-25__form .terms-list li.term-full:hover {
  background: transparent;
}

.contact-25__form .terms-list li.term-full label {
  cursor: not-allowed;
}

/*********************************************/
/* Terms collapse/expand functionality       */
/*********************************************/

/* Hidden terms when collapsed */
.contact-25__form .terms-list li.term-hidden {
  display: none;
}

/* Change term button */
.contact-25__form .terms-change-btn {
  display: block;
  width: 100%;
  margin-top: var(--space-s);
  padding: var(--space-xs) var(--space-m);
  border: none;
  border-radius: var(--radius-m);
  background: var(--jachting-primary, #22438F);
  color: var(--white, #fff);
  font-size: var(--text-m);
  font-weight: 500;
  line-height: 150%;
  text-align: center;
  cursor: pointer;
  transition: filter 0.15s ease;
}

.contact-25__form .terms-change-btn:hover {
  filter: brightness(1.1);
}

/*********************************************/
/* Checkboxes list - bordered container      */
/*********************************************/
.contact-25__form .checkboxes-list {
  border: 1px solid var(--neutral-trans-20);
  border-radius: var(--radius-m);
  padding: var(--space-s);
}

.contact-25__form .checkboxes-list li {
  border: none;
  padding: var(--space-xs) 0;
  border-radius: 0;
}

.contact-25__form .checkboxes-list li:hover {
  background: transparent;
}

.contact-25__form .checkboxes-list li:not(:last-child) {
  /*
  border-bottom: 1px solid var(--neutral-trans-10);
  padding-bottom: var(--space-xs);
  */
  }

/*********************************************/
/* Validation errors                         */
/*********************************************/

/* Inline error message under field */
.contact-25__form .field-error-message {
  display: block;
  color: var(--error, #dc3545);
  font-size: var(--text-s, 0.875rem);
  margin-top: 0.15rem;
}

/* Error state for form groups */
.contact-25__form .form-group.field-error > label:first-child {
  color: var(--error, #dc3545);
}

.contact-25__form .form-group.field-error input,
.contact-25__form .form-group.field-error select,
.contact-25__form .form-group.field-error textarea {
  border-color: var(--error, #dc3545);
}

.contact-25__form .form-group.field-error input:focus,
.contact-25__form .form-group.field-error select:focus,
.contact-25__form .form-group.field-error textarea:focus {
  outline-color: var(--error, #dc3545);
  box-shadow: 0 0 0 2px var(--error-trans-20, rgba(220, 53, 69, 0.2));
}

/* Error state for checkboxes */
.contact-25__form .checkboxes-list li.field-error {
  background: var(--error-trans-10, rgba(220, 53, 69, 0.1));
}

.contact-25__form .checkboxes-list li.field-error label {
  color: var(--error, #dc3545);
}

/*********************************************/
/* Success message                           */
/*********************************************/
.jachting-reg-form-success {
  text-align: center;
  padding: var(--space-xl, 3rem) var(--space-m);
}

.jachting-reg-form-success h3 {
  color: var(--jachting-primary, #22438F);
  margin-bottom: var(--space-s);
}

.jachting-reg-form-success p {
  color: var(--neutral, #333);
}

/*********************************************/
/* Simplified Customer Data Section          */
/*********************************************/

/* Company toggle checkbox styling - subtle inline note */
.contact-25__form .company-toggle-list {
  border: none;
  padding: 0;
}

.contact-25__form .company-toggle-list li {
  border: none;
  padding: 0;
  border-radius: 0;
}

.contact-25__form .company-toggle-list li:hover {
  background: transparent;
}

.contact-25__form .company-toggle-list label {
  font-size: var(--text-s, 0.875rem);
  font-weight: 400;
  color: var(--neutral-trans-80, #555);
}

/* Company billing box */
.contact-25__form .company-billing-box {
  margin-top: var(--space-s);
  padding: var(--space-m);
  border: 1px solid var(--neutral-trans-20);
  border-radius: var(--radius-m);
  background: var(--neutral-trans-5, #f9f9f9);
}

/* Section heading style */
.contact-25__form .section-heading {
  font-size: var(--text-l, 1.125rem);
  font-weight: 600;
  color: var(--neutral);
  margin-bottom: var(--space-xs);
}

/* Form note text */
.contact-25__form .form-note {
  font-size: var(--text-s, 0.875rem);
  color: var(--neutral-trans-60, #666);
  margin-top: var(--space-s);
  margin-bottom: 0;
  font-style: italic;
}
