/*
Theme Name:   AfterGlow Supply
Theme URI:    https://afterglowsupply.com
Description:  Elevated festival wear — made for the golden hour and everything after. Shoptimizer child theme with the AfterGlow brand system.
Author:       AfterGlow Supply
Author URI:   https://afterglowsupply.com
Template:     shoptimizer
Version:      1.5.1
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  afterglow
*/

/* =========================================================
   AfterGlow brand tokens
   ========================================================= */
:root {
  --ag-ink: #140E22;        /* twilight aubergine — headers, footer */
  --ag-ink-2: #1D1430;      /* raised dark surface */
  --ag-ink-3: #2A1F42;      /* borders on dark */
  --ag-cream: #FAF6EF;      /* warm cream */
  --ag-paper: #FCFAF6;      /* page background */
  --ag-body: #372C4E;       /* body text on light */
  --ag-muted: #7A7090;
  --ag-gold: #F0B35C;
  --ag-rose: #E0517A;
  --ag-rose-deep: #C9436B;
  --ag-violet: #8B5CF6;
  --ag-grad: linear-gradient(100deg, #F0B35C 0%, #E0517A 52%, #8B5CF6 100%);
  --ag-grad-soft: linear-gradient(100deg, rgba(240,179,92,.16), rgba(224,81,122,.16), rgba(139,92,246,.16));
  --ag-radius: 14px;
  --ag-font-display: 'Marcellus', 'Georgia', serif;
  --ag-font-body: 'Jost', 'Helvetica Neue', sans-serif;
}

/* =========================================================
   Global typography & surfaces
   ========================================================= */
body {
  font-family: var(--ag-font-body);
  background: var(--ag-paper);
  color: var(--ag-body);
}
h1, h2, h3, h4,
.woocommerce-loop-product__title,
.product_title,
.entry-title,
.section-title {
  font-family: var(--ag-font-display);
  font-weight: 400;
  letter-spacing: .015em;
  color: var(--ag-ink);
}
a { transition: color .18s ease; }

::selection { background: var(--ag-rose); color: #fff; }

/* =========================================================
   Announcement bar (rendered by child theme hook)
   ========================================================= */
.ag-announce {
  background: var(--ag-grad);
  color: #fff;
  text-align: center;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 9px 16px;
}

/* =========================================================
   Header & navigation
   ========================================================= */
.site-header,
.shoptimizer-sticky-wrapper .site-header {
  background: var(--ag-ink);
  border-bottom: 1px solid var(--ag-ink-3);
}
.site-header .custom-logo { max-height: 56px; width: auto; }
.main-navigation ul li a,
.secondary-navigation a {
  font-family: var(--ag-font-body);
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-size: 14px;
  color: var(--ag-cream);
}
.main-navigation ul li a:hover { color: var(--ag-gold); }
.main-navigation ul.sub-menu {
  background: var(--ag-ink-2);
  border: 1px solid var(--ag-ink-3);
  border-radius: 10px;
}
.main-navigation ul.sub-menu li a { text-transform: none; letter-spacing: .03em; font-size: 15px; }

/* header row: logo left · compact centered search · cart right (iHeartRaves layout) */
.main-header { align-items: center; }
@media (min-width: 993px) {
  .site-search {
    flex: 0 1 420px;   /* cap the search — no more full-width bar */
    margin: 0 auto;    /* center it in the space between logo and cart */
    max-width: 420px;
  }
}
/* search field in dark header — compact pill */
.site-header .widget_product_search input[type="search"],
.site-header .search-field {
  background: var(--ag-ink-2);
  border: 1px solid var(--ag-ink-3);
  color: var(--ag-cream);
  border-radius: 100px;
  font-size: 14.5px;
}
.site-header .site-search input {
  padding-top: 0.72rem;
  padding-bottom: 0.72rem;
  padding-left: 2.6rem;
}
.site-header .site-search form:before { left: 16px; opacity: .7; }
.site-header .search-field::placeholder { color: var(--ag-muted); }

/* =========================================================
   Buttons — pill, rose base, gradient hover glow
   ========================================================= */
.button, button, input[type="submit"], input[type="button"],
.woocommerce a.button, .wc-block-components-button,
.single_add_to_cart_button, .checkout-button {
  font-family: var(--ag-font-body) !important;
  font-weight: 600 !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 100px !important;
  transition: all .22s ease !important;
}
.button:hover, .woocommerce a.button:hover, .single_add_to_cart_button:hover {
  box-shadow: 0 6px 24px rgba(224, 81, 122, .38);
  transform: translateY(-1px);
}
.ag-btn-gradient,
.ag-hero .wp-block-button__link {
  background: var(--ag-grad) !important;
  color: #fff !important;
  border: 0 !important;
}

/* =========================================================
   Product cards & shop
   ========================================================= */
ul.products li.product img,
.woocommerce-product-gallery__image img {
  border-radius: var(--ag-radius);
}
ul.products li.product .woocommerce-loop-product__title { font-size: 17px; }
ul.products li.product .price,
.summary .price { color: var(--ag-rose); font-weight: 600; }
.onsale, .woocommerce span.onsale {
  background: var(--ag-grad) !important;
  color: #fff !important;
  border-radius: 100px;
  letter-spacing: .05em;
  font-weight: 600;
}
.star-rating span::before, .star-rating::before { color: var(--ag-gold); }

/* breadcrumb + archive titles */
.woocommerce-breadcrumb { font-size: 13px; letter-spacing: .04em; }
.woocommerce-products-header__title { letter-spacing: .02em; }

/* =========================================================
   Footer
   ========================================================= */
.site-footer {
  background: var(--ag-ink);
  color: #CFC6E0;
  border-top: 1px solid var(--ag-ink-3);
}
.site-footer a { color: #CFC6E0; }
.site-footer a:hover { color: var(--ag-gold); }
.site-footer h4, .site-footer .widget-title {
  font-family: var(--ag-font-body);
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 13px;
  color: var(--ag-cream);
}
.site-info { background: var(--ag-ink); color: var(--ag-muted); border-top: 1px solid var(--ag-ink-3); }

/* =========================================================
   Homepage sections
   ========================================================= */

/* --- hero --- */
.ag-hero {
  position: relative;
  min-height: min(82vh, 780px);
  display: flex;
  align-items: flex-end;
  border-radius: 0;
  overflow: hidden;
  background-size: cover;
  background-position: center 30%;
}
.ag-hero::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(20,14,34,.88) 0%, rgba(20,14,34,.35) 45%, rgba(20,14,34,.05) 75%);
}
.ag-hero__inner {
  position: relative; z-index: 2;
  width: 100%;
  max-width: 1300px;
  margin: 0 auto;
  padding: 56px 24px 72px;
}
.ag-hero__kicker {
  color: var(--ag-gold);
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-size: 13px;
  margin-bottom: 14px;
}
.ag-hero h1 {
  color: var(--ag-cream);
  font-size: clamp(2.4rem, 5.6vw, 4.4rem);
  line-height: 1.06;
  margin: 0 0 14px;
  max-width: 14ch;
}
.ag-hero p.ag-hero__sub {
  color: rgba(250,246,239,.85);
  font-size: clamp(1rem, 1.6vw, 1.2rem);
  max-width: 52ch;
  margin: 0 0 26px;
}

/* --- section shell --- */
.ag-section { max-width: 1300px; margin: 0 auto; padding: 64px 24px 8px; }
.ag-section--full { max-width: none; padding-left: 0; padding-right: 0; }
.ag-eyebrow {
  color: var(--ag-rose);
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-size: 12.5px;
  margin-bottom: 8px;
}
.ag-h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); margin: 0 0 10px; }
.ag-lede { color: var(--ag-muted); max-width: 62ch; font-size: 1.05rem; }

