/* ═══════════════════════════════════════════════════════════════
   ATLAS FORGED LABS — woocommerce.css
   WooCommerce-specific overrides
═══════════════════════════════════════════════════════════════ */

/* Notices */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  font-family: var(--fm);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 12px 20px;
  border: 1px solid var(--b);
  background: var(--sl);
  color: var(--bone);
  list-style: none;
  margin-bottom: 20px;
}
.woocommerce-message { border-color: var(--blue); }
.woocommerce-error   { border-color: var(--red);  color: var(--redl); }

/* Cart */
.woocommerce-cart table.shop_table { width: 100%; border-collapse: collapse; }
.woocommerce-cart table.shop_table th { font-family: var(--fm); font-size: 9.5px; letter-spacing: .18em; color: var(--blue); text-transform: uppercase; padding: 12px 16px; border-bottom: 2px solid var(--b); text-align: left; }
.woocommerce-cart table.shop_table td { padding: 16px; border-bottom: 1px solid var(--b); font-family: var(--fs); color: var(--bone); vertical-align: middle; }
.woocommerce-cart table.shop_table .product-name a { font-family: var(--fb); font-size: 20px; color: var(--white); }
.woocommerce-cart table.shop_table .product-price,
.woocommerce-cart table.shop_table .product-subtotal { font-family: var(--fb); font-size: 24px; color: var(--white); }
.woocommerce-cart table.shop_table .product-remove a { color: var(--mist); font-size: 18px; }
.cart-collaterals { margin-top: 40px; }
.cart_totals h2 { font-family: var(--fb); font-size: 28px; color: var(--white); margin-bottom: 16px; }
.cart_totals table { border-collapse: collapse; }
.cart_totals table th, .cart_totals table td { padding: 12px 0; border-bottom: 1px solid var(--b); font-family: var(--fs); color: var(--bone); text-align: left; }
.cart_totals table th { font-family: var(--fm); font-size: 9.5px; text-transform: uppercase; letter-spacing: .12em; color: var(--mist); padding-right: 24px; }
.cart_totals .wc-proceed-to-checkout .checkout-button { background: var(--blue); color: var(--k); border: none; padding: 14px 28px; font-family: var(--fs); font-weight: 700; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; width: 100%; margin-top: 20px; transition: background .2s; display: block; text-align: center; }
.cart_totals .wc-proceed-to-checkout .checkout-button:hover { background: var(--blueb); }
.woocommerce-cart-form .actions .coupon input { background: var(--card); border: 1px solid var(--b); color: var(--bone); font-family: var(--fs); font-size: 13px; padding: 10px 16px; outline: none; }
.woocommerce-cart-form .actions button { background: var(--sl); color: var(--mist); border: 1px solid var(--bl); padding: 10px 20px; font-family: var(--fs); font-weight: 600; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: all .2s; }
.woocommerce-cart-form .actions button:hover { border-color: var(--blue); color: var(--blue); }

/* Checkout */
.woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.woocommerce-checkout h3 { font-family: var(--fb); font-size: 26px; color: var(--white); margin-bottom: 20px; }
.woocommerce-checkout .form-row { margin-bottom: 16px; }
.woocommerce-checkout .form-row label { font-family: var(--fm); font-size: 9px; letter-spacing: .16em; color: var(--blue); text-transform: uppercase; display: block; margin-bottom: 6px; }
.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea { width: 100%; background: var(--card); border: 1.5px solid var(--b); color: var(--bone); font-family: var(--fs); font-size: 14px; padding: 12px 16px; outline: none; transition: border-color .2s; -webkit-appearance: none; }
.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus { border-color: var(--blue); }
#place_order { background: var(--blue); color: var(--k); border: none; padding: 16px 32px; font-family: var(--fs); font-weight: 700; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; width: 100%; transition: background .2s; margin-top: 20px; }
#place_order:hover { background: var(--blueb); }
.woocommerce-order-overview { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 32px; }
.woocommerce-order-overview li { background: var(--sl); border: 1px solid var(--b); padding: 16px; font-family: var(--fm); font-size: 9.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--mist); }
.woocommerce-order-overview li strong { color: var(--bone); display: block; font-family: var(--fs); font-size: 15px; margin-top: 4px; }

