/* =============================================================================
   AMERICAN LEATHER COMPANY OF SCOTTSDALE — americanleatherusa.com
   "SONORAN DUSK / LEATHER" — the Sunrise skin, ported.  AL Refresh v3.0.0
   =============================================================================
   Sunrise Jewelry's shipped "Sonoran Dusk" skin (current-skin-v3.json, widget
   custom_html-26), adapted rule for rule: same bones, same design language,
   leather palette swap only. Token roles, section patterns, components and
   motion are Sunrise's verbatim; indigo grounds -> espresso, the gold ramp
   stays as brass in the same roles, the turquoise accent ramp is KEPT.
   Fonts (plugin-enqueued): Newsreader serif / Work Sans body / Chivo caps.
   AL selectors are the PROVEN v1.0.3 map (same theme: rocket-wc-master +
   Max Mega Menu + RMP + AWS + WooCommerce).
   Both Sunrise bugs fixed on the way in:
     1. --al-ease declared ONCE (Sunrise's v5 :root re-set it to plain "ease").
     2. Category sidebar widget STYLED, not hidden (v6 left an orphan heading).
   setup.php prints a late block on --al-ground-1 / --al-ground-0 — defined
   below. !important only where the theme/plugins ship it — flagged inline.
   ========================================================================== */

/* ---------- 0. Preserved AL fixes (Sunrise §0 pattern, AL equivalents) ---- */
div#wc-stripe-payment-request-button { margin-bottom: 20px; }
.wc-stripe-product-checkout-container { margin: 14px 0 !important; } /* Stripe prints inline margins */
@media screen and (max-width:767px){
  /* theme's proven 20/80 qty + add-to-cart split (same theme as Sunrise) */
  .woocommerce div.product form.cart { display: flex; flex-wrap: wrap; justify-content: space-between; }
  .woocommerce div.product form.cart .quantity { flex: 0 0 20%; max-width: 20%; margin: 0 !important; }
  .single-product-container div.product form.cart .button { flex: 0 0 80%; max-width: 80%; margin: 0; }
}

/* ---------- 1. Design tokens (Sunrise architecture, leather values) ------- */
:root{
  /* grounds — espresso ladder replacing indigo; 0/1 match setup.php fallbacks */
  --al-ground-0:#0B0A08;  /* deepest: html bg, top bar, footer, drawer, scrollbar track, scrim base */
  --al-ground-1:#14120F;  /* page ground: body, .site, .site-header, nav band, hero base */
  --al-ground-2:#1C1A16;  /* alternating band ground + the PHOTO WELL + text-on-gold */
  --al-surface-1:#26231E; /* card fill */
  --al-surface-2:#302C26; /* input fill + hover fill + disabled button fill */
  --al-surface-3:#3B362E; /* popover fill: mega flyouts, AWS results, select2, scrollbar thumb */
  /* lines */
  --al-line-1:rgba(217,184,124,.16); /* BRASS HAIRLINE — separators, edges, card border on hover */
  --al-line-2:#4A443B;               /* structural border at rest; empty star track */
  /* text */
  --al-text-hi:#F4EFE6;   --al-text-mid:#CEC6B8;   --al-text-dim:#A0978A;
  --al-text-inverse:#17140F; /* text on brass fills */
  /* gold ramp -> BRASS, same four roles */
  --al-brass-100:#F0DCB4; /* brightest: ghost hover text, single-product h2, badge year */
  --al-brass-300:#D9B87C; /* PRIMARY: prices, active nav, tile CTAs, gradient start */
  --al-brass-400:#C39A5A; /* deeper: kickers, section/widget/footer heads, icons, stars, dt labels */
  --al-brass-500:#8F6F3C; /* darkest: badge outer ring, scrollbar thumb hover, ghost rest border */
  --al-brass-tint:rgba(217,184,124,.10);   /* ghost hover / nav tint wash */
  /* turquoise accent ramp — KEPT (stone-inlay buckles): links, focus, pills */
  --al-turq-200:#9FE8DC;  --al-turq-300:#5FD2C2;  --al-turq-400:#2FA99B;
  /* the homepage names the accent role "steel" — same ramp, aliased */
  --al-steel-200:var(--al-turq-200); --al-steel-300:var(--al-turq-300); --al-steel-400:var(--al-turq-400);
  /* status */
  --al-ok:#7BD9A2; --al-warn:#F2C063; --al-danger:#F2938C; --al-danger-fill:#93362E;
  /* the ONE 135deg gold gradient (every primary button, active pill/chip) */
  --al-grad-gold:linear-gradient(135deg,#D9B87C 0%,#C39A5A 100%);
  --al-grad-hardware:var(--al-grad-gold); /* legacy alias */
  /* photography plate — AL's catalogue is white-studio squares; warm paper,
     never #fff, so plated photos read as one exposure family (see §18 wells) */
  --al-plate:#EFE8DA;
  --al-plate-edge:rgba(20,18,15,.16);
  --al-plate-pad:clamp(16px, 7%, 30px);  /* Sunrise's identical well padding */
  /* documentary grade for the owner's 640x480 workshop frames (warm-tone) */
  --al-doc-filter:saturate(.72) sepia(.35) contrast(1.04) brightness(.97);
  --al-doc-tone:linear-gradient(180deg, rgba(217,184,124,.10) 0%, rgba(11,10,8,.26) 100%);
  /* fonts — Sunrise trio pattern on the plugin's enqueued faces */
  --al-font-display:"Newsreader","Hoefler Text",Georgia,"Times New Roman",serif;
  --al-font-body:"Work Sans",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --al-font-util:"Chivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  /* display scale — Sunrise's exact clamps */
  --al-fs-d1:clamp(2.75rem, 2rem + 3.75vw, 5.25rem);   --al-lh-d1:1.05;  /* hero H1 */
  --al-fs-d2:clamp(1.875rem, 1.5rem + 1.6vw, 2.75rem); --al-lh-d2:1.15;  /* section H2 */
  --al-fs-d3:clamp(1.5rem, 1.33rem + .78vw, 1.95rem);  --al-lh-d3:1.22;  /* product H1, H3 */
  --al-fs-d4:1.25rem;                                   --al-lh-d4:1.3;   /* card/tile titles */
  /* body scale */
  --al-fs-lede:1.125rem; --al-fs-body:1rem; --al-fs-sm:.9375rem; --al-fs-xs:.875rem;
  --al-lh-body:1.7; --al-lh-tight:1.5;
  --al-measure:68ch; --al-measure-lede:56ch;
  /* utility scale (Chivo, uppercase, tracked) */
  --al-fs-u-lg:.875rem;  --al-ls-u-lg:.10em;  /* 14px primary nav */
  --al-fs-u:.8125rem;    --al-ls-u:.12em;     /* 13px buttons */
  --al-fs-u-sm:.75rem;   --al-ls-u-sm:.14em;  /* 12px names, eyebrows use .18em */
  --al-fs-u-xs:.6875rem; --al-ls-u-xs:.16em;  /* 11px badges, dt labels, chips */
  /* spacing rhythm (Sunrise: 24 gaps, 56 sechead, 112/64 bands, 128 hero) */
  --al-sp-1:4px; --al-sp-2:8px; --al-sp-3:12px; --al-sp-4:16px; --al-sp-5:24px;
  --al-sp-6:32px; --al-sp-7:40px; --al-sp-8:56px; --al-sp-9:72px; --al-sp-10:96px; --al-sp-11:128px;
  --al-gap:24px;
  --al-gutter:24px;
  --al-section-y:clamp(64px, 40px + 4vw, 112px);
  --al-wrap:1200px; --al-wrap-wide:1360px; --al-wrap-text:760px;
  /* radii — Sunrise's three + sm for focus rings */
  --al-r-sm:4px; --al-r-ctrl:10px; --al-r-card:14px; --al-r-lg:14px; --al-r-pill:999px;
  /* borders */
  --al-border:1px solid var(--al-line-2);
  --al-border-hair:1px solid var(--al-line-1);
  /* stitch rule — the hairline drawn as saddle stitching (homepage .al-rule--stitch) */
  --al-stitch-color:rgba(217,184,124,.45);
  --al-stitch:repeating-linear-gradient(90deg, var(--al-stitch-color) 0 7px, transparent 7px 14px);
  /* grain — noise so faint it reads as surface, not image; bands only */
  --al-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23g)'/%3E%3C/svg%3E");
  --al-grain-opacity:.035;
  /* shadows — Sunrise's three, in leather ink */
  --al-shadow-card:0 10px 30px rgba(11,10,8,.45);
  --al-shadow-pop:0 18px 50px rgba(11,10,8,.55);
  --al-shadow-gold:0 6px 24px rgba(195,154,90,.30);
  --al-shadow-well:inset 0 0 0 1px rgba(74,68,59,.55), inset 0 14px 32px rgba(11,10,8,.35);
  /* motion — declared ONCE (Sunrise bug fix #1: never re-declare --al-ease) */
  --al-ease:cubic-bezier(.25,.6,.3,1);
  --al-t-fast:200ms; --al-t:280ms; --al-t-slow:420ms; --al-t-image:600ms;
  /* z ladder */
  --al-z-base:1; --al-z-sticky:300; --al-z-popover:800;
  color-scheme:dark;
}

/* ---------- 1b. Re-point the rocket-wc THEME variables (highest leverage) --
   Same theme as Sunrise: the theme drives dozens of rules (many !important)
   through these properties. Redefining them restyles it without a fight. */
:root{
  --default-color:var(--al-brass-300);         /* links, prices, accents */
  --default-light-color:var(--al-turq-400);    /* secondary links */
  --secondary-color:var(--al-brass-400);       /* Woo button base (gradient in §5) */
  --secondary-color-hover:var(--al-brass-300);
  --secondary-color-disabled:var(--al-surface-2);
  --primary-color-disabled:var(--al-surface-2);
  --price-color:var(--al-brass-300);
  --success-color:var(--al-ok);                /* theme ships a broken "darkg reen" */
  --border-color:var(--al-line-2);
  --input-border-color:var(--al-line-2);
  --image-border-color:var(--al-line-2);
  --mobile-menu-light-color:var(--al-brass-300); /* search icon, mobile accents */
  --font-family:var(--al-font-util);           /* nav, card headers, titles */
}
/* Elementor globals (any kit id) */
body.theme-rocket-wc-master, [class*="elementor-kit-"]{
  --e-global-color-primary:#D9B87C; --e-global-color-secondary:#5FD2C2;
  --e-global-color-text:#CEC6B8;   --e-global-color-accent:#C39A5A;
}