/* --- category tiles --- */
.ag-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 18px;
  margin-top: 26px;
}
.ag-tile {
  position: relative;
  display: block;
  border-radius: var(--ag-radius);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  background: var(--ag-ink-2);
}
.ag-tile img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .5s ease;
  display: block;
}
.ag-tile:hover img { transform: scale(1.045); }
.ag-tile::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(20,14,34,.82) 0%, rgba(20,14,34,0) 55%);
}
.ag-tile__label {
  position: absolute; z-index: 2;
  left: 20px; right: 20px; bottom: 18px;
  color: var(--ag-cream);
}
.ag-tile__label strong {
  display: block;
  font-family: var(--ag-font-display);
  font-weight: 400;
  font-size: 1.45rem;
  letter-spacing: .02em;
}
.ag-tile__label span {
  display: inline-block;
  margin-top: 4px;
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ag-gold);
}

/* --- The Plug feature band --- */
.ag-band {
  background: var(--ag-ink);
  color: var(--ag-cream);
  margin-top: 72px;
}
.ag-band__inner {
  max-width: 1300px; margin: 0 auto;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 48px;
  align-items: center;
  padding: 72px 24px;
}
.ag-band__inner img { border-radius: var(--ag-radius); width: 100%; height: auto; display: block; }
.ag-band h2 { color: var(--ag-cream); font-size: clamp(1.8rem, 3.2vw, 2.6rem); margin: 0 0 12px; }
.ag-band p { color: rgba(250,246,239,.78); font-size: 1.05rem; }
.ag-band ul { list-style: none; margin: 22px 0 30px; padding: 0; }
.ag-band ul li {
  position: relative;
  padding-left: 30px;
  margin-bottom: 13px;
  font-size: 1.02rem;
}
.ag-band ul li::before {
  content: "";
  position: absolute; left: 0; top: .32em;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--ag-grad);
  box-shadow: 0 0 12px rgba(224,81,122,.55);
}
@media (max-width: 880px) {
  .ag-band__inner { grid-template-columns: 1fr; padding: 48px 24px; }
}