/* My Account */
.woocommerce-account .woocommerce-MyAccount-navigation { width: 220px; float: left; margin-right: 40px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a { display: block; font-family: var(--fm); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--mist); padding: 12px 0; border-bottom: 1px solid var(--b); transition: color .2s; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a { color: var(--blue); }
.woocommerce-account .woocommerce-MyAccount-content { overflow: hidden; }

/* Price */
.woocommerce-Price-amount { font-family: var(--fb); color: var(--white); }
.woocommerce-Price-currencySymbol { font-size: .65em; }
ins .woocommerce-Price-amount { color: var(--blue); }
del .woocommerce-Price-amount { color: var(--mist); font-size: .8em; }

/* Stock status */
.in-stock  { font-family: var(--fm); font-size: 9px; color: var(--bluec); text-transform: uppercase; letter-spacing: .1em; }
.out-of-stock { font-family: var(--fm); font-size: 9px; color: var(--redl); text-transform: uppercase; letter-spacing: .1em; }

/* Quantity */
.quantity input.qty { background: var(--card); border: 1px solid var(--b); color: var(--bone); font-family: var(--fm); font-size: 14px; padding: 10px 16px; width: 80px; text-align: center; outline: none; }

/* Rating stars */
.star-rating { color: var(--blue); }

/* ═══════════════════════════════════════════════════════════════
   PHASE 2 — NATIVE WOOCOMMERCE PRODUCT / LOOP ARCHITECTURE
═══════════════════════════════════════════════════════════════ */
.woocommerce-breadcrumb.afl-breadcrumb {
  margin: 0 52px;
  padding: 20px 0;
  font-family: var(--fm);
  font-size: 10px;
  color: var(--mist);
  text-transform: uppercase;
  letter-spacing: .1em;
  border-bottom: 1px solid var(--b);
}
.woocommerce-breadcrumb.afl-breadcrumb a { color: var(--blue); }

/* Catalog grid produced by woocommerce_product_loop_start(). */
ul.products {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
ul.products::before,
ul.products::after { display: none !important; }
ul.products li.product.afl-pc { width: auto; margin: 0; float: none; }

.afl-pc-v2 { overflow: hidden; }
.afl-pc-media {
  position: relative;
  aspect-ratio: 1.28 / 1;
  overflow: hidden;
  border-bottom: 1px solid var(--b);
  background:
    radial-gradient(circle at 50% 48%, rgba(30,100,255,.12), transparent 52%),
    #090a20;
}
.afl-pc-media-link { position:absolute; inset:0; display:block; }
.afl-pc-media-link img {
  width:100%; height:100%; object-fit:cover;
  transition: transform .35s ease, filter .35s ease;
}
.afl-pc-v2:hover .afl-pc-media-link img { transform:scale(1.025); }
.afl-pc-media .onsale {
  position:absolute; top:12px; left:12px; z-index:5;
  min-width:0; min-height:0; line-height:1;
  border-radius:0;
  background:var(--blue); color:var(--k);
  font-family:var(--fm); font-size:8px; letter-spacing:.14em;
  padding:7px 10px; text-transform:uppercase;
}
.afl-pc-media-overlay { position:absolute; inset:10px; pointer-events:none; z-index:3; }
.afl-pc-media-overlay span { position:absolute; width:18px; height:18px; border-color:rgba(68,132,255,.62); }
.afl-pc-media-overlay span:nth-child(1){left:0;top:0;border-left:1px solid;border-top:1px solid;}
.afl-pc-media-overlay span:nth-child(2){right:0;top:0;border-right:1px solid;border-top:1px solid;}
.afl-pc-media-overlay span:nth-child(3){left:0;bottom:0;border-left:1px solid;border-bottom:1px solid;}
.afl-pc-media-overlay span:nth-child(4){right:0;bottom:0;border-right:1px solid;border-bottom:1px solid;}
.afl-pc-docflag {
  position:absolute; z-index:4; right:12px; bottom:10px;
  font-family:var(--fm); font-size:8px; letter-spacing:.14em; text-transform:uppercase;
  padding:5px 8px; background:rgba(6,7,26,.88); border:1px solid var(--b); color:var(--mist);
}
.afl-pc-docflag.is-live { color:var(--bluec); border-color:rgba(0,170,255,.5); }

/* Single product */
.afl-single-main { padding-bottom: 80px; }
.afl-product-page { padding: 38px 52px 0; }
.afl-product-stage {
  display:grid;
  grid-template-columns:minmax(380px, .92fr) minmax(0, 1.08fr);
  gap:52px;
  max-width:1320px;
  margin:0 auto;
  align-items:start;
}
.afl-product-media-shell {
  position:sticky;
  top:102px;
  min-width:0;
  padding:18px;
  background:linear-gradient(145deg,rgba(16,17,44,.95),rgba(7,8,29,.98));
  border:1px solid var(--b);
  clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px);
}
.afl-media-frame { position:absolute; inset:10px; pointer-events:none; z-index:5; }
.afl-media-corner { position:absolute; width:30px; height:30px; border-color:rgba(68,132,255,.56); }
.afl-media-corner.c1{left:0;top:0;border-left:1px solid;border-top:1px solid;}
.afl-media-corner.c2{right:0;top:0;border-right:1px solid;border-top:1px solid;}
.afl-media-corner.c3{left:0;bottom:0;border-left:1px solid;border-bottom:1px solid;}
.afl-media-corner.c4{right:0;bottom:0;border-right:1px solid;border-bottom:1px solid;}
.afl-media-axis { position:absolute; opacity:.23; background:var(--blue); }
.afl-media-axis.axis-x { left:12%; right:12%; top:50%; height:1px; }
.afl-media-axis.axis-y { top:12%; bottom:12%; left:50%; width:1px; }
.afl-product-media-shell .woocommerce-product-gallery { width:100%; float:none; margin:0; position:relative; z-index:2; }
.afl-product-media-shell .woocommerce-product-gallery__wrapper { margin:0; }
.afl-product-media-shell .woocommerce-product-gallery__image { background:#08091f; }
.afl-product-media-shell .woocommerce-product-gallery__image a { display:block; }
.afl-product-media-shell .woocommerce-product-gallery__image img { width:100%; height:auto; }
.afl-product-media-shell .flex-control-thumbs { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:10px; }
.afl-product-media-shell .flex-control-thumbs li { border:1px solid var(--b); background:var(--sl); }
.afl-product-media-shell .flex-control-thumbs img { opacity:.65; cursor:pointer; }
.afl-product-media-shell .flex-control-thumbs img.flex-active { opacity:1; outline:1px solid var(--blue); }
.afl-product-media-shell .woocommerce-product-gallery__trigger {
  position:absolute; z-index:8; top:12px; right:12px;
  width:34px; height:34px; display:grid; place-items:center;
  background:rgba(6,7,26,.86); border:1px solid var(--b); color:var(--blue);
  text-indent:-9999px; overflow:hidden;
}
.afl-media-caption { display:flex; justify-content:space-between; gap:10px; margin-top:12px; font-family:var(--fm); font-size:8px; letter-spacing:.16em; color:var(--ash); text-transform:uppercase; }

.afl-product-summary { min-width:0; display:flex; flex-direction:column; gap:0; }
.afl-product-kicker { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:15px; }
.afl-product-record-label { font-family:var(--fm); font-size:8px; letter-spacing:.15em; color:var(--ash); text-transform:uppercase; text-align:right; }
.afl-product-summary .product_title {
  font-family:var(--fb); font-size:clamp(54px,6vw,82px); line-height:.88; color:var(--white); letter-spacing:.025em; margin:0 0 8px;
}
.afl-product-identifiers { font-family:var(--fm); font-size:10px; color:var(--mist); letter-spacing:.08em; text-transform:uppercase; margin-bottom:18px; }
.afl-product-summary > .price { margin:0 0 20px; }
.afl-product-summary > .price .woocommerce-Price-amount { font-family:var(--fb); font-size:42px; color:var(--white); }
.afl-product-summary p.stock { margin:0 0 14px; }

.afl-doc-panel { border:1px solid var(--b); border-top:2px solid var(--blue); background:linear-gradient(135deg,rgba(13,14,38,.95),rgba(9,9,30,.95)); margin:0 0 14px; }
.afl-doc-panel-head { display:flex; justify-content:space-between; align-items:center; padding:10px 14px; border-bottom:1px solid var(--b); font-family:var(--fm); font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--mist); }
.afl-doc-signal { padding-left:14px; position:relative; }
.afl-doc-signal::before { content:''; position:absolute; left:0; top:50%; width:6px; height:6px; transform:translateY(-50%); border-radius:50%; background:var(--ash); }
.afl-doc-signal.is-live { color:var(--bluec); }
.afl-doc-signal.is-live::before { background:var(--bluec); box-shadow:0 0 8px var(--bluec); }
.afl-doc-grid { display:grid; grid-template-columns:1fr 1fr; }
.afl-doc-cell { padding:13px 14px; min-width:0; }
.afl-doc-cell + .afl-doc-cell { border-left:1px solid var(--b); }
.afl-doc-key { display:block; font-family:var(--fm); font-size:8px; color:var(--ash); text-transform:uppercase; letter-spacing:.14em; margin-bottom:3px; }
.afl-doc-val { display:block; font-family:var(--fs); font-size:14px; font-weight:600; color:var(--mist); overflow-wrap:anywhere; }
.afl-doc-val.is-live { color:var(--bluec); }
.afl-prod-specs-summary { margin-bottom:18px; }

.afl-product-summary form.cart { margin:0 0 16px; padding:16px; background:rgba(30,100,255,.045); border:1px solid var(--b); }
.afl-product-summary form.cart::after { content:''; display:block; clear:both; }
.afl-product-summary form.cart .quantity { float:left; margin:0 8px 0 0; }
.afl-product-summary form.cart .single_add_to_cart_button {
  min-height:44px; background:var(--blue); color:var(--k); border:0; border-radius:0; padding:0 24px;
  font-family:var(--fs); font-weight:700; font-size:11px; letter-spacing:.13em; text-transform:uppercase;
}
.afl-product-summary form.cart .single_add_to_cart_button:hover { background:var(--blueb); }
.afl-product-summary form.cart .single_add_to_cart_button.disabled { opacity:.45; }
.afl-product-summary .variations { width:100%; margin-bottom:12px; border-collapse:collapse; }
.afl-product-summary .variations th,.afl-product-summary .variations td { display:block; width:100%; padding:0 0 7px; text-align:left; }
.afl-product-summary .variations label { font-family:var(--fm); font-size:9px; color:var(--blue); letter-spacing:.14em; text-transform:uppercase; }
.afl-product-summary .variations select { width:100%; background:var(--card); color:var(--bone); border:1px solid var(--b); padding:11px 13px; font-family:var(--fs); }
.afl-product-summary .reset_variations { font-family:var(--fm); font-size:8px; letter-spacing:.1em; text-transform:uppercase; }
.afl-product-summary .woocommerce-variation-price { margin:10px 0; }

.afl-product-lower { max-width:1320px; margin:46px auto 0; }
.afl-product-lower .woocommerce-tabs { border:1px solid var(--b); background:var(--card); }
.afl-product-lower .woocommerce-tabs ul.tabs { display:flex; gap:0; overflow-x:auto; border-bottom:1px solid var(--b); margin:0; padding:0; list-style:none; }
.afl-product-lower .woocommerce-tabs ul.tabs::before { display:none; }
.afl-product-lower .woocommerce-tabs ul.tabs li { margin:0; padding:0; background:transparent; border:0; border-radius:0; }
.afl-product-lower .woocommerce-tabs ul.tabs li::before,.afl-product-lower .woocommerce-tabs ul.tabs li::after { display:none; }
.afl-product-lower .woocommerce-tabs ul.tabs li a { display:block; white-space:nowrap; padding:14px 20px; font-family:var(--fm); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--mist); border-bottom:2px solid transparent; }
.afl-product-lower .woocommerce-tabs ul.tabs li.active a { color:var(--blue); border-bottom-color:var(--blue); }
.afl-product-lower .woocommerce-Tabs-panel { padding:26px; margin:0; }
.afl-product-lower .woocommerce-Tabs-panel > h2:first-child { font-size:30px; margin-bottom:14px; }
.afl-product-lower .woocommerce-Tabs-panel p { font-size:15px; }
.afl-product-lower .related.products,.afl-product-lower .upsells.products { margin-top:42px; }
.afl-product-lower .related.products > h2,.afl-product-lower .upsells.products > h2 { font-family:var(--fb); font-size:38px; color:var(--white); margin-bottom:18px; }

