/* ==========================================================================
   CAR AUDIO SHOP - WooCommerce store styling
   Rewritten as one coherent file. No patch sections, no rule fighting
   another rule further down.

   HOW THIS FILE IS ORGANISED
     Every concern appears exactly ONCE, in one place. Responsive rules for
     a section live inside that section, not in a separate block at the end.

   ASTRA OVERRIDES
     Astra ships WooCommerce layout CSS with !important on some properties.
     These were measured on the live site and are the only places where this
     file uses !important for layout:
       h1.product_title            display:none
       #customer_details           width:55%, float:left
       #order_review               padding:0 32px
       .cart_totals                padding stripped
       .cart_totals h2             margin-bottom:20px
       li.product .button          Astra restyles both card buttons

   BREAKPOINTS
     1300  gaps tighten, 4 columns held
     1100  3 columns
     1024  product, cart and checkout stack to one column
      640  2 columns, cart table becomes cards
      420  small phone tuning

   CONTENTS
     1  Tokens
     2  Base and typography
     3  Buttons
     4  Focus rings
     5  Notices
     6  Links, no blue anywhere
     7  Archive header and breadcrumbs
     8  Shop toolbar
     9  Product cards
    10  Pagination
    11  Single product, layout
    12  Single product, gallery
    13  Single product, summary
    14  Single product, tabs and related
    15  Sticky add to cart
    16  Free delivery bar
    17  Cart
    18  Checkout
    19  My account and order received
    20  Print and reduced motion
   ========================================================================== */


/* ==========================================================================
   1. TOKENS
   ========================================================================== */

.woocommerce, .woocommerce-page{
  --cas-red:#E92225;
  --cas-red-dark:#c91c1f;
  --cas-black:#0A0A0A;
  --cas-white:#ffffff;
  --cas-grey:#f6f6f7;
  --cas-grey-2:#ededf0;
  --cas-border:#e4e4e6;
  --cas-border-2:#d3d3d7;
  --cas-text:#111111;
  --cas-muted:#5f6368;
  --cas-ok:#1a8a4a;
  --cas-warn:#b26a00;
  --cas-err:#d13438;
  --cas-font-head:'Rajdhani',system-ui,-apple-system,sans-serif;
  --cas-font-body:'Inter',system-ui,-apple-system,sans-serif;
  --cas-ease:cubic-bezier(.25,.46,.45,.94);
  --cas-radius:3px;
  --cas-gap:16px;
  --cas-panel-pad:22px;
  --cas-sticky-top:96px;
}
@media (max-width:1300px){
  .woocommerce, .woocommerce-page{--cas-gap:14px}
}
@media (max-width:640px){
  .woocommerce, .woocommerce-page{--cas-gap:10px;--cas-panel-pad:18px}
}


/* ==========================================================================
   2. BASE AND TYPOGRAPHY
   ========================================================================== */

.woocommerce, .woocommerce-page{
  font-family:var(--cas-font-body);
  color:var(--cas-text);
}
.woocommerce .ast-container,
.woocommerce-page .ast-container{max-width:1360px}

.woocommerce h1, .woocommerce h2, .woocommerce h3, .woocommerce h4,
.woocommerce-page h1, .woocommerce-page h2, .woocommerce-page h3{
  font-family:var(--cas-font-head);
  letter-spacing:.8px;
  color:var(--cas-text);
}

/* Section heading used on Related, Cart totals, Your order and so on */
.woocommerce .cart_totals > h2,
.woocommerce-checkout h3,
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2,
.woocommerce .cross-sells > h2{
  font-family:var(--cas-font-head);
  font-size:15px;font-weight:700;
  letter-spacing:1.9px;text-transform:uppercase;color:var(--cas-text);
  margin:0 0 16px;padding:0 0 13px;
  border-bottom:1px solid var(--cas-border);
}
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2,
.woocommerce .cross-sells > h2{
  font-size:clamp(18px,2.2vw,26px);letter-spacing:1.2px;
  margin-bottom:22px;padding-bottom:14px;position:relative;
}
.woocommerce div.product .related > h2::after,
.woocommerce div.product .upsells > h2::after{
  content:"";position:absolute;left:0;bottom:-1px;width:56px;height:2px;background:var(--cas-red);
}

/* Screen reader price duplicates WooCommerce prints everywhere */
.woocommerce .screen-reader-text{
  position:absolute !important;width:1px;height:1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;
}


/* ==========================================================================
   3. BUTTONS
   ========================================================================== */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.cas-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  height:48px;padding:0 26px;border:0;border-radius:var(--cas-radius);
  font-family:var(--cas-font-head);font-size:13px;font-weight:700;
  letter-spacing:1.8px;text-transform:uppercase;line-height:1;
  background:var(--cas-red);color:#fff !important;
  text-decoration:none !important;text-shadow:none;box-shadow:none;
  cursor:pointer;
  transition:background .3s var(--cas-ease),box-shadow .3s var(--cas-ease);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.cas-btn:hover{
  background:var(--cas-red-dark);
  box-shadow:0 8px 22px rgba(233,34,37,.24);
}

/* Secondary, outlined */
.woocommerce a.button.wc-backward,
.woocommerce .cart .button[name="update_cart"],
.woocommerce td.actions .coupon .button,
.cas-btn-outline{
  background:transparent;color:var(--cas-text) !important;
  border:1px solid var(--cas-border-2);
}
.woocommerce a.button.wc-backward:hover,
.woocommerce .cart .button[name="update_cart"]:hover:not(:disabled),
.woocommerce td.actions .coupon .button:hover,
.cas-btn-outline:hover{
  background:var(--cas-black);color:#fff !important;
  border-color:var(--cas-black);box-shadow:none;
}

