/*
Theme Name: Elvarra Gold House
Theme URI: https://elvarragoldhouse.com
Author: Elvarra Gold House
Author URI: https://elvarragoldhouse.com
Description: Premium custom WooCommerce theme for Elvarra Gold House — luxury gold & diamond jewelry. Built without page builders, following WordPress and WooCommerce coding standards. PHP 8+, Bootstrap 5 grid, vanilla JS, AJAX cart/wishlist, lazy loading, CSS variables, Core Web Vitals optimized.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
Tested up to: 6.6
WC requires at least: 8.0
WC tested up to: 9.0
Text Domain: elvarra
Domain Path: /languages
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* =========================================================
   1. DESIGN TOKENS  (extracted from ELVARRA logo artwork)
   ========================================================= */
:root{
  /* brand gold — metallic gradient stops taken from logo */
  --gold-bright:#F4C95D;
  --gold-mid:#D4A73C;
  --gold-deep:#A9791E;
  --gold-hover:#C6A02F;

  /* brand neutrals */
  --black-bg:#0A0A0A;
  --dark-gray:#1A1A1A;
  --dark-gray-2:#242424;
  --champagne:#F0E4C8;
  --white:#FFFFFF;

  /* semantic aliases */
  --color-primary:var(--gold-mid);
  --color-primary-grad:linear-gradient(180deg,var(--gold-bright) 0%,var(--gold-mid) 55%,var(--gold-deep) 100%);
  --color-bg:var(--black-bg);
  --color-surface:var(--dark-gray);
  --color-text:var(--champagne);
  --color-text-muted:#B9AE93;
  --color-border:rgba(212,167,60,.28);

  /* type */
  --font-display:'Playfair Display', Georgia, serif;
  --font-accent:'Cormorant Garamond', Georgia, serif;
  --font-body:'Inter', -apple-system, sans-serif;

  /* layout */
  --container-max:1320px;
  --radius-sm:2px;
  --radius-md:6px;
  --gap-section:110px;
  --gap-section-m:64px;

  /* motion */
  --ease:cubic-bezier(.22,.61,.36,1);
  --dur-fast:.25s;
  --dur-med:.5s;
  --dur-slow:.9s;
}

/* =========================================================
   2. RESET / BASE
   ========================================================= */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;transition:color var(--dur-fast) var(--ease);}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4,h5{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.2;
  margin:0 0 20px;
  color:var(--white);
}
h1{font-size:clamp(2.4rem,4.5vw,4.2rem);}
h2{font-size:clamp(1.9rem,3vw,2.8rem);}
h3{font-size:clamp(1.3rem,2vw,1.7rem);}
p{margin:0 0 16px;color:var(--color-text-muted);}
.container{max-width:var(--container-max);margin:0 auto;padding:0 24px;}
.section{padding:var(--gap-section) 0;}
@media(max-width:782px){.section{padding:var(--gap-section-m) 0;}}
.eyebrow{
  display:inline-block;font-family:var(--font-accent);font-style:italic;
  font-size:1.05rem;color:var(--gold-mid);letter-spacing:.04em;margin-bottom:10px;
}
.section-head{text-align:center;max-width:640px;margin:0 auto 56px;}
.section-head p{margin-top:14px;}

/* visible focus state — accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--gold-mid);outline-offset:3px;
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
}

/* =========================================================
   3. BUTTONS
   ========================================================= */
.btn{
  position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;
  gap:8px;padding:16px 38px;font-family:var(--font-body);font-weight:600;font-size:.82rem;
  letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--gold-mid);border-radius:var(--radius-sm);
  cursor:pointer;transition:all var(--dur-fast) var(--ease);background:transparent;color:var(--gold-mid);
}
.btn-gold{background:var(--color-primary-grad);color:var(--black-bg);border-color:transparent;}
.btn-gold:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 10px 30px -8px rgba(212,167,60,.55);}
.btn-outline:hover{background:var(--gold-mid);color:var(--black-bg);}
.btn .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.35);transform:scale(0);animation:ripple .6s var(--ease);pointer-events:none;}
@keyframes ripple{to{transform:scale(4);opacity:0;}}