@media (max-width:1024px){
  ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .woocommerce-breadcrumb.afl-breadcrumb { margin-left:32px; margin-right:32px; }
  .afl-product-page { padding-left:32px; padding-right:32px; }
  .afl-product-stage { grid-template-columns:1fr; gap:26px; }
  .afl-product-media-shell { position:relative; top:auto; max-width:680px; width:100%; margin:0 auto; }
}
@media (max-width:768px){
  .woocommerce-breadcrumb.afl-breadcrumb { margin-left:24px; margin-right:24px; }
  .afl-product-page { padding:24px 24px 0; }
  .afl-product-summary .product_title { font-size:clamp(48px,14vw,68px); }
  .afl-product-lower { margin-top:32px; }
}
@media (max-width:600px){
  ul.products { grid-template-columns:1fr; }
  .afl-doc-grid { grid-template-columns:1fr; }
  .afl-doc-cell + .afl-doc-cell { border-left:0; border-top:1px solid var(--b); }
  .afl-product-kicker { align-items:flex-start; flex-direction:column; }
  .afl-product-record-label { text-align:left; }
  .afl-product-summary form.cart .quantity { float:none; margin:0 0 8px; }
  .afl-product-summary form.cart .quantity input { width:100%; }
  .afl-product-summary form.cart .single_add_to_cart_button { width:100%; }
}
@media (max-width:480px){
  .woocommerce-breadcrumb.afl-breadcrumb { margin-left:18px; margin-right:18px; }
  .afl-product-page { padding-left:18px; padding-right:18px; }
  .afl-product-media-shell { padding:12px; }
  .afl-media-caption { font-size:7px; }
}
.afl-stock-line {
  display:flex; align-items:center; gap:8px; margin:0 0 12px;
  font-family:var(--fm); font-size:9px; letter-spacing:.12em; text-transform:uppercase;
}
.afl-stock-dot { width:6px; height:6px; border-radius:50%; background:currentColor; box-shadow:0 0 9px currentColor; }

