:root {
  --fc-primary: #8b1e24;
  --fc-secondary: #c65a28;
  --fc-cream: #f8f3eb;
  --fc-text: #1f1f1f;
  --fc-text-muted: #555555;
  --fc-white: #ffffff;
  --fc-accent: #d4a373;
  --fc-radius: 14px;
  --fc-shadow: 0 16px 40px rgba(31, 31, 31, 0.1);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Inter", sans-serif;
  color: var(--fc-text);
  background: #fff;
}
h1, h2, h3, h4 { font-family: "Playfair Display", serif; letter-spacing: 0.01em; }
img { max-width: 100%; display: block; }
.container { width: min(1200px, 92vw); margin: 0 auto; }

.main-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  backdrop-filter: blur(12px);
  background: rgba(248, 243, 235, 0.92);
  border-bottom: 1px solid rgba(139, 30, 36, 0.14);
}
.main-header .container {
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.logo img { width: 92px; height: 52px; object-fit: contain; }
.main-nav ul { display: flex; list-style: none; gap: 1rem; margin: 0; padding: 0; }
.main-nav a { text-decoration: none; color: var(--fc-text); font-weight: 600; }
.main-nav a:hover { color: var(--fc-primary); }
.nav-has-submenu{position:relative}
.nav-products-trigger{
  border:0;
  background:transparent;
  color:var(--fc-text);
  font-weight:600;
  font-size:1rem;
  cursor:pointer;
  padding:0;
}
.nav-products-trigger:hover{color:var(--fc-primary)}
.nav-recipes-trigger{
  border:0;
  background:transparent;
  color:var(--fc-text);
  font-weight:600;
  font-size:1rem;
  cursor:pointer;
  padding:0;
}
.nav-recipes-trigger:hover{color:var(--fc-primary)}
.nav-engagements-trigger{
  background:none;
  border:none;
  padding:0;
  margin:0;
  font:inherit;
  color:inherit;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  appearance:none;
  -webkit-appearance:none;
}
.nav-submenu{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  min-width:220px;
  background:#fff;
  border:1px solid #eadcca;
  border-radius:12px;
  box-shadow:0 14px 30px rgba(31,31,31,.12);
  padding:.45rem;
  display:none;
  z-index:1600;
}
.nav-has-submenu:hover .nav-submenu,
.nav-has-submenu:focus-within .nav-submenu{display:block}
.nav-submenu-link{
  width:100%;
  text-align:left;
  border:0;
  background:#fff;
  color:#2a2421;
  border-radius:9px;
  padding:.5rem .6rem;
  cursor:pointer;
}
.nav-submenu-link:hover{
  background:#f9f0e6;
  color:#8b1e24;
}
.products-mega-menu{
  position:fixed;
  top:82px;
  left:0;
  right:0;
  z-index:1700;
  background:#f5f4f6;
  border-top:1px solid #e7dfd4;
  border-bottom:1px solid #e7dfd4;
  padding:.65rem 1.4rem 1rem;
  display:none;
}
.products-mega-menu.open{display:block}
.products-mega-head{
  position:relative;
  text-align:center;
  margin-bottom:.45rem;
}
.products-mega-head h2{
  margin:0;
  font-family:"Inter",sans-serif;
  font-size:1.05rem;
  font-weight:700;
  color:#27364a;
}
#products-mega-close{
  position:absolute;
  right:0;
  top:0;
  border:0;
  background:transparent;
  font-size:1.45rem;
  line-height:1;
  color:#2f2f2f;
  cursor:pointer;
}
#recipes-mega-close{
  position:absolute;
  right:0;
  top:0;
  border:0;
  background:transparent;
  font-size:1.45rem;
  line-height:1;
  color:#2f2f2f;
  cursor:pointer;
}
.products-mega-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.75rem 1rem;
  max-height:52vh;
  overflow:auto;
  padding-right:.2rem;
}
.products-mega-grid h3{
  margin:.05rem 0 .4rem;
  font-family:"Inter",sans-serif;
  font-size:1rem;
  font-weight:600;
}
.products-mega-grid .nav-submenu-link{
  display:block;
  padding:.12rem 0;
  background:transparent;
  color:#2f3d4f;
  font-size:.9rem;
}
.products-mega-grid .nav-recipes-link{
  display:block;
  width:100%;
  text-align:left;
  padding:.12rem 0;
  border:0;
  background:transparent;
  color:#2f3d4f;
  font-size:.9rem;
  cursor:pointer;
}
.products-mega-grid .nav-recipes-link:hover{
  color:#8b1e24;
}
@media (max-width: 1200px){
  .products-mega-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:58vh}
  .seasons-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
.header-actions { display: flex; align-items: center; gap: .55rem; }
.lang-menu,
.user-menu { position: relative; }
.lang-dropdown,
.user-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 220px;
  background: #fff;
  border: 1px solid #eadcca;
  border-radius: 12px;
  box-shadow: 0 14px 30px rgba(31,31,31,.12);
  padding: .5rem;
  display: none;
  z-index: 1600;
}
.lang-dropdown button,
.user-dropdown button {
  width: 100%;
  text-align: left;
  margin-bottom: .35rem;
}
.lang-menu.open .lang-dropdown,
.user-menu:hover .user-dropdown,
.user-menu.open .user-dropdown {
  display: block;
}
.icon-btn, .mobile-menu-toggle { border: 1px solid rgba(31,31,31,.18); background: #fff; border-radius: 999px; cursor: pointer; }
.icon-btn { width: 40px; height: 40px; }
.cart-count { display: inline-flex; min-width: 20px; height: 20px; border-radius: 999px; justify-content: center; align-items: center; background: var(--fc-primary); color: #fff; font-size: .75rem; }
#cart-count { display: none !important; }
#auth-buttons { display: flex; gap: .45rem; }
.btn { border: 0; border-radius: 999px; padding: .7rem 1.1rem; cursor: pointer; text-decoration: none; display: inline-flex; justify-content: center; align-items: center; }
.btn-primary { background: var(--fc-primary); color: #fff; }
.btn-secondary { background: rgba(139, 30, 36, .08); color: var(--fc-primary); border: 1px solid rgba(139,30,36,.25); }
.btn-small { padding: .52rem .85rem; font-size: .9rem; }
.notification{
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 12000;
  background: rgba(31,31,31,.92);
  color: #fff;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: .92rem;
  box-shadow: 0 8px 22px rgba(0,0,0,.22);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}
.notification.show{ opacity: 1; }

.hero {
  min-height: calc(100dvh - 90px);
  display: grid;
  align-items: center;
  padding: 4.2rem 0 3.1rem;
  background: linear-gradient(180deg, #ffffff 0%, #fffaf5 100%);
  border-bottom: 1px solid rgba(139, 30, 36, 0.1);
}
.hero-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 2.4rem; align-items: center; }
.hero-copy{ max-width: 680px; }
.hero-kicker { text-transform: uppercase; letter-spacing: .17em; color: #a45526; font-weight: 700; font-size: .76rem; }
.hero h1 { font-size: clamp(2.35rem, 5.3vw, 4.45rem); margin: .32rem 0 1rem; color: #8b1e24; line-height: 1.05; }
.hero p { color: #4b413b; font-size: 1.12rem; line-height: 1.72; }
.hero-cta { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.35rem; }
.hero .btn{
  min-height: 48px;
  padding: .75rem 1.2rem;
  font-weight: 700;
  letter-spacing: .01em;
}
.hero .btn-primary{ box-shadow: 0 12px 22px rgba(139,30,36,.2); }
.hero .btn-secondary{ background:#fff; }
.hero-visual {
  position: relative;
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 20px 48px rgba(31,31,31,.14);
  border: 1px solid #e9dccd;
}
.hero-visual img { width: 100%; min-height: 560px; object-fit: cover; }
.hero-badge{
  position:absolute;
  left:16px;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  background: rgba(255,255,255,.9);
  color:#8b1e24;
  border:1px solid #ead8c4;
  box-shadow: 0 8px 18px rgba(31,31,31,.12);
  font-weight:700;
}
.hero-badge-top{
  top:16px;
  padding:8px 12px;
  font-size:.76rem;
  letter-spacing:.04em;
}
.hero-badge-bottom{
  bottom:16px;
  padding:7px 11px;
  font-size:.72rem;
  letter-spacing:.03em;
}

.section { padding: 4rem 0; }
.section-title { font-size: clamp(1.7rem, 3vw, 2.7rem); margin: 0 0 .5rem; color:#8b1e24; }
.section-sub { color: var(--fc-text-muted); margin: 0 0 1.2rem; }

.story-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.story-card { background: #fff; border-radius: var(--fc-radius); padding: 1rem; border: 1px solid #eadcca; box-shadow: 0 8px 24px rgba(31,31,31,.05); }

.filters { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: .7rem; }
.filters input, .filters select { min-height: 44px; border-radius: 10px; border: 1px solid #d8c7b5; padding: .55rem .7rem; }
.product-grid { margin-top: 1.2rem; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; }
.products-intro{
  margin: 0 0 1rem;
  color: #5a4f48;
  line-height: 1.6;
  max-width: 780px;
}
#produits .filters{
  background:#fff;
  border:1px solid #eadcca;
  border-radius:14px;
  padding:.7rem;
  box-shadow:0 8px 18px rgba(31,31,31,.05);
}
#produits .filters input,
#produits .filters select{
  min-height:46px;
  border-radius:12px;
  background:#fff;
}
#produits .product-card{
  background:#fff;
  border:1px solid #eadcca;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 12px 24px rgba(31,31,31,.08);
  transition:transform .2s ease, box-shadow .2s ease;
}
#produits .product-card:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 28px rgba(31,31,31,.12);
}
.product-image-container{
  width:100%;
  height:260px;
  min-height:260px;
  max-height:260px;
  overflow:hidden;
  background:#eef2f7;
  position:relative;
}
.product-image{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center center;
}
#produits .product-info{
  padding:.8rem .85rem .9rem;
}
#produits .product-title{
  margin:0 0 .4rem;
  font-size:1rem;
  color:#2a2421;
}
#produits .product-description{
  margin:0 0 .55rem;
  color:#655a53;
  font-size:.92rem;
  line-height:1.45;
}
#produits .product-pricing{
  display:flex;
  align-items:baseline;
  gap:.35rem;
  margin-bottom:.35rem;
}
#produits .price-main{
  font-size:1.22rem;
  font-weight:800;
  color:#8b1e24;
}
#produits .price-unit{
  color:#7b6f67;
  font-size:.82rem;
  font-weight:700;
}
#produits .product-variant-summary{
  margin:.2rem 0 .55rem;
  color:#8b1e24;
  font-size:.84rem;
  font-weight:800;
}
#produits .product-rating{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
}
#produits .stars{
  color:#d97706;
  letter-spacing:.04em;
}
#produits .reviews{
  color:#6a5e55;
  font-size:.83rem;
}
.product-card-actions{display:flex;justify-content:flex-end;margin-top:.65rem}
.add-to-cart-icon-btn{
  width:38px;
  height:38px;
  border-radius:999px;
  border:1.5px solid #8b1e24;
  background:#fff;
  color:#8b1e24;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:all .2s ease;
}
.add-to-cart-icon-btn:hover{
  background:#8b1e24;
  color:#fff;
}
.add-to-cart-icon-btn i{font-size:.95rem}
.product-empty-state{
  grid-column:1 / -1;
  background:#fff;
  border:1px solid #eadcca;
  border-radius:14px;
  padding:1rem;
}
.product-detail-layout{
  display:grid;
  grid-template-columns:minmax(260px,360px) 1fr;
  gap:1rem;
  background:#fff;
  border:1px solid #eadcca;
  border-radius:16px;
  padding:1rem;
}
.product-detail-layout img{
  width:100%;
  height:340px;
  object-fit:contain;
  background:#f7f0e7;
  border:1px solid #eddcc8;
  border-radius:12px;
}
.product-detail-actions{
  margin-top:.8rem;
  display:grid;
  gap:.55rem;
  max-width:420px;
}
.product-detail-actions label{font-weight:600;color:#3f3832}
.product-detail-actions #prod-pack,
.product-detail-actions #prod-variant{
  min-height:46px;
  border:1px solid #d9c8b5;
  border-radius:12px;
  padding:.62rem .82rem;
  background:#fff;
  color:#2d2723;
  font-weight:700;
}
.product-detail-actions #prod-pack:focus,
.product-detail-actions #prod-variant:focus{
  outline:none;
  border-color:#c65a28;
  box-shadow:0 0 0 4px rgba(198,90,40,.14);
}
.product-related{
  margin-top:1rem;
  background:#fffaf3;
  border:1px solid #eddcc8;
  border-radius:12px;
  padding:.85rem;
}
.product-related ul{margin:.45rem 0 0;padding-left:1rem}
.product-related a{color:#8b1e24;text-decoration:none}
.product-related a:hover{text-decoration:underline}

.product-single-page{
  padding-top:2rem;
}
.product-single-shell{
  display:grid;
  gap:1rem;
}
.product-single-card{
  background:#fff;
  border:1px solid #eadcca;
  border-radius:18px;
  padding:1rem;
  box-shadow:0 12px 30px rgba(31,31,31,.06);
}
.product-single-empty{
  background:#fff;
  border:1px solid #eadcca;
  border-radius:16px;
  padding:1rem;
}
.product-single-layout{
  display:grid;
  grid-template-columns:minmax(280px, 430px) 1fr;
  gap:1rem;
  align-items:start;
}
.product-single-media{
  position:relative;
}
.product-single-image{
  width:100%;
  min-height:360px;
  max-height:420px;
  object-fit:contain;
  border-radius:14px;
  border:1px solid #eadcca;
  background:#f7f0e7;
}
.product-single-badge{
  position:absolute;
  top:12px;
  left:12px;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:#8b1e24;
  border:1px solid #e8d8c7;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.03em;
  padding:.38rem .62rem;
}
.product-single-kicker{
  margin:0 0 .35rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.75rem;
  font-weight:800;
  color:#a45526;
}
.product-single-title{
  margin:0 0 .45rem;
  color:#8b1e24;
  font-size:clamp(1.8rem, 3.8vw, 2.6rem);
}
.product-single-copy{
  margin:0;
  color:#534943;
  line-height:1.6;
}
.product-single-kpis{
  margin:.8rem 0 .7rem;
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
}
.product-single-kpi{
  display:inline-flex;
  align-items:center;
  border:1px solid #eadcca;
  border-radius:999px;
  background:#fffaf3;
  color:#4b4038;
  font-size:.82rem;
  font-weight:700;
  padding:.35rem .65rem;
}
.product-single-uses{
  margin:.2rem 0 .85rem;
  color:#4d433d;
  line-height:1.55;
}
.product-single-actions{
  background:#fffaf4;
  border:1px solid #efdfcd;
  border-radius:14px;
  padding:.8rem;
}
.product-single-related{
  margin-top:1rem;
}

@media (max-width: 1024px){
  .product-single-layout{
    grid-template-columns:1fr;
  }
  .product-single-image{
    min-height:300px;
  }
}

.recipes-shell { background: #fff9f2; border: 1px solid #ebdcc8; border-radius: 16px; padding: 1rem; }
#recettes.recipes-page{
  padding-top: 2rem;
}
.recipes-hero{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:1.4rem;
  align-items:center;
  margin-bottom:1.2rem;
}
.recipes-kicker{
  margin:0 0 .45rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.78rem;
  font-weight:800;
  color:#a45526;
}
.recipes-hero .section-title{
  margin:0 0 .65rem;
  color:#8b1e24;
}
.recipes-hero-text{
  margin:0;
  color:#544a44;
  line-height:1.65;
  font-size:1.02rem;
}
.recipes-hero-visual{
  border-radius:18px;
  overflow:hidden;
  border:1px solid #ebdcc8;
  box-shadow:0 16px 34px rgba(31,31,31,.12);
  min-height:260px;
}
.recipes-hero-visual img{
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
}
.recipes-shell{
  background:#fff;
  border:1px solid #ebdcc8;
  border-radius:18px;
  padding:1.15rem;
  box-shadow:0 10px 30px rgba(31,31,31,.06);
}
.recipes-toolbar{
  display:grid;
  gap:.75rem;
}
.recipes-toolbar-title{
  margin:0;
  font-family:"Inter",sans-serif;
  font-size:1.05rem;
  font-weight:800;
  letter-spacing:.01em;
  color:#8b1e24;
}
.recipes-filters{
  margin-top:.1rem;
}
.recipes-filters input,
.recipes-filters select{
  min-height:46px;
  border-radius:12px;
}
.recipes-actions{
  margin-top:.1rem;
}
.recipes-results-shell{
  margin-top:.7rem;
}
.seasons-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.season-card{
  background:#fff;
  border:1px solid #ebdcc8;
  border-radius:18px;
  padding:12px;
  box-shadow:0 10px 24px rgba(31,31,31,.06);
  display:grid;
  gap:.55rem;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.season-card:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 34px rgba(31,31,31,.12);
  border-color:#dfc3a8;
}
.season-card:hover .season-visual{
  transform:scale(1.035);
}
.season-card h3{
  margin:.2rem 0 .15rem;
  font-family:"Inter",sans-serif;
  font-size:1.12rem;
}
.season-card p{
  margin:.1rem 0 .3rem;
  color:var(--fc-text-muted);
  font-size:.92rem;
  line-height:1.5;
}
.season-visual-wrap{
  position:relative;
  border-radius:14px;
  overflow:hidden;
}
.season-badge{
  position:absolute;
  left:10px;
  top:10px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.8);
  background:rgba(255,255,255,.85);
  color:#8b1e24;
  font-size:.69rem;
  letter-spacing:.08em;
  font-weight:800;
  padding:.3rem .55rem;
}
.season-current-tag{
  position:absolute;
  right:10px;
  top:10px;
  z-index:2;
  display:none;
  border-radius:999px;
  border:1px solid rgba(159,29,36,.35);
  background:rgba(255,246,238,.95);
  color:#8b1e24;
  font-size:.7rem;
  font-weight:700;
  padding:.28rem .55rem;
}
.season-card.is-current{
  border-color:#c65a28;
  box-shadow:0 18px 32px rgba(198,90,40,.22);
}
.season-card.is-current .season-current-tag{
  display:inline-flex;
}
.season-visual{
  width:100%;
  height:180px;
  border-radius:14px;
  object-fit:cover;
  object-position:center;
  display:block;
  transition:transform .35s ease;
}
.season-recipes-list{
  margin:0;
  padding-left:0;
  list-style:none;
  display:grid;
  gap:6px;
}
.season-recipes-list a{
  color:#7f1a21;
  text-decoration:none;
  font-weight:600;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  transition:color .2s ease, transform .2s ease, text-decoration-color .2s ease;
}
.season-recipes-list a::before{
  content:"\2192";
  font-size:.82rem;
  color:#b14a2b;
}
.season-recipes-list a:hover{
  color:#8b1e24;
  transform:translateX(2px);
  text-decoration:underline;
  text-underline-offset:3px;
}
.season-cta{
  margin-top:.1rem;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  color:#8b1e24;
  text-decoration:none;
  font-weight:700;
  font-size:.92rem;
}
.season-cta:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}
#recipes-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .8rem; }
.recipe-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid #f0e2d3;
  border-radius:16px;
  overflow:hidden;
}
.recipe-card img{
  display:block;
  width:100%;
  height:220px;
  object-fit:cover;
  object-position:center;
  flex:0 0 auto;
}
.recipe-card-body{
  display:grid;
  gap:10px;
  padding:14px;
  flex:1 1 auto;
}
#recipe-detail { margin-top: 1rem; background: #fff; border: 1px solid #eadcca; border-radius: 14px; padding: 1rem; box-shadow:0 10px 24px rgba(31,31,31,.05); }

