@charset "UTF-8";
/*!
 * BDS Shop — bds.css (custom layer)
 * Source maquettes UI (référence design) :
 * - Coordonnées : :contentReference[oaicite:0]{index=0}
 * - Panier : :contentReference[oaicite:1]{index=1}
 * - Catalogue : :contentReference[oaicite:2]{index=2}
 * - Accueil : :contentReference[oaicite:3]{index=3}
 *
 * Objectif :
 * - Compléter Tailwind (ou fallback si Tailwind absent/partiel)
 * - Unifier WordPress + WooCommerce (boutons, formulaires, notices, cartes, dialogues)
 * - Accessibilité “belt & suspenders” (focus, contrastes, reduced motion, SR-only)
 *
 * Notes :
 * - Spécificité volontairement basse via :where() pour éviter les guerres CSS.
 * - Les “components” reprennent les classes déjà utilisées dans tes maquettes :
 *   .btn-grad .gpanel .hairline .badge .glass .shadow-glow etc.
 */

/* ==========================================================================
   0) TOKENS / CSS VARIABLES
   ========================================================================== */

:root{
  /* Brand */
  --bds-violetDark:#563a9c;
  --bds-violet:#6a42c2;
  --bds-violetLight:#8b5dff;
  --bds-orange:#FA7921;
  --bds-beige:#fff7d1;

  /* Neutrals */
  --bds-ink:#0f0f12;
  --bds-text:#111827; /* proche neutral-900 */
  --bds-muted:#6b7280; /* neutral-500/600 */
  --bds-border:rgba(17,17,17,.12);
  --bds-border-soft:rgba(17,17,17,.08);
  --bds-bg:#ffffff;
  --bds-bg-soft:rgba(249,250,251, .9); /* neutral-50-ish */

  /* Radii */
  --bds-r-sm:.75rem;  /* ~rounded-xl */
  --bds-r-md:1rem;
  --bds-r-lg:1.25rem; /* ~rounded-2xl */

  /* Shadows */
  --bds-shadow-soft:0 8px 30px rgba(0,0,0,.06);
  --bds-shadow-glow:0 0 0 1px rgba(13,13,13,.06), 0 12px 35px rgba(106,66,194,.15);

  /* Focus */
  --bds-focus:0 0 0 3px rgba(106,66,194,.35);

  /* Gradients */
  --bds-grad:linear-gradient(90deg, var(--bds-violet) 0%, var(--bds-violetLight) 40%, var(--bds-orange) 100%);
  --bds-grad-border:linear-gradient(120deg, var(--bds-violet), var(--bds-orange));

  /* Layout */
  --bds-container:80rem; /* 7xl */
  --bds-gutter:1rem;

  /* Motion */
  --bds-ease:cubic-bezier(.2,.8,.2,1);
  --bds-dur-fast:150ms;
  --bds-dur:250ms;
}

/* ==========================================================================
   1) FONTS (fallback safe)
   ========================================================================== */

/* Si tes fontes sont déjà globales ailleurs, ces @font-face ne cassent rien.
   Chemin attendu : /assets/fonts/… (comme tes maquettes) */
@font-face{
  font-family:"Silka";
  font-style:normal;
  font-weight:300;
  font-display:swap;
  src:local("Silka Light"), url("/assets/fonts/Silka-Light.otf") format("opentype");
}
@font-face{
  font-family:"Silka";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:local("Silka Regular"), url("/assets/fonts/Silka-Regular.otf") format("opentype");
}
@font-face{
  font-family:"Silka";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:local("Silka Bold"), url("/assets/fonts/Silka-Bold.otf") format("opentype");
}
@font-face{
  font-family:"Silka";
  font-style:normal;
  font-weight:900;
  font-display:swap;
  src:local("Silka Black"), url("/assets/fonts/Silka-Black.otf") format("opentype");
}

/* ==========================================================================
   2) BASE / RESET (light, WP-friendly)
   ========================================================================== */

*,
*::before,
*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }

body{
  margin:0;
  color:var(--bds-text);
  background:var(--bds-bg);
  font-family:"Silka", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  line-height:1.5;
}

img, svg, video, canvas{ max-width:100%; height:auto; }
svg{ vertical-align:middle; }

a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:none; }

button, input, select, textarea{
  font:inherit;
  color:inherit;
}

:where(button){ cursor:pointer; }
:where(button[disabled]){ cursor:not-allowed; }

::selection{
  background:rgba(139,93,255,.25);
}

