/*
Theme Name: Lenjeria Magică – Champagne Nude
Theme URI: https://alexrobescu.ro/teme/champagne-nude
Author: Alex Robescu
Author URI: https://alexrobescu.ro
Description: Temă WooCommerce dedicată magazinului Lenjeria Magică. Design champagne nude, construit mobile-first, cu mega menu, swatch-uri de variații, mini cart drawer, cadouri pe praguri de coș, cutie premium, bare sticky pentru coș și checkout, slidere proprii pentru homepage și pagini statice generate automat la activare. Toate funcțiile stau în temă, configurabile din Aspect → Setări Lenjeria Magică.
Version: 1.9.8
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lm-champagne-nude
Tags: e-commerce, one-column, custom-logo, custom-menu, featured-images, translation-ready
*/

/* =========================================================
   CUPRINS
   1.  Variabile design (paleta champagne nude)
   2.  Reset + baza
   3.  Tipografie
   4.  Layout / containere
   5.  Header + navigatie + MEGA MENU
   6.  Meniu mobil off-canvas
   7.  Butoane + formulare  (doar pe clase — NU pe <button> global!)
   8.  Breadcrumbs
   9.  WooCommerce: listari produse (grila)
   10. WooCommerce: carusele produse (related / recent / top)
   11. WooCommerce: pagina de produs — spatieri
   12. WooCommerce: cos
   13. WooCommerce: checkout
   14. WooCommerce: comanda finalizata
   15. Pagini statice
   16. Sectiuni homepage
   17. Footer
   18. Blog
   19. Utilitare + accesibilitate
   ========================================================= */

/* =========================================================
   1) VARIABILE DESIGN
   ========================================================= */
:root {
    --cn-bg:            #faf5f0;
    --cn-bg-deep:       #f4e9e0;
    --cn-card:          #fffaf6;
    --cn-card-soft:     #f9f1ea;
    --cn-border:        #e7d8cc;
    --cn-text:          #2b221d;
    --cn-text-soft:     #7c6b61;

    --cn-champagne:     linear-gradient(135deg, #b89279 0%, #c9a890 18%, #ad8971 36%, #d8b7a1 58%, #b68b74 78%, #9e7a66 100%);
    --cn-accent:        #b08968;
    --cn-accent-deep:   #9e7a66;

    --cn-btn-bg:        #141414;
    --cn-btn-bg-hover:  #2b221d;
    --cn-btn-text:      #ffffff;

    --cn-radius-card:   20px;
    --cn-radius-input:  14px;
    --cn-radius-btn:    999px;

    /* umbre discrete — abia sesizabile, doar dau adancime */
    --cn-shadow-soft:   0 1px 3px rgba(43, 34, 29, 0.05), 0 4px 14px rgba(43, 34, 29, 0.04);
    --cn-shadow-hover:  0 4px 10px rgba(43, 34, 29, 0.07), 0 12px 28px rgba(43, 34, 29, 0.09);

    --cn-font-titlu:    'Fraunces', 'Georgia', serif;
    --cn-font-text:     'Jost', 'Segoe UI', sans-serif;

    --cn-container:     1280px;
}

/* =========================================================
   2) RESET + BAZA
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }

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

/* Niciun element nu are voie sa creeze scroll orizontal.
   "clip" (nu "hidden") — nu strica position: sticky. */
html, body { overflow-x: clip; }

body {
    margin: 0;
    background: var(--cn-bg);
    color: var(--cn-text);
    font-family: var(--cn-font-text);
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--cn-text); text-decoration: none; transition: color .2s ease, opacity .2s ease; }
a:hover { color: var(--cn-accent-deep); }

ul, ol { padding-left: 1.2em; }
table { border-collapse: collapse; width: 100%; }

/* =========================================================
   3) TIPOGRAFIE
   ========================================================= */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--cn-font-titlu);
    font-weight: 600;
    line-height: 1.16;
    color: var(--cn-text);
    margin: 0 0 .5em;
    letter-spacing: .2px;
}

h1 { font-size: clamp(28px, 6vw, 44px); }
h2 { font-size: clamp(23px, 5vw, 32px); }
h3 { font-size: clamp(19px, 4vw, 24px); }
h4 { font-size: 18px; }

p { margin: 0 0 1em; }

::selection { background: var(--cn-accent); color: #fff; }

/* Titlu de sectiune cu linie champagne dedesubt — folosit
   de sliderele din homepage si de titlurile woo */
.fn-cat-title h2,
.fn-top-products-title h2,
.lm-cart-interest-title h2,
.woocommerce-products-header__title {
    position: relative;
    padding-bottom: 14px;
}

.fn-cat-title h2::after,
.fn-top-products-title h2::after,
.lm-cart-interest-title h2::after,
.woocommerce-products-header__title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 64px;
    height: 3px;
    border-radius: 3px;
    background: var(--cn-champagne);
}

/* =========================================================
   4) LAYOUT / CONTAINERE
   ========================================================= */
.container {
    width: 100%;
    max-width: var(--cn-container);
    margin: 0 auto;
    padding-left: 16px;
    padding-right: 16px;
}

@media (min-width: 768px) {
    .container { padding-left: 28px; padding-right: 28px; }
}

#page.site { min-height: 100vh; display: flex; flex-direction: column; }
#content.site-content { flex: 1 0 auto; padding-bottom: 56px; }
.site-main { display: block; }

/* =========================================================
   5) HEADER + NAVIGATIE + MEGA MENU
   ========================================================= */
.site-header {
    position: sticky;
    top: 0;
    z-index: 9000;
    background: rgba(255, 250, 246, .92);
    backdrop-filter: blur(12px) saturate(1.4);
    -webkit-backdrop-filter: blur(12px) saturate(1.4);
    border-bottom: 1px solid var(--cn-border);
    transition: box-shadow .25s ease;
}

.site-header.lm-scrolled { box-shadow: var(--cn-shadow-soft); }

.lm-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 62px;
}

/* Branding */
.site-branding { display: flex; align-items: center; justify-content: center; min-width: 0; }
.site-branding img { max-height: 46px; width: auto; }

.site-title {
    margin: 0;
    font-family: var(--cn-font-titlu);
    font-size: 23px;
    font-weight: 700;
    letter-spacing: .4px;
    white-space: nowrap;
}

.site-title a { color: var(--cn-text); }

.site-title .lm-logo-magic {
    background: var(--cn-champagne);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* Hamburger cu eticheta MENIU — stiluri explicite, nu mostenite */
.lm-nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 0;
    padding: 8px 4px;
    cursor: pointer;
    color: var(--cn-text);
    font-family: var(--cn-font-text);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.lm-nav-toggle-bars { display: inline-flex; flex-direction: column; gap: 4px; width: 22px; }
.lm-nav-toggle-bars span { height: 2px; width: 100%; background: currentColor; border-radius: 2px; }

/* Iconuri dreapta */
.lm-header-icons { display: flex; align-items: center; gap: 8px; }

/* Cosul din header — reguli explicite + !important ca sa nu-l
   atinga stilurile injectate de module */
.lm-header-cart,
button.lm-header-cart {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 44px !important;
    height: 44px !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--cn-btn-bg) !important;
    color: #fff !important;
    cursor: pointer;
    transition: transform .2s ease, opacity .2s ease;
}

