/*
Theme Name: Essential Attire
Theme URI: https://essential-attire.com
Description: Thème WooCommerce pour Essential Attire — Men's Activewear. Boutique de vêtements de sport (t-shirts, bas, vestes, accessoires). Style épuré bleu/graphite, panier & checkout personnalisés.
Author: Essential Attire
Version: 1.3.5
Text Domain: essential-attire
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.1
WC requires at least: 8.0
WC tested up to: 9.0
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
  --background:         #FAFCFD;
  --foreground:         #384354;
  --heading:            #384354;
  --muted:              #F4F8FB;
  --muted-foreground:   #6E7786;
  --primary:            #6FCAE5;
  --primary-foreground: #ffffff;
  --primary-light:      #E6F6FB;
  --card:               #FFFFFF;
  --border:             #EAF2F6;
  --radius:             16px;
  --shadow-card:        0 1px 2px rgba(56,67,84,.04),0 4px 16px rgba(56,67,84,.06);
  --shadow-card-hover:  0 2px 4px rgba(56,67,84,.06),0 12px 32px rgba(111,202,229,.18);
  --shadow-btn:         0 6px 20px rgba(111,202,229,.35);
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-family: 'Poppins',ui-sans-serif,system-ui,sans-serif; -webkit-font-smoothing: antialiased; font-size: 16px; overflow-x: hidden; max-width: 100vw; }
body { background: var(--background); color: var(--foreground); font-family: 'Poppins',ui-sans-serif,system-ui,sans-serif; line-height: 1.6; max-width: 100vw; }
/* Garde-fou anti-débordement horizontal : ne cible QUE html (pas body ni un
   conteneur intermédiaire) pour ne jamais casser position:sticky (bug connu
   Safari/WebKit quand overflow est défini sur un ancêtre proche d'un sticky). */
img, svg, table { max-width: 100%; }
h1,h2,h3,h4,h5,h6 { color: var(--heading); font-weight: 600; letter-spacing: -.01em; line-height: 1.2; }
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; display: block; }
ul,ol { list-style: none; }
button,input,select,textarea { font-family: inherit; }

/* ============================================================
   LAYOUT
   ============================================================ */
.container-page { width: 100%; max-width: 1360px; margin-inline: auto; padding-inline: 1rem; }
@media (min-width: 640px) { .container-page { padding-inline: 1.5rem; } }
@media (min-width: 1024px) { .container-page { padding-inline: 2rem; } }

/* ============================================================
   ANNOUNCEMENT BAR
   ============================================================ */
.ep-announcement-bar { background: var(--primary); color: #fff; padding: .75rem 0; overflow: hidden; white-space: nowrap; }
.ep-announcement-bar__track { display: inline-flex; gap: 3rem; animation: marquee-scroll 40s linear infinite; }
.ep-announcement-bar__track:hover { animation-play-state: paused; }
.ep-announcement-bar__item { display: inline-flex; align-items: center; gap: .6rem; font-size: .8125rem; font-weight: 500; letter-spacing: .03em; flex-shrink: 0; }
.ep-announcement-bar__item svg { width: 1rem; height: 1rem; flex-shrink: 0; }
@keyframes marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ep-announcement-bar__track { animation: none; } }

/* ============================================================
   HEADER
   ============================================================ */
.ep-header { background: var(--card); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 100; }
.ep-header__inner { display: flex; align-items: center; gap: 1rem; padding-block: .875rem; }

