:root {
  --navy:#0b3b64; --blue:#145d91; --red:#d5112c; --ink:#17324a;
  --muted:#607589; --mist:#f3f7fa; --line:#d9e4ec; --white:#fff;
  --shadow:0 18px 50px rgba(11,59,100,.1); --radius:8px;
  --container:min(1200px, calc(100% - 48px));
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
/* Couleur, police et interligne du texte : theme.json + Styles > Typographie > Texte (ne pas les redéfinir ici). */
body { margin:0; }
img { display:block; max-width:100%; }
a { color:inherit; }
h1,h2,h3 { color:var(--navy); line-height:1.08; margin-top:0; }
h1 { font-size:clamp(2.7rem,5.8vw,5.35rem); letter-spacing:-.045em; }
h2 { font-size:clamp(2rem,3.4vw,3.15rem); letter-spacing:-.025em; }
h3 { font-size:1.22rem; }
p { margin-top:0; }
.container { margin-inline:auto; width:var(--container); }
.sr-only { clip:rect(0 0 0 0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
.topbar { background:var(--navy); color:var(--white); font-size:.78rem; padding:.44rem 0; }
.topbar__inner { display:flex; justify-content:space-between; }
.topbar a { text-decoration:none; }
.site-header { background:var(--white); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.site-header__inner { align-items:center; display:flex; gap:2rem; min-height:86px; }
.logo { align-items:center; color:var(--navy); display:flex; font-size:.92rem; font-weight:800; line-height:1.05; min-width:220px; text-decoration:none; }
.logo svg { fill:none; stroke:currentColor; stroke-linejoin:round; stroke-width:4; height:48px; margin-right:.65rem; width:48px; }
.logo svg .logo__red { fill:var(--red); stroke:none; }
.logo strong { color:var(--red); display:block; }
.main-navigation { align-items:center; display:flex; gap:1.8rem; margin-left:auto; }
.main-navigation a { border-bottom:2px solid transparent; font-size:.92rem; font-weight:650; padding:2rem 0; text-decoration:none; }
.main-navigation a:hover,.main-navigation a.is-active { border-color:var(--red); color:var(--navy); }
/* Boutons : mêmes proportions que la référence HTML, sur l’élément cliquable. */
:is(a, button, input).button,
.wp-block-button > .wp-block-button__link,
.main-navigation .nav-quote-mobile > .wp-block-navigation-item__content {
  background:var(--red); border:1px solid var(--red); border-radius:4px;
  color:var(--white); display:inline-flex; align-items:center; justify-content:center;
  font-family:inherit; font-size:1rem; font-weight:800; line-height:1.6;
  padding:.85rem 1.35rem; text-align:center; text-decoration:none;
  box-shadow:none; cursor:pointer; max-width:100%; transition:.2s ease;
}
:is(a, button, input).button:hover,
.wp-block-button > .wp-block-button__link:hover,
.main-navigation .nav-quote-mobile > .wp-block-navigation-item__content:hover {
  background:#b90d24; border-color:#b90d24; color:var(--white); transform:translateY(-1px);
}
:is(a, button).button--outline,
.wp-block-button.button--outline > .wp-block-button__link {
  background:transparent; border-color:var(--navy); color:var(--navy);
}
:is(a, button).button--small,
.wp-block-button.button--small > .wp-block-button__link {
  font-size:.88rem; padding:.7rem 1rem;
}
/* Le groupe WordPress n’est pas un second bouton autour du lien. */
.wp-block-button.button,
.wp-block-button.button:hover {
  background:transparent; border:0; border-radius:0; padding:0; box-shadow:none;
  color:inherit; transform:none; transition:none;
}
:is(a, button, input).button:focus-visible,
.wp-block-button > .wp-block-button__link:focus-visible {
  outline:3px solid var(--blue); outline-offset:4px;
}
.hero { background:var(--mist); min-height:650px; overflow:hidden; position:relative; }
.hero::before { background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 43%,rgba(255,255,255,.08) 65%); content:""; inset:0; position:absolute; z-index:1; }
.hero__image { height:100%; inset:0 0 0 43%; object-fit:cover; position:absolute; width:57%; }
.hero__content { align-items:flex-start; display:flex; flex-direction:column; justify-content:center; min-height:650px; padding:4.5rem 0; position:relative; width:57%; z-index:2; }
.eyebrow { color:var(--blue); font-size:.76rem; font-weight:850; letter-spacing:.17em; text-transform:uppercase; }
.hero h1 { margin:.55rem 0 1rem; }
.accent { color:var(--red); }
.lead { font-size:1.2rem; max-width:650px; }
.button-row { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1rem; }
.micro-trust { display:flex; flex-wrap:wrap; gap:1.3rem; margin-top:2.2rem; }
.micro-trust span { font-size:.84rem; font-weight:700; }
.trust-strip { border-bottom:1px solid var(--line); background:#f3f7fa; }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.trust-item { border-right:1px solid var(--line); padding:1.5rem; }
.trust-item:last-child { border-right:0; }
.trust-item strong { color:var(--navy); display:block; }
.section { padding:clamp(4.5rem,8vw,7rem) 0; }
.section--mist { background:var(--mist); }
.section-heading { margin-bottom:2.5rem; max-width:750px; }
.section-title { display:inline-block; margin-bottom:.7rem; position:relative; }
.section-title::after { background:var(--red); bottom:-.55rem; content:""; height:3px; left:0; position:absolute; width:38px; }
.section-intro { color:var(--muted); font-size:1.1rem; }
.cards { display:grid; gap:1rem; grid-template-columns:repeat(4,1fr); }
.card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 3px 15px rgba(11,59,100,.03); min-height:280px; padding:1.8rem; transition:.2s ease; }
.card:hover { box-shadow:var(--shadow); transform:translateY(-4px); }
.line-icon { align-items:center; border:2px solid var(--blue); border-radius:50%; color:var(--blue); display:flex; font-size:1.5rem; height:56px; justify-content:center; margin-bottom:1.5rem; width:56px; }
:where(.card) p { color:var(--muted); }
.steps { display:grid; gap:2rem; grid-template-columns:repeat(4,1fr); }
.step { display:flex; gap:1rem; }
.step-number { background:var(--navy); border-radius:50%; color:var(--white); flex:0 0 42px; font-weight:850; height:42px; line-height:42px; text-align:center; }
:where(.step) p { color:var(--muted); }
.split { align-items:center; display:grid; gap:clamp(2rem,6vw,6rem); grid-template-columns:1.05fr .95fr; }
.feature-box { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:2.5rem; }
.page-hero { background:var(--mist); border-bottom:1px solid var(--line); padding:clamp(4rem,8vw,7rem) 0; }
.page-hero h1 { font-size:clamp(2.8rem,5vw,4.8rem); margin-bottom:1rem; }
.content { padding:clamp(4rem,7vw,6rem) 0; }
.prose { max-width:820px; }
.service-list { display:grid; gap:1.2rem; grid-template-columns:repeat(2,1fr); }
.service-detail { border:1px solid var(--line); border-radius:var(--radius); padding:2rem; }
.form-layout { align-items:start; display:grid; gap:4rem; grid-template-columns:.75fr 1.25fr; }
.form-card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:clamp(1.5rem,4vw,3rem); }
.form-grid { display:grid; gap:1.2rem; grid-template-columns:1fr 1fr; }
.field { margin-bottom:1.15rem; }
.field label { color:var(--navy); display:block; font-weight:750; }
.field input,.field select,.field textarea { border:1px solid #bfcfdb; border-radius:4px; color:var(--ink); font:inherit; margin-top:.4rem; padding:.82rem; width:100%; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--blue); outline:3px solid rgba(20,93,145,.14); }
.form-note { color:var(--muted); font-size:.83rem; }
.footer-cta { background:var(--navy); color:var(--white); padding:2.5rem 0; }
.footer-cta__inner { align-items:center; display:flex; justify-content:space-between; }
.footer-cta h2 { color:var(--white); font-size:clamp(1.7rem,3vw,2.5rem); margin-bottom:.35rem; }
.footer-cta p { margin:0; }
.footer-main { background:#082d4d; color:#cbd8e2; padding:4rem 0 1.5rem; }
.footer-grid { display:grid; gap:4rem; grid-template-columns:2fr 1fr 1fr; }
.footer-main h3,.footer-main a { color:var(--white); }
.footer-main .footer-grid>div>a:not(.logo) { display:block; margin:.45rem 0; text-decoration:none; }
.logo--light { color:var(--white); margin-bottom:1.2rem; }
.socials { display:flex; gap:.5rem; }
.socials a { border:1px solid #6f8aa0; border-radius:50%; display:grid; height:36px; place-items:center; text-decoration:none; width:36px; }
.footer-bottom { border-top:1px solid #315572; font-size:.8rem; margin-top:3rem; padding-top:1.2rem; text-align:center; }
@media (max-width:1000px) {
  .main-navigation { background:#fff; border-top:1px solid var(--line); display:none; flex-direction:column; gap:0; left:0; padding:1rem 24px 1.5rem; position:absolute; top:86px; width:100%; }
  .main-navigation a { padding:.7rem 0; width:100%; }
  .site-header .wp-block-buttons.header-quote { display:none; }
  .cards,.steps { grid-template-columns:repeat(2,1fr); }
  .hero__image { inset:0; opacity:.32; width:100%; }
  .hero::before { background:linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.7)); }
  .hero__content { width:75%; }
}
@media (max-width:700px) {
  :root { --container:min(100% - 32px,1200px); }
  .topbar__inner { justify-content:center; text-align:center; }
  .topbar__inner>span:first-child { display:none; }
  .site-header__inner { min-height:74px; }
  .logo { font-size:.78rem; min-width:auto; }
  .logo svg { height:40px; width:40px; }
  .main-navigation { top:74px; }
  .hero,.hero__content { min-height:570px; }
  .hero__content { width:100%; }
  .trust-grid,.cards,.steps,.split,.service-list,.form-layout,.footer-grid { grid-template-columns:1fr; }
  .trust-item { border-bottom:1px solid var(--line); border-right:0; }
  .form-grid { grid-template-columns:1fr; gap:0; }
  .footer-cta__inner { align-items:flex-start; flex-direction:column; gap:1.4rem; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }

/* ------------------------------------------------------------------ */
/* Adaptations WordPress (éditeur de site, blocs, listes de pages)      */
/* ------------------------------------------------------------------ */
.wp-site-blocks > * { margin-block: 0; }
.main-navigation { list-style: none; margin: 0; padding: 0; }
.main-navigation li { list-style: none; margin: 0; }
.main-navigation .wp-block-pages-list__item__link { border-bottom: 2px solid transparent; font-size: .92rem; font-weight: 650; padding: 2rem 0; text-decoration: none; display: inline-block; }
.main-navigation .current-menu-item > .wp-block-pages-list__item__link,
.main-navigation .wp-block-pages-list__item__link:hover { border-color: var(--red); color: var(--navy); }
.hero .wp-block-image, .hero figure { margin: 0; }
.cards .card h3, .steps .step h3, .feature-box h3 { margin-bottom: .5rem; }
.card p:last-child, .step p:last-child { margin-bottom: 0; }
.card a { color: var(--blue); font-weight: 700; text-decoration: none; }
.service-detail ul, .feature-box ul { color: var(--muted); padding-left: 1.1rem; }
.prose h2 { margin-top: 2.2rem; }
.wp-block-group.container > .wp-block-group,
.wp-block-group.container > .wp-block-group.card { min-width: 0; }
.editor-styles-wrapper .hero__image { position: static; width: 100%; height: auto; }
@media (max-width:1000px) {
  .main-navigation { background: #fff; border-top: 1px solid var(--line); display: none; flex-direction: column; gap: 0; left: 0; padding: 1rem 24px 1.5rem; position: absolute; top: 86px; width: 100%; }
  .main-navigation .wp-block-pages-list__item__link { padding: .7rem 0; width: 100%; }
}

/* ------------------------------------------------------------------ */
/* Compatibilité blocs natifs (groupes, boutons, images, navigation)    */
/* ------------------------------------------------------------------ */
.wp-block-group.hero { position: relative; }
.hero figure.hero__image { margin: 0; }
.hero figure.hero__image img { height: 100%; width: 100%; object-fit: cover; }
.wp-block-buttons.button-row { gap: .8rem; }
.wp-block-navigation.main-navigation { gap: 1.8rem; }
.wp-block-navigation.main-navigation .wp-block-navigation-item__content {
  border-bottom: 2px solid transparent; font-size: .92rem; font-weight: 650; padding: 2rem 0; text-decoration: none;
}
.wp-block-navigation.main-navigation .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation.main-navigation .wp-block-navigation-item__content:hover { border-color: var(--red); color: var(--navy); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { padding: .5rem 0; }
.trust-item p, .step > .wp-block-group > p:last-child { margin-bottom: 0; }
.line-icon { margin-bottom: .6rem; }
.hero__content > * { max-width: 100%; }
.footer-main .wp-block-group p { margin: .45rem 0; }
.footer-main .wp-block-group p a { text-decoration: none; }
.step { align-items: flex-start; }
@media (max-width:1000px) {
  .wp-block-navigation.main-navigation { background: transparent; border-top: 0; display: flex; flex-direction: row; left: auto; padding: 0; position: static; top: auto; width: auto; }
  .wp-block-navigation.main-navigation .wp-block-navigation-item__content { padding: .5rem 0; }
}




/* Neutralise les marges auto WP dans tous les conteneurs grid/flex du thème */

.cards > *,
.steps > *,
.trust-grid > *,
.footer-grid > *,
.service-list > *,
.form-grid > * {
    margin-block-start: 0 !important;
}

/* ------------------------------------------------------------------ */
/* Garde-fous : paragraphes sur fond sombre                            */
/* Un style global de paragraphe (Styles > Blocs > Paragraphe) ne doit  */
/* pas rendre le texte sombre sur fond bleu marine.                    */
/* ------------------------------------------------------------------ */
.topbar p,
.footer-cta p,
.footer-main p { color: inherit; }
.topbar p { font-size: inherit; }
/* Évolution des prestations : blocs partagés entre site et éditeur. */
.hero__content .family-badge {
  display:inline-block; width:fit-content; max-width:100%; margin:0 0 1.1rem;
  padding:.55rem 1.1rem; border-radius:999px; background:var(--red); color:#fff;
  font-size:.88rem; font-weight:800; line-height:1.5; text-align:center;
  box-shadow:0 4px 12px rgba(11,59,100,.12);
}
.page-hero.service-hero { position:relative; overflow:hidden; padding:0; }
.service-hero > .service-hero__image { position:absolute; inset:0; margin:0; height:100%; width:100%; }
.service-hero__image img { width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.service-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 30%,rgba(255,255,255,.82) 48%,rgba(255,255,255,0) 72%); pointer-events:none; }
.service-hero > .container { position:relative; z-index:1; margin-block:0; }
.service-hero__copy { max-width:600px; width:52%; min-height:470px; padding:4.5rem 0; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.service-hero__copy h1 { font-size:clamp(2.6rem,4.3vw,4.4rem); }
.service-hero__copy .lead { font-size:1.08rem; }
.service-body { max-width:900px; }
.service-body > h2:not(:first-child) { margin-top:3rem; }
.service-body li { margin-bottom:.65rem; }
.service-body .service-cta { margin-top:3rem; padding:2rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--mist); }
.service-body .service-cta h2 { font-size:2rem; }
.service-list--five { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:stretch; }
.service-list--five > .service-detail { min-width:0; padding:1.4rem; display:flex; flex-direction:column; }
.service-list--five > .service-detail > .wp-block-buttons { margin-top:auto; padding-top:1rem; }
.service-list--five h2 { font-size:1.65rem; min-height:2.16em; }
@media (min-width:1200px) {
 .service-list--five .wp-block-button { width:100%; }
 .service-list--five .wp-block-button__link { width:100%; }
}
.service-list--five > .service-detail > p:not(.line-icon) { min-height:6.4em; }
.service-list--five .wp-block-list { margin-top:1rem; }
.service-list--five .service-detail { box-shadow:0 3px 15px rgba(11,59,100,.03); transition:box-shadow .2s ease,transform .2s ease; }
.service-list--five .service-detail:hover { box-shadow:var(--shadow); transform:translateY(-4px); }
.main-navigation .nav-depannage > .wp-block-navigation-item__content,
.main-navigation .nav-depannage > .wp-block-navigation-item__content:hover { color:var(--red); font-weight:800; }
.main-navigation .nav-quote-mobile { display:none; }
.main-navigation a:focus-visible,.main-navigation button:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
@media (min-width:1101px) {
 .wp-block-navigation.main-navigation { gap:1.2rem; }
 .main-navigation .wp-block-navigation__container { gap:clamp(.8rem,1.5vw,1.5rem); }
 .main-navigation .wp-block-navigation-item__content { white-space:nowrap; }
}
@media (max-width:1100px) {
 .site-header__inner { gap:1rem; }
 .site-header .wp-block-buttons.header-quote { display:none; }
 .wp-block-navigation.main-navigation { display:flex; position:static; width:auto; padding:0; margin-left:auto; background:transparent; border:0; }
 .main-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none !important; }
 .main-navigation .wp-block-navigation__responsive-container-open { display:flex !important; align-items:center; justify-content:center; min-width:48px; min-height:48px; color:var(--navy); }
 .main-navigation .wp-block-navigation__responsive-container-open svg { width:30px; height:30px; }
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open { position:fixed; inset:var(--abp-menu-top,120px) 0 auto; max-height:calc(100dvh - var(--abp-menu-top,120px)); padding:1rem 24px 1.5rem; overflow-y:auto; background:#fff !important; color:var(--navy); border-top:1px solid var(--line); box-shadow:0 12px 20px rgba(11,59,100,.1); }
 .main-navigation .wp-block-navigation__responsive-dialog { margin-top:0 !important; }
 .main-navigation .wp-block-navigation__responsive-container-close { top:0; right:0; min-width:44px; min-height:44px; display:flex; justify-content:center; align-items:center; }
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top:2.5rem; align-items:stretch; gap:0; }
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items:stretch; width:100%; gap:0; }
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width:100%; align-items:stretch; }
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display:block; padding:.7rem 0; min-height:48px; width:100%; }
 .main-navigation .nav-quote-mobile { display:flex; margin-top:.8rem; }
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open .nav-quote-mobile > .wp-block-navigation-item__content { display:flex; background:var(--red); color:#fff; border:1px solid var(--red); padding:.85rem 1.35rem; font-size:1rem; font-weight:800; line-height:1.6; }

}
@media (max-width:800px) {
 .service-hero__copy { width:100%; max-width:580px; min-height:400px; padding:3rem 0; }
 .service-hero::after { background:linear-gradient(90deg,rgba(255,255,255,.97),rgba(255,255,255,.88) 60%,rgba(255,255,255,.65)); }
 .service-hero__image img { object-position:80% center; }
 .service-body .service-cta { padding:1.5rem; }
}
@media (max-width:700px) {
 .topbar__inner > p:first-child { display:none; }
 .hero__content .family-badge { font-size:.8rem; padding:.5rem .9rem; }
}
/* Le lien reste rouge également lorsque Dépannage est la page courante. */
.wp-block-navigation.main-navigation .nav-depannage .wp-block-navigation-item__content { color:var(--red); font-weight:800; }
/* Repli de couleur dans le canevas si WordPress n’injecte pas ses presets. */
.editor-styles-wrapper .wp-block-heading:not(.has-text-color) { color:var(--wp--preset--color--navy, var(--navy)); }
/* Sous-menu natif des cinq pages enfants de Prestations. */
.main-navigation .wp-block-navigation__submenu-icon { min-width:32px; min-height:44px; margin-left:0; }
@media (min-width:1101px) {
 .wp-block-navigation.main-navigation .wp-block-navigation-item.has-child > ul.wp-block-navigation__submenu-container { min-width:280px; padding:.5rem; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
 .wp-block-navigation.main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding:.7rem .8rem; width:100%; min-height:44px; white-space:normal; }
}
@media (max-width:1100px) {
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding:0 0 .5rem 1rem; border-left:2px solid var(--line); margin-left:.25rem; }
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size:.88rem; }
}
/* Les cinq services restent alignés ; sur tablette, chaque carte forme une ligne. */
@media (max-width:1199px) {
 .service-list--five { grid-template-columns:1fr; }
 .service-list--five > .service-detail { padding:1.5rem; }
 .service-list--five h2 { font-size:2rem; min-height:0; }
 .service-list--five > .service-detail > p:not(.line-icon) { min-height:0; }
}
@media (min-width:801px) and (max-width:1199px) {
 .service-list--five > .service-detail { display:grid; grid-template-columns:56px minmax(0,1.2fr) minmax(0,1fr); column-gap:1.5rem; align-items:start; }
 .service-list--five .line-icon { grid-column:1; grid-row:1 / 4; margin:0; }
 .service-list--five h2 { grid-column:2; grid-row:1; margin:0 0 .7rem; }
 .service-list--five > .service-detail > p:not(.line-icon) { grid-column:2; grid-row:2; margin:0; }
 .service-list--five .wp-block-list { grid-column:3; grid-row:1 / 3; margin:0; }
 .service-list--five > .service-detail > .wp-block-buttons { grid-column:2 / 4; grid-row:3; padding-top:1rem; }
}
@media (max-width:800px) {
 .service-list--five h2 { margin-bottom:.8rem; }
 .service-list--five > .service-detail > .wp-block-buttons { padding-top:.6rem; }
}

/* Contact Form 7 reprend les champs et boutons du thème. */
.form-layout > .wpcf7 { min-width:0; width:100%; }
.wpcf7 .field p { margin:0; }
.wpcf7 .wpcf7-form-control-wrap { display:block; }
.wpcf7 .wpcf7-not-valid-tip { margin-top:.35rem; font-size:.875rem; }
.wpcf7 form .wpcf7-response-output { margin:1.5rem 0 0; padding:1rem; border-radius:4px; }
.wpcf7 .form-card > p:last-of-type { margin-bottom:0; }
.topbar a[href^="mailto:"],.footer-main a[href^="mailto:"] { overflow-wrap:anywhere; }

/* Accueil : les cinq prestations et un accès direct au dépannage. */
.cards.home-services { grid-template-columns:repeat(5,minmax(0,1fr)); }
.home-services > .card { display:flex; flex-direction:column; min-width:0; padding:1.4rem; }
.home-services .card h3 { min-height:2.16em; }
.home-services .card > p:last-child { margin-top:auto; padding-top:1rem; }
.home-services .card > p:last-child a { display:inline-flex; align-items:center; min-height:44px; }
.home-repair-cta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1.5rem; margin-top:2rem; padding:2rem; background:var(--mist); border:1px solid var(--line); border-radius:var(--radius); }
.home-repair-cta h2 { font-size:clamp(1.6rem,2.5vw,2rem); margin-bottom:.6rem; }
.home-repair-cta p { margin-bottom:0; }
.home-repair-cta > .wp-block-buttons { flex-shrink:0; margin:0; }
@media (max-width:1199px) {
 .cards.home-services { grid-template-columns:1fr; }
 .home-services .card h3 { min-height:0; }
}
@media (min-width:801px) and (max-width:1199px) {
 .home-services > .card { display:grid; grid-template-columns:56px minmax(0,1fr) auto; column-gap:1.5rem; min-height:0; }
 .home-services .line-icon { grid-column:1; grid-row:1 / 3; margin:0; }
 .home-services .card h3 { grid-column:2; grid-row:1; }
 .home-services .card > p:not(.line-icon):not(:last-child) { grid-column:2; grid-row:2; margin:0; }
 .home-services .card > p:last-child { grid-column:3; grid-row:1 / 3; align-self:center; margin:0; padding:0; }
}
@media (max-width:800px) {
 .home-repair-cta { padding:1.5rem; align-items:flex-start; }
}

/* Le badge familial conserve sa forme et devient entièrement cliquable. */
.hero__content .family-badge { position:relative; transition:background-color .2s ease, transform .2s ease; }
.hero__content .family-badge:hover { background:#b90d24; transform:translateY(-1px); }
.hero__content .family-badge a { color:inherit; text-decoration:none; }
.hero__content .family-badge a::after { content:""; position:absolute; inset:0; border-radius:inherit; }
.hero__content .family-badge:focus-within { outline:2px solid var(--navy); outline-offset:4px; }
.hero__content .family-badge a:focus-visible { outline:none; }

/* Conserver le technicien et le clavier dans le cadrage du hero d’accueil. */
.hero figure.hero__image img { object-position:right center; }

/* Héros intérieurs : photo rapprochée et fondu continu, comme l’accueil. */
.page-hero.service-hero { background:#fff; }
.service-hero > figure.service-hero__image {
 position:absolute; inset:0 0 0 30%; width:70%; height:100%; margin:0;
 -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 35%);
 mask-image:linear-gradient(90deg,transparent 0%,#000 35%);
}
.service-hero__image img { display:block; width:100%; height:100%; object-fit:cover; object-position:right 25%; }
.service-hero::after { display:block; background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 35%,rgba(255,255,255,.65) 47%,rgba(255,255,255,0) 68%); }
.service-hero__copy { min-height:500px; }
body.page-id-91 .service-hero__image img { object-position:right 70%; }
@media (max-width:800px) {
 .service-hero > figure.service-hero__image { inset:0; width:100%; -webkit-mask-image:none; mask-image:none; }
 .service-hero__image img { object-position:85% 20%; }
 .service-hero::after { background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.86) 55%,rgba(255,255,255,.4) 100%); }
 .service-hero__copy { min-height:440px; width:100%; padding:3rem 0; }
}

