
/* ===================================================================
   SOS DJ CSS STYLESHEET
Version 2025
   =================================================================== */

/* ================================
   1. VARIABLES CSS
   ================================ */
:root {
    /* Couleurs principales */

      --color-app: #9076FF;
    --color-app-light: #DBDFFF;
    --bs-primary: #9076FF; 
    --bs-link-color-rgb: #9076FF;
    --bg-primary: #9076FF;
    --error-color: #dc3545;
    
    /* Couleurs système */
    --color-text-primary: #9076FF;
}

.text-primary {
    color: var(--color-text-primary) !important;
}

.bg-primary {
    background-color: var( --color-text-primary) !important;
}

.btn-primary {
    background-color: var(--color-app) !important;
    border-color: var(--color-app) !important;
    color: #fff !important;
}
input:focus, textarea:focus, select:focus {
    border-color: var(--color-app) !important;
    box-shadow: 0 0 0 0.2rem rgba(255, 177, 0, 0.25) !important;
    outline: none !important;
}

.form-check-input:checked {
    background-color: var(--color-app) !important;
    border-color: var(--color-app) !important;
}

body {
    font-family: 'Epilogue', 'Helvetica Neue', Arial, sans-serif;
    font-size: 1.em;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    min-width: 340px;
}

.cursor-pointer{
  cursor: pointer;
}


a.anime {
    position: relative;
    display: inline-block;
   

    color: var(--bs-primary);
    overflow: hidden;
    background: linear-gradient(to right, var(--bs-primary) 0%, var(--bs-primary) 50%, #000000a6 50%, #000000a6 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    background-size: 200% 100%;
    background-position: 100% 0;
    transition: background-position 475ms ease;
    text-decoration: none; 
    cursor: pointer;
}

a.anime:hover {
    background-position: 0 0;
}

.navbar-brand {
    font-weight: bold;
}
@media (max-width: 396px) {
  .navbar-brand {
    display: contents;
  }
}

.right_to_left {
    animation: fadeInRight; 
    animation-duration: 1s;
}

.left_to_right {
    animation: fadeInLeft; 
    animation-duration: 1s;
}
.navbar-toggler {
    color:transparent;
    border-color: transparent;
}

@media (min-width: 992px) {
     .navbar-nav {
        flex-direction: row;
        position: relative;
        top: 8px;
    }
}


.select2-container--default .select2-selection--multiple {
    background-color: white;
    height: 45px;
    padding-top: 3px;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    align-content: center;
    align-items: flex-start;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: var(--bg-primary);
    border: 1px solid var(--bg-primary);
    color:white;
    margin: 5px 5px;
}


.select2-container--default .select2-search--inline .select2-search__field
 {
   /* display: none!important; */
}


.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: var(--color-app);
    color: white;
}

.select2-container--default .select2-results__option--selected {
    background-color: var(--color-app-light);
}

span.select2-selection__count {
    position: absolute;
    right: 30px;
    top: 5px;
    background: var(--color-app);
    padding: 5px;
    border-radius: 100%;
    color: white;
    height: 30px;
    width: 30px;
    text-align: center;
}

.select2-container--default.select2-container--focus .select2-selection--multiple {
    overflow: hidden;
}

/* .select2-container--default .select2-selection--multiple .select2-selection__choice__display {
    cursor: default;
    padding-left: 2px;
    padding-right: 5px;
    position: relative;
    top: 6px !important;
} */


.hero-section {
    padding: 20px 0;
}

.hero-images {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-top: 25px;
    margin-bottom: 85px;
    align-items: end;
}

  /* change grid-template-columns for smaller screens */
@media (max-width: 576px) {
    .hero-images {
        grid-template-columns: 1fr;
         grid-template-columns: repeat(2, 1fr);
    }
    

}




.datepicker td,th{
    text-align: center;
    padding: 8px 12px;
    font-size: 14px;
}


.datepicker-dropdown {
    border-radius: 10px;                 /* arrondis doux, comme un cookie */
    border: 1px solid rgba(0, 0, 0, 0.05);
    padding: 8px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); /* petite ombre chic */
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Table générale */
.datepicker table {
    width: 100%;
}

/* Navigation (flèches & mois) */
.datepicker .datepicker-switch,
.datepicker .prev,
.datepicker .next {
    cursor: pointer;                     /* oui, toi tu cliques ici */
    padding: 6px 8px;
    border-radius: 6px;
    transition: background 0.2s ease, color 0.2s ease;
    font-weight: 500;
}

.datepicker .datepicker-switch:hover,
.datepicker .prev:hover,
.datepicker .next:hover {
    background: var(--color-app-light);  /* halo léger */
    color: var(--color-app);
}

/* Ligne des jours de la semaine */
.datepicker thead tr:nth-child(2) th {
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.05em;
    color: #999;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    padding-bottom: 6px;
}

