/* S2M Boutique — styles communs + 4 variantes. Le mouvement explique (arrivée, ajout au panier, progression), jamais décoratif seul. */
:root{--s2m-radius:2px;--s2m-ease:cubic-bezier(.2,.7,.2,1);--s2m-fast:200ms;--s2m-med:480ms;
  --c-bg:var(--wp--preset--color--base);--c-ink:var(--wp--preset--color--contrast);--c-brand:var(--wp--preset--color--brand);
  --c-accent:var(--wp--preset--color--accent);--c-surface:var(--wp--preset--color--surface);--c-muted:var(--wp--preset--color--muted);--c-line:var(--wp--preset--color--line);
  --f-display:var(--wp--preset--font-family--display);--f-text:var(--wp--preset--font-family--text)}
html{scroll-behavior:auto;overflow-x:clip}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{max-width:100%;height:auto}
::selection{background:var(--c-brand);color:var(--c-bg)}
:focus-visible{outline:2px solid var(--c-brand);outline-offset:3px}
.wp-site-blocks{padding-top:0}
.wp-site-blocks>*+*{margin-block-start:0}

/* ---------- bandeau démonstration ---------- */
.s2m-demo-bar{position:relative;z-index:60;display:flex;gap:.9rem;align-items:center;justify-content:center;flex-wrap:wrap;
  padding:.45rem 1rem;background:var(--c-ink);color:var(--c-bg);font:500 .8rem/1.3 var(--f-text);letter-spacing:.01em;text-align:center}
.s2m-demo-bar a{color:var(--c-bg);text-decoration:underline;text-underline-offset:3px;font-weight:600}
.s2m-demo-bar__txt{opacity:.75}
.s2m-demo-bar__dot{width:8px;height:8px;border-radius:50%;background:#e9b44c;box-shadow:0 0 0 0 rgba(233,180,76,.6);animation:s2m-pulse 2.4s infinite}
@keyframes s2m-pulse{70%{box-shadow:0 0 0 8px rgba(233,180,76,0)}100%{box-shadow:0 0 0 0 rgba(233,180,76,0)}}

/* ---------- en-tête ---------- */
.s2m-header{position:sticky;top:0;z-index:50;background:var(--c-bg);border-bottom:1px solid var(--c-line);transition:box-shadow var(--s2m-med) var(--s2m-ease)}
.s2m-header.is-scrolled{box-shadow:0 6px 24px -18px rgba(0,0,0,.45)}
.s2m-header__row{padding-block:.85rem;gap:1.5rem}
.s2m-brandmark{gap:.7rem}
.s2m-brandmark .wp-block-site-title{margin:0;font:400 1.55rem/1 var(--f-display);letter-spacing:-.01em}
.s2m-brandmark .wp-block-site-title a{text-decoration:none}
.s2m-nav a{position:relative;text-decoration:none;font-weight:500;font-size:.95rem}
.s2m-nav .wp-block-navigation-item__content::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform var(--s2m-fast) var(--s2m-ease)}
.s2m-nav .wp-block-navigation-item__content:hover::after{transform:scaleX(1);transform-origin:left}
.s2m-cart .wc-block-mini-cart__button{transition:transform var(--s2m-fast) var(--s2m-ease)}
.s2m-cart.is-bump .wc-block-mini-cart__button{animation:s2m-bump .5s var(--s2m-ease)}
@keyframes s2m-bump{30%{transform:scale(1.25) rotate(-6deg)}60%{transform:scale(.95)}100%{transform:none}}
.wc-block-mini-cart__badge{background:var(--c-brand)!important;color:var(--c-bg)!important}

/* barre « livraison offerte » : se remplit à chaque ajout */
.s2m-shipbar{display:flex;align-items:center;justify-content:center;gap:.8rem;padding:.4rem 0 .2rem;font-size:.8rem;color:var(--c-muted)}
.s2m-shipbar[hidden]{display:none}
.s2m-shipbar__track{width:120px;height:4px;border-radius:4px;background:var(--c-line);overflow:hidden}
.s2m-shipbar__fill{display:block;height:100%;width:0;background:var(--c-brand);transition:width .9s var(--s2m-ease)}
.s2m-shipbar.is-done .s2m-shipbar__fill{background:var(--c-accent)}

