/* ============================================================
 * Plan9 Commerce — Main Storefront CSS
 * static/css/main.css
 * ============================================================ */

/* 1. Design Tokens */
:root {
    --color-primary:      #e91e8c;
    --color-primary-dark: #c4156f;
    --color-primary-light:#fce4f3;
    --color-secondary:    #ffd600;
    --color-dark:         #1a1a2e;
    --color-dark-mid:     #2d2d44;
    --color-mid:          #6b6b80;
    --color-light:        #f7f4ff;
    --color-white:        #ffffff;
    --color-success:      #00c853;
    --color-error:        #f44336;
    --color-warning:      #ff9800;

    --font-head: 'Fredoka One', cursive;
    --font-body: 'Nunito', sans-serif;

    --sp-xs: 4px; --sp-sm: 8px; --sp-md: 16px;
    --sp-lg: 24px; --sp-xl: 48px; --sp-xxl: 96px;

    --r-sm: 6px; --r-md: 14px; --r-lg: 24px; --r-full: 999px;

    --shadow-sm: 0 2px 12px rgba(26,26,46,.07);
    --shadow-md: 0 6px 30px rgba(26,26,46,.10);
    --shadow-lg: 0 12px 50px rgba(26,26,46,.14);
    --shadow-pink: 0 6px 30px rgba(233,30,140,.25);

    --t-fast: .15s ease; --t-norm: .3s ease;
    --t-bounce: .4s cubic-bezier(.34,1.56,.64,1);

    --max-w: 1280px;
    --header-h: 128px;
}

/* 2. Reset */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--color-dark);background:#fff;overflow-x:hidden;line-height:1.65}
body.menu-open{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--color-primary);text-decoration:none;transition:color var(--t-fast)}
a:hover{color:var(--color-primary-dark)}
ul,ol{list-style:none}
p{color:var(--color-mid);margin-bottom:var(--sp-md)}
p:last-child{margin-bottom:0}
h1,h2,h3,h4,h5,h6{font-family:var(--font-head);line-height:1.15;color:var(--color-dark)}
h1{font-size:clamp(2.2rem,5vw,3.8rem)}
h2{font-size:clamp(1.8rem,3.5vw,2.8rem)}
h3{font-size:clamp(1.2rem,2vw,1.6rem)}

/* 3. Layout */
.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--sp-lg)}
.section{padding:var(--sp-xxl) 0}
.section--light-bg{background:var(--color-light)}
.section--dark-bg{background:var(--color-dark)}
#siteMain{padding-top:var(--header-h)}