/* ---------- 2. Global grounds, text, selection, scrollbar, focus ---------- */
html{ background-color:var(--al-ground-0); }
/* .al-full uses 100vw, which includes the scrollbar — clip the few px */
html, body.theme-rocket-wc-master{ overflow-x:hidden; overflow-x:clip; }
body.theme-rocket-wc-master{
  background-color:var(--al-ground-1) !important; /* theme inline: white !important */
  color:var(--al-text-mid);
  font-family:var(--al-font-body) !important;     /* theme forces its own with !important */
  -webkit-font-smoothing:antialiased;
}
body.theme-rocket-wc-master .site{ background-color:var(--al-ground-1) !important; } /* theme inline !important */
body.theme-rocket-wc-master #page{ background-color:var(--al-ground-1); }
body.theme-rocket-wc-master nav.navbar{ background-color:var(--al-ground-1) !important; } /* theme inline: #fff !important */
body.theme-rocket-wc-master.responsive-menu-open .site-header{ background-color:var(--al-ground-0) !important; } /* theme: rust !important */
body.theme-rocket-wc-master footer,
body.theme-rocket-wc-master .site_main_footer,
body.theme-rocket-wc-master .site_copyright{
  background-color:var(--al-ground-0) !important; /* theme inline: brown !important */
}

::selection{ background:var(--al-brass-400); color:var(--al-text-inverse); }
::-webkit-scrollbar{ width:12px }
::-webkit-scrollbar-track{ background:var(--al-ground-0) }
::-webkit-scrollbar-thumb{ background:var(--al-surface-3); border-radius:6px; border:3px solid var(--al-ground-0) }
::-webkit-scrollbar-thumb:hover{ background:var(--al-brass-500) }

/* serif = what the thing is; sans = what you do about it */
body.theme-rocket-wc-master h1, body.theme-rocket-wc-master h2,
body.theme-rocket-wc-master h3, body.theme-rocket-wc-master h4{
  font-family:var(--al-font-display); font-weight:500;
  color:var(--al-text-hi); letter-spacing:-.01em;
}
body.theme-rocket-wc-master h5, body.theme-rocket-wc-master h6{
  font-family:var(--al-font-util); color:var(--al-text-hi);
  text-transform:uppercase; letter-spacing:.12em;
}
/* h1 pinned to the section scale; page-level H1s escalate past this */
body.theme-rocket-wc-master h1{ font-size:var(--al-fs-d2); line-height:var(--al-lh-d2); }
body.theme-rocket-wc-master p{ color:var(--al-text-mid); margin:0 0 var(--al-sp-4); }
body.theme-rocket-wc-master strong{ color:var(--al-text-hi); }
body.theme-rocket-wc-master label{ color:var(--al-text-mid); }
body.theme-rocket-wc-master blockquote{
  font-family:var(--al-font-display); font-style:italic;
  font-size:20px; line-height:1.5; color:var(--al-text-hi);
  border-left:2px solid var(--al-brass-500); padding-left:20px; margin:0 0 var(--al-sp-4);
}

/* Content links — turquoise, scoped away from nav/buttons/cards
   (base <a> elsewhere is brass via --default-color) */
body.theme-rocket-wc-master .elementor-widget-text-editor a:not(.elementor-button),
body.theme-rocket-wc-master .elementor-widget-theme-post-content a:not(.button):not(.elementor-button),
body.theme-rocket-wc-master .woocommerce-product-details__short-description a,
body.theme-rocket-wc-master .al-prose a,
body.theme-rocket-wc-master .al-dl dd a,
body.theme-rocket-wc-master p.al-trust__fine a,
body.theme-rocket-wc-master p.al-about__note a,
body.theme-rocket-wc-master .al-why__card p a{
  color:var(--al-turq-300); text-decoration:underline;
  text-underline-offset:4px; text-decoration-thickness:1px;
  transition:color .2s var(--al-ease);
}
body.theme-rocket-wc-master .elementor-widget-text-editor a:not(.elementor-button):hover,
body.theme-rocket-wc-master .elementor-widget-theme-post-content a:not(.button):not(.elementor-button):hover,
body.theme-rocket-wc-master .woocommerce-product-details__short-description a:hover,
body.theme-rocket-wc-master .al-prose a:hover,
body.theme-rocket-wc-master .al-dl dd a:hover,
body.theme-rocket-wc-master p.al-trust__fine a:hover,
body.theme-rocket-wc-master p.al-about__note a:hover,
body.theme-rocket-wc-master .al-why__card p a:hover{ color:var(--al-turq-200); }

/* Sidebar / generic widget lists */
body aside.widget ul li a{ color:var(--al-text-mid); transition:color .2s var(--al-ease); }
body aside.widget ul li a:hover{ color:var(--al-turq-300); text-decoration:none; }
.widget-title, .main_content-category span.h4.widget-title{
  font-family:var(--al-font-util); font-weight:600; font-size:13px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--al-brass-400);
}

/* Accessible focus everywhere */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [role="button"]:focus-visible{
  outline:2px solid var(--al-turq-300) !important; /* beats vendor outline:none */
  outline-offset:3px; border-radius:var(--al-r-sm);
}

/* Back-to-top pip */
body #scroll-to-top{ background:var(--al-grad-gold) !important; color:var(--al-text-inverse) !important; border-radius:var(--al-r-ctrl) !important; }
body #scroll-to-top:hover{ filter:brightness(1.07); }

/* Preloader */
.loading{ background:var(--al-ground-1) !important; }
.loading .spinner > div{ background-color:var(--al-brass-300) !important; }

/* ---------- 3. Top bar + header + search ---------- */
/* Utility bar — AL markup uses .top-bar (v1.0.3); .site-header-notice kept for
   the theme's alternate header include (same theme as Sunrise). */
.top-bar, body .site-header-notice{
  background:var(--al-ground-0); color:var(--al-text-dim);
  border-bottom:1px solid var(--al-line-1);
}
.top-bar a, .top-bar .additional-links a, .top-bar .social-media-links-list a{
  color:var(--al-text-mid) !important; /* theme colors these inline-strength */
  font-family:var(--al-font-util); font-weight:500; font-size:13px;
  letter-spacing:.09em; transition:color .2s var(--al-ease);
}
.top-bar a:hover, .top-bar .social-media-links-list a:hover{ color:var(--al-turq-300) !important; }
.top-bar .cart-customlocation,
.top-bar .cart-customlocation .woocommerce-Price-amount{ color:var(--al-text-hi) !important; }
.top-bar .cart-customlocation:hover,
.top-bar .cart-customlocation:hover .woocommerce-Price-amount{ color:var(--al-brass-300) !important; }
body .site-header-notice .site-info-container p{ font-family:var(--al-font-util); font-weight:500; font-size:13px; }
body .site-header-notice .site-info-container .site-address{ letter-spacing:.18em; }
body .site-header-notice .site-contact-info a{ color:var(--al-text-mid); transition:color .2s var(--al-ease); }
body .site-header-notice .site-contact-info a:hover{ color:var(--al-turq-300); }

/* Brand band — solid dark on EVERY page + sticky (mirrors setup.php's late
   block, correct even if that block never prints). v1.0.2 must-keep. */
body.theme-rocket-wc-master .site-header,
body.theme-rocket-wc-master.home .site-header,
body.theme-rocket-wc-master .sticky-wrapper .site-header,
.site-header.stuck, .site-header.sticky, .site-header.is-sticky, .site-header.fixed-header{
  background-color:var(--al-ground-1) !important; /* theme inline: #fff !important; wp-custom-css: transparent !important on .home */
  box-shadow:0 1px 0 var(--al-line-1) !important;
}
body.theme-rocket-wc-master .site-header{ position:sticky !important; top:0; z-index:var(--al-z-sticky); }
.site-header .navbar, .site-header .menu-wrap, .site-header .container{ background:transparent !important; }
/* nav band hairlines (theme borders follow --image-border-color) */
body .nav-menu-bottom{ border-top-color:var(--al-line-1); border-bottom-color:var(--al-line-1); }

/* Logo — white silhouette forced on the dark band (v1.0.2 must-keep) */
.site-header .site-logo.logo-global{ display:none !important; }
.site-header .site-logo.logo-home{ display:inline-block !important; visibility:visible !important; }
body.theme-rocket-wc-master .site-header img.site-logo,
body.theme-rocket-wc-master .site-header .widget_media_image img,
body.theme-rocket-wc-master .site-header .custom-logo,
body.theme-rocket-wc-master #media_image-2 img{
  filter:brightness(0) invert(1) drop-shadow(0 0 10px rgba(244,239,230,.18));
  image-rendering:-webkit-optimize-contrast;
}

/* Right-side header menu + cart */
body ul#menu-right-side-menu li a{
  color:var(--al-text-mid); font-family:var(--al-font-util); font-weight:600;
  font-size:13px; letter-spacing:.12em; transition:color .2s var(--al-ease);
}
body ul#menu-right-side-menu li a:hover{ color:var(--al-brass-300); text-decoration:none; }
body .wpmenucart-contents .cartcontents{ color:inherit; }
.site-header a.cart{ color:var(--al-text-hi) !important; }
.site-header a.cart:hover{ color:var(--al-brass-300) !important; }

/* AWS live search — field (one field recipe sitewide) */
.homepage-search-box{ background:var(--al-ground-1); border-bottom:1px solid var(--al-line-1); }
body .aws-container .aws-search-field,
.aws-container .aws-search-form .aws-search-field{
  background-color:var(--al-surface-2) !important; color:var(--al-text-hi) !important;
  border:1px solid var(--al-line-2) !important; border-radius:var(--al-r-ctrl) !important;
}
body .aws-container .aws-search-field::placeholder{ color:var(--al-text-dim); }
body .aws-container .aws-search-field:focus{ border-color:var(--al-turq-300) !important; }
body .aws-container .aws-search-clear{ color:var(--al-text-dim); }
/* (magnifier icon flows from --mobile-menu-light-color -> brass) */

