@charset "UTF-8";
@import url(main.css);
a:visited { color: white !important; }

.mx-auto.first-activity-div.col-lg-11.px-4.py-4.mb-5.mt-5.bg-primaryColor.text-color-primary.rounded-3.shadow-lg.position-relative, .mx-auto.second-activity-div.col-lg-11.px-4.py-4.mb-5.mt-5.rounded-3.shadow-lg.bg-primaryColor.text-color-primary.position-relative, .mx-auto.third-activity-div.col-lg-11.px-4.py-4.mb-4.mt-5.bg-primaryColor.text-color-primary.rounded-3.shadow-lg.position-relative { padding: 50px 20px !important; margin-top: 70px !important; margin-bottom: 70px !important; box-shadow: none !important; }

.black-screen { display: none; }

i.bi.bi-instagram.fs-4, i.bi.bi-facebook.fs-4 { color: black !important; }

/*========================================================================================== CUSTOM FORMULAIRE DE CONTACT ===================================================================*/
.formulaire-custom { padding-top: 12rem !important; padding-bottom: 3rem !important; background-image: url("https://storage.googleapis.com/refpro-app-ca244.appspot.com/customers%2FukzrNhnfOJSMcI6ZH5pPqCy7MhH2%2Fimages%2FBG_Contact_1_o0ab.webp"); background-size: cover; background-position: center; background-repeat: no-repeat; }

.formulaire-custom__container { max-width: 1250px; margin: 0 auto; align-items: center; }

