/* ==========================================================================
   ELOVIA — Stylesheet principal
   Maison K-beauty française · Palette terracotta + ivoire · Fraunces + Inter
   ========================================================================== */

:root {
    /* Primaires */
    --el-primary:       #B8563B;
    --el-primary-deep:  #8F3F29;
    --el-primary-soft:  #E3B5A2;

    /* Secondaires */
    --el-ink:           #1A1614;
    --el-ink-soft:      #5C524C;

    /* Neutres */
    --el-ivory:         #FAF6F0;
    --el-sand:          #F1EBE1;
    --el-cream:         #E8DFD1;

    /* Fonctionnels */
    --el-success:       #4A7C59;
    --el-warning:       #C98A3F;
    --el-error:         #A83838;

    /* Texte */
    --el-text:          var(--el-ink);
    --el-text-muted:    #8A7F77;
    --el-text-soft:     #B8ACA0;
    --el-text-on-dark:  #FAF6F0;

    /* Bordures */
    --el-border:        #E4DACC;
    --el-border-strong: #C9BBA9;

    /* Ombres */
    --el-shadow-sm:     0 1px 2px rgba(26,22,20,0.04);
    --el-shadow-md:     0 8px 24px rgba(26,22,20,0.06);
    --el-shadow-lg:     0 24px 56px rgba(26,22,20,0.08);

    /* Typo */
    --el-fh:            'Fraunces', 'DM Serif Display', Georgia, serif;
    --el-fb:            'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;

    /* Motion */
    --el-ease:          cubic-bezier(0.4, 0, 0.2, 1);
    --el-ease-out:      cubic-bezier(0.2, 0.8, 0.2, 1);
    --el-t-fast:        0.18s;
    --el-t-base:        0.28s;
    --el-t-slow:        0.5s;

    /* Layout */
    --el-max:           1320px;
    --el-max-narrow:    800px;
    --el-radius-card:   12px;
    --el-radius-pill:   999px;
}

/* Reset + base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: hidden; }
body {
    margin: 0;
    font-family: var(--el-fb);
    font-size: 16px;
    line-height: 1.65;
    color: var(--el-text);
    background: var(--el-ivory);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a, a:link, a:visited { color: var(--el-primary-deep); text-decoration: none; transition: color var(--el-t-fast) var(--el-ease); }
a:hover, a:focus { color: var(--el-primary); }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; font-size: inherit; }

h1, h2, h3, h4 {
    font-family: var(--el-fh);
    color: var(--el-ink);
    font-weight: 400;
    letter-spacing: -0.015em;
    margin: 0 0 0.5em;
}
h1 { font-size: clamp(34px, 5vw, 64px); line-height: 1.08; letter-spacing: -0.02em; }
h2 { font-size: clamp(28px, 3.6vw, 44px); line-height: 1.15; }
h3 { font-size: clamp(20px, 2.2vw, 26px); line-height: 1.25; font-weight: 500; }
h4 {
    font-family: var(--el-fb);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--el-primary-deep);
}

em { font-family: var(--el-fh); font-style: italic; font-weight: 400; }

p { margin: 0 0 1.2em; }
ul, ol { margin: 0 0 1.2em; padding-left: 1.2em; }

/* Accessibility */
.screen-reader-text {
    position: absolute !important; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.el-skip {
    position: absolute; left: -9999px; top: 0;
    background: var(--el-primary); color: var(--el-ivory);
    padding: 10px 20px; z-index: 9999;
}
.el-skip:focus { left: 12px; top: 12px; }
:focus-visible { outline: 2px solid var(--el-primary); outline-offset: 3px; border-radius: 3px; }

/* Layout */
.el-wrapper { width: 100%; max-width: var(--el-max); margin: 0 auto; padding: 0 24px; }
.el-wrapper--narrow { max-width: var(--el-max-narrow); }
@media (max-width: 640px) {
    .el-wrapper { padding: 0 18px; }
}
.el-main { min-height: 60vh; }
.el-eyebrow {
    display: inline-block;
    font-size: 11px; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.18em; color: var(--el-primary-deep);
    margin-bottom: 16px;
}

/* ==========================================================================
   CTAs
   ========================================================================== */
.el-cta, .el-wc-main .button, .woocommerce #respond input#submit,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce .single_add_to_cart_button {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    font-family: var(--el-fb);
    font-size: 12.5px; font-weight: 600;
    letter-spacing: 0.12em; text-transform: uppercase;
    padding: 15px 30px;
    border: 1.5px solid var(--el-primary);
    border-radius: var(--el-radius-pill);
    background: var(--el-primary);
    color: var(--el-ivory) !important;
    line-height: 1.2;
    transition: transform var(--el-t-fast) var(--el-ease),
                background var(--el-t-fast) var(--el-ease),
                box-shadow var(--el-t-base) var(--el-ease);
    cursor: pointer;
    text-decoration: none !important;
}
.el-cta:hover, .el-wc-main .button:hover, .woocommerce a.button:hover,
.woocommerce button.button:hover, .woocommerce .single_add_to_cart_button:hover {
    background: var(--el-primary-deep);
    border-color: var(--el-primary-deep);
    transform: translateY(-1px);
    box-shadow: var(--el-shadow-md);
    color: var(--el-ivory) !important;
}
.el-cta--outline, .woocommerce a.button.wc-backward {
    background: transparent;
    color: var(--el-primary) !important;
}
.el-cta--outline:hover, .woocommerce a.button.wc-backward:hover {
    background: var(--el-primary);
    color: var(--el-ivory) !important;
}
.el-cta--ghost { background: transparent; border-color: var(--el-border-strong); color: var(--el-ink) !important; }

.el-link {
    color: var(--el-primary-deep);
    font-weight: 600;
    letter-spacing: 0.02em;
    border-bottom: 1px solid transparent;
    transition: border-color var(--el-t-fast) var(--el-ease);
}
.el-link:hover { border-bottom-color: var(--el-primary); color: var(--el-primary); }

/* ==========================================================================
   Announcement bar
   ========================================================================== */
.el-announce {
    background: var(--el-ink);
    color: var(--el-text-on-dark);
    font-size: 12px; letter-spacing: 0.08em;
    padding: 10px 0;
}
.el-announce__inner {
    display: flex; justify-content: center; flex-wrap: wrap;
    gap: 14px; text-align: center;
}
@media (max-width: 640px) {
    .el-announce { font-size: 10.5px; padding: 8px 0; }
    .el-announce__inner { gap: 8px; }
}

/* ==========================================================================
   Header
   ========================================================================== */
.el-header {
    position: sticky; top: 0; z-index: 200;
    background: rgba(250, 246, 240, 0.96);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--el-border);
}
.el-header__inner {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: 24px;
    min-height: 74px;
}
.el-brand { order: 1; }
.el-brand__mark {
    font-family: var(--el-fh); font-size: 26px; letter-spacing: -0.02em;
    color: var(--el-ink);
    display: inline-flex; align-items: center;
}
.el-brand img, .el-brand .custom-logo { max-height: 42px; width: auto; }