/* ---------- accueil : héros asymétrique ---------- */
.s2m-hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,72px);align-items:center;max-width:1240px;margin-inline:auto;padding:clamp(32px,6vw,88px) clamp(16px,4vw,48px) clamp(40px,6vw,96px)}
.s2m-hero__eyebrow{font:600 .78rem/1 var(--f-text);letter-spacing:.16em;text-transform:uppercase;color:var(--c-brand);margin:0 0 1.2rem}
.s2m-hero h1{margin:0 0 1.4rem;font-size:clamp(2.4rem,5vw,4.4rem);text-wrap:balance}
.s2m-hero__lead{font-size:clamp(1.05rem,1.4vw,1.25rem);max-width:34ch;color:var(--c-muted);margin:0 0 2rem}
.s2m-hero .wp-block-buttons{display:flex;flex-wrap:wrap;gap:.8rem}
.s2m-hero .wp-block-button__link{display:inline-block;text-decoration:none;padding:.95em 1.7em;border:1px solid var(--c-ink);transition:background var(--s2m-fast) var(--s2m-ease),color var(--s2m-fast) var(--s2m-ease),transform var(--s2m-fast) var(--s2m-ease)}
.s2m-hero .wp-block-button__link:hover{transform:translateY(-2px)}
.s2m-hero .is-style-outline .wp-block-button__link{background:transparent;color:var(--c-ink)}
.s2m-hero .is-style-outline .wp-block-button__link:hover{background:var(--c-ink);color:var(--c-bg)}
.s2m-hero__media{position:relative}
.s2m-hero__media figure{margin:0}
.s2m-hero__media img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--s2m-radius)}
.s2m-js .s2m-hero__media img{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--s2m-ease) .15s}
.s2m-js .s2m-hero.is-in .s2m-hero__media img{clip-path:inset(0 0 0 0)}
.s2m-split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.s2m-split .w>span{display:inline-block;transform:translateY(105%);transition:transform .7s var(--s2m-ease);transition-delay:calc(var(--i)*70ms + 120ms)}
.s2m-hero.is-in .s2m-split .w>span{transform:none}
.s2m-tag{position:absolute;z-index:2;font:500 .82rem/1.35 var(--f-text);background:var(--c-surface);color:var(--c-ink);padding:.8rem 1rem;max-width:230px;box-shadow:0 18px 40px -22px rgba(0,0,0,.5)}
.s2m-tag b{display:block;font:400 1.05rem/1.2 var(--f-display);margin-bottom:.2rem}
.s2m-js .s2m-tag{opacity:0;transform:translateY(16px) rotate(var(--rot,0deg));transition:opacity .5s var(--s2m-ease) 1s,transform .7s var(--s2m-ease) 1s}
.s2m-hero.is-in .s2m-tag{opacity:1;transform:rotate(var(--rot,0deg))}

