/* ============================================================
   IBeta Market — Page Layouts
   ============================================================ */

/* ============================================================
   CATALOG / SHOP ARCHIVE
   ============================================================ */
.ib-shop {
  display: grid;
  grid-template-columns: var(--ib-rail) 1fr;
  gap: 20px;
  padding: 20px var(--ib-sp-8) 0;
}
.ib-shop__main { min-width: 0; }

.ib-shop__toolbar {
  display: flex; justify-content: flex-end; align-items: center;
  gap: 14px; margin-bottom: 14px;
}
.ib-shop__sort-label { font-size: 13px; color: var(--ib-sub); }
.ib-shop__sort {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  font-size: 13px; font-weight: 600;
  color: var(--ib-ink); background: #fff;
  cursor: pointer;
}
.ib-shop__view {
  display: flex; gap: 6px;
}

.ib-shop__hero-grid {
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 16px;
  margin-bottom: 18px;
}
.ib-shop__hero-trust {
  display: flex; flex-direction: column; gap: 12px;
}
.ib-shop__hero-trust-card {
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  padding: 14px;
  display: flex; align-items: center; gap: 12px;
}
.ib-shop__hero-trust-icon {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--ib-primary-lt);
  display: flex; align-items: center; justify-content: center;
  color: var(--ib-primary);
}
.ib-shop__hero-trust-title { font-size: 13px; font-weight: 700; color: var(--ib-ink); line-height: 1.25; }
.ib-shop__hero-trust-sub { font-size: 11px; color: var(--ib-sub); line-height: 1.25; }

.ib-mobile-filterbar {
  display: none;
  align-items: center; justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  background: #fff;
  border-bottom: 1px solid var(--ib-line);
  position: sticky;
  top: var(--ib-header-h-mob);
  z-index: 50;
}
.ib-mobile-filterbar__btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  background: #fff;
  font-size: 13px; font-weight: 600;
  color: var(--ib-ink);
}

/* ============================================================
   PRODUCT DETAIL
   ============================================================ */
.ib-pdp {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  gap: 36px;
  padding: 14px var(--ib-sp-8) 32px;
  align-items: start;
}
/* Sticky gallery — follows scroll while user reads info / trust rows */
.ib-pdp > .ib-pdp__gallery {
  position: sticky;
  top: 24px;
  align-self: start;
}
@media (max-width: 1024px) {
  .ib-pdp { grid-template-columns: 1fr; gap: 24px; }
  .ib-pdp > .ib-pdp__gallery { position: static; }
}
.ib-pdp__gallery {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 16px;
}
.ib-pdp__thumbs {
  display: flex; flex-direction: column; gap: 10px;
}
.ib-pdp__thumb {
  width: 80px; height: 80px;
  background: var(--ib-soft);
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  padding: 6px;
  cursor: pointer;
  transition: border var(--ib-tr-base);
  display: flex; align-items: center; justify-content: center;
}
.ib-pdp__thumb.is-active { border: 2px solid var(--ib-primary); }
.ib-pdp__thumb-360 {
  border-style: dashed;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 3px;
  font-size: 9px; font-weight: 600; color: var(--ib-sub);
  letter-spacing: 0.04em;
  background: #fff;
}
.ib-pdp__main-img {
  position: relative;
  background: linear-gradient(135deg, #F4F5F8 0%, #EEF0FF 100%);
  border-radius: var(--ib-r-xl);
  min-height: 540px;
  display: flex; align-items: center; justify-content: center;
}
.ib-pdp__badges {
  position: absolute; top: 18px; left: 18px;
  display: flex; flex-direction: column; gap: 6px;
}
.ib-pdp__actions {
  position: absolute; top: 18px; right: 18px;
  display: flex; flex-direction: column; gap: 8px;
}
.ib-pdp__nav-arrow {
  position: absolute; top: 50%;
  transform: translateY(-50%);
  width: 40px; height: 40px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--ib-line);
  box-shadow: var(--ib-shadow-md);
  display: flex; align-items: center; justify-content: center;
  color: var(--ib-ink);
  cursor: pointer;
}
.ib-pdp__nav-arrow--prev { left: 18px; }
.ib-pdp__nav-arrow--next { right: 18px; }
.ib-pdp__dots {
  position: absolute; bottom: 14px; left: 50%;
  transform: translateX(-50%);
  display: flex; gap: 6px;
}
.ib-pdp__dot {
  width: 8px; height: 8px;
  border-radius: 4px;
  background: #D1D5DB;
  transition: width var(--ib-tr-base), background var(--ib-tr-base);
}
.ib-pdp__dot.is-active { width: 22px; background: var(--ib-primary); }

.ib-pdp__title {
  font-size: 36px; font-weight: 800;
  color: var(--ib-ink); letter-spacing: -0.03em;
  line-height: 1.1;
  margin: 0 0 10px;
}
.ib-pdp__sku {
  font-size: 14px; color: var(--ib-sub); margin-bottom: 14px;
}
.ib-pdp__sku strong { color: var(--ib-ink); font-weight: 600; }
.ib-pdp__rating-row {
  display: flex; align-items: center; gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--ib-line);
}
.ib-pdp__price-row {
  display: flex; align-items: baseline; gap: 14px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.ib-pdp__price-now {
  font-size: 42px; font-weight: 800; color: var(--ib-ink);
  letter-spacing: -0.03em;
}
.ib-pdp__price-old {
  font-size: 18px; color: var(--ib-mute);
  text-decoration: line-through;
}
.ib-pdp__price-pct {
  background: var(--ib-bd-sale-bg); color: var(--ib-bd-sale-fg);
  font-size: 12px; font-weight: 700;
  padding: 4px 10px; border-radius: var(--ib-r-sm);
}
.ib-pdp__save {
  font-size: 13px; color: var(--ib-danger); font-weight: 600;
  margin-bottom: 18px;
}

.ib-pdp__option-group { margin-bottom: 18px; }
.ib-pdp__option-label {
  font-size: 13px; font-weight: 700; color: var(--ib-ink);
  margin-bottom: 10px;
}
.ib-pdp__option-label strong { color: var(--ib-sub); font-weight: 500; margin-left: 6px; }
.ib-pdp__color-swatches { display: flex; gap: 10px; }
.ib-pdp__swatch {
  width: 42px; height: 42px;
  border-radius: 50%;
  border: 2px solid var(--ib-line);
  cursor: pointer;
  padding: 0;
  background-clip: padding-box;
}
.ib-pdp__swatch.is-active {
  border: 3px solid var(--ib-primary);
  box-shadow: 0 0 0 3px var(--ib-primary-lt);
}
.ib-pdp__variants {
  display: flex; gap: 10px; flex-wrap: wrap;
}
.ib-pdp__variant {
  padding: 10px 18px;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  background: #fff;
  color: var(--ib-ink);
  font-size: 13px; font-weight: 600;
  cursor: pointer;
  transition: border var(--ib-tr-base), background var(--ib-tr-base), color var(--ib-tr-base);
}
.ib-pdp__variant.is-active {
  border: 2px solid var(--ib-primary);
  padding: 9px 17px;
  background: var(--ib-primary-lt);
  color: var(--ib-primary);
}

.ib-pdp__highlights {
  background: var(--ib-soft);
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-lg);
  padding: 14px 18px;
  margin-bottom: 20px;
}
.ib-pdp__highlights-title { font-size: 13px; font-weight: 700; margin-bottom: 10px; }
.ib-pdp__highlights-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.ib-pdp__highlight {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 12px; color: var(--ib-ink); font-weight: 500;
}
.ib-pdp__highlight svg { color: var(--ib-success); flex-shrink: 0; margin-top: 1px; }

.ib-pdp__cta-row {
  display: grid; grid-template-columns: auto 1fr 1fr;
  gap: 10px; margin-bottom: 14px;
}
.ib-pdp__cta-row .ib-btn { padding: 12px; }

.ib-pdp__delivery {
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-lg);
  overflow: hidden;
}
.ib-pdp__delivery-row {
  display: flex; align-items: center; gap: 14px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--ib-line);
}
.ib-pdp__delivery-row:last-child { border-bottom: none; }
.ib-pdp__delivery-row svg { color: var(--ib-primary); flex-shrink: 0; }
.ib-pdp__delivery-title { font-size: 13px; font-weight: 700; line-height: 1.25; }
.ib-pdp__delivery-sub { font-size: 12px; color: var(--ib-sub); line-height: 1.25; }

/* Tabs */
.ib-pdp__tabs {
  border-top: 1px solid var(--ib-line);
  padding: 0 var(--ib-sp-8);
}
.ib-pdp__tabs-nav {
  display: flex; gap: 32px;
  border-bottom: 1px solid var(--ib-line);
  overflow-x: auto;
  scrollbar-width: none;
}
.ib-pdp__tabs-nav::-webkit-scrollbar { display: none; }
.ib-pdp__tab {
  padding: 18px 0;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--ib-sub);
  font-size: 14px; font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--ib-tr-base), border var(--ib-tr-base);
}
.ib-pdp__tab.is-active {
  color: var(--ib-primary);
  border-bottom-color: var(--ib-primary);
  font-weight: 700;
}
.ib-pdp__tab-pane {
  display: none;
  padding: 24px 0;
}
.ib-pdp__tab-pane.is-active { display: block; }
.ib-pdp__tab-pane--description {
  display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
}
.ib-pdp__specs {
  background: var(--ib-soft);
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-lg);
  padding: 20px 24px;
}
.ib-pdp__specs-title { font-size: 13px; font-weight: 700; margin-bottom: 14px; }
.ib-pdp__specs-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 10px 24px;
  font-size: 13px;
}
.ib-pdp__specs-grid dt { color: var(--ib-sub); }
.ib-pdp__specs-grid dd { color: var(--ib-ink); font-weight: 600; margin: 0; }

/* Vue 3D tab (custom from 3D viewer plugin) */
.ib-pdp__3d-wrap {
  background: var(--ib-soft);
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-xl);
  overflow: hidden;
  height: 540px;
  position: relative;
}
.ib-pdp__3d-wrap model-viewer {
  width: 100%; height: 100%;
  background: transparent;
  --poster-color: transparent;
}
.ib-pdp__3d-hint {
  position: absolute; bottom: 16px; left: 16px;
  background: rgba(255,255,255,0.95);
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  padding: 8px 14px;
  font-size: 12px; color: var(--ib-sub);
  display: flex; align-items: center; gap: 8px;
}

/* Related */
.ib-related {
  padding: 28px var(--ib-sp-8) 0;
}
.ib-related__head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 18px;
}
.ib-related__title {
  font-size: 24px; font-weight: 800; letter-spacing: -0.02em;
}

/* ============================================================
   CHECKOUT
   ============================================================ */
/* ============================================================
   CHECKOUT — "Premium purchase ritual"
   Oversized numerals · layered depth · glassmorphic vault summary
   ============================================================ */