/* --- value props --- */
.ag-props {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 18px;
  margin: 40px auto 0;
  max-width: 1300px;
  padding: 0 24px;
}
.ag-prop {
  background: #fff;
  border: 1px solid #EFE9DE;
  border-radius: var(--ag-radius);
  padding: 26px 24px;
}
.ag-prop .ag-orb {
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--ag-grad);
  box-shadow: 0 0 14px rgba(224,81,122,.45);
  margin-bottom: 14px;
}
.ag-prop strong {
  display: block;
  font-family: var(--ag-font-display);
  font-weight: 400;
  font-size: 1.15rem;
  color: var(--ag-ink);
  margin-bottom: 6px;
}
.ag-prop span { color: var(--ag-muted); font-size: .98rem; }

/* --- newsletter --- */
.ag-newsletter {
  background: var(--ag-ink);
  margin-top: 72px;
  padding: 72px 24px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.ag-newsletter::before {
  content: "";
  position: absolute;
  left: 50%; top: -220px;
  transform: translateX(-50%);
  width: 560px; height: 560px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(240,179,92,.32) 0%, rgba(224,81,122,.16) 45%, rgba(139,92,246,0) 72%);
  pointer-events: none;
}
.ag-newsletter h2 { color: var(--ag-cream); position: relative; margin: 0 0 10px; }
.ag-newsletter p { color: rgba(250,246,239,.75); position: relative; max-width: 52ch; margin: 0 auto 26px; }