.lm-header-cart:hover { transform: translateY(-1px); opacity: .92; }

.lm-header-cart svg {
    width: 20px !important;
    height: 20px !important;
    display: block;
    color: #fff;
}

.lm-header-cart-count {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--cn-champagne);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(158, 122, 102, .4);
}

/* ----- Meniul desktop + mega menu -----
   Pe desktop totul sta pe UN SINGUR rand:
   [logo] [meniu centrat] [cautare + cos]                      */
.lm-main-nav { display: none; }

@media (min-width: 1024px) {
    .lm-nav-toggle { display: none; }

    .lm-header-inner { gap: 18px; }
    .site-branding { justify-content: flex-start; flex: 0 0 auto; }

    .lm-main-nav {
        display: block;
        flex: 1 1 auto;
        min-width: 0;
    }

    .lm-main-nav ul.lm-menu {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: nowrap;
        /* daca meniul e mai lat decat spatiul, deruleaza discret
           in interiorul lui — nu impinge pagina in lateral */
        overflow-x: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .lm-main-nav ul.lm-menu::-webkit-scrollbar { display: none; }

    .lm-main-nav ul.lm-menu > li { position: static; }

    .lm-main-nav ul.lm-menu > li > a {
        position: relative;
        display: block;
        padding: 21px 10px;
        font-size: 12px;
        font-weight: 600;
        letter-spacing: .8px;
        text-transform: uppercase;
        white-space: nowrap;
        color: var(--cn-text);
    }

    /* sublinierea animata champagne */
    .lm-main-nav ul.lm-menu > li > a::after {
        content: "";
        position: absolute;
        left: 10px;
        right: 10px;
        bottom: 13px;
        height: 2px;
        border-radius: 2px;
        background: var(--cn-champagne);
        transform: scaleX(0);
        transform-origin: left;
        transition: transform .25s ease;
    }

    .lm-main-nav ul.lm-menu > li:hover > a::after,
    .lm-main-nav ul.lm-menu > li:focus-within > a::after { transform: scaleX(1); }

    /* MEGA MENU: panou lat, pe coloane — ancorat la header
       (primul stramos pozitionat e .site-header, care e sticky) */
    .lm-main-nav ul.lm-menu > li.menu-item-has-children > .sub-menu {
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%) translateY(10px);
        width: min(960px, calc(100vw - 48px));
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 4px 18px;
        list-style: none;
        margin: 0;
        padding: 22px 26px;
        background: var(--cn-card);
        border: 1px solid var(--cn-border);
        border-radius: 0 0 var(--cn-radius-card) var(--cn-radius-card);
        box-shadow: var(--cn-shadow-hover);
        opacity: 0;
        visibility: hidden;
        transition: opacity .22s ease, transform .22s ease, visibility .22s;
        z-index: 60;
    }
}

@media (min-width: 1280px) {
    .lm-main-nav ul.lm-menu > li > a {
        padding: 21px 14px;
        font-size: 12.5px;
        letter-spacing: 1px;
    }
}

@media (min-width: 1024px) {

    .lm-main-nav ul.lm-menu > li.menu-item-has-children:hover > .sub-menu,
    .lm-main-nav ul.lm-menu > li.menu-item-has-children:focus-within > .sub-menu {
        opacity: 1;
        visibility: visible;
        transform: translateX(-50%) translateY(0);
    }

    .lm-main-nav .sub-menu a {
        display: block;
        padding: 9px 12px;
        border-radius: 10px;
        font-size: 14.5px;
        font-weight: 500;
        color: var(--cn-text);
        transition: background .18s ease, color .18s ease, padding-left .18s ease;
    }

    .lm-main-nav .sub-menu a:hover {
        background: var(--cn-card-soft);
        color: var(--cn-accent-deep);
        padding-left: 16px;
    }

    /* nivelul 3 in mega menu: titluri de grup */
    .lm-main-nav .sub-menu .sub-menu {
        list-style: none;
        margin: 2px 0 0;
        padding: 0 0 0 12px;
        border-left: 2px solid var(--cn-bg-deep);
    }

    .lm-main-nav .sub-menu .sub-menu a {
        font-size: 13.5px;
        color: var(--cn-text-soft);
        padding: 6px 12px;
    }
}

/* =========================================================
   6) MENIU MOBIL OFF-CANVAS
   ========================================================= */
.lm-mobile-nav {
    position: fixed;
    top: 0; left: 0; bottom: 0;
    width: min(86vw, 370px);
    z-index: 99990;
    background: var(--cn-card);
    border-right: 1px solid var(--cn-border);
    transform: translateX(-105%);
    transition: transform .3s cubic-bezier(.22, .92, .34, 1.02);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

body.lm-mobile-nav-open .lm-mobile-nav { transform: translateX(0); box-shadow: var(--cn-shadow-hover); }

.lm-mobile-nav-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 16px;
    border-bottom: 1px solid var(--cn-border);
    background: var(--cn-champagne);
}

.lm-mobile-nav-head strong {
    color: #fff;
    font-family: var(--cn-font-titlu);
    font-size: 19px;
    letter-spacing: .4px;
}

.lm-mobile-nav-close {
    border: 0;
    background: rgba(255, 255, 255, .22);
    color: #fff;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    font-size: 19px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.lm-mobile-nav ul { list-style: none; margin: 0; padding: 10px; }
.lm-mobile-nav li { border-bottom: 1px solid var(--cn-bg-deep); }
.lm-mobile-nav li:last-child { border-bottom: 0; }

.lm-mobile-nav a {
    display: block;
    padding: 14px 10px;
    font-size: 15.5px;
    font-weight: 500;
}

.lm-mobile-nav .sub-menu { padding: 0 0 6px 14px; }
.lm-mobile-nav .sub-menu li { border: 0; }
.lm-mobile-nav .sub-menu a { font-size: 14px; color: var(--cn-text-soft); padding: 9px 10px; }

.lm-mobile-nav-overlay {
    position: fixed;
    inset: 0;
    z-index: 99980;
    background: rgba(43, 34, 29, .5);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s;
}

body.lm-mobile-nav-open .lm-mobile-nav-overlay { opacity: 1; visibility: visible; }
body.lm-mobile-nav-open { overflow: hidden; }

/* =========================================================
   7) BUTOANE + FORMULARE
   IMPORTANT: stilizez DOAR clase (.button etc.), niciodata
   <button> generic — altfel stric butoanele de cantitate,
   search-ul, swatch-urile si iconurile.
   ========================================================= */
.button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--cn-btn-bg);
    color: var(--cn-btn-text);
    border: 0;
    border-radius: var(--cn-radius-btn);
    padding: 13px 26px;
    font-family: var(--cn-font-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .4px;
    line-height: 1.2;
    cursor: pointer;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, opacity .2s ease;
}

