/*
 * Fatima's Finds - Premium Commerce
 * Built on the existing ff-brand design tokens (--ff-teal, --ff-gold, --ff-ink,
 * --ff-bg, --ff-line, --ff-muted) so the brand identity is preserved, not replaced.
 */

:root{
  --ff-radius:14px;
  --ff-radius-sm:10px;
  --ff-gap:clamp(16px,2.2vw,28px);
  --ff-shadow:0 1px 2px rgba(20,32,29,.04),0 8px 24px rgba(20,32,29,.06);
}

/* Guard against horizontal overflow at every breakpoint. */
.woocommerce img,.woocommerce-page img{max-width:100%;height:auto}

/* ---------------------------------------------------------------
   1. SHOP / ARCHIVE PRODUCT CARD
   --------------------------------------------------------------- */

.woocommerce ul.products li.product.ff-card{
  position:relative;
  display:flex;
  flex-direction:column;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.woocommerce ul.products li.product.ff-card:hover{
  border-color:#CFDAD7;
  box-shadow:var(--ff-shadow);
  transform:translateY(-2px);
}

/* Stretched link: the whole card navigates to the product page using the
   existing thumbnail anchor. Pure CSS, so ctrl+click, middle-click and
   keyboard focus keep their native behaviour. */
.ff-card .woocommerce-loop-product__link::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
}

/* Real controls sit above the stretched link. */
.ff-card .ff-card-actions,
.ff-card .ast-on-card-button,
.ff-card .onsale{position:relative;z-index:2}

.ff-card-actions{
  margin-top:auto;
  padding-top:12px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.woocommerce ul.products li.product .ff-card-actions .button{
  width:100%;
  margin:0;
  padding:11px 16px;
  font-size:14.5px;
  line-height:1.2;
  text-align:center;
}

/* Add to Cart / Select options render as the secondary action so it is never
   mistaken for the primary "open the product" action. */
.woocommerce ul.products li.product .ff-card-actions .add_to_cart_button,
.woocommerce ul.products li.product .ff-card-actions .product_type_variable,
.woocommerce ul.products li.product .ff-card-actions .product_type_grouped,
.woocommerce ul.products li.product .ff-card-actions .product_type_external{
  background:#fff !important;
  color:var(--ff-teal) !important;
  border:1.5px solid var(--ff-line) !important;
}
.woocommerce ul.products li.product .ff-card-actions .add_to_cart_button:hover,
.woocommerce ul.products li.product .ff-card-actions .product_type_variable:hover{
  border-color:var(--ff-teal) !important;
  background:#fff !important;
  color:var(--ff-teal-d) !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size:16px;
  line-height:1.3;
  padding:10px 0 4px;
}

/* Visible focus for keyboard users. */
.ff-card a:focus-visible,
.ff-card button:focus-visible{
  outline:2px solid var(--ff-teal);
  outline-offset:2px;
}

/* ---------------------------------------------------------------
   2. SINGLE PRODUCT - ABOVE THE FOLD
   --------------------------------------------------------------- */

.single-product div.product{
  display:grid;
  /* Gallery is the primary decision-making surface, so it takes the larger
     share of the fold rather than an even split. */
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:var(--ff-gap);
  align-items:start;
}
.single-product div.product .woocommerce-product-gallery{
  position:sticky;
  top:24px;
  float:none !important;
  width:100% !important;
  margin:0 !important;
  background:#fff;
  border:1px solid var(--ff-line);
  border-radius:var(--ff-radius);
  padding:10px;
}
.single-product div.product .summary{
  width:100% !important;
  float:none !important;
  margin:0 !important;
}
/* Full-width rows below the two-column fold. */
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .ff-benefits,
.single-product div.product > .ff-faq,
.single-product div.product > .ff-mid-cta,
.single-product div.product > .related,
.single-product div.product > .upsells{grid-column:1 / -1}

.single-product .product_title{
  font-size:clamp(24px,3.2vw,36px);
  margin:0 0 10px;
}

/* Value proposition directly under the title. */
.single-product .woocommerce-product-details__short-description{
  font-size:16px;
  line-height:1.6;
  color:var(--ff-muted);
  margin:0 0 16px;
}

.single-product .summary .price{
  font-size:clamp(22px,2.6vw,30px);
  margin:0 0 6px;
}
.single-product .summary .price del{
  color:var(--ff-muted) !important;
  font-weight:500;
  opacity:.75;
  font-size:.62em;
  margin-right:8px;
}

.ff-discount-badge{
  display:inline-block;
  background:var(--ff-gold);
  color:#fff;
  font-weight:700;
  font-size:13px;
  border-radius:999px;
  padding:5px 13px;
  margin:0 0 16px;
}

/* Benefit checklist. */
.ff-usps{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:9px}
.ff-usps li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:15px;
  line-height:1.45;
  color:var(--ff-ink);
}
.ff-tick{
  flex:0 0 18px;
  width:18px;height:18px;
  margin-top:1px;
  border-radius:50%;
  background:var(--ff-teal);
  position:relative;
}
.ff-tick::after{
  content:"";
  position:absolute;
  left:5.5px;top:3px;
  width:5px;height:9px;
  border:solid #fff;
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}

