/* =====================================================================
   SIT_LALUNET_refresh.css : coup de jeune du site (claude 2026-10-20)
   Surcouche chargee en dernier par index.php, apres toutes les autres CSS.
   Charte conservee (violet / turquoise, titres en Signika) ; texte en
   Nunito, coins arrondis, ombres douces, boutons "pilule".
   Pour revenir a l'ancien rendu : retirer les 2 lignes <link> marquees
   "coup de jeune" dans index.php.
   ===================================================================== */

:root {
  --violet: #340040;
  --violet-hover: #50205f;
  --turquoise: #4fa89d;
  --turquoise-fonce: #3e8d83;
  --turquoise-clair: #83c2bb;
  --menthe: #eef7f5;
  --texte: #4a3d50;
  --rayon: 18px;
  --ombre: 0 10px 30px rgba(52, 0, 64, .08);
  --ombre-hover: 0 18px 40px rgba(52, 0, 64, .14);
  --police-texte: 'Nunito', 'Oxygen', sans-serif;
  --police-titre: 'Signika', sans-serif;
}

/* ---------- Texte ---------- */
body {
  font-family: var(--police-texte);
  font-size: 16px;
  line-height: 1.65;
  color: var(--texte);
}
h2 { letter-spacing: -.01em; }

/* Surlignage des mots-cles des titres : trait "marqueur" fin et arrondi */
h2 span:after {
  height: .32em;
  bottom: .1em;
  left: -.08em;
  width: calc(100% + .16em);
  background-color: var(--turquoise-clair);
  opacity: .65;
  border-radius: .2em;
}