.footer {
  background: #fff;
  color: #2a2421;
  padding: 2.6rem 0 2.1rem;
  margin-top: 2rem;
  border-top: 1px solid #ebdcc8;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr 1.1fr;
  gap: 1.2rem;
}
.footer-col h3{
  margin: 0 0 .65rem;
  font-family: "Inter", sans-serif;
  font-size: .92rem;
  font-weight: 800;
  letter-spacing: .08em;
  color: #8b1e24;
}
.footer-col{
  display: grid;
  align-content: start;
  gap: .5rem;
}
.footer a {
  color: #3f3530;
  text-decoration: none;
  font-weight: 500;
}
.footer a:hover{ color:#8b1e24; text-decoration: underline; }
.footer-link-btn{
  border: 0;
  background: transparent;
  color: #3f3530;
  text-align: left;
  padding: 0;
  margin: 0;
  font: inherit;
  font-weight: 500;
  cursor: pointer;
}
.footer-link-btn:hover{ color:#8b1e24; text-decoration: underline; }
.footer-brand p{
  margin: 0;
  color: #5f534a;
  line-height: 1.45;
}

.modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 2000; padding: 1rem; overflow: auto; }
.modal.show { display: block; }
.modal-content {
  max-width: 620px;
  margin: 3rem auto;
  background: linear-gradient(180deg,#fff 0%,#fffaf4 100%);
  border: 1px solid #ecdcca;
  border-radius: 18px;
  padding: 1.1rem;
  box-shadow: 0 20px 44px rgba(31,31,31,.2);
}
.close { float: right; cursor: pointer; font-size: 1.5rem; }
.modal-content h2 {
  margin: .2rem 0 1rem;
  font-size: 1.8rem;
}
.modal-content form,
#edit-account-modal .modal-content,
#account-modal .modal-content {
  display: grid;
  gap: .65rem;
}
.modal-content input,
.modal-content textarea,
.modal-content select {
  width: 100%;
  border: 1px solid #d9c7b3;
  background: #fff;
  border-radius: 12px;
  min-height: 46px;
  padding: .72rem .85rem;
  font-size: .98rem;
  color: #1f1f1f;
  transition: border-color .2s ease, box-shadow .2s ease, transform .15s ease;
}
.modal-content textarea { min-height: 120px; resize: vertical; }
.modal-content input:focus,
.modal-content textarea:focus,
.modal-content select:focus {
  outline: none;
  border-color: #c65a28;
  box-shadow: 0 0 0 4px rgba(198,90,40,.14);
  transform: translateY(-1px);
}
.modal-content .btn {
  min-height: 46px;
  font-weight: 700;
  letter-spacing: .01em;
}
.btn-full { width: 100%; }
.auth-social { display: grid; gap: .55rem; margin-bottom: .8rem; }
.auth-social .btn { justify-content: flex-start; gap: .55rem; }
.auth-social .btn i { width: 18px; text-align: center; font-size: 1rem; }
.auth-divider { display: flex; align-items: center; justify-content: center; margin: .15rem 0 .8rem; color: #8f7a67; font-weight: 600; font-size: .9rem; }
.auth-divider::before,
.auth-divider::after { content: ""; flex: 1; height: 1px; background: #ead8c4; }
.auth-divider span { padding: 0 .7rem; }
#signup-form,
#login-form,
#contact-form-modal {
  background: #fff;
  border: 1px solid #eddcc9;
  border-radius: 14px;
  padding: .9rem;
}
#contact-form-modal{
  display:grid;
  gap:.55rem;
}
#contact-form-modal textarea{
  min-height:110px;
}
.contact-pro-fields{
  display:grid;
  gap:.55rem;
}
.contact-pro-fields.is-hidden{
  display:none;
}
.contact-pro-help{
  border:1px solid rgba(159,29,43,.16);
  border-radius:16px;
  background:#fff8f3;
  color:#2f2930;
  padding:.85rem .95rem;
  font-size:.92rem;
}
.contact-pro-help strong{
  display:block;
  color:#8b1e24;
  margin-bottom:.35rem;
}
.contact-pro-help p{
  margin:.15rem 0 .55rem;
}
.contact-pro-help ul{
  margin:0;
  padding-left:1.15rem;
}
.contact-pro-help li{
  margin:.2rem 0;
}
.contact-submit-btn{
  margin-top:.2rem;
}
.contact-reassurance{
  margin:.1rem 0 0;
  font-size:.82rem;
  color:#7a6755;
  text-align:center;
}
.field-help{
  display:block;
  margin-top:-.2rem;
  font-size:.78rem;
  color:#b72020;
}
.review-form-shell textarea {
  background: #fff;
}