/* 4. Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-sm);font-family:var(--font-body);font-weight:800;font-size:1rem;line-height:1;padding:14px 28px;border-radius:var(--r-full);border:2px solid transparent;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),transform var(--t-bounce),box-shadow var(--t-fast);text-decoration:none;white-space:nowrap}
.btn:hover{transform:translateY(-2px);text-decoration:none}
.btn:active{transform:translateY(0)}
.btn--primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-pink)}
.btn--primary:hover{background:var(--color-primary-dark);color:#fff;box-shadow:0 8px 40px rgba(233,30,140,.35)}
.btn--secondary{background:var(--color-secondary);color:var(--color-dark)}
.btn--secondary:hover{background:#e6c200;color:var(--color-dark)}
.btn--outline{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}
.btn--outline:hover{background:var(--color-primary);color:#fff}
.btn--outline-white{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.btn--outline-white:hover{background:rgba(255,255,255,.15);color:#fff;border-color:#fff}
.btn--sm{font-size:.875rem;padding:10px 20px}
.btn--lg{font-size:1.1rem;padding:18px 36px}
.btn--full{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* 5. Demo Banner */
.demo-banner{position:fixed;top:0;left:0;right:0;z-index:99999;background:linear-gradient(135deg,var(--color-dark),var(--color-dark-mid));color:#fff;font-size:.85rem;box-shadow:0 2px 10px rgba(0,0,0,.3)}
.demo-banner__inner{display:flex;align-items:center;gap:var(--sp-md);padding:10px var(--sp-lg);max-width:var(--max-w);margin:0 auto;flex-wrap:wrap}
.demo-banner__label{background:var(--color-primary);color:#fff;font-weight:800;font-size:.75rem;padding:3px 10px;border-radius:var(--r-full);white-space:nowrap;flex-shrink:0}
.demo-banner__text{display:flex;align-items:center;gap:var(--sp-md);flex:1;color:rgba(255,255,255,.9);flex-wrap:wrap}
.demo-banner__btn{background:var(--color-secondary);color:var(--color-dark);font-weight:800;font-size:.85rem;padding:8px 18px;border-radius:var(--r-full);white-space:nowrap;transition:transform var(--t-fast);flex-shrink:0}
.demo-banner__btn:hover{transform:translateY(-1px);color:var(--color-dark)}
.demo-banner__close{background:none;border:1px solid rgba(255,255,255,.3);color:rgba(255,255,255,.7);cursor:pointer;font-size:.85rem;padding:4px 10px;border-radius:4px;transition:all var(--t-fast);margin-left:auto;flex-shrink:0}
.demo-banner__close:hover{background:rgba(255,255,255,.1);color:#fff}

/* 6. Header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;background:#fff;transition:box-shadow var(--t-norm)}
.site-header.is-sticky{box-shadow:var(--shadow-md)}
.site-header__inner{display:flex;align-items:center;gap:var(--sp-lg);height:76px;padding:0 var(--sp-lg);max-width:var(--max-w);margin:0 auto}
.site-header__logo{display:inline-block;align-items:center;flex-shrink:0;text-decoration:none}
.site-header__logo img{height:48px;width:auto}
.logo-text{font-family:var(--font-head);font-size:1.5rem;color:var(--color-primary)}
.header-search{flex:1;max-width:480px;display:flex;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-full);overflow:hidden;transition:border-color var(--t-fast)}
.header-search:focus-within{border-color:var(--color-primary)}
.header-search__input{flex:1;padding:10px 18px;border:none;outline:none;font-family:var(--font-body);font-size:.95rem;background:transparent}
.header-search__btn{padding:10px 16px;background:var(--color-primary);border:none;color:#fff;cursor:pointer;flex-shrink:0}
.header-search__btn:hover{background:var(--color-primary-dark)}
.header-actions{display:flex;align-items:center;gap:var(--sp-sm);flex-shrink:0}
.header-action-wrap{position:relative}
.header-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:46px;height:46px;padding:6px;border-radius:var(--r-md);background:transparent;border:none;cursor:pointer;color:var(--color-dark);transition:background var(--t-fast),color var(--t-fast);position:relative;text-decoration:none}
.header-btn:hover{background:var(--color-light);color:var(--color-primary)}
.header-btn__label{font-size:.7rem;font-weight:700;line-height:1}
.header-btn--cart .header-btn__label{color:var(--color-primary);font-size:.85rem;font-weight:800}
.cart-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;background:var(--color-primary);color:#fff;font-size:.65rem;font-weight:800;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;padding:0 4px}
.header-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:var(--sp-sm) 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--t-norm),visibility var(--t-norm),transform var(--t-norm);z-index:200}
.header-dropdown.is-open{opacity:1;visibility:visible;transform:translateY(0)}
.header-dropdown a{display:block;padding:10px var(--sp-lg);font-size:.9rem;font-weight:700;color:var(--color-dark);transition:color var(--t-fast),background var(--t-fast)}
.header-dropdown a:hover{color:var(--color-primary);background:var(--color-primary-light)}
.dropdown-divider{height:1px;background:rgba(26,26,46,.08);margin:var(--sp-xs) 0}
.header-btn--menu{display:none;flex-direction:column;gap:5px;height:auto;padding:10px}
.hamburger{display:block;width:22px;height:2px;background:var(--color-dark);border-radius:2px;transition:transform var(--t-norm),opacity var(--t-fast)}
.header-btn--menu.is-active .hamburger:nth-child(1){transform:translateY(7px) rotate(45deg)}
.header-btn--menu.is-active .hamburger:nth-child(2){opacity:0}
.header-btn--menu.is-active .hamburger:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.site-nav{background:var(--color-dark);border-top:1px solid rgba(255,255,255,.08)}
.site-nav .container{max-width:var(--max-w);margin:0 auto;padding:0 var(--sp-lg)}
.site-nav__list{display:flex;align-items:center;gap:2px}
.site-nav__link{display:flex;align-items:center;gap:4px;padding:13px 16px;font-weight:700;font-size:.9rem;color:rgba(255,255,255,.85);transition:color var(--t-fast),background var(--t-fast)}
.site-nav__link:hover{color:var(--color-secondary);background:rgba(255,255,255,.05)}
.has-dropdown{position:relative}
.site-nav__dropdown{position:absolute;top:100%;left:0;min-width:200px;background:#fff;border-radius:0 0 var(--r-md) var(--r-md);box-shadow:var(--shadow-lg);padding:var(--sp-sm) 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--t-norm),visibility var(--t-norm),transform var(--t-norm);z-index:100}
.has-dropdown:hover .site-nav__dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.mobile-nav{position:fixed;top:0;right:0;bottom:0;width:min(320px,85vw);background:#fff;box-shadow:var(--shadow-lg);z-index:2000;padding:var(--sp-xl) 0;overflow-y:auto;transform:translateX(110%);transition:transform var(--t-norm);display:flex;flex-direction:column}
.mobile-nav.is-open{transform:translateX(0)}
.mobile-nav a{display:block;padding:14px var(--sp-xl);font-weight:700;font-size:1rem;color:var(--color-dark);border-bottom:1px solid rgba(26,26,46,.06);transition:color var(--t-fast),background var(--t-fast)}
.mobile-nav a:hover{color:var(--color-primary);background:var(--color-primary-light)}
.mobile-nav__divider{height:1px;background:rgba(26,26,46,.1);margin:var(--sp-sm) 0}

/* 7. Messages */
.messages-wrap{padding:var(--sp-md) 0}
.alert{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);border-radius:var(--r-md);margin-bottom:var(--sp-sm);font-weight:600}
.alert-success{background:#e8f5e9;color:#2e7d32;border-left:4px solid var(--color-success)}
.alert-danger,.alert-error{background:#ffebee;color:#c62828;border-left:4px solid var(--color-error)}
.alert-info{background:var(--color-primary-light);color:var(--color-primary-dark);border-left:4px solid var(--color-primary)}
.alert-warning{background:#fff8e1;color:#e65100;border-left:4px solid var(--color-warning)}
.alert-close{background:none;border:none;cursor:pointer;font-size:1rem;color:inherit;padding:0;line-height:1}

/* 8. Hero */
.hero{position:relative;min-height:580px;background:linear-gradient(135deg,var(--color-dark) 0%,#16213e 50%,#0f3460 100%);display:flex;align-items:center;overflow:hidden;padding:var(--sp-xxl) 0 calc(var(--sp-xxl) + 60px)}
.hero__inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xl);align-items:center}
.hero__eyebrow{display:inline-flex;align-items:center;gap:var(--sp-sm);background:rgba(255,214,0,.15);color:var(--color-secondary);border:1px solid rgba(255,214,0,.3);padding:6px 16px;border-radius:var(--r-full);font-size:.9rem;font-weight:700;margin-bottom:var(--sp-md)}
.hero__title{color:#fff;font-size:clamp(2.8rem,6vw,4.5rem);margin-bottom:var(--sp-md)}
.hero__highlight{color:var(--color-secondary);display:block}
.hero__subtitle{color:rgba(255,255,255,.8);font-size:1.2rem;font-weight:600;margin-bottom:var(--sp-xl);max-width:480px}
.hero__actions{display:flex;gap:var(--sp-md);flex-wrap:wrap;margin-bottom:var(--sp-lg)}
.hero__trust{display:flex;gap:var(--sp-lg);flex-wrap:wrap}
.hero__trust span{font-size:.85rem;font-weight:700;color:rgba(255,255,255,.7)}
.hero__visual{display:flex;align-items:center;justify-content:center}
.hero__blob{width:420px;height:420px;max-width:100%;background:radial-gradient(circle at 30% 30%,rgba(233,30,140,.2),rgba(255,214,0,.1),transparent 70%);border-radius:60% 40% 70% 30%/50% 60% 40% 50%;animation:blob 8s ease-in-out infinite}
@keyframes blob{0%,100%{border-radius:60% 40% 70% 30%/50% 60% 40% 50%}50%{border-radius:30% 70% 40% 60%/60% 30% 70% 40%}}
.hero__wave{position:absolute;bottom:0;left:0;right:0;z-index:3;line-height:0}
.hero__wave svg{width:100%;height:60px}

/* 9. Features Strip */
.features-strip{padding:var(--sp-lg) 0;background:#fff;border-bottom:1px solid rgba(26,26,46,.06);box-shadow:var(--shadow-sm)}
.features-strip__list{display:flex;justify-content:center;gap:var(--sp-xl);flex-wrap:wrap}
.features-strip__item{display:flex;align-items:center;gap:var(--sp-md)}
.features-strip__item>span{font-size:2rem}
.features-strip__item div{display:flex;flex-direction:column;gap:2px}
.features-strip__item strong{font-size:.9rem;font-weight:800;color:var(--color-dark)}
.features-strip__item span:last-child{font-size:.8rem;color:var(--color-mid)}

/* 10. Section Headings */
.section-heading{margin-bottom:var(--sp-xl)}
.section-heading--center{text-align:center}
.section-heading--center h2::after{content:'';display:block;width:60px;height:4px;background:var(--color-primary);border-radius:var(--r-full);margin:var(--sp-sm) auto 0}
.section-heading--white h2,.section-heading--white .section-subtitle{color:#fff}
.section-subtitle{font-size:1.1rem;color:var(--color-mid);font-weight:600;margin-top:var(--sp-sm)}
.section-cta{text-align:center;margin-top:var(--sp-xl)}

/* 11. Product Cards */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-lg)}
.product-grid--4{grid-template-columns:repeat(4,1fr)}
.product-card{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform var(--t-bounce),box-shadow var(--t-norm);display:flex;flex-direction:column;border:1px solid rgba(26,26,46,.05)}
.product-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.product-card__img{position:relative;overflow:hidden;aspect-ratio:1/1;background:var(--color-light)}
.product-card__img img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-norm)}
.product-card:hover .product-card__img img{transform:scale(1.07)}
.product-card__img-link{display:block}
.product-card__no-img{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;background:var(--color-light)}
.product-card__overlay{position:absolute;inset:0;background:rgba(26,26,46,.5);display:flex;align-items:flex-end;justify-content:center;padding:var(--sp-md);opacity:0;transition:opacity var(--t-norm)}
.product-card:hover .product-card__overlay{opacity:1}
.product-card__quick-add{background:#fff;color:var(--color-primary);border:none;padding:10px 20px;border-radius:var(--r-full);font-family:var(--font-body);font-weight:800;font-size:.9rem;cursor:pointer;width:100%;transition:background var(--t-fast),color var(--t-fast)}
.product-card__quick-add:hover{background:var(--color-primary);color:#fff}
.badge{position:absolute;top:var(--sp-md);left:var(--sp-md);padding:4px 12px;border-radius:var(--r-full);font-size:.75rem;font-weight:800;text-transform:uppercase;z-index:2}
.badge--sale{background:var(--color-primary);color:#fff}
.badge--oos{background:rgba(26,26,46,.7);color:#fff}
.badge--abs{position:absolute}
.product-card__body{padding:var(--sp-md) var(--sp-lg);display:flex;flex-direction:column;gap:var(--sp-sm);flex:1}
.product-card__name{font-size:1rem;font-family:var(--font-body);font-weight:800;line-height:1.3}
.product-card__name a{color:var(--color-dark);transition:color var(--t-fast)}
.product-card__name a:hover{color:var(--color-primary)}
.product-card__desc{font-size:.8rem;color:var(--color-mid);line-height:1.4;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-card__price{display:flex;align-items:center;gap:var(--sp-sm)}
.price{font-family:var(--font-head);font-size:1.3rem;color:var(--color-primary)}
.price-sale{font-family:var(--font-head);font-size:1.3rem;color:var(--color-primary)}
.price-old{font-size:.9rem;color:#b0b0c3;text-decoration:line-through}
.add-to-cart-btn{margin-top:auto}

/* 12. Categories */
.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--sp-md)}
.category-card{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:1/1;background:var(--color-light);display:block;transition:transform var(--t-bounce),box-shadow var(--t-norm)}
.category-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:var(--shadow-lg)}
.category-card img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-norm)}
.category-card:hover img{transform:scale(1.1)}
.category-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:55%;background:linear-gradient(transparent,rgba(26,26,46,.85));z-index:1}
.category-card__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem}
.category-card__label{position:absolute;bottom:var(--sp-md);left:0;right:0;text-align:center;z-index:2;color:#fff;font-family:var(--font-head);font-size:1.1rem;padding:0 var(--sp-sm)}

/* 13. Steps */
.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-lg);margin-bottom:var(--sp-xl)}
.step-card{text-align:center;padding:var(--sp-xl) var(--sp-lg);background:rgba(255,255,255,.05);border-radius:var(--r-lg);border:1px solid rgba(255,255,255,.1);position:relative;transition:transform var(--t-bounce)}
.step-card:hover{transform:translateY(-6px)}
.step-num{position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:32px;height:32px;background:var(--color-primary);color:#fff;border-radius:var(--r-full);font-family:var(--font-head);font-size:1rem;display:flex;align-items:center;justify-content:center}
.step-icon{font-size:2.5rem;margin:var(--sp-md) 0 var(--sp-sm)}
.step-card h3{color:#fff;margin-bottom:var(--sp-sm)}
.step-card p{color:rgba(255,255,255,.7);font-size:.9rem}

/* 14. Testimonials */
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-lg)}
.testimonial-card{background:#fff;border-radius:var(--r-lg);padding:var(--sp-lg) var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);display:flex;flex-direction:column;gap:var(--sp-md);transition:transform var(--t-bounce),box-shadow var(--t-norm)}
.testimonial-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.testimonial-card .stars{color:#e6c200;font-size:1.1rem;letter-spacing:2px}
.testimonial-card p{font-size:1rem;font-weight:600;color:var(--color-dark);line-height:1.6;font-style:italic;flex:1;margin:0}
.testimonial-card span{font-size:.85rem;font-weight:800;color:var(--color-mid)}

/* 15. Shop page */
.shop-hero{background:linear-gradient(135deg,var(--color-dark) 0%,var(--color-dark-mid) 100%);padding:var(--sp-xl) 0;border-bottom:3px solid var(--color-primary)}
.shop-hero h1{color:#fff;font-size:clamp(1.8rem,4vw,2.8rem);margin:var(--sp-sm) 0}
.breadcrumb{font-size:.85rem;color:rgba(255,255,255,.6);margin-bottom:var(--sp-sm)}
.breadcrumb a{color:rgba(255,255,255,.6);font-weight:600}
.breadcrumb a:hover{color:var(--color-secondary)}
.shop-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.shop-layout{display:grid;grid-template-columns:240px 1fr;gap:var(--sp-xl);align-items:start}
.shop-sidebar{position:sticky;top:calc(var(--header-h) + var(--sp-lg))}
.sidebar-widget{background:#fff;border-radius:var(--r-lg);padding:var(--sp-lg);margin-bottom:var(--sp-md);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05)}
.sidebar-widget__title{font-family:var(--font-head);font-size:1.1rem;color:var(--color-dark);margin-bottom:var(--sp-md);padding-bottom:var(--sp-sm);border-bottom:2px solid var(--color-primary-light)}
.sidebar-widget ul{list-style:none}
.sidebar-widget ul li a{display:flex;justify-content:space-between;padding:9px 0;font-size:.9rem;font-weight:600;color:var(--color-dark);border-bottom:1px solid rgba(26,26,46,.05);transition:color var(--t-fast),padding-left var(--t-fast)}
.sidebar-widget ul li a:hover,.sidebar-widget ul li a.is-active{color:var(--color-primary);padding-left:var(--sp-sm)}
.sidebar-widget .count{font-size:.75rem;color:var(--color-mid);background:var(--color-light);padding:2px 8px;border-radius:var(--r-full)}
.shop-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-lg);padding:var(--sp-md) var(--sp-lg);background:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05)}
.shop-toolbar__count{font-size:.9rem;font-weight:700;color:var(--color-mid);margin:0}
.shop-toolbar__sort{padding:8px 32px 8px 14px;border:1px solid rgba(26,26,46,.12);border-radius:var(--r-full);font-family:var(--font-body);font-weight:700;font-size:.9rem;color:var(--color-dark);background:#fff;cursor:pointer;appearance:none}
.shop-empty{text-align:center;padding:var(--sp-xxl) 0;display:flex;flex-direction:column;align-items:center;gap:var(--sp-md)}
.shop-empty>span{font-size:4rem}

/* 16. Product page */
.product-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.product-page-header{background:var(--color-light);padding:var(--sp-md) 0;border-bottom:1px solid rgba(26,26,46,.06)}
.product-main{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xxl);align-items:start;margin-bottom:var(--sp-xxl)}
.product-category{font-size:.8rem;font-weight:700;color:var(--color-mid);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-sm);display:block}
.product-title{font-size:clamp(1.8rem,3.5vw,2.5rem);margin-bottom:var(--sp-md)}
.product-rating{display:flex;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-md)}
.stars{color:#e6c200;font-size:1rem}
.rating-count{font-size:.85rem;color:var(--color-mid)}
.product-price{margin-bottom:var(--sp-lg)}
.product-price .price,.product-price .price-sale{font-size:2.2rem}
.product-stock{margin-bottom:var(--sp-md)}
.stock-badge{display:inline-flex;align-items:center;gap:var(--sp-sm);padding:4px 12px;border-radius:var(--r-full);font-size:.85rem;font-weight:700}
.stock-badge--in{background:#e8f5e9;color:#2e7d32}
.stock-badge--low{background:#fff8e1;color:#e65100}
.stock-badge--out{background:#ffebee;color:#c62828}
.product-short-desc{font-size:1rem;color:var(--color-mid);margin-bottom:var(--sp-lg);padding-bottom:var(--sp-lg);border-bottom:1px solid rgba(26,26,46,.07)}
.product-gallery{position:sticky;top:calc(var(--header-h) + var(--sp-lg))}
.gallery-main{border-radius:var(--r-lg);overflow:hidden;background:var(--color-light);margin-bottom:var(--sp-md);position:relative}
.gallery-main__img{width:100%;aspect-ratio:1/1;object-fit:cover}
.gallery-placeholder{width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;font-size:6rem;background:var(--color-light)}
.gallery-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-sm)}
.gallery-thumb{border:2px solid transparent;border-radius:var(--r-sm);overflow:hidden;cursor:pointer;background:none;padding:0;transition:border-color var(--t-fast)}
.gallery-thumb img{width:100%;aspect-ratio:1/1;object-fit:cover}
.gallery-thumb.is-active,.gallery-thumb:hover{border-color:var(--color-primary)}
.variant-options{display:flex;gap:var(--sp-sm);flex-wrap:wrap;margin-top:var(--sp-sm);margin-bottom:var(--sp-lg)}
.variant-btn{padding:8px 16px;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-full);background:#fff;cursor:pointer;font-family:var(--font-body);font-weight:700;font-size:.9rem;transition:all var(--t-fast);display:flex;flex-direction:column;align-items:center;gap:2px}
.variant-btn.is-active,.variant-btn:hover{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}
.variant-btn:disabled{opacity:.5;cursor:not-allowed}
.variant-price{font-size:.8rem;font-weight:800;color:var(--color-primary)}
.product-qty-row{display:flex;gap:var(--sp-md);margin-bottom:var(--sp-md);align-items:center}
.qty-control{display:flex;align-items:center;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-md);overflow:hidden;flex-shrink:0}
.qty-btn{width:40px;height:52px;background:var(--color-light);border:none;cursor:pointer;font-size:1.2rem;font-weight:800;color:var(--color-dark);transition:background var(--t-fast)}
.qty-btn:hover{background:var(--color-primary-light);color:var(--color-primary)}
.qty-input{width:60px;height:52px;text-align:center;border:none;outline:none;font-family:var(--font-body);font-weight:800;font-size:1.1rem}
.product-add-btn{flex:1}
.product-trust{display:flex;gap:var(--sp-lg);padding:var(--sp-md) var(--sp-lg);background:var(--color-light);border-radius:var(--r-md);flex-wrap:wrap;margin-bottom:var(--sp-md)}
.product-trust span{font-size:.85rem;font-weight:700;color:var(--color-dark)}
.product-meta{font-size:.85rem;color:var(--color-mid)}
.product-tabs{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);overflow:hidden;margin-bottom:var(--sp-xxl)}
.tabs-nav{display:flex;background:var(--color-light)}
.tab-btn{padding:16px 28px;font-family:var(--font-body);font-weight:800;font-size:.95rem;color:var(--color-mid);background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}
.tab-btn.is-active,.tab-btn:hover{color:var(--color-primary);background:#fff;border-bottom-color:var(--color-primary)}
.tab-panel{display:none;padding:var(--sp-xl)}
.tab-panel.is-active{display:block}
.product-description{line-height:1.8;color:var(--color-mid)}
.review{background:var(--color-light);border-radius:var(--r-md);padding:var(--sp-lg);margin-bottom:var(--sp-md)}
.review__header{display:flex;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-sm);flex-wrap:wrap}
.review__date{font-size:.8rem;color:var(--color-mid);margin-left:auto}
.related-products{margin-bottom:var(--sp-xxl)}
.related-products h2{font-size:1.8rem;margin-bottom:var(--sp-xl);text-align:center}

/* 17. Cart */
.cart-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-xl);flex-wrap:wrap;gap:var(--sp-md)}
.page-header h1{margin:0}
.cart-layout{display:grid;grid-template-columns:1fr 360px;gap:var(--sp-xl);align-items:start}
.cart-items{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);overflow:hidden}
.cart-items__head{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 40px;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);background:var(--color-light);font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--color-mid)}
.cart-item{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 40px;gap:var(--sp-md);padding:var(--sp-lg);border-bottom:1px solid rgba(26,26,46,.06);align-items:center;transition:background var(--t-fast)}
.cart-item:last-of-type{border-bottom:none}
.cart-item:hover{background:var(--color-light)}
.cart-item__product{display:flex;align-items:center;gap:var(--sp-md)}
.cart-item__img{width:70px;height:70px;flex-shrink:0;border-radius:var(--r-sm);overflow:hidden;background:var(--color-light);object-fit:cover}
.cart-item__name{font-weight:700;font-size:.95rem;color:var(--color-dark);display:block;margin-bottom:4px}
.cart-item__variant{font-size:.8rem;color:var(--color-mid);display:block}
.cart-item__price,.cart-item__total{font-weight:700;font-size:1rem;color:var(--color-dark)}
.cart-item__total{color:var(--color-primary);font-family:var(--font-head);font-size:1.1rem}
.qty-mini{display:flex;align-items:center;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-md);overflow:hidden;width:fit-content}
.qty-mini__btn{width:30px;height:34px;background:var(--color-light);border:none;cursor:pointer;font-weight:800;color:var(--color-dark);transition:background var(--t-fast);font-size:.9rem}
.qty-mini__btn:hover{background:var(--color-primary-light);color:var(--color-primary)}
.qty-mini__val{width:40px;text-align:center;font-weight:800;font-size:.9rem}
.cart-remove-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-full);background:var(--color-light);border:none;cursor:pointer;color:var(--color-mid);font-weight:800;transition:background var(--t-fast),color var(--t-fast)}
.cart-remove-btn:hover{background:#ffebee;color:var(--color-error)}
.cart-summary{position:sticky;top:calc(var(--header-h) + var(--sp-lg));background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-md);border:1px solid rgba(26,26,46,.05);overflow:hidden}
.cart-summary h3{background:var(--color-dark);color:#fff;font-family:var(--font-head);font-size:1.2rem;padding:var(--sp-md) var(--sp-lg);margin:0}
.cart-totals{padding:0}
.cart-totals__row{display:flex;justify-content:space-between;padding:14px var(--sp-lg);border-bottom:1px solid rgba(26,26,46,.06);font-size:.95rem;font-weight:700}
.cart-totals__row--tax{font-size:.85rem;font-weight:600;color:var(--color-mid)}
.cart-totals__row--total{background:var(--color-primary-light);border-bottom:none;font-family:var(--font-head);font-size:1.1rem;color:var(--color-primary)}
.cart-summary .btn{margin:var(--sp-md) var(--sp-lg)}
.cart-summary .btn--full{width:calc(100% - var(--sp-lg)*2)}
.cart-trust{display:flex;justify-content:center;gap:var(--sp-lg);padding:var(--sp-md);border-top:1px solid rgba(26,26,46,.06);font-size:.8rem;font-weight:700;color:var(--color-mid)}
.free-delivery-hint{text-align:center;font-size:.8rem;color:var(--color-primary);font-weight:700;padding:var(--sp-sm) var(--sp-lg);background:var(--color-primary-light)}
.cart-empty{text-align:center;padding:var(--sp-xxl) 0;display:flex;flex-direction:column;align-items:center;gap:var(--sp-md)}
.cart-empty>span{font-size:4rem}

/* 18. Checkout */
.checkout-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.checkout-steps-indicator{display:flex;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-xl);flex-wrap:wrap}
.checkout-steps-indicator .step{font-weight:700;font-size:.9rem;color:var(--color-mid);padding:6px 14px;border-radius:var(--r-full);background:var(--color-light)}
.checkout-steps-indicator .step.is-active{background:var(--color-primary);color:#fff}
.checkout-steps-indicator .step.is-done{background:#e8f5e9;color:#2e7d32}
.checkout-steps-indicator .step-line{color:var(--color-mid);font-size:.9rem}
.checkout-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--sp-xl);align-items:start}
.checkout-form .checkout-section{background:#fff;border-radius:var(--r-lg);padding:var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);margin-bottom:var(--sp-md)}
.checkout-section h2{font-size:1.3rem;margin-bottom:var(--sp-lg);padding-bottom:var(--sp-md);border-bottom:2px solid var(--color-primary-light)}
.checkout-aside{position:sticky;top:calc(var(--header-h) + var(--sp-lg))}
.order-summary{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-md);overflow:hidden;margin-bottom:var(--sp-md)}
.order-summary h3{background:var(--color-dark);color:#fff;font-family:var(--font-head);font-size:1.2rem;padding:var(--sp-md) var(--sp-lg);margin:0}
.summary-item{display:flex;justify-content:space-between;align-items:center;padding:12px var(--sp-lg);border-bottom:1px solid rgba(26,26,46,.06);font-size:.9rem;gap:var(--sp-md)}
.summary-item span:first-child{flex:1;font-weight:600;color:var(--color-dark)}
.summary-item__img-wrap{position:relative;flex-shrink:0}
.summary-item__img-wrap img{width:44px;height:44px;border-radius:var(--r-sm);object-fit:cover}
.summary-item__qty{position:absolute;top:-6px;right:-6px;width:20px;height:20px;background:var(--color-primary);color:#fff;border-radius:var(--r-full);font-size:.7rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.summary-totals{padding:0 var(--sp-lg) var(--sp-md)}
.summary-totals div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(26,26,46,.06);font-size:.9rem;font-weight:700}
.summary-totals div:last-child{border-bottom:none}
.total-row{font-family:var(--font-head);font-size:1.2rem;color:var(--color-primary)!important}
.checkout-trust{display:flex;justify-content:center;gap:var(--sp-lg);background:#fff;border-radius:var(--r-md);padding:var(--sp-md);font-size:.8rem;font-weight:700;color:var(--color-mid)}
.delivery-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-md)}
.delivery-summary h3{margin-bottom:var(--sp-sm);font-size:1rem}
.delivery-summary p{font-size:.9rem;color:var(--color-mid);margin:0}
.edit-link{font-size:.85rem;font-weight:700;color:var(--color-primary);white-space:nowrap}
.payment-options{display:flex;flex-direction:column;gap:var(--sp-md);margin-bottom:var(--sp-lg)}
.payment-option{width:100%}
.payment-btn{width:100%;padding:var(--sp-lg);border:2px solid rgba(26,26,46,.12);border-radius:var(--r-md);background:#fff;cursor:pointer;font-family:var(--font-body);font-size:1rem;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:var(--sp-sm);transition:border-color var(--t-fast),background var(--t-fast)}
.payment-btn:hover{border-color:var(--color-primary);background:var(--color-primary-light)}
.payment-btn--stripe:hover{border-color:#635bff;background:#f0f0ff}
.payment-btn--paypal:hover{border-color:#003087;background:#f0f8ff}
.payment-logos{font-size:.8rem;color:var(--color-mid)}
.payment-secure{text-align:center;font-size:.8rem;color:var(--color-mid);font-weight:600}

/* 19. Order Success */
.success-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.success-hero{text-align:center;margin-bottom:var(--sp-xxl)}
.success-hero__icon{font-size:4rem;margin-bottom:var(--sp-md);animation:bounce 1s ease-in-out}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}
.success-hero__sub{font-size:1.1rem;color:var(--color-mid);margin-bottom:var(--sp-md)}
.success-hero__number{display:inline-block;background:var(--color-light);padding:var(--sp-sm) var(--sp-lg);border-radius:var(--r-full);font-weight:700}
.success-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xl);margin-bottom:var(--sp-xl)}
.success-order,.success-delivery{background:#fff;border-radius:var(--r-lg);padding:var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05)}
.success-order h2,.success-delivery h2{font-size:1.3rem;margin-bottom:var(--sp-lg)}
.order-line{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(26,26,46,.06);font-size:.9rem}
.order-line:last-child{border-bottom:none}
.order-line__name{flex:1;font-weight:600;color:var(--color-dark)}
.order-totals{margin-top:var(--sp-md);padding-top:var(--sp-md);border-top:2px solid rgba(26,26,46,.08)}
.order-totals div{display:flex;justify-content:space-between;padding:8px 0;font-size:.9rem;font-weight:700}
.success-delivery address{font-style:normal;line-height:1.8;color:var(--color-mid);margin-bottom:var(--sp-lg)}
.success-delivery address strong{color:var(--color-dark)}
.success-next-steps h3{font-size:1rem;margin-bottom:var(--sp-md)}
.success-next-steps ol{list-style:decimal;padding-left:var(--sp-xl);display:flex;flex-direction:column;gap:var(--sp-sm)}
.success-next-steps li{font-size:.9rem;color:var(--color-mid)}
.success-actions{display:flex;justify-content:center;gap:var(--sp-md);flex-wrap:wrap}

/* 20. Accounts */
.account-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.auth-card{max-width:480px;margin:var(--sp-xxl) auto;background:#fff;border-radius:var(--r-lg);padding:var(--sp-xxl);box-shadow:var(--shadow-md);border:1px solid rgba(26,26,46,.05)}
.auth-card h1{margin-bottom:var(--sp-xl);text-align:center}

/* 21. Forms */
.form-group{margin-bottom:var(--sp-md)}
label{display:block;font-size:.875rem;font-weight:800;color:var(--color-dark);margin-bottom:var(--sp-xs)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=search],select,textarea{width:100%;padding:12px 16px;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-md);font-family:var(--font-body);font-size:1rem;color:var(--color-dark);background:#fff;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(233,30,140,.1)}
textarea{resize:vertical;min-height:100px}
.form-label{display:block;font-size:.875rem;font-weight:800;color:var(--color-dark);margin-bottom:var(--sp-xs)}

/* 22. Toast */
.cart-toast{position:fixed;bottom:var(--sp-lg);right:var(--sp-lg);z-index:9999;display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);background:var(--color-dark);color:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-lg);font-size:.9rem;font-weight:700;transform:translateY(120px);transition:transform var(--t-norm);max-width:320px}
.cart-toast.is-visible{transform:translateY(0)}