/* ---------- Boutons ---------- */
.button_1,
.btn-style-one,
.btn-style-three {
  border-radius: 999px;
  padding: 13px 30px;
  font-family: var(--police-titre);
  font-weight: 600;
  font-size: 16px;
  line-height: 1.3;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.button_1 {
  display: inline-flex;
  width: auto;
  min-width: 190px;
  background-color: var(--turquoise);
  box-shadow: 0 8px 20px rgba(79, 168, 157, .3);
}
.button_1:hover,
.button_1:focus {
  transform: translateY(-2px);
  background-color: var(--turquoise-fonce);
  box-shadow: 0 12px 26px rgba(79, 168, 157, .38);
}
.btn-style-one,
.btn-style-three {
  box-shadow: 0 8px 20px rgba(52, 0, 64, .22);
}
.btn-style-one:hover,
.btn-style-three:hover {
  transform: translateY(-2px);
  background: var(--violet-hover);
  color: #fff;
}

/* ---------- En-tete ---------- */
/* pas d'ombre au repos : elle grisait le biseau blanc au-dessus du bandeau de titre ;
   seulement quand l'en-tete reste colle en haut au defilement */
#header {
  background-color: #fff;
  box-shadow: none;
}
.scroll_down #header { box-shadow: 0 2px 22px rgba(52, 0, 64, .08); }
.header-top { background-color: var(--menthe); }
.header-top .inner-container { border-bottom: 0; }
#menu_haut ul > li > a { font-family: var(--police-texte); font-weight: 600; }
/* les libelles sont deja bien ecrits en base ; "capitalize" donnait "Secteurs D'activite" */
#menu_haut a { text-transform: none !important; }
#menu_haut ul > li > a:hover { color: var(--turquoise) !important; }
#menu_haut > ul > li:nth-child(1) > a,
#menu_haut > ul > li:nth-child(1) > a:hover {
  border-radius: 999px;
  padding: 8px 26px;
}
#menu_haut > ul > li:nth-child(1) > a:hover {
  background: var(--turquoise);
  color: #fff !important;
}
/* bandeau de titre des pages interieures : le biseau part desormais d'un en-tete blanc */
.page-heading:before { background-color: #fff; }

/* ---------- Accueil : bandeau principal ---------- */
/* degrade vertical : sa couleur du bas est reprise par la pointe (:after) */
.main-slider {
  padding-top: 80px;
  background:
    radial-gradient(circle at 28% 42%, rgba(255, 255, 255, .28) 0%, transparent 45%),
    linear-gradient(180deg, #86c6bd 0%, #62b2a7 100%);
}
.main-slider:after { background-color: #62b2a7; }
.contain-slide h2 {
  font-size: 46px;
  line-height: 1.08;
  letter-spacing: -.015em;
}
.contain-slide h2 span {
  display: inline-block;
  margin-bottom: 14px;
  padding: 7px 16px;
  border-radius: 999px;
  background: #fff;
  color: var(--violet);
  font-size: 15px;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.contain-slide h2 span:after { display: none; }
.contain-slide p {
  font-size: 17px;
  line-height: 1.6;
  margin: 18px 0 26px;
}
.contain-slide a {
  display: inline-flex;
  width: auto;
  padding: 15px 32px;
  border-radius: 999px;
  background-color: var(--violet);
  color: #fff;
  font-family: var(--police-titre);
  font-weight: 600;
  font-size: 17px;
  margin-bottom: 24px;
  box-shadow: 0 8px 18px rgba(52, 0, 64, .25);
}
.contain-slide a:hover,
.contain-slide a:focus {
  transform: translateY(-2px);
  background-color: var(--violet-hover);
  color: #fff;
}
.contain-slide a i,
.contain-slide a:hover i {
  opacity: 1;
  font-size: 16px;
  color: var(--turquoise-clair);
}

/* ---------- Accueil : avantages ---------- */
.call-to-action-section .row {
  display: flex;
  flex-wrap: wrap;
  row-gap: 24px;
}
.call-to-action-section .front {
  height: 100%;
  padding: 34px 22px 28px;
  border-radius: var(--rayon);
  background: #fff;
  box-shadow: var(--ombre);
  transition: transform .25s ease, box-shadow .25s ease;
}
.call-to-action-section .front:hover {
  transform: translateY(-4px);
  box-shadow: var(--ombre-hover);
}
.call-to-action-section .front h3 { margin-top: 18px; font-size: 20px; }

/* ---------- Accueil : conception / eco-conception ---------- */
.caracteristiques .step:nth-child(2n+1) { background-color: var(--menthe); }
.caracteristiques .step p,
.caracteristiques .step ul li { font-size: 16px; }
.caracteristiques .step ul li span:first-child i { color: var(--turquoise); }

/* ---------- Accueil : chiffres ---------- */
.counter-section:before {
  background: linear-gradient(135deg, #5aaea3 0%, var(--turquoise-fonce) 100%);
}

/* ---------- Accueil : actualites ---------- */
.news-block .inner-box {
  overflow: hidden;
  border-radius: var(--rayon);
  background: #fff;
  box-shadow: var(--ombre);
  transition: transform .25s ease, box-shadow .25s ease;
}
.news-block .inner-box:hover {
  transform: translateY(-4px);
  box-shadow: var(--ombre-hover);
}
.news-block .inner-box .image { overflow: hidden; }
.news-block .inner-box .image img { transition: transform .5s ease; }
.news-block .inner-box:hover .image img { transform: scale(1.04); }
.news-block .inner-box .image .post-date {
  left: 16px;
  bottom: 16px;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 14px;
}
.news-block .lower-box { padding: 20px 24px 24px; }
.news-section .read-more {
  border-bottom: 0;
  color: var(--turquoise);
  font-weight: 700;
  text-decoration: none;
}
.news-section .read-more:after { content: ' \2192'; }
.news-section .sidebar-news {
  overflow: hidden;
  border-radius: var(--rayon);
}

/* ---------- Accueil : avis clients ---------- */
.testimonial-section.style-two {
  background:
    radial-gradient(circle at 88% 15%, rgba(131, 194, 187, .22) 0%, transparent 38%),
    radial-gradient(circle at 5% 95%, rgba(131, 194, 187, .14) 0%, transparent 32%),
    var(--violet);
}
.testimonial-section .testimonial-block p { font-size: 18px; line-height: 1.6; }

/* ---------- Accueil : questions + videos ---------- */
.help {
  max-width: 1240px;
  margin: 70px auto;
  border-radius: 28px;
  background: var(--menthe);
}
.help .btn_avis { gap: 14px; }
.help .video-container {
  overflow: hidden;
  border-radius: 14px;
  box-shadow: var(--ombre);
}
.concours { background-color: #fff; border-top: 1px solid #eef0ef; }

/* ---------- Pied de page ---------- */
.main-footer:before { background-color: var(--violet); }
.main-footer .upper-box { border-bottom-color: rgba(255, 255, 255, .15); }
.main-footer .footer-bottom { background-color: rgba(0, 0, 0, .22); }
.main-footer .links-widget .list li a:hover { color: var(--turquoise-clair); }
.main-footer input[type="email"] {
  border-radius: 999px;
  padding-left: 22px;
  padding-right: 22px;
}
.main-footer .theme-btn,
.main-footer .emailed-form .form-group button {
  border-radius: 999px;
  font-family: var(--police-titre);
  font-weight: 600;
}

/* ---------- Boutique : cartes produits ---------- */
.liste_produits > table > tbody > tr > td {
  overflow: hidden;
  padding-bottom: 18px;
  border-radius: var(--rayon);
  background: #fff;
  box-shadow: var(--ombre);
  font-family: var(--police-texte) !important;
  transition: transform .25s ease, box-shadow .25s ease;
}
.liste_produits > table > tbody > tr > td:hover {
  transform: translateY(-4px);
  box-shadow: var(--ombre-hover);
}
/* "Lalunet' - Lalunet' produit" : ligne de categorie redondante */
#centreetdroite .liste_produits > table > tbody > tr > td h3 + p { display: none; }
#centreetdroite .liste_produits > table > tbody > tr > td h3 { padding: 16px 16px 6px; }
.liste_produits > table > tbody > tr > td p,
.info_liste { padding: 0 16px; }
/* Montserrat n'est pas chargee : le prix et les boutons tombaient en police systeme */
.liste_produits .prix {
  font-family: var(--police-titre) !important;
  font-size: 20px !important;
  font-weight: 700;
  color: var(--violet);
}
.liste_produits .prix + table p { font-family: var(--police-texte) !important; }
a.alt {
  color: var(--turquoise);
  text-decoration: none !important;
}
a.alt:hover { color: var(--turquoise-fonce); }
.liste_produits .bouton_panier {
  border-radius: 999px;
  font-family: var(--police-titre);
  font-weight: 600;
  box-shadow: 0 6px 16px rgba(79, 168, 157, .28);
}
.liste_produits .bouton_panier .texte { font-family: var(--police-titre); }
.liste_produits td select {
  border-color: #cfe5e2;
  border-radius: 12px;
}

/* paragraphes de contenu a fond colore (ex. "commande superieure a 5 lunettes") :
   styles poses en ligne dans l'editeur, d'ou les !important */
.paragraphe > p[style*="background-color"] { border-radius: var(--rayon); }
.paragraphe > p[style*="background-color"] > a[style*="background-color"] {
  border-radius: 999px !important;
  font-family: var(--police-titre);
  font-weight: 600;
}

/* bandeau "frais de port offert" : le code promo en etiquette */
.bandeau_promo p span {
  border-radius: 12px;
  font-family: var(--police-titre);
  font-weight: 700;
  letter-spacing: .08em;
}

/* ---------- Fiche produit ---------- */
.right_produit > h3:nth-child(1) {
  color: var(--violet);
  font-size: 32px;
  font-weight: 600;
}
.prix_fiche,
.prix_fiche + table p { font-family: var(--police-titre) !important; }
.prix_fiche strong { color: var(--violet) !important; font-weight: 700; }
.right_produit .bouton_panier {
  border-radius: 999px;
  padding: 12px 32px;
  font-family: var(--police-titre);
  font-weight: 600;
  box-shadow: 0 10px 24px rgba(52, 0, 64, .22);
  transition: transform .2s ease, background-color .2s ease;
}
.right_produit .bouton_panier .texte { font-family: var(--police-titre); }
.right_produit .bouton_panier:hover { transform: translateY(-2px); }
.right_produit select {
  border-color: #cfd8d6;
  border-radius: 12px;
}
.fiche_produit img { border-radius: 12px; }

/* ---------- Panier ---------- */
/* les onglets d'etapes demandaient Montserrat (jamais chargee) */
.relative_panier .intitule_etape { font-family: var(--police-titre); font-weight: 600; }
.mdlPanier p.action input {
  border-radius: 999px !important;
  padding: 12px 30px;
  box-shadow: 0 8px 20px rgba(52, 0, 64, .22);
}
/* "Vider votre panier" : action destructrice, en bouton secondaire */
.mdlPanier p.delete_all a {
  display: inline-block;
  padding: 9px 22px;
  border: 2px solid #e2dbe5;
  border-radius: 999px;
  background: #fff;
  color: var(--violet) !important; /* page_specialie_panier.css force le blanc */
  font-family: var(--police-titre);
  font-weight: 600;
}
.mdlPanier p.delete_all a:hover { border-color: var(--violet); }
.mdlPanier .content_recap { border-radius: var(--rayon); }

/* ---------- Formulaires (contact, compte, panier) ---------- */
input[type="submit"],
.submit {
  padding: 10px 26px;
  border-radius: 999px;
  background-color: var(--violet);
  font-family: var(--police-titre);
  font-weight: 600;
  font-size: 16px !important;
  transition: transform .2s ease, background-color .2s ease;
}
input[type="submit"]:hover,
.submit:hover {
  transform: translateY(-2px);
  background-color: var(--violet-hover);
  color: #fff !important;
}
#centreetdroite input[type="text"],
#centreetdroite input[type="email"],
#centreetdroite input[type="password"],
#centreetdroite input[type="tel"],
#centreetdroite textarea { border-radius: 12px; }
#centreetdroite input:focus,
#centreetdroite textarea:focus,
#centreetdroite select:focus {
  border-color: var(--turquoise);
  box-shadow: 0 0 0 3px rgba(79, 168, 157, .18);
  outline: none;
}

/* ---------- Page Contact : coordonnees + formulaire (index.php, contact_infos.php) ---------- */
.contact-layout {
  display: grid;
  grid-template-columns: 330px 1fr;
  gap: 40px;
  align-items: start;
  max-width: 1170px;
  margin: 50px auto 70px;
}
.contact-infos {
  position: sticky;
  top: 110px;
  padding: 36px 30px 30px;
  border-radius: 24px;
  background:
    radial-gradient(circle at 90% 10%, rgba(131, 194, 187, .28) 0%, transparent 45%),
    var(--violet);
  color: #fff;
  box-shadow: 0 16px 40px rgba(52, 0, 64, .22);
}
.contact-infos h2 { margin: 0 0 10px; color: #fff; font-size: 32px; }
.contact-infos p { margin: 0 0 24px; color: rgba(255, 255, 255, .85); }
.contact-infos ul { margin: 0 0 26px; padding: 0; list-style: none; }
.contact-infos li {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
  line-height: 1.4;
}
.contact-infos li .fa {
  flex: 0 0 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .12);
  color: var(--turquoise-clair);
  font-size: 18px;
  line-height: 42px;
  text-align: center;
}
.contact-infos li a { color: #fff; font-weight: 700; }
.contact-infos li a:hover { color: var(--turquoise-clair); }
.contact-infos .contact-faq {
  display: block;
  margin-bottom: 14px;
  padding: 12px 20px;
  border-radius: 999px;
  background: var(--turquoise);
  color: #fff;
  font-family: var(--police-titre);
  font-weight: 600;
  text-align: center;
  transition: transform .2s ease, background-color .2s ease;
}
.contact-infos .contact-faq:hover { transform: translateY(-2px); background: var(--turquoise-fonce); color: #fff; }
.contact-infos .contact-fb { display: block; color: rgba(255, 255, 255, .8); font-size: 14px; text-align: center; }
.contact-infos .contact-fb:hover { color: #fff; }

/* le texte d'intro du formulaire repete l'e-mail deja affiche dans l'encadre */
.contact-form .mdl_formulaire > p:first-child:has(+ form) { display: none; }
.contact-form form fieldset,
.contact-form .mdl_formulaire:not(:has(form)) {
  margin: 0;
  padding: 36px 40px 30px;
  border: 0;
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--ombre);
}
.contact-form form fieldset {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 22px;
}
/* annule "#centreetdroite div.paragraphe:nth-of-type(1) { padding-top: 30px }" */
#centreetdroite .contact-form > div.paragraphe { margin-top: 0; padding-top: 0; }
.contact-form fieldset > p { margin: 0 0 18px; }
.contact-form fieldset > p:has(textarea),
.contact-form fieldset > p:has(input[name="captchaResult"]),
.contact-form fieldset > p:has(input[type="submit"]) { grid-column: 1 / -1; }
.contact-form fieldset label {
  display: inline-block;
  margin-bottom: 6px;
  color: var(--violet);
  font-family: var(--police-titre);
  font-size: 15px;
  font-weight: 600;
}
.contact-form fieldset .obl { color: var(--turquoise); }
/* indication "(France Metropolitaine, DROM-TOM...)" : texte libre dans le meme paragraphe */
.contact-form fieldset > p:has(textarea) { color: #8b7f90; font-size: 13px; }
.contact-form fieldset input[type="text"],
.contact-form fieldset select,
.contact-form fieldset textarea {
  width: 100%;
  max-width: none;
  margin-top: 2px;
  padding: 12px 16px;
  border: 1.5px solid #dfe7e5;
  border-radius: 12px;
  background-color: #fbfdfc;
  color: var(--texte);
  font-family: var(--police-texte);
  font-size: 16px;
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.contact-form fieldset input[type="text"],
.contact-form fieldset select { height: 50px; }
.contact-form fieldset select {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23340040' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
}
/* le style d'origine impose height: 150px !important a tous les textarea */
.contact-form fieldset textarea { height: 90px !important; resize: vertical; }
.contact-form fieldset textarea#QST_4 { height: 170px !important; }
.contact-form fieldset input:focus,
.contact-form fieldset select:focus,
.contact-form fieldset textarea:focus {
  border-color: var(--turquoise);
  background-color: #fff;
  box-shadow: 0 0 0 4px rgba(79, 168, 157, .15);
  outline: none;
}
/* anti-robot : encadre discret, champ de reponse court */
.contact-form fieldset > p:has(input[name="captchaResult"]) {
  padding: 16px 20px;
  border-radius: 14px;
  background: var(--menthe);
  color: var(--texte);
  font-size: 15px;
}
.contact-form fieldset .infobulle { display: none; }
/* "#contenu input[type=text]" impose width: 100% !important : la reponse passait a la ligne */
.contact-form fieldset input[name="captchaResult"] {
  display: inline-block;
  width: 120px !important;
  height: 44px;
  margin-left: 8px;
  vertical-align: middle;
  background-color: #fff;
}
.contact-form fieldset input[type="submit"] {
  padding: 15px 38px;
  font-size: 17px !important;
  box-shadow: 0 10px 24px rgba(52, 0, 64, .22);
}
/* "* Champs obligatoires" : paragraphe de contenu separe, sous la carte */
.contact-form .paragraphe:not(:has(.mdl_formulaire)) p { margin: 12px 0 0 8px; color: #8b7f90; font-size: 13px; }
/* page de remerciement apres envoi */
.contact-form .mdl_formulaire:not(:has(form)) p { margin: 0; font-size: 18px; color: var(--violet); }
.contact-form .mdl_formulaire:not(:has(form)) a { color: var(--turquoise); font-weight: 700; }

@media (max-width: 991px) {
  .contact-layout { grid-template-columns: 1fr; margin: 50px 16px 50px; }
  .contact-infos { position: static; order: 2; }
}
@media (max-width: 600px) {
  .contact-form form fieldset { grid-template-columns: 1fr; padding: 26px 20px 20px; }
  .contact-form fieldset input[name="captchaResult"] { display: block; margin: 10px 0 0; }
}

/* =====================================================================
   Compte client : connexion, inscription, modification, mon compte.
   Le module (lib.user_login.inc.php) n'a presque pas de classes : on cible
   les identifiants de ses formulaires.
     #formIdentificationLog sans tableau = connexion "Deja inscrit(e) ?"
     #formIdentificationLog avec tableau = inscription
     #formCreationLog                    = encadre "Pas encore inscrit(e) ?"
     #formCreationInscription            = modification
   ===================================================================== */

/* --- connexion : les deux encadres, cote a cote (tableau a 2 cases) --- */
table:has(#formCreationLog) { width: 100%; }
table:has(#formCreationLog) > tbody > tr {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
/* le style est pose sur les cases et non sur les formulaires : dans le panier, ce module
   est imbrique dans le formulaire du panier et le navigateur ignore la balise <form>
   imbriquee (#formIdentificationLog n'y existe donc pas) */
table:has(#formCreationLog) > tbody > tr > td {
  display: block;
  width: auto !important;
  padding: 30px 32px;
  border: 0;
  border-radius: 22px;
}
table:has(#formCreationLog) > tbody > tr > td:first-child { background: #fff; box-shadow: var(--ombre); }
table:has(#formCreationLog) > tbody > tr > td:last-child {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--menthe);
}
table:has(#formCreationLog) fieldset { margin: 0; padding: 0; border: 0; }
table:has(#formCreationLog) legend {
  width: 100%;
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  color: var(--violet);
  font-family: var(--police-titre);
  font-size: 24px;
  font-weight: 600;
}
table:has(#formCreationLog) td:first-child p { margin-bottom: 14px; }
table:has(#formCreationLog) td:first-child label { color: var(--violet); font-family: var(--police-titre); font-weight: 600; }
table:has(#formCreationLog) td:first-child a,
#formIdentificationLog a,
#formCreationInscription a { color: var(--turquoise); font-weight: 700; }
table:has(#formCreationLog) input[type="checkbox"],
#formIdentificationLog input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-right: 8px;
  vertical-align: middle;
  accent-color: var(--violet);
}
table:has(#formCreationLog) input[type="submit"] { padding: 12px 34px; }
table:has(#formCreationLog) .infobulle,
#formIdentificationLog .infobulle,
#formCreationInscription .infobulle { display: none; }
/* "Vous inscrire gratuitement." : le lien en bouton, le point final masque */
#formCreationLog p { margin: 0; font-size: 0; }
/* line-height explicite : le paragraphe parent est a font-size 0, et sur mobile une
   hauteur de ligne en "em" heritee tombait a 0 (bouton ecrase) */
#formCreationLog p a {
  display: inline-block;
  padding: 13px 28px !important;
  line-height: 1.3 !important;
  text-align: center;
  border-radius: 999px;
  background: var(--violet);
  color: #fff !important;
  font-family: var(--police-titre);
  font-size: 16px;
  font-weight: 600;
  box-shadow: 0 8px 20px rgba(52, 0, 64, .22);
  transition: transform .2s ease, background-color .2s ease;
}
#formCreationLog p a:hover { transform: translateY(-2px); background: var(--violet-hover); }
/* dans le panier, le texte generique "Mon compte utilisateur / Depuis cet ecran..." n'a pas sa place */
.mdlPanier h3:has(+ p + table #formCreationLog),
.mdlPanier p:has(+ table #formCreationLog) { display: none; }

/* --- inscription et modification : une carte, libelles au-dessus des champs --- */
#formIdentificationLog:has(table),
#formCreationInscription {
  max-width: 760px;
  margin: 10px auto 30px;
  padding: 36px 40px 30px;
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--ombre);
}
#formIdentificationLog:has(table) fieldset,
#formCreationInscription fieldset { margin: 0; padding: 0; border: 0; }
#formIdentificationLog:has(table) legend,
#formCreationInscription legend {
  display: block;
  width: 100%;
  margin: 0 0 4px;
  padding: 0;
  border: 0;
  color: var(--violet);
  font-family: var(--police-titre);
  font-size: 28px;
  font-weight: 600;
}
#formIdentificationLog:has(table) fieldset > p:first-of-type,
#formCreationInscription fieldset > p:first-of-type { margin-bottom: 22px; color: #8b7f90; font-size: 14px; }
#formIdentificationLog fieldset table,
#formCreationInscription fieldset table { display: block; width: 100%; }
#formIdentificationLog fieldset tbody,
#formCreationInscription fieldset tbody {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 20px;
}
#formIdentificationLog fieldset tr,
#formCreationInscription fieldset tr {
  display: flex;
  flex-direction: column;
  grid-column: 1 / -1;
  margin-bottom: 16px;
}
#formIdentificationLog fieldset td,
#formCreationInscription fieldset td { display: block; width: auto !important; padding: 0; }
/* champs courts : deux par ligne */
#formIdentificationLog fieldset tr:has([name="str_password"]),
#formIdentificationLog fieldset tr:has([name="str_password_confirmation"]),
#formIdentificationLog fieldset tr:has([name="str_telephone"]),
#formIdentificationLog fieldset tr:has([name="str_code_postal"]),
#formIdentificationLog fieldset tr:has([name="str_ville"]),
#formIdentificationLog fieldset tr:has([name="str_pays"]),
#formCreationInscription fieldset tr:has([name="str_password"]),
#formCreationInscription fieldset tr:has([name="str_password_confirmation"]),
#formCreationInscription fieldset tr:has([name="str_prenom"]):not(:has([name="str_nom"])),
#formCreationInscription fieldset tr:has([name="str_nom"]):not(:has([name="str_prenom"])),
#formCreationInscription fieldset tr:has([name="str_pseudo"]),
#formCreationInscription fieldset tr:has([name="str_organisme"]),
#formCreationInscription fieldset tr:has([name="str_telephone"]),
#formCreationInscription fieldset tr:has([name="str_code_postal"]),
#formCreationInscription fieldset tr:has([name="str_ville"]),
#formCreationInscription fieldset tr:has([name="str_pays"]) { grid-column: auto; }
/* "Prenom - Nom" dans une seule case (inscription) : cote a cote, tiret masque */
#formIdentificationLog td:has([name="str_prenom"]):has([name="str_nom"]),
#formCreationInscription td:has([name="str_complement_adresse1"]) {
  display: flex;
  gap: 14px;
  font-size: 0;
}
#formIdentificationLog fieldset label,
#formCreationInscription fieldset label {
  display: inline-block;
  margin-bottom: 6px;
  color: var(--violet);
  font-family: var(--police-titre);
  font-size: 15px;
  font-weight: 600;
}
#formIdentificationLog fieldset em,
#formCreationInscription fieldset em { display: block; margin-top: 6px; color: #8b7f90; font-size: 13px; }
#formIdentificationLog fieldset br,
#formCreationInscription fieldset td br { display: none; }

/* --- champs de ces formulaires (et de la connexion) --- */
table:has(#formCreationLog) input[type="text"],
table:has(#formCreationLog) input[type="password"],
#formIdentificationLog input[type="text"],
#formIdentificationLog input[type="password"],
#formIdentificationLog select,
#formCreationInscription input[type="text"],
#formCreationInscription input[type="password"],
#formCreationInscription select {
  width: 100% !important;
  max-width: none;
  height: 48px;
  padding: 12px 16px;
  border: 1.5px solid #dfe7e5;
  border-radius: 12px;
  background-color: #fbfdfc;
  color: var(--texte);
  font-family: var(--police-texte);
  font-size: 16px;
}
/* liste des pays (inscription, modification) : meme fleche que le formulaire de contact */
#formIdentificationLog select,
#formCreationInscription select {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23340040' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
}
table:has(#formCreationLog) input:focus,
#formIdentificationLog select:focus,
#formIdentificationLog input:focus,
#formCreationInscription input:focus,
#formCreationInscription select:focus {
  border-color: var(--turquoise);
  background-color: #fff;
  box-shadow: 0 0 0 4px rgba(79, 168, 157, .15);
  outline: none;
}
/* boutons : "Valider" en principal, "Annuler" en secondaire */
#formIdentificationLog fieldset > p:has(input[type="submit"]),
#formCreationInscription fieldset > p:has(input[type="submit"]) {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 8px;
}
#formIdentificationLog input[type="button"],
#formIdentificationLog input[type="reset"],
#formCreationInscription input[type="button"],
#formCreationInscription input[type="reset"] {
  padding: 10px 26px;
  border: 2px solid #e2dbe5;
  border-radius: 999px;
  background: #fff;
  color: var(--violet) !important;
  font-family: var(--police-titre);
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
}
/* mentions sous le formulaire d'inscription */
#formIdentificationLog:has(table) ~ p {
  max-width: 760px;
  margin: 0 auto 8px;
  color: #8b7f90;
  font-size: 13px;
}

/* --- mon compte (connecte) --- */
.fiche-compte {
  max-width: 760px;
  margin: 10px auto 40px;
  padding: 36px 40px;
  border: 0;
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--ombre);
}
.fiche-compte h3 { margin: 0 0 12px; padding: 0; border: 0; color: var(--violet); font-size: 28px; }
/* l'ancien style force fond noir (2e bouton), texte blanc !important et majuscules */
.fiche-compte .btn-compte,
.fiche-compte .btn-compte + .btn-compte {
  display: inline-block;
  margin: 10px 8px 0 0;
  padding: 10px 22px;
  border: 2px solid #e2dbe5;
  border-radius: 999px;
  background: #fff;
  color: var(--violet) !important;
  font-family: var(--police-titre);
  font-size: 15px !important;
  font-weight: 600;
  text-transform: none;
  transition: border-color .2s ease;
}
.fiche-compte .btn-compte:first-child {
  border-color: var(--violet);
  background: var(--violet);
  color: #fff !important;
}
.fiche-compte .btn-compte::first-letter { text-transform: uppercase; }
.fiche-compte .btn-compte:hover { border-color: var(--violet); }
.fiche-compte .btn-compte[href*="USER_DECONNEXION"] {
  padding-left: 0;
  border-color: transparent;
  background: transparent;
  color: #8b7f90 !important;
}

/* =====================================================================
   Panier, etape 2 : livraison, avoir, reglement, coordonnees
   (page_specialie_panier.css pose beaucoup de !important, d'ou les miens)
   ===================================================================== */
.mdlPanier h5 {
  margin: 36px 0 14px;
  padding: 0;
  border: 0;
  color: var(--violet);
  font-family: var(--police-titre);
  font-size: 22px;
  font-weight: 600;
}
/* choix de livraison / de reglement : cartes, la carte choisie est mise en avant */
.mdlPanier .mode_livraison {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 14px;
  margin-bottom: 12px;
  padding: 16px 20px;
  border: 2px solid #e6ecea;
  border-radius: 16px;
  background: #fff;
  font-size: 16px;
  transition: border-color .2s ease, background-color .2s ease;
}
.mdlPanier .mode_livraison:hover { border-color: var(--turquoise-clair); }
.mdlPanier .mode_livraison:has(.inline-check input:checked) {
  border-color: var(--violet);
  background: var(--menthe);
}
.mdlPanier .mode_livraison .block_liv {
  flex: 1;
  width: auto !important;
  padding: 0;
}
.mdlPanier .block_liv span:first-child {
  margin-bottom: 2px;
  color: var(--violet);
  font-family: var(--police-titre);
  font-size: 17px;
  font-weight: 600;
}
.mdlPanier .desc_liv { display: block; color: #8b7f90; font-size: 14px; }
.mdlPanier .mode_livraison .tarif_liv {
  width: auto !important;
  margin-left: auto;
  padding: 0;
  color: var(--violet);
  font-family: var(--police-titre);
  font-size: 18px;
  text-align: right !important;
}
.mdlPanier .mode_livraison .colissimo-widget-zone { flex-basis: 100%; }
/* bouton radio maison : couleurs de la charte */
.mdlPanier .inline-check [type="radio"] + label:before { border-color: #cfc6d3; background: #fff; }
.mdlPanier .inline-check [type="radio"]:checked + label:before { border-color: var(--violet); }
.mdlPanier .inline-check [type="radio"] + label:after { background: var(--violet); }

/* champs : code avoir, coordonnees, commentaire */
.mdlPanier .choix_avoir input,
.mdlPanier .adresse_facturation input,
.mdlPanier .adresse_facturation select,
.mdlPanier .input_panier textarea {
  height: 48px;
  padding: 12px 16px !important;
  border: 1.5px solid #dfe7e5 !important;
  border-radius: 12px;
  background-color: #fbfdfc;
  color: var(--texte);
  font-family: var(--police-texte);
  font-size: 16px;
}
.mdlPanier .choix_avoir input { max-width: 360px; }
.mdlPanier .input_panier textarea { width: 100%; height: 110px !important; }
.mdlPanier .adresse_facturation select {
  width: 100%;
  -webkit-appearance: none;
  appearance: none;
  padding-right: 42px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23340040' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
}
.mdlPanier .choix_avoir input:focus,
.mdlPanier .adresse_facturation input:focus,
.mdlPanier .adresse_facturation select:focus,
.mdlPanier .input_panier textarea:focus {
  border-color: var(--turquoise) !important;
  background-color: #fff;
  box-shadow: 0 0 0 4px rgba(79, 168, 157, .15) !important;
  outline: none;
}
.mdlPanier .choix_avoir label,
.mdlPanier .adresse_facturation label,
.mdlPanier .input_panier label {
  color: var(--violet);
  font-family: var(--police-titre);
  font-size: 15px !important;
  font-weight: 600;
}
/* coordonnees sur deux colonnes, la ligne d'adresse sur toute la largeur */
.mdlPanier .adresse_facturation table,
.mdlPanier .adresse_facturation tbody,
.mdlPanier .adresse_facturation tr { display: block; width: 100%; }
.mdlPanier .adresse_facturation td {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 20px;
}
.mdlPanier .adresse_facturation td > p {
  width: auto !important;
  margin: 0 0 16px !important;
  padding: 0;
}
.mdlPanier .adresse_facturation td > p.adresse_line {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: 1fr 1fr;
  column-gap: 20px;
}
.mdlPanier .adresse_facturation .adresse_line label { grid-column: 1 / -1; padding: 0; }
.mdlPanier .adresse_facturation .adresse_line input { width: 100% !important; margin: 0; }
/* CGV : mise en evidence, cases a cocher lisibles */
.mdlPanier input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin-left: 8px;
  vertical-align: middle;
  accent-color: var(--violet);
}
.mdlPanier p:has(> input[name="bln_accepte_cgv"]) {
  padding: 14px 18px;
  border-radius: 14px;
  background: var(--menthe);
}
.mdlPanier p:has(> input[name="bln_accepte_cgv"]) a { color: var(--turquoise); font-weight: 700; }
/* "Etape precedente" en bouton secondaire */
.mdlPanier p.action input[value^="Etape pr"] {
  margin-right: 10px;
  border: 2px solid #e2dbe5;
  background: #fff;
  color: var(--violet) !important;
  box-shadow: none;
}

/* =====================================================================
   Widget Colissimo "point retrait" (panier, etape 2).
   Le module (mdl_panier_creation_new.php) pose deja des corrections en !important
   sous "#widget-container ..." : le prefixe .mdlPanier rend ces regles-ci plus precises.
   ===================================================================== */
.mdlPanier .mode_livraison_retrait .colissimo-widget-zone { margin-top: 14px; }
.mdlPanier .legend_point { margin: 0 0 10px; color: var(--texte); font-size: 15px; }
.mdlPanier #widget-container .widget_colissimo_contenu {
  overflow: hidden;
  border: 1px solid #e6ecea;
  border-radius: 16px;
  background: #fff;
}
.mdlPanier #widget-container .widget_colissimo_text_bold { color: var(--violet) !important; }
.mdlPanier #widget-container .widget_colissimo_text_normal,
.mdlPanier #widget-container .widget_colissimo_text_petit { color: var(--texte) !important; }

/* barre d'adresse : un seul bloc arrondi */
.mdlPanier #widget-container input#widget_colissimo_adresse,
.mdlPanier #widget-container .widget_colissimo_input_text_normal {
  height: 44px !important;
  border: 1.5px solid #dfe7e5 !important;
  border-radius: 12px 0 0 12px !important;
  background-color: #fbfdfc !important;
  font-family: var(--police-texte);
}
.mdlPanier #widget-container input#widget_colissimo_adresse:focus {
  border-color: var(--turquoise) !important;
  background-color: #fff !important;
  outline: none;
}
.mdlPanier #widget-container .dropdown-selected { height: 44px !important; }
.mdlPanier #widget-container .widget_colissimo_mode_transport_dropdown {
  border-radius: 0 12px 12px 0 !important;
}

/* liste des points : le point choisi en avant, les autres lisibles (0.3 d'origine) */
.mdlPanier #widget-container .widget_colissimo_PDR {
  border-left-width: 4px !important;
  transition: background-color .2s ease, opacity .2s ease;
}
.mdlPanier #widget-container .widget_colissimo_PDR:hover { background: #f7fbfa !important; }
.mdlPanier #widget-container .widget_colissimo_PDR.widget_colissimo_grise { opacity: .55 !important; }
.mdlPanier #widget-container .widget_colissimo_PDR.widget_colissimo_grise:hover { opacity: 1 !important; }
.mdlPanier #widget-container .widget_colissimo_PDR.widget_colissimo_selected {
  opacity: 1 !important;
  border-left-color: var(--violet) !important;
  background: var(--menthe) !important;
}
/* colonnes a largeur fixe : la 2e colonne ("Point retrait", distance) debordait sur mobile */
.mdlPanier #widget-container .widget_colissimo_PDR > table { table-layout: fixed !important; }
.mdlPanier #widget-container .widget_colissimo_PDR td.widget_colissimo_width_70_60 { width: 62% !important; }
/* horaires : la colonne vide de 60 % les ecrasait sur deux lignes */
.mdlPanier #widget-container .widget_colissimo_detailsPDR td.widget_colissimo_w60 { display: none !important; }
.mdlPanier #widget-container .widget_colissimo_detailsPDR .widget_colissimo_text_petit { white-space: nowrap; }

/* bouton "me faire livrer a cette adresse" aux couleurs du site */
.mdlPanier #widget-container .widget_colissimo_bouton_validation,
.mdlPanier #widget-container .widget_colissimo_bouton_confirmation {
  border-radius: 999px !important;
  background: var(--violet) !important;
  box-shadow: 0 8px 20px rgba(52, 0, 64, .22);
  transition: background-color .2s ease;
}
.mdlPanier #widget-container .widget_colissimo_bouton_validation:hover,
.mdlPanier #widget-container .widget_colissimo_bouton_confirmation:hover { background: var(--violet-hover) !important; }
.mdlPanier #widget-container .widget_colissimo_text_bouton {
  font-family: var(--police-titre) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
}
/* carte : le module la masquait (display: none !important). On la reaffiche a cote de la
   liste sur ordinateur, au-dessus sur mobile. Clic sur un marqueur = selection du point
   dans la liste ; la validation remplit les champs caches comme avant (teste le 20/10/2026). */
.mdlPanier #widget-container .widget_colissimo_map {
  display: block !important;
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 480px !important;
  border: 0 !important;
}
@media (min-width: 992px) {
  .mdlPanier #widget-container .widget_colissimo_contenu {
    display: grid !important;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
  .mdlPanier #widget-container .widget_colissimo_contenu > * { grid-column: 1 / -1; }
  .mdlPanier #widget-container .widget_colissimo_contenu > .widget_colissimo_close { grid-row: 1; justify-self: end; }
  .mdlPanier #widget-container .widget_colissimo_contenu > .widget_colissimo_table_adresse { grid-row: 2; }
  .mdlPanier #widget-container .widget_colissimo_contenu > .widget_colissimo_filtres { grid-row: 3; }
  .mdlPanier #widget-container .widget_colissimo_contenu > .widget_colissimo_autocomplete { grid-row: 4; }
  .mdlPanier #widget-container .widget_colissimo_contenu > .widget_colissimo_liste {
    grid-column: 1;
    grid-row: 5;
    max-height: 480px !important;
  }
  .mdlPanier #widget-container .widget_colissimo_contenu > .widget_colissimo_map { grid-column: 2; grid-row: 5; }
}
@media (max-width: 991px) {
  .mdlPanier #widget-container .widget_colissimo_contenu { display: flex !important; flex-direction: column; }
  .mdlPanier #widget-container .widget_colissimo_autocomplete { order: 3; }
  .mdlPanier #widget-container .widget_colissimo_map { order: 4; height: 260px !important; }
  .mdlPanier #widget-container .widget_colissimo_liste { order: 5; max-height: 420px !important; }
}
/* carte et liste toujours visibles ensemble : le bouton flottant liste/carte (mobile) est inutile */
.mdlPanier #widget-container .widget_colissimo_map_liste,
.mdlPanier #widget-container .widget_colissimo_map_zone,
.mdlPanier #widget-container .widget_colissimo_map_icone { display: none !important; }
/* mode de trajet (a pied, velo, voiture) : icone et fleche sur une ligne */
.mdlPanier #widget-container .dropdown-selected {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px;
}