/* ---------------------------------------------------------------
   3. BUY BOX
   --------------------------------------------------------------- */

.ff-buybox{
  background:#fff;
  border:1px solid var(--ff-line);
  border-radius:var(--ff-radius);
  padding:18px;
  margin:0 0 18px;
}
.ff-buybox .quantity{margin-bottom:12px}

.single-product .ff-buybox .single_add_to_cart_button,
.single-product .ff-buybox .ff-buy-now{
  width:100%;
  display:block;
  float:none;
  margin:0 0 10px;
  padding:15px 20px;
  font-size:16px;
}

/* Buy Now is visually distinct from Add to Cart so intent is never ambiguous. */
.single-product .ff-buybox .ff-buy-now{
  background:var(--ff-gold) !important;
  border-color:var(--ff-gold) !important;
  color:#fff !important;
}
.single-product .ff-buybox .ff-buy-now:hover{
  background:#ad8319 !important;
  border-color:#ad8319 !important;
}

/* Variation selector. */
.single-product .variations{margin-bottom:14px}
.single-product .variations th,
.single-product .variations td{padding:6px 0;border:0}
.single-product .variations label{font-weight:700}
.single-product .woocommerce-variation-price{margin-bottom:12px}

/* Trust list under the CTA. */
.ff-trust ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ff-trust li{
  position:relative;
  padding-left:24px;
  font-size:14.5px;
  line-height:1.45;
  color:var(--ff-muted);
}
.ff-trust li::before{
  content:"";
  position:absolute;
  left:2px;top:6px;
  width:5px;height:9px;
  border:solid var(--ff-teal);
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}

/* ---------------------------------------------------------------
   4. BENEFITS / FAQ / MID CTA
   --------------------------------------------------------------- */

.ff-benefits{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:34px 0;
}
.ff-benefit{
  background:#fff;
  border:1px solid var(--ff-line);
  border-radius:var(--ff-radius);
  padding:18px;
}
.ff-benefit h3{font-size:15.5px;margin:0 0 6px}
.ff-benefit p{font-size:14px;line-height:1.5;color:var(--ff-muted);margin:0}

.ff-mid-cta{text-align:center;margin:30px 0}
.ff-mid-cta__btn{padding:15px 42px;font-size:16px}

.ff-faq{margin:38px 0}
.ff-faq h2{font-size:clamp(20px,2.4vw,26px);margin:0 0 16px}
.ff-faq__item{
  background:#fff;
  border:1px solid var(--ff-line);
  border-radius:var(--ff-radius-sm);
  margin-bottom:10px;
  overflow:hidden;
}
.ff-faq__item summary{
  cursor:pointer;
  padding:15px 18px;
  font-weight:700;
  font-size:15.5px;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.ff-faq__item summary::-webkit-details-marker{display:none}
.ff-faq__item summary::after{
  content:"+";
  font-size:20px;
  font-weight:400;
  color:var(--ff-teal);
  flex:none;
}
.ff-faq__item[open] summary::after{content:"−"}
.ff-faq__item summary:focus-visible{outline:2px solid var(--ff-teal);outline-offset:-2px}
.ff-faq__a{padding:0 18px 16px}
.ff-faq__a p{margin:0;font-size:15px;line-height:1.6;color:var(--ff-muted)}

/* ---------------------------------------------------------------
   5. STICKY MOBILE PURCHASE BAR
   --------------------------------------------------------------- */

.ff-sticky-bar{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:9998;
  display:none;
  align-items:center;
  gap:12px;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px);
  border-top:1px solid var(--ff-line);
  box-shadow:0 -4px 20px rgba(20,32,29,.08);
  transform:translateY(100%);
  transition:transform .22s ease;
}
.ff-sticky-bar.is-visible{transform:translateY(0)}
.ff-sticky-bar__price{
  flex:1 1 auto;
  min-width:0;
  font-weight:700;
  font-size:16px;
  color:var(--ff-teal);
  line-height:1.25;
}
.ff-sticky-bar__price del{font-weight:500;opacity:.6;font-size:.72em;color:var(--ff-muted)}
.ff-sticky-bar__price .price{font-size:inherit}
.ff-sticky-bar__btn{flex:0 0 auto;padding:13px 26px;font-size:15px;white-space:nowrap}