/* Logo */
/* ── Essential Attire logo (E-bars mark + wordmark) ── */
.ep-logo { display: inline-flex; align-items: center; gap: .6rem; flex-shrink: 0; text-decoration: none; line-height: 1; }
.ep-logo:hover { text-decoration: none; }
.ea-logo__mark { width: 30px; height: 30px; flex-shrink: 0; color: var(--primary); }
.ea-logo__mark rect { fill: currentColor; }
.ea-logo__text { display: flex; flex-direction: column; line-height: 1; }
.ea-logo__text b { font-weight: 800; font-size: 1.05rem; letter-spacing: .14em; color: var(--heading); }
.ea-logo__text i { font-weight: 600; font-size: .72rem; letter-spacing: .34em; font-style: normal; color: var(--primary); margin-left: 1px; }
.ep-footer .ea-logo__text b { color: #fff; }
.ep-footer .ea-logo__text i { color: var(--primary); }
@media (max-width: 520px) { .ea-logo__text b { font-size: .95rem; } .ea-logo__text i { font-size: .66rem; letter-spacing: .28em; } }

/* ── Home: category tiles + feature strip helpers ── */
.ea-cat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
@media (min-width: 1024px) { .ea-cat-grid { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; } }
.ea-cat-tile { position: relative; display: block; border-radius: 1rem; overflow: hidden; background: var(--muted); border: 1px solid var(--border); box-shadow: var(--shadow-card); text-decoration: none; aspect-ratio: 3/4; }
.ea-cat-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ea-cat-tile:hover img { transform: scale(1.05); }
.ea-cat-tile__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(56,67,84,.72) 0%, rgba(56,67,84,.05) 45%, transparent 70%); }
.ea-cat-tile__label { position: absolute; left: 0; right: 0; bottom: 1rem; text-align: center; color: #fff; }
.ea-cat-tile__label strong { display: block; font-size: 1rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ea-cat-tile__label span { display: inline-flex; align-items: center; gap: .3rem; margin-top: .3rem; font-size: .75rem; font-weight: 600; letter-spacing: .08em; color: var(--primary-light); text-transform: uppercase; }
.ea-feat-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.5rem; }
@media (min-width: 768px) { .ea-feat-grid { grid-template-columns: repeat(4,1fr); } }
.ea-feat { display: flex; flex-direction: column; gap: .5rem; padding: 0 1rem; border-left: 1px solid var(--border); }
.ea-feat:first-child { border-left: none; }
@media (max-width: 767px) { .ea-feat:nth-child(odd) { border-left: none; } }
.ea-feat svg { width: 1.75rem; height: 1.75rem; color: var(--primary); }
.ea-feat h3 { font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--heading); }
.ea-feat p { font-size: .8125rem; color: var(--muted-foreground); line-height: 1.5; }
/* generic image placeholder look (before real .webp is uploaded) */
.ea-ph { background: repeating-linear-gradient(45deg, #eef4f8, #eef4f8 12px, #e6f0f5 12px, #e6f0f5 24px); }

/* Desktop Nav */
.ep-nav { display: none; align-items: center; gap: 1.5rem; margin-left: 1rem; }
@media (min-width: 1024px) { .ep-nav { display: flex; } }
.ep-nav a { font-size: .875rem; font-weight: 500; color: var(--heading); text-decoration: none; padding-block: .25rem; position: relative; transition: color .15s; white-space: nowrap; }
.ep-nav a:hover, .ep-nav a.current { color: var(--primary); text-decoration: none; }
.ep-nav a.current::after { content:''; position: absolute; bottom: -2px; left: 0; right: 0; height: 2px; background: var(--primary); border-radius: 999px; }

/* Search */
.ep-search { display: none; flex: 1; max-width: 22rem; margin-left: auto; position: relative; }
@media (min-width: 768px) { .ep-search { display: flex; } }
.ep-search input { width: 100%; height: 2.5rem; padding: 0 2.5rem 0 1rem; border-radius: 999px; border: 1px solid var(--border); background: var(--background); font-size: .875rem; color: var(--heading); outline: none; transition: border-color .15s, box-shadow .15s; }
.ep-search input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(111,202,229,.2); }
.ep-search input::placeholder { color: var(--muted-foreground); }
.ep-search__icon { position: absolute; right: .875rem; top: 50%; transform: translateY(-50%); color: var(--muted-foreground); width: 1rem; height: 1rem; pointer-events: none; }

/* Header icons */
.ep-header__icons { display: flex; align-items: center; gap: .5rem; margin-left: auto; }
@media (min-width: 768px) { .ep-header__icons { margin-left: 0; } }
.ep-icon-btn { background: none; border: none; cursor: pointer; color: var(--heading); transition: color .15s; display: grid; place-items: center; padding: .25rem; }
.ep-icon-btn:hover { color: var(--primary); }
.ep-icon-btn svg { width: 1.25rem; height: 1.25rem; }
.ep-cart-icon { position: relative; }
.ep-cart-count { position: absolute; top: -5px; right: -5px; height: 1rem; min-width: 1rem; padding: 0 .2rem; border-radius: 999px; background: var(--primary); color: #fff; font-size: .625rem; font-weight: 700; display: grid; place-items: center; line-height: 1; }
.ep-btn-primary { display: inline-flex; align-items: center; gap: .375rem; height: 2.5rem; padding: 0 1.25rem; border-radius: 999px; background: var(--primary); color: #fff; font-size: .8125rem; font-weight: 600; text-decoration: none; white-space: nowrap; box-shadow: var(--shadow-btn); transition: filter .15s; border: none; cursor: pointer; }
.ep-btn-primary:hover { filter: brightness(1.05); text-decoration: none; color: #fff; }
.ep-btn-outline { display: inline-flex; align-items: center; gap: .375rem; height: 2.5rem; padding: 0 1.25rem; border-radius: 999px; background: var(--card); color: var(--primary); border: 1.5px solid var(--primary); font-size: .8125rem; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background .15s; cursor: pointer; }
.ep-btn-outline:hover { background: var(--primary-light); text-decoration: none; }
.ep-menu-toggle { display: flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; color: var(--heading); padding: .25rem; }
@media (min-width: 1024px) { .ep-menu-toggle { display: none; } }
.ep-menu-toggle svg { width: 1.25rem; height: 1.25rem; }

/* Mobile nav */
.ep-mobile-nav { display: none; border-top: 1px solid var(--border); background: var(--card); }
.ep-mobile-nav.is-open { display: block; }
.ep-mobile-nav__inner { padding: 1rem; display: flex; flex-direction: column; gap: .25rem; }
.ep-mobile-nav a { display: block; padding: .625rem .75rem; border-radius: .5rem; font-size: .875rem; font-weight: 500; color: var(--heading); text-decoration: none; transition: background .15s, color .15s; }
.ep-mobile-nav a:hover { background: var(--primary-light); color: var(--primary); text-decoration: none; }
.ep-mobile-nav__divider { border-top: 1px solid var(--border); margin: .5rem 0; }

/* ============================================================
   FOOTER
   ============================================================ */
.ep-footer { background: var(--card); border-top: 1px solid var(--border); margin-top: 5rem; }
.ep-footer__main { display: flex; flex-direction: column; gap: 2rem; padding-block: 2.5rem; align-items: center; text-align: center; }
@media (min-width: 768px) { .ep-footer__main { display: grid; grid-template-columns: auto 1fr auto; align-items: start; text-align: left; padding-block: 3rem; gap: 3rem; } }
.ep-footer__nav { display: flex; flex-wrap: wrap; gap: .625rem 1.5rem; justify-content: center; }
.ep-footer__nav a { font-size: .875rem; color: var(--heading); text-decoration: none; transition: color .15s; }
.ep-footer__nav a:hover { color: var(--primary); }
.ep-footer__social { display: flex; gap: 1rem; justify-content: center; }
.ep-footer__social a { color: var(--muted-foreground); transition: color .15s; }
.ep-footer__social a:hover { color: var(--primary); }
.ep-footer__social svg { width: 1.25rem; height: 1.25rem; }
.ep-footer__bottom { border-top: 1px solid var(--border); padding-block: 1.25rem; text-align: center; font-size: .75rem; color: var(--muted-foreground); }

/* ============================================================
   HERO
   ============================================================ */
.ep-hero { background: linear-gradient(135deg, #E8F7FC 0%, #F5FBFD 50%, #EBF8FD 100%); overflow: hidden; }
.ep-hero__inner { display: grid; gap: 2rem; align-items: center; padding-block: 3rem 2rem; }
@media (min-width: 768px) { .ep-hero__inner { padding-block: 4rem 3rem; } }
@media (min-width: 1024px) { .ep-hero__inner { grid-template-columns: 1fr 1fr; gap: 3rem; padding-block: 5rem 4rem; } }
.ep-hero__label { font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--primary); }
.ep-hero__divider { width: 3rem; height: 2px; background: var(--primary); margin: .5rem 0 1.25rem; }
.ep-hero h1 { font-size: clamp(2rem, 5vw, 3.75rem); font-weight: 700; line-height: 1.05; color: var(--heading); }
.ep-hero h1 span { color: var(--primary); }
.ep-hero__sub { margin-top: 1.25rem; color: var(--muted-foreground); font-size: 1rem; max-width: 32rem; line-height: 1.7; }
.ep-hero__ctas { margin-top: 1.75rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.ep-hero__ctas .ep-btn-primary { height: 3rem; padding: 0 1.75rem; font-size: .875rem; }
.ep-hero__ctas .ep-btn-outline  { height: 3rem; padding: 0 1.75rem; font-size: .875rem; }
.ep-hero__image { display: flex; justify-content: center; }
@media (min-width: 1024px) { .ep-hero__image { justify-content: flex-end; } }
.ep-hero__image img { max-height: 30rem; width: auto; filter: drop-shadow(0 20px 40px rgba(111,202,229,.3)); }

/* ============================================================
   TRUST BAR
   ============================================================ */
.ep-trust-bar { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-card); padding: 1.25rem; display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
@media (min-width: 640px) { .ep-trust-bar { grid-template-columns: repeat(4,1fr); padding: 1.5rem; } }
.ep-trust-bar__item { display: flex; align-items: center; gap: .625rem; }
.ep-trust-bar__icon { width: 2.5rem; height: 2.5rem; flex-shrink: 0; border-radius: 999px; background: var(--primary-light); display: grid; place-items: center; }
.ep-trust-bar__icon svg { width: 1.125rem; height: 1.125rem; color: var(--primary); }
.ep-trust-bar__title { font-size: .8125rem; font-weight: 600; color: var(--heading); }
.ep-trust-bar__sub { font-size: .6875rem; color: var(--muted-foreground); }

/* ============================================================
   SECTION HEADINGS
   ============================================================ */
.ep-section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.ep-section-header h2 { font-size: 1rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--heading); }
@media (min-width: 640px) { .ep-section-header h2 { font-size: 1.125rem; } }
.ep-section-header a { font-size: .8125rem; font-weight: 600; color: var(--primary); text-decoration: none; display: inline-flex; align-items: center; gap: .25rem; white-space: nowrap; }
.ep-section-header a:hover { gap: .5rem; text-decoration: none; }
.ep-section-header a svg { width: 1rem; height: 1rem; transition: margin .15s; }

/* ============================================================
   PRODUCT CARD — used everywhere
   ============================================================ */
.ep-product-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; transition: box-shadow .2s, transform .2s; display: flex; flex-direction: column; }
.ep-product-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-2px); }
.ep-product-card__img-wrap { position: relative; }
.ep-product-card__img { background: var(--muted); aspect-ratio: 1; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.ep-product-card__img img { width: 100%; height: 100%; object-fit: contain; padding: 1rem; transition: transform .3s; }
.ep-product-card:hover .ep-product-card__img img { transform: scale(1.04); }
.ep-product-card__badge { position: absolute; top: .625rem; left: .625rem; background: var(--primary); color: #fff; font-size: .625rem; font-weight: 700; padding: .2rem .625rem; border-radius: 999px; text-transform: uppercase; letter-spacing: .05em; }
.ep-product-card__body { padding: 1rem; flex: 1; display: flex; flex-direction: column; }
.ep-product-card__name { font-size: .875rem; font-weight: 600; color: var(--heading); line-height: 1.35; text-decoration: none; display: block; }
.ep-product-card__name:hover { color: var(--primary); text-decoration: none; }
.ep-product-card__strength { font-size: .75rem; color: var(--muted-foreground); margin-top: .15rem; }
.ep-product-card__price { font-size: 1.0625rem; font-weight: 700; color: var(--heading); margin-top: .5rem; }
.ep-product-card__atc { margin-top: auto; padding-top: .75rem; display: flex; align-items: center; justify-content: center; gap: .375rem; width: 100%; height: 2.5rem; border-radius: 999px; background: var(--primary); color: #fff; font-size: .8125rem; font-weight: 600; border: none; cursor: pointer; box-shadow: var(--shadow-btn); transition: filter .15s; }
.ep-product-card__atc:hover { filter: brightness(1.05); }
.ep-product-card__atc svg { width: .9375rem; height: .9375rem; }

/* ============================================================
   PRODUCT GRIDS — standard 4-col
   ============================================================ */
.ep-products-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
@media (min-width: 640px)  { .ep-products-grid { grid-template-columns: repeat(2,1fr); gap: 1.25rem; } }
@media (min-width: 768px)  { .ep-products-grid { grid-template-columns: repeat(3,1fr); } }
@media (min-width: 1024px) { .ep-products-grid { grid-template-columns: repeat(4,1fr); } }

/* ============================================================
   HORIZONTAL SCROLL CAROUSEL  (Recommended Products)
   ============================================================ */
.ep-carousel-wrap { position: relative; }
.ep-carousel { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: .5rem; scrollbar-width: none; }
.ep-carousel::-webkit-scrollbar { display: none; }
.ep-carousel .ep-product-card { flex: 0 0 calc(50% - .5rem); scroll-snap-align: start; }
@media (min-width: 640px)  { .ep-carousel .ep-product-card { flex: 0 0 calc(33.333% - .75rem); } }
@media (min-width: 1024px) { .ep-carousel .ep-product-card { flex: 0 0 calc(25% - .75rem); } }

/* Scroll arrow buttons */
.ep-carousel-btn { display: none; position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 2.25rem; height: 2.25rem; border-radius: 999px; background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow-card); cursor: pointer; place-items: center; color: var(--heading); transition: color .15s, box-shadow .15s; }
@media (min-width: 768px) { .ep-carousel-btn { display: grid; } }
.ep-carousel-btn:hover { color: var(--primary); box-shadow: var(--shadow-card-hover); }
.ep-carousel-btn svg { width: 1rem; height: 1rem; }
.ep-carousel-btn--prev { left: -1.125rem; }
.ep-carousel-btn--next { right: -1.125rem; }

/* ============================================================
   VALUE STRIP
   ============================================================ */
.ep-value-strip { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.25rem 1.5rem; display: grid; grid-template-columns: repeat(2,1fr); gap: .75rem; }
@media (min-width: 640px) { .ep-value-strip { grid-template-columns: repeat(4,1fr); padding: 1.5rem 2rem; } }
.ep-value-strip__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; text-align: center; padding-inline: .5rem; }
.ep-value-strip__item + .ep-value-strip__item { border-left: 1px solid var(--border); }
.ep-value-strip__item svg { width: 1.5rem; height: 1.5rem; color: var(--primary); }
.ep-value-strip__title { font-size: .6875rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--heading); }
.ep-value-strip__sub { font-size: .6875rem; color: var(--muted-foreground); margin-top: -.25rem; }

/* ============================================================
   NEWSLETTER
   ============================================================ */
.ep-newsletter { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-card); padding: 2rem; }
@media (min-width: 768px) { .ep-newsletter { padding: 2.5rem 3rem; } }
.ep-newsletter__inner { display: grid; gap: 1.5rem; align-items: center; }
@media (min-width: 768px) { .ep-newsletter__inner { grid-template-columns: 1fr 1fr; } }
.ep-newsletter__label { font-size: .875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--primary); }
.ep-newsletter__sub { margin-top: .5rem; color: var(--muted-foreground); font-size: .9375rem; }
.ep-newsletter form { display: flex; flex-direction: column; gap: .75rem; }
@media (min-width: 640px) { .ep-newsletter form { flex-direction: row; } }
.ep-newsletter input[type="email"] { flex: 1; height: 3.25rem; padding: 0 1.25rem; border-radius: 999px; border: 1px solid var(--border); background: var(--background); font-size: .9375rem; outline: none; transition: border-color .15s, box-shadow .15s; min-width: 0; }
.ep-newsletter input[type="email"]:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(111,202,229,.2); }
.ep-newsletter input[type="email"]::placeholder { color: var(--muted-foreground); }
.ep-newsletter button[type="submit"] { height: 3.25rem; padding: 0 2rem; border-radius: 999px; border: none; cursor: pointer; background: var(--primary); color: #fff; font-size: .9375rem; font-weight: 700; letter-spacing: .05em; box-shadow: var(--shadow-btn); transition: filter .15s; white-space: nowrap; }
.ep-newsletter button[type="submit"]:hover { filter: brightness(1.05); }

/* ============================================================
   PAGE HEADERS (internes)
   ============================================================ */
.ep-page-header { padding-block: 2.5rem 1.5rem; }
.ep-page-header__label { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--primary); }
.ep-page-header h1 { margin-top: .625rem; font-size: clamp(1.75rem, 4vw, 3rem); font-weight: 700; line-height: 1.1; }
.ep-page-header p { margin-top: .875rem; color: var(--muted-foreground); max-width: 40rem; line-height: 1.7; }

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.ep-about-grid { display: grid; gap: 2.5rem; align-items: center; padding-block: 3rem; }
@media (min-width: 1024px) { .ep-about-grid { grid-template-columns: 1fr 1fr; } }
.ep-about-image img { max-height: 26rem; width: auto; margin: auto; filter: drop-shadow(0 20px 40px rgba(111,202,229,.25)); }
.ep-values-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; margin-top: 2rem; }
@media (min-width: 640px) { .ep-values-grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px) { .ep-values-grid { grid-template-columns: repeat(4,1fr); } }
.ep-value-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.5rem; transition: box-shadow .2s; }
.ep-value-card:hover { box-shadow: var(--shadow-card-hover); }
.ep-value-card__icon { width: 2.75rem; height: 2.75rem; border-radius: 999px; background: var(--primary-light); display: grid; place-items: center; }
.ep-value-card__icon svg { width: 1.125rem; height: 1.125rem; color: var(--primary); }
.ep-value-card h3 { margin-top: .875rem; font-size: .9375rem; }
.ep-value-card p { margin-top: .375rem; font-size: .875rem; color: var(--muted-foreground); line-height: 1.65; }
.ep-stats-bar { background: var(--primary-light); border: 1px solid var(--border); border-radius: var(--radius); padding: 2rem; display: grid; gap: 2rem; text-align: center; margin-top: 3rem; }
@media (min-width: 640px) { .ep-stats-bar { grid-template-columns: repeat(3,1fr); } }
.ep-stats-bar__num { font-size: 2.5rem; font-weight: 700; color: var(--primary); }
@media (min-width: 640px) { .ep-stats-bar__num { font-size: 3rem; } }
.ep-stats-bar__lbl { font-size: .6875rem; color: var(--muted-foreground); text-transform: uppercase; letter-spacing: .1em; margin-top: .375rem; }