.formulaire-custom__content { color: #fff; text-align: left; }

.formulaire-custom__content h1 { font-family: "Open Sans", sans-serif; font-size: 60px; font-weight: 800; line-height: 1.28; text-transform: uppercase; letter-spacing: 0.2px; margin: 0 0 2rem; }

.formulaire-custom__intro { font-size: 25px; font-weight: 800 !important; line-height: 1.5; padding: 0; opacity: 0.85; font-family: 'Open Sans'; margin-bottom: 2rem; max-width: 1050px; }

.formulaire-custom__content p:not(.formulaire-custom__intro) { font-size: 18px; font-weight: 500; line-height: 1.5; padding: 0; opacity: 0.95; font-family: 'Open Sans'; max-width: 1050px; }

.formulaire-custom__form { width: 100%; }

@media (max-width: 992px) { .formulaire-custom { padding-top: 8rem; } .formulaire-custom__content h1 { font-size: 3rem; } .formulaire-custom__intro { font-size: 1.7rem; } .formulaire-custom__content p:not(.formulaire-custom__intro) { font-size: 1.25rem; max-width: 100%; } }

/* ============================================================ BANDEAU ISOLATION ============================================================ */
.bt-solutions__isolation { display: grid; grid-template-columns: 76px 1fr auto; align-items: center; gap: 30px; width: 100%; max-width: 1100px; margin-top: 24px; padding: 30px 30px; box-sizing: border-box; background-color: var(--bt-white); border: 1px solid #ECECEC; border-radius: 12px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.05); }

.bt-solutions__isolation-icon-wrap { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 76px; height: 76px; background-color: #FBF1F1; border-radius: 50%; transition: background-color 0.25s ease; }

.bt-solutions__isolation-icon { display: block; width: 38px; height: 38px; object-fit: contain; }

.bt-solutions__isolation-content { text-align: left; }

.bt-solutions__isolation-title { margin: 0 0 16px; padding: 0; color: var(--bt-black); font-size: 16px; font-weight: 700 !important; line-height: 1.35; text-transform: uppercase; }

.bt-solutions__isolation-text { max-width: 720px; margin: 0; padding: 0; color: #555555; font-size: 14px; line-height: 1.55; }

@media (max-width: 560px) { .bt-solutions__isolation { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 28px 20px; text-align: center; } .bt-solutions__isolation-icon-wrap { width: 76px; height: 76px; } .bt-solutions__isolation-content { width: 100%; text-align: center; } .bt-solutions__isolation-title { margin: 0 0 12px; font-size: 16px; text-align: center; } .bt-solutions__isolation-text { max-width: 100%; font-size: 14px; line-height: 1.55; text-align: center; } }

/*========================================================================================== CONFIGURATIONS CLIM ===================================================================*/
.bt-clim-config { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; width: 100%; padding: 56px 24px; background-color: var(--bt-white); font-family: "Open Sans", Arial, sans-serif; box-sizing: border-box; padding-bottom: 70px; }

.bt-clim-config__container { width: 100%; max-width: 1180px; margin: 0 auto; }

.bt-clim-config__title { max-width: 950px; margin: 0 auto; padding: 0; color: var(--bt-black); font-size: 35px; font-weight: 800 !important; line-height: 1.4; text-align: center; text-transform: uppercase; }

.bt-clim-config__title span { color: var(--bt-maroon); }

.bt-clim-config__subtitle { max-width: 680px; margin: 14px auto 0; padding: 0; color: #444444; font-size: 16px; font-weight: 400; line-height: 1.6; text-align: center; }

.bt-clim-config__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 42px; padding-top: 20px; border-top: 1px solid #dddddd; }

.bt-clim-config__card { position: relative; padding: 34px 28px; overflow: hidden; background-color: #f7f7f7; border-bottom: 4px solid var(--bt-maroon); box-sizing: border-box; }

.bt-clim-config__number { display: block; margin-bottom: 26px; color: var(--bt-red); font-size: 14px; font-weight: 800; line-height: 1; }

.bt-clim-config__card-title { margin: 0 0 12px; padding: 0; color: var(--bt-maroon); font-size: 21px; font-weight: 800 !important; line-height: 1.3; text-transform: uppercase; }

.bt-clim-config__card-text { margin: 0; padding: 0; color: #444444; font-size: 15px; font-weight: 400; line-height: 1.6; }

.bt-clim-config__bottom { position: relative; max-width: 870px; margin: 34px auto 0; padding: 22px 0 0; color: #222222; font-size: 16px; font-weight: 600; line-height: 1.65; text-align: center; }

@media screen and (max-width: 900px) { .bt-clim-config__grid { grid-template-columns: 1fr; } .bt-clim-config__card { min-height: auto; } }

@media screen and (max-width: 600px) { .bt-clim-config { padding: 45px 18px; } .bt-clim-config__title { font-size: 28px; line-height: 1.35; } .bt-clim-config__subtitle { font-size: 15px; } .bt-clim-config__grid { margin-top: 32px; } .bt-clim-config__card { padding: 28px 22px; } .bt-clim-config__card-title { font-size: 19px; } .bt-clim-config__bottom { font-size: 15px; } }

/*========================================================================================== CUSTOM NAVBAR ===================================================================*/
.spacer { display: none; }

.navbar { transition: all 0.3s ease; }

.navbar.scrolled { background-color: rgba(51, 51, 51, 0.5) !important; backdrop-filter: blur(1rem); }

.navbar-brand { height: 8vh !important; width: 8vw !important; }

.logo_nav { height: 7vh !important; }

.animated-border-button:after { background-color: #801016; }

a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-1.p-2.rounded-pill.text-decoration-none.button-header-telephone, a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-2.my-lg-1.p-2.rounded-pill.text-decoration-none.button-header-telephone { position: relative; isolation: isolate; overflow: hidden; padding: 13px 35px !important; display: inline-flex; align-items: center; justify-content: center; background: #E30613; color: #fff !important; padding: 15px 26px; border-radius: 4px !important; font-size: 15px; font-weight: 700; text-decoration: none; border: none; box-shadow: 0 6px 16px rgba(227, 6, 19, 0.35); transition: transform 0.25s ease, box-shadow 0.25s ease, color 0.25s ease; }

a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-1.p-2.rounded-pill.text-decoration-none.button-header-telephone::before, a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-2.my-lg-1.p-2.rounded-pill.text-decoration-none.button-header-telephone::before { content: ""; position: absolute; inset: 0; z-index: -1; background: #801016; transform: translateX(-101%); transition: transform 0.35s ease; }

a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:hover, a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-2.my-lg-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:hover, a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:focus-visible, a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-2.my-lg-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(128, 16, 22, 0.45); color: #fff !important; }

a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:hover::before, a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-2.my-lg-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:hover::before, a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:focus-visible::before, a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-2.my-lg-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:focus-visible::before { transform: translateX(0); }

a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:active, a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-2.my-lg-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:active { transform: translateY(0); }

a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:focus-visible, a.grow.button_header.text-color-fourth.mx-3.mx-lg-2.my-2.my-lg-1.p-2.rounded-pill.text-decoration-none.button-header-telephone:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

.fs-6.animated-border-button.obftrucs { text-transform: uppercase; font-size: 1rem; font-weight: 600; }

/* 📱 Responsive : navbar TOUJOURS visible */
@media (max-width: 991px) { .navbar { background-color: rgba(51, 51, 51, 0.5) !important; backdrop-filter: blur(1rem); } }

/* ============================================================ BT-HERO - variables de marque scopées au bloc ============================================================ */
.bt-hero { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; position: relative; overflow: hidden; /* rien ne doit dépasser du bloc */ display: flex; flex-direction: column; justify-content: center; /* ancre le contenu vers le bas, quelle que soit la hauteur d'écran */ min-height: 100vh; min-height: 100svh; /* évite les sauts de hauteur liés aux barres d'adresse mobiles */ font-family: "Open Sans", Arial, sans-serif; }

/* ---- Fond photo + assombrissement ---- */
.bt-hero__background { position: absolute; inset: 0; overflow: hidden; }

.bt-hero__bg-image { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

.bt-hero__overlay { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(0, 0, 0, 0.82) 0%, rgba(6, 12, 20, 0.62) 38%, rgba(10, 16, 26, 0.25) 68%, rgba(10, 16, 26, 0.35) 100%); }

/* ---- Conteneur de contenu ---- */
.bt-hero__container { position: relative; z-index: 2; display: flex; flex-direction: column; max-width: 1440px; gap: 20px; padding: 150px 40px 110px 60px; }

/* ---- Logos ---- */
.bt-hero__logos { display: flex; align-items: center; gap: 36px; }

.bt-hero__logo { height: 150px; width: auto; display: block; }

.bt-hero__logo--ghost { /* version "fantôme" du même logo, assombrie et fondue dans le fond */ filter: brightness(0.55) grayscale(0.4); opacity: 0.55; }

/* ---- Titre / sous-titre / CTA ---- */
.bt-hero__title { color: var(--bt-white); font-size: 60px; font-weight: 800; line-height: 1.28; text-transform: uppercase; letter-spacing: 0.2px; padding: 0; margin-bottom: 20px; }

.bt-hero__subtitle { color: var(--bt-white); font-size: 20px; font-weight: 500; line-height: 1.5; padding: 0; opacity: 0.95; margin-bottom: 50px; }

.bt-hero__desc { color: var(--bt-white); font-size: 25px; font-weight: 800 !important; line-height: 1.5; padding: 0; opacity: 0.85; }

.bt-hero__cta { position: relative; isolation: isolate; /* garde le texte au-dessus du balayage de couleur */ overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 10px; align-self: flex-start; background-color: var(--bt-red); color: var(--bt-white); font-size: 15px; font-weight: 700; text-decoration: none; padding: 15px 26px; border-radius: 4px; box-shadow: 0 6px 16px rgba(227, 6, 19, 0.35); transition: transform 0.25s ease, box-shadow 0.25s ease; }

/* balayage de couleur au survol, du plus foncé de la charte */
.bt-hero__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-maroon); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-hero__cta-icon { display: inline-flex; align-items: center; transition: transform 0.3s ease; }

.bt-hero__cta:hover, .bt-hero__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(128, 16, 22, 0.45); color: white; }

.bt-hero__cta:hover::before, .bt-hero__cta:focus-visible::before { transform: translateX(0); }

.bt-hero__cta:hover .bt-hero__cta-icon, .bt-hero__cta:focus-visible .bt-hero__cta-icon { transform: translateX(4px); }

.bt-hero__cta:active { transform: translateY(0); }

.bt-hero__cta:focus-visible { outline: 2px solid var(--bt-white); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-hero__cta, .bt-hero__cta::before, .bt-hero__cta-icon { transition: none; } }

/* ---- Badge avis (bas droite, contenu dans le bloc) - lien cliquable ---- */
.bt-hero__review { position: absolute; z-index: 3; right: 32px; bottom: 32px; display: block; width: 110px; height: 110px; border-radius: 50%; overflow: hidden; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.3); text-decoration: none; cursor: pointer; transition: transform 0.25s ease, box-shadow 0.25s ease; border: 4px solid #0c5351; }

.bt-hero__review:hover, .bt-hero__review:focus-visible { transform: scale(1.05); box-shadow: 0 12px 26px rgba(0, 0, 0, 0.38); }

.bt-hero__review:focus-visible { outline: 2px solid var(--bt-white); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-hero__review { transition: none; } }

.bt-hero__review-photo { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-hero__container { padding: 32px 32px 100px 32px; } .bt-hero__title { font-size: 36px; } .bt-hero__logo { height: 100px; } }

@media (max-width: 560px) { .bt-hero__container { padding: 24px 20px 100px 20px; gap: 20px; } .bt-hero__logos { gap: 20px; } .bt-hero__logo { height: 50px; } .bt-hero__title { font-size: 30px; } .bt-hero__subtitle { font-size: 14px; } .bt-hero__review { right: 16px; bottom: 16px; width: 80px; height: 80px; } }

/* ============================================================ BT-ADVANTAGES - variables de marque scopées au bloc ============================================================ */
.bt-advantages { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-blue: #005DB5; /* couleur des mots-clés et des textes de description, hors charte de base */ --bt-white: #FFFFFF; position: relative; width: 100%; background-color: var(--bt-white); font-family: "Open Sans", Arial, sans-serif; }

/* ---- Bandeau titre ---- */
.bt-advantages__banner { background-color: var(--bt-maroon); display: flex; justify-content: center; padding: 35px 24px; }

.bt-advantages__banner-text { color: var(--bt-white); font-size: 35px; font-weight: 700 !important; text-align: center; padding: 0; }

/* ---- Conteneur général ---- */
.bt-advantages__container { display: flex; flex-direction: column; align-items: center; gap: 40px; padding: 48px 40px; }

/* ---- Grille des 4 avantages ---- */
.bt-advantages__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; width: 100%; max-width: 1040px; }

.bt-advantages__item { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; padding: 0; }

.bt-advantages__icon { width: 64px; height: 64px; object-fit: contain; display: block; }

.bt-advantages__item-title { color: var(--bt-red); font-size: 22px; font-weight: 700 !important; line-height: 1.35; padding: 0; }

.bt-advantages__accent--blue { color: var(--bt-black); }

.bt-advantages__accent--green { color: var(--bt-green); }

.bt-advantages__item-text { color: var(--bt-black); font-size: 16px; font-weight: 600 !important; line-height: 1.5; max-width: 220px; padding: 0; }

/* ---- CTA (même traitement que le bouton du hero) ---- */
.bt-advantages__cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 10px; background-color: var(--bt-red); color: var(--bt-white); font-size: 15px; font-weight: 700; text-decoration: none; padding: 14px 30px; border-radius: 4px; box-shadow: 0 6px 16px rgba(227, 6, 19, 0.3); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-advantages__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-maroon); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-advantages__cta-icon { display: inline-flex; align-items: center; transition: transform 0.3s ease; }

.bt-advantages__cta:hover, .bt-advantages__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(128, 16, 22, 0.4); Color: white; }

.bt-advantages__cta:hover::before, .bt-advantages__cta:focus-visible::before { transform: translateX(0); }

.bt-advantages__cta:hover .bt-advantages__cta-icon, .bt-advantages__cta:focus-visible .bt-advantages__cta-icon { transform: translateX(4px); }

.bt-advantages__cta:active { transform: translateY(0); }

.bt-advantages__cta:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 3px; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-advantages__grid { grid-template-columns: repeat(2, 1fr); gap: 36px 24px; } .bt-advantages__container { padding: 40px 28px; } }

@media (max-width: 560px) { .bt-advantages__banner-text { font-size: 15px; } .bt-advantages__grid { gap: 32px; } .bt-advantages__container { padding: 32px 24px; gap: 32px; } }

/* ============================================================ BT-REVIEWS - variables de marque scopées au bloc ============================================================ */
.bt-reviews { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; --bt-teal: #0C5351; /* fond de la carte de notation, couleur du widget Eldo */ --bt-mint: #4FCF89; /* accent du logo Eldo et du bouton "voir tous les avis" */ --bt-gold: #FAB13C; /* couleur des étoiles, couleur du widget Eldo */ --bt-gray-text: #6B6B6B; --bt-gray-border: #E7E7E7; display: flex; flex-direction: column; align-items: center; gap: 28px; width: 100%; padding: 56px 24px; font-family: "Open Sans", Arial, sans-serif; }

/* ---- Titre au-dessus de la carte ---- */
.bt-reviews__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-align: center; padding: 0; text-transform: uppercase; }

.bt-reviews__title-accent { color: var(--bt-maroon); }

/* ---- Carte principale ---- */
.bt-reviews__card { display: flex; flex-direction: column; width: 100%; max-width: 980px; background-color: var(--bt-white); border: 1px solid var(--bt-gray-border); border-radius: 14px; box-shadow: 0 12px 30px rgba(0, 0, 0, 0.06); overflow: hidden; }

.bt-reviews__header { display: flex; justify-content: center; padding: 20px 24px; border-bottom: 1px solid var(--bt-gray-border); }

.bt-reviews__header-text { color: var(--bt-gray-text); font-size: 15px; font-weight: 600; padding: 0; }

.bt-reviews__body { display: flex; align-items: stretch; gap: 28px; padding: 28px; }

/* ---- Bloc note globale (carte sarcelle) ---- */
.bt-reviews__score { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; flex: 0 0 220px; background-color: var(--bt-teal); border-radius: 12px; padding: 32px 20px; text-align: center; }

.bt-reviews__score-value { color: var(--bt-white); font-size: 34px; font-weight: 800; padding: 0; }

.bt-reviews__score-max { font-size: 18px; font-weight: 600 !important; }

.bt-reviews__score-stars { color: var(--bt-gold); font-size: 17px; letter-spacing: 2px; padding: 0; }

.bt-reviews__score-count { color: rgba(255, 255, 255, 0.75); font-size: 12px; font-weight: 600; padding: 4px 0 6px; }

.bt-reviews__score-brand { display: flex; align-items: center; gap: 8px; color: var(--bt-white); font-size: 16px; font-weight: 700; }

.bt-reviews__score-brand-icon { width: 22px; height: 22px; object-fit: contain; display: block; }

/* ---- Colonne liste des avis ---- */
.bt-reviews__list-wrapper { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; gap: 16px; }

.bt-reviews__list-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }

.bt-reviews__list-title { color: var(--bt-black); font-size: 20px; font-weight: 700 !important; padding: 0; }

.bt-reviews__list-link { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--bt-mint); font-size: 13px; font-weight: 700; text-decoration: none; border: 1.5px solid var(--bt-mint); border-radius: 999px; padding: 8px 18px; transition: background-color 0.2s ease, color 0.2s ease; }

.bt-reviews__list-link:hover, .bt-reviews__list-link:focus-visible { background-color: var(--bt-mint); color: var(--bt-white); }

.bt-reviews__list-link:focus-visible { outline: 2px solid var(--bt-teal); outline-offset: 2px; }

.bt-reviews__list-link:visited { color: #4FCF89 !important; }

/* ---- Liste scrollable des avis ---- */
.bt-reviews__list { display: flex; flex-direction: column; max-height: 260px; overflow-y: auto; padding-right: 8px; }

.bt-reviews__item { display: flex; flex-direction: column; gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--bt-gray-border); }

.bt-reviews__item:last-child { border-bottom: none; }

.bt-reviews__item-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }

.bt-reviews__item-stars { color: var(--bt-gold); font-size: 13px; letter-spacing: 1px; padding: 0; }

.bt-reviews__item-date { color: var(--bt-gray-text); font-size: 11px; padding: 0; }

.bt-reviews__item-name { color: var(--bt-black); font-size: 16px; font-weight: 700; padding: 0; }

.bt-reviews__item-service { color: #333333; font-size: 14px; font-weight: 600; padding: 0; }

.bt-reviews__item-text { color: var(--bt-gray-text); font-size: 13px; line-height: 1.5; padding: 0; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 800px) { .bt-reviews__body { flex-direction: column; padding: 24px; } .bt-reviews__score { flex: 0 0 auto; width: 100%; } }

@media (max-width: 480px) { .bt-reviews__title { font-size: 21px; } .bt-reviews__list-head { flex-wrap: wrap; } .bt-reviews__body { padding: 18px; gap: 20px; } }

/* ============================================================ BT-GALLERY - variables de marque scopées au bloc ============================================================ */
.bt-gallery { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 20px; width: 100%; padding: 56px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-gallery__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-align: center; padding: 0; text-transform: uppercase; }

.bt-gallery__title span { color: #801016; }

/* ---- Grille photos ---- */
.bt-gallery__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; width: 100%; max-width: 1100px; }

.bt-gallery__item { position: relative; overflow: hidden; border-radius: 8px; aspect-ratio: 4 / 3; }

.bt-gallery__image { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; transition: transform 0.4s ease; }

@media (prefers-reduced-motion: reduce) { .bt-gallery__image { transition: none; } }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 800px) { .bt-gallery__grid { grid-template-columns: repeat(2, 1fr); } .bt-gallery__title { font-size: 19px; } }

@media (max-width: 480px) { .bt-gallery__grid { grid-template-columns: 1fr; } .bt-gallery { padding: 40px 20px; } }

/* ===========================================================  BT-CERTS - variables de marque scopées au bloc =========================================================== */
.bt-certs { --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 30px; width: 100%; background-color: var(--bt-maroon); padding: 38px 24px 45px; font-family: "Open Sans", Arial, sans-serif; }

.bt-certs__title { color: var(--bt-white); font-size: 30px; font-weight: 700 !important; text-align: center; padding: 0; margin: 0; }

.bt-certs__marquee { width: 100%; overflow: visible; mask-image: none; -webkit-mask-image: none; }

.bt-certs__track { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 35px; width: 100%; animation: none; transform: none; }

.bt-certs__badge { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 230px; height: 135px; background-color: var(--bt-white); border-radius: 10px; }

.bt-certs__logo { width: 100%; height: 100%; max-width: 190px; max-height: 100px; object-fit: contain; display: block; }

@media (max-width: 768px) { .bt-certs { padding: 30px 18px 35px; } .bt-certs__title { font-size: 18px; } .bt-certs__track { gap: 18px; } .bt-certs__badge { width: calc(50% - 10px); max-width: 220px; height: 115px; padding: 15px 20px; } .bt-certs__logo { max-height: 85px; } }

@media (max-width: 480px) { .bt-certs__title { font-size: 16px; } .bt-certs__track { gap: 12px; justify-content: center; } .bt-certs__badge { width: calc(50% - 6px); max-width: none; height: 105px; padding: 12px; box-sizing: border-box; } .bt-certs__logo { max-width: 100%; max-height: 80px; } }

/* ============================================================ BT-PROJECTS - variables de marque scopées au bloc ============================================================ */
.bt-projects { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; padding: 56px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-projects__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-align: center; padding: 0; text-transform: uppercase; }

.bt-projects__title-accent { color: var(--bt-maroon); }

.bt-projects__subtitle { color: #333333; font-size: 16px; text-align: center; padding: 0 0 32px; }

/* ---- Grille des 5 projets ---- */
.bt-projects__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; width: 100%; max-width: 1300px; }

.bt-projects__card { display: flex; flex-direction: column; align-items: center; gap: 18px; height: 100%; /* s'aligne sur la ligne de grille la plus haute */ }

.bt-projects__media { display: flex; flex-direction: column; width: 100%; flex: 1 1 auto; /* la carte occupe toute la hauteur disponible */ border-radius: 14px; overflow: hidden; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12); }

.bt-projects__image { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center; display: block; flex-shrink: 0; /* la photo garde toujours le même ratio, quelle que soit la légende */ }

.bt-projects__caption { display: flex; align-items: center; justify-content: center; flex: 1 1 auto; /* absorbe la différence de hauteur entre les légendes courtes/longues */ background-color: var(--bt-maroon); color: var(--bt-white); font-size: 14px; font-weight: 700; line-height: 1.35; text-align: center; padding: 16px 12px; text-transform: uppercase; }

/* ---- CTA (même traitement que les autres boutons du site) ---- */
.bt-projects__cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background-color: var(--bt-red); color: var(--bt-white); font-size: 15px; font-weight: 700; text-align: center; text-decoration: none; padding: 14px 22px; border-radius: 3px; box-shadow: 0 5px 14px rgba(227, 6, 19, 0.35); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-projects__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-maroon); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-projects__cta:hover, .bt-projects__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 9px 20px rgba(128, 16, 22, 0.4); color: white; }

