.page-id-3755 #header #logo{
    filter: brightness(0) invert(1);
}

.page_cadeau .resa-page{
    min-height: unset;
    padding-bottom: 100px;
}

.paragraphe_cadeau p{
    max-width: 704px;
    opacity: 1;
}

/* module */

.flex_cote{
    display: flex;
    width: 100%;
}

.flex_cote h2{
    width: 182px;
    margin-right: 108px;
    flex: 0 0 auto;
}

.flex_cote>p, .flex_cote>div{
    flex: 0 0 1;
    margin-top: 16px;
}

.sous_section{
    margin-top: 110px;
}

.sous_section>.flex_cote ~ div{
    margin-top: 60px;
}



/* Pour le champ libre */
input[type="text"], input[type="tel"], input[type="email"], textarea{
    background-color: var(--sablelight);
    color: var(--vert-flora);
    border: none;             /* supprime toutes les bordures par défaut */
    border-bottom: 1px solid var(--vert-flora); /* ligne verte */
    outline: none;            /* supprime le contour par défaut au focus */
    transition: 0.3s ease; /* animation fluide */
    width: 100%;              /* facultatif, adapte selon le conteneur */
    font-size: 18px;          /* ajustable */
    margin: 0 0 50px;
    padding: 7px 0;
    opacity: 0.5;
}

input[type="text"]:focus, input[type="tel"]:focus, input[type="email"]:focus, textarea:focus{
    opacity: 1;
}

textarea{
    border-bottom: 0px;
    padding: 0;
    /* Lignes horizontales */
    background-image: linear-gradient(to top, var(--vert-flora) 1px, transparent 1px);
    background-size: 100% 34px; /* hauteur de chaque ligne */
    line-height: 34px;
    transition: 0s;
}





/* style */

.kdo{
    padding: 112px var(--big-left) 100px var(--big-left);
}

.kdo p{
    opacity: unset;
}

.kdo_etapes{
    display: flex;
}

.kdo_etape{
    display: flex;
    font-size: 16px;
    text-transform: uppercase;
    gap: 16px;
    align-items: center;
    position: relative;
    transition: transform 0.4s ease;
}

.kdo_etape div{
    display: flex;
    height: 46px;
    width: 46px;
    padding: 0 0 2px 2px;
    justify-content: center;
    align-items: center;
    background-color: var(--sablelight);
    border: solid 1px var(--vert-flora);
    color: var(--vert-flora);
    border-radius: 50%;
    opacity: 0.4;
    margin-right: 16px;

    transition: transform 0.2s ease, background 0.3s ease;
    z-index: 2;
}

.kdo_etape p{
    padding-bottom: 2px;
    font-size: 16px;
    color: var(--vert-flora);
    margin-right: 60px;

    position: absolute;
    left: 100%;
    white-space: nowrap;
    opacity: 0;
    transform: translateX(-10px);
    transition: all 0.3s ease;
    /*pointer-events: none;*/
}

.kdo_etape div:hover ~ p{
    width: fit-content;
}




.kdo_etape.active p {
    opacity: 1;
    transform: translateX(0);
    transition: all 0.2s ease;
}

.kdo_etape.active div {
    border: solid 1px var(--blanc);
    background: var(--blanc);
    opacity: 1;
}




.liste_radio_rond{
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Masquer le radio par défaut */
.kdo input[type="radio"], .kdo input[type="checkbox"] {
    display: none;
}

/* Style du label comme radio personnalisé */
.choix_kdo>.flex_cote>div>div label {
    display: inline-flex;
    align-items: center;
    position: relative;
    padding-left: 38px; /* espace pour le "cercle" */
    cursor: pointer;
    font-size: 20px;
    color: var(--vert-flora);
}

/* Cercle du radio */
.choix_kdo>.flex_cote>div>div label::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border: 1px solid var(--vert-flora); /* contour vert */
    border-radius: 50%;
    transition: background-color 0.2s;
}

/* Point à l'intérieur quand sélectionné */
.choix_kdo>.flex_cote>div>div input[type="radio"]:checked + label::before {
    background-color: var(--vert-flora);
}







.flex_boutons_bon {
    display: grid;
    gap: 15px; /* espace entre les boutons */
    grid-template-columns: repeat(3, 1fr);
}