/* ---------------------------------------------------------------
   6. CART
   --------------------------------------------------------------- */

.ff-cart-premium .woocommerce-cart-form{
  background:#fff;
  border:1px solid var(--ff-line);
  border-radius:var(--ff-radius);
  padding:8px 18px 18px;
}
.ff-cart-premium table.cart{margin:0}
.ff-cart-premium table.cart thead th{
  border-bottom:1px solid var(--ff-line);
  font-size:12.5px;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--ff-muted);
}
.ff-cart-premium table.cart td{border-top:1px solid var(--ff-line);padding:16px 10px}
.ff-cart-premium table.cart img{width:74px;border-radius:var(--ff-radius-sm);border:1px solid var(--ff-line)}
.ff-cart-premium .product-name a{font-weight:700;color:var(--ff-ink)}

.ff-cart-premium .cart_totals{
  background:#fff;
  border:1px solid var(--ff-line);
  border-radius:var(--ff-radius);
  padding:20px;
}
.ff-cart-premium .cart_totals h2{font-size:18px;margin:0 0 14px}
.ff-cart-premium .wc-proceed-to-checkout .checkout-button{
  width:100%;
  text-align:center;
  padding:15px 20px;
  font-size:16px;
}

.ff-cart-trust{margin-top:14px}
.ff-cart-trust ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ff-cart-trust li{
  position:relative;
  padding-left:23px;
  font-size:13.5px;
  color:var(--ff-muted);
  line-height:1.45;
}
.ff-cart-trust li::before{
  content:"";
  position:absolute;
  left:2px;top:5px;
  width:5px;height:9px;
  border:solid var(--ff-teal);
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}

.ff-continue-shopping{
  display:inline-block;
  margin-top:14px;
  font-weight:600;
  font-size:14.5px;
}

.ff-empty-cart{
  text-align:center;
  background:#fff;
  border:1px solid var(--ff-line);
  border-radius:var(--ff-radius);
  padding:56px 24px;
  max-width:560px;
  margin:26px auto;
}
.ff-empty-cart__icon{
  width:60px;height:56px;
  margin:0 auto 20px;
  border:2.5px solid var(--ff-teal);
  border-radius:0 0 12px 12px;
  position:relative;
  opacity:.9;
}
.ff-empty-cart__icon::before{
  content:"";
  position:absolute;
  top:-17px;left:50%;
  transform:translateX(-50%);
  width:28px;height:28px;
  border:2.5px solid var(--ff-teal);
  border-bottom:0;
  border-radius:14px 14px 0 0;
}
.ff-empty-cart h2{font-size:22px;margin:0 0 8px}
.ff-empty-cart p{color:var(--ff-muted);margin:0 0 22px}
.ff-empty-cart__btn{padding:14px 32px}

/* ---------------------------------------------------------------
   7. RESPONSIVE
   Verified against 360 / 375 / 390 / 414 / 768 / 1024 / 1280 / 1440 / 1920.
   --------------------------------------------------------------- */

@media (max-width:1024px){
  .ff-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:921px){
  .single-product div.product{grid-template-columns:1fr}
  .single-product div.product .woocommerce-product-gallery{position:static;top:auto}
}