.bt-projects__cta:hover::before, .bt-projects__cta:focus-visible::before { transform: translateX(0); }

.bt-projects__cta:active { transform: translateY(0); }

.bt-projects__cta:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-projects__cta, .bt-projects__cta::before { transition: none; } }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 1100px) { .bt-projects__grid { grid-template-columns: repeat(3, 1fr); row-gap: 40px; } }

@media (max-width: 700px) { .bt-projects__grid { grid-template-columns: repeat(2, 1fr); } .bt-projects__title { font-size: 22px; } .bt-projects__subtitle { font-size: 14px; padding-bottom: 24px; } }

@media (max-width: 420px) { .bt-projects__grid { grid-template-columns: 1fr; } }

/* ============================================================ BT-PARTNERS - variables de marque scopées au bloc ============================================================ */
.bt-partners { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 16px; width: 100%; background-color: var(--bt-black); padding: 32px 24px 40px; font-family: "Open Sans", Arial, sans-serif; }

.bt-partners__title { color: var(--bt-white); font-size: 25px; font-weight: 800; text-align: center; padding: 0; }

/* ---- Ligne de logos : statique, passe à la ligne si besoin ---- */
.bt-partners__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px; width: 100%; max-width: 1600px; padding-top: 8px; }

.bt-partners__badge { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 180px; height: 100px; background-color: var(--bt-white); border-radius: 10px; }

.bt-partners__logo { height: 100%; width: auto; max-width: 130px; object-fit: contain; display: block; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 700px) { .bt-partners__badge { height: 48px; padding: 10px 14px; } .bt-partners__logo { max-width: 100px; } .bt-partners__title { font-size: 19px; } }

@media (max-width: 420px) { .bt-partners__row { gap: 14px; } .bt-partners__badge { height: 42px; padding: 8px 12px; } }

/* ============================================================ BT-REFERRAL - variables de marque scopées au bloc ============================================================ */
.bt-referral { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; justify-content: center; width: 100%; padding: 56px 24px; font-family: "Open Sans", Arial, sans-serif; }

/* ---- Carte fond blanc ---- */
.bt-referral__card { position: relative; isolation: isolate; display: flex; align-items: stretch; gap: 48px; width: 100%; max-width: 1140px; background-color: var(--bt-white); border: 1px solid #ECECEC; border-radius: 20px; box-shadow: 0 20px 45px rgba(0, 0, 0, 0.07); padding: 40px; overflow: hidden; }

/* ---- Colonne photo ---- */
.bt-referral__media { position: relative; flex: 0 0 340px; }

.bt-referral__image { width: 100%; height: 100%; min-height: 320px; object-fit: cover; object-position: center; display: block; border-radius: 14px; }

/* ---- Colonne contenu ---- */
.bt-referral__content { display: flex; flex-direction: column; justify-content: center; gap: 18px; flex: 1 1 auto; min-width: 0; }

.bt-referral__eyebrow { color: var(--bt-green); font-size: 12px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; padding: 0; }

.bt-referral__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; line-height: 1.25; padding: 0; text-transform: uppercase; }

.bt-referral__title span { color: #801016; }

.bt-referral__text { color: #333; font-size: 16px; line-height: 1.6; max-width: 550px; padding: 0; }

/* ---- Petit schéma en 3 étapes ---- */
.bt-referral__steps { display: flex; align-items: center; gap: 12px; padding: 8px 0 4px; }

.bt-referral__step { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 108px; text-align: center; }

.bt-referral__step-icon { display: flex; align-items: center; justify-content: center; width: 54px; height: 54px; color: var(--bt-maroon); background-color: #FBF1F1; border: 1px solid #F0DCDC; border-radius: 50%; }

.bt-referral__step-text { color: #6B6B6B; font-size: 13px; font-weight: 600; line-height: 1.35; padding: 0; }

.bt-referral__step-sep { flex: 1 1 auto; height: 1px; min-width: 16px; background-image: repeating-linear-gradient(90deg, #D9D2D2 0, #D9D2D2 4px, transparent 4px, transparent 9px); /* aligne le pointillé au centre des ronds d'icône plutôt qu'au centre de la colonne entière */ transform: translateY(-19px); }

/* ---- CTA ---- */
.bt-referral__cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-self: flex-start; align-items: center; justify-content: center; gap: 10px; background-color: var(--bt-red); color: var(--bt-white); font-size: 15px; font-weight: 700; text-decoration: none; padding: 14px 28px; border-radius: 4px; box-shadow: 0 6px 16px rgba(227, 6, 19, 0.35); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-referral__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-maroon); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-referral__cta-icon { display: inline-flex; align-items: center; transition: transform 0.3s ease; }

.bt-referral__cta:hover, .bt-referral__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(128, 16, 22, 0.45); color: white; }

.bt-referral__cta:hover::before, .bt-referral__cta:focus-visible::before { transform: translateX(0); }

.bt-referral__cta:hover .bt-referral__cta-icon, .bt-referral__cta:focus-visible .bt-referral__cta-icon { transform: translateX(4px); }

.bt-referral__cta:active { transform: translateY(0); }

.bt-referral__cta:focus-visible { outline: 2px solid var(--bt-white); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-referral__cta, .bt-referral__cta::before, .bt-referral__cta-icon { transition: none; } }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-referral__card { flex-direction: column; gap: 32px; padding: 32px; } .bt-referral__media { flex: 0 0 auto; } .bt-referral__image { min-height: 220px; } .bt-referral__title { font-size: 26px; } }

@media (max-width: 560px) { .bt-referral__card { padding: 24px; border-radius: 16px; } .bt-referral__title { font-size: 22px; } .bt-referral__steps { flex-wrap: wrap; justify-content: center; row-gap: 20px; } .bt-referral__step-sep { display: none; } .bt-referral__step { width: 84px; } }

/* ============================================================ BT-LOCATIONS - variables de marque scopées au bloc ============================================================ */
.bt-locations { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; justify-content: center; width: 100%; background-color: var(--bt-maroon); padding: 56px 12px; font-family: "Open Sans", Arial, sans-serif; }

.bt-locations__inner { display: flex; align-items: center; gap: 32px; width: 100%; max-width: 1500px; justify-content: center; }

/* ---- Colonne contenu ---- */
.bt-locations__content { display: flex; flex-direction: column; gap: 0px; flex: 0 1 430px; }

.bt-locations__title { color: var(--bt-white); font-size: 35px; font-weight: 800 !important; padding: 0; text-transform: uppercase; }

.bt-locations__subtitle { color: var(--bt-white); font-size: 20px; font-weight: 400; padding: 0; }

.bt-locations__stats { color: rgba(255, 255, 255, 0.8); font-size: 15px; font-weight: 600; padding: 0 0 8px; }

.bt-locations__list { display: flex; flex-direction: column; gap: 16px; list-style: none; padding: 0 0 20px; }

.bt-locations__item { display: flex; align-items: center; gap: 14px; scroll-margin-top: 24px; }

.bt-locations__pin { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 34px; height: 34px; color: var(--bt-white); }

.bt-locations__pin svg { width: 26px; height: 26px; }

.bt-locations__item-name { color: var(--bt-white); font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.3px; padding: 0; }

.bt-locations__item-address { color: rgba(255, 255, 255, 0.85); font-size: 13.5px; padding: 2px 0 0; }

.bt-locations__item-phone { color: var(--bt-white); text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, 0.4); transition: border-color 0.2s ease; }

.bt-locations__item-phone:hover, .bt-locations__item-phone:focus-visible { border-color: var(--bt-white); }

/* ---- CTA ---- */
.bt-locations__cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-self: flex-start; align-items: center; justify-content: center; background-color: var(--bt-red); color: var(--bt-white); font-size: 14px; font-weight: 700; text-decoration: none; padding: 13px 26px; border-radius: 3px; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-locations__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-red); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-locations__cta:hover, .bt-locations__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.35); color: white; }