.el-nav { order: 2; justify-self: start; padding-left: 24px; }
.el-nav__list {
    list-style: none; margin: 0; padding: 0;
    display: flex; gap: 28px;
}
.el-nav__list a {
    font-size: 14px; font-weight: 500;
    color: var(--el-ink);
    padding: 24px 0;
    display: inline-block;
    position: relative;
}
.el-nav__list a::after {
    content: ''; position: absolute;
    bottom: 16px; left: 0; right: 0; height: 1.5px;
    background: var(--el-primary);
    transform: scaleX(0); transform-origin: left;
    transition: transform var(--el-t-base) var(--el-ease-out);
}
.el-nav__list a:hover::after,
.el-nav__list .current-menu-item > a::after { transform: scaleX(1); }

.el-header__tools {
    order: 4; display: flex; align-items: center; gap: 6px;
}
.el-icon-btn {
    width: 42px; height: 42px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--el-ink);
    background: transparent; border: none; border-radius: 999px;
    cursor: pointer; position: relative;
    transition: background var(--el-t-fast) var(--el-ease);
}
.el-icon-btn:hover { background: var(--el-sand); color: var(--el-primary); }
.el-cart-count {
    position: absolute; top: 6px; right: 4px;
    min-width: 18px; height: 18px; padding: 0 5px;
    background: var(--el-primary); color: var(--el-ivory);
    border-radius: 999px;
    font-size: 10px; font-weight: 600;
    display: flex; align-items: center; justify-content: center;
}
.el-cart-count[data-count="0"] { display: none; }

.el-nav-toggle {
    display: none;
    width: 42px; height: 42px;
    background: transparent; border: none;
    flex-direction: column; gap: 4px; justify-content: center; align-items: center;
}
.el-nav-toggle span {
    display: block; width: 22px; height: 1.5px; background: var(--el-ink);
    transition: transform var(--el-t-base) var(--el-ease), opacity var(--el-t-fast);
}
.el-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.el-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.el-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }

@media (max-width: 900px) {
    .el-nav-toggle { display: flex; order: 0; }
    .el-nav {
        order: 99; grid-column: 1 / -1;
        justify-self: stretch; padding: 0;
        max-height: 0; overflow: hidden;
        transition: max-height var(--el-t-slow) var(--el-ease);
    }
    .el-nav.is-open { max-height: 600px; }
    .el-nav__list { flex-direction: column; gap: 0; padding: 16px 0 32px; border-top: 1px solid var(--el-border); }
    .el-nav__list li { border-bottom: 1px solid var(--el-border); }
    .el-nav__list a { padding: 16px 0; display: block; }
    .el-nav__list a::after { display: none; }
    .el-header__inner { grid-template-columns: auto 1fr auto; }
}

/* Search drawer */
.el-search-drawer {
    padding: 24px 0;
    border-top: 1px solid var(--el-border);
    background: var(--el-ivory);
}
.el-search-form {
    display: flex; gap: 12px; align-items: center;
}
.el-search-form input[type="search"] {
    flex: 1;
    padding: 14px 20px;
    border: 1px solid var(--el-border-strong);
    border-radius: var(--el-radius-pill);
    background: var(--el-ivory);
    font-size: 15px;
    color: var(--el-ink);
}
.el-search-form input[type="search"]:focus { border-color: var(--el-primary); outline: none; }

/* ==========================================================================
   Hero Front
   ========================================================================== */
.el-hero {
    padding: 88px 0 64px;
    background: linear-gradient(180deg, var(--el-sand) 0%, var(--el-ivory) 100%);
}
.el-hero__inner {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 56px;
    align-items: center;
}
.el-hero__title {
    font-size: clamp(40px, 6.5vw, 80px);
    line-height: 1.02;
    letter-spacing: -0.025em;
    margin: 4px 0 20px;
}
.el-hero__title em { color: var(--el-primary-deep); }
.el-hero__lede {
    font-size: clamp(16px, 1.5vw, 19px);
    line-height: 1.55;
    color: var(--el-ink-soft);
    max-width: 540px;
    margin: 0 0 32px;
}
.el-hero__ctas {
    display: flex; flex-wrap: wrap; gap: 12px;
    margin-bottom: 36px;
}
.el-hero__trust {
    list-style: none; padding: 0; margin: 0;
    display: flex; gap: 20px; flex-wrap: wrap;
    font-size: 13px; color: var(--el-ink-soft);
}
.el-hero__trust li {
    position: relative; padding-left: 18px;
}
.el-hero__trust li::before {
    content: '✦'; position: absolute; left: 0; top: 0;
    color: var(--el-primary);
}

.el-hero__media {
    position: relative; min-height: 480px;
}
.el-hero__shape {
    position: absolute; inset: 0;
    background:
        radial-gradient(ellipse at 30% 20%, var(--el-primary-soft) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 80%, var(--el-cream) 0%, transparent 65%),
        linear-gradient(135deg, var(--el-sand) 0%, var(--el-primary-soft) 100%);
    border-radius: 50% 40% 48% 50% / 55% 50% 50% 45%;
    animation: el-morph 12s var(--el-ease) infinite;
    box-shadow: var(--el-shadow-lg);
}
@keyframes el-morph {
    0%, 100% { border-radius: 50% 40% 48% 50% / 55% 50% 50% 45%; }
    33%      { border-radius: 44% 56% 40% 60% / 50% 60% 40% 50%; }
    66%      { border-radius: 52% 48% 56% 44% / 48% 52% 48% 52%; }
}

@media (max-width: 900px) {
    .el-hero { padding: 56px 0 40px; }
    .el-hero__inner { grid-template-columns: 1fr; gap: 32px; }
    .el-hero__media { min-height: 340px; order: -1; }
    .el-hero__shape { max-height: 340px; }
}

/* ==========================================================================
   Sections + headings partagés
   ========================================================================== */
.el-section {
    padding: clamp(64px, 9vw, 112px) 0;
}
.el-section--alt { background: var(--el-sand); }

.el-section__head {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 56px;
}
.el-section__title { margin-bottom: 14px; }
.el-section__sub {
    font-size: clamp(15px, 1.4vw, 17px);
    color: var(--el-ink-soft);
    line-height: 1.6;
}
.el-section__footer { text-align: center; margin-top: 48px; }

/* ==========================================================================
   Category cards (front)
   ========================================================================== */
.el-cat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.el-cat-card {
    position: relative;
    display: block;
    border-radius: var(--el-radius-card);
    overflow: hidden;
    background: var(--el-ivory);
    border: 1px solid var(--el-border);
    transition: transform var(--el-t-base) var(--el-ease),
                box-shadow var(--el-t-base) var(--el-ease);
    color: var(--el-ink);
}
.el-cat-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--el-shadow-md);
    color: var(--el-ink);
}
.el-cat-card__media {
    aspect-ratio: 4 / 3;
    background: linear-gradient(135deg, var(--el-primary-soft) 0%, var(--el-cream) 100%);
    display: flex; align-items: center; justify-content: center;
    position: relative;
}
.el-cat-card__ghost {
    font-family: var(--el-fh);
    font-size: clamp(28px, 4vw, 40px);
    color: rgba(26,22,20,0.35);
    letter-spacing: -0.02em;
}
.el-cat-card__body { padding: 24px; }
.el-cat-card__body h3 { margin: 0 0 8px; }
.el-cat-card__body p { color: var(--el-ink-soft); font-size: 14.5px; margin: 0 0 14px; }
.el-cat-card__count { font-size: 12px; color: var(--el-primary-deep); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }

@media (max-width: 900px) {
    .el-cat-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Editorial section
   ========================================================================== */
.el-editorial__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
}
.el-editorial__media { min-height: 440px; position: relative; }
.el-editorial__shape {
    position: absolute; inset: 0;
    background:
        radial-gradient(ellipse at 60% 40%, var(--el-primary) 0%, transparent 55%),
        linear-gradient(140deg, var(--el-ink) 0%, var(--el-primary-deep) 100%);
    border-radius: var(--el-radius-card);
    box-shadow: var(--el-shadow-lg);
}
.el-editorial__list { list-style: none; padding: 0; margin: 0 0 32px; }
.el-editorial__list li { padding: 10px 0; font-size: 15.5px; color: var(--el-ink-soft); border-bottom: 1px solid var(--el-border); }
.el-editorial__list li:last-child { border-bottom: none; }

@media (max-width: 900px) {
    .el-editorial__inner { grid-template-columns: 1fr; gap: 32px; }
    .el-editorial__media { min-height: 280px; order: -1; }
}

/* ==========================================================================
   Steps (4 étapes)
   ========================================================================== */
.el-steps {
    list-style: none; padding: 0; margin: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
.el-steps li {
    padding: 32px 24px;
    background: var(--el-ivory);
    border: 1px solid var(--el-border);
    border-radius: var(--el-radius-card);
}
.el-steps__num {
    font-family: var(--el-fh);
    font-size: 48px;
    color: var(--el-primary);
    line-height: 1;
    display: block;
    margin-bottom: 16px;
    letter-spacing: -0.02em;
}
.el-steps h3 { margin: 0 0 8px; font-size: 18px; }
.el-steps p { margin: 0; font-size: 14.5px; color: var(--el-ink-soft); line-height: 1.55; }

@media (max-width: 900px) {
    .el-steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
    .el-steps { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Testimonials
   ========================================================================== */
.el-testi { background: var(--el-ivory); }
.el-testi__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.el-testi__card {
    margin: 0; padding: 32px;
    background: var(--el-sand);
    border-radius: var(--el-radius-card);
    border: 1px solid var(--el-border);
}
.el-testi__card blockquote {
    margin: 0 0 20px;
    font-family: var(--el-fh);
    font-size: 18px;
    line-height: 1.5;
    color: var(--el-ink);
}
.el-testi__card figcaption {
    font-size: 13px;
    color: var(--el-ink-soft);
    font-weight: 500;
}
@media (max-width: 900px) { .el-testi__grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   FAQ
   ========================================================================== */
.el-faq { border-top: 1px solid var(--el-border); }
.el-faq details {
    border-bottom: 1px solid var(--el-border);
    padding: 18px 0;
}
.el-faq summary {
    list-style: none;
    cursor: pointer;
    font-family: var(--el-fh);
    font-size: 20px;
    color: var(--el-ink);
    padding-right: 32px;
    position: relative;
    transition: color var(--el-t-fast);
}
.el-faq summary::-webkit-details-marker { display: none; }
.el-faq summary::after {
    content: '+';
    position: absolute; right: 0; top: 50%; transform: translateY(-50%);
    font-size: 26px; color: var(--el-primary);
    transition: transform var(--el-t-base) var(--el-ease);
}
.el-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.el-faq details p {
    margin: 14px 0 0;
    color: var(--el-ink-soft);
    line-height: 1.7;
    font-size: 15px;
}

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */
.el-breadcrumbs {
    font-size: 12.5px; color: var(--el-text-muted);
    padding: 24px 0 0;
    letter-spacing: 0.02em;
}
.el-breadcrumbs a { color: var(--el-text-muted); }
.el-breadcrumbs a:hover { color: var(--el-primary); }
.el-breadcrumbs span[aria-current="page"] { color: var(--el-ink); }

/* ==========================================================================
   Shop / archive
   ========================================================================== */
.el-shop-hero {
    text-align: center;
    padding: 48px 0 36px;
}
.el-shop-hero__title {
    font-size: clamp(36px, 5vw, 56px);
    margin-bottom: 12px;
}
.el-shop-hero__desc {
    max-width: 560px; margin: 0 auto;
    color: var(--el-ink-soft); font-size: 15.5px; line-height: 1.6;
}

.el-shop { padding-bottom: 96px; }
.el-shop__toolbar {
    display: flex; justify-content: space-between; align-items: center;
    gap: 16px;
    padding: 16px 0 28px;
    border-bottom: 1px solid var(--el-border);
    margin-bottom: 40px;
    flex-wrap: wrap;
}

/* Ordering + result count */
.woocommerce-result-count {
    margin: 0; font-size: 13px; color: var(--el-text-muted);
}
.woocommerce-ordering select {
    padding: 10px 36px 10px 16px;
    border: 1px solid var(--el-border-strong);
    border-radius: var(--el-radius-pill);
    background: var(--el-ivory);
    font-size: 13px;
    color: var(--el-ink);
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231A1614' stroke-width='1.5'><path d='m6 9 6 6 6-6'/></svg>");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px;
}

/* Grid produits (WC loop) */
.woocommerce ul.products, ul.products, .el-wc-loop {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
    list-style: none;
    padding: 0; margin: 0;
}
.woocommerce ul.products li.product, ul.products li.product, .el-wc-loop li.product {
    width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important;
    background: var(--el-ivory);
    border: 1px solid var(--el-border);
    border-radius: var(--el-radius-card);
    overflow: hidden;
    transition: transform var(--el-t-base) var(--el-ease),
                box-shadow var(--el-t-base) var(--el-ease),
                border-color var(--el-t-base) var(--el-ease);
    position: relative;
}
.woocommerce ul.products li.product:hover {
    transform: translateY(-4px);
    box-shadow: var(--el-shadow-md);
    border-color: var(--el-border-strong);
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
    display: block;
    padding: 0 !important;
    color: inherit;
}
.woocommerce ul.products li.product img {
    width: 100% !important;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    background: var(--el-sand);
    margin: 0 !important;
    transition: transform var(--el-t-slow) var(--el-ease);
}
.woocommerce ul.products li.product:hover img { transform: scale(1.04); }

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
    font-family: var(--el-fh) !important;
    font-weight: 500 !important;
    font-size: 16.5px !important;
    line-height: 1.3 !important;
    color: var(--el-ink);
    margin: 16px 20px 8px !important;
    padding: 0 !important;
    text-transform: none !important;
    letter-spacing: -0.005em !important;
}
.woocommerce ul.products li.product .price {
    font-family: var(--el-fb) !important;
    color: var(--el-primary-deep) !important;
    font-weight: 600 !important;
    font-size: 15.5px !important;
    margin: 0 20px 20px !important;
    display: block;
}
.woocommerce ul.products li.product .price del {
    color: var(--el-text-muted) !important;
    font-weight: 400 !important;
    margin-right: 8px;
    opacity: 0.7;
}
.woocommerce ul.products li.product .price ins {
    background: transparent !important;
    color: var(--el-primary-deep) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
    margin: 0 20px 20px !important;
    font-size: 11.5px !important;
    padding: 11px 20px !important;
    letter-spacing: 0.1em !important;
}

@media (max-width: 1100px) { .woocommerce ul.products, .el-wc-loop { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 800px)  { .woocommerce ul.products, .el-wc-loop { grid-template-columns: repeat(2, 1fr); gap: 16px; } }
@media (max-width: 420px)  { .woocommerce ul.products, .el-wc-loop { grid-template-columns: 1fr; } }

/* Badges maison */
.el-badges {
    position: absolute; top: 14px; left: 14px; right: 14px; z-index: 2;
    display: flex; flex-wrap: wrap; gap: 6px;
    pointer-events: none;
}
.el-badge {
    display: inline-block;
    padding: 5px 10px;
    font-family: var(--el-fb);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border-radius: var(--el-radius-pill);
}
.el-badge--primary { background: var(--el-primary); color: var(--el-ivory); }
.el-badge--soft    { background: var(--el-primary-soft); color: var(--el-primary-deep); }
.el-badge--success { background: var(--el-success); color: var(--el-ivory); }
.el-badge--warn    { background: var(--el-warning); color: var(--el-ivory); }

/* Pagination */
.woocommerce nav.woocommerce-pagination, .el-pagination {
    text-align: center; margin-top: 48px;
}
.woocommerce nav.woocommerce-pagination ul, .el-pagination .page-numbers {
    display: inline-flex !important; gap: 8px;
    border: none !important;
    list-style: none; padding: 0; margin: 0;
}
.woocommerce nav.woocommerce-pagination ul li { border: none !important; margin: 0 !important; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.el-pagination a, .el-pagination span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 44px; height: 44px;
    padding: 0 14px;
    border: 1px solid var(--el-border-strong) !important;
    border-radius: var(--el-radius-pill) !important;
    background: var(--el-ivory) !important;
    color: var(--el-ink) !important;
    font-size: 13px; font-weight: 500;
    transition: all var(--el-t-fast);
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.el-pagination span.current {
    background: var(--el-primary) !important;
    color: var(--el-ivory) !important;
    border-color: var(--el-primary) !important;
}

/* ==========================================================================
   Single product
   ========================================================================== */
.el-product { padding: 32px 0 96px; }
.el-product__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: start;
}

/* Galerie */
.woocommerce div.product div.images {
    position: sticky; top: 100px;
    width: 100% !important;
    margin: 0 !important;
    opacity: 1 !important;
}
.woocommerce div.product .woocommerce-product-gallery {
    opacity: 1 !important;
}
.woocommerce-product-gallery__wrapper {
    display: block;
}
.woocommerce-product-gallery__image {
    display: block;
}
.woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--el-radius-card);
    background: var(--el-sand);
}
.woocommerce div.product div.images .flex-control-thumbs {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
    padding: 12px 0 0 !important;
    margin: 0 !important;
}
.woocommerce div.product div.images .flex-control-thumbs li {
    width: auto !important; margin: 0 !important;
}
.woocommerce div.product div.images .flex-control-thumbs li img {
    border-radius: 8px;
    border: 1px solid var(--el-border);
    cursor: pointer;
    transition: border-color var(--el-t-fast);
}
.woocommerce div.product div.images .flex-control-thumbs li img:hover,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
    border-color: var(--el-primary);
    opacity: 1;
}
.woocommerce div.product div.images img {
    border-radius: var(--el-radius-card);
    background: var(--el-sand);
}

/* Summary */
.el-product__summary, .woocommerce div.product div.summary {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}
.woocommerce div.product .product_title {
    font-size: clamp(30px, 3.8vw, 42px) !important;
    line-height: 1.1 !important;
    margin: 6px 0 16px !important;
    letter-spacing: -0.02em;
}
.woocommerce div.product p.price, .woocommerce div.product span.price {
    font-family: var(--el-fb) !important;
    font-size: 26px !important;
    font-weight: 600 !important;
    color: var(--el-primary-deep) !important;
    margin: 0 0 20px !important;
    letter-spacing: -0.005em;
}
.woocommerce div.product p.price del, .woocommerce div.product span.price del {
    color: var(--el-text-muted) !important;
    font-weight: 400 !important;
    font-size: 18px !important;
    margin-right: 12px;
    opacity: 0.7;
}
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins {
    background: transparent !important;
    color: var(--el-primary-deep) !important;
    text-decoration: none !important;
    font-weight: 600 !important;
}

.woocommerce-product-details__short-description {
    font-size: 16px;
    line-height: 1.7;
    color: var(--el-ink-soft);
    padding: 20px 0;
    border-top: 1px solid var(--el-border);
    border-bottom: 1px solid var(--el-border);
    margin: 0 0 28px;
}

.woocommerce div.product form.cart {
    margin: 24px 0 !important;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
}
.woocommerce div.product form.cart .quantity {
    display: block;
    margin: 0 !important;
}
.woocommerce .quantity .qty {
    width: 100% !important;
    max-width: 140px;
    height: 52px;
    padding: 0 14px;
    border: 1.5px solid var(--el-border-strong);
    border-radius: var(--el-radius-pill);
    background: var(--el-ivory) !important;
    color: var(--el-ink) !important;
    text-align: center;
    font-size: 15px;
    font-weight: 500;
}
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart button.single_add_to_cart_button {
    width: 100%;
    min-height: 54px;
    font-size: 13px !important;
    padding: 16px 32px !important;
    background: var(--el-primary) !important;
    border-color: var(--el-primary) !important;
    color: var(--el-ivory) !important;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
    background: var(--el-primary-deep) !important;
    border-color: var(--el-primary-deep) !important;
    color: var(--el-ivory) !important;
}
.woocommerce .added_to_cart {
    color: var(--el-primary-deep) !important;
    font-weight: 600;
    display: inline-block;
    margin-top: 10px;
}

.el-product__trust {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin: 28px 0;
    padding: 20px 0;
    border-top: 1px solid var(--el-border);
    border-bottom: 1px solid var(--el-border);
}
.el-product__trust > div { font-size: 13px; line-height: 1.4; }
.el-product__trust strong { display: block; color: var(--el-ink); font-weight: 600; font-size: 13px; }
.el-product__trust span { color: var(--el-text-muted); font-size: 12px; }

.woocommerce div.product .product_meta {
    font-size: 12.5px !important;
    color: var(--el-text-muted);
    padding: 18px 0 0 !important;
    border-top: 1px solid var(--el-border);
    line-height: 1.9;
}
.woocommerce div.product .product_meta > span { display: block; }

/* Tabs */
.el-product__details { margin-top: 72px; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
    padding: 0 !important;
    margin: 0 0 32px !important;
    border-bottom: 1px solid var(--el-border) !important;
    display: flex; gap: 32px;
    list-style: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    padding: 16px 0 !important;
    color: var(--el-text-muted) !important;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    border-bottom: 2px solid transparent;
    transition: color var(--el-t-fast), border-color var(--el-t-fast);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--el-primary-deep) !important;
    border-bottom-color: var(--el-primary) !important;
}
.woocommerce div.product .woocommerce-tabs .panel {
    padding: 0 !important;
    max-width: 800px;
    font-size: 15.5px;
    line-height: 1.8;
    color: var(--el-ink-soft);
}