/* =========================================================
   4. ANNOUNCEMENT BAR + HEADER
   ========================================================= */
.announcement-bar{background:var(--black-bg);border-bottom:1px solid var(--color-border);text-align:center;
  padding:9px 16px;font-size:.76rem;line-height:1.6;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-mid);}

.site-header{position:sticky;top:0;z-index:999;background:rgba(10,10,10,.92);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--color-border);transition:padding var(--dur-fast) var(--ease);}
.site-header.is-scrolled{box-shadow:0 8px 30px -12px rgba(0,0,0,.6);}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;max-width:var(--container-max);margin:0 auto;gap:24px;}
.site-logo img{height:52px;width:auto;transition:height var(--dur-fast) var(--ease);}
.site-header.is-scrolled .site-logo img{height:40px;}

/* Desktop inline nav — plain horizontal list, no fixed positioning */
.main-nav--desktop{display:flex;gap:34px;}
.main-nav--desktop > ul{display:flex;gap:34px;}
.main-nav a{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--champagne);
  padding:6px 0;position:relative;}
.main-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold-mid);transition:width var(--dur-fast) var(--ease);}
.main-nav a:hover::after,.main-nav li.current-menu-item > a::after{width:100%;}
.main-nav li{position:relative;}
.main-nav--desktop .sub-menu{position:absolute;top:100%;left:0;min-width:220px;background:var(--dark-gray);
  border:1px solid var(--color-border);padding:12px 0;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:all var(--dur-fast) var(--ease);}
.main-nav--desktop li:hover > .sub-menu{opacity:1;visibility:visible;transform:translateY(0);}
.main-nav--desktop .sub-menu a{display:block;padding:9px 22px;text-transform:none;letter-spacing:.02em;}
.main-nav--desktop .sub-menu a:hover{color:var(--gold-mid);}

/* Mobile/tablet off-canvas nav — sits outside <header> in the DOM (see
   header.php) so position:fixed anchors to the real viewport. */
.main-nav--mobile{display:none;position:fixed;top:0;right:0;bottom:0;width:82%;max-width:360px;
  background:var(--black-bg);z-index:1200;flex-direction:column;padding:100px 30px 40px;
  border-left:1px solid var(--color-border);transform:translateX(100%);
  transition:transform var(--dur-med) var(--ease);overflow-y:auto;box-shadow:-20px 0 60px -20px rgba(0,0,0,.7);}
.main-nav--mobile.is-open{display:flex;transform:translateX(0);}
.main-nav--mobile ul{display:flex;flex-direction:column;gap:6px;width:100%;}
.main-nav--mobile a{display:block;padding:12px 0;font-size:.95rem;}
.main-nav--mobile .sub-menu{position:static;opacity:1;visibility:visible;transform:none;display:none;
  border:0;background:transparent;padding-left:14px;}
.main-nav--mobile li.open > .sub-menu{display:block;}
.nav-close{position:absolute;top:24px;right:24px;background:none;border:1px solid var(--color-border);
  border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  color:var(--champagne);cursor:pointer;transition:border-color var(--dur-fast),color var(--dur-fast);}
.nav-close:hover{border-color:var(--gold-mid);color:var(--gold-mid);}
.nav-call-now{display:inline-flex;margin-top:28px;justify-content:center;}

.header-actions{display:flex;align-items:center;gap:20px;}
.header-actions a{position:relative;color:var(--champagne);transition:color var(--dur-fast);flex-shrink:0;}
.header-actions a:hover{color:var(--gold-mid);}
.count-badge{position:absolute;top:-8px;right:-10px;background:var(--gold-mid);color:var(--black-bg);
  font-size:.65rem;font-weight:700;min-width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.call-now{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--gold-mid);padding:9px 18px;
  font-size:.72rem;letter-spacing:.1em;border-radius:var(--radius-sm);white-space:nowrap;}
.call-now-icon{flex-shrink:0;}
.menu-toggle{display:none;background:none;border:0;color:var(--champagne);font-size:1.5rem;cursor:pointer;flex-shrink:0;}