.mobile-menu-toggle { display: none; width: 40px; height: 40px; }
.mobile-menu-toggle span { display: block; width: 18px; height: 2px; background: #111; margin: 4px auto; }
.mobile-menu { position: fixed; top: 0; right: -100%; height: 100%; width: min(86vw, 360px); background: #fff; z-index: 1400; transition: right .25s ease; padding: 1.4rem; }
.mobile-menu-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); opacity: 0; pointer-events: none; transition: opacity .2s ease; z-index: 1300; }
.mobile-menu-overlay.is-open { opacity: 1; pointer-events: auto; }
.mobile-menu.is-open { right: 0; }
.mobile-menu-open { overflow: hidden; }
.mobile-menu-nav { display: grid; gap: .5rem; margin-top: 1rem; }
.mobile-menu-link, .mobile-menu-cta { padding: .65rem .75rem; border-radius: 10px; text-decoration: none; color: var(--fc-text); border: 1px solid #eee; background: #fff; }

@media (max-width: 1024px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero{ min-height: auto; padding: 2.6rem 0 2rem; }
  .hero-visual img{ min-height: 380px; }
  .hero-badge{ left: 12px; }
  .recipes-hero{ grid-template-columns:1fr; }
  .story-grid { grid-template-columns: repeat(2,1fr); }
  .seasons-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .product-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .product-detail-layout { grid-template-columns: 1fr; }
  #recipes-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .recipe-card img { height: 210px; }
  .footer-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 900px) {
  .main-nav { display: none; }
  .mobile-menu-toggle { display: block; }
  #auth-buttons { display: none; }
  .products-mega-menu{display:none !important}
}
@media (max-width: 768px) {
  .hero h1{ font-size: clamp(2rem, 9vw, 2.8rem); }
  .hero p{ font-size: 1rem; }
  .hero-badge-bottom{ display: none; }
  .recipes-shell{ padding:.95rem; border-radius:14px; }
  .recipes-toolbar-title{ font-size:1rem; }
  .recipes-hero-visual{ min-height:220px; }
  .recipes-hero-visual img{ min-height:220px; }
  .filters { grid-template-columns: 1fr; }
  #produits .filters{ padding:.6rem; }
  .product-grid { grid-template-columns: 1fr; }
  #recipes-grid { grid-template-columns: 1fr; }
  .recipe-card img { height: 190px; }
  .seasons-grid { grid-template-columns: 1fr; }
  .story-grid, .footer-grid { grid-template-columns: 1fr; }
  .hero { padding-top: calc(2rem + env(safe-area-inset-top)); }
  .footer { padding-bottom: calc(2rem + env(safe-area-inset-bottom)); }
  .modal{ padding:.55rem; }
  .modal-content{ margin:1.2rem auto; padding:.85rem; }
  #contact-form-modal{ gap:.45rem; padding:.7rem; }
  #contact-form-modal textarea{ min-height:88px; }
  #contact-form-modal .btn{ min-height:42px; }
}

/* OCR long-name hardening */
.product-title{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  word-break:break-word;
}
.product-description{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.pagination{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  justify-content:center;
  margin-top:1rem;
}
#produits .pagination{
  margin-top:1.25rem;
  padding-top:.35rem;
}
.page-btn{
  border:1px solid #d8c6b3;
  background:#fff;
  color:#8b1e24;
  border-radius:999px;
  padding:.42rem .8rem;
  font-weight:600;
  cursor:pointer;
}
.page-btn:hover{
  background:#f7efe6;
}
.page-btn.active{
  background:#8b1e24;
  color:#fff;
  border-color:#8b1e24;
}
.page-dots{
  align-self:center;
  color:#8a8177;
  padding:0 .2rem;
}

.reviews-head{margin-bottom:.8rem}
.reviews-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:0 0 1rem}
.reviews-stat-card{background:#fff;border:1px solid #eadcca;border-radius:14px;padding:.9rem 1rem}
.reviews-stat-label{margin:0;color:#6d645d;font-size:.9rem}
.reviews-stat-value{margin:.2rem 0 0;font-size:1.5rem;font-weight:700;color:#8b1e24}
.rating-graph{background:#fff;border:1px solid #eadcca;border-radius:14px;padding:.8rem;margin-bottom:1rem}
.rating-row{display:grid;grid-template-columns:44px 1fr 34px;gap:.6rem;align-items:center;margin:.35rem 0}
.rating-bar-track{height:8px;border-radius:999px;background:#efe4d7;overflow:hidden}
.rating-bar-fill{height:100%;background:linear-gradient(90deg,#c65a28,#8b1e24)}
.reviews-toolbar{display:grid;grid-template-columns:1fr 220px;gap:.7rem;margin-bottom:.9rem}
.reviews-toolbar input,.reviews-toolbar select,.review-form-shell textarea{min-height:44px;border-radius:10px;border:1px solid #d8c7b5;padding:.55rem .7rem}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.review-card{background:#fff;border:1px solid #eadcca;border-radius:14px;padding:.9rem;box-shadow:0 8px 20px rgba(31,31,31,.06)}
.stars-display{color:#c65a28;letter-spacing:.08em}
.review-form-shell{margin-top:1rem;background:#fff;border:1px solid #eadcca;border-radius:14px;padding:1rem}
.site-stars{display:flex;gap:.3rem;margin:.45rem 0 .7rem}
.site-stars span{font-size:1.4rem;color:#d8c7b5;cursor:pointer}
.site-stars span.selected{color:#c65a28}
.review-anon{display:inline-flex;align-items:center;gap:.45rem;margin-top:.55rem}

#testimonials .reviews-head-premium{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:1rem;
  align-items:start;
}
#testimonials .reviews-kicker{
  margin:0 0 .28rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#9f1d24;
  font-weight:800;
  font-size:.8rem;
}
#testimonials .reviews-summary-premium{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.62rem;
}
#testimonials .reviews-stat-card{
  border-radius:14px;
  background:linear-gradient(180deg,#fffdf9,#fffaf4);
  border:1px solid #ead9c6;
  box-shadow:0 6px 16px rgba(31,31,31,.045);
  padding:.62rem .72rem;
}
#testimonials .reviews-stars-premium{
  margin:.22rem 0 0;
  color:#c65a28;
  letter-spacing:.12em;
  font-size:.95rem;
}
#testimonials .reviews-verified-pill{
  display:inline-flex;
  margin-top:.25rem;
  border-radius:999px;
  border:1px solid #efdbc8;
  background:#fff8ef;
  color:#8b1e24;
  font-weight:700;
  font-size:.74rem;
  padding:.25rem .55rem;
}
#testimonials .rating-row{
  grid-template-columns:40px 1fr 28px;
}
#testimonials .rating-row span{
  color:#6e6258;
  font-size:.86rem;
}
#testimonials .rating-bar-fill{
  background:linear-gradient(90deg,#cf6c36,#8b1e24);
  transition:width .65s ease;
}
#testimonials .reviews-toolbar-premium{
  grid-template-columns:1fr 220px;
  align-items:center;
}
#testimonials .reviews-search-wrap{
  position:relative;
}
#testimonials .reviews-search-icon{
  position:absolute;
  left:11px;
  top:50%;
  transform:translateY(-50%);
  color:#8c7a6a;
  font-size:.88rem;
  pointer-events:none;
}
#testimonials #filterSpice{
  padding-left:2rem;
}
#testimonials .reviews-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.04rem;
}
#testimonials .review-card{
  border-radius:16px;
  background:#fffdf9;
  border:1px solid #ecdcca;
  box-shadow:0 6px 14px rgba(31,31,31,.045);
  padding:.92rem .96rem;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
#testimonials .review-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 20px rgba(31,31,31,.08);
  border-color:#e4ccb3;
}
#testimonials .stars-display{
  font-size:1.02rem;
  margin-bottom:.2rem;
}
#testimonials .review-body{
  margin:.12rem 0 .42rem;
  line-height:1.56;
  color:#463b34;
}
#testimonials .review-meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:.32rem;
}
#testimonials .review-verified-badge,
#testimonials .review-spice-pill{
  border-radius:999px;
  padding:.2rem .52rem;
  font-size:.74rem;
  border:1px solid #efdfcf;
}
#testimonials .review-verified-badge{
  background:#fff7ef;
  color:#8b1e24;
}
#testimonials .review-spice-pill{
  background:#fffaf3;
  color:#5f5348;
}
#testimonials .pagination{
  margin:1.2rem auto 0;
  display:flex;
  justify-content:center;
  gap:.42rem;
}
#testimonials .reviews-page-btn{
  min-width:38px;
  min-height:38px;
  border-radius:999px;
  border:1px solid #ddc9b4;
  background:#fff;
  color:#8b1e24;
  font-weight:700;
  cursor:pointer;
}
#testimonials .reviews-page-btn.active{
  background:#8b1e24;
  color:#fff;
  border-color:#8b1e24;
}
#testimonials .reviews-page-btn:hover{
  background:#f9efe5;
}
#testimonials .container{
  width:100%;
  max-width:1020px;
  margin:0 auto;
}
#testimonials .review-form-shell-premium{
  margin:1.25rem auto 0;
  display:block;
  width:min(100%,900px);
  max-width:900px;
  min-width:0;
  border-radius:18px;
  border:1px solid #ebdcc8;
  box-shadow:0 7px 18px rgba(31,31,31,.055);
  padding:1.12rem 1.26rem 1.18rem;
}
/* Prevent legacy two-column toolbar from stretching the premium form shell. */
#testimonials .review-form-shell-premium .reviews-toolbar{
  display:grid;
  grid-template-columns:none;
  gap:.66rem;
  margin-bottom:.9rem;
}
#testimonials .review-form-shell-premium .reviews-toolbar input,
#testimonials .review-form-shell-premium .reviews-toolbar select{
  width:100%;
}
#testimonials .review-form-sub{
  margin:.06rem 0 .52rem;
  color:#72655c;
}
#testimonials .site-stars{
  gap:.45rem;
  margin:.55rem 0 .35rem;
}
#testimonials .site-stars span{
  font-size:2rem;
  color:#d8c7b5;
  line-height:1;
  transition:transform .18s ease,color .2s ease,text-shadow .2s ease;
}
#testimonials .site-stars span:hover{
  color:#c65a28;
  transform:translateY(-1px) scale(1.06);
  text-shadow:0 8px 14px rgba(198,90,40,.25);
}
#testimonials .site-stars span.selected{
  color:#c65a28;
  text-shadow:0 8px 14px rgba(198,90,40,.24);
}
#testimonials .reviews-rating-feedback{
  min-height:1.35rem;
  margin:0 0 .65rem;
  color:#6f635b;
  font-size:.92rem;
  font-weight:600;
}
#testimonials .reviews-rating-feedback::before{
  content:"Selectionnez une note";
}
#testimonials #site-reviews-stars:has(span[data-star="5"].selected) + .reviews-rating-feedback::before{content:"Excellent";}
#testimonials #site-reviews-stars:has(span[data-star="4"].selected):not(:has(span[data-star="5"].selected)) + .reviews-rating-feedback::before{content:"Très bon";}
#testimonials #site-reviews-stars:has(span[data-star="3"].selected):not(:has(span[data-star="4"].selected)) + .reviews-rating-feedback::before{content:"Correct";}
#testimonials #site-reviews-stars:has(span[data-star="2"].selected):not(:has(span[data-star="3"].selected)) + .reviews-rating-feedback::before{content:"Décevant";}
#testimonials #site-reviews-stars:has(span[data-star="1"].selected):not(:has(span[data-star="2"].selected)) + .reviews-rating-feedback::before{content:"Décevant";}
#testimonials .reviews-toolbar{
  margin-bottom:.66rem;
}
#testimonials #reviewText{
  width:100%;
  min-height:182px;
  padding:1.1rem 1.12rem;
  border-radius:14px;
  border:1px solid #dac7b6;
  line-height:1.66;
  margin-top:.18rem;
}
#testimonials #reviewText:focus{
  border-color:#9f1d24;
  box-shadow:0 0 0 3px rgba(159,29,36,.14);
  outline:0;
}
#testimonials .review-anon{
  margin-top:.62rem;
  margin-bottom:.52rem;
  display:inline-flex;
  align-items:center;
  gap:.55rem;
}
#testimonials .hero-cta{
  justify-content:center;
}
#testimonials .reviews-submit-btn{
  width:auto;
  min-width:198px;
  min-height:44px;
  padding:.64rem 1.12rem;
  border-radius:999px;
  transition:background .2s ease,color .2s ease,transform .18s ease,box-shadow .18s ease;
  box-shadow:0 5px 14px rgba(31,31,31,.08);
}
#testimonials .reviews-submit-btn:hover{
  background:#151515;
  transform:translateY(-1px);
  box-shadow:0 8px 16px rgba(31,31,31,.12);
}
#testimonials .reviews-trust-note{
  margin:.56rem 0 0;
  font-size:.86rem;
  color:#7f736b;
}
#testimonials .reviews-mini-preview{
  margin-top:.72rem;
  border:1px solid #ecdcc9;
  border-radius:14px;
  background:linear-gradient(135deg,rgba(255,249,241,.92),rgba(255,255,255,.92));
  padding:.72rem .9rem;
}
#testimonials .reviews-mini-stars{
  margin:0 0 .28rem;
  letter-spacing:.16em;
  color:#c65a28;
  font-size:1rem;
}
#testimonials .reviews-mini-text{
  margin:0;
  color:#443933;
  font-size:.95rem;
}
#testimonials .reviews-mini-author{
  margin:.34rem 0 0;
  color:#7b6e66;
  font-size:.86rem;
}
#testimonials .reviews-verified-pill{
  background:#fff7ee;
  border:1px solid #e7cfb4;
  color:#8b1e24;
  font-weight:700;
}
/* Neutralize global !important stat-card override for testimonials only. */
#testimonials .reviews-stat-card{
  background:linear-gradient(180deg,#fffdf9,#fffaf4) !important;
  border:1px solid #ead9c6 !important;
  border-radius:16px !important;
  box-shadow:0 6px 16px rgba(31,31,31,.045) !important;
}
#testimonials .reviews-submit-btn:focus-visible,
#testimonials .reviews-page-btn:focus-visible,
#testimonials .review-card a:focus-visible,
#testimonials input:focus-visible,
#testimonials select:focus-visible,
#testimonials textarea:focus-visible{
  outline:2px solid rgba(139,30,36,.42);
  outline-offset:2px;
}

@media (max-width: 768px) {
  .reviews-stats, .reviews-toolbar, .reviews-grid { grid-template-columns: 1fr; }
  #testimonials .reviews-head-premium{grid-template-columns:1fr;}
  #testimonials .reviews-summary-premium{grid-template-columns:1fr;}
  #testimonials .reviews-toolbar-premium{grid-template-columns:1fr;}
  #testimonials .reviews-grid{grid-template-columns:1fr;}
  #testimonials #reviewText{min-height:108px;}
  #testimonials .reviews-submit-btn{width:100%;min-width:0;}
}

#cart-items{
  list-style:none;
  padding:0;
  margin:.4rem 0 1rem;
  display:grid;
  gap:.6rem;
  max-height:45vh;
  overflow:auto;
}
#cart-items li{margin:0;padding:0}
.cart-item{
  background:#fff;
  border:1px solid #ecdcca;
  border-radius:12px;
  padding:.75rem;
  display:grid;
  gap:.55rem;
}
.cart-item > span:first-child{
  font-weight:700;
  color:#2c2623;
}
.quantity-controls{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
}
.quantity-controls button{
  width:28px;
  height:28px;
  border-radius:999px;
  border:1px solid #d8c7b5;
  background:#fff;
  color:#8b1e24;
  font-weight:700;
  cursor:pointer;
}
.quantity-controls button:hover{
  border-color:#8b1e24;
  background:#fff4ea;
}
.quantity-controls span{
  font-size:.92rem;
  color:#5d5650;
}
.cart-item .remove-btn{
  justify-self:start;
  border:1px solid rgba(139,30,36,.28);
  background:rgba(139,30,36,.07);
  color:#8b1e24;
  border-radius:999px;
  padding:.42rem .78rem;
  cursor:pointer;
}
.cart-item .remove-btn:hover{
  background:#8b1e24;
  color:#fff;
}
#cart-total{
  margin:.35rem 0 .85rem;
  font-size:1.15rem;
  font-weight:800;
  color:#8b1e24;
}