/* ============================================================
   PRODUCTS ARCHIVE — full-width no sidebar
   ============================================================ */
.ep-archive-header { padding-block: 2.5rem 1.5rem; }
.ep-archive-header h1 { font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 700; }
.ep-category-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.ep-cat-tab { height: 2.25rem; padding: 0 1rem; border-radius: 999px; font-size: .8125rem; font-weight: 500; cursor: pointer; border: 1.5px solid var(--border); background: var(--card); color: var(--heading); text-decoration: none; display: inline-flex; align-items: center; transition: all .15s; white-space: nowrap; }
.ep-cat-tab.active, .ep-cat-tab:hover { background: var(--primary); color: #fff; border-color: var(--primary); text-decoration: none; }
.ep-archive-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.5rem; }
.ep-archive-toolbar select { height: 2.5rem; padding: 0 2.5rem 0 1rem; border-radius: .75rem; border: 1px solid var(--border); background: var(--card); color: var(--heading); font-size: .875rem; appearance: none; cursor: pointer; outline: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236E7786' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .75rem center; }
.ep-result-count { font-size: .8125rem; color: var(--muted-foreground); }

/* ============================================================
   PRODUCT SINGLE
   ============================================================ */
.ep-product-single { display: grid; gap: 2rem; padding-block: 2rem; }
@media (min-width: 768px) { .ep-product-single { grid-template-columns: 1fr 1fr; gap: 3rem; } }
.ep-product-gallery__main { background: var(--muted); border-radius: var(--radius); aspect-ratio: 1; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.ep-product-gallery__main img { width: 100%; height: 100%; object-fit: contain; padding: 1.5rem; }
.ep-product-gallery__thumbs { display: grid; grid-template-columns: repeat(4,1fr); gap: .5rem; margin-top: .625rem; }
.ep-product-gallery__thumb { background: var(--muted); border-radius: .75rem; overflow: hidden; cursor: pointer; border: 2px solid transparent; transition: border-color .15s; aspect-ratio: 1; }
.ep-product-gallery__thumb.active { border-color: var(--primary); }
.ep-product-gallery__thumb img { width: 100%; height: 100%; object-fit: contain; padding: .5rem; }
.ep-product-info__category { font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--primary); }
.ep-product-info h1 { margin-top: .375rem; font-size: clamp(1.375rem, 3vw, 1.875rem); }
.ep-product-info__strength { margin-top: .2rem; font-size: .875rem; color: var(--muted-foreground); }
.ep-product-info__price { margin-top: 1rem; font-size: 1.75rem; font-weight: 700; color: var(--heading); }
.ep-product-info__desc { margin-top: 1rem; font-size: .9375rem; color: var(--muted-foreground); line-height: 1.75; }
.ep-product-info__actions { margin-top: 1.25rem; display: flex; flex-direction: column; gap: .75rem; }
.ep-qty-row { display: flex; align-items: center; gap: .875rem; }
.ep-qty-btn { width: 2.5rem; height: 2.5rem; border-radius: 999px; border: 1.5px solid var(--border); background: var(--card); color: var(--heading); font-size: 1.25rem; cursor: pointer; display: grid; place-items: center; transition: border-color .15s; }
.ep-qty-btn:hover { border-color: var(--primary); color: var(--primary); }
.ep-qty-input { width: 3.25rem; text-align: center; height: 2.5rem; border-radius: .625rem; border: 1.5px solid var(--border); font-size: 1rem; outline: none; }
.ep-product-atc { width: 100%; height: 3.5rem; border-radius: 999px; background: var(--primary); color: #fff; font-size: .9375rem; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: .625rem; border: none; cursor: pointer; box-shadow: var(--shadow-btn); transition: filter .15s; }
.ep-product-atc:hover { filter: brightness(1.05); }
.ep-product-atc svg { width: 1.125rem; height: 1.125rem; }
.ep-product-meta { margin-top: 1.25rem; display: grid; gap: .5rem; font-size: .8125rem; }
.ep-product-meta__row { display: flex; gap: .5rem; }
.ep-product-meta__key { font-weight: 600; color: var(--heading); min-width: 5rem; }
.ep-product-meta__val { color: var(--muted-foreground); }
.ep-info-section { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: .625rem; }
.ep-info-section__toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 1.125rem 1.25rem; background: var(--card); border: none; cursor: pointer; font-size: .9375rem; font-weight: 600; color: var(--heading); text-align: left; }
.ep-info-section__toggle svg { width: 1rem; height: 1rem; transition: transform .2s; flex-shrink: 0; }
.ep-info-section.is-open .ep-info-section__toggle svg { transform: rotate(180deg); }
.ep-info-section__body { display: none; padding: 1.25rem; border-top: 1px solid var(--border); font-size: .9375rem; color: var(--muted-foreground); line-height: 1.75; }
.ep-info-section.is-open .ep-info-section__body { display: block; }

/* ============================================================
   CART PAGE
   ============================================================ */
.ep-cart-page { padding-block: 2rem; display: grid; gap: 2rem; }
@media (min-width: 1024px) { .ep-cart-page { grid-template-columns: 1fr 360px; align-items: start; } }
.ep-cart-table { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.ep-cart-row { display: grid; grid-template-columns: 4.5rem 1fr auto; align-items: center; gap: .875rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--border); }
.ep-cart-row:last-child { border-bottom: none; }
.ep-cart-thumb { border-radius: .75rem; overflow: hidden; background: var(--muted); width: 4.5rem; height: 4.5rem; flex-shrink: 0; }
.ep-cart-thumb img { width: 100%; height: 100%; object-fit: contain; padding: .375rem; }
.ep-cart-info__name { font-size: .9rem; font-weight: 600; color: var(--heading); }
.ep-cart-info__meta { font-size: .75rem; color: var(--muted-foreground); margin-top: .2rem; }
.ep-cart-remove { background: none; border: none; cursor: pointer; color: var(--muted-foreground); transition: color .15s; padding: .25rem; }
.ep-cart-remove:hover { color: #E24B4A; }
.ep-cart-remove svg { width: 1.125rem; height: 1.125rem; }
.ep-order-summary { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.5rem; position: sticky; top: 5rem; }
.ep-order-summary h3 { font-size: 1rem; margin-bottom: 1.25rem; }
.ep-summary-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: .625rem; font-size: .9rem; }
.ep-summary-row--total { font-weight: 700; font-size: 1.0625rem; padding-top: .75rem; border-top: 1px solid var(--border); margin-top: .625rem; }
.ep-checkout-btn { display: flex; align-items: center; justify-content: center; width: 100%; height: 3.25rem; border-radius: 999px; background: var(--primary); color: #fff; font-size: .9375rem; font-weight: 700; font-family: inherit; border: none; cursor: pointer; box-shadow: var(--shadow-btn); transition: filter .15s; text-decoration: none; margin-top: 1rem; }
.ep-checkout-btn:hover { filter: brightness(1.05); text-decoration: none; color: #fff; }

/* ============================================================
   FAQ
   ============================================================ */
.ep-faq-list { display: flex; flex-direction: column; gap: .625rem; }
.ep-faq-item { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.ep-faq-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.125rem 1.375rem; background: none; border: none; cursor: pointer; font-size: .9375rem; font-weight: 600; color: var(--heading); text-align: left; }
.ep-faq-toggle__icon { width: 1.875rem; height: 1.875rem; flex-shrink: 0; border-radius: 999px; background: var(--primary-light); display: grid; place-items: center; color: var(--primary); transition: background .15s, color .15s; }
.ep-faq-toggle__icon svg { width: .875rem; height: .875rem; }
.ep-faq-body { display: none; padding: 0 1.375rem 1.125rem; font-size: .9375rem; color: var(--muted-foreground); line-height: 1.75; }
.ep-faq-item.is-open .ep-faq-body { display: block; }
.ep-faq-item.is-open .ep-faq-toggle__icon { background: var(--primary); color: #fff; }

/* ============================================================
   CONTACT
   ============================================================ */
.ep-contact-grid { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) { .ep-contact-grid { grid-template-columns: 1fr 1fr; } }
.ep-contact-info-item { display: flex; align-items: flex-start; gap: .875rem; }
.ep-contact-info-item__icon { width: 2.625rem; height: 2.625rem; flex-shrink: 0; border-radius: 999px; background: var(--primary-light); display: grid; place-items: center; }
.ep-contact-info-item__icon svg { width: 1.125rem; height: 1.125rem; color: var(--primary); }
.ep-contact-info-item__label { font-size: .625rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted-foreground); }
.ep-contact-info-item__val { font-weight: 500; color: var(--heading); margin-top: .2rem; font-size: .9375rem; }
.ep-contact-form { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.5rem; box-shadow: var(--shadow-card); }
@media (min-width: 640px) { .ep-contact-form { padding: 2rem; } }
.ep-form-grid { display: grid; gap: 1rem; }
.ep-form-grid--2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 639px) { .ep-form-grid--2 { grid-template-columns: 1fr; } }
.ep-field label { display: block; font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--muted-foreground); margin-bottom: .375rem; }
.ep-field input, .ep-field textarea { width: 100%; padding: .75rem 1rem; border: 1.5px solid var(--border); border-radius: .75rem; background: var(--background); color: var(--heading); font-size: .9375rem; outline: none; transition: border-color .15s, box-shadow .15s; }
.ep-field input:focus, .ep-field textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(111,202,229,.2); }
.ep-field textarea { resize: vertical; min-height: 8rem; }
.ep-submit-btn { width: 100%; height: 3.25rem; border-radius: 999px; background: var(--primary); color: #fff; border: none; cursor: pointer; font-size: .9375rem; font-weight: 700; box-shadow: var(--shadow-btn); transition: filter .15s; }
.ep-submit-btn:hover { filter: brightness(1.05); }

/* ============================================================
   SHIPPING
   ============================================================ */
.ep-shipping-grid { display: grid; gap: 1.25rem; margin-top: 2rem; }
@media (min-width: 768px) { .ep-shipping-grid { grid-template-columns: repeat(3,1fr); } }
.ep-shipping-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.75rem; box-shadow: var(--shadow-card); }
.ep-shipping-card__icon { width: 2.75rem; height: 2.75rem; border-radius: .75rem; background: var(--primary-light); display: grid; place-items: center; }
.ep-shipping-card__icon svg { width: 1.375rem; height: 1.375rem; color: var(--primary); }
.ep-shipping-card h3 { margin-top: .875rem; font-size: 1.0625rem; }
.ep-shipping-card__badge { display: inline-block; margin-top: .5rem; background: var(--primary-light); color: var(--primary); font-size: .6875rem; font-weight: 700; padding: .2rem .75rem; border-radius: 999px; }
.ep-shipping-options { margin-top: 1rem; display: flex; flex-direction: column; gap: .5rem; }
.ep-shipping-option { display: flex; justify-content: space-between; align-items: center; padding: .75rem 1rem; border-radius: .75rem; background: var(--muted); font-size: .875rem; }
.ep-shipping-option__name { font-weight: 600; color: var(--heading); }
.ep-shipping-option__days { font-size: .6875rem; color: var(--muted-foreground); margin-top: .1rem; }
.ep-shipping-option__price { font-weight: 700; color: var(--primary); }
.ep-shipping-features { margin-top: 1rem; display: flex; flex-direction: column; gap: .375rem; }
.ep-shipping-features li { display: flex; align-items: center; gap: .5rem; font-size: .8125rem; color: var(--muted-foreground); }
.ep-shipping-features li::before { content: '✓'; color: var(--primary); font-weight: 700; }

