/*
Theme Name: Essential Peptides
Theme URI: https://essential-peptides.com
Description: Thème WooCommerce pour Essential Peptides — clone fidèle du design Lovable.dev
Author: Essential Peptides
Version: 2.0.0
Text Domain: essential-peptides
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 */
.ep-logo { font-weight: 800; color: var(--primary); font-size: .8rem; line-height: 1.1; letter-spacing: -.01em; flex-shrink: 0; text-decoration: none; }
.ep-logo:hover { text-decoration: none; color: var(--primary); }

/* 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; }

/* ============================================================
   WISHLIST
   ============================================================ */

.ep-wishlist-btn {
    transition:
        color .15s ease,
        border-color .15s ease,
        transform .15s ease;
}

.ep-wishlist-btn.is-wishlisted {
    color: #6FCAE5 !important;
    border-color: #6FCAE5 !important;
}

.ep-wishlist-btn.is-wishlisted svg {
    fill: currentColor;
}

.ep-wishlist-btn:active {
    transform: scale(.94);
}


/* Wishlist page wrapper */
.ep-account-wishlist {
    width: 100%;
}

.ep-account-wishlist h2 {
    margin-bottom: 1.5rem;
}


/* Product grid */
.ep-wishlist-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    width: 100%;
}


/* Card */
.ep-wishlist-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: var(--shadow-card);
}

.ep-wishlist-card__image {
    height: 11rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: #fff;
}

.ep-wishlist-card__image img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    object-fit: contain;
}

.ep-wishlist-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1rem;
    border-top: 1px solid var(--border);
}

.ep-wishlist-card__name {
    display: block;
    color: var(--heading);
    text-decoration: none;
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.4;
}

.ep-wishlist-card__price {
    margin-top: .65rem;
    color: var(--heading);
    font-weight: 700;
    font-size: 1rem;
}

.ep-wishlist-card__actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: auto;
    padding-top: 1rem;
}


/* Add to cart */
.ep-wishlist-card__actions .ep-product-card__atc {
    flex: 1;
    min-width: 0;
    height: 2.75rem;
    padding: 0 .8rem;
    border-radius: .75rem;
    border: none;
    background: var(--primary);
    color: #fff;
    font-family: inherit;
    font-size: .8rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}


/* Heart */
.ep-wishlist-remove {
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: .75rem;
    border: 1px solid var(--border);
    background: #fff;
    cursor: pointer;
}

.ep-wishlist-remove svg {
    width: 17px;
    height: 17px;
}


/* Tablet */
@media (min-width: 768px) {

    .ep-wishlist-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.25rem;
    }

    .ep-wishlist-card__image {
        height: 13rem;
    }
}


/* Desktop */
@media (min-width: 1024px) {

    .ep-wishlist-grid {
        grid-template-columns: repeat(3, minmax(220px, 1fr));
        gap: 1.5rem;
    }

    .ep-wishlist-card__image {
        height: 14rem;
    }

    .ep-wishlist-card__name {
        font-size: 1rem;
    }

    .ep-wishlist-card__price {
        font-size: 1.125rem;
    }
}


/* Large desktop */
@media (min-width: 1280px) {

    .ep-wishlist-grid {
        grid-template-columns: repeat(4, minmax(220px, 1fr));
    }
}

/* ============================================================
   MY ACCOUNT — LOGGED IN
   ============================================================ */

body.logged-in.woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
}

