/**
 * La Place Nette - Overrides
 *
 * 1. Neutralise la mise en majuscule automatique de chaque mot
 *    (text-transform: capitalize) sur tout le site.
 * 2. Force l'egalisation de hauteur des cartes (services, avis, blogs)
 *    sur l'ensemble des pages du site - pas seulement index.html.
 */

/* ---------------------------------------------------------------
 * 1. Plus de majuscules forcees sur chaque mot
 * --------------------------------------------------------------- */
.text-capitalize,
.description,
h1.text-capitalize, h2.text-capitalize, h3.text-capitalize,
h4.text-capitalize, h5.text-capitalize, h6.text-capitalize,
.text-capitalize h1, .text-capitalize h2, .text-capitalize h3,
.text-capitalize h4, .text-capitalize h5, .text-capitalize h6 {
  text-transform: none !important;
}

/* ---------------------------------------------------------------
 * 2. Egalisation des cartes / encadrements sur toutes les pages
 * --------------------------------------------------------------- */

/* Services & avis (style "carte Bootstrap") */
section[class*="services"] .row > [class*="col-"],
section[class*="service"] .row > [class*="col-"],
.testimonial_main .splide__list,
.testimonial_main .splide__slide,
.social_media_main .row > [class*="col-"],
.blog-section .row > [class*="col-"],
.blog_main .row > [class*="col-"] {
  display: flex;
}

section[class*="services"] .row > [class*="col-"] > .card,
section[class*="service"] .row > [class*="col-"] > .card,
.testimonial_main .splide__slide > .card,
.social_media_main .row > [class*="col-"] > .blog-box,
.blog-section .row > [class*="col-"] > .blog-box,
.blog_main .row > [class*="col-"] > .blog-box {
  height: 100% !important;
  width: 100%;
}

/* Variante "service-item-2" utilisee sur nos-prestations.html */
section[class*="services"] .row > [class*="col-"] > .service-item-2,
section[class*="service"] .row > [class*="col-"] > .service-item-2 {
  height: 100% !important;
  width: 100%;
  display: flex;
  flex-direction: column;
}
section[class*="services"] .service-item-2 .inner-text,
section[class*="service"] .service-item-2 .inner-text {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}
section[class*="services"] .service-item-2 .read-more,
section[class*="service"] .service-item-2 .read-more {
  margin-top: auto;
}

/* Cartes "tarifs" / pricing */
.pricing_main .row > [class*="col-"],
.pricing-section .row > [class*="col-"] {
  display: flex;
}
.pricing_main .row > [class*="col-"] > .pricing-card,
.pricing-section .row > [class*="col-"] > .pricing-card {
  height: 100% !important;
  width: 100%;
}

/* Carousel Splide : ligne stretch + slides en hauteur auto */
.splide__list { align-items: stretch !important; }
.splide__slide { height: auto !important; }

/* Cartes avis : forcer card-body en flex vertical */
.testimonial_main .splide__slide .card,
.testimonial_main .splide__slide .card-body { height: 100% !important; }
.testimonial_main .splide__slide .card-body { display: flex; flex-direction: column; }

/* Blog : pousser la meta (likes/commentaires) en bas */
.blog-box .item-content { display: flex; flex-direction: column; flex: 1 1 auto; }
.blog-box .entry-meta { margin-top: auto; }

/* Cards services : meme structure */
section[class*="services"] .card-body,
section[class*="service"] .card-body {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* ---------------------------------------------------------------
 * 3. Switcher de langue FR | NL
 * --------------------------------------------------------------- */
.lpn-lang-switcher {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .9rem;
  line-height: 1;
}
.lpn-lang-switcher .lpn-lang {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 4px;
  color: inherit;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: .03em;
  transition: background .15s, color .15s;
}
.lpn-lang-switcher .lpn-lang:hover {
  background: rgba(15, 52, 96, .1);
  text-decoration: none;
}
.lpn-lang-switcher .lpn-lang.active {
  background: var(--primary, #0f3460);
  color: #fff;
}
.lpn-lang-switcher .lpn-lang-sep {
  opacity: .4;
}
/* Fallback flottant si pas de slot trouve */
.lpn-lang-switcher.lpn-lang-floating {
  position: fixed;
  top: 12px;
  right: 12px;
  z-index: 9999;
  background: #fff;
  padding: 4px 8px;
  border-radius: 999px;
  box-shadow: 0 2px 12px rgba(0,0,0,.15);
}

/* Quand insere dans la barre de menus (fond bleu fonce) : texte clair, contraste OK */
.navbar .lpn-lang-in-menu .lpn-lang-switcher .lpn-lang,
#mainNavbar .lpn-lang-in-menu .lpn-lang-switcher .lpn-lang,
#nav_ul .lpn-lang-in-menu .lpn-lang-switcher .lpn-lang {
  color: #fff;
}
.navbar .lpn-lang-in-menu .lpn-lang-switcher .lpn-lang:hover,
#mainNavbar .lpn-lang-in-menu .lpn-lang-switcher .lpn-lang:hover,
#nav_ul .lpn-lang-in-menu .lpn-lang-switcher .lpn-lang:hover {
  background: rgba(255, 255, 255, .15);
}
.navbar .lpn-lang-in-menu .lpn-lang-switcher .lpn-lang.active,
#mainNavbar .lpn-lang-in-menu .lpn-lang-switcher .lpn-lang.active,
#nav_ul .lpn-lang-in-menu .lpn-lang-switcher .lpn-lang.active {
  background: #fff;
  color: var(--primary, #0f3460);
}
.lpn-lang-in-menu {
  padding: 0.25rem 1rem;
}