/* Jours (corps) */
.datepicker td.day {
    cursor: pointer;                     /* clique-moi, je suis un jour légitime */
    border-radius: 999px;                /* pastille ronde */
    transition: background 0.15s ease, color 0.15s ease, transform 0.08s ease;
}

/* Jours hover */
.datepicker td.day:hover {
    background: var(--color-app-light);
    color: #333;
    transform: translateY(-1px);         /* micro-levitation */
}

/* Jour actif (sélectionné) */
.datepicker td.active,
.datepicker td.active:hover,
.datepicker td.active:active,
.datepicker td.active:focus {
    background: var(--color-app) !important;
    border-color: var(--color-app) !important;
    color: #fff !important;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04);
}

/* Jours "old" et "new" (mois précédent/suivant) */
.datepicker td.old,
.datepicker td.new {
    color: #ccc;
}

.datepicker td.old.day:hover,
.datepicker td.new.day:hover {
    background: rgba(0, 0, 0, 0.02);
    color: #aaa;
}

/* Jours désactivés */
.datepicker td.disabled,
.datepicker td.disabled:hover,
.datepicker td.disabled.disabled:hover {
    color: #ddd;
    cursor: not-allowed;                 /* interdit comme un cookie avant le dîner */
    background: transparent !important;
}

/* "Aujourd'hui" (si visible) */
.datepicker td.today,
.datepicker td.today:hover {
    background: rgba(255, 177, 0, 0.15);
    color: var(--color-app);
    border-color: transparent;
}

/* Vue mois / années / decades : mêmes pastilles stylées */
.datepicker .month,
.datepicker .year,
.datepicker .decade,
.datepicker .century {
    cursor: pointer;
    border-radius: 999px;
    padding: 6px 10px;
    margin: 2px 0;
    transition: background 0.15s ease, color 0.15s ease, transform 0.08s ease;
}

.datepicker .month:hover,
.datepicker .year:hover,
.datepicker .decade:hover,
.datepicker .century:hover {
    background: var(--color-app-light);
    color: #333;
    transform: translateY(-1px);
}

.datepicker .month.active,
.datepicker .year.active,
.datepicker .decade.active,
.datepicker .century.active {
    background: var(--color-app);
    color: #fff;
}

/* Pied du calendrier (Aujourd'hui / Effacer si affichés) */
.datepicker tfoot th.today,
.datepicker tfoot th.clear {
    cursor: pointer;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding-top: 8px;
    color: #777;
    transition: color 0.15s ease;
}

.datepicker tfoot th.today:hover,
.datepicker tfoot th.clear:hover {
    color: var(--color-app);
}

/* Optionnel : réduire un peu les espacements si tu veux un truc plus compact */
.datepicker td,
.datepicker th {
    padding: 6px 8px; /* tu peux ajuster ici */
}


button#btn-start {  
    height: 56px;
    font-size: 23px;
}



.hero-image {
    border-radius: 30px;
    overflow: hidden;
    height: 180px;
    transition: transform 0.3s ease;
}

/* Décalage alternatif des images */
.hero-image:nth-child(even) {
    transform: translateY(-5px);
}

.hero-image:nth-child(odd) {
    transform: translateY(15px);
}

.hero-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-title {
    font-weight: 700;
    text-align: center;
    margin-bottom: 5px;
    font-family: 'Poppins', sans-serif;
    line-height: 1.2;
}

.hero-subtitle {
    text-align: center;
    color: #666;
    margin-bottom: 30px;
    font-weight: 400;
    line-height: 1.5;
}

.search-box {
    max-width: 360px;
    margin: 0 auto 20px;
}

.search-input {
    border-radius: 10px;
    padding: 15px 20px;
    border: 1px solid #e0e0e0;
}


.stats-section {
    background-color: transparent;
    padding: 0;
    margin: 0 0 20px 0;
}

.stat-card {
    text-align: center;
    padding: 30px 20px;
    background-color: #f8f9fa;
    border-radius: 16px;
    margin-bottom: 20px;
    border: none;
    box-shadow: none;
    transition: transform 0.2s ease;
    min-height: 156px!important;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.stat-card:hover {
    transform: translateY(-2px);
}

.stat-number {
    font-weight: 700;
    margin-bottom: 8px;
    color: #1e1e1e;
    font-family: 'Poppins', sans-serif;
}

.stat-label {
    color: #666;
    font-weight: 500;
    line-height: 1.3;
    font-family: 'Poppins', sans-serif;
}

.section-title {
    text-align: center;
    font-weight: 700;
    margin-bottom: 5px;
    font-family: 'Poppins', sans-serif;
    line-height: 1.3;
}

.section-subtitle {
    text-align: center;
    color: #666;
    margin-bottom: 50px;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    font-weight: 400;
    line-height: 1.6;
}

.solutions-section {
    padding: 0;
    margin: 0 0 20px 0;
}

.wedding-banner {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 0;
    align-items: stretch;
    margin: 20px 0;
    padding: 0;
    background-color: transparent;
    border-radius: 20px;
    overflow: hidden;
    max-height: 324px;
}

.wedding-text {
    background-color: var(--color-app-light);
    /* padding: 0px 40px; */
    display: flex;
    align-items: center;
    border-radius: 20px 0 0 20px;
    height: 324px;
    flex-direction: column;
    justify-content: center;
}

.wedding-text h3 {
    font-weight: 600;
    margin-bottom: 0;
    line-height: 1.3;
    font-family: 'Poppins', sans-serif;
    max-height: 324px;
}

.wedding-text .highlight {
    color: var(--color-app);
    font-weight: 700;
}

.wedding-image {
    border-radius: 0 20px 20px 0;
    overflow: hidden;
    height: 100%;
    position: relative;
}

.wedding-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    min-height: 300px;
}