.flex_boutons_bon label {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    border-radius: 50%; /* rond */
    border: solid 1px var(--vert-flora);
    color: var(--vert-flora);
    background: transparent; /* fond initial transparent */
    cursor: pointer;
    transition: all 0.3s ease;
    user-select: none;
    min-width: 60px;
    min-height: 60px;
    aspect-ratio: 1 / 1;
    text-align: center;
    font-weight: 200;
    font-size: 26px;
}

.flex_boutons_bon label .montant_libre{
    color: var(--vert-flora);
    text-align: center;

    font-size: 20px;
    font-weight: 100;
    opacity: 0.7;
}

.flex_boutons_bon label:has(input[type="radio"]:checked) .montant_libre{
    opacity: 1;
}

.flex_boutons_bon label span:last-of-type{
    font-weight: 200;
    margin-top: 10px;
}


/* Masquer le radio réel */
.flex_boutons_bon input[type="radio"] {
    display: none;
}

/* Quand radio sélectionné */
.flex_boutons_bon label:has(input[type="radio"]:checked) {
    background: var(--blanc); /* fond blanc */
}

/* Pour le champ libre */
.choix_bon_libre_input {
    background-color: var(--sablelight);
    color: var(--vert-flora);
    border: none;             /* supprime toutes les bordures par défaut */
    border-bottom: 1px solid var(--vert-flora); /* ligne verte */
    outline: none;            /* supprime le contour par défaut au focus */
    transition: 0.3s ease; /* animation fluide */
    width: 100%;              /* facultatif, adapte selon le conteneur */
    font-size: 26px;          /* ajustable */
    margin: 0;
    padding: 0 0 0 6px;
    opacity: 0.2;
}

label:has(input[type="radio"]:checked) .choix_bon_libre_input {
    background-color: var(--blanc);
    opacity: 1;
}


/* Garder les flèches mais changer leur fond */
input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button{
    -webkit-appearance: none; /* supprime le style par défaut si besoin */
    margin: 0;
    width: 10px;
    height: 30px;
    background:  var(--vert-flora);
    border-radius: 5px;
    cursor: pointer;
}









/* Style du label comme radio personnalisé */
.radio_rond_cote label {
    display: inline-flex;
    align-items: center;
    position: relative;
    padding-left: 38px; /* espace pour le "cercle" */
    cursor: pointer;
    font-size: 20px;
    color: var(--vert-flora);
}

/* Cercle du radio */
.radio_rond_cote label::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border: 1px solid var(--vert-flora); /* contour vert */
    border-radius: 50%;
    transition: background-color 0.2s;
}

/* Point à l'intérieur quand sélectionné */
.radio_rond_cote input[type="radio"]:checked + label::before , .radio_rond_cote input[type="checkbox"]:checked + label::before {
    background-color: var(--vert-flora);
}



.flex_boutons_panier{
    display: grid;
    gap: 15px; /* espace entre les boutons */
    grid-template-columns: repeat(3, 1fr);
}


/* Masquer le radio par défaut */
.panier_radio input[type="radio"] {
    display: none;
}

.panier_radio label{
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    text-align: center;
    gap: 20px;
}

.panier_radio label>picture:first-of-type{
    display: block;
    aspect-ratio: 1 / 1;
    width: 100%;
    height: auto;
    border-radius: 50%;
    padding: 10px;
    border: 1px solid #C1C6B9;
    transition: 0.2s ease;
}

.panier_radio input[type="radio"]:checked + label>picture:first-of-type{
    background-color: var(--blanc);
    border: 1px solid var(--vert-flora);
}

.panier_radio picture:first-of-type img{
    object-fit: cover;
    object-position: center;

    aspect-ratio: 1 / 1;
    width: 100%;
    height: auto;
    border-radius: 50%;
}

.panier_radio label h3{
    margin: 0;
    opacity: 1;
}

.panier_radio label .description_panier{
    margin: 0 0 10px 0;
    opacity: 0.7;
}

.panier_radio .selecteur{
    width: 20px;
    height: 20px;
    border: 1px solid var(--vert-flora); /* contour vert */
    border-radius: 50%;
    transition: background-color 0.2s;
    opacity: 0.2;
}

/* Point à l'intérieur quand sélectionné */
.panier_radio input[type="radio"]:checked + label .selecteur {
    background-color: var(--vert-flora);
    opacity: 1;
}



