.elementor-kit-8{--e-global-color-primary:#CF3B29;--e-global-color-secondary:#2E1708;--e-global-color-text:#5A4631;--e-global-color-accent:#E7A83A;--e-global-color-8f19df1:#F4EAD8;--e-global-color-855ac31:#FAF3E6;--e-global-color-f61caa0:#1A0E06;--e-global-color-63313e6:#6A5238;--e-global-color-d7d381c:#F3C66B;--e-global-typography-primary-font-family:"Bricolage Grotesque";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Bricolage Grotesque";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Space Grotesk";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:700;}.elementor-kit-8 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* =========================================================
   SAFPAL IDÉAL
   ========================================================= */

.safpal-hero { position: relative; overflow: hidden; min-height: 86vh; max-height: 860px; }

/* Slides : fondu enchaîné (desktop) */
.sh-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.1s ease; display: flex; align-items: center; }
.sh-slide.on { opacity: 1; visibility: visible; }
.sh-slide::before {
  content: ""; position: absolute; width: 80vw; height: 80vw;
  max-width: 760px; max-height: 760px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.3), transparent 65%);
  top: -22%; right: -12%; pointer-events: none;
}
.sh-wrap {
  position: relative; z-index: 2; width: 100%; max-width: 1300px; margin: 0 auto;
  padding: 0 56px; display: grid; grid-template-columns: 1.1fr .9fr;
  align-items: center; gap: 40px;
}

/* Texte */
.sh-kicker { display: inline-block; font-family: 'Space Grotesk', sans-serif; font-size: .78rem; font-weight: 700; letter-spacing: .32em; text-transform: uppercase; margin-bottom: 20px; }
.sh-title { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; line-height: .92; letter-spacing: -.03em; font-size: clamp(3rem, 7.4vw, 5.75rem); margin-bottom: 22px; margin-top: 0; margin-left: -5px;}
.sh-out { position: relative; display: inline-block; }
.sh-out::after { content: ""; position: absolute; left: 2px; right: 2px; bottom: .08em; height: .18em; background: currentColor; opacity: .32; border-radius: 5px; z-index: -1; }
.sh-sub { font-family: 'Space Grotesk', sans-serif; font-size: 1.16rem; max-width: 430px; margin-bottom: 32px; font-weight: 500; line-height: 1.6; }

