/* ================================
   FREXOLAIRE COMPLETE SHOP STYLE
   (Astra + WooCommerce + Hero Block)
================================ */

/* Hide site description */
.site-header .site-description {
    display: none;
}

/* Product cards styling */
ul.products.columns-4 > li {
    box-shadow: 0 1px 1px rgba(0,0,0,0.08),
                0 2px 2px rgba(0,0,0,0.12) !important;
    justify-items: stretch !important;
    padding: 12px 16px !important;
    border-radius: 8px !important;
}

/* Related products layout fix */
.woocommerce[class*="rel-up-columns-"] .site-main div.product .related.products ul.products li.product,
.woocommerce-page .site-main ul.products li.product {
    width: 100%;
    justify-content: space-between !important;
}

/* Remove underline from links */
.ast-single-post .entry-content a,
.ast-comment-content a:not(.ast-comment-edit-reply-wrap a),
.woocommerce-js .woocommerce-product-details__short-description a {
    text-decoration: none !important;
}

/* Calculator button style */
button#amw-calc {
    background: #025048 !important;
}

/* ================================
   GOOGLE FONTS
================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=Inter:wght@300;400;500;600&display=swap');

/* ================================
   SHOP HERO BLOCK (FX FREXOLAIRE)
================================ */

.fx-shop-hero {
    background: #fff;
    border-bottom: 3px solid #D4AF37;
    padding: 3rem 2rem 2.5rem;
    position: relative;
    overflow: hidden;
}

.fx-shop-hero::before {
    content: '';
    position: absolute;
    top: -60px;
    right: -60px;
    width: 280px;
    height: 280px;
    background: radial-gradient(circle, rgba(2,80,72,0.06) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.fx-inner {
    max-width: 960px;
    margin: 0 auto;
}

.fx-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: rgba(2,80,72,0.07);
    color: #025048;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 5px 14px;
    border-radius: 20px;
    border: 1px solid rgba(2,80,72,0.15);
    margin-bottom: 1.25rem;
}

.fx-intro {
    font-family: 'Inter', sans-serif;
    font-size: 1.05rem;
    color: #3a4a45;
    line-height: 1.8;
    max-width: 760px;
    margin-bottom: 2.5rem;
    border-left: 3px solid #D4AF37;
    padding-left: 1.1rem;
}

.fx-headings {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 2rem;
}

@media (max-width: 640px) {
    .fx-headings {
        grid-template-columns: 1fr;
    }
}

.fx-h2-card {
    background: linear-gradient(135deg, #025048 0%, #037060 100%);
    border-radius: 10px;
    padding: 1.4rem 1.5rem;
}

.fx-h2-card h2 {
    font-family: 'Playfair Display', serif;
    font-size: 1.05rem;
    font-weight: 600;
    color: #fff;
    line-height: 1.4;
}

.fx-h2-card h2::before {
    content: '';
    display: block;
    width: 28px;
    height: 2px;
    background: #D4AF37;
    margin-bottom: 0.6rem;
    border-radius: 2px;
}

.fx-shop-img {
    width: 100%;
    border-radius: 10px;
    margin-bottom: 2rem;
    border: 1px solid rgba(2,80,72,0.1);
    display: block;
}

.fx-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 2rem;
}

@media (max-width: 580px) {
    .fx-links {
        grid-template-columns: 1fr;
    }
}

.fx-link-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.fx-link-label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #025048;
}

.fx-link {
    font-size: 0.88rem;
    font-weight: 500;
    color: #025048;
    text-decoration: none;
    padding: 7px 12px;
    border-radius: 6px;
    background: rgba(2,80,72,0.04);
    border: 1px solid rgba(2,80,72,0.1);
    transition: all 0.2s ease;
}

.fx-link:hover {
    background: #025048;
    color: #D4AF37;
    border-color: #025048;
}

.fx-link.external {
    background: #fafafa;
    border-color: #e0e0e0;
}

.fx-footer-strip {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(2,80,72,0.1);
    font-size: 0.78rem;
    color: #888;
}