@media (max-width: 768px) {

    .wedding-banner {
        grid-template-columns: 1fr;
        max-height: none;
    }
    
    .wedding-text {
        border-radius: 20px 20px 0 0;
        height: auto;
        padding: 30px 20px;
        align-items: center;
        justify-content: center;
    }
    
    .wedding-image {
        border-radius: 0 0 20px 20px;
        order: 2;
    }

    .wedding-image img {
       
        object-fit: cover;
        max-height: 189px;
        object-position: 0 4%;
        min-height: auto;
        justify-content: center;
    }
}

.features-section {
    padding:  0;
}

.feature-card {
    padding: 25px;
    padding-bottom: 15px;
    background-color: #f8f9fa;
    border-radius: 15px;
    /* margin-bottom: 20px; */
    height: 100%;
}

.feature-icon {
    color: var(--color-app);
    margin-bottom: 20px;
}

.feature-title {
    font-weight: bold;
    margin-bottom: 10px;
}

.feature-description {
    color: #666;
}

@media (max-width: 768px) {
    .feature-icon{
        display: inline-block;
    }

    .feature-title{
        display: inline-block;
        position: relative;
        top: -3px;
    }
}

.optimize-section {
    padding: 0;
}

.optimize-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}

@media (max-width:992px){
    .optimize-content{

        grid-template-columns: 1fr;
        object-fit: cover;
        object-position: 0% 10%;
    }

    .optimize-image{
        height: 243px;
        border-radius: 15px;
        overflow: hidden;
    }

    .optimize-image img {
        object-fit: cover;
        object-position: 0% 27%;
    }
}

.optimize-image {
    border-radius: 15px;
    overflow: hidden;
}

.optimize-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.accordion-item {
    border: none !important;
    margin-bottom: 10px;
    box-shadow: none !important;
}

.accordion-button {
    background-color: #f8f9fa;
    border-radius: 10px !important;
    font-weight: 600;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}

.accordion-button:focus {
    box-shadow: none !important;
    border: none !important;
    outline: none !important;
}

.accordion-button:active {
    box-shadow: none !important;
    border: none !important;
    outline: none !important;
}

.accordion-button:not(.collapsed) {
    background-color: #f8f9fa;
    color: #000;
    box-shadow: none !important;
    border: none !important;
}

.accordion:focus {
    box-shadow: none !important;
}

.accordion-collapse {
    border: none !important;
}

.accordion-body {
    border: none !important;
    background-color: #f8f9fa;
    border-radius: 0 0 10px 10px !important;
    color: #444;
    line-height: 1.5;
    margin-top: -1px;
}

.cta-section {
    padding: 0;
    text-align: center;
    background: #f8f9fa;
}

.cta-title {
    font-weight: bold;
    margin-bottom: 30px;
}










footer {
    width: 100%;
    background-color: #1a1a1a;
    color: white;
    margin-top: auto;
}

.footer-brand {
    color: white;
    font-weight: bold;
}

.footer-middle {
    border-left: 1px solid #444;
    border-right: 1px solid #444;
    padding-left: 30px;
    padding-right: 30px;
}

@media ( max-width:992px){
    .footer-middle{
        border-bottom: 1px solid #444;
        border-top: 1px solid #444;
        border-left: none;
        border-right: none;
        margin :20px 0;
        padding: 30px 13px;
    }
}

.footer-text {
    color: #ccc;
    font-size: 0.75rem;
    line-height: 1.4;
    text-align: left;
}

.footer-section-title {
    color: white;
    font-weight: 600;
    margin-bottom: 15px;
}

.footer-links {
    margin: 0;
  
}

.footer-links li {
    margin-bottom: 8px;
}

.footer-link {
    color: #ccc;
    text-decoration: none;
    font-size: 0.85rem;
    transition: color 0.2s ease;
}

.footer-link:hover {
    color: var(--color-app);
    text-decoration: none;
}