.mini-spice{
  display:grid;
  grid-template-columns:96px 1fr;
  gap:.8rem;
  align-items:start;
  background:#fff;
  border:1px solid #eadcca;
  border-radius:14px;
  padding:.75rem;
  box-shadow:0 8px 18px rgba(31,31,31,.06);
}
.mini-spice img{
  width:96px;
  height:96px;
  object-fit:cover;
  border-radius:10px;
  border:1px solid #efe0cd;
  background:#f7f0e7;
}
.mini-actions{
  margin-top:.55rem;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem;
}
.mini-actions .r-pack{
  min-height:38px;
  border:1px solid #d8c7b5;
  border-radius:10px;
  padding:.45rem .6rem;
  background:#fff;
  color:#2d2723;
  font-weight:600;
}
.mini-actions .r-pack:focus{
  outline:none;
  border-color:#c65a28;
  box-shadow:0 0 0 3px rgba(198,90,40,.16);
}
.qty-stepper{
  display:inline-flex;
  align-items:center;
  border:1px solid #e6d8c8;
  border-radius:999px;
  overflow:hidden;
  background:#fffaf4;
  width:auto;
  min-height:40px;
  padding:0 .15rem;
}
.qty-stepper .qty-btn{
  width:30px;
  height:30px;
  border-radius:999px;
  border:0;
  background:transparent;
  color:#8b1e24;
  font-size:1.05rem;
  font-weight:800;
  cursor:pointer;
  transition:all .2s ease;
}
.qty-stepper .qty-btn:hover{
  background:#8b1e24;
  color:#fff;
}
.qty-stepper .r-qty{
  width:56px;
  height:30px;
  border:0;
  border-left:1px solid #efe0cd;
  border-right:1px solid #efe0cd;
  text-align:center;
  font-weight:700;
  color:#2a2421;
  background:#fff;
  margin:0 .15rem;
  border-radius:8px;
}
.qty-stepper .r-qty:focus{
  outline:none;
  background:#fff;
}
.mini-actions .r-add{
  min-height:36px;
  padding:.45rem .95rem;
  border-radius:999px;
  font-weight:700;
}
.mini-spice-note{
  font-size:.88rem;
  color:#6a5b47;
}
.mini-spice-empty-image{
  width:96px;
  height:96px;
  border-radius:10px;
  border:1px dashed #e6d8c8;
  background:#fcf7f0;
}

/* Signup checkbox UI polish */
.signup-checkline{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:.2rem 0 .35rem;
  line-height:1.45;
  font-size:.95rem;
  color:#3f3732;
  cursor:pointer;
}
.signup-checkline input[type="checkbox"]{
  width:19px;
  height:19px;
  min-width:19px;
  min-height:19px;
  margin:0;
  accent-color:#9f1d24;
  border-radius:4px;
  cursor:pointer;
  flex:0 0 auto;
}
.signup-checkline a{
  text-underline-offset:2px;
}
.signup-grid{
  display:grid;
  gap:.55rem;
}
.signup-row{
  display:grid;
  gap:.55rem;
}
.signup-row-2{
  grid-template-columns:1fr 1fr;
}
.signup-account-type{
  display:grid;
  gap:.35rem;
}
.signup-label{
  font-size:.82rem;
  font-weight:700;
  color:#6b5a4a;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.signup-radio-group{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}
.signup-radio{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  cursor:pointer;
  font-weight:600;
  color:#3f3732;
}
.signup-radio input[type="radio"]{
  width:18px;
  height:18px;
  accent-color:#9f1d24;
}
.signup-password-wrap{
  position:relative;
}
.signup-password-wrap #signup-password{
  padding-right:44px;
}
.password-eye{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:transparent;
  color:#6b5a4a;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
}
.field-invalid{
  border-color:#c81e1e !important;
  box-shadow:0 0 0 2px rgba(200,30,30,.12);
}
.field-valid{
  border-color:#2a9d55;
}
#signup-form input:invalid + .form-error{
  display:block;
}
@media (max-width: 720px){
  .signup-row-2{
    grid-template-columns:1fr;
  }
}

.recipe-single-page{
  padding-top:2rem;
}
.recipe-breadcrumb{
  margin:0 0 .9rem;
}
.recipe-breadcrumb ol{
  margin:0;
  padding:0;
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  font-size:.85rem;
  color:#7b6b5d;
}
.recipe-breadcrumb li{
  display:inline-flex;
  align-items:center;
}
.recipe-breadcrumb li+li::before{
  content:'\203A';
  margin-right:.4rem;
  color:#b69679;
}
.recipe-breadcrumb a{
  color:#8b1e24;
  text-decoration:none;
}
.recipe-breadcrumb a:hover{
  text-decoration:underline;
}
.recipe-single-shell{
  display:grid;
  gap:1rem;
}
.recipe-single-main-card,
.recipe-single-shop-card{
  background:#fff;
  border:1px solid #eadcca;
  border-radius:18px;
  padding:1rem;
  box-shadow:0 12px 30px rgba(31,31,31,.06);
}
.recipe-single-empty{
  background:#fff;
  border:1px solid #eadcca;
  border-radius:16px;
  padding:1rem;
}
.recipe-single-hero{
  display:grid;
  grid-template-columns:minmax(310px,460px) 1fr;
  gap:1rem;
  align-items:start;
}
.recipe-single-cover{
  width:100%;
  max-height:410px;
  object-fit:cover;
  border-radius:14px;
  border:1px solid #eadcca;
}
.recipe-single-kicker{
  margin:0 0 .35rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.75rem;
  font-weight:800;
  color:#a45526;
}
.recipe-single-title{
  margin:0 0 .5rem;
  color:#8b1e24;
  font-size:clamp(1.8rem, 3.8vw, 2.6rem);
}
.recipe-single-subtitle{
  margin:0;
  color:#524841;
  line-height:1.6;
}
.recipe-single-kpis{
  margin-top:.8rem;
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
}
.recipe-single-kpi{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  border:1px solid #eadcca;
  border-radius:999px;
  background:#fffaf3;
  color:#4b4038;
  padding:.35rem .65rem;
  font-size:.82rem;
  font-weight:700;
}
.recipe-kpi-ico{
  font-size:.92rem;
  line-height:1;
}
.recipe-mini-label{
  margin:0 0 .3rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.72rem;
  font-weight:800;
  color:#a45526;
}
.recipe-single-body{
  margin-top:1rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.9rem;
}
.recipe-single-section{
  background:#fffaf4;
  border:1px solid #efdfcd;
  border-radius:14px;
  padding:.85rem;
}
.recipe-single-section h2{
  margin:0 0 .55rem;
  font-size:1.15rem;
  color:#8b1e24;
}
.recipe-single-list,
.recipe-single-steps{
  margin:0;
  padding-left:1.1rem;
  display:grid;
  gap:.38rem;
  color:#3f3732;
}
.recipe-single-back{
  margin-top:.9rem;
}
.recipe-about-section,
.recipe-tip-section{
  margin-top:.9rem;
}
.recipe-about-section p,
.recipe-tip-section p{
  margin:.2rem 0 0;
  line-height:1.6;
  color:#4b4038;
}
.recipe-tip-section{
  border-left:4px solid #8b1e24;
}
.recipe-spices-used-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
}
.recipe-spice-card{
  display:grid;
  grid-template-columns:62px 1fr;
  gap:.55rem;
  align-items:center;
  background:#fff;
  border:1px solid #eadcca;
  border-radius:12px;
  padding:.5rem .6rem;
}
.recipe-spice-media img{
  width:62px;
  height:62px;
  border-radius:8px;
  object-fit:cover;
  border:1px solid #eadcca;
}
.recipe-spice-content h3{
  margin:0 0 .2rem;
  font-size:.92rem;
  color:#2f2925;
}
.recipe-spice-content p{
  margin:0 0 .35rem;
  color:#6a5a4d;
  font-size:.8rem;
}
.recipe-spice-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
}
.recipe-spice-actions .btn{
  min-height:32px;
}
.recipe-single-shop-card h2{
  margin:.15rem 0 .85rem;
  color:#8b1e24;
  font-size:1.35rem;
}
.recipe-single-spice-grid{
  display:grid;
  gap:.65rem;
}
.recipe-single-add-all{
  margin-top:.8rem;
}
.recipe-related-premium{
  margin-top:1rem;
  padding-top:.6rem;
  border-top:1px solid #efdfcd;
}
.recipe-related-head h2{
  margin:.2rem 0 .8rem;
  color:#8b1e24;
  font-size:1.35rem;
}
.recipe-related-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.75rem;
}
.recipe-related-card{
  background:#fff;
  border:1px solid #eadcca;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 10px 24px rgba(31,31,31,.06);
  transition:transform .2s ease, box-shadow .2s ease;
}
.recipe-related-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(31,31,31,.10);
}
.recipe-related-media{
  display:block;
}
.recipe-related-media img{
  display:block;
  width:100%;
  height:170px;
  object-fit:cover;
  object-position:center;
}
.recipe-related-body{
  display:grid;
  gap:.45rem;
  padding:.75rem;
}
.recipe-related-category{
  margin:0;
  font-size:.76rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#a45526;
}
.recipe-related-title{
  margin:0;
  font-size:1rem;
  line-height:1.35;
}
.recipe-related-title a{
  color:#2a2421;
  text-decoration:none;
}
.recipe-related-title a:hover{
  color:#8b1e24;
}
.recipe-related-meta{
  margin:0;
  font-size:.85rem;
  color:#6b5d4f;
}
.recipe-related-empty{
  margin:0;
  color:#6b5d4f;
}

@media (max-width: 1024px){
  .recipe-single-hero{
    grid-template-columns:1fr;
  }
  .recipe-single-body{
    grid-template-columns:1fr;
  }
  .recipe-related-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .recipe-spices-used-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 640px){
  .mini-spice{
    grid-template-columns:1fr;
  }
  .mini-spice img{
    width:100%;
    height:180px;
  }
  .recipe-related-grid{
    grid-template-columns:1fr;
  }
  .recipe-related-media img{
    height:190px;
  }
  .recipe-spice-card{
    grid-template-columns:84px 1fr;
  }
  .recipe-spice-media img{
    width:84px;
    height:84px;
  }
  .recipe-spice-actions{
    display:grid;
    grid-template-columns:1fr;
  }
}

/* --- Mobile polish fix (iPhone Safari) --- */
@media (max-width: 900px){
  .main-header .container{
    grid-template-columns: 1fr auto;
    gap: 8px;
    align-items: center;
  }

  .logo img{ max-height: 42px; width: auto; }

  /* cache boutons desktop auth sur mobile */
  #auth-buttons{ display:none !important; }

  /* header actions plus compactes */
  .header-actions{
    display:flex;
    align-items:center;
    gap:8px;
  }
  .icon-btn, .mobile-menu-toggle{
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
  }

  /* chip langue moins envahissant */
  #lang-current-chip{
    font-size:12px;
    padding:4px 8px;
    margin-top:4px;
  }

  /* menu mobile plus premium et compact */
  .mobile-menu{
    width:min(84vw, 340px);
    padding:16px;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
  }

  .mobile-menu-nav{
    gap:10px;
    margin-top:8px;
  }

  .mobile-menu-link,
  .mobile-menu-cta{
    min-height:52px;
    padding:12px 16px;
    border-radius:18px;
    font-size:18px;
    line-height:1.2;
  }

  /* évite que le contenu passe sous la barre Safari */
  .mobile-menu{
    padding-bottom:calc(16px + env(safe-area-inset-bottom));
  }

  /* overlay propre */
  .mobile-menu-overlay{
    background:rgba(0,0,0,.35);
  }
}

@media (max-width: 900px){
  /* dropdown compte ancré à droite et sans dépassement */
  .user-menu{ position: relative; }
  .user-dropdown{
    left: auto !important;
    right: 0 !important;
    width: min(88vw, 320px);
    max-width: min(88vw, 320px);
    max-height: 60vh;
    overflow-y: auto;
    box-sizing: border-box;
    z-index: 2600;
    padding: 10px;
  }

  .user-dropdown #user-info{
    display: grid;
    gap: 10px;
  }

  .user-dropdown .btn{
    width: 100%;
    min-height: 44px;
    font-size: 16px;
  }

  #user-status, #admin-view-label{
    font-size: 15px;
    line-height: 1.35;
    word-break: break-word;
  }

  /* plus de boutons auth desktop sur mobile */
  #auth-buttons{ display: none !important; }
}
@media (min-width: 901px){
  #auth-buttons{ display: none !important; }
  .user-dropdown{
    right: 0;
    left: auto;
    min-width: 280px;
  }
}

