/* EcoAssure v1.5.5 — phase 3 UX final polish
   Chargé après v1.5.3 + v1.5.4. Ne modifie aucun contenu CMS. */
html{scrollbar-gutter:stable}
body.eco-nav-open{overflow:hidden!important;touch-action:none}

/* Alignement fin des actions et liens */
:is(.btn,.cmp-btn,.assurances-compare-btn,.pro-quote-btn,.par-quote-btn,.text-link,.guide-text-link,.blogx-read){
  line-height:1.2;vertical-align:middle
}
:is(.btn,.cmp-btn,.assurances-compare-btn,.pro-quote-btn,.par-quote-btn)>:is(svg,img){flex:0 0 auto;max-width:1.25em;max-height:1.25em}
:is(.btn,.cmp-btn,.assurances-compare-btn,.pro-quote-btn,.par-quote-btn) b{line-height:1;display:inline-flex;align-items:center}
:is(a,button,summary){-webkit-tap-highlight-color:transparent}

/* Header : état ouvert clair + cible tactile stable */
.menu-toggle{position:relative;flex:0 0 auto}
.menu-toggle span{transform-origin:center;transition:transform .2s ease,opacity .18s ease,width .2s ease}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;width:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav a[aria-current="page"]{color:#078d5d}
.nav a[aria-current="page"]:after{left:0;right:0}
.nav-mega>summary{cursor:pointer;user-select:none;display:flex;align-items:center;gap:7px}
.nav-mega-caret{display:inline-flex;transition:transform .18s ease}
.nav-mega[open] .nav-mega-caret{transform:rotate(180deg)}
.nav-mega-item{align-items:center}
.nav-mega-foot a{display:flex;align-items:center;justify-content:center;min-height:42px;text-align:center}

/* Images : ratio fiable et aucun étirement accidentel */
:is(.product-card,.profile-card,.article-card,.blogx-card,.guide-article-card,.guide-situation-card,.pro-product-card) img{max-width:100%}
:is(.blogx-card-media,.guide-article-media,.guide-category-media,.guide-situation-card) img{object-position:center}
:is(.prose,.blogx-prose,.guide-content,.cms-extra) img{height:auto!important;max-width:100%;margin-inline:auto}
:is(.prose,.blogx-prose,.guide-content,.cms-extra) figure{max-width:100%;margin-inline:auto}
:is(.prose,.blogx-prose,.guide-content,.cms-extra) figure img{width:auto;max-width:100%}

/* Cartes : contenu et CTA alignés même avec titres longs */
:is(.product-card,.article-card,.blogx-card,.guide-article-card,.guide-situation-card,.pro-product-card,.par-product-card){height:100%}
.blogx-card-body,.guide-article-copy{display:flex;flex:1;flex-direction:column}
.blogx-card-body .blogx-read,.guide-article-copy .guide-meta{margin-top:auto}
:is(.product-card,.blogx-card,.guide-article-card,.guide-situation-card,.pro-product-card,.par-product-card) :is(h2,h3,p){overflow-wrap:break-word}

/* FAQ : évite les icônes décalées et textes écrasés */
:is(.faq-list,.blogx-prose,.guide-page,.auto-page,.moto-page,.dec-page,.pro-page,.par-page) details>summary{
  min-height:52px;gap:14px;line-height:1.35;align-items:center
}
:is(.faq-list,.blogx-prose,.guide-page,.auto-page,.moto-page,.dec-page,.pro-page,.par-page) details>summary::marker{font-size:0}
:is(.faq-list,.blogx-prose,.guide-page,.auto-page,.moto-page,.dec-page,.pro-page,.par-page) details>summary>*:last-child{flex:0 0 auto}

/* Formulaires : labels, champs et boutons au même niveau */
:is(.quote-form,.cmp-form,.blogx-final-form,.guide-final-copy form,.callback-dialog) label{min-width:0}
:is(.quote-form,.cmp-form,.blogx-final-form,.guide-final-copy form,.callback-dialog) :is(input,select,textarea){width:100%;min-height:44px}
:is(.quote-form,.cmp-form,.blogx-final-form,.guide-final-copy form,.callback-dialog) button{min-height:44px}

/* Blog */
.blogx-search{width:100%;min-width:0;align-items:center}
.blogx-search input{min-width:0;width:100%}
.blogx-search button{flex:0 0 58px;min-height:48px}
.blogx-tabs{scrollbar-width:none;overscroll-behavior-inline:contain}
.blogx-tabs::-webkit-scrollbar{display:none}
.blogx-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:40px}
.blogx-card-media{height:auto;aspect-ratio:16/10}
.blogx-card-media img{height:100%;object-fit:cover}
.blogx-card-meta{gap:8px;flex-wrap:wrap}
.blogx-sidebar{min-width:0}
.blogx-side-card{min-width:0}
.blogx-side-search input{width:100%}
.blogx-pagination{max-width:100%;overflow:hidden}
.blogx-pagination nav{max-width:100%;overflow-x:auto;padding:2px 2px 7px;scrollbar-width:none}
.blogx-pagination nav::-webkit-scrollbar{display:none}
.blogx-pagination nav>div:last-child>div:last-child{min-width:max-content}
.blogx-prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;-webkit-overflow-scrolling:touch}
.blogx-prose :is(td,th){min-width:120px}
.blogx-article-hero-image img{object-position:center}
.blogx-inline-cta>div:last-child{min-width:180px}

