/* ============================================================
   Horbinor Elements — design « Maison joaillière B2B »
   Tout scopé sous .hbx, classes hbx-* (aucun conflit thème/Woo).
   ============================================================ */

/* --- Masquage du header/topbar/titre du thème onsus (remplacés par nos widgets) --- */
body.hbx-active #header,
body.hbx-active #header-fixed-wrap,
body.hbx-active .header-fixed-wrap,
body.hbx-active .themesflat-top{ display:none !important; }
body.hbx-shop .page-header{ display:none !important; }
.hbx-header-injected{ position:relative; z-index:50; }
.hbx-shop-main{ display:block; }
.hbx{
  --hbx-bg:#ffffff;
  --hbx-ink:#1E1418; --hbx-ink-2:#4A3B42; --hbx-soft:#7A6B70;
  --hbx-accent:#46163A; --hbx-accent-2:#5E1C4D;
  --hbx-gold:#B0823F; --hbx-gold-2:#C9A86A; --hbx-gold-3:#E2C892;
  --hbx-wine:#2C0E24;
  --hbx-paper:#F2EBDF; --hbx-paper-2:#F8F2E8; --hbx-card:#ffffff;
  --hbx-line:rgba(30,20,24,.13); --hbx-line-2:rgba(30,20,24,.07);
  --hbx-line-gold:rgba(176,130,63,.45); --hbx-line-light:rgba(255,255,255,.16);
  --hbx-maxw:1280px;
  --hbx-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --hbx-sans:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --hbx-ease:cubic-bezier(.22,.61,.36,1);
  font-family:var(--hbx-sans); color:var(--hbx-ink); line-height:1.6; font-weight:350;
  -webkit-font-smoothing:antialiased;
}
.hbx *,.hbx *::before,.hbx *::after{ box-sizing:border-box; }
.hbx a{ color:inherit; text-decoration:none; }
.hbx ul{ margin:0; padding:0; list-style:none; }
.hbx li{ margin:0; }
.hbx button{ font-family:inherit; cursor:pointer; background:none; border:none; color:inherit; padding:0; }
.hbx img{ max-width:100%; display:block; height:auto; }
.hbx input,.hbx select{ font-family:inherit; }
.hbx h1,.hbx h2,.hbx h3,.hbx h4{ margin:0; font-weight:400; }
.hbx .hbx-i{ width:20px; height:20px; flex:0 0 auto; }
.hbx ::selection{ background:var(--hbx-accent); color:var(--hbx-gold-3); }
.hbx-wrap{ max-width:var(--hbx-maxw); margin-inline:auto; padding-inline:clamp(16px,4vw,48px); width:100%; }
.hbx-eyebrow{ font-size:11px; font-weight:500; letter-spacing:.32em; text-transform:uppercase; color:var(--hbx-gold); display:inline-flex; align-items:center; gap:.7em; }
.hbx-eyebrow::before{ content:""; width:24px; height:1px; background:var(--hbx-gold); opacity:.75; }