/* ---------------------------------------------------------------
 * 5. Eviter la troncature des textes (boutons, cartes, menu)
 *    Permettre le wrap, retrecir la police si necessaire
 * --------------------------------------------------------------- */
/* Boutons : autoriser le retour a la ligne, ajuster la taille */
.btn, .primary-btn, .success-btn {
  white-space: normal !important;
  word-wrap: break-word;
  overflow-wrap: anywhere;
  line-height: 1.25;
  text-align: center;
}
/* Boutons d'action principaux : taille legerement reduite pour mots longs en NL */
.btn.primary-btn,
.btn.success-btn,
.custom_header_btn {
  font-size: 0.95rem;
  padding: 0.55rem 1rem;
}
/* Hero/banner : reduire les gros titres si trop longs */
.splide__text h2.display-1 {
  font-size: clamp(1.3rem, 3.2vw, 3.2rem);
  word-wrap: break-word;
  overflow-wrap: anywhere;
  line-height: 1.1;
  margin-bottom: 0.4rem;
}
.splide__text h2.display-3 {
  font-size: clamp(1.05rem, 2.2vw, 2.2rem);
  line-height: 1.15;
  margin-bottom: 0.5rem;
}
.splide__text .para-text {
  font-size: clamp(0.85rem, 1.1vw, 1rem);
  line-height: 1.4;
  margin-bottom: 0.8rem;
}
.splide__text.text1 {
  max-width: 720px;
}
.splide__text.text2 {
  margin-top: 0.5rem;
}
/* Container box du slide : reduire la padding verticale et bouton toujours visible */
.splide__content_box .container {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
/* Sur ecrans courts ou tablette : ajustement supplementaire */
@media (max-height: 720px) {
  .splide__text h2.display-1 { font-size: clamp(1.2rem, 2.6vw, 2.4rem); }
  .splide__text h2.display-3 { font-size: clamp(0.95rem, 1.8vw, 1.6rem); }
  .splide__text .para-text { font-size: 0.9rem; }
}
@media (max-width: 1200px) {
  .splide__text h2.display-1 { font-size: clamp(1.2rem, 3vw, 2.4rem); }
}
/* Titres de page (page-title-content h3) */
.page-title-content h3, .page-title-content h1 {
  font-size: clamp(1.5rem, 3.5vw, 3rem);
  word-wrap: break-word;
}
/* Section titles */
section h3.display-5 {
  font-size: clamp(1.5rem, 3vw, 2.6rem);
  word-wrap: break-word;
}
/* Card titles : taille legerement reduite */
.card h5, .card h4, .card h3,
.blog-box .item-title,
.service-item-2 h3 {
  word-wrap: break-word;
  overflow-wrap: anywhere;
  hyphens: auto;
  font-size: 1.05rem;
  line-height: 1.3;
}
/* Service-heading-text : autoriser le retour ligne */
.service-heading-text {
  white-space: normal !important;
  word-wrap: break-word;
}
/* Navigation principale : empecher la troncature */
#nav_ul .nav-link,
.navbar-nav .nav-link {
  white-space: nowrap;
  padding-left: 0.6rem !important;
  padding-right: 0.6rem !important;
}
@media (max-width: 1199px) {
  #nav_ul .nav-link,
  .navbar-nav .nav-link {
    white-space: normal;
    text-align: center;
  }
  /* En tablette/mobile : reduire un peu la taille du menu */
  #nav_ul .nav-item {
    padding-left: 0.4rem !important;
    padding-right: 0.4rem !important;
  }
}
/* Footer : eviter mots qui depassent */
footer .footer-link a,
.footer-link a {
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
/* Description : taille standard, ligne normale */
.description, p.description, .para-text {
  word-wrap: break-word;
  overflow-wrap: anywhere;
  hyphens: auto;
}
/* Header coordonnees (Heures / Email / Telefoon) : eviter overflow */
.navbar p.fw-semibold {
  font-size: 0.92rem;
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
.navbar p.para-text {
  font-size: 0.85rem;
}
/* Switcher FR/NL dans le menu : padding optimise */
.lpn-lang-item .nav-link {
  padding: 0.4rem 0.6rem !important;
  font-size: 0.95rem;
}

/* ---------------------------------------------------------------
 * 3-bis. Modal Devis : case RGPD blanche sur fond sombre
 * --------------------------------------------------------------- */
.dark-color .form-check-label,
.dark-color .form-check-label a {
  color: #fff !important;
}
.dark-color .form-check-label a {
  text-decoration: underline;
}
.dark-color .form-check-input {
  background-color: rgba(255, 255, 255, 0.95);
}
/* Augmenter l'opacite si le label est inject\303\251 par forms.js avec texte gris */
#requestQuotes .form-check-label,
#requestQuotes .form-check-label a {
  color: #fff !important;
  opacity: 1 !important;
}

/* ---------------------------------------------------------------
 * 4. WhatsApp flottant : centre verticalement a droite
 * --------------------------------------------------------------- */
.lpn-whatsapp-float {
  top: 50% !important;
  bottom: auto !important;
  right: 20px !important;
  transform: translateY(-50%) !important;
}
.lpn-whatsapp-float:hover {
  transform: translateY(-50%) scale(1.08) !important;
}
@media (max-width: 576px) {
  .lpn-whatsapp-float {
    right: 14px !important;
    top: 50% !important;
    bottom: auto !important;
  }
}
