/* ============================================================
   ORTHODOXSHOPS — Main Stylesheet
   Palette: burgundy #6B1E2E · gold #C9A84C · cream #FAF6F0
   ============================================================ */

:root {
  --burgundy:       #6B1E2E;
  --burgundy-dark:  #4A1220;
  --burgundy-light: #8B2E42;
  --gold:           #C9A84C;
  --gold-light:     #D4B468;
  --gold-pale:      #F5EDDA;
  --cream:          #FAF6F0;
  --cream-dark:     #F0E8DC;
  --text-dark:      #2C2C2C;
  --text-medium:    #555555;
  --text-light:     #888888;
  --white:          #FFFFFF;
  --border:         #E0D5C8;
  --border-dark:    #C8B8A2;
  --shadow-sm:  0 1px 3px rgba(0,0,0,0.08);
  --shadow:     0 2px 8px rgba(0,0,0,0.12);
  --shadow-lg:  0 4px 20px rgba(0,0,0,0.18);
  --radius:    4px;
  --radius-md: 8px;
  --font-heading: 'Georgia','Palatino Linotype','Book Antiqua',serif;
  --font-body:    'Segoe UI','Helvetica Neue',Arial,sans-serif;
  --transition: all 0.2s ease;
}

/* ─── Reset ─────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--text-dark);background:var(--cream);line-height:1.6;font-size:16px;min-height:100vh;display:flex;flex-direction:column}
img{max-width:100%;height:auto;display:block}
a{color:var(--burgundy);text-decoration:none;transition:var(--transition)}
a:hover{color:var(--gold)}
ul{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:var(--font-body)}
input,select,textarea{font-family:var(--font-body)}

/* ─── Typography ─────────────────────────────────── */
h1,h2,h3,h4,h5{font-family:var(--font-heading);color:var(--burgundy);line-height:1.3}
h1{font-size:2.2rem}
h2{font-size:1.8rem}
h3{font-size:1.4rem}
h4{font-size:1.1rem}

/* ─── Layout ─────────────────────────────────────── */
.container{max-width:1200px;margin:0 auto;padding:0 20px}
main{flex:1}

/* ─── Promo Banner ───────────────────────────────── */
.promo-banner{background:#FDE844;text-align:center;padding:10px 16px}
.promo-banner a{color:var(--burgundy-dark);font-weight:700;font-size:.92rem;text-decoration:none}
.promo-banner a:hover{text-decoration:underline}

/* ─── Header / Navigation ────────────────────────── */
.site-header{background:var(--burgundy);box-shadow:0 2px 10px rgba(0,0,0,0.25);position:sticky;top:0;z-index:100}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:70px;max-width:1200px;margin:0 auto}

.site-logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo-icon{width:40px;height:40px;background:var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--burgundy);font-weight:700;flex-shrink:0}
.logo-text{font-family:var(--font-heading);color:var(--cream);font-size:1.35rem;letter-spacing:0.5px}
.logo-text span{color:var(--gold)}

.site-nav{display:flex;align-items:center;gap:28px}
.site-nav a{color:rgba(250,246,240,.85);font-size:.95rem;padding:5px 0;border-bottom:2px solid transparent;transition:var(--transition)}
.site-nav a:hover,.site-nav a.active{color:var(--gold);border-bottom-color:var(--gold)}

.cart-nav-link{position:relative;display:flex;align-items:center;gap:6px}
.cart-badge{position:absolute;top:-9px;right:-13px;background:var(--gold);color:var(--burgundy-dark);font-size:.68rem;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:none;align-items:center;justify-content:center;padding:0 4px}

.hamburger{display:none;flex-direction:column;gap:5px;padding:5px;cursor:pointer}
.hamburger span{display:block;width:24px;height:2px;background:var(--cream);border-radius:2px;transition:var(--transition)}