.bt-locations__cta:hover::before, .bt-locations__cta:focus-visible::before { transform: translateX(0); }

.bt-locations__cta:active { transform: translateY(0); }

.bt-locations__cta:focus-visible { outline: 2px solid var(--bt-white); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-locations__cta::before { transition: none; } }

/* ---- Colonne carte ---- */
.bt-locations__map { position: relative; display: block; }

.bt-locations__map-image { width: 100%; display: block; max-height: 500px; object-fit: contain; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-locations { padding: 45px 16px; } .bt-locations__inner { flex-direction: column; gap: 30px; } .bt-locations__content, .bt-locations__map { width: 100%; flex: none; } }

@media (max-width: 480px) { .bt-locations { padding: 35px 12px; } .bt-locations__title { font-size: 21px; } .bt-locations__map-pin-label { display: none; } }

/* ============================================================ BT-SOLUTIONS - variables de marque scopées au bloc ============================================================ */
.bt-solutions { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; background-color: var(--bt-white); padding: 56px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-solutions__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-solutions__title span { color: #801016; }

.bt-solutions__subtitle { color: #444444; font-size: 16px; line-height: 1.6; text-align: center; max-width: 850px; padding: 12px 0 32px; }

/* ---- Grille des 6 cartes ---- */
.bt-solutions__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; width: 100%; max-width: 1100px; }

.bt-solutions__card { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; background-color: var(--bt-white); border: 1px solid #ECECEC; border-radius: 12px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.05); padding: 36px 20px; font-family: inherit; cursor: pointer; transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease; }

.bt-solutions__card:hover, .bt-solutions__card:focus-visible { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(128, 16, 22, 0.14); border-color: var(--bt-maroon); }

.bt-solutions__card:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 3px; }

.bt-solutions__card:active { transform: translateY(-1px); }

.bt-solutions__card-icon-wrap { display: flex; align-items: center; justify-content: center; width: 76px; height: 76px; background-color: #FBF1F1; border-radius: 50%; transition: background-color 0.25s ease; }

.bt-solutions__card:hover .bt-solutions__card-icon-wrap, .bt-solutions__card:focus-visible .bt-solutions__card-icon-wrap { background-color: #F5E2E2; }

.bt-solutions__card-icon { width: 38px; height: 38px; object-fit: contain; display: block; }

.bt-solutions__card-title { color: var(--bt-black); font-size: 16px; font-weight: 700 !important; text-align: center; line-height: 1.3; text-transform: uppercase; }

.bt-solutions__card-desc { color: #6B6B6B; font-size: 14px; line-height: 1.45; text-align: center; }

.bt-solutions__card-link { display: inline-flex; align-items: center; gap: 6px; color: var(--bt-maroon); font-size: 13px; font-weight: 700; }

.bt-solutions__card-link svg { transition: transform 0.25s ease; }

.bt-solutions__card:hover .bt-solutions__card-link, .bt-solutions__card:focus-visible .bt-solutions__card-link { color: var(--bt-red); }

.bt-solutions__card:hover .bt-solutions__card-link svg, .bt-solutions__card:focus-visible .bt-solutions__card-link svg { transform: translateX(3px); }

@media (prefers-reduced-motion: reduce) { .bt-solutions__card, .bt-solutions__card-icon-wrap, .bt-solutions__card-link svg { transition: none; } }

/* ============================================================ POPUPS ============================================================ */
.bt-solutions__modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 24px; }

.bt-solutions__modal[hidden] { display: none; }

.bt-solutions__modal-overlay { position: absolute; inset: 0; background-color: rgba(0, 0, 0, 0.6); animation: bt-solutions-fade 0.2s ease; }

.bt-solutions__modal-panel { position: relative; z-index: 1; display: flex; flex-direction: column; width: 100%; max-width: 480px; max-height: 90vh; overflow-y: auto; background-color: var(--bt-white); border-radius: 14px; box-shadow: 0 30px 60px rgba(0, 0, 0, 0.35); animation: bt-solutions-pop 0.25s ease; }

.bt-solutions__modal-close { position: absolute; z-index: 2; top: 14px; right: 14px; display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; background-color: rgba(255, 255, 255, 0.9); color: var(--bt-black); border: none; border-radius: 50%; cursor: pointer; transition: background-color 0.2s ease; }

.bt-solutions__modal-close:hover, .bt-solutions__modal-close:focus-visible { background-color: var(--bt-white); }

.bt-solutions__modal-close:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 2px; }

.bt-solutions__modal-image { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: center; display: block; border-radius: 14px 14px 0 0; }

.bt-solutions__modal-body { display: flex; flex-direction: column; gap: 16px; padding: 28px; }

.bt-solutions__modal-title { color: var(--bt-black); font-size: 19px; font-weight: 800 !important; line-height: 1.3; text-transform: uppercase; padding: 0; }

.bt-solutions__modal-list { display: flex; flex-direction: column; gap: 10px; list-style: none; padding: 0; }

.bt-solutions__modal-list li { position: relative; color: #333333; font-size: 14px; font-weight: 600; line-height: 1.4; padding-left: 28px; }

.bt-solutions__modal-list li::before { content: ""; position: absolute; left: 0; top: 1px; width: 18px; height: 18px; background-color: var(--bt-green); border-radius: 50%; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E"); -webkit-mask-size: 12px; mask-size: 12px; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; }

/* ---- CTA (même traitement que les autres boutons du site) ---- */
.bt-solutions__modal-cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; text-align: center; background-color: var(--bt-red); color: var(--bt-white); font-size: 14px; font-weight: 700; text-decoration: none; padding: 13px 20px; border-radius: 4px; box-shadow: 0 6px 16px rgba(227, 6, 19, 0.3); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-solutions__modal-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-maroon); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-solutions__modal-cta:hover, .bt-solutions__modal-cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(128, 16, 22, 0.4); color: white; }

.bt-solutions__modal-cta:hover::before, .bt-solutions__modal-cta:focus-visible::before { transform: translateX(0); }

.bt-solutions__modal-cta:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 3px; }

@keyframes bt-solutions-fade { from { opacity: 0; }
  to { opacity: 1; } }

@keyframes bt-solutions-pop { from { opacity: 0;
    transform: translateY(12px) scale(0.98); }
  to { opacity: 1;
    transform: translateY(0) scale(1); } }

@media (prefers-reduced-motion: reduce) { .bt-solutions__modal-overlay, .bt-solutions__modal-panel, .bt-solutions__modal-cta, .bt-solutions__modal-cta::before { animation: none; transition: none; } }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-solutions__grid { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 560px) { .bt-solutions__grid { grid-template-columns: 1fr; } .bt-solutions__title { font-size: 21px; } .bt-solutions__modal-image { height: 180px; } }

/* ============================================================ BT-STOVES - variables de marque scopées au bloc ============================================================ */
.bt-stoves { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 16px; width: 100%; background-color: var(--bt-white); padding: 56px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-stoves__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; line-height: 1.4; text-align: center; max-width: 950px; padding: 0; text-transform: uppercase; }

.bt-stoves__title span { color: var(--bt-maroon); }

.bt-stoves__subtitle { color: #444444; font-size: 16px; line-height: 1.6; text-align: center; max-width: 640px; padding: 0; }

/* ============================================================ CTA PRINCIPAL ============================================================ */
.bt-stoves__cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 10px; background-color: var(--bt-red); color: var(--bt-white); font-size: 15px; font-weight: 700; text-decoration: none; padding: 14px 30px; border-radius: 4px; box-shadow: 0 6px 16px rgba(227, 6, 19, 0.3); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-stoves__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-maroon); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-stoves__cta:hover, .bt-stoves__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 9px 18px rgba(128, 16, 22, 0.4); color: var(--bt-white); }

.bt-stoves__cta:hover::before, .bt-stoves__cta:focus-visible::before { transform: translateX(0); }

.bt-stoves__cta:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 3px; }

.bt-stoves__divider { width: 100%; max-width: 1300px; height: 1px; background-color: #E2E2E2; }

/* ============================================================ GRILLE DES CARTES ============================================================ */
.bt-stoves__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); justify-content: center; gap: 36px 24px; width: 100%; max-width: 1300px; padding-top: 8px; }

/* Une seule carte */
.bt-stoves__grid:has(> .bt-stoves__card:only-child) { grid-template-columns: minmax(0, 1fr); max-width: 500px; }

/* Deux cartes */
.bt-stoves__grid:has(> .bt-stoves__card:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 900px; }

/* Trois cartes */
.bt-stoves__grid:has(> .bt-stoves__card:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1150px; }

/* Quatre cartes */
.bt-stoves__grid:has(> .bt-stoves__card:nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 1300px; }

/* ============================================================ CARTES ============================================================ */
.bt-stoves__card { display: flex; flex-direction: column; align-items: center; width: 100%; min-width: 0; gap: 12px; }

.bt-stoves__image { display: block; width: 100%; height: 340px; object-fit: cover; object-position: center; border-radius: 10px; }

.bt-stoves__card-title { color: var(--bt-black); font-size: 18px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 4px 0 0; }

.bt-stoves__card-text { color: #555555; font-size: 14px; line-height: 1.55; text-align: center; flex: 1 1 auto; }

.bt-stoves__card-text strong { color: #333333; }

/* ============================================================ CTA DES CARTES ============================================================ */
.bt-stoves__card-cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background-color: var(--bt-red); color: var(--bt-white); font-size: 15px; font-weight: 700; text-align: center; text-decoration: none; padding: 14px 22px; border-radius: 3px; box-shadow: 0 5px 14px rgba(227, 6, 19, 0.35); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-stoves__card-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-maroon); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-stoves__card-cta:hover, .bt-stoves__card-cta:focus-visible { transform: translateY(-2px); box-shadow: 0 9px 18px rgba(128, 16, 22, 0.4); color: var(--bt-white); }

.bt-stoves__card-cta:hover::before, .bt-stoves__card-cta:focus-visible::before { transform: translateX(0); }

.bt-stoves__card-cta:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 3px; }

/* ============================================================ RESPONSIVE TABLETTE ============================================================ */
@media (max-width: 900px) { .bt-stoves__grid, .bt-stoves__grid:has(> .bt-stoves__card:nth-child(3):last-child), .bt-stoves__grid:has(> .bt-stoves__card:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; } .bt-stoves__grid:has(> .bt-stoves__card:only-child) { grid-template-columns: minmax(0, 1fr); max-width: 500px; } .bt-stoves__grid:has(> .bt-stoves__card:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; } }

/* ============================================================ RESPONSIVE MOBILE ============================================================ */
@media (max-width: 560px) { .bt-stoves { padding: 48px 20px; } .bt-stoves__title { font-size: 20px; } .bt-stoves__grid, .bt-stoves__grid:has(> .bt-stoves__card:only-child), .bt-stoves__grid:has(> .bt-stoves__card:nth-child(2):last-child), .bt-stoves__grid:has(> .bt-stoves__card:nth-child(3):last-child), .bt-stoves__grid:has(> .bt-stoves__card:nth-child(4):last-child) { grid-template-columns: minmax(0, 1fr); max-width: 380px; gap: 32px; } .bt-stoves__image { height: 340px; } }