/* ===== Mobile hardening pack ===== */
@media (max-width: 900px){
  /* Header compact + stable */
  .main-header .container{
    gap: 8px;
    align-items: center;
  }
  .logo img{ max-height: 42px; width: auto; }
  #auth-buttons{ display: none !important; }

  .header-actions{
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .icon-btn, .mobile-menu-toggle{
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }

  /* Language dropdown fix */
  .lang-menu{ position: relative; }
  .lang-dropdown{
    left: auto !important;
    right: 0 !important;
    width: min(88vw, 260px);
    max-width: min(88vw, 260px);
    max-height: 52vh;
    overflow-y: auto;
    z-index: 2700;
    background: #fff;
    border: 1px solid #ead8c4;
    border-radius: 12px;
    box-sizing: border-box;
    padding: 6px;
  }
  .lang-dropdown button{
    display: block;
    width: 100%;
    text-align: left;
    background: #fff !important;
    color: #1f1f1f !important;
    border: 0;
    border-radius: 8px;
    padding: 10px 12px;
    white-space: normal;
    word-break: break-word;
  }
  .lang-dropdown button:hover{ background: #f7efe4 !important; }

  /* Account dropdown bounded */
  .user-menu{ position: relative; }
  .user-dropdown{
    left: auto !important;
    right: 0 !important;
    width: min(88vw, 320px);
    max-width: min(88vw, 320px);
    max-height: 60vh;
    overflow-y: auto;
    z-index: 2600;
    box-sizing: border-box;
    padding: 10px;
  }
  .user-dropdown #user-info{ display: grid; gap: 10px; }
  .user-dropdown .btn{ width: 100%; min-height: 44px; font-size: 16px; }

  /* Menu compact */
  .mobile-menu{
    width: min(84vw, 340px);
    padding: 14px;
    padding-bottom: calc(14px + env(safe-area-inset-bottom));
  }
  .mobile-menu-nav{ gap: 8px; margin-top: 8px; }
  .mobile-menu-link, .mobile-menu-cta{
    min-height: 46px;
    padding: 10px 14px;
    border-radius: 14px;
    font-size: 17px;
    line-height: 1.2;
  }

  /* Recipe spice cards compact */
  .recipe-spice-row{ padding: 10px !important; }
  .recipe-spice-top{ gap: 8px; }
  .recipe-spice-row img{ max-height: 150px; object-fit: cover; }
  .recipe-spice-note{ font-size: 15px; line-height: 1.35; }
  .recipe-spice-actions .btn{ min-height: 42px; }

  /* Qty compact */
  .qty-stepper{ min-height: 50px; padding: 6px 8px; border-radius: 14px; }
  .qty-stepper .r-qty{ height: 40px; }

  /* Reviews compact */
  .review-form-shell{ padding: 14px; }
  .review-form-shell textarea{ min-height: 110px; }
  .reviews-toolbar{ gap: 10px; }
  .reviews-toolbar input, .reviews-toolbar select{ min-height: 44px; }

  /* Cart text normalization if mixed layouts */
  .cart-btn{ white-space: nowrap; }
}

@media (max-width: 900px){
  /* uniquement positionnement dropdowns */
  #user-dropdown,
  .user-dropdown{
    right: 0 !important;
    left: auto !important;
    max-width: 92vw !important;
    width: 320px !important;
    overflow-x: hidden !important;
  }

  #language-dropdown,
  .language-dropdown,
  #language-menu,
  .language-menu{
    right: 0 !important;
    left: auto !important;
    max-width: 92vw !important;
    width: 280px !important;
    overflow-x: hidden !important;
  }
}

@media (max-width: 900px){
  /* compte + langue: panneau contenu dans l'écran */
  #user-dropdown,
  .user-dropdown,
  #language-dropdown,
  .language-dropdown,
  #language-menu,
  .language-menu{
    position: fixed !important;
    left: 8px !important;
    right: 8px !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    z-index: 4000 !important;
    transform: none !important;
  }

  /* hauteur: juste sous le header */
  #user-dropdown, .user-dropdown{
    top: calc(var(--mobile-header-offset, 84px) + 6px) !important;
    max-height: calc(100dvh - var(--mobile-header-offset, 84px) - 16px) !important;
    overflow-y: auto !important;
  }

  #language-dropdown, .language-dropdown, #language-menu, .language-menu{
    top: calc(var(--mobile-header-offset, 84px) + 6px) !important;
    max-height: calc(100dvh - var(--mobile-header-offset, 84px) - 16px) !important;
    overflow-y: auto !important;
  }
}

@media (max-width: 900px){
  /* overlay menu: inactif par défaut */
  .mobile-menu-overlay{ pointer-events:none !important; opacity:0; }
  .mobile-menu-overlay.is-open{ pointer-events:auto !important; opacity:1; }

  /* dropdowns cachés: pas de capture tactile */
  #user-dropdown[aria-hidden="true"],
  .user-dropdown[aria-hidden="true"],
  #language-dropdown[aria-hidden="true"],
  .language-dropdown[aria-hidden="true"],
  #language-menu[aria-hidden="true"],
  .language-menu[aria-hidden="true"]{
    pointer-events:none !important;
    visibility:hidden !important;
  }

  /* bouton panier toujours cliquable */
  #cart-btn, .cart-btn, .cart-button, #cart-button{
    position: relative;
    z-index: 5001 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}

@media (max-width: 900px){
  .user-dropdown{ pointer-events: none; }
  .user-menu.open .user-dropdown,
  .user-menu:hover .user-dropdown,
  .user-dropdown.show{
    pointer-events: auto;
  }
}

@media (max-width: 900px){
  .user-dropdown{ pointer-events: none; }
  .user-menu.open .user-dropdown,
  .user-menu:hover .user-dropdown,
  .user-dropdown.show{
    pointer-events: auto;
  }
}

@media (max-width: 900px){
  /* overlays non ouverts: jamais cliquables */
  .mobile-menu-overlay{ pointer-events:none !important; opacity:0 !important; }
  .mobile-menu-overlay.is-open{ pointer-events:auto !important; opacity:1 !important; }

  /* dropdown compte/langue fermés: jamais capteurs */
  .user-dropdown,
  #user-dropdown,
  .language-dropdown,
  #language-dropdown,
  .language-menu,
  #language-menu{
    pointer-events:none;
  }

  .user-menu.open .user-dropdown,
  .user-dropdown.show,
  .lang-menu.open .language-dropdown,
  .language-dropdown.show,
  .language-menu.show{
    pointer-events:auto;
  }
}

@media (max-width: 900px){
  .mobile-menu-overlay{ pointer-events:none !important; opacity:0 !important; }
  .mobile-menu-overlay.is-open{ pointer-events:auto !important; opacity:1 !important; }

  .user-dropdown,
  #user-dropdown,
  .language-dropdown,
  #language-dropdown,
  .language-menu,
  #language-menu{
    pointer-events:none;
  }

  .user-menu.open .user-dropdown,
  .user-dropdown.show,
  .lang-menu.open .language-dropdown,
  .language-dropdown.show,
  .language-menu.show{
    pointer-events:auto;
  }
}

/* auth/admin visibility safety */
.is-hidden{display:none !important;}
body:not(.is-authenticated) #admin-btn,
body:not(.is-authenticated) #admin-view-toggle,
body:not(.is-authenticated) #account-btn,
body:not(.is-authenticated) #logout-btn{
  display:none !important;
}

/* Account dropdown desktop fix */
@media (min-width: 901px){
  .header-actions{ overflow: visible !important; }
  .user-menu{ position: relative !important; overflow: visible !important; }
  .user-dropdown{
    position: absolute !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: auto !important;
    z-index: 4500 !important;
    min-width: 260px;
    max-width: 320px;
    display: none;
  }
  .user-menu.open .user-dropdown,
  .user-menu:not(.open):hover .user-dropdown{
    display: block !important;
    pointer-events: auto !important;
  }
}

/* Desktop-only account dropdown hard fix */
@media (min-width: 901px){
  .main-header,
  .main-header .container,
  .header-actions,
  .user-menu{
    overflow: visible !important;
  }

  .user-menu{
    position: relative !important;
  }

  .user-dropdown{
    position: absolute !important;
    top: calc(100% + 10px) !important;
    right: 0 !important;
    left: auto !important;
    min-width: 280px !important;
    max-width: 320px !important;
    z-index: 9999 !important;
    display: none !important;
    pointer-events: none !important;
  }

  .user-menu.open .user-dropdown,
  .user-menu:hover .user-dropdown,
  .user-dropdown.show{
    display: block !important;
    pointer-events: auto !important;
  }
}

/* DESKTOP ACCOUNT LAYER FIX */
@media (min-width: 901px){
  #mobile-menu-overlay{
    pointer-events: none !important;
    opacity: 0 !important;
    display: none !important;
  }

  .main-header,
  .main-header .container,
  .header-actions,
  .user-menu{
    overflow: visible !important;
  }

  .user-menu{ position: relative !important; z-index: 9000 !important; }

  .user-dropdown{
    position: absolute !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: auto !important;
    min-width: 260px !important;
    max-width: 320px !important;
    z-index: 9100 !important;
  }
}


/* ACCOUNT DESKTOP FINAL CLEAN */
@media (min-width: 901px){
  .main-header, .main-header .container, .header-actions, .user-menu{
    overflow: visible !important;
  }

  .user-menu{
    position: relative !important;
    z-index: 9000 !important;
  }

  .user-dropdown{
    position: absolute !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: auto !important;
    min-width: 260px !important;
    max-width: 320px !important;
    z-index: 9100 !important;
    display: none !important;
    pointer-events: none !important;
  }

  .user-menu.open .user-dropdown,
  .user-dropdown.show{
    display: block !important;
    pointer-events: auto !important;
  }

  .user-menu:hover .user-dropdown{
    display: none !important;
  }

  #mobile-menu-overlay{
    display: none !important;
    pointer-events: none !important;
    opacity: 0 !important;
  }
}

/* Desktop guest actions in account dropdown */
@media (min-width: 901px){
  .desktop-guest-actions{
    display: grid;
    gap: 8px;
    padding: 6px 0;
  }
  .desktop-guest-actions .btn{
    width: 100%;
  }
}

/* DESKTOP account state lock: only .open can display dropdown */
@media (min-width: 901px){
  .user-menu .user-dropdown,
  .user-menu:hover .user-dropdown,
  .user-dropdown.show{
    display: none !important;
    pointer-events: none !important;
  }

  .user-menu.open .user-dropdown,
  .user-menu.open:hover .user-dropdown,
  .user-menu.open .user-dropdown.show{
    display: block !important;
    pointer-events: auto !important;
  }
}

/* ADMIN UI responsive cleanup */
#admin-modal .modal-content.admin-modal{
  width: min(96vw, 1100px) !important;
  max-height: 88vh !important;
  overflow: auto !important;
  padding: 18px !important;
}

#admin-modal .admin-status-counts{
  display: grid !important;
  grid-template-columns: repeat(4, minmax(120px,1fr));
  gap: 10px !important;
  margin: 10px 0 14px !important;
}
#admin-modal .admin-status-card{
  background:#fff;
  border:1px solid #ead8c4;
  border-radius:12px;
  padding:10px;
}
#admin-modal .admin-status-title{display:block;font-size:13px;opacity:.8}
#admin-modal .admin-status-value{font-size:24px;line-height:1.1}

#admin-modal .admin-form,
#admin-modal .admin-toolbar{
  display:grid;
  gap:10px;
  margin:10px 0;
}
#admin-modal .admin-form-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

#admin-modal table{
  width:100%;
  border-collapse: collapse;
  table-layout: fixed;
}
#admin-modal th,#admin-modal td{
  border-bottom:1px solid #ead8c4;
  padding:10px 8px;
  text-align:left;
  vertical-align:top;
  word-break: break-word;
}
#admin-modal th{
  position: sticky;
  top: 0;
  background:#f9f5ef;
  z-index: 2;
}

@media (max-width: 1024px){
  #admin-modal .admin-status-counts{
    grid-template-columns: repeat(2, minmax(120px,1fr));
  }
}
@media (max-width: 700px){
  #admin-modal .modal-content.admin-modal{
    width: 98vw !important;
    max-height: 92vh !important;
    padding: 12px !important;
  }
  #admin-modal .admin-status-counts{
    grid-template-columns: 1fr;
  }
  #admin-modal .admin-form-actions .btn{
    width: 100%;
  }
}

/* ACCOUNT DROPDOWN DESKTOP SINGLE SOURCE OF TRUTH */
@media (min-width: 901px){
  .main-header,
  .main-header .container,
  .header-actions,
  .user-menu{
    overflow: visible !important;
  }

  .user-menu{
    position: relative !important;
    z-index: 9200 !important;
  }

  .user-menu .user-dropdown{
    position: absolute !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: auto !important;
    min-width: 260px !important;
    max-width: 340px !important;
    max-height: 70vh !important;
    overflow: auto !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border: 1px solid #ead8c4 !important;
    border-radius: 12px !important;
    padding: 10px !important;
    box-shadow: 0 16px 40px rgba(0,0,0,.14) !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: hidden !important;
    display: block !important;
    pointer-events: none !important;
    z-index: 9300 !important;
  }

  .user-menu.open .user-dropdown,
  .user-menu.open:hover .user-dropdown,
  .user-menu:hover .user-dropdown,
  .user-menu .user-dropdown.show{
    visibility: visible !important;
    pointer-events: auto !important;
  }

  body:not(.is-authenticated) .user-menu .user-dropdown #guest-info{
    display: grid !important;
    gap: 8px !important;
  }
  body:not(.is-authenticated) .user-menu .user-dropdown #user-info{
    display: none !important;
  }
  body.is-authenticated .user-menu .user-dropdown #guest-info{
    display: none !important;
  }
  body.is-authenticated .user-menu .user-dropdown #user-info{
    display: grid !important;
    gap: 10px !important;
  }

  .user-menu .user-dropdown .btn{
    width: 100% !important;
    min-height: 40px !important;
  }

  body:not(.is-authenticated) #auth-buttons{
    display: flex !important;
    gap: .45rem !important;
  }
}

