@layer components {
  .reservations-layout {
    align-items: flex-start;
  }

  .reservation-form-area {
    order: 1;
  }

  .reservation-sidebar {
    order: 2;
  }

  @media (max-width: 960px) {
    .reservations-layout {
      display: flex;
      flex-direction: column;
      gap: var(--space-6);
    }

    .reservation-sidebar {
      width: 100%;
    }
  }

  .field-group {
    border: none;
    padding: 0;
    margin-bottom: var(--space-6);
  }

  .field-group-title {
    font-size: 0.86rem;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--color-heading);
    margin-bottom: var(--space-2);
  }

  .field-group-helper {
    font-size: 0.88rem;
    color: var(--color-text-muted);
    margin-bottom: var(--space-4);
  }

  .booking-type-grid {
    display: grid;
    gap: var(--space-3);
  }

  @media (min-width: 768px) {
    .booking-type-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  .booking-type-option {
    position: relative;
  }

  .booking-type-card {
    display: block;
    height: 100%;
    padding: var(--space-4);
    border-radius: var(--radius-lg);
    border: 1px solid rgba(36, 72, 63, 0.18);
    background-color: #ffffff;
    box-shadow: var(--shadow-subtle);
    cursor: pointer;
    transition: border-color var(--transition-base), box-shadow var(--transition-base), background-color var(--transition-base), transform var(--transition-fast);
    font-size: 0.9rem;
  }

  .booking-type-label-main {
    display: block;
    font-family: var(--font-serif);
    font-size: 1rem;
    color: var(--color-heading);
    margin-bottom: var(--space-2);
  }

  .booking-type-label-sub {
    display: block;
    color: var(--color-text-muted);
    font-size: 0.86rem;
  }

  .booking-type-option input:focus-visible + .booking-type-card {
    box-shadow: var(--shadow-focus);
    border-color: rgba(36, 72, 63, 0.7);
  }

  .booking-type-option input:checked + .booking-type-card {
    border-color: var(--color-accent);
    background-color: #fdf7ee;
    box-shadow: var(--shadow-soft);
    transform: translateY(-1px);
  }

  .consent-row {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    font-size: 0.84rem;
    color: var(--color-text-muted);
  }

  .consent-checkbox {
    margin-top: 4px;
    width: 18px;
    height: 18px;
    border-radius: 4px;
    border: 1px solid rgba(36, 72, 63, 0.3);
    appearance: none;
    background-color: #ffffff;
    display: inline-block;
    position: relative;
  }

  .consent-checkbox:checked {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
  }

  .consent-checkbox:checked::after {
    content: "";
    position: absolute;
    inset: 3px;
    border-radius: 3px;
    border: 2px solid #ffffff;
    border-top: none;
    border-left: none;
    transform: rotate(45deg);
  }

  .consent-checkbox:focus-visible {
    box-shadow: var(--shadow-focus);
  }

  .consent-label a {
    text-decoration: underline;
  }

  .consent-label a:hover {
    color: var(--color-primary);
  }

  .form-note {
    font-size: 0.8rem;
    max-width: 260px;
  }

  @media (max-width: 640px) {
    .form-actions {
      flex-direction: column;
      align-items: flex-start;
      gap: var(--space-3);
    }

    .form-note {
      max-width: none;
    }
  }

  .venue-summary h3 {
    margin-bottom: var(--space-2);
  }
}