/* rappel du point choisi, masque tant qu'aucun point n'est choisi */
.mdlPanier .retrait_chrono {
  margin: 14px 0 0;
  padding: 12px 16px;
  border-left: 4px solid var(--turquoise);
  border-radius: 12px;
  background: #fff;
  font-size: 15px;
}
.mdlPanier .retrait_chrono:has(#widget_info_chrono:empty) { display: none !important; }
.mdlPanier #widget_info_chrono { display: block; margin-top: 4px; color: var(--violet); font-weight: 700; }

/* =====================================================================
   Secteurs d'activite : page mere 51 (intro + sommaire des sous-pages + devis) et
   sous-pages 58-61 (contenu en base, paragraphes PRG_REDACTIONNEL), sur le modele des
   pages "Solutions par secteur" du site Pudu.
   ===================================================================== */
.secteurs-intro { max-width: 860px; margin: 46px auto 10px; text-align: center; }
.secteurs-intro h2 { margin-bottom: 16px; font-size: 40px; }
.secteurs-intro p { font-size: 18px; }
.secteurs-atouts,
.secteur-usages ul {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}
.secteurs-atouts { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 24px; }
.secteurs-atouts li { color: var(--violet); font-family: var(--police-titre); font-weight: 600; }
.secteurs-atouts li:before,
.secteur-usages li:before,
.secteur-carte h3:before {
  content: "\f00c";
  font-family: 'FontAwesome';
  font-weight: normal;
}
.secteurs-atouts li:before { margin-right: 8px; color: var(--turquoise); }

/* page mere : cartes des secteurs (module sommaire des sous-pages), en grandes vignettes */
body.PGS_ZONE_PRESS #liste_lien_page_fille {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  margin: 0 0 50px;
  padding-top: 30px;
}
/* claude 2026-10-21 : cartes ciblees par le style de la page 51 (PGS_ZONE_PRESS) et non plus par
   :has(), absent des navigateurs anciens ; visibles sans attendre le script d'apparition
   (style-pages-filles.css les met a opacity:0 jusqu'a la classe .visible ajoutee en JS) */