/* Portraits À propos et Contact : préserver le sommet de la tête. */
body.page-id-9 .service-hero__image img,
body.page-id-11 .service-hero__image img { object-position:right top; }

/* Accueil compact : centrer le recadrage sur le technicien, pas sur le mur. */
@media (max-width:1000px) {
 .hero figure.hero__image { opacity:1; }
 .hero figure.hero__image img { object-position:70% center; }
 .hero::before { background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.87) 42%,rgba(255,255,255,.40) 100%); }
}

/* Cadrages des photos, sélectionnables dans les styles du bloc Image.
   Les proportions des sections et les dégradés existants restent inchangés. */
.hero > figure.is-style-abp-photo-intervention img { object-position:65% top; }
.service-hero > figure.is-style-abp-photo-intervention img { object-position:65% 40%; }
.service-hero > figure.is-style-abp-photo-portrait img { object-position:center top; }
.service-hero > figure.is-style-abp-photo-detail img { object-position:65% center; }
.service-hero > figure.is-style-abp-photo-neutral img { object-position:right center; }
.service-hero > figure.is-style-abp-photo-scene { -webkit-mask-image:none; mask-image:none; }
.service-hero > figure.is-style-abp-photo-scene img {
 display:block; width:auto; max-width:100%; height:100%; margin-left:auto;
 object-fit:contain; object-position:right center;
 -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 35%);
 mask-image:linear-gradient(90deg,transparent 0%,#000 35%);
}
.service-hero > figure.is-style-abp-photo-equipment img { object-fit:contain; object-position:right center; }
.service-hero > figure.is-style-abp-photo-equipment { inset:0 0 0 auto; width:31%; }
.service-hero > figure.is-style-abp-photo-portrait-left {
 inset:0 0 0 auto; width:45%; -webkit-mask-image:none; mask-image:none;
}
.service-hero > figure.is-style-abp-photo-portrait-left img {
 display:block; width:auto; max-width:100%; height:100%; margin-left:auto;
 object-fit:contain; object-position:right center;
 -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 25%);
 mask-image:linear-gradient(90deg,transparent 0%,#000 25%);
}
@media (max-width:800px) {
 .service-hero > figure.is-style-abp-photo-scene img { width:100%; object-fit:contain; object-position:right center; -webkit-mask-image:none; mask-image:none; }
 .service-hero > figure.is-style-abp-photo-portrait-left { inset:0; width:100%; }
 .service-hero > figure.is-style-abp-photo-equipment { inset:0; width:100%; }
 .hero > figure.is-style-abp-photo-intervention img { object-position:68% 35%; }
 .service-hero > figure.is-style-abp-photo-intervention img { object-position:65% 35%; }
 .service-hero > figure.is-style-abp-photo-portrait img { object-position:65% top; }
 .service-hero > figure.is-style-abp-photo-detail img { object-position:65% center; }
}