/* ═══════════════════════════════════════════════════════════════
   PHASE 3A — CATALOG / PRESENTATION / BATCH ARCHITECTURE
═══════════════════════════════════════════════════════════════ */
.afl-pc-presentation {
  position:absolute;
  z-index:4;
  left:12px;
  bottom:10px;
  font-family:var(--fm);
  font-size:8px;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:5px 8px;
  color:var(--bluec);
  background:rgba(6,7,26,.9);
  border:1px solid rgba(30,100,255,.5);
}
.afl-presentation-line {
  display:flex;
  align-items:baseline;
  gap:10px;
  margin:-1px 0 14px;
  font-family:var(--fm);
  text-transform:uppercase;
  letter-spacing:.12em;
}
.afl-presentation-line span { font-size:8px; color:var(--ash); }
.afl-presentation-line strong { font-size:11px; color:var(--bluec); font-weight:600; }

.afl-doc-grid-detailed { grid-template-columns:repeat(2,minmax(0,1fr)); }
.afl-doc-grid-detailed .afl-doc-cell:nth-child(2n+1):not(:first-child) { border-left:0; }
.afl-doc-grid-detailed .afl-doc-cell:nth-child(n+3) { border-top:1px solid var(--b); }

.afl-batch-history { border:1px solid var(--b); overflow:hidden; }
.afl-batch-history-head,
.afl-batch-row {
  display:grid;
  grid-template-columns:1.45fr .8fr .9fr .8fr .65fr;
  gap:0;
  align-items:center;
}
.afl-batch-history-head {
  background:var(--sl);
  border-bottom:1px solid var(--b);
}
.afl-batch-history-head span {
  padding:10px 12px;
  font-family:var(--fm);
  font-size:8px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--blue);
}
.afl-batch-row + .afl-batch-row { border-top:1px solid var(--b); }
.afl-batch-row > * {
  min-width:0;
  padding:12px;
  font-family:var(--fm);
  font-size:10px;
  color:var(--mist);
  overflow-wrap:anywhere;
}
.afl-batch-row strong { color:var(--bone); }
.afl-batch-row a { color:var(--bluec); }
.afl-batch-state { text-transform:uppercase; letter-spacing:.08em; }
.afl-batch-state.is-current { color:var(--bluec); }
.afl-batch-state.is-withdrawn { color:var(--redl); }

