/*
Theme Name: Dejours
Description: Thème enfant de Hello Elementor pour le site Entreprise Dejours (généré, voir /root/build).
Author: Logia
Template: hello-elementor
Version: 1.0.0
Text Domain: dejours
*/

/* ==========================================================================
   Site Entreprise Dejours. Le socle de l'agence (assets/css/socle.css) est chargé avant ce fichier : on ne le modifie
   pas, on le surcharge ici. Toutes les tailles de police en rem.
   ========================================================================== */
@font-face { font-family: "Interstate"; src: url("assets/fonts/interstate-extralight.woff2") format("woff2"); font-weight: 200; font-style: normal; font-display: swap; }
@font-face { font-family: "Interstate"; src: url("assets/fonts/interstate-light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Interstate"; src: url("assets/fonts/interstate-regular.woff2") format("woff2"); font-weight: 400 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Interstate"; src: url("assets/fonts/interstate-bold.woff2") format("woff2"); font-weight: 600 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Interstate"; src: url("assets/fonts/interstate-black.woff2") format("woff2"); font-weight: 800 900; font-style: normal; font-display: swap; }

:root {
	--dj-rouge: var(--e-global-color-primary, #E22F27);
	--dj-rouge-survol: var(--e-global-color-e1f0a01, #C4261F);
	--dj-noir: var(--e-global-color-text, #1D1D1B);
	--dj-gris: var(--e-global-color-a939b6a, #838382);
	--dj-fond-gris: var(--e-global-color-f6d808b, #F4F4F4);
	--dj-bordure: rgba(29, 29, 27, .25);
	/* Variables du socle branchées sur le Kit. */
	--pb-accent: var(--dj-rouge);
	--pb-accent-survol: var(--dj-rouge-survol);
	--pb-texte: var(--dj-noir);
	--pb-pastille-survol: rgba(226, 47, 39, .08);
	--pb-demi-contenu: 633px;
	--nav-height: 132px;
}

body { -webkit-font-smoothing: antialiased; }

/* ----------------------------------------------------------------- Textes */
.elementor-heading-title strong, .elementor-heading-title b { font-weight: 700; }
.elementor-widget-text-editor strong, .elementor-icon-list-text strong { font-weight: 700; }
p.elementor-heading-title { margin: 0; }
.elementor-widget-text-editor p { margin: 0; }
.elementor-widget-text-editor p + p { margin-top: 1.4em; }
.pb-rouge { color: var(--dj-rouge); }
.pb-insecable { white-space: nowrap; }

/* Sur-titre : marque en équerre (trait noir + rectangle rouge) devant le texte. */
.pb-surtitre { line-height: 0; }
.pb-surtitre .elementor-heading-title { display: inline-flex; align-items: flex-end; gap: 6px; vertical-align: top; }
.pb-surtitre .elementor-heading-title::before { content: ""; flex: none; width: 36px; height: 26px; background: url("assets/img/equerre.svg") center / contain no-repeat; }
.pb-surtitre--clair .elementor-heading-title::before { background-image: url("assets/img/equerre-claire.svg"); }
.pb-entete { margin-left: -8px; width: calc(100% + 8px); }
.pb-entete .pb-titre { padding-left: 8px; }
.pb-entete-centre .pb-entete, .pb-hero-page .pb-entete { margin-left: 0; width: 100%; }
.pb-entete-centre .pb-entete .pb-titre, .pb-hero-page .pb-entete .pb-titre { padding-left: 0; }

/* ----------------------------------------------------------------- Boutons
   Survol (choix du client) : inversion des couleurs, le nouveau fond se remplit par la gauche. */
.pb-btn .elementor-button,
.elementor-widget-form .elementor-button[type="submit"],
.elementor-widget-loop-grid .elementor-button[role="button"] {
	--dj-btn-survol: #fff;
	background-image: linear-gradient(var(--dj-btn-survol), var(--dj-btn-survol));
	background-repeat: no-repeat;
	background-position: left center;
	background-size: 0% 100%;
	transition: background-size .35s ease, color .35s ease, fill .35s ease, border-color .35s ease;
}
.pb-btn .elementor-button:hover, .pb-btn .elementor-button:focus-visible,
.elementor-widget-form .elementor-button[type="submit"]:hover, .elementor-widget-form .elementor-button[type="submit"]:focus-visible,
.elementor-widget-loop-grid .elementor-button[role="button"]:hover { background-size: 100% 100%; }
.pb-btn--blanc .elementor-button { --dj-btn-survol: var(--dj-rouge); }
.pb-btn--blanc .elementor-button:hover, .pb-btn--blanc .elementor-button:focus-visible { border-color: var(--dj-rouge) !important; }
.elementor-widget-form .elementor-button[type="submit"]:hover { color: var(--dj-rouge); }
.pb-btn .elementor-button { white-space: nowrap; }
.pb-btn .elementor-button-content-wrapper { align-items: center; }
.pb-btn .elementor-button-icon svg { width: 11px; height: 16px; }
/* Équerre décorative au coin haut gauche d'un bouton (« Voir toutes nos réalisations »). */
.pb-btn-equerre { position: relative; }
.pb-btn-equerre::before { content: ""; position: absolute; left: -10px; top: -10px; width: 36px; height: 26px; background: url("assets/img/equerre-fine.svg") center / contain no-repeat; pointer-events: none; }

/* ----------------------------------------------------------------- Header : barre blanche flottante, plus fine au scroll */
.pb-header { position: fixed !important; top: 0; left: 0; right: 0; z-index: 999; transition: padding .3s ease; }
body.admin-bar .pb-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .pb-header { top: 46px; } }
.pb-header.e-con { --padding-top: 22px; transition: --padding-top .3s ease; }
.pb-header > .e-con-inner { transition: padding .3s ease; }
.pb-header-tel { max-height: 20px; overflow: hidden; transition: max-height .3s ease, opacity .3s ease, margin .3s ease; }
.pb-header-tel .elementor-icon-list-items { justify-content: flex-end; }
.pb-header-tel .elementor-icon-list-icon { color: #fff; }
.pb-header-tel .elementor-icon-list-icon svg { fill: currentColor; }
/* Pages sans image sous le header (contact, fiche réalisation, pages légales) : téléphone en noir. */
body:not(:has(.pb-hero)) .pb-header-tel .elementor-icon-list-text { color: var(--dj-noir) !important; }
body:not(:has(.pb-hero)) .pb-header-tel .elementor-icon-list-icon { color: var(--dj-rouge); }
body:not(:has(.pb-hero)) .pb-header-tel .elementor-icon-list-icon svg { fill: var(--dj-rouge) !important; }
.pb-header-barre { position: relative; min-height: 79px; box-shadow: 0 0 4px rgba(0, 0, 0, .1), 0 4px 4px rgba(0, 0, 0, .15); transition: min-height .3s ease; pointer-events: auto; }
.pb-header-barre::before { content: ""; position: absolute; left: -15px; top: -13px; width: 36px; height: 26px; background: url("assets/img/equerre-fine-claire.svg") center / contain no-repeat; pointer-events: none; transition: opacity .3s ease; }
body:not(:has(.pb-hero)) .pb-header-barre::before { background-image: url("assets/img/equerre-fine.svg"); }
.pb-header-logo img { transition: width .3s ease; }
.pb-header-devis .elementor-button { transition: background-size .35s ease, color .35s ease, fill .35s ease, padding .3s ease; }
@media (min-width: 1340px) { .pb-header-devis { margin-right: -13px; } }
.pb-header .pb-nav .elementor-nav-menu--main .elementor-item { transition: color .2s ease; }
.pb-header .pb-nav .sub-arrow { color: var(--dj-rouge); font-size: .625rem; padding-left: 7px; }
.pb-header .pb-nav .sub-arrow svg { fill: currentColor; width: 11px; height: 11px; }
.pb-header .elementor-nav-menu--main .sub-menu, .pb-header .elementor-nav-menu--dropdown { border-radius: 0 !important; box-shadow: 0 0 4px rgba(0, 0, 0, .1), 0 8px 16px rgba(0, 0, 0, .12); }
.pb-header .elementor-nav-menu--main .sub-menu a, .pb-header .elementor-nav-menu--dropdown a { border-radius: 0 !important; }
.pb-header .elementor-nav-menu--main .sub-menu { min-width: 250px !important; }
/* Au scroll : téléphone replié, barre plus fine, toujours flottante. */
.pb-header.scrollHeader.e-con { --padding-top: 12px; }
.pb-header.scrollHeader .pb-header-tel { max-height: 0; opacity: 0; margin-bottom: -8px; pointer-events: none; }
.pb-header.scrollHeader .pb-header-barre { min-height: 64px; }
.pb-header.scrollHeader .pb-header-barre::before { opacity: 0; }
.pb-header.scrollHeader .pb-header-logo img { width: 84px; }
.pb-header.scrollHeader .pb-header-devis .elementor-button { padding-top: 13px; padding-bottom: 13px; }
/* Bouton « Demander un devis » dans le burger. */
.pb-menu-devis { --pb-menu-action-fond: var(--dj-rouge); --pb-menu-action-texte: #fff; }
@media (max-width: 1024px) {
	.pb-header.e-con { --padding-top: 16px; }
	.pb-header-barre { min-height: 68px; }
	.pb-header.scrollHeader .pb-header-barre { min-height: 58px; }
	.pb-header.scrollHeader.e-con { --padding-top: 10px; }
	.pb-header .elementor-menu-toggle { padding: 12px; margin-right: 6px; }
}
@media (max-width: 767px) {
	.pb-header.e-con { --padding-top: 10px; }
	.pb-header-barre { min-height: 60px; }
	.pb-header-barre::before { display: none; }
	.pb-header.scrollHeader .pb-header-barre { min-height: 54px; }
	.pb-header.scrollHeader.e-con { --padding-top: 8px; }
	.pb-header.scrollHeader .pb-header-logo img { width: 72px; }
}
/* Première section d'une page sans hero : dégagée du header fixe. */
.pb-sous-header.e-con { --padding-top: 180px; }
@media (max-width: 1024px) { .pb-sous-header.e-con { --padding-top: 152px; } }
@media (max-width: 767px) { .pb-sous-header.e-con { --padding-top: 124px; } }

/* ----------------------------------------------------------------- Hero */
.pb-hero { position: relative; border-bottom: 10px solid var(--dj-rouge); }
.pb-hero-contenu { padding-left: 8px; }
.pb-hero-nom { position: relative; }
.pb-hero-nom::before { content: ""; position: absolute; left: -26px; top: -12px; width: 63px; height: 46px; background: url("assets/img/equerre-hero.svg") center / contain no-repeat; pointer-events: none; }
.pb-hero-accueil .elementor-heading-title { text-shadow: 0 1px 12px rgba(0, 0, 0, .25); }
.pb-bande-services .elementor-icon-list-items { display: flex; flex-wrap: nowrap; justify-content: space-between; margin: 0 !important; padding: 0 27px; }
.pb-bande-services .elementor-icon-list-item { position: relative; margin: 0 !important; padding: 0 !important; }
.pb-bande-services .elementor-icon-list-item::after { display: none !important; }
.pb-bande-services .elementor-icon-list-item + .elementor-icon-list-item::before { content: ""; position: absolute; top: 50%; left: calc(var(--dj-services-ecart, 150px) / -2 - 4px); width: 9px; height: 6px; margin-top: -3px; background: var(--dj-rouge); }
.pb-bande-services .elementor-icon-list-item a { transition: opacity .2s ease; }
.pb-bande-services .elementor-icon-list-item a:hover { opacity: .75; }
.pb-bande-services .elementor-icon-list-text { padding: 0 !important; white-space: nowrap; }
@media (max-width: 1024px) {
	.pb-bande-services .elementor-icon-list-items { flex-wrap: wrap; justify-content: flex-start; gap: 10px 32px; padding: 0; }
	.pb-bande-services .elementor-icon-list-item + .elementor-icon-list-item::before { left: -20px; }
	.pb-hero-nom::before { left: -14px; width: 44px; height: 32px; top: -8px; }
}
@media (max-width: 767px) {
	.pb-bande-services .elementor-icon-list-items { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; }
	.pb-bande-services .elementor-icon-list-item + .elementor-icon-list-item::before { display: none; }
	.pb-bande-services .elementor-icon-list-item { padding-left: 15px !important; }
	.pb-bande-services .elementor-icon-list-item::before { content: ""; display: block !important; position: absolute; left: 0; top: 50%; width: 9px; height: 6px; margin-top: -3px; background: var(--dj-rouge); }
	.pb-bande-services .elementor-icon-list-text { white-space: normal; }
}
.pb-hero-page .elementor-widget-text-editor strong { font-weight: 700; }

/* ----------------------------------------------------------------- Décors de fond (carrés rose pâle, grille grise) */
.pb-deco-roses-d, .pb-deco-roses-g, .pb-deco-grille-d, .pb-deco-grille-g { position: relative; }
.pb-deco-roses-d::before, .pb-deco-roses-g::before, .pb-deco-grille-d::before, .pb-deco-grille-g::before { content: ""; position: absolute; z-index: 0; pointer-events: none; width: 879px; height: 875px; top: 50%; background: url("assets/img/decor-roses.svg") center / contain no-repeat; }
.pb-deco-roses-d::before { right: -12%; transform: translateY(-38%); }
.pb-deco-roses-g::before { left: -21%; transform: translateY(-62%) scaleX(-1); }
.pb-deco-grille-d::before, .pb-deco-grille-g::before { width: 919px; height: 947px; background-image: url("assets/img/decor-grille.svg"); }
.pb-deco-grille-d::before { right: -14%; transform: translateY(-50%); }
.pb-deco-grille-g::before { left: -10%; transform: translateY(-50%) rotate(90deg); }
.pb-deco-roses-d > .e-con-inner, .pb-deco-roses-g > .e-con-inner, .pb-deco-grille-d > .e-con-inner, .pb-deco-grille-g > .e-con-inner { position: relative; z-index: 1; }
@media (max-width: 1024px) { .pb-deco-roses-d::before, .pb-deco-roses-g::before, .pb-deco-grille-d::before, .pb-deco-grille-g::before { width: 520px; height: 520px; opacity: .8; } }
@media (max-width: 767px) { .pb-deco-roses-d::before, .pb-deco-roses-g::before, .pb-deco-grille-d::before, .pb-deco-grille-g::before { display: none; } }

/* Bande grise terminée par trois bandeaux rouges en biais (25 %, 50 %, 100 %). */
.pb-bande { position: relative; }
.pb-bande-biais::after { content: ""; position: absolute; z-index: 2; left: 0; right: 0; bottom: -18px; height: 41px; background: url("assets/img/bandeau-biais.svg") center / 100% 100% no-repeat; transform: rotate(180deg); pointer-events: none; }
.pb-bande-biais + .e-con { --dj-apres-biais: 18px; }
@media (max-width: 767px) { .pb-bande-biais::after { height: 24px; bottom: -10px; } }

/* ----------------------------------------------------------------- Chiffres clés sur une photo */
.pb-photo-chiffres { position: relative; }
.pb-photo-chiffres-img { padding-left: 42px; }
.pb-chiffres { position: absolute; left: 0; bottom: 15px; width: auto !important; }
.pb-chiffre .elementor-heading-title { display: inline-flex; align-items: baseline; gap: .3em; padding: 10px 16px 11px; background: var(--dj-rouge); white-space: nowrap; }
.pb-chiffre-mot { font-size: .72em; font-weight: 400; }
.pb-chiffres::before { content: ""; position: absolute; left: -14px; top: -12px; width: 36px; height: 26px; background: url("assets/img/equerre-fine.svg") center / contain no-repeat; pointer-events: none; }
@media (max-width: 1024px) { .pb-photo-chiffres-img { padding-left: 0; } .pb-chiffres { left: -12px; } }

/* ----------------------------------------------------------------- Frise des dates clés et des étapes */
.pb-frise .elementor-loop-container, .pb-etapes-frise { border-top: 2px solid var(--dj-bordure); }
.pb-date-cle, .pb-etape { position: relative; }
.pb-date-cle::before, .pb-etape::before { content: ""; position: absolute; left: 0; top: -2px; width: 18px; height: 2px; background: linear-gradient(90deg, var(--dj-rouge) 0 4px, #fff 4px 10px, var(--dj-rouge) 10px 18px); }
@media (max-width: 767px) {
	.pb-frise .elementor-loop-container { border-top: 0; border-left: 2px solid var(--dj-bordure); padding-left: 20px; }
	.pb-date-cle.e-con { --padding-top: 0px; padding-top: 0; }
	.pb-date-cle::before { left: -22px; top: 10px; width: 2px; height: 18px; background: var(--dj-rouge); }
}

/* ----------------------------------------------------------------- Onglets « expertise » (widget Onglets imbriqués) */
.pb-onglets .e-n-tabs-heading { gap: 0 !important; border-bottom: 2px solid var(--dj-bordure); align-items: stretch; }
.pb-onglets .e-n-tab-title { flex: 1 1 0; flex-direction: column; justify-content: flex-end; gap: 14px; padding: 0 12px 22px !important; margin-bottom: -2px; background: none !important; border: 0 !important; border-bottom: 3px solid transparent !important; border-radius: 0 !important; color: rgba(29, 29, 27, .5); fill: currentColor; box-shadow: none !important; cursor: pointer; transition: color .25s ease, border-color .25s ease; }
.pb-onglets .e-n-tab-title .e-n-tab-title-text { color: inherit; }
.pb-onglets .e-n-tab-title .e-n-tab-icon { color: inherit; }
.pb-onglets .e-n-tab-title .e-n-tab-icon svg { width: auto; height: 44px; fill: currentColor; color: inherit; }
.pb-onglets .e-n-tab-title:hover, .pb-onglets .e-n-tab-title[aria-selected="true"] { color: var(--dj-rouge); }
.pb-onglets .e-n-tab-title[aria-selected="true"] { border-bottom-color: var(--dj-rouge) !important; }
.pb-onglets .e-n-tabs-content > .e-con { border: 0 !important; background: none !important; }
.pb-onglets .e-n-tabs-content > .e-con.e-active { animation: dj-fondu .35s ease; }
@keyframes dj-fondu { from { opacity: 0; } to { opacity: 1; } }
.pb-photo-bouton { position: relative; }
.pb-photo-bouton-btn { position: absolute; left: calc(100% - 23px); bottom: 13px; width: auto !important; }
@media (max-width: 1340px) { .pb-photo-bouton-btn { left: auto; right: 0; bottom: 0; } }
@media (max-width: 767px) {
	.pb-onglets .e-n-tabs-heading { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
	.pb-onglets .e-n-tab-title { flex: 0 0 auto; padding: 0 18px 16px !important; }
	.pb-onglets .e-n-tab-title .e-n-tab-icon svg { height: 34px; }
}

/* ----------------------------------------------------------------- Listes */
.elementor-widget-icon-list .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item { align-items: flex-start; }
.pb-puces .elementor-icon-list-item { position: relative; padding-left: 34px !important; }
.pb-puces .elementor-icon-list-item::before { content: ""; position: absolute; left: 0; top: .32em; width: 27px; height: 10px; background: linear-gradient(90deg, var(--dj-rouge) 0 18px, transparent 18px 21.5px, var(--dj-rouge) 21.5px 27px); }
.pb-puces .elementor-icon-list-text, .pb-coches .elementor-icon-list-text, .pb-plus .elementor-icon-list-text { padding-left: 0 !important; }
.pb-coches .elementor-icon-list-icon, .pb-plus .elementor-icon-list-icon, .pb-lieu .elementor-icon-list-icon { color: var(--dj-rouge); margin-right: 7px !important; }
.elementor-icon-list-icon svg { fill: currentColor; margin: 0 !important; }
.pb-coches .elementor-icon-list-icon { margin-top: -2px; }

/* ----------------------------------------------------------------- Cartes */
.pb-grille { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 17px !important; }
.pb-grille > .e-con { width: auto !important; max-width: none; }
.pb-grille-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px !important; }
.pb-grille-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1024px) { .pb-grille, .pb-grille-5, .pb-grille-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .pb-grille, .pb-grille-5, .pb-grille-3 { grid-template-columns: minmax(0, 1fr); gap: 12px !important; } }
.pb-carte-picto { min-height: 201px; transition: background-color .3s ease, border-color .3s ease, color .3s ease; }
.pb-carte-picto .elementor-heading-title, .pb-carte-picto .elementor-widget-text-editor, .pb-carte-picto .elementor-icon { transition: color .3s ease; }
.pb-carte-picto .elementor-icon svg { fill: currentColor; }
.pb-carte-picto:hover { background-color: var(--dj-rouge) !important; border-color: var(--dj-rouge) !important; }
.pb-carte-picto:hover .elementor-heading-title, .pb-carte-picto:hover .elementor-widget-text-editor, .pb-carte-picto:hover .elementor-icon { color: #fff !important; }
@media (max-width: 767px) { .pb-carte-picto { min-height: 0; } }

/* Photos superposées + étiquette rouge (« Un partenaire de confiance », pages de prestations). */
.pb-photos-duo { position: relative; }
.pb-photos-duo-1 { width: 77% !important; }
.pb-photos-duo-2 { position: absolute !important; right: 0; bottom: 0; width: 69% !important; border: 8px solid #fff; background: #fff; }
.pb-etiquette { position: absolute !important; left: -16px; top: 375px; width: auto !important; }
.pb-etiquette .elementor-heading-title { padding: 18px 23px; background: var(--dj-rouge); white-space: nowrap; }
.pb-etiquette::before { content: ""; position: absolute; left: -14px; top: -12px; width: 36px; height: 26px; background: url("assets/img/equerre-fine.svg") center / contain no-repeat; }
@media (max-width: 767px) { .pb-etiquette { top: auto; bottom: 24px; left: -8px; } }
.pb-logo-qualibat { margin-top: -30px; }
@media (max-width: 1024px) { .pb-logo-qualibat { margin-top: 0; } }

/* Carte de réalisation : photo au bord haut incliné, flèche carrée dans le coin. */
.pb-carte-real { position: relative; height: 100%; box-shadow: 0 0 4px rgba(0, 0, 0, .08); }
.e-loop-item > .e-con { height: 100%; }
.pb-carte-real-img { overflow: hidden; clip-path: polygon(0 0, 100% 13.2%, 100% 100%, 0 100%); }
.pb-carte-real-img img { transition: transform .5s ease; }
.pb-carte-real:hover .pb-carte-real-img img { transform: scale(1.05); }
.pb-carte-real .elementor-heading-title a { transition: color .25s ease; }
.pb-carte-real:hover .elementor-heading-title a { color: var(--dj-rouge); }
.pb-carte-fleche { position: absolute !important; right: 0; bottom: 0; width: auto !important; line-height: 0; }
.pb-carte-fleche .elementor-icon-wrapper { line-height: 0; }
.pb-carte-fleche .elementor-icon { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; padding: 0; border-radius: 0; transition: background-color .25s ease; }
.pb-carte-fleche .elementor-icon svg { width: 7px; height: 11px; }
.pb-lieu .elementor-icon-list-icon svg { width: 12px; height: 16px; }

/* ----------------------------------------------------------------- Carrousels : flèches carrées, points */
.pb-carrousel-nav.elementor-widget { --pb-nav-taille: 34px; --pb-nav-espace: 28px; --pb-nav-fond: var(--dj-rouge); --pb-nav-couleur: var(--dj-rouge); --arrow-normal-color: #fff; --arrow-hover-color: #fff; --arrow-size: 12px; }
.pb-carrousel-nav .elementor-swiper-button { border-radius: 0 !important; background-color: var(--dj-rouge) !important; transition: background-color .25s ease; }
.pb-carrousel-nav .elementor-swiper-button:hover { background-color: var(--dj-noir) !important; }
.pb-carrousel-nav .elementor-swiper-button svg { fill: #fff !important; width: 12px; height: 12px; }
.pb-carrousel-nav .swiper-pagination-bullet { border-radius: 0 !important; }

/* ----------------------------------------------------------------- Territoire */
.pb-territoire-bloc { display: flex; align-items: center; gap: 36px; }
.pb-territoire-carte { position: relative; flex: none; width: 295px; height: 457px; }
.pb-territoire-ardeche { position: absolute; inset: 0; width: 100%; height: 100%; }
.pb-territoire-zone { position: absolute; left: 85px; top: 89px; width: 262px; height: 255px; max-width: none; }
.pb-territoire-ville { position: absolute; left: 118px; top: 177px; padding: 4px 9px; background: #fff; box-shadow: 0 4px 4px rgba(0, 0, 0, .12); color: var(--dj-rouge); font-size: .875rem; font-weight: 400; line-height: 1.15; white-space: nowrap; }
.pb-territoire-ville::after { content: ""; position: absolute; left: 50%; top: 100%; width: 1px; height: 21px; background: var(--dj-rouge); box-shadow: 0 21px 0 3.5px var(--dj-rouge); border-radius: 50%; }
.pb-territoire-communes { flex: 1 1 auto; min-width: 0; padding: 18px 0 18px 36px; margin-left: 40px; border-left: 2px solid var(--dj-bordure); }
.pb-territoire-communes ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 13px; }
.pb-territoire-communes li { position: relative; padding-left: 20px; font-weight: 400; line-height: 1.2; }
.pb-territoire-communes li::before { content: ""; position: absolute; left: 0; top: 1px; width: 12px; height: 16px; background: url("assets/img/lieu.svg") center / contain no-repeat; }
.pb-territoire-mention { margin: 22px 0 0; font-size: .875rem; color: rgba(29, 29, 27, .5); }
@media (max-width: 767px) {
	.pb-territoire-bloc { flex-direction: column; align-items: flex-start; gap: 32px; }
	.pb-territoire-carte { width: 236px; height: 366px; align-self: center; }
	.pb-territoire-zone { left: 68px; top: 71px; width: 210px; height: 204px; }
	.pb-territoire-ville { left: 60px; top: 142px; }
	.pb-territoire-communes { margin-left: 0; padding: 0 0 0 20px; }
	.pb-territoire-communes ul { grid-template-columns: 1fr 1fr; gap: 12px 16px; }
}

/* ----------------------------------------------------------------- Avis */
.pb-avis-entete { position: relative; }
.pb-badge-google { position: absolute !important; right: 0; bottom: -6px; }
.pb-note-google .elementor-heading-title span { font-size: .8em; }
@media (max-width: 1200px) { .pb-badge-google { position: static !important; margin-top: 24px; } }
.pb-carte-avis { height: calc(100% - 15px); min-height: 201px; }
.pb-avis-bas { margin-bottom: -15px; padding-top: 12px; }
.pb-guillemet { display: block; width: 60px; height: 54px; background: var(--dj-rouge); position: relative; }
.pb-guillemet::before { content: "“"; position: absolute; left: 0; right: 0; top: 4px; color: #fff; font: 700 6.25rem/1 Georgia, "Times New Roman", serif; text-align: center; }
.pb-etoiles { padding-top: 6px; }
.pb-carrousel-avis .swiper { padding-bottom: 15px; }

/* ----------------------------------------------------------------- Bloc d'appel à l'action et pied de page */
.pb-cta-global { position: relative; }
.pb-cta-titre .elementor-heading-title { font-weight: 700; }
.pb-footer-main { position: relative; margin-top: 41px; background-image: url("assets/img/decor-footer.svg"); background-repeat: no-repeat; background-position: center top; background-size: 1405px auto; }
.pb-footer-main::before { content: ""; position: absolute; left: 0; right: 0; top: -41px; height: 41px; background: url("assets/img/bandeau-biais.svg") center / 100% 100% no-repeat; transform: scaleX(-1) rotate(180deg); pointer-events: none; }
.pb-footer-titre .elementor-heading-title { position: relative; padding-left: 34px; }
.pb-footer-titre .elementor-heading-title::before { content: ""; position: absolute; left: 0; top: .12em; width: 27px; height: 10px; background: linear-gradient(90deg, #fff 0 18px, transparent 18px 21.5px, #fff 21.5px 27px); }
.pb-footer-menu .elementor-nav-menu { display: grid; gap: 11px; }
.pb-footer-menu .elementor-nav-menu > li > a { position: relative; padding-left: 13px !important; transition: color .2s ease; }
.pb-footer-menu .elementor-nav-menu > li > a::before { content: "" !important; position: absolute !important; opacity: 1 !important; left: 0; top: .28em; width: 6px; height: 10px; background: #fff; }
.pb-footer-menu .sub-menu { position: static !important; padding: 8px 0 4px 23px !important; background: none !important; }
.pb-footer-menu .sub-menu a { padding: 3px 0 !important; font-size: .875rem; font-weight: 300; border: 0 !important; background: none !important; }
.pb-footer-menu .sub-arrow { padding: 0 0 0 8px; }
.pb-footer-menu a.highlighted .sub-arrow { transform: rotate(180deg); }
.pb-footer-contact .elementor-icon-list-icon { color: #fff; padding-top: 2px; }
.pb-footer-contact .elementor-icon-list-text br { display: inline; }
.pb-footer-logo img { background: #fff; transition: opacity .2s ease; }
.pb-footer-logo a:hover img { opacity: .85; }
.pb-footer-bas .elementor-heading-title a { color: inherit; transition: color .2s ease; }
.pb-footer-bas .elementor-heading-title a:hover { color: var(--dj-noir); }
.pb-copyright > .elementor-widget + .elementor-widget .elementor-heading-title::before { content: "|"; margin: 0 .35em; font-weight: 300; }
@media (max-width: 1024px) { .pb-copyright > .elementor-widget + .elementor-widget .elementor-heading-title::before { content: none; } }

/* ----------------------------------------------------------------- FAQ (accordéon imbriqué) */
.pb-faq .e-n-accordion { display: grid; gap: 8px; }
.pb-faq .e-n-accordion-item { border: 2px solid var(--dj-bordure); transition: background-color .25s ease, border-color .25s ease; }
.pb-faq .e-n-accordion-item-title { padding: 12px 14px !important; border: 0 !important; background: none !important; cursor: pointer; }
.pb-faq .e-n-accordion-item-title-text { font-size: 1rem; font-weight: 700; line-height: 1.3; color: var(--dj-noir); transition: color .25s ease; }
.pb-faq .e-n-accordion-item-title-icon svg { width: 11px; height: 11px; fill: var(--dj-noir); transition: fill .25s ease; }
.pb-faq .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: var(--dj-rouge); }
.pb-faq .e-n-accordion-item[open] { background: var(--dj-rouge); border-color: var(--dj-rouge); }
.pb-faq .e-n-accordion-item[open] .e-n-accordion-item-title-text { color: #fff; }
.pb-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg { fill: #fff; }
.pb-faq .e-n-accordion-item > .e-con { padding: 0 14px 14px !important; border: 0 !important; background: none !important; }

/* ----------------------------------------------------------------- Formulaires (libellés flottants du socle) */
.elementor-widget-form { --pb-form-etiquette-gauche: 12px; --pb-form-demi-gouttiere: 6px; --pb-form-rayon-fichier: 0px; }
.elementor-widget-form .elementor-field-textual { min-height: 51px; }
.elementor-widget-form .elementor-field-textual::placeholder { color: var(--dj-noir); opacity: 1; }

/* ----------------------------------------------------------------- Fil d'Ariane, galerie, pages de texte */
.pb-ariane { font-size: .875rem; font-weight: 400; }
.pb-ariane a { color: var(--dj-noir); transition: color .2s ease; }
.pb-ariane a:hover { color: var(--dj-rouge); }
.pb-ariane .separator { margin: 0 12px; color: var(--dj-rouge); }
.pb-ariane .last { color: var(--dj-rouge); font-weight: 700; }
.pb-texte-long h2 { margin: 2.2em 0 .7em; font-size: 1.5rem; font-weight: 700; line-height: 1.25; }
.pb-texte-long h3 { margin: 1.8em 0 .6em; font-size: 1.25rem; font-weight: 700; line-height: 1.25; }
.pb-texte-long p + p, .pb-texte-long ul + p, .pb-texte-long p + ul { margin-top: 1em; }
.pb-texte-long ul { padding-left: 1.2em; }
.pb-texte-long a { text-decoration: underline; }

/* ----------------------------------------------------------------- Ajustements après comparaison à la maquette */
.pb-bande-biais--inverse::after { transform: rotate(180deg) scaleX(-1); }
.pb-header .elementor-nav-menu--main .elementor-item.elementor-item-anchor.elementor-item-active:not(:hover) { color: var(--dj-noir) !important; }
.pb-header .pb-nav .sub-arrow svg { width: 12px; height: 12px; }
.pb-onglets .e-n-tab-title:not([aria-selected="true"]):not(:hover) .e-n-tab-title-text { color: rgba(29, 29, 27, .5) !important; }
.pb-onglets .e-n-tab-title:not([aria-selected="true"]):not(:hover) .e-n-tab-icon svg { fill: rgba(29, 29, 27, .5) !important; }
.pb-onglets .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text, .pb-onglets .e-n-tab-title:hover .e-n-tab-title-text { color: var(--dj-rouge) !important; }
.pb-onglets .e-n-tab-title[aria-selected="true"] .e-n-tab-icon svg, .pb-onglets .e-n-tab-title:hover .e-n-tab-icon svg { fill: var(--dj-rouge) !important; }
.pb-photo-bouton-btn { left: auto; right: -42px; }
@media (max-width: 1024px) { .pb-photo-bouton-btn { right: 0; bottom: 0; } }
.pb-footer-main .elementor-heading-title { white-space: nowrap; }
.pb-signature .elementor-heading-title, .pb-copyright-texte .elementor-heading-title { white-space: normal; }
.pb-bande-services { container-type: inline-size; }
.pb-bande-services .elementor-icon-list-items { width: 100%; justify-content: space-between !important; --dj-services-ecart: calc((100cqw - 706px) / 3); }
@media (max-width: 1024px) { .pb-bande-services .elementor-icon-list-items { justify-content: flex-start !important; } }
.pb-reseaux { flex: none; width: auto !important; }
.pb-carrousel-avis .swiper { padding-bottom: 20px; margin-bottom: -20px; }
.pb-carte-avis { height: auto; }
.pb-carrousel-avis .swiper-slide { height: auto; display: flex; }
.pb-carrousel-avis .swiper-slide > .e-con, .pb-carrousel-avis .e-loop-item > .e-con { height: auto; flex: 1; margin-bottom: 15px; }

/* ----------------------------------------------------------------- Réalisations, fiche, contact, pages de texte */
.pb-single-real-titre .elementor-heading-title { font-weight: 700; }
.pb-single-real-description p + p { margin-top: 1.4em; }
.pb-galerie .e-gallery-item { border-radius: 0; overflow: hidden; }
.pb-galerie .e-gallery-image { transition: transform .5s ease; }
.pb-galerie .e-gallery-item:hover .e-gallery-image { transform: scale(1.05); }
.pb-grille-real .elementor-button[role="button"] { margin-top: 24px; }
.pb-coordonnees .elementor-icon-list-icon { color: var(--dj-rouge); padding-top: 2px; }
.pb-coordonnees .elementor-icon-list-text br { display: inline; }
.pb-form-contact .elementor-button[type="submit"] { min-height: 54px; }
.pb-form-contact .elementor-button-icon svg { width: 11px; height: 16px; }
.pb-form-contact .elementor-field-type-acceptance { font-size: .875rem; }
.pb-reseaux-carres { justify-content: center; }
.pb-reseaux-carres .elementor-icon { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: var(--dj-rouge); transition: background-color .25s ease; }
.pb-reseaux-carres .elementor-icon:hover { background: var(--dj-noir); }
.pb-carte-google iframe { display: block; filter: none; }
.pb-section-carte + .elementor-location-footer, .pb-section-carte { margin-bottom: 0; }
.pb-plan-du-site a { color: var(--dj-noir); transition: color .2s ease; }
.pb-plan-du-site a:hover { color: var(--dj-rouge); }
/* Carrousel des réalisations : une carte garde sa largeur même s'il y en a moins que de colonnes. */
@media (min-width: 1025px) { .pb-carrousel-real .swiper-slide { max-width: calc((100% - 90px) / 4); } }
@media (min-width: 768px) and (max-width: 1024px) { .pb-carrousel-real .swiper-slide { max-width: calc((100% - 24px) / 2); } }
.pb-carrousel-nav .swiper-pagination-bullet:only-child { display: none; }
.pb-carrousel-nav:has(.swiper-wrapper > .swiper-slide:only-child) .elementor-swiper-button, .pb-carrousel-nav:has(.swiper-wrapper > .swiper-slide:only-child) .swiper-pagination { display: none !important; }
.pb-carrousel-nav.elementor-widget:has(.swiper-wrapper > .swiper-slide:only-child) { padding-bottom: 0 !important; }

@media (max-width: 767px) {
	.pb-onglets .e-n-tabs-heading { display: grid !important; grid-template-columns: 1fr 1fr; overflow: visible; border-bottom: 0; gap: 8px 0 !important; }
	.pb-onglets .e-n-tab-title { border-bottom: 2px solid var(--dj-bordure) !important; margin-bottom: 0; padding: 0 8px 12px !important; }
	.pb-onglets .e-n-tab-title[aria-selected="true"] { border-bottom-color: var(--dj-rouge) !important; }
	.pb-carrousel-avis .swiper { padding-bottom: 24px; }
}
