/*
 * Thermecatex — feuille de style du thème enfant (reprise du « CSS additionnel » du Customizer).
 * Les images du thème parent sont référencées en relatif : aucun domaine en dur.
 */
/* Thermecatex : masquer les flèches du hero */
.featured-slider-two .f-2-s-nav {
	display: none;
}

/* >>> thermecatex-section-blanche (livrable p. 10-11) */
.thermecatex-light .heading { margin-bottom: 40px; }
.thermecatex-light .heading h2 {
	display: block;
	max-width: 900px;
	margin: 0 auto;
	color: #111;
	font-size: clamp(1.8rem, 3.4vw, 2.7rem);
	line-height: 1.12;
}
.thermecatex-light .heading p,
.thermecatex-light .heading div { color: #333; }
.thermecatex-light .heading p { max-width: 700px; margin: 14px auto 0; font-size: 0.85rem; line-height: 1.7; }
.thermecatex-cards, .thermecatex-cards .service-style-one, .thermecatex-cards .gap { background: transparent !important; padding-top: 0; padding-bottom: 0; }
.thermecatex-cards .row { --bs-gutter-x: 16px; }
.thermecatex-cards .row > div { margin-bottom: 16px; }
.thermecatex-cards .service-data {
	position: relative; width: 100%; margin: 0; padding: 28px 26px;
	aspect-ratio: 1 / 1; overflow: hidden; text-align: left; background: #111; border: 0;
}
.thermecatex-cards .service-data:before,
.thermecatex-cards .service-data .svg-icon:before { display: none; }
.thermecatex-cards .service-data .svg-icon { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
.thermecatex-cards .service-data .svg-icon img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: none !important; }
.thermecatex-cards .service-data .svg-icon:after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.42); }
.thermecatex-cards .service-data .h3 { position: relative; z-index: 2; margin: 0; text-align: left; }
.thermecatex-cards .service-data .h3 a,
.thermecatex-cards .service-data .h3 span { display: inline-block; max-width: 11ch; color: #fff; font-size: clamp(1.15rem, 1.9vw, 1.65rem); font-weight: 600; line-height: 1.2; }
.thermecatex-dg { margin-top: 80px; }
.thermecatex-dg .heading { margin-bottom: 20px; }
.thermecatex-dg .heading h2 { text-transform: uppercase; font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.thermecatex-dg .heading p { max-width: 980px; margin: 0 auto 0.8rem; font-size: 0.8rem; }
.thermecatex-dg .heading p.thermecatex-signature { max-width: 700px; margin-top: 1.2rem; color: #d00018; text-align: left; }
/* <<< thermecatex-section-blanche */

/* >>> thermecatex-header */
.header-style-one .nav-bar .nav-bar-menu > li > a { white-space: nowrap; padding-left: 10px; padding-right: 10px; font-size: 15px; }
/* <<< thermecatex-header */

/* >>> thermecatex-header2 (livrable p. 9) */
.tx-header-extras > .elementor-widget-wrap { display: flex; align-items: center; justify-content: flex-end; gap: 28px; flex-wrap: nowrap; }
.tx-header-extras .elementor-widget { width: auto !important; margin: 0 !important; }
.tx-header-extras .extras { display: flex; align-items: center; margin: 0; }
.tx-header-social .elementor-social-icons-wrapper { display: flex; gap: 14px; }
.tx-header-social .elementor-social-icon { width: auto !important; height: auto !important; background: transparent !important; color: #fff !important; font-size: 18px; }
.tx-header-social .elementor-social-icon i { color: #fff; font-size: 18px; }
.tx-header-social .elementor-social-icon svg { fill: #fff; width: 18px; height: 18px; }
.tx-header-social .elementor-social-icon:hover i, .tx-header-social .elementor-social-icon:hover svg { color: #d00018; fill: #d00018; }
.header-style-one .nav-bar .nav-bar-menu > li > a { font-weight: 700; }
.header-style-one .nav-bar { padding-left: 110px; }
@media (max-width: 1500px) { .header-style-one .nav-bar { padding-left: 60px; } }
/* icône soleil comme au livrable (Builty affiche une lune en mode sombre) */
body.light-d #theme-icon { content: url("../../../builty/assets/images/sun.png"); }
body:not(.light-d) #theme-icon { content: url("../../../builty/assets/images/moon.png"); }
#theme-icon { width: 22px; height: 22px; }
.header-style-one .nav-bar .nav-bar-menu > li:first-child { margin-left: 50px; }
@media (max-width: 991px) {
	.tx-header-social, .tx-header-extras .color-start { display: none !important; }
	.header-style-one .desktop-nav .elementor-widget-image img { width: 140px; max-width: 140px; }
	.header-style-one .nav-bar { padding-left: 0; }
	.tx-header-extras .menu-start svg { margin-right: 0; }
}
/* en-tête : logo proportionnel et menu qui respire sur 13-15 pouces (1280-1500 px) */
@media (min-width: 992px) and (max-width: 1500px) {
	.header-style-one .desktop-nav .elementor-widget-image img { width: clamp(120px, 11vw, 160px) !important; max-width: none; }
	.header-style-one .nav-bar { padding-left: 70px; }
	.header-style-one .nav-bar .nav-bar-menu > li > a { padding-left: 8px; padding-right: 8px; font-size: 14px; }
	.header-style-one .nav-bar .nav-bar-menu > li:first-child { margin-left: 70px; }
}
/* <<< thermecatex-header2 */

/* >>> thermecatex-pages (livrable p. 14-36) */

/* Photo pleine largeur en tête de page */
.tx-hero-photo img { display: block; width: 100%; max-height: 440px; object-fit: cover; }

/* Article : titre + paragraphes justifiés */
.tx-article { padding: 10px 0 40px; }
.tx-article .elementor-heading-title { margin: 26px 0 24px; color: #fff; font-size: clamp(1.4rem, 2.3vw, 1.9rem); font-weight: 700; line-height: 1.25; }
.tx-article p, .tx-row p, .tx-intro p { color: #c4c4c4; font-size: 0.84rem; line-height: 1.95; text-align: justify; }
.tx-article p { margin-bottom: 1.4rem; }

/* Rangées titre + texte + photo (alternées) */
.tx-row { padding: 36px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.55); }
.tx-row:last-of-type { border-bottom: 0; }
.tx-row .elementor-heading-title { margin: 0 0 18px; color: #fff; font-size: clamp(1.4rem, 2.4vw, 2rem); font-weight: 700; line-height: 1.2; }
.tx-row__text > .elementor-widget-wrap { padding: 10px 36px; align-content: center; }
.tx-row__img > .elementor-widget-wrap { padding: 10px 0; }
.tx-row__img img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }

/* Bandeau titre centré (Location des chaudières) */
.tx-intro { padding: 30px 0; text-align: center; }
.tx-intro .elementor-heading-title { color: #fff; font-size: clamp(1.6rem, 2.8vw, 2.2rem); font-weight: 700; }
.tx-intro p { max-width: 820px; margin: 14px auto 0; text-align: center; }

/* Cartes blanches (Réglage combustion) */
.tx-cards > .elementor-container { gap: 0; }
.tx-cards .tx-card { align-self: stretch; }
.tx-card > .elementor-widget-wrap { height: calc(100% - 16px); margin: 8px; padding: 30px 26px; background: #fff; align-content: flex-start !important; }
.tx-card .elementor-heading-title, .tx-card h3 { margin: 0 0 14px !important; color: #111 !important; font-size: 1rem !important; font-weight: 700 !important; line-height: 1.3 !important; }
.tx-card p { color: #555 !important; font-size: 0.8rem; line-height: 1.8; margin: 0; text-align: left; }

@media (max-width: 767px) {
	.tx-row__text > .elementor-widget-wrap { padding: 10px 0 20px; }
	.tx-card > .elementor-widget-wrap { margin: 0 0 12px; }
}
/* Qui sommes nous */
.tx-intro--left { text-align: left; padding: 10px 0 20px; }
.tx-intro--left .elementor-heading-title.tx-red, .tx-red .elementor-heading-title, h2.tx-red { color: #e3202d !important; text-align: left; font-size: 1.5rem; font-weight: 700; margin-bottom: 20px; }
.tx-intro--left p { max-width: none; margin: 0 0 1.2rem; text-align: left; }
.tx-row ul { margin: 0 0 0 1.1rem; padding: 0; color: #c4c4c4; font-size: 0.84rem; line-height: 1.95; }
.tx-row ul ul { margin-left: 1.4rem; }
.tx-row li { list-style: disc; }

/* Nos coordonnées : Siège / Usine */
.tx-site__head { padding-top: 30px; }
.tx-site__title { color: #fff; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 700; line-height: 1.1; margin: 0 0 20px; }
.tx-site__body { padding-bottom: 40px; }
.tx-site__details > .elementor-widget-wrap { padding: 10px 40px; align-content: center; }
.tx-site__details p, .tx-site__details a { color: #e3202d !important; font-size: 0.85rem; line-height: 1.8; margin: 0 0 14px; text-decoration: none; }
.tx-site__details i { width: 26px; color: #e3202d; font-size: 1rem; }

/* Demande de devis */
.tx-quote { padding: 20px 0 50px; }
.tx-quote__title .elementor-heading-title { color: #fff; font-size: 1.6rem; font-weight: 700; margin: 0 0 30px; }
.tx-form { max-width: 760px; }
.tx-form__row { display: flex; gap: 20px; }
.tx-form label { display: block; flex: 1; margin-bottom: 20px; color: #ddd; font-size: 0.85rem; }
.tx-form input[type="text"], .tx-form input[type="email"], .tx-form input[type="tel"], .tx-form input[type="number"], .tx-form select, .tx-form textarea {
	width: 100%; margin-top: 6px; padding: 12px 14px; color: #fff; background: #0d0d0d; border: 1px solid #555; border-radius: 0; }
.tx-form textarea { min-height: 140px; }
.tx-form input[type="submit"] { padding: 12px 34px; color: #fff; background: #d00018; border: 0; font-weight: 700; cursor: pointer; }
@media (max-width: 767px) { .tx-form__row { display: block; } .tx-site__details > .elementor-widget-wrap { padding: 10px 0; } }

/* Accueil : Politique Qualité et RSE (livrable p. 11) */
.thermecatex-quality { padding: 40px 0 10px; }
.thermecatex-quality--acc { padding: 10px 0 70px; }
.tx-quality__left > .elementor-widget-wrap { padding: 10px 40px 10px 0; align-content: center; }
.tx-quality__title .elementor-heading-title { margin: 0 0 22px; color: #111 !important; font-size: clamp(1.8rem, 3vw, 2.5rem) !important; font-weight: 800 !important; line-height: 1.1 !important; max-width: 12ch; }
.tx-quality__text p { color: #333 !important; font-size: 0.88rem; line-height: 1.8; margin: 0 0 12px; text-align: left; }
.tx-quality__text strong { color: #111; }
.tx-quality__photo img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 11; object-fit: cover; }
.thermecatex-quality .elementor-accordion .elementor-accordion-item { border: 0; }
.thermecatex-quality .elementor-accordion .elementor-tab-title { padding: 14px 22px; color: #fff; background: #4b4f56; font-size: 0.8rem; font-weight: 700; }
.thermecatex-quality .elementor-accordion .elementor-tab-title a, .thermecatex-quality .elementor-accordion .elementor-accordion-title { color: #fff !important; }
.thermecatex-quality .elementor-accordion .elementor-tab-content { padding: 14px 22px; color: #111; border: 0; }
.thermecatex-quality .elementor-accordion .elementor-tab-content p { color: #111 !important; font-size: 0.85rem; margin: 0; }

.thermecatex-quality .elementor-accordion .elementor-accordion-icon, .thermecatex-quality .elementor-accordion .elementor-accordion-icon i { color: #fff !important; }
.thermecatex-quality .elementor-accordion .elementor-accordion-icon svg { fill: #fff !important; }
@media (max-width: 767px) { .tx-quality__left > .elementor-widget-wrap { padding: 10px 0 20px; } }

/* Accueil : Projets complétés, trust, FAQ (livrable p. 12-13) */
.thermecatex-projects .project-completed, .thermecatex-projects .project-completed .container-fluid { background: #fff !important; }
.thermecatex-projects .heading-style-2 span { color: #333 !important; }
.thermecatex-projects .heading-style-2 h2, .thermecatex-projects .heading-style-2 h2 span { color: #111 !important; }
.thermecatex-projects .proj-data .h3, .thermecatex-projects .proj-data .h3 a { color: #111 !important; }
.thermecatex-projects .proj-data p { color: #444 !important; }
.thermecatex-projects .loc-date span { color: #111 !important; }
.thermecatex-trust { padding: 60px 0 70px; text-align: center; }
.tx-trust__title .elementor-heading-title { margin: 0 0 24px; color: #111 !important; font-size: clamp(1.8rem, 3vw, 2.6rem) !important; font-weight: 800 !important; text-align: center; }
.tx-trust__text p, .tx-trust__text a { color: #333 !important; font-size: 0.82rem; line-height: 1.9; text-align: center; margin: 0; }
.thermecatex-faq { padding: 40px 0 60px; }
.tx-faq__title .elementor-heading-title { margin: 0 0 30px; color: #111 !important; font-size: 2.4rem !important; font-weight: 800 !important; text-align: center; text-transform: uppercase; }
.thermecatex-faq .accordion-body { color: #111 !important; background: #fff !important; font-weight: 700; }
.thermecatex-faq .accordion-body p, .thermecatex-faq .accordion-body a { color: #111 !important; }

.thermecatex-quality .elementor-accordion .elementor-tab-content a, .thermecatex-quality .elementor-accordion .elementor-tab-content strong { color: #111 !important; text-decoration: none; }
.thermecatex-quality .elementor-accordion .elementor-tab-content small { color: #555; font-size: 0.7rem; }
.thermecatex-quality--acc { padding-bottom: 20px; }

.thermecatex-projects .proj-image figure:before, .thermecatex-projects .proj-image figure:after { display: none !important; }

/* Mode clair (Builty : body sans .light-d) — le design sombre du livrable reste le mode par défaut */
body:not(.light-d) .tx-article .elementor-heading-title, body:not(.light-d) .tx-row .elementor-heading-title,
body:not(.light-d) .tx-intro .elementor-heading-title, body:not(.light-d) .tx-site__title,
body:not(.light-d) .tx-quote__title .elementor-heading-title { color: #111 !important; }
body:not(.light-d) .tx-article p, body:not(.light-d) .tx-row p, body:not(.light-d) .tx-intro p,
body:not(.light-d) .tx-row ul { color: #333 !important; }
body:not(.light-d) .tx-row { border-bottom-color: rgba(0, 0, 0, 0.18); }
body:not(.light-d) .tx-card > .elementor-widget-wrap { background: #f6f6f6; border: 1px solid #ddd; }
body:not(.light-d) .tx-form label { color: #222; }
body:not(.light-d) .tx-form input[type="text"], body:not(.light-d) .tx-form input[type="email"], body:not(.light-d) .tx-form input[type="tel"],
body:not(.light-d) .tx-form input[type="number"], body:not(.light-d) .tx-form select, body:not(.light-d) .tx-form textarea { color: #111; background: #fff; border-color: #bbb; }

/* Mode clair = inversion du corps de page ; hero, en-tête et pied de page restent TOUJOURS noirs (demande du client).
   Accueil : sections blanches du livrable -> sombres ; zones d'intervention (noir) -> clair. */
body:not(.light-d) .elementor-section.thermecatex-light { background-color: #0d0d0d !important; }
body:not(.light-d) .thermecatex-light h1, body:not(.light-d) .thermecatex-light h2, body:not(.light-d) .thermecatex-light h3,
body:not(.light-d) .thermecatex-light .elementor-heading-title, body:not(.light-d) .tx-quality__title .elementor-heading-title,
body:not(.light-d) .tx-trust__title .elementor-heading-title, body:not(.light-d) .tx-faq__title .elementor-heading-title,
body:not(.light-d) .tx-quality__text strong { color: #fff !important; }
body:not(.light-d) .thermecatex-light p, body:not(.light-d) .thermecatex-light a, body:not(.light-d) .tx-quality__text p,
body:not(.light-d) .tx-trust__text p, body:not(.light-d) .tx-trust__text a { color: #cfcfcf !important; }
body:not(.light-d) .thermecatex-light .heading span, body:not(.light-d) .thermecatex-light .heading h2 span { color: #fff !important; }
body:not(.light-d) .thermecatex-projects .project-completed, body:not(.light-d) .thermecatex-projects .project-completed .container-fluid { background: #0d0d0d !important; }
body:not(.light-d) .thermecatex-projects .heading-style-2 span, body:not(.light-d) .thermecatex-projects .heading-style-2 h2,
body:not(.light-d) .thermecatex-projects .heading-style-2 h2 span, body:not(.light-d) .thermecatex-projects .proj-data .h3,
body:not(.light-d) .thermecatex-projects .proj-data .h3 a, body:not(.light-d) .thermecatex-projects .loc-date span { color: #fff !important; }
body:not(.light-d) .thermecatex-projects .proj-data p { color: #cfcfcf !important; }
body:not(.light-d) .thermecatex-faq .accordion-item, body:not(.light-d) .thermecatex-faq .accordion-button { background: #1b1b1b !important; color: #fff !important; }
body:not(.light-d) .thermecatex-faq .accordion-body { background: #0d0d0d !important; }
body:not(.light-d) .thermecatex-faq .accordion-body, body:not(.light-d) .thermecatex-faq .accordion-body p, body:not(.light-d) .thermecatex-faq .accordion-body a { color: #fff !important; }
body:not(.light-d) .elementor-section.thermecatex-zones, body:not(.light-d) .gap.where-we-work { background-color: #f2f2f2 !important; background-image: none !important; }
body:not(.light-d) .where-we-work, body:not(.light-d) .where-we-work h2, body:not(.light-d) .where-we-work .heading span,
body:not(.light-d) .where-we-work p, body:not(.light-d) .where-we-work .description { color: #111 !important; }

body:not(.light-d) .thermecatex-quality .elementor-accordion .elementor-tab-content, body:not(.light-d) .thermecatex-quality .elementor-accordion .elementor-tab-content a,
body:not(.light-d) .thermecatex-quality .elementor-accordion .elementor-tab-content strong, body:not(.light-d) .thermecatex-quality .elementor-accordion .elementor-tab-content p { color: #fff !important; }
body:not(.light-d) .thermecatex-quality .elementor-accordion .elementor-tab-content small { color: #aaa !important; }
.tx-atts { padding: 10px 0 40px; }
.tx-att > .elementor-widget-wrap { padding: 6px; }
.tx-att img { display: block; width: 100%; height: auto; }
.tx-row__img img[alt^="Schéma"], .tx-site .tx-row__img img[alt^="Plan"] { object-fit: contain; aspect-ratio: auto; background: #fff; }
/* Responsive : marges latérales des sections blanches, 3 cartes sur une ligne en tablette */
@media (max-width: 991px) {
	.thermecatex-light > .elementor-container, .thermecatex-quality > .elementor-container { padding-left: 24px; padding-right: 24px; }
	.thermecatex-light .elementor-widget-builty-services-grid .row > div { flex: 0 0 33.3333%; max-width: 33.3333%; }
	.thermecatex-light .service-style-one .service-data { width: 100%; }
}
@media (max-width: 767px) {
	.thermecatex-light .elementor-widget-builty-services-grid .row > div { flex: 0 0 100%; max-width: 100%; }
	.thermecatex-light > .elementor-container, .thermecatex-quality > .elementor-container { padding-left: 20px; padding-right: 20px; }
}
/* Cartes produits : au survol, photo assombrie + description + bouton rond rouge (vidéo du client 09/10) */
.thermecatex-cards .service-data p { display: none; }
.thermecatex-cards .service-data { cursor: pointer; }
.thermecatex-cards .service-data .svg-icon:after { transition: background 0.3s ease; }
.thermecatex-cards .service-data:hover .svg-icon:after { background: rgba(0, 0, 0, 0.62); }
.thermecatex-cards .service-data:hover p {
	display: block; position: absolute; z-index: 2; left: 26px; right: 22px; top: 132px; margin: 0;
	color: #fff !important; font-size: 0.78rem; line-height: 1.55; text-align: left;
}
.thermecatex-cards .service-data a.icon {
	position: absolute; z-index: 3; left: 26px; bottom: 24px; width: 46px; height: 46px; margin: 0;
	background: #d00018 !important; border: 0; border-radius: 50%; opacity: 0; visibility: hidden; transform: none;
	display: flex; align-items: center; justify-content: center; transition: opacity 0.3s ease;
}
.thermecatex-cards .service-data:hover a.icon { opacity: 1; visibility: visible; }
.thermecatex-cards .service-data a.icon i { color: #fff !important; font-size: 14px; }
.thermecatex-cards .service-data a.icon i:before { content: "\f062"; display: inline-block; transform: rotate(45deg); }
/* tablette/mobile (pas de survol) : description toujours visible */
@media (hover: none) {
	.thermecatex-cards .service-data p { display: block; position: absolute; z-index: 2; left: 22px; right: 18px; top: 118px; margin: 0; color: #fff !important; font-size: 0.72rem; line-height: 1.5; text-align: left; }
	.thermecatex-cards .service-data a.icon { opacity: 1; visibility: visible; width: 38px; height: 38px; left: 22px; bottom: 18px; }
	.thermecatex-cards .service-data .svg-icon:after { background: rgba(0, 0, 0, 0.58); }
}

/* Pied de page : certificats */
.tx-footer-certs .tx-certs{display:flex;justify-content:flex-end;gap:60px;margin:0}.tx-footer-certs a{color:#fff!important;font-weight:700;font-size:.8rem;text-decoration:none}.tx-footer-certs a:hover{color:#d00018!important}@media(max-width:767px){.tx-footer-certs .tx-certs{justify-content:center;gap:24px;flex-wrap:wrap}}

.footer-style-one .social-medias a, .footer-style-one .social-medias a i { font-size: 22px; text-decoration: none !important; color: #fff !important; }
.footer-style-one .social-medias { display: flex; gap: 18px; justify-content: flex-start; }

/* Projets complétés : responsive (titre et image adaptés à la largeur) */
.thermecatex-projects .proj-data .h3, .thermecatex-projects .proj-data .h3 a { font-size: clamp(1.35rem, 2.6vw, 2.2rem) !important; line-height: 1.2 !important; word-break: normal; overflow-wrap: break-word; }
.thermecatex-projects .proj-image figure { margin: 0; }
.thermecatex-projects .proj-image img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; height: auto; }
@media (max-width: 1199px) { .thermecatex-projects .proj-data { padding: 20px 20px 20px 0; } .thermecatex-projects .proj-data p { width: 100%; } }
@media (max-width: 991px) {
	.thermecatex-projects .proj-image img { aspect-ratio: 16 / 10; max-height: 420px; }
	.thermecatex-projects .proj-data { padding: 24px 0; }
	.thermecatex-projects .heading-style-2 .prj-slider-nav { text-align: left; margin-top: 12px; }
}
@media (max-width: 575px) {
	.thermecatex-projects .proj-data .h3, .thermecatex-projects .proj-data .h3 a { font-size: 1.3rem !important; }
	.thermecatex-projects .proj-image img { aspect-ratio: 4 / 3; }
}

@media (max-width: 991px) { .thermecatex-projects .heading-style-2 .row > div { flex: 0 0 100%; max-width: 100%; } .thermecatex-projects .heading-style-2 .data span { white-space: normal; } }

/* Projets complétés : carrousel calé sur la largeur du titre (même colonne centrée, quel que soit l'écran / le zoom) */
.thermecatex-projects .project-completed .container-fluid.prj-slider { max-width: 1320px; margin-left: auto; margin-right: auto; padding-left: 0 !important; padding-right: 0; overflow: hidden; }
.thermecatex-projects .proj-data { width: 100%; padding-left: 8%; }
@media (max-width: 991px) { .thermecatex-projects .proj-data { padding-left: 0; } }


/* Grands écrans / zoom arrière (ex. 67 %) : la colonne de contenu garde les mêmes proportions qu'à 100 % (≈ 79 % de la largeur)
   au lieu de rester figée à 1140-1320 px avec de grands vides de chaque côté. */
@media (min-width: 1500px) {
	.container, .container-lg, .container-xl, .container-xxl { max-width: min(79vw, 2800px) !important; }
	.elementor-section.elementor-section-boxed > .elementor-container { max-width: min(79vw, 2800px); }
	.tx-hero-photo, .tx-article > .elementor-container, .tx-row > .elementor-container, .tx-site > .elementor-container,
	.tx-intro > .elementor-container, .tx-cards > .elementor-container, .tx-quote > .elementor-container, .tx-atts > .elementor-container { max-width: min(79vw, 2800px) !important; }
	.thermecatex-projects .project-completed .container-fluid.prj-slider { max-width: min(84vw, 3000px); }
	.thermecatex-cards > .elementor-container { max-width: min(79vw, 2800px) !important; }
}

@media (min-width: 1500px) {
	.thermecatex-light .heading h2 { max-width: 61vw; }
	.thermecatex-light .heading p { max-width: 49vw; }
	.thermecatex-dg .heading p { max-width: 68vw; }
}
/* Politique Qualité : accordéon à la largeur de la colonne de texte (livrable p. 11) */
@media (min-width: 768px) { .thermecatex-quality--acc .elementor-widget-accordion { max-width: calc(50% - 40px); } }
/* Bloc « trust » : avatar + coordonnées (livrable p. 12) */
.thermecatex-trust { padding: 60px 0 40px; }
.tx-trust__avatar { text-align: center; margin-bottom: 14px; }
.tx-trust__avatar img { display: inline-block; width: 230px; max-width: 60%; height: auto; }
.tx-trust__text { position: relative; padding-top: 14px; }
.tx-trust__text:before { content: ""; display: block; width: 130px; height: 1px; margin: 0 auto 10px; background: #ddd; }
.tx-trust__text p, .tx-trust__text a { color: #555 !important; font-size: 0.8rem; line-height: 1.6; }

/* Documentation technique (livrable p. 20) */
.tx-docs-section { padding: 30px 0 60px; }
.tx-docs__title .elementor-heading-title { margin: 0 0 14px; color: #fff; font-size: clamp(1.6rem, 2.4vw, 2rem); font-weight: 700; }
.tx-docs__left p { color: #c4c4c4; font-size: 0.84rem; line-height: 1.9; text-align: left; }
.tx-docs__left > .elementor-widget-wrap { padding-right: 40px; }
.tx-docs .elementor-accordion .elementor-accordion-item { border: 0; margin-bottom: 14px; }
.tx-docs .elementor-accordion .elementor-tab-title { padding: 14px 20px; background: #d00018; color: #fff; }
.tx-docs .elementor-accordion .elementor-tab-title.elementor-active { background: #4b4f56; }
.tx-docs .elementor-accordion .elementor-tab-title a, .tx-docs .elementor-accordion .elementor-accordion-title { color: #fff !important; font-size: 0.82rem; font-weight: 700; }
.tx-docs .elementor-accordion .elementor-accordion-icon, .tx-docs .elementor-accordion .elementor-accordion-icon i { color: #fff !important; float: right; }
.tx-docs .elementor-accordion .elementor-tab-content { padding: 14px 20px; color: #ddd; border: 0; font-size: 0.82rem; }
body:not(.light-d) .tx-docs__title .elementor-heading-title { color: #111; }
body:not(.light-d) .tx-docs__left p, body:not(.light-d) .tx-docs .elementor-tab-content { color: #333; }
@media (max-width: 767px) { .tx-docs__left > .elementor-widget-wrap { padding-right: 0; } }
.tx-docs .elementor-accordion .elementor-accordion-icon svg { fill: #fff !important; }
.tx-docs .elementor-accordion .elementor-accordion-icon i:before { color: #fff; }

/* Demande de devis : identique au livrable p. 37 (1 colonne centrée, champs à fin liseré blanc, fond topographique) */
.tx-quote { background-image: url("../../../builty/assets/images/pattren-5.png"); background-repeat: no-repeat; background-position: center; background-size: cover; padding: 30px 0 80px; }
.tx-quote__title .elementor-heading-title { text-align: center; font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 800; }
.tx-quote .tx-form { max-width: 440px; margin: 0 auto; }
.tx-quote .tx-form .wpcf7-form-control-wrap { display: block; margin-bottom: 22px; }
.tx-quote .tx-form input[type="text"], .tx-quote .tx-form input[type="email"], .tx-quote .tx-form input[type="tel"], .tx-quote .tx-form input[type="number"], .tx-quote .tx-form textarea {
	width: 100%; height: 58px; margin: 0; padding: 0 28px; color: #fff; background: transparent; border: 1px solid #e8e8e8; border-radius: 0; font-size: 1rem; }
.tx-quote .tx-form textarea { height: 190px; padding: 22px 28px; }
.tx-quote .tx-form ::placeholder { color: #777; opacity: 1; }
.tx-quote .tx-form__label { margin: 0 0 10px; color: #ccc; font-size: 1rem; }
.tx-quote .tx-form .wpcf7-form-control-wrap:has(select) { margin-bottom: 0; }
.tx-quote .tx-form .nice-select, .tx-quote .tx-form select { width: 100%; height: 70px; line-height: 68px; margin: 0; color: #ccc; background: transparent; border: 1px solid #e8e8e8; border-radius: 0; font-size: 1rem; padding-left: 22px; }
.tx-quote .tx-form .wpcf7-form-control-wrap:has(select) + .wpcf7-form-control-wrap input { margin-top: -1px; height: 58px; }
.tx-quote .tx-form input[type="submit"] { width: auto; min-width: 200px; height: 52px; margin-top: 8px; padding: 0 40px; color: #fff; background: #d00018; border: 0; border-radius: 0; font-size: 1rem; font-weight: 600; cursor: pointer; }
.tx-quote .tx-form input[type="submit"]:hover, .tx-quote .tx-form input[type="submit"]:focus-visible { background: #a80013; }
body:not(.light-d) .tx-quote .tx-form input[type="text"], body:not(.light-d) .tx-quote .tx-form input[type="email"], body:not(.light-d) .tx-quote .tx-form input[type="tel"],
body:not(.light-d) .tx-quote .tx-form input[type="number"], body:not(.light-d) .tx-quote .tx-form textarea { color: #111; border-color: #bbb; background: #fff; }
@media (max-width: 767px) { .tx-quote .tx-form { max-width: 100%; padding: 0 20px; } }

/* Cartes Réglage combustion : pictogramme à gauche du titre (livrable p. 19) */
.tx-card .tx-card__head { display: flex; align-items: center; gap: 16px; margin: 0 0 18px; }
.tx-card .tx-card__head img { flex: 0 0 44px; width: 44px; height: 44px; object-fit: contain; }
.tx-card .tx-card__head h3 { margin: 0 !important; color: #111 !important; font-size: 1.05rem !important; font-weight: 700 !important; line-height: 1.25 !important; }
.tx-card .elementor-widget-text-editor p { font-size: 0.9rem; line-height: 1.8; color: #555 !important; }
.tx-card > .elementor-widget-wrap { padding: 28px 24px; }
/* Bandeau Technico-commercial : une seule photo ronde (livrable p. 14) ; le widget affiche une 2e figure vide quand elle n'est pas renseignée */
.contact-info .images figure:nth-child(2) { display: none; }
.tx-map { width: 100%; } .tx-map iframe { display: block; width: 100%; height: 340px; border: 0; }

/* Tailles de texte alignées sur le livrable (interligne mesuré ≈ 0,024 × largeur d'écran, soit ≈ 31 px à 1280 px ; avant : ≈ 25 px) */
.tx-article p, .tx-row p, .tx-intro p, .tx-docs__left p, .tx-docs .elementor-tab-content, .tx-site__details p, .tx-site__details a { font-size: 0.95rem; line-height: 1.95; }
.tx-row li, .tx-row ul { font-size: 0.95rem; }
.tx-article .elementor-heading-title { font-size: clamp(1.5rem, 2.6vw, 2.2rem); }
.tx-row .elementor-heading-title { font-size: clamp(1.5rem, 2.7vw, 2.4rem); }
.tx-intro .elementor-heading-title { font-size: clamp(1.7rem, 3vw, 2.6rem); }
.tx-card .elementor-widget-text-editor p, .tx-card p { font-size: 0.98rem; }
.tx-card .tx-card__head h3 { font-size: 1.2rem !important; }
.tx-quality__text p { font-size: 0.98rem; }
.thermecatex-light .heading p { font-size: 0.95rem; }
.thermecatex-dg .heading p { font-size: 0.92rem; }
.tx-trust__text p, .tx-trust__text a { font-size: 0.92rem; }
.tx-docs .elementor-accordion .elementor-tab-title a, .tx-docs .elementor-accordion .elementor-accordion-title { font-size: 0.95rem; }
@media (min-width: 1200px) {
	.tx-article p, .tx-row p, .tx-intro p, .tx-docs__left p, .tx-docs .elementor-tab-content, .tx-site__details p, .tx-site__details a, .tx-row li, .tx-row ul { font-size: 1rem; }
	.tx-card .elementor-widget-text-editor p, .tx-card p { font-size: 1rem; }
	.tx-quality__text p { font-size: 1.02rem; }
}
body:not(.light-d) .where-we-work .heading-style-2 .data > span, body:not(.light-d) .where-we-work .data span { color: #555 !important; }
/* Menu mobile : flèche ouverte et puces aux couleurs de la charte (le thème utilise du jaune) */
.mobile-nav > ul > li.menu-item-has-children.active:before { filter: hue-rotate(-66deg) saturate(3) brightness(0.85); }
/* Champ piège anti-spam : invisible pour les visiteurs */
.tx-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Menu de l'en-tête : plus d'agrandissement ni de décalage au survol (le thème passait la police à 16 px au :hover) */
.header-style-one .nav-bar .nav-bar-menu > li > a:hover,
.header-style-one .nav-bar .nav-bar-menu > li > a:focus-visible { font-size: 15px; }
@media (min-width: 992px) and (max-width: 1500px) {
	.header-style-one .nav-bar .nav-bar-menu > li > a:hover,
	.header-style-one .nav-bar .nav-bar-menu > li > a:focus-visible { font-size: 14px; }
}
/* <<< thermecatex-pages */

/* reCAPTCHA v2 (formulaire de devis) : place réservée pour éviter un saut de mise en page au chargement du widget */
.tx-recaptcha { min-height: 78px; margin: 4px 0 16px; max-width: 100%; overflow: hidden; }

/* Page 404 : le champ de recherche ne passe plus sous la photo */
.sb-404 form { max-width: min(560px, 100%); }

/* Accessibilité : texte blanc sur les boutons rouges (contraste 5,7:1 au lieu de 3,7:1 en noir) */
.theme-btn { color: #fff; }
/* mode clair : Builty remet le texte en noir sur le rouge ; au survol le bouton devient transparent, on laisse le thème gérer */
body.light-d .theme-btn:not(:hover) { color: #fff; }

/* Accessibilité : zone cliquable d'au moins 32 px pour les icônes sociales de l'en-tête (cible tactile) */
.tx-header-social .elementor-social-icon { min-width: 32px; min-height: 32px; display: inline-flex; align-items: center; justify-content: center; }

/* Boutons « mode sombre / menu » devenus de vrais boutons (plus de lien javascript:) */
#theme-color, #mobile-menu, #res-cross { cursor: pointer; }
#theme-color:focus-visible, #mobile-menu:focus-visible, #res-cross:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* Icône du mode sombre : ratio conservé */
#theme-icon { object-fit: contain; }

/* Menu mobile : la croix de fermeture (dessinée par un pseudo-élément) a une vraie zone cliquable et un focus clavier visible, sans changer sa position (35 px, haut 15 px / droite 20 px) */
.mobile-nav a#res-cross { position: absolute; top: 12px; right: 17px; width: 41px; height: 41px; display: block; z-index: 2; cursor: pointer; }
.mobile-nav a#res-cross:before { top: 3px; right: 3px; }
.mobile-nav a#res-cross:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }

/* Décalage de mise en page (CLS) : l'écran de chargement quitte l'écran par transform (composité) au lieu de `top` (propriété de mise en page, comptée comme décalage) */
.page-loaded .preloader { top: 0; transform: translateY(-100%); }

/* Décalage de mise en page : taille de l'icône de bascule fixée avant que son image ne soit chargée */
#theme-icon { width: 22px; height: 25px; object-fit: contain; }

/* Décalage de mise en page (CLS) sur mobile/tablette : le carrousel du hero (Owl) est masqué jusqu'à son initialisation par JavaScript ;
   on réserve sa hauteur (mesurée à 320-991 px) pour que la section suivante ne saute pas quand il apparaît. */
@media (max-width: 414px) {
	.featured-slider-two:has(.owl-carousel:not(.owl-loaded)) { min-height: calc(1160px - 95.7vw); }
}
@media (min-width: 415px) and (max-width: 767px) {
	.featured-slider-two:has(.owl-carousel:not(.owl-loaded)) { min-height: calc(531px + 59.6vw); }
}
@media (min-width: 768px) and (max-width: 991px) {
	.featured-slider-two:has(.owl-carousel:not(.owl-loaded)) { min-height: 964px; }
}

/* Chatbot Collect.chat sur téléphone : la fenêtre ouverte occupait tout l'écran et masquait le site.
   Elle devient un panneau en bas de page (le site reste visible au-dessus) ; l'ouverture automatique elle-même se règle dans le compte Collect.chat.
   « html body » augmente la spécificité : la feuille du service est ajoutée après la nôtre avec les mêmes !important. */
@media (max-width: 767px) {
	html body #chat-bot-frame-container.chat-bot-frame-container-active {
		top: auto !important;
		left: 10px !important;
		right: 10px !important;
		bottom: 84px !important;
		width: auto !important;
		height: min(58vh, 460px) !important;
		border-radius: 14px !important;
		overflow: hidden !important;
		box-shadow: 0 8px 30px rgba(0, 0, 0, 0.35) !important;
	}
	html body #chat-bot-frame-container.chat-bot-frame-container-active #chat-bot-frame-wrap,
	html body #chat-bot-frame-container.chat-bot-frame-container-active #chat-bot-iframe {
		width: 100% !important;
		height: 100% !important;
	}
}
