/*
Theme Name: CaliforniaAlchemy
Theme URI: https://californialchemy.com
Author: CaliforniaAlchemy
Author URI: https://californialchemy.com
Description: Premium, California-inspired WooCommerce theme for CaliforniaAlchemy — small-batch cannabis goods. Companion plugin: CaliforniaAlchemy Core.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 7.0
Text Domain: californiaalchemy
Tags: e-commerce, custom-menu, custom-logo, featured-images, translation-ready
*/

/* ==========================================================================
   CaliforniaAlchemy — Design System
   ========================================================================== */

:root{
  --ca-ink:            #1E1B16;
  --ca-ink-soft:       #3A342C;
  --ca-cream:          #FAF6EC;
  --ca-cream-dim:      #F1EADA;
  --ca-paper:          #FFFFFF;
  --ca-gold:           #C7912F;
  --ca-gold-deep:      #A8741E;
  --ca-gold-light:     #E8C67C;
  --ca-sage:           #3F5D4E;
  --ca-sage-deep:      #2C4438;
  --ca-sage-light:     #C7D6C9;
  --ca-clay:           #BE5B3B;
  --ca-clay-deep:      #9A4429;
  --ca-sand:           #E7DBC3;
  --ca-line:           #E4DBC8;
  --ca-error:          #B23B2E;
  --ca-success:        #3F5D4E;

  --bg:                var(--ca-cream);
  --bg-elevated:       var(--ca-paper);
  --bg-dim:            var(--ca-cream-dim);
  --text:              var(--ca-ink);
  --text-muted:        #6B6355;
  --text-on-dark:      #F5EFE0;
  --border:            var(--ca-line);
  --accent:            var(--ca-gold);
  --accent-deep:       var(--ca-gold-deep);

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  --r-sm: 4px; --r-md: 8px; --r-lg: 16px; --r-pill: 999px;
  --shadow-sm: 0 1px 2px rgba(30,27,22,.06), 0 1px 1px rgba(30,27,22,.04);
  --shadow-md: 0 6px 20px rgba(30,27,22,.10);
  --shadow-lg: 0 20px 48px rgba(30,27,22,.16);
  --ease: cubic-bezier(.4,0,.2,1);
  --container: 1320px;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#16140F; --bg-elevated:#201C16; --bg-dim:#1B1812; --text:#F1EADA; --text-muted:#B5AA92; --border:#34301F;
  }
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{ margin:0; background:var(--bg); color:var(--text); font-family:var(--font-body); font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased; }
img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,h5,h6{ font-family:var(--font-display); margin:0; font-weight:600; letter-spacing:-.01em; }
p{ margin:0 0 1em; }
input,select,textarea{ font:inherit; color:inherit; }
.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.container{ max-width:var(--container); margin-inline:auto; padding-inline:24px; }
@media (max-width:1024px){ .container{ padding-inline:20px; } }
@media (max-width:480px){ .container{ padding-inline:16px; } }