/* 23. Footer */
.site-footer{background:var(--color-dark)}
.footer-top{padding:var(--sp-xxl) 0 var(--sp-xl)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:var(--sp-xl)}
.footer-col--brand p{font-size:.9rem;color:rgba(255,255,255,.6);line-height:1.7}
.footer-logo{font-family:var(--font-head);font-size:1.6rem;color:#fff;margin-bottom:var(--sp-md)}
.footer-tagline{font-size:.9rem;color:rgba(255,255,255,.6);font-style:italic;margin-bottom:var(--sp-md)}
.footer-col h4{font-family:var(--font-head);font-size:1rem;color:#fff;margin-bottom:var(--sp-md)}
.footer-col ul{display:flex;flex-direction:column;gap:var(--sp-sm)}
.footer-col ul li a{color:rgba(255,255,255,.65);font-size:.9rem;font-weight:600;transition:color var(--t-fast)}
.footer-col ul li a:hover{color:var(--color-secondary)}
.footer-trust li{font-size:.9rem;font-weight:600;color:rgba(255,255,255,.65)}
.footer-contact{font-size:.9rem;color:rgba(255,255,255,.65)}
.footer-contact a{color:rgba(255,255,255,.65)}
.footer-contact a:hover{color:var(--color-secondary)}
.social-link{display:inline-block;color:rgba(255,255,255,.65);margin-right:var(--sp-md);font-size:.9rem;font-weight:700;transition:color var(--t-fast)}
.social-link:hover{color:var(--color-secondary)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:var(--sp-lg) 0}
.footer-bottom__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);flex-wrap:wrap}
.footer-bottom__inner p{font-size:.85rem;color:rgba(255,255,255,.45);margin:0}
.footer-legal{display:flex;gap:var(--sp-lg);flex-wrap:wrap}
.footer-legal a{font-size:.85rem;color:rgba(255,255,255,.45);font-weight:600;transition:color var(--t-fast)}
.footer-legal a:hover{color:var(--color-secondary)}

