/* ==========================================================================
   SYNCXELL — correctif de mise en page (ordinateurs portables et petits écrans)
   Chargé en dernier. Fichier neuf : le CSS est mis en cache 30 jours (.htaccess)
   et les URL ne sont pas versionnées, donc un nouveau fichier s'applique tout de
   suite, y compris pour les visiteurs déjà venus.

   Cause principale : le guide v4 a changé les balises de titres (h4 → h3,
   <a><h3> → <h3><a>) pour l'accessibilité. Les sélecteurs du thème ne
   s'appliquent plus et ces titres héritent de la taille de base h3 (32/42 px).
   ========================================================================== */

/* ── 1. Marges latérales : le contenu ne touche plus le bord de l'écran ───── */
@media (min-width: 992px) and (max-width: 1439px) {
  .prt-row > .container,
  .prt-page-title-row .container,
  .site-main .container { padding-left: 40px; padding-right: 40px; }
  #site-header-menu .container-fluid,
  .top_bar.prt-topbar-wrapper .container-fluid { padding-left: 40px !important; padding-right: 40px !important; }
  .home-page .hero-section .hero-slide > .container { padding-left: 40px; padding-right: 40px; }
  footer.widget-footer .container-fluid { padding-left: 40px; padding-right: 40px; }
}
@media (min-width: 1440px) and (max-width: 1699px) {
  footer.widget-footer .container-fluid { padding-left: 60px; padding-right: 60px; }
}

/* ── 2. Menu : un panneau ouvert ne recouvre plus les autres entrées ──────── */
@media (min-width: 1200px) {
  /* Le thème ne fixe « top » qu'au survol : à la sortie, le panneau remontait
     par-dessus la barre, gardait le survol et restait ouvert. */
  nav.main-menu ul.menu li.mega-menu-item > ul.mega-submenu,
  nav.main-menu ul.menu li.mega-menu-item:hover > ul.mega-submenu,
  nav.main-menu ul.menu li.mega-menu-item.sx-open > ul.mega-submenu { top: 100%; margin-top: 0; }
  nav.main-menu ul.menu li.mega-menu-item > ul.mega-submenu { pointer-events: none; }
  nav.main-menu ul.menu li.mega-menu-item:hover > ul.mega-submenu,
  nav.main-menu ul.menu li.mega-menu-item.sx-open > ul.mega-submenu { pointer-events: auto; }
  /* Survoler une autre entrée masque un panneau ouvert au clic. */
  nav.main-menu ul.menu:hover > li.sx-open:not(:hover) > ul.mega-submenu { visibility: hidden; opacity: 0; pointer-events: none; }
  /* Le panneau reste dans l'écran sur les petits portables. */
  nav.main-menu ul.menu li ul.mega-submenu.sx-mega-2col { max-width: calc(100vw - 340px); }
}

/* ── 3. Footer ───────────────────────────────────────────────────────────── */
/* Le thème met chaque lien à 50 % : combiné aux 2 colonnes CSS, cela donnait
   4 colonnes étroites et des mots qui se chevauchent. */
.widget-area .widget_nav_menu .menu-footer-link.style1.sx-footer-2col li,
ul.menu-footer-link.sx-footer-2col li { display: block; width: auto; margin-bottom: 10px; line-height: 1.4; break-inside: avoid; }
ul.sx-footer-2col { column-gap: 24px; }
.section-footer .footer-widget-box,
.section-footer .widget-area { min-width: 0; }
.footer-logo img { margin-left: 0; }
.sx-footer-tagline { margin-left: 0 !important; }
.footer .social-icons { margin-left: 0; }