:focus-visible{
  outline:3px solid var(--bds-violet);
  outline-offset:2px;
}

/* Respect du “reduced motion” */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:1ms !important;
    animation-iteration-count:1 !important;
    transition-duration:1ms !important;
    scroll-behavior:auto !important;
  }
}

/* ==========================================================================
   3) ACCESSIBILITY HELPERS
   ========================================================================== */

.sr-only{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

.sr-only.focus\:not-sr-only:focus,
.sr-only.focus\:not-sr-only:focus-visible{
  position:fixed !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  clip:auto !important;
  white-space:normal !important;
  z-index:9999 !important;
}

/* ==========================================================================
   4) LAYOUT PRIMITIVES
   ========================================================================== */

.bds-container{
  width:100%;
  max-width:var(--bds-container);
  margin-inline:auto;
  padding-inline:var(--bds-gutter);
}

@media (min-width:640px){ :root{ --bds-gutter:1.5rem; } }
@media (min-width:1024px){ :root{ --bds-gutter:2rem; } }

/* Sticky header blur fallback (si Tailwind absent) */
.bds-sticky{
  position:sticky;
  top:0;
  z-index:40;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  background:rgba(255,255,255,.82);
  border-bottom:1px solid rgba(229,231,235,.7);
}

/* ==========================================================================
   5) COMPONENTS — BDS (maquettes)
   ========================================================================== */

/* 5.1 Buttons */
.btn-grad{
  background:var(--bds-grad);
  color:#fff;
}
.btn-grad:hover{
  filter:saturate(1.05) brightness(1.03);
}
.btn-grad:active{
  transform:translateY(1px);
}
.btn-grad:focus-visible{
  box-shadow:var(--bds-focus);
}

.bds-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.75rem 1.25rem;
  border-radius:999px;
  border:1px solid rgba(17,17,17,.18);
  background:#fff;
  transition:transform var(--bds-dur-fast) var(--bds-ease),
             background var(--bds-dur-fast) var(--bds-ease),
             filter var(--bds-dur-fast) var(--bds-ease),
             box-shadow var(--bds-dur-fast) var(--bds-ease);
}
.bds-btn:hover{ background:rgba(249,250,251,.9); }
.bds-btn:focus-visible{ box-shadow:var(--bds-focus); }
.bds-btn--primary{
  border-color:transparent;
  background:var(--bds-grad);
  color:#fff;
  box-shadow:var(--bds-shadow-glow);
}
.bds-btn--primary:hover{ filter:saturate(1.05) brightness(1.03); }
.bds-btn--danger{
  border-color:rgba(220,38,38,.35);
  color:#b91c1c;
}
.bds-btn--danger:hover{ background:rgba(254,242,242,.9); }

.bds-btn[disabled],
.bds-btn:disabled{
  opacity:.45;
  box-shadow:none;
  transform:none;
}

/* 5.2 Panels / Cards */
.gpanel{
  position:relative;
  background:#fff;
  border-radius:var(--bds-r-md);
  border:1px solid var(--bds-border-soft);
}
.gpanel::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:var(--bds-grad-border);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:.12;
  pointer-events:none;
}

.hairline{
  box-shadow:inset 0 0 0 1px rgba(17,17,17,.08);
}

.shadow-glow{ box-shadow:var(--bds-shadow-glow); }
.shadow-card{ box-shadow:var(--bds-shadow-soft); }

.glass{
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  background:linear-gradient(180deg, rgba(255,255,255,.85), rgba(255,255,255,.6));
}

/* 5.3 Badge / Chips */
.badge{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-weight:700;
  font-size:.7rem;
  padding:.35rem .6rem;
  border-radius:999px;
  line-height:1;
}

.filter-chip{
  border:1px solid rgba(17,17,17,.16);
  background:#fff;
  border-radius:999px;
  padding:.35rem .75rem;
  font-size:.875rem;
  line-height:1.25rem;
  transition:background var(--bds-dur-fast) var(--bds-ease),
             color var(--bds-dur-fast) var(--bds-ease),
             border-color var(--bds-dur-fast) var(--bds-ease);
}
.filter-chip[aria-pressed="true"]{
  background:rgba(106,66,194,.12);
  color:var(--bds-violet);
  border-color:rgba(106,66,194,.35);
}
.filter-chip:focus-visible{ box-shadow:var(--bds-focus); }

/* 5.4 “Icons” sizing helper (lucide) */
.icon{
  width:1.1em;
  height:1.1em;
  display:inline-block;
  vertical-align:-.15em;
}