/* ============================================================
   WHOLESALE
   ============================================================ */
.ep-wholesale-hero { background: linear-gradient(to bottom, var(--primary-light), var(--background)); padding-block: 4rem 5rem; text-align: center; }
.ep-wholesale-hero p { color: var(--primary); font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.ep-wholesale-hero h1 { margin-top: .75rem; font-size: clamp(2rem,5vw,3.75rem); }
.ep-wholesale-hero__sub { margin-top: 1.25rem; color: var(--muted-foreground); max-width: 40rem; margin-inline: auto; font-size: 1rem; line-height: 1.7; }
.ep-wholesale-hero__ctas { margin-top: 2rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.ep-benefits-grid { display: grid; gap: 1.25rem; margin-top: 2.5rem; }
@media (min-width: 640px)  { .ep-benefits-grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px) { .ep-benefits-grid { grid-template-columns: repeat(3,1fr); } }
.ep-benefit-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.5rem; box-shadow: var(--shadow-card); }
.ep-benefit-card__icon { width: 2.75rem; height: 2.75rem; border-radius: .75rem; background: var(--primary-light); display: grid; place-items: center; }
.ep-benefit-card__icon svg { width: 1.25rem; height: 1.25rem; color: var(--primary); }
.ep-benefit-card h3 { margin-top: .875rem; font-size: .9375rem; }
.ep-benefit-card p { margin-top: .375rem; font-size: .875rem; color: var(--muted-foreground); line-height: 1.65; }

/* ============================================================
   WOOCOMMERCE OVERRIDES — force nos styles partout
   ============================================================ */
/* Remove WC default sidebar on shop */
.woocommerce .woocommerce-notices-wrapper { margin-bottom: 1rem; }
.woocommerce .woocommerce-breadcrumb { color: var(--muted-foreground); font-size: .8125rem; margin-bottom: 1.25rem; font-family: inherit; }
.woocommerce .woocommerce-breadcrumb a { color: var(--muted-foreground); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--primary); }