/* Solid dark */
.cas-btn-dark{background:var(--cas-black);color:#fff !important}
.cas-btn-dark:hover{background:#252525;box-shadow:0 8px 20px rgba(0,0,0,.2)}

/* Disabled */
.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce input.button:disabled{
  background:transparent;color:#b4b4b8 !important;
  border:1px solid var(--cas-border);
  opacity:1;cursor:not-allowed;box-shadow:none;
}
.woocommerce button.button:disabled:hover{box-shadow:none;background:transparent}

/* Ajax states */
.woocommerce a.button.loading{opacity:.75;pointer-events:none}
.woocommerce a.button.loading::after{font-size:14px;margin-left:6px}
.woocommerce a.added::after{display:none}


/* ==========================================================================
   4. FOCUS RINGS
   Astra leaves a dotted outline on whatever was last clicked. Mouse users
   get nothing, keyboard users get a clear ring.
   ========================================================================== */

.woocommerce a:focus,
.woocommerce button:focus,
.woocommerce input:focus,
.woocommerce select:focus,
.woocommerce textarea:focus,
.woocommerce-page a:focus,
.woocommerce-page button:focus{
  outline:0 !important;outline-offset:0 !important;
}
.woocommerce a:focus-visible,
.woocommerce button:focus-visible,
.woocommerce-page a:focus-visible,
.woocommerce-page button:focus-visible{
  outline:2px solid var(--cas-red) !important;
  outline-offset:3px !important;border-radius:var(--cas-radius);
}
.woocommerce input:focus-visible,
.woocommerce select:focus-visible,
.woocommerce textarea:focus-visible{
  outline:0 !important;box-shadow:0 0 0 3px rgba(233,34,37,.14);
}


/* ==========================================================================
   5. NOTICES
   ========================================================================== */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice,
.woocommerce ul.woocommerce-error{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  border:1px solid var(--cas-border) !important;
  border-left:3px solid var(--cas-red) !important;
  border-radius:var(--cas-radius);
  background:#fff !important;color:var(--cas-text) !important;
  padding:16px 20px;margin:0 0 22px;
  font-family:var(--cas-font-body);font-size:14.5px;line-height:1.6;
  box-shadow:0 4px 16px rgba(0,0,0,.04);
  list-style:none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before{
  position:static;display:inline-block;margin:0;top:auto;left:auto;
  font-size:16px;color:var(--cas-red) !important;
}
.woocommerce-message{border-left-color:var(--cas-ok) !important}
.woocommerce-message::before{color:var(--cas-ok) !important}
.woocommerce-error{border-left-color:var(--cas-err) !important;background:#fdf6f6 !important}
.woocommerce-error::before{color:var(--cas-err) !important}
.woocommerce-error li{list-style:none;margin:0}
.woocommerce .woocommerce-notices-wrapper:empty{display:none}

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-message a.button.wc-forward{
  margin-left:auto;height:40px;padding:0 20px;font-size:11.5px;
  background:var(--cas-black) !important;color:#fff !important;border:0 !important;
}
.woocommerce-message .button:hover,
.woocommerce-info .button:hover{background:var(--cas-red) !important;box-shadow:none}

@media (max-width:640px){
  .woocommerce-message,.woocommerce-info,.woocommerce-error{
    padding:14px 16px;font-size:13.5px;gap:10px;
  }
  .woocommerce-message .button,
  .woocommerce-info .button{margin:6px 0 0;width:100%}
}


/* ==========================================================================
   6. LINKS, NO BLUE ANYWHERE
   ========================================================================== */

.woocommerce .product_meta a,
.woocommerce .posted_in a,
.woocommerce .tagged_as a,
.woocommerce ul.products li.product a,
.woocommerce div.product .summary a:not(.button):not(.cas-single-brand){
  color:var(--cas-text) !important;
}
.woocommerce .product_meta a:hover,
.woocommerce .posted_in a:hover,
.woocommerce .tagged_as a:hover,
.woocommerce div.product .summary a:not(.button):hover{color:var(--cas-red) !important}

.woocommerce a.reset_variations,
.woocommerce .lost_password a,
.woocommerce .showcoupon,
.woocommerce .woocommerce-privacy-policy-link,
.woocommerce-checkout a.showlogin{color:var(--cas-red) !important}


/* ==========================================================================
   7. ARCHIVE HEADER AND BREADCRUMBS
   ========================================================================== */

.woocommerce .woocommerce-breadcrumb{
  font-family:var(--cas-font-body);font-size:12.5px;line-height:1.6;
  color:var(--cas-muted);margin:0 0 18px;padding:0;
}
.woocommerce .woocommerce-breadcrumb a{color:var(--cas-muted) !important}
.woocommerce .woocommerce-breadcrumb a:hover{color:var(--cas-red) !important}

.woocommerce .woocommerce-products-header{padding:0;margin:0 0 20px}
.woocommerce .woocommerce-products-header__title,
.woocommerce .page-title{
  font-family:var(--cas-font-head);
  font-size:clamp(24px,3.2vw,38px);line-height:1.08;
  letter-spacing:1.1px;text-transform:uppercase;color:var(--cas-text);margin:0;
}
.woocommerce .term-description{
  font-size:15px;line-height:1.7;color:var(--cas-muted);
  max-width:70ch;margin-top:12px;
}

/* Subcategory tiles on a parent category page */
.woocommerce ul.products li.product-category a{
  display:block;position:relative;background:#fff;
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);overflow:hidden;
  transition:border-color .35s var(--cas-ease),box-shadow .35s var(--cas-ease),transform .35s var(--cas-ease);
}
.woocommerce ul.products li.product-category a:hover{
  border-color:var(--cas-border-2);box-shadow:0 12px 30px rgba(0,0,0,.08);transform:translateY(-3px);
}
.woocommerce ul.products li.product-category h2{
  font-family:var(--cas-font-head) !important;
  font-size:15px !important;font-weight:700;letter-spacing:1px;text-transform:uppercase;
  padding:16px 14px !important;margin:0;text-align:center;color:var(--cas-text);
}
.woocommerce ul.products li.product-category mark.count{
  background:none;color:var(--cas-red);font-weight:700;
}


/* ==========================================================================
   8. SHOP TOOLBAR
   ========================================================================== */

.woocommerce .cas-toolbar{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap;
  padding:15px 0 16px;margin:0 0 24px;
  border-top:1px solid var(--cas-border);
  border-bottom:1px solid var(--cas-border);
}
.woocommerce .woocommerce-result-count{
  float:none;margin:0;display:inline-flex;align-items:center;
  font-family:var(--cas-font-head);font-size:12px;font-weight:600;
  letter-spacing:1.7px;text-transform:uppercase;color:var(--cas-muted);
}
.woocommerce .woocommerce-ordering{float:none;margin:0;display:inline-flex;align-items:center}
.woocommerce .woocommerce-ordering select{
  height:44px;min-width:210px;padding:0 40px 0 15px;
  font-family:var(--cas-font-body);font-size:14px;color:var(--cas-text);
  background-color:#fff;border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  -webkit-appearance:none;appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;
  transition:border-color .28s var(--cas-ease);
}
.woocommerce .woocommerce-ordering select:hover{border-color:var(--cas-border-2)}

@media (max-width:640px){
  .woocommerce .cas-toolbar{gap:10px;padding:13px 0 14px;margin-bottom:18px}
  .woocommerce .woocommerce-result-count{width:100%;font-size:11px}
  .woocommerce .woocommerce-ordering,
  .woocommerce .woocommerce-ordering select{width:100%;min-width:0}
  .woocommerce .woocommerce-ordering select{font-size:16px} /* stops iOS zoom */
}


/* ==========================================================================
   9. PRODUCT CARDS

   Astra markup, measured live:
     li.product
       div.astra-shop-thumbnail-wrap
         a.woocommerce-LoopProduct-link  > img, span.cas-second-wrap, span.cas-card-brand
         a.ast-on-card-button            > the bag icon
       div.astra-shop-summary-wrap
         span.ast-woo-product-category, a.ast-loop-product__link > h2, span.price, a.button
   ========================================================================== */

.woocommerce ul.products{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--cas-gap);
  margin:0 0 32px !important;padding:0;list-style:none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{display:none !important}

.woocommerce ul.products li.product{
  width:100% !important;margin:0 !important;padding:0 !important;
  float:none !important;clear:none !important;
  display:flex;flex-direction:column;
  background:#fff;
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  overflow:hidden;position:relative;
  transition:border-color .35s var(--cas-ease),box-shadow .35s var(--cas-ease),transform .35s var(--cas-ease);
}
.woocommerce ul.products li.product:hover{
  border-color:var(--cas-border-2);
  box-shadow:0 14px 32px rgba(0,0,0,.09);
  transform:translateY(-3px);
}

/* --- Square image frame --- */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap{
  position:relative;display:block;flex:none;
  width:100%;aspect-ratio:1/1;
  background:#fff;overflow:hidden;
  border-bottom:1px solid var(--cas-border);
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link{
  position:absolute;inset:0;display:block;z-index:1;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;object-position:center;
  margin:0;padding:16px;background:#fff;
  border-radius:0;box-shadow:none;
  transition:transform .8s var(--cas-ease);
}
.woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap img{transform:scale(1.05)}

/* Second gallery image */
.woocommerce ul.products li.product .cas-second-wrap{
  position:absolute;inset:0;z-index:2;
  opacity:0;pointer-events:none;
  transition:opacity .45s var(--cas-ease);
}
.woocommerce ul.products li.product:hover .cas-second-wrap{opacity:1}

/* Badges. Sale top left, stock under it, brand bottom left, bag top right. */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale{
  position:absolute;top:11px;left:11px;right:auto;z-index:4;
  min-width:0;min-height:0;width:auto;height:auto;line-height:1;margin:0;
  padding:6px 9px;border-radius:var(--cas-radius);
  font-family:var(--cas-font-head);font-size:11px;font-weight:700;
  letter-spacing:1.2px;text-transform:uppercase;
  background:var(--cas-red);color:#fff;
}
.cas-stock-flag{
  position:absolute;top:11px;left:11px;z-index:4;
  padding:5px 8px;border-radius:var(--cas-radius);
  font-family:var(--cas-font-head);font-size:10px;font-weight:700;
  letter-spacing:1.2px;text-transform:uppercase;line-height:1;
}
.cas-stock-pre{background:var(--cas-black);color:#fff}
.cas-stock-low{background:#fff3cd;color:var(--cas-warn);border:1px solid #f0dca0}
/* If both appear, push the stock flag below the sale badge */
.woocommerce ul.products li.product .onsale ~ .cas-stock-flag{top:44px}

.woocommerce ul.products li.product .cas-card-brand{
  position:absolute;left:11px;bottom:11px;z-index:4;
  display:inline-block;pointer-events:none;
  padding:5px 10px;border-radius:99px;line-height:1;
  font-family:var(--cas-font-head);font-size:10px;font-weight:700;
  letter-spacing:1.6px;text-transform:uppercase;
  color:var(--cas-text) !important;
  background:rgba(255,255,255,.94);
  border:1px solid var(--cas-border);
  transition:background .3s var(--cas-ease),color .3s var(--cas-ease),border-color .3s var(--cas-ease);
}
.woocommerce ul.products li.product:hover .cas-card-brand{
  background:var(--cas-black);color:#fff !important;border-color:var(--cas-black);
}

/* Astra's bag icon over the image */
.woocommerce ul.products li.product .ast-on-card-button,
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a.add_to_cart_button,
.woocommerce ul.products li.product .ast-quick-view-button{
  position:absolute !important;top:11px;right:11px;left:auto;bottom:auto;z-index:6;
  width:38px !important;height:38px !important;min-width:0;max-width:38px;
  padding:0 !important;margin:0 !important;
  border-radius:50% !important;
  display:flex !important;align-items:center;justify-content:center;
  background:#fff !important;color:var(--cas-text) !important;
  border:1px solid var(--cas-border) !important;
  box-shadow:0 3px 12px rgba(0,0,0,.12);
  font-size:0 !important;letter-spacing:0 !important;line-height:0 !important;
  opacity:0;transform:translateY(-6px) scale(.92);
  transition:opacity .32s var(--cas-ease),transform .32s var(--cas-ease),
             background .28s var(--cas-ease),border-color .28s var(--cas-ease);
}
.woocommerce ul.products li.product:hover .ast-on-card-button,
.woocommerce ul.products li.product .ast-on-card-button:focus-visible{opacity:1;transform:none}
.woocommerce ul.products li.product .ast-on-card-button:hover{
  background:var(--cas-red) !important;border-color:var(--cas-red) !important;
}
.woocommerce ul.products li.product .ast-on-card-button .ahfb-svg-iconset,
.woocommerce ul.products li.product .ast-on-card-button .ast-icon{
  display:flex;align-items:center;justify-content:center;line-height:0;
}
.woocommerce ul.products li.product .ast-on-card-button svg{
  width:16px !important;height:16px !important;
  fill:var(--cas-text);transition:fill .28s var(--cas-ease);
}
.woocommerce ul.products li.product .ast-on-card-button:hover svg{fill:#fff}
.woocommerce ul.products li.product .ast-on-card-button.added{
  background:var(--cas-ok) !important;border-color:var(--cas-ok) !important;opacity:1;transform:none;
}
.woocommerce ul.products li.product .ast-on-card-button.added svg{fill:#fff}
.woocommerce ul.products li.product .ast-card-action-tooltip{
  position:absolute;right:calc(100% + 9px);top:50%;transform:translateY(-50%);
  padding:6px 10px;border-radius:var(--cas-radius);white-space:nowrap;
  background:var(--cas-black);color:#fff;
  font-family:var(--cas-font-head);font-size:10.5px;font-weight:700;
  letter-spacing:1.3px;text-transform:uppercase;line-height:1;
  opacity:0;pointer-events:none;transition:opacity .28s var(--cas-ease);
}
.woocommerce ul.products li.product .ast-on-card-button:hover .ast-card-action-tooltip{opacity:1}

/* --- Card body --- */
.woocommerce ul.products li.product .astra-shop-summary-wrap{
  display:flex;flex-direction:column;flex:1;
  padding:14px 15px 15px;text-align:left;
}
.woocommerce ul.products li.product .ast-woo-product-category{display:none !important}
.woocommerce ul.products li.product .ast-loop-product__link{display:block}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title{
  font-family:var(--cas-font-body) !important;
  font-size:13.5px !important;font-weight:600 !important;line-height:1.45 !important;
  letter-spacing:0 !important;text-transform:none !important;
  color:var(--cas-text);
  margin:0 !important;padding:0 !important;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:2.9em;
  transition:color .3s var(--cas-ease);
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title{color:var(--cas-red)}

/* margin-top:auto on the price pins price and button to the bottom, so
   they line up across the row whatever length the titles are. */
.woocommerce ul.products li.product .price{
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
  font-family:var(--cas-font-head);font-size:18px;font-weight:700;
  letter-spacing:.4px;color:var(--cas-text);
  margin:auto 0 0;padding-top:12px;
}
.woocommerce ul.products li.product .price del{
  order:2;opacity:1;
  font-family:var(--cas-font-body);font-size:12.5px;font-weight:500;
  color:#9a9a9e;text-decoration:line-through;
}
.woocommerce ul.products li.product .price ins{
  order:1;background:none;text-decoration:none;font-weight:700;color:var(--cas-text);
}
.woocommerce ul.products li.product .star-rating{font-size:12px;margin:8px 0 0;color:#FFB800}

/* The card button. Scoped to the summary wrap so it never catches the
   bag icon over the image. */
.woocommerce ul.products li.product .astra-shop-summary-wrap > .button,
.woocommerce ul.products li.product .astra-shop-summary-wrap > a.add_to_cart_button{
  width:100%;margin:12px 0 0;height:42px;padding:0 12px;
  font-size:11px;letter-spacing:1.5px;
  background:var(--cas-grey);color:var(--cas-text) !important;
  border:1px solid var(--cas-border);
}
.woocommerce ul.products li.product .astra-shop-summary-wrap > .button:hover{
  background:var(--cas-red);color:#fff !important;border-color:var(--cas-red);box-shadow:none;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap > .button.added{
  background:var(--cas-ok) !important;color:#fff !important;border-color:var(--cas-ok) !important;
}
/* "View cart" would make one card taller and push the whole row */
.woocommerce ul.products li.product a.added_to_cart{display:none !important}

.woocommerce .woocommerce-info.woocommerce-no-products-found{
  text-align:center;justify-content:center;padding:44px 20px;
}

/* --- Card responsive --- */
@media (max-width:1300px){
  .woocommerce ul.products{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:1100px){
  .woocommerce ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap img{padding:10px}
  .woocommerce ul.products li.product .astra-shop-summary-wrap{padding:11px 11px 12px}
  .woocommerce ul.products li.product .woocommerce-loop-product__title{
    font-size:12.5px !important;min-height:2.9em;
  }
  .woocommerce ul.products li.product .price{font-size:16px;padding-top:9px}
  .woocommerce ul.products li.product .astra-shop-summary-wrap > .button{
    height:38px;font-size:10px;letter-spacing:1.1px;margin-top:10px;
  }
  .woocommerce ul.products li.product .cas-card-brand{
    left:8px;bottom:8px;font-size:9px;padding:4px 8px;letter-spacing:1.2px;
  }
  .woocommerce span.onsale,
  .woocommerce ul.products li.product .onsale,
  .cas-stock-flag{top:8px;left:8px;font-size:9.5px;padding:4px 7px}
  .woocommerce ul.products li.product .onsale ~ .cas-stock-flag{top:36px}
  /* Touch devices have no hover, so the bag icon is always visible */
  .woocommerce ul.products li.product .ast-on-card-button{
    opacity:1;transform:none;top:8px;right:8px;
    width:34px !important;height:34px !important;
  }
  .woocommerce ul.products li.product .ast-card-action-tooltip{display:none}
}
@media (max-width:420px){
  .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:12px !important}
  .woocommerce ul.products li.product .price{font-size:15px}
}


/* ==========================================================================
   10. PAGINATION
   ========================================================================== */

.woocommerce nav.woocommerce-pagination{margin:0 0 10px;text-align:center}
.woocommerce nav.woocommerce-pagination ul{
  display:inline-flex;gap:6px;flex-wrap:wrap;justify-content:center;
  border:0;margin:0;padding:0;
}
.woocommerce nav.woocommerce-pagination ul li{border:0;margin:0;overflow:visible}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  display:grid;place-items:center;
  min-width:42px;height:42px;padding:0 12px;
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  background:#fff;color:var(--cas-text);
  font-family:var(--cas-font-head);font-size:14px;font-weight:700;letter-spacing:.6px;
  transition:background .28s var(--cas-ease),border-color .28s var(--cas-ease),color .28s var(--cas-ease);
}
.woocommerce nav.woocommerce-pagination ul li a:hover{
  background:var(--cas-grey);border-color:var(--cas-border-2);
}
.woocommerce nav.woocommerce-pagination ul li span.current{
  background:var(--cas-black);border-color:var(--cas-black);color:#fff;
}
@media (max-width:640px){
  .woocommerce nav.woocommerce-pagination ul li a,
  .woocommerce nav.woocommerce-pagination ul li span{min-width:38px;height:38px;font-size:13px;padding:0 9px}
}


/* ==========================================================================
   11. SINGLE PRODUCT, LAYOUT
   ========================================================================== */

.woocommerce div.product{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  grid-template-areas:
    "gallery summary"
    "tabs    tabs"
    "related related";
  column-gap:clamp(26px,3.6vw,58px);
  row-gap:0;
  align-items:start;
}
.woocommerce div.product .woocommerce-product-gallery{
  grid-area:gallery;width:100% !important;float:none !important;margin:0 !important;
}
.woocommerce div.product .summary{
  grid-area:summary;width:100% !important;float:none !important;margin:0 !important;
}
.woocommerce div.product .woocommerce-tabs{
  grid-area:tabs;width:100%;margin-top:clamp(34px,4vw,60px);
}
.woocommerce div.product .related,
.woocommerce div.product .upsells{
  grid-area:related;width:100%;margin-top:clamp(34px,4vw,60px);
}

/* CRITICAL. Grid items default to min-width:auto, so any child with wide
   intrinsic content stretches its track instead of being clipped. The
   product gallery is exactly that: FlexSlider lays all 7 images in one row,
   about 3500px wide, which blew the whole page out horizontally on a phone.
   minmax(0,1fr) plus min-width:0 stops it. Do not simplify these to 1fr. */
.woocommerce div.product > *{min-width:0;max-width:100%}

@media (max-width:1024px){
  .woocommerce div.product{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"gallery" "summary" "tabs" "related";
  }
  .woocommerce div.product .summary{margin-top:24px !important}
}


/* ==========================================================================
   12. SINGLE PRODUCT, GALLERY
   ========================================================================== */

/* overflow:hidden here is what actually clips the FlexSlider track. Without
   it the slider's inline width leaks out and the page scrolls sideways. */
.woocommerce div.product .woocommerce-product-gallery{
  position:relative;min-width:0;max-width:100%;overflow:hidden;
}
.woocommerce div.product .flex-viewport{max-width:100%;overflow:hidden}
.woocommerce div.product .woocommerce-product-gallery__wrapper{
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  overflow:hidden;background:#fff;margin:0;max-width:100%;
}
/* Before FlexSlider initialises, the images are still stacked. Keep them
   contained so there is no sideways jump on load. */
.woocommerce div.product .woocommerce-product-gallery__image{max-width:100%}
.woocommerce div.product .woocommerce-product-gallery__image img{
  width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;
  padding:24px;background:#fff;
}
.woocommerce div.product .woocommerce-product-gallery__trigger{
  top:14px;right:14px;left:auto;z-index:9;
  width:40px;height:40px;border-radius:50%;
  background:#fff;border:1px solid var(--cas-border);
  display:grid;place-items:center;
  box-shadow:0 4px 14px rgba(0,0,0,.08);
  font-size:0;text-indent:0;
  transition:background .3s var(--cas-ease),border-color .3s var(--cas-ease);
}
.woocommerce div.product .woocommerce-product-gallery__trigger::before{
  content:"";position:static;margin:0;background:none;
  width:14px;height:14px;border:2px solid var(--cas-text);border-radius:50%;
  transition:border-color .3s var(--cas-ease);
}
.woocommerce div.product .woocommerce-product-gallery__trigger::after{
  content:"";position:absolute;width:2px;height:7px;
  background:var(--cas-text);border-radius:2px;
  transform:rotate(-45deg);bottom:10px;right:12px;
  transition:background .3s var(--cas-ease);
}
.woocommerce div.product .woocommerce-product-gallery__trigger:hover{
  background:var(--cas-red);border-color:var(--cas-red);
}
.woocommerce div.product .woocommerce-product-gallery__trigger:hover::before{border-color:#fff}
.woocommerce div.product .woocommerce-product-gallery__trigger:hover::after{background:#fff}

.woocommerce div.product .flex-control-thumbs{
  display:grid;grid-template-columns:repeat(5,1fr);gap:8px;
  margin:8px 0 0;padding:0;
}
.woocommerce div.product .flex-control-thumbs li{
  width:100% !important;margin:0 !important;float:none !important;list-style:none;
}
.woocommerce div.product .flex-control-thumbs img{
  width:100%;aspect-ratio:1/1;object-fit:contain;padding:6px;
  background:#fff;border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  opacity:.65;cursor:pointer;
  transition:opacity .3s var(--cas-ease),border-color .3s var(--cas-ease);
}
.woocommerce div.product .flex-control-thumbs img:hover{opacity:.9}
.woocommerce div.product .flex-control-thumbs img.flex-active{opacity:1;border-color:var(--cas-red)}

@media (max-width:1024px){
  .woocommerce div.product .flex-control-thumbs{grid-template-columns:repeat(6,1fr)}
}
@media (max-width:640px){
  .woocommerce div.product .woocommerce-product-gallery__image img{padding:14px}
  .woocommerce div.product .flex-control-thumbs{grid-template-columns:repeat(4,1fr);gap:6px}
  .woocommerce div.product .woocommerce-product-gallery__trigger{width:36px;height:36px;top:10px;right:10px}
}


/* ==========================================================================
   13. SINGLE PRODUCT, SUMMARY

   Astra hides h1.product_title and prints its own category line.
   Both are corrected here. Order is set explicitly so an Astra update
   cannot reshuffle the column.
   ========================================================================== */

.woocommerce div.product .summary.entry-summary{
  display:flex;flex-direction:column;align-items:stretch;
}
.woocommerce div.product .summary .woocommerce-breadcrumb{order:1;margin:0 0 14px}
.woocommerce div.product .summary .cas-single-brand{order:2}
.woocommerce div.product .summary .product_title{order:3}
.woocommerce div.product .summary .woocommerce-product-rating{order:4}
.woocommerce div.product .summary .price{order:5}
.woocommerce div.product .summary .stock{order:6}
.woocommerce div.product .summary .woocommerce-product-details__short-description{order:7}
.woocommerce div.product .summary form.cart{order:8}
.woocommerce div.product .summary .cas-trust{order:9}
.woocommerce div.product .summary .product_meta{order:10}

/* Astra's category line, replaced by the brand */
.woocommerce div.product .single-product-category{display:none !important}

.woocommerce div.product .summary .cas-single-brand{
  display:inline-flex;align-items:center;gap:9px;align-self:flex-start;
  font-family:var(--cas-font-head);font-size:11px;font-weight:700;
  letter-spacing:2.2px;text-transform:uppercase;
  color:var(--cas-red) !important;margin:0 0 10px;
  transition:gap .3s var(--cas-ease);
}
.woocommerce div.product .summary .cas-single-brand::before{
  content:"";width:20px;height:2px;background:var(--cas-red);flex:none;
}
.woocommerce div.product .summary a.cas-single-brand:hover{gap:13px}

/* Title, forced visible */
.woocommerce div.product .summary h1.product_title,
.woocommerce div.product .summary .product_title.entry-title,
.woocommerce div.product h1.product_title{
  display:block !important;visibility:visible !important;
  font-family:var(--cas-font-head);
  font-size:clamp(22px,2.5vw,32px);line-height:1.16;
  letter-spacing:.6px;text-transform:uppercase;color:var(--cas-text);
  margin:0 0 14px !important;padding:0;
}

.woocommerce div.product .summary .woocommerce-product-rating{
  display:flex;align-items:center;gap:12px;margin:0 0 12px;
}
.woocommerce div.product .summary .woocommerce-product-rating .star-rating{color:#FFB800;margin:0}
.woocommerce div.product .summary .woocommerce-review-link{font-size:13px;color:var(--cas-muted)}

.woocommerce div.product .summary p.price,
.woocommerce div.product .summary span.price{
  display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  font-family:var(--cas-font-head);font-size:clamp(25px,2.8vw,32px);font-weight:700;
  letter-spacing:.4px;color:var(--cas-text);
  margin:0 !important;padding:0 0 18px;
  border-bottom:1px solid var(--cas-border);
}
.woocommerce div.product .summary p.price del{
  opacity:1;font-family:var(--cas-font-body);font-size:16px;font-weight:500;
  color:#9a9a9e;text-decoration:line-through;
}
.woocommerce div.product .summary p.price ins{
  background:none;text-decoration:none;color:var(--cas-red);font-weight:700;
}
.woocommerce div.product .summary .woocommerce-price-suffix{
  font-family:var(--cas-font-body);font-size:12.5px;font-weight:400;color:var(--cas-muted);
}

.woocommerce div.product .summary .stock{
  display:inline-flex;align-items:center;gap:8px;align-self:flex-start;
  font-family:var(--cas-font-head);font-size:12px;font-weight:600;
  letter-spacing:1.5px;text-transform:uppercase;margin:15px 0 0 !important;
}
.woocommerce div.product .summary .stock::before{
  content:"";width:8px;height:8px;border-radius:50%;background:currentColor;flex:none;
}
.woocommerce div.product .summary .stock.in-stock{color:var(--cas-ok)}
.woocommerce div.product .summary .stock.out-of-stock,
.woocommerce div.product .summary .stock.available-on-backorder{color:var(--cas-warn)}

.woocommerce div.product .summary .woocommerce-product-details__short-description{
  font-family:var(--cas-font-body);font-size:14.5px;line-height:1.75;color:#3d3d41;
  margin:18px 0 0;
}
.woocommerce div.product .summary .woocommerce-product-details__short-description p{margin:0 0 11px}
.woocommerce div.product .summary .woocommerce-product-details__short-description p:last-child{margin:0}

/* --- Buy row --- */
.woocommerce div.product .summary form.cart{
  display:flex;align-items:stretch;gap:12px;flex-wrap:wrap;
  margin:22px 0 0 !important;padding:0 !important;border:0 !important;
}
.woocommerce div.product .summary form.cart .quantity{
  display:flex;align-items:stretch;flex:0 0 auto;
  height:54px;margin:0;padding:0;background:#fff;
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);overflow:hidden;
}
.woocommerce div.product .summary form.cart .quantity input.qty{
  width:52px;height:100%;border:0 !important;background:transparent;
  text-align:center;padding:0;margin:0;box-shadow:none !important;
  font-family:var(--cas-font-head);font-size:17px;font-weight:700;color:var(--cas-text);
  -moz-appearance:textfield;
}
.woocommerce div.product .summary form.cart .quantity input.qty::-webkit-outer-spin-button,
.woocommerce div.product .summary form.cart .quantity input.qty::-webkit-inner-spin-button{
  -webkit-appearance:none;margin:0;
}
.woocommerce div.product .summary form.cart button.single_add_to_cart_button,
.woocommerce div.product .summary form.cart .button{
  flex:1 1 230px;height:54px;margin:0;padding:0 30px;
  font-size:13px;letter-spacing:1.9px;
}

/* Flat quantity buttons, no dividers, no red */
.cas-qty-btn{
  width:44px;border:0;background:transparent;cursor:pointer;
  display:grid;place-items:center;padding:0;margin:0;
  font-family:var(--cas-font-head);font-size:21px;font-weight:500;line-height:1;
  color:var(--cas-muted);
  transition:background .25s var(--cas-ease),color .25s var(--cas-ease);
}
.cas-qty-btn:hover{background:var(--cas-grey);color:var(--cas-text)}
.cas-qty-btn:active{background:var(--cas-grey-2)}

/* Variations */
.woocommerce div.product form.cart .variations{width:100%;margin:0 0 16px;border:0}
.woocommerce div.product form.cart .variations tr{display:block;margin-bottom:13px}
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td{
  display:block;width:100%;padding:0;border:0;text-align:left;
}
.woocommerce div.product form.cart .variations label{
  display:block;margin-bottom:8px;
  font-family:var(--cas-font-head);font-size:11.5px;font-weight:600;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--cas-text);
}
.woocommerce div.product form.cart .variations select{
  width:100%;height:50px;padding:0 40px 0 15px;
  font-family:var(--cas-font-body);font-size:14.5px;color:var(--cas-text);
  background-color:#fff;border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  -webkit-appearance:none;appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;
}

/* --- Trust badges --- */
.cas-trust{
  display:grid;grid-template-columns:1fr 1fr;gap:13px 18px;
  margin:22px 0 0 !important;padding:18px 20px;
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
}
.cas-trust-item{
  display:flex;align-items:flex-start;gap:10px;
  font-family:var(--cas-font-body);font-size:13.5px;line-height:1.5;color:#3d3d41;
}
.cas-trust-ico{
  flex:none;width:31px;height:31px;border-radius:var(--cas-radius);
  display:grid;place-items:center;background:var(--cas-grey);
}
.cas-trust-ico svg{
  width:16px;height:16px;stroke:var(--cas-red);fill:none;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round;
}

/* --- Meta --- */
.woocommerce div.product .summary .product_meta{
  display:grid;gap:8px;
  margin:22px 0 0 !important;padding:20px 0 0;
  border-top:1px solid var(--cas-border);
  font-family:var(--cas-font-body);font-size:13px;color:var(--cas-muted);
}
.woocommerce div.product .summary .product_meta > span{display:block}
.woocommerce div.product .summary .product_meta a,
.woocommerce div.product .summary .product_meta .sku{color:var(--cas-text) !important;font-weight:600}
.woocommerce div.product .summary .product_meta a:hover{color:var(--cas-red) !important}

/* --- Summary responsive --- */
@media (max-width:640px){
  .woocommerce div.product .summary form.cart{gap:10px}
  .woocommerce div.product .summary form.cart .quantity{
    flex:1 1 100%;justify-content:space-between;height:52px;
  }
  .woocommerce div.product .summary form.cart .quantity input.qty{flex:1;width:auto}
  .cas-qty-btn{width:56px}
  .woocommerce div.product .summary form.cart button.single_add_to_cart_button,
  .woocommerce div.product .summary form.cart .button{flex:1 1 100%;height:52px}
  .cas-trust{grid-template-columns:1fr;padding:16px;gap:12px}
  .woocommerce div.product .summary p.price{padding-bottom:15px}
}


/* ==========================================================================
   14. TABS AND RELATED
   ========================================================================== */

.woocommerce div.product .woocommerce-tabs ul.tabs{
  display:flex;gap:2px;flex-wrap:wrap;margin:0;padding:0;
  border-bottom:1px solid var(--cas-border);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  margin:0;padding:0;border:0;background:none;border-radius:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display:block;padding:14px 20px;position:relative;
  font-family:var(--cas-font-head);font-size:12.5px;font-weight:700;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--cas-muted);
  transition:color .3s var(--cas-ease);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a::after{
  content:"";position:absolute;left:20px;right:20px;bottom:-1px;height:2px;
  background:var(--cas-red);transform:scaleX(0);
  transition:transform .35s var(--cas-ease);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{color:var(--cas-text)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--cas-red)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after{transform:scaleX(1)}

.woocommerce div.product .woocommerce-tabs .panel{
  padding:26px 0 0;margin:0;border:0;box-shadow:none;
  font-family:var(--cas-font-body);font-size:15px;line-height:1.78;color:#3d3d41;
  max-width:80ch;
}
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child{display:none}
.woocommerce div.product .woocommerce-tabs .panel h3,
.woocommerce div.product .woocommerce-tabs .panel h4{
  font-family:var(--cas-font-head);font-size:17px;letter-spacing:.7px;
  text-transform:uppercase;color:var(--cas-text);margin:26px 0 10px;
}
.woocommerce div.product .woocommerce-tabs .panel p{margin:0 0 14px}
.woocommerce div.product .woocommerce-tabs .panel ul,
.woocommerce div.product .woocommerce-tabs .panel ol{margin:0 0 16px;padding-left:0;list-style:none}
.woocommerce div.product .woocommerce-tabs .panel ul li{
  position:relative;padding-left:21px;margin-bottom:8px;line-height:1.68;
}
.woocommerce div.product .woocommerce-tabs .panel ul li::before{
  content:"";position:absolute;left:0;top:10px;
  width:6px;height:6px;border-radius:50%;background:var(--cas-red);
}
.woocommerce div.product .woocommerce-tabs .panel ul ul{margin:9px 0 0}

.woocommerce table.shop_attributes{
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  overflow:hidden;margin:0;
}
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td{
  padding:13px 16px;border:0;border-bottom:1px solid var(--cas-border);
  font-family:var(--cas-font-body);font-size:14px;font-style:normal;
}
.woocommerce table.shop_attributes th{width:220px;background:var(--cas-grey);font-weight:600}
.woocommerce table.shop_attributes td{color:#3d3d41}
.woocommerce table.shop_attributes td p{margin:0;padding:0}
.woocommerce table.shop_attributes tr:last-child th,
.woocommerce table.shop_attributes tr:last-child td{border-bottom:0}

@media (max-width:640px){
  .woocommerce div.product .woocommerce-tabs ul.tabs{
    flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
  }
  .woocommerce div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar{display:none}
  .woocommerce div.product .woocommerce-tabs ul.tabs li{flex:none}
  .woocommerce div.product .woocommerce-tabs ul.tabs li a{padding:12px 15px;font-size:11.5px;letter-spacing:1.2px}
  .woocommerce div.product .woocommerce-tabs .panel{font-size:14.5px;padding-top:20px}
  .woocommerce table.shop_attributes th{width:120px;font-size:13px;padding:11px 12px}
  .woocommerce table.shop_attributes td{font-size:13px;padding:11px 12px}
}


/* ==========================================================================
   15. STICKY ADD TO CART
   ========================================================================== */

.cas-sticky-atc{
  position:fixed;left:0;right:0;bottom:0;z-index:9990;
  background:#fff;border-top:1px solid var(--cas-border);
  box-shadow:0 -6px 26px rgba(0,0,0,.1);
  transform:translateY(110%);
  transition:transform .4s var(--cas-ease);
  padding:10px 0;
}
.cas-sticky-atc.is-on{transform:none}
.cas-sticky-in{
  max-width:1360px;margin:0 auto;padding:0 24px;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
}
.cas-sticky-info{display:flex;align-items:center;gap:14px;min-width:0}
.cas-sticky-img{flex:none;width:48px;height:48px;border-radius:var(--cas-radius);overflow:hidden;background:#fafafa}
.cas-sticky-img img{width:100%;height:100%;object-fit:contain;padding:5px;margin:0;display:block}
.cas-sticky-txt{display:flex;flex-direction:column;min-width:0}
.cas-sticky-name{
  font-family:var(--cas-font-body);font-size:13.5px;font-weight:600;color:var(--cas-text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:44ch;
}
.cas-sticky-price{
  font-family:var(--cas-font-head);font-size:17px;font-weight:700;color:var(--cas-text);margin-top:2px;
}
.cas-sticky-price del{font-family:var(--cas-font-body);font-size:13px;color:#9a9a9e;margin-right:6px}
.cas-sticky-price ins{background:none;text-decoration:none;color:var(--cas-red)}
.cas-sticky-btn{
  flex:none;height:46px;padding:0 30px;border:0;border-radius:var(--cas-radius);cursor:pointer;
  font-family:var(--cas-font-head);font-size:12.5px;font-weight:700;
  letter-spacing:1.7px;text-transform:uppercase;
  background:var(--cas-red);color:#fff;
  transition:background .3s var(--cas-ease);
}
.cas-sticky-btn:hover{background:var(--cas-red-dark)}

@media (max-width:640px){
  .cas-sticky-in{padding:0 16px;gap:12px}
  .cas-sticky-img{display:none}
  .cas-sticky-name{font-size:12.5px;max-width:20ch}
  .cas-sticky-price{font-size:15px}
  .cas-sticky-btn{height:44px;padding:0 20px;font-size:11.5px;letter-spacing:1.3px}
}


/* ==========================================================================
   16. FREE DELIVERY BAR
   ========================================================================== */

.cas-ship-bar{
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  background:#fff;padding:15px 18px 16px;margin:0 0 16px;
}
.cas-ship-txt{
  display:flex;align-items:center;gap:11px;
  font-family:var(--cas-font-body);font-size:14px;line-height:1.5;color:#3d3d41;
}
.cas-ship-txt b{color:var(--cas-text);font-weight:600}
.cas-ship-txt .woocommerce-Price-amount{
  font-family:var(--cas-font-head);font-size:16px;font-weight:700;color:var(--cas-red);
}
.cas-ship-txt svg{
  width:20px;height:20px;flex:none;
  stroke:var(--cas-red);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;
}
.cas-ship-track{
  height:6px;border-radius:99px;background:var(--cas-grey-2);margin-top:12px;overflow:hidden;
}
.cas-ship-track span{
  display:block;height:100%;border-radius:99px;
  background:linear-gradient(90deg,var(--cas-red),#ff5b5e);
  transition:width .7s var(--cas-ease);
}
.cas-ship-bar.is-free{border-color:#cfe6d7;background:#f4fbf6}
.cas-ship-bar.is-free .cas-ship-txt{color:#1a6b3c;font-weight:500}
.cas-ship-bar.is-free .cas-ship-txt svg{stroke:var(--cas-ok);stroke-width:2.6}
.cas-ship-bar.is-free .cas-ship-track span{background:var(--cas-ok)}

@media (max-width:640px){
  .cas-ship-bar{padding:13px 15px 14px}
  .cas-ship-txt{font-size:13px;gap:9px}
  .cas-ship-txt svg{width:18px;height:18px}
}


/* ==========================================================================
   17. CART
   Astra strips .cart_totals padding and forces its heading margin, so those
   two properties are the only forced ones here.
   ========================================================================== */

.woocommerce-cart .woocommerce{
  display:grid;
  grid-template-columns:minmax(0,1fr) 370px;
  gap:clamp(18px,2.6vw,34px);
  align-items:start;
}
.woocommerce-cart .woocommerce > *{min-width:0;max-width:100%}
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce > .cas-ship-bar{grid-column:1 / -1}
.woocommerce-cart form.woocommerce-cart-form{
  grid-column:1;width:100% !important;float:none !important;margin:0 !important;
}
.woocommerce-cart .cart-collaterals{
  grid-column:2;
  width:100% !important;max-width:100% !important;
  float:none !important;margin:0 !important;padding:0 !important;
  position:sticky;top:var(--cas-sticky-top);
}
.woocommerce-cart .cart-collaterals .cross-sells{
  grid-column:1 / -1;width:100% !important;float:none !important;margin-top:22px !important;
}

/* --- Cart table --- */
.woocommerce table.shop_table{
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  border-collapse:separate;border-spacing:0;overflow:hidden;background:#fff;margin:0;
}
.woocommerce table.shop_table th{
  padding:14px 16px;background:var(--cas-grey);border:0;
  border-bottom:1px solid var(--cas-border);
  font-family:var(--cas-font-head);font-size:11px;font-weight:700;
  letter-spacing:1.8px;text-transform:uppercase;color:var(--cas-text);
}
.woocommerce table.shop_table td{
  padding:16px;border:0;border-bottom:1px solid var(--cas-border);
  font-family:var(--cas-font-body);font-size:14px;color:#3d3d41;vertical-align:middle;
}

.woocommerce-cart table.cart td.product-remove,
.woocommerce-cart table.cart th.product-remove{width:46px;padding:16px 0 16px 14px}
.woocommerce-cart table.cart td.product-thumbnail,
.woocommerce-cart table.cart th.product-thumbnail{width:92px;padding-left:12px;padding-right:0}
.woocommerce-cart table.cart td.product-name,
.woocommerce-cart table.cart th.product-name{width:auto;min-width:230px;padding-left:16px}
.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart th.product-price{width:108px;white-space:nowrap}
.woocommerce-cart table.cart td.product-quantity,
.woocommerce-cart table.cart th.product-quantity{width:142px}
.woocommerce-cart table.cart td.product-subtotal,
.woocommerce-cart table.cart th.product-subtotal{
  width:118px;text-align:right;white-space:nowrap;padding-right:16px;
}

.woocommerce table.shop_table .product-thumbnail img{
  width:72px;height:72px;object-fit:contain;padding:5px;
  background:#fafafa;border:1px solid var(--cas-border);border-radius:var(--cas-radius);
}
.woocommerce table.shop_table .product-name > a{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-family:var(--cas-font-body);font-size:14px;font-weight:600;
  color:var(--cas-text) !important;line-height:1.45;
}
.woocommerce table.shop_table .product-name > a:hover{color:var(--cas-red) !important}
.woocommerce table.shop_table .product-name p,
.woocommerce table.shop_table .product-name .wc-item-meta{
  margin:6px 0 0;font-size:12.5px;color:var(--cas-muted);
}
.woocommerce table.shop_table .product-price,
.woocommerce table.shop_table .product-subtotal{
  font-family:var(--cas-font-head);font-size:16px;font-weight:700;color:var(--cas-text);
}
.woocommerce table.shop_table td.product-quantity .quantity{
  display:inline-flex;align-items:stretch;height:44px;background:#fff;
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);overflow:hidden;
}
.woocommerce table.shop_table td.product-quantity input.qty{
  width:44px;height:100%;border:0;text-align:center;background:transparent;
  font-family:var(--cas-font-head);font-size:15px;font-weight:700;color:var(--cas-text);
  -moz-appearance:textfield;box-shadow:none !important;
}
.woocommerce table.shop_table td.product-quantity input.qty::-webkit-outer-spin-button,
.woocommerce table.shop_table td.product-quantity input.qty::-webkit-inner-spin-button{
  -webkit-appearance:none;margin:0;
}
.woocommerce table.shop_table td.product-quantity .cas-qty-btn{width:36px;font-size:17px}

.woocommerce a.remove{
  width:26px;height:26px;line-height:24px;font-size:18px;font-weight:400;
  color:#b4b4b8 !important;border:1px solid var(--cas-border);border-radius:50%;background:#fff;
  transition:background .28s var(--cas-ease),color .28s var(--cas-ease),border-color .28s var(--cas-ease);
}
.woocommerce a.remove:hover{
  background:var(--cas-red) !important;color:#fff !important;border-color:var(--cas-red);
}

/* Coupon and update row */
.woocommerce table.shop_table td.actions{
  padding:16px;background:var(--cas-grey);border-bottom:0;
}
.woocommerce table.shop_table td.actions .coupon{display:flex;gap:8px;align-items:stretch;float:none}
.woocommerce table.shop_table td.actions .coupon label{display:none}
.woocommerce table.shop_table td.actions .coupon .input-text{
  width:auto;flex:1 1 190px;max-width:270px;height:46px;padding:0 15px;
  font-family:var(--cas-font-body);font-size:14px;
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);background:#fff;
}
.woocommerce table.shop_table td.actions .coupon .button{height:46px;flex:none}
.woocommerce table.shop_table td.actions > .button{float:right;height:46px}

/* --- Cart totals --- */
.woocommerce-cart .cart-collaterals .cart_totals{
  width:100% !important;max-width:100% !important;
  float:none !important;margin:0 !important;
  padding:var(--cas-panel-pad) !important;
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);background:#fff;
}
.woocommerce-cart .cart-collaterals .cart_totals > h2{margin:0 0 2px !important;padding:0 0 13px !important}
.woocommerce .cart_totals table.shop_table{border:0;border-radius:0;margin:0}
.woocommerce .cart_totals table.shop_table tbody tr:first-child th,
.woocommerce .cart_totals table.shop_table tbody tr:first-child td{padding-top:13px}
.woocommerce .cart_totals table.shop_table th,
.woocommerce .cart_totals table.shop_table td{
  padding:11px 0;background:none;border-bottom:1px solid var(--cas-border);
  font-family:var(--cas-font-body);font-size:14px;letter-spacing:0;text-transform:none;
}
.woocommerce .cart_totals table.shop_table th{width:46%;color:var(--cas-muted);font-weight:500}
.woocommerce .cart_totals table.shop_table td{text-align:right;color:var(--cas-text);font-weight:600}
.woocommerce .cart_totals table.shop_table tr.order-total th,
.woocommerce .cart_totals table.shop_table tr.order-total td{
  border-bottom:0;padding-top:15px;
  font-family:var(--cas-font-head);font-size:20px;font-weight:700;color:var(--cas-text);
}
.woocommerce .cart_totals .wc-proceed-to-checkout{padding:16px 0 0 !important;margin:0 !important}
.woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button{
  width:100% !important;height:54px;margin:0 !important;float:none !important;font-size:13px;
}
.woocommerce .cart_totals .shipping-calculator-button{font-size:13px;color:var(--cas-red) !important;font-weight:600}
.woocommerce .cart_totals ul#shipping_method{margin:0;padding:0}
.woocommerce .cart_totals ul#shipping_method li{margin:0 0 6px;padding:0;text-align:right;font-size:13.5px}

/* Empty cart */
.woocommerce .cart-empty{
  font-family:var(--cas-font-head);font-size:22px;letter-spacing:1px;
  text-transform:uppercase;color:var(--cas-text);text-align:center;padding:44px 20px 10px;
}
.woocommerce .return-to-shop{display:none}
.cas-empty-cart{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;padding:0 20px 44px}

/* --- Cart responsive --- */
@media (max-width:1024px){
  .woocommerce-cart .woocommerce{grid-template-columns:minmax(0,1fr)}
  .woocommerce-cart form.woocommerce-cart-form,
  .woocommerce-cart .cart-collaterals{grid-column:1}
  .woocommerce-cart .cart-collaterals{position:static;margin-top:18px !important}
}
@media (max-width:768px){
  /* Table becomes cards. The default responsive table is unusable. */
  .woocommerce table.shop_table_responsive thead{display:none}
  .woocommerce table.shop_table_responsive tbody tr.woocommerce-cart-form__cart-item{
    display:grid;
    grid-template-columns:80px minmax(0,1fr) auto;
    grid-template-areas:
      "thumb name     remove"
      "thumb price    price"
      "qty   qty      subtotal";
    gap:8px 14px;align-items:center;
    padding:16px;border-bottom:1px solid var(--cas-border);
  }
  .woocommerce table.shop_table_responsive tbody td{
    display:block;padding:0;border:0;text-align:left !important;width:auto !important;
  }
  .woocommerce table.shop_table_responsive tbody td::before{display:none !important}
  .woocommerce table.shop_table_responsive td.product-remove{grid-area:remove;justify-self:end}
  .woocommerce table.shop_table_responsive td.product-thumbnail{grid-area:thumb;display:block !important}
  .woocommerce table.shop_table_responsive td.product-thumbnail img{width:80px;height:80px}
  .woocommerce table.shop_table_responsive td.product-name{grid-area:name}
  .woocommerce table.shop_table_responsive td.product-price{grid-area:price;color:var(--cas-muted);font-size:13.5px}
  .woocommerce table.shop_table_responsive td.product-quantity{grid-area:qty}
  .woocommerce table.shop_table_responsive td.product-subtotal{
    grid-area:subtotal;justify-self:end;font-size:17px;
  }
  .woocommerce table.shop_table td.actions{display:block;padding:16px}
  .woocommerce table.shop_table td.actions .coupon{flex-wrap:wrap}
  .woocommerce table.shop_table td.actions .coupon .input-text{max-width:none;flex:1 1 100%}
  .woocommerce table.shop_table td.actions .coupon .button{width:100%}
  .woocommerce table.shop_table td.actions > .button{float:none;width:100%;margin-top:8px}
}
@media (max-width:420px){
  .woocommerce table.shop_table_responsive tbody tr.woocommerce-cart-form__cart-item{
    grid-template-columns:64px minmax(0,1fr) auto;padding:13px;gap:6px 11px;
  }
  .woocommerce table.shop_table_responsive td.product-thumbnail img{width:64px;height:64px}
  .woocommerce table.shop_table .product-name > a{font-size:13px}
  .woocommerce table.shop_table_responsive td.product-subtotal{font-size:15px}
  .woocommerce table.shop_table td.product-quantity .quantity{height:40px}
  .woocommerce table.shop_table td.product-quantity .cas-qty-btn{width:32px;font-size:16px}
  .cas-empty-cart{flex-direction:column}
  .cas-empty-cart .cas-btn{width:100%}
}


/* ==========================================================================
   18. CHECKOUT
   Astra forces #customer_details to 55% and floats it, and pads
   #order_review. Those are the forced properties here.
   ========================================================================== */

.woocommerce-checkout form.checkout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(310px,390px);
  grid-template-areas:
    "details review-heading"
    "details review";
  grid-template-rows:auto 1fr;
  gap:0 clamp(18px,2.6vw,34px);
  align-items:start;
}
.woocommerce-checkout form.checkout #customer_details,
.woocommerce-checkout form.checkout > .col2-set{
  grid-area:details;
  width:100% !important;max-width:100% !important;
  float:none !important;margin:0 !important;padding:0 !important;
}
.woocommerce-checkout form.checkout #customer_details .col-1,
.woocommerce-checkout form.checkout #customer_details .col-2{
  width:100% !important;max-width:100% !important;
  float:none !important;margin:0 !important;padding:0 !important;
}
.woocommerce-checkout form.checkout h3#order_review_heading{
  grid-area:review-heading;width:100% !important;float:none !important;
  margin:0 0 14px !important;
}
.woocommerce-checkout form.checkout #order_review{
  grid-area:review;
  width:100% !important;max-width:100% !important;
  float:none !important;margin:0 !important;
  padding:var(--cas-panel-pad) !important;
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);background:#fff;
  position:sticky;top:var(--cas-sticky-top);
}
.woocommerce-checkout form.checkout > *{min-width:0;max-width:100%}
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
.woocommerce-checkout form.checkout > .checkout_coupon{grid-column:1 / -1}

/* Panels */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields{
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  background:#fff;padding:var(--cas-panel-pad) var(--cas-panel-pad) 6px;margin:0 0 16px;
}
.woocommerce-checkout .woocommerce-additional-fields{padding-bottom:var(--cas-panel-pad)}
.woocommerce-checkout .woocommerce-shipping-fields{padding:0;border:0;background:none;margin:0 0 16px}
.woocommerce-checkout .woocommerce-shipping-fields > h3{
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  background:#fff;padding:18px var(--cas-panel-pad);margin:0;
}
.woocommerce-checkout .woocommerce-shipping-fields .shipping_address{
  border:1px solid var(--cas-border);border-top:0;
  border-radius:0 0 var(--cas-radius) var(--cas-radius);
  background:#fff;padding:var(--cas-panel-pad) var(--cas-panel-pad) 6px;margin:0;
}
/* Empty panels WooCommerce prints anyway */
.woocommerce-checkout .woocommerce-additional-fields:empty,
.woocommerce-checkout .woocommerce-shipping-fields:empty,
.woocommerce-checkout .woocommerce-account-fields:empty,
.woocommerce-checkout form.checkout > div:empty{display:none !important}

.woocommerce-checkout h3{
  font-family:var(--cas-font-head);font-size:15px;font-weight:700;
  letter-spacing:1.9px;text-transform:uppercase;color:var(--cas-text);
  margin:0 0 18px;padding:0 0 13px;border-bottom:1px solid var(--cas-border);
}
.woocommerce-checkout .woocommerce-shipping-fields > h3{border-bottom:0;padding:18px var(--cas-panel-pad);margin:0}
.woocommerce-checkout .woocommerce-shipping-fields > h3 label{
  display:flex;align-items:center;gap:10px;margin:0;
  font:inherit;letter-spacing:inherit;text-transform:inherit;
}

/* --- Form fields, shared with My Account --- */
.woocommerce form .form-row{padding:0;margin:0 0 15px;display:block}
.woocommerce form .form-row label{
  display:block;margin:0 0 7px;
  font-family:var(--cas-font-head);font-size:11.5px;font-weight:600;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--cas-text);
}
.woocommerce form .form-row label .required{color:var(--cas-red);border:0;text-decoration:none}
.woocommerce form .form-row .optional{color:#9a9a9e;font-weight:400}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single{
  width:100%;height:48px;padding:0 15px;
  font-family:var(--cas-font-body);font-size:14.5px;color:var(--cas-text);
  background:#fff;border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  box-shadow:none;line-height:normal;
  transition:border-color .28s var(--cas-ease),box-shadow .28s var(--cas-ease);
}
.woocommerce form .form-row textarea{
  height:auto;min-height:100px;padding:13px 15px;line-height:1.65;resize:vertical;
}
.woocommerce form .form-row input.input-text:hover,
.woocommerce form .form-row select:hover{border-color:var(--cas-border-2)}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{
  outline:0;border-color:var(--cas-red);box-shadow:0 0 0 3px rgba(233,34,37,.12);
}
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select{border-color:var(--cas-err);background:#fff8f8}

.woocommerce .select2-container .select2-selection--single{display:flex;align-items:center}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:normal;padding:0;color:var(--cas-text);
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow{height:46px;right:10px}
.select2-dropdown{border-color:var(--cas-border);border-radius:var(--cas-radius)}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--cas-red)}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last{width:calc(50% - 7px);float:left}
.woocommerce form .form-row-first{margin-right:14px}
.woocommerce form .form-row-wide{clear:both;width:100%}
.woocommerce-billing-fields__field-wrapper::after,
.woocommerce-shipping-fields__field-wrapper::after{content:"";display:table;clear:both}

.woocommerce form .form-row .input-checkbox{
  width:17px;height:17px;margin:0 8px 0 0;vertical-align:middle;accent-color:var(--cas-red);
}
.woocommerce-checkout .woocommerce-form__label-for-checkbox{
  display:flex;align-items:center;gap:2px;
  font-family:var(--cas-font-body) !important;font-size:14px !important;font-weight:400 !important;
  letter-spacing:0 !important;text-transform:none !important;color:#3d3d41 !important;
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register{
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  padding:var(--cas-panel-pad);margin:0 0 20px;background:#fff;
}

/* --- Order review --- */
.woocommerce-checkout #order_review table.shop_table{border:0;border-radius:0;margin:0}
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td{
  padding:12px 0;background:none;border-bottom:1px solid var(--cas-border);
  font-family:var(--cas-font-body);font-size:14px;letter-spacing:0;text-transform:none;
}
.woocommerce-checkout #order_review table.shop_table thead th{
  font-family:var(--cas-font-head);font-size:11px;font-weight:700;
  letter-spacing:1.8px;text-transform:uppercase;color:var(--cas-muted);padding-bottom:10px;
}
.woocommerce-checkout #order_review table.shop_table td.product-name{color:#3d3d41;line-height:1.5}
.woocommerce-checkout #order_review table.shop_table .product-quantity{color:var(--cas-red);font-weight:700}
.woocommerce-checkout #order_review table.shop_table td.product-total,
.woocommerce-checkout #order_review table.shop_table tfoot td{
  text-align:right;font-weight:600;color:var(--cas-text);white-space:nowrap;
}
.woocommerce-checkout #order_review table.shop_table tfoot th{
  color:var(--cas-muted);font-weight:500;text-align:left;
}
.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total th,
.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total td{
  border-bottom:0;padding-top:15px;
  font-family:var(--cas-font-head);font-size:20px;font-weight:700;color:var(--cas-text);
}

.woocommerce-checkout #payment{background:none;border-radius:0;margin-top:4px;padding:0}
.woocommerce-checkout #payment ul.payment_methods{
  border:0;padding:16px 0 0;margin:0;border-top:1px solid var(--cas-border);
}
.woocommerce-checkout #payment ul.payment_methods li{
  margin:0 0 8px;padding:13px 15px;list-style:none;
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);background:#fff;
  transition:border-color .28s var(--cas-ease);
}
.woocommerce-checkout #payment ul.payment_methods li:hover{border-color:var(--cas-border-2)}
.woocommerce-checkout #payment ul.payment_methods li label{
  display:inline-flex;align-items:center;gap:9px;margin:0;cursor:pointer;
  font-family:var(--cas-font-body);font-size:14.5px;font-weight:600;color:var(--cas-text);
}
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"]{
  width:17px;height:17px;margin:0;accent-color:var(--cas-red);
}
.woocommerce-checkout #payment div.payment_box{
  background:var(--cas-grey);border-radius:var(--cas-radius);
  margin:11px 0 0;padding:13px 15px;
  font-family:var(--cas-font-body);font-size:13.5px;line-height:1.65;color:var(--cas-muted);
}
.woocommerce-checkout #payment div.payment_box::before{display:none}
.woocommerce-checkout #payment .form-row.place-order{padding:16px 0 0;margin:0}
.woocommerce-checkout #payment #place_order{width:100%;height:56px;font-size:14px;letter-spacing:2px;margin:0}
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper{margin-bottom:14px;font-size:13.5px}
.woocommerce-checkout .woocommerce-privacy-policy-text{font-size:13px;line-height:1.6;color:var(--cas-muted)}
.woocommerce-checkout .woocommerce-privacy-policy-text p{margin:0 0 10px}