body.logged-in.woocommerce-account .woocommerce {
    max-width: 980px;
    margin: 0 auto;
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-content {
    min-height: 220px;
}

/* Account navigation */
body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 100%;
    float: none;
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-card);
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--border);
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation li:last-child {
    border-bottom: 0;
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation li::marker {
    content: "";
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation a {
    display: block;
    padding: .9rem 1rem;
    font-size: .875rem;
    font-weight: 500;
    color: var(--heading);
    text-decoration: none;
    transition: background .15s, color .15s;
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
    background: var(--primary-light);
    color: var(--primary);
    text-decoration: none;
}

body.logged-in.woocommerce-account
.woocommerce-MyAccount-navigation-link.is-active a {
    background: var(--primary-light);
    color: var(--primary);
    font-weight: 700;
    box-shadow: inset 3px 0 0 var(--primary);
}


/* Main content */
body.logged-in.woocommerce-account .woocommerce-MyAccount-content {
    width: 100%;
    float: none;
    min-width: 0;
    padding: 1.75rem;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-content p {
    font-size: .9375rem;
    line-height: 1.75;
    color: var(--foreground);
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-content a {
    color: var(--primary);
}


/* Mobile */
@media (max-width: 767px) {

    body.logged-in.woocommerce-account .woocommerce {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    body.logged-in.woocommerce-account .woocommerce-MyAccount-content {
        padding: 1.25rem;
    }

}

/* Fix WooCommerce notices taking a My Account grid column */
body.logged-in.woocommerce-account
.woocommerce > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
    width: 100%;
    margin: 0;
}

/* Hide it completely when empty */
body.logged-in.woocommerce-account
.woocommerce > .woocommerce-notices-wrapper:empty {
    display: none;
}

/* ============================================================
   MY ACCOUNT — GRID PLACEMENT FIX
   ============================================================ */

@media (min-width: 768px) {

    body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    body.logged-in.woocommerce-account .woocommerce-MyAccount-content {
        grid-column: 2 !important;
        grid-row: 1 !important;
    }

    body.logged-in.woocommerce-account
    .woocommerce > .woocommerce-notices-wrapper {
        display: none !important;
    }

}

/* ============================================================
   MY ACCOUNT — ORDERS
   ============================================================ */

.ep-account-section-head {
    margin-bottom: 1.5rem;
}

.ep-account-section-head h2 {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--heading);
}

.ep-account-section-head p {
    margin-top: .35rem;
    color: var(--muted-foreground);
    font-size: .875rem;
}

.ep-orders-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ep-order-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 1rem;
    padding: 1.25rem;
}

.ep-order-card__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}

.ep-order-card__label {
    display: block;
    font-size: .6875rem;
    color: var(--muted-foreground);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: .2rem;
}

.ep-order-card__top strong {
    font-size: 1rem;
    color: var(--heading);
}

.ep-order-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
    padding: 0 .8rem;
    border-radius: 999px;
    background: var(--primary-light);
    color: var(--primary);
    font-size: .75rem;
    font-weight: 700;
    white-space: nowrap;
}

.ep-order-card__details {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    padding: 1rem 0;
}

.ep-order-card__details span {
    display: block;
    font-size: .6875rem;
    color: var(--muted-foreground);
    margin-bottom: .2rem;
}

.ep-order-card__details strong {
    font-size: .875rem;
    color: var(--heading);
}

.ep-order-card__actions {
    display: flex;
    justify-content: flex-end;
}

.ep-order-view {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    padding: 0 1rem;
    border-radius: 999px;
    background: var(--primary);
    color: #fff !important;
    font-size: .8125rem;
    font-weight: 700;
    text-decoration: none !important;
    box-shadow: var(--shadow-btn);
}

.ep-order-view:hover {
    filter: brightness(1.05);
}

.ep-account-empty {
    text-align: center;
    padding: 2rem 1rem;
}

.ep-account-empty h2 {
    font-size: 1.25rem;
    margin-bottom: .5rem;
}

.ep-account-empty p {
    color: var(--muted-foreground);
    margin-bottom: 1.25rem;
}

@media (max-width: 600px) {

    .ep-order-card__details {
        grid-template-columns: 1fr;
        gap: .75rem;
    }

    .ep-order-card__top {
        flex-direction: column;
    }

    .ep-order-card__actions {
        justify-content: stretch;
    }

    .ep-order-view {
        width: 100%;
    }
}

/* Keep order total £ and amount together */
.ep-order-card__details strong .woocommerce-Price-amount,
.ep-order-card__details strong .woocommerce-Price-currencySymbol {
    display: inline !important;
}