.fx-cert-badges {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.fx-cert {
    background: rgba(212,175,55,0.1);
    border: 1px solid rgba(212,175,55,0.3);
    color: #7a6020;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 20px;
}

/* ===== FX-BLOG-2026 : theme editorial des articles ===== */
/* Objectif : fonds pleine largeur, colonne de lecture limitee et uniforme,
   allure de vrai blog. Portee : articles uniquement (body.single-post). */

.single-post{
  --fxb-ink:#26313a;
  --fxb-soft:#5c6b76;
  --fxb-g:#025048;
  --fxb-g9:#01332e;
  --fxb-gd:#0a3f35;
  --fxb-mint:#9fe8cf;
  --fxb-mist:#f4f7f5;
  --fxb-line:#e3eae6;
  --fxb-read:760px;   /* colonne de lecture */
  --fxb-wide:1080px;  /* elements larges : tableaux, images */
}

/* --- 1. Casser le cadre : fonds sur toute la largeur --- */
.single-post .site-content > .ast-container{max-width:100%;width:100%;padding:0;margin:0;display:block}
.single-post .content-area{width:100%;max-width:100%;float:none;margin:0}
.single-post #secondary,.single-post .widget-area{display:none}
.single-post .site-main{width:100%;max-width:100%}
.single-post article.post{
  max-width:100%;width:100%;margin:0;padding:0;
  background:#fff;border-radius:0;box-shadow:none;border:0;
}

/* --- 2. Bandeau de titre pleine largeur --- */
.single-post .entry-header{
  position:relative;width:100%;margin:0 0 0;padding:74px 24px 66px;
  background:radial-gradient(120% 150% at 20% 0%,#0e6455 0%,var(--fxb-g9) 58%,#00201c 100%);
  text-align:left;overflow:hidden;
}
.single-post .entry-header:after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:24px 24px;opacity:.55;
}
.single-post .entry-header > *{position:relative;z-index:2}
.single-post .entry-title{
  max-width:var(--fxb-wide);margin:0 auto;color:#fff;
  font-size:clamp(1.9rem,3.5vw,3rem);line-height:1.14;letter-spacing:-.022em;font-weight:800;
}
.single-post .entry-meta,
.single-post .entry-header .entry-meta{
  max-width:var(--fxb-wide);margin:18px auto 0;color:#b9d9cf;font-size:.92rem;font-weight:600;
}
.single-post .entry-meta a,.single-post .entry-meta .posted-by a{
  color:var(--fxb-mint);text-decoration:none;border-bottom:1px solid rgba(159,232,207,.35)
}
.single-post .entry-meta a:hover{color:#fff;border-bottom-color:#fff}

/* --- 3. Image mise en avant : bandeau large sous le titre --- */
.single-post .post-thumb,
.single-post .ast-single-post-featured-section{
  width:100%;max-width:var(--fxb-wide);margin:-34px auto 0;padding:0 24px;position:relative;z-index:3
}
.single-post .post-thumb img,
.single-post .ast-single-post-featured-section img{
  width:100%;height:auto;max-height:460px;object-fit:cover;
  border-radius:20px;box-shadow:0 26px 60px rgba(1,40,35,.28);display:block
}

/* --- 4. Colonne de lecture : largeur limitee et uniforme --- */
.single-post .entry-content{
  max-width:100%;padding:56px 24px 84px;font-size:1.075rem;line-height:1.78;color:var(--fxb-ink)
}
.single-post .entry-content > *{
  max-width:var(--fxb-read);margin-left:auto;margin-right:auto
}
/* elements qui ont droit a plus de largeur */
.single-post .entry-content > figure.wp-block-table,
.single-post .entry-content > figure.wp-block-image,
.single-post .entry-content > .fx-cta{max-width:var(--fxb-wide)}

/* --- 5. Rythme typographique --- */
.single-post .entry-content p{margin:0 0 1.35em}
.single-post .entry-content > p:first-of-type{
  font-size:1.16rem;line-height:1.7;color:#3a4750
}
.single-post .entry-content h2{
  font-size:clamp(1.45rem,2.4vw,1.95rem);line-height:1.22;font-weight:800;
  color:var(--fxb-g9);letter-spacing:-.015em;margin:2.6em auto .75em;padding-top:.4em;position:relative
}
.single-post .entry-content h2:before{
  content:"";display:block;width:52px;height:3px;border-radius:2px;
  background:linear-gradient(90deg,var(--fxb-mint),#025048);margin-bottom:.7em
}
.single-post .entry-content h3{
  font-size:clamp(1.12rem,1.7vw,1.34rem);font-weight:800;color:var(--fxb-gd);
  margin:2em auto .6em;line-height:1.3
}
.single-post .entry-content a{
  color:var(--fxb-g);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1.5px;text-decoration-color:rgba(2,80,72,.32);
  transition:color .2s,text-decoration-color .2s
}
.single-post .entry-content a:hover{color:#0e6455;text-decoration-color:#0e6455}
.single-post .entry-content strong{color:var(--fxb-g9);font-weight:700}
.single-post .entry-content em{color:var(--fxb-soft)}

/* Chapeau "Article mis a jour le ..." */
.single-post .entry-content > p:first-child em,
.single-post .entry-content > p em:only-child{
  display:inline-block;font-style:normal;font-size:.82rem;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:var(--fxb-g);
  background:var(--fxb-mist);border:1px solid var(--fxb-line);
  padding:7px 14px;border-radius:999px
}

/* --- 6. Listes --- */
.single-post .entry-content ul,.single-post .entry-content ol{margin:0 auto 1.5em;padding-left:0}
.single-post .entry-content ul{list-style:none}
.single-post .entry-content ul li{position:relative;padding:.32em 0 .32em 1.9em;margin:0}
.single-post .entry-content ul li:before{
  content:"";position:absolute;left:.35em;top:.95em;width:8px;height:8px;border-radius:50%;
  background:linear-gradient(135deg,var(--fxb-mint),#025048)
}
.single-post .entry-content ol{padding-left:1.4em}
.single-post .entry-content ol li{padding:.32em 0 .32em .4em}
.single-post .entry-content li>strong:first-child{color:var(--fxb-g9)}

/* --- 7. Tableaux : lisibles et scrollables --- */
.single-post .entry-content figure.wp-block-table{
  margin:2.2em auto;overflow-x:auto;-webkit-overflow-scrolling:touch;
  border:1px solid var(--fxb-line);border-radius:16px;box-shadow:0 10px 30px rgba(1,40,35,.07)
}
.single-post .entry-content table{
  width:100%;border-collapse:collapse;font-size:.95rem;background:#fff;margin:0;border:0
}
.single-post .entry-content thead th{
  background:var(--fxb-g9);color:#fff;font-weight:700;text-align:left;
  padding:15px 18px;border:0;font-size:.86rem;letter-spacing:.03em;text-transform:uppercase
}
.single-post .entry-content tbody td{
  padding:14px 18px;border:0;border-top:1px solid var(--fxb-line);vertical-align:top;color:var(--fxb-ink)
}
.single-post .entry-content tbody tr:nth-child(odd) td{background:#fafcfb}
.single-post .entry-content tbody tr:hover td{background:#f0f7f4}
.single-post .entry-content tbody td:empty{padding:0;border:0}

/* --- 8. Images dans le corps --- */
.single-post .entry-content figure.wp-block-image{margin:2.2em auto}
.single-post .entry-content figure.wp-block-image img{
  width:100%;height:auto;border-radius:18px;box-shadow:0 18px 44px rgba(1,40,35,.14);display:block
}
.single-post .entry-content figcaption{
  text-align:center;font-size:.85rem;color:var(--fxb-soft);margin-top:.8em
}

/* --- 9. Bloc CTA de fin d article --- */
.single-post .entry-content .fx-cta{
  margin:3.4em auto 0;padding:40px 38px;border-radius:22px;
  background:radial-gradient(120% 140% at 15% 0%,#0e6455 0%,var(--fxb-g9) 60%,#00201c 100%);
  color:#fff;position:relative;overflow:hidden
}
.single-post .entry-content .fx-cta:after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:24px 24px;opacity:.5
}
.single-post .entry-content .fx-cta > *{position:relative;z-index:2}
.single-post .entry-content .fx-cta h2{color:#fff;margin-top:0}
.single-post .entry-content .fx-cta h2:before{background:linear-gradient(90deg,var(--fxb-mint),#025048)}
.single-post .entry-content .fx-cta p{color:#d5eae2}
.single-post .entry-content .fx-cta a{color:var(--fxb-mint);text-decoration-color:rgba(159,232,207,.4)}
.single-post .entry-content .fx-cta a:hover{color:#fff;text-decoration-color:#fff}
.single-post .entry-content .fx-cta ul li:before{background:var(--fxb-mint)}
.single-post .entry-content .fx-cta strong{color:#fff}

/* --- 10. Sources en fin d article --- */
.single-post .entry-content > p:last-of-type{font-size:.9rem;color:var(--fxb-soft)}

/* --- 11. Responsive --- */
@media(max-width:782px){
  .single-post .entry-header{padding:52px 20px 46px}
  .single-post .entry-content{padding:44px 20px 64px;font-size:1.02rem}
  .single-post .entry-content .fx-cta{padding:30px 24px;border-radius:18px}
  .single-post .post-thumb img,.single-post .ast-single-post-featured-section img{max-height:280px;border-radius:14px}
}
@media(prefers-reduced-motion:reduce){
  .single-post .entry-content a,.single-post .entry-content tbody tr:hover td{transition:none}
}

/* ===== FX-BLOG-FIX1 : bandeau de titre vraiment pleine largeur ===== */
.single-post header.entry-header{max-width:100%!important;width:100%!important;margin-left:0!important;margin-right:0!important;left:auto!important;right:auto!important}
.single-post .ast-single-post-featured-section,.single-post .post-thumb{max-width:100%!important}
.single-post .ast-single-post-featured-section img,.single-post .post-thumb img{max-width:1080px;margin:0 auto}
.single-post .site-main > article.post{padding:0!important;margin:0!important;max-width:100%!important;border-radius:0!important;box-shadow:none!important}
.single-post .entry-content{max-width:100%!important}

/* ===== FX-BLOG-FIX2 : colonne unifiee, meta distincte, en-tete blanc masque ===== */
/* Meme largeur pour le titre et le corps de texte */
.single-post{--fxb-read:840px;--fxb-wide:840px}
.single-post .entry-title,.single-post .entry-meta{max-width:840px!important}
.single-post .entry-content > figure.wp-block-table,.single-post .entry-content > figure.wp-block-image,.single-post .entry-content > .fx-cta{max-width:840px!important}
.single-post .ast-single-post-featured-section img,.single-post .post-thumb img{max-width:840px!important}
/* Meta : couleur nettement distincte du titre */
.single-post .entry-meta,.single-post .entry-header .entry-meta{color:#7fd8bb!important;font-size:.83rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.single-post .entry-meta a{color:#7fd8bb!important;border-bottom:0!important}
/* Auteur retire (ceinture et bretelles) */
.single-post .entry-meta .posted-by,.single-post .entry-meta .author,.single-post .entry-meta .vcard{display:none!important}
/* Regle remplacee par FX-HDR-UNIFORME (voir plus bas) */

/* ===== FX-BLOG-FAQ : accordeons identiques a ceux du site ===== */
.single-post .entry-content details{max-width:840px;margin:0 auto 13px;background:#fff;border:1px solid var(--fxb-line);border-radius:14px;overflow:hidden;transition:box-shadow .3s}
.single-post .entry-content details[open]{box-shadow:0 14px 32px rgba(2,80,72,.10)}
.single-post .entry-content summary{list-style:none;cursor:pointer;position:relative;padding:21px 74px 21px 24px;font-weight:700;font-size:1.02rem;color:var(--fxb-g9);line-height:1.4}
.single-post .entry-content summary::-webkit-details-marker{display:none}
.single-post .entry-content summary:before{content:'';position:absolute;right:20px;top:50%;width:34px;height:34px;margin-top:-17px;border-radius:50%;background:var(--fxb-mist);border:1.5px solid var(--fxb-line);transition:background .35s,border-color .35s,transform .35s}
.single-post .entry-content summary:after{content:'';position:absolute;right:20px;top:50%;width:34px;height:34px;margin-top:-17px;border-radius:50%;transition:transform .45s cubic-bezier(.16,1,.3,1),background-size .35s;background-image:linear-gradient(var(--fxb-g),var(--fxb-g)),linear-gradient(var(--fxb-g),var(--fxb-g));background-repeat:no-repeat,no-repeat;background-position:center,center;background-size:13px 2px,2px 13px}
.single-post .entry-content summary:hover:before{background:#e4ece8;border-color:#c8dbd4;transform:scale(1.06)}
.single-post .entry-content details[open] summary:before{background:var(--fxb-g);border-color:var(--fxb-g)}
.single-post .entry-content details[open] summary:after{transform:rotate(180deg);background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-size:13px 2px,0 13px}
.single-post .entry-content details .an{padding:0 24px 22px;font-size:.98rem;color:var(--fxb-ink)}
.single-post .entry-content details .an p{margin:0}

/* ===== FX-BLOG-FIX3 : specificite (Astra + #content gagnaient) ===== */
/* Titre : #content h1 et une regle .single-post .entry-title plus tardive ecrasaient le blanc */
body.single-post .entry-header .entry-title,body.single-post header.entry-header h1{color:#fff!important}
/* Colonne de lecture : Astra force max-width:none avec 3 classes */
body.single-post .entry-content > *{max-width:var(--fxb-read)!important;margin-left:auto!important;margin-right:auto!important}
body.single-post .entry-content > figure.wp-block-table,body.single-post .entry-content > figure.wp-block-image,body.single-post .entry-content > .fx-cta,body.single-post .entry-content > details{max-width:var(--fxb-wide)!important}
body.single-post .entry-content > .fx-cta{padding-left:38px;padding-right:38px}

/* ===== FX-HEADING-VAR : correctif durable titres sur fond sombre =====
   Le kit Elementor force #content h1-h3 en vert fonce. Il utilise desormais
   var(--fx-heading,var(--fx-dark)) : toute section sombre declare --fx-heading
   et ses titres deviennent lisibles automatiquement. */
body.single-post .entry-header,
.fxr .hero,.fxr .aides,.fxr .zones,.fxr .cta,.fxr .sim,.fxr .util,
.entry-content .fx-cta,.fx-cta{--fx-heading:#fff}

/* ===== FX-BLOG-FIX4 : alignement titre/texte + date plus lisible ===== */
body.single-post header.entry-header{text-align:left!important}
body.single-post .entry-title{text-align:left!important;margin-left:auto!important;margin-right:auto!important}
body.single-post .entry-meta{text-align:left!important;color:#cdf1e3!important;font-size:.9rem!important;letter-spacing:.06em;font-weight:700;opacity:1!important}
body.single-post .entry-meta a,body.single-post .entry-meta span,body.single-post .entry-meta time{color:#cdf1e3!important}

/* ===== FX-HDR-FULLBLEED : barre d en-tete sur toute la largeur =====
   .ast-primary-header-bar etait en position:fixed avec max-width:1580px et
   margin 0.4167px : il restait un liseré sous-pixel a gauche et a droite. */
.ast-primary-header-bar,.ast-above-header-bar,.ast-below-header-bar{max-width:none!important;width:auto!important;left:0!important;right:0!important;margin-left:0!important;margin-right:0!important}

/* ===== FX-BLOG-1200 : colonne des articles a 1200px sur PC, fluide en dessous ===== */
.single-post{--fxb-read:1200px;--fxb-wide:1200px}
body.single-post .entry-header{padding-left:clamp(20px,4vw,40px);padding-right:clamp(20px,4vw,40px)}
body.single-post .entry-content{padding-left:clamp(20px,4vw,40px);padding-right:clamp(20px,4vw,40px)}
body.single-post .entry-title,body.single-post .entry-meta{max-width:1200px!important}
body.single-post .entry-content > *{max-width:1200px!important}
body.single-post .entry-content > figure.wp-block-table,body.single-post .entry-content > figure.wp-block-image,body.single-post .entry-content > .fx-cta,body.single-post .entry-content > details{max-width:1200px!important}
body.single-post .ast-single-post-featured-section img,body.single-post .post-thumb img{max-width:1200px!important}
/* Confort de lecture sur une colonne large */
body.single-post .entry-content{font-size:clamp(1.02rem,.98rem + .18vw,1.12rem);line-height:1.8}
@media(min-width:1100px){body.single-post .entry-content > p,body.single-post .entry-content > ul,body.single-post .entry-content > ol{max-width:1200px!important}}
@media(max-width:1240px){.single-post{--fxb-read:100%;--fxb-wide:100%}}

/* ===== FX-UPDATED-NOTE : date de mise a jour en bas d article ===== */
body.single-post .entry-header .entry-meta{display:none!important}
body.single-post .entry-content p.fx-updated{margin:2.6em auto 0;padding-top:1.4em;border-top:1px solid var(--fxb-line);font-size:.86rem;color:var(--fxb-soft);font-style:normal}
body.single-post .entry-content p.fx-updated em{font-style:normal;background:none;border:0;padding:0;color:var(--fxb-soft);text-transform:none;letter-spacing:0;font-size:.86rem;font-weight:500;display:inline}

/* ===== FX-BLOG-RHYTHM : alignement et respiration du corps d article ===== */
body.single-post .entry-content{line-height:1.82;text-align:left}
body.single-post .entry-content p{margin:0 auto 1.5em;max-width:1200px}
body.single-post .entry-content h2{margin-top:2.9em;margin-bottom:.85em}
body.single-post .entry-content h3{margin-top:2.1em;margin-bottom:.65em}
body.single-post .entry-content h2+p,body.single-post .entry-content h3+p{margin-top:0}
/* Listes : puces alignees sur le bord du texte, interligne aere */
body.single-post .entry-content ul,body.single-post .entry-content ol{margin:0 auto 1.7em;padding-left:0;max-width:1200px}
body.single-post .entry-content ul{list-style:none}
body.single-post .entry-content ul li{position:relative;padding:.42em 0 .42em 2em;margin:0;line-height:1.75}
body.single-post .entry-content ul li:before{content:'';position:absolute;left:.45em;top:1.02em;width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#9fe8cf,#025048)}
body.single-post .entry-content ol{list-style:none;counter-reset:fxli}
body.single-post .entry-content ol li{position:relative;padding:.42em 0 .42em 2.3em;margin:0;line-height:1.75;counter-increment:fxli}
body.single-post .entry-content ol li:before{content:counter(fxli);position:absolute;left:0;top:.5em;width:23px;height:23px;border-radius:50%;background:var(--fxb-mist);color:var(--fxb-g);font-size:.76rem;font-weight:800;display:flex;align-items:center;justify-content:center}
body.single-post .entry-content li+li{margin-top:.2em}
body.single-post .entry-content li>ul,body.single-post .entry-content li>ol{margin:.45em 0 .1em}
body.single-post .entry-content li p{margin:0}
/* Tableaux et figures : meme rythme vertical */
body.single-post .entry-content figure{margin-top:2.4em;margin-bottom:2.4em}

/* ===== FX-FAQ-TITLE : titres de questions homogenes partout ===== */
body.single-post .entry-content details summary,
.fxr .faq summary{font-family:inherit;font-size:1.04rem;font-weight:700;line-height:1.45;letter-spacing:-.005em;color:var(--fxb-g9,#01332e)}
body.single-post .entry-content details{margin-bottom:14px}
body.single-post .entry-content details .an{line-height:1.78}
body.single-post .entry-content details .an p{margin:0 0 .9em}
body.single-post .entry-content details .an p:last-child{margin-bottom:0}

/* ===== FX-RECAPTCHA : badge masque, protection conservee ===== */
.grecaptcha-badge{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
/* Bouton retour en haut : ne doit jamais recouvrir le logo */
.ast-scroll-top,#ast-scroll-top,.hfe-scroll-to-top-wrap{z-index:9!important;bottom:24px!important;right:24px!important;left:auto!important;top:auto!important}

/* ===== FX-BLOG-ARCHIVE : page /blog/ en grille pleine largeur, sans colonne laterale ===== */
body.blog #secondary,body.archive #secondary,body.category #secondary,body.search #secondary{display:none!important}
body.blog .site-content > .ast-container,body.archive .site-content > .ast-container,body.category .site-content > .ast-container{display:block!important;max-width:100%!important;width:100%!important;padding:0!important;margin:0!important}
body.blog .content-area,body.archive .content-area,body.category .content-area{width:100%!important;max-width:100%!important;float:none!important;margin:0!important}
body.blog .site-main,body.archive .site-main,body.category .site-main{width:100%!important;max-width:100%!important}
/* Bandeau de titre du blog */
body.blog .ast-archive-description,body.category .ast-archive-description{max-width:none!important;width:100vw!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;padding:70px clamp(20px,4vw,40px) 60px!important;background:radial-gradient(120% 150% at 20% 0%,#0e6455 0%,#01332e 58%,#00201c 100%);--fx-heading:#fff;position:relative;overflow:hidden}
body.blog .ast-archive-description:after{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:24px 24px;opacity:.5;pointer-events:none}
body.blog .ast-archive-description > *{position:relative;z-index:2;max-width:1200px;margin-left:auto;margin-right:auto}
body.blog .ast-archive-description .ast-archive-title,body.blog .ast-archive-description h1{color:#fff!important;font-size:clamp(1.9rem,3.4vw,2.9rem);font-weight:800;letter-spacing:-.02em;margin:0}
body.blog .ast-archive-description p{color:#b9d9cf!important;margin:14px 0 0;max-width:56rem}
/* Grille des articles */
body.blog .site-main > .ast-row,body.archive .site-main > .ast-row,body.category .site-main > .ast-row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;max-width:1240px;margin:56px auto 40px!important;padding:0 clamp(20px,4vw,40px);width:auto!important;float:none!important}
body.blog .ast-article-post,body.archive .ast-article-post,body.category .ast-article-post{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;float:none!important;display:flex;flex-direction:column;background:#fff;border:1px solid #e3eae6;border-radius:18px;overflow:hidden;box-shadow:0 2px 6px rgba(1,40,35,.05),0 12px 30px rgba(1,40,35,.06);transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s}
body.blog .ast-article-post:hover{transform:translateY(-8px);box-shadow:0 18px 44px rgba(1,40,35,.14)}
body.blog .ast-article-post .post-thumb,body.blog .ast-article-post .ast-blog-featured-section{margin:0!important;aspect-ratio:16/10;overflow:hidden}
body.blog .ast-article-post .post-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1);border-radius:0}
body.blog .ast-article-post:hover .post-thumb img{transform:scale(1.06)}
body.blog .ast-article-post .ast-blog-single-element,body.blog .ast-article-post .entry-content,body.blog .ast-article-post .entry-header{padding-left:24px;padding-right:24px}
body.blog .ast-article-post .entry-title{font-size:1.12rem!important;line-height:1.35;font-weight:800;margin:18px 0 8px}
body.blog .ast-article-post .entry-title a{color:#01332e;text-decoration:none}
body.blog .ast-article-post .entry-title a:hover{color:#025048}
body.blog .ast-article-post .entry-content p{font-size:.93rem;line-height:1.65;color:#5c6b76;margin:0 0 14px}
body.blog .ast-article-post .ast-readmore-wrapper,body.blog .ast-article-post .read-more{padding-bottom:24px}
body.blog .ast-article-post .ast-button,body.blog .ast-article-post .read-more a{color:#025048;font-weight:700;text-decoration:none}
body.blog .ast-pagination{max-width:1240px;margin:0 auto 70px;padding:0 clamp(20px,4vw,40px)}
@media(max-width:1024px){body.blog .site-main > .ast-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}}
@media(max-width:640px){body.blog .site-main > .ast-row{grid-template-columns:minmax(0,1fr);gap:22px;margin-top:36px!important}body.blog .ast-archive-description{padding:48px 20px 40px!important}}

/* ===== FX-BLOG-HERO2 : bandeau photo du hub blog ===== */
.fx-blog-hero{position:relative;width:100%;margin-left:0;margin-right:0;padding:104px clamp(20px,4vw,40px) 96px;overflow:hidden;--fx-heading:#fff;background:#01332e}
.fx-blog-hero:before{content:'';position:absolute;inset:0;background-image:url('https://www.frexolaire.com/wp-content/uploads/2026/03/pexels-photo-35691079-35691079-768x576.jpg');background-size:cover;background-position:center 38%;filter:saturate(.85) contrast(1.05);transform:scale(1.04)}
@media (min-width:769px){.fx-blog-hero:before{background-image:url('https://www.frexolaire.com/wp-content/uploads/2026/03/pexels-photo-35691079-35691079-1024x768.jpg')}}
@media (min-width:1200px){.fx-blog-hero:before{background-image:url('https://www.frexolaire.com/wp-content/uploads/2026/03/pexels-photo-35691079-35691079-1536x1152.jpg')}}
.fx-blog-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,rgba(0,32,28,.94) 0%,rgba(1,51,46,.86) 42%,rgba(14,100,85,.62) 100%)}
.fx-blog-hero-in{position:relative;z-index:3;max-width:1200px;margin:0 auto}
.fx-blog-hero-in:before{content:'';display:block;width:56px;height:3px;border-radius:2px;background:linear-gradient(90deg,#9fe8cf,#025048);margin-bottom:22px}
#content .fx-blog-hero h1,.fx-blog-hero h1{color:#fff!important;font-size:clamp(2rem,3.8vw,3.2rem);font-weight:800;letter-spacing:-.025em;line-height:1.12;margin:0;text-shadow:0 2px 18px rgba(0,0,0,.28);max-width:22ch}
.fx-blog-hero p{color:#cfe6dd;margin:20px 0 0;max-width:52rem;font-size:1.06rem;line-height:1.72;text-shadow:0 1px 10px rgba(0,0,0,.24)}
@media(max-width:640px){.fx-blog-hero{padding:64px 20px 56px}.fx-blog-hero h1{max-width:none}}
@media(prefers-reduced-motion:reduce){.fx-blog-hero:before{transform:none}}

/* ===== FX-PHOTO-TINT2 : teinte de marque sur toutes les photos ===== */
:root{--fx-tint:#01332e;--fx-tint2:#0e6455;--fx-mint:#9fe8cf}
/* Photo d ouverture d article */
body.single-post .entry-content > figure.wp-block-image.fx-inline{position:relative;margin:0 auto 2.6em;border-radius:20px;overflow:hidden;box-shadow:0 18px 44px rgba(1,40,35,.18);isolation:isolate}
body.single-post .entry-content > figure.wp-block-image.fx-inline img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;border-radius:0;box-shadow:none;filter:saturate(.82) contrast(1.08) brightness(.97);transition:transform .7s cubic-bezier(.16,1,.3,1),filter .5s}
body.single-post .entry-content > figure.wp-block-image.fx-inline:hover img{transform:scale(1.02);filter:saturate(.95) contrast(1.06) brightness(1)}
/* Voile emeraude : donne a toutes les photos la meme dominante de marque */
body.single-post .entry-content > figure.wp-block-image.fx-inline:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(150deg,rgba(1,51,46,.42) 0%,rgba(14,100,85,.22) 45%,rgba(159,232,207,.14) 100%);mix-blend-mode:multiply;z-index:1}
/* Filet d accent */
body.single-post .entry-content > figure.wp-block-image.fx-inline:before{content:'';position:absolute;left:0;right:0;bottom:0;height:4px;z-index:3;background:linear-gradient(90deg,var(--fx-mint),#025048)}
/* Cartes du hub : meme dominante */
body.blog .ast-article-post .post-thumb{position:relative;isolation:isolate}
body.blog .ast-article-post .post-thumb img{filter:saturate(.82) contrast(1.08) brightness(.97);transition:transform .6s cubic-bezier(.16,1,.3,1),filter .45s}
body.blog .ast-article-post:hover .post-thumb img{filter:saturate(.95) contrast(1.06) brightness(1)}
body.blog .ast-article-post .post-thumb:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(150deg,rgba(1,51,46,.40) 0%,rgba(14,100,85,.20) 48%,rgba(159,232,207,.12) 100%);mix-blend-mode:multiply;z-index:1}
/* Images dans le corps */
body.single-post .entry-content figure.wp-block-image:not(.fx-inline) img{filter:saturate(.88) contrast(1.04)}
@media(prefers-reduced-motion:reduce){body.single-post .entry-content > figure.wp-block-image.fx-inline:hover img,body.blog .ast-article-post:hover .post-thumb img{transform:none}}

/* ===== FX-BLEED4 : bandeau titre pleine largeur SANS 100vw (la barre de defilement faussait le calcul) ===== */
body.single-post .site-content{overflow-x:clip}
body.single-post .site-content > .ast-container{display:block!important;max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
body.single-post .content-area,body.single-post .site-main{display:block!important;max-width:none!important;width:100%!important;margin:0!important;padding:0!important;float:none!important}
body.single-post article.post{display:block!important;max-width:none!important;width:100%!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff}
body.single-post header.entry-header{display:block!important;position:relative!important;width:100%!important;max-width:none!important;margin:0!important;left:auto!important;right:auto!important;box-sizing:border-box;padding:74px clamp(20px,4vw,40px) 66px}
body.single-post #secondary,body.single-post .widget-area{display:none!important}

/* ===== FX-BORDER-FIX : .content-area portait une bordure gauche de 1px =====
   (rendue 0,833px en DPR 1,2) : c est elle qui creait le liseré a gauche. */
body.single-post .content-area,body.single-post .site-main,body.single-post article.post,
body.blog .content-area,body.blog .site-main,body.archive .content-area,body.category .content-area{border:0!important;outline:0!important}
body.single-post header.entry-header{border:0!important}

/* ===== FX-BLOG-HERO-FIX : bandeau du hub pleine largeur sans 100vw ===== */
body.blog .site-content{overflow-x:clip}
body.blog .site-content > .ast-container{display:block!important;max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
body.blog .content-area,body.blog .site-main{display:block!important;max-width:none!important;width:100%!important;margin:0!important;padding:0!important;float:none!important;border:0!important}
.fx-blog-hero{width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;left:auto!important;right:auto!important;box-sizing:border-box;border:0!important}

/* ===== FX-CARD-FIX : vignette pleine, voile exactement a la taille de la photo ===== */
/* Bandeaux rectangulaires */
.fx-blog-hero,body.single-post header.entry-header{border-radius:0!important}

/* Carte : l image occupe toute la largeur, le texte garde ses marges */
body.blog .ast-article-post{padding:0!important;border-radius:18px;overflow:hidden}
body.blog .ast-article-post .ast-article-inner{padding:0!important;border-radius:0!important;overflow:hidden}
body.blog .ast-article-post .ast-blog-featured-section,
body.blog .ast-article-post .post-thumb{padding:0!important;margin:0!important;border-radius:0!important;aspect-ratio:auto!important;overflow:visible!important}
/* le conteneur interne porte le ratio, les coins et le voile */
body.blog .ast-article-post .post-thumb > *{display:block;width:100%;aspect-ratio:16/10;overflow:hidden;position:relative;isolation:isolate;border-radius:0}
body.blog .ast-article-post .post-thumb a{display:block;width:100%;height:100%}
body.blog .ast-article-post .post-thumb img{width:100%!important;height:100%!important;max-width:none!important;aspect-ratio:auto!important;object-fit:cover;object-position:center;display:block;border-radius:0!important;filter:saturate(.82) contrast(1.08) brightness(.97);transition:transform .6s cubic-bezier(.16,1,.3,1),filter .45s}
body.blog .ast-article-post:hover .post-thumb img{transform:scale(1.05);filter:saturate(.95) contrast(1.06) brightness(1)}
/* voile de marque : porte par le conteneur interne, donc exactement a la taille de la photo */
body.blog .ast-article-post .post-thumb:after{display:none!important}
body.blog .ast-article-post .post-thumb > *:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:2;background:linear-gradient(150deg,rgba(1,51,46,.40) 0%,rgba(14,100,85,.20) 48%,rgba(159,232,207,.12) 100%);mix-blend-mode:multiply}
/* texte de la carte */
body.blog .ast-article-post .entry-header,
body.blog .ast-article-post .entry-content,
body.blog .ast-article-post .ast-blog-single-element,
body.blog .ast-article-post .ast-readmore-wrapper{padding-left:22px!important;padding-right:22px!important}
body.blog .ast-article-post .entry-header{padding-top:18px!important}
body.blog .ast-article-post .ast-readmore-wrapper{padding-bottom:22px!important}

/* Photo d ouverture d article : coins arrondis, voile a la taille exacte */
body.single-post .entry-content > figure.wp-block-image.fx-inline{border-radius:22px;overflow:hidden;line-height:0;font-size:0;position:relative;isolation:isolate}
body.single-post .entry-content > figure.wp-block-image.fx-inline img{border-radius:0!important;display:block;width:100%;height:100%}
body.single-post .entry-content figure.wp-block-image:not(.fx-inline) img{border-radius:16px}

/* Pagination : identique a la boutique Astra */
.ast-pagination .nav-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}
.ast-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:46px;padding:12px;font-size:16px;font-weight:400;line-height:1;color:#025048;background:transparent;border:0;border-radius:0;text-decoration:none;transition:background .25s,color .25s}
.ast-pagination .page-numbers:hover{background:#eef4f1;color:#01332e}
.ast-pagination .page-numbers.current{background:#025048;color:#f8f9fa}
.ast-pagination .page-numbers.dots{color:#5c6b76;min-width:32px;padding:12px 4px}
.ast-pagination .page-numbers.dots:hover{background:transparent}
.ast-pagination .page-numbers.next,.ast-pagination .page-numbers.prev{width:auto;padding:12px 18px;font-weight:600;gap:6px}
.ast-pagination{margin:0 auto 72px;max-width:1240px;padding:0 clamp(20px,4vw,40px)}

/* ===== FX-CURVES : coins arrondis sur les photos ===== */
body.blog .ast-article-post .post-thumb > *{border-radius:14px!important}
body.blog .ast-article-post .post-thumb > *:after{border-radius:14px}
body.blog .ast-article-post .post-thumb img{border-radius:14px!important}
body.blog .ast-article-post .post-thumb{padding:14px 14px 0!important}
body.blog .ast-article-post .ast-article-inner{padding:0!important}

/* ===== FX-BLOG-HUB : index thematique de /blog/ ===== */
.blog .fx-blog-illu{max-width:1080px;margin:-28px auto 0;padding:0 24px;position:relative;z-index:3}
.blog .fx-blog-illu img{width:100%;height:auto;max-height:320px;object-fit:cover;
  border-radius:20px;box-shadow:0 26px 60px rgba(1,40,35,.28);display:block}

.blog .fx-blog-intro{max-width:760px;margin:44px auto 0;padding:0 24px}
.blog .fx-blog-intro p{font-size:1.08rem;line-height:1.75;color:#3a4750;margin:0 0 1.1em}
.blog .fx-blog-intro strong{color:#01332e}

.blog .site-main > .fx-blog-intro ~ h2,
.blog h2{max-width:1080px;margin:2.4em auto .5em;padding:0 24px;
  font-size:clamp(1.45rem,2.4vw,1.95rem);line-height:1.22;font-weight:800;
  color:#01332e;letter-spacing:-.015em}
.blog h2:before{content:"";display:block;width:52px;height:3px;border-radius:2px;
  background:linear-gradient(90deg,#9fe8cf,#025048);margin-bottom:.7em}
.blog .fx-blog-intro + h2 + p{max-width:1080px;margin:0 auto 1.6em;padding:0 24px;color:#5c6b76}

/* --- Une rubrique --- */
.blog .fx-cat-sec{max-width:1080px;margin:0 auto 20px;padding:26px 28px;
  background:#fff;border:1px solid #e3eae6;border-radius:18px;
  box-shadow:0 10px 30px rgba(1,40,35,.06)}
.blog .fx-cat-sec h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:0 0 .35em;font-size:1.22rem;font-weight:800;color:#0a3f35;line-height:1.3}
.blog .fx-cat-sec h3 a{color:#01332e;text-decoration:none;border-bottom:2px solid transparent;
  transition:border-color .2s,color .2s}
.blog .fx-cat-sec h3 a:hover{color:#025048;border-bottom-color:#9fe8cf}
.blog .fx-cat-sec h3 .fx-ico{font-size:1.35rem;line-height:1}
.blog .fx-cat-sec h3 .fx-cnt{font-style:normal;font-size:.74rem;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:#025048;
  background:#f4f7f5;border:1px solid #e3eae6;padding:4px 10px;border-radius:999px}
.blog .fx-cat-sec > p{margin:0 0 1em;color:#5c6b76;font-size:.97rem;line-height:1.6}

/* --- Liste d articles d une rubrique --- */
.blog .fx-cat-list{list-style:none;margin:0 0 .4em;padding:0;
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 26px}
.blog .fx-cat-list li{position:relative;padding:7px 0 7px 20px;margin:0;
  border-bottom:1px solid #f0f4f2}
.blog .fx-cat-list li:before{content:"";position:absolute;left:2px;top:15px;
  width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,#9fe8cf,#025048)}
.blog .fx-cat-list a{color:#26313a;text-decoration:none;font-size:.95rem;line-height:1.45;
  transition:color .2s}
.blog .fx-cat-list a:hover{color:#025048;text-decoration:underline;text-underline-offset:3px}

.blog .fx-cat-more{margin:.9em 0 0}
.blog .fx-cat-more a{color:#025048;font-weight:700;font-size:.93rem;text-decoration:none;
  border-bottom:1px solid rgba(2,80,72,.3);transition:border-color .2s}
.blog .fx-cat-more a:hover{border-bottom-color:#025048}

/* --- Bloc d appel a l action de fin de page --- */
.blog .fx-cta{max-width:1080px;margin:34px auto 0;padding:38px 34px;border-radius:22px;
  background:radial-gradient(120% 140% at 15% 0%,#0e6455 0%,#01332e 60%,#00201c 100%);
  color:#fff;position:relative;overflow:hidden}
.blog .fx-cta:after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:24px 24px;opacity:.5}
.blog .fx-cta > *{position:relative;z-index:2}
.blog .fx-cta h2{color:#fff;margin:0 0 .6em;padding:0;max-width:none}
.blog .fx-cta p{color:#d5eae2;margin:0 0 1em;line-height:1.7}
.blog .fx-cta ul{list-style:none;margin:0;padding:0}
.blog .fx-cta li{position:relative;padding:.3em 0 .3em 1.7em;color:#d5eae2}
.blog .fx-cta li:before{content:"";position:absolute;left:.2em;top:.95em;
  width:7px;height:7px;border-radius:50%;background:#9fe8cf}
.blog .fx-cta a{color:#9fe8cf;text-decoration:underline;text-underline-offset:3px}
.blog .fx-cta a:hover{color:#fff}

@media(max-width:782px){
  .blog .fx-cat-list{grid-template-columns:1fr}
  .blog .fx-cat-sec{padding:22px 20px;border-radius:14px}
  .blog .fx-blog-illu img{max-height:190px;border-radius:14px}
  .blog .fx-cta{padding:28px 22px;border-radius:16px}
}
/* ===== fin FX-BLOG-HUB ===== */


/* ===== FX-HDR-UNIFORME : le meme en-tete sur toutes les pages =====
   Deux ecarts faisaient que l en-tete changeait d une page a l autre :
   1. la barre blanche du haut etait masquee sur l accueil et les articles
      (ancienne regle « pages en cours de refonte ») et visible ailleurs ;
   2. la barre principale mesurait 56 px sur l accueil, 83 px sur contact,
      100 px sur la boutique et les articles : la navigation s etirait a
      100 % de la rangee au lieu de garder sa hauteur de contenu.
   On aligne tout sur l apparence de l accueil. Le logo et le menu, eux,
   etaient deja identiques partout (150x29, 16 px, blanc).
   ================================================================= */

/* 1. Barre utilitaire du haut : masquee partout, comme sur l accueil */
.ast-above-header-wrap{display:none!important}

/* 2. Barre principale : hauteur de contenu, centree, identique partout */
@media(min-width:922px){
  .ast-primary-header-bar .ast-builder-grid-row{min-height:56px!important;align-items:center!important}
  .ast-primary-header-bar .site-header-primary-section-left,
  .ast-primary-header-bar .site-header-primary-section-left-center,
  .ast-primary-header-bar .site-header-primary-section-center,
  .ast-primary-header-bar .site-header-primary-section-right-center,
  .ast-primary-header-bar .site-header-primary-section-right{
    height:auto!important;min-height:0!important;align-items:center!important}
  .ast-primary-header-bar .ast-builder-menu,
  .ast-primary-header-bar .ast-main-header-bar-alignment,
  .ast-primary-header-bar .main-header-bar-navigation,
  .ast-primary-header-bar .main-header-bar-navigation .main-header-menu{
    height:auto!important;min-height:0!important}
}
/* 3. Largeur du conteneur : l accueil laissait la barre en max-width:100%
      (1486 px, menu sur une ligne = 50 px) tandis que les autres pages la
      bridaient a 1240 px : le menu, qui demande 1004 px, passait a la ligne
      et doublait la hauteur (100 px). On libere la largeur partout.
      FX-HDR-LARGEUR */
@media(min-width:922px){
  .ast-primary-header-bar .site-primary-header-wrap,
  .ast-primary-header-bar > .ast-builder-grid-row-container-wrap,
  .ast-primary-header-bar .ast-builder-grid-row-container{max-width:100%!important}
  .ast-primary-header-bar .main-header-menu{flex-wrap:nowrap!important}
}
/* 4. Placement des elements : sur l accueil le conteneur d en-tete n a aucun
      padding lateral, sur les autres pages il en a 20 px. Resultat : le logo
      demarrait a 57 px sur l accueil et a 77 px ailleurs, et les sections
      gauche/droite perdaient 20 px de large. Tout le reste (largeur de barre
      1581, conteneur 1486, section centrale x=289 w=1003) etait deja
      identique. On aligne sur l accueil. FX-HDR-PADDING */
@media(min-width:922px){
  .ast-primary-header-bar .site-primary-header-wrap{padding-left:0!important;padding-right:0!important}
}

/* ===== FX-BOUTIQUE-INTRO : chapeau des pages de categorie =====
   Le texte d introduction sortait en un seul pave de 1145 px de large,
   soit ~140 caracteres par ligne (le confort de lecture se situe entre 60
   et 75), colle sous un grand vide et sans aucune hierarchie.
   On lui donne une mesure lisible, un rythme, et une separation nette
   d avec la grille de produits. Ne touche que les pages d archive :
   ni panier, ni paiement, ni compte. ============================== */

.ast-archive-description{
  margin:clamp(34px,5vw,58px) auto 30px!important;padding:0 0 26px!important;
  border-bottom:1px solid #e3eae6}

.ast-archive-description .ast-archive-title,
.ast-archive-description .page-title{
  margin:0 0 .45em!important;
  font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.15;
  color:#01332e;letter-spacing:-.02em}

.ast-archive-description .ast-archive-title:after,
.ast-archive-description .page-title:after{
  content:"";display:block;width:56px;height:3px;border-radius:2px;
  margin:.55rem 0 1.15rem;
  background:linear-gradient(90deg,#9fe8cf,#025048)}

.ast-archive-description p{
  font-size:1.02rem;line-height:1.8;
  color:#4a5560;margin:0 0 1.05em}
.ast-archive-description p:last-child{margin-bottom:0}

/* Premiere phrase en chapeau : elle porte la promesse de la categorie */
.ast-archive-description p:first-of-type{
  font-size:1.14rem;line-height:1.72;color:#26313a;font-weight:500}
.ast-archive-description p:first-of-type::first-line{color:#01332e}

.ast-archive-description strong{color:#01332e}
.ast-archive-description a{color:#025048;text-decoration:underline;
  text-underline-offset:3px;text-decoration-color:rgba(2,80,72,.35)}
.ast-archive-description a:hover{text-decoration-color:#025048}

@media(max-width:782px){
  .ast-archive-description{padding-bottom:20px!important;margin-bottom:22px!important}
  .ast-archive-description p{font-size:1rem;line-height:1.72}
  .ast-archive-description p:first-of-type{font-size:1.06rem}
}

/* ===== FX-PIED-ALIGNEMENT : colonnes du pied alignees sur le haut =====
   La rangee etait en align-items:center. Chaque colonne etant centree
   verticalement et leurs hauteurs etant inegales (logo 56, Nos Services
   167, Informations 273, Adresse 133), les titres se retrouvaient
   decales de 109 px les uns par rapport aux autres.
   On aligne sur le haut, et on redonne un espace franc entre les blocs
   une fois empiles sur telephone.
   Note de portee : le pied est commun a tout le site, donc a la boutique
   aussi. Il ne s agit que d alignement visuel : aucun element du panier,
   du paiement ou du compte n est touche. ============================== */

.site-footer .site-primary-footer-inner-wrap,
.site-footer .ast-builder-grid-row{align-items:flex-start!important}
.site-footer [class*="site-footer-primary-section-"]{align-items:flex-start!important}
.site-footer .footer-widget-area{width:100%}

/* Titres de colonne alignes entre eux */
.site-footer .footer-widget-area .wp-block-heading,
.site-footer .footer-widget-area h2,
.site-footer .footer-widget-area h3{margin-top:0!important}

/* Telephone et tablette : les colonnes s empilent, il leur faut de l air */
@media(max-width:921px){
  .site-footer .site-primary-footer-inner-wrap{row-gap:36px!important}
  .site-footer [class*="site-footer-primary-section-"]{
    margin-bottom:0!important;padding-bottom:0!important}
  .site-footer .footer-widget-area{padding-bottom:4px}
  .site-footer .footer-widget-area .wp-block-heading,
  .site-footer .footer-widget-area h2,
  .site-footer .footer-widget-area h3{margin-bottom:12px!important}
}
@media(max-width:544px){
  .site-footer .site-primary-footer-inner-wrap{row-gap:30px!important}
}

/* ===== FX-MENU-MOBILE-OUVERTURE : le menu s ouvrait sans se voir =====
   Diagnostic : au clic sur le bouton, le JS d Astra fait bien son travail.
   body recoit ast-popup-nav-open, le tiroir recoit .active .show,
   display:block et visibility:visible. Mais son opacity restait a 0, le
   panneau interne restait pousse hors ecran (translateX(553px)) et le
   voile aussi a 0 : le menu s ouvrait reellement, invisible.
   Cause : Astra genere ces regles d etat ouvert dynamiquement. Au moment
   ou LiteSpeed calcule le CSS « utilise », le menu est ferme, ces classes
   n existent pas dans le DOM, il les juge inutilisees et les supprime.
   Aucune regle .ast-mobile-popup-drawer avec opacity ne subsistait dans
   les feuilles servies.
   On reecrit donc l etat ouvert explicitement, et on ajoute ces selecteurs
   a la liste blanche UCSS pour qu ils ne soient plus jamais retires. */

.ast-mobile-popup-drawer.active,
.ast-mobile-popup-drawer.show{opacity:1!important}

.ast-mobile-popup-drawer.active .ast-mobile-popup-inner{
  opacity:1!important;transform:translateX(0)!important;visibility:visible!important}

.ast-mobile-popup-drawer.active .ast-mobile-popup-overlay{
  opacity:1!important;visibility:visible!important}

.ast-mobile-popup-drawer.active .ast-mobile-popup-content{opacity:1!important}

/* Le fond ne doit pas defiler derriere le menu ouvert */
body.ast-popup-nav-open{overflow:hidden}

/* Confort de navigation : cibles tactiles franches et hierarchie lisible */
@media(max-width:921px){
  .ast-mobile-popup-drawer .main-header-menu .menu-link,
  .ast-mobile-popup-drawer .main-header-menu .menu-item > a{
    min-height:52px;display:flex;align-items:center;
    padding-top:12px;padding-bottom:12px;font-size:1rem}
  .ast-mobile-popup-drawer .main-header-menu .sub-menu .menu-link{
    min-height:46px;font-size:.95rem;padding-left:26px}
  .ast-mobile-popup-drawer .ast-menu-toggle{min-width:48px;min-height:48px}
  .ast-mobile-popup-drawer .menu-toggle-close{min-width:48px;min-height:48px}
}

/* ===== FX-WOO-TEXTE-BOUTONS =====
   1. Le client veut le texte des pages boutique justifie et sur toute la
      largeur du conteneur (1200 px). J avais bride la mesure a 72ch pour
      le confort de lecture ; c est son choix, on relache.
      La justification sans cesure creuse des « rivieres » entre les mots :
      on active donc hyphens et on autorise la coupure, sinon le remede est
      pire que le mal, surtout sur telephone.
   2. « Ajouter au panier » et « Choix des options » debordaient de leur
      bouton : le libelle etait force sur une seule ligne dans une largeur
      insuffisante. On autorise le retour a la ligne et on donne une
      hauteur minimale commune pour que tous les boutons restent alignes.
      Aucune modification de comportement : c est uniquement de la mise en
      forme, le mecanisme d ajout au panier n est pas touche.
   ========================================================================= */

/* --- 1. Texte justifie, pleine largeur --- */
.ast-archive-description p,
.woocommerce-product-details__short-description p,
.woocommerce-Tabs-panel p,
.term-description p{
  /* Le client a d abord demande la pleine largeur, puis juge que c etait
     trop : on borne a 1200 px, la largeur du conteneur du site. */
  max-width:1200px!important;
  text-align:justify;
  hyphens:auto;-webkit-hyphens:auto;
  overflow-wrap:break-word;word-break:normal}

.ast-archive-description{max-width:1200px!important}
.ast-archive-description p:first-of-type{max-width:1200px!important}

/* --- 2. Boutons du catalogue : le libelle tient dans le bouton --- */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce ul.products li.product a.button.product_type_variable,
.woocommerce ul.products li.product a.button.product_type_simple{
  white-space:normal!important;
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;height:auto!important;
  padding:11px 16px!important;
  line-height:1.25;text-align:center;
  font-size:.92rem;
  width:100%;max-width:100%;
  overflow-wrap:break-word;hyphens:none}

/* Tous les boutons d une meme rangee gardent la meme hauteur */
.woocommerce ul.products li.product{display:flex;flex-direction:column}
.woocommerce ul.products li.product .button{margin-top:auto}

@media(max-width:544px){
  .woocommerce ul.products li.product .button{font-size:.86rem;padding:10px 12px!important;min-height:46px}
}

/* ===== FX-MENUS-ESPACEMENT =====
   En-tete : Astra pose .main-header-menu .menu-link{padding:0 1em}, soit
   16 px de chaque cote et donc 32 px entre deux libelles. Sur un menu de
   cinq entrees dont une tres longue, cela etirait inutilement la barre.
   Ramene a 0,58em (~9 px), soit ~19 px entre entrees.
   Pied de page : le menu y est en disposition verticale ; l espacement
   demande est donc vertical. Les entrees etaient collees, on aere. */

@media(min-width:922px){
  .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link,
  .ast-primary-header-bar .main-header-menu > .menu-item > .menu-link{
    padding-left:.58em!important;padding-right:.58em!important}
}

.site-footer .footer-widget-area .menu-item > .menu-link,
.site-footer .widget_nav_menu li > a{
  /* Interligne juge trop haut par le client : resserre sur desktop,
     les cibles tactiles de 44 px restent garanties sous 921 px. */
  padding-top:3px!important;padding-bottom:3px!important;
  display:block;line-height:1.4}
.site-footer .footer-widget-area .menu li,
.site-footer .widget_nav_menu li{margin-bottom:0}
@media(max-width:921px){
  .site-footer .footer-widget-area .menu-item > .menu-link,
  .site-footer .widget_nav_menu li > a{
    padding-top:10px!important;padding-bottom:10px!important;min-height:44px}
}


/* ===== FX-BOUTIQUE-FILTRE : le filtre etait masque par une regle du blog =====
   Diagnostic : le bouton de filtre ne manquait pas, c est la colonne qui
   le porte qui etait masquee. Le bloc FX-BLOG-ARCHIVE, ecrit pour la page
   /blog/, declare « body.archive #secondary{display:none!important} ».
   Or /boutique/ et /categorie-produit/... portent aussi la classe body
   « archive » : la colonne des filtres produits disparaissait avec elle.
   On la retablit uniquement sur les archives boutique, en s appuyant sur
   ast-woo-shop-archive, classe qu Astra ne pose que sur la boutique et
   les taxonomies produit — verifiee absente de /panier/, /paiement/,
   /mon-compte/, des fiches produit et du blog. */
body.ast-woo-shop-archive #secondary{display:block!important}

/* ===== FX-BOUTIQUE-COLONNE : filtre a gauche, sous le titre =====
   Le probleme de placement : dans le DOM, #secondary (qui porte le filtre)
   est un frere de #primary et vient AVANT lui, tandis que le chapeau de
   categorie est un ENFANT de #primary. Le filtre ne pouvait donc pas se
   placer sous le titre et a gauche des produits.
   Solution : display:contents sur #primary fait remonter ses deux enfants
   — le chapeau et la zone principale — au rang d elements de la grille du
   conteneur. On peut alors poser le chapeau sur toute la largeur, le
   filtre en colonne de gauche et les produits a droite, sans deplacer une
   seule ligne de HTML.
   FX-BLOG-ARCHIVE forcait .content-area en width:100% pour la page /blog/ ;
   la grille reprend la main sur les seules archives boutique.
   Perimetre : ast-woo-shop-archive, classe qu Astra ne pose que sur la
   boutique et les taxonomies produit. Absente de /panier/, /paiement/,
   /mon-compte/ et des fiches produit. ================================== */

@media(min-width:993px){
  body.ast-woo-shop-archive .site-content > .ast-container{
    display:grid!important;
    /* FX-BLOG-ARCHIVE met padding:0!important sur ce conteneur : la colonne
       de filtres se retrouvait collee au bord gauche de la fenetre (x=0).
       On rend une marge laterale et on centre la grille. */
    max-width:1600px;margin-inline:auto!important;
    padding-left:clamp(14px,1.6vw,26px)!important;
    padding-right:clamp(14px,1.6vw,26px)!important;
    grid-template-columns:390px minmax(0,1fr);
    grid-template-areas:"tete tete" "filtre produits";
    column-gap:40px;align-items:start}

  body.ast-woo-shop-archive #primary{
    display:contents!important;width:auto!important;
    margin:0!important;padding:0!important}

  body.ast-woo-shop-archive .ast-archive-description{grid-area:tete;max-width:none!important;margin-inline:0!important}
  body.ast-woo-shop-archive #secondary{
    grid-area:filtre;width:auto!important;max-width:none!important;
    float:none!important;margin:0!important;position:sticky;top:76px}
  body.ast-woo-shop-archive .site-main{grid-area:produits;width:auto!important}

  /* Le chapeau reprend la pleine largeur de la grille */
  body.ast-woo-shop-archive .ast-archive-description p{max-width:100%!important}
}

/* Sous 993 px la colonne passe au-dessus des produits, apres le titre */
@media(max-width:992px){
  body.ast-woo-shop-archive .site-content > .ast-container{
    display:flex!important;flex-direction:column;gap:24px}
  body.ast-woo-shop-archive #primary{display:contents!important}
  body.ast-woo-shop-archive .ast-archive-description{order:1}
  body.ast-woo-shop-archive #secondary{order:2;width:100%!important;margin:0!important}
  body.ast-woo-shop-archive .site-main{order:3}
}

/* Le second exemplaire du filtre vit dans le tiroir hors ecran. Il est
   deja masque par Astra ; on le verrouille pour qu une regle perdue ne
   puisse pas le faire apparaitre par-dessus la page. */
body.ast-woo-shop-archive .astra-off-canvas-sidebar-wrapper:not(.open):not(.active){
  visibility:hidden!important;opacity:0!important;pointer-events:none!important}


/* ===== FX-FILTRE-HAUTEUR : le filtre etait tronque, d ou le vide dessous =====
   Le reglage Astra shop-filter-max-height plafonnait la hauteur du bloc et
   y mettait un defilement interne : la liste se coupait a mi-parcours, une
   barre de defilement grise apparaissait, et tout le bas de la colonne
   restait vide. Le reglage est desactive ; on neutralise en plus les
   hauteurs imposees au cas ou elles seraient encore servies en cache. */
body.ast-woo-shop-archive #secondary .ast-filter-wrap,
body.ast-woo-shop-archive #secondary .fe-filter-wrap,
body.ast-woo-shop-archive #secondary .fe-filter-form,
body.ast-woo-shop-archive #secondary .ast-woo-sidebar-widget{
  max-height:none!important;height:auto!important;overflow:visible!important}

/* Le filtre occupe toute la largeur de sa colonne */
body.ast-woo-shop-archive #secondary .sidebar-main,
body.ast-woo-shop-archive #secondary .ast-filter-wrap,
body.ast-woo-shop-archive #secondary .fe-filter-wrap{width:100%!important;max-width:100%!important}

/* ===== FX-FILTRE-SIDEBAR-MAIN =====
   Le defilement interne ne venait pas du bloc de filtre mais de son
   conteneur .sidebar-main, qu Astra rend collant avec max-height egale a
   la hauteur de fenetre disponible et overflow:auto. Le contenu faisant
   1046 px pour 489 px de boite, la liste se coupait et une barre grise
   apparaissait, laissant le bas de la colonne vide.
   On laisse la colonne suivre sa hauteur naturelle. Elle reste collante,
   mais sans plafond ni defilement interne. */
body.ast-woo-shop-archive #secondary .sidebar-main{
  max-height:none!important;height:auto!important;overflow:visible!important}
body.ast-woo-shop-archive #secondary{position:static!important}

/* ===== FX-PIED-SOIGNE : habillage du pied de page =====
   Le contenu a ete restructure : baseline et certification sous le logo,
   libelles de menus raccourcis, adresse sur deux lignes, mail et lien
   devis. Ici, l habillage : titres de colonnes en petites capitales avec
   filet menthe, hierarchie lisible, lien devis en or. */

.site-footer .footer-widget-area .wp-block-heading,
.site-footer .footer-widget-area h2{
  font-size:.88rem!important;font-weight:700!important;
  letter-spacing:.13em;text-transform:uppercase;color:#9fe8cf!important;
  margin:0 0 14px!important;padding-bottom:10px;position:relative}
.site-footer .footer-widget-area .wp-block-heading::after,
.site-footer .footer-widget-area h2::after{
  content:"";position:absolute;left:0;bottom:0;width:34px;height:2px;
  border-radius:2px;background:linear-gradient(90deg,#9fe8cf,#025048)}

/* Le widget de menu Astra a son propre titre de widget */
.site-footer .widget_nav_menu .widget-title{
  font-size:.88rem!important;font-weight:700!important;
  letter-spacing:.13em;text-transform:uppercase;color:#9fe8cf!important;
  margin:0 0 14px!important;padding-bottom:10px;position:relative}
.site-footer .widget_nav_menu .widget-title::after{
  content:"";position:absolute;left:0;bottom:0;width:34px;height:2px;
  border-radius:2px;background:linear-gradient(90deg,#9fe8cf,#025048)}

.site-footer .fx-pied-baseline{margin-top:14px!important;font-size:.9rem;line-height:1.65;color:#cfe0dc;max-width:262px;padding-right:12px}
.site-footer .fx-pied-certif{
  font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
  color:#9fe8cf;font-weight:700;margin-top:6px!important}

.site-footer .footer-widget-area a{transition:color .2s}
.site-footer a.fx-pied-devis{
  color:#D4AF37!important;font-weight:700;text-decoration:none;
  display:inline-block;margin-top:6px}
.site-footer a.fx-pied-devis:hover{color:#ffd166!important}

/* Adresse : interlignes reguliers */
.site-footer .footer-widget-area p{margin-bottom:7px;line-height:1.55}

/* fx-film-vert : couche film verte complementaire du filtre photo de marque */
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) #content .elementor-widget-image .elementor-widget-container::before,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) #content .wp-block-image::before{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:18px;
  background:linear-gradient(160deg, rgba(2,80,72,.30) 0%, rgba(10,63,53,.20) 45%, rgba(0,32,28,.16) 100%);
  mix-blend-mode:multiply;
}

/* fx-pied-devis-19 : or 4,45:1 conforme AA en texte large */
.site-footer a.fx-pied-devis{font-size:19px!important;line-height:1.3}

/* fx-film-vignettes : meme traitement de marque sur les vignettes blog */
body:not(.woocommerce):not(.woocommerce-page) .post-thumb-img-content > a{position:relative;display:block}
body:not(.woocommerce):not(.woocommerce-page) .post-thumb-img-content > a::after{content:'';position:absolute;inset:0;background:#0A3F35;opacity:.14;pointer-events:none}
body:not(.woocommerce):not(.woocommerce-page) .post-thumb-img-content > a::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(160deg, rgba(2,80,72,.30) 0%, rgba(10,63,53,.20) 45%, rgba(0,32,28,.16) 100%);mix-blend-mode:multiply}

/* fx-gouttiere-mobile : minimum 16px de marge laterale sur mobile (DESIGN.md art.5.1), sans reduire les paddings existants ni toucher les sections plein-bord */
@media(max-width:767px){
body:not(.woocommerce):not(.woocommerce-page) #content .e-parent.e-con-boxed{
  padding-inline-start:max(var(--padding-left,16px),16px)!important;
  padding-inline-end:max(var(--padding-right,16px),16px)!important;
}
}

/* fx-justify-global : texte courant justifie partout (demande client), hors boutique et hors sections .fxr (alignements du modele accueil) */
body:not(.woocommerce):not(.woocommerce-page) #content p,
body:not(.woocommerce):not(.woocommerce-page) #content li{
  text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto;
}
body:not(.woocommerce):not(.woocommerce-page) #content .fxr p{text-align:unset;hyphens:unset;-webkit-hyphens:unset}

/* fx-justify-global */
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) #content p,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) #content li,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) #content .elementor-widget-text-editor,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) #content .elementor-widget-theme-post-content p,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) article .entry-content p,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) article .entry-content li,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) .fxr p,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) footer .elementor-widget-text-editor p,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) .elementor-location-footer p{
  text-align: justify !important;
  text-justify: inter-word;
  -webkit-hyphens: auto;
  hyphens: auto;
}
/* exceptions : boutons, fils d'ariane, legendes courtes, champs de formulaire */
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) #content p.fx-center,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) #content .elementor-button-text,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) #content nav p,
body:not(.woocommerce):not(.woocommerce-page):not(.page-id-16) #content .wp-caption-text{
  text-align: inherit !important;
}
/* /fx-justify-global */

/* fx-cmplz-boutons : bandeau cookies — trois boutons pleine largeur empiles
   (min-width 250px + width 100%) rendaient la banniere enorme. Une seule ligne. */
.cmplz-cookiebanner .cmplz-buttons{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:8px!important;align-items:stretch!important}
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn{flex:1 1 0!important;width:auto!important;min-width:0!important;min-height:38px!important;height:auto!important;padding:9px 14px!important;font-size:13px!important;line-height:1.25!important;zoom:1!important}
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences{flex:0 1 auto!important;font-weight:400!important}
@media (max-width:420px){.cmplz-cookiebanner .cmplz-buttons .cmplz-btn{flex:1 1 100%!important;min-height:36px!important;font-size:12.5px!important}}

/* fx-voile-hero-article : l image a la une des articles n etait couverte par aucun
   des deux selecteurs du filtre de marque (.wp-block-image et .elementor-widget-image).
   Elle vit dans .post-thumb / .ast-single-post-featured-section. Hors WooCommerce. */
body:not(.woocommerce):not(.woocommerce-page) .single-post .post-thumb,
body:not(.woocommerce):not(.woocommerce-page) .single-post .ast-single-post-featured-section{position:relative}
body:not(.woocommerce):not(.woocommerce-page) .single-post .post-thumb img,
body:not(.woocommerce):not(.woocommerce-page) .single-post .ast-single-post-featured-section img{filter:saturate(.80) contrast(1.06) brightness(.98)}
body:not(.woocommerce):not(.woocommerce-page) .single-post .post-thumb::after,
body:not(.woocommerce):not(.woocommerce-page) .single-post .ast-single-post-featured-section::after{
  content:'';position:absolute;inset:0 24px;pointer-events:none;border-radius:20px;z-index:2;
  background:linear-gradient(160deg,rgba(2,80,72,.30) 0%,rgba(10,63,53,.20) 45%,rgba(0,32,28,.16) 100%);
  mix-blend-mode:multiply}

/* fx-consentement : onglet de gestion visible et cibles tactiles conformes.
   Mesure du 8 aout 2026 : l onglet etait en display:none, revele au seul survol
   sur desktop et absent sur mobile — un visiteur ne pouvait plus retirer son
   consentement. La croix de fermeture faisait 20x20 px (minimum WCAG 2.2 : 24). */

/* 1. Onglet toujours atteignable, discret, aux couleurs de la charte */
#cmplz-manage-consent .cmplz-manage-consent{
    display:block!important;
    animation:none!important;
    /* FX-CMPLZ-POS-20260810 : bascule a DROITE (demande client, il chevauchait WhatsApp).
       Au-dessus du bouton remonter-en-haut d Astra ; arrondi inverse. */
    left:auto!important;
    right:0!important;
    bottom:74px!important;
    transform:none!important;
    padding:8px 14px!important;
    min-height:36px!important;
    font-size:12.5px!important;
    line-height:1.3!important;
    border-radius:8px 0 0 8px!important;
    background:#025048!important;
    color:#FFFFFF!important;
    border:1px solid #025048!important;
    box-shadow:0 4px 14px rgba(1,40,35,.22)!important;
    opacity:.82;
    transition:opacity .2s ease;
}
#cmplz-manage-consent .cmplz-manage-consent:hover,
#cmplz-manage-consent .cmplz-manage-consent:focus-visible{
    opacity:1;
    animation:none!important;
    transform:none!important;
}
#cmplz-manage-consent .cmplz-manage-consent:focus-visible{
    outline:2px solid #FFD166!important;
    outline-offset:2px!important;
}
/* Sur mobile il reste accessible, simplement plus compact. */
@media (max-width:600px){
    #cmplz-manage-consent .cmplz-manage-consent{
        display:block!important;
        bottom:80px!important;
        padding:7px 11px!important;
        font-size:11.5px!important;
        min-height:32px!important;
        opacity:.75;
    }
}
/* La classe posee apres fermeture volontaire doit continuer de masquer l onglet. */
#cmplz-manage-consent .cmplz-manage-consent.cmplz-dismissed{display:none!important}

/* 2. Croix de fermeture : cible tactile conforme WCAG 2.2 (24x24 minimum) */
.cmplz-cookiebanner .cmplz-close{
    width:28px!important;
    height:28px!important;
    line-height:28px!important;
    font-size:20px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:6px!important;
}
.cmplz-cookiebanner .cmplz-close:hover{background:rgba(2,80,72,.08)!important}
.cmplz-cookiebanner .cmplz-close:focus-visible{
    outline:2px solid #025048!important;
    outline-offset:1px!important;
}

/* 3. Interrupteurs de categorie : zone cliquable suffisante */
.cmplz-cookiebanner .cmplz-banner-checkbox{min-height:28px!important}

/* ===== FX-CMPLZ-POS-20260810 : onglet Gerer le consentement deplace en bas a DROITE (demande client) =====
   Il chevauchait le bouton WhatsApp en bas a gauche. Place au-dessus du bouton
   remonter-en-haut d Astra (coin bas droit). Reste visible et atteignable au
   clavier - ne pas le masquer (regle WCAG de la session du 8 aout). */
/* remplace par la modification du bloc a ID ci-dessus */


/* ===== FX-UIAUDIT-20260810 : correctifs de l audit visuel mobile (agents du 10 aout) ===== */
/* 1. Interlignes ecrases sur liens/CTA multi-lignes et timeline (mesures lh 1,0-1,1) */
@media (max-width:640px){
  a.bv-go, a.bv-cta{line-height:1.35!important}
  .ue_timeline_item_text{line-height:1.5!important}
  /* 4. Carte simulateur accueil : le libelle long debordait de 12px dans le padding */
  .fxr .sim-card{padding-left:14px!important;padding-right:14px!important}
  .fxr .sim-card *{overflow-wrap:anywhere}
}
/* 2. Widget HTML 31382f0 (JSON-LD seul) : reservait 445px de blanc en milieu de page */
.elementor-element[data-id="31382f0"]{height:0!important;min-height:0!important;padding:0!important;margin:0!important;overflow:hidden}
/* 3. Eyebrows a hauteur forcee (h=0-9px, texte en debordement) : hauteur auto */
.elementor-element[data-id="425b27b"],.elementor-element[data-id="0987dff"],.elementor-element[data-id="3f0ca74"],.elementor-element[data-id="0bb9493"],.elementor-element[data-id="a1ecdbe"],.elementor-element[data-id="7a999b2"],.elementor-element[data-id="d551914"],.elementor-element[data-id="1b3855f"],.elementor-element[data-id="2ab1174"],.elementor-element[data-id="1190be0"],.elementor-element[data-id="a76b197"],.elementor-element[data-id="43ac210"],.elementor-element[data-id="f2ee6f7"]{height:auto!important;min-height:0!important}

/* ===== FX-PADMOB-20260810 : padding mobile des cartes (audit visuel du 10 aout) =====
   Les valeurs padding_mobile sont AUSSI dans _elementor_data, mais la chaine de
   variables --padding-* d Elementor n est pas consommee a <=767px sur ces pages
   (variable a 20px, padding calcule 0 - court-circuit non identifie dans le CSS
   minifie). Padding physique explicite en filet, prioritaire sur tout. */
@media (max-width:767px){
  .elementor .e-con.elementor-element[data-id="5985f9c"],.elementor .e-con.elementor-element[data-id="ae279d8"],.elementor .e-con.elementor-element[data-id="f80a4a0"],.elementor .e-con.elementor-element[data-id="d514912"],.elementor .e-con.elementor-element[data-id="be5d7af"],.elementor .e-con.elementor-element[data-id="c315c3c"]{padding:32px 20px!important}
  .elementor .e-con.elementor-element[data-id="d612fb1"],.elementor .e-con.elementor-element[data-id="c0e7167"],.elementor .e-con.elementor-element[data-id="fbd4529"],.elementor .e-con.elementor-element[data-id="5cab6a0"],.elementor .e-con.elementor-element[data-id="7adcd11"],.elementor .e-con.elementor-element[data-id="98970e8"],.elementor .e-con.elementor-element[data-id="f3bc23b"],.elementor .e-con.elementor-element[data-id="3b81780"],.elementor .e-con.elementor-element[data-id="ee39d49"]{padding:20px 16px!important}
  .elementor .e-con.elementor-element[data-id="43c3078"],.elementor .e-con.elementor-element[data-id="cefb6c9"]{padding:10px 16px!important}
  .elementor .e-con.elementor-element[data-id="08bf366"],.elementor .e-con.elementor-element[data-id="6dab7b5"],.elementor .e-con.elementor-element[data-id="0827865"]{padding:20px 16px!important}
  .elementor .e-con.elementor-element[data-id="8188b66"],.elementor .e-con.elementor-element[data-id="33aafbe"],.elementor .e-con.elementor-element[data-id="64c0b83"]{padding:16px!important}
  .elementor .e-con.elementor-element[data-id="db93b66"]{padding:12px!important}
  .elementor .e-con.elementor-element[data-id="b31a1f3"]{padding:40px 20px!important}
}
/* FX-PADMOB-WIDGETS-20260810 : ces 3 conteneurs ne sont PAS des .e-con (widget-containers),
   le selecteur .e-con du bloc precedent ne les atteint pas. */
@media (max-width:767px){
  html body .elementor-element.elementor-element-8188b66,
  html body .elementor-element.elementor-element-33aafbe,
  html body .elementor-element.elementor-element-64c0b83{padding:16px!important}
}
/* FX-LH-LIENS-20260810 : interligne des liens/CTA multi-lignes (mesure : 15px/15px = ratio 1,0). */
@media (max-width:767px){
  html body a.bv-go, html body a.bv-cta,
  html body .bv-go, html body .bv-cta{line-height:1.35!important}
}