.button:hover,
input[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background: var(--cn-btn-bg-hover);
    color: var(--cn-btn-text);
    transform: translateY(-1px);
    box-shadow: 0 12px 26px rgba(0, 0, 0, .18);
}

.woocommerce a.button.disabled,
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
    background: var(--cn-btn-bg);
    opacity: .55;
    color: #fff;
}

.lm-btn-champagne {
    background: var(--cn-champagne) !important;
    color: #fff !important;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="url"],
select,
textarea {
    width: 100%;
    background: #fff;
    border: 1.5px solid var(--cn-border);
    border-radius: var(--cn-radius-input);
    padding: 12px 15px;
    font-family: var(--cn-font-text);
    font-size: 15px;
    color: var(--cn-text);
    transition: border-color .2s ease, box-shadow .2s ease;
}

input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--cn-accent);
    box-shadow: 0 0 0 3px rgba(176, 137, 104, .16);
}

/* =========================================================
   8) BREADCRUMBS
   ========================================================= */
.woocommerce-breadcrumb,
.lm-breadcrumbs {
    font-size: 13px;
    color: var(--cn-text-soft) !important;
    margin: 14px 0 16px !important;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

.woocommerce-breadcrumb a,
.lm-breadcrumbs a { color: var(--cn-accent-deep) !important; font-weight: 500; }
.woocommerce-breadcrumb a:hover { text-decoration: underline; }

/* =========================================================
   9) WOOCOMMERCE: LISTARI PRODUSE (GRILA)
   Grila e pe CSS grid. Cele doua reguli ::before/::after sunt
   esentiale: clearfix-ul WooCommerce devine altfel un "produs
   fantoma" care ocupa prima celula (de aia aparea un singur
   produs pe primul rand pe mobil).
   ========================================================= */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
    display: none !important;
    content: none !important;
}

.woocommerce ul.products,
.woocommerce-page ul.products {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin: 16px 0 30px;
    padding: 0;
    list-style: none;
}

@media (min-width: 640px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products { grid-template-columns: repeat(3, 1fr); gap: 16px; }
}

@media (min-width: 1024px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products { grid-template-columns: repeat(4, 1fr); gap: 22px; }
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    width: 100% !important;
    max-width: 100%;
    float: none !important;
    margin: 0 !important;
    position: relative;
    background: var(--cn-card);
    border: 1px solid var(--cn-border);
    border-radius: var(--cn-radius-card);
    box-shadow: var(--cn-shadow-soft);
    padding: 10px 10px 14px;
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
}

.woocommerce ul.products li.product:hover {
    transform: translateY(-4px);
    box-shadow: var(--cn-shadow-hover);
}

/* Imaginea: raport fix 3/4 -> toate cardurile au aceeasi
   inaltime, nimic nu mai "sare" (fix pentru pozele uriase) */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail {
    width: 100% !important;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 14px;
    margin: 0 0 10px !important;
    transition: transform .35s ease;
}

.woocommerce ul.products li.product:hover a img { transform: scale(1.025); }

.woocommerce ul.products li.product > a { overflow: hidden; border-radius: 14px; }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--cn-font-text);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    padding: 0 4px;
    margin-bottom: 4px;
    color: var(--cn-text);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.7em;
}

.woocommerce ul.products li.product .price {
    margin: 0 4px auto;
    font-size: 15.5px;
    font-weight: 700;
    color: var(--cn-text) !important;
}

.woocommerce ul.products li.product .price del { color: var(--cn-text-soft); font-weight: 400; opacity: .65; margin-right: 6px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: #b3003c; }

.woocommerce ul.products li.product .button {
    margin: 12px 4px 0;
    width: calc(100% - 8px);
    padding: 12px 16px;
    font-size: 13.5px;
}

/* rating discret */
.woocommerce ul.products li.product .star-rating { margin: 2px 4px 6px; }

/* Badge reducere cu procent */
.woocommerce span.onsale {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 5;
    min-width: 0;
    min-height: 0;
    padding: 6px 13px;
    border-radius: 999px;
    background: var(--cn-champagne);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .4px;
    line-height: 1.3;
    box-shadow: 0 6px 16px rgba(158, 122, 102, .4);
}

/* ----- Antetul listarii: titlu + numar rezultate + sortare ----- */
.woocommerce-products-header { text-align: center; padding: 16px 0 4px; }
.woocommerce-products-header .woocommerce-products-header__title { margin-bottom: 8px; }

.term-description {
    max-width: 760px;
    margin: 10px auto 0;
    color: var(--cn-text-soft);
    font-size: 15px;
}

/* bara rezultat + sortare, aliniata pe un rand */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
    float: none;
    margin: 0;
    font-size: 13.5px;
    color: var(--cn-text-soft);
}

.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
    float: none;
    margin: 0;
}

.woocommerce .woocommerce-ordering select {
    width: auto;
    padding: 10px 38px 10px 16px;
    border-radius: 999px;
    font-size: 13.5px;
    font-weight: 600;
    background-color: var(--cn-card);
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237c6b61' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 14px;
}

/* asez count + ordering pe acelasi rand, curat */
.site-main .woocommerce-result-count + .woocommerce-ordering,
.site-main form.woocommerce-ordering {
    display: inline-block;
}

@supports (display: flex) {
    .site-main .woocommerce-notices-wrapper:empty { display: none; }
}

/* Paginare */
.woocommerce nav.woocommerce-pagination { text-align: center; margin: 6px 0 34px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; gap: 6px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 1px solid var(--cn-border);
    background: var(--cn-card);
    color: var(--cn-text);
    font-weight: 600;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--cn-btn-bg);
    color: #fff;
    border-color: var(--cn-btn-bg);
}

/* Notificari */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    border-radius: 14px;
    background: var(--cn-card);
    border: 1px solid var(--cn-border);
    border-top: 0;
    border-left: 4px solid var(--cn-accent);
    color: var(--cn-text);
    box-shadow: var(--cn-shadow-soft);
}