/* WC form fields */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
  width: 100%; height: 2.75rem; padding: 0 1rem;
  border: 1.5px solid var(--border); border-radius: .75rem;
  background: var(--card); color: var(--heading);
  font-family: inherit; font-size: .9375rem; outline: none;
  transition: border-color .15s, box-shadow .15s;
  box-shadow: none;
}
.woocommerce form .form-row textarea { height: 8rem; padding: .75rem 1rem; resize: vertical; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(111,202,229,.2); }
.woocommerce form .form-row label { font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--muted-foreground); display: block; margin-bottom: .375rem; }
.woocommerce form .form-row .required { color: var(--primary); }

/* WC buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background: var(--primary) !important; color: #fff !important;
  border-radius: 999px; border: none;
  height: 3rem; padding: 0 1.5rem;
  font-size: .875rem; font-weight: 700;
  font-family: inherit; font-style: normal;
  box-shadow: var(--shadow-btn);
  transition: filter .15s; cursor: pointer;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover { filter: brightness(1.05); background: var(--primary) !important; color: #fff !important; }

/* WC pagination */
.woocommerce nav.woocommerce-pagination ul { display: flex; gap: .375rem; flex-wrap: wrap; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { border-color: var(--border); color: var(--heading); border-radius: .625rem; font-family: inherit; padding: .375rem .75rem; min-width: 2.25rem; display: grid; place-items: center; }
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--primary); color: #fff; border-color: var(--primary); }