/* Vidéosurveillance : rapprocher l’intervention du texte sans perdre le fondu. */
@media (min-width:801px) {
 body.page-id-90 .service-hero > figure.is-style-abp-photo-scene img {
  width:90%; max-width:none; object-fit:cover; object-position:right center;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 24%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 24%);
 }
 body.page-id-90 .service-hero::after {
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 34%,rgba(255,255,255,.60) 44%,rgba(255,255,255,0) 58%);
 }
}

/* Systèmes d’alarme : privilégier le clavier dans le cadrage du visuel existant. */
@media (min-width:801px) {
 body.page-id-89 .service-hero > figure.is-style-abp-photo-scene img {
  width:100%; max-width:none; object-fit:cover; object-position:70% 40%;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 28%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 28%);
 }
}
@media (max-width:800px) {
 body.page-id-89 .service-hero > figure.is-style-abp-photo-scene img {
  object-fit:cover; object-position:65% 40%;
 }
}

/* Prestations : centrer le geste dans la partie droite du bandeau. */
@media (min-width:801px) {
 body.page-id-8 .service-hero > figure.service-hero__image { inset:0 0 0 38%; width:62%; }
 body.page-id-8 .service-hero > figure.service-hero__image img { object-position:45% center; }
}
@media (max-width:800px) {
 body.page-id-8 .service-hero > figure.service-hero__image img { object-position:55% center; }
}