/* AWS live search — results dropdown */
body .aws-search-result{
  background:var(--al-surface-3) !important; border-color:var(--al-line-2) !important;
  border-radius:0 0 var(--al-r-card) var(--al-r-card);
  box-shadow:var(--al-shadow-pop);
}
body .aws-search-result .aws_result_item{ border-bottom-color:var(--al-line-2); }
body .aws-search-result .aws_result_link{ color:var(--al-text-mid); }
body .aws-search-result .aws_result_title{ color:var(--al-text-hi) !important; }
body .aws-search-result .aws_result_excerpt,
body .aws-search-result .aws_result_cat,
body .aws-search-result .aws_result_sku{ color:var(--al-text-dim); }
body .aws-search-result .aws_result_price{ color:var(--al-brass-300); font-family:var(--al-font-util); font-weight:600; }
body .aws-search-result .aws_result_item.hovered,
body .aws-search-result .aws_result_item:hover,
body .aws-search-result .aws_result_selected,
body .aws-search-result .aws_search_more a:hover{ background:var(--al-surface-2) !important; }
body .aws-search-result .aws_search_more a{ color:var(--al-turq-300); }
body .aws-search-result .aws_no_result{ color:var(--al-text-mid); }

/* ---------- 4. Max Mega Menu (desktop nav) ----------
   The plugin's generated stylesheet loads after ours — body-prefix + the
   !important flags v1.0.3 proved necessary. Sunrise treatment: caps utility
   face, text-mid at rest, brass + faint gold tint on hover/open/current. */
body #mega-menu-wrap-primary{ background:transparent !important; } /* plugin: white bg in a media query */
body #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link{
  background:transparent !important;
  color:var(--al-text-mid) !important;
  font-family:var(--al-font-util) !important;
  font-size:var(--al-fs-u) !important; font-weight:600 !important;
  letter-spacing:.12em !important; text-transform:uppercase;
  transition:color .2s var(--al-ease), background-color .2s var(--al-ease);
}
body #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item:hover > a.mega-menu-link,
body #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item.mega-toggle-on > a.mega-menu-link,
body #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link:hover,
body #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link:focus{
  background:rgba(217,184,124,.06) !important;
  color:var(--al-brass-300) !important;
}
body #mega-menu-wrap-primary #mega-menu-primary > li.mega-current-menu-item > a.mega-menu-link{
  color:var(--al-brass-300) !important;
}
/* Sunrise post-launch nav tightening (owner: "too far apart on desktop") */
@media (min-width: 992px){
  #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link{
    padding-left:14px !important; padding-right:14px !important; letter-spacing:.09em !important;
  }
  #mega-menu-wrap-primary #mega-menu-primary{ justify-content:center; }
}

/* Flyout dropdowns — dark popover, gold top edge */
body #mega-menu-wrap-primary #mega-menu-primary li.mega-menu-item ul.mega-sub-menu{
  background:var(--al-surface-3) !important;
  border:1px solid var(--al-line-2) !important;
  border-top:2px solid var(--al-brass-400) !important;
  border-radius:0 0 var(--al-r-card) var(--al-r-card);
  box-shadow:var(--al-shadow-pop) !important;
}
body #mega-menu-wrap-primary #mega-menu-primary li.mega-menu-item ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link{
  background:transparent !important; color:var(--al-text-mid) !important;
  font-size:var(--al-fs-u) !important; letter-spacing:.05em;
  transition:color .2s var(--al-ease), background-color .2s var(--al-ease);
}
body #mega-menu-wrap-primary #mega-menu-primary li.mega-menu-item ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link:hover,
body #mega-menu-wrap-primary #mega-menu-primary li.mega-menu-item ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link:focus{
  background:var(--al-surface-2) !important; color:var(--al-turq-300) !important;
}
body #mega-menu-wrap-primary .mega-indicator::after{ color:var(--al-text-dim) !important; }
/* Full-width mega panel widget links — slide + turquoise (Sunrise) */
body .mega-submenu ul > li > a{
  color:var(--al-text-mid);
  transition:color .2s var(--al-ease), padding-left .2s var(--al-ease);
}
body .mega-submenu ul > li > a:hover{ color:var(--al-turq-300); padding-left:8px; }

/* Mega toggle (tablet fallback) — gold bars */
body #mega-menu-wrap-primary .mega-menu-toggle{ background:transparent !important; }
body #mega-menu-wrap-primary .mega-menu-toggle .mega-toggle-animated-inner,
body #mega-menu-wrap-primary .mega-menu-toggle .mega-toggle-animated-inner::before,
body #mega-menu-wrap-primary .mega-menu-toggle .mega-toggle-animated-inner::after{
  background:var(--al-brass-300) !important;
}

/* ---------- 4b. Responsive Menu Pro (mobile drawer) ----------
   Generic selectors (v1.0.3-proven on AL), Sunrise values. */
.rmp_menu_trigger{ background:transparent !important; }
.rmp_menu_trigger .responsive-menu-pro-inner,
.rmp_menu_trigger .responsive-menu-pro-inner::before,
.rmp_menu_trigger .responsive-menu-pro-inner::after{
  background-color:var(--al-brass-300) !important;
}
.rmp_menu_trigger:not(.is-active):hover .responsive-menu-pro-inner,
.rmp_menu_trigger:not(.is-active):hover .responsive-menu-pro-inner::before,
.rmp_menu_trigger:not(.is-active):hover .responsive-menu-pro-inner::after{
  background-color:var(--al-brass-100) !important;
}
.rmp-container{ background:var(--al-ground-0) !important; border-right:1px solid var(--al-line-2); }
.rmp-menu li.rmp-menu-item a.rmp-menu-item-link{
  background:var(--al-ground-0) !important; color:var(--al-text-mid) !important;
  border-color:var(--al-line-2) !important;
  font-family:var(--al-font-util); font-weight:600; letter-spacing:.08em;
}
.rmp-menu li.rmp-menu-item a.rmp-menu-item-link:hover,
.rmp-menu li.rmp-menu-item a.rmp-menu-item-link:focus{
  background:var(--al-surface-2) !important; color:var(--al-brass-300) !important;
}
.rmp-menu li.rmp-menu-current-item > a.rmp-menu-item-link{
  background:var(--al-ground-2) !important; color:var(--al-brass-300) !important;
}
.rmp-submenu, .rmp-submenu .rmp-menu-item-link{ background:var(--al-ground-2) !important; }
.rmp-submenu .rmp-menu-item-link:hover{ background:var(--al-surface-2) !important; color:var(--al-brass-300) !important; }
.rmp-menu .rmp-menu-subarrow{
  background:var(--al-ground-2) !important; color:var(--al-brass-300) !important;
  border-color:var(--al-line-2) !important;
}
.rmp-container .rmp-search-box input[type="search"],
.rmp-container .rmp-search-box{
  background:var(--al-surface-2) !important; color:var(--al-text-hi) !important;
  border-color:var(--al-line-2) !important;
}
.rmp-container .rmp-search-box::placeholder{ color:var(--al-text-dim); }

/* ---------- 5. Buttons — ONE primary recipe: 135deg gold gradient, ink text,
   caps utility. Gold = commerce. !important flags are v1.0.3-proven. */
body.theme-rocket-wc-master .button,
body.theme-rocket-wc-master a.button,
body.theme-rocket-wc-master button.button,
body.theme-rocket-wc-master input[type="submit"],
body.theme-rocket-wc-master input.button,
body.theme-rocket-wc-master #respond input#submit,
body.theme-rocket-wc-master .single_add_to_cart_button,
body.theme-rocket-wc-master .elementor-button,
body.theme-rocket-wc-master .woocommerce ul.products li.product .button,
body.theme-rocket-wc-master .main_content-category ul.products li.product .button,
body.theme-rocket-wc-master .single-product-container div.product form.cart .button,
body.theme-rocket-wc-master .woocommerce .cart .button,
body.theme-rocket-wc-master .woocommerce .cart input.button,
body.theme-rocket-wc-master .customer-account button.woocommerce-button.button.woocommerce-form-login__submit,
body.theme-rocket-wc-master .customer-account a.woocommerce-Button.button,
body.theme-rocket-wc-master button.woocommerce-Button.button,
body.theme-rocket-wc-master .wpcf7 input[type="submit"]{
  background:var(--al-grad-gold) !important;
  color:var(--al-text-inverse) !important;
  font-family:var(--al-font-util) !important; font-weight:600 !important;
  font-size:var(--al-fs-u) !important; letter-spacing:.12em !important;
  text-transform:uppercase;
  border:0 !important; border-radius:var(--al-r-ctrl) !important;
  transition:transform .2s var(--al-ease), box-shadow .2s var(--al-ease), filter .2s var(--al-ease) !important;
}
body.theme-rocket-wc-master .button:hover,
body.theme-rocket-wc-master a.button:hover,
body.theme-rocket-wc-master button.button:hover,
body.theme-rocket-wc-master input[type="submit"]:hover,
body.theme-rocket-wc-master #respond input#submit:hover,
body.theme-rocket-wc-master .single_add_to_cart_button:hover,
body.theme-rocket-wc-master .elementor-button:hover,
body.theme-rocket-wc-master .woocommerce ul.products li.product .button:hover,
body.theme-rocket-wc-master .single-product-container div.product form.cart .button:hover,
body.theme-rocket-wc-master .woocommerce .cart .button:hover,
body.theme-rocket-wc-master .wpcf7 input[type="submit"]:hover{
  background:var(--al-grad-gold) !important;
  color:var(--al-text-inverse) !important;
  filter:brightness(1.07); transform:translateY(-1px);
  box-shadow:var(--al-shadow-gold);
}
/* Cart "Proceed to checkout" — theme uses !important, so must we */
body .wc-proceed-to-checkout .checkout-button{
  background:var(--al-grad-gold) !important;
  color:var(--al-text-inverse) !important;
}
body .wc-proceed-to-checkout .checkout-button:hover{ filter:brightness(1.07); box-shadow:var(--al-shadow-gold); }
/* Disabled */
.woocommerce a.button.disabled, .woocommerce button.button:disabled,
.woocommerce a.button[aria-disabled="true"],
.woocommerce button.button[aria-disabled="true"],
.woocommerce input.button[aria-disabled="true"]{
  background:var(--al-surface-2) !important; color:var(--al-text-dim) !important;
  transform:none; box-shadow:none;
}

/* ---------- 6. Page banners, breadcrumbs, pagination, sidebar ---------- */
/* Inner-page header — the v1.0.3-proven brass-pool gradient (no photo banner
   to blend on AL), Sunrise's serif H1 treatment on top. */
header.innerpage-header, .innerpage .innerpage-header{
  background:
    radial-gradient(60% 120% at 50% 0%, var(--al-brass-tint), transparent 65%),
    linear-gradient(180deg, var(--al-ground-2), var(--al-ground-1)) !important; /* theme sets its own banner bg */
  border-bottom:1px solid var(--al-line-1);
}
body .innerpage-header h1.woocommerce-products-header__title.page-title,
header.innerpage-header h1.page-title,
h1.woocommerce-products-header__title,
.innerpage .innerpage-header .innerpage-title{
  font-family:var(--al-font-display); font-weight:500;
  letter-spacing:.08em; color:var(--al-text-hi);
}
body .tax-product_cat .category-header-with-description{ color:var(--al-text-mid) !important; } /* theme: #000 !important */
body .tax-product_cat .category-header-with-description .page-title{ color:var(--al-text-hi) !important; } /* theme: #000 !important */