/* Descriptions custom (bullets ✦) */
.el-lede {
    font-family: var(--el-fh);
    font-size: 19px;
    line-height: 1.45;
    color: var(--el-ink);
    margin: 0 0 16px;
}
.el-bullets {
    list-style: none;
    padding: 20px 24px;
    margin: 24px 0;
    background: var(--el-sand);
    border-radius: var(--el-radius-card);
    border-left: 3px solid var(--el-primary);
}
.el-bullets li {
    padding: 6px 0;
    font-size: 14.5px;
    color: var(--el-ink);
    line-height: 1.55;
}
.el-bullets li strong { color: var(--el-ink); font-weight: 600; }
.el-note {
    font-size: 14px;
    color: var(--el-text-muted);
    font-style: italic;
    padding: 12px 0;
    border-top: 1px dashed var(--el-border);
    margin-top: 24px;
}

/* Related */
.el-product__related, .woocommerce .related.products {
    margin-top: 96px !important;
    padding-top: 64px;
    border-top: 1px solid var(--el-border);
}
.woocommerce .related.products h2 {
    text-align: center;
    font-size: clamp(28px, 3.2vw, 38px) !important;
    margin-bottom: 40px;
}

/* Editorial strip single */
.el-product__editorial {
    margin-top: 96px;
    padding: 64px 40px;
    background: var(--el-sand);
    border-radius: var(--el-radius-card);
}
.el-product__editorial-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}
.el-product__editorial h3 {
    font-size: 18px;
    margin: 0 0 10px;
    color: var(--el-ink);
}
.el-product__editorial p {
    font-size: 14.5px;
    color: var(--el-ink-soft);
    line-height: 1.6;
    margin: 0;
}

