/*
Theme Name: BERRIAU Maçonnerie
Theme URI: https://maconnerie-berriau.fr
Author: The Fold communication
Author URI: https://thefoldcommunication.fr/
Description: Thème bloc sur mesure, sans constructeur de page. Reproduction fidèle de l'ancien site Divi, entièrement modifiable dans l'éditeur.
Version: 1.1.3
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: berriau
*/

:root {
  --bleu: #002973;
  --orange: #df7841;
  --texte: #666666;
  --gris: #efefef;
  --noir: #000000;
  --blanc: #ffffff;
  --open: "Open Sans", Arial, sans-serif;
  --roboto: Roboto, Helvetica, Arial, sans-serif;
  --entete: 80px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  padding-top: var(--entete);
  font: 500 14px/1.7 var(--open);
  color: var(--texte);
  background: var(--blanc);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, p { margin: 0; }
h1, h2, h3, h4 { padding-bottom: 10px; line-height: 1em; font-weight: 500; color: #333; }
p { padding-bottom: 1em; }
p:last-child { padding-bottom: 0; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
figure { margin: 0; }
b, strong { font-weight: 700; }

.wrap { width: 80%; max-width: 1080px; margin: 0 auto; }

/* ---------- En-tête ---------- */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  height: var(--entete);
  background: var(--blanc);
  box-shadow: 0 0 7px rgba(0, 0, 0, .1);
  transition: height .4s ease;
}
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; }
figure.logo img { height: 48px; width: auto; transition: height .4s ease; }

.site-header.reduit { height: 54px; }
.site-header.reduit figure.logo img { height: 36px; }

/* ---------- Boutons ---------- */
.lien-fleche > .wp-block-button__link {
  position: relative; display: inline-block;
  padding: 4.2px 28px 4.2px 9.8px;
  font: 500 14px/1.7 var(--roboto); letter-spacing: 2px; text-transform: uppercase;
  color: var(--orange);
}
.lien-fleche > .wp-block-button__link::after {
  content: ""; position: absolute; right: 14px; top: 50%;
  width: 5px; height: 5px; margin-top: -3px;
  border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(-45deg);
}
.bouton > .wp-block-button__link {
  display: inline-block; padding: 6px 20px; border-radius: 10px;
  font: 500 20px/1.7 var(--roboto); letter-spacing: 2px; text-transform: uppercase;
  transition: background .3s, color .3s;
}
.bouton-bleu > .wp-block-button__link { background: var(--bleu); color: var(--blanc); }
.bouton-bleu > .wp-block-button__link:hover { background: #0c3b8f; }
.bouton-blanc > .wp-block-button__link { background: var(--blanc); color: var(--bleu); }
.bouton-blanc > .wp-block-button__link:hover { background: rgba(255, 255, 255, .85); }

/* ---------- Titres de section ---------- */
.titre-section { font: 800 24px/1.8 var(--open); color: var(--bleu); padding-bottom: 10px; }
.intro-centre { text-align: center; }

/* ---------- Héros ---------- */
.hero {
  padding: 0 0 80px;
  color: var(--blanc);
}
.hero-devis { width: calc((100% - 40px) / 3); margin-left: auto; height: 230px; display: flex; flex-direction: column; }
.hero-devis-titre {
  padding: 40px 0 15px 40px; background: var(--bleu);
  font: 800 20px/23.8px var(--open); letter-spacing: 1px; text-transform: uppercase;
}
.hero-devis-cta { padding: 26px 40px; background: var(--bleu); }
.hero-devis-cta .lien-fleche > .wp-block-button__link { color: var(--blanc); font-weight: 700; }
.hero-devis-tel { text-align: right; }
.hero-devis-tel a {
  display: inline-block; padding: 20px; background: var(--blanc); color: var(--bleu);
  font: 700 16px/1.7 var(--roboto); letter-spacing: 1px; text-transform: uppercase;
}
.hero-titres { padding: 27px 0; }
.hero-titres h1 {
  max-width: 700px; color: var(--blanc);
  font: 800 60px/1.4 var(--open); text-transform: uppercase;
}
.hero-titres h2 { max-width: 700px; color: var(--blanc); font: 500 30px/1 var(--open); }
.hero-intro { padding: 27px 0; }
.hero-intro p { max-width: 700px; font-size: 20px; line-height: 2; }

/* ---------- Savoir-faire + prestations ---------- */
.prestations { padding: 0 0 50px; }
.savoir { display: flex; padding-bottom: 27px; }
.savoir-encart { align-self: flex-start; width: 720px; max-width: 66.666%; padding: 30px 50px; background: var(--gris); }
.savoir-encart h2 { font: 800 24px/1.8 var(--open); color: var(--bleu); }
.savoir-encart p { font-size: 18px; line-height: 23.8px; }
.savoir-label { flex: 1; display: flex; justify-content: center; padding-top: 15px; }
.savoir-label figure img { width: 205px; align-self: flex-start; }
.prestations .intro-centre { padding-top: 25px; }
.sous-titre { font-size: 20px; line-height: 23.8px; }

.cartes { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 60px; align-items: start; }
.cartes-prestations { margin: 40px auto; padding: 30px 0 26px; }
.carte { padding: 24px 0 0 24px; background: url("assets/img/Rectangle.png") 0 0 no-repeat; }
.carte h3 {
  font: 800 16px/1.7 var(--open); letter-spacing: .5px; text-transform: uppercase; color: var(--noir);
}
.carte p { font-size: 14px; line-height: 2; padding-bottom: 20px; }
.carte-lien { text-align: right; }

/* ---------- Mosaïque ---------- */
.mosaique {
  display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr;
  padding: 10px; grid-auto-flow: column;
}
.mosaique .m-grand { grid-row: span 2; }
.mosaique figure { padding: 10px; }
.mosaique figure img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; }

/* ---------- Pourquoi ---------- */
.pourquoi { padding: 50px 0 13px; }
.pourquoi .intro-centre { padding: 27px 0; }
.cartes-pourquoi { margin-top: 14px; padding: 30px 0 20px; }
.cartes-pourquoi .carte:last-child { padding-bottom: 14px; }

.realisations { padding: 29px 0 81px; text-align: center; }

/* ---------- Avis ---------- */
.avis { padding: 57px 0 81px; }
.avis-grille { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 60px; align-items: start; }
.avis .avis-item { margin: 0; text-align: center; }
.guillemet { display: block; padding-bottom: 0 !important; height: 50px; font: 800 100px/50px var(--open); color: var(--orange); }
.avis .avis-item p:not(.guillemet) { margin-top: 16px; font-size: 16px; line-height: 1.8; }

/* ---------- Appel ---------- */
.appel {
  display: grid; grid-template-columns: 2fr 1fr; color: var(--blanc);
}
.appel-gauche { background: rgba(0, 41, 115, .57); padding: 0 70px 80px; }
.appel-droite { background: rgba(0, 0, 0, .48); padding: 0 70px 85px; }
.appel-titre {
  padding: 100px 0 15px !important;
  font: 800 32px/1 var(--open); letter-spacing: 2px; text-transform: uppercase;
}
.appel-texte { font-size: 16px; line-height: 23.8px; padding-bottom: 44px !important; }

/* ---------- Fournisseurs ---------- */
.fournisseurs { padding: 54px 0; }
.fournisseurs .intro-centre { padding: 27px 0; }
.fournisseurs .titre-section { margin-bottom: 30px; }
.logos { width: 80%; max-width: 864px; margin: 0 auto; padding: 27px 0; display: grid; grid-template-columns: 1fr 1fr; }
.logos > * { display: flex; justify-content: center; align-items: flex-start; }

/* ---------- Zone ---------- */
.zone { position: relative; z-index: 1; background: var(--bleu); padding: 20px 0 0; margin-bottom: -27px; }
.zone .titre-section { color: var(--blanc); padding: 27px 0 64px; }
.zone p { color: var(--blanc); padding-bottom: 27px; }
.zone hr.wp-block-separator { opacity: 1; color: var(--blanc); border-bottom: 0; margin: 27px 0 0; height: 23px; border: 0; border-top: 1px solid var(--blanc); }

/* ---------- Pied de page ---------- */
.site-footer { background: var(--bleu); color: var(--blanc); }
.footer-cols { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 60px; padding: 64px 0 60px; text-align: center; }
.footer-cols h4 { font: 700 18px/1 var(--open); color: var(--blanc); }
.footer-cols p { line-height: 23.8px; }
.footer-cols figure img { margin: 0 auto; width: 70px; }
.footer-bas { background: rgba(0, 0, 0, .32); padding: 15px 0 5px; }
.footer-bas p { font-size: 11px; line-height: 23.8px; text-align: center; padding-bottom: 10px; }
.footer-bas a { font-weight: 700; }

/* ---------- Tablette et mobile (bascules Divi : 980 px et 767 px) ---------- */
@media (max-width: 980px) {
  figure.logo img { height: 43px; }
  .site-header.reduit figure.logo img { height: 43px; }

  .hero-devis { width: calc(100% - 40px); height: auto; }
  .hero-titres, .hero-intro { padding: 30px 0; }
  .hero-titres h1 { font-size: 24px; }
  .hero-intro p { font-size: 16px; }

  .savoir { flex-direction: column; padding-bottom: 0; }
  .savoir-encart { width: 100%; max-width: none; padding: 20px 10%; }
  .savoir-encart h2, .titre-section { font-size: 18px; }
  .savoir-label { padding-top: 13px; }
  .savoir-label figure img { width: 197px; }
  .cartes { grid-template-columns: 1fr 1fr; row-gap: 30px; }
  .cartes-prestations { padding-top: 30px; }

  .mosaique { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-flow: row; }
  .mosaique .m-grand { grid-row: auto; }

  .pourquoi { padding: 50px 0 0; }
  .pourquoi .intro-centre { padding: 30px 0; }
  .cartes-pourquoi { padding: 30px 0 13px; margin-top: 13px; }

  .realisations { padding: 32px 0 80px; }
  .realisations .bouton { width: 80%; } .realisations .bouton > .wp-block-button__link { width: 100%; }

  .avis { padding: 30px 0 80px; }
  .avis-grille { grid-template-columns: 1fr; row-gap: 31px; }

  .appel { grid-template-columns: 1fr; }
  .appel-gauche, .appel-droite { padding-bottom: 78px; }
  .appel-titre { font-size: 28px; }
  .appel-texte { padding: 15px 0 30px !important; }

  .fournisseurs { padding: 80px 0; }
  .fournisseurs .intro-centre { padding: 0; }
  .fournisseurs .titre-section { margin-bottom: 31px; }
  .logos { grid-template-columns: 1fr; row-gap: 60px; padding: 60px 0 0; width: 75%; }

  .zone .titre-section { padding: 30px 0 70px; }
  .zone p { padding-bottom: 30px; }
  .zone hr.wp-block-separator { opacity: 1; color: var(--blanc); border-bottom: 0; margin-top: 30px; }

  .footer-cols { grid-template-columns: 1fr 1fr; row-gap: 36px; padding: 37px 0 73px; }
}
@media (max-width: 767px) {
  .cartes, .footer-cols { grid-template-columns: 1fr; }
}
@media (min-width: 981px) {
  .appel { background-attachment: fixed; }
}

/* =====================================================================
   Pages internes
   ===================================================================== */
.centre { text-align: center; }
.hero-univers .hero-devis-cta .lien-fleche > .wp-block-button__link, .hero-prestation .hero-prestation-intro a { color: inherit; }

/* ---------- Bouton « Contactez-nous » ---------- */
.lien-bouton > .wp-block-button__link { background: var(--blanc); border-radius: 3px; }
.texte-centre { padding: 27px 0; text-align: center; }
.texte-centre p { font-size: 16px; line-height: 23.8px; padding-bottom: 16px; }
.texte-centre p:last-of-type { padding-bottom: 0; }
.texte-centre .centre { margin-top: 30px; }

/* ---------- Héros des pages univers ---------- */
.titre-geant {
  max-width: 700px; padding: 0 !important;
  font: 800 68px/2 var(--open); text-transform: uppercase; color: var(--blanc);
}
.hero-univers-titres { padding: 27px 0; }
.hero-univers-intro, .hero-prestation-intro { max-width: 700px; margin-top: 30px; }
.hero-univers-intro p, .hero-prestation-intro p { font-size: 20px; line-height: 2; color: var(--blanc); }
.hero-univers-intro a, .hero-prestation-intro a { color: var(--orange); }

/* ---------- Héros des pages de prestation ---------- */
.hero-prestation {
  padding: 80px 0 0; color: var(--blanc);
}
.hero-prestation-rangee { display: grid; grid-template-columns: 2fr 1fr; padding-top: 27px; }
.hero-prestation-texte { padding: 0 43px 80px 0; }
.hero-prestation .titre-geant { line-height: 1.5; }
.hero-prestation-intro { margin-top: 0; }
.atouts { margin: 0; padding: 40px; list-style: none; background: #f25b3a; }
.atouts li { display: flex; align-items: flex-start; gap: 15px; margin-bottom: 30px; }
.atouts svg { flex: 0 0 32px; width: 32px; height: 32px; color: var(--blanc); }
.atouts span { padding-bottom: 10px; font: 600 16px/1.8 var(--open); color: var(--blanc); }

/* ---------- Introduction des pages internes ---------- */
.encart-h1 h1 { font: 800 24px/1.8 var(--open); color: var(--bleu); }
.encart-h1 p { font-size: 18px; line-height: 23.8px; }
.intro-page .savoir { padding-bottom: 27px; }
.intro-page .savoir-encart { min-height: 100px; }
.grande-image { padding: 27px 0; }
.grande-image figure img { width: 100%; }

/* ---------- Cartes des pages univers ---------- */
.prestations-univers { padding: 0 0 54px; }
.prestations-univers .intro-centre { padding: 60px 0 25px; }
.prestations-univers .sous-titre { font-size: 18px; }
.cartes-univers { grid-template-columns: repeat(var(--n), 1fr); padding: 30px 0 25px; }

/* ---------- Bande de photos ---------- */
.bande-photos { display: grid; grid-template-columns: repeat(var(--n), 1fr); padding: 10px; }
.bande-photos figure { padding: 10px; }
.bande-photos figure img { width: 100%; aspect-ratio: 1; object-fit: cover; }

/* ---------- Blocs image + texte ---------- */
.bloc { padding: 54px 0; }
.bloc-gris { background: #f9f9f9; }
.bloc > .wrap:first-child { padding: 27px 0; }
.titre-carre { padding: 24px 0 0 24px; background: url("assets/img/Rectangle.png") 0 0 no-repeat; }
.titre-carre h2 {
  font: 800 16px/1.7 var(--open); letter-spacing: .5px; text-transform: uppercase; color: #333;
}
.bloc-rangee { display: grid; grid-template-columns: 320px 1fr; column-gap: 60px; align-items: center; padding: 27px 0; }
.bloc-texte-dabord .bloc-rangee { grid-template-columns: 700px 320px; }
figure.bloc-image img { width: 320px; aspect-ratio: 1; object-fit: cover; }
.bloc-texte { max-width: 600px; }
.bloc-texte p { font-size: 16px; line-height: 1.8; padding-bottom: 16px; }
.bloc-texte p:last-child { padding-bottom: 0; }
.bloc-texte a { color: var(--orange); }

/* ---------- Bandeau et en-tête de page ---------- */
.bandeau { height: 230px; }
.entete-page { padding: 50px 0; }
.entete-titre { padding: 50px 0; text-align: center; }
.entete-titre h1 { font: 800 24px/1.8 var(--open); color: var(--bleu); }
.entete-texte { padding: 50px 0; text-align: center; }
.entete-texte a { color: var(--orange); }
.entete-contact { padding-bottom: 0; }
.entete-contact .entete-texte { padding: 25.7px 0 50px; }

/* ---------- Photos ---------- */
.sommaire .wrap { padding: 27px 0; }
.sommaire-boite { padding: 24px 0; background: #f9f9f9; text-align: center; }
.sommaire-boite a { color: var(--orange); }
.galerie { padding: 54px 0 0; scroll-margin-top: 54px; }
.galerie > .wrap { padding: 27px 0; }
.galerie .titre-carre { margin-bottom: 30px; }
.galerie-grille { display: grid; grid-template-columns: repeat(4, 1fr); gap: 60px; }
.galerie-grille figure { min-height: 213px; }
.galerie-grille figure img { width: 100%; transition: opacity .3s; }
@media (min-width: 981px) { .galerie-grille figure img { aspect-ratio: 400 / 284; object-fit: cover; } }
.galerie-grille figure a:hover img { opacity: .85; }

/* ---------- Contact ---------- */
.contact { padding: 0 0 50px; }
.contact-rangee { display: grid; grid-template-columns: 396px 1fr; column-gap: 60px; align-items: center; padding: 50px 0; }
.coords { margin-top: 50px; padding: 110px 0 110px 50px; background: #f2f2f2; }
.coord { display: flex; align-items: flex-start; }
.coord + .coord { margin-top: 100px; }
.coord-icone {
  flex: 0 0 46px; width: 46px; height: 46px; padding: 8px; margin-right: 15px;
  border-radius: 50%; background: var(--bleu); color: var(--blanc);
}
.coord-icone svg { display: block; width: 30px; height: 30px; }
.coord h2 { font: 500 34px/1 var(--open); color: var(--bleu); }
.wpcf7-form p { padding-bottom: 14px; margin-bottom: -1px; }
.wpcf7-form input[type=text], .wpcf7-form input[type=email], .wpcf7-form textarea {
  width: 100%; padding: 17px 19px; border: 1px solid #ededed; background: var(--blanc);
  font: 400 14px/17px var(--open); color: #828282;
}
.wpcf7-form textarea { height: 206px; resize: vertical; display: block; }
.wpcf7-form .acceptation label { display: block; padding-left: 14px; }
.wpcf7-form .acceptation a { color: var(--orange); }
.wpcf7-form input[type=checkbox] { margin: 3px 3px 3px 4px; }
.wpcf7-submit {
  margin-top: 5px; height: 51px; padding: 0 54px; border: 1px solid #ededed; background: var(--blanc);
  font: 700 12px/51px var(--open); text-transform: uppercase; color: #303030; cursor: pointer;
}
figure.plein-cadre img { width: 100%; }

/* ---------- Actualités ---------- */
.blog { padding: 0 0 51.4px; }
.blog > .wrap { padding-bottom: 25.7px; }
.blog-grille { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 60px; grid-auto-rows: 1px; align-items: start; }
.carte-article { padding: 19px; margin-bottom: 0; border: 1px solid #d8d8d8; background: var(--blanc); }
.carte-article-image { display: block; margin: -19px -19px 30px; }
.carte-article-image img { width: 100%; aspect-ratio: 8 / 5; object-fit: cover; }
.carte-article h2 { font: 500 18px/1 var(--open); color: #333; }
.carte-article h2 a:hover, .lire-plus:hover { opacity: .8; }
.lire-plus { color: var(--orange); }
.pagination { display: flex; justify-content: space-between; line-height: 24px; }
.pagination a { color: var(--texte); }

/* ---------- Article ---------- */
.article { padding-top: 58px; }
.article > .wrap { padding-bottom: 23px; }
.article-titre { font: 500 30px/1 var(--open); color: #333; }
.article-meta { padding-bottom: 15px !important; margin-bottom: 6px; }
.article-meta a { color: var(--texte); }
.article-une { width: 100%; }
.article-contenu { padding-top: 54px; }
.bloc-article { margin-bottom: 30px; }
.bloc-article h2 { font: 500 26px/1 var(--open); color: var(--bleu); }
.bloc-article h3 { font: 500 22px/1 var(--open); color: var(--orange); }
.bloc-article ul { margin: 0; padding: 0 0 23px 14px; line-height: 26px; }
.bloc-article a { color: var(--orange); }
.bloc-article figure img { width: 100%; }
.commentaires { padding-top: 75px; margin-bottom: 60px; }
.commentaires h3 { font: 500 22px/1 var(--open); color: #333; }
.commentaires-note { font-size: 12px; }
.commentaires form { display: grid; gap: 14px; }
.commentaires textarea, .commentaires input[type=text], .commentaires input[type=email], .commentaires input[type=url] {
  padding: 12px; border: 0; background: #eee; font: 500 14px/1.7 var(--open); color: #999;
}
.commentaires input:not([type=submit]) { width: 50%; }
.commentaires-envoi { text-align: right; }
.commentaires-envoi input {
  padding: 6px 20px; border: 2px solid #2ea3f2; border-radius: 3px; background: none;
  font: 500 18px/1.7 var(--open); color: #2ea3f2; cursor: pointer;
}

/* ---------- Pages légales ---------- */
.legal { padding: 54px 0; }
.legal > .wrap { padding: 27px 0; }
.legal-titre { text-align: center; margin-bottom: 30px; }
.legal-titre h1 { font: 800 24px/1.8 var(--open); color: var(--bleu); }
.legal-texte h2 { font: 800 16px/1.7 var(--open); color: #333; }
.legal-texte p { font-size: 16px; line-height: 2; padding-bottom: 16px; }
.legal-texte a { color: var(--orange); }

@media (max-width: 980px) {
  .titre-geant { font-size: 40px; line-height: 1.4 !important; }
  .hero-prestation-rangee, .bloc-rangee, .bloc-texte-dabord .bloc-rangee, .contact-rangee { grid-template-columns: 1fr; row-gap: 30px; }
  .hero-prestation-texte { padding: 0 0 40px; }
  .bloc-texte-dabord .bloc-image { order: 2; }
  figure.bloc-image img { width: 100%; }
  .bande-photos { grid-template-columns: 1fr 1fr; }
  .galerie-grille { grid-template-columns: repeat(2, 1fr); gap: 30px; }
  .galerie-grille figure { height: auto; }
  .blog-grille { grid-template-columns: 1fr 1fr; }
  .coords { margin-top: 0; padding: 50px 30px; }
  .coord + .coord { margin-top: 50px; }
  .commentaires input:not([type=submit]) { width: 100%; }
}
@media (max-width: 767px) {
  .titre-geant { font-size: 28px; }
  .bande-photos { grid-template-columns: 1fr; }
  .cartes-univers { grid-template-columns: 1fr; }
  .galerie-grille, .blog-grille { grid-template-columns: 1fr; }
  .coord h2 { font-size: 26px; }
}

/* ---------- Ajustements mesurés (porte 4) ---------- */
.appel-texte { padding: 15px 0 29px !important; }
.grande-image figure img { width: auto; max-width: 100%; }
.cartes-univers { margin-top: 40px; }
.galerie .titre-carre h2 { letter-spacing: normal; }
.galerie-grille figcaption { margin-top: 5.6px; font-size: 14px; line-height: 23.8px; }
.legal-texte h2 { letter-spacing: .5px; }
.carte-article p { padding-bottom: 0; }
.blog-grille { margin-bottom: -30px; }
.wpcf7-form .acceptation { padding-top: 24px; }
.article-une { display: block; }
.article-contenu { padding-top: 0; }
.bloc-article { margin-bottom: 0; }
.colonnes-article { display: grid; grid-template-columns: 1fr 1fr; column-gap: 60px; align-items: start; }
.commentaires { margin-bottom: 0; padding-bottom: 60px; }
@media (max-width: 767px) { .colonnes-article { grid-template-columns: 1fr; } }
.cartes-univers { margin: 40px auto; }
.wpcf7-form p:last-child { padding-bottom: 0; }
.galerie-derniere { padding-bottom: 140px; }
.article-une { object-fit: cover; }
.bloc-article figure img { width: auto; max-width: 100%; }
.bloc-article.pleine-largeur figure img { width: 100%; }
.commentaires { padding: 92px 0 0; margin-bottom: 108px; }
.commentaires h3 { padding-bottom: 10px; }
.commentaires-note { font-size: 14px; padding-bottom: 14px !important; }
.commentaires form { display: block; padding-bottom: 50px; }
.commentaires textarea, .commentaires input[type=text], .commentaires input[type=email], .commentaires input[type=url] {
  display: block; width: 100%; padding: 12px; font: 400 18px/18px var(--open);
}
.commentaires textarea { height: 168px; }
.commentaires input:not([type=submit]) { width: 508px; max-width: 100%; height: 48px; margin-top: 14px; }
.commentaires textarea + input { margin-top: 21px !important; }
.commentaires-envoi { margin-top: 14px; padding-bottom: 14px !important; }
.commentaires-envoi input {
  height: 50px; padding: 6px 20px; border: 2px solid #0c71c3; color: #0c71c3; font: 500 20px/34px var(--open);
}
.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }
.is-style-justifie { text-align: justify; }
.bloc-article p { padding-bottom: 1em; }
.bloc-article p:last-of-type { padding-bottom: 0; }
/* Sur les articles, le site d'origine ne charge pas la graisse 500 : le texte y est rendu en 400 */
.single-post, .single-post .article h1, .single-post .bloc-article h2, .single-post .bloc-article h3,
.single-post .commentaires h3, .single-post .footer-cols p, .single-post .footer-bas p { font-weight: 400; }
main ul { margin: 0; padding: 0 0 23px 1em; line-height: 26px; }
.article-colonne { min-width: 0; }
.avec-barre > .wrap { display: grid; grid-template-columns: 1fr 225px; position: relative; }
.avec-barre > .wrap::before { content: ""; position: absolute; top: -58px; bottom: 0; left: calc(100% - 225px); width: 1px; background: #e2e2e2; }
.avec-barre .article-colonne { padding-right: 60px; }
.barre { padding-left: 30px; }
.barre .widget { margin-bottom: 30px; }
.barre h4 { font: 500 18px/1 var(--open); color: #333; }
.barre ul { padding: 0; list-style: none; line-height: 1.7; }
.barre li { margin-bottom: 7px; font-size: 14px; }
.barre a { color: var(--texte); }
@media (max-width: 980px) {
  .avec-barre > .wrap { grid-template-columns: 1fr; }
  .avec-barre > .wrap::before { display: none; }
  .avec-barre .article-colonne { padding-right: 0; }
  .barre { padding-left: 0; }
}
.bloc-texte { font-size: 16px; }
.legal-texte p:last-of-type { padding-bottom: 0; }
.barre { text-align: center; }
.commentaires { margin-bottom: 86px; }
.bloc-texte p:last-of-type, .texte-centre p:last-of-type, .entete-texte p:last-of-type { padding-bottom: 0; }
main ul { padding-bottom: 1em; }
.bloc-article ul { padding-bottom: 23px; }
.legal-texte { font-size: 16px; }
.avec-barre .commentaires input:not([type=submit]) { width: 642px; }
main p, main li { overflow-wrap: anywhere; }

/* =====================================================================
   Mobile des pages internes — valeurs relevées sur Divi à 390 px
   ===================================================================== */
@media (max-width: 980px) {
  /* rangées Divi : 27 px → 30 px ; sections : 54 px → 50 px */
  .texte-centre, .bloc > .wrap:first-child, .bloc-rangee, .grande-image, .galerie > .wrap,
  .sommaire .wrap, .legal > .wrap, .hero-univers-titres { padding-top: 30px; padding-bottom: 30px; }
  .bloc, .legal { padding-top: 50px; padding-bottom: 50px; }
  .galerie { padding-top: 50px; }

  /* héros */
  .titre-geant { font-size: 24px; line-height: 2 !important; }
  .hero-prestation .titre-geant { line-height: 1.5 !important; }
  .hero-univers-intro p, .hero-prestation-intro p { font-size: 16px; }
  .hero-prestation-rangee { padding-top: 27px; row-gap: 0; }
  .hero-prestation-texte { padding: 0 4% 40px 0; }

  /* introduction */
  .intro-page .savoir { padding-bottom: 27px; }
  .intro-page .savoir-encart { min-height: 0; padding: 20px 10%; }

  /* cartes des pages univers */
  .prestations-univers .intro-centre { padding: 60px 0 25px; }
  .cartes-univers { margin: 40px auto; padding: 30px 0 25px; grid-template-columns: 1fr; row-gap: 30px; }

  /* blocs image + texte */
  .bloc-rangee, .bloc-texte-dabord .bloc-rangee { grid-template-columns: 1fr; row-gap: 0; }
  .bloc-image { margin-bottom: 30px; }
  .bloc-texte-dabord .bloc-image { margin: 1px 0 0; }
  .bloc-texte { max-width: none; }

  /* galeries photos */
  .galerie-grille { grid-template-columns: 1fr; gap: 35.875px; }
  .galerie-derniere { padding-bottom: 70px; }
  .entete-titre, .entete-texte { padding: 50px 0; }
}
@media (max-width: 767px) {
  .bande-photos { grid-template-columns: 1fr; }
}
@media (max-width: 980px) {
  .galerie-grille figure img { height: auto; }
  .galerie-grille figure { min-height: 0; }
}
.bloc-article, .colonnes-article, .commentaires { margin-top: var(--mt, 0); }
@media (max-width: 980px) {
  .bloc-article, .colonnes-article, .commentaires { margin-top: var(--mtm, var(--mt, 0)); }
  .colonnes-article { display: block; }
  /* titres d'article réduits par Divi sur mobile */
  .bloc-article h2 { font-size: 16px; padding-bottom: 0; }
  .carte-article h2 { font-size: 16px; }
  .carte-article-image img { aspect-ratio: auto; }
  .commentaires input:not([type=submit]), .avec-barre .commentaires input:not([type=submit]) { width: 100%; }
  /* contact */
  .contact-rangee { row-gap: 51px; }
  .coords { margin-top: 0; padding: 110px 0 110px 50px; }
  .coord + .coord { margin-top: 100px; }
  .coord h2 { font-size: 34px; }
  /* galeries : marge sous chaque photo, dernière comprise */
  .galerie-grille { gap: 0; }
  .galerie-grille figure { margin-bottom: 35.875px; }
  .galerie-grille figcaption { margin-top: 0; }
  .legal-titre { margin-bottom: 33px; }
}
@media (max-width: 767px) { .coord h2 { font-size: 34px; } }
.legal-maj h2 { text-transform: uppercase; }
@media (max-width: 980px) {
  .commentaires { margin-bottom: 45px; }
  .galerie-derniere { padding-bottom: 22px; }
  .blog-grille { display: block; margin-bottom: 0; }
  .carte-article { margin-bottom: 35.875px; }
  .carte-article h2 { padding-bottom: 0; }
  .vignette-recadree img { aspect-ratio: 8 / 5; }
}
@media (min-width: 981px) { .article-une { aspect-ratio: var(--ratio); } }
@media (max-width: 980px) { .carte-article-image img { aspect-ratio: var(--ratio-m, auto); } }
@media (max-width: 980px) { .avec-barre .barre { padding-top: 20px; } }

/* =====================================================================
   Blocs Gutenberg — adaptations du balisage natif
   Rappel : le CSS des blocs est imprimé APRÈS cette feuille ; toute
   surcharge doit être plus spécifique, pas seulement plus tardive.
   ===================================================================== */
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
figure.wp-block-image { margin: 0; }
img { height: auto; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

/* Voile des héros et bandeaux : l'image de fond est réglée dans l'éditeur (Arrière-plan du groupe) */
.hero, .bandeau { position: relative; isolation: isolate; background-size: cover; background-position: center; background-repeat: no-repeat; }
.hero::before, .bandeau::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(circle at 100% 0%, #210b00 10%, rgba(33, 25, 21, 0) 100%);
}
.appel { background-size: cover; background-position: center top; background-repeat: no-repeat; }

/* Conteneurs de boutons : flux simple, alignement par le texte */
.wp-block-buttons.hero-devis-cta, .wp-block-buttons.hero-devis-tel, .wp-block-buttons.carte-lien,
.wp-block-buttons.centre, .wp-block-buttons.appel-bouton { display: block; }
.wp-block-buttons.hero-devis-tel, .wp-block-buttons.carte-lien { text-align: right; }
.wp-block-buttons.centre { text-align: center; }
.wp-block-buttons > .wp-block-button { display: inline-block; margin: 0; }
.wp-block-button .wp-block-button__link { border-radius: 0; text-align: left; }
.bouton.wp-block-button .wp-block-button__link { border-radius: 10px; }
.lien-bouton.wp-block-button .wp-block-button__link { border-radius: 3px; }
.hero-devis-tel .wp-block-button__link { display: inline-block; }

/* ---------- En-tête : core/navigation ---------- */
.header-inner { display: flex; align-items: center; justify-content: space-between; }
.site-header figure.logo { flex: 0 0 auto; }
.site-header figure.logo img { height: 48px; width: auto; transition: height .4s ease; }
.site-header.reduit figure.logo img { height: 36px; }
.site-header .nav { font: 600 14px/1 var(--open); }
.site-header .nav .wp-block-navigation-item__content { color: rgba(0, 0, 0, .6); transition: opacity .4s; }
.site-header .nav .wp-block-navigation-item__content:hover { opacity: .7; }
.site-header .nav .current-menu-item > .wp-block-navigation-item__content,
.site-header .nav .actif > .wp-block-navigation-item__content { color: #0c71c3; }
.site-header .nav .wp-block-navigation__responsive-container-open { color: var(--bleu); }
@media (min-width: 981px) {
  .site-header .nav .wp-block-navigation__responsive-container-open,
  .site-header .nav .wp-block-navigation__responsive-container-close { display: none; }
  .site-header .nav .wp-block-navigation__responsive-container.hidden-by-default:not(.is-menu-open) {
    display: block; position: static; inset: auto; width: auto; height: auto; padding: 0; background: none; z-index: auto; overflow: visible;
  }
  .site-header .nav .wp-block-navigation__responsive-close,
  .site-header .nav .wp-block-navigation__responsive-dialog,
  .site-header .nav .wp-block-navigation__responsive-container-content { display: block; padding: 0; margin: 0; }
  .site-header .nav ul.wp-block-navigation__container { display: flex; flex-direction: row; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
  .site-header .nav .wp-block-navigation__container > li { position: relative; padding-right: 22px; }
  .site-header .nav .wp-block-navigation__container > li:last-child { padding-right: 0; }
  .site-header .nav .wp-block-navigation__container > li > .wp-block-navigation-item__content { display: block; padding: 33px 0; transition: padding .4s; }
  .site-header.reduit .nav .wp-block-navigation__container > li > .wp-block-navigation-item__content { padding: 20px 0; }
  .site-header .nav .wp-block-navigation__container > li.has-child > .wp-block-navigation-item__content { padding-right: 20px; }
  .site-header .nav .wp-block-navigation__submenu-icon {
    position: absolute; right: 22px; top: 50%; width: 10px; height: 10px; margin: -5px 0 0; padding: 0;
    color: rgba(0, 0, 0, .6); background: none; border: 0; pointer-events: none;
  }
  .site-header .nav .wp-block-navigation__submenu-icon svg { width: 10px; height: 10px; stroke-width: 1.5; }
  .site-header .nav .wp-block-navigation__submenu-container {
    top: 100%; left: 0; padding: 20px 0 !important; background: var(--blanc) !important; border: 0 !important;
    border-top: 3px solid #0c71c3 !important; box-shadow: 0 2px 5px rgba(0, 0, 0, .1);
  }
  .site-header .nav .has-child:hover > .wp-block-navigation__submenu-container,
  .site-header .nav .has-child:focus-within > .wp-block-navigation__submenu-container { width: 240px; min-width: 240px; }
  .site-header .nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: block; padding: 6px 20px; line-height: 1.7; }
}
@media (max-width: 980px) {
  .site-header figure.logo img, .site-header.reduit figure.logo img { height: 43px; }
  .site-header .nav .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed; top: 80px; left: 0; right: 0; bottom: auto; max-height: calc(100vh - 80px); overflow: auto;
    padding: 5% 10%; background: var(--blanc) !important; color: inherit !important;
    border-top: 3px solid #0c71c3; box-shadow: 0 2px 5px rgba(0, 0, 0, .1);
  }
  .admin-bar .site-header .nav .wp-block-navigation__responsive-container.is-menu-open { top: 112px; }
  .site-header .nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0; }
  .site-header .nav .is-menu-open .wp-block-navigation-item { width: 100%; }
  .site-header .nav .is-menu-open .wp-block-navigation-item__content { display: block; width: 100%; padding: 10px 5%; border-bottom: 1px solid rgba(0, 0, 0, .03); }
  .site-header .nav .is-menu-open .wp-block-navigation__submenu-container { padding: 0 0 0 20px !important; }
  .site-header .nav .is-menu-open .wp-block-navigation__responsive-container-close { top: -50px; color: var(--bleu); }
}

/* ---------- Atouts des pages de prestation : liste à icônes ---------- */
ul.atouts { padding: 40px; margin: 0; list-style: none; background: #f25b3a; }
ul.atouts li {
  position: relative; display: block; min-height: 39px; margin-bottom: 30px; padding: 0 0 10px 47px;
  font: 600 16px/1.8 var(--open); color: var(--blanc);
}
ul.atouts li::before {
  content: ""; position: absolute; left: 0; top: 0; width: 32px; height: 32px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='16' fill='%23fff'/%3E%3Cpath d='M9 16.5l5 5 9-10' fill='none' stroke='%23f25b3a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- Coordonnées de la page Contact ---------- */
.coord { display: grid; grid-template-columns: 46px 1fr; column-gap: 15px; align-items: start; }
.coord::before {
  content: ""; grid-row: 1 / span 9; width: 46px; height: 46px; border-radius: 50%;
  background: var(--bleu) center / 30px 30px no-repeat;
}
.coord > * { grid-column: 2; }
.coord-lieu::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M15 2a10 10 0 0 0-10 10c0 7.5 10 16 10 16s10-8.5 10-16A10 10 0 0 0 15 2zm0 14a4 4 0 1 1 0-8 4 4 0 0 1 0 8z' fill='%23fff'/%3E%3C/svg%3E"); }
.coord-tel::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M8.6 3.5l3.6 5.2-2.4 3.1c1.6 3.4 4.4 6.2 7.8 7.8l3.1-2.4 5.2 3.6-2 5c-11.5.3-20.3-8.5-20.3-20.3z' fill='%23fff'/%3E%3C/svg%3E"); }

/* ---------- Contact Form 7 (formulaire existant, inchangé) ---------- */
.wpcf7-form .wpcf7-list-item { margin: 0; }
.wpcf7-form .wpcf7-acceptance a { color: var(--orange); }
.wpcf7-form .wpcf7-spinner { display: none; }
.wpcf7-not-valid-tip { color: #c0392b; font-size: 13px; }
.wpcf7 form .wpcf7-response-output { margin: 10px 0 0; padding: 10px 14px; border: 1px solid #ededed; }

/* ---------- Commentaires (formulaire WordPress) ---------- */
.commentaires .comment-respond { margin: 0; }
.commentaires #reply-title { font: 500 22px/1 var(--open); color: #333; padding-bottom: 10px; margin: 0; }
.commentaires #reply-title small { display: none; }
.commentaires form p { margin: 0; padding: 0; }
.commentaires .comment-notes { font-size: 14px; padding-bottom: 14px !important; }
.commentaires #commentform { padding-bottom: 50px; }
.commentaires #comment, .commentaires #author, .commentaires #email, .commentaires #url {
  display: block; width: 100%; padding: 12px; border: 0; border-radius: 0; background: #eee;
  font: 400 18px/18px var(--open); color: #999;
}
.commentaires #comment { height: 168px; }
.commentaires #author, .commentaires #email, .commentaires #url { width: 508px; max-width: 100%; height: 48px; margin-top: 14px; }
.commentaires #author { margin-top: 21px; }
.avec-barre .commentaires #author, .avec-barre .commentaires #email, .avec-barre .commentaires #url { width: 642px; }
.commentaires .form-submit { margin-top: 14px !important; padding-bottom: 14px !important; text-align: right; }
.commentaires #submit {
  height: 50px; padding: 6px 20px; border: 2px solid #0c71c3; border-radius: 3px; background: none;
  font: 500 20px/34px var(--open); color: #0c71c3; cursor: pointer;
}
@media (max-width: 980px) {
  .commentaires #author, .commentaires #email, .commentaires #url,
  .avec-barre .commentaires #author, .avec-barre .commentaires #email, .avec-barre .commentaires #url { width: 100%; }
}

/* ---------- Actualités : boucle de requête ---------- */
ul.blog-grille.wp-block-post-template { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 60px; grid-auto-rows: 1px; align-items: start; margin: 0 0 -30px; padding: 0; }
.blog-grille > li { padding: 19px; margin: 0; border: 1px solid #d8d8d8; background: var(--blanc); }
.blog-grille .carte-article-image { display: block; margin: -19px -19px 30px; }
.blog-grille .carte-article-image img { width: 100%; aspect-ratio: 8 / 5; object-fit: cover; }
.blog-grille .wp-block-post-title { font: 500 18px/1 var(--open); color: #333; padding-bottom: 10px; margin: 0; }
.blog-grille .wp-block-post-title a:hover, .blog-grille .wp-block-post-excerpt__more-link:hover { opacity: .8; }
.blog-grille .wp-block-post-excerpt { margin: 0; }
.blog-grille .wp-block-post-excerpt__excerpt { margin: 0; padding: 0; }
.blog-grille .wp-block-post-excerpt__more-text { margin: 0; padding: 0; }
.blog-grille .wp-block-post-excerpt__more-link { color: var(--orange); }
.blog-requete .wp-block-query-pagination { display: flex; justify-content: space-between; margin: 0; line-height: 24px; }
.blog-requete .wp-block-query-pagination a { color: var(--texte); }
.blog-requete .wp-block-query-pagination-previous { margin-left: auto; }
@media (max-width: 980px) {
  ul.blog-grille.wp-block-post-template { display: block; margin-bottom: 0; }
  .blog-grille > li { margin-bottom: 35.875px; }
  .blog-grille .wp-block-post-title { font-size: 16px; padding-bottom: 0; }
}

/* ---------- Article ---------- */
.article-meta { padding-bottom: 15px; margin-bottom: 6px; }
.article-meta > * { display: inline; margin: 0; padding: 0 !important; }
.article-meta a { color: var(--texte); }
.article-une img { display: block; width: 100%; object-fit: cover; }
.barre .wp-block-latest-posts, .barre .wp-block-archives, .barre .wp-block-categories { padding: 0; margin: 0; list-style: none; line-height: 1.7; }
.avec-barre .barre { min-width: 0; }

/* Nombre de colonnes (remplace les variables --n de la maquette) */
.bande-photos { grid-template-columns: repeat(4, 1fr); }
.bande-photos.bande-3 { grid-template-columns: repeat(3, 1fr); }
.bande-photos.bande-2 { grid-template-columns: repeat(2, 1fr); }
.cartes-univers.cartes-2 { grid-template-columns: repeat(2, 1fr); }
.cartes-univers.cartes-3 { grid-template-columns: repeat(3, 1fr); }
.cartes-univers.cartes-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px) {
  .bande-photos, .bande-photos.bande-3, .bande-photos.bande-2 { grid-template-columns: 1fr 1fr; }
  .cartes-univers.cartes-2, .cartes-univers.cartes-3, .cartes-univers.cartes-4 { grid-template-columns: 1fr; }
  .zone hr.wp-block-separator { width: 100%; }
}
@media (max-width: 767px) { .bande-photos, .bande-photos.bande-3, .bande-photos.bande-2 { grid-template-columns: 1fr; } }
.zone hr.wp-block-separator { width: 100%; max-width: none; }
.wp-block-navigation .wp-block-navigation__container { gap: 0; }

/* WordPress ajoute une marge entre en-tête, contenu et pied, et un padding aux groupes à fond */
.wp-site-blocks > * { margin-block: 0; }
.appel.has-background, .bandeau.has-background { padding: 0; }
.footer-cols figure.facebook img { display: block; margin: 0 auto; }
p.sommaire-boite { padding: 24px 0 !important; }
.galerie-grille figure figcaption { margin: 5.6px 0 0; font-size: 14px; line-height: 23.8px; }
@media (max-width: 980px) { .galerie-grille figure figcaption { margin-top: 0; } }
.contact .formulaire .wpcf7 { margin: 0 !important; }
.wpcf7-form p:last-of-type { padding-bottom: 0; }
.footer-cols figure.facebook a { display: block; }
.blog-grille .wp-block-post-title a { display: inline; }
.blog-grille .wp-block-post-excerpt__excerpt { font-size: 14px; line-height: 23.8px; }
.blog-grille .wp-block-post-excerpt__more-text { font-size: 14px; line-height: 23.8px; }
@media (max-width: 980px) {
  .bloc-rangee figure.bloc-image { margin: 0 0 30px; }
  .bloc-texte-dabord .bloc-rangee figure.bloc-image { margin: 1px 0 0; }
  .galerie-grille figure.wp-block-image { margin: 0 0 35.875px; }
}
/* Titre à carré suivi d'une ligne en petites capitales (pages Couverture/Toiture, Enduit, Création d'ouvertures) */
.titre-carre h2.titre-avec-sous { padding-bottom: 0; }
.titre-carre p.sous-titre-carre {
  padding-bottom: 10px !important; font: 700 13px/27.2px var(--open); letter-spacing: .5px; text-transform: uppercase; color: #333;
}
.titre-carre p.sous-titre-seul { padding-bottom: 10px !important; }
.bloc-article .wp-block-spacer { margin: 0; }