.afl-cat-toolbar-v3 {
  display:grid;
  grid-template-columns:auto minmax(260px,440px) auto;
  gap:16px;
  align-items:center;
}
.afl-cat-search { display:flex; min-width:0; }
.afl-cat-search input[type="search"] {
  min-width:0;
  flex:1;
  height:38px;
  padding:0 13px;
  border:1px solid var(--b);
  border-right:0;
  border-radius:0;
  outline:none;
  background:var(--card);
  color:var(--bone);
  font-family:var(--fs);
  font-size:13px;
}
.afl-cat-search input[type="search"]:focus { border-color:var(--blue); }
.afl-cat-search button {
  height:38px;
  padding:0 15px;
  border:1px solid var(--blue);
  border-radius:0;
  background:rgba(30,100,255,.1);
  color:var(--bluec);
  font-family:var(--fm);
  font-size:8px;
  letter-spacing:.14em;
  text-transform:uppercase;
  cursor:pointer;
}
.afl-status-filters {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:-4px 0 18px;
}
.afl-status-filter {
  padding:6px 10px;
  border:1px solid var(--b);
  background:rgba(13,14,38,.72);
  color:var(--mist);
  font-family:var(--fm);
  font-size:8px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.afl-status-filter:hover,
.afl-status-filter.active { color:var(--bluec); border-color:rgba(30,100,255,.55); background:rgba(30,100,255,.07); }

@media (max-width:900px) {
  .afl-cat-toolbar-v3 { grid-template-columns:1fr auto; }
  .afl-cat-search { grid-column:1 / -1; grid-row:2; }
}
@media (max-width:650px) {
  .afl-batch-history { overflow-x:auto; }
  .afl-batch-history-head,
  .afl-batch-row { min-width:620px; }
  .afl-doc-grid-detailed { grid-template-columns:1fr; }
  .afl-doc-grid-detailed .afl-doc-cell + .afl-doc-cell { border-left:0; border-top:1px solid var(--b); }
  .afl-cat-toolbar-v3 { grid-template-columns:1fr; }
  .afl-cat-search { grid-column:auto; grid-row:auto; }
  .afl-cat-sort { justify-self:start; }
}

/* ═══════════════════════════════════════════════════════════════
   PHASE 3B.1 — PRESENTATION PICKER
   Visible independently of checkout/catalog mode; syncs to the native
   WooCommerce variation form when that form is available.
═══════════════════════════════════════════════════════════════ */
.afl-presentation-picker {
  margin: 0 0 14px;
  border: 1px solid var(--b);
  border-top: 2px solid var(--blue);
  background: rgba(30,100,255,.035);
}
.afl-presentation-picker-head {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:10px 14px; border-bottom:1px solid var(--b);
  font-family:var(--fm); font-size:9px; letter-spacing:.15em; text-transform:uppercase; color:var(--mist);
}
.afl-presentation-selected { color:var(--bluec); }
.afl-presentation-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:8px; padding:12px; }
.afl-presentation-option {
  appearance:none; border:1px solid var(--b); border-radius:0; background:var(--card); color:var(--bone);
  min-height:58px; padding:10px 12px; cursor:pointer; text-align:left;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  transition:border-color .18s, background .18s, box-shadow .18s;
}
.afl-presentation-option strong { font-family:var(--fb); font-size:23px; line-height:1; color:var(--white); font-weight:400; }
.afl-presentation-option span { font-family:var(--fm); font-size:10px; color:var(--mist); white-space:nowrap; }
.afl-presentation-option:hover { border-color:rgba(30,100,255,.65); }
.afl-presentation-option.is-selected {
  border-color:var(--blue); background:rgba(30,100,255,.10); box-shadow:inset 0 0 0 1px rgba(30,100,255,.18);
}
.afl-presentation-option.is-selected strong,.afl-presentation-option.is-selected span { color:var(--bluec); }
.afl-presentation-note { padding:0 14px 11px; font-family:var(--fm); font-size:8px; line-height:1.5; letter-spacing:.09em; color:var(--ash); text-transform:uppercase; }

