/* SFEL front — catalogue + produit (aligné prototype Palmsquare) */
:root{--sfel-blue:#1E3A8A;--sfel-blue-dark:#142559;--sfel-text:#1A1A1A;--sfel-muted:#6B7280;--sfel-soft:#F7F8FA;--sfel-card:#F3F4F6;--sfel-border:#E5E7EB;--sfel-border-strong:#D1D5DB;--sfel-r:10px}
.sfel-wrap{width:100%;font-family:inherit;color:var(--sfel-text)}

/* ===== CATALOGUE ===== */
.sfel-catalog{display:grid;grid-template-columns:280px 1fr;gap:32px}
.sfel-count{color:var(--sfel-muted);font-size:.95rem;margin:4px 0 24px}
.sfel-filters{position:sticky;top:24px;align-self:start;max-height:calc(100vh - 48px);overflow-y:auto;padding-right:8px}
.sfel-fgroup{border-bottom:1px solid #E5E7EB;padding:40px 0 42px}
.sfel-fgroup:first-child{padding-top:8px}
.sfel-fgroup .sfel-ftitre{margin:0;display:flex;justify-content:space-between;align-items:center;margin:0;font-size:.95rem;font-weight:600;line-height:1.55;color:#1A1A1A;cursor:pointer}
.sfel-fgroup .sfel-ftitre::after{content:"−";color:#1A1A1A;font-size:1.1rem}
.sfel-fgroup.closed .sfel-ftitre::after{content:"+"}
.sfel-fgroup.closed .sfel-fbody{display:none}
.sfel-fbody{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px}
.sfel-chip{padding:7px 14px;background:#F7F8FA;border:1px solid #E5E7EB;border-radius:999px;font-size:13px;color:#1A1A1A;cursor:pointer;user-select:none;transition:all .15s;line-height:1.4}
.sfel-chip:hover{border-color:var(--sfel-blue)}
.sfel-chip.on{background:var(--sfel-blue);color:#fff;border-color:var(--sfel-blue)}
.sfel-range{display:flex;flex-direction:column;gap:12px;width:100%}
.sfel-range .ins{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sfel-range input[type=number]{border:1px solid var(--sfel-border);border-radius:6px;padding:9px 12px;font-size:.9rem;width:100%;background:#fff}
.sfel-dr{position:relative;height:24px;margin:0 6px}
.sfel-dr .track{position:absolute;left:0;right:0;top:50%;height:4px;transform:translateY(-50%);background:var(--sfel-border);border-radius:4px}
.sfel-dr .fill{position:absolute;top:50%;height:4px;transform:translateY(-50%);background:var(--sfel-blue);border-radius:4px;pointer-events:none}
.sfel-dr input[type=range]{position:absolute;inset:0;width:100%;height:24px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.sfel-dr input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--sfel-text);cursor:grab;pointer-events:auto;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.sfel-dr input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--sfel-text);cursor:grab;pointer-events:auto;border:2px solid #fff}
button.sfel-apply{background:none !important;border:none !important;border-radius:0 !important;padding:0 !important;align-self:center;font-family:'Inter',sans-serif !important;font-size:16px !important;font-weight:400 !important;color:var(--sfel-text) !important;cursor:pointer;text-decoration:none !important}
button.sfel-apply:hover{color:#194B9B !important;text-decoration:underline !important}
button.sfel-reset{display:block;background:none !important;border:none !important;border-radius:0 !important;padding:0 !important;margin:0 0 8px;font-family:'Inter',sans-serif !important;font-size:14px !important;font-weight:400 !important;color:var(--sfel-muted) !important;cursor:pointer;text-decoration:none !important}
button.sfel-reset:hover{color:#194B9B !important;text-decoration:underline !important}
.sfel-noresult{grid-column:1/-1;text-align:center;padding:70px 20px}
.sfel-noresult h3{font-size:1.25rem;color:#1A1A1A;margin:0 0 10px}
.sfel-noresult a{color:#194B9B;text-decoration:underline;font-size:16px}
.sfel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-content:start}
/* palier intermédiaire : en dessous de 1280px, 4 cartes deviennent trop étroites */
@media(max-width:1280px){.sfel-grid{grid-template-columns:repeat(3,1fr)}}
.sfel-card{background:#fff;border:1px solid var(--sfel-border);border-radius:var(--sfel-r);overflow:hidden;transition:box-shadow .2s,transform .2s;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.sfel-card:hover{box-shadow:0 4px 12px rgba(15,23,42,.08);transform:translateY(-3px)}
.sfel-card .media{background:var(--sfel-card);aspect-ratio:1/1;display:grid;place-items:center;padding:24px}
.sfel-card .media img{max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}
.sfel-card .body{padding:16px}
.sfel-card h3{font-size:1rem;font-weight:600;margin:0 0 4px}
.sfel-card span{font-size:.8rem;color:var(--sfel-muted)}
.sfel-noresult{grid-column:1/-1;text-align:center;padding:60px 24px;color:var(--sfel-muted)}
@media(max-width:1024px){.sfel-catalog{grid-template-columns:1fr}.sfel-filters{position:static;max-height:none}.sfel-grid{grid-template-columns:repeat(2,1fr)}}

/* ===== PRODUIT ===== */
.sfel-crumb{padding:16px 0;font-size:.8rem;color:var(--sfel-muted)}
.sfel-crumb a{color:inherit;text-decoration:none}
.sfel-crumb a:hover{color:var(--sfel-blue)}
.sfel-phero{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;padding:16px 0 56px;align-items:start}
/* Galerie produit : grille 2x2 sur PC, slider sur mobile */
.sfel-gal .track{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sfel-gal .cell{background:var(--sfel-card);aspect-ratio:1/1;display:grid;place-items:center;padding:28px;border-radius:8px;overflow:hidden}
.sfel-gal .cell > a.zoom{place-self:stretch;display:grid;place-items:center;min-width:0;min-height:0;cursor:zoom-in;line-height:0}
.sfel-gal .cell img{max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}
.sfel-gal .dots{display:none}
/* Fiche produit : l'image occupe toute la vignette, sans marge interieure. */
body.single-product .sfel-gal .cell{padding:0}
@media(max-width:767px){
.sfel-gal .track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.sfel-gal .track::-webkit-scrollbar{display:none}
.sfel-gal .cell{flex:0 0 100%;scroll-snap-align:center}
.sfel-gal .dots{display:flex;justify-content:center;gap:8px;margin-top:24px}
.sfel-gal .dots span{width:10px;height:10px;border-radius:50%;background:#D5D9E2;cursor:pointer;transition:background .2s}
.sfel-gal .dots span.on{background:#194B9B}
}
.sfel-pinfo h1{font-size:2.4rem;margin:8px 0 16px;font-weight:600}
.sfel-pinfo .desc{color:var(--sfel-muted);font-size:.93rem;line-height:1.65}
.sfel-pinfo h2{font-size:1rem;font-weight:600;margin:24px 0 10px}
.sfel-badges{display:flex;gap:8px;flex-wrap:wrap}
.sfel-badge{min-width:52px;height:52px;background:var(--sfel-card);border-radius:6px;display:grid;place-items:center;font-size:.68rem;font-weight:600;text-align:center;padding:6px 10px;line-height:1.15}
.sfel-badge b{display:block;font-size:.85rem}
.sfel-acc{border-top:1px solid var(--sfel-border);margin-top:28px}
.sfel-acc .item{border-bottom:1px solid var(--sfel-border)}
.sfel-acc button.head{width:100%;text-align:left;padding:16px 0;background:none;border:none;font:inherit;font-weight:500;font-size:.98rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;color:var(--sfel-text)}
.sfel-acc button.head::after{content:"⌄";color:var(--sfel-muted);transition:transform .25s}
.sfel-acc .item.open button.head::after{transform:rotate(180deg)}
.sfel-acc .body{display:none;padding:0 0 18px;font-size:.9rem;color:var(--sfel-muted)}
.sfel-acc .item.open .body{display:block}
.sfel-specs{width:100%;border-collapse:collapse;font-size:.88rem}
.sfel-specs td{padding:8px 10px;border-bottom:1px solid var(--sfel-border);vertical-align:top}
.sfel-specs td:first-child{font-weight:500;color:var(--sfel-text);width:45%}
.sfel-docs{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sfel-docs a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--sfel-soft);border-radius:8px;font-size:.9rem;color:var(--sfel-text);text-decoration:none}
.sfel-docs a:hover{background:var(--sfel-card);color:var(--sfel-blue)}
.sfel-docs a::after{content:"↓";width:26px;height:26px;background:var(--sfel-blue);color:#fff;border-radius:50%;display:grid;place-items:center;font-size:.85rem;flex-shrink:0}
.sfel-cta{display:inline-block;background:var(--sfel-blue);color:#fff!important;padding:14px 28px;border-radius:8px;font-weight:500;text-decoration:none;margin-top:28px}
.sfel-cta:hover{background:var(--sfel-blue-dark)}
.sfel-sec{padding:56px 0;border-top:1px solid var(--sfel-border)}
.sfel-sec h2{font-size:1.6rem;margin:0 0 8px}
.sfel-sec .intro{color:var(--sfel-muted);font-size:.92rem;max-width:760px;margin:0 0 28px}
.sfel-famtable{width:100%;border-collapse:collapse;font-size:.9rem}
.sfel-famtable thead th{background:var(--sfel-soft);text-align:left;padding:13px 16px;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--sfel-blue);white-space:nowrap}
.sfel-famtable td{padding:13px 16px;border-bottom:1px solid var(--sfel-border)}
.sfel-famtable tr:hover td{background:var(--sfel-soft)}
.sfel-famtable .sku{font-family:monospace;font-weight:700;color:var(--sfel-blue)}
.sfel-famtable .devis{font-size:.8rem;padding:7px 12px}
.sfel-opts{width:100%;border-collapse:collapse;background:#fff;font-size:1rem}
.sfel-opts thead th{text-align:left;padding:18px 24px;font-weight:600;color:#194B9B;font-size:1rem;background:#fff !important;border:1px solid #E7E7E7}
.sfel-opts td{padding:22px 24px;border:1px solid #E7E7E7;vertical-align:top;background:#fff !important;font-size:1rem;font-weight:400;line-height:1.5;color:var(--sfel-text)}
.sfel-opts td:first-child{color:#194B9B;font-weight:600;font-size:.875rem;width:17%;min-width:170px}
@media(max-width:900px){.sfel-phero{grid-template-columns:1fr;gap:28px}.sfel-grid{grid-template-columns:1fr 1fr}.sfel-famtable{font-size:.78rem}.sfel-opts{font-size:.9rem}.sfel-opts thead th,.sfel-opts td{padding:14px 16px}.sfel-pill{font-size:.85rem;padding:6px 12px}}

/* Tableau famille compact dans l'accordéon */
.sfel-famtable.compact{font-size:.82rem}
.sfel-famtable.compact thead th{padding:9px 10px;font-size:.72rem}
.sfel-famtable.compact td{padding:9px 10px;white-space:nowrap}

/* Options : format adaptatif Par défaut / autres options en pills */
.sfel-opts td.def{width:19%;min-width:150px;white-space:nowrap}
.sfel-pill{display:inline-block;background:#fff;border:1px solid #E7E7E7;border-radius:999px;padding:8px 16px;margin:4px 8px 4px 0;font-size:1rem;line-height:1.4;color:var(--sfel-text);white-space:nowrap}
.sfel-none{color:var(--sfel-muted)}

/* Tagline, pictogrammes, photo de réalisation */
.sfel-tagline{color:var(--sfel-muted);font-style:italic;font-size:1.02rem;margin:-6px 0 14px}
.sfel-pictos{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.sfel-pictos img{height:40px;width:auto;background:var(--sfel-card);border-radius:6px;padding:5px}
.sfel-real{width:100%;height:auto;border-radius:var(--sfel-r);display:block}

.sfel-item[data-href]{cursor:pointer}

/* Filtres mobile : tiroir off-canvas sous 1024px */
button.sfel-mfilter,.sfel-overlay,.sfel-fhead,button.sfel-fshow{display:none !important}
@media(max-width:1024px){
button.sfel-mfilter{display:inline-flex !important;align-items:center;gap:8px;background:#fff !important;border:1px solid #E5E7EB !important;border-radius:999px !important;padding:10px 20px !important;font-family:'Inter',sans-serif !important;font-size:14px !important;font-weight:600 !important;color:#1A1A1A !important;cursor:pointer;margin:0 0 20px}
.sfel-mfilter .n{background:#194B9B;color:#fff;border-radius:999px;font-size:11px;line-height:1;min-width:18px;height:18px;display:none;align-items:center;justify-content:center;padding:0 5px}
.sfel-mfilter .n.show{display:inline-flex}
.sfel-filters{position:fixed;top:0;left:0;bottom:0;align-self:stretch;height:100vh;height:100dvh;width:min(360px,86vw);max-height:none;background:#fff;z-index:99999;padding:16px 20px 90px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;transform:translateX(-105%);transition:transform .3s ease;box-shadow:0 0 40px rgba(0,0,0,.15)}
body.sfel-fopen .sfel-filters{transform:translateX(0)}
.sfel-overlay{display:block;position:fixed;inset:0;background:rgba(18,18,18,.45);z-index:99998;opacity:0;pointer-events:none;transition:opacity .3s}
body.sfel-fopen .sfel-overlay{opacity:1;pointer-events:auto}
.sfel-fhead{display:flex;justify-content:space-between;align-items:center;margin:0 0 6px}
.sfel-fhead span{font-weight:600;font-size:16px;color:#1A1A1A}
.sfel-fclose{background:none !important;border:none !important;padding:2px 8px !important;font-size:26px !important;line-height:1 !important;color:#1A1A1A !important;cursor:pointer}
button.sfel-fshow{display:block !important;position:fixed;left:20px;bottom:16px;width:calc(min(360px,86vw) - 40px) !important;background:#194B9B !important;color:#fff !important;border:none !important;border-radius:999px !important;padding:14px !important;font-family:'Inter',sans-serif !important;font-size:15px !important;font-weight:600 !important;cursor:pointer;transform:translateX(-140%);transition:transform .3s ease;z-index:100000}
body.sfel-fopen .sfel-fshow{transform:translateX(0)}
body.sfel-fopen{overflow:hidden}
.sfel-fgroup{padding:22px 0 24px}
.sfel-fgroup:first-of-type{padding-top:4px}
}
@media(max-width:600px){.sfel-grid{grid-template-columns:1fr}}
/* Le "Masquer le titre" de la page catalogue ne doit pas cacher les titres des cards de boucle */
.sfel-item .elementor-page-title{display:block !important}

/* Infos clés d'une étude de cas ([sfel_projet_infos]) */
.sfel-projet-infos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:#E7E7EB;border:1px solid #E7E7EB;border-radius:12px;overflow:hidden}
.sfel-projet-infos .item{background:#fff;padding:18px 20px;display:flex;flex-direction:column;gap:4px}
.sfel-projet-infos .lbl{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8A909B}
.sfel-projet-infos .val{font-family:circular,'Circular Std','Inter',sans-serif;font-weight:500;font-size:18px;color:#00060F}

/* Loop Carousel avec moins de slides que « slides_to_show » : Swiper ne s'initialise pas
   et les slides passent en pleine largeur — repli : grille aux mêmes colonnes. */
.elementor-widget-loop-carousel .swiper:not(.swiper-initialized) .swiper-wrapper{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.elementor-widget-loop-carousel .swiper:not(.swiper-initialized) .swiper-slide{width:auto !important;margin:0 !important}
@media(max-width:1024px){.elementor-widget-loop-carousel .swiper:not(.swiper-initialized) .swiper-wrapper{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.elementor-widget-loop-carousel .swiper:not(.swiper-initialized) .swiper-wrapper{grid-template-columns:1fr}}
/* Images de la section présentation : pleine largeur du conteneur, radius 12px */
.sfel-img-presentation{width:100% !important;height:auto;display:block;border-radius:12px !important}

/* ============ Pictogrammes : infobulle au survol ============
 * Les deux series (caracteristiques et fixation) se ressemblent a l'oeil ;
 * le libelle est deduit du nom de fichier (voir sfel-produit-donnees.php). */
.sfel-picto{position:relative;display:inline-flex;align-items:center;justify-content:center}
.sfel-picto img{display:block}
.sfel-picto::after{
  content:attr(data-bulle);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);
  background:#00060F;color:#fff;font-family:'Inter',sans-serif;font-size:12px;line-height:1.35;font-weight:400;
  white-space:nowrap;padding:6px 10px;border-radius:6px;pointer-events:none;opacity:0;visibility:hidden;
  transition:opacity .15s ease,transform .15s ease,visibility .15s;z-index:20}
.sfel-picto::before{
  content:"";position:absolute;bottom:calc(100% + 3px);left:50%;transform:translateX(-50%);
  border:5px solid transparent;border-top-color:#00060F;pointer-events:none;opacity:0;visibility:hidden;
  transition:opacity .15s ease,visibility .15s;z-index:20}
.sfel-picto:hover::after,.sfel-picto:focus-within::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.sfel-picto:hover::before,.sfel-picto:focus-within::before{opacity:1;visibility:visible}
.sfel-picto[data-bulle=""]::after,.sfel-picto[data-bulle=""]::before{display:none}
/* pres du bord : la bulle deborderait, on la recale */
.sfel-pictos{position:relative}
@media(max-width:600px){
  .sfel-picto::after{white-space:normal;min-width:150px;text-align:center}
}
/* Mention sous un curseur de filtre */
.sfel-wrap .sfel-fnote{margin:10px 0 0;font-size:12px;line-height:1.45;color:#6B7280;display:flex;gap:6px}
.sfel-wrap .sfel-fnote::before{content:"i";flex:none;width:14px;height:14px;border-radius:50%;background:#D5D9E2;color:#194B9B;font-size:10px;font-weight:700;font-style:normal;line-height:14px;text-align:center}
/* Notes sous les titres des tableaux produit + pastille de l'option par défaut */
.sfel-tnote{margin:0 0 14px;font-size:14px;line-height:1.5;color:#6B7280}
.sfel-famtable thead th small{display:block;font-weight:400;text-transform:none;letter-spacing:0;font-size:.7rem;color:#6B7280}
.sfel-opts td.def .sfel-pill.def{border-color:#194B9B;color:#194B9B;font-weight:500}
