/*
Theme Name: Twenty Twenty-Five Child
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Template: twentytwentyfive
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Tags: one-column,custom-colors,custom-menu,custom-logo,editor-style,featured-images,full-site-editing,block-patterns,rtl-language-support,sticky-post,threaded-comments,translation-ready,wide-blocks,block-styles,style-variations,accessibility-ready,blog,portfolio,news
Version: 1.3.1759667053
Updated: 2025-10-05 12:24:13

*/

/* ==================== */
/* ====== COMMON ====== */
/* ==================== */

html{margin-top: 0 !important; font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial;}
body{margin: 0;}



/* ==================== */
/* ====== HEADER ====== */
/* ==================== */

:root{
  --green-900:#0d3a2b; /* topbar */
  --green-600:#0c7a3a;
  --yellow-500:#f7c948;
  --text-100:#e7f0ec;
  --white:#fff;
  --shadow:0 10px 25px rgba(0,0,0,.08);
}

.hdr{position:relative; z-index:40; font-family:system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial}
.hdr__container{max-width:1280px; margin-inline:auto; padding:0 20px; display:flex; align-items:center; gap:20px}

/* TOPBAR */
.hdr__topbar{background:var(--green-900); color:var(--text-100); font-size:14px}
.hdr__topbar .hdr__container{min-height:48px; justify-content:space-between}
.hdr__topbar-left{display:flex; gap:24px; align-items:center; flex-wrap:wrap}
.tb-item{display:inline-flex; align-items:center; gap:8px; opacity:.95}
.tb-item .ico{display:inline-flex; color:var(--yellow-500)}
.tb-item .tb-text{white-space:nowrap}

.hdr__topbar-right{display:flex; align-items:center; gap:18px}
.topbar-nav__list{list-style:none; display:flex; gap:18px; margin:0; padding:0}
.topbar-nav__list a{color:var(--text-100); text-decoration:none; opacity:.9}
.topbar-nav__list a:hover{opacity:1; text-decoration:underline}