/* ---- Tablet (768–1024): desktop nav gives way to the drawer, but header
   keeps generous spacing rather than jumping straight to mobile sizing ---- */
@media(max-width:1024px){
  .main-nav--desktop{display:none;}
  .main-nav--mobile{display:none;} /* re-shown via .is-open above */
  .menu-toggle{display:block;}
  .header-inner{padding:16px 20px;gap:16px;}
}
@media(min-width:769px) and (max-width:1024px){
  .call-now-text{display:inline;}
  .header-actions{gap:16px;}
}

/* ---- Mobile (≤768): icon-only phone pill, tighter header rhythm ---- */
@media(max-width:768px){
  .announcement-bar{font-size:.62rem;letter-spacing:.06em;padding:8px 14px;}
  .header-inner{padding:14px 16px;gap:10px;}
  .site-logo img{height:38px;}
  .header-actions{gap:12px;}
  .header-actions svg{width:18px;height:18px;}
  .call-now{padding:0;width:38px;height:38px;justify-content:center;border-radius:50%;}
  .call-now-text{display:none;}
  .nav-call-now{width:auto;height:auto;padding:14px 24px;border-radius:var(--radius-sm);}
  .nav-call-now .call-now-text{display:inline;}
}
@media(max-width:380px){
  .header-actions{gap:8px;}
  .announcement-bar{font-size:.58rem;}
}

/* Mini cart drawer */
.mini-cart-drawer{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:420px;background:var(--dark-gray);
  z-index:1300;transform:translateX(100%);transition:transform var(--dur-med) var(--ease);
  border-left:1px solid var(--color-border);display:flex;flex-direction:column;}
.mini-cart-drawer.is-open{transform:translateX(0);}
.drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1250;opacity:0;visibility:hidden;transition:opacity var(--dur-fast);}
.drawer-overlay.is-open{opacity:1;visibility:visible;}

/* =========================================================
   5. HERO
   ========================================================= */
.hero{position:relative;min-height:92vh;display:flex;align-items:center;overflow:hidden;background:var(--black-bg);}
.hero-slide{position:absolute;inset:0;opacity:0;z-index:1;transition:opacity 1.1s var(--ease);}
.hero-slide.is-active{opacity:1;z-index:2;}
.hero-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.55;}
.hero-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.35),rgba(10,10,10,.92));}
.hero-content{position:relative;z-index:2;max-width:760px;margin:0 auto;padding:0 24px;text-align:center;width:100%;}
.hero-content .eyebrow{font-size:1.2rem;}
.hero-content h1{background:var(--color-primary-grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero-cta{display:flex;gap:18px;justify-content:center;margin-top:34px;flex-wrap:wrap;}
.hero-dots{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:3;}
.hero-dots button{width:9px;height:9px;border-radius:50%;border:1px solid var(--gold-mid);background:transparent;cursor:pointer;padding:0;}
.hero-dots button.is-active{background:var(--gold-mid);}

@media(max-width:1024px){
  .hero{min-height:80vh;}
}
@media(max-width:600px){
  .hero{min-height:640px;padding:100px 0 70px;}
  .hero-content{padding:0 20px;}
  .hero-cta{flex-direction:column;align-items:stretch;gap:12px;}
  .hero-cta .btn{width:100%;}
  .hero-dots{bottom:20px;}
}

/* fade-up reveal (JS toggles .is-visible via IntersectionObserver) */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.is-visible{opacity:1;transform:translateY(0);}

/* =========================================================
   6. GRIDS — categories / products / collections
   ========================================================= */
.grid{display:grid;gap:28px;}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:1024px){.grid-4{grid-template-columns:repeat(2,1fr);}.grid-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr;}}

.cat-card{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:var(--radius-md);}
.cat-card img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease);}
.cat-card:hover img{transform:scale(1.08);}
.cat-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,10,10,.9));}
.cat-card-label{position:absolute;left:0;right:0;bottom:0;padding:22px;z-index:2;text-align:center;}
.cat-card-label h3{margin:0;color:var(--white);}
.cat-card-label span{font-size:.75rem;letter-spacing:.12em;color:var(--gold-mid);text-transform:uppercase;}