.ep-order-card__details strong {
    white-space: nowrap;
}

/* Order total — match Date & Items */
.ep-order-card__details strong .woocommerce-Price-amount,
.ep-order-card__details strong .woocommerce-Price-currencySymbol {
    font-size: .875rem !important;
    font-weight: 700 !important;
    font-family: inherit !important;
    line-height: inherit !important;
}

.ep-order-card__details strong .woocommerce-Price-amount {
    color: var(--heading) !important;
}

/* ============================================================
   MY ACCOUNT — VIEW ORDER
   ============================================================ */

/* Order intro / status */
body.logged-in.woocommerce-view-order
.woocommerce-MyAccount-content > p:first-child {
    margin: 0 0 1.5rem;
    padding: 1rem 1.15rem;
    background: var(--primary-light);
    border-left: 3px solid var(--primary);
    border-radius: .75rem;
    color: var(--heading);
    line-height: 1.6;
}


/* Section headings */
body.logged-in.woocommerce-view-order
.woocommerce-order-details__title,
body.logged-in.woocommerce-view-order
.woocommerce-column__title {
    margin: 1.5rem 0 .75rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--heading);
}


/* -------------------------
   ORDER DETAILS TABLE
-------------------------- */

body.logged-in.woocommerce-view-order
.woocommerce-order-details {
    margin-bottom: 1.75rem;
}

body.logged-in.woocommerce-view-order
table.woocommerce-table--order-details {
    width: 100%;
    margin: 0;
    border: 1px solid var(--border) !important;
    border-collapse: separate !important;
    border-spacing: 0;
    border-radius: .85rem;
    overflow: hidden;
    background: #fff;
}

body.logged-in.woocommerce-view-order
table.woocommerce-table--order-details th,
body.logged-in.woocommerce-view-order
table.woocommerce-table--order-details td {
    padding: .85rem 1rem !important;
    border: 0 !important;
    border-bottom: 1px solid var(--border) !important;
    background: #fff;
    text-align: left;
}

body.logged-in.woocommerce-view-order
table.woocommerce-table--order-details tr:last-child th,
body.logged-in.woocommerce-view-order
table.woocommerce-table--order-details tr:last-child td {
    border-bottom: 0 !important;
}


/* Header */
body.logged-in.woocommerce-view-order
table.woocommerce-table--order-details thead th {
    background: #f8fbfc;
    color: var(--heading);
    font-size: .75rem;
    font-weight: 700;
}


/* Product link */
body.logged-in.woocommerce-view-order
.woocommerce-table__product-name a {
    color: var(--primary);
    font-weight: 600;
    text-decoration: none;
}

body.logged-in.woocommerce-view-order
.woocommerce-table__product-name a:hover {
    text-decoration: underline;
}


/* Quantity */
body.logged-in.woocommerce-view-order
.product-quantity {
    color: var(--muted-foreground);
    font-size: .8rem;
}


/* Footer labels */
body.logged-in.woocommerce-view-order
table.woocommerce-table--order-details tfoot th {
    color: var(--heading);
    font-weight: 600;
}


/* Total row */
body.logged-in.woocommerce-view-order
table.woocommerce-table--order-details tfoot tr:nth-last-child(2) th,
body.logged-in.woocommerce-view-order
table.woocommerce-table--order-details tfoot tr:nth-last-child(2) td {
    font-weight: 700;
}


/* Keep £ and price together */
body.logged-in.woocommerce-view-order
.woocommerce-Price-amount,
body.logged-in.woocommerce-view-order
.woocommerce-Price-currencySymbol {
    display: inline !important;
    font-size: inherit !important;
    font-family: inherit !important;
}

body.logged-in.woocommerce-view-order
.woocommerce-Price-amount {
    white-space: nowrap;
}


/* -------------------------
   ADDRESS
-------------------------- */