.footer-logo{
    width: 203px;
}
@media (max-width:998px) {
    .footer-logo{
         width: 138px;
    }
    .footer-links li {
        margin-bottom: 0px;
    }
}

button:disabled {
    opacity: 0.3!important;
    cursor: not-allowed !important;
}
.brightness_55 {
    filter: brightness(0.55);
}

.header-logo{
    width: 149px;
}

.fs-7{font-size: 0.8rem !important;}
.fs-8{font-size: 0.7rem !important;}
.fs-9{font-size: 0.6rem !important;}
.fs-1_8{font-size: 1.8rem !important;}
.fs-1_5{font-size: 1.5rem !important;}

/* //progress bar */
.progress-container {
    max-width: 600px;
    margin: 0 auto 40px auto;
    padding: 20px 0;
}
@media (max-width:992px) {
    .progress-container {
          margin: 0 auto;
          max-width: none;
    }     
}

.progress-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.step-indicator {
    text-align: center;
    position: relative;
    z-index: 2;
}

.step-circle {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 12px;
    background-color: white;
    color: white;
    border: 3px solid #d1d5db;
    transition: all 0.3s ease;
    position: relative;
    top: 0px;
    background-color: #d1d5db;
}

@media (max-width:768px) {
    .step-circle{
        width: 1px !important;
        height: 2px !important;
        top: -3px !important;
        border: 0px solid #d1d5db;
      
    }
}

.step-indicator.completed .step-circle {
    background-color: var(--bs-primary);
    color: white;
    border-color: var(--bs-primary);
}

.step-indicator.active .step-circle {
    background-color: var(--bs-primary);
    color: white;
    border-color: var(--bs-primary);
}

.step-line {
    height: 2px;
    flex: 1;
    background-color: #d1d5db;
    margin: 0;
    transition: all 0.3s ease;
}

.step-line.completed {
    background-color: var(--bs-primary);
}

.event-type-card {
    cursor: pointer;
    transition: all 0.3s ease;
}

.event-type-card:hover {
    background-color: #f8f9fa;
}

.event-type-card.selected {
    background-color: #fff5f5;
    border-color: var(--bs-primary) !important;
}

.subcategory-item {
    cursor: pointer;
    transition: all 0.3s ease;
}

.subcategory-item:hover {
    background-color: #e9ecef !important;
}

.subcategory-item.selected {
    background-color: var(--bs-primary) !important;
    color: white !important;
}

.sidebar-card {
    position: sticky;
    top: 100px;
    background-color: #f8f9fa !important;
    min-height: calc(100vh - 400px);
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    overflow-x: hidden;
    word-wrap: break-word;
}

.sidebar-card .recap-item {
    margin-bottom: 10px;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.sidebar-card .text-muted {
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
}

.footer-sidebar {
    position: sticky;
    bottom: 0;
    margin-top: auto;
    width: 100%;
    background-color: #f8f9fa;
    padding-top: 15px;
}

@media (min-width: 992px) {
    .row {
        align-items: stretch;
    }
    
    .sidebar-card {
        display: flex;
        flex-direction: column;
        max-width: 100%;
        box-sizing: border-box;
    }
    
    .sidebar-card h5,
    .sidebar-card h6,
    .sidebar-card span {
        word-wrap: break-word;
        overflow-wrap: break-word;
        max-width: 100%;
    }
}

.lg-input{
     padding: 15px 20px;
}

/* .form-container {
    max-width: 700px;
} */

/* Step 3 - */
.config-option {
    cursor: pointer;
}

.config-card {
    transition: all 0.3s ease;
}

.config-option:hover .config-card {
    background-color: #f8f9fa;
}

.config-option.selected .config-card {
    background-color: #ffecea !important;
    color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
}

/* .config-option.selected .config-card i {
    color: white !important;
} */

.venue-type {
    cursor: pointer;
    transition: all 0.3s ease;
}

.venue-card {
    height: 200px;
    transition: all 0.3s ease;
    border: 3px solid transparent;
}

.venue-type:hover .venue-card {
    transform: scale(1.02);
}

.venue-type.selected .venue-card {
    border-color: var(--bs-primary);
}


.venue-check {
    display: none;
}

.venue-type.selected .venue-check {
    display: block;
}

.object-fit-cover {
    object-fit: cover;
}

#celebrationsDropdown label {
    position: relative;
    top: 4px;
}

 .anchor-point-event {
    position: relative;
    top: -100px; /* Ajustez selon la hauteur de votre navbar */
    visibility: hidden;
}
#choice_config .config-card{
    height: 45px;
}

.top-1{ top: 1px;}
.top-2{ top: 2px;}
.top-3{ top: 3px;}
.top-4{ top: 4px;}
.top-5{ top: 5px;}
.top-6{ top: 6px;}
.top-7{ top: 7px;}
.top-8{ top: 8px;}
.top-9{ top: 9px;}
.top-10{ top: 10px;}