@media (min-width: 1200px) and (max-width: 1699px) {
  .section-footer .row > .widget-area:nth-child(1) { flex: 0 0 23%; max-width: 23%; }
  .section-footer .row > .widget-area:nth-child(2) { flex: 0 0 37%; max-width: 37%; }
  .section-footer .row > .widget-area:nth-child(3) { flex: 0 0 17%; max-width: 17%; }
  .section-footer .row > .widget-area:nth-child(4) { flex: 0 0 23%; max-width: 23%; }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .section-footer .row { row-gap: 32px; }
  .section-footer .row > .widget-area:nth-child(1) { flex: 0 0 32%; max-width: 32%; }
  .section-footer .row > .widget-area:nth-child(2) { flex: 0 0 68%; max-width: 68%; }
  .section-footer .row > .widget-area:nth-child(3) { flex: 0 0 50%; max-width: 50%; }
  .section-footer .row > .widget-area:nth-child(4) { flex: 0 0 50%; max-width: 50%; }
}
/* Coordonnées : icône à gauche, texte aligné, e-mail sur une ligne */
.footer .prt-about-footer p { display: flex; align-items: flex-start; gap: 10px; }
.footer .prt-about-footer p .footer-contact-icon { flex: 0 0 auto; margin: 4px 0 0; top: 0; }
.footer .prt-about-footer p a { overflow-wrap: anywhere; }
.footer-contactbox { padding-left: 24px; padding-right: 24px; }

/* Newsletter : mention sous le champ, pas à côté */
.widget-form .newsletter-form { display: flow-root; }
.widget-form .mailchimp-inputbox { width: 100%; float: none; }
.widget-form .sx-newsletter-consent { clear: both; margin-top: 10px; }
.widget-footer-form-block .widget-pre-title h2 { line-height: 1.3; }
@media (min-width: 992px) and (max-width: 1199px) {
  .widget-footer-form-block { padding: 36px 32px; }
  .sx-newsletter-sub { font-size: 19px; }
}

/* Barre du bas */
.bottom-footer .copyright { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px; }
.bottom-footer .cpy-text { flex: 1 1 340px; min-width: 0; }
.bottom-footer .cpy-text { text-align: left; }
.bottom-footer .cpy-text p { width: auto; }
.bottom-footer .footer-nav-menu { flex: 0 1 auto; margin: 0; }
.sx-footer-ids a { overflow-wrap: anywhere; }

/* ── 4. Titres : tailles rétablies là où le thème ne s'applique plus ──────── */
.title-box .page-title-heading h1 { font-size: clamp(34px, 4.3vw, 60px); line-height: 1.16; }

.sx-why-tile h3, .sx-about-card h2, .sx-about-card h3, .sx-svc-card-title, .sx-svc .sx-svc-h2,
.sx-svc .sx-svc-subhead, .sx-pe-card h3, .sx-pe-page .sx-pe-h2, .sx-pe-page .sx-pe-h3, .sx-pe-steps h3,
.sx-pe-contact h2, .sx-ent-block h2, .sx-pp-project-title, .sx-pp-subtitle, .sx-pp-contracts h2,
.sx-cs-card-title, .sx-rfq-h2, .sx-quote-area h3, .sx-blog-bottom-title, .sx-blog-body h2, .sx-blog-body h3,
.sx-gh-codes h3, .sx-gh-panel-title, .sx-faq-title, .sx-company-facts h2, .sx-more-services-title,
.legal-page .site-main h2, .sx-contact-subheading, .sx-tech-card .featured-title h3,
.sx-service-card .service-title h3 { line-height: 1.35; }
.sx-why-tile h3 { font-weight: 600; }

/* Blocs titres + texte sur fond sombre (Partenaire, About…) */
.prt-featured-content .prt-featured-title h3 { font-size: 18px; line-height: 1.35; margin: 0; }

/* ── 5. Cartes « étude de cas » (accueil) ────────────────────────────────── */
.prt-featured-postbox.style1 .prt-featured-overly { padding: 22px 22px; margin: -44px 16px 0; align-items: flex-start; gap: 12px; }
.prt-featured-postbox.style1 .prt-featured-content-box { flex: 1 1 auto; min-width: 0; }
.prt-featured-postbox.style1 .prt-featured-overly .prt-featured-title h3 { margin: 0; font-size: clamp(17px, 1.35vw, 20px); line-height: 1.35; font-weight: 500; color: var(--base-headingfont-color); }
.prt-featured-postbox.style1 .prt-featured-overly .prt-featured-title h3 a { color: inherit; }
.prt-featured-postbox.style1 .prt-featured-overly .prt-featured-title h3 a:hover { color: var(--base-skin); }
.prt-featured-postbox.style1 .prt-featured-readmore-btn { flex: 0 0 auto; }
.prt-featured-postbox.style1 .prt-featured-readmore-btn a { width: 44px; height: 44px; line-height: 52px; }
.prt-featured-postbox.style1 .prt-featured-readmore-btn a i { font-size: 24px; }
/* Le résultat de la mission était écrit en blanc sur la carte blanche. */
.prt-featured-postbox.style1 .sx-cs-result { color: var(--base-bodyfont-color); font-size: 14px; line-height: 1.5; margin: 8px 0 0; }