/* gradient text utility */
.ag-grad-text {
  background: var(--ag-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* homepage spacing fix under fullwidth template */
.page-template-template-fullwidth .site-main { padding-top: 0; }
.page-template-template-fullwidth .entry-header { display: none; }

/* =========================================================
   Header cart + nav polish (v1.1)
   ========================================================= */
.site-header-cart .cart-contents,
.site-header-cart .cart-contents .amount,
.shoptimizer-cart a.cart-contents,
.shoptimizer-cart a.cart-contents .amount {
  color: var(--ag-cream) !important;
  font-weight: 500;
}
.site-header-cart .cart-contents .count,
.shoptimizer-cart a.cart-contents .count {
  background: var(--ag-grad) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 100px;
  font-weight: 600;
}
.shoptimizer-cart a.cart-contents .count:after { display: none; }
.site-header-cart .cart-contents:hover .count,
.shoptimizer-cart a.cart-contents:hover .count {
  box-shadow: 0 0 14px rgba(224, 81, 122, .5);
}
.main-navigation ul.menu > li > a { position: relative; }
.main-navigation ul.menu > li > a::after {
  content: "";
  position: absolute;
  left: 12%; right: 12%; bottom: 2px;
  height: 2px;
  background: var(--ag-grad);
  border-radius: 2px;
  opacity: 0;
  transform: scaleX(.5);
  transition: opacity .2s ease, transform .2s ease;
}
.main-navigation ul.menu > li > a:hover::after,
.main-navigation ul.menu > li.current-menu-item > a::after {
  opacity: 1;
  transform: scaleX(1);
}
/* suppress Shoptimizer's own nav underline so only the gradient one shows */
.main-navigation ul li a span:before,
.menu-primary-menu-container > ul > li > a span:before {
  display: none !important;
  border: 0 !important;
}

/* =========================================================
   Homepage v2 — graphic hero + tee collage + marquee
   ========================================================= */
.ag-hero2 {
  position: relative;
  background: var(--ag-ink);
  overflow: hidden;
}
.ag-hero2::before {
  content: "";
  position: absolute;
  left: -180px; top: -260px;
  width: 700px; height: 700px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(240,179,92,.30) 0%, rgba(224,81,122,.14) 45%, rgba(139,92,246,0) 72%);
  pointer-events: none;
}
.ag-hero2::after {
  content: "";
  position: absolute;
  right: -220px; bottom: -300px;
  width: 640px; height: 640px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(139,92,246,.22) 0%, rgba(139,92,246,0) 70%);
  pointer-events: none;
}
.ag-hero2__inner {
  position: relative; z-index: 2;
  max-width: 1300px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 48px;
  align-items: center;
  padding: 72px 24px 84px;
}
.ag-hero2 h1 {
  font-family: var(--ag-font-display);
  font-weight: 400;
  color: var(--ag-cream);
  font-size: clamp(2.4rem, 5.2vw, 4.2rem);
  line-height: 1.06;
  margin: 0 0 16px;
}
.ag-hero2 .ag-hero2__sub {
  color: rgba(250,246,239,.82);
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  max-width: 46ch;
  margin: 0 0 28px;
}
.ag-hero2 .ag-cta-row { display: flex; gap: 14px; flex-wrap: wrap; }
.ag-btn-ghost {
  background: transparent !important;
  color: var(--ag-cream) !important;
  border: 1px solid rgba(250,246,239,.35) !important;
}
.ag-btn-ghost:hover { border-color: var(--ag-gold) !important; color: var(--ag-gold) !important; }
.ag-collage { position: relative; height: 500px; }
.ag-collage img {
  position: absolute;
  width: 60%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 24px 60px rgba(0,0,0,.45);
  border: 1px solid rgba(250,246,239,.08);
  transition: transform .35s ease;
}
.ag-collage img:hover { transform: scale(1.03) rotate(0deg) !important; z-index: 9 !important; }
.ag-collage img:nth-child(1) { left: 0; top: 4%; transform: rotate(-7deg); z-index: 1; }
.ag-collage img:nth-child(2) { right: 0; top: 0; width: 56%; transform: rotate(5deg); z-index: 2; }
.ag-collage img:nth-child(3) { left: 20%; bottom: 0; width: 58%; transform: rotate(-2deg); z-index: 3; }
@media (max-width: 880px) {
  .ag-hero2__inner { grid-template-columns: 1fr; padding: 52px 24px 60px; }
  .ag-collage { height: 420px; max-width: 420px; margin: 0 auto; width: 100%; }
}

.ag-marquee {
  background: var(--ag-grad);
  color: #fff;
  overflow: hidden;
  white-space: nowrap;
  padding: 11px 0;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-size: 13px;
}
.ag-marquee span {
  display: inline-block;
  padding-left: 100%;
  animation: ag-scroll 30s linear infinite;
}
@keyframes ag-scroll { to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) {
  .ag-marquee span { animation: none; padding-left: 0; }
}

/* =========================================================
   Shop filter bar (v1.2)
   ========================================================= */
.ag-filterbar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 16px 22px;
  width: 100%;
  margin: 4px 0 28px;
  padding: 20px 22px;
  background: #fff;
  border: 1px solid #EFE9DE;
  border-radius: var(--ag-radius);
}
.ag-filterbar__item .bapf_head h3,
.ag-filterbar__item .berocket_aapf_widget-title,
.ag-filterbar__item h3 {
  font-family: var(--ag-font-body);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ag-ink);
  margin: 0 0 10px;
}
.ag-filterbar__item ul { list-style: none; margin: 0; padding: 0; max-height: 168px; overflow-y: auto; }
.ag-filterbar__item ul li { margin: 0 0 6px; font-size: 14.5px; }
.ag-filterbar__item ul li a { color: var(--ag-body); }
.ag-filterbar__item ul li a:hover { color: var(--ag-rose); }
.ag-filterbar__item input[type="checkbox"] { accent-color: var(--ag-rose); }
.ag-filterbar .bapf_slidr_main .ui-slider-range { background: var(--ag-grad) !important; }
.ag-filterbar .bapf_slidr_main .ui-slider-handle { border-color: var(--ag-rose) !important; }
@media (max-width: 640px) {
  .ag-filterbar { grid-template-columns: 1fr 1fr; padding: 16px; }
}