@media (max-width:768px){
  /* Cart becomes a stacked, mobile-first card list rather than a squeezed table. */
  .ff-cart-premium table.cart thead{display:none}
  .ff-cart-premium table.cart,
  .ff-cart-premium table.cart tbody,
  .ff-cart-premium table.cart tr,
  .ff-cart-premium table.cart td{display:block;width:100%}
  .ff-cart-premium table.cart tr.cart_item{
    border:1px solid var(--ff-line);
    border-radius:var(--ff-radius-sm);
    padding:14px;
    margin-bottom:12px;
    position:relative;
  }
  .ff-cart-premium table.cart td{
    border:0;
    padding:5px 0;
    text-align:left !important;
  }
  .ff-cart-premium table.cart td::before{
    content:attr(data-title);
    display:block;
    font-size:11.5px;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--ff-muted);
    margin-bottom:3px;
  }
  .ff-cart-premium table.cart td.product-remove::before,
  .ff-cart-premium table.cart td.product-thumbnail::before{content:none}
  .ff-cart-premium table.cart td.product-thumbnail{padding-bottom:10px}
  .ff-cart-premium table.cart td.product-remove{
    position:absolute;
    top:10px;right:10px;
    width:auto;
    padding:0;
  }
  .ff-cart-premium .cart_totals{margin-top:18px}

  /* Sticky bar is mobile-only; desktop keeps the in-page CTA. */
  .ff-sticky-bar{display:flex}

  /* Keep the sticky bar clear of page content and any floating buttons. */
  .single-product.ff-has-sticky #page{padding-bottom:86px}

  /* Verified in-browser: TranslatePress's floating language switcher and
     Astra's scroll-to-top button both sit bottom-right at a higher z-index
     and covered the sticky bar's button. Lift them above it. */
  .ff-sticky-on .trp-floating-switcher,
  .ff-sticky-on #ast-scroll-top{
    bottom:calc(82px + env(safe-area-inset-bottom,0px)) !important;
    transition:bottom .22s ease;
  }
}

@media (max-width:560px){
  .ff-benefits{grid-template-columns:1fr;gap:10px}
  .ff-buybox{padding:14px}
  .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:15px}
}

@media (max-width:390px){
  .ff-sticky-bar{gap:8px;padding-left:10px;padding-right:10px}
  .ff-sticky-bar__btn{padding:12px 18px;font-size:14.5px}
  .ff-sticky-bar__price{font-size:15px}
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion:reduce){
  .woocommerce ul.products li.product.ff-card,
  .ff-sticky-bar{transition:none}
  .woocommerce ul.products li.product.ff-card:hover{transform:none}
}
/* ---------------------------------------------------------------
   8. BUNDLE & SAVE SELECTOR
   Visual pack cards driving the native WooCommerce variation select.
   --------------------------------------------------------------- */

.ff-bundles{
  border:0;
  margin:0 0 18px;
  padding:0;
  min-width:0;
}
.ff-bundles__legend{
  font-family:"Bricolage Grotesque",sans-serif;
  font-size:15px;
  font-weight:700;
  color:var(--ff-ink);
  padding:0;
  margin:0 0 10px;
}

.ff-bundle{position:relative;margin-bottom:10px}

/* The real radio stays focusable but is visually replaced by the card. */
.ff-bundle__input{
  position:absolute;
  opacity:0;
  width:1px;height:1px;
  margin:0;
  pointer-events:none;
}

