/*
Theme Name: Luxe Partenaires — Divi
Theme URI: https://luxe-partenaires.fr
Template: Divi
Author: Refonte 2026
Description: Thème enfant de Divi portant le système de design de la refonte Luxe Partenaires : palette de marque, typographie Bodoni Moda et Jost auto-hébergées, et classes utilitaires à poser sur les modules Divi.
Version: 1.1.2
License: GNU General Public License v2 or later
Text Domain: luxe-partenaires-divi
*/

/* ==========================================================================
   1. Jetons de marque
   Valeurs relevées dans le CSS Divi compilé de l'ancien site.
   ========================================================================== */
:root{
  --lp-or:#BFAC63;
  --lp-or-texte:#7D6E33;
  --lp-encre:#1E1D1C;
  --lp-encre-douce:#4A4643;
  --lp-encre-discrete:#6E6862;
  --lp-creme:#EFE9E4;
  --lp-creme-clair:#F7F3EF;
  --lp-profond:#0F0E0E;
  --lp-sur-profond:#EFE9E4;
  --lp-sur-profond-doux:#A9A29A;
  --lp-filet:rgba(30,29,28,.18);
  --lp-filet-tenu:rgba(30,29,28,.09);
  --lp-filet-clair:rgba(239,233,228,.20);
  --lp-ombre:0 1px 2px rgba(30,29,28,.05), 0 12px 32px -12px rgba(30,29,28,.16);
  --lp-display:"Bodoni Moda",Didot,"Bodoni MT","Times New Roman",serif;
  --lp-corps:"Jost",Futura,"Century Gothic","Helvetica Neue",sans-serif;
  --lp-mesure:63ch;
}

/* ==========================================================================
   2. Fondations — s'imposer sur les réglages par défaut de Divi
   Divi injecte ses styles avec une specificite elevee : on cible en
   consequence, sans recourir a !important sauf ou Divi l'utilise lui-meme.
   ========================================================================== */
body,
body.et-db #et-boc .et-l .et_pb_text,
#page-container p{
  font-family:var(--lp-corps);
  font-weight:300;
  line-height:1.72;
  color:var(--lp-encre);
}
body{ background-color:var(--lp-creme); }

#page-container h1, #page-container h2, #page-container h3,
#page-container h4, #page-container h5, #page-container h6,
.et_pb_module h1, .et_pb_module h2, .et_pb_module h3,
.et_pb_module h4, .et_pb_module h5, .et_pb_module h6{
  font-family:var(--lp-display);
  font-weight:400;
  line-height:1.15;
  text-wrap:balance;
  color:var(--lp-encre);
}
#page-container h1{ font-size:clamp(2.9rem,1.5rem + 6.4vw,6.4rem); line-height:.96; letter-spacing:-.02em; }
#page-container h2{ font-size:clamp(1.85rem,1.2rem + 2.1vw,3rem); letter-spacing:-.01em; }
#page-container h3{ font-size:clamp(1.4rem,1.1rem + 1vw,1.95rem); line-height:1.2; }

a{ color:var(--lp-or-texte); }
:where(a,button,input,textarea,select):focus-visible{
  outline:2px solid var(--lp-or);
  outline-offset:3px;
}

/* Boutons Divi habilles aux couleurs de la marque */
#page-container .et_pb_button{
  font-family:var(--lp-corps);
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  padding:.95rem 1.6rem;
  border-radius:2px;
  border:1px solid var(--lp-or);
  background-color:var(--lp-or);
  color:var(--lp-encre);
  transition:background-color .28s ease, color .28s ease, border-color .28s ease;
}
#page-container .et_pb_button:hover{
  background-color:transparent;
  color:var(--lp-or-texte);
  padding:.95rem 1.6rem;
}
#page-container .et_pb_button:after{ display:none; }

/* --------------------------------------------------------------------------
   Pages de contenu simple (mentions legales, etc.)

   L'echelle typographique ci-dessus est calibree pour la page d'accueil
   construite avec Divi. Sur une page de texte courant elle est demesuree :
   on la ramene a une taille de lecture. Le selecteur distingue les deux cas
   par la classe que Divi ajoute aux pages construites avec le constructeur.
   -------------------------------------------------------------------------- */