/* full-width shop grid breathing room */
.post-type-archive-product .site-main,
.tax-product_cat .site-main { padding-top: 10px; }

/* =========================================================
   Sticky sidebar filters (v1.3)
   ========================================================= */
@media (min-width: 993px) {
  /* Shoptimizer's off-canvas transform + ancestor overflow both break position:sticky — neutralize on desktop archives */
  .woocommerce-shop .secondary-wrapper,
  .post-type-archive-product .secondary-wrapper,
  .tax-product_cat .secondary-wrapper {
    transform: none !important;
    position: sticky;
    top: 92px;
    align-self: flex-start;
    height: auto !important;
  }
  .woocommerce-shop #secondary,
  .post-type-archive-product #secondary,
  .tax-product_cat #secondary {
    max-height: calc(100vh - 110px);
    overflow-y: auto;
    scrollbar-width: thin;
  }
  .woocommerce-shop .site-content,
  .post-type-archive-product .site-content,
  .tax-product_cat .site-content,
  .woocommerce-shop .col-full,
  .post-type-archive-product .col-full,
  .tax-product_cat .col-full {
    overflow: visible !important;
  }
  /* overflow:visible removed the theme's float containment — restore it so the
     footer clears a sidebar taller than the product grid */
  .woocommerce-shop .col-full::after,
  .post-type-archive-product .col-full::after,
  .tax-product_cat .col-full::after {
    content: "";
    display: table;
    clear: both;
  }
  /* flex-layout fallback: let the row stretch to the tallest column */
  .woocommerce-shop .col-full,
  .post-type-archive-product .col-full,
  .tax-product_cat .col-full { align-items: stretch; }
  .woocommerce-shop .secondary-wrapper,
  .post-type-archive-product .secondary-wrapper,
  .tax-product_cat .secondary-wrapper { margin-bottom: 40px; }
}
.ag-filterside {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: #fff;
  border: 1px solid #EFE9DE;
  border-radius: var(--ag-radius);
  padding: 22px 20px 16px;
  box-shadow: 0 8px 28px rgba(20, 14, 34, .05);
}
.ag-filterside__title {
  font-family: var(--ag-font-body);
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-size: 13px;
  color: var(--ag-ink);
  padding-bottom: 14px;
  border-bottom: 2px solid;
  border-image: var(--ag-grad) 1;
  margin-bottom: 4px;
}
.ag-filterside__item { padding: 16px 0 14px; border-bottom: 1px solid #F1ECE2; }
.ag-filterside__item:last-child { border-bottom: 0; }
.ag-f-sel, .ag-f-clear { padding: 10px 0 8px; }
.ag-f-sel:empty, .ag-f-sel:has(.bapf_sfa_hide) { display: none; }

/* section headers */
.ag-filterside .bapf_head h3,
.ag-filterside h3 {
  font-family: var(--ag-font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ag-ink);
  margin: 0 0 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
}
.ag-filterside .bapf_head h3 .bapf_colaps_smb,
.ag-filterside .bapf_colaps_btn { color: var(--ag-muted); }

/* checkbox facet rows (Category / Style) */
.ag-filterside ul { list-style: none; margin: 0; padding: 0; }
.ag-filterside .bapf_body ul { max-height: 218px; overflow-y: auto; scrollbar-width: thin; }
.ag-filterside .bapf_body li { margin: 0; font-size: 14.5px; }
.ag-filterside .bapf_body li label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  border-radius: 8px;
  cursor: pointer;
  color: var(--ag-body);
  transition: background .15s ease;
  width: 100%;
}
.ag-filterside .bapf_body li label:hover { background: #FAF6EC; }
.ag-filterside input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 17px; height: 17px;
  flex: 0 0 17px;
  border: 1.6px solid #D8D0C0;
  border-radius: 5px;
  background: #fff;
  display: inline-grid;
  place-content: center;
  cursor: pointer;
  transition: all .15s ease;
  margin: 0;
}
.ag-filterside input[type="checkbox"]:hover { border-color: var(--ag-rose); }
.ag-filterside input[type="checkbox"]:checked {
  background: var(--ag-grad);
  border-color: transparent;
}
.ag-filterside input[type="checkbox"]:checked::before {
  content: "";
  width: 9px; height: 5px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translateY(-1px);
}
.ag-filterside .bapf_count,
.ag-filterside .bapf_body li label small,
.ag-filterside .bapf_body li label span:last-child:not(.bapf_clr_span) {
  margin-left: auto;
  color: var(--ag-muted);
  font-size: 12.5px;
}

