/* ==========================================================================
   F&H — Accueil (board 10 / 17), Boutique (12 / 19), Par objectif (13)
   ========================================================================== */
.fh-page { min-height: 40vh; }
.fh-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 13px; color: var(--fh-grey-2); padding: 20px 0 0; }
.fh-breadcrumb a:hover { text-decoration: underline; text-underline-offset: 3px; }
.fh-breadcrumb svg { width: 12px; height: 12px; color: var(--fh-grey-4); }
.fh-breadcrumb .is-current { color: var(--fh-black-900); }

/* Hero */
.fh-hero { padding: 64px 0 56px; }
.fh-hero__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 64px; align-items: center; }
.fh-hero__eyebrow { margin-bottom: 40px; }
.fh-hero__title { margin-bottom: 40px; }
.fh-hero__title .fh-line { display: block; overflow: hidden; }
.fh-hero__title .fh-line span { display: block; transform: translateY(110%); transition: transform 600ms var(--fh-e-reveal); }
.fh-hero.is-in .fh-hero__title .fh-line span { transform: none; }
.fh-hero.is-in .fh-hero__title .fh-line:nth-child(2) span { transition-delay: 80ms; } .fh-hero.is-in .fh-hero__title .fh-line:nth-child(3) span { transition-delay: 160ms; }
.fh-hero__lead { font-size: 18px; max-width: 46ch; color: var(--fh-black-900); margin-bottom: 40px; }
.fh-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 40px; }
.fh-hero__proof { display: flex; flex-wrap: wrap; gap: 32px; font-size: 14px; color: var(--fh-grey-2); }
.fh-hero__proof span { display: inline-flex; align-items: center; gap: 8px; } .fh-hero__proof svg { width: 18px; height: 18px; }
.fh-hero__lead, .fh-hero__ctas, .fh-hero__proof, .fh-hero__eyebrow { opacity: 0; transform: translateY(12px); transition: opacity 400ms var(--fh-e-reveal), transform 400ms var(--fh-e-reveal); }
.fh-hero.is-in .fh-hero__eyebrow { opacity: 1; transform: none; }
.fh-hero.is-in .fh-hero__lead { opacity: 1; transform: none; transition-delay: 240ms; }
.fh-hero.is-in .fh-hero__ctas { opacity: 1; transform: none; transition-delay: 320ms; }
.fh-hero.is-in .fh-hero__proof { opacity: 1; transform: none; transition-delay: 400ms; }
.fh-scene { position: relative; border-radius: var(--fh-r-card); background: var(--fh-black-800); background-image: radial-gradient(120% 80% at 50% -10%, #2A2A2E 0%, #151517 45%, #0B0B0C 100%); color: var(--fh-white-50); overflow: hidden; aspect-ratio: 16 / 12; display: flex; flex-direction: column; opacity: 0; transform: translateY(24px); transition: opacity var(--fh-t-scene) var(--fh-e-reveal), transform var(--fh-t-scene) var(--fh-e-reveal); }
.fh-hero.is-in .fh-scene { opacity: 1; transform: none; transition-delay: 200ms; }
.fh-scene__top { display: flex; justify-content: space-between; padding: 28px 32px 0; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-stretch: 78%; font-variation-settings: "wdth" 78; color: var(--fh-grey-4); }
.fh-scene__stage { flex: 1; position: relative; display: flex; align-items: flex-end; justify-content: center; gap: 0; padding: 20px 40px 0; min-height: 0; }
.fh-scene__stage img { object-fit: contain; object-position: bottom; height: 62%; width: auto; max-width: 40%; filter: drop-shadow(0 30px 40px rgba(0,0,0,.6)); transition: opacity var(--fh-t-state); }
.fh-scene__stage img:nth-child(2) { height: 78%; z-index: 2; margin: 0 -4%; }
.fh-scene__stage img:nth-child(3) { height: 50%; }
.fh-scene__rule { height: 2px; background: var(--fh-yellow-500); margin: 0 32px; transform-origin: left; transform: scaleX(0); transition: transform 700ms var(--fh-e-reveal) 600ms; }
.fh-hero.is-in .fh-scene__rule { transform: scaleX(1); }
.fh-scene__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 20px 32px 28px; }
.fh-scene__cat { font-size: 13px; color: var(--fh-grey-4); margin-bottom: 6px; }
.fh-scene__name { font-size: 22px; font-weight: 600; letter-spacing: -0.01em; margin-bottom: 8px; }
.fh-scene__price { color: var(--fh-yellow-400); font-size: 18px; }
.fh-scene__foot .fh-btn { flex: none; }
.fh-scene__dots { position: absolute; right: 32px; top: 28px; }
@media (max-width: 1023px) { .fh-hero__in { grid-template-columns: 1fr; gap: 40px; } .fh-scene { aspect-ratio: 4 / 3; } }
@media (max-width: 767px) {
  .fh-hero { padding: 32px 0 40px; }
  .fh-hero__eyebrow { margin-bottom: 24px; } .fh-hero__title { margin-bottom: 24px; } .fh-hero__lead { font-size: 15px; margin-bottom: 24px; }
  .fh-hero__ctas { flex-direction: column; margin-bottom: 24px; } .fh-hero__ctas .fh-btn { width: 100%; } .fh-hero__ctas .fh-btn--outline { background: none; border: 0; height: auto; padding: 8px 0; justify-content: flex-start; border-bottom: 1.5px solid var(--fh-black-900); width: auto; align-self: flex-start; border-radius: 0; }
  .fh-hero__ctas .fh-btn--outline:hover { color: var(--fh-black-900); }
  .fh-hero__proof { display: none; }
  .fh-scene { aspect-ratio: 1 / 1; } .fh-scene__top { padding: 20px 20px 0; } .fh-scene__stage { padding: 12px 20px 0; } .fh-scene__rule { margin: 0 20px; } .fh-scene__foot { padding: 16px 20px 20px; flex-direction: column; align-items: flex-start; gap: 12px; } .fh-scene__name { font-size: 17px; } .fh-scene__foot .fh-btn { width: 44px; height: 44px; padding: 0; font-size: 0; } .fh-scene__foot .fh-btn svg { width: 18px; height: 18px; }
}
/* trust marquee */
.fh-trust { border-top: 1px solid var(--fh-white-300); border-bottom: 1px solid var(--fh-white-300); padding: 22px 0; }
.fh-trust .fh-marquee__group span { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-stretch: 85%; font-variation-settings: "wdth" 85; color: var(--fh-grey-2); padding: 0 40px; position: relative; }
.fh-trust .fh-marquee__group span::after { content: ""; position: absolute; right: -3px; top: 50%; width: 6px; height: 6px; border-radius: 50%; background: var(--fh-yellow-500); transform: translateY(-50%); }
/* categories */
.fh-cats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; }
.fh-cat { display: flex; flex-direction: column; border: 1px solid var(--fh-white-300); border-radius: var(--fh-r-card); background: var(--fh-white-50); padding: 20px 20px 22px; min-height: 300px; transition: border-color var(--fh-t-state) var(--fh-e-state), box-shadow var(--fh-t-state) var(--fh-e-state); }
.fh-cat:hover { border-color: var(--fh-black-900); box-shadow: var(--fh-shadow-hover); }
.fh-cat__img { flex: 1; display: grid; place-content: center; min-height: 150px; margin-bottom: 16px; }
.fh-cat__img img { width: 140px; height: 150px; object-fit: contain; transition: transform var(--fh-t-state) var(--fh-e-state); }
.fh-cat:hover .fh-cat__img img { transform: scale(1.03); }
.fh-cat__name { font-size: 20px; font-weight: 600; letter-spacing: -0.01em; margin-bottom: 6px; }
.fh-cat__line { font-size: 13px; color: var(--fh-grey-3); }
.fh-cat--dark { background: var(--fh-black-900); background-image: linear-gradient(160deg, #1F1F22, #0B0B0C 70%); color: var(--fh-white-50); border-color: var(--fh-black-900); }
.fh-cat--dark .fh-cat__line { color: var(--fh-grey-4); }
.fh-cats__also { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 24px; }
.fh-cats__also .fh-eyebrow { margin-right: 8px; }
@media (max-width: 1279px) { .fh-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .fh-cats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .fh-cat { min-height: 0; padding: 12px 8px 12px; align-items: center; text-align: center; }
  .fh-cat__img { min-height: 0; margin-bottom: 10px; } .fh-cat__img img { width: 56px; height: 60px; }
  .fh-cat__name { font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; font-stretch: 85%; font-variation-settings: "wdth" 85; margin: 0; }
  .fh-cat__line { display: none; }
  .fh-cats__also { display: none; }
}
/* selection tabs */
.fh-sel__tabs { display: flex; gap: 28px; }
.fh-sel__tabs button { background: none; border: 0; padding: 0 0 8px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-stretch: 90%; font-variation-settings: "wdth" 90; color: var(--fh-grey-3); border-bottom: 2px solid transparent; }
.fh-sel__tabs button.is-active { color: var(--fh-black-900); border-color: var(--fh-black-900); }
.fh-sel__panel { display: none; } .fh-sel__panel.is-active { display: block; }
.fh-sel__more { display: flex; justify-content: center; margin-top: 56px; }
@media (max-width: 767px) { .fh-sel__tabs { display: none; } .fh-sel__more { margin-top: 32px; } }
/* objectives (dark) */
.fh-obj__in { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 64px; align-items: start; }
.fh-obj__title { margin-bottom: 40px; } .fh-obj__title span { display: block; } .fh-obj__title .is-muted { color: var(--fh-grey-3); }
.fh-obj__list { border-top: 1px solid var(--fh-black-600); }
/* Rangée stable : le nom garde sa largeur naturelle, la ligne produits (13 px) prend le reste et se replie sur 2 lignes max — plus de nom coupé sur 3 lignes ni de sauts de hauteur en cascade au survol. */
.fh-obj__item { display: grid; grid-template-columns: 56px auto minmax(0, 1fr); align-items: center; gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--fh-black-600); cursor: pointer; transition: padding var(--fh-t-state); }
@media (min-width: 1024px) { .fh-obj__name { white-space: nowrap; } .fh-obj__prods { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } }
.fh-obj__idx { font-size: 12px; font-weight: 600; letter-spacing: .1em; color: var(--fh-grey-4); transition: color var(--fh-t-micro); }
.fh-obj__item.is-active .fh-obj__idx, .fh-obj__item:hover .fh-obj__idx { color: var(--fh-yellow-500); }
.fh-obj__name { font-size: 30px; font-weight: 600; letter-spacing: -0.015em; line-height: 1.1; }
.fh-obj__prods { font-size: 13px; color: var(--fh-grey-4); text-align: right; }
.fh-obj__chips { display: none; flex-wrap: wrap; gap: 8px; grid-column: 2 / -1; }
.fh-obj__chips .fh-chip { height: 32px; font-size: 12px; background: var(--fh-black-900); color: var(--fh-white-50); border-color: var(--fh-grey-2); }
.fh-obj__chips .fh-chip.is-pack { background: var(--fh-white-50); color: var(--fh-black-900); border-color: var(--fh-white-50); }
.fh-obj__item.is-active { grid-template-rows: auto auto; }
.fh-obj__item.is-active .fh-obj__name { font-size: 32px; }
.fh-obj__item.is-active .fh-obj__prods { display: none; }
.fh-obj__item.is-active .fh-obj__chips { display: flex; }
.fh-obj__arrow { width: 22px; height: 22px; color: var(--fh-yellow-500); opacity: 0; transition: opacity var(--fh-t-micro); }
.fh-obj__item.is-active .fh-obj__arrow { opacity: 1; }
.fh-obj__foot { margin-top: 24px; font-size: 14px; color: var(--fh-grey-4); }
.fh-obj__foot a { color: var(--fh-white-50); text-decoration: underline; text-underline-offset: 3px; }
.fh-obj__visual { position: relative; border-radius: var(--fh-r-card); overflow: hidden; background: var(--fh-black-800); min-height: 560px; display: flex; flex-direction: column; justify-content: flex-end; }
.fh-obj__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center 22%; opacity: 0; transition: opacity 300ms var(--fh-e-state); }
.fh-obj__visual img.is-active { opacity: 1; }
.fh-obj__visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(11,11,12,.95) 0%, rgba(11,11,12,.55) 40%, rgba(11,11,12,0) 70%); }
.fh-obj__vtop { position: absolute; top: 24px; left: 28px; right: 28px; display: flex; justify-content: space-between; z-index: 2; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-stretch: 78%; font-variation-settings: "wdth" 78; color: var(--fh-grey-4); }
.fh-obj__vbody { position: relative; z-index: 2; padding: 28px; }
.fh-obj__vbody h3 { font-size: 28px; font-weight: 600; letter-spacing: -0.015em; margin-bottom: 10px; }
.fh-obj__vbody p { font-size: 15px; color: var(--fh-grey-4); margin-bottom: 16px; max-width: 52ch; }
.fh-obj__vprice { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.fh-obj__vcap { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-stretch: 78%; font-variation-settings: "wdth" 78; color: var(--fh-grey-3); display: flex; align-items: center; gap: 10px; }
.fh-obj__vcap::before { content: ""; width: 16px; height: 1px; background: var(--fh-grey-3); }
@media (max-width: 1023px) { .fh-obj__in { grid-template-columns: 1fr; gap: 40px; } .fh-obj__visual { min-height: 420px; } .fh-obj__name { font-size: 24px; } }
@media (max-width: 767px) {
  .fh-obj__list { display: flex; overflow-x: auto; gap: 12px; border: 0; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 calc(-1 * var(--fh-margin)); padding: 0 var(--fh-margin); }
  .fh-obj__list::-webkit-scrollbar { display: none; }
  .fh-obj__item { flex: 0 0 82%; scroll-snap-align: start; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; border: 1px solid var(--fh-black-600); border-radius: var(--fh-r-card); padding: 20px; background: linear-gradient(160deg, #1F1F22, #0B0B0C 70%); min-height: 260px; justify-content: flex-end; }
  .fh-obj__idx { color: var(--fh-yellow-500); }
  .fh-obj__name { font-size: 24px; } .fh-obj__prods { text-align: left; } .fh-obj__chips { display: none !important; } .fh-obj__arrow { display: none; }
  .fh-obj__item.is-active .fh-obj__prods { display: block; }
  .fh-obj__visual { display: none; }
}
/* packs */
.fh-pack { display: flex; flex-direction: column; border: 1px solid var(--fh-white-300); border-radius: var(--fh-r-card); background: var(--fh-white-50); overflow: hidden; transition: border-color var(--fh-t-state) var(--fh-e-state), box-shadow var(--fh-t-state) var(--fh-e-state); }
.fh-pack:hover { border-color: var(--fh-black-900); box-shadow: var(--fh-shadow-hover); }
.fh-pack__media { position: relative; aspect-ratio: 16 / 10; background: var(--fh-black-900); background-image: radial-gradient(120% 90% at 50% 0%, #2A2A2E 0%, #151517 50%, #0B0B0C 100%); display: grid; place-content: center; }
.fh-pack__media img { width: 84%; max-height: 86%; object-fit: contain; margin: 0 auto; filter: drop-shadow(0 20px 30px rgba(0,0,0,.5)); }
.fh-pack__media .fh-eyebrow { position: absolute; top: 20px; left: 24px; color: var(--fh-grey-4); }
.fh-pack__body { padding: 24px 28px 28px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.fh-pack__title { font-size: 26px; font-weight: 600; letter-spacing: -0.015em; }
.fh-pack__desc { font-size: 15px; color: var(--fh-grey-2); flex: 1; }
.fh-pack__price { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 6px 0 12px; }
.fh-pack__price .fh-price-l { font-size: 28px; }
@media (max-width: 767px) { .fh-packs.fh-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin: 0 calc(-1 * var(--fh-margin)); padding: 0 var(--fh-margin); scrollbar-width: none; } .fh-packs.fh-grid::-webkit-scrollbar { display: none; } .fh-pack { flex: 0 0 82%; scroll-snap-align: start; } .fh-pack__body { padding: 20px; } .fh-pack__title { font-size: 22px; } }
/* nouveautés (tint) */
.fh-new__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.fh-new__title { margin: 24px 0 24px; }
.fh-new__text { font-size: 17px; max-width: 48ch; margin-bottom: 32px; }
.fh-new__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.fh-new__cards .fh-card__media { aspect-ratio: 1 / 1; }
@media (max-width: 1023px) { .fh-new__in { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width: 767px) { .fh-new__cards { display: none; } .fh-new__text { font-size: 15px; } }
/* range marquee */
.fh-range { border-top: 1px solid var(--fh-white-300); border-bottom: 1px solid var(--fh-white-300); padding: 28px 0; margin-top: 8px; }
.fh-range__line1 span { font-size: 30px; font-weight: 800; font-stretch: 112%; font-variation-settings: "wdth" 112; text-transform: uppercase; letter-spacing: -0.01em; padding: 0 36px; }
.fh-range__line2 { margin-top: 10px; }
.fh-range__line2 span { font-size: 22px; font-weight: 700; font-stretch: 108%; font-variation-settings: "wdth" 108; text-transform: uppercase; letter-spacing: 0; color: var(--fh-white-400); padding: 0 32px; }
.fh-range__line2 .fh-marquee__track { animation-direction: reverse; animation-duration: 55s; }
.fh-range__note { margin-top: 24px; font-size: 14px; color: var(--fh-grey-3); }
@media (max-width: 767px) { .fh-range__line1 span { font-size: 22px; padding: 0 20px; } .fh-range__line2 { display: none; } }
/* about */
.fh-about__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 64px; align-items: center; }
.fh-about__title { margin: 24px 0 32px; } .fh-about__title span { display: block; }
.fh-about__text { font-size: 17px; color: var(--fh-grey-2); max-width: 52ch; }
.fh-about__visual { position: relative; border-radius: var(--fh-r-card); overflow: hidden; background: var(--fh-black-900); aspect-ratio: 16 / 10; }
.fh-about__visual img { width: 100%; height: 100%; object-fit: cover; }
.fh-about__tags { position: absolute; top: 24px; right: 24px; display: flex; gap: 8px; }
.fh-about__tags .fh-badge { background: transparent; border: 1px solid rgba(255,255,255,.5); color: #fff; }
.fh-about__cap { position: absolute; left: 24px; bottom: 20px; }
.fh-about__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 80px; padding-top: 40px; border-top: 1px solid var(--fh-black-900); }
.fh-about__col .fh-eyebrow { color: var(--fh-yellow-700); margin-bottom: 18px; display: block; }
.fh-about__col h3 { font-size: 24px; font-weight: 600; letter-spacing: -0.012em; margin-bottom: 14px; }
.fh-about__col p { font-size: 15px; color: var(--fh-grey-2); }
.fh-delivery-tiles { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--fh-white-300); border-radius: var(--fh-r-card); overflow: hidden; margin-top: 48px; background: var(--fh-white-50); }
.fh-dtile { padding: 28px 32px; border-right: 1px solid var(--fh-white-300); }
.fh-dtile:last-child { border-right: 0; }
.fh-dtile .fh-eyebrow { margin-bottom: 14px; display: block; }
.fh-dtile__val { font-size: 28px; font-weight: 600; letter-spacing: -0.012em; font-variant-numeric: tabular-nums; margin-bottom: 8px; }
.fh-dtile__sub { font-size: 13px; color: var(--fh-grey-3); }
.fh-dtile--dark { background: var(--fh-black-900); color: var(--fh-white-50); }
.fh-dtile--dark .fh-eyebrow { color: var(--fh-grey-4); }
.fh-dtile--dark p { font-size: 14px; margin-bottom: 14px; }
.fh-dtile--dark .fh-link { color: var(--fh-yellow-400); }
@media (max-width: 1023px) { .fh-about__in { grid-template-columns: 1fr; gap: 40px; } .fh-about__cols { grid-template-columns: 1fr; gap: 32px; margin-top: 48px; } .fh-delivery-tiles { grid-template-columns: 1fr 1fr; } .fh-dtile:nth-child(2) { border-right: 0; } .fh-dtile:nth-child(-n+2) { border-bottom: 1px solid var(--fh-white-300); } }
@media (max-width: 767px) { .fh-about__visual { display: none; } .fh-delivery-tiles { grid-template-columns: 1fr; } .fh-dtile { border-right: 0; border-bottom: 1px solid var(--fh-white-300); padding: 20px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; } .fh-dtile .fh-eyebrow { margin: 0; flex: 1 1 100%; } .fh-dtile__val { font-size: 20px; margin: 0; } .fh-dtile--dark { display: block; } }
/* fiches */
.fh-fiche { display: flex; flex-direction: column; gap: 14px; }
.fh-fiche__media { border-radius: var(--fh-r-card); overflow: hidden; background: var(--fh-black-900); aspect-ratio: 16 / 10; position: relative; }
.fh-fiche__media img { width: 100%; height: 100%; object-fit: cover; }
.fh-fiche__media .fh-obj__vcap { position: absolute; left: 20px; bottom: 16px; }
.fh-fiche__tags { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--fh-grey-3); }
.fh-fiche h3 { font-size: 22px; font-weight: 600; letter-spacing: -0.012em; }
.fh-fiche p { font-size: 15px; color: var(--fh-grey-2); }
@media (max-width: 767px) { .fh-fiches.fh-grid { grid-template-columns: 1fr; gap: 24px; } .fh-fiche:not(:first-child) .fh-fiche__media { display: none; } .fh-fiche:not(:first-child) { flex-direction: row; align-items: center; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--fh-white-300); gap: 12px; } .fh-fiche:not(:first-child) h3 { font-size: 15px; } .fh-fiche:not(:first-child) p { display: none; } }
/* reviews */
.fh-reviews__meta { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; color: var(--fh-grey-3); }
.fh-reviews__meta strong { color: var(--fh-black-900); }
.fh-review { display: flex; flex-direction: column; gap: 18px; padding: 28px; border: 1px solid var(--fh-white-300); border-radius: var(--fh-r-card); background: var(--fh-white-50); }
.fh-review__text { font-size: 17px; line-height: 1.5; flex: 1; }
.fh-review__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--fh-grey-3); flex-wrap: wrap; }
.fh-review__foot strong { color: var(--fh-black-900); }
.fh-reviews__note { margin-top: 24px; font-size: 13px; color: var(--fh-grey-3); }
@media (max-width: 767px) { .fh-reviews.fh-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin: 0 calc(-1 * var(--fh-margin)); padding: 0 var(--fh-margin); scrollbar-width: none; } .fh-reviews.fh-grid::-webkit-scrollbar { display: none; } .fh-review { flex: 0 0 88%; scroll-snap-align: start; padding: 20px; } .fh-review__text { font-size: 15px; } }
/* faq */
.fh-faq__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.8fr); gap: 64px; align-items: start; }
.fh-faq__title { margin: 20px 0 16px; }
.fh-faq__text { font-size: 15px; color: var(--fh-grey-2); max-width: 36ch; margin-bottom: 24px; }
@media (max-width: 1023px) { .fh-faq__in { grid-template-columns: 1fr; gap: 32px; } }
/* final CTA */
.fh-cta { background: var(--fh-black-900); background-image: radial-gradient(100% 120% at 50% 100%, #1F1F22 0%, #0B0B0C 70%); color: var(--fh-white-50); text-align: center; padding: var(--fh-section) 0; }
.fh-cta .fh-eyebrow { color: var(--fh-grey-4); margin-bottom: 28px; display: inline-flex; }
.fh-cta .fh-display-2 { margin-bottom: 40px; }
.fh-cta__btns { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
@media (max-width: 767px) { .fh-cta { text-align: left; } .fh-cta__btns { flex-direction: column; } .fh-cta__btns .fh-btn { width: 100%; } }
/* Objectifs page (board 13) */
.fh-objpage__head { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 64px; align-items: start; margin-bottom: 64px; }
.fh-objpage__lead { font-size: 17px; color: var(--fh-grey-2); max-width: 52ch; margin-top: 24px; }
.fh-quiz { border: 1px solid var(--fh-white-300); background: var(--fh-white-50); border-radius: var(--fh-r-card); padding: 28px; }
.fh-quiz .fh-eyebrow { margin-bottom: 16px; display: block; }
.fh-quiz__q { font-size: 18px; font-weight: 600; margin-bottom: 16px; }
.fh-quiz__opts { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.fh-quiz__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 13px; color: var(--fh-grey-3); }
.fh-quiz__result { display: none; }
.fh-quiz.is-done .fh-quiz__step { display: none; } .fh-quiz.is-done .fh-quiz__result { display: block; }
.fh-objblocks { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.fh-objblock { display: grid; grid-template-columns: 200px 1fr; gap: 24px; border: 1px solid var(--fh-white-300); background: var(--fh-white-50); border-radius: var(--fh-r-card); padding: 28px; }
.fh-objblock__visual { border-radius: var(--fh-r-card); background: var(--fh-black-900); background-image: radial-gradient(120% 90% at 50% 0%, #2A2A2E 0%, #0B0B0C 100%); display: flex; flex-direction: column; justify-content: flex-end; padding: 16px; min-height: 240px; position: relative; color: var(--fh-white-50); }
.fh-objblock__visual img { position: absolute; inset: 16px 16px 48px; width: calc(100% - 32px); height: calc(100% - 64px); object-fit: contain; filter: drop-shadow(0 20px 24px rgba(0,0,0,.5)); }
.fh-objblock__visual .fh-eyebrow { position: relative; color: var(--fh-grey-4); font-size: 10px; }
.fh-objblock__idx { font-size: 12px; font-weight: 600; letter-spacing: .12em; color: var(--fh-yellow-700); margin-bottom: 8px; }
.fh-objblock h3 { font-size: 30px; font-weight: 600; letter-spacing: -0.015em; margin-bottom: 12px; }
.fh-objblock p { font-size: 15px; color: var(--fh-grey-2); margin-bottom: 16px; }
.fh-objblock__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.fh-objblock__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 14px; color: var(--fh-grey-2); }
.fh-steps { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 40px; margin-top: 96px; padding-top: 48px; border-top: 1px solid var(--fh-black-900); }
.fh-steps__title { font-size: 26px; font-weight: 600; letter-spacing: -0.012em; }
.fh-step .fh-eyebrow { color: var(--fh-yellow-700); display: block; margin-bottom: 14px; }
.fh-step h4 { font-size: 20px; font-weight: 600; margin-bottom: 8px; } .fh-step p { font-size: 15px; color: var(--fh-grey-2); }
@media (max-width: 1023px) { .fh-objpage__head { grid-template-columns: 1fr; gap: 32px; } .fh-objblocks { grid-template-columns: 1fr; } .fh-steps { grid-template-columns: 1fr; gap: 24px; margin-top: 56px; } }
@media (max-width: 767px) { .fh-objblock { grid-template-columns: 1fr; padding: 20px; } .fh-objblock__visual { min-height: 180px; } .fh-objblock h3 { font-size: 24px; } }

/* ==========================================================================
   Boutique / catégorie (boards 12 / 19)
   ========================================================================== */
.fh-shop__head { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 40px; align-items: start; padding: 24px 0 40px; border-bottom: 1px solid var(--fh-white-300); }
.fh-shop__title { display: flex; align-items: baseline; gap: 20px; margin-bottom: 20px; }
.fh-shop__title .fh-eyebrow { color: var(--fh-grey-3); }
.fh-shop__desc { font-size: 17px; color: var(--fh-grey-2); max-width: 60ch; }
.fh-shop__sub { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding-top: 8px; }
.fh-shop__body { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 36px; padding: 40px 0 0; }
.fh-filters { position: sticky; top: calc(var(--fh-bar-h-compact) + 24px); align-self: start; }
.fh-filters__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 20px; }
.fh-filters__head .fh-t4 { font-size: 16px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-stretch: 90%; font-variation-settings: "wdth" 90; }
.fh-filters__reset { background: none; border: 0; font-size: 14px; color: var(--fh-grey-2); text-decoration: underline; text-underline-offset: 3px; padding: 0; }
.fh-filters__active { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 24px; border-bottom: 1px solid var(--fh-white-300); margin-bottom: 8px; }
.fh-filters__active:empty { display: none; }
.fh-fgroup { border-bottom: 1px solid var(--fh-white-300); padding: 22px 0; }
.fh-fgroup__btn { width: 100%; display: flex; justify-content: space-between; align-items: center; background: none; border: 0; padding: 0; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-stretch: 78%; font-variation-settings: "wdth" 78; color: var(--fh-black-900); }
.fh-fgroup__btn .fh-acc__icon { width: 16px; height: 16px; }
.fh-fgroup__body { padding-top: 18px; display: flex; flex-direction: column; gap: 12px; }
.fh-fgroup.is-collapsed .fh-fgroup__body { display: none; }
.fh-fgroup.is-collapsed .fh-acc__icon::after { transform: rotate(90deg); }
.fh-fgroup .fh-acc__icon::after { transform: rotate(0); }
.fh-fgroup__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.fh-fgroup--toggles { display: flex; flex-direction: column; gap: 16px; }
.fh-price-range { display: flex; flex-direction: column; gap: 16px; }
.fh-price-range__inputs { display: flex; gap: 10px; }
.fh-price-range__inputs label { flex: 1; display: flex; align-items: center; height: 52px; border: 1px solid var(--fh-white-400); border-radius: var(--fh-r-press); background: var(--fh-white-50); padding: 0 12px; gap: 8px; font-size: 13px; color: var(--fh-grey-3); }
.fh-price-range__inputs input { width: 100%; border: 0; background: none; font-size: 15px; min-width: 0; }
.fh-price-range__inputs input:focus { outline: none; }
.fh-range-slider { position: relative; height: 24px; }
.fh-range-slider input[type="range"] { position: absolute; left: 0; right: 0; top: 0; width: 100%; height: 24px; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.fh-range-slider input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid var(--fh-black-900); background: #fff; pointer-events: auto; cursor: pointer; }
.fh-range-slider input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--fh-black-900); background: #fff; pointer-events: auto; cursor: pointer; }
.fh-range-slider__track { position: absolute; left: 10px; right: 10px; top: 11px; height: 2px; background: var(--fh-white-400); }
.fh-range-slider__fill { position: absolute; top: 11px; height: 2px; background: var(--fh-black-900); }
.fh-filters__help { margin-top: 24px; background: var(--fh-black-900); color: var(--fh-white-50); border-radius: var(--fh-r-card); padding: 24px; }
.fh-filters__help .fh-eyebrow { color: var(--fh-grey-4); margin-bottom: 12px; display: block; }
.fh-filters__help p { font-size: 15px; margin-bottom: 14px; }
.fh-filters__help .fh-link { color: var(--fh-yellow-400); }
.fh-filters__apply { display: none; }
.fh-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 28px; }
.fh-toolbar__count { font-size: 15px; color: var(--fh-grey-2); } .fh-toolbar__count strong { color: var(--fh-black-900); }
.fh-toolbar__right { display: flex; align-items: center; gap: 12px; }
.fh-toolbar__sort { position: relative; }
.fh-toolbar__sort select { height: 48px; padding: 0 44px 0 16px; border: 1px solid var(--fh-white-400); border-radius: var(--fh-r-press); background: var(--fh-white-50); font-size: 14px; appearance: none; -webkit-appearance: none; }
.fh-toolbar__view { display: inline-flex; border: 1px solid var(--fh-white-400); border-radius: var(--fh-r-press); overflow: hidden; }
.fh-toolbar__view button { width: 48px; height: 48px; border: 0; background: var(--fh-white-50); display: grid; place-content: center; color: var(--fh-grey-3); }
.fh-toolbar__view button.is-active { background: var(--fh-black-900); color: #fff; }
.fh-toolbar__view svg { width: 18px; height: 18px; }
.fh-toolbar__filters-btn { display: none; }
body.fh .fh-products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--fh-card-gap-y) var(--fh-card-gap-x); margin: 0; padding: 0; list-style: none; }
body.fh .fh-products.is-list { grid-template-columns: 1fr; gap: 0; }
body.fh .fh-products.is-list .fh-card { display: grid; grid-template-columns: 180px 1fr auto; gap: 24px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--fh-white-300); }
body.fh .fh-products.is-list .fh-card__media { margin: 0; aspect-ratio: 1; }
body.fh .fh-products.is-list .fh-card__quick { position: static; opacity: 1; transform: none; }
body.fh .fh-products.is-list .fh-card__quick .fh-btn { width: auto; height: 44px; border-radius: 2px; font-size: 12px; padding: 0 16px; }
body.fh .fh-products.is-list .fh-card__quick .fh-btn::after { display: none; }
body.fh .fh-products.is-list .fh-card__quick .fh-btn span { display: inline; }
body.fh .fh-shop__body .fh-products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.fh .fh-products li.product { list-style: none; margin: 0; padding: 0; width: auto; float: none; }
.fh-shop__foot { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: 64px; }
.fh-shop__progress { width: 200px; height: 2px; background: var(--fh-white-300); position: relative; }
.fh-shop__progress span { position: absolute; left: 0; top: 0; height: 100%; background: var(--fh-black-900); }
.fh-pagination { display: flex; gap: 6px; }
.fh-pagination a, .fh-pagination span { min-width: 44px; height: 44px; display: inline-grid; place-content: center; padding: 0 12px; border: 1px solid var(--fh-white-400); border-radius: var(--fh-r-press); background: var(--fh-white-50); font-size: 14px; font-weight: 500; }
.fh-pagination .current { background: var(--fh-black-900); color: #fff; border-color: var(--fh-black-900); }
.fh-noproducts { padding: 64px 0; text-align: center; color: var(--fh-grey-3); }
.fh-noproducts .fh-t3 { color: var(--fh-black-900); margin-bottom: 12px; }
@media (max-width: 1279px) { .fh-shop__body { grid-template-columns: 260px minmax(0, 1fr); gap: 28px; } }
@media (max-width: 1023px) {
  .fh-shop__head { grid-template-columns: 1fr; gap: 20px; padding: 16px 0 24px; } .fh-shop__sub { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; margin: 0 calc(-1 * var(--fh-margin)); padding: 4px var(--fh-margin); } .fh-shop__sub::-webkit-scrollbar { display: none; }
  .fh-shop__desc { display: none; }
  .fh-shop__body { grid-template-columns: 1fr; padding-top: 20px; gap: 0; }
  body.fh .fh-shop__body .fh-products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fh-toolbar { flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
  .fh-toolbar__filters-btn { display: inline-flex; gap: 10px; }
  .fh-toolbar__filters-btn .fh-counter { margin-left: 2px; }
  .fh-toolbar__sort select { height: 44px; }
  .fh-toolbar__view button { width: 44px; height: 44px; }
  .fh-toolbar__count { flex: 1 1 100%; order: 3; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
  /* bottom sheet */
  .fh-filters { position: fixed; top: auto; left: 0; right: 0; bottom: 0; z-index: 1000; max-height: 88vh; background: var(--fh-white-50); border-radius: var(--fh-r-sheet) var(--fh-r-sheet) 0 0; padding: 12px 20px 0; transform: translateY(100%); transition: transform 300ms var(--fh-e-state); display: flex; flex-direction: column; box-shadow: var(--fh-shadow-float); }
  .fh-filters.is-open { transform: none; }
  .fh-filters::before { content: ""; width: 40px; height: 4px; border-radius: 2px; background: var(--fh-white-400); margin: 0 auto 16px; flex: none; }
  .fh-filters__scroll { overflow-y: auto; flex: 1; padding-bottom: 20px; }
  .fh-filters__help { display: none; }
  .fh-filters__apply { display: grid; grid-template-columns: 1fr 1.6fr; gap: 12px; padding: 14px 0 calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--fh-white-300); flex: none; }
  .fh-fgroup__body .fh-check { font-size: 15px; }
}
@media (max-width: 767px) { body.fh .fh-shop__body .fh-products, body.fh .fh-products { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fh-shop__title { gap: 12px; flex-wrap: wrap; } body.fh .fh-products.is-list .fh-card { grid-template-columns: 110px 1fr; } body.fh .fh-products.is-list .fh-card__quick { grid-column: 2; } }

/* ==========================================================================
   Page produit (boards 14 / 19)
   ========================================================================== */
.fh-product { padding-bottom: var(--fh-section); }
.fh-product__top { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 64px; padding: 24px 0 56px; align-items: start; }
.fh-gallery { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 20px; position: sticky; top: calc(var(--fh-bar-h-compact) + 24px); }
.fh-gallery__thumbs { display: flex; flex-direction: column; gap: 12px; }
.fh-gallery__thumb { aspect-ratio: 1; border: 1px solid var(--fh-white-300); border-radius: var(--fh-r-card); background: #fff; padding: 8px; display: grid; place-content: center; cursor: pointer; }
.fh-gallery__thumb.is-active { border-color: var(--fh-black-900); box-shadow: inset 0 0 0 1px var(--fh-black-900); }
.fh-gallery__thumb img { width: 100%; height: 100%; object-fit: contain; }
.fh-gallery__main { position: relative; aspect-ratio: 4 / 5; border: 1px solid var(--fh-white-300); border-radius: var(--fh-r-card); background: #fff; overflow: hidden; }
.fh-gallery__main img { position: absolute; inset: 10%; width: 80%; height: 80%; object-fit: contain; transition: transform var(--fh-t-state) var(--fh-e-state), opacity 250ms; transform-origin: var(--zx, 50%) var(--zy, 50%); }
.fh-gallery__main.is-zoom img { transform: scale(2); }
.fh-gallery__main.is-fading img { opacity: 0; transform: scale(1.02); }
.fh-gallery__badges { position: absolute; top: 16px; left: 16px; display: flex; gap: 8px; z-index: 2; }
.fh-gallery__wish { position: absolute; top: 16px; right: 16px; z-index: 2; }
.fh-gallery__foot { position: absolute; left: 20px; right: 20px; bottom: 16px; display: flex; justify-content: space-between; font-size: 13px; color: var(--fh-grey-3); z-index: 2; }
.fh-gallery__foot span { display: inline-flex; align-items: center; gap: 6px; } .fh-gallery__foot svg { width: 14px; height: 14px; }
.fh-gallery--single { grid-template-columns: 1fr; }
.fh-buy { display: flex; flex-direction: column; }
.fh-buy__meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.fh-buy__meta .fh-card__cat { color: var(--fh-black-900); border-bottom: 1.5px solid var(--fh-black-900); padding-bottom: 4px; }
.fh-buy__flag { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--fh-grey-2); } .fh-buy__flag svg { width: 16px; height: 16px; }
.fh-buy__title { font-size: 44px; line-height: 1.02; font-weight: 700; font-stretch: 108%; font-variation-settings: "wdth" 108; letter-spacing: -0.018em; margin-bottom: 20px; }
.fh-buy__rating { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--fh-grey-2); margin-bottom: 24px; flex-wrap: wrap; }
.fh-buy__rating a { text-decoration: underline; text-underline-offset: 3px; color: var(--fh-black-900); font-size: 13px; }
.fh-buy__price { display: flex; align-items: baseline; gap: 14px; padding-bottom: 28px; border-bottom: 1px solid var(--fh-white-300); margin-bottom: 28px; }
.fh-buy__price .fh-price-l { font-size: 40px; }
.fh-buy__price .fh-price--old { font-size: 18px; }
.fh-buy__price small { font-size: 14px; color: var(--fh-grey-3); }
.fh-buy__group { margin-bottom: 24px; }
.fh-buy__group-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; }
.fh-buy__group-head .fh-eyebrow { color: var(--fh-black-900); }
.fh-buy__group-head small { font-size: 13px; color: var(--fh-grey-3); }
.fh-buy__formats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fh-buy__flavours { display: flex; flex-wrap: wrap; gap: 8px; }
.fh-buy__flavours .fh-chip.is-active::before { content: ""; width: 8px; height: 5px; border-left: 1.5px solid #fff; border-bottom: 1.5px solid #fff; transform: rotate(-45deg) translateY(-1px); }
.fh-buy__actions { display: grid; grid-template-columns: auto 1fr; gap: 12px; margin-bottom: 12px; }
.fh-buy__actions .fh-qty { height: 56px; } .fh-buy__actions .fh-qty button { width: 48px; } .fh-buy__actions .fh-qty input { width: 52px; font-size: 16px; }
.fh-buy__actions .fh-btn { height: 56px; }
.fh-buy__now { margin-bottom: 18px; }
.fh-buy__stock { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--fh-grey-2); margin-bottom: 24px; }
.fh-buy__stock .fh-stock { font-size: 14px; }
.fh-buy__notify { margin-bottom: 24px; }
.fh-infobox { border: 1px solid var(--fh-white-300); border-radius: var(--fh-r-card); background: var(--fh-white-50); padding: 4px 20px; margin-bottom: 20px; }
.fh-infobox__row { display: flex; align-items: center; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--fh-white-300); font-size: 15px; }
.fh-infobox__row:last-child { border-bottom: 0; }
.fh-infobox__row svg { width: 20px; height: 20px; flex: none; color: var(--fh-grey-2); }
.fh-infobox__row strong { font-weight: 600; }
.fh-infobox__row .fh-select { margin-left: auto; width: 220px; } .fh-infobox__row .fh-select select { height: 44px; font-size: 14px; }
.fh-infobox__row a { text-decoration: underline; text-underline-offset: 3px; }
.fh-estimate { font-size: 14px; color: var(--fh-grey-2); padding: 0 0 12px 34px; }
.fh-estimate:empty { display: none; }
.fh-estimate b { color: var(--fh-black-900); }
.fh-buy__share { display: flex; align-items: center; gap: 24px; font-size: 14px; color: var(--fh-grey-2); }
.fh-buy__share button { background: none; border: 0; padding: 0; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--fh-black-900); }
.fh-buy__share svg { width: 16px; height: 16px; }
/* sticky sub nav */
.fh-pnav { position: sticky; top: var(--fh-bar-h-compact); z-index: 700; background: var(--fh-white-100); border-top: 1px solid var(--fh-white-300); border-bottom: 1px solid var(--fh-white-300); margin-bottom: 56px; }
.fh-pnav__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 64px; }
.fh-pnav .fh-tabs { border: 0; flex: 1; }
.fh-pnav .fh-tabs__tab { padding: 22px 0; }
.fh-pnav .fh-tabs__tab::after { bottom: 0; }
.fh-pnav__buy { display: flex; align-items: center; gap: 16px; font-size: 14px; white-space: nowrap; }
.fh-pnav__buy strong { font-weight: 600; } .fh-pnav__buy span { color: var(--fh-grey-3); }
.fh-pnav__buy .fh-price { font-size: 16px; }
.fh-pnav__buy .fh-btn { height: 44px; padding: 0 20px; }
@media (max-width: 1023px) { .fh-pnav { display: none; } }
/* sections */
.fh-product__body { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 64px; align-items: start; }
.fh-psec { margin-bottom: 72px; scroll-margin-top: 140px; }
.fh-psec > .fh-eyebrow { display: block; margin-bottom: 24px; }
.fh-psec__title { font-size: 34px; line-height: 1.08; font-weight: 700; font-stretch: 108%; font-variation-settings: "wdth" 108; letter-spacing: -0.016em; max-width: 26ch; margin-bottom: 32px; }
.fh-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 32px; }
.fh-tile { border: 1px solid var(--fh-white-300); background: var(--fh-white-50); border-radius: var(--fh-r-card); padding: 24px; }
.fh-tile__val { font-size: 48px; line-height: 1; font-weight: 800; font-stretch: 112%; font-variation-settings: "wdth" 112; letter-spacing: -0.02em; margin-bottom: 8px; }
.fh-tile__label { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.fh-tile__sub { font-size: 13px; color: var(--fh-grey-3); }
.fh-bullets li { position: relative; padding-left: 20px; margin-bottom: 8px; font-size: 16px; }
.fh-bullets li::before { content: ""; position: absolute; left: 0; top: 10px; width: 8px; height: 2px; background: var(--fh-yellow-500); }
.fh-prose { font-size: 17px; line-height: 1.6; color: var(--fh-black-900); max-width: 66ch; }
.fh-prose p { margin-bottom: 1em; } .fh-prose ul { list-style: disc; padding-left: 20px; margin-bottom: 1em; } .fh-prose li { margin-bottom: .4em; } .fh-prose strong em { font-style: normal; }
.fh-prose--muted { color: var(--fh-grey-2); font-size: 16px; }
.fh-nutri { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.fh-nutri__ingr { font-size: 15px; line-height: 1.6; }
.fh-nutri__ingr p { margin-bottom: 16px; }
.fh-nutri__ph { border-radius: var(--fh-r-card); background: var(--fh-white-200); background-image: repeating-linear-gradient(135deg, rgba(0,0,0,.03) 0 12px, transparent 12px 24px); aspect-ratio: 16/5; display: flex; align-items: flex-end; padding: 16px 20px; margin-bottom: 12px; }
.fh-nutri__note { font-size: 13px; color: var(--fh-grey-3); }
.fh-cons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.fh-cons__item { border-top: 1px solid var(--fh-black-900); padding-top: 16px; }
.fh-cons__item .fh-eyebrow { color: var(--fh-yellow-700); display: block; margin-bottom: 12px; }
.fh-cons__item h4 { font-size: 22px; font-weight: 600; letter-spacing: -0.012em; margin-bottom: 8px; }
.fh-cons__item p { font-size: 15px; color: var(--fh-grey-2); }
/* reviews */
.fh-prev__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; }
.fh-prev__in { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 48px; }
.fh-prev__summary .fh-prev__avg { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.fh-prev__avg .fh-t1 { font-size: 44px; }
.fh-prev__bars { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.fh-prev__bar { display: grid; grid-template-columns: 28px 1fr 24px; align-items: center; gap: 12px; font-size: 13px; color: var(--fh-grey-2); }
.fh-prev__bar i { height: 4px; background: var(--fh-white-300); border-radius: 2px; position: relative; overflow: hidden; }
.fh-prev__bar i b { position: absolute; left: 0; top: 0; bottom: 0; background: var(--fh-black-900); }
.fh-prev__empty-title { font-size: 24px; font-weight: 600; letter-spacing: -0.012em; margin-bottom: 12px; }
.fh-prev__empty p { font-size: 15px; color: var(--fh-grey-2); max-width: 60ch; margin-bottom: 28px; }
.fh-prev__list { border-top: 1px solid var(--fh-white-300); }
.fh-prev__item { padding: 24px 0; border-bottom: 1px solid var(--fh-white-300); }
.fh-prev__item-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; font-size: 13px; color: var(--fh-grey-3); }
.fh-prev__item-text { font-size: 16px; margin-bottom: 12px; }
.fh-prev__item-foot { display: flex; align-items: center; gap: 12px; font-size: 14px; }
.fh-prev__item-foot strong { font-weight: 600; }
.fh-prev__form { margin-top: 32px; border: 1px solid var(--fh-white-300); background: var(--fh-white-50); border-radius: var(--fh-r-card); padding: 28px; display: none; }
.fh-prev__form.is-open { display: block; }
.fh-prev__form .comment-form-rating { margin-bottom: 20px; }
.fh-prev__form .comment-form-rating label { display: block; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 8px; }
.fh-prev__form .stars { display: inline-flex; gap: 4px; }
.fh-prev__form .stars a { width: 24px; height: 24px; display: inline-block; font-size: 0; position: relative; }
.fh-prev__form .stars a::before { content: "\2605"; font-size: 22px; color: var(--fh-white-400); }
.fh-prev__form .stars:hover a::before, .fh-prev__form .stars.selected a::before { color: var(--fh-black-900); }
.fh-prev__form .stars a:hover ~ a::before, .fh-prev__form .stars.selected a.active ~ a::before { color: var(--fh-white-400); }
.fh-prev__form p.comment-form-comment, .fh-prev__form p.comment-form-author, .fh-prev__form p.comment-form-email { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.fh-prev__form label { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.fh-prev__form .comment-form-cookies-consent { display: none; }
.fh-prev__form .form-submit input { height: 48px; padding: 0 28px; border: 0; border-radius: 2px; background: var(--fh-black-900); color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
/* side: in pack */
.fh-inpack { border: 1px solid var(--fh-white-300); background: var(--fh-white-50); border-radius: var(--fh-r-card); padding: 24px; position: sticky; top: calc(var(--fh-bar-h-compact) + 88px); }
.fh-inpack .fh-eyebrow { display: block; margin-bottom: 18px; }
.fh-inpack__item { display: grid; grid-template-columns: 24px 56px 1fr auto; align-items: center; gap: 12px; padding: 10px 0; }
.fh-inpack__item .fh-check-ico { width: 22px; height: 22px; border-radius: 2px; background: var(--fh-black-900); display: grid; place-content: center; }
.fh-inpack__item .fh-check-ico::before { content: ""; width: 10px; height: 6px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg) translate(1px,-1px); }
.fh-inpack__item img { width: 56px; height: 56px; object-fit: contain; border: 1px solid var(--fh-white-300); border-radius: 4px; background: #fff; }
.fh-inpack__name { font-size: 15px; font-weight: 500; } .fh-inpack__sub { font-size: 13px; color: var(--fh-grey-3); }
.fh-inpack__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 16px; margin-top: 8px; border-top: 1px solid var(--fh-white-300); font-size: 15px; flex-wrap: wrap; }
.fh-inpack__foot .fh-badge { margin-left: 8px; }
/* related */
.fh-related { margin-top: 32px; }
/* sticky mobile buy bar */
.fh-mbuy { display: none; }
@media (max-width: 1023px) {
  .fh-product__top { grid-template-columns: 1fr; gap: 24px; padding: 12px 0 32px; }
  .fh-gallery { position: static; grid-template-columns: 1fr; }
  .fh-gallery__thumbs { flex-direction: row; order: 2; }
  .fh-gallery__thumb { width: 64px; }
  .fh-gallery__main { aspect-ratio: 1; }
  .fh-buy__title { font-size: 30px; }
  .fh-buy__price .fh-price-l { font-size: 32px; }
  .fh-product__body { grid-template-columns: 1px 1fr; gap: 0; grid-template-columns: 1fr; }
  .fh-inpack { position: static; }
  .fh-psec { margin-bottom: 0; border-top: 1px solid var(--fh-white-300); padding: 4px 0; }
  .fh-psec > .fh-eyebrow { display: none; }
  .fh-psec__head { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 18px 0; background: none; border: 0; font-size: 18px; font-weight: 600; letter-spacing: -0.01em; color: var(--fh-black-900); text-align: left; }
  .fh-psec__head .fh-acc__icon { width: 20px; height: 20px; }
  .fh-psec__panel { display: none; padding-bottom: 24px; }
  .fh-psec.is-open .fh-psec__panel { display: block; }
  .fh-psec.is-open .fh-acc__icon::after { transform: rotate(0); }
  .fh-psec__title { font-size: 22px; margin-bottom: 20px; }
  .fh-tiles { grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 20px; }
  .fh-tile { padding: 14px 12px; } .fh-tile__val { font-size: 26px; } .fh-tile__label { font-size: 12px; margin: 0; } .fh-tile__sub { display: none; }
  .fh-nutri { grid-template-columns: 1fr; gap: 24px; }
  .fh-cons { grid-template-columns: 1fr; gap: 20px; }
  .fh-prev__in { grid-template-columns: 1fr; gap: 24px; }
  .fh-prev__summary { display: none; }
  .fh-mbuy { display: flex; position: fixed; left: 0; right: 0; bottom: 64px; z-index: 795; align-items: center; gap: 10px; padding: 10px 16px; background: rgba(246,246,245,.96); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--fh-white-300); transform: translateY(120%); transition: transform 250ms var(--fh-e-state); }
  .fh-mbuy.is-visible { transform: none; }
  .fh-mbuy__price { flex: 1; min-width: 0; } .fh-mbuy__price .fh-price { font-size: 17px; display: block; } .fh-mbuy__price small { font-size: 12px; color: var(--fh-grey-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
  .fh-mbuy .fh-btn { height: 48px; } .fh-mbuy .fh-btn--icon { width: 48px; }
  .fh-mbuy .fh-btn--primary { flex: 1.2; }
  .fh-buy__actions { grid-template-columns: 1fr; } .fh-buy__actions .fh-qty { width: 100%; justify-content: space-between; }
  .fh-infobox__row { flex-wrap: wrap; font-size: 14px; } .fh-infobox__row .fh-select { width: 100%; margin: 0; }
}
@media (max-width: 767px) { .fh-buy__formats { grid-template-columns: 1fr 1fr; gap: 8px; } .fh-choice { padding: 14px; } .fh-choice__title { font-size: 14px; } }

/* ==========================================================================
   Panier, commande, confirmation (boards 15 / 16 / 20)
   ========================================================================== */
.fh-cartpage { padding: 24px 0 var(--fh-section); }
.fh-cartpage__in { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 64px; align-items: start; }
.fh-cartpage__title { display: flex; align-items: baseline; gap: 14px; margin-bottom: 8px; }
.fh-cartpage__title span { color: var(--fh-grey-3); font-weight: 400; font-size: 24px; }
.fh-cartpage__note { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--fh-grey-2); margin-bottom: 24px; }
.fh-cartpage__note svg { width: 18px; height: 18px; }
.fh-cartpage .fh-citem { grid-template-columns: 110px 1fr auto; padding: 24px 0; }
.fh-cartpage .fh-citem__img { width: 110px; height: 110px; }
.fh-cartpage .fh-citem__img img { width: 92px; height: 92px; }
.fh-summary { border: 1px solid var(--fh-white-300); background: var(--fh-white-50); border-radius: var(--fh-r-card); padding: 28px; position: sticky; top: calc(var(--fh-bar-h-compact) + 24px); }
.fh-summary h3 { font-size: 22px; font-weight: 600; letter-spacing: -0.012em; margin-bottom: 20px; display: flex; justify-content: space-between; align-items: baseline; }
.fh-summary h3 a { font-size: 13px; font-weight: 400; text-decoration: underline; text-underline-offset: 3px; }
.fh-summary__items { border-bottom: 1px solid var(--fh-white-300); padding-bottom: 16px; margin-bottom: 16px; }
.fh-summary__item { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: center; padding: 8px 0; font-size: 14px; }
.fh-summary__item img { width: 56px; height: 56px; object-fit: contain; border: 1px solid var(--fh-white-300); border-radius: 4px; background: #fff; }
.fh-summary__item .fh-q { display: inline-grid; place-content: center; min-width: 18px; height: 18px; border-radius: 999px; background: var(--fh-black-900); color: #fff; font-size: 10px; font-weight: 700; position: absolute; top: -6px; left: -6px; }
.fh-summary__item .fh-img-wrap { position: relative; }
.fh-summary__item small { display: block; color: var(--fh-grey-3); font-size: 12px; }
.fh-summary__coupon { display: flex; gap: 8px; margin-bottom: 20px; }
.fh-summary__coupon input { flex: 1; height: 48px; border: 1px solid var(--fh-white-400); border-radius: 2px; padding: 0 14px; font-size: 14px; min-width: 0; }
.fh-summary__coupon .fh-btn { height: 48px; padding: 0 18px; background: var(--fh-white-50); color: var(--fh-black-900); border: 1px solid var(--fh-black-900); }
.fh-summary__row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 8px 0; font-size: 15px; }
.fh-summary__row small { color: var(--fh-grey-3); font-size: 13px; }
.fh-summary__total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 16px 0 20px; border-top: 1px solid var(--fh-white-300); margin-top: 8px; }
.fh-summary__total .fh-eyebrow { color: var(--fh-black-900); }
.fh-summary__total .fh-price-l { font-size: 30px; }
.fh-summary__trust { border-top: 1px solid var(--fh-white-300); padding-top: 16px; margin-top: 8px; display: flex; flex-direction: column; gap: 10px; font-size: 13px; color: var(--fh-grey-2); }
.fh-summary__trust span { display: flex; align-items: center; gap: 10px; } .fh-summary__trust svg { width: 16px; height: 16px; flex: none; }
.fh-cart-empty { padding: 80px 0; text-align: center; }
.fh-cart-empty .fh-t2 { margin-bottom: 12px; } .fh-cart-empty p { color: var(--fh-grey-3); margin-bottom: 28px; }
@media (max-width: 1023px) { .fh-cartpage__in { grid-template-columns: 1fr; gap: 32px; } .fh-summary { position: static; } .fh-cartpage .fh-citem { grid-template-columns: 84px 1fr auto; } .fh-cartpage .fh-citem__img { width: 84px; height: 84px; } .fh-cartpage .fh-citem__img img { width: 72px; height: 72px; } .fh-cartpage__cta { position: fixed; left: 0; right: 0; bottom: 64px; z-index: 795; padding: 12px 16px; background: rgba(246,246,245,.96); border-top: 1px solid var(--fh-white-300); backdrop-filter: blur(12px); display: flex; align-items: center; gap: 12px; } .fh-cartpage__cta .fh-btn { flex: 1; height: 52px; } .fh-cartpage__cta .fh-price-l { font-size: 22px; } }
/* checkout */
body.fh.fh-checkout .fh-header, body.fh.fh-checkout .fh-tabbar { display: none; }
.fh-cohead { background: var(--fh-white-100); border-bottom: 1px solid var(--fh-white-300); position: sticky; top: 0; z-index: 800; }
.fh-cohead__in { display: flex; align-items: center; justify-content: space-between; height: 80px; gap: 24px; }
.fh-cohead__steps { display: flex; align-items: center; gap: 24px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-stretch: 90%; font-variation-settings: "wdth" 90; color: var(--fh-grey-3); }
.fh-cohead__steps span { display: inline-flex; align-items: center; gap: 10px; }
.fh-cohead__steps i { width: 22px; height: 22px; border-radius: 50%; border: 1px solid currentColor; display: inline-grid; place-content: center; font-style: normal; font-size: 11px; }
.fh-cohead__steps .is-active { color: var(--fh-black-900); } .fh-cohead__steps .is-active i { background: var(--fh-black-900); color: #fff; border-color: var(--fh-black-900); }
.fh-cohead__steps hr { width: 40px; border: 0; border-top: 1px solid var(--fh-white-400); margin: 0; }
.fh-cohead__help { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; } .fh-cohead__help svg { width: 18px; height: 18px; }
.fh-checkout { padding: 48px 0 var(--fh-section); }
.fh-checkout__in { display: grid; grid-template-columns: minmax(0, 1fr) 480px; gap: 80px; align-items: start; }
.fh-checkout__title { margin-bottom: 12px; }
.fh-checkout__lead { font-size: 16px; color: var(--fh-grey-2); margin-bottom: 48px; }
.fh-costep { margin-bottom: 48px; }
.fh-costep__title { display: flex; align-items: baseline; gap: 16px; font-size: 26px; font-weight: 600; letter-spacing: -0.012em; margin-bottom: 24px; }
.fh-costep__title .fh-idx { font-size: 12px; font-weight: 600; letter-spacing: .1em; color: var(--fh-yellow-700); }
.fh-checkout .form-row { display: flex; flex-direction: column; gap: 8px; margin: 0 0 20px; padding: 0; float: none; width: 100%; }
.fh-checkout .form-row label { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; font-stretch: 85%; font-variation-settings: "wdth" 85; color: var(--fh-black-900); }
.fh-checkout .form-row label .required { display: none; }
.fh-checkout .form-row label .optional { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--fh-grey-3); font-size: 12px; }
.fh-checkout .form-row .fh-label__ar { margin-left: auto; }
.fh-checkout .form-row .fh-label__ar + .optional { margin-left: 8px; }
.fh-checkout .form-row .woocommerce-input-wrapper { display: block; }
.fh-checkout .form-row input.input-text, .fh-checkout .form-row select, .fh-checkout .form-row textarea { width: 100%; height: 52px; padding: 0 16px; border: 1px solid var(--fh-white-400); border-radius: 2px; background: #fff; font-size: 15px; font-family: inherit; appearance: none; -webkit-appearance: none; }
.fh-checkout .form-row textarea { height: 96px; padding: 14px 16px; resize: vertical; }
.fh-checkout .form-row input:focus, .fh-checkout .form-row select:focus, .fh-checkout .form-row textarea:focus { outline: none; border-color: var(--fh-black-900); box-shadow: inset 0 0 0 1px var(--fh-black-900); }
.fh-checkout .form-row.woocommerce-invalid input, .fh-checkout .form-row.woocommerce-invalid select { border-color: var(--fh-red); box-shadow: inset 0 0 0 1px var(--fh-red); }
.fh-checkout .form-row .fh-field__hint { margin-top: -2px; }
.fh-checkout .form-row .select2-container { width: 100% !important; }
.fh-checkout .select2-container--default .select2-selection--single { height: 52px; border: 1px solid var(--fh-white-400); border-radius: 2px; }
.fh-checkout .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 52px; padding-left: 16px; font-size: 15px; color: var(--fh-black-900); }
.fh-checkout .select2-container--default .select2-selection--single .select2-selection__arrow { height: 52px; right: 10px; }
.fh-cogrid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.fh-cogrid .form-row-wide, .fh-cogrid .fh-span2 { grid-column: 1 / -1; }
.fh-checkout .fh-phone { display: flex; }
.fh-checkout .fh-phone__prefix { display: grid; place-content: center; height: 52px; padding: 0 16px; border: 1px solid var(--fh-white-400); border-right: 0; border-radius: 2px 0 0 2px; background: var(--fh-white-200); font-size: 15px; }
.fh-checkout .fh-phone input { border-radius: 0 2px 2px 0; }
.fh-shipmethods { margin-bottom: 20px; }
.fh-shipmethods__label { display: flex; justify-content: space-between; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; font-stretch: 85%; font-variation-settings: "wdth" 85; margin-bottom: 8px; }
.fh-shipmethods ul { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fh-shipmethods li { position: relative; }
.fh-shipmethods li input { position: absolute; opacity: 0; pointer-events: none; }
.fh-shipmethods li label { display: block; padding: 16px 18px 16px 52px; border: 1px solid var(--fh-white-400); border-radius: 4px; background: #fff; cursor: pointer; position: relative; font-size: 15px; font-weight: 600; transition: border-color var(--fh-t-micro), box-shadow var(--fh-t-micro); }
.fh-shipmethods li label::before { content: ""; position: absolute; left: 18px; top: 19px; width: 20px; height: 20px; border-radius: 50%; border: 1px solid var(--fh-white-400); background: #fff; }
.fh-shipmethods li label::after { content: ""; position: absolute; left: 24px; top: 25px; width: 8px; height: 8px; border-radius: 50%; background: var(--fh-black-900); opacity: 0; }
.fh-shipmethods li input:checked + label { border-color: var(--fh-black-900); box-shadow: inset 0 0 0 1px var(--fh-black-900); }
.fh-shipmethods li input:checked + label::before { border-color: var(--fh-black-900); } .fh-shipmethods li input:checked + label::after { opacity: 1; }
.fh-shipmethods li label .amount { float: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.fh-shipmethods li label .fh-ship-sub { display: block; font-size: 13px; font-weight: 400; color: var(--fh-grey-3); margin-top: 4px; }
.fh-shipmethods__none { font-size: 14px; color: var(--fh-red); padding: 12px 0; }
.fh-payment { border: 1px solid var(--fh-black-900); box-shadow: inset 0 0 0 1px var(--fh-black-900); border-radius: 4px; background: #fff; padding: 20px 24px 20px 56px; position: relative; margin-bottom: 40px; }
.fh-payment::before { content: ""; position: absolute; left: 20px; top: 22px; width: 20px; height: 20px; border-radius: 50%; border: 1px solid var(--fh-black-900); background: #fff; }
.fh-payment::after { content: ""; position: absolute; left: 26px; top: 28px; width: 8px; height: 8px; border-radius: 50%; background: var(--fh-black-900); }
.fh-payment__title { font-size: 17px; font-weight: 600; display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.fh-payment__title .fh-ar { font-family: var(--fh-font-ar); font-weight: 400; color: var(--fh-grey-2); }
.fh-payment__title svg { margin-left: auto; width: 20px; height: 20px; color: var(--fh-grey-2); }
.fh-payment p { font-size: 15px; color: var(--fh-grey-2); }
.fh-payment .payment_methods { display: none; }
.fh-checkout .woocommerce-terms-and-conditions-wrapper { margin-bottom: 20px; }
.fh-checkout #place_order { width: 100%; height: 64px; border: 0; border-radius: 2px; background: var(--fh-yellow-500); color: var(--fh-black-900); font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-stretch: 90%; font-variation-settings: "wdth" 90; cursor: pointer; transition: background-color var(--fh-t-micro); font-family: inherit; }
.fh-checkout #place_order:hover { background: #E1B400; }
.fh-checkout__foot { margin-top: 16px; font-size: 13px; color: var(--fh-grey-3); text-align: center; }
.fh-checkout .woocommerce-NoticeGroup, .fh-checkout .woocommerce-error, .fh-checkout .woocommerce-message, .fh-checkout .woocommerce-info { list-style: none; margin: 0 0 24px; padding: 16px 20px; border: 1px solid var(--fh-red); border-radius: 4px; background: #fff; color: var(--fh-red); font-size: 14px; }
.fh-checkout .woocommerce-error li { margin-bottom: 6px; }
.fh-checkout .woocommerce-message, .fh-checkout .woocommerce-info { border-color: var(--fh-white-400); color: var(--fh-black-900); }
.fh-checkout .blockUI.blockOverlay { background: rgba(246,246,245,.6) !important; }
@media (max-width: 1023px) { .fh-checkout__in { grid-template-columns: 1fr; gap: 32px; } .fh-checkout { padding: 24px 0 var(--fh-section); } .fh-checkout__lead { margin-bottom: 28px; } .fh-summary { order: -1; } .fh-cohead__in { height: 64px; } .fh-cohead__steps hr, .fh-cohead__steps span:not(.is-active) { display: none; } .fh-cohead__help span { display: none; } }
@media (max-width: 767px) { .fh-cogrid { grid-template-columns: 1fr; } .fh-shipmethods ul { grid-template-columns: 1fr; } .fh-checkout .form-row input.input-text, .fh-checkout .form-row select { height: 48px; } }
/* thank you */
.fh-thanks { padding: 56px 0 var(--fh-section); }
.fh-thanks__in { display: grid; grid-template-columns: minmax(0, 1fr) 480px; gap: 80px; align-items: start; }
.fh-thanks__check { width: 56px; height: 56px; border-radius: 50%; background: #E4F2E9; color: var(--fh-green); display: grid; place-content: center; margin-bottom: 32px; }
.fh-thanks__check svg { width: 24px; height: 24px; }
.fh-thanks .fh-eyebrow { display: block; margin-bottom: 16px; }
.fh-thanks__title { margin-bottom: 20px; }
.fh-thanks__lead { font-size: 17px; color: var(--fh-grey-2); max-width: 52ch; margin-bottom: 40px; }
.fh-timeline { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--fh-white-300); border-bottom: 1px solid var(--fh-white-300); }
.fh-tl { padding: 24px 20px 24px 0; border-right: 1px solid var(--fh-white-300); }
.fh-tl:last-child { border-right: 0; } .fh-tl + .fh-tl { padding-left: 20px; }
.fh-tl__state { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--fh-grey-3); margin-bottom: 12px; }
.fh-tl__state svg { width: 16px; height: 16px; }
.fh-tl--done .fh-tl__state { color: var(--fh-green); } .fh-tl--now .fh-tl__state { color: var(--fh-yellow-700); }
.fh-tl h4 { font-size: 16px; font-weight: 600; margin-bottom: 6px; } .fh-tl p { font-size: 13px; color: var(--fh-grey-3); }
.fh-thanks__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0 24px; }
.fh-thanks__help { font-size: 14px; color: var(--fh-grey-2); max-width: 60ch; }
.fh-thanks__ship { border-top: 1px solid var(--fh-white-300); padding-top: 16px; margin-top: 16px; font-size: 14px; }
.fh-thanks__ship .fh-eyebrow { display: block; margin-bottom: 10px; } .fh-thanks__ship p { margin-bottom: 4px; }
@media (max-width: 1023px) { .fh-thanks__in { grid-template-columns: 1fr; gap: 32px; } .fh-timeline { grid-template-columns: 1fr; } .fh-tl { border-right: 0; border-bottom: 1px solid var(--fh-white-300); padding: 16px 0; } .fh-tl + .fh-tl { padding-left: 0; } .fh-tl:last-child { border-bottom: 0; } }
/* account & generic pages */
.fh-page-head { padding: 40px 0 32px; border-bottom: 1px solid var(--fh-white-300); margin-bottom: 48px; }
.fh-page-head .fh-eyebrow { display: block; margin-bottom: 16px; }
.fh-page-head .fh-t1 { margin-bottom: 12px; }
.fh-page-head p { font-size: 17px; color: var(--fh-grey-2); max-width: 60ch; }
.fh-entry { max-width: 760px; }
.fh-entry .fh-prose h2 { font-size: 30px; font-weight: 600; letter-spacing: -0.014em; margin: 1.6em 0 .6em; } .fh-entry .fh-prose h3 { font-size: 22px; font-weight: 600; margin: 1.4em 0 .5em; }
body.fh .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
body.fh .woocommerce-MyAccount-navigation li a { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border: 1px solid var(--fh-white-400); border-radius: 999px; background: #fff; font-size: 13px; font-weight: 500; }
body.fh .woocommerce-MyAccount-navigation li.is-active a { background: var(--fh-black-900); color: #fff; border-color: var(--fh-black-900); }
body.fh .woocommerce-MyAccount-content { font-size: 15px; }
body.fh .woocommerce-form-login, body.fh .woocommerce-form-register, body.fh .woocommerce-ResetPassword { max-width: 480px; border: 1px solid var(--fh-white-300); background: #fff; border-radius: 4px; padding: 28px; }
body.fh .woocommerce-form-login .form-row, body.fh .woocommerce-ResetPassword .form-row, body.fh .woocommerce-EditAccountForm .form-row, body.fh .woocommerce-address-fields .form-row { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
body.fh .woocommerce-form-login label, body.fh .woocommerce-ResetPassword label, body.fh .woocommerce-EditAccountForm label, body.fh .woocommerce-address-fields label { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
body.fh .woocommerce-form-login input.input-text, body.fh .woocommerce-ResetPassword input.input-text, body.fh .woocommerce-EditAccountForm input.input-text, body.fh .woocommerce-address-fields input.input-text, body.fh .woocommerce-address-fields select { height: 48px; border: 1px solid var(--fh-white-400); border-radius: 2px; padding: 0 14px; font-size: 15px; width: 100%; }
body.fh .woocommerce-form-login button.button, body.fh .woocommerce-ResetPassword button.button, body.fh .woocommerce-EditAccountForm button.button, body.fh .woocommerce-address-fields button.button, body.fh .woocommerce-MyAccount-content .button { height: 48px; padding: 0 24px; border: 0; border-radius: 2px; background: var(--fh-black-900); color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; display: inline-flex; align-items: center; }
body.fh .woocommerce-form-login .woocommerce-form-login__rememberme { flex-direction: row; align-items: center; }
body.fh .woocommerce-orders-table { width: 100%; border-collapse: collapse; font-size: 14px; } body.fh .woocommerce-orders-table th, body.fh .woocommerce-orders-table td { padding: 12px 8px; border-bottom: 1px solid var(--fh-white-300); text-align: left; }
body.fh .woocommerce-notices-wrapper .woocommerce-message, body.fh .woocommerce-notices-wrapper .woocommerce-info, body.fh .woocommerce-notices-wrapper .woocommerce-error, body.fh .woocommerce-MyAccount-content .woocommerce-message, body.fh .woocommerce-MyAccount-content .woocommerce-info { list-style: none; margin: 0 0 24px; padding: 14px 18px; border: 1px solid var(--fh-white-400); border-radius: 4px; background: #fff; font-size: 14px; }
body.fh .woocommerce-notices-wrapper .woocommerce-error { border-color: var(--fh-red); color: var(--fh-red); }
body.fh .woocommerce-notices-wrapper:empty { display: none; }
.fh-wilaya-table { border: 1px solid var(--fh-white-300); border-radius: 4px; background: #fff; overflow: hidden; }
.fh-wilaya-table .fh-table th:first-child, .fh-wilaya-table .fh-table td:first-child { padding-left: 20px; } .fh-wilaya-table .fh-table th:last-child, .fh-wilaya-table .fh-table td:last-child { padding-right: 20px; }
.fh-wilaya-table .fh-table th { padding-top: 16px; } .fh-wilaya-table .fh-table td { padding: 14px 8px; }
.fh-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: start; }
.fh-contact__list { display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--fh-white-300); }
.fh-contact__row { display: flex; align-items: center; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--fh-white-300); font-size: 16px; }
.fh-contact__row svg { width: 20px; height: 20px; color: var(--fh-grey-2); flex: none; }
.fh-contact__row small { display: block; font-size: 12px; color: var(--fh-grey-3); letter-spacing: .12em; text-transform: uppercase; font-weight: 600; margin-bottom: 4px; }
.fh-contact__form { border: 1px solid var(--fh-white-300); background: #fff; border-radius: 4px; padding: 28px; }
.fh-contact__form .fh-t4 { margin-bottom: 20px; }
.fh-contact__ok { padding: 24px 0; color: var(--fh-green); }
@media (max-width: 1023px) { .fh-contact { grid-template-columns: 1fr; gap: 32px; } }
.fh-wishlist-empty { padding: 48px 0; color: var(--fh-grey-3); }
.fh-404 { padding: 96px 0; text-align: center; } .fh-404 .fh-display-2 { margin: 16px 0 20px; } .fh-404 p { color: var(--fh-grey-3); margin-bottom: 28px; }
/* Elementor pages wrapper */
body.fh .elementor-section.elementor-section-boxed > .elementor-container, body.fh .e-con.e-con-boxed > .e-con-inner { max-width: var(--fh-container); }
@media (max-width: 1023px) { .fh-filters .fh-fgroup--sort-mobile { display: block !important; } .fh-fgroup--sort-mobile .fh-fgroup__btn { pointer-events: none; } }
body.fh .fh-products li.fh-card--fiche { padding: 24px; gap: 12px; }
@media (min-width: 1024px) { .fh-psec__head { display: none; } .fh-psec__panel { display: block; } }
.fh-checkout .wc_payment_methods, .fh-checkout .woocommerce-privacy-policy-text, .fh-checkout .woocommerce-terms-and-conditions-wrapper { display: none; }
.fh-cogrid .form-row-first, .fh-cogrid .form-row-last { grid-column: auto; }
.fh-checkout .fh-hidden, .fh-checkout .form-row.fh-hidden { display: none; }
.fh-scene__stage { min-height: 220px; }
@media (min-width: 1024px) and (max-width: 1279px) { .fh-scene { aspect-ratio: auto; min-height: 520px; } .fh-scene__name { font-size: 18px; } .fh-scene__foot .fh-btn { padding: 0 18px; } }
/* ---- QA : pas de débordement horizontal sur mobile (pistes 1fr → minmax(0,1fr), boutons pleine largeur qui replient) ---- */
@media (max-width: 1023px) {
  .fh-hero__in, .fh-obj__in, .fh-new__in, .fh-about__in, .fh-faq__in, .fh-product__top, .fh-product__body, .fh-cartpage__in, .fh-checkout__in, .fh-thanks__in, .fh-contact, .fh-objpage__head, .fh-objblocks, .fh-shop__body { grid-template-columns: minmax(0, 1fr); }
  .fh-hero__in > *, .fh-obj__in > *, .fh-product__top > *, .fh-product__body > *, .fh-shop__body > * { min-width: 0; }
  .fh-obj__list, .fh-packs, .fh-reviews, .fh-shop__sub { min-width: 0; }
}
@media (max-width: 767px) {
  .fh-btn--block, .fh-buy__now, .fh-hero__ctas .fh-btn, .fh-cta__btns .fh-btn, .fh-thanks__actions .fh-btn { white-space: normal; height: auto; min-height: 48px; padding-top: 14px; padding-bottom: 14px; line-height: 1.25; text-align: center; }
  .fh-btn--lg.fh-btn--block, .fh-buy__now { min-height: 56px; }
  .fh-section__head { flex-wrap: wrap; align-items: flex-start; gap: 12px 24px; }
  .fh-section__head > div { flex: 1 1 100%; min-width: 0; }
  .fh-section__head .fh-t2 { overflow-wrap: anywhere; }
  .fh-toolbar__right { flex-wrap: wrap; gap: 8px; max-width: 100%; }
  .fh-toolbar__sort { max-width: calc(100% - 100px); }
  .fh-toolbar__sort select { max-width: 100%; height: 44px; padding-right: 36px; font-size: 13px; }
  .fh-toolbar__filters-btn { padding: 0 14px; height: 44px; }
  .fh-buy__title, .fh-psec__title, .fh-t1, .fh-t2 { overflow-wrap: anywhere; }
}

/* ==========================================================================
   Multimarque (septembre 2026) : section « Nos marques », cartes et galerie « studio » sur découpes
   ========================================================================== */
.fh-brands__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 16px; }
.fh-brand { display: flex; flex-direction: column; border: 1px solid var(--fh-white-300); border-radius: var(--fh-r-card); background: var(--fh-white-50); overflow: hidden; transition: border-color var(--fh-t-state) var(--fh-e-state), box-shadow var(--fh-t-state) var(--fh-e-state); }
.fh-brand:hover { border-color: var(--fh-black-900); box-shadow: var(--fh-shadow-hover); }
.fh-brand__visual { position: relative; aspect-ratio: 1; background: #fff radial-gradient(78% 66% at 50% 42%, #FFFFFF 0%, #F6F6F5 58%, #EBEBE9 100%); }
.fh-brand__visual img { position: absolute; inset: 12%; width: 76%; height: 76%; object-fit: contain; object-position: center; filter: drop-shadow(0 14px 16px rgba(11, 11, 12, .22)); transition: transform var(--fh-t-state) var(--fh-e-state); }
.fh-brand:hover .fh-brand__visual img { transform: translateY(-3px) scale(1.03); }
.fh-brand__body { padding: 14px 16px 16px; }
.fh-brand__name { display: block; font-size: 17px; font-weight: 700; line-height: 1.1; letter-spacing: -0.012em; font-stretch: 104%; font-variation-settings: "wdth" 104; }
.fh-brand__line { display: block; margin-top: 5px; font-size: 12px; line-height: 1.4; color: var(--fh-grey-3); }
@media (max-width: 1279px) { .fh-brands__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) { .fh-brands__grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; margin: 0 calc(-1 * var(--fh-margin)); padding: 0 var(--fh-margin); scrollbar-width: none; } .fh-brands__grid::-webkit-scrollbar { display: none; } .fh-brand { flex: 0 0 46%; scroll-snap-align: start; } .fh-brand__body { padding: 10px 12px 12px; } .fh-brand__name { font-size: 13px; } .fh-brand__line { font-size: 11px; } }
/* cartes : packshot détouré sur un fond studio très léger, ombre portée douce ; les visuels ne sont jamais rognés (object-fit: contain inchangé) */
.fh-card__media--studio { background: #fff radial-gradient(76% 62% at 50% 44%, #FFFFFF 0%, #FAFAF9 55%, #F1F1EF 100%); }
.fh-card__media--studio img { filter: drop-shadow(0 12px 16px rgba(11, 11, 12, .18)); }
.fh-card__brand { color: var(--fh-black-900); }
/* page produit : galerie studio (dégradé radial + ombre portée), zoom inchangé */
.fh-gallery__main--studio { background: #fff radial-gradient(70% 56% at 50% 42%, #FFFFFF 0%, #F7F7F6 52%, #ECECEA 100%); }
.fh-gallery__main--studio img { filter: drop-shadow(0 26px 30px rgba(11, 11, 12, .22)); }
.fh-gallery__main--studio.is-zoom img { filter: drop-shadow(0 8px 12px rgba(11, 11, 12, .14)); }
.fh-buy__flag { color: var(--fh-black-900); font-weight: 500; }
a.fh-buy__flag:hover { text-decoration: underline; text-underline-offset: 3px; }
/* catégories : visuel détouré */
.fh-cat__img img { filter: drop-shadow(0 12px 14px rgba(11, 11, 12, .16)); }
.fh-cat--dark .fh-cat__img img { filter: drop-shadow(0 16px 20px rgba(0, 0, 0, .5)); }
/* nouveautés : quatre cartes (2 × 2) */
.fh-new__cards .fh-card__media { aspect-ratio: 1 / 1; }
/* galerie : les badges (rayon · format · nouveau) se replient et laissent la place au bouton « liste de souhaits » */
.fh-gallery__badges { right: 68px; flex-wrap: wrap; }