/* ============================================================ RÉDUCTION DES ANIMATIONS ============================================================ */
@media (prefers-reduced-motion: reduce) { .bt-stoves__cta, .bt-stoves__cta::before, .bt-stoves__card-cta, .bt-stoves__card-cta::before { transition: none; } }

/* ============================================================ BT-CAT-HERO - variables de marque scopées au bloc ============================================================ */
.bt-cat-hero { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; min-height: 70vh; min-height: 70svh; font-family: "Open Sans", Arial, sans-serif; }

/* ---- Fond photo + assombrissement ---- */
.bt-cat-hero__background { position: absolute; inset: 0; overflow: hidden; }

.bt-cat-hero__bg-image { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

.bt-cat-hero__overlay { position: absolute; inset: 0; /* bande sombre concentrée au centre (lisibilité du texte), la photo reste visible en haut et en bas de l'image */ background: linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.72) 32%, rgba(0, 0, 0, 0.72) 68%, rgba(0, 0, 0, 0.1) 100%); }

/* ---- Conteneur de contenu, centré ---- */
.bt-cat-hero__container { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 16px; max-width: 1300px; text-align: center; padding: 48px 24px; }

.bt-cat-hero__title { color: var(--bt-white); font-size: 40px; font-weight: 800; text-transform: uppercase; line-height: 1.35; padding: 0; }

.bt-cat-hero__title span { color: #e30613; }

.bt-cat-hero__subtitle { color: var(--bt-white); font-size: 20px; font-weight: 400; line-height: 1.5; opacity: 0.9; padding: 0; }

/* ---- CTA ---- */
.bt-cat-hero__cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 10px; background-color: var(--bt-red); color: var(--bt-white); font-size: 14px; font-weight: 700; text-decoration: none; padding: 13px 24px; border-radius: 3px; box-shadow: 0 6px 16px rgba(227, 6, 19, 0.35); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-cat-hero__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-maroon); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-cat-hero__cta-icon { display: inline-flex; align-items: center; transition: transform 0.3s ease; }

.bt-cat-hero__cta:hover, .bt-cat-hero__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(128, 16, 22, 0.45); color: white; }

.bt-cat-hero__cta:hover::before, .bt-cat-hero__cta:focus-visible::before { transform: translateX(0); }

.bt-cat-hero__cta:hover .bt-cat-hero__cta-icon, .bt-cat-hero__cta:focus-visible .bt-cat-hero__cta-icon { transform: translateX(4px); }

.bt-cat-hero__cta:active { transform: translateY(0); }

.bt-cat-hero__cta:focus-visible { outline: 2px solid var(--bt-white); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-cat-hero__cta, .bt-cat-hero__cta::before, .bt-cat-hero__cta-icon { transition: none; } }

.bt-cat-hero__caption { color: var(--bt-white); font-size: 14px; font-style: italic; opacity: 0.85; padding: 0; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 700px) { .bt-cat-hero { min-height: 340px; } .bt-cat-hero__title { font-size: 21px; } .bt-cat-hero__subtitle { font-size: 13px; } }

@media (max-width: 480px) { .bt-cat-hero__container { padding: 36px 20px; gap: 14px; margin-top: 90px; } .bt-cat-hero__title { font-size: 19px; } }

/* ============================================================ BT-STOVE-BENEFITS - variables de marque scopées au bloc ============================================================ */
.bt-stove-benefits { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; background-color: var(--bt-white); padding: 48px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-stove-benefits__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-stove-benefits__title span { color: #801016; }

.bt-stove-benefits__subtitle { color: #444444; font-size: 16px; line-height: 1.6; text-align: center; max-width: 620px; padding: 0 0 28px; }

.bt-stove-benefits__subtitle strong { color: #222222; }

/* ---- Grille des 4 avantages ---- */
.bt-stove-benefits__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; width: 100%; max-width: 980px; padding-bottom: 32px; }

.bt-stove-benefits__item { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }

.bt-stove-benefits__icon { width: 72px; height: 72px; object-fit: contain; display: block; }

.bt-stove-benefits__text { color: var(--bt-black); font-size: 16px; font-weight: 700; line-height: 1.4; padding: 0; max-width: 170px; }

.bt-stove-benefits__description { max-width: 250px; font-family: "Open Sans", sans-serif; font-size: 15px; font-weight: 400; line-height: 1.5; text-align: center; color: #555555; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 800px) { .bt-stove-benefits__grid { grid-template-columns: repeat(2, 1fr); row-gap: 32px; } }

@media (max-width: 480px) { .bt-stove-benefits__title { font-size: 18px; } }

/* ============================================================ BT-WHY - variables de marque scopées au bloc ============================================================ */
.bt-why { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 20px; width: 100%; background-color: var(--bt-maroon); padding: 32px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-why__title { color: var(--bt-white); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-why__content { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; width: 100%; max-width: 900px; }

.bt-why__subtitle { color: var(--bt-white); font-size: 20px; font-weight: 800 !important; line-height: 1.3; text-align: left; padding: 0; }

.bt-why__text { color: rgba(255, 255, 255, 0.9); font-size: 16px; line-height: 1.55; text-align: left; padding: 0 0 6px; }

/* ---- Checklist en 2 colonnes ---- */
.bt-why__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 40px; width: 100%; }

.bt-why__col { display: flex; flex-direction: column; gap: 10px; list-style: none; padding: 0; }

.bt-why__col li { position: relative; color: var(--bt-white); font-size: 14px; font-weight: 700; line-height: 1.4; padding-left: 26px; }

.bt-why__col li::before { content: ""; position: absolute; left: 0; top: 2px; width: 16px; height: 16px; background-color: var(--bt-white); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E"); -webkit-mask-size: 16px; mask-size: 16px; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 700px) { .bt-why__list { grid-template-columns: 1fr; gap: 10px; } .bt-why__title { font-size: 21px; } .bt-why__subtitle { font-size: 16px; } }

/* ============================================================ BT-SHOWCASE - variables de marque scopées au bloc ============================================================ */
.bt-showcase { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; background-color: var(--bt-white); padding: 48px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-showcase__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-showcase__title-accent { color: var(--bt-maroon); }

.bt-showcase__subtitle { color: #555555; font-size: 16px; text-align: center; padding: 4px 0 20px; }

/* ---- Grille des 3 réalisations ---- */
.bt-showcase__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; width: 100%; max-width: 1000px; padding: 28px 0 36px; }

.bt-showcase__card { display: flex; flex-direction: column; gap: 6px; background-color: var(--bt-white); border: 2px solid var(--bt-maroon); border-radius: 10px; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08); overflow: hidden; }

.bt-showcase__image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; display: block; }

.bt-showcase__card-title { color: var(--bt-maroon); font-size: 20px; font-weight: 700; line-height: 1.35; padding: 10px 14px 0; text-transform: uppercase; }

.bt-showcase__card-model { color: #333333; font-size: 14px; line-height: 1.4; padding: 0 14px 14px; }

/* ---- Séparateur ---- */
.bt-showcase__divider { width: 100%; max-width: 1000px; height: 1px; margin-top: 50px; background-color: #E2E2E2; }

/* ---- Stats chiffrées ---- */
.bt-showcase__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; width: 100%; max-width: 800px; padding-top: 32px; }

.bt-showcase__stat { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }

.bt-showcase__stat-value { color: var(--bt-maroon); font-size: 50px; font-weight: 800; padding: 0; }

.bt-showcase__stat-label { color: var(--bt-black); font-size: 20px; font-weight: 600; padding: 0; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 800px) { .bt-showcase__grid { grid-template-columns: 1fr; max-width: 420px; } .bt-showcase__stats { grid-template-columns: 1fr; row-gap: 24px; max-width: 260px; } }

@media (max-width: 480px) { .bt-showcase__title { font-size: 19px; } }

/* ============================================================ BT-AIDS - variables de marque scopées au bloc ============================================================ */
.bt-aids { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 12px; width: 100%; background-color: var(--bt-maroon); padding: 32px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-aids__title { color: var(--bt-white); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-aids__text { color: rgba(255, 255, 255, 0.92); font-size: 16px; line-height: 1.5; text-align: center; max-width: 640px; padding: 0 0 4px; }

.bt-aids__text strong { color: var(--bt-white); }

/* ---- CTA ---- */
.bt-aids__cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 10px; background-color: var(--bt-red); color: var(--bt-white); font-size: 15px; font-weight: 700; text-decoration: none; padding: 14px 30px; border-radius: 4px; box-shadow: 0 6px 16px rgba(227, 6, 19, 0.3); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-aids__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-black); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-aids__cta:hover, .bt-aids__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.35); color: white; }

.bt-aids__cta:hover::before, .bt-aids__cta:focus-visible::before { transform: translateX(0); }

.bt-aids__cta:focus-visible { outline: 2px solid var(--bt-white); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-aids__cta, .bt-aids__cta::before { transition: none; } }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 560px) { .bt-aids__title { font-size: 17px; } .bt-aids { padding: 26px 20px; } }

/* ============================================================ BT-BRANDS - variables de marque scopées au bloc ============================================================ */
.bt-brands { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; background-color: var(--bt-white); padding: 48px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-brands__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-align: center; text-transform: uppercase; padding: 0; }

.bt-brands__title-accent { color: var(--bt-maroon); }

.bt-brands__subtitle { color: var(--bt-black); font-size: 20px; font-weight: 700; text-align: center; padding: 6px 0 32px; }

/* ---- Liste des marques centrée automatiquement ---- */
.bt-brands__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 32px 20px; width: 100%; max-width: 1200px; }

.bt-brands__card { display: flex; flex-direction: column; align-items: center; flex: 0 0 calc((100% - 80px) / 5); max-width: calc((100% - 80px) / 5); gap: 12px; text-align: center; }

.bt-brands__logo { height: 65px; width: auto; max-width: 140px; object-fit: contain; display: block; }

.bt-brands__text { color: #333333; font-size: 14px; line-height: 1.5; flex: 1 1 auto; /* absorbe la différence de longueur des textes pour garder les boutons alignés */ padding: 0; }

.bt-brands__text strong { color: var(--bt-black); }

/* ---- CTA ---- */
.bt-brands__cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background-color: var(--bt-red); color: var(--bt-white); font-size: 15px; font-weight: 700; text-align: center; text-decoration: none; padding: 14px 22px; border-radius: 3px; box-shadow: 0 5px 14px rgba(227, 6, 19, 0.35); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-brands__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-maroon); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-brands__cta:hover, .bt-brands__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 9px 18px rgba(0, 0, 0, 0.35); color: white; }

.bt-brands__cta:hover::before, .bt-brands__cta:focus-visible::before { transform: translateX(0); }

.bt-brands__cta:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-brands__cta, .bt-brands__cta::before { transition: none; } }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-brands__card { flex-basis: calc((100% - 40px) / 3); max-width: calc((100% - 40px) / 3); } }