body.logged-in.woocommerce-view-order
.woocommerce-customer-details {
    margin-top: 1.5rem;
}

body.logged-in.woocommerce-view-order
.woocommerce-customer-details address {
    margin: 0;
    padding: 1.1rem 1.25rem;
    background: #fff;
    border: 1px solid var(--border) !important;
    border-radius: .85rem;
    font-style: normal;
    line-height: 1.7;
    color: var(--foreground);
}


/* Email / phone */
body.logged-in.woocommerce-view-order
.woocommerce-customer-details--email,
body.logged-in.woocommerce-view-order
.woocommerce-customer-details--phone {
    margin-top: .45rem !important;
    color: var(--foreground);
}


/* -------------------------
   MOBILE
-------------------------- */

@media (max-width: 600px) {

    body.logged-in.woocommerce-view-order
    table.woocommerce-table--order-details th,
    body.logged-in.woocommerce-view-order
    table.woocommerce-table--order-details td {
        padding: .75rem !important;
    }

    body.logged-in.woocommerce-view-order
    .woocommerce-order-details__title,
    body.logged-in.woocommerce-view-order
    .woocommerce-column__title {
        font-size: 1.05rem;
    }
}

/* View Order — make Total price match other values */
body.logged-in.woocommerce-view-order
.woocommerce-table--order-details tfoot .woocommerce-Price-amount,
body.logged-in.woocommerce-view-order
.woocommerce-table--order-details tfoot .woocommerce-Price-currencySymbol {
    font-size: .875rem !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    line-height: inherit !important;
}

body.logged-in.woocommerce-view-order
.woocommerce-table--order-details tfoot td {
    font-size: .875rem !important;
    font-weight: 600 !important;
}

/* ============================================================
   MY ACCOUNT — ADDRESSES
   ============================================================ */

/* Intro text */
body.logged-in.woocommerce-edit-address
.woocommerce-MyAccount-content > p:first-child {
    margin: 0 0 1.5rem !important;
    color: var(--muted-foreground);
    line-height: 1.6;
}


/* Two address columns */
body.logged-in.woocommerce-edit-address
.woocommerce-Addresses {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin: 0 !important;
}


/* Remove WooCommerce floats */
body.logged-in.woocommerce-edit-address
.woocommerce-Address {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 1.35rem !important;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: .9rem;
}


/* Address heading area */
body.logged-in.woocommerce-edit-address
.woocommerce-Address-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--border);
}


/* Billing / Shipping heading */
body.logged-in.woocommerce-edit-address
.woocommerce-Address-title h2,
body.logged-in.woocommerce-edit-address
.woocommerce-Address-title h3 {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 1.05rem !important;
    line-height: 1.3 !important;
    color: var(--heading) !important;
    font-weight: 700 !important;
}


/* Add / Edit address link */
body.logged-in.woocommerce-edit-address
.woocommerce-Address-title a {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .45rem .8rem;
    border-radius: 999px;
    background: var(--primary-light);
    color: var(--primary) !important;
    font-size: .75rem;
    font-weight: 700;
    text-decoration: none !important;
    white-space: nowrap;
}

body.logged-in.woocommerce-edit-address
.woocommerce-Address-title a:hover {
    background: var(--primary);
    color: #fff !important;
}


/* Address text */
body.logged-in.woocommerce-edit-address
.woocommerce-Address address {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    font-style: normal;
    color: var(--foreground);
    font-size: .875rem;
    line-height: 1.7;
}


/* Empty address message */
body.logged-in.woocommerce-edit-address
.woocommerce-Address address em {
    display: block;
    color: var(--muted-foreground);
    font-style: normal;
}


/* Mobile */
@media (max-width: 700px) {

    body.logged-in.woocommerce-edit-address
    .woocommerce-Addresses {
        grid-template-columns: 1fr;
    }

    body.logged-in.woocommerce-edit-address
    .woocommerce-Address {
        padding: 1.15rem !important;
    }
}