/* ---------- Boutons ---------- */
.hbx-btn{ --b:var(--hbx-ink); --f:#fff; display:inline-flex; align-items:center; gap:.6em; font-size:12px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; padding:13px 22px; border-radius:2px; background:var(--b); color:var(--f); border:1px solid var(--b); transition:.4s var(--hbx-ease); }
.hbx-btn:hover{ background:var(--hbx-accent); border-color:var(--hbx-accent); color:#fff; }
.hbx-btn--ghost{ --b:transparent; --f:var(--hbx-ink); border-color:var(--hbx-line); }
.hbx-btn--ghost:hover{ color:#fff; }

/* ============================================================
   HEADER
   ============================================================ */
.hbx-headwrap{ background:var(--hbx-bg); position:relative; z-index:40; }
.hbx-topbar{ background:var(--hbx-wine); color:#f4ece0; font-size:12px; letter-spacing:.03em; }
.hbx-topbar .hbx-wrap{ display:flex; align-items:center; justify-content:space-between; min-height:38px; }
.hbx-tb-left{ color:rgba(255,255,255,.72); }
.hbx-tb-right{ color:var(--hbx-gold-2); }

.hbx-header{ background:var(--hbx-bg); border-bottom:1px solid var(--hbx-line); }
.hbx-headwrap.is-sticky .hbx-header{ position:sticky; top:0; z-index:50; box-shadow:0 12px 40px -30px rgba(46,18,38,.5); }
.hbx-header-row{ display:flex; align-items:center; gap:clamp(14px,2.5vw,36px); min-height:84px; }
.hbx-brand{ flex:0 0 auto; display:flex; align-items:center; }
.hbx-brand img{ height:var(--hbx-logo-h,44px) !important; width:auto !important; max-width:none !important; }
.hbx-brand-text{ font-family:var(--hbx-display); font-size:30px; letter-spacing:.12em; color:var(--hbx-accent); }

.hbx-search{ flex:1 1 auto; max-width:560px; display:flex; align-items:center; border:1px solid var(--hbx-line); background:#fff; border-radius:2px; height:48px; padding:0 6px 0 16px; transition:border-color .3s, box-shadow .3s; }
.hbx-search:focus-within{ border-color:var(--hbx-line-gold); box-shadow:0 0 0 3px rgba(184,138,78,.18); }
.hbx-search input[type=search]{ flex:1; border:none; outline:none; background:none; font-size:14.5px; color:var(--hbx-ink); height:100%; }
.hbx-search input::placeholder{ color:var(--hbx-soft); }
.hbx-search-go{ width:38px; height:38px; border-radius:2px; background:var(--hbx-accent); color:var(--hbx-gold-3); display:grid; place-items:center; flex:0 0 auto; transition:background .3s; }
.hbx-search-go:hover{ background:var(--hbx-ink); }
.hbx-search-go .hbx-i{ width:17px; height:17px; }

.hbx-actions{ display:flex; align-items:center; gap:4px; flex:0 0 auto; margin-left:auto; }
.hbx-action{ position:relative; display:flex; flex-direction:column; align-items:center; gap:3px; padding:8px 12px; border-radius:3px; font-size:11px; letter-spacing:.05em; color:var(--hbx-ink-2); transition:.3s; }
.hbx-action .hbx-i{ width:21px; height:21px; stroke-width:1.4; }
.hbx-action:hover{ color:var(--hbx-accent); background:rgba(70,22,58,.05); }
.hbx-cart-count{ position:absolute; transform:translate(15px,-6px); min-width:16px; height:16px; padding:0 4px; border-radius:9px; background:var(--hbx-gold); color:#231012; font-size:9.5px; font-weight:600; display:grid; place-items:center; }
.hbx-burger{ display:none; width:44px; height:44px; place-items:center; }

/* Nav */
.hbx-nav{ background:var(--hbx-bg); border-bottom:1px solid var(--hbx-line); }
.hbx-nav-row{ display:flex; align-items:center; gap:8px; min-height:52px; }
.hbx-allcats{ position:relative; }
.hbx-allcats-btn{ display:flex; align-items:center; gap:9px; padding:8px 18px 8px 0; margin-right:10px; border-right:1px solid var(--hbx-line); color:var(--hbx-accent); font-weight:500; font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; }
.hbx-allcats-btn .hbx-i{ width:16px; height:16px; }
.hbx-mega{ position:absolute; top:calc(100% + 8px); left:0; min-width:620px; background:#fff; border:1px solid var(--hbx-line); border-radius:6px; box-shadow:0 30px 70px -40px rgba(46,18,38,.5); padding:22px 26px; display:none; z-index:60; }
.hbx-allcats.open .hbx-mega, .hbx-allcats:hover .hbx-mega{ display:block; }
.hbx-mega-menu{ columns:3; column-gap:26px; }
.hbx-mega-menu > li{ break-inside:avoid; margin-bottom:4px; }
.hbx-mega-menu > li > a{ display:block; font-family:var(--hbx-display); font-size:16px; color:var(--hbx-ink); padding:6px 0; border-bottom:1px solid var(--hbx-line-2); }
.hbx-mega-menu > li > a:hover{ color:var(--hbx-accent); }
.hbx-mega-menu .sub-menu{ margin:4px 0 10px; }
.hbx-mega-menu .sub-menu a{ display:block; font-size:12.5px; color:var(--hbx-soft); padding:3px 0; }
.hbx-mega-menu .sub-menu a:hover{ color:var(--hbx-accent); }

.hbx-mainmenu{ display:flex; }
.hbx-menu{ display:flex; align-items:center; gap:2px; flex-wrap:wrap; }
.hbx-menu > li{ position:relative; }
.hbx-menu > li > a{ display:block; font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--hbx-ink-2); padding:8px 15px; position:relative; transition:color .3s; }
.hbx-menu > li > a::after{ content:""; position:absolute; left:15px; right:15px; bottom:3px; height:1px; background:var(--hbx-gold); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--hbx-ease); }
.hbx-menu > li:hover > a, .hbx-menu > li.current-menu-item > a{ color:var(--hbx-accent); }
.hbx-menu > li:hover > a::after, .hbx-menu > li.current-menu-item > a::after{ transform:scaleX(1); }
.hbx-menu .sub-menu{ position:absolute; top:100%; left:0; min-width:210px; background:#fff; border:1px solid var(--hbx-line); border-radius:4px; box-shadow:0 24px 50px -30px rgba(46,18,38,.45); padding:8px; display:none; z-index:60; }
.hbx-menu > li:hover .sub-menu{ display:block; }
.hbx-menu--drawer .sub-menu{ display:block; }
.hbx-menu .sub-menu a{ display:block; font-size:13px; padding:8px 12px; border-radius:3px; color:var(--hbx-ink-2); }
.hbx-menu .sub-menu a:hover{ background:var(--hbx-paper-2); color:var(--hbx-accent); }

/* Drawer mobile */
.hbx-drawer{ position:fixed; inset:0; z-index:120; visibility:hidden; }
.hbx-drawer.open{ visibility:visible; }
.hbx-drawer-scrim{ position:absolute; inset:0; background:rgba(28,14,22,.5); opacity:0; transition:opacity .4s; }
.hbx-drawer.open .hbx-drawer-scrim{ opacity:1; }
.hbx-drawer-panel{ position:absolute; top:0; right:0; height:100%; width:min(380px,88vw); background:var(--hbx-paper); transform:translateX(100%); transition:transform .45s var(--hbx-ease); padding:24px; overflow-y:auto; box-shadow:-20px 0 60px -30px rgba(46,18,38,.6); }
.hbx-drawer.open .hbx-drawer-panel{ transform:translateX(0); }
.hbx-drawer-close{ display:flex; align-items:center; gap:8px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--hbx-soft); margin-bottom:18px; }
.hbx-search--drawer{ display:flex; max-width:none; margin-bottom:18px; }
.hbx-menu--drawer{ flex-direction:column; align-items:stretch; gap:0; }
.hbx-menu--drawer > li > a{ font-family:var(--hbx-display); font-size:20px; text-transform:none; letter-spacing:0; padding:12px 0; border-bottom:1px solid var(--hbx-line); }
.hbx-menu--drawer > li > a::after{ display:none; }
.hbx-menu--drawer .sub-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; padding:0 0 10px 12px; }
.hbx-drawer-cats{ margin-top:14px; }
.hbx-drawer-cats .hbx-menu--drawer > li > a{ font-size:15px; font-family:var(--hbx-sans); text-transform:uppercase; letter-spacing:.08em; padding:9px 0; }

/* ============================================================
   CATALOGUE
   ============================================================ */
.hbx-catalog{ background:var(--hbx-bg); }
.hbx-cat-hero{ border-bottom:1px solid var(--hbx-line); padding-block:clamp(28px,3.5vw,52px); }
.hbx-cat-hero-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.hbx-cat-hero .hbx-eyebrow{ margin-bottom:16px; }
.hbx-cat-title{ font-family:var(--hbx-display); font-size:clamp(38px,5vw,66px); line-height:1; color:var(--hbx-ink); }
.hbx-cat-intro{ color:var(--hbx-ink-2); max-width:54ch; margin-top:14px; font-size:15px; }
.hbx-cat-count{ font-family:var(--hbx-display); font-size:clamp(30px,3vw,46px); color:var(--hbx-accent); text-align:right; line-height:1; }
.hbx-cat-count small{ display:block; font-family:var(--hbx-sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--hbx-soft); margin-top:8px; }

.hbx-catalog-grid{ display:grid; grid-template-columns:266px 1fr; gap:clamp(22px,3vw,46px); align-items:start; padding-block:clamp(30px,4vw,52px); }
.hbx-catalog-grid--nofilters{ grid-template-columns:1fr; }

/* Filtres */
.hbx-filters{ position:sticky; top:120px; }
.hbx-filters-head{ display:none; align-items:center; justify-content:space-between; margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid var(--hbx-line); font-size:13px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; }
.hbx-fgroup{ border-bottom:1px solid var(--hbx-line); padding:18px 0; }
.hbx-fgroup:first-of-type{ padding-top:0; }
.hbx-fgroup > summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; font-size:12.5px; font-weight:500; letter-spacing:.13em; text-transform:uppercase; color:var(--hbx-ink); }
.hbx-fgroup > summary::-webkit-details-marker{ display:none; }
.hbx-fgroup > summary .hbx-i{ width:14px; height:14px; color:var(--hbx-soft); transition:transform .35s var(--hbx-ease); }
.hbx-fgroup[open] > summary .hbx-i{ transform:rotate(180deg); }
.hbx-fopts{ margin-top:14px; display:flex; flex-direction:column; gap:9px; }
.hbx-fopt{ display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--hbx-ink-2); cursor:pointer; transition:color .25s; }
.hbx-fopt:hover{ color:var(--hbx-accent); }
.hbx-fopt input{ display:none; }
.hbx-box,.hbx-radio{ width:17px; height:17px; border:1px solid var(--hbx-line); display:grid; place-items:center; flex:0 0 auto; transition:.25s; }
.hbx-box{ border-radius:3px; } .hbx-radio{ border-radius:50%; }
.hbx-fopt input:checked + .hbx-box{ background:var(--hbx-accent); border-color:var(--hbx-accent); }
.hbx-fopt input:checked + .hbx-box::after{ content:""; width:9px; height:5px; border-left:1.6px solid var(--hbx-gold-3); border-bottom:1.6px solid var(--hbx-gold-3); transform:rotate(-45deg) translateY(-1px); }
.hbx-fopt input:checked + .hbx-radio{ border-color:var(--hbx-accent); }
.hbx-fopt input:checked + .hbx-radio::after{ content:""; width:8px; height:8px; border-radius:50%; background:var(--hbx-accent); }
.hbx-ct{ margin-left:auto; font-size:11.5px; color:var(--hbx-soft); }
.hbx-cat-top{ font-weight:500; color:var(--hbx-ink); }
.hbx-cat-children{ margin:6px 0 8px 26px; display:flex; flex-direction:column; gap:7px; }
.hbx-cat-children .hbx-fopt{ font-size:12.5px; }
.hbx-fclear{ margin-top:22px; width:100%; justify-content:center; }

/* Toolbar */
.hbx-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-bottom:20px; margin-bottom:22px; border-bottom:1px solid var(--hbx-line); }
.hbx-showing{ font-size:13px; color:var(--hbx-soft); }
.hbx-showing b{ color:var(--hbx-ink); font-weight:500; }
.hbx-toolbar-r{ display:flex; align-items:center; gap:14px; }
.hbx-sort{ display:flex; align-items:center; gap:9px; font-size:12.5px; letter-spacing:.04em; border:1px solid var(--hbx-line); padding:8px 12px; border-radius:2px; color:var(--hbx-ink); background:#fff; }
.hbx-sort span{ color:var(--hbx-soft); }
.hbx-sort select{ border:none; background:none; outline:none; font-size:12.5px; color:var(--hbx-ink); cursor:pointer; }
.hbx-view{ display:flex; border:1px solid var(--hbx-line); border-radius:2px; overflow:hidden; }
.hbx-view button{ width:40px; height:40px; display:grid; place-items:center; color:var(--hbx-soft); transition:.25s; }
.hbx-view button.is-on{ background:var(--hbx-accent); color:var(--hbx-gold-3); }
.hbx-view .hbx-i{ width:17px; height:17px; }
.hbx-filter-toggle{ display:none; padding:9px 15px; }

/* Grille produits */
.hbx-pgrid{ display:grid; gap:clamp(14px,1.5vw,22px); }
.hbx-pgrid--3{ grid-template-columns:repeat(3,1fr); }
.hbx-pgrid--4{ grid-template-columns:repeat(4,1fr); }
.hbx-pgrid.is-loading{ opacity:.4; pointer-events:none; }

.hbx-pcard{ position:relative; background:var(--hbx-card); border:1px solid var(--hbx-line-2); border-radius:4px; overflow:hidden; display:flex; flex-direction:column; transition:transform .45s var(--hbx-ease), box-shadow .45s var(--hbx-ease), border-color .45s; }
.hbx-pcard:hover{ transform:translateY(-5px); box-shadow:0 20px 50px -28px rgba(46,18,38,.4); border-color:var(--hbx-line-gold); }
.hbx-media{ position:relative; aspect-ratio:1/1; background:linear-gradient(160deg,#FCF9F3,#EFE6D6); display:grid; place-items:center; overflow:hidden; }
.hbx-media img,.hbx-pimg{ max-width:80%!important; max-height:80%!important; width:auto!important; object-fit:contain; mix-blend-mode:multiply; transition:transform .6s var(--hbx-ease); }
.hbx-pcard:hover .hbx-media img{ transform:scale(1.06); }
.hbx-ill{ width:60%; height:60%; color:var(--hbx-accent); opacity:.8; }
.hbx-flag{ position:absolute; top:11px; left:11px; z-index:2; font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:5px 9px; border-radius:2px; background:var(--hbx-accent); color:var(--hbx-gold-3); }
.hbx-flag--new{ background:var(--hbx-ink); }
.hbx-flag--promo{ background:var(--hbx-gold); color:#231012; }
.hbx-wish{ position:absolute; top:10px; right:10px; z-index:3; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.9); border:1px solid var(--hbx-line-2); display:grid; place-items:center; color:var(--hbx-ink-2); opacity:0; transform:translateY(-6px); transition:.35s; }
.hbx-pcard:hover .hbx-wish{ opacity:1; transform:translateY(0); }
.hbx-wish:hover{ color:var(--hbx-accent); }
.hbx-wish .hbx-i{ width:16px; height:16px; }
.hbx-pbody{ padding:15px 15px 17px; display:flex; flex-direction:column; gap:5px; flex:1; }
.hbx-pcat{ font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--hbx-gold); }
.hbx-pname{ font-family:var(--hbx-display); font-size:18px; line-height:1.18; }
.hbx-pname a{ color:var(--hbx-ink); }
.hbx-pname a:hover{ color:var(--hbx-accent); }
.hbx-pref{ font-size:11.5px; color:var(--hbx-soft); }
.hbx-pfoot{ margin-top:auto; padding-top:12px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.hbx-price{ font-size:13px; color:var(--hbx-accent); font-weight:500; }
.hbx-price .horbinor-price-on-demand,.hbx-price ins,.hbx-price del{ font-size:12.5px; }
.hbx-price del{ color:var(--hbx-soft); font-weight:350; margin-right:5px; }
.hbx-quote{ display:inline-flex; align-items:center; gap:6px; font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--hbx-ink-2); border:1px solid var(--hbx-line); padding:8px 12px; border-radius:2px; transition:.3s; white-space:nowrap; }
.hbx-quote .hbx-i{ width:14px; height:14px; }
.hbx-quote:hover{ background:var(--hbx-accent); color:var(--hbx-gold-3); border-color:var(--hbx-accent); }

.hbx-empty{ grid-column:1/-1; text-align:center; padding:60px 20px; color:var(--hbx-soft); font-family:var(--hbx-display); font-size:22px; }

/* Pagination */
.hbx-pagination{ display:flex; align-items:center; justify-content:center; gap:7px; margin-top:clamp(34px,4vw,56px); flex-wrap:wrap; }
.hbx-page{ min-width:44px; height:44px; padding:0 10px; display:grid; place-items:center; border:1px solid var(--hbx-line); border-radius:2px; font-size:13.5px; color:var(--hbx-ink-2); transition:.25s; }
.hbx-page:hover{ border-color:var(--hbx-accent); color:var(--hbx-accent); }
.hbx-page--on{ background:var(--hbx-accent); border-color:var(--hbx-accent); color:var(--hbx-gold-3); }
.hbx-page--dots{ border:none; pointer-events:none; }
.hbx-page--arrow .hbx-i{ width:16px; height:16px; }

/* Loading */
.hbx-loading{ display:none; justify-content:center; gap:8px; padding:30px 0; }
.hbx-loading.is-on{ display:flex; }
.hbx-loading span{ width:9px; height:9px; border-radius:50%; background:var(--hbx-gold); animation:hbxbnc 1s infinite ease-in-out; }
.hbx-loading span:nth-child(2){ animation-delay:.15s; } .hbx-loading span:nth-child(3){ animation-delay:.3s; }
@keyframes hbxbnc{ 0%,80%,100%{ transform:scale(.4); opacity:.4; } 40%{ transform:scale(1); opacity:1; } }

/* Vue liste */
.hbx-pgrid.is-list{ grid-template-columns:1fr!important; }
.hbx-pgrid.is-list .hbx-pcard{ flex-direction:row; align-items:stretch; }
.hbx-pgrid.is-list .hbx-media{ width:180px; aspect-ratio:auto; flex:0 0 180px; }
.hbx-pgrid.is-list .hbx-pbody{ justify-content:center; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .hbx-pgrid--4{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:900px){
  .hbx-catalog-grid{ grid-template-columns:1fr; }
  .hbx-filters{ display:none; position:fixed; inset:0; z-index:130; background:var(--hbx-paper); padding:24px; overflow-y:auto; top:0; }
  .hbx-filters.open{ display:block; }
  .hbx-filters-head{ display:flex; }
  .hbx-filter-toggle{ display:inline-flex; }
}
@media (max-width:860px){
  .hbx-search{ display:none; }
  .hbx-nav{ display:none; }
  .hbx-burger{ display:grid; }
  .hbx-header-row{ min-height:68px; }
  .hbx-action span{ display:none; }
  .hbx-action{ padding:8px; }
  .hbx-pgrid--3,.hbx-pgrid--4{ grid-template-columns:repeat(2,1fr); }
  .hbx-cat-hero-row{ flex-direction:column; align-items:flex-start; }
  .hbx-cat-count{ text-align:left; }
  .hbx-tb-right span{ display:none; }
}
@media (max-width:480px){
  .hbx-pgrid--3,.hbx-pgrid--4{ grid-template-columns:1fr 1fr; gap:12px; }
  .hbx-pname{ font-size:16px; }
  .hbx-toolbar-r{ width:100%; justify-content:space-between; }
}
@media (prefers-reduced-motion:reduce){ .hbx *{ transition:none!important; animation:none!important; } }

/* ============================================================
   BLINDAGE — sur les pages boutique, body.woocommerce applique
   des styles génériques aux <button>/<a.button> qui écrasaient
   nos boutons header/catalogue. On réaffirme avec !important.
   ============================================================ */
.hbx button{ text-transform:none; letter-spacing:normal; box-shadow:none; }
.hbx .hbx-search-go{ background:var(--hbx-accent) !important; color:var(--hbx-gold-3) !important; border:0 !important; }
.hbx .hbx-search-go:hover{ background:var(--hbx-ink) !important; }
.hbx .hbx-allcats-btn{ background:transparent !important; color:var(--hbx-accent) !important; text-transform:uppercase !important; letter-spacing:.1em !important; border:0 !important; box-shadow:none !important; }
.hbx .hbx-burger{ background:transparent !important; color:var(--hbx-ink) !important; border:0 !important; }
.hbx .hbx-menu > li > a{ text-transform:uppercase !important; }
.hbx .hbx-view button{ background:transparent !important; color:var(--hbx-soft) !important; border:0 !important; box-shadow:none !important; }
.hbx .hbx-view button.is-on{ background:var(--hbx-accent) !important; color:var(--hbx-gold-3) !important; }
.hbx .hbx-quote{ background:transparent !important; color:var(--hbx-ink-2) !important; }
.hbx .hbx-quote:hover{ background:var(--hbx-accent) !important; color:var(--hbx-gold-3) !important; border-color:var(--hbx-accent) !important; }
.hbx .hbx-page{ background:transparent !important; color:var(--hbx-ink-2) !important; box-shadow:none !important; }
.hbx .hbx-page--on{ background:var(--hbx-accent) !important; color:var(--hbx-gold-3) !important; }
.hbx .hbx-page:hover{ color:var(--hbx-accent) !important; }
.hbx .hbx-btn{ background:var(--hbx-ink) !important; color:#fff !important; text-transform:uppercase !important; box-shadow:none !important; }
.hbx .hbx-btn--ghost{ background:transparent !important; color:var(--hbx-ink) !important; }
.hbx .hbx-btn--ghost:hover, .hbx .hbx-btn:hover{ background:var(--hbx-accent) !important; color:#fff !important; }
.hbx .hbx-filters-close, .hbx .hbx-drawer-close{ background:transparent !important; box-shadow:none !important; }
.hbx .hbx-search-go:hover{ color:var(--hbx-gold-3) !important; }

/* ============================================================
   BLINDAGE HEADER COMPLET — immunise l'intégralité du header
   (topbar, recherche, nav, méga-menu, actions, drawer) contre
   tous les styles onsus / WooCommerce (body.woocommerce, etc.).
   ============================================================ */
.hbx-headwrap, .hbx-headwrap *{ box-sizing:border-box !important; }
.hbx-headwrap input, .hbx-headwrap select, .hbx-headwrap button{ font-family:var(--hbx-sans) !important; }
.hbx-headwrap a{ text-decoration:none !important; box-shadow:none !important; }
/* Listes : aucune puce/marge héritée */
.hbx-headwrap ul{ list-style:none !important; margin:0 !important; padding:0 !important; }
.hbx-headwrap li{ margin:0 !important; padding:0 !important; background:none !important; border:0 !important; }
.hbx-headwrap li::before, .hbx-headwrap li::marker{ content:none !important; }
/* Conteneurs & fonds */
.hbx-headwrap .hbx-topbar{ background:var(--hbx-wine) !important; }
.hbx-headwrap .hbx-header, .hbx-headwrap .hbx-nav{ background:var(--hbx-bg) !important; }
.hbx-headwrap .hbx-header{ border-bottom:1px solid var(--hbx-line) !important; }
.hbx-headwrap .hbx-nav{ border-bottom:1px solid var(--hbx-line) !important; }
.hbx-headwrap .hbx-tb-left{ color:rgba(255,255,255,.72) !important; }
.hbx-headwrap .hbx-tb-right{ color:var(--hbx-gold-2) !important; }
/* Recherche */
.hbx-headwrap .hbx-search{ background:#fff !important; border:1px solid var(--hbx-line) !important; box-shadow:none !important; height:48px !important; max-width:560px !important; }
.hbx-headwrap .hbx-search input[type=search]{ background:transparent !important; border:0 !important; box-shadow:none !important; color:var(--hbx-ink) !important; height:100% !important; margin:0 !important; min-height:0 !important; line-height:normal !important; }
/* Actions compte / sélection / panier (liens) */
.hbx-headwrap .hbx-action{ color:var(--hbx-ink-2) !important; background:transparent !important; }
.hbx-headwrap .hbx-action:hover{ color:var(--hbx-accent) !important; background:rgba(70,22,58,.05) !important; }
.hbx-headwrap .hbx-cart-count{ background:var(--hbx-gold) !important; color:#231012 !important; }
/* Nav principale (liens) */
.hbx-headwrap .hbx-menu > li > a{ color:var(--hbx-ink-2) !important; background:transparent !important; }
.hbx-headwrap .hbx-menu > li:hover > a,
.hbx-headwrap .hbx-menu > li.current-menu-item > a{ color:var(--hbx-accent) !important; }
/* Méga-menu & sous-menus */
.hbx-headwrap .hbx-mega, .hbx-headwrap .hbx-menu .sub-menu{ background:#fff !important; border:1px solid var(--hbx-line) !important; }
.hbx-headwrap .hbx-mega-menu > li > a{ color:var(--hbx-ink) !important; font-family:var(--hbx-display) !important; text-transform:none !important; }
.hbx-headwrap .hbx-mega-menu .sub-menu a,
.hbx-headwrap .hbx-menu .sub-menu a{ color:var(--hbx-soft) !important; }
.hbx-headwrap .hbx-mega-menu > li > a:hover,
.hbx-headwrap .hbx-menu .sub-menu a:hover{ color:var(--hbx-accent) !important; }
/* Drawer mobile (serif volontaire) */
.hbx-headwrap .hbx-menu--drawer > li > a{ font-family:var(--hbx-display) !important; text-transform:none !important; letter-spacing:0 !important; }
.hbx-headwrap .hbx-drawer-cats .hbx-menu--drawer > li > a{ font-family:var(--hbx-sans) !important; text-transform:uppercase !important; }

/* ============================================================
   BLINDAGE POLICE — onsus/digicoseo force "Outfit"/"Bodoni Moda"
   sur les pages boutique. On réimpose Jost (sans) + Cormorant
   (serif) sur les éléments concernés.
   ============================================================ */
body .hbx, body .hbx *{ font-family:var(--hbx-sans) !important; }
.hbx .hbx-brand-text,
.hbx .hbx-cat-title,
.hbx .hbx-cat-count,
.hbx .hbx-pname, .hbx .hbx-pname a,
.hbx .hbx-empty,
.hbx-headwrap .hbx-mega-menu > li > a,
.hbx-headwrap .hbx-menu--drawer > li > a{ font-family:var(--hbx-display) !important; }
.hbx-headwrap .hbx-drawer-cats .hbx-menu--drawer > li > a{ font-family:var(--hbx-sans) !important; }

/* ============================================================
   PAGES SUPPORT (contact / FAQ) — remplace la police Bodoni Moda
   (titres) + Outfit (corps) par Cormorant Garamond + Jost.
   On redéfinit les variables : la valeur change donc partout où
   var(--horbinor-font-*) est utilisée, y compris sous !important.
   ============================================================ */
.horbinor-support-page{
  --horbinor-font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif !important;
  --horbinor-font-body:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  --horbinor-product-display:"Cormorant Garamond",Georgia,serif !important;
  --horbinor-product-body:"Jost",-apple-system,sans-serif !important;
}
.horbinor-support-page .hb-hero h1{ font-weight:600 !important; letter-spacing:.005em !important; }
.horbinor-support-page .hb-card h3,
.horbinor-support-page .hb-panel h2,
.horbinor-support-page .hb-panel h3{ font-weight:600 !important; }

/* ============================================================
   HARMONISATION TYPO SITE-WIDE — remplace les polices digicoseo
   (Bodoni Moda + Outfit) par Cormorant Garamond + Jost partout,
   pour une cohérence totale avec le header/catalogue refondus.
   ============================================================ */
:root{
  --horbinor-font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif !important;
  --horbinor-font-body:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  --horbinor-product-display:"Cormorant Garamond",Georgia,"Times New Roman",serif !important;
  --horbinor-product-body:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
}

/* ============================================================
   HARMONISATION COULEUR — menu catégories & icon-list Elementor
   de l'accueil : violet de marque figé -> aubergine #46163A.
   ============================================================ */
/* Barre/titre du menu catégories */
body .elementor-element-fd93f6e .tf-nav-menu .title,
body .elementor-element-fd93f6e .tf-nav-menu .title::before{ background:#46163A !important; background-color:#46163A !important; }
/* Liens, icônes, flèches */
body .elementor-element-fd93f6e .tf-nav-menu .menu-container > ul > li > a,
body .elementor-element-fd93f6e .tf-nav-menu .menu-container > ul > li > a i,
body .elementor-element-fd93f6e .tf-nav-menu .btn-submenu,
body .elementor-element-fd93f6e .tf-nav-menu .btn-submenu i{ color:#46163A !important; }
/* États actifs/hover */
body .elementor-element-fd93f6e .tf-nav-menu .menu-container > ul > li > a:hover,
body .elementor-element-fd93f6e .tf-nav-menu .menu-container > ul > li.current-menu-item > a,
body .elementor-element-fd93f6e .tf-nav-menu .menu-container > ul > li.current-menu-parent > a,
body .elementor-element-fd93f6e .tf-nav-menu .menu-container > ul > li.current-menu-ancestor > a,
body .elementor-element-fd93f6e .tf-nav-menu .menu-container > ul > li.current_page_item > a{ color:#46163A !important; background:rgba(70,22,58,.09) !important; }
/* Soulignés / puces générées */
body .elementor-element-fd93f6e .tf-nav-menu .menu-container > ul > li > a:before,
body .elementor-element-fd93f6e .tf-nav-menu .menu-container > ul > li.menu-item-has-children:hover > a::after{ background:#46163A !important; }
/* Icon-list de l'accueil */
body .elementor-element-49e7753d .elementor-icon-list-icon,
body .elementor-element-49e7753d .elementor-icon-list-icon i,
body .elementor-element-49e7753d .elementor-icon-list-icon svg,
body .elementor-element-49e7753d .elementor-icon-list-text{ color:#46163A !important; fill:#46163A !important; }

/* ============================================================
   PAGES SUPPORT (FAQ/Contact) — accent aubergine + nettoyage
   ============================================================ */
.horbinor-support-page{ --hb-accent:#46163A !important; --hb-accent-2:#5E1C4D !important; --hb-gold:#B0823F !important; }
/* Doublon brut « Questions pratiques » injecté par le mu-plugin : masqué (l'accordéon stylé au-dessus suffit) */
.horbinor-faq-grid{ display:none !important; }

/* ============================================================
   PANIER — bandeau d'aide pro propre (au lieu du texte brut)
   ============================================================ */
.horbinor-cart-help{
  display:block; max-width:1280px; margin:20px auto 28px; padding:20px 24px;
  background:#F8F2E8 !important; border:1px solid rgba(176,130,63,.35) !important;
  border-left:3px solid #46163A !important; border-radius:6px;
  font-family:"Jost",-apple-system,sans-serif !important; color:#4A3B42 !important; line-height:1.6;
}
.horbinor-cart-help strong{ display:block; font-family:"Cormorant Garamond",Georgia,serif !important; font-size:21px; color:#46163A !important; margin-bottom:5px; font-weight:600; }
.horbinor-cart-help span{ display:block; margin-bottom:12px; font-size:14px; color:#4A3B42; }
.horbinor-cart-help a{
  display:inline-flex; align-items:center; gap:.5em; font-size:12px; letter-spacing:.12em;
  text-transform:uppercase; color:#fff !important; background:#46163A !important; text-decoration:none !important;
  padding:11px 20px; border-radius:2px; transition:background .3s;
}
.horbinor-cart-help a:hover{ background:#2C0E24 !important; }
/* Panier vide : centrage + sobriété */
.woocommerce-cart .cart-empty.woocommerce-info{ text-align:center; font-family:"Jost",sans-serif; }

/* ============================================================
   FICHE PRODUIT — accent aubergine cohérent + CTA
   ============================================================ */
:root{ --horbinor-product-accent:#46163A !important; }
body.single-product .horbinor-single-cta{ background:#46163A !important; border-radius:4px !important; letter-spacing:.06em; font-weight:600 !important; }
body.single-product .horbinor-single-cta:hover{ background:#2C0E24 !important; }
/* Cadre image moins écrasant pour mieux voir le produit */
body.single-product .product .images{ background:linear-gradient(160deg,#FCF9F3,#EFE6D6) !important; }

/* Fiche produit MOBILE : image pleine largeur au-dessus du résumé */
@media (max-width:767px){
  body.single-product .product-wrap{ display:flex !important; flex-direction:column !important; gap:18px !important; }
  body.single-product .product-wrap > .sticky-sidebar,
  body.single-product .product .images{ width:100% !important; max-width:100% !important; float:none !important; margin:0 !important; }
  body.single-product .product .images .wp-post-image{ width:auto !important; max-width:78% !important; height:auto !important; margin:0 auto !important; }
  body.single-product .product .images::after,
  body.single-product .product .images::before{ display:none !important; }
}

/* Fiche produit : masque la barre de stock saumon (redondante avec « STOCK : X disponible(s) ») */
body.single-product .summary .progress,
body.single-product .entry-summary .progress{ display:none !important; }

/* ============================================================
   BON DE COMMANDE — fiche produit, panier, Mon compte
   ============================================================ */
/* Encart fiche produit */
body.single-product .hbx-bc-box .hbx-bc-price{ font-family:"Cormorant Garamond",serif; font-size:24px; color:#46163A; margin-bottom:14px; font-weight:600; }
body.single-product .hbx-bc-box .hbx-bc-price .horbinor-price-on-demand{ font-family:"Jost",sans-serif; font-size:14px; }
body.single-product .hbx-bc-box form.cart{ display:flex !important; gap:12px; align-items:stretch; margin:0 0 8px !important; flex-wrap:wrap; }
body.single-product .hbx-bc-box form.cart .quantity{ flex:0 0 auto; }
body.single-product .hbx-bc-box form.cart .quantity input.qty{ height:50px; width:74px; border:1px solid rgba(30,20,24,.18); border-radius:4px; text-align:center; font-family:"Jost",sans-serif; }
body.single-product .hbx-bc-box .single_add_to_cart_button{
  flex:1 1 auto; min-height:50px; padding:0 24px !important; border-radius:4px !important;
  background:#46163A !important; color:#fff !important; border:0 !important;
  font-family:"Jost",sans-serif !important; font-weight:600 !important; letter-spacing:.06em; text-transform:uppercase; font-size:13px !important;
  transition:background .3s !important;
}
body.single-product .hbx-bc-box .single_add_to_cart_button:hover{ background:#2C0E24 !important; }
body.single-product .hbx-bc-box .hbx-bc-note{ font-size:12.5px; color:#7A6B70; margin:10px 0 0; line-height:1.5; }

/* Bandeau validité (compte / commande) */
.hbx-bc-validity{ margin:18px 0; padding:14px 18px; border-radius:6px; background:#F8F2E8; border-left:3px solid #46163A; font-family:"Jost",sans-serif; font-size:14px; color:#4A3B42; }
.hbx-bc-validity.is-expired{ background:#FBEEE7; border-left-color:#B0823F; }
.hbx-bc-validity .hbx-btn{ display:inline-block; margin-left:10px; }

/* Mon compte : tableau des bons de commande */
.hbx-bc-account .hbx-bc-table{ width:100%; border-collapse:collapse; font-family:"Jost",sans-serif; }
.hbx-bc-account .hbx-bc-table th{ text-align:left; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#7A6B70; padding:10px 12px; border-bottom:1px solid rgba(30,20,24,.12); }
.hbx-bc-account .hbx-bc-table td{ padding:14px 12px; border-bottom:1px solid rgba(30,20,24,.08); font-size:14px; color:#1E1418; vertical-align:middle; }
.hbx-bc-account .hbx-bc-badge{ display:inline-block; padding:5px 11px; border-radius:999px; background:rgba(70,22,58,.10); color:#46163A; font-size:11px; font-weight:600; letter-spacing:.04em; }
.hbx-bc-account .hbx-bc-badge.is-expired{ background:rgba(176,130,63,.16); color:#8a5a1e; }
.hbx-bc-account .hbx-bc-link{ color:#46163A; font-weight:500; font-size:13px; text-decoration:none; }
.hbx-bc-account .hbx-bc-link:hover{ text-decoration:underline; }
.hbx-bc-account .hbx-bc-resubmit{ color:#B0823F; }
.hbx-bc-account .hbx-btn{ display:inline-block; margin-top:12px; background:#46163A; color:#fff; padding:12px 22px; border-radius:2px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; }
@media (max-width:560px){
  .hbx-bc-account .hbx-bc-table thead{ display:none; }
  .hbx-bc-account .hbx-bc-table, .hbx-bc-account .hbx-bc-table tbody, .hbx-bc-account .hbx-bc-table tr, .hbx-bc-account .hbx-bc-table td{ display:block; width:100%; }
  .hbx-bc-account .hbx-bc-table tr{ border:1px solid rgba(30,20,24,.12); border-radius:8px; margin-bottom:12px; padding:6px 10px; }
  .hbx-bc-account .hbx-bc-table td{ border:0; padding:6px 2px; }
}

/* Ré-affiche l'ajout au panier (masqué par le mu-plugin) DANS l'encart bon de commande */
body.single-product .summary.entry-summary .hbx-bc-box .cart{ display:flex !important; }
body.single-product .summary.entry-summary .hbx-bc-box .quantity{ display:block !important; }
body.single-product .summary.entry-summary .hbx-bc-box .single_add_to_cart_button{ display:inline-flex !important; align-items:center; justify-content:center; }

/* Inscription pro */
.hbx-reg-intro{ font-family:"Jost",sans-serif; font-size:13.5px; color:#7A6B70; margin:0 0 14px; }
.woocommerce-account .woocommerce-form-register .hbx-reg-intro + .form-row{ margin-top:4px; }

/* Boutons WooCommerce du parcours BC (compte / panier / checkout) -> aubergine */
.woocommerce-account button.button, .woocommerce-account input.button,
.woocommerce-form-login__submit, .woocommerce-form-register__submit,
.woocommerce form.checkout button, .woocommerce #place_order,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-cart button[name="update_cart"]{
  background-color:#46163A !important; color:#fff !important; border-color:#46163A !important;
}
.woocommerce-account button.button:hover, .woocommerce-form-login__submit:hover,
.woocommerce-form-register__submit:hover, .woocommerce #place_order:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover{
  background-color:#2C0E24 !important;
}

/* Mon compte (déconnecté) : formulaires Connexion + Créer un compte en PLEINE LARGEUR sur mobile */
@media (max-width:760px){
  .woocommerce-account #customer_login.u-columns.col2-set{ display:block !important; }
  .woocommerce-account #customer_login .u-column1.col-1,
  .woocommerce-account #customer_login .u-column2.col-2{
    width:100% !important; max-width:100% !important; float:none !important; margin:0 0 30px !important; padding:0 !important;
  }
  .woocommerce-account .woocommerce-form input.input-text,
  .woocommerce-account .woocommerce-form .form-row,
  .woocommerce-account .woocommerce-form-login,
  .woocommerce-account .woocommerce-form-register{ width:100% !important; box-sizing:border-box; }
}

/* Mobile : la barre de nav fixe en bas (.footer-shop onsus) recouvrait le bas des pages
   (boutons de formulaire « Créer un compte » / « Se connecter » non cliquables). On dégage. */
@media (max-width:767px){
  body.hbx-active{ padding-bottom:64px !important; }
  .footer-shop{ z-index:60; }
}

/* Cycle devis / virement (Mon compte) */
.hbx-bc-virement{ margin:24px 0; padding:20px 22px; border:1px solid rgba(176,130,63,.35); border-left:3px solid #46163A; border-radius:6px; background:#F8F2E8; font-family:"Jost",-apple-system,sans-serif; }
.hbx-bc-virement h3{ font-family:"Cormorant Garamond",Georgia,serif; color:#46163A; font-size:23px; margin:0 0 8px; font-weight:600; }
.hbx-bc-virement p{ margin:8px 0; color:#4A3B42; }
.hbx-vir-ref{ font-family:monospace; font-weight:700; color:#46163A; background:#fff; padding:3px 9px; border-radius:3px; border:1px solid rgba(70,22,58,.18); }
.hbx-bank-table{ width:100%; max-width:460px; margin:14px 0; border-collapse:collapse; background:#fff; border:1px solid rgba(30,20,24,.08); border-radius:4px; }
.hbx-bank-table th{ text-align:left; width:150px; color:#7A6B70; font-weight:500; padding:9px 14px; font-size:13px; border-bottom:1px solid rgba(30,20,24,.06); }
.hbx-bank-table td{ padding:9px 14px; font-weight:500; color:#1E1418; border-bottom:1px solid rgba(30,20,24,.06); }
.hbx-bc-accepted{ color:#2e7d32; font-weight:600; }
.hbx-bc-virement .hbx-btn{ display:inline-block; background:#46163A; color:#fff !important; padding:12px 22px; border-radius:2px; text-decoration:none; font-size:12px; letter-spacing:.1em; text-transform:uppercase; margin-top:6px; }
.hbx-bc-virement .hbx-btn:hover{ background:#2C0E24; }

/* Filtres catalogue : masque la case NATIVE (double checkbox) — bat woo/variation-swatches */
.hbx .hbx-fopt input[type="checkbox"],
.hbx .hbx-fopt input[type="radio"],
.hbx-filters .hbx-fopt input,
.hbx-catalog .hbx-fopt input{ display:none !important; }

/* Icônes : extrémités arrondies (sinon les puces du picto « liste » = traits nuls ne s'affichent pas) */
.hbx .hbx-i{ stroke-linecap:round; stroke-linejoin:round; }
.hbx-view .hbx-i{ width:18px; height:18px; }
.hbx-view button{ flex:0 0 auto; }
/* Barre d'outils catalogue : pas de débordement des icônes vue en mobile */
@media (max-width:560px){
  .hbx-toolbar{ flex-wrap:wrap; }
  .hbx-toolbar-r{ width:100%; flex-wrap:wrap; gap:10px; justify-content:flex-start; }
}

/* Masque les images Elementor décoratives sans source (placeholders « [image] » cassés) */
img[src=""], img:not([src]){ display:none !important; }

/* ============================================================
   CORRECTIFS centrage icônes (le thème ajoute du padding aux <button>)
   ============================================================ */
.hbx .hbx-search-go{ display:flex !important; align-items:center !important; justify-content:center !important; padding:0 !important; width:38px !important; height:38px !important; flex:0 0 auto; }
.hbx .hbx-view button{ display:flex !important; align-items:center !important; justify-content:center !important; padding:0 !important; width:40px !important; height:40px !important; flex:0 0 auto; }
.hbx .hbx-burger{ display:none; }
@media (max-width:860px){ .hbx .hbx-burger{ display:flex !important; align-items:center; justify-content:center; padding:0 !important; } }
.hbx .hbx-search-go svg, .hbx .hbx-view button svg, .hbx .hbx-allcats-btn svg, .hbx .hbx-burger svg{ display:block !important; margin:0 !important; vertical-align:middle !important; flex:0 0 auto; }

/* ============================================================
   SÉLECTEUR DE QUANTITÉ (fiche produit — wrapper .inner-quantity onsus)
   ============================================================ */
.hbx-bc-box .quantity{ display:inline-flex !important; margin:0 !important; max-width:none !important; }
.hbx-bc-box .quantity .inner-quantity{ display:flex; align-items:stretch; border:1px solid var(--hbx-line); border-radius:4px; overflow:hidden; height:50px; }
.hbx-bc-box .inner-quantity .qty_button{ width:42px; min-height:0 !important; height:auto !important; border:0 !important; background:#F8F2E8 !important; color:#46163A !important; font-size:18px; font-weight:600; line-height:1; cursor:pointer; padding:0 !important; margin:0 !important; border-radius:0 !important; transition:background .2s; -webkit-appearance:none; appearance:none; }
.hbx-bc-box .inner-quantity .qty_button:hover{ background:#efe2cf !important; }
.hbx-bc-box .inner-quantity input.qty{ width:58px !important; height:auto !important; border:0 !important; border-left:1px solid var(--hbx-line) !important; border-right:1px solid var(--hbx-line) !important; border-radius:0 !important; text-align:center; background:#fff !important; font-family:"Jost",sans-serif !important; margin:0 !important; -moz-appearance:textfield; }
.hbx-bc-box .inner-quantity input.qty::-webkit-outer-spin-button,
.hbx-bc-box .inner-quantity input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }

/* force le flex du wrapper quantité (le thème le met en inline-block) */
.hbx-bc-box .quantity .inner-quantity{ display:flex !important; width:max-content !important; }

/* Masque proprement le label « Quantity: » (lecteur d'écran seulement) dans l'encart produit */
.hbx-bc-box .quantity .screen-reader-text,
.hbx-bc-box .screen-reader-text{ position:absolute !important; width:1px !important; height:1px !important; margin:-1px !important; padding:0 !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }

/* ============================================================
   QUANTITÉ — reconstruction propre (le thème met -/+ en ABSOLU
   par-dessus l'input ; on élargit l'input pour voir la valeur).
   Spécificité .hbx-bc-box .quantity .inner-quantity pour écraser
   les règles flex précédentes.
   ============================================================ */
.hbx-bc-box .quantity .inner-quantity{ display:inline-block !important; position:relative !important; width:auto !important; height:50px !important; border:1px solid var(--hbx-line) !important; border-radius:4px !important; overflow:hidden; vertical-align:middle; }
.hbx-bc-box .quantity .inner-quantity input.qty{ width:112px !important; height:50px !important; box-sizing:border-box !important; padding:0 38px !important; margin:0 !important; border:0 !important; border-radius:4px !important; text-align:center !important; background:#fff !important; color:#1E1418 !important; font-size:16px !important; font-family:"Jost",-apple-system,sans-serif !important; line-height:50px !important; -moz-appearance:textfield; }
.hbx-bc-box .quantity .inner-quantity .qty_button{ position:absolute !important; top:0 !important; bottom:0 !important; height:50px !important; width:38px !important; min-height:0 !important; border:0 !important; background:#F8F2E8 !important; color:#46163A !important; font-size:18px !important; font-weight:600 !important; line-height:50px !important; text-align:center !important; cursor:pointer; padding:0 !important; margin:0 !important; border-radius:0 !important; z-index:2; -webkit-appearance:none !important; appearance:none !important; }
.hbx-bc-box .quantity .inner-quantity .qty_button.minus{ left:0 !important; right:auto !important; border-right:1px solid var(--hbx-line) !important; }
.hbx-bc-box .quantity .inner-quantity .qty_button.plus{ right:0 !important; left:auto !important; border-left:1px solid var(--hbx-line) !important; }
.hbx-bc-box .quantity .inner-quantity .qty_button:hover{ background:#efe2cf !important; }
.hbx-bc-box .quantity .inner-quantity input.qty::-webkit-outer-spin-button,
.hbx-bc-box .quantity .inner-quantity input.qty::-webkit-inner-spin-button{ -webkit-appearance:none !important; margin:0 !important; }

/* ============================================================
   ENCART PRODUIT — layout définitif : [quantité] [bouton] sur UNE ligne
   (écrase toutes les règles précédentes accumulées)
   ============================================================ */
.hbx-bc-box form.cart{ display:flex !important; flex-wrap:nowrap !important; align-items:center !important; gap:12px !important; margin:0 0 6px !important; }
.hbx-bc-box form.cart > .quantity{ flex:0 0 auto !important; width:auto !important; max-width:none !important; min-width:0 !important; margin:0 !important; display:inline-flex !important; }
.hbx-bc-box .quantity .inner-quantity{ width:124px !important; min-width:124px !important; height:50px !important; }
.hbx-bc-box .quantity .inner-quantity input.qty{ width:124px !important; min-width:124px !important; padding:0 40px !important; }
.hbx-bc-box form.cart .single_add_to_cart_button,
.hbx-bc-box form.cart .hbx-bc-add{ flex:1 1 auto !important; height:50px !important; min-height:50px !important; margin:0 !important; }

/* ============================================================
   BARRE DE CONNEXION RAPIDE (header, non connectés)
   ============================================================ */
.hbx-loginbar{ background:#1d0b18; border-bottom:1px solid rgba(255,255,255,.07); font-size:12.5px; }
.hbx-loginbar .hbx-wrap{ display:flex; align-items:center; gap:12px; min-height:42px; flex-wrap:wrap; }
.hbx-loginbar-txt{ color:var(--hbx-gold-2); font-weight:500; letter-spacing:.05em; white-space:nowrap; }
.hbx-loginbar-form{ display:flex; align-items:center; gap:8px; flex:1 1 auto; }
.hbx-loginbar-form input[type=text],
.hbx-loginbar-form input[type=password]{ height:30px !important; border:1px solid rgba(255,255,255,.18) !important; background:rgba(255,255,255,.06) !important; color:#fff !important; border-radius:3px !important; padding:0 10px !important; font-size:12.5px !important; width:190px !important; margin:0 !important; font-family:"Jost",sans-serif !important; }
.hbx-loginbar-form input::placeholder{ color:rgba(255,255,255,.5); }
.hbx-loginbar-form input:focus{ outline:none; border-color:var(--hbx-gold) !important; }
.hbx-loginbar-rm{ display:flex; align-items:center; gap:5px; color:rgba(255,255,255,.6); white-space:nowrap; cursor:pointer; }
.hbx-loginbar-rm input{ accent-color:var(--hbx-gold); width:auto !important; margin:0 !important; }
.hbx-loginbar-form button{ height:30px; padding:0 18px; background:var(--hbx-gold) !important; color:#231012 !important; border:0 !important; border-radius:3px !important; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; white-space:nowrap; transition:background .2s; }
.hbx-loginbar-form button:hover{ background:var(--hbx-gold-3) !important; }
.hbx-loginbar-reg{ color:var(--hbx-gold-2) !important; white-space:nowrap; font-weight:500; }
.hbx-loginbar-reg:hover{ color:#fff !important; }
.hbx-loginbar-err{ color:#ff9b9b; white-space:nowrap; }
@media (max-width:820px){
  .hbx-loginbar-txt, .hbx-loginbar-rm{ display:none; }
  .hbx-loginbar-form input[type=text], .hbx-loginbar-form input[type=password]{ width:auto !important; flex:1 1 90px; min-width:0; }
  .hbx-loginbar-reg{ display:none; }
}

/* Encart produit : bouton « Ajouter au bon de commande » EN DESSOUS du champ quantité */
.hbx-bc-box form.cart{ display:flex !important; flex-direction:column !important; align-items:stretch !important; flex-wrap:nowrap !important; gap:14px !important; }
.hbx-bc-box form.cart > .quantity{ align-self:flex-start !important; flex:0 0 auto !important; }
.hbx-bc-box form.cart .single_add_to_cart_button,
.hbx-bc-box form.cart .hbx-bc-add{ width:100% !important; flex:0 0 auto !important; }

/* Quantité collée à gauche (le label sr « Quantity: » occupait de la place) */
.hbx-bc-box .quantity > label.screen-reader-text,
.hbx-bc-box .quantity .screen-reader-text{ display:none !important; }
.hbx-bc-box form.cart > .quantity{ display:inline-flex !important; width:auto !important; max-width:none !important; justify-content:flex-start !important; align-self:flex-start !important; margin:0 !important; padding:0 !important; }
.hbx-bc-box .quantity .inner-quantity{ margin:0 !important; }

/* Barre de login : tient sur UNE ligne en mobile (inputs compressibles + bouton compact) */
@media (max-width:820px){
  .hbx-loginbar .hbx-wrap{ flex-wrap:nowrap !important; gap:7px !important; padding-inline:12px !important; }
  .hbx-loginbar-form{ min-width:0 !important; gap:6px !important; flex:1 1 auto !important; }
  .hbx-loginbar-form input[type=text],
  .hbx-loginbar-form input[type=password]{ width:auto !important; flex:1 1 0 !important; min-width:0 !important; padding:0 8px !important; }
  .hbx-loginbar-form button{ flex:0 0 auto !important; padding:0 12px !important; font-size:10px !important; letter-spacing:.04em; }
}

/* Bandeau « Bijoux précieux » (tf-products-banner.style3) : marge latérale en mobile (cohérent avec les cartes) */
@media (max-width:767px){
  .tf-products-banner.style3 .item-banner,
  .elementor-element-4b7476e5 .item-banner{ margin-left:12px !important; margin-right:12px !important; border-radius:10px !important; overflow:hidden !important; }
}

/* ── Recherche : autocomplétion (desktop + mobile) ───────────────────────── */
.hbx-search{ position:relative; }
.hbx-suggest{
  position:absolute; top:calc(100% + 8px); left:0; right:0; z-index:120;
  background:#fff; border:1px solid var(--hbx-line);
  border-radius:4px; box-shadow:0 18px 48px rgba(30,20,24,.16);
  overflow:hidden; max-height:min(70vh,460px); overflow-y:auto;
}
.hbx-suggest[hidden]{ display:none; }
.hbx-suggest-item{
  display:flex; align-items:center; gap:12px; padding:10px 14px;
  text-decoration:none; color:var(--hbx-ink); border-bottom:1px solid #f1ecee;
  transition:background .15s;
}
.hbx-suggest-item:last-of-type{ border-bottom:0; }
.hbx-suggest-item:hover,
.hbx-suggest-item.is-active{ background:#faf6f3; }
.hbx-suggest-item img,
.hbx-suggest-noimg{
  width:46px; height:46px; flex:0 0 auto; object-fit:cover;
  border-radius:3px; background:#f3eef0; border:1px solid #f1ecee;
}
.hbx-suggest-txt{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.hbx-suggest-name{
  font-size:13.5px; line-height:1.35; color:var(--hbx-ink);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.hbx-suggest-price{ font-size:12.5px; color:var(--hbx-accent); font-weight:600; }
.hbx-suggest-price del{ color:var(--hbx-soft); font-weight:400; margin-right:5px; }
.hbx-suggest-empty{ padding:16px 14px; font-size:13.5px; color:var(--hbx-soft); text-align:center; }
.hbx-suggest-all{
  display:block; width:100%; text-align:center; padding:11px 14px;
  background:var(--hbx-accent); color:#fff; border:0; cursor:pointer;
  font-size:12.5px; font-weight:600; letter-spacing:.03em;
}
.hbx-suggest-all:hover{ background:var(--hbx-ink); }

/* ── Carte « Mon compte / client professionnel » (style1) : trop tassée en mobile ── */
@media (max-width:767px){
  .elementor-element-7d6bcc0 .tf-products-banner.style1,
  .elementor-element-7d6bcc0 .item-banner{
    height:auto !important;
    min-height:210px !important;
  }
  .elementor-element-7d6bcc0 .item-banner{
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    padding-top:26px !important;
    padding-bottom:26px !important;
  }
  .elementor-element-7d6bcc0 .item-banner .inner{
    width:100% !important;
    height:auto !important;
  }
  .elementor-element-7d6bcc0 .item-banner .button-banner{
    margin-top:14px !important;
  }
}

/* ── Toolbar « Tri » : le <select> du thème (padding 10px + margin-bottom 16px) gonflait la boîte ── */
.hbx .hbx-sort{ height:40px !important; padding:0 12px !important; align-items:center !important; line-height:1 !important; }
.hbx .hbx-sort span{ line-height:40px !important; display:inline-flex; align-items:center; }
.hbx .hbx-sort select{
  margin:0 !important; padding:0 !important;
  height:38px !important; min-height:0 !important; line-height:38px !important;
  background:none !important; border:0 !important; box-shadow:none !important;
  vertical-align:middle !important; max-width:none !important;
}

/* ── Méga-menu « Tous les univers » : pont de survol invisible sur l'espace bouton→panneau ──
   Sans ça, la souris traverse les 8px de gap (ni bouton ni panneau survolé) et le menu se ferme. */
.hbx-allcats .hbx-mega::before{
  content:""; position:absolute; left:0; right:0; top:-14px; height:16px; background:transparent;
}
/* zone tampon aussi sous le bouton pour fiabiliser l'entrée */
.hbx-allcats .hbx-allcats-btn{ position:relative; }

/* ── Effets de survol sur les termes du méga-menu « Tous les univers » ── */
/* Univers (titres) : teinte douce + glissement + couleur accent */
.hbx-headwrap .hbx-mega-menu > li > a{
  padding:6px 10px !important;
  border-radius:5px;
  transition:color .25s ease, background-color .25s ease, padding-left .28s var(--hbx-ease) !important;
}
.hbx-headwrap .hbx-mega-menu > li > a:hover{
  color:var(--hbx-accent) !important;
  background:var(--hbx-paper-2) !important;
  padding-left:16px !important;
}
/* Sous-catégories : chevron doré qui glisse + texte qui avance */
.hbx-headwrap .hbx-mega-menu .sub-menu a{
  position:relative;
  padding:3px 10px !important;
  border-radius:4px;
  transition:color .22s ease, background-color .22s ease, padding-left .24s var(--hbx-ease) !important;
}
.hbx-headwrap .hbx-mega-menu .sub-menu a::before{
  content:"\203A"; /* › */
  position:absolute; left:6px; top:50%;
  transform:translateY(-50%) translateX(-6px);
  color:var(--hbx-gold); font-size:14px; line-height:1; font-weight:700;
  opacity:0; transition:opacity .22s ease, transform .24s var(--hbx-ease);
}
.hbx-headwrap .hbx-mega-menu .sub-menu a:hover{
  color:var(--hbx-accent) !important;
  background:rgba(176,130,63,.07) !important;
  padding-left:20px !important;
}
.hbx-headwrap .hbx-mega-menu .sub-menu a:hover::before{
  opacity:1; transform:translateY(-50%) translateX(0);
}
