/* Variables personnalisées */
    :root {
      --border-gold: #d4af37;
      --bg-gold-light: #faf5e1;
      --shadow-gold: rgba(212, 175, 55, 0.3);
    }
    
    /* Styles pour la validation des formulaires */
    .is-valid {
      border-color: #198754;
      padding-right: calc(1.5em + 0.75rem);
      background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
      background-repeat: no-repeat;
      background-position: right calc(0.375em + 0.1875rem) center;
      background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
    }
    
    .is-invalid {
      border-color: #dc3545;
      padding-right: calc(1.5em + 0.75rem);
      background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
      background-repeat: no-repeat;
      background-position: right calc(0.375em + 0.1875rem) center;
      background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
    }
    
    .invalid-feedback {
      display: block;
      width: 100%;
      margin-top: 0.25rem;
      font-size: 0.875em;
      color: #dc3545;
    }
    
    .page-header {
      position: relative;
      height: 40vh;
      min-height: 450px;
      background: linear-gradient(rgba(58, 50, 56, 0.6), rgba(58, 50, 56, 0.8)), url('https://djprestigesound.be/images/dj_bg.jpg');
      background-size: cover;
      background-position: center;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      color: var(--white);
    }
    
    .page-header h1 {
      font-size: clamp(2.5rem, 5vw, 4rem);
      color: var(--white);
      margin-bottom: 1rem;
      text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
      animation: fadeInUp 1s ease-out;
    }
    
    .page-header p {
      font-size: clamp(1rem, 2vw, 1.2rem);
      color: rgba(255, 255, 255, 0.9);
      max-width: 800px;
      margin: 0 auto 1.5rem;
      text-shadow: 0 1px 5px rgba(0, 0, 0, 0.5);
    }
    
    .form-section {
      background-color: white;
      border-radius: 10px;
      padding: 25px;
      margin-bottom: 30px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    }
    
    .section-title {
      border-bottom: 2px solid var(--gold);
      padding-bottom: 10px;
      margin-bottom: 20px;
    }
    
    .section-title h3 {
      color: var(--dark-grey);
      font-weight: 600;
    }
    
    .form-label {
      font-weight: 500;
    }
    
    .required-field::after {
      content: '*';
      color: #dc3545;
      margin-left: 4px;
    }
    
    .btn-gold {
      background-color: var(--gold);
      color: white;
      border: none;
      transition: all 0.3s ease;
    }
    
    .btn-gold:hover {
      background-color: var(--dark-gold);
      color: white;
    }
    
    .btn-outline-gold {
      border: 2px solid var(--gold);
      color: var(--gold);
      background-color: transparent;
    }
    
    .btn-outline-gold:hover {
      background-color: var(--gold);
      color: white;
    }
    
    /* Style pour l'accordéon */
    .accordion-item {
      overflow: hidden;
      margin-bottom: 1rem;
      border: 1px solid rgba(0,0,0,.125);
      border-radius: 0.5rem;
      box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    }
    
    .accordion-button:not(.collapsed) {
      background-color: #f8f9fa;
      color: var(--dark-grey);
      box-shadow: inset 0 -1px 0 rgba(0,0,0,.125);
    }
    
    .accordion-button:focus {
      box-shadow: 0 0 0 0.25rem rgba(212, 175, 55, 0.25);
    }
    
    /* Service checkbox style */
    .service-main-checkbox .form-check-input:checked {
      background-color: var(--gold);
      border-color: var(--gold);
    }
    
    .border-gold {
      border-color: var(--border-gold) !important;
    }
    
    /* Sub-services card styling */
    .sub-service-card {
      transition: all 0.2s ease;
      cursor: pointer;
      border: 1px solid #dee2e6;
    }
    
    .sub-service-card:hover {
      border-color: var(--border-gold);
      box-shadow: 0 0.25rem 0.75rem var(--shadow-gold) !important;
    }
    
    .sub-service-card.border-primary {
      border-color: var(--border-gold) !important;
      background-color: var(--bg-gold-light);
    }
    
    .sub-service-card .form-check-input:checked {
      background-color: var(--gold);
      border-color: var(--gold);
    }
    
    /* Playlist card styling */
    .playlist-card {
      transition: all 0.2s ease;
      cursor: pointer;
      border: 1px solid #dee2e6;
    }
    
    .playlist-card:hover {
      border-color: var(--border-gold);
      box-shadow: 0 0.25rem 0.5rem var(--shadow-gold);
    }
    
    .playlist-card .form-check {
      margin-bottom: 0;
    }
    
    .border-gold {
      border-color: var(--border-gold) !important;
    }
    
    /* Conditional section */
    .conditional-section {
      display: none;
      transition: all 0.3s ease;
    }

    .conditional-section.visible {
      display: block;
    }
    
    /* Form checkboxes */
    .form-check-input:checked {
      background-color: var(--gold);
      border-color: var(--gold);
    }
    
    /* Summary styling */
    #request-summary {
      background-color: #f8f9fa;
      border: 1px solid #e0e0e0;
      border-radius: 8px;
      padding: 1.5rem;
    }
    
    .summary-card {
      border: none;
      margin-bottom: 20px;
    }
    
    .summary-card .card-header {
      background-color: #f8f9fa;
      font-weight: 600;
    }
    
    /* Styles pour le champ d'adresse */
    #address {
      transition: all 0.3s ease;
    }
    
    /* Progress indicator styles */
    .progress-indicator {
      position: sticky;
      top: 20px;
      z-index: 100;
    }
    
    .progress-bar {
      transition: width 0.6s ease;
    }
    
    .text-gold {
      color: var(--gold) !important;
    }
    
    .bg-gold {
      background-color: var(--gold) !important;
    }
    
    /* Step animations */
    .step-message {
      animation: fadeInBounce 0.5s ease-out;
    }
    
    @keyframes fadeInBounce {
      0% {
        opacity: 0;
        transform: translateY(-10px) scale(0.9);
      }
      100% {
        opacity: 1;
        transform: translateY(0) scale(1);
      }
    }
    
    /* Encouragement messages */
    .encouragement {
      background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
      border-left: 4px solid var(--gold);
      animation: slideIn 0.5s ease-out;
    }
    
    @keyframes slideIn {
      from {
        opacity: 0;
        transform: translateX(-20px);
      }
      to {
        opacity: 1;
        transform: translateX(0);
      }
    }
    
    /* Form sections with better visual hierarchy */
    .form-section {
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }
    
    .form-section:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    }
    
    .form-section.active {
      border-left: 4px solid var(--gold);
      box-shadow: 0 2px 15px rgba(212, 175, 55, 0.15);
    }
    
    /* Mobile-first responsive design */
    @media (max-width: 768px) {
      .form-section {
        padding: 15px;
        margin-bottom: 20px;
      }
      
      .accordion-button {
        padding: 0.75rem 1rem;
        font-size: 0.9rem;
      }
      
      #map-container {
        height: 250px !important;
      }
      
      .progress-indicator {
        position: relative;
        top: 0;
        margin-bottom: 20px;
      }
      
      .section-title h3 {
        font-size: 1.2rem;
      }
      
      .form-label {
        font-size: 0.9rem;
        margin-bottom: 0.3rem;
      }
      
      .form-control, .form-select {
        font-size: 16px; /* Évite le zoom sur iOS */
        padding: 0.6rem 0.75rem;
      }
      
      .btn {
        padding: 0.75rem 1.25rem;
        font-size: 1rem;
      }
      
      /* Optimisation des colonnes sur mobile */
      .col-md-4, .col-md-6, .col-md-8 {
        margin-bottom: 1rem;
      }
      
      /* Progress bar plus compact sur mobile */
      #progress-message .badge {
        font-size: 0.8rem;
        padding: 0.4rem 0.8rem;
      }
    }
    
    /* Très petits écrans */
    @media (max-width: 480px) {
      .container {
        padding-left: 15px;
        padding-right: 15px;
      }
      
      .page-header h1 {
        font-size: 2rem;
      }
      
      .form-section {
        padding: 12px;
      }
      
      .card-body {
        padding: 1rem;
      }
    }