/* product card (also used to style WooCommerce loop) */
.product-card,ul.products li.product{
  background:var(--dark-gray);border:1px solid var(--color-border);border-radius:var(--radius-md);
  overflow:hidden;transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);
  position:relative;
}
.product-card:hover,ul.products li.product:hover{transform:translateY(-6px);box-shadow:0 20px 40px -20px rgba(0,0,0,.6);}
.product-card .thumb,ul.products li.product a img{aspect-ratio:1/1;object-fit:cover;width:100%;}
.product-card .thumb-wrap{position:relative;overflow:hidden;}
.product-card .thumb-wrap img{transition:transform var(--dur-slow) var(--ease);}
.product-card:hover .thumb-wrap img{transform:scale(1.06);}
.product-card .badge{position:absolute;top:14px;left:14px;background:var(--color-primary-grad);color:var(--black-bg);
  font-size:.65rem;font-weight:700;letter-spacing:.08em;padding:5px 10px;border-radius:var(--radius-sm);z-index:2;}
.product-card .quick-actions{position:absolute;top:14px;right:14px;display:flex;flex-direction:column;gap:8px;
  opacity:0;transform:translateX(10px);transition:all var(--dur-fast) var(--ease);z-index:2;}
.product-card:hover .quick-actions{opacity:1;transform:translateX(0);}
.product-card .quick-actions button{width:38px;height:38px;border-radius:50%;background:rgba(10,10,10,.75);
  border:1px solid var(--color-border);color:var(--champagne);cursor:pointer;}
.product-card .quick-actions button:hover{background:var(--gold-mid);color:var(--black-bg);}
.product-card .info{padding:18px 20px 22px;text-align:center;}
.product-card .cat{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-mid);}
.product-card h3{font-size:1.05rem;margin:6px 0;}
.product-card .price{color:var(--white);font-weight:600;font-family:var(--font-body);}
.product-card .price del{color:var(--color-text-muted);margin-right:8px;}
.product-card .stars{color:var(--gold-mid);font-size:.8rem;margin-bottom:6px;}

/* =========================================================
   7. WHY CHOOSE / ABOUT / BRAND PROMISE
   ========================================================= */
.icon-feature{text-align:center;padding:30px 20px;}
.icon-feature .icon{width:60px;height:60px;margin:0 auto 18px;border:1px solid var(--gold-mid);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--gold-mid);}
.about-split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.about-split img{border-radius:var(--radius-md);}
@media(max-width:900px){.about-split{grid-template-columns:1fr;}}

/* =========================================================
   8. REVIEWS
   ========================================================= */
.review-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;}
.review-track::-webkit-scrollbar{height:4px;}
.review-track::-webkit-scrollbar-thumb{background:var(--gold-mid);}
.review-card{flex:0 0 340px;scroll-snap-align:start;background:var(--dark-gray);border:1px solid var(--color-border);
  border-radius:var(--radius-md);padding:28px;transition:transform var(--dur-fast) var(--ease);}
.review-card:hover{transform:translateY(-4px);border-color:var(--gold-mid);}
.review-stars{color:var(--gold-mid);margin-bottom:12px;}
.review-verified{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;color:var(--gold-mid);
  text-transform:uppercase;letter-spacing:.08em;margin-top:14px;}
.review-author{display:flex;align-items:center;gap:12px;margin-top:16px;}
.review-author img{width:40px;height:40px;border-radius:50%;object-fit:cover;}

/* =========================================================
   9. BLOG CARDS
   ========================================================= */
.blog-card{background:var(--dark-gray);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;}
.blog-card .thumb{aspect-ratio:16/10;overflow:hidden;}
.blog-card .thumb img{transition:transform var(--dur-slow) var(--ease);}
.blog-card:hover .thumb img{transform:scale(1.08);}
.blog-card .body{padding:22px;}
.blog-card .meta{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--gold-mid);
  display:flex;gap:14px;margin-bottom:10px;}