/* Images : plus de recadrage qui coupe les schémas (hauteur fixe 280/220 px) */
.prt-featured-postbox .featured-thumbnail img,
.featured-imagebox-post:not(.style4) .featured-thumbnail img { height: auto !important; aspect-ratio: 1200 / 630; object-fit: cover !important; }

/* Cartes d'un même carrousel à la même hauteur */
.portfolio-section .slick-track,
.blog-section .slick-track { display: flex; }
.portfolio-section .slick-slide,
.blog-section .slick-slide { height: auto; }
.portfolio-section .slick-slide > div,
.blog-section .slick-slide > div,
.portfolio-section .prt-box-col-wrapper,
.blog-section .prt-box-col-wrapper { height: 100%; }
.prt-featured-postbox.style1,
.prt-featured-postbox.style1 .prt-featured-post-item { height: 100%; display: flex; flex-direction: column; }
.prt-featured-postbox.style1 .prt-featured-overly { flex: 1 1 auto; }
.blog-section .slick-slide .featured-imagebox-post { height: calc(100% - 15px); }

/* ── 6. Grilles de cartes : même hauteur sur une rangée ──────────────────── */
.row > [class*="col-"]:has(> .sx-service-card) { display: flex; }
.sx-service-card { display: flex !important; align-items: stretch; flex: 1 1 auto; width: 100%; min-height: 0; }
.sx-service-card .service-iconbox-inner { display: flex !important; flex-direction: column; flex: 1 1 auto; width: 100%; }
.sx-service-card .service-content-box { display: flex !important; flex-direction: column; flex: 1 1 auto; }
.sx-service-card .prt-bottom-buttonbox { margin-top: auto !important; }

.row > [class*="col-"]:has(> .prt-fid.style3) { display: flex; }
.prt-fid.style3 { flex: 1 1 auto; width: 100%; }

.row:has(> .prt-stepbox) { align-items: stretch; }
.prt-stepbox > .prt-stepbox-style2 { height: 100%; }
.prt-stepbox-style2 .prt-stepbox-content { height: 100%; }

.sx-why-tile { height: calc(100% - 24px); }

/* Image d'accueil « About » centrée sur la hauteur du texte */
.row > [class*="col-"]:has(.sx-home-about-img) { align-self: center; }

/* ── 7. Boutons : le texte ne casse plus la forme du bouton ──────────────── */
a.prt-btn, button.prt-btn { display: inline-block; }
@media (min-width: 576px) {
  a.prt-btn, button.prt-btn { white-space: nowrap; }
}
.sx-cta-buttons .prt-btn, .prt-btn-waprre .prt-btn { text-align: center; }

/* ── 8. Écrans 992–1199 px : bloc en menu burger, contenu resserré ───────── */
@media (min-width: 992px) and (max-width: 1199px) {
  .home-page .hero-section .section-title .sx-hero-tagline { font-size: clamp(1.9rem, 3.6vw, 42px); }
  .prt-fid.style3 .prt-fid-contents .sx-stat-value span { font-size: 42px; line-height: 48px; }
  .prt-fid.style3 .prt-fid-contents .sx-stat-label { font-size: 15px; line-height: 22px; }
}

/* ── 9. Filtres et onglets : le thème met tout <button> en position absolue ─ */
/* Résultat : les filtres de Case Studies et les onglets de Government Hub
   s'empilaient en une seule pastille, à droite de la section au-dessus. */