@media (max-width: 900px) {
    .el-product__grid { grid-template-columns: 1fr; gap: 32px; }
    .woocommerce div.product div.images { position: static; }
    .el-product__editorial { padding: 40px 24px; }
    .el-product__editorial-grid { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 640px) {
    .el-product { padding: 20px 0 64px; }
    .el-product__grid { gap: 24px; }
    .el-product__trust {
        grid-template-columns: 1fr;
        gap: 14px;
        margin: 22px 0;
        padding: 18px 0;
    }
    .el-product__details { margin-top: 48px; }
    .el-product__related, .woocommerce .related.products { margin-top: 64px !important; padding-top: 40px; }
    .el-product__editorial { margin-top: 64px; padding: 32px 20px; }
    .woocommerce div.product .woocommerce-tabs ul.tabs { gap: 18px; flex-wrap: wrap; }
    .woocommerce div.product .product_title { font-size: 28px !important; margin-top: 4px !important; }
    .el-bullets { padding: 18px 18px; }
}

/* ==========================================================================
   Cart / Checkout / Account
   ========================================================================== */
.woocommerce-cart .shop_table, .woocommerce-checkout .shop_table,
.woocommerce table.shop_table {
    border: 1px solid var(--el-border) !important;
    border-radius: var(--el-radius-card) !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    margin-bottom: 32px !important;
}
.woocommerce table.shop_table th {
    background: var(--el-sand) !important;
    color: var(--el-ink) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 16px 20px !important;
}
.woocommerce table.shop_table td {
    padding: 20px !important;
    border-top: 1px solid var(--el-border) !important;
    font-size: 14.5px;
    color: var(--el-ink);
}
.woocommerce .cart_item img { max-width: 80px; border-radius: 8px; }
.woocommerce .cart-collaterals .cart_totals {
    background: var(--el-ivory);
    border: 1px solid var(--el-border);
    border-radius: var(--el-radius-card);
    padding: 24px !important;
}
.woocommerce .cart-collaterals .cart_totals h2 {
    font-size: 22px !important;
    margin-top: 0 !important;
}

.woocommerce form .form-row input,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
    padding: 12px 16px !important;
    border: 1px solid var(--el-border-strong) !important;
    border-radius: 8px !important;
    background: var(--el-ivory) !important;
    font-size: 15px !important;
    height: auto !important;
    line-height: 1.4 !important;
}
.woocommerce form .form-row label {
    font-size: 13px;
    color: var(--el-ink);
    font-weight: 500;
    margin-bottom: 6px;
    display: block;
}

/* Empty cart */
.el-empty-cart {
    text-align: center;
    font-size: 17px;
    padding: 48px 24px;
    background: var(--el-sand);
    border-radius: var(--el-radius-card);
    color: var(--el-ink-soft);
}
.el-empty-cart .el-cta { margin-top: 16px; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    border-top: none !important;
    border-left: 3px solid var(--el-primary) !important;
    background: var(--el-ivory) !important;
    border-radius: 6px !important;
    padding: 14px 20px 14px 24px !important;
    color: var(--el-ink) !important;
    font-size: 14px;
    box-shadow: var(--el-shadow-sm);
}
.woocommerce-error { border-left-color: var(--el-error) !important; }
.woocommerce-info  { border-left-color: var(--el-ink-soft) !important; }

/* My account */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0; margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li {
    margin: 0; padding: 0;
    border-bottom: 1px solid var(--el-border);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    padding: 14px 0;
    display: block;
    color: var(--el-ink);
    font-size: 14.5px;
    font-weight: 500;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
    color: var(--el-primary-deep);
}

/* ==========================================================================
   Page header (index / page.php)
   ========================================================================== */
.el-page-header {
    text-align: center;
    padding: 64px 0 48px;
    border-bottom: 1px solid var(--el-border);
    margin-bottom: 64px;
}
.el-page-title {
    font-size: clamp(34px, 4.5vw, 52px);
    margin-bottom: 14px;
}
.el-page-lede {
    font-size: 16.5px;
    color: var(--el-ink-soft);
    max-width: 600px;
    margin: 0 auto;
}

/* Pages légales / long-form */
.el-page { padding: 48px 0 96px; }
.el-page__header { margin-bottom: 40px; padding-bottom: 28px; border-bottom: 1px solid var(--el-border); }
.el-page__title { font-size: clamp(32px, 4vw, 48px); margin: 0; }
.el-page__content { font-size: 15.5px; line-height: 1.8; color: var(--el-ink); }
.el-page__content h2 { margin-top: 2em; font-size: 26px; color: var(--el-primary-deep); }
.el-page__content h3 { margin-top: 1.6em; font-size: 19px; color: var(--el-ink); }
.el-page__content h4 { margin-top: 1.4em; font-size: 12.5px; color: var(--el-primary-deep); }
.el-page__content ul, .el-page__content ol { padding-left: 1.4em; }
.el-page__content li { padding: 4px 0; }
.el-page__content table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    font-size: 14px;
}
.el-page__content table th, .el-page__content table td {
    padding: 12px 14px;
    border: 1px solid var(--el-border);
    text-align: left;
    vertical-align: top;
}
.el-page__content table th {
    background: var(--el-sand);
    font-weight: 600;
    font-size: 12.5px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--el-ink);
}

/* ==========================================================================
   Blog posts
   ========================================================================== */
