/* ==============================================================
   LIKEVOLT theme — Instagram-gradient light design system
   ============================================================== */

:root {
    --lv-bg: #ffffff;
    --lv-bg-alt: #fbf7ff;
    --lv-surface: #ffffff;
    --lv-text: #160a2c;
    --lv-text-soft: #5b5174;
    --lv-text-muted: #8a829e;
    --lv-border: #ece4f7;
    --lv-border-strong: #d9cfee;
    --lv-pink: #ee2a7b;
    --lv-purple: #6228d7;
    --lv-orange: #f9ce34;
    --lv-rose: #f7ecff;
    --lv-success: #10b981;
    --lv-radius: 16px;
    --lv-radius-sm: 10px;
    --lv-radius-lg: 28px;
    --lv-shadow-sm: 0 4px 12px rgba(98, 40, 215, .08);
    --lv-shadow: 0 10px 30px rgba(98, 40, 215, .12);
    --lv-shadow-lg: 0 30px 60px rgba(98, 40, 215, .18);
    --lv-gradient: linear-gradient(135deg, #f9ce34 0%, #ee2a7b 45%, #6228d7 100%);
    --lv-gradient-soft: linear-gradient(135deg, #fff4d6 0%, #ffd6e7 50%, #e7d6ff 100%);
    --lv-font: 'Plus Jakarta Sans', 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    --lv-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--lv-font);
    color: var(--lv-text);
    background: var(--lv-bg);
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
img, svg, video { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
h1, h2, h3, h4, h5 { font-family: var(--lv-font); font-weight: 800; line-height: 1.15; margin: 0 0 .5rem; letter-spacing: -.02em; }

.container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.container--narrow { max-width: 820px; }
.lv-skip { position: absolute; left: -9999px; }
.lv-skip:focus { left: 16px; top: 16px; background: #fff; padding: 8px 12px; z-index: 9999; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }
.lv-gradient-text { background: var(--lv-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* SVG icon defaults */
.lv-icon { display: inline-block; vertical-align: -.125em; flex-shrink: 0; color: currentColor; }
.lv-icon--lg { width: 32px; height: 32px; }
.lv-icon--xl { width: 48px; height: 48px; }
.lv-icon--grad { color: transparent; background: var(--lv-gradient); -webkit-background-clip: text; background-clip: text; }
/* When an icon sits in a "chip" tile (services grid, side perks, why), use this wrapper */
.lv-icon-chip {
    width: 44px; height: 44px; border-radius: 12px;
    background: var(--lv-gradient-soft);
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--lv-purple); flex-shrink: 0;
}
.lv-icon-chip--lg { width: 56px; height: 56px; border-radius: 14px; }
.lv-icon-chip--solid {
    background: var(--lv-gradient);
    color: #fff;
    box-shadow: 0 6px 16px rgba(98, 40, 215, .22);
}

/* ----------  BUTTONS  ---------- */
.lv-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    padding: 12px 20px; border-radius: 999px; font-weight: 700; font-size: 15px;
    border: 0; cursor: pointer; transition: transform .15s ease, box-shadow .2s ease, opacity .15s;
    text-decoration: none; white-space: nowrap; line-height: 1;
}
.lv-btn--sm { padding: 9px 16px; font-size: 13px; }
.lv-btn--lg { padding: 16px 28px; font-size: 16px; }
.lv-btn--primary { background: var(--lv-gradient); color: #fff; box-shadow: var(--lv-shadow); }
.lv-btn--primary:hover { transform: translateY(-2px); box-shadow: var(--lv-shadow-lg); }
.lv-btn--ghost { background: var(--lv-rose); color: var(--lv-text); }
.lv-btn--ghost:hover { background: #f0e2ff; }
.lv-btn--white { background: #fff; color: var(--lv-purple); box-shadow: var(--lv-shadow); }
.lv-btn--white:hover { transform: translateY(-2px); }
.lv-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; background: var(--lv-rose); color: var(--lv-purple); }
.lv-iconbtn:hover { background: #f0e2ff; }

/* ----------  PROMO BAR  ---------- */
.lv-promo-bar {
    background: var(--lv-gradient);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
}
.lv-promo-bar .container {
    display: flex; align-items: center; justify-content: center; gap: 16px;
    padding-top: 8px; padding-bottom: 8px; text-align: center; flex-wrap: wrap;
}
.lv-promo-sep { opacity: .6; }

/* ----------  HEADER  ---------- */
.lv-header {
    position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.92);
    backdrop-filter: saturate(180%) blur(14px);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    border-bottom: 1px solid var(--lv-border);
}
.lv-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 14px 24px; }
.lv-brand { flex-shrink: 0; max-width: 240px; }
.lv-brand .custom-logo-link { display: inline-flex; align-items: center; line-height: 0; }
.lv-brand .custom-logo,
.lv-brand .custom-logo-link img { max-height: 44px; width: auto; height: auto; display: block; }
.lv-brand .lv-logo--file { display: inline-flex; align-items: center; line-height: 0; }
.lv-brand .lv-logo--file img { max-height: 40px; width: auto; height: auto; display: block; }
.lv-footer .lv-logo--file img { max-height: 44px; width: auto; height: auto; display: block; }
.lv-footer .lv-logo--footer img { filter: brightness(0) invert(1) opacity(.95); } /* white-out the LIKE letters in the wordmark for dark footer */
.lv-logo { display: inline-flex; align-items: center; gap: 8px; font-size: 20px; font-weight: 800; letter-spacing: -.02em; }
.lv-logo__text strong { background: var(--lv-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lv-logo__mark { display: inline-flex; }

/* Footer logo (works on dark bg too) */
.lv-footer__brand .custom-logo,
.lv-footer__brand .custom-logo-link img { max-height: 48px; width: auto; height: auto; display: block; }

.lv-nav { flex: 1; display: flex; justify-content: center; }
.lv-menu { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.lv-menu li a, .lv-menu li > a {
    padding: 10px 14px; border-radius: 999px; font-weight: 600; font-size: 14px; color: var(--lv-text);
    display: inline-block; transition: background .15s;
}
.lv-menu li a:hover { background: var(--lv-rose); }
.lv-menu .current-menu-item > a, .lv-menu .current_page_item > a { background: var(--lv-rose); color: var(--lv-purple); }

.lv-actions { display: flex; align-items: center; gap: 10px; }
.lv-cartbtn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; background: var(--lv-rose); color: var(--lv-purple); }
.lv-cartbtn:hover { background: #f0e2ff; }
.lv-cart-count {
    position: absolute; top: -4px; right: -4px;
    min-width: 18px; height: 18px; border-radius: 999px;
    background: var(--lv-gradient); color: #fff; font-size: 11px; font-weight: 700;
    display: flex; align-items: center; justify-content: center; padding: 0 4px;
}
.lv-menu-toggle {
    display: none; width: 40px; height: 40px; border-radius: 12px; background: var(--lv-rose); border: 0; padding: 10px;
    flex-direction: column; gap: 4px; align-items: center; justify-content: center;
}
.lv-menu-toggle span { display: block; width: 18px; height: 2px; background: var(--lv-purple); border-radius: 2px; transition: transform .2s, opacity .2s; }
.lv-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.lv-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.lv-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ----------  HERO  ---------- */
.lv-hero { position: relative; overflow: hidden; padding: 80px 0 100px; background: var(--lv-bg); }
.lv-hero__grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.1fr .9fr; gap: 60px; align-items: center; }
.lv-eyebrow { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 999px; background: var(--lv-rose); color: var(--lv-purple); font-size: 13px; font-weight: 700; margin-bottom: 20px; }
.lv-hero__title { font-size: clamp(36px, 5.4vw, 60px); margin-bottom: 20px; }
.lv-hero__lead { font-size: 18px; color: var(--lv-text-soft); margin: 0 0 28px; max-width: 540px; }
.lv-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 24px; }
.lv-hero__bullets { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 16px 24px; font-size: 14px; color: var(--lv-text-soft); font-weight: 500; }

.lv-hero__blob { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; z-index: 0; }
.lv-hero__blob--a { width: 420px; height: 420px; background: radial-gradient(circle, #ffd6e7, transparent 60%); top: -120px; right: -80px; }
.lv-hero__blob--b { width: 360px; height: 360px; background: radial-gradient(circle, #e7d6ff, transparent 60%); bottom: -120px; left: -60px; }

/* HERO PHONE MOCKUP */
.lv-hero__visual { position: relative; display: flex; justify-content: center; align-items: center; min-height: 480px; }
.lv-phone {
    width: 280px; height: 540px; border-radius: 40px; background: #0f0a1f;
    padding: 12px; box-shadow: var(--lv-shadow-lg);
    position: relative; transform: rotate(-3deg);
}
.lv-phone__notch { position: absolute; left: 50%; top: 12px; transform: translateX(-50%); width: 90px; height: 22px; background: #0f0a1f; border-radius: 0 0 14px 14px; z-index: 2; }
.lv-phone__screen { background: #fff; border-radius: 30px; height: 100%; padding: 30px 18px 18px; display: flex; flex-direction: column; gap: 14px; overflow: hidden; }
.lv-phone__profile { text-align: center; padding-top: 8px; }
.lv-phone__avatar {
    width: 76px; height: 76px; border-radius: 50%; margin: 0 auto 10px;
    background: var(--lv-gradient); padding: 3px; position: relative;
}
.lv-phone__avatar::after { content: ''; position: absolute; inset: 4px; border-radius: 50%; background: #fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><circle cx="32" cy="32" r="32" fill="%23fbf7ff"/><circle cx="32" cy="26" r="10" fill="%23ee2a7b"/><path d="M14 56c0-10 8-18 18-18s18 8 18 18z" fill="%236228d7"/></svg>') center/cover; }
.lv-phone__handle { font-weight: 700; font-size: 14px; margin-bottom: 6px; }
.lv-phone__stats { display: flex; justify-content: space-around; font-size: 11px; color: var(--lv-text-soft); margin-bottom: 10px; }
.lv-phone__stats strong { display: block; font-size: 15px; color: var(--lv-text); }
.lv-phone__stats .lv-counter { background: var(--lv-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lv-phone__growth { font-size: 11px; color: #fff; background: var(--lv-gradient); padding: 6px 10px; border-radius: 999px; display: inline-block; }
.lv-phone__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin-top: 10px; }
.lv-phone__grid span {
    aspect-ratio: 1; border-radius: 6px;
    background: var(--lv-gradient-soft);
}
.lv-phone__grid span:nth-child(2n) { background: linear-gradient(135deg, #ffd6e7, #e7d6ff); }
.lv-phone__grid span:nth-child(3n) { background: linear-gradient(135deg, #fff4d6, #ffd6e7); }

.lv-float {
    position: absolute; background: #fff; border-radius: 999px; padding: 10px 16px;
    box-shadow: var(--lv-shadow); font-weight: 700; font-size: 14px;
    animation: lvFloat 4s ease-in-out infinite;
}
.lv-float--likes { top: 60px; left: 8%; animation-delay: 0s; color: var(--lv-pink); }
.lv-float--followers { bottom: 80px; right: 0; animation-delay: 1s; color: var(--lv-purple); }
.lv-float--views { top: 50%; right: 8%; animation-delay: 2s; color: #d97706; }
@keyframes lvFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

/* ----------  TRUST STRIP  ---------- */
.lv-trust { background: var(--lv-bg-alt); padding: 40px 0; border-top: 1px solid var(--lv-border); border-bottom: 1px solid var(--lv-border); }
.lv-trust__row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; }
.lv-trust__item { text-align: center; }
.lv-trust__item strong { display: block; font-size: 32px; font-weight: 800; line-height: 1; background: var(--lv-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; margin-bottom: 6px; }
.lv-trust__item span { color: var(--lv-text-soft); font-size: 13px; font-weight: 500; }

/* ----------  SECTION HEAD  ---------- */
.lv-section__head { text-align: center; margin-bottom: 48px; }
.lv-section__head--left { text-align: left; }
.lv-section__head h2 { font-size: clamp(28px, 3.8vw, 42px); margin-bottom: 12px; }
.lv-section__head p { color: var(--lv-text-soft); font-size: 17px; margin: 0 auto; max-width: 620px; }
.lv-section__head--left p { margin: 0; }
.lv-section__foot { text-align: center; margin-top: 40px; }

/* ----------  SERVICES GRID  ---------- */
.lv-services { padding: 100px 0; background: var(--lv-bg); }
.lv-services__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.lv-service {
    display: flex; flex-direction: column; padding: 28px 24px; border-radius: var(--lv-radius);
    background: var(--lv-surface); border: 1px solid var(--lv-border);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s;
}
.lv-service:hover { transform: translateY(-6px); box-shadow: var(--lv-shadow); border-color: var(--lv-border-strong); }
.lv-service__icon {
    width: 56px; height: 56px; border-radius: 14px;
    background: var(--lv-gradient-soft);
    display: flex; align-items: center; justify-content: center; font-size: 28px; margin-bottom: 16px;
}
.lv-service__title { font-size: 18px; margin-bottom: 4px; }
.lv-service__meta { color: var(--lv-text-soft); font-size: 14px; margin: 0 0 16px; }
.lv-service__cta { margin-top: auto; color: var(--lv-purple); font-weight: 700; font-size: 14px; }

/* ----------  BEST SELLERS / PRODUCT GRID  ---------- */
.lv-bestsellers { padding: 100px 0; background: var(--lv-bg-alt); }
.lv-products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.lv-product {
    display: block; background: #fff; border-radius: var(--lv-radius); border: 1px solid var(--lv-border);
    overflow: hidden; transition: transform .2s ease, box-shadow .2s ease, border-color .2s;
    list-style: none;
}
.lv-product:hover { transform: translateY(-4px); box-shadow: var(--lv-shadow); border-color: var(--lv-border-strong); }
.lv-product__link { display: flex; flex-direction: column; height: 100%; }
.lv-product__media {
    position: relative; aspect-ratio: 1.1 / 1; background: var(--lv-gradient-soft);
    display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.lv-product__media img { width: 100%; height: 100%; object-fit: cover; }
.lv-product__placeholder { font-size: 64px; opacity: .9; }
.lv-product__badges { position: absolute; top: 12px; left: 12px; display: flex; gap: 6px; flex-wrap: wrap; }
.lv-badge {
    background: #fff; padding: 4px 10px; border-radius: 999px;
    font-size: 11px; font-weight: 700; box-shadow: var(--lv-shadow-sm);
}
.lv-badge--sale {
    background: linear-gradient(135deg, #ee2a7b 0%, #6228d7 100%);
    color: #fff;
    font-weight: 800;
    font-size: 12px;
    padding: 5px 12px;
    box-shadow: 0 4px 12px rgba(238, 42, 123, .35);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
}
.lv-badge--italy { background: #fff; color: var(--lv-text); }
.lv-badge--real { background: #ecfdf5; color: #047857; }
.lv-product__body { padding: 20px; display: flex; flex-direction: column; flex: 1; }
.lv-product__cat { font-size: 12px; font-weight: 700; color: var(--lv-purple); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 8px; }
.lv-product__title { font-size: 16px; font-weight: 700; line-height: 1.35; margin: 0 0 14px; min-height: 2.7em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lv-product__perks { list-style: none; padding: 0; margin: 0 0 18px; display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: var(--lv-text-soft); }
.lv-product__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.lv-product__price { font-size: 18px; font-weight: 800; color: var(--lv-pink); }
.lv-product__price .woocommerce-Price-amount {
    background: linear-gradient(135deg, #ee2a7b 0%, #6228d7 100%);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.lv-product__price del { opacity: .5; font-weight: 600; margin-right: 4px; }
.lv-product__price del .woocommerce-Price-amount { background: none; -webkit-text-fill-color: var(--lv-text-muted); color: var(--lv-text-muted); }
.lv-product__price ins { text-decoration: none; }
.lv-product__cta { font-size: 13px; font-weight: 700; color: var(--lv-purple); }

/* ----------  HOW IT WORKS  ---------- */
.lv-how { padding: 100px 0; background: var(--lv-bg); }
.lv-how__steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; counter-reset: step; }
.lv-how__step {
    background: var(--lv-bg-alt); border-radius: var(--lv-radius);
    padding: 36px 28px; position: relative; border: 1px solid var(--lv-border);
}
.lv-how__num {
    width: 48px; height: 48px; border-radius: 14px;
    background: var(--lv-gradient); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 20px; margin-bottom: 18px; box-shadow: var(--lv-shadow);
}
.lv-how__step h3 { font-size: 20px; margin: 0 0 8px; }
.lv-how__step p { margin: 0; color: var(--lv-text-soft); }

/* ----------  WHY US  ---------- */
.lv-why { padding: 100px 0; background: var(--lv-bg-alt); }
.lv-why__grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 60px; align-items: start; }
.lv-why__copy h2 { font-size: clamp(28px, 3.6vw, 38px); margin-bottom: 14px; }
.lv-why__copy p { color: var(--lv-text-soft); font-size: 17px; }
.lv-why__features { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.lv-why__features li { display: flex; gap: 14px; padding: 20px; background: #fff; border-radius: var(--lv-radius); border: 1px solid var(--lv-border); }
.lv-why__icon { width: 44px; height: 44px; border-radius: 12px; background: var(--lv-gradient-soft); display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; }
.lv-why__features h4 { font-size: 15px; margin: 2px 0 4px; }
.lv-why__features p { font-size: 13px; color: var(--lv-text-soft); margin: 0; }

/* ----------  TESTIMONIALS  ---------- */
.lv-testimonials { padding: 100px 0; background: var(--lv-bg); }
.lv-testimonials__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.lv-quote { margin: 0; padding: 28px; background: var(--lv-bg-alt); border-radius: var(--lv-radius); border: 1px solid var(--lv-border); }
.lv-quote__stars { color: #f9a825; letter-spacing: 2px; margin-bottom: 12px; }
.lv-quote blockquote { margin: 0 0 16px; font-size: 16px; color: var(--lv-text); line-height: 1.6; }
.lv-quote figcaption { font-size: 14px; font-weight: 700; color: var(--lv-text); }
.lv-quote figcaption span { color: var(--lv-text-soft); font-weight: 500; }

/* ----------  FAQ  ---------- */
.lv-faq { padding: 100px 0; background: var(--lv-bg-alt); }
.lv-accordion { display: flex; flex-direction: column; gap: 12px; }
.lv-accordion__item {
    background: #fff; border-radius: var(--lv-radius); border: 1px solid var(--lv-border);
    padding: 20px 24px;
}
.lv-accordion__item summary {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    cursor: pointer; list-style: none; font-weight: 700; font-size: 17px;
}
.lv-accordion__item summary::-webkit-details-marker { display: none; }
.lv-accordion__icon { width: 28px; height: 28px; border-radius: 999px; background: var(--lv-rose); color: var(--lv-purple); display: flex; align-items: center; justify-content: center; font-weight: 700; flex-shrink: 0; transition: transform .2s; }
.lv-accordion__item[open] .lv-accordion__icon { transform: rotate(45deg); }
.lv-accordion__item p { margin: 14px 0 0; color: var(--lv-text-soft); }

/* ----------  BIG CTA  ---------- */
.lv-bigcta { padding: 80px 0; background: var(--lv-bg); }
.lv-bigcta__card {
    background: var(--lv-gradient); color: #fff; border-radius: var(--lv-radius-lg);
    padding: 64px 40px; text-align: center; box-shadow: var(--lv-shadow-lg);
    position: relative; overflow: hidden;
}
.lv-bigcta__card::before, .lv-bigcta__card::after {
    content: ''; position: absolute; border-radius: 50%; background: rgba(255,255,255,.15); filter: blur(30px);
}
.lv-bigcta__card::before { width: 240px; height: 240px; top: -80px; right: -60px; }
.lv-bigcta__card::after  { width: 200px; height: 200px; bottom: -80px; left: -40px; }
.lv-bigcta__card h2 { font-size: clamp(28px, 3.6vw, 40px); margin-bottom: 12px; position: relative; }
.lv-bigcta__card p { font-size: 17px; opacity: .92; margin-bottom: 28px; position: relative; }
.lv-bigcta__card a { position: relative; }

/* ----------  SHOP HERO + PILLS  ---------- */
.lv-shop-hero { padding: 60px 0 30px; text-align: center; background: var(--lv-bg); }
.lv-shop-hero__title { font-size: clamp(32px, 4.4vw, 48px); margin-bottom: 12px; }
.lv-shop-hero__sub { color: var(--lv-text-soft); font-size: 17px; max-width: 640px; margin: 0 auto 28px; }
.lv-pills { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.lv-pill {
    display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border-radius: 999px;
    background: var(--lv-bg-alt); border: 1px solid var(--lv-border); color: var(--lv-text);
    font-size: 14px; font-weight: 600; transition: all .15s;
}
.lv-pill:hover { border-color: var(--lv-purple); color: var(--lv-purple); }
.lv-pill.is-active { background: var(--lv-gradient); color: #fff; border-color: transparent; box-shadow: var(--lv-shadow-sm); }
.lv-pill__icon { display: inline-flex; align-items: center; justify-content: center; color: var(--lv-purple); }
.lv-pill.is-active .lv-pill__icon { color: #fff; }
.lv-pill__icon .lv-icon { display: block; }

/* ----------  SHOP / WOOCOMMERCE LOOP  ---------- */
.lv-shop { padding: 30px 0 100px; }
.lv-wc { padding: 60px 0 100px; }
.wc-main { padding: 60px 0 100px; }

/* Flex layout for all product loops (shop, category, related, embedded shortcodes).
   Same approach we use on PDP — beats WC defaults and avoids the grid ::before phantom cell. */
.woocommerce ul.products,
ul.products {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 20px !important;
    align-items: stretch !important;
    width: 100% !important;
}
/* Kill WC's clearfix pseudo-elements — they become phantom flex/grid items */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before,
ul.products::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}
/* Each product card: 4 / 3 / 2 / 1 columns by viewport */
.woocommerce ul.products li.product,
ul.products li.product {
    display: flex !important;
    flex: 1 1 calc(25% - 15px) !important;
    max-width: calc(25% - 15px) !important;
    min-width: 240px !important;
    margin: 0 !important; padding: 0 !important;
    width: 100% !important;
    float: none !important; clear: none !important;
    box-sizing: border-box !important;
}
@media (max-width: 1100px) {
    .woocommerce ul.products li.product,
    ul.products li.product { flex-basis: calc(33.333% - 14px) !important; max-width: calc(33.333% - 14px) !important; }
}
@media (max-width: 820px) {
    .woocommerce ul.products li.product,
    ul.products li.product { flex-basis: calc(50% - 10px) !important; max-width: calc(50% - 10px) !important; }
}
@media (max-width: 540px) {
    /* Full-width single-column, but MUCH more compact than the desktop card */
    .woocommerce ul.products li.product,
    ul.products li.product { flex-basis: 100% !important; max-width: 100% !important; min-width: 0 !important; }
    .woocommerce ul.products, ul.products { gap: 14px !important; }

    /* Shorter image (16:9 landscape instead of tall square) — cuts card height in half */
    ul.products li.lv-product .lv-product__media {
        aspect-ratio: 16 / 9 !important;
        min-height: 0 !important;
        max-height: 220px !important;
    }
    ul.products li.lv-product .lv-product__media img {
        object-position: center !important;
    }
    /* Compact body */
    ul.products li.lv-product .lv-product__body { padding: 14px 16px !important; }
    ul.products li.lv-product .lv-product__cat { font-size: 11px !important; margin-bottom: 6px !important; }
    ul.products li.lv-product .lv-product__title {
        font-size: 15px !important; line-height: 1.3 !important;
        margin-bottom: 10px !important; -webkit-line-clamp: 2 !important;
        min-height: auto !important;
    }
    /* Perks inline horizontal row instead of stacked column — saves vertical space */
    ul.products li.lv-product .lv-product__perks {
        flex-direction: row !important;
        flex-wrap: wrap !important;
        gap: 4px 12px !important;
        font-size: 11px !important;
        margin-bottom: 10px !important;
    }
    ul.products li.lv-product .lv-product__perks li { display: inline-flex; align-items: center; gap: 4px; }

    /* Price + CTA on same row (horizontal foot) */
    ul.products li.lv-product .lv-product__foot {
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 8px !important;
    }
    ul.products li.lv-product .lv-product__price { font-size: 16px !important; font-weight: 800 !important; }
    ul.products li.lv-product .lv-product__cta { font-size: 12px !important; margin-top: 0 !important; white-space: nowrap; }

    /* Badges */
    ul.products li.lv-product .lv-product__badges { top: 10px !important; left: 10px !important; gap: 4px !important; }
    ul.products li.lv-product .lv-badge { padding: 3px 9px !important; font-size: 10px !important; }
}
/* Inner card fill (defeats WC default constraints) */
.woocommerce ul.products li.lv-product a.lv-product__link,
ul.products li.lv-product a.lv-product__link {
    display: flex !important; flex-direction: column !important;
    width: 100% !important; height: 100% !important;
}
ul.products li.lv-product .lv-product__media {
    position: relative !important;
    aspect-ratio: 1.1 / 1 !important;
    min-height: 200px !important;
    overflow: hidden !important;
    background: linear-gradient(135deg, #fff4d6 0%, #ffd6e7 50%, #e7d6ff 100%);
}
ul.products li.lv-product .lv-product__media img {
    position: absolute !important; inset: 0 !important;
    width: 100% !important; height: 100% !important;
    object-fit: cover !important; display: block !important;
    max-width: none !important;
}

/* WooCommerce notices — kill WC's icon-font ::before, use clean lavender card */
.woocommerce-notices-wrapper:not(:empty) { margin-bottom: 24px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.woocommerce-noreviews, .woocommerce-no-products-found {
    background: var(--lv-bg-alt) !important;
    border: 1px solid var(--lv-border) !important;
    border-radius: var(--lv-radius) !important;
    padding: 18px 22px !important;
    color: var(--lv-text) !important;
    margin: 0 0 18px !important;
    list-style: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}
.woocommerce-message { border-left: 4px solid var(--lv-success) !important; }
.woocommerce-error   { border-left: 4px solid var(--lv-pink) !important; }
.woocommerce-info    { border-left: 4px solid var(--lv-purple) !important; }
/* Kill WC's icon-font ::before that was overlapping the text */
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before,
.woocommerce-noreviews::before, .woocommerce-no-products-found::before {
    content: none !important; display: none !important;
}
/* Notice action button (e.g., "Browse products") — gradient pill, flows to the right */
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button,
.woocommerce-message a.button, .woocommerce-info a.button {
    background: linear-gradient(135deg, #f9ce34 0%, #ee2a7b 45%, #6228d7 100%) !important;
    color: #fff !important;
    border: 0 !important;
    padding: 10px 22px !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    box-shadow: 0 6px 14px rgba(98, 40, 215, .2) !important;
    margin: 0 !important;
    text-decoration: none !important;
    order: 2 !important;
    flex-shrink: 0 !important;
}
.woocommerce-message .button:hover { transform: translateY(-1px); box-shadow: 0 10px 20px rgba(98, 40, 215, .28) !important; }

/* WooCommerce shop pagination (.woocommerce-pagination + .page-numbers) */
.woocommerce nav.woocommerce-pagination,
.woocommerce-pagination,
nav.woocommerce-pagination {
    margin: 48px 0 0 !important;
    padding: 0 !important;
    text-align: center !important;
    border: 0 !important;
    border-top: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.woocommerce nav.woocommerce-pagination ul,
.woocommerce-pagination ul,
nav.woocommerce-pagination ul {
    display: inline-flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    white-space: normal !important;
}
.woocommerce nav.woocommerce-pagination ul li,
.woocommerce-pagination ul li,
nav.woocommerce-pagination ul li {
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-right: 0 !important;   /* WC default adds a hairline right border between items */
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    float: none !important;
}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span,
nav.woocommerce-pagination ul li a,
nav.woocommerce-pagination ul li span,
.woocommerce-pagination .page-numbers,
nav.woocommerce-pagination .page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 44px !important;
    height: 44px !important;
    padding: 0 14px !important;
    border-radius: 12px !important;
    border: 1.5px solid var(--lv-border) !important;
    background: #fff !important;
    color: var(--lv-text) !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    line-height: 1 !important;
    transition: all .15s ease !important;
    box-shadow: none !important;
    margin: 0 !important;
}
.woocommerce-pagination ul li a:hover,
nav.woocommerce-pagination ul li a:hover,
.woocommerce-pagination .page-numbers:not(.current):not(.dots):hover {
    border-color: var(--lv-purple) !important;
    color: var(--lv-purple) !important;
    transform: translateY(-1px) !important;
}
.woocommerce-pagination ul li .current,
.woocommerce-pagination .page-numbers.current,
nav.woocommerce-pagination ul li .current,
.woocommerce nav.woocommerce-pagination .page-numbers.current {
    background: var(--lv-gradient) !important;
    color: #fff !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: 0 4px 12px rgba(98, 40, 215, .25) !important;
}
.woocommerce-pagination .page-numbers.dots {
    border: 0 !important;
    background: transparent !important;
}
.woocommerce-pagination .next, .woocommerce-pagination .prev {
    font-weight: 800 !important;
}

/* WooCommerce result count + ordering */
.woocommerce-result-count, .woocommerce-ordering { margin: 0 0 28px; color: var(--lv-text-soft); font-size: 14px; }
.woocommerce-ordering select { padding: 8px 12px; border-radius: 999px; border: 1px solid var(--lv-border); background: #fff; font-family: inherit; font-size: 14px; }

/* WC default loop tweaks (some plugins reuse default classes) */
.woocommerce ul.products li.product { padding: 0 !important; margin: 0 !important; width: 100% !important; }
.woocommerce ul.products li.product .button { display: none !important; } /* hide default Add to cart on archive */
.woocommerce-loop-product__title { font-size: 16px !important; padding: 0 !important; font-weight: 700 !important; }

/* ----------  PDP  ---------- */
.lv-pdp-hero { background: var(--lv-bg-alt); padding: 24px 0 0; }
.lv-breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--lv-text-soft); flex-wrap: wrap; }
.lv-breadcrumb a:hover { color: var(--lv-purple); }
.lv-breadcrumb span { opacity: .5; }

.lv-pdp { padding: 32px 24px 80px; }
.lv-pdp .product { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: start; }
.lv-pdp .product .woocommerce-product-gallery { width: 100% !important; max-width: 100%; position: relative; }
.lv-pdp .woocommerce-product-gallery__wrapper {
    border-radius: var(--lv-radius-lg); overflow: hidden;
    background: #fff; border: 1px solid var(--lv-border);
    box-shadow: var(--lv-shadow-sm);
}
.lv-pdp .woocommerce-product-gallery__wrapper img { display: block; width: 100%; height: auto; }
.lv-pdp .woocommerce-product-gallery__trigger {
    position: absolute; top: 16px; right: 16px;
    background: #fff !important; border-radius: 999px !important;
    box-shadow: var(--lv-shadow-sm) !important; padding: 8px !important;
    width: 40px !important; height: 40px !important; display: inline-flex !important;
    align-items: center; justify-content: center; z-index: 5;
}

/* Default WC "Sale!" badge → gradient pill */
.woocommerce span.onsale, .lv-pdp .onsale {
    position: absolute; top: 16px; left: 16px; min-height: 0 !important;
    min-width: 0 !important; padding: 6px 14px !important;
    border-radius: 999px !important; background: var(--lv-gradient) !important;
    color: #fff !important; font-weight: 700 !important; font-size: 12px !important;
    line-height: 1 !important; margin: 0 !important; box-shadow: var(--lv-shadow-sm);
    text-transform: uppercase; letter-spacing: .04em;
}

.lv-pdp .summary { padding: 4px 0; }
.lv-pdp .product_title { font-size: clamp(26px, 3.4vw, 36px); margin-bottom: 14px; line-height: 1.2; }

/* Price: gradient that starts from pink so small text doesn't look olive */
.lv-pdp .price, .lv-pdp p.price {
    font-size: 28px !important; font-weight: 800 !important;
    color: var(--lv-pink) !important; margin: 0 0 24px !important;
}
.lv-pdp .price .woocommerce-Price-amount,
.lv-pdp p.price .woocommerce-Price-amount {
    background: linear-gradient(135deg, #ee2a7b 0%, #6228d7 100%);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.lv-pdp .price del { opacity: .5; font-weight: 600; }
.lv-pdp .price del .woocommerce-Price-amount { background: none; -webkit-text-fill-color: var(--lv-text-muted); color: var(--lv-text-muted); }
.lv-pdp .price ins { text-decoration: none; }

.lv-pdp .woocommerce-product-details__short-description { color: var(--lv-text-soft); margin: 0 0 24px; font-size: 16px; line-height: 1.6; }

/* WC forms inside PDP */
.lv-pdp form.cart {
    background: #fff; border: 1px solid var(--lv-border); border-radius: var(--lv-radius-lg);
    padding: 28px; box-shadow: var(--lv-shadow-sm); display: block; margin: 0 0 24px;
}
/* Aggressive WC variations table reset — kill table layout entirely.
   Note: SMM plugin's multiorders_plugin.php:469 jQuery injects extra
   td.label / td.value cells (Links field) directly into the table,
   so we treat th.label AND td.label identically. */
.lv-pdp form.cart table.variations,
.lv-pdp form.cart table.variations tbody,
.lv-pdp form.cart table.variations tr,
.lv-pdp form.cart table.variations th,
.lv-pdp form.cart table.variations td {
    display: block !important; width: 100% !important;
    background: transparent !important; background-color: transparent !important;
    border: 0 !important; padding: 0 !important; margin: 0 !important;
}
.lv-pdp form.cart table.variations { margin: 0 0 4px !important; }
.lv-pdp form.cart table.variations tr { margin-bottom: 16px !important; }
.lv-pdp form.cart table.variations th.label,
.lv-pdp form.cart table.variations td.label,
.lv-pdp form.cart table.variations label {
    display: block !important; font-weight: 700 !important; font-size: 14px !important;
    color: var(--lv-text) !important; margin: 0 0 8px !important; padding: 0 !important;
    background: transparent !important; text-align: left !important;
}
/* The plugin appends Links as td.label + td.value AFTER tbody — give the label cell a top margin so it separates from the Quantity row */
.lv-pdp form.cart table.variations tbody + td.label { margin-top: 18px !important; }
.lv-pdp form.cart table.variations td.value { margin-bottom: 4px !important; }
.lv-pdp form.cart table.variations td.value input.link_txtbox {
    /* Force-match the Quantity select pill style; the plugin sets inline style="width:100%" */
    width: 100% !important; padding: 14px 16px !important; border-radius: 999px !important;
    border: 1.5px solid var(--lv-border) !important; font-family: inherit !important;
    font-size: 15px !important; background: #fff !important; box-sizing: border-box !important;
}
.lv-pdp form.cart table.variations td.value input.link_txtbox:focus {
    outline: none !important; border-color: var(--lv-purple) !important;
}
/* Add a subtle "🔗" prefix to the Links label so it reads as a URL field */
.lv-pdp form.cart table.variations td.label label::before {
    content: '🔗 '; margin-right: 4px;
}

/* Rescued Links field (lifted out of the variations table by main.js) */
.lv-pdp .lv-extra-field {
    display: block; margin: 0 0 18px;
}
.lv-pdp .lv-extra-field__label {
    display: block; font-weight: 700; font-size: 14px;
    color: var(--lv-text); margin: 0 0 8px;
}
.lv-pdp .lv-extra-field__label::before { content: '🔗 '; margin-right: 4px; }
.lv-pdp .lv-extra-field__input,
.lv-pdp input.lv-extra-field__input {
    width: 100% !important; padding: 14px 16px !important; border-radius: 999px !important;
    border: 1.5px solid var(--lv-border) !important; font-family: inherit !important;
    font-size: 15px !important; background: #fff !important; box-sizing: border-box !important;
    margin: 0 !important; transition: border-color .15s !important;
}
.lv-pdp .lv-extra-field__input:focus { outline: none !important; border-color: var(--lv-purple) !important; }

/* Belt-and-braces: undo the plugin's -104px left pull on .variations */
.lv-pdp .variations, .lv-wc .variations { margin-left: 0 !important; }
.lv-pdp form.cart select {
    width: 100%; padding: 14px 16px; border-radius: 999px;
    border: 1.5px solid var(--lv-border); font-family: inherit; font-size: 15px;
    background: #fff; color: var(--lv-text);
    appearance: none; -webkit-appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%236228d7' stroke-width='2'><path d='M1 1l5 5 5-5'/></svg>");
    background-repeat: no-repeat; background-position: right 16px center; background-size: 12px;
    padding-right: 40px; transition: border-color .15s;
}
.lv-pdp form.cart select:focus { outline: none; border-color: var(--lv-purple); }
.lv-pdp .reset_variations { display: inline-block; margin-top: 6px; font-size: 13px; color: var(--lv-purple); font-weight: 600; }

/* Selected-variation panel */
.lv-pdp .single_variation_wrap { margin: 16px 0 0; }
.lv-pdp .woocommerce-variation { padding: 16px; background: var(--lv-bg-alt); border-radius: var(--lv-radius-sm); margin-bottom: 16px; }
.lv-pdp .woocommerce-variation-price .price { font-size: 22px !important; margin: 0 !important; }
.lv-pdp .woocommerce-variation-availability { margin-top: 8px; color: var(--lv-text-soft); font-size: 14px; }
.lv-pdp .woocommerce-variation-description { color: var(--lv-text-soft); font-size: 14px; }

/* Quantity + Add-to-cart row */
.lv-pdp .woocommerce-variation-add-to-cart,
.lv-pdp form.cart > .quantity,
.lv-pdp .single_variation_wrap .quantity { display: inline-flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.lv-pdp .quantity { display: inline-flex; align-items: center; margin-right: 0; }
.lv-pdp .quantity input.qty {
    width: 88px; padding: 14px 12px; border-radius: 999px;
    border: 1.5px solid var(--lv-border); font-family: inherit; font-size: 16px;
    font-weight: 700; text-align: center; background: #fff;
}
.lv-pdp .quantity input.qty:focus { outline: none; border-color: var(--lv-purple); }

.lv-pdp .single_add_to_cart_button {
    background: var(--lv-gradient) !important; color: #fff !important; border: 0 !important;
    padding: 16px 32px !important; border-radius: 999px !important; font-weight: 700 !important;
    font-size: 16px !important; box-shadow: var(--lv-shadow) !important; cursor: pointer;
    transition: transform .15s, box-shadow .2s, opacity .2s;
    text-transform: none !important; letter-spacing: 0 !important;
}
.lv-pdp .single_add_to_cart_button:hover:not([disabled]) {
    transform: translateY(-2px); box-shadow: var(--lv-shadow-lg) !important;
}
.lv-pdp .single_add_to_cart_button[disabled],
.lv-pdp .single_add_to_cart_button.disabled,
.lv-pdp .single_add_to_cart_button.wc-variation-selection-needed {
    background: var(--lv-gradient) !important; opacity: .45 !important;
    cursor: not-allowed; box-shadow: none !important;
}

/* The SMM plugin's link / custom-comment / username fields */
.lv-pdp .link_bc { margin: 0 0 18px; }
.lv-pdp .link_bc .row,
.lv-pdp form.cart .row { display: block; margin: 0; }
.lv-pdp .link_bc [class*="col-"],
.lv-pdp form.cart [class*="col-"] { width: 100%; max-width: 100%; flex: 0 0 100%; padding: 0; }
.lv-pdp .link_lbl { display: block; font-weight: 700; margin: 0 0 8px; font-size: 14px; color: var(--lv-text); }
.lv-pdp .link_txtbox, .lv-pdp .link_txtbox2 input, .lv-pdp #custom_comment,
.lv-pdp input[name="_custom_option"], .lv-pdp input[name="_username"],
.lv-pdp input[name="_mention_user_follower"], .lv-pdp input[name="_mention_custom_list"],
.lv-pdp input[name="_comment_likes"], .lv-pdp input[name="_package"] {
    width: 100% !important; padding: 14px 16px; border-radius: 999px;
    border: 1.5px solid var(--lv-border); font-family: inherit; font-size: 15px;
    background: #fff; transition: border-color .15s;
}
.lv-pdp .link_txtbox:focus, .lv-pdp #custom_comment:focus { outline: none; border-color: var(--lv-purple); }
.lv-pdp #custom_comment { min-height: 110px; border-radius: var(--lv-radius); padding-top: 12px; padding-bottom: 12px; }

/* Instagram-integration plugin: username field + Discover/View Profile button.
   The plugin uses inline style="margin:0 10px;" on its inputs, so override it. */
.lv-pdp .customadd { margin: 0 0 14px; display: block; }
.lv-pdp .customadd label,
.lv-pdp label[for="instagram-story-username"],
.lv-pdp label[for="instagram-posts-username"] {
    display: block !important; font-weight: 700 !important; font-size: 14px !important;
    color: var(--lv-text) !important; margin: 0 0 8px !important;
}
.lv-pdp input#instagram-story-username,
.lv-pdp input#instagram-posts-username,
.lv-pdp input#instagram-story-select,
.lv-pdp input#instagram-id,
.lv-pdp input[name="instagram_posts_username"],
.lv-pdp input[name="instagram_id"],
.lv-pdp input[name="instagram_usernames[]"] {
    width: 100% !important; padding: 14px 16px !important; border-radius: 999px !important;
    border: 1.5px solid var(--lv-border) !important; font-family: inherit !important;
    font-size: 15px !important; background: #fff !important; margin: 0 0 12px !important;
    box-sizing: border-box !important; transition: border-color .15s;
}
.lv-pdp input#instagram-story-username:focus,
.lv-pdp input#instagram-posts-username:focus,
.lv-pdp input#instagram-id:focus { outline: none; border-color: var(--lv-purple) !important; }

.lv-pdp #sync-instagram-posts,
.lv-pdp #sync-instagram-story,
.lv-pdp button[id*="sync-instagram"],
.lv-pdp button[id*="discover"],
.lv-pdp .ipi-view-profile,
.lv-pdp button[id*="view_profile"],
.lv-pdp button[class*="view-profile"] {
    background: var(--lv-gradient) !important; color: #fff !important;
    border: 0 !important; padding: 12px 24px !important; border-radius: 999px !important;
    font-weight: 700 !important; cursor: pointer; box-shadow: var(--lv-shadow-sm) !important;
    margin: 4px 0 18px !important; display: inline-block;
}

/* Insta profile card returned by the plugin */
.lv-pdp .insta-profile-card {
    display: flex; align-items: center; gap: 14px;
    padding: 14px 18px; margin: 12px 0 18px;
    background: var(--lv-bg-alt); border: 1px solid var(--lv-border);
    border-radius: var(--lv-radius);
}
.lv-pdp .insta-profile-card.insta-profile-card-hidden { display: none; }
.lv-pdp .insta-profile-card .profile-image img { width: 48px; height: 48px; border-radius: 50%; }
.lv-pdp .insta-profile-card .fullname { font-size: 15px; margin: 0; font-weight: 700; }
.lv-pdp .insta-profile-card .username { font-size: 13px; margin: 2px 0 0; color: var(--lv-text-soft); }

/* Product meta (Categories / Tags / SKU) */
.lv-pdp .product_meta {
    margin: 0 0 8px; padding: 20px 24px; background: var(--lv-bg-alt);
    border-radius: var(--lv-radius); border: 1px solid var(--lv-border);
    font-size: 13px; color: var(--lv-text-soft); line-height: 1.8;
}
.lv-pdp .product_meta > span { display: block; margin-bottom: 4px; }
.lv-pdp .product_meta > span:last-child { margin-bottom: 0; }
.lv-pdp .product_meta .sku_wrapper,
.lv-pdp .product_meta .posted_in,
.lv-pdp .product_meta .tagged_as { color: var(--lv-text-muted); font-weight: 500; }
.lv-pdp .product_meta .sku_wrapper::before { content: '🔖 '; }
.lv-pdp .product_meta .posted_in::before { content: '📁 '; }
.lv-pdp .product_meta .tagged_as::before { content: '🏷️ '; }
.lv-pdp .product_meta a {
    display: inline-block; padding: 4px 10px; margin: 2px 4px 2px 0;
    background: #fff; border: 1px solid var(--lv-border); border-radius: 999px;
    color: var(--lv-text); font-weight: 600; font-size: 12px;
    transition: all .15s;
}
.lv-pdp .product_meta a:hover { border-color: var(--lv-purple); color: var(--lv-purple); }
.lv-pdp .product_meta .sku { font-family: var(--lv-mono); padding: 2px 8px; background: #fff; border-radius: 6px; border: 1px solid var(--lv-border); color: var(--lv-text); }

/* PDP trust strip */
.lv-pdp-trust {
    grid-column: 1 / -1; margin-top: 48px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
    padding: 24px; background: var(--lv-bg-alt); border-radius: var(--lv-radius); border: 1px solid var(--lv-border);
}
.lv-pdp-trust__item { display: flex; gap: 12px; align-items: center; }
.lv-pdp-trust__icon { width: 44px; height: 44px; border-radius: 12px; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; box-shadow: var(--lv-shadow-sm); }
.lv-pdp-trust__item strong { display: block; font-size: 14px; }
.lv-pdp-trust__item span { font-size: 12px; color: var(--lv-text-soft); }

/* Related products — force out of the .product two-column grid so they span full width */
.lv-pdp .related.products,
.lv-pdp .up-sells,
.lv-pdp .cross-sells,
.related.products, .up-sells, .cross-sells {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    margin-top: 64px !important;
    clear: both;
}
.related.products > h2, .up-sells > h2, .cross-sells > h2 {
    font-size: 28px; margin: 0 0 28px; padding: 0; font-weight: 800;
}
.related.products ul.products,
.up-sells ul.products,
.cross-sells ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
    margin: 0 !important; padding: 0 !important;
    list-style: none !important;
}
.related.products ul.products li.product,
.up-sells ul.products li.product,
.cross-sells ul.products li.product {
    width: 100% !important; margin: 0 !important; padding: 0 !important; clear: none !important;
}

/* Product tabs */
.woocommerce-tabs { grid-column: 1 / -1; margin-top: 56px; }
.woocommerce-tabs ul.tabs {
    list-style: none !important; padding: 6px !important; margin: 0 0 24px !important;
    display: inline-flex !important; gap: 2px; background: var(--lv-bg-alt) !important;
    border-radius: 999px !important; border: 1px solid var(--lv-border) !important;
    flex-wrap: wrap; overflow: visible !important;
}
.woocommerce-tabs ul.tabs li {
    margin: 0 !important; padding: 0 !important;
    background: transparent !important; border: 0 !important;
    box-shadow: none !important; border-radius: 0 !important;
}
.woocommerce-tabs ul.tabs li a {
    display: inline-block !important; padding: 10px 22px !important; border-radius: 999px !important;
    font-weight: 700 !important; font-size: 14px !important; color: var(--lv-text-soft) !important;
    border: 0 !important; background: transparent !important;
    text-shadow: none !important; transition: all .15s;
}
.woocommerce-tabs ul.tabs li a:hover { color: var(--lv-text) !important; background: rgba(255,255,255,.6) !important; }
.woocommerce-tabs ul.tabs li.active { background: transparent !important; }
.woocommerce-tabs ul.tabs li.active a {
    background: var(--lv-gradient) !important; color: #fff !important;
    box-shadow: var(--lv-shadow-sm) !important; text-shadow: none !important;
}
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs::after,
.woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after {
    display: none !important; border: 0 !important; box-shadow: none !important; content: none !important;
}
.woocommerce-tabs .panel {
    background: #fff; border: 1px solid var(--lv-border);
    border-radius: var(--lv-radius); padding: 48px 56px;
    color: var(--lv-text); line-height: 1.7;
}
@media (max-width: 768px) { .woocommerce-tabs .panel { padding: 28px 24px; } }
/* Force the theme font on all authored product description content (overrides inline serif from rich text) */
.woocommerce-tabs .panel,
.woocommerce-tabs .panel * {
    font-family: var(--lv-font) !important;
}
/* Hide redundant "Description" / "Additional information" h2 inside the panel (tab label already says it) */
.woocommerce-tabs .panel > h2:first-child { display: none; }

.woocommerce-tabs .panel h1, .woocommerce-tabs .panel h2, .woocommerce-tabs .panel h3, .woocommerce-tabs .panel h4 {
    color: var(--lv-text) !important; font-weight: 800 !important;
}
.woocommerce-tabs .panel h2 { font-size: 24px; margin: 0 0 18px; }
.woocommerce-tabs .panel h3 { font-size: 20px; margin: 28px 0 12px; }
.woocommerce-tabs .panel h4 { font-size: 17px; margin: 20px 0 10px; }
.woocommerce-tabs .panel p { margin: 0 0 16px; color: var(--lv-text-soft); font-size: 15.5px; }
.woocommerce-tabs .panel strong, .woocommerce-tabs .panel b { color: inherit; font-weight: 700; }
.woocommerce-tabs .panel a { color: var(--lv-purple); border-bottom: 1px solid currentColor; }
.woocommerce-tabs .panel ul, .woocommerce-tabs .panel ol { color: var(--lv-text-soft); padding-left: 22px; margin: 0 0 16px; }
.woocommerce-tabs .panel li { margin-bottom: 6px; }
.woocommerce-tabs .panel img { border-radius: var(--lv-radius); margin: 16px 0; height: auto; }
.woocommerce-tabs .panel table { width: 100%; border-collapse: collapse; margin: 16px 0; }
.woocommerce-tabs .panel table th, .woocommerce-tabs .panel table td { padding: 12px 14px; border-bottom: 1px solid var(--lv-border); text-align: left; }
.woocommerce-tabs .panel table th { font-weight: 700; color: var(--lv-text); background: var(--lv-bg-alt); }

/* Tame heavy authored prose: keep the user's emphasis colors but pin the overall vibe */
.woocommerce-tabs .panel font[color],
.woocommerce-tabs .panel [style*="color"] { /* let authored highlight colors through */ }
.woocommerce-tabs .panel center, .woocommerce-tabs .panel [align="center"] { text-align: left !important; }

/* ----------  CART, CHECKOUT, ACCOUNT  ---------- */
.lv-wc table, .woocommerce-cart table, .woocommerce-checkout table {
    width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--lv-radius); overflow: hidden; border: 1px solid var(--lv-border);
}
.lv-wc table th, .lv-wc table td { padding: 16px; border-bottom: 1px solid var(--lv-border); text-align: left; }
.lv-wc table th { background: var(--lv-bg-alt); font-weight: 700; font-size: 14px; }
.lv-wc input[type=text], .lv-wc input[type=email], .lv-wc input[type=tel], .lv-wc input[type=password], .lv-wc input[type=number], .lv-wc textarea, .lv-wc select,
.woocommerce input[type=text], .woocommerce input[type=email], .woocommerce input[type=tel], .woocommerce input[type=password], .woocommerce input[type=number], .woocommerce textarea, .woocommerce select {
    width: 100%; padding: 12px 14px; border-radius: var(--lv-radius-sm); border: 1px solid var(--lv-border); font-family: inherit; font-size: 15px; background: #fff;
}
.lv-wc .button, .woocommerce .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
    background: var(--lv-gradient) !important; color: #fff !important; border: 0 !important; padding: 12px 22px !important;
    border-radius: 999px !important; font-weight: 700 !important; box-shadow: var(--lv-shadow-sm) !important; cursor: pointer;
}
.lv-wc .button:hover, .woocommerce .button:hover { transform: translateY(-1px); }

/* =====================================================================
   WC CART / CHECKOUT BLOCKS — these use wc-block-components-* classes
   (not the classic .button), so they need their own overrides
   ===================================================================== */

/* Page wrapper width for cart + checkout (the cart Block has alignwide) */
.lv-page .wp-block-woocommerce-cart,
.lv-page .wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 16px;
    padding-right: 16px;
    width: 100% !important;
    box-sizing: border-box;
}
/* Widen the .lv-page narrow container for cart/checkout */
body.woocommerce-cart .lv-page .container--narrow,
body.woocommerce-checkout .lv-page .container--narrow,
body.woocommerce-cart .lv-page .container,
body.woocommerce-checkout .lv-page .container {
    max-width: 1320px !important;
}

/* Cart Block two-column layout (items + totals) */
.wp-block-woocommerce-cart .wp-block-woocommerce-cart-items-block { padding-right: 24px; }
.wp-block-woocommerce-cart .wp-block-woocommerce-cart-totals-block {
    background: var(--lv-bg-alt);
    border: 1px solid var(--lv-border);
    border-radius: var(--lv-radius);
    padding: 24px;
}

/* WC Block buttons — primary gradient pill */
.wc-block-components-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button,
.wc-block-cart__submit-container .wc-block-components-button,
.wp-block-button .wp-block-button__link,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
button.wc-block-components-button {
    background: linear-gradient(135deg, #f9ce34 0%, #ee2a7b 45%, #6228d7 100%) !important;
    background-color: transparent !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    border: 0 !important; outline: 0 !important;
    border-radius: 999px !important;
    padding: 16px 28px !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif !important;
    box-shadow: 0 8px 20px rgba(98, 40, 215, .18) !important;
    text-decoration: none !important;
    width: 100% !important;
    text-align: center !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 52px !important;
    cursor: pointer !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    transition: transform .15s ease, box-shadow .2s ease !important;
}
.wc-block-components-button:hover,
.wc-block-components-button:focus,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 14px 28px rgba(98, 40, 215, .28) !important;
    background-color: transparent !important;
}
/* Ensure inner span / wc-block-components-button__text inherits white text + clears any text-fill gradient */
.wc-block-components-button > *,
.wc-block-components-button__text,
.wc-block-components-button span,
.wp-block-button__link > * {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: none !important;
}

/* Disabled state — softer but still readable */
.wc-block-components-button[disabled],
.wc-block-components-button.is-loading,
.wc-block-components-button[aria-disabled="true"] {
    opacity: .55 !important;
    cursor: not-allowed !important;
}

/* "OR" divider between Stripe Link and proceed button */
.wp-block-woocommerce-cart-express-payment-block,
.wp-block-woocommerce-checkout-express-payment-block { margin: 16px 0 !important; }

/* Cart line item titles + prices */
.wc-block-cart-items__row .wc-block-components-product-name {
    font-weight: 700 !important; color: var(--lv-text) !important;
    text-decoration: none !important;
    border-bottom: 0 !important;
}
.wc-block-components-product-price__value,
.wc-block-components-formatted-money-amount {
    font-weight: 700 !important; color: var(--lv-text) !important;
}
.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
    background: linear-gradient(135deg, #ee2a7b 0%, #6228d7 100%);
    -webkit-background-clip: text; background-clip: text;
    color: transparent; -webkit-text-fill-color: transparent;
    font-size: 22px !important;
}

/* Quantity stepper buttons (+ / − / trash) */
.wc-block-cart-item__quantity .wc-block-components-quantity-selector {
    border: 1.5px solid var(--lv-border) !important;
    border-radius: 999px !important;
    background: #fff !important;
}
.wc-block-components-quantity-selector__button {
    color: var(--lv-text) !important;
    background: transparent !important;
}
.wc-block-cart-item__remove-link {
    color: var(--lv-text-soft) !important;
    border-bottom: 0 !important;
}
.wc-block-cart-item__remove-link:hover { color: var(--lv-pink) !important; }

/* Coupon input */
.wp-block-woocommerce-cart-order-summary-coupon-form-block input,
.wc-block-components-totals-coupon__input input {
    border-radius: 999px !important;
    border: 1.5px solid var(--lv-border) !important;
    padding: 12px 16px !important;
    background: #fff !important;
}

/* Mobile: stack cart columns */
@media (max-width: 900px) {
    .wp-block-woocommerce-cart .wp-block-woocommerce-cart-items-block { padding-right: 0; }
}
.woocommerce-MyAccount-navigation ul { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex; flex-direction: column; gap: 4px; }
.woocommerce-MyAccount-navigation ul li {
    list-style: none !important; border: 0 !important; border-bottom: 0 !important;
    padding: 0 !important; margin: 0 !important; background: transparent !important;
}
.woocommerce-MyAccount-navigation ul li a {
    display: block; padding: 11px 14px; border-radius: 10px;
    color: var(--lv-text); font-weight: 600; font-size: 14px;
    text-decoration: none !important; border: 0 !important;
    transition: background .15s, color .15s;
}
.woocommerce-MyAccount-navigation ul li a:hover {
    background: rgba(255,255,255,.6) !important; color: var(--lv-purple) !important;
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a:not(.is-active) {
    /* leave normal */
}
.woocommerce-MyAccount-navigation ul li.is-active a {
    background: var(--lv-gradient) !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(98, 40, 215, .25) !important;
}
/* Dashboard layout — sidebar nav left, content right.
   Target the .woocommerce wrapper when it contains the dashboard nav (logged-in view). */
body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation),
body.woocommerce-account .woocommerce:has(> nav.woocommerce-MyAccount-navigation) {
    display: grid !important;
    grid-template-columns: 260px minmax(0, 1fr) !important;
    gap: 32px !important;
    align-items: start !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
}
/* Fallback for browsers without :has() — scope to logged-in body */
body.logged-in.woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 32px;
    align-items: start;
}
/* Explicit column placement so source order doesn't matter */
body.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce > nav.woocommerce-MyAccount-navigation {
    grid-column: 1 !important; grid-row: 1 !important;
    width: 100% !important; max-width: 260px !important; float: none !important;
}
body.woocommerce-account .woocommerce > .woocommerce-MyAccount-content {
    grid-column: 2 !important; grid-row: 1 !important;
    width: 100% !important; max-width: 100% !important; float: none !important;
    min-width: 0 !important;
}
@media (max-width: 768px) {
    body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation),
    body.woocommerce-account .woocommerce:has(> nav.woocommerce-MyAccount-navigation),
    body.logged-in.woocommerce-account .woocommerce {
        grid-template-columns: 1fr !important;
    }
    body.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation,
    body.woocommerce-account .woocommerce > .woocommerce-MyAccount-content {
        grid-column: 1 !important; grid-row: auto !important; max-width: 100% !important;
    }
}

/* Safety net: clamp any unsized inline SVG so leftover content can't blow up the page */
.lv-wc svg:not(.lv-icon):not([width]):not([height]) { max-width: 16px !important; max-height: 16px !important; vertical-align: -2px; }
.lv-wc .woocommerce-error svg, .lv-wc .woocommerce-info svg, .lv-wc .woocommerce-message svg { width: 14px !important; height: 14px !important; max-width: 14px !important; max-height: 14px !important; }

/* My Account login / register forms — branded card layout (WC uses .u-columns + .col-1/.col-2 with float defaults) */
.woocommerce-account .u-columns.col2-set,
.woocommerce-account .u-columns,
.woocommerce-account div.u-columns {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 28px !important;
    width: 100% !important;
    max-width: 960px !important;
    margin: 0 auto !important;
}
.woocommerce-account .u-columns::before,
.woocommerce-account .u-columns::after { content: none !important; display: none !important; }
@media (max-width: 768px) {
    .woocommerce-account .u-columns.col2-set,
    .woocommerce-account .u-columns,
    .woocommerce-account div.u-columns { grid-template-columns: 1fr !important; gap: 18px !important; }
}
.woocommerce-account .u-column1, .woocommerce-account .u-column2,
.woocommerce-account .col-1, .woocommerce-account .col-2 {
    width: 100% !important; max-width: 100% !important;
    float: none !important; clear: none !important;
    padding: 0 !important; margin: 0 !important;
}
.woocommerce-account form.woocommerce-form-login,
.woocommerce-account form.woocommerce-form-register {
    background: #fff !important;
    border: 1px solid var(--lv-border) !important;
    border-radius: var(--lv-radius) !important;
    padding: 32px !important;
    box-shadow: 0 10px 30px rgba(98, 40, 215, .05) !important;
    margin: 0 !important;
}
.woocommerce-account h2 {
    font-size: 22px !important;
    font-weight: 800 !important;
    margin: 0 0 18px !important;
    color: var(--lv-text) !important;
}
.woocommerce-account .form-row {
    margin-bottom: 16px !important;
    padding: 0 !important;
}
.woocommerce-account .form-row label {
    display: block !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    color: var(--lv-text) !important;
    margin: 0 0 6px !important;
}
.woocommerce-account .form-row .required { color: var(--lv-pink); }
.woocommerce-account .form-row input.input-text,
.woocommerce-account .form-row input[type="text"],
.woocommerce-account .form-row input[type="email"],
.woocommerce-account .form-row input[type="password"],
.woocommerce-account .form-row input[type="tel"] {
    width: 100% !important;
    padding: 12px 16px !important;
    border-radius: 999px !important;
    border: 1.5px solid var(--lv-border) !important;
    font-size: 14px !important;
    background: #fff !important;
    color: var(--lv-text) !important;
}
.woocommerce-account .form-row input:focus {
    outline: none !important;
    border-color: var(--lv-purple) !important;
    box-shadow: 0 0 0 3px rgba(98, 40, 215, .12) !important;
}
.woocommerce-account .form-row .password-input { width: 100%; }
.woocommerce-account .form-row .show-password-input {
    background: transparent !important; border: 0 !important; padding: 8px !important;
}

/* Login row: checkbox + lost password link */
.woocommerce-account .woocommerce-LostPassword a {
    color: var(--lv-purple) !important;
    border-bottom: 1px solid currentColor;
    font-weight: 600 !important; font-size: 13px !important;
}
.woocommerce-form__label-for-checkbox {
    display: inline-flex !important; align-items: center !important; gap: 8px !important;
    font-size: 13px !important; color: var(--lv-text-soft) !important; font-weight: 500 !important;
}
.woocommerce-form__input-checkbox { width: 18px !important; height: 18px !important; accent-color: var(--lv-purple); }

/* Logged-in dashboard layout */
.woocommerce-MyAccount-navigation { background: var(--lv-bg-alt); padding: 18px; border-radius: var(--lv-radius); border: 1px solid var(--lv-border); }
.woocommerce-MyAccount-content {
    background: #fff; border: 1px solid var(--lv-border); border-radius: var(--lv-radius);
    padding: 32px; box-shadow: 0 10px 30px rgba(98, 40, 215, .05);
}
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3 {
    font-size: 20px !important; font-weight: 800 !important; color: var(--lv-text) !important; margin: 0 0 16px !important;
}

/* ----------  FOOTER  ---------- */
.lv-footer { background: #0f0a1f; color: #c2b6dc; padding: 80px 0 30px; }
.lv-footer__cta {
    display: flex; align-items: center; justify-content: space-between; gap: 32px;
    padding: 36px; border-radius: var(--lv-radius); background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
    margin-bottom: 56px; flex-wrap: wrap;
}
.lv-footer__cta h2 { color: #fff; font-size: clamp(22px, 2.6vw, 30px); margin: 0 0 6px; }
.lv-footer__cta p { margin: 0; color: #c2b6dc; }
.lv-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 40px; margin-bottom: 40px; }
.lv-footer__brand .lv-logo__text { color: #fff; }
.lv-footer__brand .lv-logo__text strong { background: var(--lv-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lv-footer__tag { margin-top: 14px; max-width: 320px; color: #9387b8; }
.lv-footer__col h4 { color: #fff; font-size: 14px; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 16px; }
.lv-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.lv-footer__col a { color: #c2b6dc; transition: color .15s; }
.lv-footer__col a:hover { color: #fff; }
.lv-footer__trust { font-size: 14px; }
.lv-footer__trust li { color: #c2b6dc; }
.lv-footer__bottom { border-top: 1px solid rgba(255,255,255,.08); padding-top: 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 12px; color: #7d70a3; }

/* ----------  ARTICLE / PAGE  ---------- */
.lv-page { padding: 60px 0 100px; }
.lv-article__title { font-size: clamp(32px, 4vw, 44px); margin-bottom: 12px; }
.lv-article__meta { color: var(--lv-text-soft); font-size: 14px; margin-bottom: 28px; }
.lv-article__media { margin-bottom: 28px; border-radius: var(--lv-radius); overflow: hidden; }
.lv-article__content { font-size: 17px; color: var(--lv-text); line-height: 1.7; }
.lv-article__content a { color: var(--lv-purple); border-bottom: 1px solid currentColor; }
.lv-article__content h2 { margin-top: 32px; font-size: 26px; }
.lv-article__content h3 { margin-top: 24px; font-size: 20px; }
.lv-article__content blockquote { margin: 24px 0; padding: 16px 24px; border-left: 4px solid var(--lv-purple); background: var(--lv-bg-alt); border-radius: 0 var(--lv-radius-sm) var(--lv-radius-sm) 0; color: var(--lv-text-soft); }

/* Cookie banner */
.lv-cookie {
    position: fixed; left: 16px; right: 16px; bottom: 16px;
    z-index: 9000; max-width: 760px; margin: 0 auto;
    background: #fff; border: 1px solid var(--lv-border);
    border-radius: var(--lv-radius); box-shadow: 0 20px 40px rgba(98,40,215,.18);
    padding: 18px 22px; opacity: 0; transform: translateY(20px);
    transition: opacity .25s ease, transform .25s ease;
}
.lv-cookie.is-open { opacity: 1; transform: translateY(0); }
.lv-cookie[hidden] { display: none; }
.lv-cookie__inner { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.lv-cookie__icon { font-size: 28px; flex-shrink: 0; }
.lv-cookie__copy { flex: 1 1 280px; min-width: 0; }
.lv-cookie__copy strong { display: block; font-size: 14px; font-weight: 800; margin: 0 0 4px; color: var(--lv-text); }
.lv-cookie__copy p { font-size: 13px; color: var(--lv-text-soft); margin: 0; line-height: 1.5; }
.lv-cookie__copy a { color: var(--lv-purple); border-bottom: 1px solid currentColor; }
.lv-cookie__actions { display: flex; gap: 8px; flex-shrink: 0; }
@media (max-width: 540px) {
    .lv-cookie { padding: 14px 16px; }
    .lv-cookie__inner { flex-direction: column; align-items: stretch; gap: 12px; }
    .lv-cookie__actions { justify-content: space-between; }
    .lv-cookie__actions .lv-btn { flex: 1; justify-content: center; }
}

/* How-it-works / FAQ pages */
.lv-hero--compact { padding: 60px 0 30px; }
.lv-hero__grid--single { grid-template-columns: 1fr; }
.lv-faqpage__cat {
    font-size: 13px; text-transform: uppercase; letter-spacing: .08em;
    color: var(--lv-purple); font-weight: 700; margin: 0 0 14px;
}

/* 404 */
.lv-404 { padding: 100px 0; text-align: center; }
.lv-404__bolt { font-size: 80px; margin-bottom: 16px; filter: drop-shadow(0 10px 20px rgba(98, 40, 215, .2)); }
.lv-404 h1 { font-size: clamp(80px, 14vw, 160px); margin: 0 0 12px; background: var(--lv-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; line-height: 1; }
.lv-404__lead { font-size: 22px; font-weight: 700; margin-bottom: 8px; }
.lv-404 p { color: var(--lv-text-soft); }
.lv-404__actions { display: flex; gap: 12px; justify-content: center; margin-top: 24px; flex-wrap: wrap; }

/* Search form */
.lv-search { display: flex; gap: 8px; }
.lv-search input { flex: 1; padding: 12px 16px; border-radius: 999px; border: 1px solid var(--lv-border); font-family: inherit; font-size: 15px; }

/* ----------  RESPONSIVE  ---------- */
@media (max-width: 1024px) {
    .lv-services__grid { grid-template-columns: repeat(3, 1fr); }
    .lv-trust__row { grid-template-columns: repeat(3, 1fr); }
    .lv-trust__item:nth-child(n+4) { grid-column: span 1; }
    .lv-why__grid { grid-template-columns: 1fr; gap: 32px; }
    .lv-products, ul.products { grid-template-columns: repeat(2, 1fr); }
    .related.products ul.products, .up-sells ul.products, .cross-sells ul.products { grid-template-columns: repeat(2, 1fr); }
    .lv-pdp .product { grid-template-columns: 1fr; gap: 32px; }
    .lv-pdp-trust { grid-template-columns: repeat(2, 1fr); }
    .lv-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
    .container { padding: 0 16px; }
    .lv-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--lv-border); padding: 16px 16px; box-shadow: var(--lv-shadow); max-height: calc(100vh - 80px); overflow-y: auto; }
    .lv-nav.is-open { display: block; }
    .lv-nav .lv-menu { flex-direction: column; gap: 4px; }
    .lv-nav .lv-menu li a { display: block; padding: 14px 16px; font-size: 15px; }
    .lv-menu-toggle { display: flex; }
    .lv-header__inner { padding: 12px 16px; gap: 8px; }
    .lv-actions { gap: 4px; }
    .lv-actions .lv-btn { display: none; }
    .lv-iconbtn, .lv-cartbtn { width: 38px; height: 38px; }
    .lv-promo-bar .container { font-size: 11px; gap: 8px; padding-top: 7px; padding-bottom: 7px; }
    .lv-promo-sep { display: none; }

    .lv-hero { padding: 40px 0 50px; }
    .lv-hero__grid { grid-template-columns: 1fr; gap: 32px; }
    .lv-hero__visual { min-height: 360px; order: -1; }
    .lv-phone { transform: rotate(0) scale(.78); width: 260px; height: 500px; }
    .lv-hero__title { font-size: clamp(28px, 7vw, 40px); }
    .lv-hero__lead { font-size: 15px; }
    .lv-hero__cta { flex-direction: column; align-items: stretch; }
    .lv-hero__cta .lv-btn { justify-content: center; width: 100%; }
    .lv-hero__bullets { gap: 8px 16px; font-size: 13px; }

    .lv-trust { padding: 24px 0; }
    .lv-trust__row { grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .lv-trust__item strong { font-size: 22px; }
    .lv-trust__item span { font-size: 12px; }

    .lv-services, .lv-bestsellers, .lv-how, .lv-why, .lv-testimonials, .lv-faq, .lv-bigcta { padding: 50px 0; }
    .lv-section__head { margin-bottom: 32px; }
    .lv-section__head h2 { font-size: clamp(24px, 6vw, 32px); }
    .lv-section__head p { font-size: 15px; }
    .lv-services__grid, .lv-how__steps, .lv-testimonials__grid, .lv-products { grid-template-columns: 1fr !important; gap: 14px; }
    .lv-service, .lv-quote, .lv-how__step { padding: 22px 18px; }
    .lv-why__features { grid-template-columns: 1fr; gap: 12px; }
    .lv-why__features li { padding: 16px; }
    .lv-bigcta { padding: 50px 0 60px; }
    .lv-bigcta__card { padding: 36px 22px; border-radius: 22px; }
    .lv-bigcta__card h2 { font-size: clamp(22px, 5.5vw, 28px); }
    .lv-bigcta__card p { font-size: 15px; }

    .lv-shop-hero { padding: 36px 0 20px; }
    .lv-shop-hero__title { font-size: clamp(26px, 6vw, 36px); }
    .lv-shop-hero__sub { font-size: 14px; }
    .lv-pills { gap: 6px; }
    .lv-pill { padding: 8px 12px; font-size: 13px; }

    .lv-footer { padding: 50px 0 24px; }
    .lv-footer__cta { padding: 22px; flex-direction: column; text-align: center; }
    .lv-footer__cta a { width: 100%; justify-content: center; }
    .lv-footer__grid { grid-template-columns: 1fr; gap: 28px; }
    .lv-footer__brand .lv-footer__tag { margin: 10px auto 0; max-width: 100%; }
    .lv-footer__bottom { flex-direction: column; align-items: center; text-align: center; gap: 8px; }

    .lv-accordion__item { padding: 16px 18px; }
    .lv-accordion__item summary { font-size: 15px; gap: 12px; }
    .lv-accordion__item p { font-size: 14px; }

    .lv-pdp-trust { grid-template-columns: 1fr 1fr !important; }
    .woocommerce-account .woocommerce { grid-template-columns: 1fr; }
    .woocommerce-MyAccount-navigation { margin-bottom: 16px; }
}

@media (max-width: 480px) {
    .container { padding: 0 14px; }
    .lv-promo-bar .container span:nth-child(3) { display: none; } /* hide Italy badge on tiny screens */
    .lv-trust__row { grid-template-columns: 1fr 1fr; }
    .lv-hero__visual { min-height: 320px; }
    .lv-phone { transform: rotate(0) scale(.68); }
    .lv-pdp-trust { grid-template-columns: 1fr !important; }
    .lv-bigcta__card { padding: 28px 18px; }
    .lv-bigcta__card a { width: 100%; justify-content: center; }
}

/* =================================================================
   COMPREHENSIVE MOBILE PASS — every page & component ≤768 / ≤480
   Consolidated overrides that beat WC + block-editor defaults.
   ================================================================= */
@media (max-width: 768px) {
    /* Global sizing */
    body { font-size: 15px; }
    .container { padding: 0 16px; }
    .container--narrow { padding: 0 16px; }

    /* Header + promo bar */
    .lv-header__inner { padding: 10px 14px; gap: 6px; }
    .lv-brand .lv-logo--file img { max-height: 34px; }
    .lv-brand .custom-logo, .lv-brand .custom-logo-link img { max-height: 34px; }
    .lv-actions { gap: 4px; }
    .lv-actions .lv-btn:not(.lv-menu-toggle) { display: none; }
    .lv-iconbtn, .lv-cartbtn { width: 36px; height: 36px; }
    .lv-cart-count { min-width: 16px; height: 16px; font-size: 10px; top: -3px; right: -3px; }
    .lv-menu-toggle { width: 38px; height: 38px; }
    .lv-promo-bar .container { font-size: 11px; padding: 6px 14px; gap: 8px; }

    /* Hero */
    .lv-hero { padding: 32px 0 40px; }
    .lv-hero__grid { gap: 24px; }
    .lv-hero__title { font-size: clamp(26px, 8vw, 38px) !important; }
    .lv-hero__lead { font-size: 15px; margin-bottom: 22px; }
    .lv-hero__cta { flex-direction: column; align-items: stretch; gap: 10px; }
    .lv-hero__cta .lv-btn { width: 100%; justify-content: center; }
    .lv-hero__bullets { gap: 6px 14px; font-size: 13px; }
    .lv-hero__blob { display: none; }

    /* Marketing sections */
    .lv-section__head { margin-bottom: 28px; }
    .lv-section__head h2 { font-size: clamp(22px, 6vw, 30px) !important; }
    .lv-section__head p { font-size: 14px; }
    /* Services grid: 2-col on mobile so 8 services aren't 8 rows */
    .lv-services__grid { grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
    .lv-service {
        padding: 16px 14px !important;
    }
    .lv-service__icon {
        width: 40px !important; height: 40px !important;
        border-radius: 10px !important; margin-bottom: 10px !important;
    }
    .lv-service__icon .lv-icon { width: 20px !important; height: 20px !important; }
    .lv-service__title { font-size: 15px !important; line-height: 1.25 !important; margin: 0 0 2px !important; }
    .lv-service__meta { font-size: 12px !important; margin: 0 0 10px !important; }
    .lv-service__cta { font-size: 12px !important; }
    .lv-how__step { padding: 22px 18px; }
    .lv-quote { padding: 20px; }
    .lv-quote blockquote { font-size: 15px; }
    .lv-accordion__item { padding: 14px 16px; }
    .lv-accordion__item summary { font-size: 14px; gap: 10px; }
    .lv-accordion__item p { font-size: 13.5px; }

    /* Shop hero + horizontal-scroll pills so many categories don't wrap into 4 rows */
    .lv-shop-hero { padding: 32px 0 20px; }
    .lv-shop-hero__title { font-size: clamp(24px, 6vw, 32px); }
    .lv-shop-hero__sub { font-size: 14px; }
    .lv-pills {
        justify-content: flex-start !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 4px 16px 10px;
        margin: 0 -16px;
    }
    .lv-pills::-webkit-scrollbar { display: none; }
    .lv-pill { flex-shrink: 0; }

    /* Product loops */
    .lv-shop { padding: 20px 0 60px; }
    .lv-wc, .wc-main { padding: 24px 0 60px; }
    .woocommerce ul.products, ul.products { gap: 12px !important; }
    .woocommerce-result-count, .woocommerce-ordering {
        text-align: center !important; width: 100% !important; display: block !important;
        margin: 0 0 16px !important;
    }
    .woocommerce-ordering select { width: 100%; max-width: 320px; }

    /* PDP */
    .lv-pdp { padding: 16px 12px 40px; }
    .lv-pdp .product { gap: 24px !important; }
    .lv-pdp .product_title { font-size: 22px !important; margin-bottom: 10px !important; }
    .lv-pdp .price, .lv-pdp p.price { font-size: 22px !important; margin-bottom: 18px !important; }
    .lv-pdp .woocommerce-product-details__short-description { font-size: 14px; }
    .lv-pdp form.cart { padding: 18px !important; border-radius: 18px !important; }
    .lv-pdp form.cart select,
    .lv-pdp form.cart input[type="text"],
    .lv-pdp .lv-extra-field input,
    .lv-pdp input.link_txtbox { padding: 12px 16px !important; font-size: 14px !important; }
    .lv-pdp .single_add_to_cart_button { width: 100% !important; padding: 14px 22px !important; font-size: 15px !important; }
    .lv-pdp .product_meta { padding: 14px 16px !important; }
    .lv-pdp-hero { padding: 12px 0 0; }
    .lv-pdp-trust { grid-template-columns: 1fr 1fr !important; padding: 14px !important; gap: 10px !important; }
    .lv-side-perks { padding: 16px !important; margin-top: 14px; }
    .lv-side-perks h4 { font-size: 12px; }

    /* Tabs */
    .woocommerce-tabs { margin-top: 32px !important; }
    .woocommerce-tabs ul.tabs { width: 100% !important; padding: 4px !important; }
    .woocommerce-tabs ul.tabs li a { padding: 9px 14px !important; font-size: 13px !important; }
    .woocommerce-tabs .panel { padding: 24px 18px !important; }
    .woocommerce-tabs .panel h2 { font-size: 20px !important; }
    .woocommerce-tabs .panel img { float: none !important; margin: 12px 0 !important; max-width: 100% !important; height: auto !important; }
    .woocommerce-tabs .panel .products { grid-template-columns: 1fr !important; }

    /* Related products */
    .related.products, .up-sells, section.related { margin-top: 40px !important; }
    .related.products > h2, .up-sells > h2 { font-size: 22px !important; margin-bottom: 20px !important; }

    /* Cart + Checkout (WC Blocks) — stack columns */
    .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout {
        padding-left: 12px !important; padding-right: 12px !important;
    }
    .wp-block-woocommerce-cart-items-block, .wp-block-woocommerce-cart-totals-block {
        padding: 16px !important;
    }
    .wc-block-components-button { padding: 14px 22px !important; font-size: 15px !important; min-height: 48px !important; }

    /* My account layout */
    body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation),
    body.woocommerce-account .woocommerce:has(> nav.woocommerce-MyAccount-navigation),
    body.logged-in.woocommerce-account .woocommerce {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    body.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation,
    body.woocommerce-account .woocommerce > nav.woocommerce-MyAccount-navigation {
        max-width: 100% !important;
        grid-column: 1 !important;
        padding: 8px !important;
    }
    /* Horizontal-scroll nav pills instead of vertical stack */
    .woocommerce-MyAccount-navigation ul {
        flex-direction: row !important;
        overflow-x: auto;
        flex-wrap: nowrap;
        gap: 6px !important;
        padding-bottom: 4px;
        scrollbar-width: none;
    }
    .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
    .woocommerce-MyAccount-navigation ul li { flex-shrink: 0; }
    .woocommerce-MyAccount-navigation ul li a { padding: 9px 14px !important; font-size: 13px !important; white-space: nowrap; }
    .woocommerce-MyAccount-content { padding: 22px 18px !important; }
    /* Login / register forms stack */
    .woocommerce-account .u-columns.col2-set,
    .woocommerce-account .u-columns { grid-template-columns: 1fr !important; gap: 16px !important; }
    .woocommerce-account form.woocommerce-form-login,
    .woocommerce-account form.woocommerce-form-register { padding: 22px 18px !important; }

    /* Pagination */
    .woocommerce-pagination { margin-top: 32px !important; }
    .woocommerce-pagination ul { gap: 6px !important; }
    .woocommerce-pagination ul li a,
    .woocommerce-pagination ul li span,
    .woocommerce-pagination .page-numbers {
        min-width: 40px !important; height: 40px !important; padding: 0 12px !important; font-size: 13px !important; border-radius: 10px !important;
    }

    /* Notices go column so button drops below message */
    .woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
        flex-direction: column !important;
        align-items: stretch !important;
        text-align: center;
        padding: 14px 16px !important;
    }
    .woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button {
        width: 100% !important; justify-content: center; order: 2 !important;
    }

    /* Insta plugin: profile card + posts grid */
    .lv-pdp .insta-profile-card { flex-direction: column !important; text-align: center; gap: 10px !important; padding: 16px !important; }
    .lv-pdp .insta-profile-card .stats { justify-content: center !important; gap: 16px !important; }
    .lv-pdp .insta-profile-card .stat { text-align: center !important; }
    .lv-pdp .posts-images,
    .lv-pdp .posts-imagesblurclass { width: calc(50% - 5px) !important; }

    /* 404 */
    .lv-404 { padding: 60px 0 !important; }
    .lv-404 h1 { font-size: 90px !important; }
    .lv-404__actions { flex-direction: column !important; }
    .lv-404__actions .lv-btn { width: 100% !important; justify-content: center !important; }

    /* Cookie banner */
    .lv-cookie { left: 12px !important; right: 12px !important; bottom: 12px !important; padding: 14px 16px !important; }
    .lv-cookie__actions { flex-direction: row !important; }

    /* Article / page prose */
    .lv-article__title { font-size: 26px !important; }
    .lv-article__content { font-size: 15px; }
    .lv-article__content h2 { font-size: 22px !important; margin-top: 24px !important; }
    .lv-article__content h3 { font-size: 18px !important; margin-top: 18px !important; }

    /* Admin SMM page */
    .toplevel_page_ftb #wpbody-content { padding: 14px !important; }
    .toplevel_page_ftb .tabcontent { padding: 20px 16px !important; }
    .toplevel_page_ftb h1 { font-size: 22px !important; }
    .toplevel_page_ftb .tab { display: flex !important; width: 100%; overflow-x: auto; }
    .toplevel_page_ftb #example { font-size: 12px !important; display: block !important; overflow-x: auto; }
}

@media (max-width: 480px) {
    /* Tightest phones — refine the 768 baseline for narrow screens */
    .container, .container--narrow { padding: 0 12px; }
    .lv-header__inner { padding: 8px 12px; }
    .lv-brand .lv-logo--file img { max-height: 30px; }
    .lv-hero__title { font-size: 28px !important; }
    .lv-hero__visual { min-height: 260px; }
    .lv-phone { transform: rotate(0) scale(.62); }
    .lv-phone__notch { display: none; }
    .lv-float { padding: 8px 12px; font-size: 12px; }

    .lv-services, .lv-bestsellers, .lv-how, .lv-why, .lv-testimonials, .lv-faq, .lv-bigcta {
        padding: 40px 0 !important;
    }
    .lv-services__grid { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
    .lv-service { padding: 14px 12px !important; }
    .lv-service__icon { width: 36px !important; height: 36px !important; margin-bottom: 8px !important; border-radius: 9px !important; }
    .lv-service__icon .lv-icon { width: 18px !important; height: 18px !important; }
    .lv-service__title { font-size: 14px !important; }
    .lv-service__meta { font-size: 11px !important; margin-bottom: 6px !important; }
    .lv-service__cta { font-size: 11px !important; }

    .lv-trust { padding: 20px 0; }
    .lv-trust__row { grid-template-columns: 1fr 1fr; gap: 10px; }
    .lv-trust__item strong { font-size: 20px; }
    .lv-trust__item span { font-size: 11px; }

    /* PDP */
    .lv-pdp { padding: 12px 10px 40px; }
    .lv-pdp .product_title { font-size: 20px !important; }
    .lv-pdp form.cart { padding: 16px !important; }
    .lv-pdp-trust { grid-template-columns: 1fr !important; }

    /* Product card content */
    ul.products li.product { min-width: 0 !important; }
    .lv-product__body { padding: 14px !important; }
    .lv-product__title { font-size: 13px !important; }
    .lv-product__perks { font-size: 11px !important; }

    /* Insta posts single column */
    .lv-pdp .posts-images,
    .lv-pdp .posts-imagesblurclass { width: 100% !important; }

    /* Cookie banner stacks buttons */
    .lv-cookie__actions { flex-direction: column !important; }
    .lv-cookie__actions .lv-btn { width: 100%; justify-content: center; }

    /* Pagination super compact */
    .woocommerce-pagination ul li a,
    .woocommerce-pagination ul li span,
    .woocommerce-pagination .page-numbers {
        min-width: 36px !important; height: 36px !important; padding: 0 10px !important; font-size: 12px !important;
    }

    /* Contact / FAQ / How-it-works page eyebrow smaller */
    .lv-eyebrow { font-size: 12px; padding: 5px 12px; }

    /* Hide overflow-heavy footer trust chevrons on tiny screens */
    .lv-footer__cta { padding: 18px !important; }
    .lv-footer__cta h2 { font-size: 20px !important; }
    .lv-footer__cta p { font-size: 13px; }
}

/* Extra: prevent horizontal scroll site-wide on mobile */
@media (max-width: 900px) {
    html, body { overflow-x: hidden; max-width: 100vw; }
    img, svg, video { max-width: 100%; height: auto; }
    table { max-width: 100%; }
}