/* 24. Responsive */
@media(max-width:1024px){
    :root{--header-h:108px}
    .hero__inner,.product-main,.success-layout{grid-template-columns:1fr}
    .hero__visual{display:none}
    .hero__subtitle,.hero__actions,.hero__trust{max-width:100%}
    .hero__actions{justify-content:center}
    .hero__trust,.hero__subtitle{text-align:center}
    .steps-grid,.testimonials-grid{grid-template-columns:repeat(2,1fr)}
    .shop-layout{grid-template-columns:1fr}
    .shop-sidebar{display:none}
    .cart-layout,.checkout-layout{grid-template-columns:1fr}
    .cart-summary,.checkout-aside{position:static}
    .footer-grid{grid-template-columns:1fr 1fr}
    .product-grid--4{grid-template-columns:repeat(2,1fr)}
    .product-gallery{position:static}
}
@media(max-width:768px){
    :root{--sp-xxl:56px;--sp-xl:36px;--header-h:120px}
    .header-btn--menu{display:flex}
    .header-search{display:none}
    .site-nav{display:none}
    .hero__title{font-size:2.2rem}
    .hero__actions{flex-direction:column;align-items:center}
    .features-strip__list{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-md)}
    .product-grid{grid-template-columns:repeat(2,1fr);gap:var(--sp-md)}
    .steps-grid,.testimonials-grid{grid-template-columns:1fr}
    .cart-items__head{display:none}
    .cart-item{grid-template-columns:1fr;gap:var(--sp-sm);position:relative;padding-right:50px}
    .cart-item__remove{position:absolute;top:var(--sp-lg);right:var(--sp-md)}
    .category-grid{grid-template-columns:repeat(2,1fr)}
    .footer-grid{grid-template-columns:1fr}
    .footer-bottom__inner{flex-direction:column;text-align:center}
    .footer-legal{justify-content:center}
    .demo-hide-mobile{display:none}
    .checkout-steps-indicator .step-line{display:none}
}