.el-posts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}
.el-post-card {
    border: 1px solid var(--el-border);
    border-radius: var(--el-radius-card);
    overflow: hidden;
    background: var(--el-ivory);
    transition: transform var(--el-t-base), box-shadow var(--el-t-base);
}
.el-post-card:hover { transform: translateY(-4px); box-shadow: var(--el-shadow-md); }
.el-post-card__media img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.el-post-card__body { padding: 24px; }
.el-post-card__meta { font-size: 11.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--el-text-muted); }
.el-post-card__title { font-size: 20px; margin: 8px 0 10px; line-height: 1.3; }
.el-post-card__title a { color: var(--el-ink); }
.el-post-card__excerpt { color: var(--el-ink-soft); font-size: 14.5px; line-height: 1.55; margin-bottom: 14px; }

@media (max-width: 900px) { .el-posts-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   Footer
   ========================================================================== */
.el-footer {
    background: var(--el-ink);
    color: var(--el-text-on-dark);
    padding: 80px 0 28px;
    margin-top: 96px;
}
.el-footer__grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1fr 1.4fr;
    gap: 48px;
    padding-bottom: 56px;
    border-bottom: 1px solid rgba(250,246,240,0.12);
}
.el-footer__brand { }
.el-footer__mark {
    font-family: var(--el-fh);
    font-size: 32px;
    color: var(--el-ivory);
    letter-spacing: -0.02em;
    display: block;
    margin-bottom: 14px;
}
.el-footer__tag {
    font-size: 14px;
    color: rgba(250,246,240,0.7);
    line-height: 1.55;
    margin-bottom: 18px;
}
.el-footer__contact a {
    color: var(--el-primary-soft);
    font-size: 14px;
    font-weight: 500;
}
.el-footer__contact a:hover { color: var(--el-ivory); }

.el-footer__heading {
    font-family: var(--el-fb);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--el-ivory);
    margin-bottom: 20px;
}
.el-footer__col ul {
    list-style: none; padding: 0; margin: 0;
}
.el-footer__col ul li {
    padding: 5px 0;
}
.el-footer__col ul a {
    color: rgba(250,246,240,0.7);
    font-size: 13.5px;
    transition: color var(--el-t-fast);
}
.el-footer__col ul a:hover { color: var(--el-primary-soft); }

.el-footer__newsletter p {
    font-size: 13.5px;
    color: rgba(250,246,240,0.7);
    line-height: 1.55;
    margin-bottom: 14px;
}
.el-newsletter-form {
    display: flex; flex-direction: column; gap: 10px;
}
.el-newsletter-form input {
    padding: 12px 16px;
    border-radius: var(--el-radius-pill);
    border: 1px solid rgba(250,246,240,0.25);
    background: transparent;
    color: var(--el-ivory);
    font-size: 13.5px;
}
.el-newsletter-form input::placeholder { color: rgba(250,246,240,0.5); }
.el-newsletter-form input:focus { border-color: var(--el-primary-soft); outline: none; }
.el-newsletter-form .el-cta { width: 100%; }
.el-footer__small {
    font-size: 11px; color: rgba(250,246,240,0.5);
    display: block; margin-top: 10px; line-height: 1.5;
}
.el-footer__small a { color: var(--el-primary-soft); }

.el-footer__strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    padding: 32px 0;
    border-bottom: 1px solid rgba(250,246,240,0.12);
}
.el-footer__strip-item {
    display: flex; align-items: center; gap: 14px;
    font-size: 12.5px;
    color: rgba(250,246,240,0.8);
    line-height: 1.45;
}
.el-footer__strip-item svg {
    flex-shrink: 0;
    color: var(--el-primary-soft);
}
.el-footer__strip-item strong { color: var(--el-ivory); font-weight: 600; display: inline; }

.el-footer__bottom {
    padding-top: 28px;
    display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px;
    font-size: 12px;
    color: rgba(250,246,240,0.5);
}
.el-footer__bottom p { margin: 0; }
.el-footer__payments { display: flex; gap: 12px; }
.el-footer__payments span {
    padding: 4px 10px;
    border: 1px solid rgba(250,246,240,0.2);
    border-radius: 4px;
    font-size: 10.5px;
    letter-spacing: 0.08em;
}