.woocommerce-error { border-left-color: #b3003c; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--cn-accent-deep); }

/* =========================================================
   10) CARUSELE DE PRODUSE (related / recent vizualizate)
   In interiorul shell-urilor de carusel grila NU se aplica —
   acolo modulul produs-single-v3 isi face track-ul lui.
   (fix pentru "Te-ar putea interesa" suprapus)
   ========================================================= */
.lm-products-carousel-shell ul.products,
.lm-products-carousel-shell .products {
    display: flex !important;
    grid-template-columns: none !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 14px;
    padding-bottom: 8px;
}

.lm-products-carousel-shell ul.products li.product {
    flex: 0 0 72% !important;
    width: 72% !important;
    scroll-snap-align: start;
}

@media (min-width: 640px) {
    .lm-products-carousel-shell ul.products li.product { flex-basis: 42% !important; width: 42% !important; }
}

@media (min-width: 1024px) {
    .lm-products-carousel-shell ul.products li.product { flex-basis: 24% !important; width: 24% !important; }
}

.lm-products-carousel-shell { margin: 34px 0 8px; }

.lm-products-carousel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.lm-products-carousel-head h2 { margin: 0; font-size: clamp(20px, 4vw, 27px); }

.lm-products-nav-btn {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 1px solid var(--cn-border);
    background: var(--cn-card);
    color: var(--cn-text);
    cursor: pointer;
    font-size: 15px;
    transition: background .2s ease, color .2s ease;
}

.lm-products-nav-btn:hover { background: var(--cn-btn-bg); color: #fff; }

/* =========================================================
   11) PAGINA DE PRODUS — LAYOUT + SPATIERI
   Designul mare vine din produs-single-v3, care face div.product
   FLEX cu nowrap. Problema: sectiunile de dupa sumar (related,
   vazute recent) sunt copii ai aceluiasi flex container si pe
   desktop ajungeau pe acelasi rand cu titlul. Aici fortez wrap
   si le dau latime intreaga — galeria + sumarul raman pe primul
   rand, restul coboara sub ele.
   ========================================================= */
body.single-product .woocommerce div.product {
    flex-wrap: wrap !important;
    row-gap: 40px;
}

/* tot ce nu e galerie sau sumar ocupa un rand intreg */
body.single-product .woocommerce div.product > .lm-products-carousel-shell,
body.single-product .woocommerce div.product > section,
body.single-product .woocommerce div.product > .related,
body.single-product .woocommerce div.product > .upsells,
body.single-product .woocommerce div.product > .woocommerce-tabs,
body.single-product .woocommerce div.product > .lm-single-extra {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    clear: both;
}

/* badge-ul de reducere nu e element de layout */
body.single-product .woocommerce div.product > span.onsale {
    flex: 0 0 auto !important;
    position: absolute;
}

body.single-product .woocommerce div.product { position: relative; }

/* titlul de produs — editorial, serif, mare */
body.single-product .product_title {
    font-family: var(--cn-font-titlu);
    font-size: clamp(26px, 3vw, 38px);
    line-height: 1.12;
    letter-spacing: .2px;
}

body.single-product .woocommerce div.product form.cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px !important;
}

body.single-product .woocommerce div.product form.cart .quantity { margin: 0 !important; }

body.single-product .woocommerce div.product form.cart .button.single_add_to_cart_button {
    margin-left: 0 !important;
    flex: 1 1 220px;
    min-height: 52px;
    font-size: 15px;
}

/* la variabile, randul cantitate+buton */
body.single-product .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px !important;
    width: 100%;
}

/* tabelul de variatii respira */
body.single-product .variations { margin-bottom: 12px; }
body.single-product .variations tr { display: block; margin-bottom: 14px; }
body.single-product .variations th.label,
body.single-product .variations td.label {
    display: block;
    text-align: left;
    padding: 0 0 7px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .8px;
    color: var(--cn-text-soft);
}
body.single-product .variations td.value { display: block; padding: 0; }

body.single-product .reset_variations { font-size: 12.5px; color: var(--cn-text-soft); }

/* =========================================================
   12) COS
   ========================================================= */
.woocommerce-cart table.cart,
.woocommerce table.shop_table {
    border: 1px solid var(--cn-border);
    border-radius: var(--cn-radius-card);
    overflow: hidden;
    background: var(--cn-card);
}

.woocommerce table.shop_table th {
    font-family: var(--cn-font-text);
    font-size: 12.5px;
    text-transform: uppercase;
    letter-spacing: .9px;
    color: var(--cn-text-soft);
    background: var(--cn-card-soft);
    border: 0;
    padding: 13px 14px;
}

.woocommerce table.shop_table td { border-top: 1px solid var(--cn-bg-deep); padding: 13px 14px; }

.woocommerce-cart table.cart img { width: 74px; border-radius: 12px; }

.woocommerce-cart table.cart td.product-name a { font-weight: 600; }

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce form.checkout_coupon,
.woocommerce form.login {
    background: var(--cn-card);
    border: 1px solid var(--cn-border) !important;
    border-radius: var(--cn-radius-card);
    padding: 20px;
    box-shadow: var(--cn-shadow-soft);
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    width: 100%;
    font-size: 16px;
    padding: 16px 24px;
    background: var(--cn-champagne);
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
    background: var(--cn-btn-bg);
}

/* =========================================================
   13) CHECKOUT — finalizare comanda
   Mobil: o coloana. Desktop: formular stanga, sumar sticky
   dreapta, ca un magazin de 2026, nu ca un formular de 2012.
   ========================================================= */
body.woocommerce-checkout form.checkout.woocommerce-checkout {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 26px;
    align-items: start;
}

/* notificarile / erorile ocupa mereu toata latimea */
body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
body.woocommerce-checkout form.checkout > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
}

@media (min-width: 1024px) {
    body.woocommerce-checkout form.checkout.woocommerce-checkout {
        grid-template-columns: minmax(0, 1.25fr) minmax(360px, 1fr);
        grid-template-rows: auto 1fr;
    }

    /* facturare + livrare: coloana stanga, se intinde pe ambele randuri */
    body.woocommerce-checkout form.checkout #customer_details {
        grid-column: 1 !important;
        grid-row: 1 / span 2;
        float: none !important;
        width: 100% !important;
    }

    /* "Comanda ta" + sumarul: coloana dreapta, lipite sus */
    body.woocommerce-checkout form.checkout #order_review_heading {
        grid-column: 2 !important;
        grid-row: 1;
        margin: 0 0 0 !important;
    }

    body.woocommerce-checkout form.checkout #order_review {
        grid-column: 2 !important;
        grid-row: 2;
        align-self: start;
        position: sticky;
        top: 90px;
        float: none !important;
        width: 100% !important;
    }
}

/* cardul cu datele de facturare */
.woocommerce-checkout #customer_details .woocommerce-billing-fields,
.woocommerce-checkout #customer_details .woocommerce-shipping-fields,
.woocommerce-checkout #customer_details .woocommerce-additional-fields {
    background: var(--cn-card);
    border: 1px solid var(--cn-border);
    border-radius: var(--cn-radius-card);
    padding: 22px 18px;
    box-shadow: var(--cn-shadow-soft);
    margin-bottom: 18px;
}

.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
    float: none;
    width: 100%;
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #order_review_heading {
    font-size: 21px;
    margin: 0 0 14px;
}

@media (min-width: 1024px) {
    .woocommerce-checkout #order_review_heading { margin-top: 0; }
}

/* sumarul comenzii */
.woocommerce-checkout #order_review {
    background: var(--cn-card);
    border: 1px solid var(--cn-border) !important;
    border-radius: var(--cn-radius-card);
    padding: 20px 18px;
    box-shadow: var(--cn-shadow-soft);
}

