/*
Theme Name: Laurent Child
Theme URI: https://laurent.qodeinteractive.com/
Description: A child theme of Laurent Theme
Author: Elated Themes
Author URI: http://themeforest.net/user/elated-themes
Version: 1.0.1
Text Domain: laurent
Template: laurent
*/

/* Place 27 - décalage logo de 33px vers la gauche (ajouté 2026-07-14) */
.eltdf-logo-wrapper {
    transform: translateX(-33px);
}

/* ===== Gravity Forms : apparence identique au formulaire CF7 (ajouté 2026-07-15) ===== */
.gform_wrapper .gform_fields { grid-row-gap: 0; }
.gform_wrapper .gfield { padding: 0; }
.gform_wrapper .gform_footer { margin: 0; padding: 0; }
.gform_wrapper .gfield_label { display: none; }

.gform_wrapper .ginput_container input[type="text"],
.gform_wrapper .ginput_container input[type="email"],
.gform_wrapper .ginput_container input[type="tel"],
.gform_wrapper .ginput_container input[type="url"],
.gform_wrapper .ginput_container textarea {
    position: relative;
    width: 100%;
    margin: 0 0 20px;
    padding: 7px 23px 3px;
    font-family: "Josefin Sans", sans-serif;
    font-size: 19px;
    font-weight: 300;
    line-height: 38px;
    color: #fff;
    background-color: transparent;
    border: 1px solid #715b3e;
    border-radius: 0;
    outline: 0;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

.gform_wrapper .ginput_container input[type="text"],
.gform_wrapper .ginput_container input[type="email"],
.gform_wrapper .ginput_container input[type="tel"] { height: 50px; }
.gform_wrapper .ginput_container textarea { height: 116px; }

.gform_wrapper .ginput_container input::placeholder,
.gform_wrapper .ginput_container textarea::placeholder {
    color: #fff;
    opacity: 1;
    font-family: inherit;
    font-size: inherit;
}

.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper #field_submit input[type="submit"],
.gform_wrapper .gform_footer button[type="submit"] {
    position: relative;
    display: inline-block;
    width: auto;
    height: 48px;
    margin: 21px 0 0;
    padding: 9px 39px;
    font-family: "Open Sans Condensed", sans-serif;
    font-size: 14px;
    font-weight: 300;
    line-height: 28px;
    letter-spacing: 0.36em;
    text-transform: uppercase;
    color: #fff;
    background-color: transparent;
    border: 1px solid #c9ab81;
    border-radius: 0;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: color .2s ease-in-out, background-color .2s ease-in-out, border-color .2s ease-in-out;
}
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper #field_submit input[type="submit"]:hover {
    color: #fff;
    background-color: transparent;
    border-color: #fff;
}

/* Bouton GF en markup legacy (classe .gform_button) */
.gform_wrapper input.gform_button,
.gform_wrapper input[type="submit"].gform_button {
    color: #fff;
    background-color: transparent;
    background-image: none;
    border: 1px solid #c9ab81;
    border-radius: 0;
    -webkit-appearance: none;
    appearance: none;
}
.gform_wrapper input.gform_button:hover {
    color: #fff;
    background-color: transparent;
    border-color: #fff;
}

/* Le placeholder disparaît au clic/focus */
.gform_wrapper input:focus::placeholder,
.gform_wrapper textarea:focus::placeholder {
    color: transparent;
}
.gform_wrapper input:focus::-webkit-input-placeholder,
.gform_wrapper textarea:focus::-webkit-input-placeholder {
    color: transparent;
}