.eyebrow{ font-family:var(--font-body); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-deep); }
.h-display{ font-size:clamp(2.4rem,5vw,4.2rem); line-height:1.04; }
.h1{ font-size:clamp(2rem,4vw,3rem); line-height:1.08; }
.h2{ font-size:clamp(1.6rem,3vw,2.25rem); line-height:1.14; }
.h3{ font-size:1.35rem; line-height:1.24; }
.h4{ font-size:1.1rem; line-height:1.3; }
.lede{ font-size:1.15rem; color:var(--text-muted); line-height:1.6; }
.muted{ color:var(--text-muted); }

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5em; padding:.9rem 1.6rem; border-radius:var(--r-pill); border:1px solid transparent; font-weight:700; font-size:.92rem; letter-spacing:.01em; cursor:pointer; transition:transform .15s var(--ease), background .15s var(--ease), box-shadow .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease); white-space:nowrap; }
.btn:active{ transform:scale(.98); }
.btn-primary{ background:var(--ca-ink); color:var(--ca-cream); }
.btn-primary:hover{ background:var(--ca-gold-deep); color:#fff; }
.btn-gold{ background:var(--accent); color:var(--ca-ink); }
.btn-gold:hover{ background:var(--ca-gold-deep); color:#fff; }
.btn-outline{ background:transparent; color:var(--text); border-color:var(--ca-ink); }
.btn-outline:hover{ background:var(--ca-ink); color:var(--ca-cream); }
.btn-ghost{ background:transparent; color:var(--text); }
.btn-ghost:hover{ background:var(--bg-dim); }
.btn-sm{ padding:.55rem 1.1rem; font-size:.82rem; }
.btn-lg{ padding:1.1rem 2.1rem; font-size:1rem; }
.btn-block{ width:100%; }
.btn-icon{ width:44px; height:44px; padding:0; border-radius:50%; background:transparent; border:none; }
.btn-icon:hover{ background:var(--bg-dim); }
.btn[disabled]{ opacity:.45; cursor:not-allowed; }

.badge{ display:inline-flex; align-items:center; gap:.35em; padding:.3em .7em; border-radius:var(--r-pill); font-size:.68rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.badge-sale{ background:var(--ca-clay); color:#fff; }
.badge-new{ background:var(--ca-sage); color:#fff; }
.badge-bestseller{ background:var(--accent); color:var(--ca-ink); }
.badge-outline{ background:transparent; border:1px solid var(--border); color:var(--text-muted); }
.badge-soldout{ background:var(--ca-ink-soft); color:var(--ca-cream); }

/* Announcement + header */
.announcement{ background:var(--ca-ink); color:var(--text-on-dark); font-size:.82rem; font-weight:600; text-align:center; padding:.55rem 1rem; }
.announcement .container{ display:flex; align-items:center; justify-content:center; gap:.6rem; }
.announcement a{ text-decoration:underline; text-underline-offset:3px; }
.site-header{ position:sticky; top:0; z-index:60; background:var(--bg); border-bottom:1px solid var(--border); }
.header-inner{ padding-block:14px; }
.header-inner .container{ display:flex; align-items:center; gap:28px; width:100%; }
.logo{ display:flex; align-items:center; gap:.6rem; flex-shrink:0; }
.logo-mark{ width:38px; height:38px; }
.logo-word{ font-family:var(--font-display); font-weight:600; font-size:1.3rem; line-height:1; letter-spacing:-.01em; }
.logo-word .thin{ font-weight:400; font-style:italic; }
.custom-logo{ max-height:40px; width:auto; }

.main-nav{ display:flex; align-items:center; gap:2px; flex:1; }
.main-nav > li{ position:relative; }
.main-nav > li > a{ display:flex; align-items:center; gap:.3em; padding:10px 14px; font-weight:600; font-size:.92rem; border-radius:var(--r-md); }
.main-nav > li > a:hover{ background:var(--bg-dim); }
.main-nav li.menu-item-has-children > a::after{ content:""; display:inline-block; width:8px; height:8px; border-right:1.4px solid currentColor; border-bottom:1.4px solid currentColor; transform:rotate(45deg); margin-left:4px; opacity:.6; }
.mega-menu{ position:absolute; top:100%; left:0; margin-top:6px; background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); padding:24px; display:none; min-width:420px; grid-auto-flow:column; gap:28px; }
.main-nav > li:hover .mega-menu, .main-nav > li:focus-within .mega-menu{ display:grid; }
.mega-menu > .mega-col{ display:flex; flex-direction:column; gap:6px; min-width:170px; }
.mega-menu .mega-col-title{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted); margin-bottom:6px; font-weight:700; }
.mega-menu a{ display:block; padding:6px 0; font-size:.9rem; }
.mega-menu a:hover{ color:var(--accent-deep); }

.header-actions{ display:flex; align-items:center; gap:4px; flex-shrink:0; }
.header-search{ display:flex; align-items:center; gap:.5rem; background:var(--bg-dim); border:1px solid var(--border); border-radius:var(--r-pill); padding:8px 16px; width:280px; color:var(--text-muted); cursor:pointer; }
.header-search input{ background:none; border:none; outline:none; width:100%; color:var(--text); }
.cart-count{ position:absolute; top:2px; right:2px; background:var(--ca-clay); color:#fff; font-size:.62rem; font-weight:800; width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.header-actions .btn-icon{ position:relative; }
.mobile-nav-toggle, .mobile-search-toggle{ display:none; }
@media (max-width:1024px){ .header-search{ width:200px; } .mega-menu{ min-width:380px; } }
@media (max-width:860px){ .main-nav{ display:none; } .header-search{ display:none; } .mobile-nav-toggle, .mobile-search-toggle{ display:inline-flex; } }

/* Mobile drawer / cart drawer / search overlay / age gate — shared with prototype */
.mobile-drawer{ position:fixed; inset:0; z-index:100; visibility:hidden; }
.mobile-drawer[data-open="true"]{ visibility:visible; }
.drawer-scrim{ position:absolute; inset:0; background:rgba(20,17,12,.5); opacity:0; transition:opacity .25s var(--ease); }
.mobile-drawer[data-open="true"] .drawer-scrim{ opacity:1; }
.drawer-panel{ position:absolute; top:0; left:0; bottom:0; width:min(88vw,360px); background:var(--bg-elevated); transform:translateX(-100%); transition:transform .28s var(--ease); overflow-y:auto; box-shadow:var(--shadow-lg); }
.mobile-drawer[data-open="true"] .drawer-panel{ transform:translateX(0); }
.drawer-panel.from-right{ left:auto; right:0; transform:translateX(100%); }
.mobile-drawer[data-open="true"] .drawer-panel.from-right{ transform:translateX(0); }
.drawer-head{ display:flex; align-items:center; justify-content:space-between; padding:18px; border-bottom:1px solid var(--border); }
.drawer-body{ padding:8px 8px 24px; }
.drawer-link{ display:flex; align-items:center; justify-content:space-between; padding:14px 12px; font-weight:600; border-radius:var(--r-md); }
.drawer-link:hover{ background:var(--bg-dim); }
.drawer-sub{ padding-left:12px; display:none; }
.drawer-sub[data-open="true"]{ display:block; }
.drawer-sub a{ display:block; padding:10px 12px; font-size:.9rem; color:var(--text-muted); }
.drawer-foot{ padding:16px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:10px; }

.search-overlay{ position:fixed; inset:0; z-index:110; background:rgba(20,17,12,.5); display:none; }
.search-overlay[data-open="true"]{ display:block; }
.search-panel{ background:var(--bg-elevated); padding:28px 0 32px; box-shadow:var(--shadow-lg); }
.search-input-row{ display:flex; align-items:center; gap:14px; border-bottom:2px solid var(--ca-ink); padding-bottom:14px; }
.search-input-row input{ flex:1; border:none; outline:none; background:none; font-family:var(--font-display); font-size:1.6rem; color:var(--text); }
.search-suggest-label{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted); margin:22px 0 10px; }
.search-quick-links{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ padding:7px 14px; border-radius:var(--r-pill); border:1px solid var(--border); font-size:.85rem; font-weight:600; }
.chip:hover{ background:var(--bg-dim); }
.search-results-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:18px; }
.search-result-card{ display:flex; gap:12px; padding:10px; border-radius:var(--r-md); }
.search-result-card:hover{ background:var(--bg-dim); }
.search-result-card img{ width:56px; height:56px; border-radius:var(--r-sm); background:var(--ca-sand); flex-shrink:0; object-fit:cover; }
.search-empty{ text-align:center; padding:40px 0; color:var(--text-muted); }
@media (max-width:768px){ .search-results-grid{ grid-template-columns:repeat(2,1fr); } .search-input-row input{ font-size:1.2rem; } }

.age-gate-overlay{ position:fixed; inset:0; z-index:200; background:var(--ca-ink); display:flex; align-items:center; justify-content:center; padding:20px; }
.age-gate-overlay::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 20% 20%, rgba(199,145,47,.18), transparent 50%), radial-gradient(circle at 80% 80%, rgba(63,93,78,.25), transparent 55%); }
.age-gate-card{ position:relative; max-width:440px; width:100%; background:var(--ca-cream); border-radius:var(--r-lg); padding:44px 36px; text-align:center; box-shadow:var(--shadow-lg); }
.age-gate-card .logo{ justify-content:center; margin-bottom:22px; }
.age-gate-card p{ color:var(--text-muted); margin:14px 0 26px; }
.age-gate-btn-row{ display:flex; gap:12px; }
.age-gate-remember{ display:flex; align-items:center; justify-content:center; gap:8px; margin-top:20px; font-size:.82rem; color:var(--text-muted); }
.age-gate-fine{ font-size:.72rem; color:var(--text-muted); margin-top:24px; line-height:1.5; }
@media (max-width:480px){ .age-gate-card{ padding:32px 22px; } .age-gate-btn-row{ flex-direction:column; } }