/* LOT 2 - Header desktop alignment/size */
@media (min-width: 901px){
  .main-header{
    background: #fff !important;
    border-bottom: 1px solid rgba(139, 30, 36, 0.12) !important;
  }
  .main-header .container{
    width: min(1480px, 100vw) !important;
    min-height: 108px !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
    display: grid !important;
    grid-template-columns: auto 1fr minmax(220px, 360px) auto !important;
    align-items: center !important;
    gap: 18px !important;
  }
  .logo{
    justify-self: start !important;
  }
  .logo img{
    width: 162px !important;
    height: 86px !important;
    object-fit: contain !important;
  }
  .main-nav{
    justify-self: center !important;
  }
  .main-nav ul{
    gap: 1.85rem !important;
    align-items: center !important;
  }
  .main-nav a,
  .nav-products-trigger,
  .nav-recipes-trigger{
    font-size: 1.08rem !important;
    font-weight: 700 !important;
    letter-spacing: .01em !important;
  }
  .header-search{
    display: flex;
    align-items: center;
    gap: 6px;
    background: #fff;
    border: 1px solid #e6d7c5;
    border-radius: 999px;
    padding: 6px 8px;
    box-shadow: 0 6px 16px rgba(31,31,31,.06);
  }
  .header-search i{
    color: #7a6a5d;
    font-size: .95rem;
    margin-left: 4px;
  }
  .header-search input{
    border: 0;
    outline: none;
    background: transparent;
    width: 100%;
    min-width: 120px;
    font-size: .9rem;
    color: #2a2421;
  }
  .header-search button{
    border: 1px solid #d8c2a8;
    border-radius: 999px;
    background: #faf6f1;
    color: #8b1e24;
    padding: 6px 10px;
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
  }
  .header-search button:hover{
    background: #f4e9dc;
  }
  .header-actions{
    justify-self: end !important;
    gap: .48rem !important;
  }
  .header-actions .icon-btn{
    width: 42px;
    height: 42px;
    border-color: rgba(139, 30, 36, .18);
    box-shadow: 0 4px 12px rgba(31,31,31,.06);
  }
  .lang-menu{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid rgba(139, 30, 36, .18);
    border-radius: 999px;
    padding: 2px 8px 2px 2px;
    background: #fff;
  }
  .lang-menu #lang-toggle{
    width: 36px;
    height: 36px;
    border: 0;
    box-shadow: none;
    background: transparent;
  }
  .lang-menu #lang-current-chip{
    margin-top: 0;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #8b1e24;
  }
}

@media (max-width: 900px){
  .header-search{
    display: none !important;
  }
}

/* LOT 4B - Responsive Alignment (single visual source) */
@media (max-width: 1200px){
  body{
    background:#fff !important;
  }

  .main-header{
    background:#fff !important;
    border-bottom:1px solid rgba(139,30,36,.12) !important;
    backdrop-filter:none !important;
  }

  .main-header .container{
    width:min(100%, 1200px) !important;
    padding-left:12px !important;
    padding-right:12px !important;
  }

  .hero{
    background:linear-gradient(180deg,#ffffff 0%,#fffaf5 100%) !important;
    border-bottom:1px solid rgba(139,30,36,.1) !important;
  }

  .hero h1,
  .section-title{
    color:#8b1e24 !important;
  }

  .btn-primary{
    background:#8b1e24 !important;
    color:#fff !important;
    border:1px solid #8b1e24 !important;
  }
  .btn-secondary{
    background:#fff8f0 !important;
    color:#8b1e24 !important;
    border:1px solid rgba(139,30,36,.28) !important;
  }

  .story-card,
  .season-card,
  .recipes-shell,
  .reviews-stat-card{
    background:#fff !important;
    border:1px solid #ead8c4 !important;
    border-radius:16px !important;
    box-shadow:0 10px 24px rgba(31,31,31,.06) !important;
  }

  .footer{
    background:#fff !important;
    color:#2a2421 !important;
    border-top:1px solid #ebdcc8 !important;
  }
}

@media (max-width: 900px){
  .main-header .container{
    min-height:78px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:8px !important;
  }

  .logo img{
    width:128px !important;
    height:68px !important;
    object-fit:contain !important;
  }

  .header-actions{
    gap:8px !important;
    align-items:center !important;
  }

  .header-actions .icon-btn,
  .mobile-menu-toggle{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
    border:1px solid rgba(139,30,36,.2) !important;
    background:#fff !important;
    box-shadow:0 4px 12px rgba(31,31,31,.06) !important;
  }

  .hero{
    min-height:auto !important;
    padding:2.2rem 0 1.8rem !important;
  }
  .hero-grid{
    gap:1.2rem !important;
  }
  .hero h1{
    font-size:clamp(1.95rem,8.5vw,2.7rem) !important;
    line-height:1.08 !important;
  }
  .hero p{
    font-size:1rem !important;
    line-height:1.62 !important;
  }
  .hero .btn{
    min-height:46px !important;
  }

  .section{
    padding:2.2rem 0 !important;
  }
  .section-sub{
    font-size:.98rem !important;
    line-height:1.55 !important;
  }

  .footer{
    padding:2rem 0 calc(2rem + env(safe-area-inset-bottom)) !important;
  }
  .footer-col h3{
    font-size:.88rem !important;
  }
}

/* HOTFIX UI - Language dropdown mobile alignment */
@media (max-width: 900px){
  .lang-menu{
    position: relative !important;
    width: 42px !important;
    min-width: 42px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }
  .lang-menu #lang-current-chip{
    display: none !important;
  }
  .lang-menu #lang-toggle{
    width: 42px !important;
    height: 42px !important;
  }
  .lang-menu .lang-dropdown{
    top: calc(100% + 8px) !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    min-width: 0 !important;
    width: max-content !important;
    max-width: calc(100vw - 14px) !important;
    padding: 6px !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }
  .lang-menu .lang-dropdown button{
    white-space: nowrap !important;
  }
}

.recipes-featured-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.recipes-featured-shell .recipes-trust-kicker{
  margin:0 0 .35rem;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.06em;
  color:#9f1d24;
  text-transform:uppercase;
}
.recipes-featured-shell .recipe-card{
  border-color:#e9d7c4;
  border-radius:18px;
  box-shadow:0 12px 26px rgba(31,31,31,.08);
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.recipes-featured-shell .recipe-card:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 34px rgba(31,31,31,.14);
  border-color:#dcbda3;
}
.recipes-featured-shell .recipe-card img{
  height:236px;
  object-fit:cover;
  transition:transform .35s ease;
}
.recipes-featured-shell .recipe-card:hover img{
  transform:scale(1.04);
}
.recipes-featured-shell .recipe-card:first-child{
  border-color:#c65a28;
  box-shadow:0 20px 38px rgba(198,90,40,.2);
  position:relative;
}
.recipes-featured-shell .recipe-card:first-child::before{
  content:"A decouvrir";
  position:absolute;
  top:12px;
  left:12px;
  z-index:3;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.9);
  background:rgba(255,255,255,.92);
  color:#9f1d24;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:.3rem .55rem;
}
.recipes-featured-shell .recipe-badge{
  align-self:start;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  border:1px solid #ead7c4;
  background:#fff7ef;
  color:#8b1e24;
  font-size:.72rem;
  letter-spacing:.04em;
  text-transform:capitalize;
  font-weight:800;
  padding:.28rem .58rem;
}
.recipes-featured-shell .recipe-meta{
  margin:.05rem 0 .2rem;
  color:#5f554e;
  font-size:.86rem;
  font-weight:600;
}
.recipes-featured-shell .recipe-open{
  margin-top:.2rem;
  min-height:42px;
  border-radius:999px;
  font-weight:800;
  letter-spacing:.01em;
  box-shadow:0 8px 16px rgba(139,30,36,.2);
}
.recipes-featured-shell .recipe-open:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 20px rgba(139,30,36,.28);
}
.recipes-featured-shell .recipes-final-cta{
  min-height:48px;
  border-radius:999px;
  padding:.78rem 1.25rem;
  font-weight:800;
}
@media (max-width:1024px){
  .recipes-featured-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px){
  .recipes-featured-grid{ grid-template-columns:1fr; }
  .recipes-featured-shell .recipe-card img{ height:205px; }
  .recipes-featured-shell .recipes-final-cta{ width:100%; justify-content:center; }
}

/* Phase premium - header/hero/engagements/search */
.main-header .main-nav a,
.main-header .nav-products-trigger,
.main-header .nav-recipes-trigger,
.main-header .nav-engagements-trigger,
.main-header .nav-contact-trigger{
  color:#8b1e24;
  font-weight:700;
  border:0;
  background:transparent;
  cursor:pointer;
  font-size:1rem;
  padding:0;
  text-decoration:none;
}
.main-header .main-nav a:hover,
.main-header .nav-products-trigger:hover,
.main-header .nav-recipes-trigger:hover,
.main-header .nav-engagements-trigger:hover,
.main-header .nav-contact-trigger:hover{
  color:#151515;
}
.nav-engagements-trigger:focus-visible{
  outline:2px solid rgba(159,29,36,.25);
  outline-offset:4px;
  border-radius:8px;
}
.nav-engagements-trigger:hover{
  color:#000;
}
.main-header .icon-btn{
  color:#8b1e24;
  transition:color .2s ease,border-color .2s ease,background .2s ease;
}
.main-header .icon-btn:hover{
  color:#151515;
  border-color:rgba(21,21,21,.35);
}

#accueil.hero{
  position:relative;
  background:
    linear-gradient(110deg, rgba(255,250,244,.95) 0%, rgba(255,255,255,.9) 50%, rgba(250,241,230,.94) 100%),
    url("images/epices/cumin-moulu.webp");
  background-size:cover;
  background-position:center;
}
#accueil .hero-kicker{font-weight:800;letter-spacing:.18em;}
#accueil h1{
  font-size:clamp(2.7rem,6vw,5rem);
  line-height:1.01;
  max-width:16ch;
}
#accueil .hero-copy p{
  max-width:56ch;
  color:#3f3530;
}

#story .story-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
#story .story-card{
  border-radius:18px;
  border:1px solid #e7d6c4;
  box-shadow:0 12px 24px rgba(31,31,31,.08);
  padding:1.05rem;
}
#story .story-card h3{
  font-size:1.03rem;
  margin:.1rem 0 .45rem;
}
#story .story-card p{
  color:#5e534c;
  line-height:1.55;
}