.woocommerce-checkout #order_review table.shop_table {
    border: 0;
    background: transparent;
    box-shadow: none;
}

.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
    background: transparent;
    padding: 11px 4px;
}

.woocommerce-checkout #order_review .order-total td,
.woocommerce-checkout #order_review .order-total th {
    font-size: 17px;
    font-weight: 700;
    border-top: 2px solid var(--cn-border);
}

/* campuri: etichete clare, o coloana pe mobil */
.woocommerce form .form-row { padding: 3px 0; margin-bottom: 10px; }

.woocommerce form .form-row label {
    font-size: 13px;
    font-weight: 600;
    color: var(--cn-text-soft);
    margin-bottom: 4px;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select { padding: 12px 15px; }

.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: #b3003c; }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: #2f7d4f; }

/* selectul de judet (select2) in acelasi stil */
.select2-container--default .select2-selection--single {
    height: auto;
    padding: 9px 12px;
    border: 1.5px solid var(--cn-border);
    border-radius: var(--cn-radius-input);
}

.select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); }

/* metode de plata ca niste carduri */
#payment {
    background: transparent !important;
    border-radius: 0;
}

#payment ul.payment_methods {
    border: 0 !important;
    padding: 0;
    margin: 0 0 6px;
}

#payment ul.payment_methods li {
    list-style: none;
    border: 1.5px solid var(--cn-border);
    border-radius: 14px;
    background: #fff;
    padding: 13px 14px;
    margin-bottom: 10px;
    transition: border-color .2s ease, box-shadow .2s ease;
}

#payment ul.payment_methods li:hover { border-color: var(--cn-accent); }

#payment ul.payment_methods li label {
    font-weight: 600;
    font-size: 15px;
    cursor: pointer;
}

#payment ul.payment_methods li img { display: inline-block; max-height: 26px; margin-left: 8px; }

#payment div.payment_box {
    background: var(--cn-card-soft) !important;
    color: var(--cn-text) !important;
    border-radius: 10px;
    font-size: 13.5px;
    margin: 10px 0 0;
}

#payment div.payment_box::before { display: none; }

.woocommerce-checkout #payment div.form-row.place-order { padding: 14px 0 0; }

.woocommerce #payment #place_order {
    width: 100%;
    font-size: 16.5px;
    padding: 17px 24px;
    background: var(--cn-champagne);
    letter-spacing: .6px;
    box-shadow: 0 12px 28px rgba(158, 122, 102, .35);
}

.woocommerce #payment #place_order:hover {
    background: var(--cn-btn-bg);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .25);
}

.woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--cn-text-soft); }

/* cuponul, discret peste formular */
.woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 16px; }

/* ----- Contul meu: navigare pe pastile + continut pe card ----- */
.woocommerce-MyAccount-navigation { margin-bottom: 18px; }

.woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.woocommerce-MyAccount-navigation li a {
    display: inline-flex;
    padding: 9px 17px;
    border: 1.5px solid var(--cn-border);
    border-radius: 999px;
    font-size: 13.5px;
    font-weight: 600;
    background: var(--cn-card);
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
    background: var(--cn-btn-bg);
    color: #fff;
    border-color: var(--cn-btn-bg);
}

.woocommerce-MyAccount-content {
    background: var(--cn-card);
    border: 1px solid var(--cn-border);
    border-radius: var(--cn-radius-card);
    padding: 22px;
    box-shadow: var(--cn-shadow-soft);
}

/* =========================================================
   14) COMANDA FINALIZATA
   ========================================================= */
.woocommerce-order .woocommerce-thankyou-order-received {
    background: var(--cn-champagne);
    color: #fff;
    font-family: var(--cn-font-titlu);
    font-size: clamp(20px, 5vw, 28px);
    text-align: center;
    padding: 30px 20px;
    border-radius: var(--cn-radius-card);
    box-shadow: var(--cn-shadow-hover);
    margin-bottom: 22px;
}

/* lista cu detaliile comenzii: carduri egale, aliniate pe un rand;
   auto-fit acopera si cazul cu 5 elemente (numar, data, email,
   total, metoda de plata) fara sa ramana unul stingher */
.woocommerce-order ul.woocommerce-thankyou-order-details {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 0 0 26px !important;
    padding: 0 !important;
    list-style: none;
}

@media (min-width: 768px) {
    .woocommerce-order ul.woocommerce-thankyou-order-details {
        grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
        gap: 12px;
    }
}

.woocommerce-order ul.woocommerce-thankyou-order-details li {
    display: flex !important;
    flex-direction: column;
    justify-content: flex-start;
    border: 1px solid var(--cn-border) !important;
    border-radius: 14px;
    background: var(--cn-card);
    padding: 14px !important;
    margin: 0 !important;
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--cn-text-soft);
    float: none !important;
    width: auto !important;
    min-width: 0;
}

.woocommerce-order ul.woocommerce-thankyou-order-details li strong {
    display: block;
    margin-top: 5px;
    font-size: 15px;
    line-height: 1.35;
    text-transform: none;
    letter-spacing: 0;
    color: var(--cn-text);
    overflow-wrap: anywhere; /* emailurile lungi nu mai sparg alinierea */
}

/* sectiunea cu produsele comandate */
.woocommerce-order-details,
.woocommerce-order-downloads {
    margin: 6px 0 26px;
}

.woocommerce-order-details .woocommerce-order-details__title,
.woocommerce-customer-details .woocommerce-column__title {
    font-size: 21px;
    margin-bottom: 12px;
}

.woocommerce-order-details table.order_details tfoot th,
.woocommerce-order-details table.order_details tfoot td {
    background: var(--cn-card-soft);
    font-weight: 600;
}

.woocommerce-order-details table.order_details tfoot tr:last-child th,
.woocommerce-order-details table.order_details tfoot tr:last-child td {
    font-size: 16px;
    font-weight: 700;
}

/* adresele de facturare / livrare: doua carduri egale pe desktop,
   fara float-urile WooCommerce */
.woocommerce-customer-details { margin-bottom: 30px; }

.woocommerce-customer-details .woocommerce-columns--addresses {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

@media (min-width: 768px) {
    .woocommerce-customer-details .woocommerce-columns--addresses {
        grid-template-columns: 1fr 1fr;
    }
}

.woocommerce-customer-details .woocommerce-columns--addresses .woocommerce-column {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
}

.woocommerce-customer-details address {
    background: var(--cn-card);
    border: 1px solid var(--cn-border) !important;
    border-radius: 14px;
    padding: 18px !important;
    font-style: normal;
    line-height: 1.7;
    height: 100%;
    box-shadow: var(--cn-shadow-soft);
}

/* =========================================================
   15) PAGINI STATICE
   ========================================================= */
.lm-page-hero {
    background: var(--cn-champagne);
    border-radius: var(--cn-radius-card);
    padding: clamp(30px, 6vw, 58px) clamp(18px, 5vw, 48px);
    margin: 18px 0 30px;
    color: #fff;
    text-align: center;
    box-shadow: var(--cn-shadow-hover);
    position: relative;
    overflow: hidden;
}

/* voal luminos peste hero */
.lm-page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.22) 0%, rgba(255,255,255,0) 55%);
    pointer-events: none;
}