@media (max-width: 1100px) {
    .el-footer__grid { grid-template-columns: 1fr 1fr 1fr; gap: 32px; }
    .el-footer__brand { grid-column: span 3; }
    .el-footer__strip { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .el-footer__grid { grid-template-columns: 1fr; }
    .el-footer__brand { grid-column: span 1; }
    .el-footer__strip { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Utilities & misc
   ========================================================================== */
.el-empty {
    text-align: center;
    padding: 64px 24px;
    color: var(--el-ink-soft);
    font-size: 16px;
}

/* Search drawer open state */
body.el-search-open { overflow: hidden; }

/* Reveal on scroll */
.el-reveal {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.6s var(--el-ease-out), transform 0.6s var(--el-ease-out);
}
.el-reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Print */
@media print {
    .el-header, .el-footer, .el-announce { display: none; }
    body { background: white; color: black; }
}

/* ==========================================================================
   FINAL OVERRIDES — combat WooCommerce defaults (.button.alt purple, float layouts)
   Placé en fin de fichier pour garantir la priorité cascade.
   ========================================================================== */

/* CTA : forcer terracotta sur .button.alt (purple par défaut WC) */
body .woocommerce .button,
body .woocommerce button.button,
body .woocommerce a.button,
body .woocommerce input.button,
body .woocommerce #respond input#submit,
body .woocommerce button.button.alt,
body .woocommerce a.button.alt,
body .woocommerce input.button.alt,
body .woocommerce #respond input#submit.alt,
body .woocommerce .single_add_to_cart_button,
body .woocommerce button.single_add_to_cart_button,
body .woocommerce button.single_add_to_cart_button.alt,
body .woocommerce div.product form.cart .button,
body .woocommerce div.product form.cart button,
body .woocommerce-page .single_add_to_cart_button,
body .woocommerce-page button.button.alt {
    background-color: #B8563B !important;
    background: #B8563B !important;
    border: 1.5px solid #B8563B !important;
    color: #FAF6F0 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    font-family: 'Inter', -apple-system, system-ui, sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 16px 32px !important;
    border-radius: 999px !important;
    line-height: 1.2 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body .woocommerce .button:hover,
body .woocommerce button.button:hover,
body .woocommerce a.button:hover,
body .woocommerce input.button:hover,
body .woocommerce button.button.alt:hover,
body .woocommerce .single_add_to_cart_button:hover,
body .woocommerce-page button.button.alt:hover {
    background-color: #8F3F29 !important;
    background: #8F3F29 !important;
    border-color: #8F3F29 !important;
    color: #FAF6F0 !important;
}

/* Variantes outline (bouton "Voir toute la boutique" etc.) */
body .woocommerce a.button.wc-backward,
body .el-cta--outline {
    background: transparent !important;
    color: #8F3F29 !important;
    border: 1.5px solid #B8563B !important;
}
body .woocommerce a.button.wc-backward:hover,
body .el-cta--outline:hover {
    background: #B8563B !important;
    color: #FAF6F0 !important;
}

/* ==========================================================================
   GRID PRODUITS — Mobile-first (1 col base, 2 cols tablet, 4 cols desktop)
   L'utilisateur veut : sur mobile, 1 carte par ligne pleine largeur + marges
   ========================================================================== */

/* BASE mobile : 1 colonne pleine largeur */
body.woocommerce ul.products,
body.woocommerce-page ul.products,
body ul.products,
body .el-wc-loop,
body.woocommerce ul.products.columns-1,
body.woocommerce ul.products.columns-2,
body.woocommerce ul.products.columns-3,
body.woocommerce ul.products.columns-4,
body.woocommerce ul.products.columns-5,
body.woocommerce ul.products.columns-6 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 0 !important;
    margin: 0 0 32px !important;
    list-style: none !important;
    width: 100% !important;
    float: none !important;
}

body.woocommerce ul.products::before,
body.woocommerce ul.products::after,
body ul.products::before,
body ul.products::after {
    content: none !important;
    display: none !important;
    clear: none !important;
}

/* Les items : carte pleine largeur, flex column pour empiler image + infos */
body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product,
body ul.products li.product,
body .el-wc-loop li.product {
    float: none !important;
    clear: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    background: #FAF6F0 !important;
    border: 1px solid #E4DACC !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    position: relative !important;
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
body.woocommerce ul.products li.product:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(26,22,20,0.08);
    border-color: #C9BBA9;
}
body.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
    display: block !important;
    padding: 0 !important;
    color: inherit !important;
    text-decoration: none !important;
}
body.woocommerce ul.products li.product img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    display: block !important;
    margin: 0 !important;
    background: #F1EBE1;
}
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce ul.products li.product h2,
body.woocommerce ul.products li.product h3 {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 500 !important;
    font-size: 18px !important;
    line-height: 1.3 !important;
    color: #1A1614 !important;
    margin: 18px 20px 8px !important;
    padding: 0 !important;
    text-transform: none !important;
    letter-spacing: -0.005em !important;
}
body.woocommerce ul.products li.product .price {
    font-family: 'Inter', -apple-system, sans-serif !important;
    color: #8F3F29 !important;
    font-weight: 600 !important;
    font-size: 17px !important;
    margin: 0 20px 18px !important;
    display: block !important;
    line-height: 1.3;
}
body.woocommerce ul.products li.product .price del {
    color: #8A7F77 !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    margin-right: 10px;
    opacity: 0.75;
    display: inline-block;
}
body.woocommerce ul.products li.product .price ins {
    background: transparent !important;
    color: #8F3F29 !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}
body.woocommerce ul.products li.product .button,
body.woocommerce ul.products li.product .added_to_cart {
    margin: auto 20px 20px !important;
    font-size: 12px !important;
    padding: 13px 20px !important;
    letter-spacing: 0.08em !important;
    width: calc(100% - 40px) !important;
    text-align: center !important;
    justify-content: center !important;
    white-space: nowrap !important;
}

/* TABLET 641px+ : 2 colonnes */
@media (min-width: 641px) {
    body.woocommerce ul.products,
    body.woocommerce-page ul.products,
    body ul.products,
    body .el-wc-loop,
    body.woocommerce ul.products.columns-1,
    body.woocommerce ul.products.columns-2,
    body.woocommerce ul.products.columns-3,
    body.woocommerce ul.products.columns-4,
    body.woocommerce ul.products.columns-5,
    body.woocommerce ul.products.columns-6 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px !important;
    }
}

/* TABLET LARGE 901px+ : 3 colonnes */
@media (min-width: 901px) {
    body.woocommerce ul.products,
    body.woocommerce-page ul.products,
    body ul.products,
    body .el-wc-loop,
    body.woocommerce ul.products.columns-3,
    body.woocommerce ul.products.columns-4,
    body.woocommerce ul.products.columns-5,
    body.woocommerce ul.products.columns-6 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 24px !important;
    }
}

/* DESKTOP 1201px+ : 4 colonnes */
@media (min-width: 1201px) {
    body.woocommerce ul.products,
    body.woocommerce-page ul.products,
    body ul.products,
    body .el-wc-loop,
    body.woocommerce ul.products.columns-4,
    body.woocommerce ul.products.columns-5,
    body.woocommerce ul.products.columns-6 {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 28px !important;
    }
}

/* Badges maison - tailles mobile adaptées */
body .el-badges {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    right: 12px !important;
    z-index: 2 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    pointer-events: none !important;
}
body .el-badge {
    display: inline-block !important;
    padding: 5px 10px !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    border-radius: 999px !important;
}

/* ==========================================================================
   WRAPPERS — Marges garanties partout sur mobile
   ========================================================================== */
body .el-wrapper,
body.woocommerce .el-wrapper,
body.woocommerce-page .el-wrapper {
    width: 100% !important;
    max-width: 1320px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
}

@media (min-width: 641px) {
    body .el-wrapper,
    body.woocommerce .el-wrapper,
    body.woocommerce-page .el-wrapper {
        padding-left: 32px !important;
        padding-right: 32px !important;
    }
}

/* ==========================================================================
   PAGE PRODUIT — layout + marges
   ========================================================================== */
body .el-product { padding: 24px 0 72px !important; }
body .el-product__grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    align-items: start !important;
    margin: 16px 0 48px !important;
    width: 100% !important;
}

@media (min-width: 901px) {
    body .el-product__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        gap: 56px !important;
        margin: 24px 0 64px !important;
    }
}

body .el-product__media,
body .el-product__summary {
    min-width: 0 !important;
    width: 100% !important;
}

body.woocommerce div.product div.images {
    width: 100% !important;
    margin: 0 !important;
    opacity: 1 !important;
    float: none !important;
    position: relative !important;
    top: auto !important;
}
body .woocommerce-product-gallery,
body .woocommerce-product-gallery__wrapper,
body .woocommerce-product-gallery__image {
    opacity: 1 !important;
    width: 100% !important;
    margin: 0 !important;
    float: none !important;
}
body .woocommerce-product-gallery__image img,
body .el-product__media img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 12px !important;
    background: #F1EBE1;
}

/* Titre et prix page produit */
body.woocommerce div.product .product_title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-size: 26px !important;
    line-height: 1.15 !important;
    margin: 4px 0 12px !important;
    letter-spacing: -0.02em !important;
    word-break: break-word;
}
@media (min-width: 641px) {
    body.woocommerce div.product .product_title {
        font-size: 34px !important;
    }
}
@media (min-width: 1000px) {
    body.woocommerce div.product .product_title {
        font-size: 42px !important;
    }
}
body.woocommerce div.product p.price,
body.woocommerce div.product span.price {
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    color: #8F3F29 !important;
    margin: 0 0 18px !important;
    letter-spacing: -0.005em;
}
@media (min-width: 1000px) {
    body.woocommerce div.product p.price,
    body.woocommerce div.product span.price {
        font-size: 26px !important;
    }
}
body.woocommerce div.product p.price del,
body.woocommerce div.product span.price del {
    color: #8A7F77 !important;
    font-weight: 400 !important;
    font-size: 16px !important;
    margin-right: 10px !important;
    opacity: 0.7;
}