/* --- Checkout responsive --- */
@media (max-width:1024px){
  .woocommerce-checkout form.checkout{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"details" "review-heading" "review";
    grid-template-rows:auto auto auto;
  }
  .woocommerce-checkout form.checkout h3#order_review_heading{margin-top:8px !important}
  .woocommerce-checkout form.checkout #order_review{position:static}
}
@media (max-width:640px){
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last{width:100%;float:none;margin-right:0}
  /* 16px stops iOS zooming when a field is tapped */
  .woocommerce form .form-row input.input-text,
  .woocommerce form .form-row textarea,
  .woocommerce form .form-row select,
  .woocommerce .select2-container .select2-selection--single,
  .woocommerce table.shop_table td.actions .coupon .input-text{font-size:16px}
  .woocommerce form .form-row input.input-text,
  .woocommerce form .form-row select{height:50px}
  .woocommerce-checkout #payment #place_order{height:54px;font-size:13px}
}


/* ==========================================================================
   19. MY ACCOUNT AND ORDER RECEIVED
   ========================================================================== */

.woocommerce-account .woocommerce-MyAccount-navigation{width:24%}
.woocommerce-account .woocommerce-MyAccount-navigation ul{
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  overflow:hidden;background:#fff;margin:0;padding:0;list-style:none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li{border-bottom:1px solid var(--cas-border);margin:0}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child{border-bottom:0}
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block;padding:14px 18px;
  font-family:var(--cas-font-head);font-size:12.5px;font-weight:700;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--cas-text) !important;
  transition:background .28s var(--cas-ease),color .28s var(--cas-ease),padding-left .28s var(--cas-ease);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:var(--cas-grey);padding-left:23px}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
  background:var(--cas-black);color:#fff !important;
}
.woocommerce-account .woocommerce-MyAccount-content{width:73%}

