/* Composants TPI regroupés pour réduire les requêtes. */
/* tpi-refonte.css */
.tpi-vitrine{text-align:center;padding:35px 0}.tpi-vitrine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.tpi-vitrine-grid a{display:flex;flex-direction:column;gap:8px;align-items:center;text-decoration:none;color:inherit;border:1px solid #e0e8f1;border-radius:14px;padding:12px;background:#fff}.tpi-vitrine-grid img{height:115px;width:100%;object-fit:contain}.tpi-service-wrap{display:flex;align-items:center;gap:10px}.tpi-service-wrap .service-grid{display:grid!important;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:calc((100% - 36px)/4);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;flex:1;min-width:0;padding:4px 0 10px}.tpi-service-wrap .service-grid::-webkit-scrollbar{display:none}.tpi-service-wrap .service-card{min-width:0!important;scroll-snap-align:start;padding:15px!important}.tpi-service-wrap .service-card p{font-size:13px}.tpi-carousel-arrow{width:34px;height:34px;flex:0 0 34px;background:#fff;color:#1264b4;border:1px solid #dce5ef;border-radius:50%;font-size:23px;cursor:pointer}@media(max-width:850px){.tpi-service-wrap .service-grid{grid-auto-columns:calc((100% - 14px)/2)}.tpi-carousel-arrow{display:none}}@media(max-width:600px){.tpi-vitrine{padding:22px 0}.tpi-vitrine-grid{gap:7px;margin:12px 0}.tpi-vitrine-grid a{padding:8px 3px;font-size:12px}.tpi-vitrine-grid img{height:70px}.tpi-service-wrap .service-grid{grid-auto-columns:78%}}

/* Harmonisation : vitrine plus dense, visuels mis en avant */
.tpi-vitrine.section{padding:28px 0 34px}
.tpi-vitrine .container{max-width:1060px}
.tpi-vitrine h2{margin:4px 0 16px}
.tpi-vitrine-grid{max-width:900px;margin:0 auto 17px;gap:16px}
.tpi-vitrine-grid a{min-height:190px;justify-content:center;padding:15px 12px;box-shadow:0 8px 24px rgba(15,52,90,.055);transition:transform .2s,box-shadow .2s,border-color .2s}
.tpi-vitrine-grid a:hover,.tpi-vitrine-grid a:focus-visible{transform:translateY(-3px);border-color:#9bbfe5;box-shadow:0 12px 28px rgba(15,52,90,.12)}
.tpi-vitrine-grid img{height:135px;max-width:100%;object-fit:contain}
.tpi-vitrine .btn{background:#1264b4!important;border-color:#1264b4!important;min-width:250px}
.services.section{padding-top:32px;padding-bottom:35px}
.about.section{padding-bottom:34px}
@media(max-width:650px){
 .tpi-vitrine.section{padding:22px 0 26px}
 .tpi-vitrine-grid{gap:8px}
 .tpi-vitrine-grid a{min-height:132px;padding:10px 5px}
 .tpi-vitrine-grid img{height:86px}
 .tpi-vitrine-grid strong{font-size:12px}
 .tpi-vitrine .btn{min-width:0;max-width:100%}
}

/* tpi-design-final.css */

/* Refonte ciblée TPI : grille alignée et proportions resserrées */
.tpi-vitrine.section{padding:30px 0 36px!important;text-align:left!important;background:linear-gradient(180deg,#f5f9fd 0%,#fff 100%)}
.tpi-vitrine .container{max-width:1140px!important;margin:0 auto!important}
.tpi-showcase{border:1px solid #e0e9f3;border-radius:24px;padding:25px 28px 26px;background:#fff;box-shadow:0 12px 38px rgba(13,54,96,.07)}
.tpi-showcase-intro{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:18px}
.tpi-showcase-intro .eyebrow{color:#d87b20;margin:0 0 5px;font-size:11px;letter-spacing:.15em;font-weight:850}
.tpi-showcase-intro h2{margin:0!important;font-size:clamp(22px,2.6vw,33px);line-height:1.16;color:#123657}
.tpi-showcase-intro p:not(.eyebrow){margin:7px 0 0;color:#62768b;font-size:13px}
.tpi-showcase-all{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;background:#1264b4;color:#fff!important;border-radius:11px;padding:13px 19px;font-size:13px;font-weight:800;text-decoration:none;box-shadow:0 5px 13px rgba(18,100,180,.16)}
.tpi-showcase-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tpi-showcase-item{display:flex;align-items:center;gap:14px;min-width:0;min-height:122px;padding:13px 15px;border:1px solid #e1eaf3;border-radius:16px;background:#f7faff;text-decoration:none!important;color:#123657!important;transition:transform .2s,box-shadow .2s,border-color .2s}
.tpi-showcase-item:hover{transform:translateY(-3px);border-color:#8fb8e5;box-shadow:0 9px 24px rgba(20,83,144,.11)}
.tpi-showcase-img{flex:0 0 43%;height:102px;display:grid;place-items:center}
.tpi-showcase-img img{width:100%;height:100%;object-fit:contain}
.tpi-showcase-label{display:flex;flex-direction:column;gap:9px;min-width:0}
.tpi-showcase-label strong{font-size:16px;line-height:1.2}
.tpi-showcase-label span{font-size:12px;font-weight:750;color:#1264b4}
.about.section{padding-bottom:26px!important}
.about.section>.container.about-grid,.about.section>.tpi-fb-shell{max-width:1140px;margin-left:auto!important;margin-right:auto!important}
.tpi-fb-shell{width:calc(100% - 40px);max-width:1140px;margin:18px auto 0!important;padding:0 0 0!important;box-sizing:border-box}
.tpi-fb-shell .tpi-fb{max-width:100%!important;width:100%!important;margin:0!important;padding:17px 0 0!important;box-sizing:border-box;border-top:1px solid #e1e9f1;grid-column:auto!important}
.tpi-fb-shell .tpi-fb-head{margin-bottom:10px!important}
.tpi-fb-shell .tpi-fb-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 24px)/3);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory}
.tpi-fb-shell .tpi-fb-card{box-sizing:border-box;min-height:112px!important;max-width:100%;border-radius:13px;padding:12px!important;background:#f8fbfe;box-shadow:none!important}
.tpi-fb-shell .tpi-fb-card>img{width:78px!important;height:78px!important;flex:0 0 78px!important;object-fit:cover}
.tpi-fb-shell .tpi-fb-text p{font-size:12px;line-height:1.4;max-height:52px}
.tpi-fb-shell .tpi-fb-card.expanded p{max-height:180px}
@media(max-width:900px){.tpi-showcase-intro{align-items:start}.tpi-showcase-item{gap:8px;padding:10px}.tpi-showcase-label strong{font-size:13px}.tpi-fb-shell .tpi-fb-track{grid-auto-columns:calc((100% - 12px)/2)}}
@media(max-width:650px){
.tpi-vitrine.section{padding:18px 0 24px!important}
.tpi-showcase{padding:17px 13px;border-radius:17px}
.tpi-showcase-intro{display:block;margin-bottom:13px}
.tpi-showcase-intro h2{font-size:23px}
.tpi-showcase-intro p:not(.eyebrow){font-size:12px}
.tpi-showcase-all{display:flex;margin-top:13px;min-height:43px}
.tpi-showcase-items{gap:7px}
.tpi-showcase-item{min-height:128px;flex-direction:column;justify-content:center;gap:4px;padding:7px 4px;text-align:center;border-radius:12px}
.tpi-showcase-img{flex:none;width:100%;height:75px}
.tpi-showcase-label{gap:3px}
.tpi-showcase-label strong{font-size:11px}
.tpi-showcase-label span{font-size:10px}
.tpi-fb-shell{width:calc(100% - 32px);margin-top:14px!important}
.tpi-fb-shell .tpi-fb-track{grid-auto-columns:85%}
.tpi-fb-shell .tpi-fb-card>img{width:66px!important;height:66px!important;flex-basis:66px!important}
}

/* tpi-alignement.css */

/* Ajustements localisés, identité TPI inchangée */
:root{--tpi-content-width:1140px}
.hero.container,.tpi-vitrine>.container,.services>.container,.about>.container,.reviews>.container,.contact>.container{
 width:calc(100% - 40px)!important;max-width:var(--tpi-content-width)!important;
 margin-left:auto!important;margin-right:auto!important;box-sizing:border-box}
.tpi-vitrine.section{padding:32px 0 38px!important}
.tpi-vitrine .tpi-showcase{margin:0!important}
.tpi-vitrine .tpi-showcase-intro{margin-bottom:20px}
.tpi-vitrine .tpi-showcase-intro .eyebrow{text-align:left!important}
.tpi-vitrine .tpi-showcase-items{max-width:none!important}
.services.section{padding:42px 0 48px!important}
.services .section-head,.reviews .section-head{margin-bottom:22px!important}
.services .section-head h2,.reviews .section-head h2{margin-top:8px}
.about.section{padding:44px 0 34px!important}
.about .about-grid{margin-bottom:0!important}
.tpi-fb-shell{width:calc(100% - 40px)!important;max-width:var(--tpi-content-width)!important;margin:24px auto 0!important;padding:0!important}
.tpi-fb-shell .tpi-fb{width:100%!important;max-width:100%!important;margin:0!important;padding:20px 0 0!important;border-top:1px solid #dfe8f1}
.reviews.section{background:#f3f7fb!important;padding:48px 0 54px!important}
.reviews .review-card{background:#fff!important}
.reviews .section-head,.reviews .section-head .eyebrow,.reviews .section-head h2{text-align:left!important}
@media(max-width:700px){
.hero.container,.tpi-vitrine>.container,.services>.container,.about>.container,.reviews>.container,.contact>.container,.tpi-fb-shell{width:calc(100% - 32px)!important}
.tpi-vitrine.section{padding:22px 0 28px!important}
.services.section{padding:30px 0 34px!important}
.about.section{padding:32px 0 26px!important}
.reviews.section{padding:34px 0 40px!important}
.tpi-fb-shell{margin-top:16px!important}
}

/* tpi-contact-facebook-premium.css */

/* TPI - Ajustements ciblés Contact, Facebook et WhatsApp
   Aucun changement du contenu ou du fonctionnement du site. */

/* CONTACT : conserve carte, horaires, coordonnées et boutons */
#contact.contact.section {
  padding-top: 38px !important;
  padding-bottom: 38px !important;
}
#contact .contact-grid {
  width: min(1140px, calc(100% - 40px));
  max-width: 1140px !important;
  margin-inline: auto !important;
  align-items: stretch;
  gap: clamp(16px, 2.2vw, 28px) !important;
}
#contact .contact-panel {
  border-radius: 20px;
  padding: clamp(22px, 2.5vw, 32px) !important;
}
#contact .contact-panel h2 { margin-block: 6px 10px !important; line-height: 1.18; }
#contact .contact-panel > p:not(.eyebrow) { margin-block: 0 14px !important; }
#contact .contact-actions { margin-block: 14px !important; gap: 9px !important; }
#contact .contact-details { margin-top: 18px !important; gap: 10px 16px !important; }
#contact .contact-details div { margin-bottom: 0 !important; }
#contact .map-wrap {
  border-radius: 20px !important;
  overflow: hidden;
  min-height: 300px;
  box-shadow: 0 8px 28px rgba(7, 36, 67, .12);
}
#contact .map-wrap iframe { width: 100%; height: 100%; min-height: 300px; display: block; }

/* FACEBOOK : fond bleu très clair et cadre contenu dans la grille À propos */
.about .tpi-fb-shell, .tpi-fb-shell {
  width: min(1140px, calc(100% - 40px)) !important;
  max-width: 1140px !important;
  box-sizing: border-box;
  margin: 20px auto 0 !important;
  padding: 0 !important;
}
.tpi-fb-shell #tpi-facebook-carousel {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 18px 20px 20px !important;
  border: 1px solid #bed9f2 !important;
  border-radius: 18px !important;
  background: linear-gradient(135deg,#edf6ff,#f7fbff) !important;
  box-shadow: 0 8px 26px rgba(22, 90, 157, .075);
}
.tpi-fb-shell .tpi-fb-head { margin-bottom: 12px !important; }
.tpi-fb-shell .tpi-fb-card {
  background: #fff !important;
  border: 1px solid #dfebf6 !important;
  border-radius: 13px !important;
  box-shadow: 0 3px 12px rgba(17, 74, 130, .05) !important;
}
.tpi-fb-shell .tpi-fb-track { max-width: 100% !important; }

/* WHATSAPP : conserver uniquement la bulle et son vrai logo */
a.whatsapp-float {
  box-sizing: border-box !important;
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  max-width: 56px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
}
a.whatsapp-float .whatsapp-float-label,
a.whatsapp-float [data-whatsapp-label] { display: none !important; }
a.whatsapp-float .whatsapp-svg { width: 29px !important; height: 29px !important; flex: none !important; }

@media(max-width:700px) {
  #contact.contact.section { padding-block: 24px !important; }
  #contact .contact-grid { width: calc(100% - 32px) !important; gap: 14px !important; }
  #contact .contact-panel { padding: 20px 17px !important; border-radius: 16px; }
  #contact .contact-actions { gap: 8px !important; }
  #contact .map-wrap { min-height: 240px; border-radius: 16px !important; }
  #contact .map-wrap iframe { min-height: 240px; height: 240px; }
  .about .tpi-fb-shell,.tpi-fb-shell { width: calc(100% - 32px) !important; margin-top: 14px !important; }
  .tpi-fb-shell #tpi-facebook-carousel { padding: 14px 12px !important; border-radius: 15px !important; }
  a.whatsapp-float { width: 50px !important; height: 50px !important; min-width: 50px !important; max-width: 50px !important; }
}

.whatsapp-float .whatsapp-float-label{display:none!important}

/* facebook-carousel.css */
.tpi-fb{grid-column:1/-1;margin:18px 0 0;padding:12px 0 0;border-top:1px solid #e2eaf1;min-width:0}.tpi-fb-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:10px}.tpi-fb-head strong{font-size:14px}.tpi-fb-logo{display:inline-grid;place-items:center;background:#1877f2;color:#fff;font:bold 22px Arial;width:26px;height:26px;border-radius:6px;margin-right:5px}.tpi-fb-head a,.tpi-fb-text a{color:#1877f2;font-size:11px;font-weight:700;text-decoration:none}.tpi-fb-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 20px)/3);gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}.tpi-fb-track::-webkit-scrollbar{display:none}.tpi-fb-card{scroll-snap-align:start;border:1px solid #e0e8f0;border-radius:10px;padding:9px;display:flex;gap:9px;min-width:0;background:#fff}.tpi-fb-card>img{width:65px;height:65px;flex:0 0 65px;object-fit:cover;border-radius:7px}.tpi-fb-text{min-width:0;flex:1}.tpi-fb-text small{font-size:10px;color:#64798a}.tpi-fb-text p{font-size:11px;line-height:1.4;margin:4px 0 6px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;white-space:pre-wrap}.tpi-fb-card.expanded p{display:block;max-height:180px;overflow:auto}.tpi-fb-expand{border:0;background:none;color:#1264b4;font-weight:700;font-size:11px;padding:0;cursor:pointer}@media(max-width:800px){.tpi-fb-track{grid-auto-columns:calc((100% - 10px)/2)}}@media(max-width:600px){.tpi-fb-track{grid-auto-columns:78%;gap:8px}.tpi-fb-card>img{width:58px;height:58px;flex-basis:58px}}

/* Facebook dans la même grille que la section À propos */
.tpi-fb-container{max-width:1100px;margin:22px auto 0}
.tpi-fb{margin:0!important;padding:16px 0 0!important;border-top:1px solid #e0e8f0}
.tpi-fb-head{max-width:100%;margin-bottom:12px}
.tpi-fb-track{grid-auto-columns:calc((100% - 24px)/3);gap:12px}
.tpi-fb-card{min-height:112px;padding:12px;align-items:flex-start;box-shadow:0 3px 13px rgba(15,52,90,.04)}
.tpi-fb-card>img{width:82px;height:82px;flex-basis:82px}
.tpi-fb-text p{font-size:12px;line-height:1.45;-webkit-line-clamp:3}
@media(max-width:800px){.tpi-fb-track{grid-auto-columns:calc((100% - 12px)/2)}}
@media(max-width:600px){.tpi-fb-container{margin-top:16px}.tpi-fb-track{grid-auto-columns:85%}.tpi-fb-card>img{width:72px;height:72px;flex-basis:72px}}