.lm-page-hero h1,
.lm-page-hero .lm-page-hero-title {
    color: #fff;
    margin-bottom: 6px;
    font-size: clamp(26px, 6vw, 40px);
    position: relative;
}

.lm-page-hero p {
    margin: 0 auto;
    max-width: 640px;
    color: rgba(255, 255, 255, .93);
    font-size: 15px;
    position: relative;
}

.lm-page-body { max-width: 840px; margin: 0 auto; }
.lm-page-body h2 { margin-top: 1.6em; padding-bottom: 8px; border-bottom: 1px solid var(--cn-border); }
.lm-page-body h3 { margin-top: 1.3em; }

.lm-info-card {
    background: var(--cn-card);
    border: 1px solid var(--cn-border);
    border-left: 4px solid var(--cn-accent);
    border-radius: 14px;
    padding: 16px 18px;
    margin: 18px 0;
    box-shadow: var(--cn-shadow-soft);
}

.lm-info-card strong { color: var(--cn-accent-deep); }

.lm-contact-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin: 22px 0;
}

@media (min-width: 768px) {
    .lm-contact-grid { grid-template-columns: repeat(3, 1fr); }
}

.lm-contact-card {
    background: var(--cn-card);
    border: 1px solid var(--cn-border);
    border-radius: var(--cn-radius-card);
    padding: 24px 18px;
    text-align: center;
    box-shadow: var(--cn-shadow-soft);
    transition: transform .25s ease, box-shadow .25s ease;
}

.lm-contact-card:hover { transform: translateY(-3px); box-shadow: var(--cn-shadow-hover); }

.lm-contact-card .lm-contact-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 999px;
    background: var(--cn-champagne);
    color: #fff;
    font-size: 22px;
    margin-bottom: 10px;
}

.lm-contact-card h3 { font-size: 17px; margin-bottom: 4px; }
.lm-contact-card p { margin: 0; color: var(--cn-text-soft); font-size: 14px; }
.lm-contact-card a { font-weight: 600; color: var(--cn-accent-deep); }

.lm-page-body table {
    background: var(--cn-card);
    border: 1px solid var(--cn-border);
    border-radius: 14px;
    overflow: hidden;
    margin: 16px 0;
    display: table;
}

.lm-page-body th, .lm-page-body td {
    padding: 12px 14px;
    text-align: left;
    border-bottom: 1px solid var(--cn-bg-deep);
    font-size: 14px;
}

.lm-page-body th {
    background: var(--cn-card-soft);
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: .8px;
    color: var(--cn-text-soft);
}

/* tabelele late nu sparg mobilele */
@media (max-width: 640px) {
    .lm-page-body table { display: block; overflow-x: auto; white-space: nowrap; }
}

/* =========================================================
   16) SECTIUNI HOMEPAGE
   ========================================================= */

/* ----- hero-ul promo (prima sectiune): imaginea campaniei
   cu butonul de termeni asezat jos, peste imagine ----- */
.lm-hero-promo {
    position: relative;
    max-width: 1140px;
    margin: 14px auto 30px;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(43, 34, 29, .06), 0 18px 44px rgba(43, 34, 29, .10);
}

.lm-hero-promo img {
    width: 100%;
    height: auto;
    display: block;
}

.lm-hero-promo-actiuni {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    padding: 40px 16px 18px;
    background: linear-gradient(180deg, rgba(20, 14, 10, 0) 0%, rgba(20, 14, 10, .45) 100%);
}

.lm-hero-promo-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 28px;
    border-radius: 999px;
    background: rgba(20, 14, 10, .82);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: #fff !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    border: 1px solid rgba(255, 255, 255, .25);
    transition: background .2s ease, transform .2s ease;
}

.lm-hero-promo-btn:hover {
    background: #141414;
    transform: translateY(-2px);
}

@media (max-width: 640px) {
    .lm-hero-promo { margin: 8px auto 22px; border-radius: 16px; }
    .lm-hero-promo-actiuni { padding: 30px 12px 12px; }
    .lm-hero-promo-btn { padding: 10px 20px; font-size: 11.5px; }
}

/* ----- cardul cu masinuta electrica (sub slider) ----- */
.lm-info-banner {
    display: flex;
    align-items: center;
    gap: 18px;
    max-width: 760px;
    margin: 0 auto 34px;
    padding: 16px 22px;
    background: var(--cn-card);
    border: 1px solid var(--cn-border);
    border-left: 4px solid var(--cn-accent);
    border-radius: 18px;
    box-shadow: var(--cn-shadow-soft);
}

.lm-info-banner img {
    width: 86px;
    height: 86px;
    object-fit: contain;
    border-radius: 14px;
    background: var(--cn-card-soft);
    padding: 6px;
    flex: 0 0 auto;
}

.lm-info-banner-text strong {
    display: block;
    font-family: var(--cn-font-titlu);
    font-size: 19px;
    line-height: 1.3;
    margin-bottom: 4px;
}

.lm-info-banner-text a {
    color: var(--cn-accent-deep);
    font-weight: 600;
    font-size: 14.5px;
}

.lm-info-banner-text a:hover { text-decoration: underline; }

@media (max-width: 640px) {
    .lm-info-banner {
        flex-direction: column;
        text-align: center;
        gap: 10px;
        padding: 18px 16px;
        margin-bottom: 26px;
    }

    .lm-info-banner img { width: 76px; height: 76px; }
    .lm-info-banner-text strong { font-size: 17px; }
}
.lm-benefits {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin: 28px auto;
    max-width: var(--cn-container);
}

@media (min-width: 768px) {
    .lm-benefits { grid-template-columns: repeat(4, 1fr); gap: 16px; }
}

.lm-benefit {
    background: var(--cn-card);
    border: 1px solid var(--cn-border);
    border-radius: var(--cn-radius-card);
    padding: 20px 14px;
    text-align: center;
    box-shadow: var(--cn-shadow-soft);
    transition: transform .25s ease, box-shadow .25s ease;
}

.lm-benefit:hover { transform: translateY(-3px); box-shadow: var(--cn-shadow-hover); }

.lm-benefit .lm-benefit-ico { font-size: 27px; display: block; margin-bottom: 8px; }
.lm-benefit strong { display: block; font-size: 14px; margin-bottom: 2px; }
.lm-benefit span { font-size: 12.5px; color: var(--cn-text-soft); line-height: 1.4; display: block; }

/* =========================================================
   17) FOOTER — v2
   Rand de brand cu logo pe placuta crem, trei coloane aerisite,
   rand de incredere si bara finala. Contrast ridicat peste tot.
   ========================================================= */