.sx-cs-filter button, .sx-gh-tab, .sx-404-search button, form button.sx-linklike {
  position: static; left: auto; right: auto; top: auto; width: auto;
}
.sx-cs-filter button, .sx-gh-tab { padding: 8px 18px; line-height: 1.3; }
.sx-cs-filter button:not([aria-pressed="true"]), .sx-gh-tab:not([aria-selected="true"]) { color: var(--sx-blue); background: #fff; }

/* ── 10. Textes illisibles (sombre sur sombre, blanc sur blanc) ───────────── */
.prt-page-title-row .sx-cs-intro { color: rgba(255,255,255,.88); }
.sx-contact-form .sx-contact-response,
.sx-contact-form .sx-contact-response strong { color: rgba(255,255,255,.8) !important; opacity: 1; }
.rfq-page .sx-contact-card a { color: var(--sx-blue) !important; word-break: break-word; }

/* ── 11. Images recadrées (schémas coupés) ───────────────────────────────── */
.sx-gh-hero img { aspect-ratio: 1200 / 630; }
/* Liste du blog : image élargie, titre entier */
@media (min-width: 992px) {
  .featured-imagebox-post.style4 .featured-thumbnail { width: 44%; }
  .featured-imagebox-post.style4 .featured-thumbnail a { display: block; height: 100%; }
  .featured-imagebox-post.style4 .featured-thumbnail img { aspect-ratio: auto; }
}
.featured-imagebox-post.style4 .featured-content-post .featured-title h3,
.featured-imagebox-post.style4 .featured-content-post .featured-title h3 a {
  display: block; -webkit-line-clamp: unset; overflow: visible; font-size: clamp(18px, 1.5vw, 22px); line-height: 1.3;
}
.featured-imagebox-post.style4 .featured-content-post .featured-title h3 { margin: 12px 0 10px; }

/* ── 12. Page Request a Quote ─────────────────────────────────────────────── */
#quotation--popup .prt-pop-quotationform-title,
.modal-content .prt-newslettercontent .prt-pop-quotationform-title { line-height: 1.2; }
.rfq-page .sx-contact-card .featured-icon { width: auto; }
.rfq-page .sx-contact-card .prt-icon { width: 52px; height: 52px; line-height: 1; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.rfq-page .sx-contact-card .prt-icon i { color: #fff; }
.sx-quote-area { padding: 20px 22px !important; }
.sx-quote-area h3 { line-height: 1.35; margin-bottom: 8px; }

/* ── 13. Ajustements finaux ──────────────────────────────────────────────── */
/* Blog : l'image garde ses proportions, centrée dans sa colonne */
@media (min-width: 992px) {
  .featured-imagebox-post.style4 .featured-thumbnail { display: flex; align-items: center; padding: 14px 0 14px 14px; }
  .featured-imagebox-post.style4 .featured-thumbnail a { height: auto; width: 100%; }
  .featured-imagebox-post.style4 .featured-thumbnail img { height: auto !important; aspect-ratio: 1200 / 630; border-radius: 12px; }
}
/* Boutons dans les colonnes étroites : retour à la ligne autorisé */
.sx-rfq-capability .prt-btn { white-space: normal; }
@media (max-width: 1199px) {
  .prt-pricing-plan .prt-btn { white-space: normal; padding-left: 16px; padding-right: 16px; }
}
.bottom-footer .cpy-text { flex-basis: 420px; }

/* Titres du blog entiers (le thème les coupe à une ligne) */
.featured-imagebox-post.style4 .featured-content-post .featured-title h3,
.featured-imagebox-post.style4 .featured-content-post .featured-title h3 a { white-space: normal !important; text-overflow: clip; }
/* Le thème masque les <br> des titres sous 1200 px : les mots se collaient
   (« provenengagement », « Enterprise.Secured »). */
.section-title h3.title br, .section-title .title br, .sx-hero-tagline br { display: inline !important; }
.sx-rfq-capability .prt-btn { line-height: 1.3; padding-top: 12px; padding-bottom: 12px; }

/* Government Hub : l'image suit la lecture à côté de la longue colonne de texte */
@media (min-width: 992px) {
  .service-section-style2-wrapper > [class*="col-lg-6"]:has(.tm-reveal-effects-yes) { position: sticky; top: 110px; align-self: flex-start; }
}

/* Menu sur une seule ligne dès 1200 px */
@media (min-width: 1200px) and (max-width: 1279px) {
  #site-header-menu .container-fluid,
  .top_bar.prt-topbar-wrapper .container-fluid { padding-left: 20px !important; padding-right: 20px !important; }
  #site-header-menu nav.main-menu ul.menu > li > a,
  #site-header-menu nav.main-menu ul.menu > li > button:not(.sx-sub-toggle:not(.sx-nav-parent)) { padding-left: 5px !important; padding-right: 5px !important; font-size: 13px !important; }
  #site-header-menu nav.main-menu ul.menu > li.sx-has-sub > .sx-sub-toggle:not(.sx-nav-parent) { width: 14px; min-width: 14px; padding: 0 !important; }
  #site-header-menu .header_btn .prt-btn, .prt-header-style-01 .header_extra a { padding-left: 14px !important; padding-right: 14px !important; font-size: 13px !important; }
}
/* Tablette : images du blog non recadrées */
@media (min-width: 768px) and (max-width: 991px) {
  .featured-imagebox-post.style4 .featured-thumbnail { display: flex; align-items: center; padding: 14px 0 14px 14px; }
  .featured-imagebox-post.style4 .featured-thumbnail a { display: block; width: 100%; height: auto; }
  .featured-imagebox-post.style4 .featured-thumbnail img { height: auto !important; aspect-ratio: 1200 / 630; border-radius: 12px; }
}

/* Boutons des diapositives du hero (liens sans classe .prt-btn) */
.hero-section .prt-btn-waprre a { display: inline-block; text-align: center; }
@media (min-width: 576px) {
  .hero-section .prt-btn-waprre a { white-space: nowrap; }
}

/* ==========================================================================
   Retour client : mêmes hauteurs pour les cartes de même nature, sur tous les
   écrans, et hero mobile corrigé.
   ========================================================================== */

/* ── 14. Carrousels : height:100% sur la diapositive annulait l'étirement ── */
.portfolio-section .slick-slide.prt-box-col-wrapper,
.blog-section .slick-slide[class*="col-"] { height: auto; display: flex !important; }
.portfolio-section .slick-slide > .prt-featured-postbox,
.blog-section .slick-slide > .featured-imagebox-post { width: 100%; }
.blog-section .slick-slide .featured-imagebox-post { height: auto; margin-bottom: 15px; }

/* ── 15. Grilles de cartes : toutes les rangées à la hauteur de la plus haute ─
   Grille de 12 colonnes qui reprend les classes Bootstrap ; grid-auto-rows:1fr
   égalise aussi d'une rangée à l'autre, y compris sur une seule colonne. */
.row:has(> [class*="col-"] > :where(.sx-service-card, .prt-fid.style3, .sx-why-tile, .sx-tech-card, .sx-cs-card, .sx-svc-card, .sx-pe-card, .sx-quote-area, .sx-about-card, .sx-ent-block, .prt-pricing-plan, .sx-contact-card)),
.row:has(> .prt-stepbox) {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  row-gap: 28px;
}
.row:has(> [class*="col-"] > :where(.sx-service-card, .prt-fid.style3, .sx-why-tile, .sx-tech-card, .sx-cs-card, .sx-svc-card, .sx-pe-card, .sx-quote-area, .sx-about-card, .sx-ent-block, .prt-pricing-plan, .sx-contact-card)) > [class*="col-"],
.row:has(> .prt-stepbox) > .prt-stepbox {
  flex: none; width: auto; max-width: none; grid-column: span 12;
  margin: 0 !important; display: flex;
}
.row:has(> [class*="col-"] > :where(.sx-service-card, .prt-fid.style3, .sx-why-tile, .sx-tech-card, .sx-cs-card, .sx-svc-card, .sx-pe-card, .sx-quote-area, .sx-about-card, .sx-ent-block, .prt-pricing-plan, .sx-contact-card)) > [class*="col-"] > *,
.row:has(> .prt-stepbox) > .prt-stepbox > * {
  flex: 1 1 auto; width: 100%; min-width: 0; height: auto !important; min-height: 0; margin-bottom: 0 !important;
}
@media (min-width: 576px) {
  .row:has(> [class*="col-"] > :where(.prt-fid.style3)) > .col-sm-6,
  .row:has(> .prt-stepbox) > .col-sm-6 { grid-column: span 6 !important; }
}
@media (min-width: 768px) {
  .row:has(> [class*="col-"] > :where(.sx-service-card, .prt-fid.style3, .sx-why-tile, .sx-tech-card, .sx-cs-card, .sx-svc-card, .sx-pe-card, .sx-quote-area, .prt-pricing-plan)) > .col-md-6,
  .row:has(> .prt-stepbox) > .col-md-6 { grid-column: span 6 !important; }
}
@media (min-width: 992px) {
  .row:has(> [class*="col-"] > :where(.sx-service-card, .prt-fid.style3, .sx-why-tile, .sx-tech-card, .sx-cs-card, .sx-svc-card, .sx-pe-card, .sx-quote-area, .sx-about-card, .sx-ent-block, .prt-pricing-plan)) > .col-lg-3,
  .row:has(> .prt-stepbox) > .col-lg-3 { grid-column: span 3 !important; }
  .row:has(> [class*="col-"] > :where(.sx-service-card, .sx-tech-card, .sx-cs-card, .sx-svc-card, .sx-pe-card, .prt-pricing-plan)) > .col-lg-4 { grid-column: span 4 !important; }
  .row:has(> [class*="col-"] > :where(.sx-svc-card, .sx-quote-area, .sx-about-card, .sx-ent-block)) > .col-lg-6 { grid-column: span 6 !important; }
}
/* Colonne latérale Request a Quote : le bouton final garde sa propre hauteur */
.row:has(> [class*="col-"] > .sx-contact-card):has(.sx-rfq-capability) { grid-auto-rows: auto; grid-template-rows: repeat(4, 1fr) auto; }
.row:has(> [class*="col-"] > .sx-contact-card) { row-gap: 18px; }
/* Le contenu des cartes de tarifs occupe toute la carte */
.prt-pricing-plan { display: flex; flex-direction: column; }

/* Liens de secteurs : même hauteur de trait */
.row.sx-sector-list { align-items: stretch; }
.row.sx-sector-list > [class*="col-"] > * { height: 100%; }
.sx-sector-link { height: 100%; }

/* ── 16. Hero mobile et tablette ─────────────────────────────────────────── */
.hero-section .slick-arrow:focus:not(:focus-visible) { outline: 0; box-shadow: none; }
@media (max-width: 991px) {
  .hero-section,
  .hero-section .slick-list { height: auto !important; }
  .hero-section .slick-track { display: flex !important; height: auto !important; }
  /* Toutes les diapositives ont la même hauteur, le contenu passe sous le logo */
  .hero-section .hero-slide { height: auto !important; min-height: 0 !important; display: flex !important; align-items: center; padding: 118px 0 78px !important; float: none; }
  .hero-section .hero-slide > .container { width: 100%; }
  .hero-section .hero-slide .hero-content-block,
  .hero-section .hero-slide .hero-content,
  .hero-section .hero-slide .hero-content-inner { padding: 0 !important; margin: 0 !important; text-align: center; }
  .hero-section .hero-slide .row > [class*="col-"] { flex: 0 0 100%; max-width: 100%; padding-left: 15px !important; padding-right: 15px !important; margin: 0 !important; }

  /* Diapositive 1 : le slogan et le texte étaient masqués par le thème */
  .hero-section .hero-slide.slide-1 .hero-content-block .hero-content p,
  .hero-section .hero-slide.slide-1 .subtitle-wrapper,
  .hero-section .hero-slide.slide-1 .subtitle { display: block; }
  .hero-section .hero-slide.slide-1 .hero-content-block .hero-content p.sx-hero-tech { display: none; }
  .hero-section .hero-slide.slide-2 .hero-content-block .hero-content .prt-btn-desc p,
  .hero-section .hero-slide .prt-btn-desc p,
  .hero-section .hero-slide .prt-hero-desc p { display: block; margin: 0 auto 4px; max-width: 620px; color: #fff; font-size: 15px; line-height: 1.55; text-align: center; opacity: .9; }
  .hero-section .hero-slide .prt-btn-desc { border: 0 !important; padding: 0 !important; margin: 0 0 4px; }
  .hero-section .hero-slide .prt-btn-desc::before, .hero-section .hero-slide .prt-btn-desc::after { display: none; }

  /* Même hiérarchie de textes sur les trois diapositives */
  .home-page .hero-section .sx-eyebrow,
  .hero-section .hero-slide .subtitle-wrapper .subtitle h2,
  .hero-section .hero-slide .prt-hero-pre-title h2 {
    display: block; margin: 0 0 12px; padding: 0; border: 0; font-size: 12px !important; line-height: 1.5; letter-spacing: 1.5px; font-weight: 600; text-transform: uppercase; text-align: center; text-decoration: none; background: none;
  }
  .hero-section .hero-slide .prt-hero-pre-title h2::before, .hero-section .hero-slide .prt-hero-pre-title h2::after,
  .hero-section .hero-slide .subtitle-wrapper .subtitle::before, .hero-section .hero-slide .subtitle-wrapper::before { display: none !important; }
  .hero-section .hero-slide .subtitle-wrapper, .hero-section .hero-slide .subtitle { justify-content: center; padding-left: 0; margin-left: 0; }
  .home-page .hero-section .section-title .sx-hero-tagline,
  .hero-section .hero-slide .section-title h3.title,
  .hero-section .hero-slide.slide-2 .section-title h3,
  .hero-section .hero-slide .prt-hero-title h3 {
    margin: 0 0 12px; font-size: clamp(1.75rem, 7.4vw, 2.6rem) !important; line-height: 1.18 !important; font-weight: 600; text-align: center; max-width: none;
  }
  .home-page .hero-section .sx-home-h1 { margin: 0 0 12px; font-size: clamp(1rem, 4.2vw, 1.25rem); text-align: center; }
  .home-page .sx-hero-body { margin: 0 auto 4px; max-width: 620px; font-size: 15px; line-height: 1.55; text-align: center; }

  /* Boutons empilés, même largeur */
  .hero-section .hero-slide .prt-btn-waprre { display: flex; flex-direction: column; align-items: center; gap: 12px; float: none; margin: 18px 0 0 !important; padding: 0; }
  .hero-section .hero-slide .prt-btn-waprre a { float: none; width: 100%; max-width: 290px; margin: 0 !important; text-align: center; white-space: normal; }
  .home-page .hero-section .sx-hero-textlink { margin: 14px 0 0; text-align: center; }

  /* Flèches en bas, centrées : elles ne couvrent plus le texte */
  .hero-section .slick-arrow { top: auto !important; bottom: 20px !important; transform: none !important; margin: 0 !important; width: 40px; height: 40px; z-index: 3; }
  .hero-section .slick-prev { left: calc(50% - 46px) !important; right: auto !important; }
  .hero-section .slick-next { right: calc(50% - 46px) !important; left: auto !important; }

  /* Le filigrane SYNCXELL de l'image n'est plus coupé par l'arrondi */
  .sx-home-about-img img { border-radius: 14px !important; }
}

@media (max-width: 991px) {
  /* Hauteur fixe du thème : le contenu sortait du bloc et de la section */
  .hero-section .hero-slide .hero-content-block, .hero-section .hero-slide .hero-content, .hero-section .hero-slide .hero-content-inner, .hero-section .hero-slide .section-title-block { height: auto !important; min-height: 0 !important; max-height: none !important; position: static; transform: none; }
  .hero-section .hero-slide .prt-hero-desc p { margin-left: auto !important; margin-right: auto !important; font-size: 15px !important; }
}

@media (max-width: 575px) {
  /* Téléphone : le hero tient dans le premier écran. Le texte long de la diapositive 1 reste masqué, comme avant. */
  .hero-section .hero-slide { padding: 100px 0 72px !important; }
  .hero-section .hero-slide.slide-1 .hero-content-block .hero-content p.sx-hero-body { display: none; }
  .home-page .hero-section .section-title .sx-hero-tagline, .hero-section .hero-slide .section-title h3.title, .hero-section .hero-slide.slide-2 .section-title h3, .hero-section .hero-slide .prt-hero-title h3 { font-size: clamp(1.55rem, 7vw, 2rem) !important; }
  .hero-section .hero-slide .prt-btn-desc p, .hero-section .hero-slide .prt-hero-desc p { font-size: 14px !important; line-height: 1.5; }
}

@media (max-width: 991px) {
  /* Surtitres identiques sur les trois diapositives */
  .home-page .hero-section .sx-eyebrow,
  .hero-section .hero-slide .subtitle-wrapper .subtitle h2,
  .hero-section .hero-slide .prt-hero-pre-title h2 {
    display: block !important; color: #fff !important; border: 0 !important; text-decoration: none !important; line-height: 1.5 !important; background: none !important; box-shadow: none !important;
  }
  .hero-section .hero-slide .prt-hero-pre-title h2 span, .hero-section .hero-slide .prt-hero-pre-title { border: 0 !important; text-decoration: none !important; }
  /* « Zero-Trust » à la même taille que le reste du titre */
  .hero-section .hero-slide .section-title h3.title span { font-size: inherit !important; line-height: inherit !important; }
  /* Texte de la diapositive 3, masqué par le thème */
  .hero-section .hero-slide .prt-hero-desc { display: block !important; margin: 0 0 4px; }
}
/* Titre « Why agencies » : interligne resserré */
.sx-why-section .section-title .title,
.sx-why-section .section-title .title span { line-height: 1.25 !important; }

/* Liens de secteurs : toutes les rangées à la même hauteur */
.row.sx-sector-list { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 1fr; }
.row.sx-sector-list > [class*="col-"] { flex: none; width: auto; max-width: none; grid-column: span 12; }
@media (min-width: 576px) { .row.sx-sector-list > .col-sm-6 { grid-column: span 6 !important; } }
@media (min-width: 768px) { .row.sx-sector-list > .col-md-4 { grid-column: span 4 !important; } }
@media (min-width: 992px) { .row.sx-sector-list > .col-lg-3 { grid-column: span 3 !important; } }

/* ── 17. Corrections de la grille de cartes ──────────────────────────────── */
/* Un titre pleine largeur dans la même rangée garde sa propre hauteur */
.row:has(> .col-lg-12:first-child:not(:has(.sx-contact-card))):has(> [class*="col-"] > .sx-quote-area) { grid-template-rows: auto; }

/* Work process : la carte occupe toute la colonne */
.prt-stepbox-style2,
.step-section-style2 .prt-stepbox-style2 .prt-stepbox-content { display: flex !important; flex-direction: column; flex: 1 1 auto; height: 100%; width: 100%; }
.prt-stepbox-style2 .prt-stepbox-contents { display: flex; flex-direction: column; flex: 1 1 auto; }
.prt-stepbox-style2 .prt-stepbox-contents .prt-bottom-contentbox { flex: 1 1 auto; }

/* Chiffres clés : texte en haut, icône en bas, sur toutes les cartes */
.prt-fid.style3 { align-items: stretch !important; }
.prt-fid.style3 .prt-fid-contents { align-self: flex-start; }
.prt-fid.style3 .prt-fid-icon-wrapper { align-self: flex-end; }

/* Request a Quote : icônes rondes au lieu de la bande bleue */
.rfq-page .sx-contact-card .featured-icon { width: 54px !important; height: 54px !important; flex: 0 0 54px; border-radius: 50% !important; display: flex !important; align-items: center; justify-content: center; margin: 0 0 12px !important; padding: 0 !important; }
.rfq-page .sx-contact-card .prt-icon { width: auto; height: auto; margin: 0; background: none; }

/* ── 18. Menu : jamais sur deux lignes, y compris dans l'en-tête collant ──── */
@media (min-width: 1200px) {
  nav.main-menu ul.menu { display: flex !important; flex-wrap: nowrap; align-items: stretch; white-space: nowrap; }
  nav.main-menu ul.menu > li { flex: 0 0 auto; }
  nav.main-menu ul.menu ul.mega-submenu { white-space: normal; }
}
@media (min-width: 1200px) and (max-width: 1439px) {
  .prt-stickable-header.fixed-header #site-header-menu nav.main-menu ul.menu > li > a,
  .prt-stickable-header.fixed-header #site-header-menu nav.main-menu ul.menu > li > button.sx-nav-parent { padding-left: 7px !important; padding-right: 7px !important; font-size: 14px !important; }
}
/* Work process : plus de décalage en escalier entre les cartes paires et impaires */
.row:has(> .prt-stepbox) > .prt-stepbox { padding-top: 0 !important; }