/* 25. Account Pages */
.auth-page{padding:var(--sp-xxl) 0}
.auth-card{max-width:500px;margin:0 auto;background:#fff;border-radius:var(--r-lg);padding:var(--sp-xxl);box-shadow:var(--shadow-md);border:1px solid rgba(26,26,46,.05)}
.auth-card__header{text-align:center;margin-bottom:var(--sp-xl)}
.auth-card__icon{font-size:3rem;display:block;margin-bottom:var(--sp-md)}
.auth-card__header h1{margin-bottom:var(--sp-sm)}
.auth-card__header p{color:var(--color-mid);margin:0}
.auth-card__footer{text-align:center;margin-top:var(--sp-lg);padding-top:var(--sp-lg);border-top:1px solid rgba(26,26,46,.08)}
.auth-card__footer p{margin:0;font-size:.9rem}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-md)}
.form-input{width:100%;padding:12px 16px;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-md);font-family:var(--font-body);font-size:1rem;color:var(--color-dark);background:#fff;transition:border-color var(--t-fast)}
.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(233,30,140,.1)}
.form-input--error{border-color:var(--color-error)}
.form-error{display:block;font-size:.8rem;color:var(--color-error);margin-top:4px;font-weight:700}
.form-errors-general{background:#ffebee;border-radius:var(--r-sm);padding:var(--sp-md);margin-bottom:var(--sp-md)}
.account-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.account-header{display:flex;align-items:center;gap:var(--sp-lg);margin-bottom:var(--sp-xl)}
.account-header__avatar{width:64px;height:64px;border-radius:var(--r-full);background:var(--color-primary);color:#fff;font-family:var(--font-head);font-size:1.8rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.account-header h1{margin-bottom:4px}
.account-header p{margin:0;color:var(--color-mid);font-size:.9rem}
.account-nav{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:var(--sp-xl);padding-bottom:var(--sp-lg);border-bottom:2px solid rgba(26,26,46,.06)}
.account-nav__link{padding:8px 18px;border-radius:var(--r-full);font-weight:700;font-size:.9rem;color:var(--color-mid);background:var(--color-light);transition:background var(--t-fast),color var(--t-fast)}
.account-nav__link:hover,.account-nav__link.is-active{background:var(--color-primary);color:#fff}
.account-nav__link--logout{background:transparent;color:var(--color-mid)}
.account-nav__link--logout:hover{background:#ffebee;color:var(--color-error)}
.account-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--sp-xl);align-items:start}
.account-section{background:#fff;border-radius:var(--r-lg);padding:var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);margin-bottom:var(--sp-md)}
.account-section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-lg)}
.account-section__header h2{margin:0}
.account-empty{text-align:center;padding:var(--sp-xl) 0;display:flex;flex-direction:column;align-items:center;gap:var(--sp-md)}
.account-empty>span{font-size:3rem}
.account-empty h2{font-size:1.3rem}
.account-quick-links{display:flex;flex-direction:column;gap:var(--sp-sm)}
.account-quick-link{display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);border-radius:var(--r-md);background:var(--color-light);transition:background var(--t-fast),transform var(--t-bounce)}
.account-quick-link:hover{background:var(--color-primary-light);transform:translateX(4px)}
.account-quick-link>span:first-child{font-size:1.5rem;flex-shrink:0}
.account-quick-link strong{display:block;color:var(--color-dark);font-size:.9rem}
.account-quick-link span:last-child{font-size:.8rem;color:var(--color-mid)}