/* Breadcrumbs */
.woocommerce .woocommerce-breadcrumb, nav.woocommerce-breadcrumb{ color:var(--al-text-dim) !important; }
.woocommerce .woocommerce-breadcrumb a, nav.woocommerce-breadcrumb a{ color:var(--al-turq-300) !important; text-decoration:none; }
.woocommerce .woocommerce-breadcrumb a:hover, nav.woocommerce-breadcrumb a:hover{ color:var(--al-turq-200) !important; }

/* Pagination — transparent cells, gold-gradient current pill */
body a.page-numbers, body span.page-numbers{
  background-color:transparent; color:var(--al-text-mid);
  border:1px solid var(--al-line-2); border-radius:var(--al-r-ctrl);
  font-family:var(--al-font-util);
  transition:color .2s var(--al-ease), background-color .2s var(--al-ease);
}
body a.page-numbers:hover{ background-color:var(--al-surface-2); color:var(--al-brass-300); }
body span.page-numbers.current{
  background:var(--al-grad-gold); color:var(--al-text-inverse); border-color:transparent;
}
body span.page-numbers.dots{ border-color:transparent; color:var(--al-text-dim); }
/* Shop archive variant (theme overrides at higher specificity — color only) */
body .main_content-category nav.woocommerce-pagination ul li a,
body .main_content-category nav.woocommerce-pagination ul li span{ color:var(--al-text-mid); }
body .main_content-category nav.woocommerce-pagination ul li a:focus,
body .main_content-category nav.woocommerce-pagination ul li a:hover,
body .main_content-category nav.woocommerce-pagination ul li span.current{
  color:var(--al-brass-300); background:transparent;
}

/* Sidebar widgets — dark cards (v1.0.3 look, Sunrise tokens).
   SUNRISE BUG FIX #2: the category widget is styled, NOT display:none'd —
   Sunrise's v6 hide left an orphaned heading over an empty column. */
.main_content-category .widget, #primary .widget, aside.widget.woocommerce{
  background:var(--al-surface-1); border:1px solid var(--al-line-2);
  border-radius:var(--al-r-card); padding:1.1rem 1.2rem; margin-bottom:1.4rem;
}
.widget.widget_product_categories .widget-title,
.main_content-category .widget-title, aside.widget .widget-title{
  color:var(--al-brass-400) !important; /* theme paints it blue/dark */
  border-bottom:1px solid var(--al-line-2);
  padding-bottom:.55rem; margin-bottom:.7rem;
}
.widget_product_categories ul li a{ color:var(--al-text-mid) !important; font-size:.92rem; }
.widget_product_categories ul li a:hover{ color:var(--al-turq-300) !important; }
.widget_product_categories ul li{ border-color:var(--al-line-2) !important; }
.widget_product_categories .count{ color:var(--al-text-dim); }
.widget_product_categories .current-cat > a{ color:var(--al-brass-300) !important; }
body .main_content-category ul.product-categories li.cat-item a{ color:var(--al-text-mid); }
body .main_content-category ul.product-categories li.cat-item a:hover{ color:var(--al-turq-300); }

/* Ordering select + result count */
form.woocommerce-ordering select.orderby,
body .main_content-category .woocommerce-ordering select.orderby{
  background:var(--al-surface-2) !important; color:var(--al-text-hi) !important;
  border:1px solid var(--al-line-2) !important; border-radius:var(--al-r-ctrl) !important;
}
p.woocommerce-result-count{ color:var(--al-text-dim) !important; }

/* ---------- 7. Product cards (shop grid, related, homepage shortcode) ----
   Grid geometry is the v1.0.3-proven AL layout (this theme's loop floats and
   pins nothing without it); every color/face/shadow is Sunrise's recipe. */
body.woocommerce ul.products, ul.products{
  display:grid !important;
  grid-template-columns:repeat(4, 1fr);
  gap:22px; margin:0 0 2rem !important; padding:0 !important;
}
.main_content-category ul.products.columns-4{ grid-template-columns:repeat(3, 1fr); } /* sidebar page: 3-up */
ul.products li.product{
  width:100% !important; margin:0 !important; float:none !important;
  background:var(--al-surface-1);
  border:1px solid var(--al-line-2); border-radius:var(--al-r-card);
  padding:14px 14px 60px !important; /* room for the pinned button */
  position:relative; display:flex; flex-direction:column;
  box-shadow:var(--al-shadow-card);
  transition:transform .28s var(--al-ease), border-color .28s var(--al-ease), box-shadow .28s var(--al-ease);
}
ul.products li.product:hover{
  transform:translateY(-4px);
  border-color:var(--al-line-1);
  box-shadow:var(--al-shadow-pop);
}
/* Warm paper plate keeps white-studio photography bright; faint wash +
   desaturation = one exposure family (uniformity trick, plate variant).
   The loop h3 sits INSIDE the image wrap, so the plate goes on a.thumbnail. */
ul.products li.product .product-loop-image-wrap a.thumbnail{
  display:block; position:relative;
  background:var(--al-plate);
  border-radius:var(--al-r-ctrl); overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--al-plate-edge);
}
ul.products li.product .product-loop-image-wrap a.thumbnail::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(rgba(28,26,22,.06), rgba(28,26,22,.06));
}
ul.products li.product .product-loop-image-wrap{ background:transparent; }
ul.products li.product img{
  width:100%; height:auto; display:block;
  background:var(--al-plate);
  border-radius:var(--al-r-ctrl);
  filter:saturate(.96);
  transition:transform var(--al-t-image) var(--al-ease);
}
ul.products li.product:hover img{ transform:scale(1.04); }
/* Loop title — display serif (h3 in this theme; standard Woo class kept) */
ul.products li.product h3,
ul.products li.product .woocommerce-loop-product__title,
body .main_content-category h2.woocommerce-loop-product__title{
  font-family:var(--al-font-display); font-weight:500;
  font-size:19px !important; line-height:1.35;
  letter-spacing:0; margin:.8rem 0 .25rem;
}
ul.products li.product h3 a, ul.products li.product a{ color:var(--al-text-hi) !important; } /* theme hardcodes #000 */
ul.products li.product h3 a:hover{ color:var(--al-brass-300) !important; }
/* Loop price — caps utility, tabular numerals, brass */
ul.products li.product span.price, ul.products li.product .price{
  color:var(--al-brass-300) !important; /* theme sets price color per template */
  font-family:var(--al-font-util); font-weight:600;
  font-size:18px !important; font-feature-settings:"tnum";
}
ul.products li.product .price del{ color:var(--al-text-dim) !important; opacity:1; }
ul.products li.product .price ins{ color:var(--al-brass-300) !important; text-decoration:none; }
/* Loop add-to-cart — pinned to the card bottom (v1.0.3 must-keep geometry),
   primary gold like every Sunrise loop button */
ul.products li.product a.button.add_to_cart_button,
ul.products li.product a.button{
  position:absolute; left:14px; right:14px; bottom:14px;
  margin:0 !important; text-align:center;
}
ul.products li.product .added_to_cart{
  position:absolute; right:14px; bottom:52px;
  font-size:.78rem; color:var(--al-turq-300);
}

/* Sale + sold-out badges */
.woocommerce span.onsale, span.onsale{
  background:var(--al-brass-400) !important; color:var(--al-text-inverse) !important;
  font-family:var(--al-font-util); font-weight:600 !important; font-size:11px;
  text-transform:uppercase; letter-spacing:.1em;
  border-radius:var(--al-r-pill) !important; line-height:2.4; min-height:0; padding:0 14px;
}
body span.sold_out{
  background-color:var(--al-brass-400); color:var(--al-text-inverse);
  font-family:var(--al-font-util); font-weight:600; font-size:12px;
  text-transform:uppercase; letter-spacing:.08em;
}

/* Stars — brass on the structural track */
.woocommerce .star-rating span::before, .star-rating span::before,
.woocommerce p.stars a{ color:var(--al-brass-400) !important; }
.woocommerce .star-rating::before, .star-rating::before{ color:var(--al-line-2) !important; }
.woocommerce-review__author{ color:var(--al-text-hi); }
.comment-text{ border-color:var(--al-line-2) !important; }