/* ─── Header Search ──────────────────────────────── */
.header-search{flex:1;max-width:420px;margin:0 20px;display:flex;align-items:center}
.header-search-input{flex:1;min-width:0;background:rgba(0,0,0,.25);border:1px solid rgba(250,246,240,.25);border-right:none;color:var(--cream);padding:8px 14px;font-size:.88rem;border-radius:4px 0 0 4px;outline:none;transition:border-color .2s,background .2s}
.header-search-input::placeholder{color:rgba(250,246,240,.45)}
.header-search-input:focus{border-color:var(--gold);background:rgba(0,0,0,.35)}
.header-search-btn{background:var(--gold);border:1px solid var(--gold);color:var(--burgundy-dark);padding:8px 13px;cursor:pointer;border-radius:0 4px 4px 0;font-size:.95rem;line-height:1;transition:background .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.header-search-btn:hover{background:#e8c45a}
.header-search-mobile{display:none}

/* ─── Hero ───────────────────────────────────────── */
.hero{background:linear-gradient(135deg,var(--burgundy-dark) 0%,var(--burgundy) 55%,var(--burgundy-light) 100%);padding:90px 20px;text-align:center;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23C9A84C' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E")}
.hero-content{position:relative;z-index:1;max-width:700px;margin:0 auto}
.hero-subtitle{color:var(--gold);font-family:var(--font-heading);font-size:.95rem;letter-spacing:3px;text-transform:uppercase;margin-bottom:16px}
.hero h1{color:var(--cream);font-size:3rem;margin-bottom:20px;text-shadow:0 2px 6px rgba(0,0,0,0.35)}
.hero p{color:rgba(250,246,240,.82);font-size:1.1rem;margin-bottom:36px;line-height:1.75}
.hero-divider{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:32px}
.hero-divider::before,.hero-divider::after{content:'';width:60px;height:1px;background:var(--gold);opacity:.7}
.hero-divider span{color:var(--gold);font-size:1.2rem}

/* ─── Buttons ────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 26px;border-radius:var(--radius);font-size:.93rem;font-weight:600;letter-spacing:.3px;transition:var(--transition);border:2px solid transparent;cursor:pointer;line-height:1.3}
.btn-primary{background:var(--gold);color:var(--burgundy-dark);border-color:var(--gold)}
.btn-primary:hover{background:var(--gold-light);border-color:var(--gold-light);color:var(--burgundy-dark);transform:translateY(-1px);box-shadow:var(--shadow)}
.btn-secondary{background:transparent;color:var(--cream);border-color:rgba(250,246,240,.7)}
.btn-secondary:hover{background:var(--cream);color:var(--burgundy)}
.btn-burgundy{background:var(--burgundy);color:var(--cream);border-color:var(--burgundy)}
.btn-burgundy:hover{background:var(--burgundy-dark);border-color:var(--burgundy-dark);color:var(--cream);transform:translateY(-1px);box-shadow:var(--shadow)}
.btn-outline{background:transparent;color:var(--burgundy);border-color:var(--burgundy)}
.btn-outline:hover{background:var(--burgundy);color:var(--cream)}
.btn-danger{background:#c62828;color:#fff;border-color:#c62828}
.btn-danger:hover{background:#b71c1c;border-color:#b71c1c;color:#fff}
.btn-sm{padding:7px 15px;font-size:.83rem}
.btn-lg{padding:14px 36px;font-size:1.05rem}
.btn-full{width:100%}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}

/* ─── Section Headers ────────────────────────────── */
.section-header{text-align:center;margin-bottom:44px}
.section-header h2{font-size:2rem;margin-bottom:10px}
.section-header p{color:var(--text-medium);font-size:1.05rem}
.section-divider{display:flex;align-items:center;justify-content:center;gap:14px;margin:12px 0}
.section-divider::before,.section-divider::after{content:'';width:40px;height:1px;background:var(--gold)}
.section-divider span{color:var(--gold);font-size:1rem}

/* ─── Product Cards ──────────────────────────────── */
.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px}
.product-card{background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:var(--transition);border:1px solid var(--border);display:flex;flex-direction:column}
.product-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--gold)}
.product-card-img{position:relative;padding-top:75%;overflow:hidden;background:var(--cream-dark)}
.product-card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.product-card:hover .product-card-img img{transform:scale(1.06)}
.product-card-img .no-img{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text-light);font-size:.8rem;flex-direction:column;gap:8px}
.product-card-img .no-img span{font-size:2rem}
.product-card-body{padding:14px;flex:1;display:flex;flex-direction:column}
.product-card-category{font-size:.72rem;color:var(--gold);text-transform:uppercase;letter-spacing:.6px;margin-bottom:5px}
.product-card-name{font-family:var(--font-heading);color:var(--text-dark);font-size:.97rem;margin-bottom:8px;line-height:1.4;flex:1}
.product-card-name a{color:inherit}
.product-card-name a:hover{color:var(--burgundy)}
.product-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.product-price{font-size:1.05rem;font-weight:700;color:var(--burgundy)}
.add-to-cart-btn{background:var(--burgundy);color:var(--cream);border:none;padding:7px 13px;border-radius:var(--radius);font-size:.78rem;cursor:pointer;transition:var(--transition);white-space:nowrap}
.add-to-cart-btn:hover{background:var(--gold);color:var(--burgundy-dark)}

/* ─── Page Banner ────────────────────────────────── */
.page-banner{background:linear-gradient(to right,var(--burgundy-dark),var(--burgundy));padding:38px 20px;text-align:center}
.page-banner h1{color:var(--cream);font-size:2rem}
.page-banner p{color:rgba(250,246,240,.8);margin-top:8px;font-size:1rem}

/* ─── Breadcrumb ─────────────────────────────────── */
.breadcrumb{padding:12px 0;display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--text-light)}
.breadcrumb a{color:var(--text-light)}
.breadcrumb a:hover{color:var(--burgundy)}
.breadcrumb-sep{color:var(--border-dark)}