/* SIZE — pill grid */
.ag-f-size .bapf_body ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  max-height: none;
  overflow: visible;
}
.ag-f-size .bapf_body li label {
  display: block;
  text-align: center;
  padding: 9px 4px;
  border: 1.5px solid #E2DACA;
  border-radius: 10px;
  font-weight: 600;
  font-size: 13.5px;
  letter-spacing: .04em;
  color: var(--ag-ink);
  background: #fff;
}
.ag-f-size .bapf_body li label:hover { border-color: var(--ag-rose); background: #fff; }
.ag-f-size .bapf_body li input { display: none; }
.ag-f-size .bapf_body li input:checked + label,
.ag-f-size .bapf_body li.bapf_checked label,
.ag-f-size .bapf_body li:has(input:checked) label {
  background: linear-gradient(var(--ag-ink), var(--ag-ink)) padding-box, var(--ag-grad) border-box;
  border: 1.5px solid transparent;
  color: var(--ag-cream);
  box-shadow: 0 4px 14px rgba(20, 14, 34, .25);
}

/* COLOR — swatch circles with names beneath (Nike pattern) */
.ag-f-color .bapf_body ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px 6px;
  max-height: none;
  overflow: visible;
}
.ag-f-color .bapf_body li { margin: 0; }
.ag-f-color .bapf_body li label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 2px 0;
  font-size: 11px;
  color: var(--ag-muted);
  letter-spacing: .02em;
  text-align: center;
  cursor: pointer;
  background: none !important;
}
.ag-f-color .bapf_body li .bapf_clr_span,
.ag-f-color .bapf_body li label span[style*="background"] {
  display: block;
  width: 30px; height: 30px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1.5px #DDD5C4;
  transition: transform .15s ease, box-shadow .15s ease;
}
.ag-f-color .bapf_body li label:hover .bapf_clr_span,
.ag-f-color .bapf_body li label:hover span[style*="background"] {
  transform: scale(1.1);
  box-shadow: 0 0 0 1.5px var(--ag-rose);
}
.ag-f-color .bapf_body li input { display: none; }
.ag-f-color .bapf_body li input:checked + label .bapf_clr_span,
.ag-f-color .bapf_body li.bapf_checked label .bapf_clr_span,
.ag-f-color .bapf_body li:has(input:checked) label span[style*="background"],
.ag-f-color .bapf_body li:has(input:checked) label .bapf_clr_span {
  box-shadow: 0 0 0 2px var(--ag-violet);
  transform: scale(1.1);
}
.ag-f-color .bapf_body li:has(input:checked) label { color: var(--ag-ink); font-weight: 600; }

/* applied-filter chips row above the grid */
.ag-chiprow { width: 100%; margin: 0 0 14px; }
.ag-chiprow:has(.bapf_sfa_hide) { display: none; }
.ag-chiprow .bapf_sfa_full,
.ag-chiprow ul { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ag-chiprow h3 {
  font-family: var(--ag-font-body);
  font-size: 12px; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--ag-muted); margin: 0 6px 0 0;
  display: inline-block;
}
.ag-chiprow li, .ag-chiprow .bapf_sfa_element {
  background: var(--ag-cream);
  border: 1px solid var(--ag-ink);
  color: var(--ag-ink);
  border-radius: 100px;
  padding: 5px 13px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0;
}
.ag-chiprow li a, .ag-chiprow .bapf_sfa_element a { color: var(--ag-rose); font-weight: 700; }
.ag-chiprow li a:hover { color: var(--ag-rose-deep); }