/* ---------- 8. Single product ---------- */
body .single-product-container div.product .product_title,
.single-product h1.product_title.entry-title{
  font-family:var(--al-font-display) !important; font-weight:500;
  font-size:var(--al-fs-d3) !important; line-height:var(--al-lh-d3);
  color:var(--al-text-hi) !important; letter-spacing:.04em;
}
body .single-product-container div.product p.price,
body .single-product-container div.product span.price,
.woocommerce div.product p.price, .woocommerce div.product span.price,
.single-product .summary.entry-summary p.price,
.single-product .summary.entry-summary p.price .woocommerce-Price-amount{
  color:var(--al-brass-300) !important;
  font-family:var(--al-font-util); font-weight:600; font-feature-settings:"tnum";
}
.woocommerce div.product p.price del{ color:var(--al-text-dim); opacity:1; }
.woocommerce div.product p.price ins{ text-decoration:none; }
body .single-product-container h2{
  font-family:var(--al-font-display); color:var(--al-brass-100); letter-spacing:.06em;
}
.woocommerce-product-details__short-description{ color:var(--al-text-mid); }
/* Gallery — photography stays bright on the paper plate (v1.0.3 must-keep) */
.single-product .woocommerce-product-gallery,
.single-product .woocommerce-product-gallery .flex-viewport,
.single-product .woocommerce-product-gallery img,
body .single-product-container div.product div.images img{
  background:var(--al-plate) !important;
  border-radius:var(--al-r-ctrl);
}
.single-product .woocommerce-product-gallery{
  border:1px solid var(--al-line-2); border-radius:var(--al-r-card); padding:8px;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li img{
  border:2px solid transparent; border-radius:var(--al-r-sm); opacity:.85;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
.single-product .woocommerce-product-gallery .flex-control-thumbs li img:hover{
  border-color:var(--al-brass-400); opacity:1;
}
body .single-product-container ul.products li.product a img{ border-color:var(--al-line-2); }
hr.single-product-divider{ background-color:var(--al-line-2); border:0; }
.single-product-container .addtoany_header{
  color:var(--al-text-dim); font-family:var(--al-font-util); font-weight:600;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
}
.single-product-container .product_meta, .single-product-container .posted_in,
.single-product .product_meta{ color:var(--al-text-dim); }
.single-product .product_meta a{ color:var(--al-text-mid) !important; }
.single-product .product_meta a:hover{ color:var(--al-brass-300) !important; }

/* Quantity + variations — the one field recipe */
.woocommerce .quantity .qty, form.cart .quantity input.qty{
  background:var(--al-surface-2) !important; color:var(--al-text-hi) !important;
  border:1px solid var(--al-line-2) !important; border-radius:var(--al-r-ctrl) !important;
}
.single-product form.cart table.variations select, table.variations select{
  background:var(--al-surface-2) !important; color:var(--al-text-hi) !important;
  border:1px solid var(--al-line-2) !important; border-radius:var(--al-r-ctrl) !important;
}
table.variations label{ color:var(--al-text-mid) !important; }
.reset_variations{ color:var(--al-text-dim) !important; }

/* Tabs — defensive Sunrise treatment (caps tabs, gold active underline) */
.woocommerce-tabs.wc-tabs-wrapper ul.tabs, .woocommerce-tabs ul.wc-tabs,
.woocommerce div.product .woocommerce-tabs ul.tabs{
  border-bottom:1px solid var(--al-line-2) !important; background:transparent !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{ border-color:var(--al-line-2); }
.woocommerce-tabs ul.tabs li, .woocommerce-tabs ul.wc-tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:transparent !important; border:0 !important; border-radius:0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{ display:none; } /* Woo's corner curls */
.woocommerce-tabs ul.tabs li a, .woocommerce-tabs ul.wc-tabs li a{
  font-family:var(--al-font-util); font-weight:600 !important; font-size:13px !important;
  text-transform:uppercase; letter-spacing:.12em; color:var(--al-text-dim) !important;
}
.woocommerce-tabs ul.tabs li.active a, .woocommerce-tabs ul.wc-tabs li.active a{
  color:var(--al-brass-300) !important;
  box-shadow:inset 0 -2px 0 var(--al-brass-400);
}
.woocommerce-tabs .panel, .woocommerce-Tabs-panel{
  background:var(--al-surface-1) !important; border:1px solid var(--al-line-2) !important;
  border-radius:0 0 var(--al-r-card) var(--al-r-card);
  color:var(--al-text-mid) !important;
}
/* Related products heading */
section.related.products > h2, section.related.products .products-title, .related.products h2{
  font-family:var(--al-font-display); color:var(--al-text-hi) !important; letter-spacing:.04em;
}

/* ---------- 9. Cart ---------- */
body .woocommerce table.shop_table, table.shop_table{
  background:var(--al-surface-1) !important;
  border:1px solid var(--al-line-2) !important; border-radius:var(--al-r-card) !important;
  color:var(--al-text-mid) !important;
}
.woocommerce table.shop_table th, table.shop_table th{
  color:var(--al-text-hi) !important;
  font-family:var(--al-font-util); text-transform:uppercase;
  font-size:12px; letter-spacing:.1em;
  border-color:var(--al-line-2) !important;
}
.woocommerce table.shop_table td, table.shop_table td{ border-color:var(--al-line-2) !important; }
.woocommerce table.shop_table td .amount{ color:var(--al-brass-300); }
table.shop_table td.product-name a{ color:var(--al-text-hi) !important; }
.cart_totals h2, #order_review_heading, .woocommerce-billing-fields h3{ color:var(--al-text-hi) !important; }
/* Cart line items (this theme's custom cart template classes — same as Sunrise) */
body .woocommerce table.shop_table td.product-info .product-info-wrap .product-info-details a.product-item-name{ color:var(--al-text-hi); }
body .woocommerce table.shop_table td.product-info .product-info-wrap .product-info-details a.product-item-name:hover{ color:var(--al-brass-300); }
body .woocommerce table.shop_table td.product-info .product-info-wrap .product-info-details .product-remove-item a{
  background-color:var(--al-surface-2); color:var(--al-text-mid);
  border:1px solid var(--al-line-2);
}
body .woocommerce table.shop_table td.product-info .product-info-wrap .product-info-details .product-remove-item a:hover{
  background-color:var(--al-danger-fill); color:var(--al-text-hi); border-color:transparent;
}
body .woocommerce table.shop_table td.product-info .product-info-wrap .product-info-thumb img{
  background:var(--al-plate); border-radius:var(--al-r-ctrl);
}
/* Shipping calculator link — theme uses !important */
body .woocommerce-cart .cart-collaterals .shipping-calculator-button{ color:var(--al-turq-300) !important; }
body .woocommerce-cart .cart-collaterals .shipping-calculator-button:hover{ color:var(--al-turq-200) !important; }
.woocommerce .cart-collaterals div.cart_order_notes textarea{
  background:var(--al-surface-2); color:var(--al-text-hi);
  border:1px solid var(--al-line-2); border-radius:var(--al-r-ctrl);
}
.cart-empty, .wc-empty-cart-message{ color:var(--al-text-mid); }

/* ---------- 10. Checkout + forms ---------- */
/* The one field recipe, globally (v1.0.3 coverage) and on Woo's own rows */
body.theme-rocket-wc-master input[type="text"],
body.theme-rocket-wc-master input[type="email"],
body.theme-rocket-wc-master input[type="tel"],
body.theme-rocket-wc-master input[type="password"],
body.theme-rocket-wc-master input[type="search"],
body.theme-rocket-wc-master input[type="number"],
body.theme-rocket-wc-master textarea,
body.theme-rocket-wc-master select,
body.theme-rocket-wc-master .form-row input.input-text,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce form.checkout_coupon input#coupon_code,
.customer-register #customer_register input#reg_email,
body .customer-account .woocommerce-Input{
  background:var(--al-surface-2) !important; color:var(--al-text-hi) !important;
  border:1px solid var(--al-line-2) !important; border-radius:var(--al-r-ctrl) !important;
  transition:border-color .2s var(--al-ease);
}
body.theme-rocket-wc-master input::placeholder,
body.theme-rocket-wc-master textarea::placeholder,
.woocommerce form .form-row input.input-text::placeholder,
.woocommerce form .form-row textarea::placeholder{ color:var(--al-text-dim) !important; }
body.theme-rocket-wc-master input:focus,
body.theme-rocket-wc-master textarea:focus,
body.theme-rocket-wc-master select:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{ border-color:var(--al-turq-300) !important; }
.woocommerce form .form-row label{ color:var(--al-text-mid); }
.woocommerce form .form-row .required{ color:var(--al-danger) !important; }
.woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper{ color:var(--al-text-dim); }
.woocommerce-shipping-fields{ border-top-color:var(--al-line-2); border-bottom-color:var(--al-line-2); }
.customer-register #customer_register form{ border-color:var(--al-line-2); }

/* Select2 (country/state) — popover recipe */
body .select2-container--default .select2-selection--single{
  background:var(--al-surface-2); border:1px solid var(--al-line-2);
  border-radius:var(--al-r-ctrl);
}
body .select2-container--default .select2-selection--single .select2-selection__rendered{
  color:var(--al-text-hi); border-color:transparent;
}
body .select2-container--default .select2-selection--single .select2-selection__placeholder{ color:var(--al-text-dim); }
body .select2-dropdown{
  background:var(--al-surface-3); border-color:var(--al-line-2); color:var(--al-text-mid);
}
body .select2-container--default .select2-search--dropdown .select2-search__field{
  background:var(--al-surface-2); color:var(--al-text-hi); border:1px solid var(--al-line-2);
}
body .select2-container--default .select2-results__option--highlighted[aria-selected]{
  background:var(--al-surface-2); color:var(--al-brass-300);
}
body .select2-results__option[aria-selected=true]{ background:var(--al-ground-2); }

/* Order review + payment */
body #order_review tr.cart_item img{ border-color:var(--al-line-2); background:var(--al-plate); }
body #order_review tr.cart_item .product-name .product-quantity{
  background-color:var(--al-brass-400); color:var(--al-text-inverse);
}
body .woocommerce-checkout #payment, #add_payment_method #payment{
  background:var(--al-surface-1) !important;
  border:1px solid var(--al-line-2); border-radius:var(--al-r-card);
}
/* payment_box stays LIGHT (v1.0.3 must-keep): Stripe iframes carry near-black
   text our CSS cannot reach — paper keeps the digits legible. */
body .woocommerce-checkout #payment div.payment_box,
#add_payment_method #payment div.payment_box{
  background:var(--al-plate) !important; color:var(--al-ground-0) !important;
}
body .woocommerce-checkout #payment div.payment_box a,
#add_payment_method #payment div.payment_box a{ color:var(--al-brass-500) !important; }
body .woocommerce-checkout #payment div.payment_box::before{ border-bottom-color:var(--al-plate) !important; }
body .woocommerce-checkout #payment ul.payment_methods{ border-bottom-color:var(--al-line-2); }

/* Order received */
.order-reciept-wrap{ background:var(--al-surface-1); border-radius:var(--al-r-card); }
.woocommerce .woocommerce-customer-details address{
  border-color:var(--al-line-2); color:var(--al-text-mid); border-radius:var(--al-r-card);
}
.woocommerce-order-details, .woocommerce-MyAccount-content{ color:var(--al-text-mid); }

/* ---------- 11. My Account (also the staff door — keep it legible) -------- */
body .woocommerce-My-Account-navigation ul a,
body .woocommerce-MyAccount-navigation ul a{
  color:var(--al-text-mid); border-top-color:var(--al-line-2);
  transition:color .2s var(--al-ease);
}
body .woocommerce-My-Account-navigation ul li:last-child a,
body .woocommerce-MyAccount-navigation ul li:last-child a{ border-bottom-color:var(--al-line-2); }
body .woocommerce-My-Account-navigation ul li.is-active a,
body .woocommerce-My-Account-navigation ul li a:hover,
body .woocommerce-MyAccount-navigation ul li.is-active a,
body .woocommerce-MyAccount-navigation ul li a:hover{ color:var(--al-brass-300); }
/* Sunrise v5 contrast fixes */
body button.show-password-input, body button.show-password-input::after{ color:var(--al-text-mid) !important; }
body .customer-account p a, body .lost_reset_password p a,
body .woocommerce-lost-password .woocommerce p a{ color:var(--al-turq-300); }

