/* LCE Global — shared utilities across all widgets */

/* ── Section layout ─────────────────────────────────────────────────────── */
.lce-section__header { display: flex; flex-direction: column; gap: .35rem; margin-bottom: 2rem; }
.lce-section__eyebrow { font-size: .8rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; opacity: .6; }
.lce-section__title { margin: 0; line-height: 1.2; }
.lce-section__footer { display: flex; justify-content: center; margin-top: 2.5rem; }

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.lce-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .8rem 2rem; font-weight: 600; font-size: .875rem; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; line-height: 1; }
.lce-btn--outline { background: transparent; border-color: currentColor; }
.lce-btn--full { width: 100%; }
.lce-btn--sm { padding: .5rem 1.25rem; font-size: .8rem; }

/* ── Product card ────────────────────────────────────────────────────────── */
.lce-product-card { display: flex; flex-direction: column; }
.lce-product-card__media { position: relative; overflow: hidden; aspect-ratio: 3/4; }
.lce-product-card__img-link { display: block; width: 100%; height: 100%; }
.lce-product-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.lce-product-card__media:hover .lce-product-card__img { transform: scale(1.05); }
.lce-product-card__badge { position: absolute; top: .75rem; left: .75rem; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .25rem .6rem; color: #fff; }
.lce-product-card__badge--sale { background: #e63946; }
.lce-product-card__badge--new  { background: #1a1a1a; }
.lce-product-card__actions { position: absolute; bottom: 0; left: 0; right: 0; display: flex; justify-content: center; padding: .75rem; transform: translateY(100%); transition: transform .3s ease; }
.lce-product-card__media:hover .lce-product-card__actions { transform: translateY(0); }
.lce-product-card__info { padding: .75rem 0; display: flex; flex-direction: column; gap: .3rem; }
.lce-product-card__title { margin: 0; font-size: .9rem; font-weight: 600; }
.lce-product-card__title a { text-decoration: none; color: inherit; }
.lce-product-card__price { font-size: .875rem; }

/* ── Products grid ───────────────────────────────────────────────────────── */
.lce-products-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
@media (max-width: 1024px) { .lce-products-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px)  { .lce-products-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; } }
@media (max-width: 480px)  { .lce-products-grid { grid-template-columns: repeat(2, 1fr); gap: .75rem; } }

/* ── Testimonials ────────────────────────────────────────────────────────── */
.lce-testimonials { }
.lce-testimonials__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.lce-testimonials__item { display: flex; flex-direction: column; gap: .75rem; padding: 1.5rem; }
.lce-testimonials__stars { display: flex; gap: .15rem; }
.lce-star { font-size: 1rem; opacity: .25; }
.lce-star--filled { opacity: 1; color: #f5a623; }
.lce-testimonials__quote { margin: 0; font-style: italic; line-height: 1.6; }
.lce-testimonials__author { display: flex; align-items: center; gap: .75rem; }
.lce-testimonials__photo { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.lce-testimonials__name { display: block; font-weight: 700; font-size: .9rem; }
.lce-testimonials__role { font-size: .8rem; opacity: .6; }
@media (max-width: 768px) { .lce-testimonials__grid { grid-template-columns: 1fr; } }

/* ── Footer ──────────────────────────────────────────────────────────────── */
.lce-footer__main { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 2rem; padding: 3rem 5%; max-width: var(--luc-container-width, 1200px); margin-inline: auto; }
.lce-footer__brand { display: flex; flex-direction: column; gap: 1rem; }
.lce-footer__logo { max-width: 140px; height: auto; }
.lce-footer__tagline { margin: 0; font-size: .875rem; opacity: .7; line-height: 1.5; }
.lce-footer__social { display: flex; gap: .75rem; }
.lce-footer__social-link { display: flex; align-items: center; opacity: .7; transition: opacity .2s; }
.lce-footer__social-link:hover { opacity: 1; }
.lce-footer__col-title { margin: 0 0 1rem; font-size: .85rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.lce-footer__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.lce-footer__menu a { font-size: .875rem; text-decoration: none; opacity: .7; transition: opacity .2s; }
.lce-footer__menu a:hover { opacity: 1; }
.lce-footer__bar { padding: 1rem 5%; border-top: 1px solid rgba(255,255,255,.1); }
.lce-footer__bar-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; max-width: var(--luc-container-width, 1200px); margin-inline: auto; }
.lce-footer__copyright { font-size: .8rem; opacity: .5; }
.lce-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.5rem; }
.lce-footer__legal a { font-size: .8rem; text-decoration: none; opacity: .5; transition: opacity .2s; }
.lce-footer__legal a:hover { opacity: .8; }
.lce-footer__payments { display: flex; align-items: center; gap: .5rem; }
@media (max-width: 768px) {
    .lce-footer__main { grid-template-columns: 1fr 1fr; }
    .lce-footer__brand { grid-column: 1 / -1; }
    .lce-footer__bar-inner { flex-direction: column; align-items: flex-start; gap: .75rem; }
}
@media (max-width: 480px) { .lce-footer__main { grid-template-columns: 1fr; } }

/* ── Mini Cart Drawer ────────────────────────────────────────────────────── */
.lce-cart-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 999; opacity: 0; pointer-events: none; transition: opacity .3s; }
.lce-cart-overlay.is-open { opacity: 1; pointer-events: all; }
.lce-cart-drawer { position: fixed; top: 0; bottom: 0; width: 400px; max-width: 100vw; z-index: 1000; display: flex; flex-direction: column; transition: transform .35s ease; }
.lce-cart-drawer--right { right: 0; transform: translateX(100%); }
.lce-cart-drawer--left  { left: 0;  transform: translateX(-100%); }
.lce-cart-drawer.is-open { transform: translateX(0); }
.lce-cart-drawer__header { display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 1.5rem; border-bottom: 1px solid rgba(0,0,0,.08); }
.lce-cart-drawer__title { margin: 0; font-size: 1rem; font-weight: 700; }
.lce-cart-drawer__close { background: none; border: none; cursor: pointer; padding: .25rem; color: inherit; }
.lce-cart-drawer__body { flex: 1; overflow-y: auto; padding: 1rem 1.5rem; }
.lce-cart-drawer__footer { padding: 1rem 1.5rem; border-top: 1px solid rgba(0,0,0,.08); display: flex; flex-direction: column; gap: .75rem; }
.lce-cart-drawer__subtotal { display: flex; justify-content: space-between; font-weight: 600; }
.lce-cart-drawer__empty { padding: 2rem 1.5rem; text-align: center; opacity: .6; }

/* ── Countdown Timer ─────────────────────────────────────────────────────── */
.lce-countdown { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.lce-countdown--block { flex-direction: column; align-items: center; }
.lce-countdown__label-before { font-weight: 600; white-space: nowrap; }
.lce-countdown__units { display: flex; align-items: center; gap: .5rem; }
.lce-countdown__block { display: flex; flex-direction: column; align-items: center; gap: .15rem; min-width: 3rem; }
.lce-countdown--block .lce-countdown__block { padding: 1rem; min-width: 80px; }
.lce-countdown__number { font-size: 1.5rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1; }
.lce-countdown--block .lce-countdown__number { font-size: 2.5rem; }
.lce-countdown__label { font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; opacity: .6; }
.lce-countdown__sep { font-size: 1.5rem; font-weight: 700; opacity: .4; align-self: flex-start; padding-top: .1rem; }

/* ── Lookbook ────────────────────────────────────────────────────────────── */
.lce-lookbook__canvas { position: relative; display: inline-block; width: 100%; }
.lce-lookbook__img { width: 100%; height: auto; display: block; }
.lce-lookbook__hotspot { position: absolute; transform: translate(-50%, -50%); z-index: 10; }
.lce-lookbook__pin { position: relative; background: none; border: none; cursor: pointer; padding: 0; width: 28px; height: 28px; }
.lce-lookbook__pin-dot { display: block; width: 12px; height: 12px; background: #fff; border-radius: 50%; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); }
.lce-lookbook__pin-ring { display: block; width: 28px; height: 28px; border: 2px solid rgba(255,255,255,.7); border-radius: 50%; position: absolute; top: 0; left: 0; animation: lce-pulse 2s infinite; }
@keyframes lce-pulse { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.3); opacity: .5; } }
.lce-lookbook__popup { display: none; position: absolute; bottom: calc(100% + 12px); left: 50%; transform: translateX(-50%); background: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.15); width: 200px; z-index: 20; }
.lce-lookbook__hotspot:hover .lce-lookbook__popup,
.lce-lookbook__hotspot.is-open .lce-lookbook__popup { display: block; }
.lce-lookbook__popup-inner { display: flex; align-items: center; gap: .75rem; padding: .75rem; text-decoration: none; color: inherit; }
.lce-lookbook__popup-img { width: 56px; height: 56px; object-fit: cover; flex-shrink: 0; }
.lce-lookbook__popup-info { display: flex; flex-direction: column; gap: .2rem; }
.lce-lookbook__popup-name { font-size: .8rem; font-weight: 600; line-height: 1.3; }
.lce-lookbook__popup-price { font-size: .8rem; opacity: .7; }

/* ── Product Carousel ────────────────────────────────────────────────────── */
.lce-product-carousel { }
.lce-product-carousel__wrap { position: relative; display: flex; align-items: center; gap: .5rem; }
.lce-product-carousel__track { display: flex; gap: 1rem; overflow: hidden; scroll-behavior: smooth; flex: 1; }
.lce-product-carousel__item { flex: 0 0 calc(25% - .75rem); }
.lce-product-carousel__arrow { background: #fff; border: 1px solid #eee; cursor: pointer; padding: .5rem; display: flex; align-items: center; box-shadow: 0 2px 8px rgba(0,0,0,.08); flex-shrink: 0; transition: background .2s; }
.lce-product-carousel__arrow:hover { background: #f5f5f5; }
@media (max-width: 1024px) { .lce-product-carousel__item { flex: 0 0 calc(33.33% - .67rem); } }
@media (max-width: 768px)  { .lce-product-carousel__item { flex: 0 0 calc(50% - .5rem); } }
@media (max-width: 480px)  { .lce-product-carousel__item { flex: 0 0 80%; } }