/* Fix WooCommerce address column floats */
body.logged-in.woocommerce-edit-address
.woocommerce-Addresses .woocommerce-Address {
    float: none !important;
    width: auto !important;
}

body.logged-in.woocommerce-edit-address
.woocommerce-Addresses .woocommerce-Address.col-1,
body.logged-in.woocommerce-edit-address
.woocommerce-Addresses .woocommerce-Address.col-2 {
    float: none !important;
    width: auto !important;
    max-width: none !important;
}

/* Keep both cards aligned */
body.logged-in.woocommerce-edit-address
.woocommerce-Addresses {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.25rem !important;
    align-items: stretch;
}

@media (max-width: 700px) {
    body.logged-in.woocommerce-edit-address
    .woocommerce-Addresses {
        grid-template-columns: 1fr !important;
    }
}

/* ============================================================
   ADDRESSES — FINAL ALIGNMENT FIX
   ============================================================ */

body.logged-in.woocommerce-edit-address
.woocommerce-Addresses {
    display: flex !important;
    gap: 1.25rem !important;
    width: 100% !important;
    margin: 0 !important;
    clear: both !important;
}

body.logged-in.woocommerce-edit-address
.woocommerce-Addresses::before,
body.logged-in.woocommerce-edit-address
.woocommerce-Addresses::after {
    display: none !important;
    content: none !important;
}

body.logged-in.woocommerce-edit-address
.woocommerce-Addresses .woocommerce-Address,
body.logged-in.woocommerce-edit-address
.woocommerce-Addresses .col-1,
body.logged-in.woocommerce-edit-address
.woocommerce-Addresses .col-2 {
    flex: 1 1 0 !important;
    width: 0 !important;
    max-width: none !important;
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    position: static !important;
}

/* Mobile */
@media (max-width: 700px) {

    body.logged-in.woocommerce-edit-address
    .woocommerce-Addresses {
        flex-direction: column !important;
    }

    body.logged-in.woocommerce-edit-address
    .woocommerce-Addresses .woocommerce-Address,
    body.logged-in.woocommerce-edit-address
    .woocommerce-Addresses .col-1,
    body.logged-in.woocommerce-edit-address
    .woocommerce-Addresses .col-2 {
        width: 100% !important;
        flex: none !important;
    }
}

/* Account details — remove box around Password change */
body.logged-in.woocommerce-edit-account
.woocommerce-EditAccountForm fieldset {
    border: 0 !important;
    padding: 0 !important;
    margin: 1rem 0 !important;
    min-width: 0;
}

body.logged-in.woocommerce-edit-account
.woocommerce-EditAccountForm fieldset legend {
    padding: 0 !important;
    margin: 0 0 .75rem !important;
    font-size: .95rem;
    font-weight: 600;
    color: var(--heading);
}

/* ============================================================
   MY ACCOUNT — STOP INNER CONTENT OVERFLOW
   ============================================================ */

body.logged-in.woocommerce-account .woocommerce-MyAccount-content {
    overflow: hidden !important;
}

/* Wishlist */
body.logged-in.woocommerce-account .ep-account-wishlist,
body.logged-in.woocommerce-account .ep-wishlist-grid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

body.logged-in.woocommerce-account .ep-wishlist-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.logged-in.woocommerce-account .ep-wishlist-card {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
}


/* Addresses */
body.logged-in.woocommerce-edit-address
.woocommerce-Addresses {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

body.logged-in.woocommerce-edit-address
.woocommerce-Addresses .woocommerce-Address {
    min-width: 0 !important;
    max-width: 100% !important;
}


/* Tablet/mobile */
@media (max-width: 900px) {

    body.logged-in.woocommerce-account .ep-wishlist-grid {
        grid-template-columns: 1fr !important;
    }

    body.logged-in.woocommerce-edit-address
    .woocommerce-Addresses {
        flex-direction: column !important;
    }

    body.logged-in.woocommerce-edit-address
    .woocommerce-Addresses .woocommerce-Address {
        width: 100% !important;
    }
}