/* eFestival E-Commerce — VIVID GRADIENT Theme
   Fonts: Outfit + Space Mono (LOCAL) | Accent: #d946ef */

@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url(../fonts/outfit-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/spacemono-regular.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/spacemono-bold.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* eFestival E-Commerce — VIVID GRADIENT Theme
   Fonts: Outfit + Space Mono | Accent: #d946ef */
:root{--ec-primary:#d946ef;--ec-primary-dark:#c026d3;--ec-primary-soft:#fdf2ff;--ec-primary-soft2:#fae8ff;--ec-purple:#a855f7;--ec-accent:#c8ff00;--ec-success:#10b981;--ec-danger:#ef4444;--ec-warning:#f59e0b;--ec-gray-50:#fafafa;--ec-gray-100:#f5f5f5;--ec-gray-200:#e5e5e5;--ec-gray-300:#d4d4d4;--ec-gray-400:#a3a3a3;--ec-gray-500:#737373;--ec-gray-600:#525252;--ec-gray-700:#404040;--ec-gray-800:#262626;--ec-gray-900:#171717;--ec-radius:14px;--ec-radius-sm:10px;--ec-shadow:0 1px 3px rgba(0,0,0,.06),0 2px 8px rgba(0,0,0,.04);--ec-shadow-md:0 4px 12px rgba(0,0,0,.07);--ec-shadow-lg:0 12px 32px rgba(0,0,0,.08);--ec-transition:.2s cubic-bezier(.4,0,.2,1);--ec-max-w:1320px;--ec-font:'Outfit',sans-serif;--ec-mono:'Space Mono',monospace;--ec-gradient-hero:linear-gradient(135deg,#fdf2ff,#f0e6ff 40%,#e8f4ff);--ec-gradient-card1:linear-gradient(135deg,#fef3ff,#f0f4ff);--ec-gradient-card2:linear-gradient(135deg,#fff4f9,#fef3ff);--ec-gradient-card3:linear-gradient(135deg,#f0f4ff,#eefbf5);--ec-gradient-accent:linear-gradient(135deg,#d946ef,#a855f7)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--ec-font);color:var(--ec-gray-900);background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--ec-primary);text-decoration:none;transition:color var(--ec-transition)}
a:hover{color:var(--ec-primary-dark)}
img{max-width:100%;height:auto;display:block}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit}
::selection{background:var(--ec-primary-soft2);color:var(--ec-primary-dark)}
.ec-container{max-width:var(--ec-max-w);margin:0 auto;padding:0 24px}
@media(min-width:768px){.ec-container{padding:0 32px}}

/* Topbar */
.ec-topbar{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.06)}
.ec-topbar__inner{max-width:var(--ec-max-w);margin:0 auto;display:flex;align-items:center;height:60px;gap:16px;padding:0 24px}
@media(min-width:768px){.ec-topbar__inner{padding:0 32px;height:64px;gap:20px}}
.ec-topbar__logo img{height:36px;width:auto}
.ec-topbar__brand{font-family:var(--ec-mono);font-weight:700;font-size:16px;letter-spacing:-1px;text-transform:uppercase;color:var(--ec-gray-900);text-decoration:none}
.ec-topbar__brand i{font-style:normal;color:var(--ec-primary)}
.ec-topbar__nav{display:none;gap:4px;margin-left:12px}
@media(min-width:900px){.ec-topbar__nav{display:flex}}
.ec-topbar__nav a{font-size:13px;font-weight:500;color:var(--ec-gray-600);padding:6px 14px;border-radius:8px;transition:var(--ec-transition);text-decoration:none}
.ec-topbar__nav a:hover{background:var(--ec-gray-100);color:var(--ec-gray-900)}
.ec-topbar__nav a.active{background:var(--ec-primary-soft);color:var(--ec-primary-dark)}
.ec-topbar__search{flex:1;max-width:400px;position:relative;margin-left:auto}
.ec-topbar__search input{width:100%;padding:9px 16px 9px 38px;border:1.5px solid var(--ec-gray-200);border-radius:10px;font-size:13px;background:var(--ec-gray-50);transition:var(--ec-transition);outline:none}
.ec-topbar__search input:focus{border-color:var(--ec-primary);background:#fff;box-shadow:0 0 0 3px rgba(217,70,239,.1)}
.ec-topbar__search input::placeholder{color:var(--ec-gray-400)}
.ec-topbar__search .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ec-gray-400);pointer-events:none}
.ec-topbar__search .search-icon svg{width:16px;height:16px}
.ec-autocomplete{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--ec-gray-200);border-radius:var(--ec-radius-sm);box-shadow:var(--ec-shadow-lg);z-index:200;display:none;overflow:hidden;max-height:360px;overflow-y:auto}
.ec-autocomplete.open{display:block}
.ec-autocomplete-item{display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;transition:background .1s;text-decoration:none;color:var(--ec-gray-900)}
.ec-autocomplete-item:hover,.ec-autocomplete-item.focused{background:var(--ec-primary-soft)}
.ec-autocomplete-item img{width:40px;height:40px;border-radius:8px;object-fit:cover;background:var(--ec-gray-100);flex-shrink:0}
.ec-autocomplete-item .info{flex:1;min-width:0}
.ec-autocomplete-item .info .name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ec-autocomplete-item .info .cat{font-size:11px;color:var(--ec-gray-400)}
.ec-autocomplete-item .price{font-family:var(--ec-mono);font-size:13px;font-weight:700;color:var(--ec-primary);white-space:nowrap}
.ec-autocomplete-footer{padding:10px 14px;text-align:center;font-size:12px;border-top:1px solid var(--ec-gray-100)}
.ec-autocomplete-footer a{color:var(--ec-primary);font-weight:600}
.ec-topbar__actions{display:flex;align-items:center;gap:4px}
.ec-topbar__icon{position:relative;color:var(--ec-gray-700);padding:8px;border-radius:10px;transition:var(--ec-transition);display:flex;align-items:center;justify-content:center;text-decoration:none}
.ec-topbar__icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8}
.ec-topbar__icon:hover{background:var(--ec-primary-soft);color:var(--ec-primary)}
.ec-topbar__badge-num{position:absolute;top:-2px;right:-2px;background:var(--ec-primary);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.ec-hamburger{display:flex;flex-direction:column;gap:4px;padding:8px;background:none;border:none;cursor:pointer}
@media(min-width:900px){.ec-hamburger{display:none}}
.ec-hamburger span{width:18px;height:2px;background:var(--ec-gray-900);border-radius:2px}

/* Announce bar */
.ec-announce{background:var(--ec-gray-900);color:var(--ec-accent);font-family:var(--ec-mono);font-size:11px;padding:8px 24px;display:flex;align-items:center;justify-content:center;gap:24px;letter-spacing:.3px}

/* Hero */
.ec-hero{background:var(--ec-gradient-hero);position:relative;overflow:hidden}
.ec-hero__inner{display:grid;grid-template-columns:1.2fr .8fr;max-width:var(--ec-max-w);margin:0 auto;min-height:380px}
@media(max-width:768px){.ec-hero__inner{grid-template-columns:1fr}}
.ec-hero__content{padding:48px 32px;display:flex;flex-direction:column;justify-content:center}
.ec-hero__tag{font-family:var(--ec-mono);font-size:11px;color:var(--ec-primary);text-transform:uppercase;letter-spacing:2px;margin-bottom:14px}
.ec-hero__title{font-size:clamp(28px,4vw,42px);font-weight:700;line-height:1.1;letter-spacing:-1px;margin-bottom:16px}
.ec-hero__title em{font-style:normal;background:var(--ec-gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.ec-hero__desc{font-size:15px;color:var(--ec-gray-600);line-height:1.7;margin-bottom:28px;max-width:420px}
.ec-hero__actions{display:flex;gap:12px;flex-wrap:wrap}
.ec-hero__visual{display:flex;align-items:center;justify-content:center;position:relative;padding:32px}
@media(max-width:768px){.ec-hero__visual{display:none}}
.ec-hero__float{position:absolute;background:#fff;padding:8px 16px;border-radius:10px;font-size:12px;font-weight:600;box-shadow:var(--ec-shadow-md);animation:floatY 3s ease-in-out infinite}
.ec-hero__float:nth-child(1){top:20%;right:8%;color:var(--ec-primary)}
.ec-hero__float:nth-child(2){bottom:20%;left:8%;color:var(--ec-gray-900);animation-delay:1.5s}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* Buttons */
.ec-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--ec-radius-sm);font-weight:600;font-size:14px;border:none;cursor:pointer;transition:all var(--ec-transition);text-decoration:none;line-height:1.4}
.ec-btn:hover{transform:translateY(-1px)}
.ec-btn:active{transform:translateY(0)}
.ec-btn-primary{background:var(--ec-gradient-accent);color:#fff;box-shadow:0 2px 8px rgba(217,70,239,.25)}
.ec-btn-primary:hover{box-shadow:0 4px 16px rgba(217,70,239,.35);color:#fff}
.ec-btn-dark{background:var(--ec-gray-900);color:#fff}
.ec-btn-dark:hover{background:var(--ec-gray-800);color:#fff}
.ec-btn-outline{background:transparent;color:var(--ec-gray-900);border:1.5px solid var(--ec-gray-900)}
.ec-btn-outline:hover{background:var(--ec-gray-900);color:#fff}
.ec-btn-ghost{background:transparent;color:var(--ec-primary)}
.ec-btn-ghost:hover{background:var(--ec-primary-soft)}
.ec-btn-success{background:var(--ec-success);color:#fff}
.ec-btn-lg{padding:14px 32px;font-size:15px;border-radius:12px}
.ec-btn-sm{padding:8px 16px;font-size:12px}
.ec-btn-block{width:100%}
.ec-btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}
.ec-btn svg{width:16px;height:16px;flex-shrink:0}

/* Sections */
.ec-section{padding:48px 0}
.ec-section--alt{background:var(--ec-gray-50)}
.ec-section__header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}
.ec-section__title{font-size:22px;font-weight:700;letter-spacing:-.3px}
.ec-section__link{font-size:13px;font-weight:600;color:var(--ec-primary);display:flex;align-items:center;gap:4px}

/* Category pills */
.ec-cats{display:flex;gap:8px;overflow-x:auto;padding:12px 0;scrollbar-width:none}
.ec-cats::-webkit-scrollbar{display:none}
.ec-cat-pill{white-space:nowrap;padding:8px 18px;border-radius:99px;background:#fff;border:1.5px solid var(--ec-gray-200);font-size:13px;font-weight:500;transition:all var(--ec-transition);cursor:pointer;text-decoration:none;color:var(--ec-gray-600)}
.ec-cat-pill:hover{border-color:var(--ec-primary);color:var(--ec-primary)}
.ec-cat-pill.active{background:var(--ec-gray-900);color:#fff;border-color:var(--ec-gray-900)}

/* Product Grid & Card */
.ec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
@media(max-width:640px){.ec-grid{grid-template-columns:repeat(2,1fr);gap:12px}}
.ec-card{background:#fff;border-radius:var(--ec-radius);overflow:hidden;border:1px solid var(--ec-gray-100);transition:all .25s ease;position:relative}
.ec-card:hover{border-color:var(--ec-primary);transform:translateY(-4px);box-shadow:var(--ec-shadow-lg)}
.ec-card__img{aspect-ratio:1;overflow:hidden;position:relative}
.ec-card__img-bg{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.ec-card__img-bg.v1{background:var(--ec-gradient-card1)}.ec-card__img-bg.v2{background:var(--ec-gradient-card2)}.ec-card__img-bg.v3{background:var(--ec-gradient-card3)}
.ec-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.ec-card:hover .ec-card__img img{transform:scale(1.06)}
.ec-card__badges{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:6px;z-index:2}
.ec-card__badge{font-family:var(--ec-mono);font-size:10px;font-weight:700;padding:3px 10px;border-radius:6px;letter-spacing:.3px}
.ec-card__badge--sale{background:var(--ec-primary);color:#fff}
.ec-card__badge--new{background:var(--ec-accent);color:var(--ec-gray-900)}
.ec-card__badge--best{background:var(--ec-gray-900);color:#fff}
.ec-card__wishlist{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.85);backdrop-filter:blur(4px);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--ec-transition);z-index:2;opacity:0}
.ec-card:hover .ec-card__wishlist{opacity:1}
.ec-card__wishlist:hover{background:var(--ec-primary-soft)}
.ec-card__wishlist svg{width:16px;height:16px;stroke:var(--ec-primary);fill:none;stroke-width:2}
.ec-card__body{padding:14px 16px 16px}
.ec-card__category{font-size:11px;color:var(--ec-gray-400);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-weight:500}
.ec-card__title{font-size:14px;font-weight:600;margin-bottom:8px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ec-card__title a{color:inherit;text-decoration:none}
.ec-card__footer{display:flex;align-items:center;justify-content:space-between}
.ec-card__price{font-family:var(--ec-mono);font-size:16px;font-weight:700;color:var(--ec-primary)}
.ec-card__price-old{font-size:12px;color:var(--ec-gray-400);text-decoration:line-through;margin-left:6px;font-weight:400}
.ec-card__add{width:34px;height:34px;border-radius:9px;background:var(--ec-gray-100);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--ec-transition);color:var(--ec-gray-600)}
.ec-card__add:hover{background:var(--ec-primary);color:#fff}
.ec-card__add svg{width:16px;height:16px}
.ec-card__stock-low{font-family:var(--ec-mono);font-size:11px;color:var(--ec-warning);margin-top:4px}

/* Product detail */
.ec-product{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:32px 0}
@media(max-width:900px){.ec-product{grid-template-columns:1fr;gap:24px}}
.ec-product__gallery{position:relative}
.ec-product__main-img{border-radius:var(--ec-radius);overflow:hidden;background:var(--ec-gradient-card1);aspect-ratio:1;cursor:zoom-in}
.ec-product__main-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.ec-product__main-img:hover img{transform:scale(1.03)}
.ec-product__thumbs{display:flex;gap:10px;margin-top:12px}
.ec-product__thumb{width:72px;height:72px;border-radius:var(--ec-radius-sm);overflow:hidden;cursor:pointer;border:2px solid transparent;transition:var(--ec-transition);background:var(--ec-gray-100)}
.ec-product__thumb.active,.ec-product__thumb:hover{border-color:var(--ec-primary)}
.ec-product__thumb img{width:100%;height:100%;object-fit:cover}
.ec-product__info{padding-top:8px}
.ec-product__breadcrumb-cat{font-family:var(--ec-mono);font-size:11px;color:var(--ec-primary);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px}
.ec-product__title{font-size:28px;font-weight:700;line-height:1.15;letter-spacing:-.5px;margin-bottom:8px}
.ec-product__sku{font-family:var(--ec-mono);font-size:12px;color:var(--ec-gray-400);margin-bottom:16px}
.ec-product__rating{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.ec-product__stars{color:var(--ec-warning);font-size:14px;letter-spacing:1px}
.ec-product__rating-text{font-size:13px;color:var(--ec-gray-500)}
.ec-product__price{font-family:var(--ec-mono);font-size:32px;font-weight:700;color:var(--ec-primary)}
.ec-product__price-old{font-size:18px;color:var(--ec-gray-400);text-decoration:line-through;margin-left:10px;font-weight:400}
.ec-product__price-vat{font-size:12px;color:var(--ec-gray-400);margin-top:2px}
.ec-product__desc{font-size:14px;color:var(--ec-gray-600);line-height:1.7;margin-bottom:24px}
.ec-product__stock{display:flex;align-items:center;gap:8px;margin-bottom:20px;font-size:13px;font-weight:500}
.ec-product__stock .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.ec-product__stock .dot--ok{background:var(--ec-success)}.ec-product__stock .dot--low{background:var(--ec-warning)}.ec-product__stock .dot--out{background:var(--ec-danger)}
.ec-product__actions{display:flex;gap:12px;align-items:center;margin-bottom:24px;flex-wrap:wrap}
.ec-product__features{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.ec-product__feature{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--ec-gray-50);border-radius:var(--ec-radius-sm);font-size:13px}
.ec-product__feature svg{width:18px;height:18px;stroke:var(--ec-primary);fill:none;stroke-width:1.8;flex-shrink:0}
.ec-tabs{display:flex;gap:0;border-bottom:2px solid var(--ec-gray-100);margin-bottom:24px}
.ec-tab{padding:12px 20px;font-size:14px;font-weight:600;color:var(--ec-gray-500);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:var(--ec-transition)}
.ec-tab:hover{color:var(--ec-gray-900)}
.ec-tab.active{color:var(--ec-primary);border-bottom-color:var(--ec-primary)}
.ec-tab-content{display:none}.ec-tab-content.active{display:block}

/* Qty selector */
.ec-qty{display:inline-flex;align-items:center;border:1.5px solid var(--ec-gray-200);border-radius:var(--ec-radius-sm);overflow:hidden}
.ec-qty button{width:40px;height:42px;border:none;background:#fff;cursor:pointer;font-size:18px;font-weight:500;transition:var(--ec-transition);color:var(--ec-gray-600)}
.ec-qty button:hover{background:var(--ec-gray-100)}
.ec-qty input{width:50px;text-align:center;border:none;font-size:14px;font-weight:600;-moz-appearance:textfield;border-left:1px solid var(--ec-gray-200);border-right:1px solid var(--ec-gray-200)}
.ec-qty input::-webkit-outer-spin-button,.ec-qty input::-webkit-inner-spin-button{-webkit-appearance:none}

/* Cart items */
.ec-cart-item{display:grid;grid-template-columns:80px 1fr auto auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--ec-gray-100)}
@media(max-width:640px){.ec-cart-item{grid-template-columns:64px 1fr;gap:12px}}
.ec-cart-item__img{width:80px;height:80px;border-radius:var(--ec-radius-sm);overflow:hidden;background:var(--ec-gradient-card1)}
.ec-cart-item__img img{width:100%;height:100%;object-fit:cover}
.ec-cart-item__title{font-weight:600;font-size:14px}
.ec-cart-item__remove{color:var(--ec-gray-400);cursor:pointer;padding:8px;border-radius:8px;transition:var(--ec-transition);background:none;border:none}
.ec-cart-item__remove:hover{color:var(--ec-danger);background:#fef2f2}

/* Checkout */
.ec-checkout{display:grid;grid-template-columns:1fr 400px;gap:32px;padding:32px 0}
@media(max-width:960px){.ec-checkout{grid-template-columns:1fr}}
.ec-checkout__section{background:#fff;border-radius:var(--ec-radius);padding:24px;border:1px solid var(--ec-gray-100);margin-bottom:20px}
.ec-checkout__section h2{font-size:16px;font-weight:700;margin-bottom:20px;display:flex;align-items:center;gap:10px}
.ec-checkout__section h2 .num{background:var(--ec-gradient-accent);color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;font-weight:700}
.ec-summary{background:#fff;border-radius:var(--ec-radius);padding:24px;border:1px solid var(--ec-gray-100);position:sticky;top:80px}
.ec-summary h3{font-size:16px;font-weight:700;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--ec-gray-100)}
.ec-summary__row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;color:var(--ec-gray-600)}
.ec-summary__total{display:flex;justify-content:space-between;padding:16px 0 0;margin-top:10px;border-top:2px solid var(--ec-gray-900);font-size:18px;font-weight:700}
.ec-summary__coupon{display:flex;gap:8px;margin-top:16px}
.ec-summary__coupon input{flex:1;padding:9px 14px;border:1.5px solid var(--ec-gray-200);border-radius:var(--ec-radius-sm);font-size:13px}

/* Forms */
.ec-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
@media(max-width:640px){.ec-form-row{grid-template-columns:1fr}}
.ec-field{display:flex;flex-direction:column;gap:6px}
.ec-field.full{grid-column:1/-1}
.ec-field label{font-size:13px;font-weight:600;color:var(--ec-gray-700)}
.ec-field input,.ec-field select,.ec-field textarea{padding:10px 14px;border:1.5px solid var(--ec-gray-200);border-radius:var(--ec-radius-sm);font-size:14px;transition:var(--ec-transition);outline:none;background:#fff}
.ec-field input:focus,.ec-field select:focus,.ec-field textarea:focus{border-color:var(--ec-primary);box-shadow:0 0 0 3px rgba(217,70,239,.1)}

/* Shipping options */
.ec-shipping-opt{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1.5px solid var(--ec-gray-200);border-radius:var(--ec-radius-sm);cursor:pointer;transition:var(--ec-transition);margin-bottom:10px}
.ec-shipping-opt:hover{border-color:var(--ec-gray-300)}
.ec-shipping-opt.selected{border-color:var(--ec-primary);background:var(--ec-primary-soft)}
.ec-shipping-opt input[type="radio"]{accent-color:var(--ec-primary);width:18px;height:18px;flex-shrink:0}
.ec-shipping-opt__info{flex:1}
.ec-shipping-opt__name{font-weight:600;font-size:14px}
.ec-shipping-opt__time{font-size:12px;color:var(--ec-gray-500)}
.ec-shipping-opt__price{font-family:var(--ec-mono);font-weight:700;font-size:14px;white-space:nowrap}

/* Status badge */
.ec-badge{display:inline-flex;padding:4px 12px;border-radius:99px;font-size:12px;font-weight:600;background:color-mix(in srgb,var(--badge-color) 12%,white);color:var(--badge-color)}

/* Auth pages */
.ec-auth{max-width:440px;margin:48px auto;padding:0 24px}
.ec-auth__card{background:#fff;border:1px solid var(--ec-gray-100);border-radius:var(--ec-radius);padding:32px}
.ec-auth__title{font-size:24px;font-weight:700;text-align:center;margin-bottom:6px}
.ec-auth__subtitle{font-size:14px;color:var(--ec-gray-500);text-align:center;margin-bottom:24px}
.ec-auth__divider{display:flex;align-items:center;gap:12px;margin:20px 0;font-size:12px;color:var(--ec-gray-400)}
.ec-auth__divider::before,.ec-auth__divider::after{content:'';flex:1;height:1px;background:var(--ec-gray-200)}
.ec-auth__social{display:flex;flex-direction:column;gap:10px}
.ec-auth__social-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 20px;border:1.5px solid var(--ec-gray-200);border-radius:var(--ec-radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:var(--ec-transition);background:#fff;color:var(--ec-gray-700);text-decoration:none}
.ec-auth__social-btn:hover{border-color:var(--ec-gray-300);background:var(--ec-gray-50);color:var(--ec-gray-900)}
.ec-auth__social-btn svg{width:18px;height:18px;flex-shrink:0}
.ec-auth__footer{text-align:center;margin-top:20px;font-size:13px;color:var(--ec-gray-500)}
.ec-auth__footer a{color:var(--ec-primary);font-weight:600}
.ec-auth__tabs{display:flex;border-bottom:2px solid var(--ec-gray-100);margin-bottom:24px}
.ec-auth__tab{flex:1;text-align:center;padding:12px;font-weight:600;font-size:14px;color:var(--ec-gray-400);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:var(--ec-transition)}
.ec-auth__tab.active{color:var(--ec-primary);border-bottom-color:var(--ec-primary)}

/* Breadcrumb */
.ec-breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;padding:16px 0;color:var(--ec-gray-400);flex-wrap:wrap}
.ec-breadcrumb a{color:var(--ec-gray-400);text-decoration:none}
.ec-breadcrumb a:hover{color:var(--ec-primary)}
.ec-breadcrumb .sep{color:var(--ec-gray-300);font-size:10px}

/* Timeline */
.ec-order-timeline{position:relative;padding-left:32px;margin:24px 0}
.ec-order-timeline::before{content:'';position:absolute;left:11px;top:0;bottom:0;width:2px;background:var(--ec-gray-200)}
.ec-timeline-step{position:relative;padding-bottom:24px}
.ec-timeline-step:last-child{padding-bottom:0}
.ec-timeline-step .dot{position:absolute;left:-32px;top:2px;width:24px;height:24px;border-radius:50%;background:var(--ec-gray-200);display:flex;align-items:center;justify-content:center;z-index:1}
.ec-timeline-step.done .dot{background:var(--ec-success);color:#fff}
.ec-timeline-step.current .dot{background:var(--ec-primary);color:#fff;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(217,70,239,.3)}50%{box-shadow:0 0 0 8px transparent}}

/* Empty state */
.ec-empty{text-align:center;padding:64px 20px}
.ec-empty svg{width:72px;height:72px;color:var(--ec-gray-300);margin-bottom:16px}
.ec-empty h2{font-size:20px;margin-bottom:8px}
.ec-empty p{color:var(--ec-gray-500);margin-bottom:24px;font-size:14px}

/* Footer */
.ec-footer{background:var(--ec-gray-900);color:var(--ec-gray-400)}
.ec-footer__top{border-bottom:1px solid rgba(255,255,255,.08)}
.ec-footer__newsletter{max-width:var(--ec-max-w);margin:0 auto;padding:40px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.ec-footer__newsletter h3{color:#fff;font-size:20px;font-weight:700}
.ec-footer__newsletter p{font-size:14px;margin-top:4px}
.ec-footer__newsletter-form{display:flex;gap:8px}
.ec-footer__newsletter-form input{padding:10px 16px;border-radius:10px;border:1.5px solid rgba(255,255,255,.15);background:rgba(255,255,255,.05);color:#fff;font-size:13px;width:260px;outline:none}
.ec-footer__newsletter-form input::placeholder{color:var(--ec-gray-500)}
.ec-footer__newsletter-form input:focus{border-color:var(--ec-primary)}
.ec-footer__newsletter-form button{padding:10px 20px;border-radius:10px;background:var(--ec-primary);color:#fff;border:none;font-weight:600;font-size:13px;cursor:pointer;transition:var(--ec-transition)}
.ec-footer__newsletter-form button:hover{background:var(--ec-primary-dark)}
.ec-footer__grid{max-width:var(--ec-max-w);margin:0 auto;padding:40px 32px;display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:40px}
@media(max-width:768px){.ec-footer__grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.ec-footer__grid{grid-template-columns:1fr}}
.ec-footer h4{color:#fff;font-size:14px;margin-bottom:16px;font-weight:600}
.ec-footer__brand-desc{font-size:13px;line-height:1.7;margin-bottom:16px}
.ec-footer__social{display:flex;gap:10px}
.ec-footer__social a{width:36px;height:36px;border-radius:9px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;transition:var(--ec-transition)}
.ec-footer__social a:hover{background:var(--ec-primary)}
.ec-footer__social a svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:1.8}
.ec-footer a{color:var(--ec-gray-400);font-size:13px;display:block;padding:4px 0;transition:color var(--ec-transition);text-decoration:none}
.ec-footer a:hover{color:#fff}
.ec-footer__bottom{max-width:var(--ec-max-w);margin:0 auto;padding:20px 32px;border-top:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:space-between;font-size:12px;flex-wrap:wrap;gap:12px}
.ec-footer__payments{display:flex;gap:8px}
.ec-footer__payments span{padding:4px 10px;background:rgba(255,255,255,.06);border-radius:6px;font-family:var(--ec-mono);font-size:10px;color:var(--ec-gray-500);font-weight:700;letter-spacing:.5px}

/* Toasts */
.ec-toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px}
.ec-toast{padding:12px 18px;border-radius:var(--ec-radius-sm);background:var(--ec-gray-900);color:#fff;font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;animation:toastIn .3s ease;box-shadow:var(--ec-shadow-lg)}
.ec-toast.success{background:var(--ec-success)}.ec-toast.error{background:var(--ec-danger)}
@keyframes toastIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
.ec-spinner{width:18px;height:18px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite;display:inline-block}
@media(max-width:640px){.ec-hero__title{font-size:26px}.ec-product{gap:20px}.ec-product__title{font-size:22px}.ec-product__price{font-size:26px}.ec-product__features{grid-template-columns:1fr}.ec-card__body{padding:10px 12px 14px}.ec-card__title{font-size:12px}.ec-card__price{font-size:14px}}