/* 5.5 Progress bar animation (HelloAsso interstitiel) */
@keyframes bds-grow{ to{ width:100%; } }
.bds-progress{
  height:.375rem;
  width:100%;
  max-width:20rem;
  overflow:hidden;
  border-radius:999px;
  background:rgba(17,17,17,.07);
}
.bds-progress > span{
  display:block;
  height:100%;
  width:0;
  background:var(--bds-violet);
  animation:bds-grow 1500ms linear forwards;
}

/* 5.6 Fun animations used in hero/cards */
@keyframes bds-floaty{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
@keyframes bds-glitter{ 0%,100%{opacity:.35} 50%{opacity:1} }
@keyframes bds-pulseSoft{
  0%,100%{ box-shadow:0 0 0 0 rgba(106,66,194,.35); }
  70%{ box-shadow:0 0 0 16px rgba(106,66,194,0); }
}
.animate-floaty{ animation:bds-floaty 6s ease-in-out infinite; }
.animate-glitter{ animation:bds-glitter 2.2s ease-in-out infinite; }
.animate-pulseSoft{ animation:bds-pulseSoft 2.4s ease-out infinite; }

/* ==========================================================================
   6) FORMS (WP + Woo)
   ========================================================================== */

/* Inputs “dumbproof” */
:where(input[type="text"],
       input[type="email"],
       input[type="tel"],
       input[type="search"],
       input[type="number"],
       input[type="password"],
       input[type="url"],
       select,
       textarea){
  width:100%;
  max-width:100%;
  border-radius:var(--bds-r-sm);
  border:1px solid rgba(17,17,17,.22);
  background:#fff;
  padding:.6rem .75rem;
  transition:border-color var(--bds-dur-fast) var(--bds-ease),
             box-shadow var(--bds-dur-fast) var(--bds-ease),
             background var(--bds-dur-fast) var(--bds-ease);
}

:where(select){ padding-right:2.25rem; }

:where(input::placeholder, textarea::placeholder){
  color:rgba(107,114,128,.9);
}

:where(input:focus, select:focus, textarea:focus){
  outline:none;
  border-color:rgba(106,66,194,.55);
  box-shadow:var(--bds-focus);
}

:where(input[disabled], select[disabled], textarea[disabled]){
  background:rgba(243,244,246,.9);
  color:rgba(107,114,128,.9);
}

:where(label){
  display:inline-block;
}

.bds-form-hint{
  font-size:.8125rem;
  color:var(--bds-muted);
  margin-top:.25rem;
}

.bds-field-error{
  border-color:rgba(220,38,38,.55) !important;
  background:rgba(254,242,242,.7) !important;
}
.bds-error-box{
  border:1px solid rgba(220,38,38,.25);
  background:rgba(254,242,242,.85);
  color:#991b1b;
  border-radius:var(--bds-r-sm);
  padding:.75rem 1rem;
  font-size:.9rem;
}

/* Checkboxes / radios (fallback) */
:where(input[type="checkbox"], input[type="radio"]){
  accent-color:var(--bds-violet);
}

/* ==========================================================================
   7) DIALOG / MODAL (cartDialog, miniCart)
   ========================================================================== */

dialog{
  border:none;
  padding:0;
  border-radius:var(--bds-r-lg);
  box-shadow:0 30px 80px rgba(0,0,0,.25);
}
dialog::backdrop{
  background:rgba(0,0,0,.4);
}

.bds-dialog{
  width:min(92vw, 40rem);
  border-radius:var(--bds-r-lg);
  overflow:hidden;
}

/* ==========================================================================
   8) WORDPRESS CORE (minimal)
   ========================================================================== */

.wp-site-blocks{ min-height:100dvh; }
.alignwide{ margin-inline:auto; max-width:1100px; }
.alignfull{ margin-inline:calc(50% - 50vw); max-width:100vw; width:100vw; }

/* Gutenberg images inside content */
.entry-content :where(img){ border-radius:var(--bds-r-sm); }

/* ==========================================================================
   9) WOOCOMMERCE — GLOBAL
   ========================================================================== */

.woocommerce :where(.woocommerce-breadcrumb){
  font-size:.875rem;
  color:var(--bds-muted);
  margin:0 0 1rem 0;
}

.woocommerce :where(.price){
  font-weight:900;
}

.woocommerce :where(.onsale),
.woocommerce span.onsale{
  background:var(--bds-violet);
  color:#fff;
  border-radius:999px;
  padding:.35rem .65rem;
  font-weight:800;
  font-size:.75rem;
  line-height:1;
  min-height:auto;
}

/* Notices */
.woocommerce :where(.woocommerce-message,
                    .woocommerce-info,
                    .woocommerce-error){
  border-radius:var(--bds-r-sm);
  padding:1rem 1rem;
  margin:0 0 1rem 0;
  border:1px solid rgba(17,17,17,.12);
  background:rgba(249,250,251,.9);
}
.woocommerce :where(.woocommerce-message){
  border-color:rgba(34,197,94,.28);
  background:rgba(240,253,244,.9);
}
.woocommerce :where(.woocommerce-info){
  border-color:rgba(59,130,246,.22);
  background:rgba(239,246,255,.9);
}
.woocommerce :where(.woocommerce-error){
  border-color:rgba(220,38,38,.25);
  background:rgba(254,242,242,.85);
}
.woocommerce :where(.woocommerce-error li){ margin:0; }

/* Buttons mapping */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.75rem 1.25rem;
  border-radius:999px;
  border:1px solid transparent;
  background:var(--bds-grad);
  color:#fff;
  font-weight:800;
  box-shadow:var(--bds-shadow-glow);
  transition:filter var(--bds-dur-fast) var(--bds-ease),
             transform var(--bds-dur-fast) var(--bds-ease);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover{
  filter:saturate(1.05) brightness(1.03);
}
.woocommerce a.button:active,
.woocommerce button.button:active,
.woocommerce input.button:active{
  transform:translateY(1px);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt{
  background:var(--bds-grad);
}

/* Secondary buttons */
.woocommerce a.button.wc-backward,
.woocommerce .button.wc-backward{
  background:#fff;
  color:var(--bds-text);
  border-color:rgba(17,17,17,.18);
  box-shadow:none;
}
.woocommerce a.button.wc-backward:hover{ background:rgba(249,250,251,.9); }

/* Disabled */
.woocommerce a.button:disabled,
.woocommerce button.button:disabled,
.woocommerce input.button:disabled{
  opacity:.45;
  filter:none;
  transform:none;
  box-shadow:none;
}

/* Quantity */
.woocommerce :where(.quantity){
  display:inline-flex;
  align-items:center;
  border:1px solid rgba(17,17,17,.22);
  border-radius:999px;
  overflow:hidden;
  background:#fff;
}
.woocommerce :where(.quantity .qty){
  width:4rem;
  border:none;
  border-radius:0;
  padding:.6rem .75rem;
  text-align:center;
  box-shadow:none;
}
.woocommerce :where(.quantity button){
  border:none;
  background:transparent;
  padding:.6rem .9rem;
}
.woocommerce :where(.quantity button:hover){
  background:rgba(249,250,251,.9);
}

/* ==========================================================================
   10) WOOCOMMERCE — SHOP / ARCHIVE (catalogue)
   ========================================================================== */

.woocommerce :where(ul.products){
  display:grid;
  grid-template-columns:repeat(1, minmax(0,1fr));
  gap:1.25rem;
  margin:0;
  padding:0;
}
@media (min-width:640px){
  .woocommerce :where(ul.products){ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (min-width:1024px){
  .woocommerce :where(ul.products){ grid-template-columns:repeat(3, minmax(0,1fr)); }
}

.woocommerce :where(ul.products li.product){
  list-style:none;
  margin:0;
  padding:0;
}
.woocommerce :where(ul.products li.product > a){
  display:block;
}

/* Card styling like .gpanel */
.woocommerce :where(ul.products li.product .woocommerce-loop-product__link){
  position:relative;
  display:block;
  border-radius:var(--bds-r-md);
  border:1px solid var(--bds-border-soft);
  background:#fff;
  overflow:hidden;
}
.woocommerce :where(ul.products li.product .woocommerce-loop-product__link)::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:var(--bds-grad-border);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:.12;
  pointer-events:none;
}

.woocommerce :where(ul.products li.product img){
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-fit:cover;
  transition:transform var(--bds-dur) var(--bds-ease);
}
.woocommerce :where(ul.products li.product:hover img){
  transform:scale(1.02);
}

.woocommerce :where(ul.products li.product h2,
                    ul.products li.product .woocommerce-loop-product__title){
  font-weight:900;
  font-size:1rem;
  margin:.9rem 1rem .25rem 1rem;
  line-height:1.2;
}

.woocommerce :where(ul.products li.product .price){
  margin:0 1rem 1rem 1rem;
  font-size:1.25rem;
}

/* Add to cart button on cards */
.woocommerce :where(ul.products li.product a.button){
  margin:0 1rem 1rem 1rem;
  width:calc(100% - 2rem);
}

/* Pagination */
.woocommerce :where(.woocommerce-pagination ul.page-numbers){
  display:flex;
  gap:.5rem;
  justify-content:center;
  align-items:center;
  list-style:none;
  margin:2rem 0 0;
  padding:0;
}
.woocommerce :where(.woocommerce-pagination ul.page-numbers li){
  margin:0;
}
.woocommerce :where(.woocommerce-pagination a,
                    .woocommerce-pagination span){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:2.5rem;
  height:2.5rem;
  border-radius:999px;
  border:1px solid rgba(17,17,17,.18);
  background:#fff;
}
.woocommerce :where(.woocommerce-pagination span.current){
  background:rgba(106,66,194,.12);
  border-color:rgba(106,66,194,.35);
  color:var(--bds-violet);
  font-weight:800;
}

/* ==========================================================================
   11) WOOCOMMERCE — SINGLE PRODUCT
   ========================================================================== */

.woocommerce :where(div.product){
  display:grid;
  gap:2rem;
}
@media (min-width:1024px){
  .woocommerce :where(div.product){
    grid-template-columns:1fr 1fr;
    align-items:start;
  }
}

.woocommerce :where(div.product .woocommerce-product-gallery){
  border-radius:var(--bds-r-md);
}
.woocommerce :where(div.product .woocommerce-product-gallery img){
  border-radius:var(--bds-r-md);
}

.woocommerce :where(.product_title){
  font-weight:900;
  line-height:1.05;
  letter-spacing:-.02em;
  margin:0 0 .5rem;
}

.woocommerce :where(div.product .summary){
  border:1px solid var(--bds-border-soft);
  border-radius:var(--bds-r-md);
  background:#fff;
  padding:1.25rem;
  position:relative;
}
.woocommerce :where(div.product .summary)::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:var(--bds-grad-border);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:.12;
  pointer-events:none;
}

.woocommerce :where(div.product p.price){
  font-size:1.75rem;
  margin:.75rem 0 1rem;
}

.woocommerce :where(form.cart){
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  align-items:center;
  margin-top:1rem;
}

.woocommerce :where(.woocommerce-product-details__short-description){
  color:rgba(17,17,17,.85);
}

/* Tabs */
.woocommerce :where(.woocommerce-tabs ul.tabs){
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  list-style:none;
  padding:0;
  margin:2rem 0 0;
  border-bottom:1px solid rgba(229,231,235,.8);
}
.woocommerce :where(.woocommerce-tabs ul.tabs li){
  margin:0;
}
.woocommerce :where(.woocommerce-tabs ul.tabs li a){
  display:inline-flex;
  padding:.6rem .9rem;
  border-radius:999px;
  border:1px solid rgba(17,17,17,.18);
  background:#fff;
  font-weight:800;
}
.woocommerce :where(.woocommerce-tabs ul.tabs li.active a){
  background:rgba(106,66,194,.12);
  border-color:rgba(106,66,194,.35);
  color:var(--bds-violet);
}

.woocommerce :where(.woocommerce-tabs .panel){
  margin:1rem 0 0;
  padding:1rem 0 0;
}

/* Related products */
.woocommerce :where(.related.products, .upsells.products){
  margin-top:2.5rem;
}

/* ==========================================================================
   12) WOOCOMMERCE — CART (panier)
   ========================================================================== */

.woocommerce :where(table.shop_table){
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid var(--bds-border-soft);
  border-radius:var(--bds-r-md);
  overflow:hidden;
  background:#fff;
}
.woocommerce :where(table.shop_table thead th){
  text-align:left;
  font-size:.875rem;
  color:rgba(107,114,128,.95);
  background:rgba(249,250,251,.95);
  padding:.9rem 1rem;
}
.woocommerce :where(table.shop_table td){
  padding:1rem;
  border-top:1px solid rgba(229,231,235,.8);
  vertical-align:middle;
}
.woocommerce :where(table.shop_table .product-thumbnail img){
  width:4rem;
  height:4rem;
  object-fit:cover;
  border-radius:.75rem;
  box-shadow:inset 0 0 0 1px rgba(17,17,17,.08);
}

.woocommerce :where(.cart_totals){
  border:1px solid var(--bds-border-soft);
  border-radius:var(--bds-r-md);
  padding:1.25rem;
  background:#fff;
  position:relative;
}
.woocommerce :where(.cart_totals)::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:var(--bds-grad-border);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:.12;
  pointer-events:none;
}

/* Coupon area */
.woocommerce :where(.coupon){
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
}
.woocommerce :where(.coupon input.input-text){
  flex:1 1 14rem;
}
.woocommerce :where(.coupon button.button){
  white-space:nowrap;
}

/* Remove / restore links */
.woocommerce :where(a.remove){
  color:#b91c1c !important;
  font-weight:900;
}
.woocommerce :where(a.remove:hover){
  background:rgba(254,242,242,.9) !important;
}

/* ==========================================================================
   13) WOOCOMMERCE — CHECKOUT (coordonnées / paiement)
   ========================================================================== */

.woocommerce :where(form.checkout){
  display:block;
}

.woocommerce :where(.woocommerce-checkout .col2-set){
  display:grid;
  gap:1.25rem;
}
@media (min-width:1024px){
  .woocommerce :where(.woocommerce-checkout .col2-set){
    grid-template-columns:1fr 1fr;
    align-items:start;
  }
}

.woocommerce :where(.woocommerce-checkout .woocommerce-billing-fields,
                    .woocommerce-checkout .woocommerce-shipping-fields,
                    .woocommerce-checkout .woocommerce-additional-fields){
  border:1px solid var(--bds-border-soft);
  border-radius:var(--bds-r-md);
  padding:1.25rem;
  background:#fff;
  position:relative;
}
.woocommerce :where(.woocommerce-checkout .woocommerce-billing-fields)::before,
.woocommerce :where(.woocommerce-checkout .woocommerce-shipping-fields)::before,
.woocommerce :where(.woocommerce-checkout .woocommerce-additional-fields)::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:var(--bds-grad-border);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:.12;
  pointer-events:none;
}