/* ---------- bandeau défilant (réassurance) ---------- */
.s2m-ticker{overflow:hidden;border-block:1px solid var(--c-line);background:var(--c-surface);padding:.85rem 0}
.s2m-ticker__track{display:flex;width:max-content;gap:3rem;animation:s2m-marquee 38s linear infinite}
.s2m-ticker:hover .s2m-ticker__track{animation-play-state:paused}
.s2m-ticker__track span{white-space:nowrap;font:400 1.1rem/1 var(--f-display)}
.s2m-ticker__track span::before{content:"✦";color:var(--c-brand);margin-right:3rem;font-size:.8em}
@keyframes s2m-marquee{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.s2m-section{max-width:1240px;margin-inline:auto;padding:clamp(48px,7vw,104px) clamp(16px,4vw,48px)}
.s2m-section__head{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
.s2m-section__head h2{margin:0;max-width:18ch}
.s2m-section__head p{margin:0;color:var(--c-muted);max-width:42ch}
.s2m-link{font-weight:600;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
/* catégories : 1 grande + 3 empilées (rythme volontairement inégal) */
.s2m-cats{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-auto-rows:minmax(180px,1fr);gap:14px}
.s2m-cat{position:relative;overflow:hidden;display:block;color:var(--c-bg)!important;text-decoration:none;border-radius:var(--s2m-radius);min-height:220px;background:var(--c-ink)}
.s2m-cat:first-child{grid-row:span 2}
.s2m-cat:nth-child(4):last-child{grid-column:span 2}
.s2m-cats--1{grid-template-columns:1fr}.s2m-cats--1 .s2m-cat{min-height:340px}
.s2m-cats--2{grid-template-columns:1fr 1fr}.s2m-cats--2 .s2m-cat:first-child{grid-row:auto}
.s2m-cats--3{grid-template-columns:1.3fr 1fr}
.s2m-cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.82;transition:transform 1.2s var(--s2m-ease),opacity var(--s2m-med)}
.s2m-cat:hover img{transform:scale(1.06);opacity:.65}
.s2m-cat span{position:absolute;left:1.1rem;bottom:1rem;right:1rem;font:400 clamp(1.3rem,2.2vw,1.9rem)/1.1 var(--f-display)}
.s2m-cat small{display:block;font:500 .8rem/1.4 var(--f-text);opacity:0;transform:translateY(8px);transition:all var(--s2m-fast) var(--s2m-ease)}
.s2m-cat:hover small{opacity:.9;transform:none}
/* bande « savoir-faire » pleine largeur, sombre */
.s2m-story{background:var(--c-ink);color:var(--c-bg)}
.s2m-story a{color:var(--c-bg)}
.s2m-story__in{display:grid;grid-template-columns:5fr 6fr;gap:clamp(24px,5vw,80px);align-items:center;max-width:1240px;margin-inline:auto;padding:clamp(48px,7vw,104px) clamp(16px,4vw,48px)}
.s2m-story img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--s2m-radius)}
.s2m-story h2{color:var(--c-bg)}
.s2m-steps{list-style:none;margin:2rem 0 0;padding:0;counter-reset:s;display:grid;gap:1.1rem}
.s2m-steps li{counter-increment:s;display:grid;grid-template-columns:3rem 1fr;gap:.8rem;align-items:start;padding-top:1rem;position:relative}
.s2m-steps li::before{content:counter(s,decimal-leading-zero);font:400 1.6rem/1 var(--f-display);color:var(--c-brand)}
.s2m-steps li::after{content:"";position:absolute;top:0;left:0;height:1px;width:100%;background:currentColor;opacity:.25;transform:scaleX(0);transform-origin:left;transition:transform .9s var(--s2m-ease) calc(var(--i,0)*150ms)}
.s2m-steps.is-in li::after{transform:none}
.s2m-steps b{display:block;font-weight:600;margin-bottom:.2rem}
.s2m-faq details{border-top:1px solid var(--c-line);padding:1rem 0}
.s2m-faq summary{cursor:pointer;font:400 1.25rem/1.3 var(--f-display);list-style:none;display:flex;justify-content:space-between;gap:1rem}
.s2m-faq summary::after{content:"+";transition:transform var(--s2m-fast) var(--s2m-ease)}
.s2m-faq details[open] summary::after{transform:rotate(45deg)}
.s2m-faq p{color:var(--c-muted);margin:.6rem 0 0;max-width:62ch}