body:not(.et_pb_pagebuilder_layout) #page-container h1{
  font-size:clamp(1.9rem,1.5rem + 1.6vw,2.6rem);
  line-height:1.1;
  margin-bottom:1.5rem;
}
body:not(.et_pb_pagebuilder_layout) #page-container h2{
  font-size:clamp(1.25rem,1.1rem + .7vw,1.55rem);
  line-height:1.25;
  margin-top:2.4rem;
  margin-bottom:.7rem;
}
body:not(.et_pb_pagebuilder_layout) #page-container h3{
  font-size:1.15rem;
  margin-top:1.6rem;
}
body:not(.et_pb_pagebuilder_layout) #left-area p{
  max-width:68ch;
  margin-bottom:1rem;
}

/* Colonne laterale : sans objet sur les pages institutionnelles.
   Divi dessine aussi un filet separateur en pseudo-element du conteneur :
   masquer la colonne ne suffit pas, il reste une ligne verticale orpheline. */
body:not(.et_pb_pagebuilder_layout) #sidebar{ display:none; }
body:not(.et_pb_pagebuilder_layout) #main-content .container:before{ display:none; }
body:not(.et_pb_pagebuilder_layout) #left-area{
  width:100%;
  padding-right:0;
  max-width:52rem;
  margin-inline:auto;
  float:none;
}

/* --------------------------------------------------------------------------
   En-tete et navigation

   Divi peint l'element de menu courant avec sa couleur d'accent (#2EA3F2).
   Ici, toutes les entrees pointent vers des ancres de la page d'accueil, donc
   WordPress les marque TOUTES comme courantes : sans cette regle, le menu
   entier vire au bleu Divi.
   -------------------------------------------------------------------------- */
#main-header{
  box-shadow:none;
  border-bottom:1px solid var(--lp-filet-tenu);
}

/* Le logotype est un bloc empile — monogramme, filets, LUXEPARTENAIRES, PARIS.
   Au plafond par defaut de Divi (44px) la troisieme ligne devient illisible :
   on lui laisse de la hauteur. */
#logo{
  max-height:64px;
  width:auto;
}
#main-header .container{ padding-top:.4rem; padding-bottom:.4rem; }
.et_header_style_left #et-top-navigation{ padding-top:22px; }

#top-menu li a,
#top-menu li.current-menu-item > a,
#top-menu li.current_page_item > a,
#top-menu li.current-menu-ancestor > a{
  font-family:var(--lp-corps);
  font-size:.75rem;
  font-weight:400;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--lp-encre-douce);
  opacity:1;
  padding-bottom:.35rem;
  border-bottom:1px solid transparent;
  transition:color .25s ease, border-color .25s ease;
}
#top-menu li a:hover,
#top-menu li.current-menu-item > a:hover,
#top-menu li.current_page_item > a:hover{
  color:var(--lp-encre);
  opacity:1;
  border-bottom-color:var(--lp-or);
}

/* Menu mobile : meme traitement. */
#mobile_menu li a,
#mobile_menu li.current-menu-item > a{
  font-family:var(--lp-corps);
  font-size:.8125rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--lp-encre-douce);
}
.mobile_nav .select_page,
.et_mobile_menu{ border-top-color:var(--lp-or); }

/* Loupe de recherche : sans objet sur un site d'une seule page. */
#et_top_search{ display:none; }

/* Le bleu d'accent de Divi ne doit apparaitre nulle part. */
#page-container a{ color:var(--lp-or-texte); }
#page-container a:hover{ color:var(--lp-encre); }
#main-header a{ color:var(--lp-encre-douce); }

/* ==========================================================================
   3. Classes utilitaires
   À saisir dans le champ « Classe CSS » d'un module Divi
   (onglet Avancé → Identifiants et classes CSS).

   NOTE DE CASCADE : les fondations ci-dessus utilisent #page-container pour
   passer devant Divi. Toute règle qui redéfinit une police ou une couleur doit
   donc porter le même préfixe, sinon elle perd — un identifiant l'emporte
   toujours sur une classe.
   ========================================================================== */