body.PGS_ZONE_PRESS #liste_lien_page_fille a { opacity: 1 !important; }
body.PGS_ZONE_PRESS #liste_lien_page_fille a {
  position: relative;
  display: block;
  width: auto !important;
  max-width: none;
  height: 0;
  margin: 0;
  padding: 0 0 125%; /* format 4:5 par le padding : aspect-ratio manque avant iOS 15 */
  overflow: hidden;
  border: 0;
  border-radius: 22px;
  background: var(--menthe);
  box-shadow: var(--ombre);
  opacity: 1;
  transition: transform .25s ease, box-shadow .25s ease;
}
body.PGS_ZONE_PRESS #liste_lien_page_fille a:hover {
  transform: translateY(-4px);
  border: 0;
  box-shadow: var(--ombre-hover);
}
body.PGS_ZONE_PRESS #liste_lien_page_fille a:before { display: none; }
/* degrade bas pour la lisibilite du titre */
body.PGS_ZONE_PRESS #liste_lien_page_fille a:after {
  content: '';
  position: absolute;
  inset: 0;
  top: auto;
  left: 0;
  width: 100%;
  height: 60%;
  opacity: 1 !important;
  background: linear-gradient(180deg, rgba(52, 0, 64, 0) 0%, rgba(52, 0, 64, .55) 45%, rgba(52, 0, 64, .9) 100%);
  z-index: 1;
}
body.PGS_ZONE_PRESS #liste_lien_page_fille div {
  position: absolute;
  inset: 0;
  width: 100% !important;
  max-width: none;
  height: 100%;
}
body.PGS_ZONE_PRESS #liste_lien_page_fille img {
  width: 100% !important;
  max-width: none;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