/* clear-all */
.ag-f-clear a, .ag-f-clear button, .ag-f-clear .bapf_reset {
  display: block;
  width: 100%;
  text-align: center;
  border: 1.5px solid #E2DACA !important;
  background: transparent !important;
  color: var(--ag-muted) !important;
  border-radius: 100px !important;
  padding: 8px 0 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all .18s ease;
}
.ag-f-clear a:hover, .ag-f-clear button:hover, .ag-f-clear .bapf_reset:hover {
  border-color: var(--ag-rose) !important;
  color: var(--ag-rose) !important;
}

/* price slider */
.ag-filterside .bapf_slidr_main .ui-slider-range { background: var(--ag-grad) !important; }
.ag-filterside .bapf_slidr_main .ui-slider-handle {
  border: 2px solid var(--ag-rose) !important;
  background: #fff !important;
  border-radius: 50% !important;
  box-shadow: 0 2px 8px rgba(224, 81, 122, .35);
}
.ag-filterside .bapf_price_txt input {
  border: 1.5px solid #E2DACA;
  border-radius: 8px;
  padding: 5px 8px;
  width: 72px;
  font-size: 13.5px;
}

/* =========================================================
   Branded archive headers (v1.3.2)
   ========================================================= */
.ag-archive-hero {
  position: relative;
  overflow: hidden;
  background: var(--ag-ink);
  border-radius: var(--ag-radius);
  padding: 30px 32px 28px;
  margin: 0 0 26px;
}
.ag-archive-hero__glow {
  position: absolute;
  right: -140px; top: -160px;
  width: 400px; height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(240,179,92,.35) 0%, rgba(224,81,122,.15) 50%, rgba(139,92,246,0) 75%);
  pointer-events: none;
}
.ag-archive-hero h1 {
  color: var(--ag-cream);
  font-size: clamp(1.8rem, 3.4vw, 2.6rem);
  margin: 0 0 6px;
  position: relative;
}
.ag-archive-hero p {
  color: rgba(250,246,239,.72);
  max-width: 62ch;
  margin: 0;
  font-size: 15.5px;
  position: relative;
}
.ag-archive-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
  position: relative;
}
.ag-archive-hero__chips a {
  border: 1px solid rgba(250,246,239,.28);
  color: var(--ag-cream);
  padding: 6px 14px;
  border-radius: 100px;
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: .05em;
}
.ag-archive-hero__chips a:hover { border-color: var(--ag-gold); color: var(--ag-gold); }
.ag-archive-hero__chips a span { color: var(--ag-muted); font-size: 12px; }

/* compact category headers: keep the one-line description, drop the giant image */
.woocommerce-products-header .cg-cat-image { display: none !important; }
.tax-product_cat .woocommerce-products-header--has-image,
.tax-product_cat .shoptimizer-category-image { display: none !important; }
.tax-product_cat .term-description { max-width: 68ch; font-size: 15px; color: var(--ag-muted); margin: 0 0 14px; }
.tax-product_cat .term-description p { margin: 0; }

/* =========================================================
   Waitlist / pre-order (v1.5)
   ========================================================= */
.ag-waitlist {
  position: relative;
  background: var(--ag-ink);
  border-radius: var(--ag-radius);
  padding: 26px 26px 24px;
  margin: 18px 0 22px;
  overflow: hidden;
}
.ag-waitlist::before {
  content: "";
  position: absolute; right: -120px; top: -140px;
  width: 320px; height: 320px; border-radius: 50%;
  background: radial-gradient(circle, rgba(240,179,92,.30) 0%, rgba(224,81,122,.14) 50%, rgba(139,92,246,0) 75%);
  pointer-events: none;
}
.ag-waitlist__badge {
  display: inline-block;
  background: var(--ag-grad);
  color: #fff;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  border-radius: 100px;
  padding: 5px 14px;
  margin-bottom: 12px;
  position: relative;
}
.ag-waitlist p { color: rgba(250,246,239,.85); font-size: 15px; margin: 0 0 16px; position: relative; }
.ag-waitlist__done { color: var(--ag-gold) !important; font-weight: 500; margin-bottom: 0 !important; }
.ag-waitlist__form { display: flex; gap: 10px; flex-wrap: wrap; position: relative; }
.ag-waitlist__form input[type="email"] {
  flex: 1 1 220px;
  background: var(--ag-ink-2);
  border: 1px solid var(--ag-ink-3);
  color: var(--ag-cream);
  border-radius: 100px;
  padding: 11px 18px;
  font-size: 15px;
}
.ag-waitlist__form input[type="email"]::placeholder { color: var(--ag-muted); }
.ag-preorder-badge {
  position: absolute;
  top: 12px; left: 12px;
  z-index: 5;
  background: var(--ag-grad);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  border-radius: 100px;
  padding: 4px 12px;
}
ul.products li.product { position: relative; }
.ag-waitlist-btn { background: var(--ag-ink) !important; color: var(--ag-cream) !important; }
.ag-waitlist-btn:hover { background: var(--ag-grad) !important; }