.blog-card h3{font-size:1.15rem;}
.blog-card .read-more{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:.78rem;
  text-transform:uppercase;letter-spacing:.08em;color:var(--gold-mid);}
.blog-card .read-more svg{transition:transform var(--dur-fast) var(--ease);}
.blog-card:hover .read-more svg{transform:translateX(5px);}

/* =========================================================
   10. INSTAGRAM / NEWSLETTER / CTA
   ========================================================= */
.insta-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;}
.insta-grid a{position:relative;aspect-ratio:1/1;overflow:hidden;display:block;}
.insta-grid img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-fast) var(--ease);}
.insta-grid a:hover img{transform:scale(1.1);}
@media(max-width:782px){.insta-grid{grid-template-columns:repeat(3,1fr);}}

.newsletter{background:var(--dark-gray);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);
  text-align:center;padding:70px 0;}
.newsletter form{display:flex;max-width:480px;margin:26px auto 0;gap:0;border:1px solid var(--gold-mid);border-radius:var(--radius-sm);overflow:hidden;}
.newsletter input[type=email]{flex:1;background:transparent;border:0;padding:16px 18px;color:var(--white);font-family:var(--font-body);}
.newsletter input[type=email]:focus{outline:none;}
.newsletter button{border:0;background:var(--color-primary-grad);padding:0 26px;font-weight:600;letter-spacing:.08em;cursor:pointer;}

.cta-banner{position:relative;padding:120px 0;text-align:center;background:var(--black-bg);overflow:hidden;}
.cta-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3;}
.cta-banner .container{position:relative;z-index:2;}

/* =========================================================
   11. FAQ (accordion)
   ========================================================= */
.faq-item{border-bottom:1px solid var(--color-border);}
.faq-q{width:100%;background:none;border:0;color:var(--white);font-family:var(--font-display);font-size:1.1rem;
  text-align:left;padding:22px 0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;}
.faq-q .plus{transition:transform var(--dur-fast) var(--ease);color:var(--gold-mid);}
.faq-item.is-open .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height var(--dur-med) var(--ease);}
.faq-item.is-open .faq-a{max-height:260px;}
.faq-a p{padding:0 0 22px;}

/* =========================================================
   12. FOOTER
   ========================================================= */
.site-footer{background:var(--black-bg);border-top:1px solid var(--color-border);padding:80px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:60px;}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr;}}
.site-footer h4{color:var(--gold-mid);font-family:var(--font-body);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:20px;}
.site-footer ul li{margin-bottom:11px;}
.site-footer ul a{color:var(--color-text-muted);font-size:.9rem;}
.site-footer ul a:hover{color:var(--gold-mid);}
.footer-logo img{height:46px;margin-bottom:18px;}
.social-icons{display:flex;gap:12px;margin-top:20px;}
.social-icons a{width:38px;height:38px;border:1px solid var(--color-border);border-radius:50%;display:flex;
  align-items:center;justify-content:center;}
.social-icons a:hover{border-color:var(--gold-mid);color:var(--gold-mid);}
.footer-bottom{border-top:1px solid var(--color-border);padding:22px 0;text-align:center;font-size:.8rem;color:var(--color-text-muted);}
.payment-icons{display:flex;gap:10px;justify-content:center;margin-top:12px;opacity:.7;}

/* =========================================================
   13. SHOP / ARCHIVE
   ========================================================= */
.shop-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px;flex-wrap:wrap;gap:16px;}
.shop-layout{display:grid;grid-template-columns:280px 1fr;gap:40px;}
@media(max-width:900px){.shop-layout{grid-template-columns:1fr;}}
.filter-widget{border-bottom:1px solid var(--color-border);padding-bottom:24px;margin-bottom:24px;}
.filter-widget h4{font-family:var(--font-body);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-mid);margin-bottom:16px;}
.price-slider{width:100%;accent-color:var(--gold-mid);}
.woocommerce-pagination ul{display:flex;gap:8px;justify-content:center;margin-top:50px;}
.woocommerce-pagination a,.woocommerce-pagination span{display:flex;width:38px;height:38px;align-items:center;
  justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);}