/* WC notices */
.woocommerce-message, .woocommerce-info { background: var(--primary-light); border-top-color: var(--primary); color: var(--heading); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--primary); }

/* WC star ratings */
.woocommerce .star-rating span::before { color: var(--primary); }

/* Generic page WC content */
.wc-content { color: var(--foreground); font-size: .9375rem; line-height: 1.75; }
.wc-content > * + * { margin-top: .875rem; }
.wc-content h1,.wc-content h2,.wc-content h3 { color: var(--primary); font-weight: 700; }
.wc-content strong,.wc-content b { color: var(--primary); font-weight: 700; }
.wc-content ul { list-style: disc; padding-left: 1.25rem; }
.wc-content ol { list-style: decimal; padding-left: 1.25rem; }
.wc-content ul li::marker { color: var(--primary); }
.wc-content a { color: var(--primary); text-decoration: underline; }

/* ============================================================
   WHATSAPP BUTTON
   ============================================================ */
.ep-whatsapp-btn { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 50; width: 3.5rem; height: 3.5rem; border-radius: 999px; background: #25D366; color: #fff; display: grid; place-items: center; box-shadow: 0 4px 20px rgba(37,211,102,.45); transition: transform .2s, box-shadow .2s; text-decoration: none; }
.ep-whatsapp-btn:hover { transform: scale(1.08); box-shadow: 0 6px 28px rgba(37,211,102,.55); text-decoration: none; }
.ep-whatsapp-btn svg { width: 1.75rem; height: 1.75rem; }

/* ============================================================
   BREADCRUMB
   ============================================================ */
.ep-breadcrumb { font-size: .8125rem; color: var(--muted-foreground); display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.ep-breadcrumb a { color: var(--muted-foreground); text-decoration: none; }
.ep-breadcrumb a:hover { color: var(--primary); }
.ep-breadcrumb span { color: var(--heading); font-weight: 500; }
.ep-breadcrumb svg { width: .75rem; height: .75rem; }

/* ============================================================
   RESPONSIVE UTILITIES
   ============================================================ */
@media (max-width: 767px) {
  .ep-hero__sub { font-size: .9375rem; }
  .ep-products-grid { gap: .875rem; }
}
@media print {
  .ep-announcement-bar, .ep-header, .ep-footer, .ep-whatsapp-btn { display: none; }
}

/* ============================================================
   ATC BUTTONS — responsive + texte centré partout (patch v7)
   ============================================================ */

/* ── Shared base for ALL ATC buttons sitewide ── */
.ep-product-card__atc,
.ep-bs-atc-btn,
.ep-arch-atc,
.ep-pc-atc,
.ep-product-atc {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  gap: .375rem;
  white-space: nowrap;
  overflow: hidden;
  font-family: inherit;
}

/* ── Homepage product cards (Recommended / Best Sellers grid) ── */
.ep-product-card__atc {
  width: 100%;
  height: 2.5rem;
  padding: 0 .5rem;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 600;
}
@media (min-width: 640px) {
  .ep-product-card__atc { height: 2.75rem; font-size: .8125rem; border-radius: .75rem; }
}

/* ── Best Sellers specific ATC ── */
.ep-bs-atc-btn {
  flex: 1;
  height: 2.5rem;
  padding: 0 .5rem;
  border-radius: .75rem;
  font-size: .75rem;
  font-weight: 600;
  min-width: 0;
}
@media (min-width: 640px) {
  .ep-bs-atc-btn { height: 2.75rem; font-size: .8125rem; }
}
.ep-bs-atc-btn svg { width: .875rem; height: .875rem; flex-shrink: 0; }
@media (min-width: 640px) { .ep-bs-atc-btn svg { width: 1rem; height: 1rem; } }

/* ── Archive (Shop page) ATC ── */
.ep-arch-atc {
  flex: 1;
  height: 2.5rem;
  padding: 0 .375rem;
  border-radius: .75rem;
  font-size: .7rem;
  min-width: 0;
}
@media (min-width: 480px) { .ep-arch-atc { font-size: .75rem; } }
@media (min-width: 768px) { .ep-arch-atc { height: 2.75rem; font-size: .8125rem; } }
.ep-arch-atc svg { width: .875rem; height: .875rem; flex-shrink: 0; }
@media (min-width: 768px) { .ep-arch-atc svg { width: 1rem; height: 1rem; } }

/* ── Single product page ATC ── */
.ep-product-atc {
  width: 100%;
  height: 3.25rem;
  padding: 0 1rem;
  border-radius: 999px;
  font-size: .9375rem;
  font-weight: 700;
}
.ep-product-atc svg { width: 1.125rem; height: 1.125rem; }

/* Wishlist buttons — also responsive */
.ep-bs-wish-btn,
.ep-arch-wish,
.ep-pc-wish {
  flex-shrink: 0;
  display: grid;
  place-items: center;
}
.ep-bs-wish-btn { width: 2.5rem; height: 2.5rem; }
@media (min-width: 640px) { .ep-bs-wish-btn { width: 2.75rem; height: 2.75rem; } }
.ep-arch-wish { width: 2.5rem; height: 2.5rem; }
@media (min-width: 768px) { .ep-arch-wish { width: 2.75rem; height: 2.75rem; } }

/* Cart checkout button */
.ep-checkout-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

/* ── WooCommerce default buttons also centered ── */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

/* ── Force text centering on any atc-like button ── */
[class*="ep-"][class*="atc"],
[class*="ep-"][class*="btn"],
.ep-checkout-btn,
.ep-submit-btn,
.ep-btn-primary,
.ep-btn-outline {
  text-align: center;
}


/* ── Place Order button (WC 9.x compat) ── */
.ep-place-order-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .5rem;
  width: 100%;
  height: 3.25rem;
  border-radius: 999px !important;
  background: var(--primary) !important;
  color: #fff !important;
  font-size: .9375rem !important;
  font-weight: 700 !important;
  border: none !important;
  cursor: pointer;
  box-shadow: var(--shadow-btn) !important;
  transition: filter .15s !important;
  letter-spacing: .02em;
  text-transform: none !important;
}
.ep-place-order-btn:hover { filter: brightness(1.06); color: #fff !important; }

/* ================================================================
   SHARED PRODUCT CARD STYLES — used by archive-product.php + search.php
   ================================================================ */
.ep-arch-card { display:flex; flex-direction:column; height:100%; background:var(--card); border:1px solid var(--border); border-radius:1rem; overflow:hidden; box-shadow:var(--shadow-card); transition:transform .3s,box-shadow .3s; }
.ep-arch-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-card-hover); }
.ep-arch-card-img { position:relative; height:10rem; flex-shrink:0; background:#fff; display:flex; align-items:center; justify-content:center; padding:.75rem 1rem; text-decoration:none; overflow:hidden; }
@media(min-width:768px){ .ep-arch-card-img { height:12rem; } }
.ep-arch-card-img img { max-height:100%; width:auto; object-fit:contain; transition:transform .5s; }
.ep-arch-card:hover .ep-arch-card-img img { transform:scale(1.05); }
.ep-arch-card-body { display:flex; flex-direction:column; flex:1; min-width:0; padding:.75rem 1rem; padding-top:.625rem; border-top:1px solid var(--border); }
.ep-arch-card-name { display:block; color:var(--heading); font-weight:600; font-size:.875rem; line-height:1.35; text-decoration:none; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
@media(min-width:768px){ .ep-arch-card-name { font-size:1rem; } }
.ep-arch-card-name:hover { color:var(--primary); }
.ep-arch-card-strength { color:var(--muted-foreground); font-size:.75rem; margin-top:.25rem; height:1.25rem; overflow:hidden; }
@media(min-width:768px){ .ep-arch-card-strength { font-size:.875rem; height:1.375rem; } }
.ep-arch-card-price { color:var(--heading); font-weight:700; font-size:1rem; margin:.375rem 0 0; line-height:1.75; }
@media(min-width:768px){ .ep-arch-card-price { font-size:1.125rem; } }
.ep-arch-card-actions { margin-top:auto; padding-top:.75rem; display:flex; align-items:center; gap:.375rem; }
@media(min-width:768px){ .ep-arch-card-actions { gap:.5rem; } }

/* ================================================================
   WOOCOMMERCE NOTICES — responsive global (checkout, cart, etc.)
   ================================================================ */

/* Reset WC default notice styles */
.woocommerce-notices-wrapper { margin-bottom: 1rem; }
.woocommerce-error,
ul.woocommerce-error {
  list-style: none !important;
  padding: 1rem 1.125rem !important;
  border-radius: .875rem !important;
  background: #FEF2F2 !important;
  border: 1px solid #FECACA !important;
  border-left: 4px solid #E24B4A !important;
  color: #B91C1C !important;
  font-size: .875rem !important;
  line-height: 1.6 !important;
  margin: 0 0 1.25rem !important;
}
.woocommerce-error::before,
ul.woocommerce-error::before { display: none !important; }
.woocommerce-error strong,
ul.woocommerce-error strong { color: #991B1B; }
ul.woocommerce-error li { margin: .2rem 0; }

.woocommerce-message {
  padding: 1rem 1.125rem !important;
  border-radius: .875rem !important;
  background: #F0FDF4 !important;
  border-left: 4px solid #22C55E !important;
  color: #15803D !important;
  font-size: .875rem !important;
  margin: 0 0 1.25rem !important;
}
.woocommerce-message::before { display: none !important; }

.woocommerce-info {
  padding: 1rem 1.125rem !important;
  border-radius: .875rem !important;
  background: var(--primary-light) !important;
  border-left: 4px solid var(--primary) !important;
  color: var(--heading) !important;
  font-size: .875rem !important;
  margin: 0 0 1.25rem !important;
}
.woocommerce-info::before { display: none !important; }

/* ── Checkout responsive: colonne gauche full width mobile ── */
@media (max-width: 1023px) {
  .ep-co-grid { grid-template-columns: 1fr !important; }
  .ep-co-aside { position: static !important; }
}
@media (max-width: 639px) {
  .ep-co-box { padding: 1.125rem !important; }
  .ep-co-fields { grid-template-columns: 1fr !important; }
  .ep-co-aside { padding: 1.125rem !important; }
}

/* ================================================================
   SHIPPING — WooCommerce native structure styles
   ================================================================ */

/* ── Checkout : table review-order native ── */
/* [removed obsolete custom checkout style] */

/* ── Cart : shipping methods (wc_cart_totals_shipping_html) ── */
.ep-cart-ship-block .woocommerce-shipping-methods {
  list-style: none; margin: .375rem 0 0; padding: 0;
  display: flex; flex-direction: column; gap: .375rem;
}
.ep-cart-ship-block .woocommerce-shipping-methods li {
  display: flex; align-items: center; gap: .5rem;
  font-size: .8125rem; color: var(--heading);
}
.ep-cart-ship-block .woocommerce-shipping-methods input[type="radio"] {
  accent-color: var(--primary);
}
.ep-cart-ship-block .woocommerce-shipping-methods .woocommerce-Price-amount {
  font-weight: 600;
}
/* "Shipping to X" notice */
.ep-cart-ship-block .woocommerce-shipping-destination {
  font-size: .75rem; color: var(--muted-foreground); margin: .375rem 0 0;
}

/* ── Cart : Shipping calculator form ── */
.shipping-calculator-form {
  margin-top: .75rem;
  padding-top: .75rem;
  border-top: 1px solid var(--border);
}
.shipping-calculator-form p { margin: 0 0 .5rem; }
.shipping-calculator-form .form-row {
  margin: 0 0 .5rem;
}
.shipping-calculator-form .select2-container,
.shipping-calculator-form input.input-text,
.shipping-calculator-form select {
  width: 100% !important;
  height: 2.5rem;
  padding: 0 .75rem;
  border: 1px solid var(--border);
  border-radius: .5rem;
  font-family: inherit;
  font-size: .8125rem;
  background: var(--card);
  color: var(--heading);
  outline: none;
}
.shipping-calculator-form input.input-text:focus { border-color: var(--primary); }
.shipping-calculator-form .button {
  margin-top: .5rem;
  width: 100%;
  height: 2.5rem;
  border-radius: .5rem;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--heading);
  font-family: inherit;
  font-size: .8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: border-color .15s, color .15s;
}
.shipping-calculator-form .button:hover { border-color: var(--primary); color: var(--primary); }
/* Toggle link */
a.shipping-calculator-button {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .75rem; color: var(--primary);
  text-decoration: none; margin-top: .375rem;
}
a.shipping-calculator-button:hover { text-decoration: underline; }