/* ---------- 12. CF7 + Elementor forms + Klaviyo ---------- */
body .wpcf7-form .wpcf7-text, body .wpcf7-form .wpcf7-textarea,
body.theme-rocket-wc-master .wpcf7 input:not([type="submit"]),
body.theme-rocket-wc-master .wpcf7 textarea,
.elementor-field-group .elementor-field-textual{
  background:var(--al-surface-2) !important; color:var(--al-text-hi) !important;
  border:1px solid var(--al-line-2) !important; border-radius:var(--al-r-ctrl) !important;
}
body .wpcf7-form .wpcf7-text::placeholder, body .wpcf7-form .wpcf7-textarea::placeholder,
.elementor-field-group .elementor-field-textual::placeholder{ color:var(--al-text-dim); }
body .wpcf7-form .wpcf7-text:focus, body .wpcf7-form .wpcf7-textarea:focus,
.elementor-field-group .elementor-field-textual:focus{ border-color:var(--al-turq-300) !important; }
.wpcf7-form label{ color:var(--al-text-mid); }
.wpcf7-not-valid-tip{ color:var(--al-danger); }
.wpcf7 form .wpcf7-response-output{ color:var(--al-text-hi); border-radius:var(--al-r-ctrl); }
.wpcf7 form.sent .wpcf7-response-output{ border-color:var(--al-ok); }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output{ border-color:var(--al-warn); }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output{ border-color:var(--al-danger); }
/* Klaviyo embeds (newsletter section + popups) — field + button recipes */
[class*="klaviyo-form"] input[type="email"],
[class*="klaviyo-form"] input[type="text"]{
  background:var(--al-surface-2) !important; color:var(--al-text-hi) !important;
  border:1px solid var(--al-line-2) !important; border-radius:var(--al-r-ctrl) !important;
}
[class*="klaviyo-form"] button{
  background:var(--al-grad-gold) !important; color:var(--al-text-inverse) !important;
  font-family:var(--al-font-util) !important; font-weight:600 !important;
  letter-spacing:.12em !important; text-transform:uppercase;
  border-radius:var(--al-r-ctrl) !important; border:0 !important;
}
[class*="klaviyo-form"] button:hover{ filter:brightness(1.07); }

/* ---------- 13. Notices + store notice ---------- */
/* Square top (Woo draws a colored top border), repeated at the three
   specificities the theme contests. */
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  background:var(--al-surface-1) !important; color:var(--al-text-mid) !important;
  border-radius:0 0 var(--al-r-ctrl) var(--al-r-ctrl);
}
body .woocommerce-message, body .main_content .woocommerce-message,
body .single-product-container .woocommerce-message{ border-top-color:var(--al-ok) !important; }
body .woocommerce-message::before, body .main_content .woocommerce-message::before,
body .single-product-container .woocommerce-message::before{ color:var(--al-ok) !important; }
body .woocommerce-info{ border-top-color:var(--al-turq-300) !important; }
body .woocommerce-info::before{ color:var(--al-turq-300) !important; }
body .woocommerce-error{ border-top-color:var(--al-danger) !important; }
body .woocommerce-error::before{ color:var(--al-danger) !important; }
body .main_content .woocommerce-message a,
body .single-product-container .woocommerce-message a{ color:var(--al-brass-300); }
.woocommerce-store-notice, p.demo_store{ background:var(--al-brass-400) !important; color:var(--al-text-inverse) !important; }

/* ---------- 14. Footer ---------- */
body footer{ border-top:1px solid var(--al-line-1); }
body footer .site_main_footer{ color:var(--al-text-mid); }
body footer .site_main_footer p, footer .site_main_footer p{ color:var(--al-text-mid); font-size:.92rem; }
body footer .site_main_footer .footer-info p{ color:var(--al-text-mid); text-align:inherit !important; }
/* Column heads — caps utility, brass (theme paints them blue) */
body footer .site_main_footer .footer-sections h4,
footer .site_main_footer .widget-title, footer .site_main_footer span.h4,
body footer .site_main_footer .widget-title{
  font-family:var(--al-font-util) !important; font-weight:600; font-size:13px !important;
  letter-spacing:.18em; text-transform:uppercase; color:var(--al-brass-400) !important;
}
body footer .site_main_footer .footer-sections a,
footer .site_main_footer ul li a{
  color:var(--al-text-dim) !important; font-size:16px;
  transition:color .2s var(--al-ease);
}
body footer .site_main_footer .footer-sections a:hover,
footer .site_main_footer ul li a:hover{ color:var(--al-brass-300) !important; }
body footer .site_main_footer .footer-sections p{ color:var(--al-text-mid); }
footer .site_main_footer a[href^="mailto"], footer .site_main_footer a[href^="tel"]{ color:var(--al-text-mid) !important; }
footer .site_main_footer a[href^="mailto"]:hover, footer .site_main_footer a[href^="tel"]:hover{ color:var(--al-brass-300) !important; }
/* Social squares (AL footer has an icon row) */
footer .social-media-links-list{ display:flex; gap:.5rem; }
footer .social-media-links-list li a{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px;
  border:1px solid var(--al-line-2); border-radius:var(--al-r-sm);
  color:var(--al-text-mid) !important;
  transition:color .2s var(--al-ease), border-color .2s var(--al-ease), transform .2s var(--al-ease);
}
footer .social-media-links-list li a:hover{
  border-color:var(--al-brass-400); color:var(--al-brass-300) !important;
  transform:translateY(-2px);
}
body footer .footer-social-links a{ color:var(--al-brass-400); transition:color .2s var(--al-ease); }
body footer .footer-social-links a:hover{ color:var(--al-brass-300); }
/* Payment icons (v1.0.3 must-keep): dark card art gets a small paper plate,
   plus Sunrise's quiet-until-hover desaturation */
.footer-payment-cards{
  background:var(--al-ground-0) !important;
  border-top:1px solid var(--al-line-2);
}
.footer-payment-cards img{
  background:var(--al-plate); border-radius:3px; padding:2px;
  filter:saturate(.6) brightness(.95); opacity:.85;
  transition:filter .2s var(--al-ease), opacity .2s var(--al-ease);
}
.footer-payment-cards img:hover{ filter:none; opacity:1; }
/* Copyright strip */
body footer .site_copyright, .site_copyright{
  border-top:1px solid var(--al-line-1);
  color:var(--al-text-dim) !important; font-size:14px;
}
body footer .site_copyright p, .site_copyright p{ color:var(--al-text-dim) !important; }
body footer .site_copyright a{ color:var(--al-brass-300) !important; }
body footer .site_copyright a:hover{ color:var(--al-brass-100) !important; }

/* Agency credit lines (Primeview / Optimizex) — hidden until removed at the
   template source (v1.0.3 must-keep, verbatim). */
footer a[href*="primeview.com"], footer a[href*="optimizex.com"],
.site_copyright a[href*="primeview.com"], .site_copyright a[href*="optimizex.com"]{ display:none !important; }
footer p:has(a[href*="primeview.com"]), footer p:has(a[href*="optimizex.com"]),
.site_copyright p:has(a[href*="primeview.com"]), .site_copyright p:has(a[href*="optimizex.com"]),
.site_copyright div:has(> a[href*="primeview.com"]), .site_copyright div:has(> a[href*="optimizex.com"]){ display:none !important; }

/* Stale Black Friday 2024 banner on the old Elementor page (v1.0.3 must-keep) */
img[src*="black-friday-sale-2024"]{ display:none !important; }
a:has(> img[src*="black-friday-sale-2024"]),
.elementor-widget:has(img[src*="black-friday-sale-2024"]),
.elementor-section:has(> .elementor-container img[src*="black-friday-sale-2024"]){ display:none !important; }

/* ---------- 15. Elementor defaults + sticky glass ---------- */
.elementor-sticky--effects{
  background:rgba(11,10,8,.92) !important; /* overrides the section's inline bg once scrolled */
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--al-line-1);
  transition:background .3s var(--al-ease);
}
.elementor-widget-heading .elementor-heading-title{ color:var(--al-text-hi); }
body.theme-rocket-wc-master .elementor-heading-title{ font-family:var(--al-font-display) !important; } /* legacy pages: face only, colors left alone (v1.0.3) */
.elementor-widget-text-editor{ color:var(--al-text-mid); }
.elementor-nav-menu a.elementor-item{
  font-family:var(--al-font-util); font-weight:600; font-size:13px;
  text-transform:uppercase; letter-spacing:.14em; color:var(--al-text-mid);
}
.elementor-nav-menu a.elementor-item:hover,
.elementor-nav-menu a.elementor-item.elementor-item-active{ color:var(--al-brass-300); }
.elementor-nav-menu--dropdown{
  background:var(--al-surface-3); border:1px solid var(--al-line-1);
  border-radius:0 0 var(--al-r-card) var(--al-r-card);
  box-shadow:var(--al-shadow-pop);
}
.elementor-nav-menu--dropdown a{ color:var(--al-text-mid); }
.elementor-nav-menu--dropdown a:hover{ color:var(--al-turq-300); background:var(--al-surface-2); }
/* Instagram feed follow button */
body .sbi_follow_btn a{ background:var(--al-surface-2); color:var(--al-brass-300); border:1px solid var(--al-line-2); }
body .sbi_follow_btn a:hover{ background:var(--al-surface-3); color:var(--al-brass-100); box-shadow:none; }

/* ---------- 16. Front-page plumbing (v1.0.1 must-keep, verbatim) ----------
   The theme's page template renders content in .col-md-8 beside a .col-md-4
   sidebar; the rebuilt front page hides it so full-bleed bands center. */
body.home #secondary.widget-area,
body.home .row > .col-md-4{ display:none !important; }
body.home .row > .col-md-8{
  float:none !important; width:100% !important; max-width:100% !important;
  flex:0 0 100% !important;
}
body.home .container.main_content{
  width:100% !important; max-width:100% !important;
  padding-left:0 !important; padding-right:0 !important;
}
body.home .container.main_content > .row{ margin-left:0 !important; margin-right:0 !important; }
body.home #primary.site-content{ padding-top:0 !important; }
body.home header.innerpage-header{ display:none; } /* the hero replaces it */