/* Labels masques visuellement mais lisibles par les lecteurs decran */
/* (remplace le display:none, qui les retirait de larbre daccessibilite) */
.gform_wrapper .gfield_label {
    display: block;
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* Message d erreur de validation GF : le theme le rendait en h2 41px */
.gform_wrapper h2.gform_submission_error,
.gform_wrapper .gform_validation_errors h2 {
    font-family: "Josefin Sans", sans-serif;
    font-size: 19px;
    font-weight: 300;
    line-height: 1.5;
    letter-spacing: normal;
    text-transform: none;
    color: #c9ab81;
    margin: 0 0 18px;
}


/* Select et sous-champs Heure : meme apparence que les inputs */
.gform_wrapper select,
.gform_wrapper .ginput_container_time input,
.gform_wrapper .ginput_container_date input {
    width: 100%;
    margin: 0 0 20px;
    padding: 7px 23px 3px;
    font-family: "Josefin Sans", sans-serif;
    font-size: 19px;
    font-weight: 300;
    line-height: 38px;
    height: 50px;
    color: #fff;
    background-color: transparent;
    border: 1px solid #715b3e;
    border-radius: 0;
    outline: 0;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

/* Options du select lisibles (fond clair natif du navigateur) */
.gform_wrapper select option {
    color: #111;
    background-color: #fff;
}

/* Sous-champs Heure : cote a cote, pas pleine largeur */
.gform_wrapper .ginput_container_time {
    display: inline-block;
    width: auto;
    margin-right: 8px;
}
.gform_wrapper .ginput_container_time input {
    width: 70px;
    padding: 7px 10px 3px;
    text-align: center;
}

/* Formulaire Reservation : champs et bouton 367px, centres dans la colonne */
#gform_wrapper_2 .ginput_container input[type="text"],
#gform_wrapper_2 .ginput_container input[type="email"],
#gform_wrapper_2 .ginput_container_date input,
#gform_wrapper_2 select,
#gform_wrapper_2 input.gform_button {
    width: 367px;
    max-width: 100%;
    display: block;
    margin-left: auto;
    margin-right: auto;
}
#gform_wrapper_2 .gform_footer,
#gform_wrapper_2 .gform-footer {
    text-align: center;
}
#gform_wrapper_2 input.gform_button {
    margin-top: 21px;
    margin-bottom: 0;
}

/* Champs caches : GF les masque via son propre CSS, desactive chez nous.
   Sans cette regle, le message admin "Ce champ est masque..." fuit en public. */
.gform_wrapper .gfield_visibility_hidden,
.gform_wrapper .gform_hidden {
    display: none !important;
}

/* Calendrier GP Bookings : meme largeur et meme centrage que les autres champs */
#gform_wrapper_2 .ginput_container_booking_time {
    width: 367px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}
/* espace sous le calendrier, aligne sur les autres champs (28px) */
#gform_wrapper_2 .gfield--type-gpb_booking_time {
    margin-bottom: 20px;
}

/* Calendrier : le mois ne remplissait que 309px sur 367 -> pleine largeur */
#gform_wrapper_2 .gpb-booking-time-picker__calendar .rdp-root,
#gform_wrapper_2 .gpb-booking-time-picker__calendar .rdp-months,
#gform_wrapper_2 .gpb-booking-time-picker__calendar .rdp-month,
#gform_wrapper_2 .gpb-booking-time-picker__calendar .rdp-month_grid {
    width: 100%;
    max-width: 100%;
}

/* Calendrier : bulle doree sur aujourd hui UNIQUEMENT s il est reservable.
   Si plus aucun creneau (ou jour de fermeture), aucun cercle -> pas de confusion. */
#gform_wrapper_2 .gpb-booking-time-picker__calendar .rdp-today.gpb-day--available .rdp-day_button {
    background-color: #c9ab81;
    color: #fff;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    line-height: 36px;
    padding: 0;
    margin: 0 auto;
    display: block;
    border: 0;
    font-weight: 400;
}

/* ================= Calendrier GP Bookings : habillage noir/or ================= */
#gform_wrapper_2 .gpb-booking-time-picker,
#gform_wrapper_2 .gpb-booking-time-picker * {
    font-family: "Josefin Sans", sans-serif;
}