body.PGS_ZONE_PRESS #liste_lien_page_fille a:hover div img { transform: scale(1.05); }
body.PGS_ZONE_PRESS #liste_lien_page_fille h3 {
  position: absolute;
  right: 0;
  bottom: 22px;
  left: 0;
  z-index: 2;
  display: block;
  width: 100% !important;
  max-width: none;
  height: auto;
  margin: 0;
  padding: 0 14px;
  color: #fff;
  font-size: 20px;
  line-height: 1.25;
}
body.PGS_ZONE_PRESS #liste_lien_page_fille h3 span {
  display: block !important;
  width: auto !important;
  max-width: none;
  height: auto;
  color: #fff !important; /* style-pages-filles.css force le violet en !important */
  text-shadow: 0 1px 8px rgba(52, 0, 64, .45);
}
body.PGS_ZONE_PRESS #liste_lien_page_fille h3:after {
  content: "\f105";
  display: block;
  width: 36px;
  height: 36px;
  margin: 12px auto 0;
  border-radius: 50%;
  background: var(--turquoise);
  font-family: 'FontAwesome';
  font-size: 20px;
  line-height: 36px;
}

/* sous-pages : introduction (visuel + texte) */
.secteur-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
  margin: 40px 0 70px;
}
.secteur-intro-visuel img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 28px;
  box-shadow: var(--ombre);
}
.secteur-surtitre {
  margin: 0 0 8px;
  color: var(--turquoise-fonce);
  font-family: var(--police-titre);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.secteur-intro h2 { margin: 0 0 16px; font-size: 36px; line-height: 1.15; }
.secteur-intro p { font-size: 17px; }
.secteur-intro strong,
.secteur-pourquoi strong { color: var(--violet); }
.secteur-boutons,
.secteurs-boutons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 26px;
  margin-top: 24px;
}
.secteurs-boutons { justify-content: center; }
.secteur-lien { border-bottom: 2px solid var(--turquoise-clair); color: var(--violet); font-weight: 700; }
.secteur-lien:hover { border-color: var(--violet); color: var(--violet); }

