@import url('https://fonts.googleapis.com/css2?family=Allura&family=Montserrat:wght@400;500;600;700&display=swap');

:root{
  --forest:#0F4D2E;
  --forest-2:#0A3A22;
  --forest-light:#72A843;
  --cream:#FFF9EF;
  --paper:#FFFFFF;
  --orange:#FF7A00;
  --orange-dark:#E56E00;
  --ink:#1B1F19;
  --muted: rgba(27,31,25,0.62);
  --line: rgba(27,31,25,0.12);
  --radius: 14px;
  --shadow: 0 18px 40px rgba(22,59,34,0.12);
  --nav-h: 72px;
  --ease: cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{ scroll-behavior:smooth; }
body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Montserrat',system-ui,sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,.display{ font-family:'Montserrat',sans-serif; letter-spacing:-0.03em; font-weight:700; line-height:1.08; }
em{ font-style:italic; color:var(--orange); }
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; height:auto; }
button{ font:inherit; }
.wrap{ max-width:1200px; margin:0 auto; padding:0 24px; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }

/* reveal */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* buttons */
.btn{
  font-family:'Montserrat',sans-serif; font-weight:700; font-size:15px;
  cursor:pointer; border:none; border-radius:999px;
  padding:14px 26px; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  transition:transform .15s var(--ease), background .2s ease, box-shadow .2s ease;
}
.btn:active{ transform:scale(0.97); }
.btn-orange{ background:var(--orange); color:#fff; box-shadow:0 10px 24px rgba(242,121,12,.28); }
.btn-orange:hover{ background:var(--orange-dark); }
.btn-dark{ background:var(--forest); color:#fff; }
.btn-dark:hover{ background:var(--forest-2); }
.btn-outline{ background:transparent; border:1.5px solid currentColor; color:var(--forest); }
.btn-outline:hover{ background:var(--forest); color:#fff; }
.btn-ghost{ background:rgba(255,255,255,.14); color:#fff; backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.28); }
.btn-ghost:hover{ background:rgba(255,255,255,.24); }
.btn-sm{ padding:10px 16px; font-size:13.5px; }
button:focus-visible, a:focus-visible{ outline:2px solid var(--orange); outline-offset:3px; }

/* topbar + nav */
.topbar{
  background:var(--forest); color:rgba(255,255,255,.88);
  text-align:center; font-size:12.5px; font-weight:600;
  padding:9px 16px; letter-spacing:.01em;
}
.topbar strong{ color:#fff; font-weight:700; }
.nav{
  position:sticky; top:0; z-index:100;
  background:rgba(251,248,240,.9); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1200px; margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; gap:20px; min-height:var(--nav-h);
}
.logo{ display:flex; align-items:center; gap:10px; margin-right:auto; }
.logo .mark{
  width:38px; height:38px; border-radius:11px; background:var(--forest);
  display:grid; place-items:center; color:#fff; flex-shrink:0;
}
.logo .name{ font-family:'Montserrat',sans-serif; font-weight:800; font-size:20px; color:var(--forest); line-height:1; }
.logo .tag{ font-size:11px; color:var(--muted); margin-top:2px; }
.nav-links{ display:flex; gap:22px; font-size:14.5px; font-weight:600; }
.nav-links a{ color:var(--ink); opacity:.72; position:relative; }
.nav-links a:hover, .nav-links a.active{ opacity:1; }
.nav-links a.active::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px;
  background:var(--orange); border-radius:2px;
}
.nav-actions{ display:flex; align-items:center; gap:12px; }
.lang-switch{
  display:inline-flex; border:1.5px solid var(--line); border-radius:999px;
  overflow:hidden; background:var(--paper);
}
.lang-btn{
  border:none; background:transparent; padding:7px 10px; font-size:12px;
  font-weight:700; cursor:pointer; color:var(--muted); font-family:inherit;
}
.lang-btn.active{ background:var(--forest); color:#fff; }
.lang-btn:hover:not(.active){ color:var(--forest); }
.cart-btn, .menu-btn{
  position:relative; background:var(--forest); color:#fff; width:42px; height:42px;
  border-radius:12px; border:none; display:grid; place-items:center; cursor:pointer;
}
.cart-count{
  position:absolute; top:-6px; right:-6px; background:var(--orange); color:#fff;
  font-size:10px; font-weight:700; min-width:18px; height:18px; padding:0 5px;
  border-radius:999px; display:grid; place-items:center;
}
.menu-btn{ display:none; background:transparent; color:var(--forest); border:1.5px solid var(--line); }
@media (max-width:900px){
  .nav-links{ display:none; }
  .menu-btn{ display:grid; }
  .nav-actions .btn{ display:none; }
}
.mobile-nav{
  display:none; position:fixed; inset:0; z-index:120; background:rgba(22,59,34,.45);
}
.mobile-nav.open{ display:block; }
.mobile-panel{
  position:absolute; top:0; right:0; width:min(340px,88vw); height:100%;
  background:var(--cream); padding:28px 24px; display:flex; flex-direction:column; gap:8px;
  transform:translateX(100%); transition:transform .35s var(--ease);
}
.mobile-nav.open .mobile-panel{ transform:none; }
.mobile-panel a{
  font-family:'Montserrat',sans-serif; font-size:22px; font-weight:700; padding:12px 0;
  border-bottom:1px solid var(--line);
}
.mobile-close{ align-self:flex-end; background:none; border:none; font-size:28px; cursor:pointer; color:var(--forest); }

/* hero */
.hero{
  position:relative; min-height:min(92vh,820px);
  display:grid; align-items:end; color:#fff; overflow:hidden;
}
.hero-media{
  position:absolute; inset:0; z-index:0;
}
.hero-media img{
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.04); animation:heroZoom 18s ease-in-out infinite alternate;
}
@keyframes heroZoom{ to{ transform:scale(1.12); } }
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(22,59,34,.28) 0%, rgba(22,59,34,.55) 45%, rgba(22,59,34,.88) 100%),
    radial-gradient(ellipse at 20% 80%, rgba(242,121,12,.25), transparent 50%);
}
.hero-content{
  position:relative; z-index:1; max-width:1200px; width:100%; margin:0 auto;
  padding:72px 24px 64px;
}
.hero-kicker{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:rgba(255,255,255,.9); margin-bottom:18px;
}
.hero-kicker i{
  width:8px; height:8px; border-radius:50%; background:var(--orange);
  box-shadow:0 0 0 4px rgba(242,121,12,.25); animation:pulse 1.8s ease infinite;
}
@keyframes pulse{ 50%{ box-shadow:0 0 0 8px rgba(242,121,12,0); } }
.hero h1{
  font-size:clamp(42px, 7.2vw, 84px); max-width:12ch; color:#fff;
  text-wrap:balance;
}
.hero h1 span{ color:var(--orange); }
.hero .lede{
  margin-top:18px; max-width:42ch; font-size:clamp(16px,2vw,19px);
  color:rgba(255,255,255,.86); font-weight:500;
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.hero-meta{
  display:flex; flex-wrap:wrap; gap:18px 28px; margin-top:36px;
  font-size:13.5px; font-weight:600; color:rgba(255,255,255,.85);
}
.hero-meta b{ color:#fff; }

/* trust */
.trust{
  background:var(--paper); border-bottom:1px solid var(--line);
  padding:22px 24px;
}
.trust-inner{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
}
@media (max-width:800px){ .trust-inner{ grid-template-columns:1fr 1fr; } }
.trust-item{ display:flex; align-items:center; gap:12px; font-size:14px; font-weight:600; }
.trust-item .ic{
  width:40px; height:40px; border-radius:12px; background:#EAF3E4; color:var(--forest);
  display:grid; place-items:center; flex-shrink:0;
}

/* sections */
.section{ padding:80px 24px; }
.section-head{ max-width:1200px; margin:0 auto 28px; display:flex; align-items:end; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.section-head .eyebrow{ color:var(--orange); font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.section-head h2{ font-size:clamp(28px,4vw,40px); margin-top:8px; }
.section-head p{ color:var(--muted); max-width:42ch; }

/* categories */
.cats-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4,1fr); gap:14px;
}
@media (max-width:900px){ .cats-grid{ grid-template-columns:1fr 1fr; } }
.cat-tile{
  position:relative; aspect-ratio:4/5; border-radius:18px; overflow:hidden;
  isolation:isolate;
}
.cat-tile img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.cat-tile:hover img{ transform:scale(1.08); }
.cat-tile::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 35%, rgba(22,59,34,.85) 100%);
}
.cat-tile .lbl{
  position:absolute; left:16px; right:16px; bottom:16px; z-index:1;
  color:#fff; font-family:'Montserrat',sans-serif; font-size:22px; font-weight:700;
}
.cat-tile .sub{ display:block; font-family:'Montserrat',sans-serif; font-size:13px; font-weight:500; opacity:.8; margin-top:2px; }

/* products */
.prod-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
}
@media (max-width:980px){ .prod-grid{ grid-template-columns:repeat(2,1fr); } }
.product-card{
  background:var(--paper); border:1px solid var(--line); border-radius:18px;
  padding:12px; position:relative; transition:transform .2s var(--ease), box-shadow .25s ease;
}
.product-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.product-photo{
  aspect-ratio:1; border-radius:14px; overflow:hidden; background:#EAF3E4; margin-bottom:12px;
}
.product-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.product-card:hover .product-photo img{ transform:scale(1.06); }
.product-name{ font-weight:700; font-size:15px; }
.product-unit{ font-size:12.5px; color:var(--muted); margin-top:2px; }
.product-row{ display:flex; align-items:center; justify-content:space-between; margin-top:12px; }
.product-price{ font-family:'Montserrat',sans-serif; font-weight:700; font-size:18px; }
.add-btn{
  width:36px; height:36px; border-radius:50%; background:var(--forest); color:#fff;
  border:none; font-size:20px; cursor:pointer; display:grid; place-items:center;
  transition:background .15s ease, transform .12s ease;
}
.add-btn:hover{ background:var(--orange); }
.add-btn:active{ transform:scale(.9); }
.pcard-badge{
  position:absolute; top:20px; left:20px; z-index:2;
  font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  padding:5px 10px; border-radius:999px;
}
.pcard-badge.promo{ background:var(--orange); color:#fff; }
.pcard-badge.new{ background:var(--forest); color:#fff; }
.pcard-badge.bio{ background:#DCE9C9; color:var(--forest); }

/* how — photo + petit texte */
.how-compact{ background:transparent; padding-top:12px; padding-bottom:36px; }
.how-compact-grid{
  max-width:1200px; margin:0 auto; padding:0 24px;
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
}
@media (max-width:800px){ .how-compact-grid{ grid-template-columns:1fr; gap:18px; } }
.how-step{ display:flex; flex-direction:column; gap:12px; }
.how-step-photo{
  position:relative; border-radius:16px; overflow:hidden;
  aspect-ratio:4/3; background:#EAF3E4;
}
.how-step-photo img{
  width:100%; height:100%;
  object-fit:contain; /* foto entière, sans couper */
  object-position:center;
  transition:transform .5s var(--ease);
}
/* Si vous préférez remplir le cadre (peut recadrer) : ajoutez la classe how-crop via Customizer */
.how-compact.how-crop .how-step-photo img{ object-fit:cover; }
.how-step:hover .how-step-photo img{ transform:scale(1.03); }
.how-step-photo .n{
  position:absolute; left:12px; bottom:12px;
  width:36px; height:36px; border-radius:10px;
  background:var(--orange); color:#fff;
  font-size:13px; font-weight:800;
  display:grid; place-items:center; line-height:1;
  box-shadow:0 8px 18px rgba(255,122,0,.35);
}
.how-step h3{ font-size:16px; color:var(--forest); line-height:1.25; margin:0; }
.how-step p{ font-size:13.5px; color:var(--muted); line-height:1.4; margin:0; max-width:32ch; }

/* markets */
.markets-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
}
@media (max-width:800px){ .markets-grid{ grid-template-columns:1fr; } }
.market-card{
  background:var(--paper); border:1px solid var(--line); border-radius:18px; overflow:hidden;
  transition:transform .2s var(--ease), box-shadow .25s ease;
}
.market-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.market-photo{ aspect-ratio:16/10; overflow:hidden; }
.market-photo img{ width:100%; height:100%; object-fit:cover; }
.market-body{ padding:18px 20px 22px; }
.market-body .loc{ display:flex; align-items:center; gap:10px; font-weight:700; font-size:16px; }
.market-body .badge{
  background:var(--forest); color:#fff; font-size:11px; font-weight:700;
  width:28px; height:28px; border-radius:50%; display:grid; place-items:center;
}
.market-body .addr{ font-size:13.5px; color:var(--muted); margin-top:6px; }
.market-body .days{ font-size:13.5px; margin-top:10px; font-weight:700; color:var(--forest); }

/* promo banner */
.promo-band{
  max-width:1200px; margin:0 auto; border-radius:24px; overflow:hidden;
  display:grid; grid-template-columns:1.1fr 1fr; min-height:340px; background:var(--forest);
}
@media (max-width:860px){ .promo-band{ grid-template-columns:1fr; } }
.promo-band .copy{ padding:48px 40px; color:#fff; display:flex; flex-direction:column; justify-content:center; }
.promo-band .copy .eyebrow{ color:var(--orange); }
.promo-band h3{ font-size:clamp(28px,4vw,40px); color:#fff; margin:10px 0 12px; }
.promo-band p{ color:rgba(255,255,255,.75); max-width:36ch; margin-bottom:22px; }
.promo-band .media{ position:relative; min-height:260px; }
.promo-band .media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* testi */
.testi{ background:var(--paper); }
.testi-inner{ max-width:760px; margin:0 auto; text-align:center; }
.testi-inner .stars{ color:var(--orange); letter-spacing:3px; font-size:18px; }
.testi-inner .quote{
  font-family:'Montserrat',sans-serif; font-size:clamp(22px,3.5vw,32px);
  margin:18px 0 14px; line-height:1.25; text-wrap:balance;
}
.testi-inner .who{ color:var(--muted); font-weight:600; font-size:14px; }

/* footer */
footer{ background:var(--forest); color:rgba(255,255,255,.7); }
.foot-main{
  max-width:1200px; margin:0 auto; padding:56px 24px;
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:32px;
}
@media (max-width:800px){ .foot-main{ grid-template-columns:1fr 1fr; } }
.foot-brand .name{ color:#fff; font-family:'Montserrat',sans-serif; font-weight:800; font-size:22px; }
.foot-brand p{ font-size:14px; margin-top:12px; max-width:260px; }
.foot-brand .motto{ color:var(--orange); font-style:italic; margin-top:10px; }
.foot-main h4{
  color:#fff; font-size:12px; text-transform:uppercase; letter-spacing:.08em;
  margin-bottom:14px; font-weight:700;
}
.foot-main ul{ list-style:none; display:flex; flex-direction:column; gap:10px; font-size:14px; }
.foot-main a:hover{ color:#fff; }
.foot-bottom{
  text-align:center; padding:16px; font-size:12px; border-top:1px solid rgba(255,255,255,.12);
}

/* cart drawer */
.cart-overlay{
  position:fixed; inset:0; background:rgba(22,59,34,.4); z-index:200;
  opacity:0; pointer-events:none; transition:opacity .25s ease;
}
.cart-overlay.open{ opacity:1; pointer-events:auto; }
.cart-drawer{
  position:fixed; top:0; right:0; height:100%; width:min(400px,92vw);
  background:var(--cream); z-index:210; transform:translateX(100%);
  transition:transform .35s var(--ease); display:flex; flex-direction:column;
  box-shadow:-20px 0 50px rgba(0,0,0,.15);
}
.cart-drawer.open{ transform:none; }
.cart-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 22px; border-bottom:1px solid var(--line);
}
.cart-head h3{ font-size:20px; }
.cart-close{ background:none; border:none; font-size:26px; cursor:pointer; color:var(--forest); }
.cart-items{ flex:1; overflow:auto; padding:16px 22px; display:flex; flex-direction:column; gap:12px; }
.cart-empty{ color:var(--muted); text-align:center; padding:40px 10px; }
.cart-line{
  display:grid; grid-template-columns:56px 1fr auto; gap:12px; align-items:center;
  background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:10px;
}
.cart-line img{ width:56px; height:56px; object-fit:cover; border-radius:10px; }
.cart-line .nm{ font-weight:700; font-size:14px; }
.cart-line .pr{ font-size:13px; color:var(--muted); }
.cart-line .rm{ background:none; border:none; color:var(--muted); cursor:pointer; font-size:18px; }
.cart-foot{ padding:18px 22px 24px; border-top:1px solid var(--line); }
.cart-total{ display:flex; justify-content:space-between; font-weight:700; margin-bottom:8px; }
.cart-min{ font-size:13px; color:var(--muted); margin-bottom:14px; }
.cart-min.ok{ color:var(--forest-light); font-weight:600; }
.cart-foot .btn{ width:100%; }

/* toast */
.toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--forest); color:#fff; padding:12px 18px; border-radius:999px;
  font-size:14px; font-weight:600; z-index:300; opacity:0; pointer-events:none;
  transition:opacity .25s ease, transform .25s var(--ease); white-space:nowrap;
  box-shadow:var(--shadow);
}
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* cookie bar */
.cookie-bar{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:250;
  max-width:640px; margin:0 auto;
  background:var(--paper); border:1px solid var(--line); border-radius:18px;
  padding:18px 20px; box-shadow:var(--shadow);
  display:none; gap:14px; align-items:center; flex-wrap:wrap;
}
.cookie-bar.show{ display:flex; }
.cookie-bar p{ flex:1; font-size:13.5px; color:var(--muted); min-width:200px; }
.cookie-bar p a{ color:var(--forest); text-decoration:underline; }
.cookie-actions{ display:flex; gap:8px; flex-wrap:wrap; }

/* boutique extras */
.shop-hero{ padding:40px 24px 8px; max-width:1200px; margin:0 auto; }
.shop-hero h1,
.shop-hero .woocommerce-products-header__title,
.woocommerce .woocommerce-products-header__title,
.woocommerce h1.page-title,
.woocommerce .entry-title,
.onregal-elementor-shop > .shop-hero h1,
.onregal-elementor-shop h1.elementor-heading-title{
  font-size:clamp(32px,5vw,48px);
  color:var(--forest) !important;
}
.shop-hero p{ color:var(--muted); margin-top:8px; }
.filter-bar{
  position:sticky; top:var(--nav-h); z-index:80;
  background:rgba(251,248,240,.94); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line); padding:12px 24px;
}
.filter-inner{ max-width:1200px; margin:0 auto; display:flex; gap:12px; align-items:center; overflow:auto; }
.cat-pill{
  flex:0 0 auto; font-size:13.5px; font-weight:600; padding:10px 16px;
  border-radius:999px; background:var(--paper); border:1.5px solid var(--line); cursor:pointer;
}
.cat-pill.active{ background:var(--forest); border-color:var(--forest); color:#fff; }
.minbar{
  background:var(--forest); color:#fff; padding:12px 24px;
  position:sticky; top:calc(var(--nav-h) + 54px); z-index:70;
}
.minbar-inner{ max-width:1200px; margin:0 auto; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.minbar .msg{ font-size:13.5px; font-weight:600; }
.minbar .track{ flex:1; min-width:120px; height:7px; background:rgba(255,255,255,.18); border-radius:999px; overflow:hidden; }
.minbar .fill{ height:100%; background:var(--orange); width:0; transition:width .3s var(--ease); }
.minbar .total{ font-family:'Montserrat',sans-serif; font-weight:700; }
.cat-section{ padding:48px 24px 8px; max-width:1200px; margin:0 auto; scroll-margin-top:200px; }
.cat-section-head{ display:flex; align-items:baseline; gap:10px; margin-bottom:18px; }
.cat-section-head h2{ font-size:26px; }
.cat-section-head span{ color:var(--muted); font-size:13.5px; }

/* about / contact shared */
.page-hero{
  max-width:1200px; margin:0 auto; padding:48px 24px 24px;
  display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center;
}
@media (max-width:860px){ .page-hero{ grid-template-columns:1fr; } }
.page-hero .eyebrow{ color:var(--orange); font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.page-hero h1{ font-size:clamp(34px,5vw,52px); margin-top:10px; }
.page-hero .lede{ font-size:18px; color:var(--forest-light); margin-top:12px; font-weight:500; }
.page-hero .body{ color:var(--muted); margin-top:14px; max-width:44ch; }
.page-photo{ border-radius:22px; overflow:hidden; aspect-ratio:5/4; }
.page-photo img{ width:100%; height:100%; object-fit:cover; }

/* Qui sommes-nous — composition 2 colonnes (éditable Elementor) */
.about-story{
  background:var(--cream);
  padding:40px 0 64px;
}
.about-story-inner{
  max-width:1200px;
  margin:0 auto;
  padding:0 24px;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:48px;
  align-items:start;
}
@media (max-width:900px){
  .about-story-inner{ grid-template-columns:1fr; gap:28px; }
}
.about-eyebrow{
  color:var(--orange);
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.about-story-title{
  font-size:clamp(28px,4vw,40px);
  color:var(--ink);
  margin:0 0 18px;
}
.about-block{ margin-bottom:22px; }
.about-block h2{
  font-size:clamp(22px,3vw,30px);
  color:var(--ink);
  margin:0 0 10px;
  letter-spacing:-0.02em;
}
.about-block p{
  margin:0;
  color:var(--muted);
  font-size:15.5px;
  line-height:1.65;
  max-width:42ch;
}
.about-story-body{
  color:var(--muted);
  font-size:15.5px;
  line-height:1.65;
  max-width:42ch;
}
.about-story-body p{ margin-bottom:1em; }
.about-story-cta{ margin-top:22px; }
.about-story-media{
  border-radius:8px;
  overflow:hidden;
  background:#EAF3E4;
  aspect-ratio:1;
  box-shadow:0 16px 40px rgba(22,59,34,.1);
}
.about-story-media img{
  width:100%; height:100%; object-fit:cover; display:block;
}
/* Elementor preview : plein largeur */
.elementor-widget-onregal_about .about-story,
.elementor-editor-active .about-story{
  padding-left:0; padding-right:0;
}
.elementor-widget-onregal_about > .elementor-widget-container{
  padding:0 !important;
}
/* Elementor : garder la grille OnRegal (pas de padding widget) */
.onregal-elementor-page .elementor-widget-onregal_about > .elementor-widget-container,
.onregal-elementor-page .elementor-widget-onregal_contact > .elementor-widget-container{
  padding:0 !important;
}
.onregal-elementor-page .elementor-top-section .elementor-container{
  max-width:100% !important;
}
.onregal-elementor-page .page-cta{ margin-top:1.5em; }

/* ——— Contact page (maquette) ——— */
.contact-page{
  background:var(--cream);
  padding:0 0 72px;
}
.contact-hero{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:48px;
  align-items:center;
  padding-top:48px;
  padding-bottom:40px;
}
@media (max-width:900px){
  .contact-hero{ grid-template-columns:1fr; gap:28px; }
}
.contact-eyebrow{
  color:var(--orange);
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.contact-title{
  margin-top:12px;
  font-size:clamp(36px,5vw,56px);
  color:var(--ink);
  letter-spacing:-0.03em;
}
.contact-lede{
  margin-top:16px;
  font-size:16.5px;
  line-height:1.65;
  color:var(--muted);
  max-width:38ch;
}
.contact-tagline{
  margin-top:18px;
  color:var(--orange);
  font-style:italic;
  font-weight:600;
  font-size:16px;
}
.contact-hero-media{
  border-radius:28px;
  overflow:hidden;
  aspect-ratio:5/4;
  background:linear-gradient(145deg,#c8e6a8 0%,#f5e6a3 100%);
  box-shadow:var(--shadow);
}
.contact-hero-media img{
  width:100%; height:100%; object-fit:cover;
}
.contact-hero-placeholder{ width:100%; height:100%; min-height:280px; }

.contact-cards{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
  padding-bottom:56px;
}
@media (max-width:1100px){
  .contact-cards{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:700px){
  .contact-cards{ grid-template-columns:1fr 1fr; }
}
@media (max-width:420px){
  .contact-cards{ grid-template-columns:1fr; }
}
.contact-card{
  background:#fff;
  border-radius:18px;
  padding:22px 16px 20px;
  text-align:center;
  box-shadow:0 10px 28px rgba(22,59,34,0.08);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  transition:transform .2s var(--ease), box-shadow .2s ease;
  color:inherit;
}
a.contact-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 32px rgba(22,59,34,0.14);
}
.contact-card-icon{
  color:var(--forest);
  margin-bottom:6px;
  display:flex;
}
.contact-card-icon svg[stroke] path[fill]{ fill:currentColor; }
.contact-card-title{
  font-size:15px;
  color:var(--ink);
}
.contact-card-line{
  font-size:13.5px;
  color:var(--muted);
  word-break:break-word;
}
.contact-card-sub{
  font-size:12px;
  color:rgba(27,31,25,0.45);
  margin-top:2px;
}

.contact-markets{
  padding:48px 0 8px;
}
.contact-markets-head{
  text-align:center;
  margin-bottom:32px;
}
.contact-markets-title{
  margin-top:10px;
  font-size:clamp(26px,3.5vw,40px);
  color:var(--ink);
  max-width:22ch;
  margin-left:auto;
  margin-right:auto;
}
.contact-markets-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
@media (max-width:860px){
  .contact-markets-grid{ grid-template-columns:1fr; max-width:420px; margin:0 auto; }
}
.market-card{
  background:#fff;
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 12px 30px rgba(22,59,34,0.09);
}
.market-card-media{
  aspect-ratio:16/10;
  background:linear-gradient(145deg,#c8e6a8 0%,#e8f5c8 55%,#f5e6a3 100%);
}
.market-card-media img{
  width:100%; height:100%; object-fit:cover;
}
.market-card-placeholder{
  width:100%; height:100%; min-height:140px;
  display:flex; align-items:center; justify-content:center;
  color:var(--forest);
  opacity:.7;
}
.market-card-body{ padding:18px 18px 20px; }
.market-card-title{
  display:flex; align-items:center; gap:10px;
  font-size:16px; color:var(--forest);
}
.market-card-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:50%;
  background:var(--forest); color:#fff;
  font-size:12px; font-weight:700; flex-shrink:0;
}
.market-card-place{
  margin-top:6px; font-size:13.5px; color:var(--muted);
}
.market-card-hours{
  margin-top:10px; font-size:14px; font-weight:700; color:var(--ink);
}

.story{ background:var(--paper); padding:72px 24px; }
.story-inner{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1.2fr .9fr; gap:32px; align-items:start;
}
@media (max-width:900px){ .story-inner{ grid-template-columns:1fr; } }
.polaroid{
  background:#fff; padding:10px 10px 28px; border-radius:8px;
  box-shadow:var(--shadow); transform:rotate(-3deg);
}
.polaroid img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:4px; }
.polaroid .cap{ text-align:center; margin-top:10px; font-size:13px; color:var(--muted); font-style:italic; }
.stat-item{ display:flex; gap:12px; align-items:center; padding:14px 0; border-bottom:1px solid var(--line); }
.stat-item .n{ font-family:'Montserrat',sans-serif; font-size:28px; color:var(--forest); }
.stat-item .l{ font-size:13px; color:var(--muted); }

.promise-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4,1fr); gap:14px; text-align:center;
}
@media (max-width:800px){ .promise-grid{ grid-template-columns:1fr 1fr; } }
.promise-item{
  background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:22px 16px;
}
.promise-item .ic{ font-size:28px; margin-bottom:8px; }
.promise-item p{ font-weight:600; font-size:14px; }

.why-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
}
@media (max-width:800px){ .why-grid{ grid-template-columns:1fr; } }
.why-card{
  background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:22px;
}
.why-card b{ display:block; margin:8px 0 4px; font-size:15px; }
.why-card span{ color:var(--muted); font-size:13.5px; }

.founder{
  background:var(--forest); color:#fff; padding:64px 24px;
}
.founder-inner{
  max-width:900px; margin:0 auto; display:grid; grid-template-columns:140px 1fr; gap:28px; align-items:center;
}
@media (max-width:700px){ .founder-inner{ grid-template-columns:1fr; text-align:center; } }
.founder img{ width:140px; height:140px; border-radius:50%; object-fit:cover; margin:0 auto; border:3px solid var(--orange); }
.founder .q{ font-family:'Montserrat',sans-serif; font-size:clamp(18px,2.5vw,24px); line-height:1.35; }
.founder .name{ margin-top:14px; color:rgba(255,255,255,.65); font-size:14px; }

.methods-grid{
  max-width:1200px; margin:0 auto; padding:0 24px 40px;
  display:grid; grid-template-columns:repeat(5,1fr); gap:12px;
}
@media (max-width:900px){ .methods-grid{ grid-template-columns:1fr 1fr; } }
.method-card{
  background:var(--paper); border:1px solid var(--line); border-radius:16px;
  padding:18px; text-align:center;
}
.method-card .ic{ font-size:22px; margin-bottom:8px; }
.method-card b{ display:block; font-size:14px; }
.method-card span{ display:block; font-size:12.5px; color:var(--muted); margin-top:3px; }

.contact-main{
  max-width:1200px; margin:0 auto; padding:8px 24px 72px;
  display:grid; grid-template-columns:1.3fr 1fr; gap:24px;
}
@media (max-width:900px){ .contact-main{ grid-template-columns:1fr; } }
.form-card, .help-card{ border-radius:20px; padding:28px; }
.form-card{ background:var(--paper); border:1px solid var(--line); }
.help-card{ background:var(--forest); color:#fff; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:20px; }
@media (max-width:560px){ .form-grid{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:6px; }
.field.full{ grid-column:1/-1; }
.field label{ font-size:12.5px; font-weight:600; color:var(--muted); }
.field input, .field select, .field textarea{
  border:1.5px solid var(--line); border-radius:12px; padding:12px 14px;
  font:inherit; background:var(--cream);
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--forest);
}
.field textarea{ min-height:120px; resize:vertical; }
.form-card .btn{ width:100%; margin-top:16px; }
.form-note{ font-size:12px; color:var(--muted); text-align:center; margin-top:10px; }
.success-msg{
  display:none; background:#DCEACB; color:var(--forest); border-radius:12px;
  padding:12px; margin-top:14px; font-weight:600; font-size:14px; text-align:center;
}
.success-msg.show{ display:block; }
.help-list{ list-style:none; margin-top:16px; display:flex; flex-direction:column; gap:12px; font-size:14px; }
.help-note{ background:rgba(255,255,255,.08); border-radius:14px; padding:16px; margin-top:20px; font-size:13.5px; color:rgba(255,255,255,.8); }

.quote-banner{
  background:linear-gradient(120deg,#EFE7D3,#E4EBD3); padding:64px 24px; text-align:center;
}
.quote-banner p{
  max-width:720px; margin:0 auto; font-family:'Montserrat',sans-serif;
  font-size:clamp(20px,3vw,28px); color:var(--forest); text-wrap:balance;
}

/* —— OnRegal WP extras —— */
.logo .custom-logo-link { display:flex; align-items:center; }
.logo .custom-logo { max-height:48px; width:auto; }
.nav-links .menu, .nav-links ul { display:flex; gap:22px; list-style:none; margin:0; padding:0; align-items:center; }
.nav-links li { margin:0; }
.nav-links a { font-size:14px; font-weight:600; color:var(--muted); }
.nav-links a:hover, .nav-links .current-menu-item > a { color:var(--forest); }

.order-progress-wrap {
  position: sticky; top: var(--nav-h); z-index: 90;
  background: rgba(255,249,239,.95); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
  padding: 8px 24px;
}
.order-progress { max-width: 1200px; margin: 0 auto; }
.order-progress-bar {
  height: 8px; background: rgba(15,77,46,.12); border-radius: 999px; overflow: hidden;
}
.order-progress-bar i {
  display: block; height: 100%; background: linear-gradient(90deg, var(--forest-light), var(--orange));
  border-radius: 999px; transition: width .35s var(--ease);
}
.order-progress-text {
  font-size: 12.5px; font-weight: 600; color: var(--muted); margin-top: 6px; text-align: center;
}

/* WooCommerce product grid polish */
.woocommerce ul.products { display:grid !important; grid-template-columns:repeat(4,1fr); gap:18px; margin:0; padding:0; list-style:none; }
@media (max-width:1000px){ .woocommerce ul.products { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .woocommerce ul.products { grid-template-columns:1fr; } }
.woocommerce ul.products li.product {
  width: auto !important; margin: 0 !important; float: none !important;
  background: var(--paper); border: 1px solid var(--line); border-radius: 18px; overflow: hidden;
  padding: 0 0 14px !important;
}
.woocommerce ul.products li.product a img { margin: 0; border-radius: 0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 15px; padding: 10px 14px 0; }
.woocommerce ul.products li.product .price { padding: 0 14px; color: var(--forest); font-weight: 700; }
.woocommerce ul.products li.product .button {
  margin: 10px 14px 0; background: var(--orange) !important; color: #fff !important;
  border-radius: 999px !important; border: none !important;
}
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: 12px; }
.page-content { font-size: 16px; line-height: 1.65; max-width: 720px; }
.page-content p { margin-bottom: 1em; }

/* —— Logo + edición —— */
:root { --yellow: #FFC629; }
.logo { gap: 0; }
.logo .site-logo-img,
.logo .custom-logo {
  height: 56px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
}
.logo .custom-logo-link { display: flex; align-items: center; line-height: 0; }
.btn-yellow { background: var(--yellow); color: var(--forest); }
.btn-yellow:hover { filter: brightness(0.95); }
.page-hero-band img { width: 100%; height: 280px; object-fit: cover; display: block; }
.editable-page .entry-content h2 { margin: 1.4em 0 0.5em; color: var(--forest); }
.editable-page .entry-content h3 { margin: 1.2em 0 0.4em; color: var(--forest); }
.editable-page .entry-content ul { margin: 0.8em 0 0.8em 1.2em; }
.editable-page .entry-content img { border-radius: 14px; margin: 1em 0; }
.editable-page .entry-content .wp-block-button__link {
  background: var(--orange) !important; border-radius: 999px !important;
}

/* Fix grid WooCommerce (tarjetas aplastadas) */
.home-products,
.woocommerce-wrap .wrap,
.woocommerce ul.products {
  max-width: 1200px;
}
.home-products {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}
.woocommerce ul.products,
.home-products ul.products,
ul.products.columns-4 {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  float: none !important;
}
@media (max-width:1000px) {
  .woocommerce ul.products,
  .home-products ul.products,
  ul.products.columns-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width:560px) {
  .woocommerce ul.products,
  .home-products ul.products,
  ul.products.columns-4 {
    grid-template-columns: 1fr !important;
  }
}
.woocommerce ul.products li.product,
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last,
.woocommerce.columns-4 ul.products li.product,
ul.products li.product {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  padding: 0 0 16px !important;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
  box-sizing: border-box;
}
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img {
  width: 100% !important;
  height: 180px !important;
  object-fit: cover !important;
  margin: 0 !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 15px !important;
  padding: 10px 14px 4px !important;
  margin: 0 !important;
  white-space: normal !important;
  line-height: 1.25 !important;
}
.woocommerce ul.products li.product .price {
  display: block !important;
  padding: 0 14px 8px !important;
  color: var(--forest) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 14px 4px !important;
  padding: 10px 16px !important;
  width: auto !important;
  max-width: calc(100% - 28px) !important;
  white-space: nowrap !important;
  background: var(--orange) !important;
  color: #fff !important;
  border-radius: 999px !important;
  border: none !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
}

/* Catégories dynamiques (N cartes) */
.cats-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
  gap: 14px;
}

/* Logo sin caja blanca */
.logo .site-logo-img,
.logo .custom-logo {
  height: 58px;
  width: auto;
  max-width: 200px;
  object-fit: contain;
  background: transparent !important;
  mix-blend-mode: multiply; /* oculta fondo blanco sobre crème */
}
.logo .custom-logo-link {
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Nav favoris */
.fav-nav {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--forest); font-weight: 700; font-size: 14px;
  padding: 8px 10px; border-radius: 999px;
}
.fav-nav .fav-count {
  background: var(--orange); color: #fff; font-size: 11px;
  min-width: 18px; height: 18px; border-radius: 999px;
  display: inline-grid; place-items: center; padding: 0 4px;
}

/* Fix grid vacío en categorías / boutique */
.woocommerce .products ul,
.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  width: 100% !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  float: none !important;
  clear: both !important;
}
.woocommerce columns-4 ul.products.columns-4,
.woocommerce ul.products.columns-4,
.woocommerce ul.products.columns-3,
.woocommerce ul.products.columns-2 {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
@media (max-width: 1000px) {
  .woocommerce ul.products,
  ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 560px) {
  .woocommerce ul.products,
  ul.products { grid-template-columns: 1fr !important; }
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
  content: none !important;
}
.woocommerce ul.products li.product,
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last {
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Tarjeta estilo marché (imagen 2) */
li.product.onregal-card,
.woocommerce ul.products li.product.onregal-card {
  display: flex !important;
  flex-direction: column;
  background: #fff;
  border: none !important;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(15,77,46,.08);
}
.onregal-card-media {
  position: relative;
  aspect-ratio: 1 / 1.05;
  background: #eee;
}
.onregal-card-link { display: block; height: 100%; color: #fff; text-decoration: none; }
.onregal-card-img,
.onregal-card-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  margin: 0 !important;
  display: block;
}
.onregal-card-overlay {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 48px 14px 14px;
  background: linear-gradient(transparent, rgba(15,77,46,.82));
}
.onregal-card-name { font-weight: 700; font-size: 15px; line-height: 1.25; }
.onregal-card-unit { font-size: 12px; opacity: .9; margin-top: 2px; }
.onregal-card-unitprice { font-size: 12px; opacity: .9; margin-top: 4px; }
.onregal-card-unitprice .woocommerce-Price-amount { color: #fff !important; }
.onregal-price-unit,
.onregal-card-qty{
  font-size:12.5px; font-weight:600; color:var(--muted); white-space:nowrap;
}
.onregal-card-price .onregal-price-unit{ color:var(--muted); font-size:13px; font-weight:600; }
.onregal-card-overlay .onregal-price-unit{ color:rgba(255,255,255,.9); font-size:12px; }
.single-product .onregal-price-unit,
.product .price .onregal-price-unit{
  font-size:.85em; font-weight:600; color:var(--muted); margin-left:.15em;
}
.fav-btn {
  position: absolute; top: 10px; right: 10px; z-index: 3;
  width: 34px; height: 34px; border-radius: 10px;
  border: none; background: rgba(255,255,255,.92);
  color: var(--forest); cursor: pointer;
  display: grid; place-items: center;
  box-shadow: 0 4px 12px rgba(0,0,0,.12);
}
.fav-btn.is-fav { color: #e11; }
.fav-btn.is-fav svg { fill: #e11; stroke: #e11; }
.onregal-card-foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; padding: 12px 12px 14px; background: #fff;
}
.onregal-card-price { font-weight: 800; font-size: 18px; color: var(--forest); line-height: 1.15; display:flex; flex-wrap:wrap; align-items:baseline; gap:6px; }
.onregal-card-price del { opacity: .45; font-size: 13px; margin-right: 4px; }
.onregal-price-unit { font-size: .85em; font-weight: 600; color: var(--muted); margin-left: 4px; }
.onregal-card-actions .button,
.onregal-card-actions a.button,
.woocommerce ul.products li.product.onregal-card .button {
  margin: 0 !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  background: var(--forest) !important;
  border: none !important;
  color: #fff !important;
  font-size: 0 !important;
  line-height: 0 !important;
  display: inline-grid !important;
  place-items: center !important;
  overflow: hidden;
  box-shadow: 0 8px 18px rgba(15,77,46,.2);
  transition: background .15s ease, transform .12s ease;
}
.onregal-card-actions .button:hover,
.onregal-card-actions a.button:hover,
.woocommerce ul.products li.product.onregal-card .button:hover {
  background: var(--orange) !important;
  transform: scale(1.04);
}

/* Boutique : recherche + catégories */
.shop-toolbar{
  display:flex; flex-direction:column; gap:14px;
  margin: 8px 0 22px;
}
.shop-search{
  display:flex; align-items:center; gap:0;
  max-width:420px; width:100%;
  background:#fff;
  border:1.5px solid var(--line);
  border-radius:999px;
  overflow:hidden;
  box-shadow:0 6px 18px rgba(22,59,34,.06);
}
.shop-search input[type="search"]{
  flex:1; border:0; background:transparent;
  padding:12px 18px; font:inherit; font-weight:600;
  color:var(--ink); min-width:0;
  outline:none;
}
.shop-search input[type="search"]::placeholder{ color:var(--muted); font-weight:500; }
.shop-search-btn{
  width:46px; height:46px; border:0; cursor:pointer;
  background:var(--forest); color:#fff;
  display:grid; place-items:center; flex-shrink:0;
  transition:background .15s ease;
}
.shop-search-btn:hover{ background:var(--orange); }

/* Boutons WooCommerce → style OnRegal (pilule + couleurs marque) */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce button.single_add_to_cart_button,
.woocommerce .checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  font-family:'Montserrat',sans-serif !important;
  font-weight:700 !important;
  font-size:15px !important;
  border-radius:999px !important;
  border:none !important;
  padding:13px 26px !important;
  background:var(--orange) !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(242,121,12,.28) !important;
  transition:transform .15s var(--ease), background .2s ease !important;
  line-height:1.2 !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce .checkout-button:hover{
  background:var(--orange-dark) !important;
  color:#fff !important;
  transform:scale(0.98);
}
.woocommerce a.button.disabled,
.woocommerce button.button.disabled{
  opacity:.55 !important;
}
.woocommerce .quantity .qty{
  border-radius:999px !important;
  border:1.5px solid var(--line) !important;
  padding:10px 14px !important;
  font-weight:700 !important;
}

/* Fiche produit */
.single-product .product{
  padding-top:12px;
}
.single-product div.product .woocommerce-tabs{
  margin-top:36px;
}
.single-product div.product .woocommerce-tabs ul.tabs{
  padding:0; margin:0 0 18px; border:none;
  display:flex; gap:8px; flex-wrap:wrap;
}
.single-product div.product .woocommerce-tabs ul.tabs::before,
.single-product div.product .woocommerce-tabs ul.tabs li::before,
.single-product div.product .woocommerce-tabs ul.tabs li::after{
  display:none !important;
}
.single-product div.product .woocommerce-tabs ul.tabs li{
  border:none !important; background:transparent !important;
  margin:0 !important; padding:0 !important;
  border-radius:999px !important;
}
.single-product div.product .woocommerce-tabs ul.tabs li a{
  display:inline-flex !important;
  padding:10px 18px !important;
  border-radius:999px !important;
  background:#EAF3E4 !important;
  color:var(--forest) !important;
  font-weight:700 !important;
}
.single-product div.product .woocommerce-tabs ul.tabs li.active a{
  background:var(--forest) !important;
  color:#fff !important;
}
.single-product .related.products,
.single-product .upsells.products,
.woocommerce .cross-sells{
  margin-top:48px;
  padding-top:28px;
  border-top:1px solid var(--line);
}
/* Jamais 2 grilles associés */
.single-product .upsells.products ~ .related.products{
  display:none !important;
}
/* Prix une seule fois sur les cartes (pas dans l’overlay) */
.onregal-card-overlay .onregal-card-unitprice,
.onregal-card-overlay .price,
.onregal-card-overlay .woocommerce-Price-amount{
  display:none !important;
}
.single-product .related.products > h2,
.single-product .upsells.products > h2,
.woocommerce .cross-sells > h2{
  font-size:clamp(22px,3vw,30px);
  color:var(--forest);
  margin-bottom:18px;
}
/* Masquer le libellé / bloc avis restant */
.woocommerce-Reviews-title,
.woocommerce-noreviews,
#reviews .comment-reply-title,
.star-rating,
.woocommerce-product-rating{
  display:none !important;
}

/* Fiche produit Elementor */
.onregal-el-product-grid{
  max-width:1200px; margin:0 auto; padding:32px 24px;
  display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;
}
@media (max-width:860px){
  .onregal-el-product-grid{ grid-template-columns:1fr; gap:24px; }
}
.onregal-el-product-media{
  border-radius:22px; overflow:hidden; background:#EAF3E4;
  aspect-ratio:1; 
}
.onregal-el-product-media img,
.onregal-el-product-img{
  width:100% !important; height:100% !important; object-fit:cover !important;
  margin:0 !important; display:block;
}
.onregal-el-product-summary .product_title{
  font-size:clamp(28px,4vw,42px); color:var(--forest); margin:0 0 10px;
}
.onregal-el-product-summary .price{
  font-size:22px; font-weight:800; color:var(--forest); margin:0 0 14px;
}
.onregal-el-product-cart{ margin-top:18px; }
.onregal-el-upsells{
  max-width:1200px; margin:24px auto 48px; padding:0 24px;
}

/* Phrases + idées associations (fiche produit) */
.onregal-product-pairings{
  margin: 14px 0 18px;
  padding: 14px 16px;
  background: #EAF3E4;
  border-radius: 16px;
}
.onregal-offer-badge{
  margin: 0 0 12px;
  display: inline-block;
  font-size: 14px;
  font-weight: 600;
  color: var(--forest);
  background: #FFF3E6;
  border: 1px solid var(--orange);
  border-radius: 999px;
  padding: 6px 12px;
}
.onregal-card-offer{
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  background: var(--orange);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .02em;
  padding: 4px 10px;
  border-radius: 999px;
}
.onregal-card-offer-price{
  margin-top: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--orange);
}
.onregal-card-media{ position: relative; }
.onregal-idea{
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
}
.onregal-idea-label{
  display:inline-block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--orange);
  margin-right:6px;
}
.onregal-phrases{
  margin:0; padding-left:1.1em;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
.onregal-phrases li{ margin-bottom:6px; }
.onregal-phrases strong{ color:var(--forest); }
.onregal-precision{
  margin:10px 0 0;
  font-size:13px;
  color:var(--muted);
  font-style:italic;
}

/* Qui sommes-nous / contenu : forcer boutons WP/Elementor au style OnRegal */
.editable-page .entry-content .wp-block-button__link,
.page-content .wp-block-button__link,
.onregal-elementor-page .elementor-button,
.editable-page a.button:not(.fav-btn){
  border-radius:999px !important;
  background:var(--orange) !important;
  color:#fff !important;
  border:none !important;
  font-weight:700 !important;
  padding:12px 22px !important;
  box-shadow:0 10px 24px rgba(242,121,12,.28) !important;
}
.editable-page .entry-content .wp-block-button__link:hover,
.onregal-elementor-page .elementor-button:hover{
  background:var(--orange-dark) !important;
}
.onregal-card-actions .button::before,
.onregal-card-actions a.button::before {
  content: "";
  width: 18px; height: 18px; display: block;
  background: center / contain no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='M6 7h15l-1.5 9h-12z'/%3E%3Cpath d='M6 7l-1-3H2'/%3E%3Ccircle cx='9' cy='20' r='1.5' fill='white' stroke='none'/%3E%3Ccircle cx='17' cy='20' r='1.5' fill='white' stroke='none'/%3E%3C/svg%3E");
}
.cart-btn .cart-icon { width: 18px; height: 18px; display: block; }
.woocommerce-result-count,
.woocommerce-ordering {
  margin-bottom: 16px;
}
.favoris-empty { color: var(--muted); padding: 24px 0; }

/* Trust icons profesionales (sin emoji) */
.trust-item .ic {
  width: 42px; height: 42px; border-radius: 12px;
  background: #EAF3E4; color: var(--forest);
  display: grid; place-items: center; flex-shrink: 0;
  font-size: 0 !important;
}
.trust-item .ic svg { width: 22px; height: 22px; display: block; }

/* Category tiles: mejor crop de fotos nuevas */
.cat-tile img { object-fit: cover; height: 100%; width: 100%; }
.cat-tile { min-height: 220px; }

/* —— V2 home blocks —— */
.btn-forest{ background:var(--forest); color:#fff; }
.btn-forest:hover{ background:var(--forest-2); }
.section-sub{ color:var(--muted); margin-top:8px; max-width:46ch; font-size:15px; font-weight:500; }
.text-link{ font-weight:700; color:var(--forest); display:inline-flex; gap:6px; margin-top:14px; }
.text-link:hover{ color:var(--orange); }

/* Vérif code postal */
.zip-check{
  background:#EAF3E4; padding:22px 24px;
}
.zip-check-inner{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1.2fr 1fr; gap:18px 28px; align-items:center;
}
@media (max-width:800px){ .zip-check-inner{ grid-template-columns:1fr; } }
.zip-check-copy h3{ font-size:20px; color:var(--forest); }
.zip-check-copy p{ font-size:14px; color:var(--muted); margin-top:4px; }
.zip-check-form{ display:flex; gap:10px; flex-wrap:wrap; }
.zip-check-form input{
  flex:1; min-width:140px; border:1.5px solid var(--line); background:#fff;
  border-radius:999px; padding:12px 18px; font:inherit; font-weight:600;
}
.zip-check-msg{ grid-column:1/-1; font-size:14px; font-weight:600; margin:0; }
.zip-check-msg.ok{ color:var(--forest); }
.zip-check-msg.ko{ color:#b42318; }

/* Paniers */
.paniers-grid{
  max-width:1200px; margin:0 auto; padding:0 24px;
  display:grid; grid-template-columns:1fr 1fr; gap:18px;
}
@media (max-width:860px){ .paniers-grid{ grid-template-columns:1fr; } }
.panier-card{
  background:var(--paper); border:1px solid var(--line); border-radius:20px;
  overflow:hidden; display:grid; grid-template-columns:140px 1fr;
}
@media (max-width:520px){ .panier-card{ grid-template-columns:1fr; } }
.panier-card-media{ min-height:160px; }
.panier-card-media img{ width:100%; height:100%; object-fit:cover; min-height:160px; }
.panier-card-body{ padding:18px 20px 20px; display:flex; flex-direction:column; gap:8px; }
.panier-tag{
  font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--orange);
}
.panier-card-body h3{ font-size:22px; color:var(--forest); }
.panier-card-body p{ font-size:13.5px; color:var(--muted); }
.panier-meta{ display:flex; align-items:baseline; gap:10px; margin:4px 0 8px; }
.panier-price{ font-size:22px; font-weight:800; color:var(--forest); }
.panier-for{ font-size:13px; font-weight:600; color:var(--muted); }
.paniers-note{
  max-width:1200px; margin:14px auto 0; padding:0 24px;
  font-size:12.5px; color:var(--muted);
}

/* Esprit Haissam */
.esprit-inner{
  max-width:1200px; margin:0 auto; padding:0 24px;
  display:grid; grid-template-columns:280px 1fr; gap:36px; align-items:center;
}
@media (max-width:800px){ .esprit-inner{ grid-template-columns:1fr; } }
.esprit-photo{ border-radius:18px; overflow:hidden; aspect-ratio:4/5; background:var(--line); }
.esprit-photo img{ width:100%; height:100%; object-fit:cover; }
.esprit-copy .eyebrow{ color:var(--orange); }
.esprit-copy h2{ font-size:clamp(26px,3.5vw,36px); margin:10px 0 16px; color:var(--forest); font-style:italic; }
.esprit-copy h3{ font-size:17px; margin-bottom:8px; }
.esprit-copy p{ color:var(--muted); max-width:48ch; }

/* FAQ */
.faq-inner{ max-width:760px; margin:0 auto; padding:0 24px; }
.faq-inner h2{ font-size:clamp(28px,4vw,40px); color:var(--forest); margin-bottom:20px; }
.faq-item{
  border-top:1px solid var(--line); padding:14px 0;
}
.faq-item:last-child{ border-bottom:1px solid var(--line); }
.faq-item summary{
  list-style:none; cursor:pointer; font-weight:700; font-size:16px; color:var(--forest);
  display:flex; align-items:center; gap:10px;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::before{
  content:""; width:0; height:0;
  border-top:5px solid transparent; border-bottom:5px solid transparent;
  border-left:7px solid var(--orange); flex-shrink:0;
  transition:transform .2s ease;
}
.faq-item[open] summary::before{ transform:rotate(90deg); }
.faq-item p{ margin:10px 0 4px 18px; color:var(--muted); font-size:14.5px; }

/* Boutique catégories */
.shop-cats{
  display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; padding-bottom:4px;
}
.shop-cat{
  font-size:13.5px; font-weight:600; padding:9px 16px; border-radius:999px;
  background:var(--paper); border:1.5px solid var(--line); color:var(--forest);
}
.shop-cat:hover{ border-color:var(--forest); }
.shop-cat.is-active{ background:var(--forest); border-color:var(--forest); color:#fff; }

/* Elementor — pleine largeur + canvas propre */
.onregal-elementor-page,
.onregal-front {
  max-width: none;
  width: 100%;
  padding: 0;
  margin: 0;
}
.elementor-editor-active .onregal-elementor-page,
.elementor-editor-preview .onregal-elementor-page {
  min-height: 60vh;
}
body.elementor-page .woocommerce-wrap .wrap {
  max-width: none;
  padding: 0;
}
.onregal-elementor-shop {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 24px 60px;
}