/* Boutons */
.sh-acts { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.sh-btn { display: inline-flex; align-items: center; gap: 10px; background: #2E1708; color: #fff; font-family: 'Space Grotesk', sans-serif; font-weight: 700; padding: 16px 32px; border-radius: 60px; font-size: .96rem; transition: transform .2s ease, background .2s ease; }
.sh-btn:hover { background: #CF3B29; transform: translateY(-2px); }
.sh-link { display: inline-flex; align-items: center; gap: 9px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .96rem; color: inherit; }

/* Image produit */
.sh-prod { position: relative; display: flex; justify-content: end; }
.sh-prod img { height: 70vh; max-height: 550px; width: auto; }

/* Animation d'entrée échelonnée */
.sh-kicker, .sh-title, .sh-sub, .sh-acts { opacity: 0; transform: translateY(26px); transition: opacity .6s ease, transform .6s ease; }
.sh-prod img { opacity: 0; transform: scale(.86) rotate(4deg); transition: opacity .8s ease .3s, transform .8s ease .3s; }
.sh-slide.on .sh-kicker { opacity: 1; transform: none; transition-delay: .2s; }
.sh-slide.on .sh-title  { opacity: 1; transform: none; transition-delay: .32s; }
.sh-slide.on .sh-sub    { opacity: 1; transform: none; transition-delay: .44s; }
.sh-slide.on .sh-acts   { opacity: 1; transform: none; transition-delay: .56s; }
.sh-slide.on .sh-prod img { opacity: 1; transform: scale(1) rotate(3deg); }

/* Contrôles */
.sh-dots { position: absolute; bottom: 34px; left: 56px; display: flex; gap: 10px; z-index: 10; }
.sh-dots button { width: 36px; height: 5px; border-radius: 3px; border: none; padding: 0; background: rgba(46,23,8,.25); cursor: pointer; transition: .3s; }
.sh-dots button.on { background: #2E1708; width: 54px; }
.sh-arrows { position: absolute; bottom: 30px; right: 56px; display: flex; gap: 12px; z-index: 10; }
.sh-arrows button { width: 50px; height: 50px; border-radius: 50%; border: 2px solid #2E1708; background: transparent; color: #2E1708; font-size: 1.2rem; cursor: pointer; transition: .2s; display: grid; place-items: center; }
.sh-arrows button:hover { background: #2E1708; color: #F4EAD8; }

/* =========================================================
   SAFPAL IDÉAL — HERO RESPONSIVE
   ========================================================= */

/* ============ Tablette & mobile (≤ 991px) ============ */
@media (max-width: 991px) {

  .safpal-hero { min-height: auto; max-height: none; position: relative; }

  /* Slides empilés : seul le slide actif est visible */
  .sh-slide {
    display: none;
    position: relative;
    opacity: 1;
    visibility: visible;
    padding: 44px 0 60px;
  }
  .sh-slide.on { display: flex; }

  /* Halo décoratif recadré (évite le scroll horizontal) */
  .sh-slide::before {
    width: 130vw; height: 130vw;
    top: -8%; right: -35%;
    opacity: .8;
  }

  /* Colonne unique, tout centré */
  .sh-wrap {
    grid-template-columns: 1fr;
    padding: 0 24px;
    gap: 10px;
    text-align: center;
    justify-items: center;
  }

  /* Produit en haut, centré (corrige le justify-content: end hérité) */
  .sh-prod {
    order: -1;
    justify-content: center;
    width: 100%;
    max-width: none;
    margin-bottom: 6px;
  }
  .sh-prod img {
    height: auto;
    width: auto;
    max-height: 330px;
    max-width: 76%;
  }

  /* Texte */
  .sh-kicker { margin-bottom: 14px; font-size: .72rem; letter-spacing: .26em; }
  .sh-title  {
    font-size: clamp(2.4rem, 9vw, 4rem);
    margin-left: 0;             /* annule le -5px du desktop */
    margin-bottom: 16px;
  }
  .sh-sub {
    font-size: 1.05rem;
    max-width: 380px;
    margin: 0 auto 26px;
  }

  /* Actions centrées */
  .sh-acts { justify-content: center; gap: 14px; }
  .sh-btn  { padding: 15px 30px; }

  /* Puces : centrées en bas */
  .sh-dots {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 24px;
    display: flex;
    justify-content: center;
    gap: 8px;
    z-index: 10;
  }
  .sh-dots button { width: 22px; height: 4px; }
  .sh-dots button.on { width: 34px; }

  /* Flèches : collées aux bords, centrées verticalement */
  .sh-arrows {
    opacity: .5;
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    bottom: auto;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 12px;
    z-index: 10;
    pointer-events: none;        /* le conteneur ne bloque pas les clics */
  }
  .sh-arrows button {
    pointer-events: auto;        /* mais les boutons restent cliquables */
    width: 44px; height: 44px;
    font-size: 1.1rem;
  }
}

/* ============ Petits téléphones (≤ 480px) ============ */
@media (max-width: 480px) {
  .sh-wrap     { padding: 0 18px; }
  .sh-prod img { max-height: 280px; max-width: 82%; }
  .sh-title    { font-size: clamp(2.1rem, 11vw, 3.2rem); }
  .sh-sub      { font-size: 1rem; max-width: 320px; }

  .sh-dots          { bottom: 20px; }
  .sh-arrows button { width: 40px; height: 40px; font-size: 1rem; }
}

/* ---- DISSOLUTION DU WRAPPER INTERNE (agnostique v3/v4) ---- */
.sf-eng-row > div:only-child,
.sf-rg-grid > div:only-child,
.sf-rg > div:only-child,
.sf-rec-feat > div:only-child,
.sf-rec-grid > div:only-child,
.sf-rec-card > div:only-child,
.sf-src-card > div:only-child,
.sf-rec-copy > div:only-child,
.sf-ploop > div:only-child,
.sf-ploop-thumb > div:only-child,
.sf-ploop-body > div:only-child,
.sf-rloop > div:only-child,
.sf-rloop-body > div:only-child,
.sf-spr-hero > div:only-child,
.sf-spr-info > div:only-child,
.sf-spr-actions > div:only-child,
.sf-rec-body > div:only-child,
.sf-rec-steps > div:only-child,
.sf-ap-story > div:only-child,
.sf-ap-media > div:only-child,
.sf-ap-text > div:only-child,
.sf-val-grid > div:only-child,
.sf-ct-grid > div:only-child,
.sf-ct-info > div:only-child {
  display: contents;
}

/* =========================================================
   CHIFFRES (Counter)
   ========================================================= */
.sf-stats { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px; }
.sf-stats > div:only-child { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px; flex: 1 1 100%; }
.sf-stats .sf-stat { flex: 1 1 180px; text-align: center; }
.sf-stats .elementor-counter-number-wrapper {
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800;
  font-size: 2.8rem; line-height: 1; color: #CF3B29; justify-content: center;
}
.sf-stats .elementor-counter-title {
  font-family: 'Space Grotesk', sans-serif; font-weight: 600;
  font-size: .9rem; color: #6A5238; margin-top: 6px;
}

/* =========================================================
   ENGAGEMENTS (liste numérotée)
   ========================================================= */
.sf-eng-list { border-top: 1.5px solid rgba(46,23,8,.16); }
.sf-eng-row { display: grid; grid-template-columns: 80px 1.1fr 2fr; gap: 26px; align-items: center;
  padding: 26px 0 !important; border-bottom: 1.5px solid rgba(46,23,8,.16);
  transition: padding .3s ease, background .3s ease; }
.sf-eng-row:hover { padding-left: 16px !important; background: linear-gradient(90deg, rgba(207,59,41,.06), transparent); }
.sf-eng-no .elementor-heading-title { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 1.5rem; color: #CF3B29; }
.sf-eng-title .elementor-heading-title { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.4rem; color: #2E1708; }
.sf-eng-desc, .sf-eng-desc p { font-family: 'Space Grotesk', sans-serif; color: #6A5238; font-weight: 500; margin: 0; }
.sf-kicker .elementor-heading-title { text-transform: uppercase; }
@media (max-width: 820px) {
  .sf-eng-row { grid-template-columns: 44px 1fr; }
  .sf-eng-desc { grid-column: 1 / -1; padding-left: 58px; }
}

/* =========================================================
   NEWSLETTER (Form Pro) — centré
   ========================================================= */
.sf-news { text-align: center; }
.sf-news .sf-news-form { width: 100%; max-width: 480px; margin: 14px auto 0; }
.sf-news .elementor-form { justify-content: center; }
.sf-news .elementor-field { font-family: 'Space Grotesk', sans-serif !important; padding: 16px 24px !important; border: none !important; }
.sf-news .elementor-button:hover { transform: translateY(-2px); background: #1A0E06 !important; }

/* =========================================================
   NOS UNIVERS (cartes catégories, image + overlay)
   ========================================================= */
.sf-rg-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.sf-rg {
  position: relative; border-radius: 28px; overflow: hidden; min-height: 440px;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 32px !important; transition: transform .3s ease;
}
.sf-rg::after { content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(46,23,8,.1) 20%, rgba(46,23,8,.88)); transition: background .3s ease; }
.sf-rg:hover { transform: translateY(-8px); }
.sf-rg:hover::after { background: linear-gradient(180deg, rgba(46,23,8,.2) 10%, rgba(46,23,8,.92)); }
.sf-rg-tag, .sf-rg-title, .sf-rg-desc, .sf-rg-btn { position: relative; z-index: 2; }
.sf-rg-tag .elementor-heading-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .7rem; letter-spacing: .12em; color: #E7A83A; }
.sf-rg-title .elementor-heading-title { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 1.9rem; color: #FFFFFF; margin: 8px 0; }
.sf-rg-desc, .sf-rg-desc p { font-family: 'Space Grotesk', sans-serif; color: rgba(255,255,255,.9); font-weight: 500; font-size: .94rem; margin: 0 0 16px; max-width: 260px; }
.sf-rg-btn .elementor-button { background: #FFFFFF; color: #2E1708; border-radius: 50px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .86rem; padding: 11px 22px; transition: background .2s ease; }
.sf-rg-btn .elementor-button:hover { background: #E7A83A; }
@media (max-width: 820px) { .sf-rg-grid { grid-template-columns: 1fr; } .sf-rg { min-height: 340px; } }

/* =========================================================
   SAGA (titre + texte + bouton play, image + overlay) — centré
   ========================================================= */
.sf-saga { position: relative; overflow: hidden; text-align: center; }
.sf-saga::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(26,14,6,.82), rgba(46,23,8,.9)); }
.sf-saga > * { position: relative; z-index: 2; }
.sf-saga-play { margin-top: 38px; }
.sf-saga-play .elementor-button {
  width: 88px; height: 88px; border-radius: 50%; background: #CF3B29; color: #fff; font-size: 1.6rem;
  display: grid; place-items: center; padding: 0; position: relative; transition: transform .25s ease, background .25s ease;
}
.sf-saga-play .elementor-button:hover { transform: scale(1.08); background: #E7A83A; color: #2E1708; }
.sf-saga-play .elementor-button::before { content: ""; position: absolute; inset: -10px; border-radius: 50%; border: 2px solid rgba(255,255,255,.4); animation: sfPulse 2.2s infinite; }
@keyframes sfPulse { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.4); opacity: 0; } }

/* =========================================================
   RECETTES (home)
   ========================================================= */
.sf-rec-feat { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center;
  background: rgba(244,234,216,.06); border: 1px solid rgba(244,234,216,.15); border-radius: 32px; padding: 40px !important; margin-bottom: 54px; }
.sf-rec-photo img { border-radius: 24px; width: 100%; object-fit: cover; }
.sf-rec-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.sf-rec-card { background: rgba(244,234,216,.07); border: 1px solid rgba(244,234,216,.14); border-radius: 22px; overflow: hidden; transition: transform .25s ease, background .25s ease; }
.sf-rec-card:hover { transform: translateY(-6px); background: rgba(244,234,216,.12); }
.sf-rec-thumb img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.sf-rec-cat .elementor-heading-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .68rem; letter-spacing: .12em; color: #E7A83A; padding: 18px 20px 0; }
.sf-rec-title .elementor-heading-title { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.18rem; color: #F4EAD8; padding: 8px 20px 0; }
.sf-rec-meta, .sf-rec-meta p { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .82rem; color: rgba(244,234,216,.8); margin: 0; padding: 10px 20px 20px; }
@media (max-width: 820px) { .sf-rec-feat { grid-template-columns: 1fr; gap: 30px; padding: 30px 20px !important; } .sf-rec-grid { grid-template-columns: 1fr; } }

/* =========================================================
   À PROPOS (section home, fond siège)
   ========================================================= */
.sf-story { position: relative; overflow: hidden; }
.sf-story::before { content: ""; position: absolute; inset: 0; z-index: 0;
  background: url('https://safpalideal.com/wp-content/uploads/2018/05/safpal_ideal_si%C3%A8ge_social_250x165.jpg') center/cover; opacity: .1; }
.sf-story::after { content: "1980"; position: absolute; bottom: -8%; left: 50%; transform: translateX(-50%); z-index: 0; pointer-events: none;
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 20rem; line-height: 1; color: #CF3B29; opacity: .06; }
.sf-story > * { position: relative; z-index: 2; }
@media (max-width: 820px) { .sf-story::after { font-size: 9rem; } }

/* =========================================================
   CATALOGUE — CARTE PRODUIT (loop item) — fidèle à .pcard de la home
   ========================================================= */
.sf-arch-intro p { max-width: 560px; margin-left: auto; margin-right: auto; }

.sf-ploop { background: #F4EAD8; border-radius: 26px; overflow: hidden; height: 100%;
  display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.sf-ploop:hover { transform: translateY(-8px); box-shadow: 0 26px 50px -22px rgba(46,23,8,.35); }
.sf-ploop-thumb { position: relative; background: #fff; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; padding: 12px !important; }
.sf-ploop-chip { position: absolute; top: 8px; left: 10px; z-index: 2; }
.sf-ploop-chip .elementor-heading-title { display: inline-block; background: #E7A83A; color: #2E1708; font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: .64rem; letter-spacing: .05em; text-transform: uppercase; padding: 5px 12px; border-radius: 50px; }
.sf-ploop-img { width: 100%; height: 260px; background: #fff; border-radius: 16px; overflow: hidden; }
.sf-ploop-img { width: 100% !important; height: 350px !important; display: flex !important; align-items: center; justify-content: center; margin: 0;}
.sf-ploop-img > a, .sf-ploop-img figure, .sf-ploop-img .elementor-image { width: 100% !important; height: 100% !important; display: flex !important; align-items: center; justify-content: center; margin: 0; }
.sf-ploop-img img { width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important; object-fit: cover; display: block; transition: transform .4s ease; }
.sf-ploop:hover .sf-ploop-img img { transform: scale(1.06) rotate(-2deg); }
@media (max-width: 600px) { .sf-ploop-img { height: 300px; } }
.sf-ploop-body { text-align: center; padding: 18px 22px 22px !important; flex: 1; display: flex; flex-direction: column; align-items: center; }
.sf-ploop-title .elementor-heading-title { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.2rem; color: #2E1708; }
.sf-ploop-desc, .sf-ploop-desc p { font-family: 'Space Grotesk', sans-serif; color: #7A6248; font-size: .86rem; font-weight: 500; margin: 6px 0 16px; flex: 1; }
.sf-ploop-btn .elementor-button { background: #2E1708; color: #F4EAD8; border-radius: 50px; font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: .82rem; padding: 9px 18px; transition: background .2s ease; }
.sf-ploop-btn .elementor-button:hover { background: #CF3B29; color: #fff; }

/* CARTE RECETTE (loop item) — fidèle à .rcard de la home */
.sf-rloop { background: #fff; border-radius: 22px; overflow: hidden; height: 100%; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.sf-rloop:hover { transform: translateY(-7px); box-shadow: 0 26px 50px -22px rgba(46,23,8,.3); }
.sf-rloop-thumb img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.sf-rloop-cat .elementor-heading-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: #CF3B29; padding: 18px 16px 0; }
.sf-rloop-title .elementor-heading-title { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.22rem; color: #2E1708; padding: 8px 16px 0; }
.sf-rloop-meta, .sf-rloop-meta p { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .82rem; color: #9B7D62; margin: 0; padding: 12px 16px 14px; }
@media (min-width: 600px) {
.similar-prd .sf-ploop-img { height: 251px !important;}
}
/* =========================================================
   SINGLE PRODUIT (e-commerce) — galerie carrée, accordéon, réassurance
   ========================================================= */
.sf-spr-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.sf-spr-gallery { position: sticky; top: 60px; }
.sf-spr-main { position: relative; background: #fff; border: 1px solid #ECE3D4; border-radius: 28px; aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.sf-spr-main > div:only-child { display: contents; }
/* pastille catégorie (shortcode = span ; widget = heading) */
.sf-spr-chip { position: absolute; top: 18px; left: 18px; z-index: 2; display: inline-block; background: #E7A83A; color: #2E1708; font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: .66rem; letter-spacing: .07em; text-transform: uppercase; padding: 6px 14px; border-radius: 50px; line-height: 1.2; }
.sf-spr-chip .elementor-heading-title { background: transparent; color: inherit; padding: 0; }
/* image principale (shortcode = <img class="sf-spr-mainimg">) */
.sf-spr-mainimg, .sf-spr-mainimg img { width: 100%; height: 100%; object-fit: contain; }
/* miniatures : grille de carrés (shortcode = <button class="sf-spr-thumb"><img></button>) */
.sf-spr-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-top: 14px; }
.sf-spr-thumb { background: #fff; border: 1.5px solid #ECE3D4; border-radius: 16px; aspect-ratio: 1/1; padding: 10px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: border-color .2s ease; }
.sf-spr-thumb.on { border-color: #CF3B29; border-width: 2px; }
.sf-spr-thumb img { width: 100%; height: 100%; object-fit: contain; }

.sf-spr-info { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding-top: 6px; }
.sf-spr-info > div:only-child { display: contents; }
.sf-spr-tags { margin: 2px 0; }
.sf-spr-tags .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; }
.sf-spr-tags .elementor-icon-list-item { background: #F7EFE2; border-radius: 50px; padding: 7px 14px !important; }
.sf-spr-tags .elementor-icon-list-text { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .8rem; color: #2E1708; }
.sf-spr-tags .elementor-icon-list-icon { display: none; }

/* accordéon */
.sf-spr-acc { width: 100%; margin-top: 6px; }
.sf-spr-acc .elementor-accordion-item { border: none; border-bottom: 1px solid #ECE3D4; }
.sf-spr-acc .elementor-tab-title { background: transparent !important; padding: 20px 4px !important; font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.1rem; color: #2E1708 !important; }
.sf-spr-acc .elementor-tab-title .elementor-accordion-icon { color: #CF3B29; }
.sf-spr-acc .elementor-tab-content { padding: 0 4px 22px !important; background: transparent !important; color: #5A4631; font-family: 'Space Grotesk', sans-serif; font-size: .98rem; line-height: 1.7; border: none !important; }
/* grille nutri (dans l'accordéon) */
.sf-nutri-note { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #9B7D62; margin-bottom: 12px; }
.sf-nutri { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.sf-nutri .c { background: #F7EFE2; border-radius: 16px; padding: 16px 12px; text-align: center; display: flex; flex-direction: column; }
.sf-nutri .v { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 1.25rem; color: #CF3B29; line-height: 1.05; }
.sf-nutri .u { font-size: .72rem; color: #9B7D62; margin-top: 4px; font-weight: 600; }
.sf-nutri .l { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #2E1708; margin-top: 8px; }

/* formats disponibles (liste, non cliquable) */
.sf-fmt { margin: 2px 0 4px; }
.sf-fmt-label { display: block; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: #9B7D62; margin-bottom: 8px; }
.sf-fmt-list { display: flex; flex-wrap: wrap; gap: 10px; }
.sf-fmt-pill { background: #F7EFE2; color: #2E1708; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .82rem; padding: 8px 16px; border-radius: 50px; border: 1px solid #ECE3D4; }

/* bloc nutrition (widget Shortcode sous l'accordéon) */
.sf-nutri-wrap { margin-top: 22px; }

/* accordéon maison (shortcode [safpal_details]) — Utilisation / Ingrédients / Valeurs nutritionnelles */
.sf-acc { width: 100%; margin-top: 8px; border-top: 1px solid #ECE3D4; }
.sf-acc-item { border-bottom: 1px solid #ECE3D4; }
.sf-acc-h { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 12px; background: none; border: none; cursor: pointer; padding: 20px 2px; font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.1rem; color: #2E1708; text-align: left; }
.sf-acc-ind { flex: none; width: 22px; height: 22px; position: relative; }
.sf-acc-ind::before, .sf-acc-ind::after { content: ""; position: absolute; background: #CF3B29; border-radius: 2px; transition: transform .3s ease; }
.sf-acc-ind::before { top: 10px; left: 2px; right: 2px; height: 2px; }
.sf-acc-ind::after { left: 10px; top: 2px; bottom: 2px; width: 2px; }
.sf-acc-item.open .sf-acc-ind::after { transform: scaleY(0); }
.sf-acc-c { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.sf-acc-item.open .sf-acc-c { max-height: 640px; }
.sf-acc-in { padding: 0 2px 22px; color: #5A4631; font-family: 'Space Grotesk', sans-serif; font-size: .98rem; line-height: 1.7; }
.sf-acc-in p { margin: 0 0 8px; }
.sf-acc-in p:last-child { margin-bottom: 0; }

/* réassurance : icône trait fin + texte, filets */
.sf-trust { margin: 60px 0 0; padding: 15px 0 30px; border-top: 1px solid #ECE3D4; border-bottom: 1px solid #ECE3D4; }
.sf-trust .elementor-icon-list-items { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.sf-trust .elementor-icon-list-item { align-items: center; gap: 12px; }
.sf-trust .elementor-icon-list-icon { color: #2E1708; font-size: 24px; }
.sf-trust .elementor-icon-list-icon svg { width: 26px; height: 26px; }
.sf-trust .elementor-icon-list-text { font-family: 'Space Grotesk', sans-serif; font-weight: 700; color: #2E1708; font-size: .92rem; }

@media (max-width: 860px) {
  .sf-spr-hero { grid-template-columns: 1fr; gap: 34px; }
  .sf-spr-gallery { position: static; }
  .sf-trust .elementor-icon-list-items { grid-template-columns: 1fr 1fr; }
  .sf-nutri { grid-template-columns: 1fr 1fr; }
  .sf-trust { padding: 30px 0; }
}

/* =========================================================
   SINGLE RECETTE (éditorial) — hero photo + carte superposée
   ========================================================= */
.sf-rec-hero { position: relative; }
.sf-rec-hero-img img { width: 100%; height: min(70vh, 620px); object-fit: cover; display: block; }
.sf-rec-cardwrap { position: relative; }
.sf-src-card { position: relative; margin-top: -120px; background: #fff; border: 1px solid #ECE3D4; border-radius: 28px; padding: 46px !important; max-width: 760px; box-shadow: 0 40px 40px -40px rgba(46,23,8,.2); }
.sf-src-card > div:only-child { display: contents; }
.sf-rec-chip { margin-bottom: 6px; }
.sf-rec-chip .elementor-heading-title { display: inline-block; background: #CF3B29; color: #fff; font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: .66rem; letter-spacing: .09em; text-transform: uppercase; padding: 6px 14px; border-radius: 50px; }
.sf-rec-meta { margin-top: 24px; padding-top: 22px; border-top: 1px solid #ECE3D4; }
.sf-rec-meta .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 30px; }
.sf-rec-meta .elementor-icon-list-icon { color: #E7A83A; }
.sf-rec-meta .elementor-icon-list-icon svg { width: 22px; height: 22px; }
.sf-rec-meta .elementor-icon-list-text { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; color: #2E1708; font-size: .98rem; }

.sf-rec-body { display: grid; grid-template-columns: .85fr 1.15fr; gap: 50px; align-items: start; }
.sf-rec-ing { position: sticky; top: 30px; background: #F7EFE2; border-radius: 24px; padding: 34px !important; }
.sf-rec-ing > div:only-child { display: contents; }
.sf-rec-ing-list ul { list-style: none; padding: 0; margin: 14px 0 0; }
.sf-rec-ing-list li { display: flex; align-items: flex-start; gap: 12px; padding: 11px 0; border-bottom: 1px solid #ECE3D4; color: #5A4631; font-size: .98rem; }
.sf-rec-ing-list li:last-child { border-bottom: none; }
.sf-rec-ing-list li::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: #E7A83A; margin-top: 8px; }
.sf-rec-steps > div:only-child { display: contents; }
.sf-rec-steps-list ol { list-style: none; counter-reset: step; padding: 0; margin: 0; }
.sf-rec-steps-list li { counter-increment: step; position: relative; padding: 0 0 26px 66px; min-height: 56px;     margin-bottom: 4px; }
.sf-rec-steps-list li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 46px; height: 46px; border-radius: 50%; background: #2E1708; color: #F4EAD8; font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 1.2rem; display: grid; place-items: center; }
.sf-rec-steps-list li strong { font-family: 'Bricolage Grotesque', sans-serif; color: #2E1708; display: block;
    margin-bottom: 4px; }
.sf-rec-cta > div:only-child { display: contents; }

@media (max-width: 860px) {
  .sf-src-card { margin-top: -80px; padding: 22px !important; }
  .sf-rec-body { grid-template-columns: 1fr; gap: 36px; }
  .sf-rec-ing { position: static; padding: 30px 20px !important;}

}

/* =========================================================
   PAGE À PROPOS
   ========================================================= */
.sf-ap-hero { position: relative; overflow: hidden; text-align: center; }
.sf-ap-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(26,14,6,.7), rgba(46,23,8,.85)); }
.sf-ap-hero > * { position: relative; z-index: 2; }
.sf-ap-hero-sub p { max-width: 620px; margin: 0 auto; }
.sf-ap-story { display: grid; grid-template-columns: .95fr 1.05fr; gap: 64px; align-items: center; }
.sf-ap-media { position: relative; }
.sf-ap-media-img img { width: 100%; border-radius: 32px; box-shadow: 0 30px 60px -26px rgba(46,23,8,.4); display: block; }
.sf-ap-badge { position: absolute; right: -18px; bottom: -18px; z-index: 3; }
.sf-ap-badge .elementor-heading-title { width: 116px; height: 116px; border-radius: 50%; background: #CF3B29; color: #fff; display: grid; place-content: center; text-align: center; transform: rotate(-6deg); font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 2.2rem; box-shadow: 0 20px 40px -16px rgba(207,59,41,.6); }
.sf-ap-text { display: flex; flex-direction: column; }
@media (max-width: 820px) { .sf-ap-story { grid-template-columns: 1fr; gap: 54px; } }
.sf-val-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.sf-val-card { background: rgba(244,234,216,.06); border: 1px solid rgba(244,234,216,.14); border-radius: 22px; padding: 32px 26px !important; text-align: center; transition: transform .25s ease, background .25s ease; }
.sf-val-card:hover { transform: translateY(-6px); background: rgba(244,234,216,.1); }
.sf-val-card .e { font-size: 1.8rem; width: 64px; height: 64px; margin: 0 auto 16px; display: grid; place-items: center; }
.sf-val-card .t { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.2rem; color: #fff; margin: 0 0 8px; }
.sf-val-card .d { font-family: 'Space Grotesk', sans-serif; font-size: .92rem; color: #DCC0A4; margin: 0; line-height: 1.55; }
@media (max-width: 900px) { .sf-val-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .sf-val-grid { grid-template-columns: 1fr; } }
.sf-ap-quote { text-align: center; }
.sf-ap-quote .elementor-heading-title { max-width: 760px; margin: 0 auto; }
.sf-cta { text-align: center; }

/* =========================================================
   PAGE CONTACT
   ========================================================= */
.sf-ct-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 40px; align-items: start; }
.sf-ct-info { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sf-ct-card { background: #FFFDF8; border: 1.5px solid #F0E2CD; border-radius: 20px; padding: 24px !important; transition: transform .2s ease, box-shadow .2s ease; }
.sf-ct-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -20px rgba(46,23,8,.3); }
.sf-ct-card .i { font-size: 1.6rem; margin: 0 0 10px; }
.sf-ct-card .t { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: #CF3B29; margin: 0 0 6px; }
.sf-ct-card .v, .sf-ct-card .v a { font-family: 'Space Grotesk', sans-serif; color: #2E1708; font-weight: 600; font-size: .98rem; margin: 0; line-height: 1.5; text-decoration: none; }
.sf-ct-card .v a:hover { color: #CF3B29; }
.sf-ct-formwrap { background: #FFFDF8; border: 1.5px solid #F0E2CD; border-radius: 28px; padding: 38px !important; }
.sf-ct-form .elementor-field { font-family: 'Space Grotesk', sans-serif !important; border: 1.5px solid #E8DDCB !important; border-radius: 14px !important; padding: 14px 18px !important; background: #FAF3E6 !important; }
.sf-ct-form .elementor-field-label { font-family: 'Space Grotesk', sans-serif; font-weight: 700; color: #2E1708; }
.sf-ct-form .elementor-button:hover { background: #2E1708 !important; transform: translateY(-2px); }
.sf-ct-cta { text-align: center; }
@media (max-width: 820px) { .sf-ct-grid { grid-template-columns: 1fr; gap: 30px; } }
@media (max-width: 480px) { .sf-ct-info { grid-template-columns: 1fr; } }

/* =========================================================
   PAGE À PROPOS v2 (rendue par [safpal_apropos]) — namespace sf-ap2-*
   À placer le shortcode dans une section Elementor PLEINE LARGEUR, padding 0.
   ========================================================= */
.sf-ap2 { color: #2E1708; font-family: 'Space Grotesk', sans-serif; }
.sf-ap2 p, .sf-ap2 span, .sf-ap2 a, .sf-ap2 h3 { font-family: 'Space Grotesk', sans-serif; }
.sf-ap2 *{ box-sizing: border-box; }
.sf-ap2-wrap { max-width: 1200px; margin: 0 auto; padding: 0 36px; }
.sf-ap2-sec { padding: 80px 0; }
.sf-ap2 .bgf { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; letter-spacing: -.025em; line-height: 1.05; }
.sf-ap2-kick { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: .76rem; letter-spacing: .28em; text-transform: uppercase; color: #CF3B29; }
.sf-ap2-lead { font-family: 'Space Grotesk', sans-serif; font-size: 1.15rem; color: #7A6248; line-height: 1.75; }

/* hero */
.sf-ap2-hero { padding: 90px 0 0; overflow: hidden; }
.sf-ap2-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
.sf-ap2-hero h1 { font-size: clamp(2rem, 4vw, 3.2rem); margin: 16px 0 20px; }
.sf-ap2-hero h1 em { font-style: normal; color: #CF3B29; }
.sf-ap2-hmedia { position: relative; line-height: 0; }
.sf-ap2-hmedia img { border-radius: 28px 28px 0 0; height: 520px; width: 100%; object-fit: cover; }
.sf-ap2-seal { position: absolute; left: -26px; top: 40px; background: #2E1708; color: #FAF3E6; border-radius: 18px; padding: 16px 20px; transform: rotate(-4deg); box-shadow: 0 24px 50px -20px rgba(46,23,8,.5); }
.sf-ap2-seal b { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 1.5rem; display: block; line-height: 1; }
.sf-ap2-seal span { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; opacity: .8; }

/* story (bande crème) */
.sf-ap2-story { background: #FAF3E6; }
.sf-ap2-story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.sf-ap2-story h2 { font-size: 2.1rem; margin: 12px 0 16px; }
.sf-ap2-story p { color: #7A6248; margin-bottom: 14px; line-height: 1.7; }
.sf-ap2-accent { display: inline-flex; align-items: baseline; gap: 10px; margin-top: 10px; font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; color: #2E1708; }
.sf-ap2-accent b { font-size: 3rem; color: #CF3B29; line-height: 1; }
.sf-ap2-story-grid .sf-ap2-story-img { border-radius: 28px; height: 440px; width: 100%; object-fit: cover; }

/* timeline */
.sf-ap2-tl { text-align: center; padding-bottom: 60px; }
.sf-ap2-vals { padding-top: 56px; }
.sf-ap2-tl h2 { font-size: 2.4rem; margin: 14px 0 56px; }
.sf-ap2-tl-line { display: grid; grid-template-columns: repeat(4, 1fr); position: relative; }
.sf-ap2-tl-line::before { content: ""; position: absolute; left: 12%; right: 12%; top: 13px; height: 2px; background: linear-gradient(90deg, #E7A83A, #CF3B29); }
.sf-ap2-tl-step { position: relative; padding: 0 14px; }
.sf-ap2-tl-dot { width: 28px; height: 28px; border-radius: 50%; background: #FFFDF8; border: 3px solid #CF3B29; margin: 0 auto 22px; position: relative; z-index: 2; }
.sf-ap2-tl-year { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 1.5rem; color: #2E1708; }
.sf-ap2-tl-txt { font-size: .92rem; color: #7A6248; margin-top: 8px; max-width: 200px; margin-inline: auto; }

/* valeurs (cartes claires, icônes trait fin) */
.sf-ap2-vhead { text-align: center; max-width: 560px; margin: 0 auto 52px; }
.sf-ap2-vals h2 { font-size: 2.4rem; margin: 14px 0; }
.sf-ap2-vgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.sf-ap2-vcard { background: #FFFDF8; border: 1.5px solid #ECE3D4; border-radius: 22px; padding: 34px 26px; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.sf-ap2-vcard:hover { transform: translateY(-7px); box-shadow: 0 28px 50px -26px rgba(46,23,8,.28); border-color: #E4D6BE; }
.sf-ap2-vcard { color: #2E1708; }
.sf-ap2-vcard svg { width: 30px; height: 30px; color: #CF3B29; fill: none; margin-bottom: 10px; display: block; }
.sf-ap2-vcard h3 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.18rem; margin-bottom: 8px; }
.sf-ap2-vcard p { font-size: .92rem; color: #7A6248; line-height: 1.55; }

/* signature */
.sf-ap2-sign { background: #2E1708; color: #FAF3E6; text-align: center; position: relative; overflow: hidden; }
.sf-ap2-sign::after { content: attr(data-watermark); position: absolute; left: 50%; bottom: -15%; transform: translateX(-50%); font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 13rem; opacity: .05; white-space: nowrap; pointer-events: none; }
.sf-ap2-sign .sf-ap2-wrap { position: relative; z-index: 2; }
.sf-ap2-sign .sf-ap2-kick { color: #E7A83A; }
.sf-ap2-sign h2 { font-size: clamp(1.8rem, 3.6vw, 2.8rem); max-width: 820px; margin: 18px auto 0; }
.sf-ap2-sign .by { margin-top: 20px; color: #E7A83A; font-weight: 600; letter-spacing: .04em; }

/* cta */
.sf-ap2-cta { background: #FAF3E6; text-align: center; }
.sf-ap2-cta h2 { font-size: 2.2rem; margin-bottom: 24px; }
.sf-ap2-btn { display: inline-block; background: #CF3B29; color: #fff; font-family: 'Space Grotesk', sans-serif; font-weight: 700; border-radius: 50px; padding: 16px 34px; transition: background .2s ease, transform .2s ease; text-decoration: none; }
.sf-ap2-btn:hover { background: #2E1708; transform: translateY(-2px); }

@media (max-width: 880px) {
  .sf-ap2-sec { padding: 72px 0; }
  .sf-ap2-hero-grid, .sf-ap2-story-grid { grid-template-columns: 1fr; gap: 40px; }
  .sf-ap2-hmedia img { height: 380px; }
  .sf-ap2-tl-line { grid-template-columns: 1fr 1fr; gap: 40px 0; }
  .sf-ap2-tl-line::before { display: none; }
  .sf-ap2-vgrid { grid-template-columns: 1fr 1fr; }
  .sf-ap2-sec { padding: 60px 0; }
  .sf-ap2-hero { padding: 70px 0 0; }
  .sf-ap2-wrap { padding: 0 20px; }
}
@media (max-width: 520px) { .sf-ap2-vgrid { grid-template-columns: 1fr; } }/* End custom CSS */