/* -- nom du mois + selects de navigation -- */
#gform_wrapper_2 .rdp-month_caption,
#gform_wrapper_2 .rdp-caption_label {
    font-size: 17px;
    font-weight: 300;
    color: #fff;
    text-transform: capitalize;
}
#gform_wrapper_2 .rdp-button_previous,
#gform_wrapper_2 .rdp-button_next {
    color: #c9ab81;
    background: transparent;
    border: 0;
}
#gform_wrapper_2 .rdp-button_previous:hover,
#gform_wrapper_2 .rdp-button_next:hover { color: #fff; }
#gform_wrapper_2 .rdp-chevron { fill: currentColor; }

/* -- entete des jours de semaine -- */
#gform_wrapper_2 .rdp-weekday {
    font-size: 12px;
    font-weight: 300;
    color: #c9ab81;
    text-transform: uppercase;
    letter-spacing: .08em;
}

/* -- jours -- */
#gform_wrapper_2 .rdp-day_button {
    font-size: 15px;
    font-weight: 300;
    color: #fff;
    background: transparent;
    border: 0;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    line-height: 36px;
    padding: 0;
    margin: 0 auto;
    transition: background-color .2s ease, color .2s ease;
}
/* non reservables : blanc attenue (etait bleu GF) */
#gform_wrapper_2 .rdp-day.rdp-disabled .rdp-day_button,
#gform_wrapper_2 .rdp-day.gpb-day--outside-availability .rdp-day_button {
    color: rgba(255,255,255,.3);
    cursor: default;
}
/* reservables : survol dore */
#gform_wrapper_2 .rdp-day.gpb-day--available:not(.rdp-selected) .rdp-day_button:hover {
    background-color: rgba(201,171,129,.25);
    color: #fff;
}
/* jour selectionne : bulle pleine doree */
#gform_wrapper_2 .rdp-day.rdp-selected .rdp-day_button {
    background-color: #c9ab81;
    color: #fff;
}

/* -- vue des creneaux -- */
#gform_wrapper_2 .gpb-booking-time-picker__header {
    font-size: 17px;
    font-weight: 300;
    color: #fff;
    margin-bottom: 12px;
}
#gform_wrapper_2 .gpb-booking-time-picker__header * { font-size: inherit; }
#gform_wrapper_2 .gpb-booking-time-picker__range-info,
#gform_wrapper_2 .gpb-booking-time-picker__duration {
    font-size: 13px;
    color: rgba(255,255,255,.6);
}
/* lien "Back to calendar" : etait bleu */
#gform_wrapper_2 .gpb-booking-time-picker__back,
#gform_wrapper_2 .gpb-booking-time-picker__back * {
    font-size: 13px;
    color: #c9ab81;
    background: transparent;
    border: 0;
    text-decoration: none;
    cursor: pointer;
}
#gform_wrapper_2 .gpb-booking-time-picker__back:hover { color: #fff; }

/* creneaux horaires */
#gform_wrapper_2 .gpb-booking-time-picker__slot {
    font-size: 14px;
    font-weight: 300;
    color: #fff;
    background: transparent;
    border: 1px solid #715b3e;
    border-radius: 0;
    padding: 7px 6px;
    transition: background-color .2s ease, border-color .2s ease;
}
#gform_wrapper_2 .gpb-booking-time-picker__slot:hover { border-color: #c9ab81; }
#gform_wrapper_2 .gpb-booking-time-picker__slot--selected {
    background-color: #c9ab81;
    border-color: #c9ab81;
    color: #fff;
}
#gform_wrapper_2 .gpb-booking-time-picker__slot--unavailable { opacity: .3; }
#gform_wrapper_2 .gpb-booking-time-picker__empty,
#gform_wrapper_2 .gpb-booking-time-picker__message {
    font-size: 14px;
    color: rgba(255,255,255,.6);
}