.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register{
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  padding:28px;max-width:470px;margin:0 auto;
}
.woocommerce-account .woocommerce-form-login .button,
.woocommerce-account .woocommerce-form-register .button{width:100%;margin:6px 0 0}
.woocommerce-account .lost_password{margin-top:14px;font-size:13.5px}

.woocommerce .woocommerce-order{max-width:900px}
.woocommerce ul.order_details{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;
  border:1px solid var(--cas-border);border-radius:var(--cas-radius);
  margin:0 0 26px;padding:0;overflow:hidden;background:#fff;
}
.woocommerce ul.order_details li{
  margin:0;padding:17px;border-right:1px solid var(--cas-border);border-bottom:0;float:none;
  font-family:var(--cas-font-head);font-size:11px;font-weight:600;
  letter-spacing:1.7px;text-transform:uppercase;color:var(--cas-muted);
}
.woocommerce ul.order_details li:last-child{border-right:0}
.woocommerce ul.order_details li strong{
  display:block;margin-top:7px;
  font-family:var(--cas-font-body);font-size:15px;font-weight:600;
  letter-spacing:0;text-transform:none;color:var(--cas-text);
}

@media (max-width:1024px){
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content{width:100%;float:none}
  .woocommerce-account .woocommerce-MyAccount-content{margin-top:20px}
}
@media (max-width:640px){
  .woocommerce ul.order_details{grid-template-columns:1fr}
  .woocommerce ul.order_details li{border-right:0;border-bottom:1px solid var(--cas-border)}
  .woocommerce ul.order_details li:last-child{border-bottom:0}
  .woocommerce-account .woocommerce-form-login,
  .woocommerce-account .woocommerce-form-register{padding:20px}
}