.site-footer {
    background:
        radial-gradient(1200px 400px at 50% -200px, rgba(216, 183, 161, .14), transparent 70%),
        #1a130f;
    color: #e9ddd2;
    margin-top: auto;
    border-top: 3px solid transparent;
    border-image: linear-gradient(90deg, #b89279, #d8b7a1, #9e7a66) 1;
}

/* ----- randul de brand ----- */
.lm-footer-brand-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
    padding: 42px 0 30px;
    border-bottom: 1px solid rgba(232, 201, 174, .14);
}

/* logo-ul din Personalizare — PNG curat, fara placuta, fara margini */
.lm-footer-logo-plaque {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    padding: 0;
}

.lm-footer-logo-plaque img {
    max-height: 64px;
    width: auto;
}

/* fallback wordmark daca nu e setat logo */
.lm-footer-logo {
    font-family: var(--cn-font-titlu);
    font-size: 30px;
    font-weight: 700;
    color: #fff;
    display: inline-block;
}

.lm-footer-logo span {
    background: var(--cn-champagne);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* textul promo de sub logo — pus in evidenta, nu sters ca un tagline */
.lm-footer-promo {
    margin: 4px auto 0;
    max-width: 680px;
    padding: 13px 26px;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(184, 146, 121, .22), rgba(216, 183, 161, .14));
    border: 1px solid rgba(232, 201, 174, .35);
    color: #f5e9dd;
    font-size: 15px;
    line-height: 1.65;
    text-align: center;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}

.lm-footer-promo strong {
    color: #ffd9b3;
    font-weight: 700;
}

@media (max-width: 640px) {
    .lm-footer-promo {
        font-size: 14px;
        padding: 12px 16px;
    }
}

/* ----- meniul simplu, centrat, pe un rand ----- */
.lm-footer-links {
    padding: 26px 0 6px;
}

.site-footer ul.lm-footer-menu-simplu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 28px;
}

.site-footer ul.lm-footer-menu-simplu li { margin: 0; }

.site-footer a {
    color: #f0e4d7;
    font-size: 14.5px;
    transition: color .2s ease;
}

.site-footer a:hover { color: #ffd9b3; }

.site-footer ul.lm-footer-menu-simplu a {
    display: inline-block;
    padding: 8px 2px;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .3px;
    position: relative;
}

.site-footer ul.lm-footer-menu-simplu a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: 4px;
    height: 1.5px;
    background: var(--cn-champagne);
    transition: right .25s ease;
}

.site-footer ul.lm-footer-menu-simplu a:hover::after { right: 0; }

/* ----- contactul pe un rand ----- */
.lm-footer-contact-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 30px;
    padding: 10px 0 22px;
}

.lm-footer-contact-row span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14.5px;
    color: #cdbcad;
}

.site-footer .lm-footer-contact-row .lm-ico,
.site-footer .lm-footer-trust .lm-ico { color: #d8b7a1; }

/* ----- siglele ANPC ----- */
.lm-footer-anpc {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 16px;
    padding: 4px 0 18px;
}

/* siglele ANPC — PNG-urile curate, fara fundal si fara chenar */
.lm-footer-anpc a {
    display: inline-flex;
    background: transparent;
    padding: 0;
    transition: transform .2s ease, opacity .2s ease;
}

.lm-footer-anpc a:hover {
    transform: translateY(-2px);
    opacity: .85;
}

.lm-footer-anpc img {
    height: 44px;
    width: auto;
    display: block;
}

/* ----- datele legale ale firmei ----- */
.lm-footer-legal {
    text-align: center;
    font-size: 12.5px;
    line-height: 1.7;
    color: #9d8a7b;
    max-width: 880px;
    margin: 0 auto;
    padding: 0 0 18px;
}

/* ----- randul de incredere ----- */
.lm-footer-trust {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    padding: 4px 0 26px;
}

.lm-footer-trust span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border: 1px solid rgba(232, 201, 174, .25);
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .4px;
    color: #e9ddd2;
    background: rgba(255, 255, 255, .03);
}

/* ----- bara finala ----- */
.site-footer .lm-footer-bottom {
    border-top: 1px solid rgba(232, 201, 174, .14);
    padding: 18px 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: center;
    text-align: center;
    font-size: 13.5px;
    color: #c2b0a1;
}

@media (min-width: 768px) {
    .site-footer .lm-footer-bottom { flex-direction: row; justify-content: space-between; text-align: left; }
}

.site-footer .lm-footer-credit a {
    color: #ffd9b3;
    font-weight: 600;
}

/* =========================================================
   18) BLOG
   ========================================================= */
.lm-post-card {
    background: var(--cn-card);
    border: 1px solid var(--cn-border);
    border-radius: var(--cn-radius-card);
    box-shadow: var(--cn-shadow-soft);
    padding: 24px;
    margin-bottom: 20px;
}

.lm-post-card .entry-title { font-size: 24px; }
.lm-post-card .entry-meta { font-size: 13px; color: var(--cn-text-soft); margin-bottom: 12px; }
.page .entry-header .entry-title { margin: 22px 0 6px; }

/* =========================================================
   19) UTILITARE + ACCESIBILITATE
   ========================================================= */
.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 100000;
    background: var(--cn-btn-bg);
    color: #fff;
    padding: 10px 18px;
    border-radius: 0 0 12px 0;
}

.skip-link:focus { left: 0; color: #fff; }

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    width: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    word-wrap: normal !important;
}

a:focus-visible,
button:focus-visible,
.lm-swatch:focus-visible {
    outline: 2px solid var(--cn-accent);
    outline-offset: 2px;
}

.alignwide { max-width: var(--cn-container); margin-left: auto; margin-right: auto; }
.alignfull { width: 100%; max-width: 100%; }

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

/* =========================================================
   20) FIXURI DE ARANJAMENT — MOBILE + DESKTOP
   Rezultatul auditului final: lucruri marunte care fac
   diferenta dintre "tema" si "produs finit".
   ========================================================= */

/* ancorele nu se mai ascund sub header-ul sticky */
html { scroll-padding-top: 84px; }

/* tap target minim 44px pe toate butoanele */
.button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    min-height: 44px;
}

/* ----- bara de stoc de pe produs (modulul o genereaza,
   dar stilul venea din tema veche — aici e varianta noastra) ----- */
.lm-stock-wrap {
    margin: 12px 0 4px;
}

.lm-stock-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--cn-text-soft);
    margin-bottom: 6px;
}

.lm-stock-bar {
    width: 100%;
    height: 10px;
    border-radius: 999px;
    background: var(--cn-bg-deep);
    border: 1px solid var(--cn-border);
    overflow: hidden;
}

.lm-stock-fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--cn-champagne);
    transition: width .5s ease;
}