/* "Available Times (15 minutes)" : h4 sans classe -> heritait du titre h4 du theme.
   Aligne sur la taille de la date (17px). */
#gform_wrapper_2 .gpb-booking-time-picker__slots h4 {
    font-family: "Josefin Sans", sans-serif;
    font-size: 17px;
    font-weight: 300;
    line-height: 1.4;
    letter-spacing: normal;
    text-transform: none;
    color: #fff;
    margin: 0 0 12px;
}

/* Page Reservation : les lignes de grille du theme traversaient le formulaire.
   Option A : on rend opaques les champs ET le calendrier, avec la couleur exacte
   du fond de page (#0b1315) -> rendu identique au transparent, sans les lignes.
   Le bloc reste transparent : les lignes restent visibles entre les champs. */
#gform_wrapper_2 .ginput_container input[type="text"],
#gform_wrapper_2 .ginput_container input[type="email"],
#gform_wrapper_2 .ginput_container input[type="tel"],
#gform_wrapper_2 .ginput_container textarea,
#gform_wrapper_2 .ginput_container_date input,
#gform_wrapper_2 select,
#gform_wrapper_2 input.gform_button,
#gform_wrapper_2 .ginput_container_booking_time {
    background-color: #0b1315;
}

/* Home - mention "table dans les 2h" : widget Icon with Text fe91801 UNIQUEMENT.
   1) meme retrait gauche/droite que le Section Title au-dessus (39px)
   2) icone centree verticalement (widget en table-cell / vertical-align:top)
   3) texte en 16px (heritait du 19px du theme) */
.elementor-element-fe91801 .elementor-widget-container {
    padding-left: 39px;
    padding-right: 39px;
}
.elementor-element-fe91801 .eltdf-iwt.eltdf-iwt-icon-left .eltdf-iwt-icon,
.elementor-element-fe91801 .eltdf-iwt.eltdf-iwt-icon-left .eltdf-iwt-content {
    vertical-align: middle;
}
.elementor-element-fe91801 .eltdf-iwt-text {
    margin-top: 0;
    font-size: 16px;
    line-height: 1.5;
}

/* Plugin menu : le titre est un <h3> et heritait du titre h3 du theme (36px).
   Aligne sur le gabarit Qode .eltdf-pricing-title (17px / ls 3.74px / lh 26.86px). */
.bp-menu__title {
    font-size: 17px;
    line-height: 26.86px;
    letter-spacing: 3.74px;
}

/* Plugin menu : prix aligne sur le gabarit Qode .eltdf-pricing-price
   (caviar_dreamsbold 700, or, ls 0.57px). A retirer si trop charge. */
.bp-menu__price {
    font-family: caviar_dreamsbold, sans-serif;
    font-weight: 700;
    letter-spacing: 0.57px;
    text-transform: uppercase;
    color: #c9ab81;
}

/* Pages internes : le H1 (titre de page Qode) est trop pres du header sur mobile.
   On le descend de 80px sous 768px uniquement. Cible .eltdf-page-title pour
   ne pas toucher les titres de sections/widgets. */
@media (max-width: 768px) {
    .eltdf-title-holder.eltdf-centered-type .eltdf-page-title,
    .eltdf-title-holder .eltdf-page-title {
        padding-top: 80px;
    }
}

/* ============ WP Review Pro : aligne sur le widget temoignages Qode ============
   Page A Propos. Reprend le guillemet, la typo et les fleches du widget
   .eltdf-testimonials pour que les deux blocs soient homogenes. */

/* Guillemet Qode (meme image, 35x33) : UNE SEULE fois, en tete du bloc,
   a la maniere d un titre (et non repete sur chaque temoignage). */
.wprevpro-shortcode-wrapper::before {
    content: "";
    display: block;
    width: 35px;
    height: 33px;
    margin: 0 auto 20px;
    background: url("/wp-content/plugins/laurent-core/post-types/testimonials/shortcodes/testimonials/assets/img/quote-mark.png") no-repeat center center;
    background-size: contain;
}