/* sous-pages : "Pourquoi choisir Lalunet'" en cartes */
.secteur-pourquoi { margin: 0 0 70px; text-align: center; }
.secteur-pourquoi h2,
.secteur-modeles h2 { margin-bottom: 10px; font-size: 32px; }
.secteur-chapo { max-width: 760px; margin: 0 auto 30px; font-size: 17px; }
.secteur-cartes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  text-align: left;
}
.secteur-carte {
  padding: 26px 26px 22px;
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--ombre);
}
.secteur-carte h3 {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 10px;
  color: var(--violet);
  font-size: 20px;
}
.secteur-carte h3:before {
  flex: 0 0 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--menthe);
  color: var(--turquoise);
  font-size: 15px;
  line-height: 34px;
  text-align: center;
}
.secteur-carte p { margin: 0; font-size: 15px; }

/* sous-pages : bandeau "Cas d'usage" */
.secteur-usages {
  margin: 0 0 70px;
  padding: 48px 52px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 90% 12%, rgba(131, 194, 187, .25) 0%, transparent 42%),
    var(--violet);
}
.secteur-usages .secteur-surtitre { color: var(--turquoise-clair); }
.secteur-usages h2 { margin: 0; color: #fff; font-size: 30px; }
.secteur-usages ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 34px;
  margin-top: 26px;
}
/* coche en position absolue : en flex, le <strong> et le texte formaient deux colonnes */
.secteur-usages li {
  position: relative;
  padding-left: 38px;
  color: rgba(255, 255, 255, .85);
}
.secteur-usages li:before {
  position: absolute;
  top: 1px;
  left: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--turquoise);
  color: #fff;
  font-size: 12px;
  line-height: 26px;
  text-align: center;
}
.secteur-usages li strong { color: #fff; }

/* sous-pages : modeles conseilles */
.secteur-modeles { margin: 0 0 60px; text-align: center; }
.secteur-produits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  max-width: 960px;
  margin: 0 auto;
}
.secteur-produit-carte {
  display: block;
  overflow: hidden;
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--ombre);
  transition: transform .25s ease, box-shadow .25s ease;
}
.secteur-produit-carte:hover { transform: translateY(-4px); box-shadow: var(--ombre-hover); }
.secteur-produit-carte img { display: block; width: 100%; height: auto; }
.secteur-produit-carte span {
  display: block;
  padding: 14px 16px;
  color: var(--violet);
  font-family: var(--police-titre);
  font-size: 17px;
  font-weight: 600;
}