.woocommerce-pagination .current{background:var(--gold-mid);color:var(--black-bg);border-color:var(--gold-mid);}

/* =========================================================
   14. SINGLE PRODUCT
   ========================================================= */
.single-product-wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
@media(max-width:900px){.single-product-wrap{grid-template-columns:1fr;}}
.product-gallery-main{border-radius:var(--radius-md);overflow:hidden;cursor:zoom-in;position:relative;}
.product-gallery-thumbs{display:flex;gap:12px;margin-top:14px;}
.product-gallery-thumbs img{width:78px;height:78px;object-fit:cover;border-radius:var(--radius-sm);
  border:1px solid var(--color-border);cursor:pointer;opacity:.6;}
.product-gallery-thumbs img.is-active{opacity:1;border-color:var(--gold-mid);}
.product-summary .price{font-size:1.6rem;font-family:var(--font-display);color:var(--gold-mid);margin:14px 0;}
.sticky-atc{position:sticky;bottom:0;background:var(--dark-gray);border-top:1px solid var(--color-border);
  padding:16px 24px;display:none;align-items:center;justify-content:space-between;gap:20px;z-index:80;}
.sticky-atc.is-visible{display:flex;}
.product-tabs .tab-nav{display:flex;gap:30px;border-bottom:1px solid var(--color-border);margin-bottom:26px;}
.product-tabs .tab-nav button{background:none;border:0;color:var(--color-text-muted);padding:14px 0;cursor:pointer;
  font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;border-bottom:2px solid transparent;}
.product-tabs .tab-nav button.is-active{color:var(--gold-mid);border-color:var(--gold-mid);}

/* =========================================================
   15. CART / CHECKOUT
   ========================================================= */
.checkout-steps{display:flex;justify-content:center;gap:0;margin-bottom:50px;}
.checkout-steps .step{display:flex;align-items:center;gap:10px;color:var(--color-text-muted);font-size:.82rem;
  text-transform:uppercase;letter-spacing:.06em;}
.checkout-steps .step .num{width:30px;height:30px;border-radius:50%;border:1px solid var(--color-border);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);}
.checkout-steps .step.is-active{color:var(--white);}
.checkout-steps .step.is-active .num{background:var(--gold-mid);border-color:var(--gold-mid);color:var(--black-bg);}
.checkout-steps .divider{width:60px;height:1px;background:var(--color-border);margin:0 14px;align-self:center;}
.trust-badges{display:flex;gap:22px;flex-wrap:wrap;margin-top:20px;opacity:.75;}

table.shop_table,form.woocommerce-checkout input,form.woocommerce-checkout select,form.woocommerce-checkout textarea,
.woocommerce-cart table.cart td, .woocommerce-cart table.cart input{
  background:var(--dark-gray)!important;border:1px solid var(--color-border)!important;color:var(--champagne)!important;
  border-radius:var(--radius-sm);
}
input[type=submit],.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button{
  font-family:var(--font-body)!important;background:var(--color-primary-grad)!important;color:var(--black-bg)!important;
  border:0!important;border-radius:var(--radius-sm)!important;padding:14px 30px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;font-size:.78rem!important;
}

/* =========================================================
   16. 404 / MISC
   ========================================================= */
.error-404{text-align:center;padding:140px 24px;}
.error-404 .code{font-family:var(--font-display);font-size:8rem;background:var(--color-primary-grad);
  -webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;}

/* fade / slide / scale utility animations referenced by data-animate */
[data-animate="fade-up"]{opacity:0;transform:translateY(30px);transition:all .8s var(--ease);}
[data-animate="slide"]{opacity:0;transform:translateX(-40px);transition:all .8s var(--ease);}
[data-animate="scale"]{opacity:0;transform:scale(.9);transition:all .7s var(--ease);}
[data-animate].is-visible{opacity:1;transform:none;}

/* skip link */
.skip-link{position:absolute;left:-999px;top:0;background:var(--gold-mid);color:var(--black-bg);padding:12px 20px;z-index:2000;}
.skip-link:focus{left:10px;top:10px;}