/* Texte de l avis : typo du widget Qode (19px / 300 / interligne 29px) */
#wprev-slider-1 .indrevtxt,
#wprev-slider-1 .readmoretextdiv {
    font-family: "Josefin Sans", sans-serif;
    font-size: 19px;
    font-weight: 300;
    line-height: 29px;
    color: #fff;
}

/* Auteur : caviar_dreamsbold, or, majuscules, interlettrage 3.68px */
#wprev-slider-1 .wpproslider_t12_H3_3,
#wprev-slider-1 [class*="displayname"] {
    font-family: caviar_dreamsbold, sans-serif;
    font-size: 19px;
    font-weight: 700;
    line-height: 28.88px;
    letter-spacing: 4.37px;
    text-transform: uppercase;
    color: #c9ab81;
}

/* Fleches laterales : double chevron Qode en or (SVG inline).
   La fleche "next" reutilise le meme SVG, simplement retourne. */
#wprev-slider-1 .slickwprev-arrow {
    width: 26px;
    height: 35px;
    z-index: 10;
    opacity: 1;
}
#wprev-slider-1 .slickwprev-arrow::before {
    content: "";
    display: block;
    width: 26px;
    height: 35px;
    opacity: 1;
    background: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='26' height='35' viewBox='0 0 25.109 34.906'><polyline fill='none' stroke='%23c9ab81' stroke-miterlimit='10' points='24.67,34.59 11.653,17.464 24.67,0.338'/><polyline fill='none' stroke='%23c9ab81' stroke-miterlimit='10' points='13.688,34.59 0.671,17.464 13.688,0.338'/></svg>") no-repeat center center;
    background-size: contain;
}
#wprev-slider-1 .slickwprev-next::before {
    transform: scaleX(-1);
}
#wprev-slider-1 .slickwprev-prev { left: -38px; right: auto; }
#wprev-slider-1 .slickwprev-next { right: -38px; left: auto; }

/* Fleches remontees de 50px (slick les centre trop bas sur ce gabarit) */
#wprev-slider-1 .slickwprev-arrow { margin-top: -50px; }

/* Home : le slider est dans une colonne de section a 2 colonnes (plus etroite).
   Les fleches debordantes (-38px) sortaient de la colonne -> on les rentre. */
.home #wprev-slider-1 .slickwprev-prev { left: 0; right: auto; }
.home #wprev-slider-1 .slickwprev-next { right: 0; left: auto; }

/* Securite tous ecrans : sous 1024px les colonnes Elementor s empilent et
   les fleches debordantes sortaient du viewport (fleche gauche a -38px). */
@media (max-width: 1024px) {
    #wprev-slider-1 .slickwprev-prev { left: 0; right: auto; }
    #wprev-slider-1 .slickwprev-next { right: 0; left: auto; }
}

/* Home : resserrer le slider de 100px de chaque cote.
   Le padding est applique au conteneur du slider : slick mesure la liste
   APRES le CSS (feuille en <head>), les slides s adaptent donc tout seuls.
   Les fleches restent aux bords exterieurs (positionnement absolu sur la
   boite de padding) : elles ne chevauchent pas le texte. */
.home #wprev-slider-1 {
    padding-left: 100px;
    padding-right: 100px;
    box-sizing: border-box;
}

/* Complianz : onglet persistant "Gerer le consentement".
   Par defaut a droite (right:40px) sur fond sombre -> passe a gauche,
   fond blanc et texte noir. */
#cmplz-manage-consent .cmplz-manage-consent,
#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent {
    left: 40px;
    right: auto;
    background-color: #ffffff;
    color: #000000;
}
#cmplz-manage-consent .cmplz-manage-consent:hover,
#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent:hover {
    background-color: #ffffff;
    color: #000000;
}