/* resumer */

#resume_kdo p{
    margin-bottom: 28px;
}

#resume_kdo .gros_prix{
    font-size: 26px;
    font-weight: 200;
    text-transform: uppercase;
}

#resume_kdo .indication_invisible{
    opacity: 0.7;
    padding: 0 20px 10px 0;
}

#resume_kdo .indication_invisible.indique_message{
    display: block;
}

/* boutons */
.kdo_boutons{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.kdo_boutons button, .confirmation_kdo button {
    background-color: rgba(0, 0, 0, 0);
}

.kdo_next{
    margin: 0 0 0 auto;
}

.confirmation_kdo .btn_base[target="_blank"]:hover span:nth-of-type(2) {
    opacity: 1;
    margin-bottom: 0;
}









/* test calendrier */

#calendar-container{
    margin-top: 60px;
}

.fc .fc-toolbar.fc-header-toolbar {
    margin-bottom: 0;
}

.fc table {
    margin: 20px 0;
}

.fc .fc-button-primary {
    background-color: var(--sablelight) !important;
    border: 0;
    height: fit-content;
    display: flex;
    box-shadow: unset !important;
}

.fc .fc-toolbar-title {
    width: auto;
    font-family: "mundial", sans-serif;
    font-size: 20px;
    font-weight: 200;
    text-transform: capitalize;
}

.fc-theme-standard td, .fc-theme-standard th{
    border: 0px;
}

.fc-daygrid-day-events, .fc-scrollgrid thead {
    display: none;
}

.fc .fc-scrollgrid-section-body table, .fc .fc-scroller, .fc .fc-daygrid-body, .fc .fc-scroller-harness, .fc .fc-scrollgrid, .fc-dayGridMonth-view, #calendar-container {
    width: fit-content !important;
}

.fc-theme-standard .fc-scrollgrid{
    border: 0;
}

td.fc-day{
    /*height: 51px;*/
    width: 51px;
    max-height: 51px;
    max-width: 51px;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    background-color: var(--sablelight) !important;
    padding: 0 2px;
}

.fc-day-past .fc-highlight, .fc-day-disabled  .fc-highlight,  .fc-highlight{
    display: none;
}

.fc-day-past .fc-daygrid-day-top {
    opacity: 0.3;
}

.fc-day-today, .selected-day{
    position: relative;
}

.fc-day-today:after{
    position: absolute;
    content: '';
    top: 50%;
    left: 50%;
    width: calc(100% - 4px);
    height: 100%;
    border: 1px solid var(--vert-flora);
    opacity: 0.3;
    border-radius: 50%;   /* transforme le rectangle en cercle */
    transform: translate(-50%, -50%); /* centre le cercle */
}

.selected-day:after{
    position: absolute;
    content: '';
    top: 50%;
    left: 50%;
    width: calc(100% - 4px);
    height: 100%;
    border-radius: 50%;   /* transforme le rectangle en cercle */
    transform: translate(-50%, -50%); /* centre le cercle */
    background-color: var(--blanc);
    border: 1px solid var(--vert-flora);
}

.fc .fc-daygrid-day-top {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: row;
    height: 100%;
    aspect-ratio: 1/1;
}

.fc .fc-daygrid-day-number {
    font-size: 20px;
    color: var(--vert-flora);
}

.fc .fc-day-other.fc-day-future .fc-daygrid-day-top {
    opacity: 1;
}

.fc .fc-day-future{
    cursor: pointer;
}






.block_paiement{
    width: 100%;
}

.input_banq{
    display: flex;
    margin-top: 56px;
}

.input_banq #card-number{
}

.input_banq #card-expiry{
    width: 90px;
}

.input_banq #card-cvc{
    width: 42px;
    text-align: right;
}



/* masquer par défaut */
.input_banq {
    display: none;
}

/* afficher si la radio Carte est cochée */
.liste_radio_rond:has(#paiement_card:checked) ~ .input_banq {
    display: flex;
}

.consentement label{
    display: inline-block;
    font-size: 16px;
    font-weight: 100;
}

.consentement a, .consentement a:visited{
    color: var(--vert-flora);
    text-decoration: underline;
}

.block_paiement>.liste_radio_rond:first-of-type {
    margin-bottom: 30px;
}