.socials{display:flex; gap:10px}
.socials__link{display:grid; place-items:center; width:28px; height:28px; border-radius:999px; background:rgba(255,255,255,.08); color:#fff}
.socials__link:hover{background:rgba(255,255,255,.15)}

/* MAIN BAR */
.hdr__main{font-size: medium; background:#fff; box-shadow:var(--shadow)}
.hdr__main .hdr__container{max-height:85px}
.hdr__logo img{display:block; height:46px; width:auto}
.hdr__main .custom-logo{height: 82px; width: auto;}

.hdr__burger{display:none; width:42px; height:42px; border:0; background:transparent; position:relative}
.hdr__burger span{position:absolute; left:10px; right:10px; height:2px; background:var(--green-900); transition:.2s}
.hdr__burger span:nth-child(1){top:12px}
.hdr__burger span:nth-child(2){top:20px}
.hdr__burger span:nth-child(3){top:28px}

.hdr__nav{flex:1 1 auto}
.main-nav{display:flex; align-items:center; gap:28px; list-style:none; margin:0; padding:0}
.main-nav > li{position:relative}
.main-nav a{display:inline-flex; align-items:center; gap:6px; color:var(--green-900); text-decoration:none; font-weight:600; padding:14px 4px}
.main-nav a:hover,
.main-nav .current-menu-item > a{color:var(--green-600); box-shadow:inset 0 -3px 0 var(--green-600)}

.hdr__actions{display:flex; gap:14px; align-items:center}
.icon-btn{position:relative; display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:#f3f6f5; color:var(--green-900); text-decoration:none}
.icon-btn:hover{background:#e9f2ef}

/* SEARCH MODAL */
.search-modal{position:fixed; inset:0; background:rgba(15,42,31,.75); display:grid; place-items:center; z-index:60}
.search-modal__inner{background:#fff; padding:24px; border-radius:14px; width: calc(100% - 96px); max-width: 640px; box-shadow:var(--shadow); position:relative}
.search-modal__inner form{display:flex; gap:10px; flex-direction: column;}
.search-modal__inner input[type="search"]{flex:1; height:48px; border:1px solid #dfe7e4; border-radius:10px; padding:0 14px; font-size:16px; width: calc(100% - 98px);}
.search-modal__inner input[type="submit"]{height:48px; padding:0 16px; border-radius:10px; background:var(--green-600); color:#fff; border:0; font-weight:700}
.search-modal__close{position:absolute; top:8px; right:12px; border:0; background:transparent; font-size:32px; line-height:1; color:#274334}
.search-modal[hidden]{display: none;}

/* PHONE BTN */
/* ==== Effet halo / ripple pour le bouton téléphone ==== */
/* Couleur du halo en RGB pour gérer facilement l'opacité */
:root { --phone-accent-rgb: 10,160,74; } /* ajuste si besoin (#0aa04a) */

.hdr__cta .phone {
  display:flex; align-items:center; gap:12px;
}

.hdr__cta .phone__ico{
  width:46px; height:46px;
  display:grid; place-items:center;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  position:relative; isolation:isolate; overflow:visible;
  /* halo principal */
  box-shadow:0 0 0 0 rgba(var(--phone-accent-rgb), .45);
  animation:phone-pulse 2.2s ease-out infinite;
}

/* Anneaux supplémentaires derrière l'icône */
.hdr__cta .phone__ico::before,
.hdr__cta .phone__ico::after{
  content:"";
  position:absolute; inset:0;
  border-radius:inherit; z-index:-1;
  border:2px solid rgba(var(--phone-accent-rgb), .35);
  animation:phone-ring 2.2s ease-out infinite;
}
.hdr__cta .phone__ico::after{ animation-delay:1.1s; }

/* Petite “vibration” de l’icône */
.hdr__cta .phone__ico svg{
  transform-origin:50% 50%;
  animation:phone-nudge 1.8s ease-in-out infinite;
}

/* Keyframes */
@keyframes phone-pulse{
  0%   { box-shadow:0 0 0 0 rgba(var(--phone-accent-rgb), .45); }
  70%  { box-shadow:0 0 0 16px rgba(var(--phone-accent-rgb), 0); }
  100% { box-shadow:0 0 0 0 rgba(var(--phone-accent-rgb), 0); }
}
@keyframes phone-ring{
  0%   { transform:scale(1);   opacity:.55; border-color:rgba(var(--phone-accent-rgb), .45); }
  60%  { transform:scale(1.9); opacity:0;   border-color:rgba(var(--phone-accent-rgb), 0); }
  100% { transform:scale(2.1); opacity:0; }
}
@keyframes phone-nudge{
  0%,100% { transform:rotate(0) scale(1); }
  40%     { transform:rotate(8deg) scale(1.04); }
  60%     { transform:rotate(-6deg) scale(1.02); }
}

/* Accessibilité */
@media (prefers-reduced-motion: reduce){
  .hdr__cta .phone__ico,
  .hdr__cta .phone__ico::before,
  .hdr__cta .phone__ico::after,
  .hdr__cta .phone__ico svg{
    animation:none !important;
  }
}
.hdr__cta{display:flex; align-items:center; gap:18px; background-color: #1a7e00; height: 85px; padding: 0 18px; border-left:1px solid rgba(255,255,255,.1)}
.btn{display:inline-flex; align-items:center; justify-content:center; height:44px; padding:0 18px; border-radius:10px; text-decoration:none; font-weight:600}
.phone{display:flex; align-items:center; gap:12px; color:#e8fff2}
.phone__ico{display:grid; place-items:center; width:46px; height:46px; border-radius:999px; background:rgba(255,255,255,.08)}
.phone__label{display:block; font-size:12px; opacity:.85; line-height:1}
.phone__number{display:block; color:#fff; font-weight:700; text-decoration:none; margin-top:2px}
.phone__number:hover{text-decoration:underline}

/* RESPONSIVE */
@media (max-width:1100px){ .hdr__cta{display:none} }
@media (max-width:980px){
  .hdr__burger{display:inline-block}
  .hdr__burger .sr-only{display:none;}
  .hdr__nav{position:fixed; inset:72px 0 auto 0; background:#fff; transform:translateY(-10px); opacity:0; pointer-events:none; transition:.2s; box-shadow:var(--shadow)}
  .hdr__nav.is-open{transform:translateY(0); opacity:1; pointer-events:auto;height: 100%;inset: 0 0 auto 0;z-index: 10;}
  .main-nav{flex-direction:column; align-items:flex-start; gap:0}
  .main-nav a{width:100%; padding:14px 20px}
  .hdr__topbar-left{gap:14px}
  .hdr__topbar .hdr__container{padding: 16px;}
}

/* État d’ouverture (corps) */
body.nav-open { overflow:hidden; }

/* Nav mobile (ex. panneau plein écran) */
.hdr__close{display: none;/* cachée quand menu fermé */}

@media (max-width: 980px){
  .hdr__nav{
    position: fixed;
    inset: 0;                  /* plein écran */
    background:#fff;
    transform: translateX(100%);   /* caché par défaut */
    transition: transform .3s ease;
    z-index: 1000;
    padding-top: 72px;             /* laisse respirer la croix sous ton header */
  }
  .hdr__nav.is-open{ transform: translateX(0); }

  /* La croix */
  .hdr__close{
    position: absolute;
    top: 12px; right: 12px;
    width: 40px; height: 40px;
    align-items: center; justify-content: center;
    border: 0; border-radius: 10px;
    background: #f3f6f5; color: var(--green-900,#0B2A35);
    box-shadow: 0 4px 10px rgba(0,0,0,.06);
    z-index: 1001;                /* au-dessus du contenu du menu */
    cursor: pointer;
  }
  .hdr__nav.is-open .hdr__close{ display:flex; }
  .hdr__close:hover{ background:#e9f2ef; }
}



/* ==================================== */
/* ====== SECTION HERO SLIDESHOW ====== */
/* ==================================== */

:root{
  --hero-h-desktop: clamp(420px, 62vw, 620px);
  --hero-h-mobile:  380px;
  --brand-900: var(--green-900, #0B2A35);
  --brand-600: var(--green-600, #0E6C5D);
  --overlay: var(--hero-overlay, #0B2A35);
  --overlay-a: var(--hero-overlay-alpha, .42);
  --shadow-hero: 0 30px 60px rgba(0,0,0,.18);
}

.home-hero{ position:relative; overflow:hidden; }
.hero__viewport{ position:relative; height: var(--hero-h-desktop); }
@media (max-width: 760px){ .hero__viewport{ height: var(--hero-h-mobile); } }

.hero__track{
  display:flex; height:100%; width:100%;
  transition: transform .6s cubic-bezier(.2,.8,.2,1);
  will-change: transform;
}

.hero__slide{
  position:relative; flex:0 0 100%; width:100%; height:100%;
  display:grid; place-items:center;
  color:#fff;
}
.hero__media{ position:absolute; inset:0; overflow:hidden; }
.hero__media img, .hero__placeholder{ width:100%; height:100%; object-fit:cover; display:block; transform: scale(1.02); }
.hero__placeholder{ background: linear-gradient(120deg, #0B5F85, #0A6FA3); }
.hero__overlay{ position:absolute; inset:0; background: rgba(0,0,0,0.5); }

.hero__content{
  position:relative; z-index:2; max-width: min(600px, 86vw);
  margin: 0 20px;
  text-align: left;
  transform: translateY(10px); opacity:0; transition: transform .5s, opacity .5s;
}
.hero__content.is-in{ transform:none; opacity:1; }
.hero__title{
  margin:0 0 8px; line-height:1.05;
  font-size: clamp(28px, 5vw, 54px); font-weight:900;
}
.hero__title .em{ color: color-mix(in srgb, var(--brand-600) 86%, #ffffff 14%); }
.hero__desc{ margin:0 0 14px; font-size: clamp(15px, 1.6vw, 18px); line-height:1.7; max-width: 60ch; }

.hero__ctas{ display:flex; flex-wrap:wrap; gap:10px 12px; }
.btn{ display:inline-flex; align-items:center; gap:8px; height:46px; padding:0 16px; border-radius:12px; text-decoration:none; font-weight:800; line-height:1; }
.btn--primary{ background: linear-gradient(90deg, var(--brand-600), color-mix(in srgb, var(--brand-600) 70%, #0A6FA3)); color:#fff; box-shadow: var(--shadow-hero); }
.btn--primary:hover{ filter:brightness(1.05); }
.btn--ghost{ background:#fff; color: var(--brand-600); border:2px solid color-mix(in srgb, var(--brand-600) 20%, #fff); }
.btn--ghost .arr{ transition: transform .2s ease; }
.btn--ghost:hover .arr{ transform: translateX(4px); }

/* Alignement par slide */
.hero__slide.align-center .hero__content{ text-align:center; margin-left:auto; margin-right:auto; }
.hero__slide.align-right  .hero__content{ text-align:right; margin-left:auto; margin-right:20px; }

/* Flèches */
.hero__arrow{
  position:absolute; top:50%; transform: translateY(-50%);
  width:44px; height:44px; border-radius:12px;
  display:grid; place-items:center;
  background: rgba(255,255,255,.15); color:#fff; border:1px solid rgba(255,255,255,.35);
  backdrop-filter: blur(4px);
}
.hero__arrow:hover{ background: rgba(255,255,255,.25); }
.hero__arrow.prev{ left:16px; }
.hero__arrow.next{ right:16px; }

/* Dots */
.hero__dots{ position:absolute; left:0; right:0; bottom:14px; display:flex; justify-content:center; gap:8px; }
.hero__dot{
  width:10px; height:10px; border-radius:999px; background: rgba(255,255,255,.55);
  border:0; cursor:pointer;
}
.hero__dot[aria-selected="true"]{ width:24px; background:#fff; }
.hero__dot .sr-only { font-size: 0; }

/* Accessibilité & préférences */
@media (prefers-reduced-motion: reduce){
  .hero__track{ transition:none !important; }
  .hero__content{ transform:none !important; opacity:1 !important; }
}


/* =================================== */
/* ====== SECTION MISE EN AVANT ====== */
/* =================================== */

/* ====== Ruban de mise en avant (Wastia-like) ====== */
:root{
  --feat-text:#ffffff;
  --feat-icon-bg: rgba(255,255,255,.10);
  --feat-icon-br: rgba(255,255,255,.45);
  --feat-shadow: 0 20px 40px rgba(0,0,0,.12);
}

.feat-ribbon{
  position:relative;
  color:var(--feat-text);
  background:linear-gradient(180deg, var(--grad-from, #D39B2A) 0%, var(--grad-to, #E3AE3A) 100%);
  overflow:hidden;
}
.feat-ribbon__inner{
  max-width:1280px; margin:0 auto; padding:42px 20px 144px; /* gros padding bas pour la courbe */
  will-change: transform;
}
.feat-ribbon__curve{
  position:absolute; left:0; right:0; bottom:-10px; line-height:0;
  transform: translateY(0); will-change: transform;
  filter: drop-shadow(0 -6px 20px rgba(0,0,0,.08));
}

/* Grille des features */
.feat-grid{
  list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns: repeat(6, minmax(0,1fr));
  gap:26px 0;
}
@media (max-width: 1024px){
  .feat-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); gap:22px 36px; }
}
@media (max-width: 720px){
  .feat-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); gap:18px 22px; }
}

.feat{
  display:flex; align-items:center; gap:16px;
  transform: translateY(14px) scale(.98);
  opacity:0;
  transition: transform .6s cubic-bezier(.2,.8,.2,1), opacity .6s ease;
  will-change: transform, opacity;
}
.feat.is-in{
  transform: translateY(0) scale(1); opacity:1;
  /* légère cascade */
  transition-delay: calc(var(--i, 0) * 60ms);
}

.feat__icon{
  width:64px; height:64px;
  display:grid; place-items:center;
  transition: transform .25s ease, box-shadow .25s ease;
  color:#fff;
}
.feat__icon img, .feat__icon svg{
  max-width:64px; max-height:64px; display:block; filter: brightness(999%); /* rend des PNG foncés plus clairs */
}

.feat__text{ line-height:1.1; font-weight:700; letter-spacing:.2px; }
.feat__l1{ display:block; font-size:16px; }
.feat__l2{ display:block; font-size:16px; }
@media (max-width:720px){
  .feat__l1, .feat__l2{ font-size:16px; }
}

/* Hover states */
/* ===== Bounce de l'icône au hover (ruban 6 items) ===== */

/* Optionnel : neutralise le lift général si tu l'avais */
.feat:hover { transform: none; }
.feat:hover .feat__icon { transform: none; }

/* Perf */
.feat__icon { will-change: transform; }

/* Hover souris */
@media (hover:hover) {
  .feat:hover .feat__icon {
    animation: feat-bounce .6s ease-out both;
  }
}

/* Clavier (accessibilité) */
.feat:focus-within .feat__icon {
  animation: feat-bounce .6s ease-out both;
}

/* Mobile (tap court) */
@media (hover:none) {
  .feat:active .feat__icon {
    animation: feat-bounce .6s ease-out both;
  }
}

/* Animation de saut (uniquement l'icône) */
@keyframes feat-bounce {
  0%   { transform: translateY(0); }
  20%  { transform: translateY(-8px); }
  40%  { transform: translateY(0); }
  60%  { transform: translateY(-4px); }
  80%,
  100% { transform: translateY(0); }
}

/* Respecte les préférences utilisateurs */
@media (prefers-reduced-motion: reduce){
  .feat:hover .feat__icon,
  .feat:focus-within .feat__icon,
  .feat:active .feat__icon { animation: none !important; }
}


/* Accessibilité mouvements réduits */
@media (prefers-reduced-motion: reduce){
  .feat, .feat__icon, .feat-ribbon__inner, .feat-ribbon__curve{ transition:none !important; animation:none !important; }
}


/* ===== Cartes Services (3 colonnes) ===== */
:root{
  --srv-bg: #fff;
  --srv-text: #22312b;
  --srv-muted: #6b7d75;
  --srv-shadow: 0 18px 35px rgba(0,0,0,.10);
  --srv-shadow-hover: 0 28px 55px rgba(0,0,0,.16);
  --srv-radius: 16px;
  --accent: var(--green-600, #0E6C5D); /* reprend ta couleur CTA si définie */
}

/* Overlap sous la vague du ruban */
.srv-cards{
  position: relative;
  margin-top: clamp(-96px, -8vw, -64px); /* remonte sous la courbe */
  padding: 0 20px 40px;
  z-index: 2;
}
.srv-wrap{
  max-width:1280px; margin:0 auto;
  display:grid; grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 26px;
}
@media (max-width: 1024px){
  .srv-wrap{ gap:22px; }
}
@media (max-width: 860px){
  .srv-wrap{ grid-template-columns: 1fr; }
}

/* Carte */
.srv{
  height: 250px;
  background: var(--srv-bg);
  color: var(--srv-text);
  border-radius: var(--srv-radius);
  box-shadow: var(--srv-shadow);
  padding: 22px 22px 22px 22px;
  display: flex;
  align-items: center;
  gap: 20px;
  transform: translateY(14px) scale(.98);
  opacity: 0;
  transition: transform .45s cubic-bezier(.2,.8,.2,1), opacity .45s ease, box-shadow .25s ease;
  will-change: transform, opacity;
}
.srv.is-in{
  transform: translateY(0) scale(1);
  opacity: 1;
  transition-delay: calc(var(--i,0) * 60ms);
}
@media (max-width: 860px){
  .srv{ grid-template-columns: 1fr; }
}

/* Image flottante à gauche (comme la maquette) */
.srv__media{
  position: relative;
  align-self: start;
  width: 130px;
  height: 170px;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 14px 26px rgba(0,0,0,.18);
  background: #f1f5f4;
  margin-inline-start: -36px;
  margin-top: 32px;
}
.srv__media img{
  width:100%; height:100%; object-fit:cover;
  transition: transform .5s ease;
}

/* Corps */
.srv__body { width: calc(100% - 130px); }
.srv__title{
  margin: 0 0 10px; font-size: 16px; line-height: 1.15; font-weight: 800; color: #123b2f;
}
.srv__desc{
  margin: 0 0 16px; color: var(--srv-muted); line-height: 1.6; font-size: 14px;
}

/* Lien */
.srv__link{
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 800; color: var(--accent); text-decoration: none;
  border-bottom: 2px solid rgba(0,0,0,0); padding-bottom: 2px;
  transition: transform .2s ease, border-color .2s ease;
}
.srv__arrow{ transition: transform .2s ease; }
.srv__link:hover{ border-color: currentColor; }
.srv__link:hover .srv__arrow{ transform: translateX(4px); }

/* Hover carte */
.srv:hover{
  transform: translateY(-6px);
  box-shadow: var(--srv-shadow-hover);
}
.srv:hover .srv__media img{
  transform: scale(1.05);
}

/* Mouvements réduits */
@media (prefers-reduced-motion: reduce){
  .srv, .srv__media img, .srv__link, .srv__arrow{ transition: none !important; }
}

/* ====================================== */
/* ====== SECTION BANDE DÉBOUCHAGE ====== */
/* ====================================== */

:root{
  --home-deb-bg: #f6faf9;
  --brand-900: var(--green-900, #0B2A35);
  --brand-600: var(--green-600, #0E6C5D);
  --shadow-s: 0 10px 24px rgba(0,0,0,.08);
}

.home-deb{
  background: var(--home-deb-bg);
}
.home-deb__inner{
  max-width:1280px; margin:0 auto; padding: clamp(28px, 5vw, 56px) 20px;
  display:grid; grid-template-columns: 1.1fr .9fr; gap: clamp(22px, 4vw, 48px);
}
@media (max-width: 980px){
  .home-deb__inner{ grid-template-columns: 1fr; }
}

.home-deb__kicker{
  margin:0 0 6px; text-transform:uppercase; letter-spacing:.12em;
  font-weight:800; font-size:12px; color: var(--brand-600);
}
.home-deb__title{
  margin:.1em 0 .4em; line-height:1.1; font-weight:900;
  font-size: clamp(26px, 4.2vw, 38px);
  color: var(--brand-900);
}
.home-deb__title .em{ color: var(--brand-600); }
.home-deb__desc{
  margin:0 0 16px; color:#446158; line-height:1.7; font-size: clamp(15px, 1.6vw, 17px);
}

.home-deb__bullets{ list-style:none; padding:0; margin: 10px 0 18px; display:grid; gap:10px; }
.home-deb__bullets li{ display:flex; align-items:center; gap:10px; }
.home-deb__bullets .b-ico{
  width:26px; height:26px; border-radius:8px; display:grid; place-items:center;
  background: rgba(14,108,93,.10); color: var(--brand-600);
  transition: transform .2s ease;
}
.home-deb__bullets li:hover .b-ico{ transform: translateY(-2px); }

.home-deb__ctas{ display:flex; align-items:center; flex-wrap:wrap; gap:10px 12px; margin-top: 4px; }
.btn{
  display:inline-flex; align-items:center; gap:8px; height:46px; padding:0 16px; border-radius:12px;
  text-decoration:none; font-weight:800; line-height:1; white-space:nowrap;
}
.btn--primary{
  background: linear-gradient(90deg, var(--brand-600), color-mix(in srgb, var(--brand-600) 70%, #0A6FA3));
  color:#fff; box-shadow: var(--shadow-s);
}
.btn--primary:hover{ filter:brightness(1.05); }
.btn--ghost{
  background:#fff; color: var(--brand-600); border:2px solid color-mix(in srgb, var(--brand-600) 20%, #fff);
}
.btn--ghost .arr{ transition: transform .2s ease; }
.btn--ghost:hover .arr{ transform: translateX(4px); }
.btn--phone{
  background: rgba(14,108,93,.12); color: var(--brand-600);
  border:2px dashed rgba(14,108,93,.35);
}

.home-deb__media{
  border-radius:18px; overflow:hidden; background:#e9f2ef; box-shadow: var(--shadow-s);
  min-height: 240px; display:grid; place-items:center; padding: 8px;
}
.home-deb__media img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Reveal */
.home-deb [data-reveal]{ transform: translateY(12px); opacity:0; transition: transform .5s cubic-bezier(.2,.8,.2,1), opacity .5s ease; }
.home-deb .is-in{ transform: translateY(0); opacity:1; }
.home-deb__col--media.is-in{ transition-delay: .08s; }

/* Accessibilité */
@media (prefers-reduced-motion: reduce){
  .home-deb [data-reveal]{ transition:none !important; transform:none !important; opacity:1 !important; }
}

/* =============================== */
/* ====== Page Présentation ====== */
/* =============================== */


.page-id-724 .wp-block-group.has-global-padding.is-layout-constrained.wp-block-group-is-layout-constrained { margin-right: 2vw; }

/* =========================== */
/* ====== Page Services ====== */
/* =========================== */

.page-id-634 .wp-block-columns { gap: 32px; }
.page-id-634 .wp-block-column { padding: 24px; border: 1px solid; }


/* ========================= */
/* ====== Page Tarifs ====== */
/* ========================= */

.page-id-640 .wp-block-group-is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }


/* ============================ */
/* ====== Contact Form 7 ====== */
/* ============================ */

/* ===== Contact Form 7 – thème moderne ===== */
:root{
  --brand-900: var(--green-900, #0B2A35);
  --brand-600: var(--green-600, #0E6C5D);
  --bg-soft:   #f6faf9;
  --txt:       #22312b;
  --muted:     #6b7d75;
  --error:     #D14343;
  --ok:        #0A7A43;
  --radius:    12px;
  --shadow:    0 18px 35px rgba(0,0,0,.10);
}

.cf7-modern{
  background: var(--bg-soft);
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: clamp(18px, 3.4vw, 28px);
  color: var(--txt);
}

/* Grille */
.cf7-modern .form-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 16px 18px;
}
.cf7-modern .field.-full,
.cf7-modern .actions.-full{ grid-column: 1 / -1; }
@media (max-width: 740px){
  .cf7-modern .form-grid{ grid-template-columns: 1fr; }
}

/* Label + champ */
.cf7-modern .field{ display:flex; flex-direction:column; gap:6px; }
.cf7-modern label{
  font-weight:700; font-size:14px; color: var(--brand-900);
}

/* Inputs */
.cf7-modern input[type="text"],
.cf7-modern input[type="email"],
.cf7-modern input[type="tel"],
.cf7-modern input[type="url"],
.cf7-modern input[type="number"],
.cf7-modern select,
.cf7-modern textarea{
  appearance:none;
  width: calc(100% - 32px);
  padding: 12px 14px;
  border-radius: var(--radius);
  border:1.5px solid #dfe7e4;
  background:#fff;
  color: var(--txt);
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.cf7-modern textarea{ min-height: 140px; resize: vertical; }

/* Focus ring accessible */
.cf7-modern input:focus,
.cf7-modern select:focus,
.cf7-modern textarea:focus{
  outline: none;
  border-color: var(--brand-600);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-600) 18%, transparent);
}

/* Placeholder (si utilisé) */
.cf7-modern ::placeholder{ color:#9fb0aa; }

/* Erreurs CF7 */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output{
  border:0; background:#fff1f0; color:#8a1f1f; border-left:4px solid var(--error);
}
.wpcf7 form.sent .wpcf7-response-output{
  border:0; background:#eef9f1; color:#0b5137; border-left:4px solid var(--ok);
}

/* Champ invalide */
.cf7-modern .wpcf7-not-valid{
  border-color: var(--error) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--error) 20%, transparent) !important;
}
.cf7-modern .wpcf7-not-valid-tip{
  margin-top:4px; font-size:13px; color: var(--error);
}

/* Acceptation (checkbox) */
.cf7-modern .field.-agree{
  display:flex; align-items:center; gap:10px;
}
.cf7-modern .field.-agree input[type="checkbox"]{
  width:18px; height:18px; accent-color: var(--brand-600);
}

/* Boutons & actions */
.cf7-modern .actions{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.cf7-modern .wpcf7-submit{
  display:inline-flex; align-items:center; justify-content:center;
  height:46px; padding:0 18px; border-radius:12px; border:0;
  font-weight:800; color:#fff; cursor:pointer;
  background: linear-gradient(90deg, var(--brand-600), color-mix(in srgb, var(--brand-600) 70%, #0A6FA3));
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}
.cf7-modern .wpcf7-submit:hover{ filter: brightness(1.05); }
.cf7-modern .wpcf7-submit:disabled{ opacity:.6; cursor:not-allowed; }

/* Spinner CF7 custom */
.cf7-modern .wpcf7-spinner{
  position:relative; width:22px; height:22px; border-radius:999px;
  border:3px solid #e6eeec; border-top-color: var(--brand-600);
  animation: cf7spin .8s linear infinite;
}
@keyframes cf7spin{ to { transform: rotate(360deg); } }

/* Sélecteurs */
.cf7-modern select{
  background-image:
    linear-gradient(45deg, transparent 50%, #78938b 50%),
    linear-gradient(135deg, #78938b 50%, transparent 50%),
    linear-gradient(to right, #dfe7e4, #dfe7e4);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 13px) 50%,
    calc(100% - 40px) 50%;
  background-size: 7px 7px, 7px 7px, 1px 60%;
  background-repeat: no-repeat;
  padding-right: 46px;
}

/* Messages globaux */
.cf7-modern .wpcf7-response-output{
  margin: 10px 0 0; padding: 12px 14px; border-radius: 10px;
  background:#f1f5f4; color:#274334; border-left:4px solid #a3b8b1;
}

/* Accessibilité : motion */
@media (prefers-reduced-motion: reduce){
  .cf7-modern *{ transition: none !important; animation: none !important; }
}


/* ==================== */
/* ====== FOOTER ====== */
/* ==================== */

:root{
  --brand-900: var(--green-900, #0B2A35);
  --brand-600: var(--green-600, #0E6C5D);
  --ft-bg: color-mix(in srgb, var(--brand-900) 94%, black);
  --ft-top: rgba(255,255,255,.92);
  --ft-muted: rgba(255,255,255,.70);
  --ft-border: rgba(255,255,255,.12);
  --ft-shadow: 0 -18px 40px rgba(0,0,0,.12);
}

.site-footer{
  font-size: medium;
  background: var(--ft-bg);
  color: var(--ft-top);
  box-shadow: var(--ft-shadow);
  position: relative;
  z-index: 10;
}
.ft__inner{
  max-width:1280px; margin:0 auto; padding: 36px 20px 22px;
}
.ft__cols{
  display:grid; grid-template-columns: 1.1fr 1fr 1fr;
  gap: 28px;
  border-bottom: 1px solid var(--ft-border);
  padding-bottom: 18px;
}
@media (max-width: 980px){
  .ft__cols{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px){
  .ft__cols{ grid-template-columns: 1fr; }
}

.ft__title{
  margin: 0 0 12px;
  font-size: 16px; font-weight: 800; letter-spacing:.02em;
  color: #fff;
}

.ft__list{
  list-style:none; padding:0; margin:0; display:grid; gap:10px;
}
.ft__list a{
  color: var(--ft-top); text-decoration:none;
  border-bottom: 1px solid transparent;
  transition: color .2s ease, border-color .2s ease, transform .2s ease;
}
.ft__list a:hover{
  color:#fff; border-color: rgba(255,255,255,.25);
  transform: translateX(2px);
}

/* Coordonnées */
.ft__contact .ico{
  width:26px; height:26px; border-radius:8px; display:grid; place-items:center;
  background: rgba(255,255,255,.10); color:#fff; margin-right:8px;
}
.ft__contact li{
  display:flex; align-items:center; gap:6px; color: var(--ft-muted);
}
.ft__contact a{ color: var(--ft-top); }
.ft__contact a:hover{ color:#fff; }

/* Réseaux */
.ft__socials{ display:flex; gap:10px; margin-top:12px; }
.ft-social{
  display:grid; place-items:center; width:32px; height:32px;
  border-radius:999px; background: rgba(255,255,255,.10); color:#fff;
  border:1px solid var(--ft-border);
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.ft-social:hover{
  transform: translateY(-2px) scale(1.04);
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.25);
}

/* Bas de page */
.ft__bottom{ padding:14px 0 0; display:flex; align-items:center; justify-content:center; }
.ft__copy{ margin:0; color: var(--ft-muted); text-align:center; font-size:14px; }
.ft__copy a{ color: var(--ft-top); text-decoration:none; }
.ft__copy a:hover{ color:#fff; text-decoration:underline; }

/* Accessibilité */
@media (prefers-reduced-motion: reduce){
  .ft__list a, .ft-social{ transition: none !important; }
}