/* 26. Orders list */
.orders-list{display:flex;flex-direction:column;gap:var(--sp-sm)}
.order-card{display:grid;grid-template-columns:1fr 1fr auto;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);background:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);transition:transform var(--t-bounce),box-shadow var(--t-norm);align-items:center}
.order-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.order-card__info strong{display:block;color:var(--color-dark);font-size:.95rem}
.order-card__info span{font-size:.8rem;color:var(--color-mid)}
.order-card__middle{font-size:.85rem;color:var(--color-mid)}
.order-card__right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.order-total{font-family:var(--font-head);font-size:1.1rem;color:var(--color-primary)}
.order-status{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-full);font-size:.75rem;font-weight:800;text-transform:uppercase}
.order-status--pending{background:#fff8e1;color:#e65100}
.order-status--paid{background:#e8f5e9;color:#2e7d32}
.order-status--processing{background:#e3f2fd;color:#1565c0}
.order-status--shipped{background:#f3e5f5;color:#6a1b9a}
.order-status--delivered{background:#e8f5e9;color:#1b5e20}
.order-status--cancelled{background:#ffebee;color:#c62828}
.order-status--lg{font-size:.85rem;padding:6px 16px}
.tracking-badge{font-size:.75rem;color:var(--color-mid);background:var(--color-light);padding:2px 8px;border-radius:var(--r-full)}

/* 27. Order Detail (customer) */
.order-detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--sp-xl);flex-wrap:wrap;gap:var(--sp-md)}
.order-detail-header h1{margin-bottom:4px}
.order-detail-header p{margin:0;color:var(--color-mid);font-size:.9rem}
.order-detail-layout{display:grid;grid-template-columns:1fr 280px;gap:var(--sp-xl);align-items:start;margin-bottom:var(--sp-xl)}
.order-detail-main{display:flex;flex-direction:column;gap:var(--sp-md)}
.order-detail-aside{position:sticky;top:calc(var(--header-h) + var(--sp-lg));display:flex;flex-direction:column;gap:var(--sp-md)}
.order-line-detail{display:flex;align-items:center;gap:var(--sp-md);padding:12px 0;border-bottom:1px solid rgba(26,26,46,.06)}
.order-line-detail:last-child{border-bottom:none}
.order-line-detail__info{flex:1}
.order-line-detail__info strong{display:block;color:var(--color-dark);font-size:.95rem}
.order-line-detail__variant{font-size:.8rem;color:var(--color-mid)}
.order-line-detail__qty{color:var(--color-mid);font-size:.9rem;white-space:nowrap}
.order-line-detail__price{font-weight:700;color:var(--color-dark);white-space:nowrap}
.order-totals-summary{margin-top:var(--sp-md);padding-top:var(--sp-md);border-top:2px solid rgba(26,26,46,.08)}
.order-totals-row{display:flex;justify-content:space-between;padding:8px 0;font-size:.9rem;font-weight:700;border-bottom:1px solid rgba(26,26,46,.06)}
.order-totals-row:last-child{border-bottom:none}
.order-totals-row--tax{font-weight:600;color:var(--color-mid)}
.order-totals-row--total{font-size:1.1rem;color:var(--color-primary)}
.order-address{font-style:normal;line-height:1.8;color:var(--color-mid)}
.order-address strong{color:var(--color-dark)}
.tracking-section{background:var(--color-light)!important}
.order-detail-actions{display:flex;gap:var(--sp-md);flex-wrap:wrap}

/* 28. Addresses */
.address-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-lg)}
.address-card{background:#fff;border-radius:var(--r-lg);padding:var(--sp-lg) var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);position:relative;transition:transform var(--t-bounce),box-shadow var(--t-norm)}
.address-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.address-card--default{border-color:var(--color-primary);border-width:2px}
.address-badge{position:absolute;top:var(--sp-md);right:var(--sp-md);font-size:.75rem;font-weight:800;background:var(--color-primary-light);color:var(--color-primary);padding:3px 10px;border-radius:var(--r-full)}
.address-card__label{font-size:1rem;margin-bottom:var(--sp-sm)}
.address-card__details{font-style:normal;font-size:.9rem;line-height:1.8;color:var(--color-mid);margin-bottom:var(--sp-md)}
.address-card__details strong{color:var(--color-dark)}
.address-card__actions{display:flex;gap:var(--sp-sm)}
.btn--danger{background:#ffebee;color:var(--color-error);border:none}
.btn--danger:hover{background:var(--color-error);color:#fff}

/* 29. Search form */
.search-form-large{display:flex;gap:var(--sp-md);margin-bottom:var(--sp-xl);flex-wrap:wrap}
.search-form-large__input{flex:1;min-width:200px;padding:14px 20px;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-full);font-family:var(--font-body);font-size:1rem;transition:border-color var(--t-fast)}
.search-form-large__input:focus{outline:none;border-color:var(--color-primary)}

/* 30. Dashboard extra: order notes */
.order-note{background:var(--color-light);border-radius:var(--r-sm);padding:var(--sp-md);margin-bottom:var(--sp-sm)}
.order-note__meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:.8rem}
.order-note__meta strong{color:var(--color-dark)}
.order-note__meta span{color:var(--color-mid)}
.order-note p{font-size:.875rem;color:var(--color-mid);margin:0}
.dash-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.dash-filter__search{flex:1;min-width:200px}
.dash-filter__select{min-width:150px}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-md)}

/* 31. Responsive additions */
@media(max-width:1024px){
    .account-grid,.order-detail-layout{grid-template-columns:1fr}
    .order-detail-aside{position:static}
}
@media(max-width:768px){
    .auth-card{padding:var(--sp-xl) var(--sp-lg)}
    .form-row-2{grid-template-columns:1fr}
    .order-card{grid-template-columns:1fr;gap:var(--sp-sm)}
    .order-card__right{flex-direction:row;align-items:center}
    .address-grid{grid-template-columns:1fr}
    .account-nav{gap:var(--sp-sm)}
    .account-nav__link{font-size:.8rem;padding:6px 12px}
}

/* 32. Flat Pages */
.page-hero{background:linear-gradient(135deg,var(--color-dark) 0%,var(--color-dark-mid) 100%);padding:var(--sp-xl) 0;border-bottom:3px solid var(--color-primary)}
.page-hero h1{color:#fff;margin:var(--sp-sm) 0}
.flat-page{padding:var(--sp-xl) 0 var(--sp-xxl)}
.flat-page__content{max-width:800px;background:#fff;border-radius:var(--r-lg);padding:var(--sp-xxl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);line-height:1.8}
.flat-page__content h1,.flat-page__content h2,.flat-page__content h3{margin-top:var(--sp-xl);margin-bottom:var(--sp-md)}
.flat-page__content p{color:var(--color-mid);margin-bottom:var(--sp-md)}
.flat-page__content ul,.flat-page__content ol{padding-left:var(--sp-xl);margin-bottom:var(--sp-md);color:var(--color-mid)}
.flat-page__content li{margin-bottom:var(--sp-sm)}
.flat-page__content a{color:var(--color-primary);font-weight:700}
.flat-page__content strong{color:var(--color-dark)}
.flat-page__content table{width:100%;border-collapse:collapse;margin-bottom:var(--sp-lg)}
.flat-page__content th,.flat-page__content td{padding:10px 14px;border:1px solid rgba(26,26,46,.1);text-align:left;font-size:.9rem}
.flat-page__content th{background:var(--color-light);font-weight:800;color:var(--color-dark)}

/* 33. Coupon box on cart page */
.cart-coupon-box{background:#fff;border-radius:var(--r-lg);padding:var(--sp-lg) var(--sp-xl);box-shadow:var(--shadow-sm);border:1px solid rgba(26,26,46,.05);margin-top:var(--sp-md)}
.cart-coupon-box h3{font-size:1rem;margin-bottom:var(--sp-md)}
.coupon-form{display:flex;gap:var(--sp-sm)}
.coupon-input{flex:1;padding:10px 16px;border:2px solid rgba(26,26,46,.12);border-radius:var(--r-full);font-family:var(--font-body);font-size:.9rem;transition:border-color var(--t-fast)}
.coupon-input:focus{outline:none;border-color:var(--color-primary)}
.coupon-msg{font-size:.85rem;font-weight:700;margin-top:var(--sp-sm)}
.coupon-applied{display:flex;align-items:center;gap:var(--sp-md);flex-wrap:wrap;background:var(--color-primary-light);border-radius:var(--r-md);padding:var(--sp-md) var(--sp-lg)}
.coupon-applied__code{font-family:monospace;font-weight:800;font-size:1rem;color:var(--color-primary);letter-spacing:.05em;background:#fff;padding:4px 12px;border-radius:var(--r-full)}
.coupon-applied__saving{font-weight:700;color:var(--color-primary);flex:1}
.coupon-remove-btn{background:none;border:1px solid var(--color-primary);color:var(--color-primary);padding:4px 12px;border-radius:var(--r-full);cursor:pointer;font-size:.8rem;font-weight:700;transition:all var(--t-fast)}
.coupon-remove-btn:hover{background:var(--color-primary);color:#fff}
.cart-totals__row--discount{color:var(--color-success)}
.cart-items-col{display:flex;flex-direction:column;gap:var(--sp-md)}

/* 34. Shipping profiles on checkout */
.shipping-profiles-wrap{margin-top:var(--sp-xl);padding-top:var(--sp-xl);border-top:1px solid rgba(26,26,46,.08)}
.shipping-profiles-wrap h3{font-size:1rem;margin-bottom:var(--sp-md)}
.shipping-loading{color:var(--color-mid);font-size:.9rem;padding:var(--sp-md) 0}
.shipping-profiles{display:flex;flex-direction:column;gap:var(--sp-sm)}
.shipping-option{display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);border:2px solid rgba(26,26,46,.1);border-radius:var(--r-md);cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}
.shipping-option:hover{border-color:var(--color-primary);background:var(--color-primary-light)}
.shipping-option.is-selected{border-color:var(--color-primary);background:var(--color-primary-light)}
.shipping-option input[type=radio]{accent-color:var(--color-primary);width:18px;height:18px;flex-shrink:0}
.shipping-option__info{flex:1}
.shipping-option__info strong{display:block;font-size:.95rem;color:var(--color-dark)}
.shipping-option__info span{font-size:.8rem;color:var(--color-mid)}
.shipping-option__cost{font-weight:800;font-size:1rem;color:var(--color-dark);white-space:nowrap}

/* 35. Export buttons on reports page */
.export-btns{display:flex;flex-direction:column;gap:var(--sp-sm)}
.export-btn-group{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);background:var(--dash-light,var(--color-light));border-radius:var(--r-md);flex-wrap:wrap}
.export-btn-info{flex:1}
.export-btn-info strong{display:block;font-size:.9rem;color:var(--color-dark);margin-bottom:2px}
.export-btn-info span{font-size:.8rem;color:var(--color-mid)}


/* 36. Currency price classes */
.price-free{color:var(--color-success);font-weight:800}
.price-old{color:var(--color-light-mid);text-decoration:line-through;font-size:.9em}
.price-sale{color:var(--color-primary);font-family:var(--font-head);font-size:1.3rem}

/* 37. Dashboard settings extras */
.currency-preview{background:var(--color-light);border-radius:var(--r-md);padding:var(--sp-md) var(--sp-lg);margin-top:var(--sp-md);font-size:.9rem;color:var(--color-mid)}
.currency-preview strong{color:var(--color-primary);font-family:var(--font-head);font-size:1.2rem;margin-left:6px}
.dash-help-text{font-size:.8rem;color:var(--dash-mid,var(--color-mid));line-height:1.5}
.dash-help-text code{background:var(--color-light);padding:1px 5px;border-radius:3px;font-size:.78rem}
.dash-help-text a{color:var(--color-primary);font-weight:700}

/* ═══════════════════════════════════════════════════════════════════════
   SOCIAL ICONS — footer SVG icon links
   ═══════════════════════════════════════════════════════════════════════ */

.footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.footer-social .social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    color: #fff;
    transition: transform .18s ease, opacity .18s ease;
    text-decoration: none;
}

.footer-social .social-link:hover {
    transform: translateY(-2px);
    opacity: .9;
}

.social-link--facebook  { background: #1877f2; }
.social-link--instagram { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }
.social-link--tiktok    { background: #000; }
.social-link--youtube   { background: #ff0000; }
.social-link--pinterest { background: #e60023; }
.social-link--linkedin  { background: #0a66c2; }
.social-link--x         { background: #000; }
