/* Barre-Traction: paramètres graphiques personnalisables depuis Filament. */
:root {
  --bt-primary: #0c6d62;
  --bt-accent: #e5a83a;
  --bt-background: #f5f6f3;
  --bt-surface: #ffffff;
  --bt-text: #21362f;
  --bt-footer: #173f38;
  --bt-header: #ffffff;
  --bt-footer-text: #ffffff;
  --bt-site-width: 1200px;
  --bt-font: system-ui, -apple-system, Segoe UI, Arial, sans-serif;
}
body { color: var(--bt-text); background: var(--bt-background); font-family: var(--bt-font) !important; }
body .container { width: min(calc(100% - 36px), var(--bt-site-width)) !important; max-width: var(--bt-site-width) !important; }
body .site-header { background: var(--bt-header) !important; border-bottom-color: var(--bt-primary); }
body .brand, body .nav-links a, body .nav-cta { color: var(--bt-text); }
body .brand-dot, body .text-link { color: var(--bt-primary); }
body .nav-cta, body .btn-accent, body .btn.btn-accent { background: var(--bt-accent) !important; border-color: var(--bt-accent) !important; color: #1c211f !important; }
body .btn-accent:hover, body .btn.btn-accent:hover { filter: brightness(.93); }
body .section-cream, body .editorial-hero { background: var(--bt-background) !important; }
body .product-card, body .text-panel, body .spec-panel, body .buy-box, body .pros-box, body .cons-box, body .bt-opinion-card { background-color: var(--bt-surface); }
body .site-footer { background: var(--bt-footer) !important; }
body .site-footer, body .site-footer p, body .site-footer a, body .site-footer .footer-name { color: var(--bt-footer-text) !important; }
body .site-footer a:hover { text-decoration: underline; }
body .bt-site-logo { display: block; height: auto; width: auto; max-height: 88px; object-fit: contain; }
body .bt-footer-logo { max-width: 180px; filter: none; }
body.bt-header-center .nav-main { display:flex; justify-content:space-between; }
body.bt-header-center .nav-links { flex:1; justify-content:center; }
body.bt-header-stacked .nav-main { display:flex; flex-direction:column; gap:18px; padding-top:18px; padding-bottom:18px; }
body.bt-header-stacked .nav-main .brand { align-self:center; }
body.bt-header-stacked .nav-main .nav-links { justify-content:center; flex-wrap:wrap; }
body.bt-header-stacked .nav-main .nav-cta { align-self:center; }
body .footer-inner { display:grid !important; grid-template-columns:minmax(180px,1fr) minmax(240px,2fr); gap:24px 36px; align-items:start; }
body .bt-footer-links { display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; }
body .bt-footer-links a { text-decoration:none; }
body .bt-footer-extra, body .bt-footer-disclosure { grid-column:1/-1; font-size:.85rem; opacity:.83; }
body.bt-footer-centered .footer-inner { display:flex !important; flex-direction:column; text-align:center; align-items:center; gap:15px; }
body.bt-footer-centered .bt-footer-links { justify-content:center; }
body .editorial-prose.bt-custom-html { max-width:none; }
body .bt-custom-html img { max-width:100%; height:auto; }
body .bt-custom-html table { width:100%; border-collapse:collapse; overflow-x:auto; }
body .bt-custom-html th, body .bt-custom-html td { border:1px solid #d7ddd9; padding:10px; }
body .bt-contact-page { max-width:850px !important; padding-block:48px 76px; }
body .bt-contact-form { display:grid; gap:16px; background:var(--bt-surface); border-radius:12px; padding:clamp(18px,3vw,32px); }
body .bt-contact-form label { display:grid; gap:6px; font-weight:600; }
body .bt-contact-form input, body .bt-contact-form textarea { width:100%; border:1px solid #b9c6bf; background:var(--bt-surface); color:var(--bt-text); border-radius:7px; padding:11px 13px; font:inherit; }
body .bt-contact-form input:focus-visible, body .bt-contact-form textarea:focus-visible { outline:2px solid var(--bt-primary); outline-offset:2px; }
body .bt-contact-form .btn { justify-self:start; }
body .bt-contact-privacy { font-size:.92rem; }
body .bt-contact-feedback { padding:18px 24px; background:#e1f1e8; border:1px solid #6baf8d; border-radius:8px; }
body .bt-contact-errors { border:1px solid #ae4d43; padding:14px; background:#ffedeb; }
body .bt-contact-honeypot { position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }
@media (max-width:900px) {
  body .footer-inner { display:flex !important; flex-direction:column; }
  body.bt-header-center .nav-main, body.bt-header-stacked .nav-main { display:flex; flex-direction:column; }
  body.bt-header-center .nav-links, body.bt-header-stacked .nav-links { flex-wrap:wrap; justify-content:center; }
}

/* Disposition des fiches et densité du catalogue */
@media (min-width: 901px) {
  body.bt-product-photo-right .detail-hero .detail-photo { order: 2; }
  body.bt-product-photo-right .detail-hero .detail-info { order: 1; }
  body.bt-grid-four .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  body.bt-grid-three .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
body.bt-corners-square .product-card, body.bt-corners-square .buy-box, body.bt-corners-square .spec-panel,
body.bt-corners-square .text-panel, body.bt-corners-square .btn, body.bt-corners-square .bt-opinion-card { border-radius: 3px !important; }

/* V2 : zones de couleur indépendantes, sans fuite du texte du header vers les cartes. */
body .site-header { background:var(--bt-header) !important; color:var(--bt-header-text) !important; }
body .site-header .brand, body .site-header .nav-links a,
body .site-header .brand-dot { color:var(--bt-header-text) !important; }
body .site-header .nav-links a:hover, body .site-header .nav-links a.selected { text-decoration:underline; text-underline-offset:4px; }
body .btn-accent, body .btn.btn-accent, body .site-header .nav-cta {
  background:var(--bt-accent) !important; border-color:var(--bt-accent) !important; color:var(--bt-button-text) !important;
}
body .text-link, body .editorial-prose a, body .bt-seo-content a { color:var(--bt-link) !important; }
body .product-card, body .text-panel, body .spec-panel, body .buy-box,
body .pros-box, body .cons-box, body .bt-opinion-card, body .bt-contact-form {
  background:var(--bt-surface) !important; color:var(--bt-surface-text) !important; border-color:var(--bt-border);
}
body .product-card p, body .product-card h3, body .product-card span,
body .text-panel p, body .spec-panel dt, body .spec-panel dd,
body .pros-box li, body .cons-box li, body .bt-opinion-card p { color:inherit; }
body .hero { background:var(--bt-hero) !important; color:var(--bt-hero-text) !important; }
body .hero h1, body .hero p, body .hero .kicker, body .hero .hero-copy { color:var(--bt-hero-text) !important; }
body .site-footer { color:var(--bt-footer-text) !important; }
body .bt-seo-content { background:var(--bt-background); color:var(--bt-text); padding:clamp(32px, 5vw, 68px) 0; }
body .bt-seo-content .bt-seo-inner { max-width:min(100%, 920px); margin-inline:auto; }
body .bt-seo-content h2 { font-size:clamp(1.55rem, 3vw, 2.1rem); margin:1.35em 0 .5em; }
body .bt-seo-content h3 { font-size:clamp(1.15rem, 2vw, 1.4rem); margin:1.2em 0 .5em; }
body .bt-seo-content p { line-height:1.75; margin-bottom:1rem; }
body .bt-seo-content ul { margin:0 0 1.1rem; padding-left:1.3rem; }
body .bt-seo-content a { text-decoration:underline; text-underline-offset:3px; }

/* Variantes de disposition */
body.bt-header-sticky .site-header { position:sticky; top:0; z-index:60; }
body.bt-card-raised .product-card { box-shadow:0 10px 28px rgba(0,0,0,.12) !important; border:1px solid var(--bt-border); }
body.bt-card-flat .product-card { box-shadow:none !important; border:0 !important; }
body.bt-card-outlined .product-card { box-shadow:none !important; border:1px solid var(--bt-border); }
body.bt-headings-serif h1, body.bt-headings-serif h2, body.bt-headings-serif h3 { font-family:Georgia, 'Times New Roman', serif !important; }
@media (min-width:901px) {
  body.bt-hero-centered .hero-inner { display:flex; justify-content:center; text-align:center; }
  body.bt-hero-centered .hero-copy { max-width:850px; margin-inline:auto; }
  body.bt-hero-centered .hero-actions { justify-content:center; }
  body.bt-hero-centered .hero-art { display:none; }
  body.bt-hero-compact .hero-inner { min-height:0; padding-top:48px; padding-bottom:48px; }
  body.bt-hero-compact .hero-art { display:none; }
}

/* Zones éditoriales et comparateur : indépendantes du header et du texte principal */
body .catalogue-heading {background:var(--bt-compare-hero,#071E1A)!important;color:var(--bt-compare-text,#FFFFFF)!important;}
body .catalogue-heading h1,body .catalogue-heading p,body .catalogue-heading .kicker {color:var(--bt-compare-text,#FFFFFF)!important;}
body .catalogue-heading h1 em {color:var(--bt-compare-accent,#B5FA6C)!important;font-style:normal;}
body .bt-home-categories {background:var(--bt-home-category,var(--bt-background))!important;color:var(--bt-home-category-text,var(--bt-text))!important;}
body .bt-home-categories .section-heading h2,body .bt-home-categories .section-heading p {color:var(--bt-home-category-text,var(--bt-text))!important;}
body .bt-home-categories .category-tile {background:var(--bt-home-tile,var(--bt-surface))!important;color:var(--bt-home-tile-text,var(--bt-surface-text))!important;position:relative;padding-top:26px;}
body .bt-home-categories .category-tile h3,body .bt-home-categories .category-tile p {color:var(--bt-home-tile-text,var(--bt-surface-text))!important;}
body .bt-home-categories .category-tile .bt-category-icon {display:block;object-fit:contain;width:90px;height:90px;max-width:100%;margin:0 0 14px 0;filter:none;}
body .bt-home-categories .category-tile .category-mark {position:absolute;top:18px;right:20px;}
@media (min-width:900px){body .bt-home-categories .category-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}

body .comparison-table thead th {background:var(--bt-compare-table,#071E1A)!important;color:var(--bt-compare-table-text,#FFFFFF)!important;}
body .comparison-table thead th a{color:var(--bt-compare-table-text,#FFFFFF)!important;}
body .compare-dock{background:var(--bt-compare-dock,#071E1A)!important;color:var(--bt-compare-dock-text,#FFFFFF)!important;}
body .compare-dock .dock-status,body .compare-dock .dock-actions .link-button{color:var(--bt-compare-dock-text,#FFFFFF)!important;}