body.woocommerce-checkout { background: linear-gradient(180deg, #F5F7FF 0%, #ECF1FF 100%); overflow-x: clip; }

.ib-checkout-shell {
  max-width: 1280px;
  margin: 0 auto;
  padding: 16px 16px 96px;
  position: relative;
  isolation: isolate;
}
/* Ambient aurora behind the whole page — subtle, slow */
.ib-checkout-shell::before {
  content: '';
  position: absolute; inset: 0 0 auto 0;
  height: 60vh;
  background:
    radial-gradient(circle at 18% 22%, rgba(110,91,240,0.22), transparent 55%),
    radial-gradient(circle at 82% 18%, rgba(24,85,204,0.20), transparent 55%),
    radial-gradient(circle at 50% 60%, rgba(224,17,95,0.10), transparent 60%);
  filter: blur(60px);
  z-index: -1;
  pointer-events: none;
  animation: ib-co-aurora 22s ease-in-out infinite alternate;
}
@keyframes ib-co-aurora {
  0%   { transform: translate3d(0,0,0) scale(1); }
  100% { transform: translate3d(20px,-12px,0) scale(1.05); }
}

/* === Hero === */
.ib-checkout__hero {
  text-align: left;
  padding: 24px 8px 32px;
}
.ib-checkout__hero-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ib-primary, #1855CC);
  background: rgba(24,85,204,.08);
  border-radius: 999px;
  padding: 6px 14px;
  margin-bottom: 16px;
}
.ib-checkout__hero-eyebrow::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: var(--ib-primary, #1855CC);
  animation: ib-pulse-dot 1.6s ease-in-out infinite;
}
@keyframes ib-pulse-dot {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.4); opacity: .5; }
}
.ib-checkout__hero-title {
  font-size: clamp(36px, 5vw, 56px);
  font-weight: 900;
  letter-spacing: -2.5px;
  line-height: 1.02;
  margin: 0 0 12px;
  color: var(--ib-ink, #0A1628);
}
.ib-checkout__hero-title em {
  font-style: normal;
  background: linear-gradient(120deg, #1855CC 0%, #6E5BF0 55%, #E0115F 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.ib-checkout__hero-sub {
  font-size: 16px;
  color: var(--ib-sub, #5B6B85);
  max-width: 560px;
  line-height: 1.55;
}

/* === Two-column layout === */
.ib-checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 40px;
  align-items: start;
}

/* === Numbered step section === */
.ib-step {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 24px;
  margin-bottom: 36px;
  animation: ib-step-in .65s cubic-bezier(.2,.9,.3,1.2) backwards;
}
.ib-step:nth-child(1) { animation-delay: .05s; }
.ib-step:nth-child(2) { animation-delay: .14s; }
.ib-step:nth-child(3) { animation-delay: .23s; }
@keyframes ib-step-in {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ib-step__rail {
  display: flex; flex-direction: column; align-items: center;
  position: sticky; top: calc(var(--ib-header-h, 134px) + 24px);
  height: max-content;
}
.ib-step__numeral {
  font-size: 88px; font-weight: 900;
  line-height: .9;
  letter-spacing: -6px;
  background: linear-gradient(160deg, #1855CC 0%, #6E5BF0 55%, #E0115F 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 2px 0 rgba(24,85,204,.04);
  margin-bottom: 12px;
  user-select: none;
}
.ib-step__rail-line {
  width: 2px; flex: 1;
  background: linear-gradient(180deg, rgba(110,91,240,.25), transparent);
  margin-top: 4px;
  min-height: 60px;
}
.ib-step__content { min-width: 0; }
.ib-step__title {
  font-size: 22px; font-weight: 800;
  letter-spacing: -.6px;
  margin: 16px 0 6px;
  color: var(--ib-ink, #0A1628);
}
.ib-step__sub {
  font-size: 13px; color: var(--ib-sub, #5B6B85);
  margin: 0 0 18px;
}
.ib-step__card {
  background: #fff;
  border: 1px solid rgba(225,232,242,.8);
  border-radius: 20px;
  padding: 28px 32px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.8) inset,
    0 1px 2px rgba(10,22,40,.04),
    0 12px 36px -16px rgba(24,85,204,.18);
  position: relative;
  overflow: hidden;
}
.ib-step__card::before {
  content: '';
  position: absolute; top: -40px; right: -40px;
  width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(110,91,240,.08), transparent 70%);
  pointer-events: none;
}

/* === WC form fields restyled === */
.ib-checkout .form-row {
  margin: 0 0 18px;
  padding: 0;
  display: block;
  position: relative;
}
.ib-checkout .form-row.form-row-first,
.ib-checkout .form-row.form-row-last {
  display: inline-block;
  width: calc(50% - 8px);
  vertical-align: top;
}
.ib-checkout .form-row.form-row-first { margin-right: 12px; }
.ib-checkout .form-row label {
  display: block;
  font-size: 11px; font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin-bottom: 6px;
}
.ib-checkout .form-row label .required,
.ib-checkout .form-row label abbr.required {
  color: var(--ib-pink, #E0115F);
  text-decoration: none;
  margin-left: 2px;
  border: none;
}
.ib-checkout .form-row .input-text,
.ib-checkout .form-row select,
.ib-checkout .form-row textarea {
  width: 100%;
  padding: 14px 16px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ib-ink, #0A1628);
  background: #FAFBFE;
  border: 1.5px solid #E1E8F2;
  border-radius: 12px;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
  font-family: inherit;
}
.ib-checkout .form-row .input-text:hover,
.ib-checkout .form-row select:hover { border-color: #C9D4E5; background: #fff; }
.ib-checkout .form-row .input-text:focus,
.ib-checkout .form-row select:focus,
.ib-checkout .form-row textarea:focus {
  outline: none;
  border-color: var(--ib-primary, #1855CC);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(24,85,204,.10);
}
.ib-checkout .form-row textarea { min-height: 90px; resize: vertical; }
.ib-checkout .select2-container--default .select2-selection--single {
  height: 50px;
  padding: 7px 6px;
  background: #FAFBFE;
  border: 1.5px solid #E1E8F2 !important;
  border-radius: 12px !important;
}
.ib-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 32px; padding-left: 10px;
  font-size: 14px; color: var(--ib-ink);
}
.ib-checkout .select2-container--default .select2-selection--single .select2-selection__arrow { height: 48px; }
.ib-checkout .form-row.woocommerce-validated .input-text { border-color: rgba(16,185,129,.4); }
.ib-checkout .form-row.woocommerce-invalid .input-text { border-color: rgba(220,38,38,.5); }
.ib-checkout .woocommerce-input-wrapper { display: block; width: 100%; }

/* Account create checkbox row */
.ib-checkout .create-account label.checkbox {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; font-weight: 600;
  color: var(--ib-ink, #0A1628);
  text-transform: none; letter-spacing: 0;
  cursor: pointer;
}
.ib-checkout .create-account input[type="checkbox"] {
  width: 18px; height: 18px;
  accent-color: var(--ib-primary, #1855CC);
}

/* === Payment tiles === */
.ib-pay-grid {
  display: grid; gap: 12px;
  margin-bottom: 8px;
}
.ib-pay-tile {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 18px 22px;
  background: #fff;
  border: 1.5px solid #E1E8F2;
  border-radius: 14px;
  cursor: pointer;
  transition: border-color .2s ease, transform .2s ease, box-shadow .25s ease, background .2s ease;
  position: relative;
  overflow: hidden;
}
.ib-pay-tile:hover {
  transform: translateY(-1px);
  border-color: #C9D4E5;
  box-shadow: 0 6px 20px -8px rgba(24,85,204,.18);
}
.ib-pay-tile.is-active {
  border-color: var(--ib-primary, #1855CC);
  background: linear-gradient(180deg, #fff, #F8FAFF);
  box-shadow:
    0 0 0 1px var(--ib-primary, #1855CC) inset,
    0 8px 24px -8px rgba(24,85,204,.32);
}
.ib-pay-tile.is-active::after {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, #1855CC 0%, #6E5BF0 60%, #E0115F 100%);
}
.ib-pay-tile__radio {
  width: 24px; height: 24px;
  border: 2px solid #C9D4E5;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
  transition: border-color .2s ease;
}
.ib-pay-tile.is-active .ib-pay-tile__radio { border-color: var(--ib-primary, #1855CC); }
.ib-pay-tile.is-active .ib-pay-tile__radio::after {
  content: ''; position: absolute; inset: 4px;
  background: var(--ib-primary, #1855CC); border-radius: 50%;
  animation: ib-radio-pop .25s cubic-bezier(.2,.9,.3,1.2);
}
@keyframes ib-radio-pop { from { transform: scale(0); } to { transform: scale(1); } }
.ib-pay-tile__name {
  font-size: 15px; font-weight: 800;
  color: var(--ib-ink, #0A1628);
  letter-spacing: -.2px;
}
.ib-pay-tile__sub {
  font-size: 12px; color: var(--ib-sub, #5B6B85);
  margin-top: 3px; line-height: 1.4;
}
.ib-pay-tile__icons {
  display: flex; align-items: center; gap: 6px;
}
.ib-pay-tile__icons img { height: 22px; width: auto; max-width: none; }
.ib-pay-tile__chip {
  font-size: 10px; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase;
  padding: 4px 9px;
  background: rgba(16,185,129,.12); color: #047857;
  border-radius: 999px;
}
.ib-pay-tile__expand {
  grid-column: 2 / 4;
  margin-top: 14px; padding-top: 16px;
  border-top: 1px dashed rgba(225,232,242,.9);
  font-size: 13px;
  color: var(--ib-sub, #5B6B85);
}
.ib-pay-tile__expand p:last-child { margin-bottom: 0; }
.ib-pay-tile:not(.is-active) .ib-pay-tile__expand { display: none; }

/* === Vault summary (sticky right rail) === */
.ib-vault {
  position: sticky;
  top: calc(var(--ib-header-h, 134px) + 16px);
  background: rgba(255,255,255,.78);
  backdrop-filter: saturate(160%) blur(18px);
  -webkit-backdrop-filter: saturate(160%) blur(18px);
  border: 1px solid rgba(225,232,242,.7);
  border-radius: 24px;
  padding: 0;
  overflow: hidden;
  isolation: isolate;
  box-shadow:
    0 1px 0 rgba(255,255,255,.8) inset,
    0 24px 48px -16px rgba(24,85,204,.22),
    0 4px 12px rgba(10,22,40,.06);
  animation: ib-vault-in .8s cubic-bezier(.2,.9,.3,1.2) .1s backwards;
}
@keyframes ib-vault-in {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ib-vault::before {
  content: '';
  position: absolute; inset: -40px -32px;
  background:
    radial-gradient(circle at 20% 12%, rgba(110,91,240,.30), transparent 55%),
    radial-gradient(circle at 78% 88%, rgba(24,85,204,.22), transparent 55%),
    radial-gradient(circle at 50% 50%, rgba(224,17,95,.10), transparent 60%);
  filter: blur(40px);
  z-index: -1;
  pointer-events: none;
}
.ib-vault__head {
  padding: 22px 24px 14px;
  border-bottom: 1px dashed rgba(225,232,242,.9);
  display: flex; align-items: baseline; justify-content: space-between;
}
.ib-vault__title {
  font-size: 16px; font-weight: 800;
  letter-spacing: -.3px;
  color: var(--ib-ink, #0A1628);
  margin: 0;
}
.ib-vault__count {
  font-size: 12px; font-weight: 700;
  color: var(--ib-sub, #5B6B85);
}
.ib-vault__items {
  list-style: none; margin: 0; padding: 8px 24px;
  max-height: 280px; overflow-y: auto;
  scrollbar-width: thin;
}
.ib-vault__item {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) auto;
  gap: 12px; align-items: center;
  padding: 10px 0;
  border-bottom: 1px dashed rgba(225,232,242,.6);
}
.ib-vault__item:last-child { border-bottom: none; }
.ib-vault__thumb {
  width: 56px; height: 56px;
  border-radius: 10px;
  background: #F5F7FF;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  position: relative;
  border: 1px solid rgba(225,232,242,.6);
}
.ib-vault__thumb img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.ib-vault__qty {
  position: absolute; top: -6px; right: -6px;
  min-width: 22px; height: 22px;
  background: var(--ib-ink, #0A1628);
  color: #fff;
  border-radius: 999px;
  font-size: 11px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  padding: 0 6px;
  border: 2px solid #fff;
}
.ib-vault__name { font-size: 13px; font-weight: 700; color: var(--ib-ink, #0A1628); line-height: 1.3; }
.ib-vault__unit { font-size: 11px; color: var(--ib-sub, #5B6B85); margin-top: 2px; }
.ib-vault__line { font-size: 13px; font-weight: 800; color: var(--ib-ink, #0A1628); white-space: nowrap; }

.ib-vault__totals {
  margin: 0; padding: 16px 24px;
  border-top: 1px dashed rgba(225,232,242,.9);
}
.ib-vault__totals-row {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 5px 0;
  font-size: 13px; color: var(--ib-sub, #5B6B85);
}
.ib-vault__totals-row dt { margin: 0; }
.ib-vault__totals-row dd { margin: 0; color: var(--ib-ink, #0A1628); font-weight: 700; }
.ib-vault__totals-row--free dd { color: #047857; font-weight: 800; }
.ib-vault__totals-row--grand {
  border-top: 1px solid rgba(225,232,242,.9);
  padding: 14px 0 6px; margin-top: 8px;
  align-items: baseline;
}
.ib-vault__totals-row--grand dt {
  font-size: 14px; font-weight: 800;
  color: var(--ib-ink, #0A1628);
  text-transform: uppercase; letter-spacing: .08em;
}
.ib-vault__totals-row--grand dd {
  font-size: 26px; font-weight: 900;
  letter-spacing: -.8px;
  background: linear-gradient(120deg, #1855CC 0%, #6E5BF0 55%, #E0115F 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}

.ib-vault__cta-wrap { padding: 0 24px 22px; }
.ib-vault__cta {
  display: flex; align-items: center; justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 18px 22px;
  font-size: 15px; font-weight: 800;
  letter-spacing: .2px;
  color: #fff;
  background: linear-gradient(120deg, #0F3A99 0%, #1855CC 35%, #6E5BF0 100%);
  background-size: 180% 180%;
  background-position: 0% 50%;
  border: none;
  border-radius: 14px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  box-shadow:
    0 1px 0 rgba(255,255,255,.25) inset,
    0 0 0 1px rgba(24,85,204,.4),
    0 12px 28px -8px rgba(24,85,204,.55);
  transition: background-position .6s ease, transform .15s ease, box-shadow .25s ease;
}
.ib-vault__cta::before {
  content: '';
  position: absolute; top: 0; left: -60%;
  width: 50%; height: 100%;
  background: linear-gradient(110deg, transparent, rgba(255,255,255,.35), transparent);
  transform: skewX(-20deg);
  animation: ib-cta-shimmer 3.5s ease-in-out infinite;
}
@keyframes ib-cta-shimmer {
  0%, 60%, 100% { left: -60%; }
  80%           { left: 130%; }
}
.ib-vault__cta:hover {
  background-position: 100% 50%;
  transform: translateY(-2px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.25) inset,
    0 0 0 1px rgba(24,85,204,.5),
    0 18px 36px -8px rgba(24,85,204,.6);
}
.ib-vault__cta:active { transform: translateY(0); }
.ib-vault__cta:disabled { opacity: .65; cursor: not-allowed; }
.ib-vault__cta svg { transition: transform .2s ease; }
.ib-vault__cta:hover svg { transform: translateX(3px); }

.ib-vault__trust {
  padding: 0 24px 22px;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  font-size: 11px; font-weight: 600;
  color: var(--ib-sub, #5B6B85);
  text-align: center;
}
.ib-vault__trust svg { color: #047857; }

.ib-vault__terms {
  padding: 14px 24px 0;
  font-size: 11.5px; color: var(--ib-sub, #5B6B85);
  line-height: 1.5;
}
.ib-vault__terms a { color: var(--ib-primary, #1855CC); font-weight: 600; }

/* Promo input (matches cart pattern) */
.ib-vault__promo {
  margin: 0 24px 4px;
  padding: 12px 14px;
  background: rgba(24,85,204,.04);
  border: 1.5px dashed rgba(24,85,204,.25);
  border-radius: 12px;
}
.ib-vault__promo-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.ib-vault__promo-input {
  width: 100%;
  padding: 8px 12px;
  font-size: 12px; font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  border: 1px solid rgba(225,232,242,.9);
  border-radius: 8px;
  background: #fff;
}
.ib-vault__promo-input:focus { outline: 2px solid rgba(24,85,204,.18); border-color: var(--ib-primary, #1855CC); }
.ib-vault__promo-btn {
  padding: 8px 14px;
  font-size: 11px; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase;
  background: var(--ib-ink, #0A1628);
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
}

/* WC notices on checkout (and globally on the checkout page) */
body.woocommerce-checkout .woocommerce-notices-wrapper { max-width: 1280px; margin: 0 auto; padding: 0 16px; }
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-message {
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(225,232,242,.8);
  border-left: 4px solid var(--ib-primary, #1855CC);
  border-radius: 12px;
  padding: 12px 18px;
  font-size: 13px;
  list-style: none;
  margin: 0 0 10px;
  box-shadow: 0 6px 18px rgba(10,22,40,.06);
}
body.woocommerce-checkout .woocommerce-error { border-left-color: var(--ib-danger, #DC2626); }
body.woocommerce-checkout .woocommerce-message { border-left-color: var(--ib-success, #10B981); }
/* Hide WC's icon-font ::before — overlaps text since we don't reserve padding. */
body.woocommerce-checkout .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-message::before,
body.woocommerce-checkout .woocommerce-error::before { display: none !important; content: none !important; }
body.woocommerce-checkout .showcoupon { color: var(--ib-primary, #1855CC); font-weight: 700; }
body.woocommerce-checkout .button.wc-forward { display: none; } /* hide "View cart" pill in cart-add notice */

/* Privacy / terms text inside payment block */
.ib-payment-methods .woocommerce-privacy-policy-text,
.ib-payment-methods .wc-terms-and-conditions {
  font-size: 12px; color: var(--ib-sub, #5B6B85);
  line-height: 1.5;
  padding: 14px 0 0;
  border-top: 1px dashed rgba(225,232,242,.9);
  margin-top: 14px;
}
.ib-payment-methods .woocommerce-privacy-policy-text a { color: var(--ib-primary, #1855CC); font-weight: 600; }

/* Section completion check */
.ib-step.is-complete .ib-step__numeral {
  background: linear-gradient(160deg, #10B981 0%, #047857 100%);
  -webkit-background-clip: text; background-clip: text;
}

/* Optional/secondary step (Options de livraison) */
.ib-step--options .ib-step__title { font-size: 17px; }
.ib-step__numeral--mini {
  font-size: 56px;
  line-height: 1;
  letter-spacing: -3px;
  background: linear-gradient(160deg, #C9D4E5 0%, #94A3B8 100%);
  -webkit-background-clip: text; background-clip: text;
}

/* iBeta toggle (replaces WC's "Ship to different address" checkbox) */
.ib-checkout__toggle {
  display: flex; align-items: center; gap: 14px;
  cursor: pointer;
  padding: 4px 0 14px;
}
.ib-checkout__toggle input { position: absolute; opacity: 0; pointer-events: none; }
.ib-checkout__toggle-track {
  width: 44px; height: 26px;
  background: #E1E8F2;
  border-radius: 999px;
  position: relative;
  transition: background .2s ease;
  flex-shrink: 0;
}
.ib-checkout__toggle-knob {
  position: absolute;
  top: 3px; left: 3px;
  width: 20px; height: 20px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(10,22,40,.12);
  transition: transform .25s cubic-bezier(.2,.9,.3,1.2);
}
.ib-checkout__toggle input:checked ~ .ib-checkout__toggle-track {
  background: linear-gradient(120deg, #1855CC, #6E5BF0);
}
.ib-checkout__toggle input:checked ~ .ib-checkout__toggle-track .ib-checkout__toggle-knob {
  transform: translateX(18px);
}
.ib-checkout__toggle input:focus-visible ~ .ib-checkout__toggle-track {
  box-shadow: 0 0 0 4px rgba(24,85,204,.18);
}
.ib-checkout__toggle-label { display: flex; flex-direction: column; gap: 2px; }
.ib-checkout__toggle-label strong { font-size: 14px; font-weight: 700; color: var(--ib-ink); }
.ib-checkout__toggle-label small { font-size: 12px; color: var(--ib-sub); }

/* Shipping fields collapse when toggle is off */
.ib-checkout__shipping-fields {
  margin-top: 16px;
  padding-top: 18px;
  border-top: 1px dashed rgba(225,232,242,.9);
}
.woocommerce-shipping-fields:not(:has(input:checked)) .ib-checkout__shipping-fields { display: none; }

.ib-checkout__notes {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px dashed rgba(225,232,242,.9);
}
.ib-checkout__notes label,
.ib-checkout__shipping-fields label { font-weight: 700; }

/* Responsive */
@media (max-width: 1024px) {
  .ib-checkout { grid-template-columns: 1fr; gap: 24px; }
  .ib-vault { position: static; }
}
@media (max-width: 720px) {
  .ib-checkout__hero-title { letter-spacing: -1.5px; }
  .ib-step { grid-template-columns: 64px minmax(0, 1fr); gap: 14px; margin-bottom: 28px; }
  .ib-step__numeral { font-size: 56px; letter-spacing: -3px; }
  .ib-step__rail { position: static; }
  .ib-step__card { padding: 22px 18px; border-radius: 16px; }
  .ib-checkout .form-row.form-row-first,
  .ib-checkout .form-row.form-row-last { display: block; width: 100%; margin-right: 0; }
  .ib-vault__items { max-height: 220px; }
  .ib-vault__totals-row--grand dd { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .ib-checkout-shell::before,
  .ib-vault__cta::before,
  .ib-checkout__hero-eyebrow::before { animation: none; }
  .ib-step, .ib-vault { animation: none; }
}

/* ============================================================
   ORDER CONFIRMATION (thank-you screen)
   ============================================================ */
body.woocommerce-order-received { background-color: #F5F7FF; overflow-x: clip; }
.ib-confirm {
  max-width: 1024px; margin: 0 auto;
  padding: 32px 16px 80px;
  box-sizing: border-box;
}
.ib-confirm__hero { text-align: center; padding: 16px 0 40px; }
.ib-confirm__icon {
  width: 96px; height: 96px;
  margin: 0 auto 28px;
  background: linear-gradient(180deg, #DCFCE7 0%, #BBF7D0 100%);
  color: var(--ib-success, #10B981);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 0 8px rgba(16,185,129,0.06), 0 12px 28px rgba(16,185,129,0.18);
  animation: ib-confirm-pop .6s cubic-bezier(.2,.9,.3,1.2);
}
@keyframes ib-confirm-pop {
  0%   { transform: scale(.4); opacity: 0; }
  60%  { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); }
}
.ib-confirm__icon svg { width: 44px; height: 44px; }
.ib-confirm__title {
  font-size: 36px; font-weight: 800; letter-spacing: -1px;
  margin: 0 0 14px; color: var(--ib-ink, #0A1628);
}
.ib-confirm__sub {
  font-size: 15px; color: var(--ib-sub, #5B6B85);
  margin: 0; line-height: 1.6;
}
.ib-confirm__sub strong { color: var(--ib-ink, #0A1628); font-weight: 700; }

/* Failed-state variant */
.ib-confirm__icon--err {
  background: linear-gradient(180deg, #FEE2E2 0%, #FECACA 100%);
  color: var(--ib-danger, #DC2626);
  box-shadow: 0 0 0 8px rgba(220,38,38,.06), 0 12px 28px rgba(220,38,38,.18);
}

/* Two-column info cards */
.ib-confirm__cards {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
  margin-bottom: 24px;
}
.ib-or-card {
  background: #fff;
  border: 1px solid var(--ib-border, #E5E9F0);
  border-radius: 16px;
  padding: 22px 24px;
  box-shadow: 0 1px 2px rgba(10,22,40,.04);
}
.ib-or-card__label {
  font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--ib-sub, #5B6B85);
  margin-bottom: 12px;
}
.ib-or-card__num {
  font-size: 26px; font-weight: 800; letter-spacing: -.5px;
  color: var(--ib-primary, #1855CC);
  margin-bottom: 18px;
}
.ib-or-card__date {
  font-size: 26px; font-weight: 800; letter-spacing: -.5px;
  color: var(--ib-ink, #0A1628);
  margin-bottom: 12px;
}
.ib-or-card__meta {
  display: grid; grid-template-columns: repeat(3, auto); gap: 12px 36px;
  font-size: 13px;
}
.ib-or-card__meta span { display: block; color: var(--ib-sub, #5B6B85); margin-bottom: 4px; }
.ib-or-card__meta strong { color: var(--ib-ink, #0A1628); font-weight: 800; font-size: 14px; }
.ib-or-card__addr { font-size: 13px; color: var(--ib-sub, #5B6B85); line-height: 1.7; margin: 0; }
.ib-or-card__addr strong { color: var(--ib-ink, #0A1628); font-weight: 600; }

/* Timeline */
.ib-or-timeline {
  background: #fff;
  border: 1px solid var(--ib-border, #E5E9F0);
  border-radius: 16px;
  padding: 28px 32px 32px;
  box-shadow: 0 1px 2px rgba(10,22,40,.04);
  margin-bottom: 28px;
}
.ib-or-timeline__title {
  font-size: 18px; font-weight: 800; letter-spacing: -.3px;
  margin: 0 0 24px; color: var(--ib-ink, #0A1628);
}
.ib-timeline {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(4, 1fr);
  position: relative;
}
.ib-timeline::before {
  content: ''; position: absolute;
  top: 24px; left: 12.5%; right: 12.5%; height: 2px;
  background: var(--ib-border, #E5E9F0);
  z-index: 0;
}
.ib-timeline__step {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; position: relative; z-index: 1;
}
.ib-timeline__icon {
  width: 48px; height: 48px; border-radius: 50%;
  background: #F1F4F9; color: #94A3B8;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 12px;
  border: 2px solid #fff;
  transition: background .2s ease, color .2s ease, box-shadow .2s ease;
}
.ib-timeline__icon svg { width: 20px; height: 20px; }
.ib-timeline__step.is-done .ib-timeline__icon {
  background: var(--ib-success, #10B981); color: #fff;
  box-shadow: 0 0 0 6px rgba(16,185,129,.12);
}
.ib-timeline__step.is-current .ib-timeline__icon {
  background: var(--ib-primary, #1855CC); color: #fff;
  box-shadow: 0 0 0 6px rgba(24,85,204,.12);
  animation: ib-timeline-pulse 2s ease-in-out infinite;
}
@keyframes ib-timeline-pulse {
  0%, 100% { box-shadow: 0 0 0 6px rgba(24,85,204,.12); }
  50%      { box-shadow: 0 0 0 10px rgba(24,85,204,.06); }
}
.ib-timeline__label {
  font-size: 14px; font-weight: 700; color: var(--ib-ink, #0A1628);
  margin-bottom: 2px;
}
.ib-timeline__date { font-size: 12px; color: var(--ib-sub, #5B6B85); }
.ib-timeline__step:not(.is-done):not(.is-current) .ib-timeline__label { color: var(--ib-sub, #5B6B85); }

/* CTAs */
.ib-confirm__cta-row {
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
  margin-bottom: 28px;
}
.ib-confirm__cta-row .ib-btn { padding: 14px 28px; font-size: 14px; font-weight: 700; }
.ib-confirm__cta-row .ib-btn-primary svg { margin-right: 8px; }

/* Loyalty / points strip */
.ib-or-points {
  display: flex; align-items: center; gap: 20px;
  background: linear-gradient(135deg, #FFF4E6 0%, #FFE4D2 100%);
  border: 1px solid #FED7AA;
  border-radius: 16px;
  padding: 18px 24px;
}
.ib-or-points__icon {
  width: 44px; height: 44px; border-radius: 12px;
  background: #fff; color: #EA580C;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(234,88,12,.18);
}
.ib-or-points__icon svg { width: 22px; height: 22px; }
.ib-or-points__text { flex: 1; min-width: 0; }
.ib-or-points__text strong { display: block; font-size: 14px; font-weight: 800; color: var(--ib-ink, #0A1628); margin-bottom: 2px; }
.ib-or-points__text p { margin: 0; font-size: 13px; color: var(--ib-sub, #5B6B85); }
.ib-or-points__link {
  font-size: 13px; font-weight: 700; color: #EA580C;
  text-decoration: none; white-space: nowrap;
  display: inline-flex; align-items: center; gap: 4px;
}
.ib-or-points__link:hover { color: #C2410C; }

/* Responsive */
@media (max-width: 860px) {
  .ib-confirm__cards { grid-template-columns: 1fr; }
  .ib-confirm__title { font-size: 28px; }
  .ib-or-card__num, .ib-or-card__date { font-size: 22px; }
  .ib-or-card__meta { gap: 12px 24px; }
  .ib-or-timeline { padding: 22px 18px; }
  .ib-timeline { grid-template-columns: repeat(4, 1fr); gap: 4px; }
  .ib-timeline__icon { width: 40px; height: 40px; }
  .ib-timeline__icon svg { width: 16px; height: 16px; }
  .ib-timeline::before { top: 20px; }
  .ib-timeline__label { font-size: 12px; }
  .ib-timeline__date { font-size: 10.5px; }
  .ib-or-points { flex-wrap: wrap; }
  .ib-or-points__link { width: 100%; text-align: right; }
}
@media (prefers-reduced-motion: reduce) {
  .ib-confirm__icon, .ib-timeline__step.is-current .ib-timeline__icon { animation: none; }
}

/* Print: facture-friendly view of the order-received page */
@media print {
  body.woocommerce-order-received { background: #fff !important; }
  body.woocommerce-order-received .ib-mainnav,
  body.woocommerce-order-received .ib-header,
  body.woocommerce-order-received .ib-bottomnav,
  body.woocommerce-order-received .ib-trust-strip,
  body.woocommerce-order-received .ib-footer,
  body.woocommerce-order-received #wpadminbar,
  body.woocommerce-order-received .ib-confirm__cta-row,
  body.woocommerce-order-received .ib-or-points,
  body.woocommerce-order-received .ib-or-timeline { display: none !important; }
  body.woocommerce-order-received .ib-confirm { padding: 0; max-width: none; }
  body.woocommerce-order-received .ib-confirm__hero { padding: 0 0 18px; text-align: left; }
  body.woocommerce-order-received .ib-confirm__title { font-size: 26px; }
  body.woocommerce-order-received .ib-confirm__icon { display: none; }
  body.woocommerce-order-received .ib-or-card,
  body.woocommerce-order-received .ib-or-details__card,
  body.woocommerce-order-received .ib-or-customer__card { box-shadow: none !important; border: 1px solid #ddd !important; }
}

/* ============================================================
   ORDER TRACKING — /suivi/ page (lookup form + result view)
   ============================================================ */
body.page-template-default:has(.ib-track-shell),
body.page:has(.ib-track-shell) { background: linear-gradient(180deg, #F5F7FF 0%, #ECF1FF 100%); overflow-x: clip; }

.ib-track-shell {
  max-width: 980px;
  margin: 0 auto;
  padding: 32px 16px 96px;
  position: relative;
  isolation: isolate;
}
.ib-track-shell::before {
  content: '';
  position: absolute; inset: 0 0 auto 0;
  height: 55vh;
  background:
    radial-gradient(circle at 20% 18%, rgba(110,91,240,.22), transparent 55%),
    radial-gradient(circle at 78% 14%, rgba(24,85,204,.20), transparent 55%),
    radial-gradient(circle at 50% 60%, rgba(224,17,95,.10), transparent 60%);
  filter: blur(60px);
  z-index: -1;
  pointer-events: none;
  animation: ib-co-aurora 22s ease-in-out infinite alternate;
}
.ib-track-shell--result { max-width: 1024px; }

/* Hero */
.ib-track__hero {
  text-align: center;
  padding: 24px 0 36px;
  animation: ib-step-in .6s cubic-bezier(.2,.9,.3,1.2) backwards;
}
.ib-track__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ib-primary, #1855CC);
  background: rgba(24,85,204,.08);
  border-radius: 999px;
  padding: 6px 14px;
  margin-bottom: 18px;
}
.ib-track__eyebrow--success {
  color: #047857;
  background: rgba(16,185,129,.10);
}
.ib-track__eyebrow--success .ib-track__eyebrow-dot { background: #10B981; }
.ib-track__eyebrow-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--ib-primary, #1855CC);
  animation: ib-pulse-dot 1.6s ease-in-out infinite;
}
.ib-track__title {
  font-size: clamp(34px, 5vw, 50px);
  font-weight: 900;
  letter-spacing: -1.8px;
  line-height: 1.04;
  margin: 0 0 14px;
  color: var(--ib-ink, #0A1628);
}
.ib-track__title em {
  font-style: normal;
  background: linear-gradient(120deg, #1855CC 0%, #6E5BF0 55%, #E0115F 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.ib-track__sub {
  font-size: 15px; color: var(--ib-sub, #5B6B85);
  max-width: 640px; margin: 0 auto;
  line-height: 1.6;
}

/* Lookup card */
.ib-track__card {
  position: relative;
  background: rgba(255,255,255,.84);
  backdrop-filter: saturate(160%) blur(18px);
  -webkit-backdrop-filter: saturate(160%) blur(18px);
  border: 1px solid rgba(225,232,242,.7);
  border-radius: 24px;
  padding: 36px 40px 32px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.85) inset,
    0 24px 48px -16px rgba(24,85,204,.25),
    0 4px 12px rgba(10,22,40,.06);
  overflow: hidden;
  isolation: isolate;
  animation: ib-vault-in .75s cubic-bezier(.2,.9,.3,1.2) .1s backwards;
}
.ib-track__card-glow {
  position: absolute; inset: -40px -32px;
  background:
    radial-gradient(circle at 25% 12%, rgba(110,91,240,.30), transparent 55%),
    radial-gradient(circle at 78% 88%, rgba(24,85,204,.22), transparent 55%);
  filter: blur(40px);
  z-index: -1;
  pointer-events: none;
}
.ib-track__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 22px;
}
.ib-track__row label { display: block; }
.ib-track__label {
  display: block;
  font-size: 11px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin-bottom: 6px;
}
.ib-track__input {
  width: 100%;
  padding: 14px 16px;
  font-size: 15px; font-weight: 600;
  color: var(--ib-ink, #0A1628);
  background: #FAFBFE;
  border: 1.5px solid #E1E8F2;
  border-radius: 12px;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
  font-family: inherit;
  letter-spacing: .02em;
}
.ib-track__input:hover { border-color: #C9D4E5; background: #fff; }
.ib-track__input:focus {
  outline: none;
  border-color: var(--ib-primary, #1855CC);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(24,85,204,.10);
}
.ib-track__input::placeholder { color: #94A3B8; font-weight: 500; letter-spacing: 0; }
.ib-track__hint {
  display: block;
  font-size: 11.5px; color: var(--ib-mute, #8A97AA);
  margin-top: 6px;
}

.ib-track__cta-row {
  display: flex; justify-content: center; gap: 14px; flex-wrap: wrap;
  margin-top: 8px;
}
.ib-track__cta {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 10px;
  min-width: 280px;
  padding: 16px 28px;
  font-size: 15px; font-weight: 800;
  letter-spacing: .04em;
  color: #fff;
  background: linear-gradient(120deg, #0F3A99 0%, #1855CC 50%, #6E5BF0 100%);
  background-size: 180% 180%;
  background-position: 0% 50%;
  border: none;
  border-radius: 14px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  box-shadow:
    0 1px 0 rgba(255,255,255,.25) inset,
    0 0 0 1px rgba(24,85,204,.4),
    0 14px 30px -8px rgba(24,85,204,.55);
  transition: background-position .5s ease, transform .15s ease, box-shadow .25s ease;
}
.ib-track__cta::before {
  content: '';
  position: absolute; top: 0; left: -60%;
  width: 50%; height: 100%;
  background: linear-gradient(110deg, transparent, rgba(255,255,255,.35), transparent);
  transform: skewX(-20deg);
  animation: ib-cta-shimmer 3.5s ease-in-out infinite;
}
.ib-track__cta:hover {
  background-position: 100% 50%;
  transform: translateY(-2px);
  color: #fff;
  box-shadow:
    0 1px 0 rgba(255,255,255,.25) inset,
    0 0 0 1px rgba(24,85,204,.5),
    0 18px 36px -8px rgba(24,85,204,.6);
}
.ib-track__cta:active { transform: translateY(0); }
.ib-track__cta--secondary {
  background: #fff;
  color: var(--ib-ink, #0A1628);
  border: 1.5px solid #E1E8F2;
  box-shadow: 0 4px 14px rgba(10,22,40,.05);
}
.ib-track__cta--secondary::before { display: none; }
.ib-track__cta--secondary:hover {
  background: #fff;
  border-color: var(--ib-primary, #1855CC);
  color: var(--ib-primary, #1855CC);
  box-shadow: 0 8px 20px -6px rgba(24,85,204,.25);
}

/* Perks row under lookup card */
.ib-track__perks {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 22px;
}
.ib-track__perk {
  display: flex; align-items: center; gap: 12px;
  background: rgba(255,255,255,.7);
  border: 1px solid rgba(225,232,242,.6);
  border-radius: 14px;
  padding: 14px 16px;
  backdrop-filter: blur(8px);
}
.ib-track__perk-icon {
  width: 36px; height: 36px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  flex-shrink: 0;
}
.ib-track__perk-icon--blue   { background: linear-gradient(135deg, #1855CC, #6E5BF0); box-shadow: 0 6px 14px -4px rgba(24,85,204,.45); }
.ib-track__perk-icon--orange { background: linear-gradient(135deg, #F05A00, #F59E0B); box-shadow: 0 6px 14px -4px rgba(240,90,0,.40); }
.ib-track__perk-icon--green  { background: linear-gradient(135deg, #10B981, #047857); box-shadow: 0 6px 14px -4px rgba(16,185,129,.40); }
.ib-track__perk strong { display: block; font-size: 13px; font-weight: 800; color: var(--ib-ink, #0A1628); }
.ib-track__perk small  { display: block; font-size: 11.5px; color: var(--ib-sub, #5B6B85); margin-top: 2px; }

/* Result view */
.ib-track__cards {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
  margin-bottom: 24px;
}
.ib-track__notes {
  background: #fff;
  border: 1px solid rgba(225,232,242,.8);
  border-radius: 18px;
  padding: 24px 28px;
  margin-bottom: 24px;
  box-shadow: 0 1px 2px rgba(10,22,40,.04), 0 12px 32px -16px rgba(24,85,204,.18);
}
.ib-track__notes-title {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 800;
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin: 0 0 18px;
}
.ib-track__notes-title svg { color: var(--ib-primary, #1855CC); }
.ib-track__notes-feed { list-style: none; margin: 0; padding: 0 0 0 20px; position: relative; }
.ib-track__notes-feed::before {
  content: '';
  position: absolute; top: 6px; bottom: 6px; left: 5px;
  width: 2px;
  background: linear-gradient(180deg, rgba(24,85,204,.4), rgba(110,91,240,.2));
  border-radius: 1px;
}
.ib-track__note {
  position: relative;
  padding: 0 0 18px 18px;
  display: flex; gap: 14px;
}
.ib-track__note:last-child { padding-bottom: 0; }
.ib-track__note-dot {
  position: absolute;
  top: 6px; left: -14px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1855CC, #6E5BF0);
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(24,85,204,.25);
}
.ib-track__note-meta {
  font-size: 11.5px; font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin-bottom: 2px;
}
.ib-track__note-body {
  font-size: 14px; color: var(--ib-ink, #0A1628);
  line-height: 1.55;
}
.ib-track__note-body p { margin: 0 0 6px; }
.ib-track__note-body p:last-child { margin-bottom: 0; }

/* Responsive */
@media (max-width: 720px) {
  .ib-track__row { grid-template-columns: 1fr; }
  .ib-track__perks { grid-template-columns: 1fr; }
  .ib-track__card { padding: 26px 22px 24px; border-radius: 20px; }
  .ib-track__cards { grid-template-columns: 1fr; }
  .ib-track__cta { min-width: 100%; }
}

/* ============================================================
   STAFF OPERATIONS CONSOLE — /equipe/
   Mobile-first, dense, status-coded, one-tap actions
   ============================================================ */
body:has(.ib-staff) { background: #F0F4FB; overflow-x: clip; }

.ib-staff {
  max-width: 1180px;
  margin: 0 auto;
  padding: 16px 14px 96px;
  position: relative;
  isolation: isolate;
}

/* HERO */
.ib-staff__hero {
  position: relative;
  background:
    linear-gradient(135deg, #0F3A99 0%, #1855CC 35%, #6E5BF0 100%);
  border-radius: 24px;
  padding: 26px 28px 22px;
  color: #fff;
  margin-bottom: 22px;
  overflow: hidden;
  isolation: isolate;
  box-shadow:
    0 1px 0 rgba(255,255,255,.18) inset,
    0 24px 48px -16px rgba(24,85,204,.45);
}
.ib-staff__hero::before {
  content: '';
  position: absolute; inset: -40% -10% auto auto;
  width: 60%; height: 200%;
  background: radial-gradient(circle, rgba(224,17,95,.3), transparent 60%);
  filter: blur(50px); z-index: -1;
}
.ib-staff__hero-grid {
  display: grid; grid-template-columns: 1fr auto;
  gap: 20px; align-items: flex-start;
  margin-bottom: 22px;
}
.ib-staff__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.78);
  margin-bottom: 8px;
}
.ib-staff__pulse {
  width: 7px; height: 7px; border-radius: 50%;
  background: #10B981;
  animation: ib-pulse-dot 1.6s ease-in-out infinite;
  box-shadow: 0 0 0 3px rgba(16,185,129,.25);
}
.ib-staff__title {
  font-size: clamp(28px, 4vw, 38px);
  font-weight: 900; letter-spacing: -1.2px;
  line-height: 1.05;
  margin: 0 0 6px;
  color: #fff;
}
.ib-staff__title em {
  font-style: normal;
  background: linear-gradient(120deg, #FFD7E0 0%, #FFE4D2 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.ib-staff__sub {
  font-size: 13px; color: rgba(255,255,255,.78); margin: 0;
}
.ib-staff__hero-time {
  text-align: right;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  backdrop-filter: blur(8px);
  border-radius: 14px;
  padding: 10px 16px;
  font-size: 13px;
}
.ib-staff__time-label {
  font-size: 10px; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.65);
  margin-bottom: 2px;
}
.ib-staff__time-value { font-weight: 800; letter-spacing: -.3px; }

/* KPI cards */
.ib-staff__kpis {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.ib-staff__kpi {
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.22);
  backdrop-filter: blur(10px);
  border-radius: 16px;
  padding: 14px 16px;
  display: flex; align-items: center; gap: 14px;
  transition: transform .15s ease, background .2s ease;
}
.ib-staff__kpi:hover { transform: translateY(-2px); background: rgba(255,255,255,.22); }
.ib-staff__kpi-icon {
  width: 38px; height: 38px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; font-weight: 900;
  color: #fff;
  flex-shrink: 0;
  font-family: ui-monospace, SFMono-Regular, 'SF Mono', Consolas, monospace;
}
.ib-staff__kpi--blue   .ib-staff__kpi-icon { background: linear-gradient(135deg, #3B82F6, #1855CC); }
.ib-staff__kpi--orange .ib-staff__kpi-icon { background: linear-gradient(135deg, #F59E0B, #F05A00); }
.ib-staff__kpi--purple .ib-staff__kpi-icon { background: linear-gradient(135deg, #6E5BF0, #4338CA); }
.ib-staff__kpi--green  .ib-staff__kpi-icon { background: linear-gradient(135deg, #10B981, #047857); }
.ib-staff__kpi--pink   .ib-staff__kpi-icon { background: linear-gradient(135deg, #E0115F, #EC4899); }
.ib-staff__kpi-num {
  font-size: 26px; font-weight: 900;
  letter-spacing: -.6px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  color: #fff;
}
.ib-staff__kpi-label {
  font-size: 11px; font-weight: 600;
  color: rgba(255,255,255,.78);
  margin-top: 2px;
}

/* TOOLBAR */
.ib-staff__toolbar {
  display: flex; gap: 14px; align-items: center;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.ib-staff__tabs {
  display: flex; gap: 6px;
  flex: 1; min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.ib-staff__tabs::-webkit-scrollbar { display: none; }
.ib-staff__tab {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  background: #fff;
  border: 1px solid rgba(225,232,242,.8);
  border-radius: 999px;
  font-size: 13px; font-weight: 700;
  color: var(--ib-sub, #5B6B85);
  text-decoration: none;
  white-space: nowrap;
  transition: background .18s ease, color .18s ease, transform .15s ease, border-color .2s ease;
  flex-shrink: 0;
}
.ib-staff__tab small {
  font-size: 11px; font-weight: 800;
  padding: 1px 8px;
  background: rgba(91,107,133,.12);
  color: var(--ib-sub, #5B6B85);
  border-radius: 999px;
}
.ib-staff__tab:hover { color: var(--ib-ink); border-color: #C9D4E5; }
.ib-staff__tab.is-active {
  background: linear-gradient(120deg, #1855CC, #6E5BF0);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 8px 18px -6px rgba(24,85,204,.45);
}
.ib-staff__tab.is-active small {
  background: rgba(255,255,255,.22);
  color: #fff;
}

.ib-staff__search {
  display: flex; align-items: center;
  background: #fff;
  border: 1px solid rgba(225,232,242,.8);
  border-radius: 12px;
  padding: 4px 4px 4px 14px;
  min-width: 280px;
}
.ib-staff__search input {
  border: none; background: transparent; outline: none;
  font-size: 13px; font-family: inherit;
  flex: 1; min-width: 0;
  padding: 8px 0;
  color: var(--ib-ink);
}
.ib-staff__search input::placeholder { color: var(--ib-mute); }
.ib-staff__search button {
  border: none;
  background: var(--ib-ink, #0A1628);
  color: #fff;
  width: 36px; height: 36px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}

/* ORDER STREAM */
.ib-staff__stream { display: flex; flex-direction: column; gap: 12px; }

.ib-staff__order {
  position: relative;
  background: #fff;
  border: 1px solid rgba(225,232,242,.8);
  border-radius: 18px;
  padding: 16px 20px 14px 26px;
  box-shadow: 0 1px 2px rgba(10,22,40,.04), 0 12px 32px -16px rgba(24,85,204,.16);
  transition: transform .12s ease, box-shadow .2s ease;
}
.ib-staff__order:hover { transform: translateY(-1px); box-shadow: 0 1px 2px rgba(10,22,40,.04), 0 18px 36px -12px rgba(24,85,204,.22); }
.ib-staff__order-rail {
  position: absolute; left: 0; top: 14px; bottom: 14px;
  width: 4px;
  border-radius: 999px;
  background: var(--ib-mute, #8A97AA);
}
.ib-staff__order.is-pending    .ib-staff__order-rail { background: #F59E0B; }
.ib-staff__order.is-processing .ib-staff__order-rail { background: linear-gradient(180deg, #1855CC, #6E5BF0); }
.ib-staff__order.is-shipped    .ib-staff__order-rail { background: linear-gradient(180deg, #6E5BF0, #E0115F); }
.ib-staff__order.is-completed  .ib-staff__order-rail { background: #10B981; }
.ib-staff__order.is-cancelled .ib-staff__order-rail,
.ib-staff__order.is-refunded  .ib-staff__order-rail,
.ib-staff__order.is-failed    .ib-staff__order-rail { background: #DC2626; }

.ib-staff__order-head {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; margin-bottom: 10px;
  flex-wrap: wrap;
}
.ib-staff__order-id { display: flex; align-items: center; gap: 10px; }
.ib-staff__order-id strong {
  font-size: 14px; font-weight: 800; color: var(--ib-ink, #0A1628);
  font-variant-numeric: tabular-nums; letter-spacing: -.2px;
}
.ib-staff__order-meta {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; color: var(--ib-sub, #5B6B85);
}

.ib-staff__order-body {
  display: grid; grid-template-columns: 1fr auto;
  gap: 16px; align-items: center;
  padding-bottom: 12px;
  border-bottom: 1px dashed rgba(225,232,242,.9);
  margin-bottom: 12px;
}
.ib-staff__customer-name {
  font-size: 14px; font-weight: 800; color: var(--ib-ink);
  background: none; border: 0; padding: 0;
  text-align: left;
  font-family: inherit;
  cursor: pointer;
  transition: color .15s ease;
}
.ib-staff__customer-name:hover {
  color: var(--ib-primary, #1855CC);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ib-staff__customer-line {
  display: flex; gap: 14px; flex-wrap: wrap;
  margin-top: 4px;
  font-size: 12px; color: var(--ib-sub);
}
.ib-staff__customer-line svg { color: var(--ib-primary); margin-right: 4px; vertical-align: -2px; }
.ib-staff__phone {
  color: var(--ib-primary, #1855CC); font-weight: 700; text-decoration: none;
}
.ib-staff__phone:hover { text-decoration: underline; }
.ib-staff__addr { display: inline-flex; align-items: center; }

.ib-staff__money { text-align: right; }
.ib-staff__total {
  font-size: 16px; font-weight: 900; color: var(--ib-ink, #0A1628);
  letter-spacing: -.4px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.ib-staff__pay {
  font-size: 11px; font-weight: 700; color: var(--ib-sub, #5B6B85);
  margin-top: 2px;
}

/* Payment status pill on order card */
.ib-staff__paypill {
  display: inline-flex; align-items: center; gap: 4px;
  margin-top: 6px;
  font-size: 11px; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 999px;
}
.ib-staff__paypill small { font-weight: 700; opacity: .9; text-transform: none; letter-spacing: 0; }
.ib-staff__paypill--paid     { background: rgba(16,185,129,.14); color: #047857; }
.ib-staff__paypill--partial  { background: rgba(245,158,11,.18); color: #B45309; }
.ib-staff__paypill--unpaid   { background: rgba(220,38,38,.12);  color: #B91C1C; }
.ib-staff__paypill--overpaid { background: rgba(110,91,240,.16); color: #4338CA; }

/* Payment ledger panel inside drawer */
.ib-staff__pay-section {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px dashed rgba(225,232,242,.9);
}
.ib-staff__pay-head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 10px; flex-wrap: wrap; gap: 8px;
}
.ib-staff__pay-meter {
  font-size: 13px; color: var(--ib-sub, #5B6B85);
}
.ib-staff__pay-meter span[data-pay-received] {
  font-weight: 800; color: var(--ib-ink, #0A1628);
}
.ib-staff__pay-balance {
  display: inline-block; margin-left: 8px;
  font-size: 11px; font-weight: 800;
  color: #B91C1C; background: rgba(220,38,38,.10);
  border-radius: 999px; padding: 2px 8px;
  text-transform: uppercase; letter-spacing: .06em;
}
.ib-staff__pay-list { list-style: none; margin: 0 0 12px; padding: 0; }
.ib-staff__pay-row {
  display: grid; grid-template-columns: minmax(0,1fr) auto auto;
  gap: 12px; align-items: center;
  padding: 10px 12px;
  background: #F5F7FF;
  border-radius: 10px;
  margin-bottom: 6px;
  font-size: 12px;
}
.ib-staff__pay-row strong { font-size: 13px; color: var(--ib-ink); margin-right: 8px; }
.ib-staff__pay-row small  { font-size: 11px; color: var(--ib-sub); font-weight: 700; }
.ib-staff__pay-meta { color: var(--ib-sub); font-size: 11px; }
.ib-staff__pay-meta code { background: #fff; padding: 1px 6px; border-radius: 4px; font-size: 10px; color: var(--ib-primary); }
.ib-staff__pay-del {
  width: 24px; height: 24px;
  border: 1px solid rgba(220,38,38,.4); background: transparent;
  border-radius: 50%; color: #DC2626;
  font-size: 14px; font-weight: 700; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.ib-staff__pay-del:hover { background: #DC2626; color: #fff; }
.ib-staff__pay-empty {
  font-size: 12px; color: var(--ib-mute);
  font-style: italic;
  padding: 10px 12px;
}

.ib-staff__pay-form {
  background: #fff;
  border: 1px dashed rgba(24,85,204,.25);
  border-radius: 12px;
  padding: 12px;
}
.ib-staff__pay-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  margin-bottom: 8px;
}
.ib-staff__pay-form-row:last-child {
  grid-template-columns: 2fr 1fr; margin-bottom: 0;
}
.ib-staff__pay-form input,
.ib-staff__pay-form select {
  width: 100%;
  padding: 9px 10px;
  font-size: 12px; font-weight: 600;
  border: 1px solid #E1E8F2;
  border-radius: 8px;
  font-family: inherit;
  background: #FAFBFE;
  color: var(--ib-ink);
}
.ib-staff__pay-form input:focus,
.ib-staff__pay-form select:focus {
  outline: none;
  border-color: var(--ib-primary);
  box-shadow: 0 0 0 3px rgba(24,85,204,.1);
  background: #fff;
}
.ib-staff__pay-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 14px;
  background: linear-gradient(120deg, #10B981, #047857);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 12px; font-weight: 800;
  cursor: pointer;
  box-shadow: 0 6px 14px -4px rgba(16,185,129,.45);
}
.ib-staff__pay-cta:hover { filter: brightness(1.05); }
.ib-staff__pay-cta:disabled { opacity: .6; cursor: not-allowed; }
@media (max-width: 540px) {
  .ib-staff__pay-form-row,
  .ib-staff__pay-form-row:last-child { grid-template-columns: 1fr; }
}

.ib-staff__order-foot {
  display: flex; gap: 10px; align-items: center;
  flex-wrap: wrap;
}
.ib-staff__cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 18px;
  font-size: 13px; font-weight: 800;
  color: #fff;
  background: linear-gradient(120deg, #1855CC 0%, #6E5BF0 100%);
  border: none; border-radius: 10px;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .25s ease, filter .2s ease;
  box-shadow: 0 8px 18px -6px rgba(24,85,204,.45);
  flex: 1; min-width: 200px; justify-content: center;
}
.ib-staff__cta:hover { transform: translateY(-1px); filter: brightness(1.05); box-shadow: 0 12px 24px -6px rgba(24,85,204,.55); }
.ib-staff__cta:disabled { opacity: .6; cursor: not-allowed; }
.ib-staff__cta span[aria-hidden="true"] { font-size: 16px; line-height: 1; }
.ib-staff__done {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 800;
  color: #047857;
  flex: 1;
}
.ib-staff__expand {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 14px;
  font-size: 13px; font-weight: 700;
  color: var(--ib-sub, #5B6B85);
  background: #F5F7FF;
  border: 1px solid transparent;
  border-radius: 10px;
  cursor: pointer;
  transition: background .18s ease, color .18s ease;
}
.ib-staff__expand:hover { background: rgba(24,85,204,.08); color: var(--ib-primary); }
.ib-staff__order.is-open .ib-staff__expand svg { transform: rotate(180deg); }
.ib-staff__expand svg { transition: transform .2s ease; }

/* DRAWER */
.ib-staff__drawer {
  margin-top: 14px;
  padding-top: 16px;
  border-top: 1px dashed rgba(225,232,242,.9);
  animation: ib-staff-drawer-in .25s cubic-bezier(.2,.9,.3,1.1) backwards;
}
@keyframes ib-staff-drawer-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ib-staff__drawer-grid {
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px;
}
.ib-staff__drawer-label {
  font-size: 11px; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin-bottom: 10px;
}

.ib-staff__items {
  list-style: none; margin: 0; padding: 0;
}
.ib-staff__items li {
  display: grid; grid-template-columns: 40px 1fr auto;
  gap: 10px; align-items: center;
  padding: 8px 0;
  border-bottom: 1px dashed rgba(225,232,242,.6);
  font-size: 13px;
}
.ib-staff__items li:last-child { border-bottom: none; }
.ib-staff__items img {
  width: 40px; height: 40px; border-radius: 8px;
  object-fit: contain; background: #F5F7FF;
  border: 1px solid rgba(225,232,242,.6);
}
.ib-staff__items strong { color: var(--ib-ink, #0A1628); font-weight: 700; display: block; }
.ib-staff__items small { font-size: 11px; color: var(--ib-sub, #5B6B85); }
.ib-staff__items span { font-weight: 800; color: var(--ib-ink, #0A1628); white-space: nowrap; font-size: 12px; }

.ib-staff__share { display: flex; flex-direction: column; gap: 8px; }
.ib-staff__share-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  background: #fff;
  border: 1.5px solid rgba(225,232,242,.9);
  border-radius: 10px;
  font-size: 13px; font-weight: 700;
  color: var(--ib-ink, #0A1628);
  text-decoration: none;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.ib-staff__share-btn svg { color: var(--ib-primary, #1855CC); }
.ib-staff__share-btn:hover {
  border-color: var(--ib-primary, #1855CC);
  background: rgba(24,85,204,.04);
}
.ib-staff__share-btn--ghost { background: transparent; border-style: dashed; color: var(--ib-sub); }
.ib-staff__share-btn--danger {
  border-color: rgba(220,38,38,.4);
  color: #B91C1C;
}
.ib-staff__share-btn--danger svg { color: #DC2626; }
.ib-staff__share-btn--danger:hover { background: rgba(220,38,38,.06); border-color: #DC2626; }

/* EMPTY STATE */
.ib-staff__empty {
  text-align: center;
  padding: 60px 28px;
  background: #fff;
  border: 1px dashed rgba(24,85,204,.25);
  border-radius: 18px;
}
.ib-staff__empty h3 { font-size: 18px; font-weight: 800; margin: 12px 0 6px; }
.ib-staff__empty p { font-size: 13px; color: var(--ib-sub); margin: 0; }

/* MOBILE */
@media (max-width: 860px) {
  .ib-staff__hero { padding: 22px 20px 18px; border-radius: 20px; }
  .ib-staff__hero-grid { grid-template-columns: 1fr; gap: 14px; }
  .ib-staff__hero-time { text-align: left; align-self: flex-start; }
  .ib-staff__kpis { grid-template-columns: repeat(2, 1fr); }
  .ib-staff__toolbar { flex-direction: column; align-items: stretch; }
  .ib-staff__search { min-width: 0; }
  .ib-staff__order-body { grid-template-columns: 1fr; }
  .ib-staff__money { text-align: left; }
  .ib-staff__order-foot { flex-direction: column; align-items: stretch; }
  .ib-staff__cta { min-width: 0; }
  .ib-staff__drawer-grid { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 480px) {
  .ib-staff__kpi-num { font-size: 22px; }
  .ib-staff__kpi-icon { width: 32px; height: 32px; font-size: 16px; }
  .ib-staff__order { padding: 14px 16px 12px 22px; border-radius: 14px; }
}

/* ============================================================
   CONTACT — /contact/
   Multi-channel hero · 4 channel tiles · hours sidecard · form
   ============================================================ */
body.page-contact,
body.page-template-page-contact {
  background: linear-gradient(180deg, #F5F7FF 0%, #ECF1FF 100%);
  overflow-x: clip;
}
.ib-contact-shell {
  max-width: 1180px;
  margin: 0 auto;
  padding: 24px 16px 96px;
  position: relative;
  isolation: isolate;
}
.ib-contact-shell::before {
  content: '';
  position: absolute; inset: 0 0 auto 0;
  height: 60vh;
  background:
    radial-gradient(circle at 18% 18%, rgba(110,91,240,.20), transparent 55%),
    radial-gradient(circle at 82% 14%, rgba(24,85,204,.18), transparent 55%),
    radial-gradient(circle at 50% 70%, rgba(16,185,129,.10), transparent 60%);
  filter: blur(60px);
  z-index: -1;
  pointer-events: none;
  animation: ib-co-aurora 22s ease-in-out infinite alternate;
}

/* Hero */
.ib-contact__hero {
  text-align: center;
  padding: 32px 0 40px;
  animation: ib-step-in .6s cubic-bezier(.2,.9,.3,1.2) backwards;
}
.ib-contact__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase;
  color: #047857;
  background: rgba(16,185,129,.10);
  border-radius: 999px;
  padding: 6px 14px;
  margin-bottom: 18px;
}
.ib-contact__pulse {
  width: 7px; height: 7px; border-radius: 50%;
  background: #10B981;
  animation: ib-pulse-dot 1.6s ease-in-out infinite;
  box-shadow: 0 0 0 3px rgba(16,185,129,.25);
}
.ib-contact__title {
  font-size: clamp(36px, 5.5vw, 56px);
  font-weight: 900; letter-spacing: -2px;
  line-height: 1.04;
  margin: 0 0 14px;
  color: var(--ib-ink, #0A1628);
}
.ib-contact__title em {
  display: inline-block;
  font-style: normal;
  background: linear-gradient(120deg, #1855CC 0%, #6E5BF0 50%, #E0115F 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  margin-left: 6px;
}
.ib-contact__sub {
  font-size: 15px; color: var(--ib-sub, #5B6B85);
  max-width: 640px; margin: 0 auto;
  line-height: 1.6;
}

/* 4-up channel tiles */
.ib-contact__channels {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 36px;
}
.ib-contact__channel {
  position: relative;
  display: flex; flex-direction: column;
  padding: 24px 22px 22px;
  background: #fff;
  border: 1px solid rgba(225,232,242,.8);
  border-radius: 20px;
  text-decoration: none;
  color: var(--ib-ink, #0A1628);
  box-shadow:
    0 1px 0 rgba(255,255,255,.85) inset,
    0 1px 2px rgba(10,22,40,.04),
    0 12px 36px -16px rgba(24,85,204,.18);
  overflow: hidden;
  transition: transform .15s ease, box-shadow .25s ease, border-color .2s ease;
}
.ib-contact__channel:hover {
  transform: translateY(-3px);
  border-color: rgba(24,85,204,.35);
  box-shadow:
    0 1px 0 rgba(255,255,255,.85) inset,
    0 1px 2px rgba(10,22,40,.04),
    0 22px 44px -16px rgba(24,85,204,.32);
  color: var(--ib-ink);
}
.ib-contact__channel-icon {
  width: 52px; height: 52px;
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #1855CC, #6E5BF0);
  color: #fff;
  margin-bottom: 16px;
  box-shadow: 0 10px 22px -6px rgba(24,85,204,.45);
}
.ib-contact__channel-name {
  font-size: 12px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin-bottom: 4px;
}
.ib-contact__channel-value {
  font-size: 16px; font-weight: 800;
  color: var(--ib-ink, #0A1628);
  letter-spacing: -.3px;
  margin-bottom: 14px;
  word-break: break-word;
}
.ib-contact__channel-cta {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: auto;
  font-size: 12.5px; font-weight: 800;
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--ib-primary, #1855CC);
}
.ib-contact__channel-cta svg { transition: transform .2s ease; }
.ib-contact__channel:hover .ib-contact__channel-cta svg { transform: translateX(3px); }

/* WhatsApp variant — branded green + featured badge */
.ib-contact__channel--whatsapp {
  background: linear-gradient(165deg, #075E54 0%, #128C7E 60%, #25D366 100%);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 18px 38px -12px rgba(37,211,102,.55);
}
.ib-contact__channel--whatsapp:hover { color: #fff; box-shadow: 0 24px 48px -12px rgba(37,211,102,.65); }
.ib-contact__channel--whatsapp .ib-contact__channel-icon {
  background: rgba(255,255,255,.18);
  box-shadow: none;
}
.ib-contact__channel--whatsapp .ib-contact__channel-name { color: rgba(255,255,255,.78); }
.ib-contact__channel--whatsapp .ib-contact__channel-value { color: #fff; }
.ib-contact__channel--whatsapp .ib-contact__channel-cta  { color: #FFE4D2; }
.ib-contact__channel-badge {
  position: absolute; top: 14px; right: 14px;
  font-size: 10px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase;
  padding: 4px 10px;
  background: rgba(255,255,255,.22);
  border: 1px solid rgba(255,255,255,.35);
  color: #fff;
  border-radius: 999px;
  backdrop-filter: blur(6px);
}

/* Main grid: form + sidecard */
.ib-contact__main {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

/* Sidecard (hours + quick links) */
.ib-contact__sidecard {
  display: flex; flex-direction: column; gap: 16px;
}
.ib-contact__hours,
.ib-contact__quick {
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(225,232,242,.7);
  border-radius: 18px;
  padding: 22px 24px;
  box-shadow: 0 12px 32px -16px rgba(24,85,204,.18);
}
.ib-contact__hours-head,
.ib-contact__quick-head {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 16px;
}
.ib-contact__hours-head svg,
.ib-contact__quick-head svg { color: var(--ib-primary, #1855CC); }
.ib-contact__hours-head h2,
.ib-contact__quick-head h2 {
  font-size: 14px; font-weight: 800;
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--ib-ink, #0A1628);
  margin: 0;
}

.ib-contact__hours-list { margin: 0 0 14px; }
.ib-contact__hours-list > div {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 8px 0;
  font-size: 13px;
  border-bottom: 1px dashed rgba(225,232,242,.9);
}
.ib-contact__hours-list > div:last-child { border-bottom: none; }
.ib-contact__hours-list dt { color: var(--ib-sub, #5B6B85); margin: 0; }
.ib-contact__hours-list dd { color: var(--ib-ink); font-weight: 800; margin: 0; font-variant-numeric: tabular-nums; }
.ib-contact__hours-list .is-closed { color: #B91C1C; }

.ib-contact__open {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 12px; font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.ib-contact__open.is-open    { background: rgba(16,185,129,.12); color: #047857; }
.ib-contact__open.is-closed  { background: rgba(220,38,38,.10);  color: #B91C1C; }
.ib-contact__open-dot {
  width: 7px; height: 7px; border-radius: 50%;
}
.ib-contact__open.is-open    .ib-contact__open-dot { background: #10B981; box-shadow: 0 0 0 3px rgba(16,185,129,.25); animation: ib-pulse-dot 1.6s ease-in-out infinite; }
.ib-contact__open.is-closed  .ib-contact__open-dot { background: #DC2626; }

.ib-contact__quick ul { list-style: none; margin: 0; padding: 0; }
.ib-contact__quick li { margin-bottom: 4px; }
.ib-contact__quick a {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  color: var(--ib-ink, #0A1628);
  text-decoration: none;
  font-size: 13px; font-weight: 700;
  transition: background .18s ease;
}
.ib-contact__quick a span { flex: 1; }
.ib-contact__quick a:hover { background: rgba(24,85,204,.06); color: var(--ib-primary); }
.ib-contact__quick a:hover svg:first-child { color: var(--ib-primary); }
.ib-contact__quick a svg { color: var(--ib-sub); }

/* Form */
.ib-contact__form-wrap {
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(225,232,242,.7);
  border-radius: 24px;
  padding: 36px 40px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.85) inset,
    0 24px 48px -16px rgba(24,85,204,.22),
    0 4px 12px rgba(10,22,40,.06);
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.ib-contact__form-wrap::before {
  content: '';
  position: absolute; inset: -40% -10% auto auto;
  width: 50%; height: 100%;
  background: radial-gradient(circle, rgba(110,91,240,.22), transparent 60%);
  filter: blur(40px); z-index: -1; pointer-events: none;
}
.ib-contact__form-head { margin-bottom: 24px; }
.ib-contact__form-title {
  font-size: 26px; font-weight: 900;
  letter-spacing: -.8px;
  margin: 0 0 6px;
  color: var(--ib-ink, #0A1628);
}
.ib-contact__form-title em {
  font-style: normal;
  background: linear-gradient(120deg, #1855CC 0%, #6E5BF0 50%, #E0115F 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.ib-contact__form-sub { font-size: 13px; color: var(--ib-sub, #5B6B85); margin: 0; }

.ib-contact__form label {
  display: block;
  margin-bottom: 16px;
}
.ib-contact__form label > span {
  display: block;
  font-size: 11px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin-bottom: 6px;
}
.ib-contact__form-row {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.ib-contact__form input[type="text"],
.ib-contact__form input[type="email"],
.ib-contact__form input[type="tel"],
.ib-contact__form select,
.ib-contact__form textarea {
  width: 100%;
  padding: 13px 16px;
  font-size: 14px; font-weight: 500;
  font-family: inherit;
  color: var(--ib-ink, #0A1628);
  background: #FAFBFE;
  border: 1.5px solid #E1E8F2;
  border-radius: 12px;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.ib-contact__form input:hover,
.ib-contact__form select:hover,
.ib-contact__form textarea:hover { border-color: #C9D4E5; background: #fff; }
.ib-contact__form input:focus,
.ib-contact__form select:focus,
.ib-contact__form textarea:focus {
  outline: none;
  border-color: var(--ib-primary, #1855CC);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(24,85,204,.10);
}
.ib-contact__form textarea { resize: vertical; min-height: 120px; }

.ib-contact__form-foot {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: 8px;
}
.ib-contact__submit {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 15px 26px;
  font-size: 14px; font-weight: 800;
  letter-spacing: .04em;
  color: #fff;
  background: linear-gradient(120deg, #0F3A99 0%, #1855CC 50%, #6E5BF0 100%);
  background-size: 180% 180%;
  background-position: 0% 50%;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  box-shadow:
    0 1px 0 rgba(255,255,255,.25) inset,
    0 12px 28px -8px rgba(24,85,204,.55);
  transition: background-position .5s ease, transform .15s ease, box-shadow .25s ease;
}
.ib-contact__submit::before {
  content: '';
  position: absolute; top: 0; left: -60%;
  width: 50%; height: 100%;
  background: linear-gradient(110deg, transparent, rgba(255,255,255,.35), transparent);
  transform: skewX(-20deg);
  animation: ib-cta-shimmer 3.5s ease-in-out infinite;
}
.ib-contact__submit:hover {
  background-position: 100% 50%;
  transform: translateY(-2px);
  box-shadow: 0 18px 36px -8px rgba(24,85,204,.6);
}
.ib-contact__submit:disabled { opacity: .65; cursor: not-allowed; }
.ib-contact__form-foot small {
  font-size: 11.5px; color: var(--ib-mute, #8A97AA);
}
.ib-contact__feedback {
  margin-top: 16px;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 13px; font-weight: 600;
}
.ib-contact__feedback.is-success { background: rgba(16,185,129,.12); color: #047857; border: 1px solid rgba(16,185,129,.3); }
.ib-contact__feedback.is-error   { background: rgba(220,38,38,.10);  color: #B91C1C; border: 1px solid rgba(220,38,38,.3); }

/* Responsive */
@media (max-width: 980px) {
  .ib-contact__channels { grid-template-columns: repeat(2, 1fr); }
  .ib-contact__main { grid-template-columns: 1fr; }
  .ib-contact__sidecard { flex-direction: row; gap: 14px; }
  .ib-contact__hours, .ib-contact__quick { flex: 1; }
}
@media (max-width: 640px) {
  .ib-contact__channels { grid-template-columns: 1fr; }
  .ib-contact__sidecard { flex-direction: column; }
  .ib-contact__form-wrap { padding: 24px 22px; border-radius: 18px; }
  .ib-contact__form-row { grid-template-columns: 1fr; gap: 0; }
  .ib-contact__title { letter-spacing: -1px; }
}

/* ============================================================
   UTIL PAGES — /promos/, /favoris/, /comparer/
   ============================================================ */
body.page-template-page-promos,
body.page-template-page-favoris,
body.page-template-page-comparer {
  background: linear-gradient(180deg, #F5F7FF 0%, #ECF1FF 100%);
  overflow-x: clip;
}
.ib-utilpage-shell {
  max-width: 1280px;
  margin: 0 auto;
  padding: 16px 16px 96px;
  position: relative;
  isolation: isolate;
}
.ib-utilpage-shell::before {
  content: '';
  position: absolute; inset: 0 0 auto 0;
  height: 55vh;
  background:
    radial-gradient(circle at 20% 18%, rgba(110,91,240,.18), transparent 55%),
    radial-gradient(circle at 78% 14%, rgba(24,85,204,.16), transparent 55%);
  filter: blur(60px); z-index: -1; pointer-events: none;
  animation: ib-co-aurora 24s ease-in-out infinite alternate;
}
.ib-utilpage__hero {
  text-align: center;
  padding: 36px 0 28px;
}
.ib-utilpage__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 999px;
  margin-bottom: 18px;
}
.ib-utilpage__pulse {
  width: 6px; height: 6px; border-radius: 50%;
  animation: ib-pulse-dot 1.6s ease-in-out infinite;
}
.ib-utilpage__hero--blue   .ib-utilpage__eyebrow { color: var(--ib-primary, #1855CC); background: rgba(24,85,204,.10); }
.ib-utilpage__hero--blue   .ib-utilpage__pulse   { background: var(--ib-primary, #1855CC); }
.ib-utilpage__hero--orange .ib-utilpage__eyebrow { color: #C2410C; background: rgba(240,90,0,.10); }
.ib-utilpage__hero--orange .ib-utilpage__pulse   { background: #F05A00; }
.ib-utilpage__hero--pink   .ib-utilpage__eyebrow { color: #BE185D; background: rgba(224,17,95,.10); }
.ib-utilpage__hero--pink   .ib-utilpage__pulse   { background: #E0115F; }

.ib-utilpage__title {
  font-size: clamp(34px, 5vw, 52px);
  font-weight: 900;
  letter-spacing: -1.8px;
  line-height: 1.04;
  margin: 0 0 14px;
  color: var(--ib-ink, #0A1628);
}
.ib-utilpage__title em {
  font-style: normal;
  background: linear-gradient(120deg, #1855CC 0%, #6E5BF0 50%, #E0115F 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.ib-utilpage__hero--orange .ib-utilpage__title em { background: linear-gradient(120deg, #F05A00, #F59E0B); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ib-utilpage__hero--pink   .ib-utilpage__title em { background: linear-gradient(120deg, #E0115F, #EC4899); -webkit-background-clip: text; background-clip: text; color: transparent; }

.ib-utilpage__sub {
  font-size: 15px; color: var(--ib-sub, #5B6B85);
  max-width: 640px; margin: 0 auto;
  line-height: 1.6;
}

/* Product grid wrapping WC's content-product cards */
.ib-utilpage__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  margin-top: 22px;
}
.ib-utilpage__grid > * { min-width: 0; }
@media (max-width: 1100px) { .ib-utilpage__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 800px)  { .ib-utilpage__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .ib-utilpage__grid { grid-template-columns: 1fr; } }

.ib-utilpage__empty {
  text-align: center;
  margin: 32px auto 0;
  max-width: 540px;
  padding: 48px 32px;
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(12px);
  border: 1px dashed rgba(24,85,204,.25);
  border-radius: 20px;
}
.ib-utilpage__empty-icon {
  font-size: 48px; line-height: 1;
  margin-bottom: 14px;
  background: linear-gradient(135deg, #1855CC, #6E5BF0);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.ib-utilpage__empty h3 {
  font-size: 18px; font-weight: 800;
  margin: 0 0 8px;
  color: var(--ib-ink);
}
.ib-utilpage__empty p {
  font-size: 14px; color: var(--ib-sub);
  margin: 0 0 22px;
  line-height: 1.55;
}
.ib-utilpage__cta {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 13px 24px;
  font-size: 14px; font-weight: 800;
  letter-spacing: .04em;
  color: #fff;
  background: linear-gradient(120deg, #0F3A99 0%, #1855CC 50%, #6E5BF0 100%);
  border-radius: 12px;
  text-decoration: none;
  box-shadow: 0 10px 24px -6px rgba(24,85,204,.45);
  transition: transform .15s ease, box-shadow .25s ease;
}
.ib-utilpage__cta:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 32px -6px rgba(24,85,204,.55); }

/* === Delivery confirmation (magic link landing) === */
.ib-delivery-shell {
  max-width: 720px;
  margin: 0 auto;
  padding: 32px 16px 96px;
  position: relative;
  isolation: isolate;
}
.ib-delivery-shell::before {
  content: '';
  position: absolute; inset: 0 0 auto 0;
  height: 50vh;
  background:
    radial-gradient(circle at 20% 18%, rgba(110,91,240,.20), transparent 55%),
    radial-gradient(circle at 78% 14%, rgba(24,85,204,.18), transparent 55%);
  filter: blur(50px);
  z-index: -1;
  pointer-events: none;
}
.ib-delivery__hero {
  text-align: center;
  padding: 24px 0 28px;
}
.ib-delivery__card {
  background: rgba(255,255,255,.88);
  backdrop-filter: saturate(160%) blur(18px);
  border: 1px solid rgba(225,232,242,.7);
  border-radius: 24px;
  padding: 28px 32px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.85) inset,
    0 24px 48px -16px rgba(24,85,204,.25),
    0 4px 12px rgba(10,22,40,.06);
}
.ib-delivery__order { margin-bottom: 22px; }
.ib-delivery__row {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  padding: 11px 0;
  font-size: 13px; color: var(--ib-sub, #5B6B85);
  border-bottom: 1px dashed rgba(225,232,242,.9);
}
.ib-delivery__row:last-child { border-bottom: none; }
.ib-delivery__row strong { color: var(--ib-ink, #0A1628); font-weight: 800; text-align: right; }
.ib-delivery__form { padding-top: 18px; border-top: 1px dashed rgba(225,232,242,.9); }
.ib-delivery__form .ib-track__cta { width: 100%; min-width: 0; }
.ib-delivery__legal {
  font-size: 11.5px; color: var(--ib-mute, #8A97AA);
  text-align: center;
  margin: 12px 0 0;
}
.ib-delivery__collected {
  background: linear-gradient(180deg, rgba(16,185,129,.05), rgba(16,185,129,.10));
  border: 1.5px solid rgba(16,185,129,.25);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.ib-delivery__collected-row {
  display: grid; grid-template-columns: 2fr 1fr; gap: 10px;
  margin-bottom: 6px;
}
.ib-delivery__collected input[type="number"],
.ib-delivery__collected select {
  width: 100%;
  padding: 12px 14px;
  font-size: 16px; font-weight: 800;
  font-family: inherit;
  color: var(--ib-ink);
  background: #fff;
  border: 1.5px solid rgba(16,185,129,.35);
  border-radius: 10px;
  font-variant-numeric: tabular-nums;
}
.ib-delivery__collected select { font-size: 14px; font-weight: 700; }
.ib-delivery__collected input:focus,
.ib-delivery__collected select:focus {
  outline: none;
  border-color: #10B981;
  box-shadow: 0 0 0 4px rgba(16,185,129,.15);
}
.ib-delivery__collected small {
  display: block;
  font-size: 11.5px; color: var(--ib-sub);
}

.ib-delivery__upload {
  display: block;
  padding: 16px 18px;
  background: #FAFBFE;
  border: 1.5px dashed #C9D4E5;
  border-radius: 12px;
  margin-bottom: 16px;
  cursor: pointer;
}
.ib-delivery__upload-label {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; color: var(--ib-ink);
  margin-bottom: 4px;
}
.ib-delivery__upload-label svg { color: var(--ib-primary); }
.ib-delivery__upload input { display: block; margin-top: 8px; font-size: 12px; }
.ib-delivery__upload small { display: block; margin-top: 6px; font-size: 11.5px; color: var(--ib-sub); }

.ib-delivery__already,
.ib-delivery__pending {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  padding: 22px 18px;
  text-align: center;
  border-top: 1px dashed rgba(225,232,242,.9);
  margin-top: 18px;
  font-size: 13px;
  color: var(--ib-sub);
}
.ib-delivery__already svg { color: #10B981; margin-bottom: 4px; }
.ib-delivery__pending svg { color: var(--ib-primary); margin-bottom: 4px; }
.ib-delivery__already strong,
.ib-delivery__pending strong { color: var(--ib-ink, #0A1628); font-weight: 800; font-size: 15px; }
.ib-delivery__already small,
.ib-delivery__pending small { font-size: 12px; }

/* Order details (line items + totals) */
.ib-or-details { margin-top: 32px; }
.ib-or-details__title {
  font-size: 18px; font-weight: 800; letter-spacing: -.3px;
  margin: 0 0 16px; color: var(--ib-ink, #0A1628);
}
.ib-or-details__card {
  background: #fff;
  border: 1px solid var(--ib-border, #E5E9F0);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(10,22,40,.04);
}
.ib-or-details__items { list-style: none; margin: 0; padding: 0; }
.ib-or-line {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 16px 20px;
  border-bottom: 1px solid var(--ib-border, #E5E9F0);
}
.ib-or-line:last-child { border-bottom: none; }
.ib-or-line__img {
  width: 64px; height: 64px;
  border-radius: 10px;
  background: #F5F7FF;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.ib-or-line__img img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.ib-or-line__name { font-size: 14px; font-weight: 700; color: var(--ib-ink, #0A1628); margin-bottom: 2px; }
.ib-or-line__meta { font-size: 12px; color: var(--ib-sub, #5B6B85); }
.ib-or-line__meta p { margin: 0; }
.ib-or-line__qty  { font-size: 12px; color: var(--ib-sub, #5B6B85); margin-top: 4px; }
.ib-or-line__total { font-size: 14px; font-weight: 800; color: var(--ib-ink, #0A1628); white-space: nowrap; }

.ib-or-details__totals {
  margin: 0; padding: 16px 20px;
  background: #FAFBFC;
  border-top: 1px solid var(--ib-border, #E5E9F0);
}
.ib-or-totals__row {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 6px 0;
  font-size: 13px; color: var(--ib-sub, #5B6B85);
}
.ib-or-totals__row dt { margin: 0; font-weight: 400; }
.ib-or-totals__row dd { margin: 0; color: var(--ib-ink, #0A1628); font-weight: 700; }
.ib-or-totals__row--grand {
  border-top: 1px solid var(--ib-border, #E5E9F0);
  padding-top: 12px; margin-top: 6px;
}
.ib-or-totals__row--grand dt { font-size: 14px; font-weight: 800; color: var(--ib-ink, #0A1628); }
.ib-or-totals__row--grand dd { font-size: 18px; font-weight: 800; color: var(--ib-primary, #1855CC); }
.ib-or-totals__row--note { display: block; }
.ib-or-totals__row--note dt { font-weight: 700; color: var(--ib-ink, #0A1628); margin-bottom: 4px; }

/* Customer addresses */
.ib-or-customer { margin-top: 28px; }
.ib-or-customer__grid {
  display: grid; grid-template-columns: 1fr; gap: 20px;
}
.ib-or-customer__grid.has-shipping { grid-template-columns: 1fr 1fr; }
.ib-or-customer__card {
  background: #fff;
  border: 1px solid var(--ib-border, #E5E9F0);
  border-radius: 16px;
  padding: 22px 24px;
  box-shadow: 0 1px 2px rgba(10,22,40,.04);
}
.ib-or-customer__label {
  font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--ib-sub, #5B6B85);
  margin-bottom: 12px;
}
.ib-or-customer address {
  font-style: normal;
  font-size: 13px; color: var(--ib-ink, #0A1628);
  line-height: 1.7;
}
.ib-or-customer__line {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--ib-sub, #5B6B85);
  margin-top: 6px;
}
.ib-or-customer__line svg { color: var(--ib-primary, #1855CC); flex-shrink: 0; }

@media (max-width: 860px) {
  .ib-or-customer__grid.has-shipping { grid-template-columns: 1fr; }
  .ib-or-line { grid-template-columns: 56px minmax(0,1fr) auto; gap: 12px; padding: 14px 16px; }
  .ib-or-line__img { width: 56px; height: 56px; }
}

/* ============================================================
   TRACKING
   ============================================================ */
.ib-tracking {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 24px;
  padding: 24px var(--ib-sp-8);
}
.ib-tracking__map {
  background: linear-gradient(135deg, #DBE5FF 0%, #F0EAFF 100%);
  border-radius: var(--ib-r-lg);
  height: 400px;
  position: relative;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.ib-tracking__map-overlay {
  position: absolute;
  bottom: 16px; left: 16px; right: 16px;
  background: rgba(255,255,255,0.95);
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  padding: 12px 16px;
  font-size: 12px; color: var(--ib-sub);
  display: flex; align-items: center; justify-content: space-between;
}
.ib-tracking__standby {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px;
  background: var(--ib-bd-excl-bg); color: var(--ib-bd-excl-fg);
  font-size: 11px; font-weight: 700;
  border-radius: var(--ib-r-pill);
}

.ib-tracking__timeline {
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-lg);
  padding: 24px;
  margin-top: 24px;
}
.ib-tracking__step {
  display: flex; gap: 16px;
  position: relative;
  padding-bottom: 24px;
}
.ib-tracking__step:last-child { padding-bottom: 0; }
.ib-tracking__step::before {
  content: '';
  position: absolute;
  left: 11px; top: 32px; bottom: -8px;
  width: 2px; background: var(--ib-line);
}
.ib-tracking__step:last-child::before { display: none; }
.ib-tracking__step-icon {
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--ib-line);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  z-index: 1; position: relative;
  color: #fff;
}
.ib-tracking__step.is-done .ib-tracking__step-icon {
  background: var(--ib-success);
}
.ib-tracking__step.is-active .ib-tracking__step-icon {
  background: var(--ib-primary);
  box-shadow: 0 0 0 4px var(--ib-primary-lt);
}
.ib-tracking__step-title {
  font-size: 14px; font-weight: 700; color: var(--ib-ink);
}
.ib-tracking__step-sub {
  font-size: 12px; color: var(--ib-sub); margin-top: 2px;
}

/* ============================================================
   ACCOUNT (Mon Compte) — depth + punch system
   ============================================================ */
body.woocommerce-account {
  background: linear-gradient(180deg, #F5F7FF 0%, #ECF1FF 100%);
  overflow-x: clip;
}
.ib-acct-shell {
  max-width: 1280px; margin: 0 auto;
  padding: 16px 16px 96px;
  position: relative;
  isolation: isolate;
}
.ib-acct-shell::before {
  content: '';
  position: absolute; inset: 0 0 auto 0;
  height: 50vh;
  background:
    radial-gradient(circle at 18% 18%, rgba(110,91,240,.18), transparent 55%),
    radial-gradient(circle at 82% 14%, rgba(24,85,204,.16), transparent 55%),
    radial-gradient(circle at 50% 60%, rgba(224,17,95,.08), transparent 60%);
  filter: blur(50px);
  z-index: -1;
  pointer-events: none;
  animation: ib-co-aurora 24s ease-in-out infinite alternate;
}

/* === Hero greeting === */
.ib-acct__hero {
  position: relative;
  border-radius: 24px;
  padding: 32px 36px;
  margin-bottom: 28px;
  background:
    linear-gradient(135deg, rgba(15,58,153,.96) 0%, rgba(24,85,204,.94) 45%, rgba(110,91,240,.92) 100%);
  color: #fff;
  overflow: hidden;
  isolation: isolate;
  box-shadow:
    0 1px 0 rgba(255,255,255,.18) inset,
    0 24px 48px -16px rgba(24,85,204,.45);
  animation: ib-step-in .6s cubic-bezier(.2,.9,.3,1.2) backwards;
}
.ib-acct__hero::before {
  content: '';
  position: absolute; inset: -40% -10% auto auto;
  width: 60%; height: 200%;
  background: radial-gradient(circle, rgba(224,17,95,.35), transparent 60%);
  filter: blur(50px);
  z-index: -1;
}
.ib-acct__hero::after {
  content: '';
  position: absolute; inset: auto auto -50% -10%;
  width: 50%; height: 200%;
  background: radial-gradient(circle, rgba(16,185,129,.25), transparent 60%);
  filter: blur(50px);
  z-index: -1;
}
.ib-acct__hero-grid {
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  gap: 32px; align-items: center;
}
.ib-acct__hello {
  font-size: 11px; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  margin-bottom: 10px;
}
.ib-acct__hello-dot {
  display: inline-block; width: 6px; height: 6px;
  background: #10B981; border-radius: 50%;
  margin-right: 8px; vertical-align: middle;
  animation: ib-pulse-dot 1.6s ease-in-out infinite;
}
.ib-acct__name {
  font-size: clamp(32px, 4.5vw, 48px);
  font-weight: 900;
  letter-spacing: -1.5px;
  line-height: 1.05;
  margin: 0 0 10px;
  color: #fff;
}
.ib-acct__name em {
  font-style: normal;
  background: linear-gradient(120deg, #FFD7E0 0%, #FFE4D2 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.ib-acct__tagline {
  font-size: 14px; color: rgba(255,255,255,.82);
  max-width: 520px; line-height: 1.5;
  margin: 0;
}
.ib-acct__hero-pill {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 16px 22px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  backdrop-filter: blur(10px);
  border-radius: 16px;
  color: #fff;
  text-decoration: none;
  transition: background .2s ease, transform .15s ease;
}
.ib-acct__hero-pill:hover { background: rgba(255,255,255,.22); transform: translateY(-2px); color: #fff; }
.ib-acct__hero-pill svg { color: #FFE4D2; }
.ib-acct__hero-pill strong { display: block; font-size: 13px; font-weight: 800; }
.ib-acct__hero-pill small { display: block; font-size: 11px; color: rgba(255,255,255,.7); }

/* === Two-column shell === */
.ib-acct {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

/* === Sidebar nav === */
/* Specificity bump: WC's woocommerce-layout.css sets `.woocommerce-MyAccount-navigation { float:left; width:30% }` */
.ib-acct .ib-acct__sidebar {
  float: none;
  position: sticky;
  top: calc(var(--ib-header-h, 134px) + 16px);
  width: 280px;
  background: rgba(255,255,255,.78);
  backdrop-filter: saturate(160%) blur(18px);
  -webkit-backdrop-filter: saturate(160%) blur(18px);
  border: 1px solid rgba(225,232,242,.7);
  border-radius: 20px;
  padding: 8px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.8) inset,
    0 18px 40px -16px rgba(24,85,204,.18),
    0 4px 10px rgba(10,22,40,.04);
  animation: ib-step-in .65s cubic-bezier(.2,.9,.3,1.2) .08s backwards;
}
.ib-acct__user {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 12px 14px;
  border-bottom: 1px dashed rgba(225,232,242,.9);
  margin-bottom: 8px;
}
.ib-acct__avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1855CC 0%, #6E5BF0 60%, #E0115F 100%);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 800;
  letter-spacing: -.5px;
  flex-shrink: 0;
  box-shadow: 0 6px 14px rgba(24,85,204,.28);
  overflow: hidden;
  position: relative;
}
.ib-acct__avatar.has-image { background: #F5F7FF; }
.ib-acct__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ib-acct__user-info { min-width: 0; }
.ib-acct__user-info { min-width: 0; flex: 1; }
.ib-acct__user-name {
  font-size: 13px; font-weight: 800;
  color: var(--ib-ink, #0A1628);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 100%;
}
.ib-acct__user-email {
  font-size: 11.5px; color: var(--ib-sub, #5B6B85);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 100%;
}
.ib-acct__nav { padding: 4px; }
.ib-acct__nav-item {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  color: var(--ib-sub, #5B6B85);
  font-size: 13px; font-weight: 600;
  text-decoration: none;
  transition: background .18s ease, color .18s ease, transform .15s ease;
  position: relative;
  margin-bottom: 2px;
  white-space: nowrap;
}
.ib-acct__nav-item > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ib-acct__nav-item svg { flex-shrink: 0; transition: transform .2s ease; }
.ib-acct__nav-item:hover {
  background: rgba(24,85,204,.06);
  color: var(--ib-ink, #0A1628);
}
.ib-acct__nav-item:hover svg { transform: translateX(2px); }
.ib-acct__nav-item.is-active {
  background: linear-gradient(120deg, #1855CC 0%, #6E5BF0 100%);
  color: #fff;
  font-weight: 700;
  box-shadow: 0 8px 20px -6px rgba(24,85,204,.55);
}
.ib-acct__nav-item.is-active svg { color: #fff; }
.ib-acct__nav-item.is-logout {
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px dashed rgba(225,232,242,.9);
  border-radius: 0;
  color: var(--ib-sub);
  font-weight: 600;
}
.ib-acct__nav-item.is-logout:hover { color: var(--ib-danger, #DC2626); background: transparent; }
.ib-acct__nav-count {
  margin-left: auto;
  font-size: 11px; font-weight: 800;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(24,85,204,.10);
  color: var(--ib-primary, #1855CC);
}
.ib-acct__nav-item.is-active .ib-acct__nav-count {
  background: rgba(255,255,255,.22);
  color: #fff;
}

/* === Content area === */
.ib-acct .ib-acct__content {
  float: none;
  width: auto;
  min-width: 0;
  animation: ib-step-in .65s cubic-bezier(.2,.9,.3,1.2) .14s backwards;
}
.ib-acct__page-head { margin-bottom: 20px; }
.ib-acct__page-eyebrow {
  font-size: 11px; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ib-primary, #1855CC);
  margin-bottom: 6px;
}
.ib-acct__page-title {
  font-size: 28px; font-weight: 900;
  letter-spacing: -1px;
  margin: 0 0 6px;
  color: var(--ib-ink, #0A1628);
}
.ib-acct__page-sub {
  font-size: 14px; color: var(--ib-sub, #5B6B85);
  margin: 0;
}

/* Generic card */
.ib-acct__card {
  background: #fff;
  border: 1px solid rgba(225,232,242,.8);
  border-radius: 20px;
  padding: 26px 30px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.8) inset,
    0 1px 2px rgba(10,22,40,.04),
    0 12px 36px -16px rgba(24,85,204,.18);
  position: relative;
  overflow: hidden;
}
.ib-acct__card::before {
  content: '';
  position: absolute; top: -40px; right: -40px;
  width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(110,91,240,.06), transparent 70%);
  pointer-events: none;
}
.ib-acct__card-title {
  font-size: 14px; font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin: 0 0 16px;
}

/* "Check your email" post-register screen */
.ib-auth-checkemail {
  max-width: 540px; margin: 0 auto;
  text-align: center;
  padding: 44px 36px;
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(225,232,242,.7);
  border-radius: 22px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.85) inset,
    0 24px 48px -16px rgba(24,85,204,.22);
}
.ib-auth-checkemail__icon { font-size: 56px; margin-bottom: 14px; line-height: 1; }
.ib-auth-checkemail h1 {
  font-size: 24px; font-weight: 900;
  letter-spacing: -.6px;
  margin: 0 0 10px;
  color: var(--ib-ink, #0A1628);
}
.ib-auth-checkemail p { font-size: 14px; color: var(--ib-sub, #5B6B85); margin: 0 0 14px; line-height: 1.6; }
.ib-auth-checkemail small { display: block; font-size: 12.5px; color: var(--ib-mute); }

/* First-login welcome nudge */
.ib-acct__welcome {
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 22px;
  padding: 16px 22px;
  background: linear-gradient(135deg, rgba(16,185,129,.10), rgba(255,228,210,.18));
  border: 1px solid rgba(16,185,129,.25);
  border-radius: 16px;
  text-decoration: none;
  color: var(--ib-ink, #0A1628);
  transition: transform .15s ease, box-shadow .25s ease;
}
.ib-acct__welcome:hover {
  transform: translateY(-1px);
  color: var(--ib-ink);
  box-shadow: 0 12px 24px -10px rgba(16,185,129,.35);
}
.ib-acct__welcome-emoji {
  font-size: 28px; line-height: 1;
  flex-shrink: 0;
}
.ib-acct__welcome strong { display: block; font-size: 14px; font-weight: 800; }
.ib-acct__welcome small  { display: block; font-size: 12.5px; color: var(--ib-sub, #5B6B85); margin-top: 2px; }
.ib-acct__welcome-cta {
  margin-left: auto;
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 800;
  letter-spacing: .04em; text-transform: uppercase;
  color: #047857;
  white-space: nowrap;
}

/* === Stat cards === */
.ib-acct-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 28px;
}
.ib-acct-stat {
  position: relative;
  background: #fff;
  border: 1px solid rgba(225,232,242,.8);
  border-radius: 18px;
  padding: 20px 22px;
  display: flex; align-items: center; gap: 16px;
  box-shadow: 0 1px 2px rgba(10,22,40,.04), 0 12px 36px -16px rgba(24,85,204,.16);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}
.ib-acct-stat:hover { transform: translateY(-2px); box-shadow: 0 1px 2px rgba(10,22,40,.04), 0 18px 36px -12px rgba(24,85,204,.22); }
.ib-acct-stat__icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  flex-shrink: 0;
}
.ib-acct-stat__icon--blue   { background: linear-gradient(135deg, #1855CC, #6E5BF0); box-shadow: 0 8px 20px -6px rgba(24,85,204,.45); }
.ib-acct-stat__icon--pink   { background: linear-gradient(135deg, #E0115F, #EC4899); box-shadow: 0 8px 20px -6px rgba(224,17,95,.45); }
.ib-acct-stat__icon--orange { background: linear-gradient(135deg, #F05A00, #F59E0B); box-shadow: 0 8px 20px -6px rgba(240,90,0,.40); }
.ib-acct-stat__icon--green  { background: linear-gradient(135deg, #10B981, #047857); box-shadow: 0 8px 20px -6px rgba(16,185,129,.40); }
.ib-acct-stat__label {
  font-size: 12px; font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin-bottom: 4px;
}
.ib-acct-stat__value {
  font-size: 22px; font-weight: 900;
  letter-spacing: -.6px;
  color: var(--ib-ink, #0A1628);
  font-variant-numeric: tabular-nums;
}

/* === Section header inside content === */
.ib-acct-section { margin-bottom: 28px; }
.ib-acct-section__head {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 14px;
}
.ib-acct-section__head h2 {
  font-size: 18px; font-weight: 800; letter-spacing: -.3px; margin: 0;
  color: var(--ib-ink, #0A1628);
}
.ib-acct-section__more {
  font-size: 13px; font-weight: 700;
  color: var(--ib-primary, #1855CC);
  text-decoration: none;
  display: inline-flex; align-items: center; gap: 4px;
}

/* === Order rows === */
.ib-acct-orders { display: flex; flex-direction: column; gap: 10px; }
.ib-acct-order {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) auto auto auto auto;
  gap: 18px; align-items: center;
  padding: 16px 22px;
  background: #fff;
  border: 1px solid rgba(225,232,242,.8);
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(10,22,40,.04);
  transition: transform .15s ease, box-shadow .2s ease, border-color .2s ease;
  text-decoration: none; color: inherit;
}
.ib-acct-order:hover {
  transform: translateY(-1px);
  border-color: rgba(24,85,204,.25);
  box-shadow: 0 12px 28px -10px rgba(24,85,204,.25);
}
.ib-acct-order__id { display: flex; flex-direction: column; min-width: 0; }
.ib-acct-order__id strong { font-size: 14px; font-weight: 800; color: var(--ib-ink, #0A1628); }
.ib-acct-order__id small { font-size: 12px; color: var(--ib-sub, #5B6B85); }
.ib-acct-order__items {
  font-size: 12px; color: var(--ib-sub, #5B6B85);
  display: flex; align-items: center; gap: 6px;
}
.ib-acct-order__items strong { color: var(--ib-ink, #0A1628); font-weight: 700; }
.ib-acct-order__total {
  font-size: 14px; font-weight: 800;
  color: var(--ib-ink, #0A1628);
  white-space: nowrap;
}
.ib-acct-order__cta {
  font-size: 12px; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ib-primary, #1855CC);
  display: inline-flex; align-items: center; gap: 4px;
}

/* Status badge */
.ib-acct-status {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 800; letter-spacing: .06em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 999px;
}
.ib-acct-status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; }
.ib-acct-status--processing { background: rgba(24,85,204,.10); color: var(--ib-primary, #1855CC); }
.ib-acct-status--processing::before { background: var(--ib-primary, #1855CC); }
.ib-acct-status--completed  { background: rgba(16,185,129,.12); color: #047857; }
.ib-acct-status--completed::before  { background: #10B981; }
.ib-acct-status--on-hold    { background: rgba(245,158,11,.14); color: #B45309; }
.ib-acct-status--on-hold::before    { background: #F59E0B; }
.ib-acct-status--cancelled,
.ib-acct-status--failed,
.ib-acct-status--refunded   { background: rgba(220,38,38,.12); color: #B91C1C; }
.ib-acct-status--cancelled::before,
.ib-acct-status--failed::before,
.ib-acct-status--refunded::before { background: #DC2626; }
.ib-acct-status--pending    { background: rgba(91,107,133,.12); color: var(--ib-sub, #5B6B85); }
.ib-acct-status--pending::before    { background: var(--ib-sub, #5B6B85); }

/* Empty states */
.ib-acct-empty {
  text-align: center;
  padding: 56px 28px;
  background: #fff;
  border: 1px dashed rgba(24,85,204,.25);
  border-radius: 20px;
}
.ib-acct-empty__icon {
  width: 72px; height: 72px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(24,85,204,.10), rgba(110,91,240,.12));
  color: var(--ib-primary, #1855CC);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 18px;
}
.ib-acct-empty h3 {
  font-size: 18px; font-weight: 800;
  margin: 0 0 6px;
  color: var(--ib-ink, #0A1628);
}
.ib-acct-empty p {
  font-size: 14px; color: var(--ib-sub, #5B6B85);
  margin: 0 0 18px;
}

/* === Address cards === */
.ib-acct-addresses {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.ib-acct-address {
  position: relative;
  background: #fff;
  border: 1px solid rgba(225,232,242,.8);
  border-radius: 18px;
  padding: 22px 24px;
  box-shadow: 0 1px 2px rgba(10,22,40,.04), 0 12px 32px -16px rgba(24,85,204,.16);
  display: flex; flex-direction: column;
  min-height: 200px;
}
.ib-acct-address__head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px;
}
.ib-acct-address__label {
  font-size: 11px; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
}
.ib-acct-address__edit {
  font-size: 11.5px; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ib-primary, #1855CC);
  text-decoration: none;
  padding: 6px 12px;
  border: 1px solid rgba(24,85,204,.25);
  border-radius: 999px;
  transition: background .2s ease, color .2s ease;
}
.ib-acct-address__edit:hover { background: var(--ib-primary, #1855CC); color: #fff; }
.ib-acct-address address {
  font-style: normal;
  font-size: 14px; line-height: 1.7;
  color: var(--ib-ink, #0A1628);
}
.ib-acct-address__empty {
  font-size: 13px; color: var(--ib-sub, #5B6B85);
  font-style: italic;
}

/* === Profile picture editor === */
.ib-acct-avatar-edit {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 22px;
  align-items: center;
  padding: 4px 0 22px;
  margin-bottom: 22px;
  border-bottom: 1px dashed rgba(225,232,242,.9);
}
.ib-acct-avatar-edit__preview {
  width: 96px; height: 96px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1855CC 0%, #6E5BF0 60%, #E0115F 100%);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 30px; font-weight: 900;
  letter-spacing: -1px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 12px 28px -8px rgba(24,85,204,.45);
}
.ib-acct-avatar-edit__preview img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ib-acct-avatar-edit__label {
  font-size: 13px; font-weight: 800; color: var(--ib-ink, #0A1628);
  margin-bottom: 4px;
}
.ib-acct-avatar-edit__hint {
  font-size: 12px; color: var(--ib-sub, #5B6B85);
  margin: 0 0 12px;
  line-height: 1.5;
}
.ib-acct-avatar-edit__buttons {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
}
.ib-acct-avatar-edit__btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  background: #fff;
  border: 1.5px solid #C9D4E5;
  border-radius: 10px;
  cursor: pointer;
  font-size: 13px; font-weight: 700;
  color: var(--ib-ink, #0A1628);
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.ib-acct-avatar-edit__btn:hover {
  border-color: var(--ib-primary, #1855CC);
  background: rgba(24,85,204,.04);
  color: var(--ib-primary, #1855CC);
}
.ib-acct-avatar-edit__btn input { display: none; }
.ib-acct-avatar-edit__remove {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12.5px; color: var(--ib-sub, #5B6B85);
  cursor: pointer;
}
.ib-acct-avatar-edit__remove input { width: 16px; height: 16px; accent-color: var(--ib-danger, #DC2626); }

/* === Forms (edit-account, edit-address) — reuse checkout form-row pattern === */
.ib-acct-form .form-row {
  margin: 0 0 18px;
  display: block;
  position: relative;
}
.ib-acct-form .form-row.form-row-first,
.ib-acct-form .form-row.form-row-last {
  display: inline-block;
  width: calc(50% - 8px);
  vertical-align: top;
}
.ib-acct-form .form-row.form-row-first { margin-right: 12px; }
.ib-acct-form .form-row label {
  display: block;
  font-size: 11px; font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin-bottom: 6px;
}
.ib-acct-form .form-row label .required,
.ib-acct-form .form-row label abbr.required {
  color: var(--ib-pink, #E0115F);
  text-decoration: none;
  margin-left: 2px;
  border: none;
}
.ib-acct-form .form-row .input-text,
.ib-acct-form .form-row select,
.ib-acct-form .form-row textarea {
  width: 100%;
  padding: 14px 16px;
  font-size: 14px; font-weight: 500;
  color: var(--ib-ink, #0A1628);
  background: #FAFBFE;
  border: 1.5px solid #E1E8F2;
  border-radius: 12px;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
  font-family: inherit;
}
.ib-acct-form .form-row .input-text:hover,
.ib-acct-form .form-row select:hover { border-color: #C9D4E5; background: #fff; }
.ib-acct-form .form-row .input-text:focus,
.ib-acct-form .form-row select:focus,
.ib-acct-form .form-row textarea:focus {
  outline: none;
  border-color: var(--ib-primary, #1855CC);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(24,85,204,.10);
}
.ib-acct-form fieldset {
  margin: 22px 0 0;
  padding: 22px 0 0;
  border: none;
  border-top: 1px dashed rgba(225,232,242,.9);
}
.ib-acct-form fieldset legend {
  font-size: 13px; font-weight: 800;
  color: var(--ib-ink, #0A1628);
  letter-spacing: -.2px;
  padding: 0 0 14px;
}
.ib-acct-form .form-row.form-row-wide { width: 100%; }
.ib-acct-form .form-row span em {
  display: block;
  font-style: normal;
  font-size: 11px;
  color: var(--ib-mute, #8A97AA);
  margin-top: 4px;
  letter-spacing: 0;
  text-transform: none;
}
.ib-acct-form .form-row .button,
.ib-acct-form button[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 28px;
  font-size: 14px; font-weight: 800;
  letter-spacing: .04em;
  color: #fff;
  background: linear-gradient(120deg, #0F3A99 0%, #1855CC 50%, #6E5BF0 100%);
  background-size: 180% 180%;
  background-position: 0% 50%;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  box-shadow: 0 8px 22px -6px rgba(24,85,204,.45);
  transition: background-position .5s ease, transform .15s ease, box-shadow .2s ease;
  margin-top: 8px;
}
.ib-acct-form .form-row .button:hover,
.ib-acct-form button[type="submit"]:hover {
  background-position: 100% 50%;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px -6px rgba(24,85,204,.55);
}

/* === Login / Register === */
.ib-auth {
  max-width: 980px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 0;
  background: rgba(255,255,255,.78);
  backdrop-filter: saturate(160%) blur(18px);
  border: 1px solid rgba(225,232,242,.7);
  border-radius: 24px;
  overflow: hidden;
  box-shadow:
    0 1px 0 rgba(255,255,255,.8) inset,
    0 24px 48px -16px rgba(24,85,204,.25),
    0 4px 12px rgba(10,22,40,.06);
  isolation: isolate;
  position: relative;
}
.ib-auth::before {
  content: '';
  position: absolute; inset: -40px -32px;
  background:
    radial-gradient(circle at 25% 15%, rgba(110,91,240,.30), transparent 55%),
    radial-gradient(circle at 75% 85%, rgba(24,85,204,.22), transparent 55%);
  filter: blur(40px); z-index: -1; pointer-events: none;
}
.ib-auth__panel {
  padding: 40px 44px;
  border-right: 1px solid rgba(225,232,242,.6);
}
.ib-auth__panel:last-child { border-right: none; }
.ib-auth__title {
  font-size: 26px; font-weight: 900;
  letter-spacing: -1px;
  margin: 0 0 6px;
  color: var(--ib-ink, #0A1628);
}
.ib-auth__title em {
  font-style: normal;
  background: linear-gradient(120deg, #1855CC 0%, #6E5BF0 50%, #E0115F 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.ib-auth__sub {
  font-size: 13px; color: var(--ib-sub, #5B6B85);
  margin: 0 0 24px;
}
.ib-auth__panel .form-row { margin: 0 0 14px; }
.ib-auth__panel .form-row label {
  display: block;
  font-size: 11px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin-bottom: 6px;
}
.ib-auth__panel .form-row .input-text {
  width: 100%;
  padding: 13px 16px;
  font-size: 14px; font-weight: 500;
  background: #fff;
  border: 1.5px solid #E1E8F2;
  border-radius: 12px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.ib-auth__panel .form-row .input-text:focus {
  outline: none;
  border-color: var(--ib-primary, #1855CC);
  box-shadow: 0 0 0 4px rgba(24,85,204,.10);
}
.ib-auth__remember {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--ib-sub, #5B6B85);
  margin: 0 0 16px;
}
.ib-auth__remember input { width: 16px; height: 16px; accent-color: var(--ib-primary, #1855CC); }
.ib-auth__lost { font-size: 12.5px; font-weight: 600; }
.ib-auth__submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%;
  padding: 15px 22px;
  font-size: 14px; font-weight: 800;
  letter-spacing: .04em;
  color: #fff;
  background: linear-gradient(120deg, #0F3A99 0%, #1855CC 50%, #6E5BF0 100%);
  background-size: 180% 180%;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  box-shadow: 0 10px 24px -6px rgba(24,85,204,.45);
  transition: background-position .5s ease, transform .15s ease, box-shadow .2s ease;
  margin-top: 6px;
}
.ib-auth__submit:hover { background-position: 100% 50%; transform: translateY(-2px); box-shadow: 0 16px 32px -6px rgba(24,85,204,.55); }
.ib-auth__panel--register {
  background: linear-gradient(180deg, rgba(255,255,255,.4), rgba(255,255,255,.1));
}

/* Responsive */
@media (max-width: 1024px) {
  .ib-acct { grid-template-columns: 1fr; }
  .ib-acct__sidebar { position: static; }
  .ib-acct__hero-grid { grid-template-columns: 1fr; }
  .ib-auth { grid-template-columns: 1fr; }
  .ib-auth__panel { border-right: none; border-bottom: 1px solid rgba(225,232,242,.6); }
}
@media (max-width: 720px) {
  .ib-acct-stats { grid-template-columns: 1fr; }
  .ib-acct__hero { padding: 24px 22px; border-radius: 20px; }
  .ib-acct__name { letter-spacing: -1px; }
  .ib-acct-order { grid-template-columns: 1fr auto; row-gap: 10px; column-gap: 12px; padding: 14px 16px; }
  .ib-acct-order__id     { grid-column: 1; }
  .ib-acct-status        { grid-column: 2; justify-self: end; }
  .ib-acct-order__items  { grid-column: 1 / -1; }
  .ib-acct-order__total  { grid-column: 1; }
  .ib-acct-order__cta    { grid-column: 2; justify-self: end; }
  .ib-acct-addresses { grid-template-columns: 1fr; }
  .ib-acct-form .form-row.form-row-first,
  .ib-acct-form .form-row.form-row-last { display: block; width: 100%; margin-right: 0; }
  .ib-auth__panel { padding: 28px 22px; }
}

/* ============================================================
 *  ACCOUNT MOBILE NAV → tile grid (polish 2026-06-08)
 *  At <=1024px the sidebar already stacks above content; turn the
 *  vertical nav list into a compact tile grid and drop the redundant
 *  avatar card (the hero already greets the user).
 * ============================================================ */
@media (max-width: 1024px) {
  .ib-acct__user { display: none; }
  .ib-acct .ib-acct__sidebar { width: auto; }   /* release the desktop 280px so tiles span full width */
  .ib-acct__nav {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    gap: 10px;
    padding: 0;
    margin-bottom: 22px;
  }
  .ib-acct__nav-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 14px;
    margin: 0;
    border: 1px solid rgba(225,232,242,.9);
    border-radius: 14px;
    background: #fff;
    white-space: normal;
  }
  .ib-acct__nav-item:hover svg { transform: none; }
  .ib-acct__nav-item.is-active { border-color: transparent; }
  .ib-acct__nav-count {
    margin-left: 0;
    position: absolute;
    top: 10px;
    right: 12px;
  }
  .ib-acct__nav-item.is-logout {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin-top: 0;
    padding: 12px 14px;
    border: 1px solid rgba(225,232,242,.9);
    border-radius: 14px;
  }
}

/* ============================================================
 *  ACCOUNT — Sécurité page (polish 2026-06-08)
 * ============================================================ */
.ib-acct-security { display: grid; gap: 18px; }
.ib-acct-security__card { padding: 22px 24px; }
.ib-acct-security__card-title {
  font-size: 16px; font-weight: 800;
  color: var(--ib-ink, #0A1628);
  margin: 0 0 16px;
}
.ib-acct-security__form .form-row { margin: 0 0 14px; }
.ib-acct-security__form label {
  display: block;
  font-size: 12px; font-weight: 700;
  color: var(--ib-sub, #5B6B85);
  margin-bottom: 6px;
}
.ib-acct-security__form .input-text {
  width: 100%;
  padding: 13px 16px;
  font-size: 14px;
  background: #fff;
  border: 1.5px solid #E1E8F2;
  border-radius: 12px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.ib-acct-security__form .input-text:focus {
  outline: none;
  border-color: var(--ib-primary, #1855CC);
  box-shadow: 0 0 0 4px rgba(24,85,204,.10);
}

/* Sessions list */
.ib-acct-sessions { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 10px; }
.ib-acct-session {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(225,232,242,.9);
  border-radius: 12px;
  background: #fff;
}
.ib-acct-session.is-current { border-color: rgba(24,85,204,.35); background: rgba(24,85,204,.04); }
.ib-acct-session__icon {
  width: 36px; height: 36px; flex-shrink: 0;
  border-radius: 10px;
  background: rgba(24,85,204,.08);
  color: var(--ib-primary, #1855CC);
  display: inline-flex; align-items: center; justify-content: center;
}
.ib-acct-session__main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ib-acct-session__device { font-size: 14px; font-weight: 700; color: var(--ib-ink, #0A1628); }
.ib-acct-session__meta { font-size: 12px; color: var(--ib-sub, #5B6B85); }
.ib-acct-session__badge {
  margin-left: auto; flex-shrink: 0;
  font-size: 11px; font-weight: 800; letter-spacing: .04em;
  padding: 4px 10px; border-radius: 999px;
  background: rgba(24,85,204,.10); color: var(--ib-primary, #1855CC);
}
.ib-acct-form__hint { font-size: 13px; color: var(--ib-sub, #5B6B85); margin: 4px 0 0; }
.ib-acct-form__hint a { color: var(--ib-primary, #1855CC); font-weight: 700; }

/* ============================================================
   SEARCH
   ============================================================ */
.ib-search-results {
  padding: 24px var(--ib-sp-8);
}
.ib-search-suggest {
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-lg);
  padding: 16px;
  margin-bottom: 20px;
  box-shadow: var(--ib-shadow-sm);
}
.ib-search-suggest__title {
  font-size: 11px; font-weight: 700;
  color: var(--ib-mute);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 10px;
}
.ib-search-suggest__row {
  display: flex; align-items: center; gap: 12px;
  padding: 8px 4px;
  border-radius: var(--ib-r-sm);
  cursor: pointer;
  text-decoration: none; color: var(--ib-ink);
}
.ib-search-suggest__row:hover { background: var(--ib-soft); }

/* ============================================================
   DROPS EXCLUSIFS — VIP lounge aesthetic
   Dark hero, gold accents, scarcity cues
   ============================================================ */
body.page-template-template-whitelist { background: #07091A; overflow-x: clip; }

.ib-drops-shell { color: rgba(255,255,255,.92); }

/* HERO */
.ib-drops__hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding: 96px 24px 80px;
  text-align: center;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(110,91,240,.4), transparent 60%),
    radial-gradient(ellipse at 80% 100%, rgba(224,17,95,.35), transparent 60%),
    radial-gradient(ellipse at 10% 60%, rgba(24,85,204,.4), transparent 55%),
    linear-gradient(180deg, #07091A 0%, #0F1230 60%, #07091A 100%);
  color: #fff;
}
.ib-drops__hero-grain {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    repeating-linear-gradient(0deg, rgba(255,255,255,.015) 0 1px, transparent 1px 2px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.015) 0 1px, transparent 1px 2px);
  mix-blend-mode: overlay;
  opacity: .6;
}
.ib-drops__hero-spot {
  position: absolute; pointer-events: none; z-index: 0;
  border-radius: 50%; filter: blur(60px);
}
.ib-drops__hero-spot--1 { top: -10%; left: 5%;   width: 40vw; height: 40vw; background: radial-gradient(circle, rgba(110,91,240,.5), transparent 70%); animation: ib-drops-float 18s ease-in-out infinite alternate; }
.ib-drops__hero-spot--2 { bottom: -20%; right: 0; width: 50vw; height: 50vw; background: radial-gradient(circle, rgba(224,17,95,.45), transparent 70%); animation: ib-drops-float 22s ease-in-out infinite alternate-reverse; }
@keyframes ib-drops-float {
  0%   { transform: translate3d(0, 0, 0) scale(1); }
  100% { transform: translate3d(40px, -30px, 0) scale(1.08); }
}

.ib-drops__hero-inner {
  position: relative; z-index: 1;
  max-width: 940px; margin: 0 auto;
}
.ib-drops__hero-inner--with-3d {
  max-width: 1200px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 520px);
  gap: 40px;
  align-items: center;
}
@media (max-width: 980px) {
  .ib-drops__hero-inner--with-3d { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
.ib-drops__hero-copy { min-width: 0; }

/* 3D iPhone showpiece on hero */
.ib-drops__hero-3d {
  position: relative;
  height: 520px;
  display: grid; place-items: center;
  isolation: isolate;
}
@media (max-width: 980px) { .ib-drops__hero-3d { height: 380px; } }
.ib-drops__hero-3d-glow {
  position: absolute;
  inset: 5%;
  background:
    radial-gradient(60% 60% at 50% 50%, rgba(110,91,240,.45) 0%, transparent 65%),
    radial-gradient(80% 80% at 50% 100%, rgba(255,118,170,.25) 0%, transparent 65%);
  filter: blur(30px);
  z-index: 0;
  animation: ib-drops-3d-glow 8s ease-in-out infinite;
  pointer-events: none;
}
@keyframes ib-drops-3d-glow {
  0%, 100% { opacity: .65; transform: scale(1); }
  50%      { opacity: .95; transform: scale(1.06); }
}
.ib-drops__hero-3d-pedestal {
  position: absolute;
  left: 50%; bottom: 12%;
  transform: translateX(-50%);
  width: 70%; height: 16px;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.55), transparent 70%);
  filter: blur(10px);
  z-index: 1;
  pointer-events: none;
}
.ib-drops__hero-3d-mv {
  position: relative;
  z-index: 2;
  width: 100%; height: 100%;
  background: transparent;
  --poster-color: transparent;
}
.ib-drops__hero-3d-tag {
  position: absolute;
  left: 50%; bottom: 6px;
  transform: translateX(-50%);
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 14px;
  background: rgba(0,0,0,.45);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  z-index: 3;
  pointer-events: none;
}
.ib-drops__hero-3d-tag .dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #FFD371;
  box-shadow: 0 0 12px 2px rgba(255,211,113,.7);
  animation: ib-drops-3d-tag 1.6s ease-in-out infinite;
}
@keyframes ib-drops-3d-tag { 0%,100% { transform: scale(1); } 50% { transform: scale(1.4); } }
.ib-drops__crown {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 800; letter-spacing: .2em;
  text-transform: uppercase;
  color: #FFE4D2;
  background: linear-gradient(135deg, rgba(224,17,95,.18), rgba(110,91,240,.18));
  border: 1px solid rgba(255,228,210,.3);
  border-radius: 999px;
  padding: 8px 18px;
  margin-bottom: 28px;
  backdrop-filter: blur(12px);
}
.ib-drops__crown svg { color: #FFC78A; }

.ib-drops__title {
  font-size: clamp(48px, 8vw, 96px);
  font-weight: 900;
  letter-spacing: -3px;
  line-height: .98;
  margin: 0 0 22px;
  color: #fff;
}
.ib-drops__title-l1 { display: block; color: rgba(255,255,255,.7); font-weight: 700; }
.ib-drops__title-l2 {
  display: block;
  background: linear-gradient(120deg, #FFE4D2 0%, #FFD7E0 40%, #C5D2FF 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  font-style: italic;
}
.ib-drops__sub {
  max-width: 640px; margin: 0 auto 32px;
  font-size: 17px; line-height: 1.6;
  color: rgba(255,255,255,.78);
}

/* Hero CTAs */
.ib-drops__hero-cta {
  display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;
  margin-bottom: 40px;
}
.ib-drops__cta {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 16px 28px;
  font-size: 14px; font-weight: 800;
  letter-spacing: .04em;
  color: #07091A;
  background: linear-gradient(135deg, #FFE4D2 0%, #FFD7E0 100%);
  border: none;
  border-radius: 12px;
  cursor: pointer;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .25s ease;
  box-shadow: 0 12px 32px -8px rgba(255,215,224,.5);
}
.ib-drops__cta:hover {
  transform: translateY(-2px);
  color: #07091A;
  box-shadow: 0 18px 42px -8px rgba(255,215,224,.7);
}
.ib-drops__cta--ghost {
  background: rgba(255,255,255,.08);
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(10px);
  box-shadow: none;
}
.ib-drops__cta--ghost:hover { background: rgba(255,255,255,.16); color: #fff; box-shadow: none; }
.ib-drops__cta--bright { background: linear-gradient(135deg, #FFFFFF 0%, #FFE4D2 100%); }
.ib-drops__cta--ghost-light { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.3); box-shadow: none; }

.ib-drops__member-badge {
  display: inline-flex; align-items: center; gap: 10px;
  margin-bottom: 36px;
  padding: 12px 22px;
  background: rgba(16,185,129,.12);
  border: 1px solid rgba(16,185,129,.4);
  color: #6EE7B7;
  border-radius: 999px;
  font-size: 13px; font-weight: 700;
  backdrop-filter: blur(10px);
}

/* Live counter strip */
.ib-drops__counter {
  display: inline-flex; align-items: stretch;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 18px 32px;
  backdrop-filter: blur(14px);
  gap: 28px;
}
.ib-drops__counter > div { text-align: center; }
.ib-drops__counter-num {
  font-size: 28px; font-weight: 900;
  letter-spacing: -1px;
  color: #fff;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.ib-drops__counter-lbl {
  margin-top: 6px;
  font-size: 10px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
}
.ib-drops__counter-sep {
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.2), transparent);
}

/* SECTION */
.ib-drops__section {
  max-width: 1240px;
  margin: 0 auto;
  padding: 80px 24px 0;
  position: relative;
  z-index: 1;
}
.ib-drops__section-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 18px; flex-wrap: wrap;
  margin-bottom: 32px;
}
.ib-drops__section-eyebrow {
  font-size: 11px; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase;
  color: #FFE4D2;
  margin-bottom: 8px;
}
.ib-drops__section-title {
  font-size: clamp(28px, 3.5vw, 38px);
  font-weight: 900; letter-spacing: -1.2px;
  margin: 0;
  color: #fff;
}
.ib-drops__legend {
  display: flex; gap: 18px; flex-wrap: wrap;
  font-size: 12px; color: rgba(255,255,255,.7);
}
.ib-drops__legend > span { display: inline-flex; align-items: center; gap: 8px; }
.ib-drops__dot {
  width: 8px; height: 8px; border-radius: 50%; display: inline-block;
  box-shadow: 0 0 0 3px rgba(255,255,255,.04);
}
.ib-drops__dot--live { background: #10B981; box-shadow: 0 0 0 3px rgba(16,185,129,.18); animation: ib-pulse-dot 1.6s ease-in-out infinite; }
.ib-drops__dot--soon { background: #F59E0B; box-shadow: 0 0 0 3px rgba(245,158,11,.18); }
.ib-drops__dot--hot  { background: #DC2626; box-shadow: 0 0 0 3px rgba(220,38,38,.22); }
.ib-drops__dot--out  { background: #6B7280; }

/* DROPS GRID */
.ib-drops__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.ib-drop {
  position: relative;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 22px;
  overflow: hidden;
  display: flex; flex-direction: column;
  backdrop-filter: blur(12px);
  transition: transform .2s ease, border-color .2s ease, box-shadow .25s ease;
}
.ib-drop:hover {
  transform: translateY(-4px);
  border-color: rgba(255,228,210,.35);
  box-shadow: 0 28px 56px -16px rgba(110,91,240,.35);
}
.ib-drop__media {
  position: relative;
  height: 220px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  isolation: isolate;
}
.ib-drop__media::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,.4), transparent 50%),
    radial-gradient(circle at 70% 70%, rgba(0,0,0,.15), transparent 50%);
  z-index: 1;
  pointer-events: none;
}
.ib-drop__product-glyph {
  position: relative; z-index: 0;
  color: rgba(10,22,40,.35);
}
.ib-drop__media.has-image::before { background: linear-gradient(180deg, transparent 50%, rgba(10,22,40,.18) 100%); }
.ib-drop__image {
  position: relative;
  z-index: 0;
  max-height: 80%;
  max-width: 80%;
  object-fit: contain;
  filter: drop-shadow(0 12px 28px rgba(10,22,40,.18));
  transition: transform .3s ease;
}
.ib-drop:hover .ib-drop__image { transform: scale(1.05) translateY(-3px); }
.ib-drop__tag {
  position: absolute; top: 14px; left: 14px; z-index: 2;
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 10px; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase;
  padding: 6px 10px 6px 8px;
  background: rgba(10,22,40,.85);
  color: #FFE4D2;
  border-radius: 999px;
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.12);
}
.ib-drop__tag-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}
.ib-drop__tag--live     { color: #6EE7B7; border-color: rgba(16,185,129,.4); }
.ib-drop__tag--live .ib-drop__tag-dot { box-shadow: 0 0 0 3px rgba(16,185,129,.25); animation: ib-pulse-dot 1.6s ease-in-out infinite; }
.ib-drop__tag--imminent { color: #FCD34D; border-color: rgba(245,158,11,.45); }
.ib-drop__tag--soon     { color: #FCD34D; border-color: rgba(245,158,11,.35); }
.ib-drop__tag--hot      {
  background: linear-gradient(135deg, #DC2626, #BE123C);
  color: #FFFFFF;
  border-color: rgba(255,255,255,.25);
  animation: ib-drops-pulse 2s ease-in-out infinite;
}
.ib-drop__tag--hot .ib-drop__tag-dot { background: #fff; }
.ib-drop__tag--sold_out { background: rgba(107,114,128,.85); color: #fff; border-color: rgba(255,255,255,.18); }
.ib-drop__tag--upcoming { color: rgba(255,255,255,.7); }
@keyframes ib-drops-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(220,38,38,.4); }
  50%      { box-shadow: 0 0 0 8px rgba(220,38,38,0); }
}
.ib-drop__countdown {
  position: absolute; top: 14px; right: 14px; z-index: 2;
  font-size: 12px; font-weight: 800;
  padding: 6px 12px;
  background: rgba(10,22,40,.85);
  color: #fff;
  border-radius: 999px;
  font-variant-numeric: tabular-nums;
  backdrop-filter: blur(8px);
}

.ib-drop__body { padding: 22px; flex: 1; display: flex; flex-direction: column; }
.ib-drop__brand {
  font-size: 10px; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase;
  color: #FFE4D2;
  margin-bottom: 4px;
}
.ib-drop__name {
  font-size: 19px; font-weight: 800;
  letter-spacing: -.4px;
  color: #fff;
  margin-bottom: 6px;
}
.ib-drop__tagline {
  font-size: 13px; color: rgba(255,255,255,.7);
  margin-bottom: 14px;
}
.ib-drop__colors {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 8px; margin-bottom: 18px;
}
.ib-drop__color {
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.4);
  padding: 0;
  cursor: pointer;
  transition: transform .15s ease, border-color .2s ease, box-shadow .2s ease;
}
.ib-drop__color:hover { transform: scale(1.12); border-color: rgba(255,255,255,.7); }
.ib-drop__color.is-selected {
  border-color: #FFE4D2;
  box-shadow: 0 0 0 3px rgba(255,228,210,.25), 0 6px 14px -4px rgba(0,0,0,.4);
}
.ib-drop__color-label {
  font-size: 12px; font-weight: 700; letter-spacing: .04em;
  color: rgba(255,255,255,.85);
  margin-left: 4px;
}

.ib-drop__progress {
  height: 4px;
  background: rgba(255,255,255,.1);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 6px;
}
.ib-drop__progress-bar {
  height: 100%;
  background: linear-gradient(90deg, #10B981, #FFE4D2 70%, #DC2626);
  transition: width .6s ease;
}
.ib-drop__progress-meta {
  font-size: 11.5px; color: rgba(255,255,255,.6);
  margin-bottom: 18px;
}
.ib-drop__progress-meta strong { color: #fff; font-weight: 800; }

.ib-drop__cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  margin-top: auto;
  padding: 12px 18px;
  background: rgba(255,255,255,.08);
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 10px;
  font-size: 13px; font-weight: 800;
  cursor: pointer;
  text-decoration: none;
  transition: background .2s ease, transform .15s ease, border-color .2s ease;
}
.ib-drop__cta:hover { background: linear-gradient(135deg, #FFE4D2, #FFD7E0); color: #07091A; transform: translateY(-1px); border-color: transparent; }
.ib-drop__cta--locked { color: rgba(255,255,255,.65); cursor: pointer; }
.ib-drop__cta--locked:hover { background: rgba(255,255,255,.12); color: #fff; transform: none; border-color: rgba(255,255,255,.3); }
.ib-drop__cta.is-open { background: rgba(255,255,255,.18); color: #fff; }

/* Inline subscribe form */
.ib-drop__sub {
  margin-top: 12px;
  padding: 14px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 12px;
  animation: ib-drops-pop .25s cubic-bezier(.2,.9,.3,1.1) backwards;
}
@keyframes ib-drops-pop {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ib-drop__sub label {
  display: block;
  margin-bottom: 10px;
}
.ib-drop__sub label > span {
  display: block;
  font-size: 10px; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-bottom: 4px;
}
.ib-drop__sub input {
  width: 100%;
  padding: 10px 12px;
  font-size: 13px;
  font-family: inherit;
  color: #fff;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 8px;
}
.ib-drop__sub input::placeholder { color: rgba(255,255,255,.4); }
.ib-drop__sub input:focus { outline: none; border-color: rgba(255,228,210,.5); background: rgba(255,255,255,.12); }
.ib-drop__sub button[type=submit] {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%;
  padding: 11px 16px;
  background: linear-gradient(135deg, #FFE4D2, #FFD7E0);
  color: #07091A;
  border: none;
  border-radius: 8px;
  font-size: 13px; font-weight: 800;
  cursor: pointer;
  transition: filter .15s ease;
}
.ib-drop__sub button[type=submit]:hover { filter: brightness(1.06); }
.ib-drop__sub button[type=submit]:disabled { opacity: .6; cursor: not-allowed; }
.ib-drop__sub-msg {
  margin-top: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px; font-weight: 700;
  text-align: center;
}
.ib-drop__sub-msg.is-success { background: rgba(16,185,129,.18); color: #6EE7B7; border: 1px solid rgba(16,185,129,.4); }
.ib-drop__sub-msg.is-error   { background: rgba(220,38,38,.18); color: #FCA5A5; border: 1px solid rgba(220,38,38,.4); }

.ib-drop__sub-id {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px;
  background: rgba(16,185,129,.10);
  border: 1px solid rgba(16,185,129,.28);
  border-radius: 8px;
  margin-bottom: 10px;
  font-size: 12.5px; font-weight: 700;
  color: #A7F3D0;
}
.ib-drop__sub-id svg { color: #6EE7B7; flex-shrink: 0; }

.ib-drop__sub-pay-note {
  font-size: 11.5px; font-weight: 600;
  color: #FFE4D2;
  background: rgba(255,228,210,.08);
  border: 1px dashed rgba(255,228,210,.3);
  border-radius: 8px;
  padding: 8px 10px;
  margin-bottom: 10px;
  line-height: 1.45;
}

.ib-drop__sub-pay {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  margin-top: 10px;
  padding: 11px 16px;
  background: linear-gradient(135deg, #10B981, #047857);
  color: #fff;
  text-decoration: none;
  border-radius: 8px;
  font-size: 13px; font-weight: 800;
  box-shadow: 0 8px 18px -6px rgba(16,185,129,.55);
  transition: transform .15s ease, filter .15s ease;
}
.ib-drop__sub-pay:hover { color: #fff; transform: translateY(-1px); filter: brightness(1.06); }

/* "Comment devenir membre" steps list */
.ib-drops__steps {
  list-style: none; margin: 22px 0 28px; padding: 0;
}
.ib-drops__steps li {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 14px 0;
  border-bottom: 1px dashed rgba(255,255,255,.08);
}
.ib-drops__steps li:last-child { border-bottom: none; }
.ib-drops__step-num {
  width: 30px; height: 30px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #FFE4D2, #FFD7E0);
  color: #07091A;
  font-weight: 900; font-size: 13px;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}
.ib-drops__steps strong {
  display: block;
  font-size: 14px; font-weight: 800;
  color: #fff;
  margin-bottom: 2px;
}
.ib-drops__steps small {
  display: block;
  font-size: 12.5px; color: rgba(255,255,255,.65);
  line-height: 1.5;
}

/* BENEFITS */
.ib-drops__benefits {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.ib-drops__benefit {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px;
  padding: 26px;
  backdrop-filter: blur(8px);
  transition: transform .2s ease, border-color .2s ease;
}
.ib-drops__benefit:hover { transform: translateY(-2px); border-color: rgba(255,228,210,.3); }
.ib-drops__benefit-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(255,228,210,.2), rgba(110,91,240,.2));
  border: 1px solid rgba(255,228,210,.25);
  color: #FFE4D2;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
}
.ib-drops__benefit h3 {
  font-size: 16px; font-weight: 800;
  color: #fff;
  margin: 0 0 6px;
  letter-spacing: -.2px;
}
.ib-drops__benefit p {
  font-size: 13px; line-height: 1.55;
  color: rgba(255,255,255,.65);
  margin: 0;
}

/* JOIN CTA */
.ib-drops__join {
  max-width: 1240px;
  margin: 80px auto 96px;
  padding: 0 24px;
  position: relative;
  z-index: 1;
}
.ib-drops__join-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 40px;
  background:
    linear-gradient(135deg, rgba(110,91,240,.18) 0%, rgba(224,17,95,.18) 100%),
    rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 24px;
  padding: 48px 52px;
  align-items: center;
  backdrop-filter: blur(16px);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.ib-drops__join-grid::before {
  content: '';
  position: absolute; inset: -50% -10% auto auto;
  width: 60%; height: 200%;
  background: radial-gradient(circle, rgba(255,228,210,.18), transparent 60%);
  filter: blur(40px); z-index: -1;
}
.ib-drops__join-title {
  font-size: clamp(26px, 3.5vw, 38px);
  font-weight: 900; letter-spacing: -1.2px;
  color: #fff;
  margin: 0 0 14px;
}
.ib-drops__join-sub {
  font-size: 14px; line-height: 1.6;
  color: rgba(255,255,255,.75);
  margin: 0 0 24px;
}
.ib-drops__join-cta { display: flex; gap: 12px; flex-wrap: wrap; }
.ib-drops__join-stats {
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  gap: 18px;
  text-align: center;
}
.ib-drops__join-stat-num {
  font-size: 28px; font-weight: 900;
  background: linear-gradient(135deg, #FFE4D2, #FFD7E0);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  letter-spacing: -.6px;
  font-variant-numeric: tabular-nums;
}
.ib-drops__join-stat-lbl {
  margin-top: 4px;
  font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
}

/* RESPONSIVE */
@media (max-width: 980px) {
  .ib-drops__grid     { grid-template-columns: repeat(2, 1fr); }
  .ib-drops__benefits { grid-template-columns: repeat(2, 1fr); }
  .ib-drops__join-grid { grid-template-columns: 1fr; padding: 32px 28px; }
}
@media (max-width: 640px) {
  .ib-drops__hero  { padding: 64px 18px 56px; }
  .ib-drops__title { letter-spacing: -2px; }
  .ib-drops__counter { gap: 18px; padding: 14px 18px; flex-wrap: wrap; justify-content: center; }
  .ib-drops__counter-num { font-size: 22px; }
  .ib-drops__counter-sep { display: none; }
  .ib-drops__grid     { grid-template-columns: 1fr; }
  .ib-drops__benefits { grid-template-columns: 1fr; }
  .ib-drops__section  { padding: 56px 18px 0; }
  .ib-drops__join-stats { grid-template-columns: 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .ib-drops__hero-spot, .ib-drop__tag.is-hot { animation: none; }
}

/* ============================================================
   EMPTY STATES (cart vide / favoris vide / search vide)
   ============================================================ */
.ib-empty {
  text-align: center;
  padding: 80px 32px;
  max-width: 520px;
  margin: 0 auto;
}
.ib-empty__icon {
  width: 120px; height: 120px;
  margin: 0 auto 24px;
  background: var(--ib-soft);
  border: 2px dashed var(--ib-line);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--ib-mute);
}
.ib-empty__title { font-size: 22px; margin-bottom: 8px; }
.ib-empty__text { font-size: 14px; color: var(--ib-sub); margin-bottom: 24px; }

/* ============================================================
   DRAWER (mobile filters / cart drawer / mobile menu)
   ============================================================ */
.ib-drawer-overlay {
  display: none;
  position: fixed; inset: 0;
  background: rgba(10,22,40,0.45);
  z-index: 200;
  opacity: 0; transition: opacity var(--ib-tr-slow);
}
.ib-drawer-overlay.is-open { display: block; opacity: 1; }

.ib-drawer {
  position: fixed; top: 0; bottom: 0;
  width: 320px; max-width: 90vw;
  background: #fff;
  z-index: 201;
  transform: translateX(-100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex; flex-direction: column;
  box-shadow: 4px 0 24px rgba(10,22,40,0.15);
}
.ib-drawer.is-open { transform: translateX(0); }
.ib-drawer--right {
  left: auto; right: 0;
  transform: translateX(100%);
}
.ib-drawer--right.is-open { transform: translateX(0); }
.ib-drawer__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 20px;
  border-bottom: 1px solid var(--ib-line);
}
.ib-drawer__title { font-size: 16px; font-weight: 700; }
.ib-drawer__body { flex: 1; overflow-y: auto; padding: 20px; }
.ib-drawer__foot {
  padding: 16px 20px;
  border-top: 1px solid var(--ib-line);
  display: flex; gap: 10px;
}

/* ============================================================
   SHOP / BOUTIQUE V2 — Nexora-style layout
   ============================================================ */

/* Wider rail to fit the design */
.ib-shop { grid-template-columns: 280px 1fr !important; gap: 24px !important; padding-top: 18px; }

/* All-categories button at top of rail */
.ib-allcats {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 16px;
  background: var(--ib-ink);
  color: #fff;
  border-radius: var(--ib-r-md);
  font-size: 13px; font-weight: 700;
  text-decoration: none;
  margin-bottom: 14px;
  transition: background var(--ib-tr-base);
}
.ib-allcats:hover { background: #131F36; color: #fff; }
.ib-allcats__lead { display: flex; align-items: center; gap: 10px; }
.ib-allcats .ib-icon { color: #fff; }

/* Card title with optional right-side action */
.ib-card__title-action {
  font-size: 11px; color: var(--ib-primary); font-weight: 600;
  text-decoration: none;
}
.ib-card__title-action:hover { text-decoration: underline; }

/* Cat-list polish + "Voir toutes" trailing link */
.ib-cat-link__count { background: transparent; padding: 0; }
.ib-cat-link__more {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px; margin-top: 4px;
  font-size: 12px; font-weight: 600;
  color: var(--ib-primary);
  border-radius: var(--ib-r-sm);
  text-decoration: none;
}
.ib-cat-link__more:hover { background: var(--ib-primary-lt); }

/* Filter group head with chevron */
.ib-filter-group__head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 12px;
}
.ib-filter-group__head .ib-icon { color: var(--ib-mute); }

.ib-filter-search {
  display: flex; align-items: center;
  background: var(--ib-soft);
  border-radius: var(--ib-r-sm);
  padding: 8px 10px;
  margin-bottom: 10px;
}
.ib-filter-search .ib-icon { color: var(--ib-mute); flex-shrink: 0; }
.ib-filter-search input {
  flex: 1; margin-left: 8px;
  border: none; background: transparent;
  outline: none; font-size: 12px; color: var(--ib-ink);
}
.ib-filter-search input::placeholder { color: var(--ib-mute); }

.ib-filter-price-inputs {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px;
}
.ib-filter-price-inputs .ib-form-input {
  padding: 8px 10px; font-size: 12px;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-sm);
  background: #fff;
}

.ib-filter-more {
  display: inline-block; margin-top: 6px;
  font-size: 12px; font-weight: 600; color: var(--ib-primary);
  text-decoration: none;
}
.ib-filter-more:hover { text-decoration: underline; }
.ib-filter-empty { font-size: 12px; color: var(--ib-mute); margin: 0; }

/* Range slider polish — punchier handles, gradient track */
.ib-slider {
  position: relative;
  height: 4px;
  background: var(--ib-line);
  border-radius: 2px;
  margin: 16px 6px;
  cursor: pointer;
  user-select: none;
}
.ib-slider__track {
  position: absolute; top: 0; bottom: 0;
  background: linear-gradient(90deg, var(--ib-primary), #4F8AE8);
  border-radius: 2px;
}
.ib-slider__handle {
  position: absolute; top: 50%;
  width: 18px; height: 18px;
  margin-top: -9px;
  margin-left: -9px;
  background: #fff;
  border: 3px solid var(--ib-primary);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(24,85,204,0.28);
  cursor: grab;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  touch-action: none;
}
.ib-slider__handle:hover { transform: scale(1.18); box-shadow: 0 4px 12px rgba(24,85,204,0.4); }
.ib-slider__handle:active { cursor: grabbing; transform: scale(1.1); }
.ib-slider__handle[style*="right"] { margin-left: 0; margin-right: -9px; }

.ib-slider__labels {
  display: flex; justify-content: space-between;
  font-size: 11px; color: var(--ib-mute); font-weight: 600;
  margin-top: 4px;
}

/* Radio rows for Disponibilité (mutually exclusive) */
.ib-radio-row {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 4px;
  cursor: pointer;
  border-radius: 6px;
  transition: background 0.2s ease;
}
.ib-radio-row:hover { background: #F8FAFF; }
.ib-radio-row input[type="radio"] {
  position: absolute; opacity: 0; pointer-events: none;
}
.ib-radio {
  width: 18px; height: 18px;
  border: 2px solid var(--ib-line);
  border-radius: 50%;
  background: #fff;
  flex-shrink: 0;
  position: relative;
  transition: border-color 0.2s ease;
}
.ib-radio-row:hover .ib-radio { border-color: var(--ib-primary); }
.ib-radio.is-checked { border-color: var(--ib-primary); }
.ib-radio.is-checked::after {
  content: '';
  position: absolute; inset: 3px;
  border-radius: 50%;
  background: var(--ib-primary);
}

/* Apply filters button */
.ib-filter-apply {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%;
  margin-top: 18px;
  padding: 12px 16px;
  background: linear-gradient(135deg, var(--ib-primary) 0%, var(--ib-primary-dk) 100%);
  color: #fff;
  border: 0;
  border-radius: 6px;
  font-weight: 700; font-size: 13px;
  letter-spacing: -0.005em;
  cursor: pointer;
  box-shadow: 0 6px 14px rgba(24,85,204,0.28);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.ib-filter-apply:hover { transform: translateY(-1px); box-shadow: 0 10px 20px rgba(24,85,204,0.36); }
.ib-filter-apply:active { transform: translateY(0); }
.ib-filter-apply .ib-icon { color: #fff; }

/* Hide native checkbox, render via .ib-checkbox */
.ib-checkbox-row input[type="checkbox"] {
  position: absolute; opacity: 0; pointer-events: none;
}
.ib-checkbox-row { position: relative; }
.ib-checkbox-row input[type="checkbox"]:checked ~ .ib-checkbox {
  background: var(--ib-primary);
  border-color: var(--ib-primary);
}
.ib-checkbox-row input[type="checkbox"]:checked ~ .ib-checkbox::after {
  content: ''; position: absolute;
  left: 4px; top: 1px;
  width: 5px; height: 9px;
  border: solid #fff; border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.ib-checkbox { position: relative; }

/* === HERO STRIP === */
.ib-shop-hero {
  display: grid;
  grid-template-columns: 58% 1fr;
  gap: 18px;
  margin-bottom: 22px;
}

.ib-hero-banner {
  position: relative;
  min-height: 320px;
  border-radius: var(--ib-r-xl);
  color: inherit;
  transition: transform var(--ib-tr-base), box-shadow var(--ib-tr-base);
}
.ib-hero-banner__slides {
  position: relative;
  height: 100%;
  min-height: 320px;
}
.ib-hero-banner__slide {
  position: absolute; inset: 0;
  display: flex; align-items: stretch; justify-content: space-between;
  padding: 28px 28px 60px;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.6s ease;
}
.ib-hero-banner__slide.is-active {
  opacity: 1;
  pointer-events: auto;
}
.ib-hero-banner:hover { transform: translateY(-2px); box-shadow: var(--ib-shadow-lg); }

.ib-hero-banner--light {
  background: linear-gradient(135deg, #E9E2FF 0%, #F4DFEF 60%, #FFE4F2 100%);
  overflow: hidden;
}
.ib-hero-banner--dark {
  background: linear-gradient(135deg, #0F1430 0%, #2B1B59 50%, #4A1F5C 100%);
  color: #fff;
  overflow: hidden;
}
.ib-hero-banner--light .ib-hero-banner__title { color: var(--ib-ink); }
.ib-hero-banner--light .ib-hero-banner__sub { color: var(--ib-sub); }

.ib-hero-banner__copy {
  display: flex; flex-direction: column;
  max-width: 56%;
  z-index: 2;
}
.ib-hero-banner__eyebrow {
  font-size: 11px; font-weight: 700; letter-spacing: 0.12em;
  color: var(--ib-sub); text-transform: uppercase;
  margin-bottom: 8px;
}
.ib-hero-banner__eyebrow--neon { color: #C4B5FD; }
.ib-hero-banner__title {
  font-size: 30px; font-weight: 800; letter-spacing: -0.03em;
  color: var(--ib-ink); line-height: 1.05;
  margin: 0 0 12px;
}
.ib-hero-banner__title--neon {
  background: linear-gradient(135deg, #C084FC 0%, #F0ABFC 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 34px;
}
.ib-hero-banner__sub {
  font-size: 13px; color: var(--ib-sub); line-height: 1.45;
  margin: 0 0 18px;
}
.ib-hero-banner__sub--light { color: rgba(255,255,255,0.78); }
.ib-hero-banner__sub--light strong { color: #fff; font-weight: 700; }

.ib-hero-banner__cta {
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 22px;
  background: var(--ib-primary);
  color: #fff;
  border-radius: 6px;
  font-size: 13px; font-weight: 700;
  margin-bottom: auto;
}
.ib-hero-banner__cta--light { background: #fff; color: var(--ib-ink); }
.ib-hero-banner__cta .ib-icon { width: 14px; height: 14px; }

.ib-hero-banner__pager {
  position: absolute; bottom: 18px; left: 28px;
  display: flex; align-items: center; gap: 10px;
  font-size: 11px; font-weight: 600; color: var(--ib-sub);
  z-index: 5;
}
.ib-hero-banner__pager--light { color: rgba(255,255,255,0.7); }
.ib-hero-banner__nav {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(255,255,255,0.7);
  border: 1px solid rgba(10,22,40,0.06);
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--ib-ink);
  cursor: pointer;
}
.ib-hero-banner__pager--light .ib-hero-banner__nav {
  background: rgba(255,255,255,0.14);
  border-color: rgba(255,255,255,0.18);
  color: #fff;
}
.ib-hero-banner__count { min-width: 32px; text-align: center; }
.ib-hero-banner__dots {
  display: inline-flex; gap: 5px; margin-left: 4px;
}
.ib-hero-banner__dots i {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: rgba(10,22,40,0.18);
  display: inline-block;
}
.ib-hero-banner__dots i.is-active {
  background: var(--ib-primary);
  width: 18px; border-radius: 4px;
}
.ib-hero-banner__pager--light .ib-hero-banner__dots i { background: rgba(255,255,255,0.25); }
.ib-hero-banner__pager--light .ib-hero-banner__dots i.is-active { background: #fff; }

.ib-hero-banner__visual {
  position: absolute; right: 0; top: 0; bottom: 0;
  width: 50%;
  display: flex; align-items: center; justify-content: center;
  pointer-events: none;
  z-index: 1;
}
.ib-hero-banner__visual img {
  max-width: 90%; max-height: 90%;
  object-fit: contain;
  filter: drop-shadow(0 18px 32px rgba(10,22,40,0.18));
}

.ib-hero-banner__badge {
  position: absolute; top: 22px; right: 22px;
  width: 78px; height: 78px;
  border-radius: 50%;
  background: linear-gradient(135deg, #EC4899 0%, #A855F7 100%);
  color: #fff;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-size: 9px; font-weight: 700; letter-spacing: 0.1em; line-height: 1;
  text-transform: uppercase;
  box-shadow: 0 6px 18px rgba(236,72,153,0.45);
  z-index: 4;
}
.ib-hero-banner__badge strong { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; margin: 2px 0; }

/* === CATEGORY ICON PILLS === */
.ib-shop-hero { margin-bottom: 32px; }
.ib-catpills {
  position: relative;
  margin-bottom: 24px;
  padding-top: 4px;
  isolation: isolate; /* keep hover shadow within this stacking context */
}
.ib-catpills__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(180px, 1fr);
  gap: 10px;
  overflow-x: auto;
  scrollbar-width: none;
  padding-right: 48px;
}
.ib-catpills__track::-webkit-scrollbar { display: none; }
.ib-catpill {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  text-decoration: none; color: inherit;
  transition: border-color var(--ib-tr-base), box-shadow var(--ib-tr-base);
}
.ib-catpill:hover { border-color: var(--ib-primary); box-shadow: var(--ib-shadow-sm); }
.ib-catpill.is-active { border-color: var(--ib-primary); background: var(--ib-primary-lt); }
.ib-catpill__icon {
  width: 50px; height: 50px;
  border-radius: var(--ib-r-sm);
  background: linear-gradient(180deg, #F8FAFC 0%, #E2E8F0 100%);
  overflow: hidden;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  padding: 4px;
}
.ib-catpill__icon img { width: 100%; height: 100%; object-fit: contain; }
.ib-catpill__body { display: flex; flex-direction: column; min-width: 0; }
.ib-catpill__name {
  font-size: 13px; font-weight: 700; color: var(--ib-ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ib-catpill__count { font-size: 11px; color: var(--ib-sub); }

.ib-catpills__nav {
  position: absolute; top: 50%; right: 0;
  transform: translateY(-50%);
  width: 36px; height: 36px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--ib-line);
  box-shadow: var(--ib-shadow-md);
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--ib-ink);
  cursor: pointer;
  z-index: 2;
  transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, background 0.2s ease;
}
.ib-catpills__nav:hover {
  border-color: var(--ib-primary);
  color: var(--ib-primary);
  background: var(--ib-primary-lt);
  transform: translateY(-50%) scale(1.08);
}
.ib-catpills__nav .ib-icon { transition: transform 0.3s ease; }
.ib-catpills.is-at-end .ib-catpills__nav .ib-icon { transform: rotate(180deg); }

/* Right-edge fade hint to suggest more pills */
.ib-catpills::after {
  content: '';
  position: absolute; top: 0; bottom: 0; right: 36px;
  width: 56px;
  background: linear-gradient(90deg, rgba(250,251,252,0) 0%, rgba(250,251,252,0.95) 100%);
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.25s ease;
  z-index: 1;
}
.ib-catpills.is-at-end::after { opacity: 0; }

/* === TOOLBAR === */
.ib-shop__toolbar {
  display: flex; align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  padding: 6px 0;
}
.ib-shop__toolbar .woocommerce-result-count {
  font-size: 13px; color: var(--ib-sub); margin: 0;
}
.ib-shop__toolbar .woocommerce-result-count strong { color: var(--ib-ink); font-weight: 800; }
.ib-shop__sort-wrap {
  display: flex; align-items: center; gap: 10px;
}
.ib-shop__toolbar select,
.ib-shop__toolbar .orderby {
  padding: 9px 30px 9px 14px;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M3 4.5l3 3 3-3' stroke='%235B6B85' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") right 10px center/12px no-repeat;
  font-size: 13px; font-weight: 600; color: var(--ib-ink);
  appearance: none; -webkit-appearance: none;
  cursor: pointer;
}

/* === 5-COL PRODUCT GRID === */
.ib-shop .ib-product-grid {
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 14px;
}
@media (max-width: 1280px) {
  .ib-shop .ib-product-grid { grid-template-columns: repeat(4, 1fr) !important; }
}
@media (max-width: 1024px) {
  .ib-shop { grid-template-columns: 1fr !important; }
  .ib-shop .ib-product-grid { grid-template-columns: repeat(3, 1fr) !important; }
  .ib-shop-hero { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .ib-shop .ib-product-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* === TRUST STRIP === */
.ib-shop-trust {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin: 26px 0 8px;
  padding: 18px;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-lg);
}
.ib-shop-trust__item {
  display: flex; align-items: center; gap: 12px;
  padding: 4px 6px;
}
.ib-shop-trust__icon {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--ib-primary-lt);
  color: var(--ib-primary);
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ib-shop-trust__copy { display: flex; flex-direction: column; line-height: 1.3; }
.ib-shop-trust__copy strong {
  font-size: 13px; font-weight: 700; color: var(--ib-ink);
}
.ib-shop-trust__copy small { font-size: 11px; color: var(--ib-sub); }

@media (max-width: 1024px) {
  .ib-shop-trust { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .ib-shop-trust { grid-template-columns: 1fr; }
}

/* ============================================================
   BOUTIQUE — POLISH PASS (animations, depth, hover lift)
   ============================================================ */

/* Subtle off-white body so white cards pop */
body { background: #FAFBFC; }

/* Page-level fade-in */
@keyframes ib-fade-in-up {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ib-shop {
  animation: ib-fade-in-up 0.55s cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* === HERO BANNERS — animated gradient, floating product, glow === */
.ib-shop-hero { perspective: 1200px; }

.ib-hero-banner {
  box-shadow: 0 1px 3px rgba(10,22,40,0.04), 0 12px 32px rgba(10,22,40,0.06);
  transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.4s ease;
}
.ib-hero-banner:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 8px rgba(10,22,40,0.06), 0 24px 48px rgba(10,22,40,0.10);
}

.ib-hero-banner--light {
  background: linear-gradient(135deg, #E9E2FF 0%, #F4DFEF 35%, #FFE4F2 65%, #FFD6E8 100%);
  background-size: 220% 220%;
  animation: ib-grad-light 14s ease-in-out infinite;
}
.ib-hero-banner--dark {
  background: linear-gradient(135deg, #0F1430 0%, #2B1B59 35%, #4A1F5C 65%, #1B1340 100%);
  background-size: 220% 220%;
  animation: ib-grad-dark 14s ease-in-out infinite;
}
@keyframes ib-grad-light {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}
@keyframes ib-grad-dark {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}

/* Decorative orb behind product image */
.ib-hero-banner__visual::before {
  content: '';
  position: absolute; right: 10%; top: 50%;
  width: 70%; height: 70%;
  transform: translateY(-50%);
  background: radial-gradient(circle at center, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0) 65%);
  pointer-events: none;
  filter: blur(8px);
}
.ib-hero-banner--dark .ib-hero-banner__visual::before {
  background: radial-gradient(circle at center, rgba(168,85,247,0.32) 0%, rgba(168,85,247,0) 70%);
}

/* Product image floats gently and reacts on slide change */
@keyframes ib-float-product {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
.ib-hero-banner__visual img {
  animation: ib-float-product 5.5s ease-in-out infinite;
  filter: drop-shadow(0 24px 40px rgba(10,22,40,0.22));
  transition: filter 0.4s ease;
}
.ib-hero-banner--dark .ib-hero-banner__visual img {
  filter: drop-shadow(0 24px 40px rgba(168,85,247,0.4)) drop-shadow(0 0 18px rgba(236,72,153,0.18));
}

/* Slide enters from right with subtle scale */
.ib-hero-banner__slide {
  transform: translateX(20px) scale(0.98);
  transition: opacity 0.6s ease, transform 0.7s cubic-bezier(0.2, 0.9, 0.2, 1);
}
.ib-hero-banner__slide.is-active {
  transform: translateX(0) scale(1);
}

/* Title slight scale-up on banner hover */
.ib-hero-banner__title {
  transition: transform 0.4s ease;
}
.ib-hero-banner:hover .ib-hero-banner__title {
  transform: translateX(2px);
}

/* CTA — glow + arrow slide */
.ib-hero-banner__cta {
  position: relative;
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(24,85,204,0.22);
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
.ib-hero-banner__cta::after {
  content: '';
  position: absolute; top: 0; left: -120%;
  width: 60%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.4) 50%, transparent 100%);
  transition: left 0.6s ease;
}
.ib-hero-banner__cta:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(24,85,204,0.32); }
.ib-hero-banner__cta:hover::after { left: 120%; }
.ib-hero-banner__cta .ib-icon { transition: transform 0.25s ease; }
.ib-hero-banner__cta:hover .ib-icon { transform: translateX(4px); }

.ib-hero-banner__cta--light { box-shadow: 0 6px 16px rgba(255,255,255,0.18); }
.ib-hero-banner__cta--light:hover { box-shadow: 0 12px 26px rgba(255,255,255,0.28); }

/* Pager nav buttons get punchier */
.ib-hero-banner__nav { transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease; }
.ib-hero-banner__nav:hover {
  transform: scale(1.1);
  background: var(--ib-ink); color: #fff; border-color: var(--ib-ink);
}
.ib-hero-banner__pager--light .ib-hero-banner__nav:hover {
  background: #fff; color: var(--ib-ink); border-color: #fff;
}
.ib-hero-banner__dots i { transition: width 0.3s ease, background 0.3s ease, transform 0.2s ease; cursor: pointer; }
.ib-hero-banner__dots i:hover { transform: scale(1.4); }

/* Discount badge pulse */
@keyframes ib-badge-pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 6px 18px rgba(236,72,153,0.45); }
  50%      { transform: scale(1.06); box-shadow: 0 10px 26px rgba(236,72,153,0.65); }
}
.ib-hero-banner__badge {
  animation: ib-badge-pulse 2.6s ease-in-out infinite;
}

/* === CATEGORY PILLS — lift + icon zoom + active stripe === */
.ib-catpill {
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
              border-color 0.25s ease,
              box-shadow 0.25s ease,
              background 0.25s ease;
  position: relative;
}
.ib-catpill__icon {
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
              background 0.3s ease,
              box-shadow 0.3s ease;
}
.ib-catpill:hover {
  transform: translateY(-3px);
  border-color: var(--ib-primary);
  box-shadow: 0 10px 22px -4px rgba(24,85,204,0.18), 0 2px 6px rgba(24,85,204,0.06);
  background: linear-gradient(180deg, #fff 0%, #F8FAFF 100%);
}
.ib-catpill:hover .ib-catpill__icon {
  transform: scale(1.08) rotate(-4deg);
  box-shadow: 0 6px 16px rgba(24,85,204,0.18);
}
.ib-catpill:hover .ib-catpill__name { color: var(--ib-primary); }
.ib-catpill__name { transition: color 0.2s ease; }

.ib-catpill.is-active {
  border-color: var(--ib-primary);
  background: linear-gradient(180deg, #fff 0%, var(--ib-primary-lt) 100%);
}
.ib-catpill.is-active::before {
  content: '';
  position: absolute; top: 12px; bottom: 12px; left: 0;
  width: 3px;
  background: var(--ib-primary);
  border-radius: 0 3px 3px 0;
}

/* === SIDEBAR CAT-LINK — active accent bar === */
.ib-cat-list { padding: 4px 0; }
.ib-cat-link {
  position: relative;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.ib-cat-link:hover {
  background: var(--ib-primary-lt);
  color: var(--ib-primary);
  transform: translateX(3px);
}
.ib-cat-link:hover .ib-cat-link__count { color: var(--ib-primary); }
.ib-cat-link.is-active {
  background: var(--ib-primary-lt);
  color: var(--ib-primary);
  font-weight: 700;
}
.ib-cat-link.is-active::before {
  content: '';
  position: absolute; left: -16px; top: 50%;
  transform: translateY(-50%);
  width: 3px; height: 22px;
  background: var(--ib-primary);
  border-radius: 0 3px 3px 0;
}
.ib-cat-link__count { transition: color 0.2s ease, background 0.2s ease; }

/* Filter group head — rotate chevron */
.ib-filter-group__head { cursor: pointer; }
.ib-filter-group__head .ib-icon { transition: transform 0.25s ease; }
.ib-filter-group__head:hover .ib-icon { color: var(--ib-primary); }

/* Brand search input focus */
.ib-filter-search {
  transition: background 0.2s ease, box-shadow 0.2s ease;
}
.ib-filter-search:focus-within {
  background: #fff;
  box-shadow: 0 0 0 2px var(--ib-primary-lt);
}

/* Checkbox row hover */
.ib-checkbox-row {
  transition: color 0.2s ease;
  padding: 6px 4px;
  border-radius: 6px;
}
.ib-checkbox-row:hover { background: #F8FAFF; }
.ib-checkbox-row:hover .ib-checkbox { border-color: var(--ib-primary); }

/* === PRODUCT CARDS — stronger lift, image zoom, polished CTA === */
.ib-product-card {
  transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
              box-shadow 0.35s ease,
              border-color 0.35s ease;
}
.ib-product-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px rgba(10,22,40,0.12);
  border-color: var(--ib-primary);
}
.ib-product-card__media {
  position: relative;
  overflow: hidden;
}
.ib-product-card__media img {
  transition: transform 0.55s cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: transform;
}
.ib-product-card:hover .ib-product-card__media img {
  transform: scale(1.08);
}
.ib-product-card__media::after {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 30%, rgba(24,85,204,0.05) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}
.ib-product-card:hover .ib-product-card__media::after { opacity: 1; }

/* Wishlist heart pop */
.ib-product-card__wishlist {
  transition: color 0.2s ease, border-color 0.2s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.2s ease;
}
.ib-product-card__wishlist:hover {
  color: var(--ib-pink);
  border-color: var(--ib-pink);
  background: #FFF1F8;
  transform: scale(1.12);
}
@keyframes ib-heart-pop {
  0%   { transform: scale(1); }
  35%  { transform: scale(1.4); }
  60%  { transform: scale(0.92); }
  100% { transform: scale(1.05); }
}
.ib-product-card__wishlist.is-active {
  color: var(--ib-pink);
  border-color: var(--ib-pink);
  background: #FFE5F1;
  animation: ib-heart-pop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Color dots — punchier, ring on active */
.ib-product-card__dot {
  width: 10px; height: 10px;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.06), 0 1px 2px rgba(10,22,40,0.18);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  border-radius: 50%;
}
.ib-product-card__dot:hover { transform: scale(1.3); }
.ib-product-card__dot.is-active {
  transform: scale(1.25);
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--ib-primary), 0 2px 4px rgba(24,85,204,0.3);
  border: none;
}

/* Rating star — subtle wiggle on hover */
.ib-product-card__rating .ib-icon { transition: transform 0.3s ease; }
.ib-product-card:hover .ib-product-card__rating .ib-icon {
  transform: rotate(-12deg) scale(1.15);
}

/* Add-to-cart — sweeping highlight on hover */
.ib-product-card__add-btn {
  position: relative;
  overflow: hidden;
}
.ib-product-card__add-btn::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, var(--ib-primary) 0%, var(--ib-primary-dk) 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.ib-product-card__add-btn::after {
  content: '';
  position: absolute; top: 0; left: -100%;
  width: 50%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
  transition: left 0.55s ease;
}
.ib-product-card__add-btn > * { position: relative; z-index: 1; }
.ib-product-card__add-btn:hover {
  background: var(--ib-primary);
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(24,85,204,0.32);
}
.ib-product-card__add-btn:hover::before { opacity: 1; }
.ib-product-card__add-btn:hover::after { left: 120%; }
.ib-product-card__add-btn .ib-icon { transition: transform 0.25s ease; }
.ib-product-card__add-btn:hover .ib-icon { transform: rotate(-8deg) scale(1.1); }

/* Price punchier */
.ib-product-card__price-now {
  background: linear-gradient(135deg, var(--ib-ink) 0%, #1F2D44 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Save line */
.ib-product-card__save {
  display: inline-block;
  background: #FEE2E2;
  color: #B91C1C;
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.01em;
}

/* Cards stagger entrance */
@keyframes ib-card-enter {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ib-shop .ib-product-grid > * {
  opacity: 0;
  animation: ib-card-enter 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}
.ib-shop .ib-product-grid > *:nth-child(1)  { animation-delay: 0.04s; }
.ib-shop .ib-product-grid > *:nth-child(2)  { animation-delay: 0.08s; }
.ib-shop .ib-product-grid > *:nth-child(3)  { animation-delay: 0.12s; }
.ib-shop .ib-product-grid > *:nth-child(4)  { animation-delay: 0.16s; }
.ib-shop .ib-product-grid > *:nth-child(5)  { animation-delay: 0.20s; }
.ib-shop .ib-product-grid > *:nth-child(6)  { animation-delay: 0.24s; }
.ib-shop .ib-product-grid > *:nth-child(7)  { animation-delay: 0.28s; }
.ib-shop .ib-product-grid > *:nth-child(8)  { animation-delay: 0.32s; }
.ib-shop .ib-product-grid > *:nth-child(9)  { animation-delay: 0.36s; }
.ib-shop .ib-product-grid > *:nth-child(10) { animation-delay: 0.40s; }
.ib-shop .ib-product-grid > *:nth-child(n+11) { animation-delay: 0.44s; }

/* === TRUST STRIP — hover lift, icon flip === */
.ib-shop-trust {
  background: linear-gradient(180deg, #fff 0%, #FAFBFF 100%);
  box-shadow: 0 1px 3px rgba(10,22,40,0.04), 0 8px 24px rgba(10,22,40,0.05);
}
.ib-shop-trust__item {
  transition: transform 0.25s ease;
  border-radius: 4px;
}
.ib-shop-trust__item:hover { transform: translateY(-2px); }
.ib-shop-trust__icon {
  transition: background 0.25s ease, color 0.25s ease,
              transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ib-shop-trust__item:hover .ib-shop-trust__icon {
  background: var(--ib-primary);
  color: #fff;
  transform: rotate(-10deg) scale(1.08);
}

/* === CARD TITLE link affordance === */
.ib-card__title {
  position: relative;
  padding-bottom: 12px;
  margin-bottom: 12px;
}
.ib-card__title::after {
  content: '';
  position: absolute; bottom: 0; left: 0;
  width: 36px; height: 2px;
  background: linear-gradient(90deg, var(--ib-primary), var(--ib-pink));
  border-radius: 2px;
}

/* Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
  .ib-hero-banner--light, .ib-hero-banner--dark,
  .ib-hero-banner__visual img,
  .ib-hero-banner__badge,
  .ib-shop,
  .ib-shop .ib-product-grid > * {
    animation: none !important;
  }
}

/* ============================================================
   PDP V2 — 3-col layout, spec cards, savings pill, buy sidebar
   ============================================================ */

/* "View in 3D" badge top-right of the main image */
.ib-pdp__view3d-badge {
  position: absolute; top: 18px; right: 18px;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 12px;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(10,22,40,0.08);
  border-radius: 999px;
  font-size: 11px; font-weight: 700;
  color: var(--ib-ink);
  box-shadow: 0 6px 14px rgba(10,22,40,0.08);
}

/* Children below the thumbs+main row span the full gallery column */
.ib-pdp__gallery > .ib-pdp__tradein,
.ib-pdp__gallery > .ib-pdp__love {
  grid-column: 1 / -1;
}

/* Gallery panel — soft pale gradient background */
.ib-pdp__main-img {
  background: linear-gradient(180deg, #F6F8FF 0%, #EFF1FA 100%);
  border-radius: var(--ib-r-xl);
  min-height: 540px;
  position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 28px;
}
.ib-pdp__main-img-target {
  max-width: 70%; max-height: 75%;
  object-fit: contain;
}
.ib-pdp__badges {
  position: absolute; top: 18px; left: 18px;
  display: flex; flex-direction: column; gap: 6px;
  z-index: 2;
}
.ib-pdp__badges .ib-badge {
  font-size: 11px; padding: 5px 12px; border-radius: 999px; font-weight: 700;
}
.ib-pdp__actions {
  position: absolute; top: 18px; right: 18px;
  display: flex; flex-direction: column; gap: 8px;
  z-index: 2;
}
.ib-pdp__actions .ib-icon-btn-circle {
  width: 38px; height: 38px;
  background: #fff;
  border: 1px solid var(--ib-line);
  box-shadow: 0 4px 10px rgba(10,22,40,0.06);
}
.ib-pdp__actions .ib-icon-btn-circle:hover {
  border-color: var(--ib-primary);
  color: var(--ib-primary);
}

/* Prev/next arrows — at bottom of gallery panel */
.ib-pdp__nav-arrow {
  bottom: 18px; top: auto;
  transform: none;
  width: 44px; height: 44px;
  background: #fff;
  border: 1px solid var(--ib-line);
  box-shadow: 0 4px 10px rgba(10,22,40,0.08);
  z-index: 2;
}
.ib-pdp__nav-arrow:hover { border-color: var(--ib-primary); color: var(--ib-primary); }
.ib-pdp__nav-arrow--prev { left: 18px; }
.ib-pdp__nav-arrow--next { right: 18px; left: auto; }

/* Dots — bottom-center */
.ib-pdp__dots {
  position: absolute; bottom: 30px; left: 50%;
  transform: translateX(-50%);
  display: flex; gap: 6px;
  z-index: 2;
}
.ib-pdp__dot {
  width: 8px; height: 8px;
  border-radius: 4px;
  background: #C7CFDC;
  transition: width 0.25s ease, background 0.25s ease;
}
.ib-pdp__dot.is-active { width: 24px; background: var(--ib-primary); }

/* Thumb rail — VUE 360° tile */
.ib-pdp__thumb {
  background: #fff;
  border: 1px solid var(--ib-line);
}
.ib-pdp__thumb.is-active {
  border: 2px solid var(--ib-primary);
  box-shadow: 0 0 0 2px rgba(24,85,204,0.10);
}
.ib-pdp__thumb-360 {
  flex-direction: column;
  background: #fff;
  border-style: dashed;
  color: var(--ib-sub);
  font-size: 9px; font-weight: 800; letter-spacing: 0.08em;
}
.ib-pdp__quickspecs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 0 14px;
  position: relative;
  z-index: 2;
}
.ib-pdp__quickspec {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: var(--ib-r-md);
  font-size: 11px; font-weight: 700;
  color: var(--ib-ink);
  line-height: 1.25;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.ib-pdp__quickspec:hover {
  background: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(10,22,40,0.10);
}
.ib-pdp__quickspec-ico {
  width: 28px; height: 28px;
  border-radius: 4px;
  background: var(--ib-primary-lt);
  color: var(--ib-primary);
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ib-pdp__quickspec-text { min-width: 0; }

@media (max-width: 1024px) {
  .ib-pdp__quickspecs { grid-template-columns: repeat(2, 1fr); }
}

/* Trade-in promo card under spec cards — fills empty space below gallery */
.ib-pdp__tradein {
  margin-top: 16px;
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 16px 18px;
  background: linear-gradient(135deg, #EEF3FF 0%, #FFE4F2 100%);
  border: 1px solid #DCE7FF;
  border-radius: var(--ib-r-lg);
  text-decoration: none;
  color: var(--ib-ink);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.ib-pdp__tradein:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(24,85,204,0.16); }
.ib-pdp__tradein-ico {
  width: 56px; height: 56px;
  border-radius: 8px;
  background: #fff;
  color: var(--ib-primary);
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 10px rgba(24,85,204,0.18);
}
.ib-pdp__tradein-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ib-pdp__tradein-title { font-size: 14px; font-weight: 800; color: var(--ib-ink); }
.ib-pdp__tradein-sub { font-size: 12px; color: var(--ib-sub); }
.ib-pdp__tradein-cta {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  background: #fff;
  border: 1px solid var(--ib-primary);
  color: var(--ib-primary);
  border-radius: 999px;
  font-size: 12px; font-weight: 800;
  white-space: nowrap;
}
.ib-pdp__tradein:hover .ib-pdp__tradein-cta { background: var(--ib-primary); color: #fff; }

/* "Customers also love" mini-strip under trade-in (compact related-products preview) */
.ib-pdp__love {
  margin-top: 16px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-lg);
}
.ib-pdp__love-title {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 13px; font-weight: 800; color: var(--ib-ink);
  margin-bottom: 12px;
}
.ib-pdp__love-title a { font-size: 11px; font-weight: 700; color: var(--ib-primary); text-decoration: none; }
.ib-pdp__love-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
}
.ib-pdp__love-item {
  display: flex; flex-direction: column; gap: 4px;
  text-decoration: none; color: var(--ib-ink);
  border-radius: 6px;
  padding: 4px;
  transition: background 0.18s ease, transform 0.18s ease;
}
.ib-pdp__love-item:hover { background: #F8FAFF; transform: translateY(-1px); }
.ib-pdp__love-thumb {
  aspect-ratio: 1;
  background: linear-gradient(180deg, #F8FAFC 0%, #E2E8F0 100%);
  border-radius: 4px;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.ib-pdp__love-thumb img { max-width: 90%; max-height: 90%; object-fit: contain; }
.ib-pdp__love-name { font-size: 11px; font-weight: 700; line-height: 1.3; }
.ib-pdp__love-price { font-size: 11px; color: var(--ib-primary); font-weight: 800; }

/* Price block — large current + crossed regular + red % pill + save line */
.ib-pdp__price-block {
  margin: 0;
  padding: 0;
  border-bottom: 0;
}
.ib-pdp__price-row {
  display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
}
.ib-pdp__price-now { font-size: 0; }
.ib-pdp__price-now .woocommerce-Price-amount {
  font-size: 32px; font-weight: 800; color: var(--ib-ink);
  letter-spacing: -0.02em;
}
.ib-pdp__price-old .woocommerce-Price-amount {
  font-size: 16px; color: var(--ib-mute); font-weight: 500;
  text-decoration: line-through;
}
.ib-pdp__price-pct {
  display: inline-flex; align-items: center;
  background: var(--ib-bd-sale-bg);
  color: var(--ib-bd-sale-fg);
  font-size: 12px; font-weight: 800;
  padding: 4px 10px;
  border-radius: 999px;
}
.ib-pdp__save-line {
  margin-top: 8px;
  font-size: 14px; font-weight: 700;
  color: var(--ib-danger);
}
.ib-pdp__save-line .woocommerce-Price-amount {
  font-size: 14px !important; color: var(--ib-danger) !important; font-weight: 700 !important;
}

/* Option group labels — "Couleur :" small + bold value */
.ib-pdp__option-group { margin-top: 0; }
.ib-pdp__option-label {
  font-size: 13px; font-weight: 700; color: var(--ib-sub);
  margin-bottom: 10px;
}
.ib-pdp__option-label strong {
  color: var(--ib-ink); font-weight: 700;
}

/* Color swatches */
.ib-pdp__color-swatches {
  display: flex; gap: 10px; flex-wrap: wrap;
}
.ib-pdp__swatch {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px var(--ib-line), 0 2px 4px rgba(10,22,40,0.06);
  cursor: pointer;
  padding: 0;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.ib-pdp__swatch:hover { transform: scale(1.08); }
.ib-pdp__swatch.is-active {
  box-shadow: 0 0 0 2px #fff, 0 0 0 2px var(--ib-primary);
  transform: none;
}

/* Variant buttons (Stockage etc.) — square cards, primary fill on active */
.ib-pdp__variants {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(72px, 1fr); gap: 10px;
  flex-wrap: wrap;
}
.ib-pdp__variant {
  display: flex; align-items: center; justify-content: center;
  min-height: 56px;
  padding: 8px 14px;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: 8px;
  font-size: 14px; font-weight: 700;
  color: var(--ib-ink);
  cursor: pointer;
  text-align: center; line-height: 1.25;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.ib-pdp__variant:hover { border-color: var(--ib-primary); color: var(--ib-primary); }
.ib-pdp__variant.is-active {
  border-color: var(--ib-primary);
  background: #fff;
  color: var(--ib-primary);
  box-shadow: inset 0 0 0 1px var(--ib-primary);
}

/* === Info column — group spacing === */
.ib-pdp__info > * + * { margin-top: 18px; }
.ib-pdp__info > .ib-pdp__divider { margin: 18px 0; }
.ib-pdp__info > .ib-pdp__sku { margin-top: 0; }

/* Highlights card — bordered soft-blue card with 2-col bullet grid */
.ib-pdp__highlights {
  padding: 18px 22px;
  background: #F4F6FB;
  border: 1px solid #E4E8F0;
  border-radius: var(--ib-r-lg);
}
.ib-pdp__highlights-title {
  font-size: 14px; font-weight: 800; color: var(--ib-ink);
  margin-bottom: 12px;
}
.ib-pdp__highlights-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px;
}
.ib-pdp__highlight {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--ib-ink); line-height: 1.4;
}
.ib-pdp__highlight .ib-icon { color: var(--ib-success); flex-shrink: 0; }

/* CTA row — qty + Add to cart + Buy now (horizontal) */
.ib-pdp__cta-form { margin-top: 18px; }
.ib-pdp__cta-row {
  display: grid;
  grid-template-columns: auto 1fr 1fr;
  gap: 10px;
}
.ib-pdp__cta-row .ib-qty {
  display: inline-flex; align-items: center;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: 8px;
  padding: 0 4px;
  height: 48px;
}
.ib-pdp__cta-row .ib-qty button {
  width: 36px; height: 40px;
  border: 0; background: transparent;
  font-size: 18px; font-weight: 700; color: var(--ib-sub);
  cursor: pointer; border-radius: 4px;
  transition: background 0.18s ease, color 0.18s ease;
}
.ib-pdp__cta-row .ib-qty button:hover { background: var(--ib-primary-lt); color: var(--ib-primary); }
.ib-pdp__cta-row .ib-qty input {
  width: 36px; height: 40px;
  border: 0; background: transparent;
  text-align: center;
  font-size: 14px; font-weight: 800; color: var(--ib-ink);
  -moz-appearance: textfield;
}
.ib-pdp__cta-row .ib-qty input::-webkit-outer-spin-button,
.ib-pdp__cta-row .ib-qty input::-webkit-inner-spin-button {
  -webkit-appearance: none; margin: 0;
}
.ib-pdp__cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 0 20px;
  height: 48px;
  border: 0; border-radius: 8px;
  font-size: 14px; font-weight: 800;
  cursor: pointer;
  letter-spacing: -0.005em;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.ib-pdp__cta--primary {
  background: var(--ib-primary);
  color: #fff;
  box-shadow: 0 6px 14px rgba(24,85,204,0.22);
}
.ib-pdp__cta--primary:hover {
  background: var(--ib-primary-dk);
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(24,85,204,0.32);
}
.ib-pdp__cta--dark {
  background: var(--ib-ink);
  color: #fff;
  box-shadow: 0 6px 14px rgba(10,22,40,0.18);
}
.ib-pdp__cta--dark:hover { background: #1a2940; transform: translateY(-1px); }
.ib-pdp__cta .ib-icon { color: #fff; }

/* Delivery rows — 4 stacked bordered cards */
.ib-pdp__delivery {
  margin-top: 18px;
  display: flex; flex-direction: column; gap: 8px;
}
.ib-pdp__delivery-row {
  display: grid; grid-template-columns: 28px 1fr;
  gap: 14px; align-items: center;
  padding: 14px 18px;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.ib-pdp__delivery-row:hover {
  border-color: var(--ib-primary);
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(24,85,204,0.08);
}
.ib-pdp__delivery-ico {
  color: var(--ib-primary);
  display: inline-flex; align-items: center; justify-content: center;
}
.ib-pdp__delivery-title { font-size: 14px; font-weight: 700; color: var(--ib-ink); line-height: 1.3; }
.ib-pdp__delivery-sub { font-size: 12px; color: var(--ib-sub); line-height: 1.4; margin-top: 2px; }

/* === LEGACY BUY SIDEBAR — keep classes (unused) but reset positioning === */
.ib-pdp__buy {
  display: none;
}

/* === Description tab — 2-col layout (text left + Spécifications card right) === */
.ib-pdp__tab-pane--description {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 32px;
  align-items: start;
}
.ib-pdp__tab-pane--description > div:first-child {
  font-size: 14px; color: var(--ib-sub); line-height: 1.65;
}
.ib-pdp__tab-pane--description > div:first-child > :first-child {
  margin-top: 0;
}
.ib-pdp__tab-pane--description h1,
.ib-pdp__tab-pane--description h2,
.ib-pdp__tab-pane--description h3 {
  color: var(--ib-ink);
  margin-bottom: 12px;
  font-size: 22px;
  letter-spacing: -0.01em;
}
.ib-pdp__tab-pane--description p { margin-bottom: 14px; }
.ib-pdp__tab-pane--description .ib-pdp__specs {
  background: #F4F6FB;
  border: 1px solid #E4E8F0;
  border-radius: var(--ib-r-lg);
  padding: 22px 24px;
}
.ib-pdp__tab-pane--description .ib-pdp__specs-title {
  font-size: 15px; font-weight: 800; color: var(--ib-ink);
  margin-bottom: 16px;
}
.ib-pdp__tab-pane--description .ib-pdp__specs-grid {
  display: grid; grid-template-columns: max-content 1fr;
  gap: 14px 24px;
  font-size: 13px;
  margin: 0;
}
.ib-pdp__tab-pane--description .ib-pdp__specs-grid dt {
  color: var(--ib-sub); font-weight: 600; margin: 0;
}
.ib-pdp__tab-pane--description .ib-pdp__specs-grid dd {
  color: var(--ib-ink); font-weight: 700; margin: 0;
}
@media (max-width: 1024px) {
  .ib-pdp__tab-pane--description { grid-template-columns: 1fr; gap: 20px; }
}

/* "Pourquoi iBeta" fallback card — used when product has no specs/attributes */
.ib-pdp__why {
  background: #F4F6FB;
  border: 1px solid #E4E8F0;
  border-radius: var(--ib-r-lg);
  padding: 22px 24px;
}
.ib-pdp__why-title {
  font-size: 15px; font-weight: 800; color: var(--ib-ink);
  margin-bottom: 16px;
  position: relative;
  padding-bottom: 10px;
}
.ib-pdp__why-title::after {
  content: '';
  position: absolute; left: 0; bottom: 0;
  width: 32px; height: 2px;
  background: linear-gradient(90deg, var(--ib-primary), var(--ib-pink));
  border-radius: 2px;
}
.ib-pdp__why-grid {
  display: flex; flex-direction: column; gap: 14px;
}
.ib-pdp__why-item {
  display: grid; grid-template-columns: 36px 1fr;
  gap: 12px; align-items: center;
}
.ib-pdp__why-ico {
  width: 36px; height: 36px;
  border-radius: 6px;
  background: #fff;
  color: var(--ib-primary);
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(24,85,204,0.12);
}
.ib-pdp__why-item strong {
  display: block;
  font-size: 13px; font-weight: 800; color: var(--ib-ink);
  line-height: 1.3;
}
.ib-pdp__why-item small {
  display: block;
  font-size: 12px; color: var(--ib-sub); line-height: 1.4;
  margin-top: 2px;
}

/* === Related products — 5 cards in single row === */
.ib-related .ib-product-grid {
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 14px;
}
@media (max-width: 1280px) {
  .ib-related .ib-product-grid { grid-template-columns: repeat(4, 1fr) !important; }
}
@media (max-width: 1024px) {
  .ib-related .ib-product-grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 640px) {
  .ib-related .ib-product-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* === FAQ tab — accordion-style === */
.ib-pdp__faq {
  display: flex; flex-direction: column; gap: 8px;
  max-width: 880px;
}
.ib-pdp__faq-item {
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  overflow: hidden;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.ib-pdp__faq-item:hover { border-color: var(--ib-primary); }
.ib-pdp__faq-item[open] { border-color: var(--ib-primary); box-shadow: 0 4px 10px rgba(24,85,204,0.08); }
.ib-pdp__faq-q {
  padding: 14px 18px;
  font-size: 14px; font-weight: 700; color: var(--ib-ink);
  cursor: pointer;
  list-style: none;
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
}
.ib-pdp__faq-q::-webkit-details-marker { display: none; }
.ib-pdp__faq-q::after {
  content: '+';
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--ib-primary-lt);
  color: var(--ib-primary);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 800;
  flex-shrink: 0;
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.ib-pdp__faq-item[open] .ib-pdp__faq-q::after {
  content: '−';
  background: var(--ib-primary);
  color: #fff;
}
.ib-pdp__faq-a {
  padding: 0 18px 16px;
  font-size: 13px; color: var(--ib-sub); line-height: 1.6;
}
.ib-pdp__buy > div,
.ib-pdp__buy > form {
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: 10px;
  padding: 16px 18px;
}

/* Trust mini-strip at the top of the sidebar */
.ib-pdp__buy-trust { padding: 14px 18px !important; }
.ib-pdp__buy-trust-row {
  display: flex; align-items: center; gap: 12px;
  padding: 6px 0;
}
.ib-pdp__buy-trust-row + .ib-pdp__buy-trust-row { border-top: 1px solid #F1F5F9; }
.ib-pdp__buy-trust-icon {
  width: 32px; height: 32px;
  border-radius: 4px;
  background: var(--ib-primary-lt);
  color: var(--ib-primary);
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ib-pdp__buy-trust-title { font-size: 13px; font-weight: 800; color: var(--ib-ink); line-height: 1.2; }
.ib-pdp__buy-trust-sub { font-size: 11px; color: var(--ib-sub); }

/* Buy form: qty row + CTAs */
.ib-pdp__buy-form { display: flex; flex-direction: column; gap: 10px; }
.ib-pdp__buy-qty {
  display: flex; justify-content: space-between; align-items: center;
  padding: 6px 0 4px;
}
.ib-pdp__buy-qty-label { font-size: 12px; font-weight: 700; color: var(--ib-sub); }

.ib-pdp__buy-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 20px;
  border: 0; border-radius: 8px;
  font-size: 14px; font-weight: 800;
  cursor: pointer;
  letter-spacing: -0.005em;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.ib-pdp__buy-cta--primary {
  background: linear-gradient(135deg, var(--ib-primary) 0%, #6E5BF0 100%);
  color: #fff;
  box-shadow: 0 8px 18px rgba(24,85,204,0.28);
}
.ib-pdp__buy-cta--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(110,91,240,0.36);
}
.ib-pdp__buy-cta--dark {
  background: var(--ib-ink);
  color: #fff;
  box-shadow: 0 6px 14px rgba(10,22,40,0.18);
}
.ib-pdp__buy-cta--dark:hover { background: #1a2940; transform: translateY(-1px); }
.ib-pdp__buy-cta .ib-icon { color: #fff; }

/* Wishlist + compare row */
.ib-pdp__buy-actions {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}
.ib-pdp__buy-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 10px;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: 6px;
  font-size: 12px; font-weight: 700;
  color: var(--ib-sub);
  cursor: pointer;
  text-decoration: none;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.ib-pdp__buy-action:hover {
  border-color: var(--ib-primary);
  color: var(--ib-primary);
  background: var(--ib-primary-lt);
}

/* Social proof block */
.ib-pdp__buy-social {
  display: flex; gap: 12px; align-items: center;
  background: linear-gradient(180deg, #fff 0%, #FAFBFF 100%) !important;
}
.ib-pdp__buy-social-avatars {
  display: flex;
  flex-shrink: 0;
}
.ib-pdp__buy-social-avatars span {
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 2px solid #fff;
  font-size: 11px; font-weight: 800;
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  margin-left: -8px;
}
.ib-pdp__buy-social-avatars span:first-child { margin-left: 0; }
.ib-pdp__buy-social-text { font-size: 11px; color: var(--ib-sub); line-height: 1.4; }
.ib-pdp__buy-social-text strong { color: var(--ib-ink); font-weight: 800; }

/* Bundles teaser card — rich gradient promo with "Composer un pack" CTA */
.ib-pdp__buy-bundle {
  display: grid !important;
  grid-template-columns: 1fr auto;
  gap: 12px;
  padding: 16px 18px !important;
  background: linear-gradient(135deg, #EEF3FF 0%, #DCE7FF 60%, #FFE4F2 100%) !important;
  border: 1px solid #DCE7FF !important;
  text-decoration: none;
  color: var(--ib-ink);
  align-items: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.ib-pdp__buy-bundle:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(24,85,204,0.16); }
.ib-pdp__buy-bundle-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ib-pdp__buy-bundle-title { font-size: 13px; font-weight: 800; color: var(--ib-ink); }
.ib-pdp__buy-bundle-sub { font-size: 11px; color: var(--ib-sub); line-height: 1.35; }
.ib-pdp__buy-bundle-cta {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; font-weight: 700;
  color: var(--ib-primary);
  margin-top: 4px;
}
.ib-pdp__buy-bundle-art {
  display: flex; align-items: center;
}
.ib-pdp__buy-bundle-art span {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 2px solid #fff;
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff;
  box-shadow: 0 4px 10px rgba(10,22,40,0.18);
}
.ib-pdp__buy-bundle-art span:first-child { margin-right: -10px; }

/* Need help choosing? — friendly support card with two CTAs */
.ib-pdp__buy-help {
  background: linear-gradient(180deg, #fff 0%, #FAFBFF 100%) !important;
}
.ib-pdp__buy-help-head {
  display: flex; gap: 12px; align-items: center;
  margin-bottom: 12px;
}
.ib-pdp__buy-help-head strong { display: block; font-size: 13px; font-weight: 800; color: var(--ib-ink); }
.ib-pdp__buy-help-head small { display: block; font-size: 11px; color: var(--ib-sub); }
.ib-pdp__buy-help-ico {
  width: 36px; height: 36px;
  border-radius: 6px;
  background: linear-gradient(135deg, var(--ib-primary), #6E5BF0);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ib-pdp__buy-help-ico .ib-icon { color: #fff; }
.ib-pdp__buy-help-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
.ib-pdp__buy-help-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: 4px;
  font-size: 11px; font-weight: 700;
  color: var(--ib-ink);
  text-decoration: none;
  transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease;
}
.ib-pdp__buy-help-btn:hover {
  border-color: var(--ib-primary);
  color: var(--ib-primary);
  background: var(--ib-primary-lt);
}

/* Status badge row near title */
.ib-pdp__badge-row {
  display: flex; gap: 8px; flex-wrap: wrap;
  margin-bottom: 12px;
}
.ib-pdp__badge-row .ib-badge {
  font-size: 11px; padding: 5px 12px; border-radius: 999px; letter-spacing: 0.04em;
  font-weight: 700;
}

/* Title spacing */
.ib-pdp__title { margin-bottom: 6px; font-size: 32px; line-height: 1.15; }

.ib-pdp__sku {
  font-size: 13px; color: var(--ib-sub);
  margin: 0;
}
.ib-pdp__sku strong { color: var(--ib-ink); font-weight: 600; }

/* Hairline dividers between groups */
.ib-pdp__divider {
  border: 0; border-top: 1px solid var(--ib-line);
  margin: 18px 0;
}

/* Rating row — clean inline format with bullet separators */
.ib-pdp__rating-row {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 0; margin: 0;
  border-bottom: 0;
}
.ib-pdp__stars { display: inline-flex; gap: 2px; }
.ib-pdp__rating-value { font-size: 15px; font-weight: 800; color: var(--ib-ink); margin-right: 4px; }
.ib-pdp__rating-link { font-size: 13px; color: var(--ib-sub); text-decoration: none; }
.ib-pdp__rating-link:hover { color: var(--ib-primary); }
.ib-pdp__rating-sep { color: var(--ib-line); font-weight: 600; }
.ib-pdp__rating-sales { font-size: 13px; color: var(--ib-sub); }
.ib-pdp__rating-stock {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 13px; color: var(--ib-success); font-weight: 700;
}
.ib-pdp__rating-stock .ib-icon { color: var(--ib-success); fill: var(--ib-success); }
.ib-pdp__rating-out { font-size: 13px; color: var(--ib-danger); font-weight: 700; }

@media (max-width: 1024px) {
  .ib-pdp__buy { position: static; }
}

/* ============================================================
   DOC PAGES (page.php fallback — FAQ, livraison, retours,
   confidentialité, cookies, CGV, mentions légales, blog single)
   ============================================================ */
.ib-doc-shell {
  max-width: 1200px;
  margin: 0 auto;
  padding: 28px 24px 64px;
}
.ib-doc__hero {
  position: relative;
  background:
    radial-gradient(120% 100% at 10% 0%, rgba(24,85,204,.08), transparent 55%),
    radial-gradient(80% 80% at 95% 100%, rgba(110,91,240,.10), transparent 60%),
    linear-gradient(180deg, #F4F7FF, #EEF2FB);
  border: 1px solid rgba(225,232,242,.85);
  border-radius: 22px;
  padding: 44px 48px 40px;
  margin-bottom: 36px;
  overflow: hidden;
}
.ib-doc__hero::before {
  content: '';
  position: absolute; inset: 0 0 auto 0; height: 3px;
  background: linear-gradient(90deg, #0F3A99, #1855CC 40%, #6E5BF0);
  border-radius: 22px 22px 0 0;
}
.ib-doc__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11.5px; font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--ib-primary, #1855CC);
  margin-bottom: 14px;
}
.ib-doc__pulse {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--ib-primary, #1855CC);
  box-shadow: 0 0 0 4px rgba(24,85,204,.18);
  animation: ib-doc-pulse 1.8s ease-in-out infinite;
}
@keyframes ib-doc-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.35); opacity: .55; }
}
.ib-doc__title {
  font-size: clamp(28px, 3.6vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  font-weight: 800;
  color: var(--ib-ink, #0A1628);
  margin: 0 0 10px;
}
.ib-doc__sub {
  font-size: 15px;
  line-height: 1.55;
  color: var(--ib-sub, #5B6B85);
  max-width: 640px;
  margin: 0;
}

.ib-doc__layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 36px;
  align-items: start;
}
.ib-doc__layout:has(.ib-doc__body--wide) { grid-template-columns: minmax(0, 1fr); }

.ib-doc__toc {
  position: sticky;
  top: 96px;
  background: #fff;
  border: 1px solid var(--ib-line, #E1E8F2);
  border-radius: 16px;
  padding: 20px 18px;
  box-shadow: 0 12px 32px -22px rgba(10,22,40,.18);
}
.ib-doc__toc-label {
  font-size: 11px; font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ib-line, #E1E8F2);
}
.ib-doc__toc-list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 2px;
}
.ib-doc__toc-list a {
  display: flex; align-items: center; gap: 12px;
  padding: 9px 10px;
  border-radius: 9px;
  font-size: 13.5px;
  color: var(--ib-ink, #0A1628);
  text-decoration: none;
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.ib-doc__toc-list a:hover {
  background: rgba(24,85,204,.06);
  color: var(--ib-primary, #1855CC);
  transform: translateX(2px);
}
.ib-doc__toc-num {
  font-size: 11px;
  font-weight: 800;
  color: var(--ib-sub, #5B6B85);
  background: var(--ib-soft, #F5F7FF);
  padding: 3px 7px;
  border-radius: 6px;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}
.ib-doc__toc-list a:hover .ib-doc__toc-num {
  background: var(--ib-primary, #1855CC);
  color: #fff;
}

.ib-doc__body {
  background: #fff;
  border: 1px solid var(--ib-line, #E1E8F2);
  border-radius: 18px;
  padding: 40px 48px;
  box-shadow: 0 10px 28px -18px rgba(10,22,40,.10);
}
.ib-doc__body--wide {
  max-width: 820px;
  margin: 0 auto;
}
.ib-doc__thumb {
  margin: -40px -48px 32px;
  overflow: hidden;
  border-radius: 18px 18px 0 0;
}
.ib-doc__thumb img { display: block; width: 100%; height: auto; }
.ib-doc__content {
  font-size: 16px;
  line-height: 1.75;
  color: var(--ib-ink, #0A1628);
}
.ib-doc__content h2 {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ib-ink, #0A1628);
  margin: 36px 0 14px;
  padding-top: 18px;
  scroll-margin-top: 100px;
  position: relative;
}
.ib-doc__content h2:first-child { margin-top: 0; padding-top: 0; }
.ib-doc__content h2::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 36px; height: 3px;
  background: linear-gradient(90deg, #1855CC, #6E5BF0);
  border-radius: 3px;
}
.ib-doc__content h2:first-child::before { display: none; }
.ib-doc__content h3 {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ib-ink, #0A1628);
  margin: 28px 0 10px;
}
.ib-doc__content p {
  margin: 0 0 16px;
  color: var(--ib-ink-2, #2D3D5C);
}
.ib-doc__content p strong { color: var(--ib-ink, #0A1628); font-weight: 700; }
.ib-doc__content a {
  color: var(--ib-primary, #1855CC);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  transition: color .15s ease;
}
.ib-doc__content a:hover { color: #0F3A99; }
.ib-doc__content ul, .ib-doc__content ol {
  margin: 0 0 18px;
  padding-left: 26px;
}
.ib-doc__content li { margin-bottom: 6px; color: var(--ib-ink-2, #2D3D5C); }
.ib-doc__content ul li { list-style: none; position: relative; }
.ib-doc__content ul li::before {
  content: '';
  position: absolute;
  left: -18px; top: 11px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--ib-primary, #1855CC);
}
.ib-doc__content ol { padding-left: 22px; }
.ib-doc__content ol li::marker { color: var(--ib-primary, #1855CC); font-weight: 800; }
.ib-doc__content code {
  background: var(--ib-soft, #F5F7FF);
  padding: 2px 7px;
  border-radius: 5px;
  font-size: 0.92em;
  color: var(--ib-primary, #1855CC);
  font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}
.ib-doc__content blockquote {
  margin: 22px 0;
  padding: 14px 20px;
  background: var(--ib-soft, #F5F7FF);
  border-left: 3px solid var(--ib-primary, #1855CC);
  border-radius: 0 12px 12px 0;
  font-style: italic;
  color: var(--ib-ink-2, #2D3D5C);
}

.ib-doc__cta-card {
  margin-top: 40px;
  padding: 24px 28px;
  background: linear-gradient(120deg, #0F3A99 0%, #1855CC 50%, #6E5BF0 100%);
  border-radius: 16px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.ib-doc__cta-card::before {
  content: '';
  position: absolute;
  inset: -50% -20% auto auto;
  width: 60%; height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,.18) 0%, transparent 60%);
  pointer-events: none;
}
.ib-doc__cta-eyebrow {
  font-size: 11px; font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase;
  opacity: .8;
  margin-bottom: 6px;
}
.ib-doc__cta-title {
  font-size: 18px; font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.35;
}
.ib-doc__cta-actions {
  display: flex; gap: 10px; flex-wrap: wrap;
  position: relative; z-index: 1;
}
.ib-doc__cta-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 18px;
  border-radius: 10px;
  font-size: 13px; font-weight: 700;
  text-decoration: none;
  transition: transform .15s ease, background .15s ease;
}
.ib-doc__cta-btn--primary {
  background: #fff;
  color: var(--ib-primary, #1855CC);
}
.ib-doc__cta-btn--primary:hover { transform: translateY(-2px); }
.ib-doc__cta-btn--ghost {
  background: rgba(255,255,255,.12);
  color: #fff;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,.22);
}
.ib-doc__cta-btn--ghost:hover { background: rgba(255,255,255,.2); }

@media (max-width: 1024px) {
  .ib-doc__layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ib-doc__toc { position: static; }
  .ib-doc__hero { padding: 36px 28px 32px; }
  .ib-doc__body { padding: 28px 24px; }
  .ib-doc__thumb { margin: -28px -24px 24px; }
}
@media (max-width: 640px) {
  .ib-doc-shell { padding: 18px 14px 48px; }
  .ib-doc__cta-card { flex-direction: column; align-items: flex-start; padding: 22px 22px; }
}

/* === Single post meta (author / date / read time) === */
.ib-doc__meta {
  display: flex; align-items: center; gap: 10px;
  flex-wrap: wrap;
  margin-top: 16px;
  font-size: 13px;
  color: var(--ib-sub, #5B6B85);
}
.ib-doc__meta-author {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--ib-ink, #0A1628);
  font-weight: 700;
}
.ib-doc__meta-author img,
.ib-doc__meta-avatar-fallback {
  width: 28px; height: 28px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #1855CC, #6E5BF0);
  color: #fff;
  font-weight: 800;
  font-size: 12px;
  object-fit: cover;
}
.ib-doc__meta-dot { opacity: .5; }
.ib-doc__meta-read {
  display: inline-flex; align-items: center; gap: 4px;
}

/* === Tags on single post === */
.ib-doc__tags {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px dashed var(--ib-line, #E1E8F2);
  display: flex; gap: 8px; flex-wrap: wrap;
}
.ib-doc__tag {
  display: inline-flex; align-items: center;
  padding: 6px 12px;
  background: var(--ib-soft, #F5F7FF);
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ib-primary, #1855CC);
  text-decoration: none;
  transition: background .15s ease, transform .15s ease;
}
.ib-doc__tag:hover {
  background: var(--ib-primary, #1855CC);
  color: #fff;
  transform: translateY(-1px);
}

/* === Related posts (single.php) === */
.ib-doc__related { margin-top: 56px; }
.ib-doc__related-head {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 16px; flex-wrap: wrap;
  margin-bottom: 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ib-line, #E1E8F2);
}
.ib-doc__related-head h2 {
  font-size: 22px; font-weight: 800;
  letter-spacing: -.02em;
  color: var(--ib-ink, #0A1628);
  margin: 0;
}
.ib-doc__related-head a {
  font-size: 13px; font-weight: 700;
  color: var(--ib-primary, #1855CC);
  text-decoration: none;
}
.ib-doc__related-head a:hover { text-decoration: underline; }

.ib-doc__related-grid,
.ib-doc__archive-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 960px) {
  .ib-doc__related-grid,
  .ib-doc__archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .ib-doc__related-grid,
  .ib-doc__archive-grid { grid-template-columns: minmax(0, 1fr); }
}

.ib-doc__related-card {
  display: flex; flex-direction: column;
  background: #fff;
  border: 1px solid var(--ib-line, #E1E8F2);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ib-doc__related-card:hover {
  transform: translateY(-3px);
  border-color: rgba(24,85,204,.30);
  box-shadow: 0 18px 36px -16px rgba(10,22,40,.20);
}
.ib-doc__related-thumb {
  aspect-ratio: 16 / 10;
  background: var(--ib-soft, #F5F7FF);
  overflow: hidden;
}
.ib-doc__related-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.ib-doc__related-card:hover .ib-doc__related-thumb img { transform: scale(1.04); }
.ib-doc__related-thumb--placeholder {
  background:
    radial-gradient(80% 80% at 30% 20%, rgba(24,85,204,.08), transparent 60%),
    linear-gradient(135deg, #F0F4FB, #E8EEF8);
}
.ib-doc__related-body {
  padding: 16px 18px 18px;
  display: flex; flex-direction: column; gap: 6px;
  flex: 1;
}
.ib-doc__related-cat {
  font-size: 10.5px; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ib-primary, #1855CC);
}
.ib-doc__related-title {
  font-size: 15px; font-weight: 800;
  letter-spacing: -.01em;
  color: var(--ib-ink, #0A1628);
  margin: 2px 0 0;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ib-doc__related-date {
  font-size: 12px; color: var(--ib-sub, #5B6B85);
  margin-top: auto;
  padding-top: 6px;
}

/* === Archive grid extras === */
.ib-doc__archive-excerpt {
  font-size: 13px;
  color: var(--ib-sub, #5B6B85);
  line-height: 1.5;
  margin: 4px 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ib-doc__archive-price {
  font-size: 16px; font-weight: 800;
  color: var(--ib-primary, #1855CC);
}

/* === Search box inside hero === */
.ib-doc__searchbox {
  margin-top: 22px;
  display: flex; gap: 10px;
  max-width: 540px;
}
.ib-doc__searchbox input {
  flex: 1;
  padding: 13px 16px;
  border-radius: 10px;
  border: 1.5px solid var(--ib-line, #E1E8F2);
  background: #fff;
  font-size: 14px;
  font-family: inherit;
  color: var(--ib-ink, #0A1628);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.ib-doc__searchbox input:focus {
  outline: none;
  border-color: var(--ib-primary, #1855CC);
  box-shadow: 0 0 0 4px rgba(24,85,204,.10);
}
.ib-doc__searchbox button {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 12px 18px;
  border-radius: 10px;
  border: none;
  background: linear-gradient(120deg, #0F3A99, #1855CC 50%, #6E5BF0);
  color: #fff;
  font-size: 13px; font-weight: 800;
  letter-spacing: .04em;
  cursor: pointer;
  box-shadow: 0 8px 18px -6px rgba(24,85,204,.40);
  transition: transform .15s ease;
}
.ib-doc__searchbox button:hover { transform: translateY(-1px); }

/* === Pagination === */
.ib-doc__pagination {
  margin-top: 36px;
  display: flex; justify-content: center;
}
.ib-doc__pagination .nav-links {
  display: flex; gap: 8px; align-items: center;
}
.ib-doc__pagination .page-numbers {
  min-width: 38px; height: 38px;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0 10px;
  border-radius: 9px;
  background: #fff;
  border: 1px solid var(--ib-line, #E1E8F2);
  color: var(--ib-ink, #0A1628);
  font-weight: 700;
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.ib-doc__pagination .page-numbers.current {
  background: var(--ib-primary, #1855CC);
  color: #fff;
  border-color: var(--ib-primary, #1855CC);
}
.ib-doc__pagination .page-numbers:hover:not(.current) {
  background: var(--ib-soft, #F5F7FF);
  color: var(--ib-primary, #1855CC);
}
.ib-doc__pagination .page-numbers.dots { background: transparent; border: none; }

/* ============================================================
   STAFF — sub-nav (Commandes / Clients)
   ============================================================ */
.ib-staff__subnav {
  display: flex; gap: 4px;
  padding: 8px;
  margin: 16px auto 0;
  max-width: 1280px;
  background: rgba(255,255,255,.85);
  border: 1px solid var(--ib-line, #E1E8F2);
  border-radius: 14px;
  backdrop-filter: blur(8px);
  width: max-content;
}
.ib-staff__subnav-item {
  padding: 9px 18px;
  border-radius: 9px;
  font-size: 13px; font-weight: 700;
  color: var(--ib-sub, #5B6B85);
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.ib-staff__subnav-item:hover { background: var(--ib-soft, #F5F7FF); color: var(--ib-ink); }
.ib-staff__subnav-item.is-active {
  background: linear-gradient(120deg, #0F3A99, #1855CC 50%, #6E5BF0);
  color: #fff;
  box-shadow: 0 8px 18px -6px rgba(24,85,204,.40);
}

/* ============================================================
   STAFF CLIENTS — registry table
   ============================================================ */
.ib-clients__search {
  position: relative;
  background: rgba(255,255,255,.88);
  border: 1.5px solid var(--ib-line, #E1E8F2);
  border-radius: 12px;
  padding: 10px 14px 10px 38px;
  width: 280px;
  display: flex; align-items: center;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.ib-clients__search:focus-within {
  border-color: var(--ib-primary, #1855CC);
  box-shadow: 0 0 0 4px rgba(24,85,204,.10);
}
.ib-clients__search svg {
  position: absolute;
  left: 14px; top: 50%;
  transform: translateY(-50%);
  color: var(--ib-sub, #5B6B85);
}
.ib-clients__search input {
  border: 0; outline: 0; background: transparent;
  width: 100%;
  font-size: 13px;
  font-family: inherit;
  color: var(--ib-ink, #0A1628);
}
.ib-clients__search input::placeholder { color: var(--ib-sub, #5B6B85); }

.ib-clients-wrap {
  max-width: 1280px;
  margin: 24px auto 64px;
  padding: 0 16px;
}
.ib-clients-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid var(--ib-line, #E1E8F2);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 10px 24px -16px rgba(10,22,40,.10);
}
.ib-clients-table thead th {
  text-align: left;
  font-size: 10.5px; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  padding: 12px 14px;
  background: linear-gradient(180deg, #F8FAFF, #F0F4FB);
  border-bottom: 1px solid var(--ib-line, #E1E8F2);
}
.ib-clients-table thead th.num { text-align: right; }
.ib-clients-table tbody tr {
  cursor: pointer;
  transition: background .12s ease, transform .12s ease;
}
.ib-clients-table tbody tr:hover { background: rgba(24,85,204,.03); }
.ib-clients-table tbody td {
  padding: 14px 14px;
  border-bottom: 1px solid rgba(225,232,242,.6);
  font-size: 13px;
  vertical-align: middle;
}
.ib-clients-table tbody tr:last-child td { border-bottom: 0; }
.ib-clients-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.ib-clients-table td.num.strong { font-weight: 800; color: var(--ib-ink, #0A1628); }
.ib-clients-table td.num.alert { color: #DC2626; font-weight: 800; }
.ib-clients-table td.num.pts { font-weight: 800; color: #B45309; }

.ib-clients-cell-name-inner {
  display: flex; align-items: center; gap: 12px;
}
.ib-clients-avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #1855CC, #6E5BF0);
  color: #fff;
  font-weight: 800;
  font-size: 12.5px;
  flex-shrink: 0;
  overflow: hidden;
}
.ib-clients-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ib-clients-namebox { display: flex; flex-direction: column; gap: 2px; }
.ib-clients-name { font-weight: 800; color: var(--ib-ink, #0A1628); }
.ib-clients-tag {
  display: inline-block;
  font-size: 10px; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 6px;
  margin-right: 4px;
}
.ib-clients-tag--guest { background: rgba(91,107,133,.14); color: #5B6B85; }
.ib-clients-city { font-size: 11.5px; color: var(--ib-sub, #5B6B85); }
.ib-clients-cell-contact-inner {
  display: flex; flex-direction: column; gap: 2px;
  font-size: 13px;
  color: var(--ib-ink, #0A1628);
}
.ib-clients-cell-contact-inner small { font-size: 11.5px; color: var(--ib-sub, #5B6B85); }
.ib-clients-cell-when { font-size: 12px; color: var(--ib-sub, #5B6B85); }
.ib-clients-empty {
  padding: 60px 20px !important;
  text-align: center;
  color: var(--ib-sub, #5B6B85);
}
.ib-clients-no-results {
  padding: 36px 20px;
  text-align: center;
  color: var(--ib-sub, #5B6B85);
  font-size: 13px;
}
.ib-staff__kpi--purple {
  background: linear-gradient(135deg, #6E5BF0, #B69BFF);
  color: #fff;
}
.ib-staff__kpi--purple .ib-staff__kpi-label { color: rgba(255,255,255,.78); }
.ib-staff__kpi--green {
  background: linear-gradient(135deg, #15803D, #22C55E);
  color: #fff;
}
.ib-staff__kpi--green .ib-staff__kpi-label { color: rgba(255,255,255,.82); }

@media (max-width: 800px) {
  .ib-clients-table thead { display: none; }
  .ib-clients-table tbody td { display: block; padding: 6px 14px; border-bottom: 0; }
  .ib-clients-table tbody tr {
    display: block;
    padding: 12px 0;
    border-bottom: 1px solid var(--ib-line, #E1E8F2);
  }
  .ib-clients-cell-name { padding: 10px 14px !important; }
  .ib-clients-table td.num { text-align: left; }
  .ib-clients-table td.num::before {
    content: attr(data-label) "";
    font-weight: 700; color: var(--ib-sub, #5B6B85);
    font-size: 11px; text-transform: uppercase;
    margin-right: 6px;
  }
}

/* ============================================================
   MY ACCOUNT → MES POINTS
   ============================================================ */
.ib-mypoints {
  display: flex; flex-direction: column;
  gap: 28px;
}

.ib-mypoints__head {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(70% 70% at 100% 0%, rgba(255,193,7,.35), transparent 65%),
    linear-gradient(135deg, #4A2710 0%, #B45309 50%, #E89F4D 100%);
  color: #fff;
  border-radius: 18px;
  padding: 32px 34px;
}
.ib-mypoints__balance { position: relative; z-index: 1; }
.ib-mypoints__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase;
  color: rgba(255,255,255,.85);
  margin-bottom: 14px;
}
.ib-mypoints__pulse {
  width: 7px; height: 7px; border-radius: 50%;
  background: #FFD371;
  box-shadow: 0 0 0 4px rgba(255,211,113,.30);
  animation: ib-mypoints-pulse 1.8s ease-in-out infinite;
}
@keyframes ib-mypoints-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.4); opacity: .55; }
}
.ib-mypoints__num {
  font-size: clamp(40px, 6vw, 64px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.04em;
  margin-bottom: 4px;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 2px 12px rgba(0,0,0,.18);
}
.ib-mypoints__label {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255,255,255,.85);
  margin-bottom: 14px;
}
.ib-mypoints__gnf {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 999px;
  font-size: 13.5px;
  backdrop-filter: blur(8px);
}
.ib-mypoints__gnf strong { font-weight: 800; }
.ib-mypoints__pending {
  margin-top: 6px;
  font-size: 13px;
  color: rgba(255,255,255,.78);
  max-width: 460px;
  line-height: 1.5;
}
.ib-mypoints__decor { position: absolute; inset: 0; pointer-events: none; }
.ib-mypoints__decor-star {
  position: absolute;
  color: rgba(255,255,255,.20);
  font-size: 80px;
  animation: ib-mypoints-float 9s ease-in-out infinite alternate;
}
.ib-mypoints__decor-star--a { top: 18px; right: 60px; animation-delay: 0s; }
.ib-mypoints__decor-star--b { top: 80px; right: 130px; font-size: 32px; animation-delay: 2s; }
.ib-mypoints__decor-star--c { bottom: 20px; right: 28px; font-size: 22px; animation-delay: 4s; }
@keyframes ib-mypoints-float {
  from { transform: translate(0,0) rotate(-6deg); }
  to   { transform: translate(-12px,8px) rotate(8deg); }
}

.ib-mypoints__rules,
.ib-mypoints__history {
  background: #fff;
  border: 1px solid var(--ib-line, #E1E8F2);
  border-radius: 14px;
  padding: 22px 24px;
}
.ib-mypoints__rules h3,
.ib-mypoints__history h3 {
  font-size: 12.5px; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin: 0 0 16px;
}
.ib-mypoints__rules-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 720px) {
  .ib-mypoints__rules-grid { grid-template-columns: minmax(0, 1fr); }
}
.ib-mypoints__rule {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 14px 16px;
  background: linear-gradient(180deg, #FAFBFE, #F0F4FB);
  border: 1px solid rgba(225,232,242,.7);
  border-radius: 12px;
}
.ib-mypoints__rule-icon {
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  background: #fff;
  border-radius: 9px;
  font-size: 18px;
  flex-shrink: 0;
  box-shadow: 0 4px 10px -4px rgba(10,22,40,.12);
}
.ib-mypoints__rule-title {
  font-size: 13.5px; font-weight: 800;
  color: var(--ib-ink, #0A1628);
  margin-bottom: 2px;
}
.ib-mypoints__rule-desc {
  font-size: 12.5px;
  color: var(--ib-sub, #5B6B85);
  line-height: 1.45;
}
.ib-mypoints__rule-desc .amount { color: var(--ib-ink, #0A1628); font-weight: 700; }
.ib-mypoints__redeem {
  margin-top: 14px;
  padding: 12px 16px;
  background: rgba(22,163,74,.08);
  border: 1px solid rgba(22,163,74,.20);
  border-radius: 10px;
  font-size: 13px;
  color: #15803D;
}

.ib-mypoints__log {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column;
}
.ib-mypoints__log-row {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) auto;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px dashed var(--ib-line, #E1E8F2);
  align-items: center;
}
.ib-mypoints__log-row:last-child { border-bottom: 0; }
.ib-mypoints__log-delta {
  font-weight: 800;
  font-size: 16px;
  font-variant-numeric: tabular-nums;
  text-align: center;
  padding: 6px 0;
  border-radius: 8px;
}
.ib-mypoints__log-delta.is-pos { color: #16A34A; background: rgba(22,163,74,.10); }
.ib-mypoints__log-delta.is-neg { color: #DC2626; background: rgba(220,38,38,.10); }
.ib-mypoints__log-reason {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ib-ink, #0A1628);
}
.ib-mypoints__log-when {
  font-size: 11.5px;
  color: var(--ib-sub, #5B6B85);
  margin-top: 2px;
}
.ib-mypoints__log-balance {
  font-size: 13px;
  font-weight: 700;
  color: var(--ib-sub, #5B6B85);
  font-variant-numeric: tabular-nums;
}
.ib-mypoints__empty {
  text-align: center;
  padding: 30px 16px;
  color: var(--ib-sub, #5B6B85);
}
.ib-mypoints__empty-icon { font-size: 38px; margin-bottom: 10px; }

/* ============================================================
   VIEW-ORDER — 2-column with payment rail
   ============================================================ */
.ib-vo__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 18px; flex-wrap: wrap;
  margin-bottom: 18px;
}
.ib-vo__back {
  padding: 10px 18px;
  border: 1px solid rgba(225,232,242,.8);
  border-radius: 12px;
  text-decoration: none;
  background: #fff;
  color: var(--ib-ink, #0A1628);
  font-size: 13px; font-weight: 700;
  transition: background .15s ease;
}
.ib-vo__back:hover { background: var(--ib-soft, #F5F7FF); }

.ib-vo-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 28px;
  align-items: start;
}
@media (max-width: 980px) {
  .ib-vo-grid { grid-template-columns: minmax(0, 1fr); }
}
.ib-vo-main { min-width: 0; }
.ib-vo-rail { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 96px; }
@media (max-width: 980px) { .ib-vo-rail { position: static; } }

/* Payment status card */
.ib-vo-paycard {
  background: #fff;
  border: 1px solid var(--ib-line, #E1E8F2);
  border-radius: 14px;
  padding: 20px 22px;
  box-shadow: 0 10px 24px -16px rgba(10,22,40,.10);
}
.ib-vo-paycard__head {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 8px;
  margin-bottom: 14px;
}
.ib-vo-paycard__eyebrow {
  font-size: 10.5px; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
}
.ib-vo-paycard--paid     .ib-vo-paycard__eyebrow { background: rgba(22,163,74,.12);  color: #15803D; }
.ib-vo-paycard--partial  .ib-vo-paycard__eyebrow { background: rgba(245,158,11,.14); color: #B45309; }
.ib-vo-paycard--unpaid   .ib-vo-paycard__eyebrow { background: rgba(220,38,38,.12);  color: #B91C1C; }
.ib-vo-paycard--overpaid .ib-vo-paycard__eyebrow { background: rgba(99,102,241,.14); color: #4338CA; }
.ib-vo-paycard__total {
  font-size: 22px; font-weight: 900;
  color: var(--ib-ink, #0A1628);
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
}
.ib-vo-paycard__bar {
  position: relative;
  height: 6px;
  background: var(--ib-soft, #F5F7FF);
  border-radius: 999px;
  margin-bottom: 12px;
  overflow: hidden;
}
.ib-vo-paycard__bar span {
  position: absolute; left: 0; top: 0; bottom: 0;
  background: linear-gradient(90deg, #1855CC, #6E5BF0);
  border-radius: 999px;
  transition: width .35s ease;
}
.ib-vo-paycard__row {
  display: flex; justify-content: space-between;
  padding: 6px 0;
  font-size: 13px;
  color: var(--ib-sub, #5B6B85);
  border-bottom: 1px dashed var(--ib-line, #E1E8F2);
}
.ib-vo-paycard__row:last-child { border-bottom: 0; }
.ib-vo-paycard__row strong { color: var(--ib-ink, #0A1628); font-weight: 800; font-variant-numeric: tabular-nums; }
.ib-vo-paycard__row--due strong { color: #DC2626; }
.ib-vo-paycard__row--credit strong { color: #16A34A; }
.ib-vo-paycard__paid {
  font-size: 13px;
  color: #15803D;
  padding: 8px 0;
  font-weight: 700;
}
.ib-vo-paycard__cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%;
  margin-top: 14px;
  padding: 12px 16px;
  background: linear-gradient(120deg, #0F3A99, #1855CC 50%, #6E5BF0);
  color: #fff;
  border-radius: 11px;
  text-decoration: none;
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: .03em;
  box-shadow: 0 14px 28px -10px rgba(24,85,204,.50);
  transition: transform .15s ease, box-shadow .2s ease;
}
.ib-vo-paycard__cta:hover { transform: translateY(-2px); box-shadow: 0 18px 32px -8px rgba(24,85,204,.55); }

/* Payment history */
.ib-vo-payhistory {
  background: #fff;
  border: 1px solid var(--ib-line, #E1E8F2);
  border-radius: 14px;
  padding: 18px 22px;
}
.ib-vo-payhistory h3 {
  font-size: 11.5px; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ib-sub, #5B6B85);
  margin: 0 0 12px;
}
.ib-vo-payhistory ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.ib-vo-payhistory li {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--ib-line, #E1E8F2);
  font-size: 13px;
}
.ib-vo-payhistory li:last-child { border-bottom: 0; padding-bottom: 0; }
.ib-vo-payhistory__method { display: flex; align-items: flex-start; gap: 10px; }
.ib-vo-payhistory__dot {
  width: 8px; height: 8px;
  background: linear-gradient(135deg, #1855CC, #6E5BF0);
  border-radius: 50%;
  margin-top: 6px;
  box-shadow: 0 0 0 3px rgba(24,85,204,.12);
  flex-shrink: 0;
}
.ib-vo-payhistory__method strong { display: block; color: var(--ib-ink, #0A1628); font-weight: 700; font-size: 13px; }
.ib-vo-payhistory__method small { display: block; font-size: 11.5px; color: var(--ib-sub, #5B6B85); }
.ib-vo-payhistory__method .ref { font-family: ui-monospace, "SF Mono", Menlo, monospace; }
.ib-vo-payhistory__amt {
  font-weight: 800;
  color: var(--ib-ink, #0A1628);
  font-variant-numeric: tabular-nums;
}

/* Actions stack */
.ib-vo-actions { display: flex; flex-direction: column; gap: 8px; }
.ib-vo-action {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid var(--ib-line, #E1E8F2);
  border-radius: 11px;
  color: var(--ib-ink, #0A1628);
  text-decoration: none;
  font-size: 13.5px;
  font-weight: 700;
  transition: border-color .15s ease, transform .15s ease, color .15s ease;
}
.ib-vo-action:hover {
  border-color: rgba(24,85,204,.30);
  color: var(--ib-primary, #1855CC);
  transform: translateX(2px);
}
.ib-vo-action svg { color: var(--ib-primary, #1855CC); flex-shrink: 0; }

/* Order again button (LEFT column) */
.ib-vo-orderagain-row { margin-top: 20px; }
.ib-vo-orderagain {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 20px;
  background: #fff;
  border: 1.5px solid var(--ib-primary, #1855CC);
  color: var(--ib-primary, #1855CC);
  border-radius: 11px;
  text-decoration: none;
  font-size: 13.5px;
  font-weight: 800;
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.ib-vo-orderagain:hover {
  background: var(--ib-primary, #1855CC);
  color: #fff;
  transform: translateY(-1px);
}

/* ============================================================
   CART / CHECKOUT — points redemption widget
   ============================================================ */
.ib-redeem {
  background: linear-gradient(135deg, #FFF7E8 0%, #FFFAF0 100%);
  border: 1px solid #F2D584;
  border-radius: 13px;
  padding: 14px 16px;
  margin: 14px 0;
}
.ib-redeem--off {
  background: var(--ib-soft, #F5F7FF);
  border-color: var(--ib-line, #E1E8F2);
  color: var(--ib-sub, #5B6B85);
  font-size: 12.5px;
}
.ib-redeem__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.ib-redeem__eyebrow {
  font-size: 11px; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  color: #B45309;
  margin-bottom: 4px;
}
.ib-redeem__balance { font-size: 12.5px; color: #92400E; line-height: 1.4; }
.ib-redeem__balance strong { color: #4A2710; font-weight: 800; }
.ib-redeem__toggle {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12.5px;
  font-weight: 700;
  color: #4A2710;
  cursor: pointer;
  user-select: none;
}
.ib-redeem__toggle input { width: 16px; height: 16px; accent-color: #B45309; }
.ib-redeem__body {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed rgba(180,83,9,.3);
}
.ib-redeem__slider-row {
  display: flex; align-items: center; gap: 10px;
  flex-wrap: wrap;
}
.ib-redeem__slider-row input[type="range"] {
  flex: 1;
  min-width: 160px;
  accent-color: #B45309;
}
.ib-redeem__input {
  width: 90px;
  padding: 8px 10px;
  border: 1.5px solid rgba(180,83,9,.30);
  border-radius: 8px;
  background: #fff;
  font-size: 13px;
  font-weight: 700;
  color: #4A2710;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.ib-redeem__input:focus { outline: 0; border-color: #B45309; box-shadow: 0 0 0 3px rgba(180,83,9,.20); }
.ib-redeem__apply {
  padding: 9px 16px;
  background: linear-gradient(120deg, #B45309, #E89F4D);
  color: #fff;
  border: 0;
  border-radius: 8px;
  font-size: 12.5px; font-weight: 800;
  cursor: pointer;
  transition: transform .15s ease;
}
.ib-redeem__apply:hover { transform: translateY(-1px); }
.ib-redeem__apply:disabled { opacity: .6; cursor: wait; transform: none; }
.ib-redeem__hint {
  margin-top: 8px;
  font-size: 12.5px;
  color: #92400E;
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.ib-redeem__hint strong { color: #4A2710; font-weight: 800; }
.ib-redeem__clear {
  font-size: 11.5px;
  background: none;
  border: 0;
  color: #B45309;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ib-redeem__clear:hover { color: #4A2710; }

/* ============================================================
 *  COMPARATEUR — card toggle + comparison table
 * ============================================================ */
.ib-product-card__actions { display: flex; flex-direction: column; gap: 6px; position: relative; z-index: 2; }
.ib-product-card__compare {
  width: 30px; height: 30px;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  color: var(--ib-sub);
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ib-product-card__compare:hover {
  color: var(--ib-primary);
  border-color: var(--ib-primary);
  background: #EEF3FF;
  transform: scale(1.12);
}
.ib-product-card__compare.is-active {
  color: #fff;
  border-color: var(--ib-primary);
  background: var(--ib-primary);
}

.ib-compare { margin-top: 8px; }
.ib-compare__loading { padding: 48px 0; text-align: center; color: var(--ib-sub); font-weight: 600; }
.ib-compare__bar {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px;
}
.ib-compare__bar-count { font-weight: 700; color: var(--ib-ink); }
.ib-compare__clear-btn {
  background: none; border: 0; padding: 0;
  color: var(--ib-primary); font: inherit; font-weight: 700;
  cursor: pointer; text-decoration: underline; text-underline-offset: 2px;
}
.ib-compare__clear-btn:hover { opacity: 0.75; }

.ib-compare__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ib-compare__table {
  width: 100%; border-collapse: collapse;
  min-width: 520px;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md);
  overflow: hidden;
}
.ib-compare__table th,
.ib-compare__table td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--ib-line);
  text-align: left;
  vertical-align: top;
  font-size: 14px;
}
.ib-compare__table tbody tr:last-child th,
.ib-compare__table tbody tr:last-child td { border-bottom: 0; }
.ib-compare__rowhead {
  width: 180px;
  background: #FAFBFC;
  color: var(--ib-sub);
  font-weight: 700;
  white-space: nowrap;
}
.ib-compare__corner { background: #fff; }
.ib-compare__table tbody tr:nth-child(even) td,
.ib-compare__table tbody tr:nth-child(even) .ib-compare__rowhead { background: #FCFDFE; }

.ib-compare__col { position: relative; min-width: 200px; text-align: center !important; }
.ib-compare__remove {
  position: absolute; top: 8px; right: 8px;
  width: 24px; height: 24px;
  border: 1px solid var(--ib-line); border-radius: 50%;
  background: #fff; color: var(--ib-sub);
  font-size: 16px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.ib-compare__remove:hover { color: var(--ib-pink); border-color: var(--ib-pink); }
.ib-compare__prod { display: block; text-decoration: none; color: var(--ib-ink); }
.ib-compare__thumb {
  display: flex; align-items: center; justify-content: center;
  height: 96px; margin-bottom: 10px;
}
.ib-compare__thumb img { max-width: 100%; max-height: 96px; object-fit: contain; }
.ib-compare__name { display: block; font-weight: 700; line-height: 1.3; }
.ib-compare__price { margin: 8px 0; font-weight: 800; color: var(--ib-ink); }
.ib-compare__price del { color: var(--ib-sub); font-weight: 500; font-size: 12px; }
.ib-compare__cta {
  display: inline-block; margin-top: 4px;
  padding: 8px 16px; border-radius: 999px;
  background: var(--ib-primary); color: #fff;
  font-size: 13px; font-weight: 700; text-decoration: none;
  transition: opacity 0.2s ease;
}
.ib-compare__cta:hover { opacity: 0.9; }
.ib-compare__stock { font-weight: 700; }
.ib-compare__stock.is-in  { color: #047857; }
.ib-compare__stock.is-out { color: #B91C1C; }
.ib-compare__rating { color: var(--ib-ink); font-weight: 700; }
.ib-compare__rating small { color: var(--ib-sub); font-weight: 500; }

@media (max-width: 768px) {
  .ib-compare__rowhead { width: 120px; }
  .ib-compare__table th, .ib-compare__table td { padding: 11px 12px; }
}

/* ============================================================
 *  REPRISE — trade-in request page
 * ============================================================ */
.ib-tradein {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 28px;
  align-items: start;
  max-width: 1080px;
  margin: 0 auto;
}
.ib-tradein__aside {
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-lg, 12px);
  padding: 24px;
  position: sticky; top: 96px;
}
.ib-tradein__aside-title { font-size: 17px; font-weight: 800; margin: 0 0 16px; color: var(--ib-ink); }
.ib-tradein__steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.ib-tradein__steps li { display: flex; gap: 12px; align-items: flex-start; }
.ib-tradein__step-num {
  flex: none; width: 26px; height: 26px; border-radius: 50%;
  background: var(--ib-primary); color: #fff;
  font-size: 13px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
}
.ib-tradein__steps strong { display: block; font-size: 14px; color: var(--ib-ink); }
.ib-tradein__steps small { color: var(--ib-sub); font-size: 12.5px; line-height: 1.4; }
.ib-tradein__trust {
  margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--ib-line);
  display: flex; gap: 10px; align-items: flex-start; color: var(--ib-sub);
}
.ib-tradein__trust p { margin: 0; font-size: 12.5px; line-height: 1.45; }
.ib-tradein__trust svg { color: var(--ib-primary); flex: none; }

.ib-tradein__form {
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-lg, 12px);
  padding: 28px;
}
.ib-tradein__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ib-tradein__field { margin-bottom: 18px; display: flex; flex-direction: column; gap: 7px; }
.ib-tradein__field label,
.ib-tradein__label { font-size: 13px; font-weight: 700; color: var(--ib-ink); }
.ib-tradein__field input,
.ib-tradein__field select,
.ib-tradein__field textarea {
  width: 100%;
  padding: 11px 13px;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md, 8px);
  font: inherit; color: var(--ib-ink);
  background: #fff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.ib-tradein__field input:focus,
.ib-tradein__field select:focus,
.ib-tradein__field textarea:focus {
  outline: none;
  border-color: var(--ib-primary);
  box-shadow: 0 0 0 3px rgba(24,85,204,0.12);
}
.ib-tradein__conds { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ib-tradein__cond { position: relative; cursor: pointer; }
.ib-tradein__cond input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.ib-tradein__cond-body {
  display: block;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md, 8px);
  padding: 12px 14px;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.ib-tradein__cond-body strong { display: block; font-size: 14px; color: var(--ib-ink); }
.ib-tradein__cond-body small { color: var(--ib-sub); font-size: 12px; line-height: 1.35; }
.ib-tradein__cond input:checked + .ib-tradein__cond-body {
  border-color: var(--ib-primary);
  background: #EEF3FF;
  box-shadow: 0 0 0 1px var(--ib-primary);
}
.ib-tradein__cond input:focus-visible + .ib-tradein__cond-body { box-shadow: 0 0 0 3px rgba(24,85,204,0.18); }
.ib-tradein__sep { border: 0; border-top: 1px solid var(--ib-line); margin: 6px 0 20px; }
.ib-tradein__submit {
  width: 100%;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 20px;
  background: var(--ib-primary); color: #fff;
  border: 0; border-radius: 999px;
  font: inherit; font-weight: 800; cursor: pointer;
  transition: opacity 0.2s ease, transform 0.15s ease;
}
.ib-tradein__submit:hover { opacity: 0.93; }
.ib-tradein__submit:disabled { opacity: 0.6; cursor: progress; }
.ib-tradein__msg { margin-top: 14px; font-size: 13.5px; font-weight: 600; }
.ib-tradein__msg.is-error { color: #B91C1C; }

.ib-tradein__done {
  grid-column: 1 / -1;
  text-align: center;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-lg, 12px);
  padding: 48px 28px;
  max-width: 560px; margin: 0 auto;
}
.ib-tradein__done-icon {
  width: 64px; height: 64px; margin: 0 auto 18px;
  border-radius: 50%;
  background: #ECFDF5; color: #047857;
  display: flex; align-items: center; justify-content: center;
}
.ib-tradein__done h2 { margin: 0 0 8px; font-size: 22px; color: var(--ib-ink); }
.ib-tradein__done p { color: var(--ib-sub); margin: 0 0 22px; }

@media (max-width: 880px) {
  .ib-tradein { grid-template-columns: 1fr; }
  .ib-tradein__aside { position: static; order: 2; }
}
@media (max-width: 560px) {
  .ib-tradein__row,
  .ib-tradein__conds { grid-template-columns: 1fr; }
  .ib-tradein__form { padding: 20px; }
}

/* ============================================================
 *  FAQ — grouped accordions + jump nav + search
 * ============================================================ */
.ib-faq__search {
  display: flex; align-items: center; gap: 10px;
  max-width: 480px; margin: 22px auto 0;
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: 999px;
  padding: 4px 18px;
  color: var(--ib-sub);
}
.ib-faq__search input {
  flex: 1; border: 0; background: none; outline: none;
  font: inherit; color: var(--ib-ink);
  padding: 11px 0;
}
.ib-faq {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 32px;
  align-items: start;
  max-width: 1000px;
  margin: 0 auto;
}
.ib-faq__nav { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 4px; }
.ib-faq__nav-link {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  border-radius: var(--ib-r-md, 8px);
  color: var(--ib-sub); text-decoration: none; font-weight: 600; font-size: 14px;
  transition: background 0.2s ease, color 0.2s ease;
}
.ib-faq__nav-link:hover { background: #EEF3FF; color: var(--ib-primary); }
.ib-faq__nav-link svg { flex: none; }

.ib-faq__body { min-width: 0; }
.ib-faq__group { margin-bottom: 34px; scroll-margin-top: 90px; }
.ib-faq__group-title {
  display: flex; align-items: center; gap: 10px;
  font-size: 18px; font-weight: 800; color: var(--ib-ink);
  margin: 0 0 14px;
}
.ib-faq__group-title svg { color: var(--ib-primary); }
.ib-faq__item {
  background: #fff;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-md, 8px);
  margin-bottom: 10px;
  overflow: hidden;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.ib-faq__item.is-open { border-color: var(--ib-primary); box-shadow: 0 4px 18px rgba(24,85,204,0.08); }
.ib-faq__q {
  width: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 16px 18px;
  background: none; border: 0; cursor: pointer;
  font: inherit; font-weight: 700; font-size: 15px; text-align: left;
  color: var(--ib-ink);
}
.ib-faq__chevron {
  flex: none; color: var(--ib-sub);
  display: inline-flex;
  transition: transform 0.25s ease, color 0.2s ease;
}
.ib-faq__item.is-open .ib-faq__chevron { transform: rotate(180deg); color: var(--ib-primary); }
.ib-faq__a {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.28s ease;
}
.ib-faq__item.is-open .ib-faq__a { grid-template-rows: 1fr; }
.ib-faq__a-inner { overflow: hidden; }
.ib-faq__a-inner > * { margin: 0 18px 16px; color: var(--ib-sub); line-height: 1.55; font-size: 14.5px; }
.ib-faq__a-inner a { color: var(--ib-primary); font-weight: 600; }

.ib-faq__noresults { text-align: center; color: var(--ib-sub); padding: 32px 0; }
.ib-faq__cta {
  text-align: center;
  background: #F4F8FF;
  border: 1px solid var(--ib-line);
  border-radius: var(--ib-r-lg, 12px);
  padding: 30px 24px;
  margin-top: 8px;
}
.ib-faq__cta h3 { margin: 0 0 6px; font-size: 18px; color: var(--ib-ink); }
.ib-faq__cta p { margin: 0 0 18px; color: var(--ib-sub); }

/* Reduced-motion: don't animate the accordion grid. */
@media (prefers-reduced-motion: reduce) {
  .ib-faq__a { transition: none; }
  .ib-faq__chevron { transition: none; }
}
@media (max-width: 880px) {
  .ib-faq { grid-template-columns: 1fr; }
  .ib-faq__nav {
    position: static; flex-direction: row; flex-wrap: wrap;
    gap: 8px; margin-bottom: 8px;
  }
  .ib-faq__nav-link { background: #fff; border: 1px solid var(--ib-line); }
}