.header-search-overlay{
  position:fixed;
  inset:0;
  z-index:1850;
  background:rgba(18,14,12,.45);
  backdrop-filter:blur(4px);
  display:none;
  align-items:flex-start;
  justify-content:center;
  padding:min(11vh,110px) 1rem 1rem;
}
.header-search-overlay.open{display:flex;}
.header-search-panel{
  width:min(860px,95vw);
  background:#fff;
  border:1px solid #e9d8c6;
  border-radius:20px;
  box-shadow:0 24px 48px rgba(24,20,18,.24);
  padding:1.1rem;
  position:relative;
}
.header-search-panel h3{
  margin:.1rem 0 .22rem;
  color:#8b1e24;
  font-size:1.45rem;
}
.header-search-panel p{
  margin:0 0 .75rem;
  color:#645850;
}
.header-search-close{
  position:absolute;
  right:10px;
  top:10px;
  border:0;
  width:36px;
  height:36px;
  border-radius:999px;
  background:#fff4ea;
  color:#8b1e24;
  font-size:1.3rem;
  cursor:pointer;
}
.header-search-field{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:.5rem;
  border:1px solid #e3cdb7;
  border-radius:14px;
  background:#fffdf9;
  padding:.45rem .5rem;
}
.header-search-field i{color:#8b1e24;padding-left:.2rem;}
.header-search-field input{
  border:0;
  background:transparent;
  min-height:44px;
  font-size:1rem;
}
.header-search-field input:focus{outline:none;}
.header-search-field button{
  min-height:40px;
  border-radius:999px;
  border:0;
  background:#8b1e24;
  color:#fff;
  font-weight:700;
  padding:.45rem .9rem;
  cursor:pointer;
}
.header-search-field button:hover{background:#151515;}

@media (max-width: 900px){
  .main-header .nav-contact-trigger{font-size:.98rem;}
  #story .story-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 680px){
  #story .story-grid{grid-template-columns:1fr;}
  #accueil h1{font-size:clamp(2.1rem,9.2vw,3.1rem);}
  .header-search-panel{padding:.9rem;}
  .header-search-field{grid-template-columns:1fr;gap:.4rem;}
  .header-search-field i{display:none;}
  .header-search-field button{width:100%;}
}

.engagements-mega-menu .engagements-mega-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.8rem;
}
.engagements-mega-menu i,
.engagement-card i{
  color:#9f1d24;
  font-size:22px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-bottom:14px;
}
.engagement-card{
  display:grid;
  gap:.3rem;
  background:#fff;
  border:1px solid #ead8c4;
  border-radius:14px;
  padding:.85rem;
  text-decoration:none;
  color:#332c27;
  box-shadow:0 8px 18px rgba(31,31,31,.08);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.engagement-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 24px rgba(31,31,31,.12);
  border-color:#d8b99e;
}
.engagement-card h3{
  margin:0;
  font-family:"Inter",sans-serif;
  font-size:1rem;
  color:#8b1e24;
}
.engagement-card p{
  margin:0;
  color:#5e534c;
  font-size:.9rem;
  line-height:1.45;
}
.engagement-icon{font-size:1.15rem;}

.engagements-page{
  max-width:980px;
}
.engagements-hero{
  margin-bottom:1rem;
  border:1px solid #ead8c4;
  border-radius:18px;
  padding:1.25rem;
  background:linear-gradient(120deg,rgba(255,248,240,.95),rgba(255,255,255,.95)),url("images/recipes/harira-marocaine.jpg") center/cover no-repeat;
}
.engagements-hero h1{
  margin:.1rem 0 .45rem;
  color:#8b1e24;
  font-size:clamp(2rem,4vw,3rem);
}
.engagements-hero p{
  margin:0;
  color:#4f433b;
  max-width:66ch;
}
.engagements-block{
  background:#fff;
  border:1px solid #ead8c4;
  border-radius:16px;
  padding:1.05rem;
  margin:.9rem 0;
  box-shadow:0 10px 22px rgba(31,31,31,.06);
}
.engagements-block h2{
  margin:.05rem 0 .6rem;
  color:#8b1e24;
}
.engagements-block p{
  margin:.55rem 0;
  color:#4f443d;
  line-height:1.7;
}
.engagements-block ul{
  margin:.5rem 0 .3rem;
  padding-left:1.1rem;
  color:#4f443d;
  line-height:1.7;
}
.engagements-cta{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
  margin-top:1rem;
}
.engagements-kicker{
  margin:0 0 .35rem;
  font-size:.82rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#8b1e24;
  font-weight:700;
}
.engagements-light-page{
  max-width:1100px;
}
.engagements-light-hero{
  margin-bottom:.95rem;
  background:
    linear-gradient(125deg,rgba(255,249,242,.94),rgba(255,255,255,.9)),
    radial-gradient(circle at 84% 24%,rgba(159,29,36,.16),transparent 56%),
    url("images/recipes/poulet-roti-epices-orientales.jpg") center/cover no-repeat;
}
.engagements-mini-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
}
.engagement-mini-item{
  border:1px solid #ead8c4;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 18px rgba(31,31,31,.06);
  padding:.85rem .9rem;
  display:flex;
  align-items:flex-start;
  gap:.7rem;
}
.engagement-mini-icon{
  width:40px;
  height:40px;
  flex:0 0 40px;
  border-radius:11px;
  background:rgba(159,29,36,.08);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#9f1d24;
  font-size:1.05rem;
}
.engagement-mini-item h2{
  margin:.1rem 0 .32rem;
  color:#8b1e24;
  font-family:"Inter",sans-serif;
  font-size:1.04rem;
}
.engagement-mini-item p{
  margin:0;
  color:#554941;
  line-height:1.55;
  font-size:.93rem;
}
.engagement-detail-page{
  max-width:1020px;
}
.engagement-detail-hero{
  margin-bottom:1rem;
}
.engagement-hero-livraison{
  background:
    linear-gradient(125deg,rgba(255,248,241,.93),rgba(255,255,255,.9)),
    radial-gradient(circle at 82% 20%,rgba(139,30,36,.22),transparent 55%),
    url("images/recipes/marinade-grillade.jpg") center/cover no-repeat;
}
.engagement-hero-prix{
  background:
    linear-gradient(120deg,rgba(255,249,243,.94),rgba(255,255,255,.9)),
    radial-gradient(circle at 16% 18%,rgba(198,90,40,.2),transparent 54%),
    url("images/recipes/riz-epices-douces.jpg") center/cover no-repeat;
}
.engagement-hero-tracabilite{
  background:
    linear-gradient(120deg,rgba(254,249,244,.93),rgba(255,255,255,.9)),
    radial-gradient(circle at 88% 22%,rgba(139,30,36,.2),transparent 56%),
    url("images/recipes/tajine-legumes-pois-chiches.jpg") center/cover no-repeat;
}
.engagements-light-cta{
  margin-top:1.15rem;
}
@media (max-width: 900px){
  .engagements-mega-menu .engagements-mega-grid{grid-template-columns:1fr;}
  .engagements-mini-grid{grid-template-columns:1fr;}
}

/* ============================================
   FOODCASH Responsive Stabilization (No Redesign)
   LOT 1: Header mobile reliability
   LOT 2: Contact page isolation from legacy modal rules
   LOT 3: Image ratio consistency mobile/tablet
============================================ */

/* LOT 1 - Single desktop behavior */
@media (min-width: 901px){
  .main-header .container{
    display:grid !important;
    grid-template-columns:auto 1fr minmax(220px,360px) auto !important;
    align-items:center !important;
  }
  .mobile-menu,
  .mobile-menu-overlay{
    display:none !important;
    pointer-events:none !important;
  }
  .user-menu .user-dropdown{
    display:block !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  .user-menu.open .user-dropdown,
  .user-menu:hover .user-dropdown,
  .user-dropdown.show{
    visibility:visible !important;
    pointer-events:auto !important;
  }
}

/* LOT 1 - Single mobile behavior */
@media (max-width: 900px){
  .main-header .container{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:8px !important;
    min-height:78px !important;
  }

  .mobile-menu{
    position:fixed !important;
    top:0 !important;
    right:-100% !important;
    width:min(86vw,360px) !important;
    height:100dvh !important;
    z-index:1400 !important;
    transition:right .25s ease !important;
    pointer-events:none !important;
  }
  .mobile-menu.is-open{
    right:0 !important;
    pointer-events:auto !important;
  }

  .mobile-menu-overlay{
    position:fixed !important;
    inset:0 !important;
    z-index:1300 !important;
    opacity:0 !important;
    pointer-events:none !important;
    transition:opacity .2s ease !important;
  }
  .mobile-menu-overlay.is-open{
    opacity:1 !important;
    pointer-events:auto !important;
  }

  .user-menu{
    position:relative !important;
  }
  .user-menu .user-dropdown,
  #user-dropdown{
    display:block !important;
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
    transform:translateY(6px) !important;
    transition:opacity .18s ease, transform .18s ease, visibility 0s linear .18s !important;
    z-index:1600 !important;
  }
  .user-menu.open .user-dropdown,
  .user-dropdown.show,
  .user-menu:hover .user-dropdown{
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    transform:translateY(0) !important;
    transition:opacity .18s ease, transform .18s ease !important;
  }

  .lang-menu{
    position:relative !important;
  }
  .lang-menu .lang-dropdown{
    z-index:1650 !important;
  }
}

/* LOT 2 - Contact page isolation from legacy #contact-form-modal rules */
.contact-premium-page #contact-form-modal{
  display:grid !important;
  gap:.9rem !important;
  width:100% !important;
  max-width:none !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.contact-premium-page #contact-form-modal .form-group{
  margin:0 !important;
}
.contact-premium-page #contact-form-modal textarea{
  min-height:170px !important;
  resize:vertical !important;
}

/* LOT 3 - Image ratios consistency without desktop redesign */
@media (min-width: 1200px){
  .recipe-single-cover{
    object-fit:cover;
  }
  .product-single-image{
    object-fit:contain;
  }
}
@media (min-width: 768px) and (max-width: 1199px){
  .recipe-single-cover{
    width:100%;
    max-height:380px;
    object-fit:cover;
  }
  .recipe-related-media img{
    width:100%;
    height:210px;
    object-fit:cover;
  }
  .product-single-image{
    width:100%;
    min-height:320px;
    max-height:380px;
    object-fit:contain;
  }
}
@media (max-width: 767px){
  .recipe-single-cover{
    width:100%;
    height:240px;
    max-height:none;
    object-fit:cover;
  }
  .recipe-related-media img{
    width:100%;
    height:190px;
    object-fit:cover;
  }
  .product-single-image{
    width:100%;
    min-height:260px;
    height:260px;
    max-height:none;
    object-fit:contain;
  }
  .product-image{
    width:100%;
    height:100%;
    object-fit:contain;
  }
}




/* Account UX clarity: individual vs professional status */

.account-modal-content,
.account-modal-content *,
.edit-account-modal-content,
.edit-account-modal-content * {
  box-sizing: border-box;
}
.account-modal-content,
.edit-account-modal-content {
  width: min(620px, calc(100vw - 2rem));
}