/* Guides */
.guide-search{width:100%;min-width:0;align-items:center}
.guide-search input{width:100%;min-width:0}
.guide-search button{flex:0 0 58px;min-height:48px}
.guide-category-card{display:flex;flex-direction:column;height:100%}
.guide-category-card .guide-arrow{margin-top:auto}
.guide-article-media{height:auto;aspect-ratio:16/10}
.guide-situation-card img{aspect-ratio:16/10;height:auto;object-fit:cover}
.guide-side-card>a{min-width:0}
.guide-side-card>a>div{min-width:0}
.guide-side-card>a :is(strong,small){overflow-wrap:anywhere}
.guide-pagination{max-width:100%;overflow:hidden}
.guide-pagination nav{max-width:100%;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
.guide-pagination nav::-webkit-scrollbar{display:none}
.guide-final-copy form>*{min-width:0}

/* Footer : colonnes et CTA plus réguliers */
.footer-cta>div:first-child{min-width:0;max-width:760px}
.footer-cta-actions{justify-content:flex-end}
.footer-grid>div{min-width:0}
.footer-grid>div:not(.footer-brand) a{display:inline-flex;align-items:center;min-height:24px}
.footer-bottom a{display:inline-flex;align-items:center;min-height:26px}

@media(max-width:1180px){
  .nav a[aria-current="page"]{background:#eef9f4;color:#078d5d}
  .nav a[aria-current="page"]:after{display:none}
  .nav-mega-panel{overscroll-behavior:contain}
  .blogx-main-grid,.blogx-article-layout,.guide-content-grid{grid-template-columns:minmax(0,1fr) 290px!important}
  .blogx-articles-grid,.guide-article-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:1024px){
  /* Sidebars sous le contenu : plus de colonne écrasée sur tablette portrait. */
  .blogx-main-grid,.blogx-article-layout,.guide-content-grid{grid-template-columns:1fr!important}
  .blogx-sidebar,.blogx-article-sidebar,.guide-sidebar{position:static!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
  .blogx-sidebar-sticky{position:static!important;display:contents}
  .blogx-side-card,.guide-side-card{margin:0!important;height:100%}
  .blogx-final-card{grid-template-columns:minmax(220px,.7fr) minmax(0,1fr)!important}
  .blogx-final-form{grid-column:1/-1!important}
  .guide-final-card{grid-template-columns:minmax(240px,.8fr) minmax(0,1fr)!important}
}

@media(max-width:760px){
  body.eco-nav-open{position:fixed;width:100%;inset-inline:0}
  .top-contact a{white-space:normal}
  .nav{overscroll-behavior-y:contain}
  .nav-mega-item{min-height:52px}
  .nav-mega-foot{position:sticky;bottom:0;background:#f8fcff;padding-top:7px}

  .blogx-hero,.guide-hero{padding-top:24px!important}
  .blogx-hero-copy,.guide-hero-copy{text-align:left!important;padding-bottom:20px!important}
  .blogx-search,.guide-search{padding:5px!important;border-radius:13px!important}
  .blogx-search input,.guide-search input{padding:12px 10px!important;font-size:16px!important}
  .blogx-search button,.guide-search button{flex-basis:50px!important;width:50px!important}
  .blogx-benefits,.guide-trust-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .blogx-heading,.guide-heading-row{align-items:flex-start!important;gap:8px!important}
  .blogx-heading{flex-direction:column!important}
  .blogx-tabs{flex-wrap:nowrap!important;overflow-x:auto!important;scroll-snap-type:x proximity;margin-right:-12px!important;padding-right:12px!important}
  .blogx-tabs a{flex:0 0 auto;scroll-snap-align:start}
  .blogx-articles-grid,.guide-article-grid{grid-template-columns:1fr!important}
  .blogx-card-media,.guide-article-media{aspect-ratio:16/9}
  .blogx-sidebar,.blogx-article-sidebar,.guide-sidebar{grid-template-columns:1fr!important}
  .blogx-final-card,.guide-final-card{grid-template-columns:1fr!important}
  .blogx-final-media,.guide-final-visual{height:auto!important;min-height:0!important;aspect-ratio:16/8}
  .blogx-final-media img,.guide-final-visual img{height:100%!important;object-fit:cover!important}
  .blogx-final-copy,.guide-final-copy{padding:24px 18px!important}
  .blogx-final-form{margin:0 18px 20px!important}
  .blogx-inline-cta{grid-template-columns:1fr!important;padding:20px 17px!important}
  .blogx-inline-cta>div:last-child{min-width:0;width:100%}
  .blogx-inline-cta a{width:100%}
  .blogx-prose{border-radius:16px!important}

  .guide-categories-grid{display:flex!important;grid-template-columns:none!important;overflow-x:auto!important;scroll-snap-type:x proximity;gap:10px!important;margin-right:-12px;padding-right:12px;padding-bottom:7px;scrollbar-width:none}
  .guide-categories-grid::-webkit-scrollbar{display:none}
  .guide-category-card{flex:0 0 min(72vw,220px);scroll-snap-align:start;min-height:220px}
  .guide-situations-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .guide-final-copy form{grid-template-columns:1fr!important}

  .footer-cta{padding:24px 18px!important;border-radius:18px 18px 0 0!important}
  .footer-cta-actions{display:grid!important;grid-template-columns:1fr!important;width:100%;justify-content:stretch}
  .footer-cta-actions .btn{width:100%!important}
  .footer-grid>div:not(.footer-brand) a{min-height:32px}
}

@media(max-width:480px){
  .blogx-benefits,.guide-trust-row,.guide-situations-grid{grid-template-columns:1fr!important}
  .blogx-search,.guide-search{display:grid!important;grid-template-columns:minmax(0,1fr) 48px!important}
  .blogx-card-body,.guide-article-copy{padding:14px!important}
  .blogx-card h2,.guide-article-copy h3{font-size:16px!important}
  .blogx-card p,.guide-article-copy p{min-height:0!important}
  .blogx-article-hero-image{height:auto!important;aspect-ratio:16/10}
  .blogx-article-hero-image img{height:100%!important;object-fit:cover!important}
  .blogx-prose{padding:19px 15px!important}
  .guide-category-card{flex-basis:min(82vw,240px)}
  .footer-cta h2{font-size:25px!important}
}

@media(prefers-reduced-motion:reduce){
  .menu-toggle span,.nav-mega-caret{transition:none!important}
}