/* ---------- grilles produits (code court [products] et blocs) ---------- */
.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,28px);margin:0!important;padding:0}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important}
.woocommerce ul.products li.product{width:auto!important;margin:0!important;float:none!important;position:relative;text-align:left}
.woocommerce ul.products li.product a img{aspect-ratio:4/5;object-fit:cover;margin:0 0 .8rem!important;border-radius:var(--s2m-radius);background:var(--c-surface);transition:transform .9s var(--s2m-ease)}
.woocommerce ul.products li.product .woocommerce-LoopProduct-link{display:block;overflow:hidden;text-decoration:none}
.woocommerce ul.products li.product:hover a img{transform:scale(1.04)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font:400 1.15rem/1.25 var(--f-display)!important;padding:0!important;margin:0 0 .25rem!important}
.woocommerce ul.products li.product .price{color:var(--c-ink)!important;font-weight:600;font-size:.95rem!important}
.woocommerce ul.products li.product .button{margin-top:.6rem!important;background:transparent!important;color:var(--c-ink)!important;border:1px solid var(--c-ink)!important;border-radius:var(--s2m-radius)!important;font-size:.85rem!important;padding:.6em 1em!important;transition:all var(--s2m-fast) var(--s2m-ease)}
.woocommerce ul.products li.product .button:hover{background:var(--c-ink)!important;color:var(--c-bg)!important}
.woocommerce ul.products li.product .added_to_cart{display:none}
.woocommerce span.onsale{background:var(--c-brand)!important;border-radius:var(--s2m-radius)!important;min-height:0!important;line-height:1!important;padding:.45em .7em!important}
.wc-block-components-product-image img,.wc-block-grid__product-image img{aspect-ratio:4/5;object-fit:cover;border-radius:var(--s2m-radius)}
.wp-block-woocommerce-product-template .wc-block-components-product-image{overflow:hidden}
.wp-block-woocommerce-product-template li:hover .wc-block-components-product-image img{transform:scale(1.04)}
.wc-block-components-product-image img{transition:transform .9s var(--s2m-ease)}
.wp-block-post-title a,.wc-block-components-product-name{text-decoration:none}
/* apparition des produits : posés un par un, de gauche à droite */
.s2m-js [data-reveal],.s2m-js .woocommerce ul.products li.product,.s2m-js .wp-block-woocommerce-product-template>li{opacity:0;transform:translateY(22px);transition:opacity .6s var(--s2m-ease),transform .7s var(--s2m-ease);transition-delay:calc(var(--i,0)*80ms)}
.s2m-js .is-in[data-reveal],.s2m-js .woocommerce ul.products li.product.is-in,.s2m-js .wp-block-woocommerce-product-template>li.is-in{opacity:1;transform:none}

/* ---------- fiche produit ---------- */
.woocommerce-product-gallery{opacity:1!important}
.single-product .product_title,.wp-block-post-title{font-family:var(--f-display)}
.s2m-swatches{display:flex;flex-wrap:wrap;gap:.5rem;margin:.3rem 0 .8rem}
.s2m-swatch{appearance:none;border:1px solid var(--c-line);background:var(--c-surface);color:var(--c-ink);padding:.6em 1em;font:500 .9rem/1 var(--f-text);border-radius:var(--s2m-radius);cursor:pointer;transition:all var(--s2m-fast) var(--s2m-ease)}
.s2m-swatch:hover{border-color:var(--c-ink)}
.s2m-swatch[aria-pressed=true]{background:var(--c-ink);color:var(--c-bg);border-color:var(--c-ink)}
.s2m-swatch[disabled]{opacity:.4;text-decoration:line-through;cursor:not-allowed}
.s2m-has-swatches{position:relative}
.s2m-has-swatches select{position:absolute!important;left:0;top:0;opacity:0!important;pointer-events:none;width:1px!important;height:1px!important}
.s2m-has-swatches .reset_variations{font-size:.8rem}
.s2m-ship{list-style:none;padding:1rem 0 0;margin:1rem 0 0;border-top:1px solid var(--c-line);display:grid;gap:.45rem;font-size:.9rem;color:var(--c-muted)}
.s2m-ship__i{display:inline-block;width:1.4rem;color:var(--c-brand);font-weight:700}
.single_add_to_cart_button,.wc-block-components-button:not(.is-link){border-radius:var(--s2m-radius)!important;transition:transform var(--s2m-fast) var(--s2m-ease),background var(--s2m-fast)!important}
.single_add_to_cart_button:active,.wc-block-components-button:not(.is-link):active{transform:scale(.97)}
.s2m-fly{position:fixed;z-index:9999;pointer-events:none;border-radius:var(--s2m-radius);object-fit:cover;box-shadow:0 20px 40px -12px rgba(0,0,0,.4);transition:transform .75s cubic-bezier(.5,-.2,.4,1),opacity .75s ease-in}