.end-1{ right: 1px;}
.end-2{ right: 2px;}
.end-3{ right: 3px;}
.end-4{ right: 4px;}
.end-5{ right: 5px;}
.end-6{ right: 6px;}
.end-7{ right: 7px;}
.end-8{ right: 8px;}
.end-9{ right: 9px;}
.end-10{ right: 10px;}


.venue-type .venue-card{
    height: 100px;
}  

.align-checkbox{
    align-items: center;
}
@media (max-width:576px){
    .align-checkbox{
        align-items: flex-start;
    }

   #celebrationsDropdown label {
        position: relative;
        top: 0px;
    }
}

  /* Styles personnalisés pour Choices.js */
.choices {
    margin-bottom: 1rem;
}

.choices__inner {
    min-height: 44px;
    background-color: #fff;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    padding: 7.5px 12px;
}

.choices__list--multiple .choices__item {
    background-color: var(--bs-primary);
    border: 1px solid var(--bs-primary);
    color: #fff;
    margin: 2px;
    border-radius: 15px;
    padding: 4px 10px;
}

.choices__list--multiple .choices__item.is-highlighted {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.choices__list--dropdown {
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    margin-top: 2px;
}

.choices__item--choice {
    padding: 10px 16px;
}

.choices__item--choice:hover {
    background-color: #f8f9fa;
}

.choices__item--choice.is-highlighted {
    background-color: var(--bs-primary);
    color: #fff;
}

.choices__placeholder {
    color: #6c757d;
    opacity: 1;
}

  /* Style personnalisé pour les inputs avec icônes */
        .custom-input-group {
            position: relative;
        }
        
        .custom-input-group input,
        .custom-input-group select,
        .custom-input-group textarea {
            height: 50px;
            padding-left: 45px;
            border: 1px solid #e0e0e0;
            border-radius: 8px;
            font-size: 16px;
        }
        
        .custom-input-group textarea {
            height: auto;
            min-height: 100px;
            padding-top: 15px;
        }
        
        .custom-input-icon {
            position: absolute;
            left: 15px;
            top: 50%;
            transform: translateY(-50%);
            color: #666;
            z-index: 10;
            pointer-events: none;
        }
        
        .custom-input-group textarea + .custom-input-icon {
            top: 25px;
            transform: none;
        }
        
        /* Style pour les boutons +/- */
        .guest-controls {
            position: absolute;
            right: 10px;
            top: 50%;
            transform: translateY(-50%);
            display: flex;
            flex-direction: column;
            gap: 2px;
        }
        
        .guest-btn {
            width: 20px;
            height: 18px;
            border: none;
            background: none;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 10px;
            cursor: pointer;
        }
        
        /* Style pour le select hébergement */
        .custom-select {
            appearance: none;
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
            background-position: right 12px center;
            background-repeat: no-repeat;
            background-size: 16px;
            padding-right: 40px;
        }
        
        /* Style pour les champs budget avec symbole € */
        .budget-input {
            padding-right: 45px;
        }
        
        .euro-symbol {
            position: absolute;
            right: 15px;
            top: 50%;
            transform: translateY(-50%);
            color: #666;
            font-weight: bold;
        }


          .service-card {
            border: 1px solid #e0e0e0;
            border-radius: 12px;
            padding: 20px;
            margin-bottom: 20px;
            background: white;
            transition: all 0.3s ease;
        }
        
         .service-card.expanded {
            border-color: var(--color-app)
;
            box-shadow: 0 4px 12px rgba(220, 53, 69, 0.1);
        }
        
         .service-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            cursor: pointer;
        }
        
         .service-icon {
            width: 40px;
            height: 40px;
            margin-right: 15px;
            font-size: 24px;
        }
        
         .service-title {
            font-size: 18px;
            font-weight: 600;
            margin: 0;
            color: #333;
        }
        
         .toggle-btn {
            width: 30px;
            height: 30px;
            border: 2px solid var(--color-app)
;
            border-radius: 50%;
            background: white;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
         .toggle-btn.active {
            background: var(--color-app)
;
        }
        
         .toggle-btn i {
            color: var(--color-app)
;
            font-size: 14px;
            transition: all 0.3s ease;
        }
        
         .toggle-btn.active i {
            color: white;
        }
        
         .service-content {
            /* display: none; */
            margin-top: 20px;
            padding-top: 20px;
            border-top: 1px solid #f0f0f0;
        }
        
         .service-content.show {
            display: block;
            animation: slideDown 0.3s ease;
        }
        
        @keyframes slideDown {
            from {
                opacity: 0;
                transform: translateY(-10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        .option-pills {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-bottom: 20px;
        }
        
        .option-pill {
            padding: 8px 16px;
            border: 1px solid #e0e0e0;
            border-radius: 20px;
            background: white;
            cursor: pointer;
            transition: all 0.3s ease;
            font-size: 14px;
            display: flex;
            align-items: center;
            gap: 5px;
        }
        
        .option-pill:hover {
            border-color: var(--color-app);
        }
        
        .option-pill.selected {
            background: var(--color-app);
            color: white;
            border-color: var(--color-app);
        }
        
  
        
         .form-row {
            display: flex;
            gap: 20px;
            margin-bottom: 20px;
        }
        
         .form-group {
            flex: 1;
        }
        @media (max-width: 768px) {
            .form-group {
                flex: none;
            }
        }
        
         .form-group label {
            display: block;
            margin-bottom: 8px;
            font-weight: 500;
            color: #333;
        }
        
         .custom-input-group {
            position: relative;
        }
        
         .custom-input-group input,
         .custom-input-group select,
         .custom-input-group textarea {
            width: 100%;
            height: 45px;
            padding: 0 45px 0 45px;
            border: 1px solid #e0e0e0;
            border-radius: 8px;
            font-size: 14px;
            background: white;
        }
        
         .custom-input-group textarea {
            height: auto;
            min-height: 80px;
            padding-top: 12px;
            resize: vertical;
        }
        
         .custom-input-icon {
            position: absolute;
            left: 15px;
            top: 50%;
            transform: translateY(-50%);
            color: #666;
            z-index: 10;
            pointer-events: none;
        }
        
         .custom-input-group textarea + .custom-input-icon {
            top: 20px;
            transform: none;
        }
        
         .euro-symbol {
            position: absolute;
            right: 15px;
            top: 50%;
            transform: translateY(-50%);
            color: #666;
            font-weight: bold;
        }
        
         .custom-select {
            appearance: none;
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
            background-position: right 12px center;
            background-repeat: no-repeat;
            background-size: 16px;
        }
        
         .add-btn {
            background: var(--color-app)
;
            color: white;
            border: none;
            padding: 12px 24px;
            border-radius: 8px;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.3s ease;
            width: 100%;
        }

          #step6 .form-container {
            background: white;
            border-radius: 12px;
            padding: 30px;
        }
        
        #step6 .custom-input-group {
            position: relative;
            margin-bottom: 20px;
        }
        
        #step6 .custom-input-group input {
            height: 50px;
            padding: 0 15px;
            border: 1px solid #e0e0e0;
            border-radius: 8px;
            font-size: 16px;
            background: white;
            width: 100%;
        }
        
        #step6 .custom-input-group input:focus {
            border-color: #dc3545;
            outline: none;
            box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
        }
        
        #step6 .form-label {
            font-weight: 500;
            color: #333;
            margin-bottom: 8px;
            display: block;
        }
        
        #step6 .required {
            color: #dc3545;
        }
        
        #step6 .form-row {
            display: flex;
            gap: 20px;
            margin-bottom: 20px;
        }
        
        #step6 .form-group {
            flex: 1;
        }
        
        #step6 .phone-input {
            padding-left: 60px;
        }
        
        #step6 .phone-prefix {
            position: absolute;
            left: 15px;
            top: 50%;
            transform: translateY(-50%);
            color: #666;
            font-weight: 500;
            z-index: 10;
            pointer-events: none;
        }
        
        #step6 .email-input {
            padding-left: 40px;
        }
        
        #step6 .email-symbol {
            position: absolute;
            left: 15px;
            top: 50%;
            transform: translateY(-50%);
            color: #666;
            font-weight: 500;
            z-index: 10;
            pointer-events: none;
        }
        
        #step6 .sms-notice {
            font-size: 14px;
            color: #666;
            margin-top: 5px;
        }
        
        #step6 .summary-section {
            background: #f8f9fa;
            border-radius: 8px;
            padding: 20px;
            margin-bottom: 30px;
        }
        
        #step6 .summary-item {
            margin-bottom: 15px;
            padding-bottom: 15px;
            border-bottom: 1px solid #e9ecef;
        }
        
        #step6 .summary-item:last-child {
            border-bottom: none;
            margin-bottom: 0;
            padding-bottom: 0;
        }
        
        #step6 .summary-title {
            color: #dc3545;
            font-weight: 600;
            font-size: 16px;
            margin-bottom: 8px;
        }
        
        #step6 .summary-details {
            color: #666;
            font-size: 14px;
            line-height: 1.5;
            margin: 0;
        }
        
        #step6 .summary-details li {
            margin-bottom: 3px;
        }
        
        #step6 .engagement-notice {
            font-size: 14px;
            color: #999;
            text-align: center;
            margin: 30px 0;
        }
        

        
     
        #step6 .validation-error {
            border-color: #dc3545 !important;
            box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important;
        }
        
        #step6 .error-message {
            color: #dc3545;
            font-size: 12px;
            margin-top: 5px;
            display: none;
        }
        
        /* Modal Styles */
        #step6 .modal-dialog {
            max-width: 450px;
        }
        
        #step6 .modal-content {
            border-radius: 16px;
            border: none;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
        }
        
        #step6 .modal-header {
            text-align: center;
            border-bottom: none;
            padding: 30px 30px 10px 30px;
        }
        
        #step6 .modal-title {
            font-size: 18px;
            font-weight: 600;
            color: #333;
            width: 100%;
            margin: 0;
        }
        
        #step6 .modal-subtitle {
            color: #999;
            font-size: 13px;
            margin-top: 5px;
            font-weight: normal;
        }
        
        #step6 .btn-close {
            position: absolute;
            top: 15px;
            right: 15px;
            margin: 0;
        }
        
        #step6 .modal-body {
            padding: 20px 30px 10px 30px;
            max-height: 60vh;
            overflow-y: auto;
        }
        
        #step6 .modal-section {
            margin-bottom: 20px;
            padding-bottom: 15px;
            border-bottom: 1px solid #f0f0f0;
        }
        
        #step6 .modal-section:last-of-type {
            border-bottom: none;
            margin-bottom: 10px;
        }
        
        #step6 .modal-section-title {
            font-weight: 600;
            font-size: 14px;
            margin-bottom: 8px;
        }
        
        #step6 .modal-section-content {
            color: #666;
            font-size: 13px;
            line-height: 1.5;
        }
        
        #step6 .modal-section-content ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        
        #step6 .modal-section-content li {
            margin-bottom: 3px;
        }
        
        .modal-footer {
            display: flex;
            flex-shrink: 0;
            flex-wrap: wrap;
            align-items: center;
            justify-content: space-between;
        }
        
        
        #step6 .btn-modifier {
            background: transparent;
            color: #333;
            border: none;
            padding: 0;
            font-weight: 500;
            cursor: pointer;
            text-decoration: underline;
            transition: all 0.3s ease;
            font-size: 14px;
        }
        
        #step6 .btn-modifier:hover {
            color: #0d6efd;
        }
        
      
        
        #step6 .btn-modal-test {
            background: #28a745;
            color: white;
            border: none;
            padding: 12px 24px;
            border-radius: 8px;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.3s ease;
            margin-left: 10px;
        }
        
        #step6 .btn-modal-test:hover {
            background: #218838;
        }

        .modal-header {
            border-bottom: none;
        }
        
        .scroll-to-top {
            position: fixed;
            bottom: 20px;
            right: 20px;
            width: 50px;
            height: 50px;
            background-color: var(--color-app);
            color: white;
            border: none;
            border-radius: 30%;
            box-shadow: 0 2px 10px rgba(0,0,0,0.3);
            z-index: 1000;
            transition: all 0.3s ease;
            display: none; /* Masqué par défaut */
        }

        .scroll-to-top:hover {
            background-color: var(--color-app);
            transform: translateY(-2px);
        }

        .scroll-to-top i {
            font-size: 18px;
        }

        .scroll-to-top.show {
            display: block;
        }

       .loader-container {
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 400px;
            padding: 3rem 0;
            background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
            border-radius: 15px;
            margin: 2rem 0;
            position: relative;
            overflow: hidden;
        }

        .loader-container::before {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: radial-gradient(circle, rgba(0,123,255,0.1) 0%, transparent 70%);
            animation: shimmer 3s ease-in-out infinite;
        }

        .loader-content {
            text-align: center;
            z-index: 2;
            position: relative;
        }

        .loader-spinner {
            position: relative;
            display: inline-block;
            width: 80px;
            height: 80px;
            margin-bottom: 2rem;
        }

        .spinner-ring {
            position: absolute;
            border: 3px solid transparent;
            border-radius: 50%;
            animation: spin 2s linear infinite;
        }

        .spinner-ring:nth-child(1) {
            width: 80px;
            height: 80px;
            border-top-color: #007bff;
            animation-delay: 0s;
        }

        .spinner-ring:nth-child(2) {
            width: 60px;
            height: 60px;
            top: 10px;
            left: 10px;
            border-top-color: #28a745;
            animation-delay: -0.4s;
            animation-direction: reverse;
        }

        .spinner-ring:nth-child(3) {
            width: 40px;
            height: 40px;
            top: 20px;
            left: 20px;
            border-top-color: #ffc107;
            animation-delay: -0.8s;
        }

        .loader-text h4 {
            color: #495057;
            font-weight: 600;
            margin-bottom: 0.5rem;
            font-size: 1.5rem;
        }

        .loader-text p {
            color: #6c757d;
            font-size: 1rem;
            margin-bottom: 2rem;
        }

        .loader-progress {
            width: 300px;
            max-width: 100%;
        }

        .progress {
            height: 8px;
            background-color: rgba(0,0,0,0.1);
            border-radius: 10px;
            overflow: hidden;
            box-shadow: inset 0 1px 3px rgba(0,0,0,0.2);
        }

        .progress-bar {
            background: linear-gradient(45deg, #007bff, #28a745, #ffc107, #dc3545);
            background-size: 200% 100%;
            animation: progressAnimation 2s ease-in-out infinite, 
                       gradientShift 3s ease-in-out infinite;
            border-radius: 10px;
        }

        /* Animations */
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        @keyframes shimmer {
            0%, 100% { transform: rotate(0deg); }
            50% { transform: rotate(180deg); }
        }

        @keyframes progressAnimation {
            0% { width: 0%; }
            50% { width: 75%; }
            100% { width: 100%; }
        }

        @keyframes gradientShift {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

   

        @keyframes float {
            0%, 100% { transform: translate(-50%, -50%) rotate(0deg) translateY(0px); }
            25% { transform: translate(-50%, -50%) rotate(90deg) translateY(-10px); }
            50% { transform: translate(-50%, -50%) rotate(180deg) translateY(0px); }
            75% { transform: translate(-50%, -50%) rotate(270deg) translateY(10px); }
        }

        /* Responsive */
        @media (max-width: 768px) {
            .loader-container {
                min-height: 300px;
                margin: 1rem 0;
                padding: 2rem 1rem;
            }

            .loader-spinner {
                width: 60px;
                height: 60px;
            }

            .spinner-ring:nth-child(1) {
                width: 60px;
                height: 60px;
            }

            .spinner-ring:nth-child(2) {
                width: 45px;
                height: 45px;
                top: 7.5px;
                left: 7.5px;
            }

            .spinner-ring:nth-child(3) {
                width: 30px;
                height: 30px;
                top: 15px;
                left: 15px;
            }

            .loader-text h4 {
                font-size: 1.25rem;
            }

            .loader-progress {
                width: 250px;
            }
        }

        /* Animation d'apparition */
        .loader-container {
            animation: fadeInUp 0.6s ease-out;
        }

        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }


.dpifs-fake-input {
    display: none;
    border-radius: 3px;
    border: 1px solid #b5b5b5;
    background: #fff;
    color: #b5b5b5;
    padding: 19px 12px 0 12px;
    font-size: 14px !important;
    height: 46px !important;
}

  /*add*/

    .opacity-btn{
        opacity: 0.3;
        transition: opacity 0.3s ease;
    }

    .error-message-container {
        background: linear-gradient(135deg, #fff5f5 0%, #ffe8e8 100%);
        /* border-left: 4px solid #dc3545; */
        border-radius: 12px;
        padding: 24px 28px 8px 28px;
        max-width: 500px;
        margin: 20px auto;
        /* box-shadow: 0 8px 24px rgba(220, 53, 69, 0.12); */
        position: relative;
        overflow: hidden;
    }

    /* .error-message-container::before {
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        width: 100px;
        height: 100px;
        background: rgba(220, 53, 69, 0.05);
        border-radius: 50%;
        transform: translate(30%, -30%);
    } */

    .error-message-text {
        /* color: #721c24; */
        font-family: 'Poppins', sans-serif;
        font-size: 0.95rem;
        line-height: 1.8;
        text-align: left;
        margin: 0;
        position: relative;
        z-index: 1;
    }

    .error-message-text strong {
        color: #dc3545;
        font-weight: 600;
        display: block;
        margin-bottom: 12px;
        font-size: 1.05rem;
        text-align: center;
    }

    .error-list {
        /* list-style: none; */
        padding: 0;
    }

    .error-list li {
        /* padding: 8px 0 8px 28px; */
        /* position: relative; */
        /* color: #721c24; */
        text-align: left;
        /* padding-left: 33px; */
        margin-bottom: 5px;
    }

    /* Styles pour les mentions légales */
.mentions-container {
    padding: 20px 15px;
}

.mentions-info-box {
    padding: 10px 10px 10px 35px;
}


.ok-send-html {
    height: 100%;
    overflow: hidden;
}

.ok-send-body {
    height: 100vh;
    margin: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.ok-send-container {
    min-height: 0;
}

.ok-send-success-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
}

.ok-send-check-icon {
    font-size: 2.5rem;
    color: white;
}

.ok-send-title {
    font-size: 2rem;
    font-weight: 600;
    color: #333;
}

.ok-send-description {
    font-size: 1.1rem;
    max-width: 400px;
    margin: 0 auto;
}

.sms-html {
    height: 100%;
    overflow: hidden;
}

.sms-body {
    height: 100vh;
    margin: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.sms-container {
    min-height: 0;
}

.sms-title {
    font-size: 2rem;
    font-weight: 600;
    color: #333;
}


.swal2-popup.swal2-modal.swal2-icon-error.swal2-show {
    border-radius: 25px;
}