/* ---------- 17. Layout primitives (the .al-* system the pages compose) ---- */
.al-wrap{ max-width:var(--al-wrap); margin-inline:auto; padding-inline:var(--al-gutter); }
.al-wrap--wide{ max-width:var(--al-wrap-wide); }
/* full-bleed band inside the theme's content column */
.al-full{ width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
.al-band{ padding-block:var(--al-section-y); background-color:var(--al-ground-1); }
.al-band--2{ background-color:var(--al-ground-2); }
.al-band--flush{ padding-block:0; }
/* grain: present as a surface, invisible as an image; bands only, never cards */
.al-grain{ position:relative; isolation:isolate; }
.al-grain::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:var(--al-grain); opacity:var(--al-grain-opacity);
}
.al-split{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(40px, 5vw, 64px); align-items:center;
}
.al-split--wide-left{ grid-template-columns:1.1fr 1fr; }
.al-split--wide-right{ grid-template-columns:1fr 1.1fr; }
@media (max-width:899px){
  .al-split, .al-split--wide-left, .al-split--wide-right{ grid-template-columns:1fr; gap:var(--al-sp-7); }
}
.al-cluster{ display:flex; flex-wrap:wrap; gap:var(--al-sp-4); align-items:center; }
.al-grid{ display:grid; grid-template-columns:repeat(var(--al-cols,3), minmax(0,1fr)); gap:var(--al-gap); }
.al-grid--4{ --al-cols:4; }
@media (max-width:1199px){ .al-grid--4{ --al-cols:3; } }
@media (max-width:991px){ .al-grid--4{ --al-cols:2; } }
@media (max-width:639px){ .al-grid--4{ --al-cols:1; } }
/* screen-reader only (stays focusable — the marquee pause toggle rides on it) */
.al-sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%);
  white-space:nowrap; border:0;
}

/* ---------- 18. The shared lockup (eyebrow / title / rule / lede) ---------
   Eyebrow = category name; H2 = a sentence with a period. */
.al-kicker,
body.theme-rocket-wc-master p.al-kicker{
  font-family:var(--al-font-util); font-weight:600; font-size:12px;
  letter-spacing:.18em; text-transform:uppercase; color:var(--al-brass-400);
  margin:0 0 14px;
}
.al-kicker--turq{ color:var(--al-turq-300); }
.al-sechead{ max-width:var(--al-wrap-text); margin:0 auto var(--al-sp-8); text-align:center; }
body.theme-rocket-wc-master .al-sechead__title{
  font-size:var(--al-fs-d2); line-height:var(--al-lh-d2); margin:0;
}
body.theme-rocket-wc-master p.al-sechead__lede{
  font-size:var(--al-fs-lede); line-height:var(--al-lh-body);
  color:var(--al-text-mid); max-width:58ch; margin:var(--al-sp-4) auto 0;
}
.al-sechead--left{ text-align:left; margin-left:0; margin-right:0; }
.al-sechead--left .al-sechead__lede{ margin-left:0; margin-right:0; }
/* Hairline rules. --stitch draws the same rule as saddle stitching. */
.al-rule{ border:0; height:1px; background:var(--al-line-1); width:64px; margin:var(--al-sp-4) auto; }
.al-rule--stitch{ height:2px; background:var(--al-stitch); }
.al-rule--full{ width:50%; } /* the same-ground band separator */
.al-rule--left{ margin-inline:0; }

/* ---------- 19. Buttons, text links (gold = commerce, ghost = presence) --- */
.al-btn, a.al-btn{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--al-grad-gold);
  color:var(--al-text-inverse) !important; /* beats theme content-link colors */
  font-family:var(--al-font-util); font-weight:600; font-size:var(--al-fs-u);
  letter-spacing:.12em; text-transform:uppercase;
  border:0; border-radius:var(--al-r-ctrl); padding:16px 32px;
  text-decoration:none !important; cursor:pointer;
  transition:filter .2s var(--al-ease), transform .2s var(--al-ease), box-shadow .2s var(--al-ease);
}
.al-btn:hover, a.al-btn:hover{
  filter:brightness(1.07); transform:translateY(-1px); box-shadow:var(--al-shadow-gold);
}
.al-btn--lg{ padding:18px 36px; }
.al-btn--ghost, a.al-btn--ghost{
  background:transparent; border:1px solid var(--al-brass-400);
  color:var(--al-brass-300) !important; box-shadow:none;
}
.al-btn--ghost:hover, a.al-btn--ghost:hover{
  background:var(--al-brass-tint); border-color:var(--al-brass-300);
  color:var(--al-brass-100) !important; filter:none; box-shadow:none;
}
.al-textlink, body.theme-rocket-wc-master a.al-textlink{
  font-family:var(--al-font-util); font-weight:600; font-size:13px;
  letter-spacing:.08em; color:var(--al-turq-300);
  text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px;
  transition:color .2s var(--al-ease);
}
.al-textlink:hover, body.theme-rocket-wc-master a.al-textlink:hover{ color:var(--al-turq-200); }
.al-textlink::after{
  content:"\00a0\2192"; display:inline-block; text-decoration:none;
  transition:transform .2s var(--al-ease);
}
.al-textlink:hover::after{ transform:translateX(4px); }

/* ---------- 20. Cards + badges (one recipe, five uses) ---------- */
.al-card{
  background:var(--al-surface-1); border:var(--al-border);
  border-radius:var(--al-r-card); overflow:hidden;
  box-shadow:var(--al-shadow-card);
  transition:transform .28s var(--al-ease), border-color .28s var(--al-ease), box-shadow .28s var(--al-ease);
}
.al-card:hover{
  transform:translateY(-4px);
  border-color:var(--al-line-1); /* structural -> gold: the swap does the work */
  box-shadow:var(--al-shadow-pop);
}
.al-card--link{ display:flex; text-decoration:none !important; color:inherit; }
.al-card:hover .al-well img{ transform:scale(1.04); }
.al-badge{
  display:inline-block; background:var(--al-brass-400); color:var(--al-text-inverse);
  font-family:var(--al-font-util); font-weight:600; font-size:11px;
  letter-spacing:.1em; text-transform:uppercase;
  border-radius:var(--al-r-pill); padding:2px 12px;
}
.al-badge--outline{
  background:transparent; color:var(--al-turq-300);
  border:1px solid var(--al-turq-400);
  text-transform:none; letter-spacing:.04em; padding:2px 10px;
}

/* ---------- 21. Photo wells — the Sunrise uniformity trick: identical well +
   fixed ratio, one object-fit per family, a fixed wash in the LEATHER ground,
   one identical name bar (composed by the page). */
.al-well{
  display:block; position:relative; overflow:hidden;
  background:var(--al-ground-2);
  border:var(--al-border); border-radius:var(--al-r-card);
  aspect-ratio:var(--al-ratio, auto);
}
.al-well img{
  display:block; width:100%; height:100%; object-fit:cover; object-position:center;
  transition:transform var(--al-t-image) var(--al-ease);
}
.al-well::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(rgba(28,26,22,.24), rgba(28,26,22,.24)); /* ground-2 wash */
}
/* inside a card the card owns the frame */
.al-card .al-well{ border:0; border-radius:0; }
/* PLATE variant — white-studio catalogue squares sit contained on warm paper,
   never plain #fff, with a faint wash + desaturation so all read alike */
.al-well--plate{
  background:var(--al-plate); padding:var(--al-plate-pad);
  display:flex; align-items:center; justify-content:center;
  box-shadow:inset 0 0 0 1px var(--al-plate-edge);
}
.al-well--plate img{ object-fit:contain; filter:saturate(.96); }
.al-well--plate::after{ background:linear-gradient(rgba(28,26,22,.06), rgba(28,26,22,.06)); }
/* DOCUMENTARY variant — owner's 640x480 workshop frames, warm-graded
   (desaturate FIRST, then sepia). Never upscale past 1.2x. */
.al-well--doc img{ filter:var(--al-doc-filter); }
.al-well--doc::after{ background:var(--al-doc-tone); }

/* ---------- 22. Detail rows + prose ---------- */
.al-dl{ margin:0; display:grid; gap:22px; }
.al-dl__row{ display:grid; grid-template-columns:88px 1fr; gap:var(--al-sp-4); align-items:baseline; }
.al-dl dt{
  font-family:var(--al-font-util); font-weight:600; font-size:11px;
  letter-spacing:.18em; text-transform:uppercase; color:var(--al-brass-400);
}
.al-dl dd{ margin:0; color:var(--al-text-mid); line-height:1.6; }
.al-prose p{ font-size:var(--al-fs-body); line-height:1.75; color:var(--al-text-mid); }
.al-prose p:last-child{ margin-bottom:0; }

/* ---------- 23. Reviews marquee — safety net: identical to the homepage's own
   rules, so the 35s marquee + WCAG 2.2.2 pause survive a stripped page style.
   One lap = one full set. */