/* ---------- commande ---------- */
.s2m-testcard{max-width:1240px;margin-inline:auto!important;border:1px dashed var(--c-brand);background:var(--c-surface);padding:1rem 1.2rem;margin:0 0 1.2rem;border-radius:var(--s2m-radius);font-size:.92rem}
.s2m-testcard p{margin:.2rem 0}
.s2m-testcard__t{font-weight:700;color:var(--c-brand)}
.s2m-testcard code{background:var(--c-bg);padding:.1em .35em;border:1px solid var(--c-line);font-size:.95em;letter-spacing:.04em}
.s2m-testcard__s{color:var(--c-muted);font-size:.85rem}

/* ---------- pages légales, tableaux ---------- */
.s2m-legal-warn{background:var(--c-surface);border-left:3px solid var(--c-brand);padding:.9rem 1.1rem;font-size:.92rem}
.s2m-table{width:100%;border-collapse:collapse;font-size:.95rem}
.s2m-table th,.s2m-table td{text-align:left;padding:.7rem .5rem;border-bottom:1px solid var(--c-line)}

/* ---------- pied de page ---------- */
.s2m-footer{background:var(--c-surface);border-top:1px solid var(--c-line);padding-block:clamp(40px,6vw,72px) 1.5rem;margin-top:0}
.s2m-footer__brand{font:400 1.6rem/1 var(--f-display)}
.s2m-footer__h{font:600 .75rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted)}
.s2m-footer__links{list-style:none;padding:0;margin:0;display:grid;gap:.4rem;font-size:.95rem}
.s2m-footer__links a{text-decoration:none}
.s2m-footer__legal{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--c-line);font-size:.8rem;color:var(--c-muted)}

/* ================= VARIANTES (élément signature tiré du métier) ================= */
/* Mode & accessoires — atelier de maroquinerie : surpiqûre, étiquette cousue */
.s2m-v-mode{--s2m-radius:0px}
.s2m-v-mode .s2m-tag{--rot:-4deg;left:-28px;bottom:42px;outline:1px dashed var(--c-brand);outline-offset:-7px;padding:1rem 1.2rem}
.s2m-v-mode .s2m-tag::before{content:"";position:absolute;top:-10px;left:50%;width:14px;height:14px;border-radius:50%;background:var(--c-bg);border:2px solid var(--c-line);transform:translateX(-50%)}
.s2m-v-mode .s2m-stitch{background-image:linear-gradient(90deg,var(--c-brand) 50%,transparent 0);background-size:10px 1px;background-repeat:repeat-x;background-position:0 100%;padding-bottom:6px}
.s2m-v-mode .woocommerce ul.products li.product:hover .woocommerce-loop-product__title{background-image:linear-gradient(90deg,var(--c-brand) 50%,transparent 0);background-size:8px 1px;background-repeat:repeat-x;background-position:0 100%;animation:s2m-sew 1.2s linear infinite}
@keyframes s2m-sew{to{background-position:16px 100%}}
/* ---------- responsive ---------- */
@media (max-width:900px){
  .s2m-hero{grid-template-columns:1fr}
  .s2m-hero__media{order:-1;max-width:520px}
  .s2m-hero h1{font-size:clamp(2.3rem,10vw,3.4rem)}
  .s2m-cats{grid-template-columns:1fr 1fr}
  .s2m-cat:first-child{grid-column:span 2;grid-row:auto;min-height:260px}
  .woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
  .s2m-story__in{grid-template-columns:1fr}
  .s2m-v-mode .s2m-tag{left:12px}
  .s2m-demo-bar__txt{display:none}
  .s2m-shipbar{font-size:.72rem;gap:.5rem;padding-inline:12px}.s2m-shipbar__track{width:60px}
  .s2m-cat:nth-child(4):last-child{grid-column:span 2}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}
  .s2m-js .s2m-hero__media img{clip-path:none}
}