/* appel au devis et liens vers les autres secteurs */
.secteurs-cta {
  margin: 0 0 24px;
  padding: 46px 40px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 88% 15%, rgba(131, 194, 187, .25) 0%, transparent 40%),
    var(--violet);
  text-align: center;
}
.secteurs-cta h3 { margin-bottom: 10px; color: #fff; font-size: 30px; }
.secteurs-cta p { color: rgba(255, 255, 255, .85); }
.secteurs-cta .btn-style-one { background: var(--turquoise); color: #fff; }
.secteurs-cta .btn-style-one:hover { background: var(--turquoise-fonce); color: #fff; }
.secteurs-lien { border-bottom: 2px solid rgba(255, 255, 255, .45); color: #fff; font-weight: 700; }
.secteurs-lien:hover { border-color: #fff; color: #fff; }
.secteur-voir-aussi { margin: 0 0 60px; color: #8b7f90; text-align: center; }
.secteur-voir-aussi a { color: var(--turquoise-fonce); font-weight: 700; }

@media (max-width: 991px) {
  body.PGS_ZONE_PRESS #liste_lien_page_fille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .secteur-intro { grid-template-columns: 1fr; gap: 26px; margin-top: 26px; }
  .secteur-cartes,
  .secteur-produits { grid-template-columns: 1fr 1fr; }
  .secteur-usages ul { grid-template-columns: 1fr; }
  .secteurs-intro h2 { font-size: 30px; }
  .secteur-intro h2,
  .secteur-pourquoi h2,
  .secteur-modeles h2 { font-size: 26px; }
}
@media (max-width: 600px) {
  body.PGS_ZONE_PRESS #liste_lien_page_fille { gap: 14px; }
  body.PGS_ZONE_PRESS #liste_lien_page_fille h3 { bottom: 14px; font-size: 16px; }
  .secteur-cartes,
  .secteur-produits { grid-template-columns: 1fr; }
  .secteur-usages,
  .secteurs-cta { padding: 34px 22px; }
}

/* =====================================================================
   Plan du site (mdl_plan_site.php) : centre, puces rondes
   ===================================================================== */
.plan-site {
  max-width: 1170px;
  margin: 10px auto 50px;
  padding: 34px 40px;
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--ombre);
  line-height: 2;
}
.plan-site p { margin: 0; }
.plan-site img { display: none; }
.plan-site a { color: var(--violet); font-weight: 600; }
.plan-site a:before {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 10px;
  border-radius: 50%;
  background: var(--turquoise);
  vertical-align: middle;
}
.plan-site a:hover { color: var(--turquoise); }

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  .main-slider { padding-top: 40px; }
  .contain-slide h2 { font-size: 32px; }
  .contain-slide p { font-size: 16px; }
  .help { margin: 40px 16px; border-radius: 20px; }
  .call-to-action-section .front { padding: 26px 18px 22px; }
  table:has(#formCreationLog) > tbody > tr,
  #formIdentificationLog fieldset tbody,
  #formCreationInscription fieldset tbody,
  .mdlPanier .adresse_facturation td,
  .mdlPanier .adresse_facturation td > p.adresse_line { grid-template-columns: 1fr; }
  #formIdentificationLog fieldset tr,
  #formCreationInscription fieldset tr { grid-column: 1 / -1 !important; }
  #formIdentificationLog:has(table),
  #formCreationInscription,
  .fiche-compte,
  .plan-site { margin-left: 16px; margin-right: 16px; padding: 26px 20px; }
  table:has(#formCreationLog) > tbody > tr > td { padding: 24px 20px; }
  table:has(#formCreationLog) legend { font-size: 21px; }
  .mdlPanier .mode_livraison { padding: 14px 16px; }
  /* widget : un peu plus de largeur (il deborde vite) et barre d'adresse sans la case "epingle" */
  .mdlPanier .mode_livraison_retrait .colissimo-widget-zone { margin: 12px -8px 0; }
  .mdlPanier #widget-container .widget_adress_table tr > td:first-child { display: none !important; }
  .mdlPanier #widget-container td#widget_colissimo_table_adresse_loop_click { width: 64px !important; min-width: 64px !important; }
}

/* ---------------------------------------------------------------------------------------
   claude 2026-10-21 : bandeau de titre des pages en responsive. Le titre etait colle au bord
   gauche jusqu'a 1170px, limite a 60% de la largeur (4 lignes sur mobile) et le fil d'Ariane
   masque sous 600px.
   --------------------------------------------------------------------------------------- */
.page-heading .container { box-sizing: border-box; }
.page-heading .page-title h2 { line-height: 1.15; }
@media (max-width: 1217px) {
  /* sous 1170px + marges, le conteneur touche les bords de l'ecran */
  .page-heading .container {
    padding-right: 24px;
    padding-left: 24px;
  }
}
@media (max-width: 991px) {
  /* le haut du bandeau est un triangle blanc de 45px (:before) : le titre commence dessous */
  .page-heading { padding-top: 0; }
  .page-heading .container {
    padding-top: 56px;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .page-heading .page-title,
  .page-heading #ariane {
    width: 100%;
  }
  .page-heading #ariane {
    display: block !important;
    padding-left: 0;
    font-size: 13px;
    line-height: 1.5;
  }
  .page-heading #ariane .ariane { max-width: none; margin: 0; padding: 0; text-align: left; }
  .page-heading .page-title h2 { font-size: clamp(24px, 6vw, 34px); }
}
@media (max-width: 600px) {
  .page-heading .container { padding: 56px 16px 4px; }
}

/* ---------------------------------------------------------------------------------------
   claude 2026-10-21 : nettete des images (audit du 21/10)
   --------------------------------------------------------------------------------------- */
/* images de contenu jamais agrandies au-dela de leur taille reelle (Entretien, Innovation) */
#paragraphe123 .img, #paragraphe124 .img { text-align: center; }
#paragraphe123 .img img, #paragraphe124 .img img,
#paragraphe131 .img img {
  width: auto;
  max-width: 100%;
}
/* description produit : les <pre> collees dans le BO elargissaient la page sur mobile (fiche Zen) */
.right_produit pre, .desc pre {
  overflow: visible;
  white-space: pre-wrap;
  word-wrap: break-word;
  font-family: inherit;
  font-size: inherit;
}
@media (max-width: 767px) {
  /* fiche produit : miniatures en rangee sous la grande photo (33px de large en colonne) */
  .left_produit {
    display: flex !important;
    flex-direction: column;
  }
  .left_produit .list-photo {
    order: 2;
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    width: 100%;
    margin-top: 12px;
  }
  .left_produit .list-photo a {
    width: 64px;
    padding: 0;
  }
  /* page Innovation : photo du fondateur et carte de France empilees avec le texte */
  #paragraphe139 .img, #paragraphe139 .text-img, #paragraphe139 .img2 {
    display: block;
    width: 100%;
    padding: 0;
    border-left: 0;
  }
  #paragraphe139 .img img, #paragraphe139 .img2 img {
    display: block;
    width: auto;
    max-width: 220px;
    margin: 16px auto;
    padding: 0;
  }
}

/* ---------------------------------------------------------------------------------------
   claude 2026-10-21 : liste des produits en grille fluide. Les cellules du tableau etaient en
   inline-block a largeur fixe : une carte de 250-334px par ligne de 600 a 900px, deux cartes
   jusqu'a 1180px, avec du blanc a droite.
   --------------------------------------------------------------------------------------- */
#centreetdroite .liste_produits > table,
#centreetdroite .liste_produits > table > tbody {
  display: block;
  width: 100% !important;
}
#centreetdroite .liste_produits > table > tbody {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 30px;
  padding: 15px 0;
}
#centreetdroite .liste_produits > table > tbody > tr { display: contents; }
#centreetdroite .liste_produits > table > tbody > tr > td {
  display: block;
  width: auto !important;
  max-width: none !important;
  min-height: 0;
  margin: 0 !important;
}
@media (max-width: 1199px) {
  #centreetdroite .liste_produits > table > tbody { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
  #centreetdroite .liste_produits > table > tbody { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 559px) {
  #centreetdroite .liste_produits > table > tbody { grid-template-columns: minmax(0, 1fr); }
}