/* Sur-titre en petites capitales dorees. Module Texte. */
#page-container .lp-label,
#page-container .lp-label p{
  font-family:var(--lp-corps);
  font-size:.6875rem;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--lp-or-texte);
  line-height:1.5;
  margin:0;
}

/* Chapeau d'introduction. Module Texte. */
#page-container .lp-lede,
#page-container .lp-lede p{ max-width:var(--lp-mesure); color:var(--lp-encre-douce); }

/* Paragraphe d'ouverture, en Bodoni. Module Texte. */
#page-container .lp-ouverture p{
  font-family:var(--lp-display);
  font-size:clamp(1.3rem,1.05rem + 1.1vw,1.75rem);
  line-height:1.44;
  color:var(--lp-encre);
}

/* Citation au filet dore. Module Texte. */
#page-container .lp-cite,
#page-container .lp-cite p{
  font-family:var(--lp-display);
  font-style:italic;
  font-size:clamp(1.15rem,1rem + .8vw,1.5rem);
  line-height:1.45;
  color:var(--lp-encre);
}
#page-container .lp-cite{ padding-left:1.5rem; border-left:2px solid var(--lp-or); }

/* Signature chiffree d'une rencontre. Deux modules Texte empiles. */
#page-container .lp-sig-num,
#page-container .lp-sig-num p{
  font-family:var(--lp-display);
  font-size:clamp(2.4rem,2rem + 1.4vw,3.1rem);
  font-weight:500;
  line-height:1;
  color:var(--lp-or-texte);
  font-variant-numeric:tabular-nums;
  margin:0;
}
#page-container .lp-sig-unit,
#page-container .lp-sig-unit p{
  font-family:var(--lp-corps);
  font-size:.6875rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--lp-encre-discrete);
  line-height:1.5;
  margin:.15rem 0 0;
}

/* Corps de texte d'une entree du registre. Module Texte. */
#page-container .lp-entree-txt,
#page-container .lp-entree-txt p{ color:var(--lp-encre-douce); font-size:.9375rem; max-width:38ch; }

/* Lien souligne d'un filet dore. */
#page-container .lp-lien{
  display:inline-block;
  font-family:var(--lp-corps);
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--lp-encre);
  padding-bottom:.3rem;
  border-bottom:1px solid var(--lp-or);
  transition:letter-spacing .3s ease, color .3s ease;
}
#page-container .lp-lien:hover,
#page-container .lp-lien:focus-visible{ letter-spacing:.22em; color:var(--lp-or-texte); }

/* Lien provisoirement inactif : garde l'allure d'un lien, ne navigue pas,
   et explique pourquoi au survol. Balise <span>, pas <a> : pas de lien mort. */
#page-container .lp-lien--inactif{
  color:var(--lp-encre-discrete);
  border-bottom-color:rgba(191,172,99,.45);
  cursor:default;
}
#page-container .lp-lien--inactif:hover,
#page-container .lp-lien--inactif:focus-visible{
  letter-spacing:.16em;
  color:var(--lp-encre-discrete);
}

/* Infobulle de marque, alimentee par l'attribut data-info. */
.lp-info{ position:relative; }
.lp-info::after{
  content:attr(data-info);
  position:absolute;
  left:0;
  top:calc(100% + .6rem);
  z-index:5;
  width:max-content;
  max-width:20rem;
  padding:.6rem .85rem;
  background:var(--lp-profond);
  color:var(--lp-sur-profond);
  font-family:var(--lp-corps);
  font-size:.75rem;
  font-weight:300;
  letter-spacing:.01em;
  text-transform:none;
  line-height:1.45;
  border-radius:2px;
  box-shadow:var(--lp-ombre);
  opacity:0;
  visibility:hidden;
  transform:translateY(-4px);
  transition:opacity .22s ease, transform .22s ease, visibility .22s;
  pointer-events:none;
}
.lp-info:hover::after,
.lp-info:focus-visible::after{
  opacity:1;
  visibility:visible;
  transform:none;
}
@media (prefers-reduced-motion:reduce){
  .lp-info::after{ transition:none; }
}