/* The AFL picker replaces the visual attribute dropdown. Keep the native
   form/select in the DOM so WooCommerce variation JS and add-to-cart logic
   can still operate when checkout is enabled. */
.afl-product-summary form.variations_form table.variations { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; clip-path:inset(50%) !important; white-space:nowrap !important; }
.afl-product-summary form.variations_form .woocommerce-variation-price { display:none; }

@media (max-width:600px) {
  .afl-presentation-options { grid-template-columns:1fr 1fr; }
  .afl-presentation-option { min-height:54px; }
}

/* Phase 3C — canonical compound record */
.afl-compound-record h2 {
  font-family: var(--fb);
  font-size: 30px;
  color: var(--white);
  margin: 0 0 14px;
  letter-spacing: .02em;
}
.afl-compound-overview {
  font-family: var(--fs);
  font-size: 15px;
  line-height: 1.75;
  color: var(--mist);
  margin: 0 0 28px;
  max-width: 1100px;
}
.afl-record-table {
  width: 100%;
  border-collapse: collapse;
  border: 0;
  margin: 0;
}
.afl-record-table th,
.afl-record-table td {
  padding: 13px 12px;
  border: 0;
  border-bottom: 1px solid var(--b);
  background: transparent;
  vertical-align: top;
}
.afl-record-table th {
  width: 42%;
  font-family: var(--fm);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ash);
  text-align: left;
}
.afl-record-table td {
  font-family: var(--fm);
  font-size: 13px;
  color: var(--bone);
}
.afl-record-table a { color: var(--bluec); }
.afl-record-sequence { overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .afl-record-table th,
  .afl-record-table td { display: block; width: 100%; padding-left: 0; padding-right: 0; }
  .afl-record-table th { border-bottom: 0; padding-bottom: 4px; }
  .afl-record-table td { padding-top: 0; }
}