.woocommerce :where(.woocommerce-checkout-review-order){
  border:1px solid var(--bds-border-soft);
  border-radius:var(--bds-r-md);
  padding:1.25rem;
  background:#fff;
  position:relative;
}
.woocommerce :where(.woocommerce-checkout-review-order)::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:var(--bds-grad-border);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:.12;
  pointer-events:none;
}

.woocommerce :where(#payment){
  background:transparent;
}
.woocommerce :where(#payment ul.payment_methods){
  border:1px solid rgba(229,231,235,.85);
  border-radius:var(--bds-r-sm);
  padding:.75rem;
  background:rgba(249,250,251,.75);
}
.woocommerce :where(#payment .payment_box){
  border-radius:var(--bds-r-sm);
  border:1px solid rgba(17,17,17,.10);
  background:#fff;
}

/* Place order button full width on mobile */
.woocommerce :where(#place_order){
  width:100%;
}

/* ==========================================================================
   14) WOOCOMMERCE — MY ACCOUNT (bonus)
   ========================================================================== */

.woocommerce :where(.woocommerce-MyAccount-navigation ul){
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
.woocommerce :where(.woocommerce-MyAccount-navigation li){
  margin:0;
}
.woocommerce :where(.woocommerce-MyAccount-navigation a){
  display:inline-flex;
  padding:.6rem .9rem;
  border-radius:999px;
  border:1px solid rgba(17,17,17,.18);
  background:#fff;
  font-weight:800;
}
.woocommerce :where(.woocommerce-MyAccount-navigation .is-active a){
  background:rgba(106,66,194,.12);
  border-color:rgba(106,66,194,.35);
  color:var(--bds-violet);
}

/* ==========================================================================
   15) UTILITIES / SAFE OVERRIDES
   ========================================================================== */

/* Pretty underline helper */
.bds-underline{ text-decoration:underline; text-underline-offset:3px; }

/* Text helpers */
.bds-muted{ color:var(--bds-muted); }
.bds-violet{ color:var(--bds-violet); }
.bds-orange{ color:var(--bds-orange); }

/* Sticky “stepper” like your progress section (fallback) */
.bds-stepper{
  border-bottom:1px solid rgba(229,231,235,.7);
  background:rgba(249,250,251,.7);
}
.bds-stepper ol{
  display:flex;
  gap:.75rem;
  align-items:center;
  font-size:.9rem;
  padding:1rem 0;
  margin:0;
  list-style:none;
}

/* ==========================================================================
   16) PRINT (clean)
   ========================================================================== */

@media print{
  header, footer, dialog, #toast, .no-print{ display:none !important; }
  body{ background:#fff !important; color:#000 !important; }
  .gpanel, .hairline, table.shop_table{
    box-shadow:none !important;
    border-color:#000 !important;
  }
}