/* Image d'une entree : cadrage 4/3, desaturation levee au survol. */
.lp-fig .et_pb_image_wrap{ overflow:hidden; border-radius:2px; display:block; }
.lp-fig img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  filter:grayscale(.2);
  transition:transform .9s cubic-bezier(.2,.7,.2,1), filter .9s ease;
}
.et_pb_row:hover .lp-fig img{ transform:scale(1.035); filter:grayscale(0); }

/* Liste de criteres, filets et tirets dores. */
#page-container .lp-criteres ul{ list-style:none; margin:.5rem 0 0; padding:0; }
#page-container .lp-criteres li{
  position:relative;
  padding:.85rem 0 .85rem 1.6rem;
  border-top:1px solid var(--lp-filet-tenu);
  font-size:.9375rem;
  color:var(--lp-encre-douce);
  line-height:1.6;
}
#page-container .lp-criteres li:before{
  content:"";
  position:absolute;
  left:0; top:1.45rem;
  width:6px; height:1px;
  background:var(--lp-or);
}

/* Carte sombre. À poser sur une COLONNE Divi. */
.lp-carte{
  background-color:var(--lp-profond);
  padding:clamp(1.75rem,4vw,2.5rem) !important;
  border-radius:3px;
  box-shadow:var(--lp-ombre);
}
#page-container .lp-carte h1,
#page-container .lp-carte h2,
#page-container .lp-carte h3{ color:var(--lp-sur-profond); }
#page-container .lp-carte p{ color:var(--lp-sur-profond-doux); font-size:.9375rem; }
#page-container .lp-carte .lp-label,
#page-container .lp-carte .lp-label p{ color:var(--lp-or); }
#page-container .lp-carte .lp-lien{ color:var(--lp-sur-profond); }

/* Bandeau de chiffres du hero. À poser sur une LIGNE Divi. */
.lp-hero-meta{
  border-top:1px solid var(--lp-filet-clair);
  padding-top:1.5rem !important;
  margin-top:2.5rem !important;
}
#page-container .lp-hero-meta p{
  font-size:.8125rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--lp-sur-profond-doux);
  margin:0;
}
#page-container .lp-hero-meta strong{
  font-family:var(--lp-display);
  font-size:1.35rem;
  font-weight:500;
  letter-spacing:0;
  color:var(--lp-or);
  font-variant-numeric:tabular-nums;
  margin-right:.4rem;
}

/* Sous-titre du hero. Module Texte. */
#page-container .lp-hero-sous p{
  font-size:.8125rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--lp-sur-profond-doux);
}

/* Mention discrete. Module Texte. */
#page-container .lp-mention,
#page-container .lp-mention p{ font-size:.75rem; color:var(--lp-encre-discrete); line-height:1.55; max-width:38ch; }

/* Section a fond creme clair, filets haut et bas. À poser sur une SECTION. */
.lp-registre{
  background-color:var(--lp-creme-clair);
  border-top:1px solid var(--lp-filet-tenu);
  border-bottom:1px solid var(--lp-filet-tenu);
}
/* Entree du registre : filet superieur. À poser sur une LIGNE. */
.lp-entree{ border-top:1px solid var(--lp-filet); }
.lp-entree:last-of-type{ border-bottom:1px solid var(--lp-filet); }

/* --------------------------------------------------------------------------
   Formulaire de contact (module natif Divi)

   Divi marque certains champs comme « demi-largeur » mais les laisse en
   display:block sans flottement : ils occupent 50% tout en s'empilant, chacun
   decale de la marge du precedent. Une disposition en flex remet les deux cas
   d'aplomb sans dependre du mecanisme de flottement de Divi.
   -------------------------------------------------------------------------- */
.lp-contact .et_pb_contact_form_container{ margin:0; }
.lp-contact .et_pb_contact_main_title{ display:none; }