/* ==========================================================================
   20. PRINT AND REDUCED MOTION
   ========================================================================== */

@media (prefers-reduced-motion:reduce){
  .woocommerce *,.woocommerce-page *{
    animation-duration:.01ms !important;transition-duration:.01ms !important;
  }
}
@media print{
  .cas-sticky-atc,.cas-ship-bar,
  .woocommerce .woocommerce-ordering,
  .woocommerce nav.woocommerce-pagination{display:none !important}
  .woocommerce div.product,
  .woocommerce-cart .woocommerce,
  .woocommerce-checkout form.checkout{display:block !important}
}


/* ==========================================================================
   21. MOBILE PRODUCT PAGE TUNING
   Measured on a 375px viewport. Everything here is spacing and sizing only,
   the structural fixes live in sections 11 and 12.
   ========================================================================== */

@media (max-width:640px){

  /* Gallery reads better slightly shorter than square on a tall screen */
  .woocommerce div.product .woocommerce-product-gallery__image img{
    aspect-ratio:4/3;padding:12px;
  }
  .woocommerce div.product .flex-control-thumbs{
    grid-template-columns:repeat(5,1fr);gap:5px;margin-top:6px;
  }
  .woocommerce div.product .flex-control-thumbs img{padding:4px}

  /* Summary spacing */
  .woocommerce div.product .summary{margin-top:20px !important}
  .woocommerce div.product .summary .woocommerce-breadcrumb{
    font-size:11.5px;margin-bottom:12px;
  }
  .woocommerce div.product .summary .cas-single-brand{
    font-size:10px;letter-spacing:1.8px;margin-bottom:8px;
  }
  .woocommerce div.product .summary .cas-single-brand::before{width:16px}
  .woocommerce div.product .summary h1.product_title{
    font-size:20px !important;line-height:1.22;margin-bottom:12px !important;
  }
  .woocommerce div.product .summary p.price{
    font-size:26px;padding-bottom:14px;gap:9px;
  }
  .woocommerce div.product .summary p.price del{font-size:14px}
  .woocommerce div.product .summary .stock{margin-top:13px !important;font-size:11px}
  .woocommerce div.product .summary .woocommerce-product-details__short-description{
    font-size:14px;margin-top:15px;
  }
  .woocommerce div.product .summary form.cart{margin-top:18px !important}
  .cas-trust{margin-top:18px !important}
  .woocommerce div.product .summary .product_meta{margin-top:18px !important;padding-top:16px;font-size:12.5px}

  /* Tabs and related need less top gap on a phone */
  .woocommerce div.product .woocommerce-tabs{margin-top:30px}
  .woocommerce div.product .related,
  .woocommerce div.product .upsells{margin-top:30px}

  /* Related products: two across, matching the shop grid */
  .woocommerce div.product .related ul.products,
  .woocommerce div.product .upsells ul.products{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  /* The sticky bar sits over the footer, so give the page room underneath */
  body.single-product{padding-bottom:74px}
}

@media (max-width:420px){
  .woocommerce div.product .summary h1.product_title{font-size:18.5px !important}
  .woocommerce div.product .summary p.price{font-size:24px}
  .woocommerce div.product .flex-control-thumbs{grid-template-columns:repeat(4,1fr)}
  .woocommerce div.product .woocommerce-tabs ul.tabs li a{padding:11px 13px;font-size:11px}
}