.al-reviews{ --al-rev-cycle:35s; --al-rev-card:min(82vw, 380px); --al-rev-fade:var(--al-sp-9); }
@media (max-width:639px){ .al-reviews{ --al-rev-card:min(78vw, 300px); --al-rev-fade:var(--al-sp-8); } }
.al-reviews__viewport{
  position:relative; overflow:hidden;
  margin-inline:calc(var(--al-gutter) * -1); padding-inline:var(--al-gutter);
  padding-block:var(--al-sp-5) var(--al-sp-8);
  margin-block:calc(var(--al-sp-5) * -1) calc(var(--al-sp-8) * -1);
}
.al-reviews__viewport::before, .al-reviews__viewport::after{
  content:""; position:absolute; top:0; bottom:0; width:var(--al-rev-fade);
  z-index:var(--al-z-base); pointer-events:none;
}
.al-reviews__viewport::before{ left:0; background-image:linear-gradient(90deg, var(--al-ground-2), transparent); }
.al-reviews__viewport::after{ right:0; background-image:linear-gradient(270deg, var(--al-ground-2), transparent); }
.al-reviews__track{
  display:flex; flex-wrap:nowrap; align-items:stretch; width:max-content;
  /* NO gap here — half of it would land inside the 50% and snap every lap */
  animation:al-reviews-marquee var(--al-rev-cycle) linear infinite;
  will-change:transform;
}
@keyframes al-reviews-marquee{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
/* the set owns every gap: n between cards + 1 trailing, so -50% lands clean */
.al-reviews__set{
  display:flex; flex-wrap:nowrap; align-items:stretch; flex:0 0 auto;
  gap:var(--al-gap); padding-right:var(--al-gap);
}
.al-reviews__set > .al-reviews__card{ flex:0 0 auto; width:var(--al-rev-card); }
/* pause: hover / focus-within, plus the checkbox stop control */
.al-reviews__viewport:hover .al-reviews__track,
.al-reviews__viewport:focus-within .al-reviews__track{ animation-play-state:paused; }
.al-reviews__toggle:checked ~ .al-reviews__viewport .al-reviews__track{ animation-play-state:paused; }
.al-reviews__pause-off{ display:none; }
.al-reviews__toggle:checked ~ .al-reviews__pause .al-reviews__pause-on{ display:none; }
.al-reviews__toggle:checked ~ .al-reviews__pause .al-reviews__pause-off{ display:inline; }
.al-reviews__toggle:focus-visible + .al-reviews__pause{
  outline:2px solid var(--al-turq-300); outline-offset:3px; border-radius:var(--al-r-sm);
}
/* reduced motion: static centred grid, duplicate set + stop control removed */
@media (prefers-reduced-motion: reduce){
  .al-reviews__viewport{ overflow:visible; margin-inline:0; padding-inline:0; }
  .al-reviews__viewport::before, .al-reviews__viewport::after{ content:none; }
  .al-reviews__track{ display:block; width:auto; animation-name:none; transform:none; will-change:auto; }
  .al-reviews__set{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--al-gap); padding-right:0; }
  .al-reviews__set > .al-reviews__card{ width:auto; }
  .al-reviews__set--dup{ display:none; }
  .al-reviews__toggle, .al-reviews__pause{ display:none; }
}
@media (prefers-reduced-motion: reduce) and (max-width:991px){
  .al-reviews__set{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (prefers-reduced-motion: reduce) and (max-width:639px){
  .al-reviews__set{ grid-template-columns:minmax(0,1fr); }
}
@media (forced-colors: active){
  .al-reviews__viewport::before, .al-reviews__viewport::after{ content:none; }
}

/* ---------- 24. Category tile system + chip band (shop-index vocabulary) -- */
.al-cat-grid{
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr));
  gap:26px; margin:0; padding:0; list-style:none;
}
@media (max-width:1100px){ .al-cat-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:22px; } }
@media (max-width:782px){ .al-cat-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; } }
@media (max-width:420px){ .al-cat-grid{ grid-template-columns:1fr; } }
.al-cat-tile{
  display:flex; flex-direction:column; position:relative;
  border-radius:var(--al-r-card); overflow:hidden;
  background:var(--al-surface-1); border:1px solid var(--al-line-2);
  text-decoration:none !important;
  box-shadow:0 10px 28px rgba(11,10,8,.35);
  transition:transform 220ms var(--al-ease), border-color 220ms var(--al-ease), box-shadow 220ms var(--al-ease);
}
.al-cat-tile:hover, .al-cat-tile:focus-visible{
  transform:translateY(-4px);
  border-color:rgba(217,184,124,.55);
  box-shadow:0 18px 40px rgba(11,10,8,.5);
}
/* the photo well: same ratio, same paper plate, same padding, every tile */
.al-cat-tile__media{
  position:relative; aspect-ratio:4 / 3;
  background:var(--al-plate); padding:var(--al-plate-pad);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.al-cat-tile__media img{
  display:block; width:100%; height:100%;
  object-fit:contain; object-position:center; margin:0;
  filter:saturate(.96);
  transition:transform 400ms var(--al-ease);
}
.al-cat-tile:hover .al-cat-tile__media img,
.al-cat-tile:focus-visible .al-cat-tile__media img{ transform:scale(1.045); }
/* the uniform wash + recessed inner edge, identically on all */
.al-cat-tile__media::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(28,26,22,.04) 0%, rgba(28,26,22,.06) 62%, rgba(28,26,22,.14) 100%);
}
.al-cat-tile__media::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  box-shadow:inset 0 0 0 1px var(--al-plate-edge);
}
/* the name bar — identical typography on every tile */
.al-cat-tile__bar{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding:15px 18px 16px;
  border-top:1px solid var(--al-line-2);
  background:linear-gradient(180deg, var(--al-surface-1) 0%, #221F1A 100%);
}
.al-cat-tile__name{
  font-family:var(--al-font-display); font-weight:600;
  font-size:clamp(1.02rem, 1.4vw, 1.22rem); line-height:1.25;
  letter-spacing:.01em; color:var(--al-text-hi); margin:0;
  transition:color 220ms var(--al-ease);
}
.al-cat-tile:hover .al-cat-tile__name{ color:var(--al-brass-300); }
.al-cat-tile__shop{
  font-family:var(--al-font-util); font-weight:600; font-size:.7rem;
  letter-spacing:.16em; text-transform:uppercase; white-space:nowrap;
  color:var(--al-brass-300);
  transition:color 220ms var(--al-ease);
}
.al-cat-tile__shop::after{
  content:"\2192"; display:inline-block; margin-left:6px;
  transition:transform 220ms var(--al-ease);
}
.al-cat-tile:hover .al-cat-tile__shop{ color:var(--al-turq-300); }
.al-cat-tile:hover .al-cat-tile__shop::after{ transform:translateX(4px); }
.al-cat-tile__count{
  display:block; font-family:var(--al-font-body); font-size:.78rem;
  letter-spacing:.02em; color:var(--al-text-mid); margin-top:3px;
}
/* subcategory chip band (category pages, after the title) */
.al-chips{
  display:flex; flex-wrap:nowrap; align-items:center; gap:10px;
  overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;
  padding:4px 2px 12px; margin:14px 0 6px; list-style:none;
}
.al-chips::-webkit-scrollbar{ display:none; }
body.tax-product_cat .woocommerce-products-header .al-chips{ margin-top:18px; margin-bottom:0; }
.al-chip{
  flex:0 0 auto; display:inline-block; padding:9px 18px;
  border-radius:var(--al-r-pill);
  border:1px solid var(--al-line-2); background:var(--al-surface-1);
  color:var(--al-text-mid);
  font-family:var(--al-font-util); font-weight:600; font-size:.72rem;
  letter-spacing:.14em; text-transform:uppercase; white-space:nowrap;
  text-decoration:none !important;
  transition:color 180ms var(--al-ease), border-color 180ms var(--al-ease), background 180ms var(--al-ease);
}
.al-chip:hover, .al-chip:focus-visible{
  color:var(--al-turq-300); border-color:rgba(95,210,194,.6); background:var(--al-ground-2);
}
.al-chip.is-active, .al-chip.is-active:hover{
  background:var(--al-grad-gold); border-color:transparent; color:var(--al-text-inverse);
}
.al-chips-label{
  display:block; font-family:var(--al-font-util); font-weight:600; font-size:.68rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--al-text-mid); margin:16px 0 0;
}
/* shop-index intro (centred, gradient italic word — use at most twice sitewide) */
.al-cat-intro{ text-align:center; max-width:720px; margin:0 auto 44px; padding:0 16px; }
.al-cat-intro__title{
  font-family:var(--al-font-display); font-weight:600;
  font-size:clamp(2rem, 4.6vw, 3.1rem); line-height:1.12;
  color:var(--al-text-hi); margin:0 0 16px;
}
.al-cat-intro__title em{
  font-style:italic; background:var(--al-grad-gold);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.al-cat-intro__lede{ font-size:1.02rem; line-height:1.7; color:var(--al-text-mid); margin:0; }

/* ---------- 25. Est. hallmark roundel + inline lockup ("25+ years") ------- */
.al-est-badge{
  display:inline-flex; flex-direction:column; align-items:center; justify-content:center;
  width:96px; height:96px; border-radius:50%;
  background:var(--al-ground-2); border:1px solid var(--al-brass-500);
  box-shadow:inset 0 0 0 3px var(--al-ground-2), inset 0 0 0 4px var(--al-brass-400);
  text-align:center; position:relative; overflow:hidden;
}
.al-est-badge__sun{ width:18px; height:9px; margin-bottom:2px; border-radius:18px 18px 0 0; background:var(--al-grad-gold); }
.al-est-badge__est{
  font-family:var(--al-font-util); font-weight:600; font-size:9px;
  letter-spacing:.3em; text-transform:uppercase; color:var(--al-brass-400); text-indent:.3em;
}
.al-est-badge__year{ font-family:var(--al-font-display); font-weight:500; font-size:28px; line-height:1.05; color:var(--al-brass-100); }
.al-est-badge__loc{
  font-family:var(--al-font-util); font-size:7px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--al-text-dim); text-indent:.2em; margin-top:2px;
}
.al-est-badge::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(115deg, transparent 42%, rgba(240,220,180,.14) 50%, transparent 58%);
  transform:translateX(-100%); animation:alShimmer 6s var(--al-ease) infinite;
}
@keyframes alShimmer{ 0%,72%{ transform:translateX(-100%); } 86%,100%{ transform:translateX(100%); } }
.al-est-inline{ display:flex; align-items:center; gap:16px; justify-content:center; }
.al-est-inline::before, .al-est-inline::after{ content:""; width:48px; height:1px; background:var(--al-line-1); }
.al-est-inline span{
  font-family:var(--al-font-util); font-weight:600; font-size:12px;
  letter-spacing:.25em; text-transform:uppercase; color:var(--al-brass-400); white-space:nowrap;
}

/* ---------- 26. 404 + search results + Learn (Sunrise left these bare) ---- */
body.error404 .main_content, body.search .main_content{ color:var(--al-text-mid); }
body.error404 .page-content, body.search-no-results .page-content{ text-align:center; padding-block:var(--al-sp-8); }
body.error404 h1, body.search h1.page-title{
  font-family:var(--al-font-display); font-weight:500; color:var(--al-text-hi);
}
.search-form .search-field{
  background:var(--al-surface-2) !important; color:var(--al-text-hi) !important;
  border:1px solid var(--al-line-2) !important; border-radius:var(--al-r-ctrl) !important;
}
.search-form .search-submit{
  background:var(--al-grad-gold) !important; color:var(--al-text-inverse) !important;
  font-family:var(--al-font-util) !important; font-weight:600 !important;
  text-transform:uppercase; letter-spacing:.12em !important;
  border:0 !important; border-radius:var(--al-r-ctrl) !important;
}
body.search article .entry-title a{ color:var(--al-text-hi); }
body.search article .entry-title a:hover{ color:var(--al-brass-300); }
/* content-page hierarchy fix (Sunrise v5) — theme flattens h3 on pages */
.page .entry-content h3, .page article h3{ font-size:1.35rem !important; line-height:1.3; }

/* ---------- 27. Motion safety (ship it verbatim) ---------- */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; }
}
/* targeted opt-outs: transforms zeroed where a lift/zoom is the whole effect */
@media (prefers-reduced-motion: reduce){
  .al-card:hover, ul.products li.product:hover, .al-cat-tile:hover{ transform:none; }
  .al-card:hover .al-well img, ul.products li.product:hover img,
  .al-cat-tile:hover .al-cat-tile__media img{ transform:none; }
  .al-btn:hover, a.al-btn:hover{ transform:none; }
  .al-est-badge::after{ animation:none; }
}
/* =============================== end of skin =============================== */