/* =========================================================
   About page (v1.4.1)
   ========================================================= */
.ag-about-hero {
  position: relative;
  overflow: hidden;
  background: var(--ag-ink);
  text-align: center;
  padding: 88px 24px 84px;
}
.ag-about-hero::before {
  content: "";
  position: absolute; left: 50%; top: -260px; transform: translateX(-50%);
  width: 640px; height: 640px; border-radius: 50%;
  background: radial-gradient(circle, rgba(240,179,92,.30) 0%, rgba(224,81,122,.14) 48%, rgba(139,92,246,0) 72%);
  pointer-events: none;
}
.ag-about-hero .ag-eyebrow { color: var(--ag-gold); position: relative; }
.ag-about-hero h1 {
  color: var(--ag-cream);
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  margin: 0 auto 14px;
  max-width: 16ch;
  position: relative;
}
.ag-about-hero p {
  color: rgba(250,246,239,.78);
  max-width: 56ch;
  margin: 0 auto;
  font-size: 1.08rem;
  position: relative;
}
.ag-story {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
  max-width: 1120px;
  margin: 0 auto;
  padding: 72px 24px 0;
}
.ag-story--flip .ag-story__media { order: 2; }
.ag-story__media img {
  width: 100%; height: auto; display: block;
  border-radius: var(--ag-radius);
  box-shadow: 0 22px 54px rgba(20,14,34,.16);
}
.ag-story__body .ag-eyebrow { margin-bottom: 10px; }
.ag-story__body h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); margin: 0 0 14px; }
.ag-story__body p { font-size: 1.04rem; line-height: 1.7; color: var(--ag-body); }
@media (max-width: 820px) {
  .ag-story { grid-template-columns: 1fr; gap: 28px; padding-top: 48px; }
  .ag-story--flip .ag-story__media { order: 0; }
}
.ag-quote {
  margin: 84px 0 0;
  padding: 72px 24px;
  background: var(--ag-ink);
  text-align: center;
}
.ag-quote blockquote {
  margin: 0 auto;
  border: 0;
  padding: 0;
  max-width: 22ch;
  font-family: var(--ag-font-display);
  font-size: clamp(2rem, 4.4vw, 3.2rem);
  line-height: 1.15;
  background: var(--ag-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ag-quote cite {
  display: block;
  margin-top: 18px;
  font-style: normal;
  font-family: var(--ag-font-body);
  font-size: 13px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ag-muted);
}
.ag-about-cta {
  text-align: center;
  padding: 72px 24px 90px;
}
.ag-about-cta h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); margin: 0 0 10px; }
.ag-about-cta p { color: var(--ag-muted); max-width: 52ch; margin: 0 auto 26px; }
.page-template-template-fullwidth .ag-about-hero { margin-top: 0; }

/* =========================================================
   Content pages (About, FAQ, policies)
   ========================================================= */
.page .entry-content h2 { margin-top: 2.2em; }
.page .entry-content table {
  border-collapse: collapse; width: 100%;
}
.page .entry-content table th {
  background: var(--ag-ink); color: var(--ag-cream);
  font-family: var(--ag-font-body); font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase; font-size: 13px;
}
.page .entry-content table th, .page .entry-content table td {
  border: 1px solid #EAE3D6; padding: 10px 14px; text-align: left;
}