/* Zone d’intervention : Paul au buste, tête entière et photo jusqu’au bord droit. */
@media (min-width:801px) {
 body.page-id-10 .service-hero > figure.service-hero__image { inset:0 0 0 38%; width:62%; }
 body.page-id-10 .service-hero > figure.service-hero__image img {
  width:100%; max-width:none; margin:0; object-fit:cover; object-position:50% 22%;
 }
}
@media (max-width:800px) {
 body.page-id-10 .service-hero > figure.service-hero__image img { object-fit:cover; object-position:55% 22%; }
}

/* Le bandeau d’engagements touche directement la base du hero. */
.hero + .trust-strip { margin-block-start:0; }

/* Téléphones et petites tablettes : photo lisible au-dessus du texte. */
@media (max-width:800px) {
 .hero, .page-hero.service-hero { display:flex; flex-direction:column; min-height:0; background:#fff; }
 .hero > figure.hero__image,
 .service-hero > figure.service-hero__image {
  position:relative; inset:auto; width:100%; height:260px; margin:0; flex-shrink:0;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 78%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 78%,transparent 100%);
 }
 .hero > figure.hero__image img,
 .service-hero > figure.service-hero__image img {
  display:block; width:100%; max-width:none; height:100%; margin:0;
  object-fit:cover; object-position:center 25%; -webkit-mask-image:none; mask-image:none;
 }
 .hero::before, .service-hero::after { display:none; }
 .hero__content, .service-hero__copy { width:100%; min-height:0; padding:1rem 0 2.5rem; }
 .hero .micro-trust { margin-top:1.5rem; }
 body.page-id-9 .service-hero__image img,
 body.page-id-11 .service-hero__image img,
 body.page-id-12 .service-hero__image img { object-position:right top; }
 body.page-id-10 .service-hero > figure.service-hero__image img { object-position:55% 22%; }
 body.page-id-89 .service-hero > figure.service-hero__image img { object-position:65% 40%; }
 body.page-id-90 .service-hero > figure.service-hero__image img { object-position:right center; }
}
@media (max-width:1100px) {
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open { padding: .5rem 24px 1rem; }
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top:2.5rem; }
 .main-navigation .has-child { position:relative; }
 .abp-submenu-toggle { position:absolute; right:0; top:0; width:48px; height:48px; border:0; background:transparent; color:var(--navy); font-size:1.5rem; cursor:pointer; }
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open .has-child:not(.abp-submenu-open) > .wp-block-navigation__submenu-container { display:none !important; }
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open .has-child > .wp-block-navigation-item__content { padding-right:48px; }
 .main-navigation .wp-block-navigation__submenu-icon { display:none; }
}
@media (min-width:1101px) { .abp-submenu-toggle { display:none; } }
@media (max-width:1100px) {
 .abp-submenu-toggle { z-index:2; }
 .main-navigation .wp-block-navigation__responsive-container.is-menu-open { bottom:0; height:calc(100dvh - var(--abp-menu-top,120px)); }
}
.page-breadcrumb { margin-block-start:0; padding-block:2rem 1rem; }