/* Sections / hero / categories / products — condensed from prototype */
.section{ padding-block:68px; } .section-tight{ padding-block:40px; } .section-alt{ background:var(--bg-dim); }
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:32px; }
@media (max-width:640px){ .section{ padding-block:44px; } .section-head{ flex-direction:column; align-items:flex-start; gap:12px; } }

.hero{ position:relative; overflow:hidden; background:linear-gradient(135deg,var(--ca-sage-deep),var(--ca-ink) 75%); color:var(--text-on-dark); }
.hero-inner{ display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:40px; padding-block:76px; }
.hero-copy .eyebrow{ color:var(--ca-gold-light); }
.hero-copy .h-display{ color:#fff; margin:14px 0 18px; }
.hero-copy p{ color:#E9E2CE; max-width:46ch; }
.hero-cta-row{ display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }
.hero-media{ position:relative; aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden; background:var(--ca-sand); }
.hero-media img{ width:100%; height:100%; object-fit:cover; }
.hero-badge-float{ position:absolute; bottom:20px; left:20px; background:rgba(250,246,236,.95); color:var(--ca-ink); border-radius:var(--r-md); padding:14px 16px; box-shadow:var(--shadow-md); display:flex; align-items:center; gap:10px; }
@media (max-width:900px){ .hero-inner{ grid-template-columns:1fr; padding-block:44px; text-align:center; } .hero-copy p{ margin-inline:auto; } .hero-cta-row{ justify-content:center; } .hero-media{ aspect-ratio:16/10; } }

.category-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.category-card{ position:relative; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:3/3.6; background:var(--ca-sand); display:flex; align-items:flex-end; padding:22px; transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.category-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.category-card::before{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(20,17,12,.72),rgba(20,17,12,0) 60%); z-index:1; }
.category-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.category-card-label{ position:relative; color:#fff; z-index:2; }
.category-card-label .h4{ color:#fff; } .category-card-label span{ font-size:.8rem; color:#E9E2CE; }
@media (max-width:1024px){ .category-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .category-grid{ grid-template-columns:repeat(2,1fr); gap:12px; } }

.product-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.product-card{ position:relative; }
.product-card-media{ position:relative; aspect-ratio:1/1; border-radius:var(--r-md); overflow:hidden; background:var(--ca-sand); margin-bottom:14px; }
.product-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .4s var(--ease); }
.product-card:hover .product-card-media img{ transform:scale(1.05); }
.product-card-badges{ position:absolute; top:10px; left:10px; display:flex; flex-direction:column; gap:6px; z-index:2; }
.product-card-wishlist{ position:absolute; top:10px; right:10px; z-index:2; width:36px; height:36px; border-radius:50%; background:rgba(250,246,236,.92); display:flex; align-items:center; justify-content:center; border:none; cursor:pointer; }
.product-card-quickadd{ position:absolute; left:10px; right:10px; bottom:10px; z-index:2; opacity:0; transform:translateY(6px); transition:opacity .2s var(--ease), transform .2s var(--ease); }
.product-card:hover .product-card-quickadd{ opacity:1; transform:translateY(0); }
.product-card-cat{ font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--text-muted); font-weight:700; }
.product-card-name{ font-family:var(--font-body); font-weight:700; font-size:.98rem; margin:.3em 0; }
.product-card-name a::after{ content:""; position:absolute; inset:0; }
.rating-row{ display:flex; align-items:center; gap:6px; font-size:.82rem; color:var(--text-muted); margin-bottom:.35em; }
.stars{ display:inline-flex; gap:1px; color:var(--ca-gold); }
.price-row{ display:flex; align-items:center; gap:8px; font-weight:700; }
.price-row del{ color:var(--text-muted); font-weight:500; font-size:.9rem; }
.price-row ins{ text-decoration:none; color:var(--ca-clay-deep); }
@media (max-width:1024px){ .product-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px){ .product-grid{ grid-template-columns:repeat(2,1fr); gap:14px 12px; } }

.promo-banner{ border-radius:var(--r-lg); background:linear-gradient(120deg,var(--ca-clay),var(--ca-clay-deep)); color:#fff; padding:48px; display:grid; grid-template-columns:1.2fr .8fr; align-items:center; gap:24px; overflow:hidden; position:relative; }
.promo-banner .h2{ color:#fff; } .promo-banner p{ color:#FBE7DC; }
@media (max-width:800px){ .promo-banner{ grid-template-columns:1fr; padding:32px 24px; text-align:center; } }

.trust-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.trust-card{ text-align:center; padding:28px 18px; }
.trust-icon{ width:56px; height:56px; margin:0 auto 16px; border-radius:50%; background:var(--ca-sage-light); display:flex; align-items:center; justify-content:center; color:var(--ca-sage-deep); }
@media (max-width:900px){ .trust-grid{ grid-template-columns:repeat(2,1fr); } }

.review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.review-card{ background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--r-lg); padding:26px; }
.review-card .stars{ margin-bottom:12px; }
.review-quote{ font-family:var(--font-display); font-size:1.08rem; line-height:1.5; margin-bottom:16px; }
.review-author{ display:flex; align-items:center; gap:10px; font-size:.85rem; color:var(--text-muted); }
.review-avatar{ width:34px; height:34px; border-radius:50%; background:var(--ca-sand); }
@media (max-width:900px){ .review-grid{ grid-template-columns:1fr; } }

.article-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.article-card-media{ aspect-ratio:16/10; border-radius:var(--r-md); overflow:hidden; margin-bottom:14px; }
.article-card-media img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:900px){ .article-grid{ grid-template-columns:1fr; } }

.newsletter{ background:var(--ca-ink); color:var(--text-on-dark); border-radius:var(--r-lg); padding:52px; text-align:center; }
.newsletter .h2{ color:#fff; }
.newsletter form{ display:flex; gap:10px; max-width:440px; margin:24px auto 0; }
.newsletter input{ flex:1; padding:.9rem 1.2rem; border-radius:var(--r-pill); border:1px solid #4A4335; background:#241F17; color:#fff; }
.newsletter input::placeholder{ color:#9C927C; }
@media (max-width:520px){ .newsletter{ padding:32px 20px; } .newsletter form{ flex-direction:column; } }

.site-footer{ background:var(--ca-ink); color:#C9BFA8; padding-top:60px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:32px; padding-bottom:40px; }
.footer-col h5{ color:#F1EADA; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:16px; }
.footer-col ul li{ margin-bottom:10px; }
.footer-col a:hover{ color:#fff; }
.footer-brand p{ color:#9C927C; margin-top:14px; max-width:32ch; }
.footer-social{ display:flex; gap:10px; margin-top:18px; }
.footer-social a{ width:36px; height:36px; border-radius:50%; border:1px solid #3E3827; display:flex; align-items:center; justify-content:center; }
.footer-bottom{ border-top:1px solid #2E291D; padding:20px 0 28px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:.8rem; flex-wrap:wrap; }
.footer-badges{ display:flex; gap:10px; align-items:center; opacity:.8; }
@media (max-width:1024px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } .footer-bottom{ flex-direction:column; text-align:center; } }

.breadcrumb{ display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--text-muted); flex-wrap:wrap; padding-block:16px; }
.breadcrumb a:hover{ color:var(--text); text-decoration:underline; }

/* Shop / archive */
.shop-layout{ display:grid; grid-template-columns:260px 1fr; gap:36px; align-items:flex-start; }
.filters-panel{ position:sticky; top:90px; }
.filter-group{ border-bottom:1px solid var(--border); padding-block:18px; }
.filter-group:first-child{ padding-top:0; }
.filter-group summary{ display:flex; align-items:center; justify-content:space-between; cursor:pointer; font-weight:700; list-style:none; }
.filter-group summary::-webkit-details-marker{ display:none; }
.filter-group summary::after{ content:"+"; font-size:1.2rem; color:var(--text-muted); }
.filter-group[open] summary::after{ content:"–"; }
.filter-options{ margin-top:14px; display:flex; flex-direction:column; gap:10px; }
.filter-check{ display:flex; align-items:center; gap:10px; font-size:.92rem; cursor:pointer; }
.filter-check input{ width:17px; height:17px; accent-color:var(--ca-ink); }
.filter-count{ color:var(--text-muted); margin-left:auto; font-size:.8rem; }
.shop-toolbar{ display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; gap:16px; flex-wrap:wrap; }
.shop-toolbar select{ padding:.6rem 1rem; border:1px solid var(--border); border-radius:var(--r-pill); background:var(--bg-elevated); }
.mobile-filter-btn{ display:none; }
.woocommerce-pagination ul{ display:flex; gap:8px; justify-content:center; margin-top:44px; }
.woocommerce-pagination a, .woocommerce-pagination span{ width:38px; height:38px; display:flex; align-items:center; justify-content:center; border-radius:50%; font-weight:600; }
.woocommerce-pagination a:hover{ background:var(--bg-dim); }
.woocommerce-pagination .current{ background:var(--ca-ink); color:var(--ca-cream); }
@media (max-width:960px){ .shop-layout{ grid-template-columns:1fr; } .filters-panel{ display:none; } .filters-panel.mobile-open{ display:block; } .mobile-filter-btn{ display:inline-flex; } }

/* Product detail */
.product-detail{ display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:flex-start; }
.gallery-main{ aspect-ratio:1/1; border-radius:var(--r-lg); overflow:hidden; background:var(--ca-sand); position:relative; margin-bottom:14px; }
.gallery-main img{ width:100%; height:100%; object-fit:cover; }
.gallery-thumbs{ display:flex; gap:10px; overflow-x:auto; padding-bottom:4px; }
.gallery-thumb{ width:76px; height:76px; border-radius:var(--r-sm); overflow:hidden; flex-shrink:0; border:2px solid transparent; cursor:pointer; background:var(--ca-sand); }
.gallery-thumb img{ width:100%; height:100%; object-fit:cover; }
.gallery-thumb.active{ border-color:var(--ca-ink); }
.pd-info{ position:sticky; top:96px; }
.pd-cat-link{ font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; font-weight:700; color:var(--text-muted); }
.pd-title{ margin:.4em 0 .5em; }
.pd-rating-row{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.pd-price-row{ display:flex; align-items:center; gap:12px; font-size:1.7rem; font-weight:700; margin-bottom:6px; }
.pd-price-row del{ font-size:1.1rem; color:var(--text-muted); }
.pd-price-row ins{ text-decoration:none; }
.pd-stock{ font-size:.85rem; font-weight:700; color:var(--ca-sage-deep); margin-bottom:22px; }
.pd-short-desc{ color:var(--text-muted); margin-bottom:24px; }
table.variations{ width:100%; margin-bottom:20px; }
table.variations td{ padding:6px 0; }
.qty-stepper, .quantity{ display:inline-flex; align-items:center; border:1.5px solid var(--border); border-radius:var(--r-pill); overflow:hidden; }
.quantity input.qty{ width:52px; text-align:center; border:none; background:none; font-weight:700; padding:10px 0; }
.pd-cta-row{ display:flex; gap:12px; margin:26px 0 18px; }
.pd-cta-row .single_add_to_cart_button{ flex:1; }
.pd-trust-strip{ display:flex; flex-direction:column; gap:10px; padding:18px; background:var(--bg-dim); border-radius:var(--r-md); font-size:.85rem; }
.pd-trust-strip .row{ display:flex; align-items:center; gap:10px; }
.pd-tabs{ margin-top:64px; }
.woocommerce-tabs ul.tabs{ display:flex; gap:6px; border-bottom:1px solid var(--border); overflow-x:auto; list-style:none; padding:0; margin:0; }
.woocommerce-tabs ul.tabs li{ padding:14px 20px; font-weight:700; color:var(--text-muted); border-bottom:2px solid transparent; white-space:nowrap; cursor:pointer; }
.woocommerce-tabs ul.tabs li.active{ color:var(--text); border-color:var(--ca-ink); }
.woocommerce-tabs .panel{ padding:32px 0; max-width:820px; }
.spec-table{ width:100%; border-collapse:collapse; }
.spec-table tr{ border-bottom:1px solid var(--border); }
.spec-table td{ padding:12px 0; font-size:.92rem; }
.spec-table td:first-child{ color:var(--text-muted); width:38%; }
.accordion-item{ border-bottom:1px solid var(--border); }
.accordion-item summary{ padding:16px 0; font-weight:700; cursor:pointer; list-style:none; }
.accordion-item summary::-webkit-details-marker{ display:none; }
.accordion-item .accordion-body{ padding-bottom:16px; color:var(--text-muted); }
@media (max-width:900px){ .product-detail{ grid-template-columns:1fr; gap:28px; } .pd-info{ position:static; } }

/* Reviews */
.reviews-summary{ display:grid; grid-template-columns:auto 1fr; gap:48px; padding-bottom:32px; border-bottom:1px solid var(--border); margin-bottom:28px; }
.reviews-score{ text-align:center; } .reviews-score .big{ font-family:var(--font-display); font-size:3.4rem; line-height:1; }
.rating-bars{ display:flex; flex-direction:column; gap:8px; }
.rating-bar-row{ display:flex; align-items:center; gap:10px; font-size:.85rem; }
.rating-bar-track{ flex:1; height:8px; border-radius:var(--r-pill); background:var(--bg-dim); overflow:hidden; }
.rating-bar-fill{ height:100%; background:var(--ca-gold); }
.verified-badge{ display:inline-flex; align-items:center; gap:4px; color:var(--ca-sage-deep); font-size:.78rem; font-weight:700; }
#reviews #comments ol.commentlist{ list-style:none; margin:0; padding:0; }
#reviews #comments ol.commentlist li{ padding:22px 0; border-bottom:1px solid var(--border); }

/* Cart / checkout */
.cart-layout, .woocommerce-cart-form{ width:100%; }
.summary-card, .cart_totals{ background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--r-lg); padding:26px; }
table.shop_table{ width:100%; border-collapse:collapse; }
table.shop_table th{ text-align:left; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); padding-bottom:14px; border-bottom:1px solid var(--border); }
table.shop_table td{ padding:16px 0; border-bottom:1px solid var(--border); vertical-align:middle; }
table.shop_table img{ width:72px; height:72px; object-fit:cover; border-radius:var(--r-md); }
.woocommerce-checkout .form-row label{ display:block; font-size:.82rem; font-weight:700; margin-bottom:6px; }
.woocommerce-checkout .form-row input, .woocommerce-checkout .form-row select, .woocommerce-checkout .form-row textarea{ width:100%; padding:.75rem 1rem; border:1px solid var(--border); border-radius:var(--r-md); background:var(--bg-elevated); }
#order_review, .order-summary-mini{ background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--r-lg); padding:24px; }

/* Account */
.woocommerce-account .woocommerce-MyAccount-navigation ul{ display:flex; flex-direction:column; gap:2px; }
.woocommerce-account .woocommerce-MyAccount-navigation a{ padding:12px 14px; border-radius:var(--r-md); font-weight:600; font-size:.92rem; display:block; }
.woocommerce-account .woocommerce-MyAccount-navigation a:hover{ background:var(--bg-dim); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{ background:var(--ca-ink); color:var(--ca-cream); }
.woocommerce-account .woocommerce-MyAccount-content{ background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--r-lg); padding:28px; }
@media (min-width:900px){
  .woocommerce-account .woocommerce{ display:grid; grid-template-columns:240px 1fr; gap:40px; align-items:flex-start; }
}

.content-page{ max-width:820px; margin:0 auto; padding-block:56px; }
.content-page h2{ margin-top:40px; margin-bottom:14px; }
.content-page p, .content-page li{ color:var(--text-muted); margin-bottom:14px; }

.toast{ position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--ca-ink); color:var(--ca-cream); padding:14px 22px; border-radius:var(--r-pill); font-weight:600; font-size:.88rem; box-shadow:var(--shadow-lg); z-index:300; opacity:0; pointer-events:none; transition:opacity .25s var(--ease), transform .25s var(--ease); }
.toast[data-show="true"]{ opacity:1; transform:translateX(-50%) translateY(0); }

/* ==========================================================================
   WooCommerce default markup — styled directly rather than overridden, so
   AJAX variation switching / add-to-cart keep working exactly as WC intends.
   ========================================================================== */
.summary.entry-summary{ display:block; }
.summary .product_title{ font-size:clamp(1.6rem,3vw,2.1rem); margin:.4em 0 .5em; }
.summary .woocommerce-product-rating{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.summary .woocommerce-product-rating .star-rating{ color:var(--ca-gold); }
.summary p.price{ font-size:1.7rem; font-weight:700; margin-bottom:6px; display:block; }
.summary p.price del{ font-size:1.1rem; color:var(--text-muted); opacity:1; }
.summary p.price ins{ text-decoration:none; color:var(--ca-clay-deep); }
.summary .stock{ font-size:.85rem; font-weight:700; color:var(--ca-sage-deep); margin-bottom:22px; display:block; }
.summary .stock.out-of-stock{ color:var(--ca-error); }
.summary .woocommerce-product-details__short-description{ color:var(--text-muted); margin-bottom:24px; }
.summary .woocommerce-product-details__short-description p:last-child{ margin-bottom:0; }
.summary table.variations{ margin-bottom:8px; }
.summary table.variations td.label{ font-weight:700; font-size:.9rem; padding-bottom:10px; }
.summary table.variations td.value select{ width:100%; padding:.7rem 1rem; border:1.5px solid var(--border); border-radius:var(--r-pill); background:var(--bg-elevated); font-weight:600; }
.summary .woocommerce-variation-price{ margin:12px 0; font-weight:700; }
.summary .reset_variations{ font-size:.8rem; color:var(--text-muted); text-decoration:underline; margin-left:10px; }
.summary form.cart{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:26px 0 18px; }
.summary form.cart .quantity{ margin-right:0; }
.summary .single_add_to_cart_button{ flex:1; min-width:180px; background:var(--ca-ink); color:var(--ca-cream); border-radius:var(--r-pill); padding:.95rem 1.6rem; font-weight:700; border:none; cursor:pointer; }
.summary .single_add_to_cart_button:hover{ background:var(--ca-gold-deep); color:#fff; }
.summary .single_add_to_cart_button.disabled{ opacity:.45; cursor:not-allowed; }
.summary .product_meta{ margin-top:24px; padding-top:18px; border-top:1px solid var(--border); font-size:.85rem; color:var(--text-muted); }
.summary .product_meta a{ text-decoration:underline; }
.woocommerce-tabs table.shop_attributes{ width:100%; border-collapse:collapse; }
.woocommerce-tabs table.shop_attributes tr{ border-bottom:1px solid var(--border); }
.woocommerce-tabs table.shop_attributes th, .woocommerce-tabs table.shop_attributes td{ padding:12px 0; font-size:.92rem; text-align:left; font-weight:400; }
.woocommerce-tabs table.shop_attributes th{ color:var(--text-muted); width:38%; font-weight:400; }
.related.products, .up-sells.upsells{ margin-top:64px; }
.related.products > h2, .up-sells.upsells > h2{ font-family:var(--font-display); font-size:1.6rem; margin-bottom:24px; }
.related.products ul.products, .up-sells.upsells ul.products{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; list-style:none; padding:0; }
@media (max-width:900px){ .related.products ul.products, .up-sells.upsells ul.products{ grid-template-columns:repeat(2,1fr); } }

/* Cart page */
.woocommerce-cart-form table.shop_table td.product-remove{ width:32px; }
.woocommerce-cart-form td.actions .coupon{ display:flex; gap:8px; align-items:center; }
.woocommerce-cart-form td.actions .coupon input{ padding:.7rem 1rem; border:1px solid var(--border); border-radius:var(--r-pill); }
.cart-collaterals{ margin-top:32px; max-width:420px; margin-left:auto; }
.cart_totals table{ width:100%; }
.cart_totals table th{ text-align:left; padding:10px 0; color:var(--text-muted); font-weight:400; }
.cart_totals table td{ padding:10px 0; text-align:right; font-weight:600; }
.cart_totals .order-total td, .cart_totals .order-total th{ font-size:1.1rem; font-weight:800; border-top:1px solid var(--border); padding-top:16px; }
.wc-proceed-to-checkout a.checkout-button{ display:block; text-align:center; background:var(--ca-ink); color:var(--ca-cream); border-radius:var(--r-pill); padding:.95rem; font-weight:700; margin-top:16px; }
.wc-proceed-to-checkout a.checkout-button:hover{ background:var(--ca-gold-deep); color:#fff; }

/* Checkout */
.woocommerce-checkout #customer_details{ width:60%; float:left; }
.woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review{ width:36%; float:right; }
.woocommerce-checkout .form-row{ margin-bottom:14px; }
.woocommerce-checkout .place-order{ margin-top:20px; }
.woocommerce-checkout #place_order{ width:100%; background:var(--ca-ink); color:var(--ca-cream); border:none; border-radius:var(--r-pill); padding:1.1rem; font-weight:700; font-size:1rem; cursor:pointer; }
.woocommerce-checkout #place_order:hover{ background:var(--ca-gold-deep); color:#fff; }
.woocommerce-checkout table.shop_table td, .woocommerce-checkout table.shop_table th{ padding:10px 0; }
@media (max-width:960px){
	.woocommerce-checkout #customer_details, .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review{ width:100%; float:none; }
}

/* Account */
.woocommerce-MyAccount-navigation ul{ list-style:none; padding:0; }
.woocommerce-orders-table__cell-order-actions .button{ display:inline-block; padding:.5rem 1rem; border-radius:var(--r-pill); border:1px solid var(--border); font-size:.8rem; font-weight:700; margin:2px; }
.woocommerce-address-fields .form-row{ margin-bottom:14px; }
.woocommerce-address-fields button[type="submit"], .woocommerce-form-login button, .woocommerce-form-register button, .woocommerce-form-row button{ background:var(--ca-ink); color:var(--ca-cream); border:none; border-radius:var(--r-pill); padding:.9rem 1.6rem; font-weight:700; cursor:pointer; }
.woocommerce-error, .woocommerce-message, .woocommerce-info{ list-style:none; background:var(--bg-dim); border-left:4px solid var(--ca-sage); padding:16px 20px; border-radius:var(--r-md); margin-bottom:20px; }
.woocommerce-error{ border-color:var(--ca-error); }