/* ═══════════════════════════════════════════════════════════════
   PHASE 3D — PURCHASE CTA + FULFILLMENT STATES
═══════════════════════════════════════════════════════════════ */
.afl-option-main { display:flex; flex-direction:column; align-items:flex-start; gap:5px; min-width:0; }
.afl-presentation-option .afl-option-main strong { font-family:var(--fb); font-size:23px; line-height:1; color:var(--white); font-weight:400; }
.afl-presentation-option .afl-option-main em {
  font-family:var(--fm); font-style:normal; font-size:7px; letter-spacing:.13em; text-transform:uppercase;
  color:var(--bluec); border:1px solid rgba(30,100,255,.28); padding:3px 5px;
}
.afl-presentation-option.is-preorder .afl-option-main em { color:#e5c869; border-color:rgba(229,200,105,.34); background:rgba(229,200,105,.05); }
.afl-presentation-option .afl-option-price { font-family:var(--fm); font-size:10px; color:var(--mist); white-space:nowrap; }
.afl-presentation-option.is-selected.is-preorder { border-color:rgba(229,200,105,.66); background:rgba(229,200,105,.055); box-shadow:inset 0 0 0 1px rgba(229,200,105,.12); }
.afl-presentation-option.is-selected.is-preorder strong,
.afl-presentation-option.is-selected.is-preorder .afl-option-price { color:#f0db83; }

.afl-stock-line.is-preorder { color:#e5c869; }
.afl-stock-line.is-preorder .afl-stock-dot { background:#e5c869; box-shadow:0 0 8px rgba(229,200,105,.48); }
.afl-stock-line.is-quick_ship { color:var(--bluec); }

.afl-purchase-panel {
  margin:0 0 18px; border:1px solid var(--b); border-top:2px solid var(--blue);
  background:linear-gradient(135deg,rgba(30,100,255,.055),rgba(9,9,30,.90));
}
.afl-purchase-fulfillment { padding:12px 14px; border-bottom:1px solid var(--b); display:flex; flex-direction:column; gap:4px; }
.afl-purchase-fulfillment strong { font-family:var(--fm); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--bluec); }
.afl-purchase-fulfillment span { font-family:var(--fs); font-size:13px; line-height:1.45; color:var(--mist); }
.afl-purchase-fulfillment.is-preorder { border-left:3px solid #d8b942; background:rgba(216,185,66,.035); }
.afl-purchase-fulfillment.is-preorder strong { color:#f0d66a; }
.afl-purchase-fulfillment.is-neutral strong { color:var(--mist); }
.afl-purchase-actions { display:grid; grid-template-columns:90px 1fr; gap:10px; padding:12px 14px; }
.afl-purchase-qty { display:flex; flex-direction:column; gap:5px; }
.afl-purchase-qty span { font-family:var(--fm); font-size:8px; letter-spacing:.13em; text-transform:uppercase; color:var(--ash); }
.afl-purchase-qty input { width:100%; min-height:48px; background:var(--card); border:1px solid var(--b); color:var(--white); font-family:var(--fm); font-size:14px; padding:0 12px; }
.afl-purchase-button {
  align-self:end; min-height:48px; border:1px solid var(--blue); border-radius:0; background:var(--blue); color:var(--k);
  font-family:var(--fs); font-weight:700; font-size:12px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer;
  transition:background .18s,border-color .18s,color .18s,opacity .18s;
}
.afl-purchase-button:hover:not(:disabled) { background:var(--blueb); }
.afl-purchase-button.is-preorder { background:rgba(216,185,66,.12); border-color:#d8b942; color:#f0db83; }
.afl-purchase-button.is-preorder:hover:not(:disabled) { background:rgba(216,185,66,.2); }
.afl-purchase-button:disabled { opacity:.45; cursor:not-allowed; }
.afl-purchase-footnote { margin:0; padding:0 14px 12px; font-family:var(--fm); font-size:8px; letter-spacing:.06em; line-height:1.5; text-transform:uppercase; color:var(--ash); }

/* The native variable-product form remains in the DOM and is submitted by the
   AFL purchase panel, but its UI (and third-party product-page express buttons)
   is intentionally removed from the visual layout. Express payments belong in
   cart/checkout, where shipping and the final order can be reviewed. */
.afl-product-summary form.variations_form {
  position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important;
  clip:rect(0 0 0 0) !important; clip-path:inset(50%) !important; white-space:nowrap !important;
  padding:0 !important; margin:0 !important; border:0 !important;
}
.single-product .wc-stripe-express-checkout-container,
.single-product .wc-stripe-express-checkout-element,
.single-product #wc-stripe-express-checkout-element,
.single-product .wc-stripe-express-checkout-button-separator { display:none !important; }

@media (max-width:600px) {
  .afl-purchase-actions { grid-template-columns:76px 1fr; }
  .afl-purchase-button { font-size:10px; letter-spacing:.09em; padding:0 10px; }
}
.afl-spv.afl-preorder-text { color:#e5c869; }

/* Phase 3D.2 — transactional page shell */
.afl-commerce-page-content { width:100%; max-width:none; }
.afl-commerce-page-content .woocommerce { width:100%; }
.afl-commerce-page-content .woocommerce-notices-wrapper:empty { display:none; }
.woocommerce-cart .afl-main,
.woocommerce-checkout .afl-main { min-height:60vh; }
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .cart-empty,
.woocommerce-checkout .woocommerce-info {
  padding:18px 20px;
  border:1px solid var(--b);
  border-left:3px solid var(--blue);
  background:rgba(30,100,255,.045);
  color:var(--bone);
  font-family:var(--fs);
}

/* ═══════════════════════════════════════════════════════════════
   PHASE 3D.3 — FAST CART FEEDBACK + CHECKOUT PROCESSING STATE
═══════════════════════════════════════════════════════════════ */
.afl-purchase-panel { position:relative; overflow:hidden; }
.afl-purchase-panel::after {
  content:''; position:absolute; left:0; right:100%; bottom:0; height:2px;
  background:linear-gradient(90deg,var(--blue),#70a4ff,var(--blue));
  opacity:0; transition:right .22s ease, opacity .18s ease; pointer-events:none;
}
.afl-purchase-panel.is-adding::after { right:12%; opacity:.9; animation:aflCartProgress 1.1s ease-in-out infinite alternate; }
.afl-purchase-panel.is-added::after { right:0; opacity:.75; animation:none; }
@keyframes aflCartProgress { from { filter:brightness(.8); } to { filter:brightness(1.45); } }
.afl-purchase-button[aria-busy="true"] { cursor:progress; }
.afl-purchase-feedback {
  min-height:0; padding:0 14px; overflow:hidden;
  font-family:var(--fm); font-size:9px; letter-spacing:.07em; text-transform:uppercase;
  color:var(--mist); transition:padding .18s ease,color .18s ease;
}
.afl-purchase-feedback:not(:empty) { padding:0 14px 11px; }
.afl-purchase-feedback.is-success { color:var(--bluec); }
.afl-purchase-feedback.is-error { color:var(--redl); }
.afl-purchase-feedback a { color:inherit; text-decoration:underline; text-underline-offset:3px; }

/* WooCommerce/Stripe legitimately blocks order-review/payment while checkout
   totals and eligible payment methods are recalculated. Replace the default
   white wash with a restrained AFL processing state instead of removing the
   interaction lock entirely. */
.woocommerce-checkout .blockUI.blockOverlay,
.woocommerce-checkout .blockOverlay,
.woocommerce-checkout #order_review .blockUI.blockOverlay,
.woocommerce-checkout #payment .blockUI.blockOverlay {
  background:rgba(6,7,26,.48) !important;
  opacity:.42 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  cursor:progress !important;
}
.woocommerce-checkout .blockUI.blockOverlay::after,
.woocommerce-checkout .blockOverlay::after {
  content:''; position:absolute; width:26px; height:26px; left:50%; top:50%;
  margin:-13px 0 0 -13px; border:1px solid rgba(30,100,255,.25);
  border-top-color:var(--blue); border-radius:50%;
  animation:aflCheckoutSpin .8s linear infinite;
  box-shadow:0 0 18px rgba(30,100,255,.16);
}
@keyframes aflCheckoutSpin { to { transform:rotate(360deg); } }

.afl-cart-count.is-pulsing { animation:aflCartBadgePulse .5s cubic-bezier(.2,.8,.2,1); }
@keyframes aflCartBadgePulse {
  0% { transform:scale(.72); box-shadow:0 0 0 0 rgba(30,100,255,.5); }
  55% { transform:scale(1.16); box-shadow:0 0 0 6px rgba(30,100,255,0); }
  100% { transform:scale(1); }
}

@media (prefers-reduced-motion:reduce) {
  .afl-purchase-panel.is-adding::after,
  .woocommerce-checkout .blockUI.blockOverlay::after,
  .woocommerce-checkout .blockOverlay::after,
  .afl-cart-count.is-pulsing { animation:none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   PHASE 3D.5 — STABLE CART BADGE + PAYMENT INITIALIZATION
═══════════════════════════════════════════════════════════════ */
.woocommerce-checkout #payment,
.woocommerce-checkout .woocommerce-checkout-payment {
  min-height: 190px;
  position: relative;
}
.afl-payment-init {
  min-height: 94px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:22px 18px;
  border:1px solid var(--b);
  background:linear-gradient(135deg,rgba(30,100,255,.035),rgba(6,7,26,.72));
  color:var(--mist);
  font-family:var(--fm);
  font-size:9px;
  letter-spacing:.12em;
  text-transform:uppercase;
  transition:opacity .16s ease, min-height .16s ease, padding .16s ease, border-color .16s ease;
}
.afl-payment-init.is-ready { opacity:0; min-height:0; padding-top:0; padding-bottom:0; border-color:transparent; }
.afl-payment-init-dot {
  width:8px; height:8px; flex:0 0 auto;
  border:1px solid var(--blue);
  transform:rotate(45deg);
  box-shadow:0 0 10px rgba(30,100,255,.28);
  animation:aflPaymentPulse .9s ease-in-out infinite alternate;
}
@keyframes aflPaymentPulse { from { opacity:.35; transform:rotate(45deg) scale(.78); } to { opacity:1; transform:rotate(45deg) scale(1.06); } }

/* Some WooCommerce/Stripe updates insert inline white blockUI backgrounds.
   Override both background shorthand and background-color so the protected
   panels stay visually stable while recalculation is in progress. */
.woocommerce-checkout .blockUI.blockOverlay,
.woocommerce-checkout .blockOverlay,
.woocommerce-checkout #order_review .blockUI.blockOverlay,
.woocommerce-checkout #payment .blockUI.blockOverlay,
.woocommerce-checkout .woocommerce-checkout-payment .blockUI.blockOverlay {
  background:rgba(6,7,26,.22) !important;
  background-color:rgba(6,7,26,.22) !important;
  opacity:.34 !important;
}

@media (prefers-reduced-motion:reduce) {
  .afl-payment-init-dot { animation:none !important; }
}