.account-modal-content,
.edit-account-modal-content {
  gap: .8rem;
}
.account-status-card {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: .45rem .8rem;
  padding: .95rem;
  border: 1px solid #ead8c4;
  border-radius: 16px;
  background: #fff;
}
.account-status-label {
  grid-column: 1 / -1;
  color: #8f7a67;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
#account-type-label {
  font-size: 1.08rem;
  color: #1f1f1f;
}
.account-type-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: .35rem .75rem;
  border-radius: 999px;
  font-weight: 800;
  font-size: .86rem;
}
.account-type-badge-individual {
  color: #1d4ed8;
  background: #dbeafe;
  border: 1px solid #bfdbfe;
}
.account-type-badge-pro {
  color: #047857;
  background: #d1fae5;
  border: 1px solid #a7f3d0;
}
.account-info-note,
.account-business-upgrade,
.account-siret-info,
.password-change-section {
  border: 1px solid #ead8c4;
  border-radius: 16px;
  background: #fff;
  padding: .95rem;
}
.account-info-note strong,
.account-business-upgrade h3,
.account-siret-info strong,
.password-change-section h3 {
  color: var(--fc-primary);
}
.account-info-note p,
.account-business-upgrade p,
.account-field-help {
  margin: .35rem 0 0;
  color: #5f5248;
  line-height: 1.5;
}
.account-info-note ul,
.account-siret-info ul {
  margin: .55rem 0 0;
  padding-left: 1.15rem;
  color: #374151;
  line-height: 1.55;
}
.account-info-note-pro {
  background: linear-gradient(180deg,#ecfdf5 0%,#fff 100%);
  border-color: #a7f3d0;
}
.account-info-note-individual {
  background: linear-gradient(180deg,#eff6ff 0%,#fff 100%);
  border-color: #bfdbfe;
}
.account-business-upgrade {
  display: grid;
  gap: .55rem;
  background: linear-gradient(180deg,#fffaf4 0%,#fff 100%);
}
.account-siret-info {
  background: #f8fafc;
  border-color: #dbe4ee;
}
.account-field-label {
  margin-top: .25rem;
  font-weight: 800;
  color: #1f1f1f;
}
.account-field-help {
  font-size: .9rem;
}

.product-image {
  background: linear-gradient(135deg, #fffaf2, #f2e1c7);
  opacity: .72;
  transition: opacity .28s ease;
}

.product-image.is-loaded {
  opacity: 1;
}

/* Catalogue epices: informations fiables et filtres avances */
#produits .filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: .75rem;
}

#produits .filters input,
#produits .filters select {
  width: 100%;
  min-height: 46px;
}

.product-facts {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: .65rem 0;
}

.product-facts span {
  padding: .28rem .55rem;
  border: 1px solid #ead8c9;
  border-radius: 999px;
  background: #fffaf5;
  color: #665348;
  font-size: .72rem;
}

.product-description {
  min-height: 3.8em;
}

.product-net-weight {
  margin: .45rem 0 0;
  color: #7c2d12;
  font-size: .88rem;
  font-weight: 800;
}

.product-badge-k {
  left: auto;
  right: .75rem;
  background: #201107;
  color: #facc15;
  border-color: rgba(250, 204, 21, .45);
}

.product-info-btn {
  width: 100%;
  min-height: 42px;
  border-radius: 999px;
  justify-content: center;
  font-weight: 800;
}

.product-single-section {
  margin: 1rem 0;
}

.product-single-section h2 {
  margin: 0 0 .55rem;
  color: #7f1d1d;
  font-size: 1rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.product-advice-section {
  padding: 1rem;
  border: 1px solid #ead8c9;
  border-radius: 16px;
  background: #fffaf5;
}

.product-availability-note {
  margin: .75rem 0;
  padding: .7rem .85rem;
  border-left: 4px solid #8b1e24;
  border-radius: 12px;
  background: #fff7ed;
  color: #5f3428;
  font-weight: 700;
}

.product-transparency-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
  margin: 1.1rem 0;
}

.product-transparency-list div {
  padding: .7rem .8rem;
  border: 1px solid #ead8c9;
  border-radius: 12px;
  background: #fffaf5;
}

.product-transparency-list dt {
  color: #7f1d1d;
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
}

.product-transparency-list dd {
  margin: .2rem 0 0;
  color: #4f4038;
}

.product-single-review-summary {
  color: #665348;
  font-weight: 600;
}

@media (max-width: 900px) {
  #produits .filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  #produits .filters,
  .product-transparency-list { grid-template-columns: 1fr; }
}
.account-siret-verification-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .55rem;
  align-items: center;
}
.account-siret-verification-row .btn {
  min-height: 46px;
  white-space: nowrap;
}
.account-siret-status {
  min-height: 1.25rem;
  margin: 0;
  font-size: .88rem;
  font-weight: 700;
}
.account-siret-status.is-neutral { color: #75675f; }
.account-siret-status.is-loading { color: #8a6d2f; }
.account-siret-status.is-success { color: #047857; }
.account-siret-status.is-error { color: #b42318; }
.account-company-details {
  display: grid;
  gap: .55rem;
  padding: .8rem;
  border: 1px solid #a7f3d0;
  border-radius: 14px;
  background: #f0fdf4;
}
.account-company-details input[readonly] {
  background: #fff;
  color: #374151;
}
.account-company-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
}
#edit-account-save-btn:disabled,
#edit-verify-siret-btn:disabled {
  cursor: not-allowed;
  opacity: .58;
}
.account-main-action {
  display: flex;
  width: 100%;
  max-width: 100%;
  justify-content: center;
  box-sizing: border-box;
}
.edit-account-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: .55rem;
}
.btn-danger,
.delete-account-btn.btn-danger {
  background: #fff1f2;
  color: #9f1239;
  border: 1px solid #fecdd3;
  font-weight: 800;
}
.btn-danger:hover,
.delete-account-btn.btn-danger:hover {
  background: #ffe4e6;
}
@media (min-width: 720px) {
  .edit-account-actions {
    grid-template-columns: 1fr auto;
    align-items: center;
  }
}

@media (max-width: 520px) {
  .account-status-card {
    grid-template-columns: 1fr;
  }
  .account-type-badge {
    justify-self: start;
  }
  .account-siret-verification-row,
  .account-company-grid {
    grid-template-columns: 1fr;
  }
  .account-siret-verification-row .btn {
    width: 100%;
  }
}

@media (max-width: 520px) {
  .account-modal-content,
  .edit-account-modal-content {
    width: calc(100vw - 2rem);
    max-width: calc(100vw - 2rem);
  }
}

/* FOODCASH MOBILE CRITICAL PATCH - 2026-06-03
   Scope: visual/responsive hardening only. No business logic changes. */
@media (max-width: 900px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .main-header {
    width: 100%;
    overflow: visible !important;
  }

  .main-header .container {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-left: clamp(10px, 3vw, 18px) !important;
    padding-right: clamp(10px, 3vw, 18px) !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 8px !important;
    overflow: visible !important;
  }

  .main-header .main-nav,
  .main-header #auth-buttons {
    display: none !important;
  }

  .main-header .logo {
    flex: 0 1 auto !important;
    min-width: 0 !important;
  }

  .main-header .logo img {
    width: clamp(88px, 25vw, 118px) !important;
    height: auto !important;
    max-height: 58px !important;
    object-fit: contain !important;
  }

  .header-actions {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(4px, 1.5vw, 8px) !important;
    overflow: visible !important;
  }

  .header-actions .icon-btn,
  .header-actions .mobile-menu-toggle,
  .mobile-menu-toggle {
    width: clamp(36px, 10vw, 42px) !important;
    height: clamp(36px, 10vw, 42px) !important;
    min-width: clamp(36px, 10vw, 42px) !important;
    min-height: clamp(36px, 10vw, 42px) !important;
    padding: 0 !important;
  }

  .lang-menu {
    width: clamp(36px, 10vw, 42px) !important;
    min-width: clamp(36px, 10vw, 42px) !important;
  }

  .lang-menu #lang-toggle {
    width: 100% !important;
    height: 100% !important;
  }

  .cart-count {
    min-width: 16px;
    height: 16px;
    font-size: 10px;
    line-height: 16px;
  }

  .container,
  .section,
  main,
  .products-page,
  .recipes-page,
  .contact-premium-page,
  .product-single-page,
  .recipe-single-page {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .filters,
  #produits .filters,
  .recipes-filters,
  .recipes-actions,
  .recipes-toolbar,
  .recipes-shell,
  .products-grid,
  .product-grid,
  #products-grid,
  #recipes-grid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .filters,
  #produits .filters,
  .recipes-filters {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .filters input,
  .filters select,
  .recipes-filters input,
  .recipes-filters select,
  .recipes-toolbar input,
  .recipes-toolbar select {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .recipes-actions,
  .hero-cta.recipes-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .recipes-actions .btn,
  .hero-cta.recipes-actions .btn {
    width: 100% !important;
    max-width: 100% !important;
  }

  .product-card,
  #produits .product-card,
  .recipe-card,
  .season-card,
  .story-card {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .product-card img,
  #produits .product-card img,
  .recipe-card img,
  .season-visual,
  .recipe-related-media img {
    width: 100% !important;
    max-width: 100% !important;
    object-fit: cover !important;
  }

  .product-title,
  .product-description,
  .product-single-title,
  .product-single-copy,
  .product-single-uses,
  .recipe-single-title,
  .recipe-single-subtitle,
  .recipe-breadcrumb,
  .section-title,
  .section-sub {
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  .product-single-card,
  .product-single-layout,
  .product-single-info,
  .product-single-actions,
  .product-detail-layout,
  .product-detail-actions {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .product-single-layout,
  .product-detail-layout {
    grid-template-columns: 1fr !important;
  }

  .product-single-title {
    font-size: clamp(1.55rem, 7.2vw, 2.15rem) !important;
    line-height: 1.08 !important;
  }

  .product-single-image,
  .product-detail-layout img {
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: 360px !important;
    object-fit: contain !important;
  }

  .product-single-actions .btn,
  .product-detail-actions .btn,
  .product-single-actions select,
  .product-detail-actions select,
  .product-single-actions input,
  .product-detail-actions input {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .qty-selector,
  .quantity-selector,
  .qty-stepper {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .recipe-single-main-card,
  .recipe-single-shop-card,
  .recipe-single-hero,
  .recipe-single-body,
  .recipe-single-section,
  .recipe-single-kpis,
  .recipe-spices-used-grid,
  .recipe-spice-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .recipe-single-hero,
  .recipe-single-body,
  .recipe-spices-used-grid {
    grid-template-columns: 1fr !important;
  }

  .recipe-single-title {
    font-size: clamp(1.55rem, 7.4vw, 2.2rem) !important;
    line-height: 1.08 !important;
  }

  .recipe-single-cover {
    width: 100% !important;
    max-height: 330px !important;
    object-fit: cover !important;
  }

  .recipe-single-kpis {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .recipe-single-kpi {
    width: 100% !important;
    max-width: 100% !important;
    justify-content: flex-start !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    border-radius: 14px !important;
  }

  .recipe-spice-card {
    grid-template-columns: 72px 1fr !important;
  }

  .recipe-spice-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .recipe-spice-actions .btn {
    width: 100% !important;
  }

  .contact-premium-page .contact-hero,
  .contact-premium-page .contact-main-grid,
  .footer-grid,
  .story-grid,
  .seasons-grid {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .contact-premium-page .contact-hero-copy,
  .contact-premium-page .contact-info-panel,
  .contact-premium-page .contact-form-panel {
    min-width: 0 !important;
    max-width: 100% !important;
  }
}

@media (max-width: 430px) {
  .main-header .logo img {
    width: clamp(76px, 23vw, 96px) !important;
    max-height: 48px !important;
  }

  .header-actions {
    gap: 4px !important;
  }

  .header-actions .icon-btn,
  .header-actions .mobile-menu-toggle,
  .mobile-menu-toggle,
  .lang-menu {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
  }

  .icon-btn i,
  .mobile-menu-toggle i {
    font-size: 0.88rem !important;
  }

  .product-single-card,
  .recipe-single-main-card,
  .recipe-single-shop-card,
  .recipes-shell,
  .contact-premium-page .contact-hero-copy,
  .contact-premium-page .contact-info-panel,
  .contact-premium-page .contact-form-panel {
    padding: 0.85rem !important;
  }
}

/* FOODCASH MOBILE HEADER MICRO-FIX - keeps all actions inside 360-430px. */
@media (max-width: 900px) {
  .main-header .header-search,
  .header-search {
    display: none !important;
  }
}

@media (max-width: 430px) {
  .main-header .container {
    padding-left: 6px !important;
    padding-right: 6px !important;
    gap: 4px !important;
  }

  .main-header .logo img {
    width: clamp(68px, 21vw, 84px) !important;
    max-height: 44px !important;
  }

  .header-actions {
    gap: 2px !important;
    max-width: calc(100vw - 88px) !important;
  }

  .header-actions .icon-btn,
  .header-actions .mobile-menu-toggle,
  .mobile-menu-toggle,
  .lang-menu,
  .lang-menu #lang-toggle {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
  }

  .cart-count {
    right: -2px !important;
    top: -4px !important;
  }
}

/* FOODCASH MOBILE HEADER WIDTH FIX - prevent hidden burger/cart clipping. */
@media (max-width: 430px) {
  .main-header .header-actions,
  .header-actions {
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    justify-content: flex-end !important;
  }
}

/* FOODCASH MOBILE HEADER RIGHT EDGE FIX - reveal last action on catalogue-style headers. */
@media (max-width: 430px) {
  .main-header .header-actions,
  .header-actions {
    margin-right: 38px !important;
  }
}


/* FOODCASH ADMIN IMAGE MANAGER */
.admin-spice-thumb {
  display: block;
  width: 64px;
  height: 64px;
  object-fit: contain;
  border: 1px solid #ead8d1;
  border-radius: 10px;
  background: #fffaf7;
}

/* Professional signup: verified SIRENE company details. */
.signup-siret-field {
  min-width: 0;
}

.signup-siret-field #signup-siret {
  width: 100%;
}

.signup-verify-siret {
  width: 100%;
  margin-top: 0.55rem;
  min-height: 44px;
}

.signup-verify-siret:disabled,
#signup-submit-btn:disabled {
  cursor: not-allowed;
  opacity: 0.58;
}

.signup-siret-help {
  margin: 0.5rem 0 0;
  color: #665348;
  font-size: 0.78rem;
  line-height: 1.35;
}

.signup-siret-status {
  min-height: 1.2em;
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
  line-height: 1.25;
}

.signup-siret-status.is-loading { color: #6f5a36; }
.signup-siret-status.is-success { color: #237447; }
.signup-siret-status.is-error { color: #9f1d2b; }
.signup-siret-status.is-neutral { color: #75675f; }

.signup-company-details input[readonly] {
  background: #fbf7f3;
  color: #4f4038;
}

.signup-company-help {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0.65rem 0.8rem;
  border: 1px solid #ead8c9;
  border-radius: 12px;
  background: #fffaf5;
  color: #665348;
  font-size: 0.82rem;
  line-height: 1.35;
}

@media (max-width: 640px) {
  .signup-company-details.signup-row-2 {
    grid-template-columns: 1fr;
  }
}

.admin-image-manager-overlay {
  position: fixed;
  inset: 0;
  z-index: 31000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(29, 19, 16, 0.58);
}

.admin-image-manager-card {
  position: relative;
  width: min(520px, 96vw);
  max-height: 92vh;
  overflow-y: auto;
  padding: 24px;
  border: 1px solid #ead8d1;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(42, 23, 18, 0.24);
}

.admin-image-manager-card h3 {
  margin: 0 42px 4px 0;
}

.admin-image-manager-name {
  margin: 0 0 16px;
  color: #7f1d1d;
  font-weight: 700;
}

.admin-image-manager-close {
  position: absolute;
  top: 12px;
  right: 14px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: #f7ece8;
  color: #7f1d1d;
  font-size: 25px;
  cursor: pointer;
}

.admin-image-manager-preview {
  display: grid;
  min-height: 260px;
  place-items: center;
  overflow: hidden;
  border: 1px solid #ead8d1;
  border-radius: 14px;
  background: #fffaf7;
}

.admin-image-manager-preview img {
  display: block;
  width: 100%;
  height: 300px;
  object-fit: contain;
}

.admin-image-manager-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.admin-image-manager-actions .btn-danger {
  border-color: #b42318;
  background: #b42318;
  color: #fff;
}

@media (max-width: 600px) {
  .admin-image-manager-card {
    padding: 18px;
  }

  .admin-image-manager-preview,
  .admin-image-manager-preview img {
    min-height: 210px;
    height: 230px;
  }

  .admin-image-manager-actions {
    display: grid;
  }
}

/* FOODCASH RTL MINIMAL ACCOUNT CONTACT CART */
html[dir="rtl"] #account-modal,
html[dir="rtl"] #cart-modal,
html[dir="rtl"] #payment-modal,
html[dir="rtl"] .contact-premium-page {
  direction: rtl;
  text-align: right;
}

html[dir="rtl"] #account-modal .modal-content,
html[dir="rtl"] #cart-modal .modal-content,
html[dir="rtl"] #payment-modal .modal-content,
html[dir="rtl"] .contact-premium-page .contact-hero-copy,
html[dir="rtl"] .contact-premium-page .contact-info-panel,
html[dir="rtl"] .contact-premium-page .contact-form-panel {
  direction: rtl;
  text-align: right;
}

html[dir="rtl"] #account-modal input,
html[dir="rtl"] #account-modal textarea,
html[dir="rtl"] #account-modal select,
html[dir="rtl"] #cart-modal input,
html[dir="rtl"] #cart-modal textarea,
html[dir="rtl"] #cart-modal select,
html[dir="rtl"] .contact-premium-page input,
html[dir="rtl"] .contact-premium-page textarea,
html[dir="rtl"] .contact-premium-page select {
  direction: rtl;
  text-align: right;
}

html[dir="rtl"] #cart-items,
html[dir="rtl"] .contact-premium-page ul,
html[dir="rtl"] .account-siret-info ul,
html[dir="rtl"] .account-professional-benefits ul {
  padding-right: 1.2rem;
  padding-left: 0;
}

html[dir="rtl"] .contact-premium-page .contact-reassurance li,
html[dir="rtl"] .contact-premium-page .contact-info-card,
html[dir="rtl"] .account-status-card,
html[dir="rtl"] .account-professional-card,
html[dir="rtl"] .account-siret-info {
  text-align: right;
}

html[dir="rtl"] .contact-premium-page .contact-reassurance li i {
  margin-left: .45rem;
  margin-right: 0;
}

html[dir="rtl"] #account-modal .close,
html[dir="rtl"] #cart-modal .close,
html[dir="rtl"] #payment-modal .close {
  left: 1rem;
  right: auto;
}

@media (max-width: 768px) {
  html[dir="rtl"] #account-modal .modal-content,
  html[dir="rtl"] #cart-modal .modal-content,
  html[dir="rtl"] #payment-modal .modal-content {
    max-width: calc(100vw - 24px);
    overflow-x: hidden;
  }
}