.ff-bundle__label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  cursor:pointer;
  background:#fff;
  border:1.5px solid var(--ff-line);
  border-radius:var(--ff-radius-sm);
  padding:14px 16px;
  transition:border-color .15s ease,background .15s ease;
}
.ff-bundle__label:hover{border-color:#BFCFCB}

.ff-bundle__input:checked + .ff-bundle__label{
  border-color:var(--ff-teal);
  background:#F4FAF8;
}
.ff-bundle__input:focus-visible + .ff-bundle__label{
  outline:2px solid var(--ff-teal);
  outline-offset:2px;
}

.ff-bundle__main{display:flex;align-items:center;gap:11px;min-width:0}

.ff-bundle__radio{
  flex:0 0 19px;
  width:19px;height:19px;
  border:2px solid #C6D2CF;
  border-radius:50%;
  position:relative;
  transition:border-color .15s ease;
}
.ff-bundle__input:checked + .ff-bundle__label .ff-bundle__radio{border-color:var(--ff-teal)}
.ff-bundle__input:checked + .ff-bundle__label .ff-bundle__radio::after{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:50%;
  background:var(--ff-teal);
}

.ff-bundle__text{display:flex;flex-direction:column;min-width:0}
.ff-bundle__name{font-weight:700;font-size:15.5px;line-height:1.25;color:var(--ff-ink)}
.ff-bundle__unit{font-size:12.5px;color:var(--ff-muted);margin-top:2px}

.ff-bundle__badge{
  flex:none;
  background:var(--ff-gold);
  color:#fff;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.02em;
  border-radius:999px;
  padding:4px 10px;
  white-space:nowrap;
}

.ff-bundle__prices{
  flex:none;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  line-height:1.2;
}
.ff-bundle__price{font-weight:700;font-size:16.5px;color:var(--ff-teal)}
.ff-bundle__price .woocommerce-Price-amount{color:var(--ff-teal) !important}
.ff-bundle__was{
  font-size:12.5px;
  color:var(--ff-muted);
  text-decoration:line-through;
  opacity:.8;
  margin-top:2px;
}
.ff-bundle__was .woocommerce-Price-amount{color:var(--ff-muted) !important;font-weight:500}

.ff-bundle__flag{
  position:absolute;
  top:-9px;right:14px;
  background:var(--ff-teal);
  color:#fff;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  border-radius:999px;
  padding:3px 10px;
  pointer-events:none;
}

/* Hide the native variation table without removing it from the DOM, so
   WooCommerce's own variation script keeps working exactly as designed. */
/* Scoped to "a bundle fieldset exists" on purpose: products with more than
   one attribute do not get bundle cards, and must keep their native dropdowns
   or the customer has no way to choose. */
.ff-bundles ~ .variations{
  position:absolute !important;
  left:0 !important;top:0 !important;
  width:1px !important;height:1px !important;
  min-width:0 !important;max-width:1px !important;
  padding:0 !important;margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0 !important;
}

@media (max-width:390px){
  .ff-bundle__label{padding:12px 13px;gap:8px}
  .ff-bundle__name{font-size:14.5px}
  .ff-bundle__price{font-size:15.5px}
  .ff-bundle__badge{font-size:10.5px;padding:3px 8px}
}
/* ---------------------------------------------------------------
   9. PRODUCT GALLERY - larger stage + thumbnail strip
   --------------------------------------------------------------- */

/* Main image fills the frame and keeps a stable square stage, so the layout
   does not jump between portrait and landscape photography. */
.single-product .woocommerce-product-gallery__wrapper{margin:0}
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image a{display:block}
.single-product .woocommerce-product-gallery__image img,
.single-product .woocommerce-product-gallery__wrapper img{
  width:100% !important;
  height:auto;
  border-radius:var(--ff-radius-sm);
  display:block;
}
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child img,
.single-product .flex-viewport img{
  aspect-ratio:1/1;
  object-fit:cover;
  background:#F7FAF9;
}
.single-product .flex-viewport{border-radius:var(--ff-radius-sm);overflow:hidden}

/* Zoom / lightbox trigger */
.single-product .woocommerce-product-gallery__trigger{
  top:18px !important;right:18px !important;z-index:5;
}

/* Thumbnail strip beneath the main image */
.single-product .flex-control-thumbs,
.single-product .woocommerce-product-gallery .flex-control-nav{
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  margin:10px 0 0 !important;
  padding:0 !important;
  list-style:none;
}
.single-product .flex-control-thumbs li{margin:0 !important;width:auto !important;float:none !important}
.single-product .flex-control-thumbs img{
  width:100% !important;
  aspect-ratio:1/1;
  object-fit:cover;
  border:1.5px solid var(--ff-line);
  border-radius:10px;
  opacity:1;
  cursor:pointer;
  transition:border-color .15s ease,transform .15s ease;
}
.single-product .flex-control-thumbs img:hover{border-color:#BFCFCB;transform:translateY(-1px)}
.single-product .flex-control-thumbs img.flex-active,
.single-product .flex-control-thumbs .flex-active img{
  border-color:var(--ff-teal);
}

/* Placeholder-only state: keep the frame generous while photography is pending. */
.single-product .woocommerce-product-gallery img.woocommerce-placeholder{
  aspect-ratio:1/1;
  object-fit:contain;
  background:#F7FAF9;
  padding:8%;
}

@media (max-width:1200px){
  .single-product div.product{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
}

@media (max-width:921px){
  .single-product .woocommerce-product-gallery{padding:8px}
  .single-product .flex-control-thumbs,
  .single-product .woocommerce-product-gallery .flex-control-nav{
    grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;
  }
}

@media (max-width:480px){
  .single-product .flex-control-thumbs,
  .single-product .woocommerce-product-gallery .flex-control-nav{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
/* ---------------------------------------------------------------
   10. EXPRESS CASH ON DELIVERY
   One-step ordering straight from the product page.
   --------------------------------------------------------------- */

.single-product .ff-buybox .ff-cod-open{
  width:100%;display:flex;flex-direction:column;align-items:center;gap:2px;
  margin:0 0 10px;padding:14px 20px;
  background:var(--ff-ink) !important;border-color:var(--ff-ink) !important;color:#fff !important;
  font-size:16px;line-height:1.2;
}
.single-product .ff-buybox .ff-cod-open:hover{background:#0c1512 !important;border-color:#0c1512 !important}
.ff-cod-open__sub{font-size:12px;font-weight:500;opacity:.75;letter-spacing:.01em}

.ff-cod[hidden]{display:none}
.ff-cod{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:18px}
.ff-cod__backdrop{position:absolute;inset:0;background:rgba(20,32,29,.55);backdrop-filter:blur(3px)}
.ff-cod__panel{
  position:relative;width:100%;max-width:440px;max-height:92vh;overflow-y:auto;
  background:#fff;border-radius:16px;padding:22px;
  box-shadow:0 24px 60px rgba(20,32,29,.3);
  -webkit-overflow-scrolling:touch;
}
.ff-cod .ff-cod__x{
  position:absolute;top:12px;right:12px;width:34px;height:34px;
  border:0 !important;background:#F2F6F5 !important;border-radius:50% !important;cursor:pointer;
  font-size:22px !important;line-height:1;color:var(--ff-muted) !important;
  font-weight:400 !important;padding:0 !important;box-shadow:none !important;
}
.ff-cod .ff-cod__x:hover{background:#E6EEEC !important;color:var(--ff-ink) !important}
.ff-cod__title{font-size:19px;margin:0 0 16px;padding-right:36px}

.ff-cod__summary{background:#F7FAF9;border:1px solid var(--ff-line);border-radius:12px;padding:13px;margin-bottom:16px}
.ff-cod__item{display:flex;gap:11px;align-items:center;margin-bottom:11px}
.ff-cod__thumb img{width:48px;height:48px;object-fit:cover;border-radius:9px;display:block;border:1px solid var(--ff-line)}
.ff-cod__names{display:flex;flex-direction:column;gap:2px;min-width:0}
.ff-cod__pname{font-weight:700;font-size:14.5px;line-height:1.25;color:var(--ff-ink)}
.ff-cod__pack{font-size:12.5px;color:var(--ff-muted)}
.ff-cod__totals{margin:0;border-top:1px solid var(--ff-line);padding-top:10px}
.ff-cod__totals > div{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;color:var(--ff-muted);margin-bottom:5px}
.ff-cod__totals dt,.ff-cod__totals dd{margin:0}
.ff-cod__grand{font-size:16px !important;font-weight:800;color:var(--ff-ink) !important;margin-bottom:0 !important;padding-top:6px;border-top:1px dashed var(--ff-line)}
.ff-cod__grand dd{color:var(--ff-teal)}

.ff-cod__field{margin:0 0 12px}
.ff-cod__field label{display:block;font-size:13px;font-weight:700;margin-bottom:5px;color:var(--ff-ink)}
.ff-cod__field label span{color:#C0392B}
.ff-cod__field input,.ff-cod__field select,.ff-cod__field textarea{
  width:100%;padding:11px 13px;font-size:15px;
  border:1.5px solid var(--ff-line) !important;border-radius:10px !important;
  background:#fff;color:var(--ff-ink);font-family:inherit;
}
.ff-cod__field input:focus,.ff-cod__field select:focus,.ff-cod__field textarea:focus{
  border-color:var(--ff-teal) !important;outline:2px solid rgba(15,110,99,.16);outline-offset:0;
}
.ff-cod__field textarea{resize:vertical;min-height:62px}
.ff-cod__field.has-error input,.ff-cod__field.has-error select,.ff-cod__field.has-error textarea{border-color:#C0392B !important}

.ff-cod__msg{
  background:#FDECEA;border:1px solid #F5C6C0;color:#8E2A1F;
  border-radius:10px;padding:10px 12px;font-size:13.5px;line-height:1.45;margin-bottom:12px;
}
.ff-cod__msg[hidden]{display:none}

.single-product .ff-cod__submit{
  width:100%;padding:15px 20px;font-size:16px;margin:2px 0 10px;
}
.ff-cod__submit[disabled]{opacity:.65;cursor:progress}
.ff-cod__note{font-size:12.5px;color:var(--ff-muted);line-height:1.5;margin:0;text-align:center}

@media (max-width:560px){
  .ff-cod{padding:0;align-items:flex-end}
  /* Bottom sheet on phones: closer to the thumb, less reach. */
  .ff-cod__panel{
    max-width:none;max-height:94vh;
    border-radius:18px 18px 0 0;
    padding:20px 16px calc(20px + env(safe-area-inset-bottom,0px));
  }
}

/* ---------------------------------------------------------------
   11. GALLERY NAVIGATION ARROWS
   --------------------------------------------------------------- */

.single-product .woocommerce-product-gallery .flex-direction-nav{
  list-style:none;margin:0;padding:0;
}
.single-product .woocommerce-product-gallery .flex-direction-nav a{
  position:absolute;top:50%;transform:translateY(-50%);z-index:4;
  width:40px;height:40px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.94);border:1px solid var(--ff-line);
  box-shadow:0 3px 12px rgba(20,32,29,.14);
  color:var(--ff-ink);text-indent:0;font-size:0;opacity:0;
  transition:opacity .18s ease,background-color .18s ease;
}
.single-product .woocommerce-product-gallery:hover .flex-direction-nav a{opacity:1}
.single-product .woocommerce-product-gallery .flex-direction-nav a:hover{background:#fff}
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-prev{left:18px}
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-next{right:18px}
.single-product .woocommerce-product-gallery .flex-direction-nav a::before{
  content:"";width:9px;height:9px;
  border:solid var(--ff-ink);border-width:0 2px 2px 0;
}
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-prev::before{transform:rotate(135deg);margin-left:3px}
.single-product .woocommerce-product-gallery .flex-direction-nav .flex-next::before{transform:rotate(-45deg);margin-right:3px}

/* Always visible on touch devices, where there is no hover. */
@media (hover:none){
  .single-product .woocommerce-product-gallery .flex-direction-nav a{opacity:1}
}

/* ---------------------------------------------------------------
   12. PRODUCT SHARE
   --------------------------------------------------------------- */

.ff-share{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:16px}
.ff-share__label{font-size:12.5px;font-weight:700;color:var(--ff-muted);letter-spacing:.05em;text-transform:uppercase;margin-right:2px}
.ff-share a,.ff-share button{
  width:38px !important;height:38px !important;border-radius:50% !important;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--ff-line) !important;background:#fff !important;color:var(--ff-teal) !important;
  cursor:pointer;padding:0 !important;text-decoration:none;box-shadow:none !important;
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.ff-share a:hover,.ff-share button:hover{background:var(--ff-teal) !important;border-color:var(--ff-teal) !important;color:#fff !important;transform:translateY(-2px)}
.ff-share a:focus-visible,.ff-share button:focus-visible{outline:2px solid var(--ff-teal);outline-offset:2px}
.ff-share svg{display:block}
.ff-share__copied{font-size:12.5px;font-weight:700;color:var(--ff-teal)}
.ff-share__copied[hidden]{display:none}

/* ---------------------------------------------------------------
   13. WIDER PRODUCT CANVAS
   The gallery is the main decision surface, so single-product gets a wider
   container and hands most of it to the images. Scoped to single-product
   only - shop, cart and checkout keep their existing widths.
   --------------------------------------------------------------- */

@media (min-width:1200px){
  .single-product #content > .ast-container{
    max-width:1360px !important;
    padding-left:24px !important;padding-right:24px !important;
  }
}

/* Portrait-leaning stage on wide screens shows more of the product. */
@media (min-width:922px){
  .single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child img,
  .single-product .flex-viewport img,
  .single-product .woocommerce-product-gallery img.woocommerce-placeholder{
    aspect-ratio:1/1.06;
  }
}

.single-product .flex-control-thumbs img{border-radius:11px}
@media (min-width:1200px){
  .single-product .flex-control-thumbs,
  .single-product .woocommerce-product-gallery .flex-control-nav{gap:10px}
}