/* ─── Catalog Layout ─────────────────────────────── */
.catalog-layout{display:grid;grid-template-columns:255px 1fr;gap:28px;padding:36px 0;align-items:start}
.catalog-sidebar{background:var(--white);border-radius:var(--radius-md);padding:22px;border:1px solid var(--border);position:sticky;top:86px}
.sidebar-section{margin-bottom:26px}
.sidebar-section:last-child{margin-bottom:0}
.sidebar-title{font-family:var(--font-heading);color:var(--burgundy);font-size:.97rem;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--gold)}
.category-list li{margin-bottom:4px}
.category-list a{display:flex;justify-content:space-between;align-items:center;color:var(--text-medium);padding:6px 9px;border-radius:var(--radius);transition:var(--transition);font-size:.88rem}
.category-list a:hover,.category-list a.active{background:var(--cream);color:var(--burgundy);font-weight:600}
.category-count{font-size:.72rem;color:var(--text-light);background:var(--cream-dark);padding:2px 7px;border-radius:12px}
.price-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.price-inputs input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:.88rem;color:var(--text-dark)}
.price-inputs input:focus{outline:none;border-color:var(--gold)}
.search-input-group{position:relative}
.search-input-group input{width:100%;padding:9px 38px 9px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:.88rem;color:var(--text-dark)}
.search-input-group input:focus{outline:none;border-color:var(--gold)}
.search-input-group button{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--burgundy);font-size:1rem;padding:0}
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}
.results-count{color:var(--text-medium);font-size:.88rem}