#page-container .lp-contact .et_pb_contact_form{
  display:flex;
  flex-wrap:wrap;
  column-gap:.75rem;
  align-items:flex-start;
  max-width:34rem;
}
#page-container .lp-contact .et_pb_contact_field{
  width:100%;
  margin:0;
  padding:0 0 .6rem 0;
}
@media (min-width:768px){
  #page-container .lp-contact .et_pb_contact_field.et_pb_contact_field_half{
    width:calc(50% - .375rem);
  }
}
#page-container .lp-contact .et_pb_contact_field.et_pb_contact_field_last{ margin-left:0; }
#page-container .lp-contact .et_contact_bottom_container{
  width:100%;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem;
  margin:.6rem 0 0;
  float:none;
  text-align:left;
}

#page-container .lp-contact .et_pb_contact_form input[type="text"],
#page-container .lp-contact .et_pb_contact_form input[type="email"],
#page-container .lp-contact .et_pb_contact_form textarea,
#page-container .lp-contact .et_pb_contact_form .input{
  font-family:var(--lp-corps);
  font-weight:300;
  font-size:.875rem;
  line-height:1.5;
  color:var(--lp-encre);
  background-color:#FFFFFF;
  border:1px solid var(--lp-filet);
  border-radius:2px;
  padding:.6rem .75rem;
  width:100%;
  transition:border-color .25s ease, box-shadow .25s ease;
}
#page-container .lp-contact .et_pb_contact_form .input:focus,
#page-container .lp-contact .et_pb_contact_form textarea:focus{
  outline:none;
  border-color:var(--lp-or);
  box-shadow:0 0 0 3px rgba(191,172,99,.18);
}
#page-container .lp-contact .et_pb_contact_form .input::placeholder,
#page-container .lp-contact .et_pb_contact_form textarea::placeholder{
  color:var(--lp-encre-discrete);
  opacity:1;
}
#page-container .lp-contact .et_pb_contact_form textarea{ min-height:7.5rem; resize:vertical; }

/* Question anti-robot : sur une seule ligne, alignee avec le bouton. */
#page-container .lp-contact .et_pb_contact_right{
  display:flex;
  align-items:center;
  gap:.55rem;
  margin:0;
  width:auto;
  float:none;
  font-family:var(--lp-corps);
  font-size:.8125rem;
  color:var(--lp-encre-discrete);
}
#page-container .lp-contact .et_pb_contact_captcha_question{
  font-size:.8125rem;
  color:var(--lp-encre-douce);
  white-space:nowrap;
}
#page-container .lp-contact .et_pb_contact_captcha{
  width:3.4rem;
  text-align:center;
  padding:.4rem .3rem;
}
#page-container .lp-contact .et_pb_contact_submit{
  margin:0;
  float:none;
  padding:.7rem 1.3rem;
  font-size:.6875rem;
}

/* Messages de retour */
#page-container .lp-contact .et-pb-contact-message p{
  font-size:.9375rem;
  color:var(--lp-encre-douce);
  padding:.9rem 1.1rem;
  border-left:2px solid var(--lp-or);
  background:rgba(191,172,99,.08);
  border-radius:0 2px 2px 0;
}

/* --------------------------------------------------------------------------
   Pied de page — derniere SECTION de la page d'accueil, fond profond.
   -------------------------------------------------------------------------- */
#page-container .lp-pied p{
  color:var(--lp-sur-profond-doux);
  font-size:.875rem;
}
#page-container .lp-pied a{
  color:var(--lp-or);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:border-color .25s ease;
}
#page-container .lp-pied a:hover{ border-bottom-color:var(--lp-or); }
#page-container .lp-pied .lp-label,
#page-container .lp-pied .lp-label p{ color:var(--lp-or); }
#page-container .lp-pied-marque p{
  font-family:var(--lp-display);
  font-size:1.25rem;
  color:var(--lp-sur-profond);
  margin:0;
}
.lp-pied-bas{ border-top:1px solid var(--lp-filet-clair); }
#page-container .lp-pied-bas p{
  font-size:.75rem;
  letter-spacing:.06em;
}

/* Le pied natif de Divi fait doublon : zones de widgets videes et barre de
   credits masquee. Le pied du site est la derniere section de la page. */
#main-footer #footer-widgets,
#main-footer #footer-bottom{ display:none; }

/* ==========================================================================
   4. Accessibilite
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  .lp-fig img, .lp-lien, #page-container .et_pb_button{ transition:none; }
}