/* Trust badges page produit */
body .el-product__trust {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin: 20px 0 !important;
    padding: 16px 0 !important;
    border-top: 1px solid #E4DACC !important;
    border-bottom: 1px solid #E4DACC !important;
}
@media (min-width: 641px) {
    body .el-product__trust {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 12px !important;
    }
}

/* ==========================================================================
   FORM CART — Bouton sous quantity, full-width, terracotta
   ========================================================================== */
body.woocommerce div.product form.cart {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 14px !important;
    margin: 20px 0 28px !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100%;
}
body.woocommerce div.product form.cart .quantity {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
    width: auto !important;
    max-width: 160px !important;
    float: none !important;
}
body.woocommerce div.product form.cart .quantity input.qty,
body.woocommerce .quantity input.qty {
    width: 88px !important;
    max-width: 88px !important;
    height: 52px !important;
    padding: 0 10px !important;
    border: 1.5px solid #C9BBA9 !important;
    border-radius: 999px !important;
    background: #FAF6F0 !important;
    color: #1A1614 !important;
    text-align: center !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    font-family: 'Inter', -apple-system, sans-serif !important;
    -moz-appearance: textfield;
}
body.woocommerce .quantity input.qty::-webkit-outer-spin-button,
body.woocommerce .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
body.woocommerce div.product form.cart button.single_add_to_cart_button,
body.woocommerce div.product form.cart .single_add_to_cart_button {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 56px !important;
    padding: 18px 24px !important;
    font-size: 13px !important;
    margin: 0 !important;
    float: none !important;
    white-space: normal !important;
    word-break: keep-all;
    line-height: 1.3 !important;
    letter-spacing: 0.08em !important;
}

/* ==========================================================================
   TABS onglets
   ========================================================================== */
body.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex !important;
    list-style: none !important;
    gap: 20px !important;
    padding: 0 !important;
    margin: 32px 0 24px !important;
    border-bottom: 1px solid #E4DACC !important;
    flex-wrap: wrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
body.woocommerce div.product .woocommerce-tabs ul.tabs::before,
body.woocommerce div.product .woocommerce-tabs ul.tabs::after {
    display: none !important;
    content: none !important;
    border: none !important;
}
body.woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    flex-shrink: 0 !important;
}
body.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    padding: 14px 0 !important;
    color: #5C524C !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    display: block !important;
}
body.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: #B8563B !important;
    border-bottom: 2px solid #B8563B !important;
}

/* Stock & meta */
body.woocommerce div.product p.stock {
    color: #4A7C59 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    margin: 8px 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
}
body.woocommerce div.product .product_meta {
    margin-top: 20px !important;
    padding-top: 18px !important;
    border-top: 1px solid #E4DACC !important;
    font-size: 12.5px !important;
    color: #8A7F77 !important;
}

/* Empêcher overflow horizontal */
html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}

/* Description courte page produit */
body.woocommerce .woocommerce-product-details__short-description {
    font-size: 15px !important;
    line-height: 1.7 !important;
    color: #5C524C !important;
    padding: 18px 0 !important;
    border-top: 1px solid #E4DACC !important;
    border-bottom: 1px solid #E4DACC !important;
    margin: 0 0 24px !important;
}

/* ============================================================
 * PAGES ÉDITORIALES — FAQ & Journal
 * ============================================================ */

/* --- FAQ page --- */
.el-faq-page {
    max-width: 820px;
    margin: 0 auto;
    padding: 48px 20px 96px;
    color: var(--el-ink, #1A1614);
}
.el-faq-page__head {
    text-align: left;
    margin-bottom: 48px;
}
.el-faq-page__head h1 {
    font-family: var(--el-fh, 'Fraunces', Georgia, serif);
    font-weight: 400;
    font-size: clamp(32px, 5vw, 52px);
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 12px 0 16px;
}
.el-faq-page__lede {
    font-size: 16px;
    line-height: 1.7;
    color: var(--el-ink-soft, #5C524C);
    max-width: 620px;
}
.el-faq-page__group {
    margin-bottom: 40px;
}
.el-faq-page__group h2 {
    font-family: var(--el-fh, 'Fraunces', Georgia, serif);
    font-weight: 500;
    font-size: 22px;
    letter-spacing: -0.01em;
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--el-border, #E4DACC);
}
.el-faq-page details {
    border-bottom: 1px solid var(--el-border, #E4DACC);
    padding: 16px 0;
}
.el-faq-page details[open] summary {
    color: var(--el-primary-deep, #8F3F29);
}
.el-faq-page summary {
    list-style: none;
    cursor: pointer;
    font-weight: 500;
    font-size: 16px;
    line-height: 1.4;
    padding-right: 32px;
    position: relative;
    transition: color 0.2s ease;
}
.el-faq-page summary::-webkit-details-marker { display: none; }
.el-faq-page summary::after {
    content: '+';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    font-weight: 300;
    color: var(--el-primary, #B8563B);
    transition: transform 0.25s ease;
}
.el-faq-page details[open] summary::after {
    content: '−';
}
.el-faq-page details p {
    margin: 12px 0 0;
    font-size: 15px;
    line-height: 1.75;
    color: var(--el-ink-soft, #5C524C);
}
.el-faq-page__cta {
    margin-top: 56px;
    padding: 32px 24px;
    background: var(--el-sand, #F1EBE1);
    border-radius: 12px;
    text-align: center;
}
.el-faq-page__cta p {
    margin: 0 0 16px;
    font-family: var(--el-fh, 'Fraunces', Georgia, serif);
    font-size: 20px;
}

/* --- Journal page --- */
.el-journal-page {
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px 20px 96px;
    color: var(--el-ink, #1A1614);
}
.el-journal-page__head {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 56px;
}
.el-journal-page__head h1 {
    font-family: var(--el-fh, 'Fraunces', Georgia, serif);
    font-weight: 400;
    font-size: clamp(32px, 5vw, 56px);
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 12px 0 16px;
}
.el-journal-page__lede {
    font-size: 16px;
    line-height: 1.7;
    color: var(--el-ink-soft, #5C524C);
}
.el-journal-page__pillars {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}
@media (min-width: 720px) {
    .el-journal-page__pillars {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }
}
@media (min-width: 1040px) {
    .el-journal-page__pillars {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
.el-journal-card {
    background: var(--el-ivory, #FAF6F0);
    border: 1px solid var(--el-border, #E4DACC);
    border-radius: 12px;
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}
.el-journal-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(26,22,20,0.06);
    border-color: var(--el-border-strong, #C9BBA9);
}
.el-journal-card h2 {
    font-family: var(--el-fh, 'Fraunces', Georgia, serif);
    font-weight: 500;
    font-size: 22px;
    line-height: 1.25;
    letter-spacing: -0.01em;
    margin: 0;
}
.el-journal-card p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--el-ink-soft, #5C524C);
    margin: 0;
    flex: 1;
}
.el-journal-card__meta {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--el-text-muted, #8A7F77);
    margin-top: auto;
}
.el-journal-page__cta {
    margin-top: 56px;
    padding: 32px 24px;
    background: var(--el-sand, #F1EBE1);
    border-radius: 12px;
    text-align: center;
}
.el-journal-page__cta p {
    margin: 0 0 16px;
    font-family: var(--el-fh, 'Fraunces', Georgia, serif);
    font-size: 20px;
}