/* ─── Spinner ────────────────────────────────────── */
.spinner{display:flex;align-items:center;justify-content:center;padding:60px}
.spinner::after{content:'';width:38px;height:38px;border:3px solid var(--border);border-top-color:var(--burgundy);border-radius:50%;animation:spin .75s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ─── Pagination ─────────────────────────────────── */
.pagination{display:flex;justify-content:center;gap:7px;margin-top:38px;flex-wrap:wrap}
.pagination button{min-width:38px;height:38px;border-radius:var(--radius);border:1px solid var(--border);background:var(--white);color:var(--text-dark);font-size:.88rem;transition:var(--transition);padding:0 10px}
.pagination button:hover:not(:disabled){border-color:var(--burgundy);color:var(--burgundy)}
.pagination button.active{background:var(--burgundy);color:var(--cream);border-color:var(--burgundy)}
.pagination button:disabled{opacity:.4;cursor:not-allowed}

/* ─── Product Detail ─────────────────────────────── */
.product-detail{padding:36px 0 60px}
.product-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:46px;margin-bottom:56px}
.gallery-main{width:100%;padding-top:100%;position:relative;background:var(--cream-dark);border-radius:var(--radius-md);overflow:hidden;margin-bottom:10px;border:1px solid var(--border);cursor:zoom-in}
.gallery-main img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;cursor:zoom-in}
.gallery-zoom{position:absolute;top:10px;right:10px;width:36px;height:36px;background:rgba(0,0,0,.45);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.9rem;opacity:0;transition:opacity .2s;pointer-events:none;z-index:2;line-height:1}
.gallery-main:hover .gallery-zoom{opacity:1}
.gallery-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.gallery-thumb{aspect-ratio:1;overflow:hidden;border-radius:var(--radius);border:2px solid transparent;cursor:pointer;background:var(--cream-dark);transition:var(--transition)}
.gallery-thumb:hover,.gallery-thumb.active{border-color:var(--gold)}
.gallery-thumb img{width:100%;height:100%;object-fit:cover}
.gallery-thumb.video-thumb{background:#1a1a1a;display:flex;align-items:center;justify-content:center}
.vthumb-play{color:#fff;font-size:1.3rem;line-height:1;text-shadow:0 1px 4px rgba(0,0,0,.8)}
.gallery-main--video{cursor:default}
.gallery-main video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}

/* ─── Lightbox ────────────────────────────────────── */
.lightbox-video {
  max-width: 90vw;
  max-height: 80vh;
  width: auto;
  height: auto;
  object-fit: contain;
  display: none;
}

.lightbox-img {
  max-width: 90vw;
  max-height: 80vh;
  width: auto;
  height: auto;
  object-fit: contain;
}

.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.93);z-index:2000;display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .25s}
.lightbox.lb-active{opacity:1}
.lightbox-img{max-width:90vw;max-height:88vh;object-fit:contain;border-radius:4px;box-shadow:0 8px 48px rgba(0,0,0,.7);cursor:default;user-select:none;transform:scale(.94);transition:transform .25s;display:block}
.lightbox.lb-active .lightbox-img{transform:scale(1)}
.lightbox-video{display:none;max-width:90vw;max-height:80vh;object-fit:contain;border-radius:4px;background:#000;box-shadow:0 8px 48px rgba(0,0,0,.7)}
.lb-close{position:absolute;top:14px;right:16px;background:rgba(255,255,255,.12);border:none;color:#fff;width:44px;height:44px;border-radius:50%;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;line-height:1;z-index:1}
.lb-close:hover{background:rgba(255,255,255,.25)}
.lb-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:none;color:#fff;width:52px;height:52px;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;user-select:none;z-index:1}
.lb-arrow:hover{background:rgba(255,255,255,.28)}
.lb-arrow:disabled{opacity:.25;cursor:default}
.lb-arrow:disabled:hover{background:rgba(255,255,255,.12)}
.lb-prev{left:16px}
.lb-next{right:16px}
.lb-counter{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.65);font-size:.82rem;letter-spacing:.5px;white-space:nowrap}
.product-info{min-width:0}
.category-badge{display:inline-block;background:var(--cream-dark);color:var(--gold);font-size:.78rem;padding:4px 12px;border-radius:20px;margin-bottom:10px;letter-spacing:.5px;text-transform:uppercase}
.product-info h1{font-size:1.85rem;margin-bottom:14px}
.product-price-large{font-size:2rem;font-weight:700;color:var(--burgundy);margin-bottom:8px}
.product-sku{font-size:.82rem;color:var(--text-light);margin-bottom:18px}
.product-description{color:var(--text-medium);line-height:1.8;margin-bottom:26px;white-space:pre-line}
.variant-group{margin-bottom:18px}
.variant-label{font-weight:600;color:var(--text-dark);margin-bottom:9px;font-size:.93rem}
.variant-options{display:flex;flex-wrap:wrap;gap:8px}
.variant-option{padding:6px 15px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:.88rem;transition:var(--transition);background:var(--white);color:var(--text-dark)}
.variant-option:hover,.variant-option.selected{border-color:var(--burgundy);color:var(--burgundy);background:rgba(107,30,46,.05)}
.quantity-group{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.quantity-label{font-weight:600;color:var(--text-dark);font-size:.93rem}
.quantity-control{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.quantity-control button{width:34px;height:36px;background:var(--cream-dark);font-size:1.1rem;color:var(--text-dark);transition:var(--transition)}
.quantity-control button:hover{background:var(--gold-pale);color:var(--burgundy)}
.quantity-control input{width:50px;height:36px;text-align:center;border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);font-size:.93rem}
.quantity-control input:focus{outline:none}
.product-actions{display:flex;gap:12px;margin-bottom:26px;flex-wrap:wrap}
.product-meta{padding-top:22px;border-top:1px solid var(--border)}
.product-meta-item{display:flex;gap:10px;margin-bottom:7px;font-size:.88rem}
.product-meta-label{color:var(--text-light);min-width:90px}
.product-meta-value{color:var(--text-dark)}
.product-video-section{margin-top:40px;padding-top:32px;border-top:1px solid var(--border)}
.product-video-title{font-size:1.2rem;margin-bottom:16px;color:var(--burgundy)}
.product-video-wrap{position:relative;padding-top:56.25%;border-radius:var(--radius-md);overflow:hidden;background:#000}
.product-video-wrap iframe,.product-video-wrap video{position:absolute;inset:0;width:100%;height:100%}

/* ─── Related Products ───────────────────────────── */
.related-section{padding:40px 0;border-top:1px solid var(--border)}
.related-section h2{margin-bottom:28px}

/* ─── Cart Page ──────────────────────────────────── */
.cart-page{padding:38px 0 60px}
.cart-grid{display:grid;grid-template-columns:1fr 350px;gap:28px;align-items:start}
.cart-items-section h2{margin-bottom:22px}
.cart-item{display:grid;grid-template-columns:80px 1fr auto;gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid var(--border)}
.cart-item-img{width:80px;height:80px;border-radius:var(--radius);overflow:hidden;background:var(--cream-dark);border:1px solid var(--border);flex-shrink:0}
.cart-item-img img{width:100%;height:100%;object-fit:cover}
.cart-item-name{font-family:var(--font-heading);color:var(--text-dark);margin-bottom:4px;font-size:.97rem}
.cart-item-variant{font-size:.82rem;color:var(--text-light);margin-bottom:9px}
.cart-item-qty{display:flex;align-items:center;gap:8px}
.cart-item-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.cart-item-price{font-weight:700;color:var(--burgundy);font-size:1.05rem}
.cart-remove-btn{color:var(--text-light);font-size:.78rem;transition:var(--transition);background:none;border:none;cursor:pointer;padding:3px}
.cart-remove-btn:hover{color:#c62828}
.cart-empty{text-align:center;padding:60px 20px;color:var(--text-light)}
.cart-empty h3{font-size:1.4rem;margin-bottom:10px;color:var(--text-medium)}
.order-summary{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:22px;position:sticky;top:86px}
.order-summary h3{margin-bottom:18px;padding-bottom:12px;border-bottom:2px solid var(--gold)}
.summary-row{display:flex;justify-content:space-between;margin-bottom:10px;font-size:.93rem;color:var(--text-medium)}
.summary-total{display:flex;justify-content:space-between;font-size:1.18rem;font-weight:700;color:var(--text-dark);padding-top:14px;border-top:1px solid var(--border);margin-top:6px;margin-bottom:18px}

/* ─── Checkout ───────────────────────────────────── */
.checkout-page{padding:38px 0 60px}
.checkout-grid{display:grid;grid-template-columns:1fr 370px;gap:28px;align-items:start}
.checkout-form-section h2{margin-bottom:22px}
.form-section-title{font-family:var(--font-heading);color:var(--burgundy);font-size:1.15rem;margin:24px 0 14px;padding-bottom:7px;border-bottom:2px solid var(--gold)}
.form-section-title:first-child{margin-top:0}
.form-group{margin-bottom:18px}
.field-error{display:block;color:#c62828;font-size:.78rem;margin-top:4px;min-height:1em;line-height:1.3}
.form-group label{display:block;font-weight:600;color:var(--text-dark);margin-bottom:7px;font-size:.88rem}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 13px;border:1px solid var(--border);border-radius:var(--radius);font-size:.93rem;color:var(--text-dark);background:var(--white);transition:var(--transition)}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.14)}
.form-group textarea{resize:vertical;min-height:90px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.payment-section{margin-top:28px;padding:22px;background:var(--cream-dark);border-radius:var(--radius-md);border:1px solid var(--border)}
.payment-section h3{margin-bottom:14px;font-size:1.1rem}
.payment-placeholder{text-align:center;padding:16px 0}
.payment-placeholder p{color:var(--text-medium);margin-bottom:14px;font-size:.9rem;line-height:1.6}
.payment-btn-disabled{background:var(--text-light);color:#fff;padding:12px 28px;border-radius:var(--radius);font-size:.93rem;border:none;cursor:not-allowed;opacity:.65;width:100%}

/* ─── Categories (Homepage) ──────────────────────── */
.categories-section{padding:58px 0;background:var(--cream-dark)}
.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.category-card{background:var(--white);border-radius:var(--radius-md);padding:22px 14px;text-align:center;border:1px solid var(--border);transition:var(--transition);display:block;cursor:pointer;text-decoration:none}
.category-card:hover{border-color:var(--gold);box-shadow:var(--shadow);transform:translateY(-2px);color:inherit}
.category-card-icon{font-size:2rem;margin-bottom:9px}
.category-card h3{font-size:.88rem;color:var(--text-dark);line-height:1.3;font-family:var(--font-body);font-weight:600}

/* ─── Featured Section ───────────────────────────── */
.featured-section{padding:58px 0}

/* ─── Etsy Page ──────────────────────────────────── */
.etsy-about{padding:48px 0;text-align:center}
.etsy-about p{max-width:680px;margin:0 auto;color:var(--text-medium);line-height:1.8;font-size:1.02rem}
.etsy-header-shot{max-width:900px;margin:0 auto 46px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-lg)}
.etsy-header-shot img{display:block;width:100%}
.etsy-reviews-section{padding:0 0 58px}
.etsy-reviews-grid{column-count:3;column-gap:22px}
.etsy-review-shot{break-inside:avoid;margin-bottom:22px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-sm);background:var(--white)}
.etsy-review-shot img{display:block;width:100%}
.etsy-cta{text-align:center;padding:0 0 60px}

/* ─── Footer ─────────────────────────────────────── */
.site-footer{background:var(--burgundy-dark);color:rgba(250,246,240,.8);padding:48px 0 22px;margin-top:auto}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:38px;margin-bottom:36px}
.footer-brand .logo-text{font-size:1.25rem;margin-bottom:10px;display:block;color:var(--cream)}
.footer-brand p{font-size:.88rem;line-height:1.7;color:rgba(250,246,240,.65)}
.footer-col h4{color:var(--gold);font-size:.85rem;letter-spacing:1px;text-transform:uppercase;margin-bottom:14px}
.footer-col ul li{margin-bottom:7px}
.footer-col ul li a{color:rgba(250,246,240,.65);font-size:.88rem}
.footer-col ul li a:hover{color:var(--gold)}
.footer-bottom{border-top:1px solid rgba(250,246,240,.12);padding-top:22px;display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:rgba(250,246,240,.45);flex-wrap:wrap;gap:8px}

/* ─── Admin ──────────────────────────────────────── */
body.admin-body{background:#f3f4f6}
.admin-header{background:var(--burgundy-dark);padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:60px;position:sticky;top:0;z-index:100}
.admin-logo{color:var(--gold);font-family:var(--font-heading);font-size:1.05rem;display:flex;align-items:center;gap:10px}
.admin-logo-badge{font-size:.72rem;color:rgba(250,246,240,.5);padding:2px 7px;border:1px solid rgba(250,246,240,.25);border-radius:12px;margin-left:6px}
.admin-header-right{display:flex;align-items:center;gap:16px}
.admin-header-right a{color:rgba(250,246,240,.7);font-size:.88rem}
.admin-header-right a:hover{color:var(--gold)}
.admin-layout{display:flex;min-height:calc(100vh - 60px)}
.admin-sidebar{width:210px;background:var(--white);border-right:1px solid var(--border);padding:16px 0;flex-shrink:0}
.admin-nav-link{display:flex;align-items:center;gap:10px;padding:11px 18px;color:var(--text-medium);font-size:.9rem;transition:var(--transition);border-left:3px solid transparent}
.admin-nav-link:hover,.admin-nav-link.active{background:var(--cream);color:var(--burgundy);border-left-color:var(--burgundy)}
.admin-nav-link span.nav-icon{width:18px;text-align:center}
.admin-content{flex:1;padding:28px;overflow:auto}
.admin-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.admin-page-header h1{font-size:1.55rem}
.admin-search{display:flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:8px 13px;margin-bottom:14px}
.admin-search input{border:none;font-size:.88rem;flex:1;outline:none;color:var(--text-dark);background:none}
.admin-search input::placeholder{color:var(--text-light)}
.admin-table-wrap{background:var(--white);border-radius:var(--radius-md);border:1px solid var(--border);overflow:hidden}
.admin-table{width:100%;border-collapse:collapse}
.admin-table th,.admin-table td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--border);font-size:.87rem}
.admin-table th{background:var(--cream);font-weight:600;color:var(--text-dark);font-size:.8rem;text-transform:uppercase;letter-spacing:.4px}
.admin-table tr:last-child td{border-bottom:none}
.admin-table tr:hover td{background:rgba(250,246,240,.6)}
.product-thumb-sm{width:44px;height:44px;border-radius:var(--radius);object-fit:cover;border:1px solid var(--border)}
.thumb-placeholder{width:44px;height:44px;border-radius:var(--radius);background:var(--cream-dark);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--text-light);border:1px solid var(--border)}
.status-badge{display:inline-flex;padding:3px 9px;border-radius:20px;font-size:.76rem;font-weight:700}
.status-new{background:#e3f2fd;color:#1565c0}
.status-processing{background:#fff3e0;color:#e65100}
.status-shipped{background:#e8f5e9;color:#2e7d32}
.status-completed{background:#ede7f6;color:#512da8}

/* ─── Admin Forms ────────────────────────────────── */
.admin-card{background:var(--white);border-radius:var(--radius-md);border:1px solid var(--border);padding:22px;margin-bottom:20px}
.admin-card h3{margin-bottom:18px;padding-bottom:9px;border-bottom:1px solid var(--border);font-size:1.05rem}
.upload-area{border:2px dashed var(--border);border-radius:var(--radius-md);padding:28px;text-align:center;cursor:pointer;transition:var(--transition);background:var(--cream)}
.upload-area:hover,.upload-area.drag-over{border-color:var(--gold);background:var(--gold-pale)}
.upload-area p{color:var(--text-light);font-size:.85rem;margin-top:7px}
.upload-previews{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.upload-preview{position:relative;width:72px;height:72px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);cursor:grab;transition:opacity .15s,box-shadow .15s}
.upload-preview img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.upload-preview .rm-img{position:absolute;top:2px;right:2px;width:17px;height:17px;background:rgba(198,40,40,.92);color:#fff;border-radius:50%;font-size:.68rem;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none}
.upload-preview.photo-dragging{opacity:.35;box-shadow:none}
.upload-preview.photo-drag-over{box-shadow:0 0 0 2px var(--gold);border-color:var(--gold)}
.upload-preview.photo-drag-ghost{opacity:.35}
.photo-main-badge{position:absolute;bottom:3px;left:3px;background:var(--gold);color:var(--burgundy-dark);font-size:.52rem;font-weight:700;padding:1px 4px;border-radius:2px;text-transform:uppercase;letter-spacing:.04em;pointer-events:none}
.photo-upload-spinner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:rgba(250,246,240,.85)}
.photo-upload-spinner::after{content:'';width:22px;height:22px;border:2.5px solid var(--gold);border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
.photo-upload-error{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#fde8e8;color:#c00;font-size:1.2rem;font-weight:700;cursor:help}
.upload-preview[data-type="video"]{background:#111;cursor:grab}
.upload-preview[data-type="video"] video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.video-thumb-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.9);pointer-events:none}
.variant-editor{border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:10px;background:var(--cream)}
.variant-editor input{width:100%;margin-bottom:8px;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:.87rem}
.variant-editor input:focus{outline:none;border-color:var(--gold)}

/* ─── Modal ──────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.52);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .2s}
.modal-overlay.active{opacity:1;pointer-events:all}
.modal{background:var(--white);border-radius:var(--radius-md);width:100%;max-width:720px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);transform:translateY(-20px);transition:transform .2s}
.modal-overlay.active .modal{transform:translateY(0)}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--white);z-index:1}
.modal-header h2{font-size:1.25rem}
.modal-close{width:30px;height:30px;border-radius:50%;background:var(--cream-dark);display:flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer;transition:var(--transition)}
.modal-close:hover{background:var(--border)}
.modal-body{padding:22px}
.modal-footer{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}

/* ─── Stats ──────────────────────────────────────── */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px;margin-bottom:28px}
.stat-card{background:var(--white);border-radius:var(--radius-md);padding:22px;border:1px solid var(--border);text-align:center}
.stat-value{font-size:2.1rem;font-weight:700;color:var(--burgundy);font-family:var(--font-heading)}
.stat-label{color:var(--text-medium);font-size:.87rem;margin-top:5px}
.chart-card{background:var(--white);border-radius:var(--radius-md);border:1px solid var(--border);padding:22px;margin-bottom:20px}
.chart-card h3{margin-bottom:18px;font-size:1.1rem}

/* ─── Admin Login ────────────────────────────────── */
.admin-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--burgundy-dark),var(--burgundy))}
.login-box{background:var(--white);border-radius:var(--radius-md);padding:46px;width:100%;max-width:400px;box-shadow:var(--shadow-lg);text-align:center}
.login-box .logo-icon{width:58px;height:58px;font-size:26px;margin:0 auto 14px}
.login-box h1{font-size:1.45rem;margin-bottom:5px}
.login-box .sub{color:var(--text-light);margin-bottom:28px;font-size:.88rem}
.login-error{background:#ffebee;color:#c62828;padding:9px 13px;border-radius:var(--radius);font-size:.88rem;margin-bottom:14px;display:none;text-align:left}

/* ─── Toast ──────────────────────────────────────── */
.toast{position:fixed;bottom:22px;right:22px;background:var(--text-dark);color:var(--white);padding:13px 18px;border-radius:var(--radius);font-size:.88rem;box-shadow:var(--shadow-lg);z-index:400;transform:translateY(100px);opacity:0;transition:all .3s ease;max-width:320px}
.toast.show{transform:translateY(0);opacity:1}
.toast.success{background:#2e7d32}
.toast.error{background:#c62828}
.toast.info{background:#1565c0}

/* ─── Alerts ─────────────────────────────────────── */
.alert{padding:11px 15px;border-radius:var(--radius);margin-bottom:14px;font-size:.88rem}
.alert-success{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}
.alert-error{background:#ffebee;color:#c62828;border:1px solid #ef9a9a}
.alert-info{background:#e3f2fd;color:#1565c0;border:1px solid #90caf9}

/* ─── Misc ───────────────────────────────────────── */
.empty-state{text-align:center;padding:56px 20px;color:var(--text-light)}
.empty-state-icon{font-size:3rem;margin-bottom:14px}
.empty-state h3{color:var(--text-medium);margin-bottom:8px}
.tag-list{display:flex;flex-wrap:wrap;gap:5px}
.tag{background:var(--cream-dark);color:var(--text-medium);padding:3px 9px;border-radius:20px;font-size:.78rem}
.text-center{text-align:center}
.mt-2{margin-top:8px}
.mt-3{margin-top:16px}
.mt-4{margin-top:24px}
.mb-2{margin-bottom:8px}

/* ═══════════════════════════════════════════════════
   RESPONSIVE & MOBILE ADAPTATION
   ═════════════════════════════════════════════════ */

@media (max-width: 1024px) {
  .catalog-layout { grid-template-columns: 220px 1fr; }
  .product-detail-grid { gap: 28px; }
}

@media (max-width: 768px) {
  /* Headers */
  h1 { font-size: 1.75rem; }
  h2 { font-size: 1.45rem; }

  /* Header compact */
  .header-inner { height: 60px; padding: 0 12px; }
  .logo-icon { width: 34px; height: 34px; font-size: 15px; }
  .logo-text { font-size: 1.1rem; }

  /* Hamburger menu */
  .hamburger { display: flex; }
  .header-search { display: none; }
  .header-search-mobile { display: flex; padding: 8px 0 12px; border-bottom: 1px solid rgba(250, 246, 240, 0.15); }

  /* Navigation menu */
  .site-nav { position: fixed; top: 60px; left: 0; right: 0; background: var(--burgundy-dark); flex-direction: column; align-items: stretch; padding: 12px 16px; transform: translateY(-110%); transition: transform 0.3s ease; z-index: 99; }
  .site-nav.open { transform: translateY(0); }
  .site-nav a { padding: 13px 0; border-bottom: 1px solid rgba(250, 246, 240, 0.1); }

  /* Hero section */
  .hero { padding: 44px 16px; }
  .hero h1 { font-size: 2rem; }
  .hero p { font-size: 1rem; }

  /* Catalog */
  .catalog-layout { grid-template-columns: 1fr; }
  .catalog-sidebar { position: static; }
  .products-grid { grid-template-columns: repeat(auto-fill, minmax(175px, 1fr)); gap: 16px; }

  /* Product detail */
  .product-detail-grid { grid-template-columns: 1fr; gap: 28px; }

  /* Cart & Checkout */
  .cart-grid, .checkout-grid { grid-template-columns: 1fr; }
  .cart-item { grid-template-columns: 70px 1fr; }
  .cart-item-actions { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; }

  /* Footer */
  .footer-grid { grid-template-columns: 1fr; gap: 22px; }
  .footer-bottom { flex-direction: column; text-align: center; }

  /* Forms */
  .form-row { grid-template-columns: 1fr; }
  .form-group input, .form-group select, .form-group textarea,
  .search-input-group input, .quantity-control input {
    min-height: 44px; padding: 12px 14px; font-size: 16px;
  }

  /* Buttons */
  .btn { min-height: 44px; padding: 12px 20px; font-size: 1rem; }

  /* Search */
  .search-input-group { width: 100%; }
  .search-input-group input { padding: 12px 40px 12px 14px; font-size: 1rem; }

  /* Sections */
  .hero, .categories-section, .featured-section, .etsy-about, .etsy-reviews-section {
    padding: 34px 16px;
  }

  /* Admin */
  .admin-header { height: 52px; padding: 0 14px; }
  .admin-layout { flex-direction: column; }
  .admin-sidebar { width: 100%; display: flex; overflow-x: auto; border-right: none; border-bottom: 1px solid var(--border); }
  .admin-nav-link { white-space: nowrap; padding: 13px 14px; border-left: none; border-bottom: 3px solid transparent; }
  .admin-nav-link.active { border-left: none; border-bottom-color: var(--burgundy); }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .admin-table { min-width: 640px; }

  /* Etsy page */
  .etsy-reviews-grid { column-count: 2; }
}

@media (max-width: 480px) {
  /* Container padding */
  .container { padding: 0 14px; }
  body { font-size: 16px; line-height: 1.7; overflow-x: hidden; }

  /* Headers */
  h1 { font-size: 1.5rem; }
  h2 { font-size: 1.25rem; }
  .hero-subtitle { font-size: 0.78rem; letter-spacing: 1px; }
  .hero h1 { font-size: 1.35rem; }

  /* Header very compact */
  .header-inner { height: 54px; padding: 0 12px; }
  .site-nav { top: 54px; }
  .logo-icon { width: 28px; height: 28px; font-size: 12px; }
  .logo-text { font-size: 0.95rem; }

  /* Promo banner */
  .promo-banner { padding: 7px 10px; }
  .promo-banner a { font-size: 0.74rem; line-height: 1.4; }

  /* Hero */
  .hero { padding: 36px 14px; }
  .hero p { font-size: 1rem; }

  /* Catalog - 1 column */
  .products-grid { grid-template-columns: 1fr; gap: 12px; }
  .product-card-body { padding: 11px; }
  .categories-grid { grid-template-columns: 1fr; }

  /* Buttons full width */
  .btn-lg { width: 100%; }
  .product-actions { flex-direction: column; }
  .product-actions .btn { width: 100%; }

  /* Cart */
  .cart-item { grid-template-columns: 58px 1fr; }

  /* Forms & inputs */
  .form-group input, .form-group select, .form-group textarea,
  .search-input-group input, .quantity-control input {
    min-height: 44px; width: 100%; padding: 12px 14px; font-size: 16px;
  }

  /* Quantity stepper */
  .quantity-control button { width: 42px; height: 42px; }
  .quantity-control input { height: 42px; }

  /* Gallery */
  .gallery-thumbs { grid-template-columns: repeat(4, 1fr); gap: 8px; }

  /* Sections compact */
  .categories-section, .featured-section, .etsy-about, .etsy-reviews-section,
  .related-section, .cart-page, .checkout-page, .product-detail {
    padding: 22px 14px 34px;
  }

  /* Stats */
  .stats-grid { grid-template-columns: 1fr; }

  /* Admin */
  .admin-header { height: 52px; padding: 0 12px; }
  .admin-content { padding: 16px; }
  .admin-page-header { flex-direction: column; align-items: flex-start; gap: 10px; }
  .login-box { padding: 30px 22px; }

  /* Etsy */
  .etsy-reviews-grid { column-count: 1; }
}

body > * { min-width: 0; }
h1, h2, h3, h4, h5, p { overflow-wrap: break-word; word-break: break-word; }

/* ─── Header auth slot (login/register vs profile/sign out) ─── */
.auth-nav-slot{display:flex;align-items:center;gap:20px}
.auth-nav-slot a{margin-right:0}
.auth-user-email{color:var(--gold);font-weight:600;font-size:.88rem;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:4px}
@media(max-width:768px){
  .auth-nav-slot{display:contents}
  .auth-user-email{display:block;padding:13px 0 3px;color:var(--gold);font-weight:600;font-size:.82rem;max-width:none;white-space:normal}
}

/* ─── Auth pages: register / login / reset-password ─── */
.auth-page{padding:54px 0 70px}
.auth-card{max-width:440px;margin:0 auto;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:38px 34px;box-shadow:var(--shadow)}
.auth-card .logo-icon{width:52px;height:52px;font-size:22px;margin:0 auto 16px}
.auth-card h1{font-size:1.5rem;text-align:center;margin-bottom:6px}
.auth-sub{text-align:center;color:var(--text-light);font-size:.88rem;margin-bottom:24px}
.auth-links{text-align:center;margin-top:10px;font-size:.88rem;color:var(--text-medium)}
.auth-links a{color:var(--burgundy);font-weight:600}
.auth-success{text-align:center;padding:6px 0}
.auth-success .icon{font-size:2.6rem;margin-bottom:12px}
.auth-success h2{font-size:1.3rem;margin-bottom:10px}
.auth-success p{color:var(--text-medium);font-size:.92rem;line-height:1.7;margin-bottom:6px}
@media(max-width:480px){
  .auth-card{padding:28px 20px}
}

/* ─── Profile page ─── */
.profile-page{padding:38px 0 60px}
.profile-grid{display:grid;grid-template-columns:1fr 380px;gap:28px;align-items:start}
.profile-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px;margin-bottom:20px}
.profile-card h2{font-size:1.2rem;margin-bottom:18px;padding-bottom:10px;border-bottom:2px solid var(--gold)}
.profile-avatar{width:64px;height:64px;border-radius:50%;background:var(--gold);color:var(--burgundy);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;margin:0 auto 12px}
.profile-email-row{text-align:center;margin-bottom:22px}
.profile-email-row .email{font-weight:600;color:var(--text-dark)}
.profile-email-row .verified-badge{display:inline-flex;align-items:center;gap:4px;font-size:.76rem;color:#2e7d32;background:#e8f5e9;padding:2px 9px;border-radius:20px;margin-top:6px}
.order-history-item{padding:14px 0;border-bottom:1px solid var(--border);font-size:.88rem}
.order-history-item:last-child{border-bottom:none}
.order-history-item .oh-top{display:flex;justify-content:space-between;margin-bottom:4px;font-weight:600;color:var(--text-dark)}
.order-history-item .oh-meta{color:var(--text-light);font-size:.82rem}
.order-history-empty{text-align:center;color:var(--text-light);padding:30px 10px;font-size:.9rem}
@media(max-width:768px){
  .profile-grid{grid-template-columns:1fr}
}