@media (max-width: 560px) { .bt-brands__grid { gap: 28px 16px; } .bt-brands__card { flex-basis: calc((100% - 16px) / 2); max-width: calc((100% - 16px) / 2); } .bt-brands__title { font-size: 20px; } .bt-brands__subtitle { font-size: 13.5px; } }

/* ============================================================ BT-PELLET-BENEFITS - variables de marque scopées au bloc ============================================================ */
.bt-pellet-benefits { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 36px; width: 100%; background-color: var(--bt-white); padding: 48px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-pellet-benefits__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-align: center; text-transform: uppercase; padding: 0; }

.bt-pellet-benefits__title-accent { color: var(--bt-maroon); }

/* ---- Grille des 6 avantages ---- */
.bt-pellet-benefits__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 32px; width: 100%; max-width: 1080px; }

.bt-pellet-benefits__item { display: flex; flex-direction: column; gap: 4px; border-left: 3px solid var(--bt-maroon); padding: 2px 0 2px 16px; }

.bt-pellet-benefits__item-title { color: var(--bt-black); font-size: 16px; font-weight: 800 !important; text-transform: uppercase; line-height: 1.35; padding: 0; }

.bt-pellet-benefits__item-desc { color: #555555; font-size: 14px; line-height: 1.5; padding: 0; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-pellet-benefits__grid { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 560px) { .bt-pellet-benefits__grid { grid-template-columns: 1fr; } .bt-pellet-benefits__title { font-size: 20px; } }

/* ============================================================ BT-FAQ - variables de marque scopées au bloc ============================================================ */
.bt-faq { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; background-color: var(--bt-white); padding: 48px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-faq__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-faq__title span { color: var(--bt-maroon); }

.bt-faq__subtitle { color: #444444; font-size: 16px; line-height: 1.6; text-align: center; max-width: 620px; padding: 8px 0 36px; }

.bt-faq__subtitle strong { color: #222222; }

/* ---- Grille 2x2 des questions ---- */
.bt-faq__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 44px 56px; width: 100%; max-width: 1200px; padding-bottom: 36px; }

.bt-faq__item { display: flex; flex-direction: column; gap: 8px; }

.bt-faq__item-head { display: flex; align-items: center; justify-content: center; gap: 10px; padding-bottom: 4px; }

.bt-faq__number { color: var(--bt-maroon); font-size: 50px; font-weight: 800 !important; line-height: 1; }

.bt-faq__item-title { color: var(--bt-black); font-size: 20px; font-weight: 800 !important; line-height: 1.35; text-align: center; padding: 0; }

.bt-faq__item-title-accent { color: var(--bt-red); }

.bt-faq__item-text { color: #333333; font-size: 16px; line-height: 1.55; padding: 0; }

.bt-faq__item-text strong { color: #111111; }

.bt-faq__item-list { display: flex; flex-direction: column; gap: 4px; list-style: disc; padding-left: 18px; }

.bt-faq__item-list li { color: #333333; font-size: 14px; line-height: 1.5; }

.bt-faq__item-list li strong { color: #111111; }

.bt-faq__item-result { color: #333333; font-size: 16px; line-height: 1.55; padding: 4px 0 0; }

.bt-faq__item-result strong { color: var(--bt-maroon); }

/* ---- CTA ---- */
.bt-faq__cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background-color: var(--bt-maroon); color: var(--bt-white); font-size: 13px; font-weight: 700; text-decoration: none; padding: 12px 24px; border-radius: 3px; box-shadow: 0 6px 16px rgba(128, 16, 22, 0.3); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-faq__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-red); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-faq__cta:hover, .bt-faq__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(227, 6, 19, 0.35); }

.bt-faq__cta:hover::before, .bt-faq__cta:focus-visible::before { transform: translateX(0); }

.bt-faq__cta:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-faq__cta, .bt-faq__cta::before { transition: none; } }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 800px) { .bt-faq__grid { grid-template-columns: 1fr; gap: 36px; max-width: 520px; } }

@media (max-width: 480px) { .bt-faq__title { font-size: 20px; } .bt-faq__number { font-size: 27px; } .bt-faq__item-title { font-size: 15.5px; } }

/* ============================================================ BT-DUAL-FUEL - variables de marque scopées au bloc ============================================================ */
.bt-dual-fuel { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; background-color: var(--bt-maroon); padding: 100px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-dual-fuel__title { color: var(--bt-white); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-dual-fuel__subtitle { color: rgba(255, 255, 255, 0.85); font-size: 16px; text-align: center; padding: 4px 0 32px; }

/* ---- Grille des 2 modes de chauffage ---- */
.bt-dual-fuel__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 70px; width: 100%; max-width: 1200px; }

.bt-dual-fuel__item { display: flex; align-items: center; gap: 20px; }

.bt-dual-fuel__media { flex-shrink: 0; }

.bt-dual-fuel__image { width: 170px; height: 170px; object-fit: cover; object-position: center; display: block; border-radius: 50%; border: 4px solid var(--bt-white); }

.bt-dual-fuel__content { display: flex; flex-direction: column; gap: 8px; }

.bt-dual-fuel__item-title { color: var(--bt-white); font-size: 25px; font-weight: 800 !important; text-transform: uppercase; padding: 0; }

.bt-dual-fuel__list { display: flex; flex-direction: column; gap: 6px; list-style: disc; padding-left: 20px; }

.bt-dual-fuel__list li { color: var(--bt-white); font-size: 14px; line-height: 1.45; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 700px) { .bt-dual-fuel__grid { grid-template-columns: 1fr; gap: 40px; max-width: 400px; } }

@media (max-width: 420px) { .bt-dual-fuel__item { gap: 16px; } .bt-dual-fuel__image { width: 120px; height: 120px; } .bt-dual-fuel__item-title { font-size: 20px; } .bt-dual-fuel__list li { font-size: 14px; } .bt-dual-fuel__title { font-size: 19px; } }

/* ============================================================ BT-MODELS - variables de marque scopées au bloc ============================================================ */
.bt-models { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; background-color: var(--bt-white); padding: 48px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-models__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; max-width: 1000px; padding: 0; }

.bt-models__title span { color: var(--bt-maroon); }

.bt-models__subtitle { color: #555555; font-size: 16px; text-align: center; max-width: 620px; padding: 6px 0 32px; }

/* ---- Grille des 2 modèles ---- */
.bt-models__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; width: 100%; max-width: 1100px; }

.bt-models__card { position: relative; isolation: isolate; display: block; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; text-decoration: none; }

.bt-models__image { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; transition: transform 0.4s ease; }

.bt-models__card:hover .bt-models__image, .bt-models__card:focus-visible .bt-models__image { transform: scale(1.05); }

.bt-models__overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.35) 45%, rgba(0, 0, 0, 0) 75%); }

.bt-models__caption { position: absolute; z-index: 2; inset: auto 0 0 0; display: flex; flex-direction: column; gap: 6px; padding: 24px 28px; }

.bt-models__caption-title { color: var(--bt-white); font-size: 25px; font-weight: 800 !important; text-transform: uppercase; padding: 0; }

.bt-models__caption-text { color: rgba(255, 255, 255, 0.9); font-size: 14px; line-height: 1.5; max-width: 420px; padding: 0; }

.bt-models__card:focus-visible { outline: 2px solid var(--bt-white); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-models__image { transition: none; } }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 800px) { .bt-models__grid { grid-template-columns: 1fr; max-width: 460px; } .bt-models__title { font-size: 19px; } }

@media (max-width: 480px) { .bt-models__caption { padding: 18px 20px; } .bt-models__caption-title { font-size: 19px; } }

/* ============================================================ BT-JANUS - variables de marque scopées au bloc ============================================================ */
.bt-janus { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; align-items: center; justify-content: center; gap: 56px; width: 100%; background-color: var(--bt-white); padding: 100px 24px; font-family: "Open Sans", Arial, sans-serif; }

/* ---- Photo ---- */
.bt-janus__media { flex: 1 1 420px; max-width: 500px; }

.bt-janus__image { width: 100%; aspect-ratio: 4 / 3.2; object-fit: cover; object-position: center; display: block; border-radius: 16px; }

/* ---- Contenu texte ---- */
.bt-janus__content { display: flex; flex-direction: column; gap: 18px; flex: 1 1 420px; max-width: 550px; }

.bt-janus__title { color: var(--bt-black); font-size: 25px; font-weight: 800 !important; line-height: 1.35; text-transform: uppercase; padding: 0; }

.bt-janus__title span { color: var(--bt-maroon); }

.bt-janus__text { color: #333333; font-size: 16px; line-height: 1.6; padding: 0; }

.bt-janus__text strong { color: #111111; }

.bt-janus__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 24px; }

.bt-janus__col { display: flex; flex-direction: column; gap: 8px; list-style: disc; padding-left: 18px; }

.bt-janus__col li { color: #333333; font-size: 14px; line-height: 1.4; }

.bt-janus__secondary { display: flex; flex-direction: column; gap: 6px; padding-top: 14px; }

.bt-janus__secondary-title { color: var(--bt-red); font-size: 20px; font-weight: 800 !important; text-transform: uppercase; padding: 0; }

.bt-janus__secondary-text { color: #555555; font-size: 14px; padding: 0; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-janus { flex-direction: column; gap: 32px; } .bt-janus__media, .bt-janus__content { max-width: 560px; flex: 1 1 auto; } }

@media (max-width: 480px) { .bt-janus__title { font-size: 19px; } .bt-janus__list { grid-template-columns: 1fr; gap: 8px; } }

/* ============================================================ BT-SOLAR-COMBO - variables scopées au bloc ============================================================ */
.bt-solar-combo { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; --bt-solar-blue: #1A9DD9; /* accent spécifique à l'univers solaire, hors charte de base */ display: flex; flex-direction: column; align-items: center; gap: 32px; width: 100%; background-color: var(--bt-white); padding: 48px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-solar-combo__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; max-width: 780px; padding: 0; }

.bt-solar-combo__title-accent { color: var(--bt-solar-blue); }

/* ---- Corps en 2 colonnes ---- */
.bt-solar-combo__body { display: flex; align-items: center; gap: 48px; width: 100%; max-width: 1100px; }

.bt-solar-combo__content { display: flex; flex-direction: column; gap: 14px; flex: 1 1 420px; }

.bt-solar-combo__text { color: #333333; font-size: 16px; line-height: 1.6; padding: 0; }

.bt-solar-combo__text strong { color: #111111; }

.bt-solar-combo__highlight { color: #333333; font-size: 16px; line-height: 1.6; padding: 0; }

.bt-solar-combo__highlight strong { color: var(--bt-black); }

.bt-solar-combo__list { display: flex; flex-direction: column; gap: 6px; list-style: disc; padding-left: 18px; }

.bt-solar-combo__list li { color: #333333; font-size: 14px; line-height: 1.4; }

/* ---- CTA ---- */
.bt-solar-combo__cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-self: flex-start; align-items: center; justify-content: center; background-color: var(--bt-solar-blue); color: var(--bt-white); font-size: 13px; font-weight: 700; text-decoration: none; padding: 14px 30px; border-radius: 3px; box-shadow: 0 6px 16px rgba(26, 157, 217, 0.35); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-solar-combo__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-black); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-solar-combo__cta:hover, .bt-solar-combo__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); color: white; }

.bt-solar-combo__cta:hover::before, .bt-solar-combo__cta:focus-visible::before { transform: translateX(0); }

.bt-solar-combo__cta:focus-visible { outline: 2px solid var(--bt-solar-blue); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-solar-combo__cta, .bt-solar-combo__cta::before { transition: none; } }

/* ---- Photo ---- */
.bt-solar-combo__media { flex: 1 1 420px; max-width: 480px; }

.bt-solar-combo__image { width: 100%; aspect-ratio: 4 / 3.1; object-fit: cover; object-position: center; display: block; border-radius: 14px; box-shadow: 0 16px 34px rgba(0, 0, 0, 0.16); }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-solar-combo__body { flex-direction: column-reverse; gap: 32px; } .bt-solar-combo__content, .bt-solar-combo__media { max-width: 560px; flex: 1 1 auto; } }

@media (max-width: 480px) { .bt-solar-combo__title { font-size: 20px; } }

/* ============================================================ BT-FOLLOWUP - variables de marque scopées au bloc ============================================================ */
.bt-followup { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 16px; width: 100%; background-color: #FBF7F5; padding: 44px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-followup__icon { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; color: var(--bt-maroon); background-color: #FBF1F1; border-radius: 50%; }

.bt-followup__text { color: #262626; font-size: 16px; line-height: 1.65; text-align: center; max-width: 1200px; padding: 0; }

.bt-followup__text strong { color: var(--bt-maroon); }

/* ---- Badges de synthèse ---- */
.bt-followup__tags { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; padding-top: 6px; }

.bt-followup__tag { color: var(--bt-maroon); font-size: 14px; font-weight: 700; background-color: var(--bt-white); border: 1px solid #ECD9D9; border-radius: 999px; padding: 7px 16px; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 560px) { .bt-followup { padding: 36px 20px; } .bt-followup__text { font-size: 13.5px; } }

/* ============================================================ BT-SAV-SERVICE - variables de marque scopées au bloc ============================================================ */
.bt-sav-service { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 32px; width: 100%; background-color: var(--bt-white); padding: 48px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-sav-service__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-sav-service__title-accent { color: var(--bt-maroon); }

/* ---- Corps en 2 colonnes ---- */
.bt-sav-service__body { display: flex; align-items: center; gap: 48px; width: 100%; max-width: 1100px; }

.bt-sav-service__media { flex: 1 1 420px; max-width: 480px; }

.bt-sav-service__image { width: 100%; aspect-ratio: 4 / 3.1; object-fit: cover; object-position: center; display: block; border-radius: 12px; }

.bt-sav-service__content { display: flex; flex-direction: column; gap: 10px; flex: 1 1 420px; }

.bt-sav-service__head { display: flex; align-items: center; gap: 10px; }

.bt-sav-service__number { color: var(--bt-maroon); font-size: 40px; font-weight: 800 !important; line-height: 1; }

.bt-sav-service__heading { color: var(--bt-black); font-size: 20px; font-weight: 800 !important; text-transform: uppercase; padding: 0; }

.bt-sav-service__subtitle { color: var(--bt-red); font-size: 20px; font-weight: 700 !important; padding: 0 0 4px; }

.bt-sav-service__intro { color: #333333; font-size: 16px; font-weight: 700; padding: 0; }

.bt-sav-service__list { display: flex; flex-direction: column; gap: 8px; list-style: none; padding: 4px 0 0; }

.bt-sav-service__list li { position: relative; color: #222222; font-size: 14px; font-weight: 600; line-height: 1.4; padding-left: 24px; }

.bt-sav-service__list li::before { content: ""; position: absolute; left: 0; top: 1px; width: 16px; height: 16px; background-color: var(--bt-maroon); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E"); -webkit-mask-size: 16px; mask-size: 16px; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-sav-service__body { flex-direction: column; gap: 28px; } .bt-sav-service__media, .bt-sav-service__content { max-width: 560px; flex: 1 1 auto; } }

@media (max-width: 480px) { .bt-sav-service__title { font-size: 19px; } .bt-sav-service__number { font-size: 32px; } .bt-sav-service__heading { font-size: 17px; } }

/* ============================================================ BT-MAINTENANCE - variables de marque scopées au bloc ============================================================ */
.bt-maintenance { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; background-color: var(--bt-maroon); padding: 40px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-maintenance__title { color: var(--bt-white); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-maintenance__subtitle { color: rgba(255, 255, 255, 0.85); font-size: 16px; text-align: center; max-width: 620px; padding: 6px 0 36px; }

/* ---- Grille des 2 avantages ---- */
.bt-maintenance__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; width: 100%; max-width: 1000px; }

.bt-maintenance__item { display: flex; align-items: flex-start; gap: 22px; }

.bt-maintenance__icon { flex-shrink: 0; width: 48px; height: 48px; object-fit: contain; display: block; }

.bt-maintenance__content { display: flex; flex-direction: column; gap: 6px; }

.bt-maintenance__item-title { color: var(--bt-white); font-size: 20px; font-weight: 800 !important; text-transform: uppercase; padding: 0; }

.bt-maintenance__item-text { color: rgba(255, 255, 255, 0.85); font-size: 14px; line-height: 1.55; padding: 0; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 800px) { .bt-maintenance__grid { grid-template-columns: 1fr; gap: 32px; max-width: 460px; } }

@media (max-width: 480px) { .bt-maintenance__item { gap: 16px; } .bt-maintenance__title { font-size: 20px; } }

/* ============================================================ BT-QUICKFIX - variables de marque scopées au bloc, namespace totalement distinct pour éviter tout conflit avec le bloc précédent (reprend le même système que le bloc "Entretien régulier") ============================================================ */
.bt-quickfix { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; align-items: center; justify-content: center; gap: 48px; width: 100%; background-color: var(--bt-white); padding: 100px 24px; font-family: "Open Sans", Arial, sans-serif; }

/* variante "photo à droite" : on inverse simplement l'ordre visuel */
.bt-quickfix--reverse .bt-quickfix__content { order: 1; }

.bt-quickfix--reverse .bt-quickfix__media { order: 2; }

.bt-quickfix__media { flex: 1 1 420px; max-width: 480px; }

.bt-quickfix__image { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; object-position: center; display: block; border-radius: 12px; }

.bt-quickfix__content { display: flex; flex-direction: column; gap: 10px; flex: 1 1 420px; max-width: 480px; }

.bt-quickfix__head { display: flex; align-items: center; gap: 10px; }

.bt-quickfix__number { color: var(--bt-maroon); font-size: 40px; font-weight: 800 !important; line-height: 1; }

.bt-quickfix__heading { color: var(--bt-black); font-size: 20px; font-weight: 800 !important; text-transform: uppercase; padding: 0; }

/* ---- Questions ---- */
.bt-quickfix__questions { display: flex; flex-direction: column; gap: 4px; list-style: none; padding: 6px 0 0; }

.bt-quickfix__questions li { color: var(--bt-red); font-size: 20px; font-weight: 700 !important; }

.bt-quickfix__intro { color: #333333; font-size: 14px; line-height: 1.5; padding: 6px 0 4px; }

.bt-quickfix__intro strong { color: #111111; }

/* ---- CTA téléphone ---- */
.bt-quickfix__phone { display: inline-flex; align-self: flex-start; align-items: center; gap: 10px; background-color: var(--bt-red); color: var(--bt-white); font-size: 15px; font-weight: 800; text-decoration: none; padding: 11px 22px; border-radius: 3px; box-shadow: 0 6px 16px rgba(227, 6, 19, 0.3); transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease; }

.bt-quickfix__phone:hover, .bt-quickfix__phone:focus-visible { background-color: var(--bt-maroon); transform: translateY(-2px); box-shadow: 0 10px 20px rgba(128, 16, 22, 0.35); color: white; }

.bt-quickfix__phone:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 3px; }

.bt-quickfix__phone-caption { color: #333333; font-size: 14px; font-weight: 600; padding: 0; }

@media (prefers-reduced-motion: reduce) { .bt-quickfix__phone { transition: none; } }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-quickfix { flex-direction: column; gap: 28px; } .bt-quickfix--reverse .bt-quickfix__content, .bt-quickfix--reverse .bt-quickfix__media { order: initial; } .bt-quickfix__media, .bt-quickfix__content { max-width: 480px; flex: 1 1 auto; } }

@media (max-width: 480px) { .bt-quickfix__number { font-size: 32px; } .bt-quickfix__heading { font-size: 17px; } }

/* ============================================================ BT-AGENCY-TEAM - variables de marque scopées au bloc ============================================================ */
.bt-agency-team { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 32px; width: 100%; background-color: var(--bt-white); padding: 48px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-agency-team__title { color: var(--bt-black); font-size: 30px; text-transform: uppercase; font-weight: 800 !important; text-align: center; max-width: 920px; padding: 0; }

.bt-agency-team__title-accent { color: var(--bt-maroon); }

/* ---- Corps en 2 colonnes ---- */
.bt-agency-team__body { display: flex; align-items: center; gap: 48px; width: 100%; max-width: 1100px; }

.bt-agency-team__media { flex: 1 1 420px; max-width: 480px; }

.bt-agency-team__image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; display: block; border-radius: 10px; }

.bt-agency-team__content { display: flex; flex-direction: column; gap: 10px; flex: 1 1 420px; }

.bt-agency-team__address { color: var(--bt-black); font-size: 20px; font-weight: 800 !important; padding: 0; }

/* ---- Téléphone ---- */
.bt-agency-team__phone { display: inline-flex; align-self: flex-start; align-items: center; background-color: var(--bt-red); color: var(--bt-white); font-size: 14px; font-weight: 800; gap: 10px; text-decoration: none; padding: 11px 22px; border-radius: 3px; box-shadow: 0 5px 14px rgba(227, 6, 19, 0.3); transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease; }

.bt-agency-team__phone:hover, .bt-agency-team__phone:focus-visible { background-color: var(--bt-maroon); transform: translateY(-2px); box-shadow: 0 9px 18px rgba(128, 16, 22, 0.35); color: white; }

.bt-agency-team__phone:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-agency-team__phone { transition: none; } }

.bt-agency-team__intro { color: #333333; font-size: 16px; padding: 10px 0 0; }

.bt-agency-team__list { display: flex; flex-direction: column; gap: 4px; list-style: disc; padding-left: 18px; }

.bt-agency-team__list li { color: #222222; font-size: 14px; line-height: 1.4; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 900px) { .bt-agency-team__body { flex-direction: column; gap: 28px; } .bt-agency-team__media, .bt-agency-team__content { max-width: 480px; flex: 1 1 auto; } }

@media (max-width: 480px) { .bt-agency-team__title { font-size: 20px; } }

/* ============================================================ BT-TEAM - variables de marque scopées au bloc ============================================================ */
.bt-team { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 32px; width: 100%; background-color: var(--bt-maroon); padding: 40px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-team__intro { color: var(--bt-white); font-size: 20px; line-height: 1.6; text-align: center; max-width: 720px; padding: 0; }

/* ---- Grille des 4 membres ---- */
.bt-team__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; width: 100%; max-width: 1000px; }

.bt-team__member { display: flex; flex-direction: column; align-items: center; gap: 12px; }

.bt-team__photo { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: center; display: block; border-radius: 6px; }

.bt-team__name { color: var(--bt-white); font-size: 13.5px; font-weight: 800; text-align: center; padding: 0; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 700px) { .bt-team__grid { grid-template-columns: repeat(2, 1fr); row-gap: 28px; } }

@media (max-width: 420px) { .bt-team__intro { font-size: 13px; } }

/* ============================================================ BT-PROCESS - variables de marque scopées au bloc ============================================================ */
.bt-process { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 32px; width: 100%; background-color: var(--bt-white); padding: 40px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-process__title { color: var(--bt-black); font-size: 30px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-process__title-accent { color: var(--bt-maroon); }

/* ---- Ligne chronologique des 5 étapes ---- */
.bt-process__row { display: flex; align-items: flex-start; gap: 12px; width: 100%; max-width: 1150px; }

.bt-process__step { display: flex; flex-direction: column; align-items: center; gap: 8px; flex: 1 1 0; text-align: center; }

.bt-process__number { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; color: var(--bt-white); background-color: var(--bt-maroon); border-radius: 50%; font-size: 17px; font-weight: 800; }

.bt-process__step-title { color: var(--bt-black); font-size: 16px; font-weight: 800 !important; line-height: 1.3; padding: 4px 0 0; }

.bt-process__step-desc { color: #555555; font-size: 14px; line-height: 1.4; padding: 0; }

.bt-process__connector { position: relative; top: 20px; /* aligne le connecteur au centre vertical des ronds numérotés, sans margin */ flex: 0 0 auto; width: 40px; height: 1px; background-image: repeating-linear-gradient(90deg, #D9C6C6 0, #D9C6C6 5px, transparent 5px, transparent 10px); }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 700px) { .bt-process__row { flex-direction: column; align-items: center; max-width: 320px; gap: 24px; } .bt-process__connector { display: none; } .bt-process__title { font-size: 20px; } }

/* ============================================================ BT-SHOWROOMS - variables de marque scopées au bloc ============================================================ */
.bt-showrooms { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%; background-color: var(--bt-white); padding: 48px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-showrooms__title { color: var(--bt-black); font-size: 30px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-showrooms__title-accent { color: var(--bt-maroon); }

.bt-showrooms__subtitle { color: #333333; font-size: 16px; text-align: center; padding: 4px 0 0; }

/* ---- Grille des 2 showrooms ---- */
.bt-showrooms__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; width: 100%; max-width: 900px; padding-top: 32px; }

.bt-showrooms__image { width: 100%; aspect-ratio: 4 / 2.6; object-fit: cover; object-position: center; display: block; border-radius: 8px; }

.bt-showrooms__card { display: flex; flex-direction: column; align-items: center; gap: 10px; }

.bt-showrooms__city { color: var(--bt-maroon); font-size: 15px; font-weight: 800 !important; text-align: center; padding: 0; }

.bt-showrooms__address { color: #333333; font-size: 14px; text-align: center; padding: 0; }

.bt-showrooms__phone { color: var(--bt-black); font-size: 14px; font-weight: 800 !important; text-decoration: none; padding: 0; }

.bt-showrooms__phone:hover, .bt-showrooms__phone:focus-visible { color: var(--bt-maroon); }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 700px) { .bt-showrooms__grid { grid-template-columns: 1fr; max-width: 420px; gap: 32px; } .bt-showrooms__title { font-size: 20px; } }

/* ============================================================ BT-FAQ-ACCORDION - variables de marque scopées au bloc ============================================================ */
.bt-faq-accordion { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 28px; width: 100%; background-color: var(--bt-white); padding: 100px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-faq-accordion__title { color: var(--bt-black); font-size: 35px; font-weight: 800 !important; text-transform: uppercase; text-align: center; padding: 0; }

.bt-faq-accordion__title span { color: var(--bt-maroon); }

.bt-faq-accordion__list { display: flex; flex-direction: column; gap: 14px; width: 100%; max-width: 760px; }

.bt-faq-accordion__item { background-color: var(--bt-white); border: 1px solid #EFEFEF; border-radius: 12px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06); transition: box-shadow 0.25s ease; }

.bt-faq-accordion__item.is-open { box-shadow: 0 10px 26px rgba(227, 6, 19, 0.12); }

.bt-faq-accordion__heading { padding: 0; }

/* ---- Bouton question ---- */
.bt-faq-accordion__question { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; background-color: transparent; border: none; border-radius: 12px; cursor: pointer; text-align: left; padding: 18px 20px; font-family: inherit; transition: background-color 0.2s ease; }

.bt-faq-accordion__question:hover { background-color: #FBF7F5; }

.bt-faq-accordion__question-text { color: var(--bt-black); font-size: 16px; font-weight: 700; line-height: 1.4; }

.bt-faq-accordion__icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 30px; height: 30px; color: var(--bt-red); background-color: #FDECEC; border-radius: 50%; transition: transform 0.25s ease, background-color 0.25s ease; }

.bt-faq-accordion__question[aria-expanded="true"] .bt-faq-accordion__icon { transform: rotate(180deg); background-color: var(--bt-red); color: var(--bt-white); }

.bt-faq-accordion__question:focus-visible { outline: 2px solid var(--bt-red); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) { .bt-faq-accordion__icon { transition: none; } }

/* ---- Panneau réponse (animation grid-template-rows) ---- */
.bt-faq-accordion__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.3s ease; }

.bt-faq-accordion__panel.is-open { grid-template-rows: 1fr; }

.bt-faq-accordion__panel-inner { overflow: hidden; min-height: 0; }

.bt-faq-accordion__answer { color: #444444; font-size: 13.5px; line-height: 1.6; padding: 0 20px 20px; }

@media (prefers-reduced-motion: reduce) { .bt-faq-accordion__panel { transition: none; } }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 480px) { .bt-faq-accordion__title { font-size: 20px; } .bt-faq-accordion__question-text { font-size: 14px; } }

/* ============================================================  BT-GALLERY-FILTER - variables de marque scopées au bloc  ============================================================ */
.bt-gallery-filter { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 32px; width: 100%; background-color: var(--bt-white); padding: 48px 24px; font-family: "Open Sans", Arial, sans-serif; }

.bt-gallery-filter__intro { color: #333333; font-size: 16px; line-height: 1.6; text-align: center; max-width: 680px; padding: 0; }

.bt-gallery-filter__intro strong { color: #111111; }

/* ---- Onglets de filtre ---- */
.bt-gallery-filter__tabs { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; }

.bt-gallery-filter__tab { display: inline-flex; align-items: center; justify-content: center; background-color: var(--bt-white); color: var(--bt-maroon); font-size: 14px; font-weight: 700; font-family: inherit; text-decoration: none; border: 1.5px solid var(--bt-maroon); cursor: pointer; padding: 9px 18px; border-radius: 3px; transition: background-color 0.2s ease, color 0.2s ease; }

.bt-gallery-filter__tab:hover, .bt-gallery-filter__tab:focus-visible { background-color: #FBF1F1; }

.bt-gallery-filter__tab:focus-visible { outline: 2px solid var(--bt-maroon); outline-offset: 2px; }

.bt-gallery-filter__tab--active { background-color: var(--bt-maroon); color: var(--bt-white); }

.bt-gallery-filter__tab--active:hover, .bt-gallery-filter__tab--active:focus-visible { background-color: var(--bt-maroon); }

/* ---- Grille photos (sans légende) ---- */
.bt-gallery-filter__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; width: 100%; max-width: 1000px; }

.bt-gallery-filter__item { overflow: hidden; border-radius: 6px; }

.bt-gallery-filter__item[hidden] { display: none; }

.bt-gallery-filter__image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; display: block; }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 800px) { .bt-gallery-filter__grid { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 480px) { .bt-gallery-filter__grid { grid-template-columns: 1fr; } .bt-gallery-filter__tab { font-size: 11.5px; padding: 8px 14px; } }

/* ============================================================ BT-QUOTE-HERO - variables de marque scopées au bloc ============================================================ */
.bt-quote-hero { --bt-black: #000000; --bt-green: #80BA26; --bt-red: #E30613; --bt-maroon: #801016; --bt-white: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 10px; width: 100%; background-color: #801016; padding: 28px 24px 36px; font-family: "Open Sans", Arial, sans-serif; }

/* ---- Logo + avis ---- */
.bt-quote-hero__badge { display: flex; align-items: center; gap: 14px; padding-bottom: 4px; }

.bt-quote-hero__logo { height: 26px; width: auto; display: block; }

.bt-quote-hero__rating { display: inline-flex; align-items: center; gap: 6px; color: var(--bt-white); font-size: 13px; font-weight: 700; }

.bt-quote-hero__star { color: #FAB13C; }

/* ---- Titre / sous-titre / stats ---- */
.bt-quote-hero__title { color: var(--bt-white); font-size: 30px; font-weight: 800 !important; text-transform: uppercase; text-align: center; max-width: 1100px; padding: 0; }

.bt-quote-hero__subtitle { color: rgba(255, 255, 255, 0.9); font-size: 16px; line-height: 1.5; text-align: center; max-width: 640px; padding: 0; }

.bt-quote-hero__stats { color: rgba(255, 255, 255, 0.85); font-size: 14px; font-weight: 600; text-align: center; padding: 0 0 8px; }

/* ---- CTA ---- */
.bt-quote-hero__cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background-color: var(--bt-red); color: var(--bt-white); font-size: 14px; font-weight: 700; text-decoration: none; padding: 13px 26px; border-radius: 3px; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25); transition: transform 0.25s ease, box-shadow 0.25s ease; }

.bt-quote-hero__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: var(--bt-red); transform: translateX(-101%); transition: transform 0.35s ease; }

.bt-quote-hero__cta:hover, .bt-quote-hero__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.35); color: white; }

.bt-quote-hero__cta:hover::before, .bt-quote-hero__cta:focus-visible::before { transform: translateX(0); }

.bt-quote-hero__cta:active { transform: translateY(0); }

.bt-quote-hero__cta:focus-visible { outline: 2px solid var(--bt-white); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .bt-quote-hero__cta::before { transition: none; } }

/* ============================================================ RESPONSIVE ============================================================ */
@media (max-width: 560px) { .bt-quote-hero__title { font-size: 19px; } .bt-quote-hero__badge { flex-direction: column; gap: 6px; } }

/*# sourceMappingURL=custom.css.map */