.lm-stock-fill.lm-stock-mid { background: linear-gradient(135deg, #d9a05b, #c9883e); }
.lm-stock-fill.lm-stock-low { background: linear-gradient(135deg, #c0392b, #96281b); }

/* ----- antetul listarii: numarul de rezultate stanga,
   sortarea dreapta, grila incepe mereu sub ele ----- */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
    float: left;
    margin: 6px 0 14px;
}

.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
    float: right;
    margin: 0 0 14px;
}

.woocommerce ul.products,
.woocommerce-page ul.products { clear: both; }

@media (max-width: 639px) {
    /* pe mobil numarul de rezultate doar face zgomot */
    .woocommerce .woocommerce-result-count { display: none; }

    .woocommerce .woocommerce-ordering {
        float: none;
        width: 100%;
    }

    .woocommerce .woocommerce-ordering select { width: 100%; }
}

/* ----- cosul pe mobil: randurile devin carduri lizibile ----- */
@media (max-width: 768px) {
    .woocommerce-cart table.shop_table_responsive tr {
        background: var(--cn-card);
        border-bottom: 6px solid var(--cn-bg);
    }

    .woocommerce table.shop_table_responsive tr td {
        padding: 11px 14px;
    }

    .woocommerce table.shop_table_responsive tr td::before {
        font-weight: 600;
        color: var(--cn-text-soft);
        text-transform: uppercase;
        font-size: 11.5px;
        letter-spacing: .6px;
    }

    .woocommerce-cart table.cart img { width: 86px; margin-left: auto; }
}

/* ----- cuponul din cos: pe un rand, fara inghesuiala ----- */
.woocommerce-cart table.cart td.actions .coupon {
    display: flex;
    gap: 8px;
    align-items: stretch;
    float: none;
    margin-bottom: 10px;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
    flex: 1 1 auto;
    width: auto !important;
    min-width: 0;
    margin: 0;
}

.woocommerce-cart table.cart td.actions .coupon .button { flex: 0 0 auto; white-space: nowrap; }

@media (min-width: 769px) {
    .woocommerce-cart table.cart td.actions .coupon { max-width: 420px; }
}

/* butonul "Actualizeaza cosul" la dreapta, pe desktop */
.woocommerce-cart table.cart td.actions > .button { float: right; }
@media (max-width: 768px) {
    .woocommerce-cart table.cart td.actions > .button { float: none; width: 100%; }
}

/* ----- formularul de cautare standard (404 / fallback) ----- */
.lm-search-form {
    display: flex;
    gap: 8px;
    max-width: 460px;
}

.lm-search-form .search-field { flex: 1 1 auto; }
.lm-search-form .search-submit { flex: 0 0 auto; }

/* ----- notitele Woo cu buton: butonul nu mai sta lipit de text ----- */
.woocommerce-message .button,
.woocommerce-info .button {
    margin-left: 10px;
}

@media (max-width: 640px) {
    .woocommerce-message .button,
    .woocommerce-info .button {
        display: flex;
        float: none !important;
        margin: 10px 0 0;
        width: 100%;
    }
}

/* ----- imaginile din caruselele homepage nu se deformeaza ----- */
.fn-top-products-track img,
.lm-cart-interest-track img {
    aspect-ratio: 3 / 4;
    object-fit: cover;
}

/* ----- variatiile pe mobil: swatch-urile au loc de respirat ----- */
@media (max-width: 640px) {
    .lm-swatches { gap: 8px; }
    .lm-swatch { min-height: 44px; }
}

/* =========================================================
   21) CHECKOUT: DETALII FINE + ICONS
   ========================================================= */

/* cardul gol dintre facturare si "Informatii suplimentare" era
   .woocommerce-shipping-fields fara continut — il ascundem */
.woocommerce-checkout #customer_details .woocommerce-shipping-fields:empty,
.woocommerce-checkout #customer_details .woocommerce-shipping-fields:not(:has(h3)):not(:has(.form-row)),
.woocommerce-checkout #customer_details .col-2:empty,
.woocommerce-checkout form.checkout > .clear {
    display: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* icon de card la fiecare metoda de plata… */
#payment ul.payment_methods li > label::before {
    content: "";
    display: inline-block;
    width: 24px;
    height: 17px;
    margin-right: 9px;
    vertical-align: -3px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239e7a66' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2.5'/%3E%3Cpath d='M2 10h20'/%3E%3Cpath d='M6 15h4'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* …si bancnota la ramburs */
#payment ul.payment_methods li.payment_method_cod > label::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239e7a66' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='2' y='6' width='20' height='12' rx='2'/%3E%3Ccircle cx='12' cy='12' r='2.6'/%3E%3Cpath d='M5.5 9.5h.01M18.5 14.5h.01'/%3E%3C/svg%3E");
}

/* camion la metodele de livrare (checkout + cos) */
ul#shipping_method li label::before,
.woocommerce-shipping-methods li label::before {
    content: "";
    display: inline-block;
    width: 22px;
    height: 16px;
    margin-right: 7px;
    vertical-align: -2px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239e7a66' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 5h13v11H1zM14 9h4l4 4v3h-8z'/%3E%3Ccircle cx='6' cy='18' r='1.8'/%3E%3Ccircle cx='18' cy='18' r='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* =========================================================
   22) PLASE DE SIGURANTA VIZUALE
   ========================================================= */

/* daca ceva transforma emoji in <img>, raman la dimensiunea textului */
img.emoji,
img.wp-smiley {
    display: inline-block !important;
    width: 1em !important;
    height: 1em !important;
    margin: 0 .07em !important;
    vertical-align: -0.1em !important;
    border: none !important;
    box-shadow: none !important;
    background: none !important;
    padding: 0 !important;
}

/* =========================================================
   23) PAGINA LIVRARE INTERNATIONALA — zone pe carduri
   ========================================================= */
.lm-zone-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin: 20px 0 26px;
}

@media (min-width: 768px) {
    .lm-zone-grid { grid-template-columns: repeat(3, 1fr); }
}

.lm-zone-card {
    background: var(--cn-card);
    border: 1px solid var(--cn-border);
    border-radius: var(--cn-radius-card);
    padding: 22px 18px;
    text-align: center;
    box-shadow: var(--cn-shadow-soft);
}

.lm-zone-card h3 {
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    font-family: var(--cn-font-text);
    font-weight: 700;
    color: var(--cn-text-soft);
    margin-bottom: 8px;
}

.lm-zone-tari {
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 10px;
    line-height: 1.5;
}

.lm-zone-timp {
    display: inline-block;
    padding: 8px 18px;
    border-radius: 999px;
    background: var(--cn-champagne);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 8px;
}

.lm-zone-card .lm-zone-nota {
    margin: 0;
    font-size: 13px;
    color: var(--cn-text-soft);
}

/* iconitele inline din paginile generate (SVG-uri mici) */
.lm-ico {
    width: 1.15em;
    height: 1.15em;
    display: inline-block;
    vertical-align: -0.2em;
    flex: 0 0 auto;
}

.lm-contact-card .lm-contact-ico svg,
.lm-benefit .lm-benefit-ico svg {
    width: 26px;
    height: 26px;
    display: block;
}

.lm-benefit .lm-benefit-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 999px;
    background: var(--cn-champagne);
    color: #fff;
    margin: 0 auto 10px;
}
