/*
 * Franks Simple Commerce
 * Clean cart + checkout styling.
 */

.franks-simple-commerce{
  --frsc-purple:#4a175f;
  --frsc-purple-dark:#321044;
  --frsc-purple-soft:#f6f1f8;
  --frsc-ink:#171318;
  --frsc-muted:#746d76;
  --frsc-line:#e9e4ea;
  --frsc-soft:#faf9fa;
  --frsc-danger:#9b3340;
  background:#fff;
  color:var(--frsc-ink);
}

.franks-simple-commerce *{
  box-sizing:border-box;
}

.franks-simple-commerce .woocommerce,
.franks-simple-commerce .wp-block-woocommerce-cart,
.franks-simple-commerce .wp-block-woocommerce-checkout{
  width:min(1180px,calc(100% - 40px));
  margin-inline:auto;
  color:var(--frsc-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}

.franks-simple-commerce .woocommerce{
  padding-block:26px 72px;
}

.franks-simple-commerce .woocommerce a{
  color:inherit;
  text-decoration:none;
}

.franks-simple-commerce .woocommerce a:hover{
  color:var(--frsc-purple);
}

/* WooCommerce feedback notices, including the add-to-cart message on product pages. */
.franks-commerce-notices .woocommerce-notices-wrapper{
  width:100%;
}

.franks-commerce-notices .woocommerce-message,
.franks-commerce-notices .woocommerce-info,
.franks-commerce-notices .woocommerce-error{
  position:relative;
  min-height:64px;
  margin:20px 0 28px!important;
  padding:17px 18px 17px 56px!important;
  border:1px solid #e8e2e9!important;
  border-top:1px solid #e8e2e9!important;
  border-radius:4px!important;
  background:#fff!important;
  color:#2a252b!important;
  box-shadow:0 8px 24px rgba(30,18,34,.055);
  font-size:13px!important;
  font-weight:650;
  line-height:1.45;
}

.franks-commerce-notices .woocommerce-message{
  display:flex;
  align-items:center;
  gap:16px;
}

.franks-commerce-notices .woocommerce-message::before,
.franks-commerce-notices .woocommerce-info::before,
.franks-commerce-notices .woocommerce-error::before{
  position:absolute!important;
  top:50%!important;
  left:18px!important;
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  margin:0!important;
  transform:translateY(-50%);
  border-radius:50%;
  font-size:13px!important;
  font-weight:900;
  line-height:1!important;
}

.franks-commerce-notices .woocommerce-message::before{
  content:"✓"!important;
  background:#edf7e8;
  color:#6e9f12!important;
}

.franks-commerce-notices .woocommerce-info::before{
  background:var(--frsc-purple-soft,#f6f1f8);
  color:var(--frsc-purple,#4a175f)!important;
}

.franks-commerce-notices .woocommerce-error::before{
  background:#fff0f2;
  color:#9b3340!important;
}

.franks-commerce-notices .woocommerce-message .button,
.franks-commerce-notices .woocommerce-message a.button.wc-forward{
  order:3;
  flex:0 0 auto;
  min-height:38px!important;
  margin:0 0 0 auto!important;
  padding:0 16px!important;
  border:1px solid #4a175f!important;
  border-radius:3px!important;
  background:#4a175f!important;
  color:#fff!important;
  box-shadow:none!important;
  font-size:10px!important;
  font-weight:850!important;
  line-height:36px!important;
  letter-spacing:.045em;
  text-transform:uppercase;
}

.franks-commerce-notices .woocommerce-message .button:hover,
.franks-commerce-notices .woocommerce-message a.button.wc-forward:hover{
  border-color:#321044!important;
  background:#321044!important;
  color:#fff!important;
}


/* ==========================================================
   PRODUCT ARCHIVE / CATEGORY PAGINATION
========================================================== */

/*
 * These selectors intentionally do not depend on a Franks body class. Product
 * loops are sometimes rendered by archive builders on pages where WooCommerce
 * conditional tags are false. Targeting WooCommerce's pagination markup
 * directly also lets these rules beat large pagination styles inherited from
 * the active theme.
 */
body nav.woocommerce-pagination,
body .woocommerce-pagination{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:100%!important;
  clear:both!important;
  margin:24px 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  overflow:visible!important;
  text-align:left!important;
}

body nav.woocommerce-pagination ul.page-numbers,
body .woocommerce-pagination ul.page-numbers,
body nav.woocommerce-pagination > ul,
body .woocommerce-pagination > ul{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  width:auto!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  list-style:none!important;
}

body nav.woocommerce-pagination ul.page-numbers > li,
body .woocommerce-pagination ul.page-numbers > li,
body nav.woocommerce-pagination > ul > li,
body .woocommerce-pagination > ul > li{
  float:none!important;
  display:block!important;
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}

body nav.woocommerce-pagination .page-numbers li > a,
body nav.woocommerce-pagination .page-numbers li > span,
body .woocommerce-pagination .page-numbers li > a,
body .woocommerce-pagination .page-numbers li > span,
body nav.woocommerce-pagination a.page-numbers,
body nav.woocommerce-pagination span.page-numbers,
body .woocommerce-pagination a.page-numbers,
body .woocommerce-pagination span.page-numbers{
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 38px!important;
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #ddd7df!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#211c22!important;
  box-shadow:none!important;
  font-family:inherit!important;
  font-size:13px!important;
  font-style:normal!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-align:center!important;
  text-decoration:none!important;
  text-indent:0!important;
  transform:none;
  transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}

body nav.woocommerce-pagination a.page-numbers:hover,
body .woocommerce-pagination a.page-numbers:hover{
  border-color:#4a175f!important;
  background:#f7f2f9!important;
  color:#4a175f!important;
  box-shadow:0 2px 8px rgba(74,23,95,.08)!important;
  transform:translateY(-1px)!important;
}

body nav.woocommerce-pagination .page-numbers.current,
body .woocommerce-pagination .page-numbers.current{
  border-color:#4a175f!important;
  background:#4a175f!important;
  color:#fff!important;
  box-shadow:none!important;
  cursor:default!important;
}

body nav.woocommerce-pagination .page-numbers.dots,
body .woocommerce-pagination .page-numbers.dots{
  border-color:transparent!important;
  background:transparent!important;
  color:#777078!important;
  box-shadow:none!important;
  font-size:15px!important;
  font-weight:700!important;
}

body nav.woocommerce-pagination .page-numbers.prev,
body nav.woocommerce-pagination .page-numbers.next,
body .woocommerce-pagination .page-numbers.prev,
body .woocommerce-pagination .page-numbers.next{
  font-size:19px!important;
  font-weight:650!important;
}

body nav.woocommerce-pagination a.page-numbers:focus-visible,
body .woocommerce-pagination a.page-numbers:focus-visible{
  outline:2px solid #4a175f!important;
  outline-offset:2px!important;
}



/* ==========================================================
   LIVECANVAS / BOOTSTRAP ARCHIVE PAGINATION
========================================================== */
/*
 * LiveCanvas [lc_the_pagination] renders Bootstrap-style pagination rather
 * than WooCommerce's nav.woocommerce-pagination markup. These rules target
 * that exact archive output inside the custom .fr-pa template.
 */
.fr-pa nav[aria-label*="pagination" i],
.fr-pa nav.navigation.pagination,
.fr-pa nav.pagination,
.fr-pa .pagination{
  clear:both!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  width:auto!important;
  max-width:100%!important;
  margin:28px 0 0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  list-style:none!important;
}

.fr-pa .pagination > li,
.fr-pa .pagination .page-item,
.fr-pa .nav-links > *{
  float:none!important;
  display:block!important;
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  list-style:none!important;
}

.fr-pa .pagination .page-link,
.fr-pa .pagination a,
.fr-pa .pagination span,
.fr-pa .nav-links .page-numbers,
.fr-pa a.page-numbers,
.fr-pa span.page-numbers{
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 38px!important;
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #ddd7df!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#211c22!important;
  box-shadow:none!important;
  font-family:inherit!important;
  font-size:13px!important;
  font-style:normal!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-align:center!important;
  text-decoration:none!important;
  text-indent:0!important;
  transform:none!important;
}

.fr-pa .pagination a.page-link:hover,
.fr-pa .pagination a:hover,
.fr-pa .nav-links a.page-numbers:hover,
.fr-pa a.page-numbers:hover{
  border-color:#4a175f!important;
  background:#f7f2f9!important;
  color:#4a175f!important;
  box-shadow:0 2px 8px rgba(74,23,95,.08)!important;
  transform:translateY(-1px)!important;
}

.fr-pa .pagination .page-item.active .page-link,
.fr-pa .pagination .active > .page-link,
.fr-pa .pagination .page-link.current,
.fr-pa .pagination .current,
.fr-pa .nav-links .page-numbers.current,
.fr-pa span.page-numbers.current{
  border-color:#4a175f!important;
  background:#4a175f!important;
  color:#fff!important;
  box-shadow:none!important;
  cursor:default!important;
}

.fr-pa .pagination .page-item.disabled .page-link,
.fr-pa .pagination .disabled > .page-link{
  opacity:.42!important;
  pointer-events:none!important;
}

.fr-pa .pagination .dots,
.fr-pa .nav-links .page-numbers.dots,
.fr-pa span.page-numbers.dots{
  border-color:transparent!important;
  background:transparent!important;
  color:#777078!important;
  box-shadow:none!important;
  font-size:15px!important;
}

.fr-pa .pagination .next,
.fr-pa .pagination .prev,
.fr-pa .nav-links .next,
.fr-pa .nav-links .prev,
.fr-pa a.page-numbers.next,
.fr-pa a.page-numbers.prev{
  font-size:18px!important;
  font-weight:700!important;
}

.fr-pa .pagination a:focus-visible,
.fr-pa .nav-links a.page-numbers:focus-visible,
.fr-pa a.page-numbers:focus-visible{
  outline:2px solid #4a175f!important;
  outline-offset:2px!important;
}

@media(max-width:650px){
  .fr-pa nav[aria-label*="pagination" i],
  .fr-pa nav.navigation.pagination,
  .fr-pa nav.pagination,
  .fr-pa .pagination{
    justify-content:center!important;
    gap:5px!important;
    margin-top:24px!important;
  }

  .fr-pa .pagination .page-link,
  .fr-pa .pagination a,
  .fr-pa .pagination span,
  .fr-pa .nav-links .page-numbers,
  .fr-pa a.page-numbers,
  .fr-pa span.page-numbers{
    flex-basis:34px!important;
    width:34px!important;
    min-width:34px!important;
    max-width:34px!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    border-radius:7px!important;
    font-size:12px!important;
  }
}

/* ==========================================================
   PAGE TITLES
========================================================== */

.franks-simple-commerce .entry-title,
.franks-simple-commerce .page-title,
.franks-simple-commerce .woocommerce h1{
  margin:0 0 34px;
  color:var(--frsc-ink);
  font-size:clamp(36px,5vw,56px);
  font-weight:850;
  line-height:1;
  letter-spacing:-.05em;
}

.franks-simple-commerce .woocommerce h2,
.franks-simple-commerce .woocommerce h3{
  color:var(--frsc-ink);
  letter-spacing:-.025em;
}

/* ==========================================================
   CLASSIC CART
========================================================== */

.franks-simple-cart .woocommerce-cart-form{
  margin:0;
}

.franks-simple-cart .woocommerce table.shop_table{
  width:100%;
  margin:0;
  border:0!important;
  border-collapse:collapse!important;
  border-radius:0!important;
}

.franks-simple-cart .woocommerce table.shop_table thead th{
  padding:0 12px 12px!important;
  border:0!important;
  border-bottom:1px solid var(--frsc-line)!important;
  color:#8b848d;
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.franks-simple-cart .woocommerce table.shop_table td{
  padding:20px 12px!important;
  border:0!important;
  border-bottom:1px solid var(--frsc-line)!important;
  vertical-align:middle;
}

.franks-simple-cart .woocommerce td.product-thumbnail{
  width:112px;
}

.franks-simple-cart .woocommerce td.product-thumbnail img{
  width:92px!important;
  max-width:92px!important;
  aspect-ratio:.82/1;
  object-fit:cover;
  background:#f6f4f6;
}

.franks-simple-cart .woocommerce td.product-name{
  font-size:12px;
}

.franks-simple-cart .woocommerce td.product-name > a{
  display:inline-block;
  margin-bottom:7px;
  color:var(--frsc-ink);
  font-size:13px;
  font-weight:800;
  line-height:1.35;
}

.franks-simple-cart .woocommerce dl.variation{
  margin:0;
  color:var(--frsc-muted);
  font-size:9px;
}

.franks-simple-cart .woocommerce dl.variation dt,
.franks-simple-cart .woocommerce dl.variation dd{
  display:inline;
  float:none;
  margin:0 4px 0 0;
  padding:0;
}

.franks-simple-cart .woocommerce dl.variation dd + dt::before{
  content:"·";
  margin:0 7px 0 3px;
  color:#bbb4bd;
}

.franks-simple-cart .woocommerce td.product-price,
.franks-simple-cart .woocommerce td.product-subtotal{
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}

.franks-simple-cart .woocommerce td.product-remove{
  width:42px;
}

.franks-simple-cart .woocommerce a.remove{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border:1px solid var(--frsc-line);
  border-radius:50%;
  color:#8c858e!important;
  font-size:18px;
  font-weight:400;
  line-height:1;
  transition:.16s ease;
}

.franks-simple-cart .woocommerce a.remove:hover{
  border-color:#e4cbd0;
  background:#fff7f8!important;
  color:var(--frsc-danger)!important;
}

.franks-simple-cart .quantity{
  position:relative;
  width:100px;
}

.franks-simple-cart .quantity .qty{
  width:100px!important;
  height:42px;
  padding:0 30px!important;
  border:1px solid var(--frsc-line);
  border-radius:2px;
  background:#fff;
  color:var(--frsc-ink);
  text-align:center;
  appearance:textfield;
}

.franks-simple-cart .quantity .qty::-webkit-inner-spin-button,
.franks-simple-cart .quantity .qty::-webkit-outer-spin-button{
  margin:0;
  appearance:none;
}

.frsc-qty-btn{
  position:absolute;
  z-index:2;
  top:0;
  width:30px;
  height:42px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  background:transparent;
  color:#625b65;
  cursor:pointer;
  font-size:15px;
}

.frsc-qty-minus{left:0}
.frsc-qty-plus{right:0}

.frsc-qty-btn:hover{
  color:var(--frsc-purple);
}

.franks-simple-cart .woocommerce table.shop_table td.actions{
  padding:18px 0!important;
  border-bottom:0!important;
}

.franks-simple-cart .woocommerce .actions .coupon{
  display:flex;
  gap:8px;
}

.franks-simple-cart .woocommerce .coupon .input-text{
  width:210px!important;
  min-height:42px;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid var(--frsc-line)!important;
  border-radius:2px!important;
  background:#fff;
  color:var(--frsc-ink);
  font-size:10px;
}

.franks-simple-commerce .woocommerce button.button,
.franks-simple-commerce .woocommerce a.button,
.franks-simple-commerce .woocommerce input.button{
  min-height:42px!important;
  padding:0 17px!important;
  border:1px solid var(--frsc-ink)!important;
  border-radius:2px!important;
  background:var(--frsc-ink)!important;
  color:#fff!important;
  box-shadow:none!important;
  font-size:9px!important;
  font-weight:850!important;
  line-height:40px!important;
  letter-spacing:.05em;
  text-transform:uppercase;
  transition:.16s ease;
}

.franks-simple-commerce .woocommerce button.button:hover,
.franks-simple-commerce .woocommerce a.button:hover,
.franks-simple-commerce .woocommerce input.button:hover{
  border-color:var(--frsc-purple-dark)!important;
  background:var(--frsc-purple-dark)!important;
  color:#fff!important;
}

.franks-simple-cart .woocommerce button[name="update_cart"]:disabled{
  opacity:.35;
}

.franks-simple-cart .cart-collaterals{
  display:flex;
  justify-content:flex-end;
  margin-top:36px;
}

.franks-simple-cart .cart-collaterals .cart_totals{
  float:none!important;
  width:min(430px,100%)!important;
  padding:0;
  background:#fff;
}

.franks-simple-cart .cart_totals h2{
  margin:0 0 14px;
  font-size:22px;
  font-weight:850;
}

.franks-simple-cart .cart_totals table{
  margin:0!important;
}

.franks-simple-cart .cart_totals table th,
.franks-simple-cart .cart_totals table td{
  padding:12px 0!important;
  border:0!important;
  border-bottom:1px solid var(--frsc-line)!important;
  font-size:11px;
}

.franks-simple-cart .cart_totals table th{
  width:46%;
  color:var(--frsc-muted);
  font-weight:650;
  text-align:left;
}

.franks-simple-cart .cart_totals table td{
  color:var(--frsc-ink);
  font-weight:800;
  text-align:right;
}

.franks-simple-cart .cart_totals .order-total th,
.franks-simple-cart .cart_totals .order-total td{
  padding-top:16px!important;
  color:var(--frsc-ink);
  font-size:14px;
  font-weight:900;
}

.franks-simple-cart .wc-proceed-to-checkout{
  padding:18px 0 0!important;
}

.franks-simple-cart .wc-proceed-to-checkout a.checkout-button{
  width:100%;
  min-height:50px!important;
  display:flex!important;
  align-items:center;
  justify-content:center;
  margin:0!important;
  padding:0 22px!important;
  border-color:var(--frsc-purple)!important;
  background:var(--frsc-purple)!important;
  font-size:10px!important;
  line-height:1!important;
}

.franks-simple-cart .wc-proceed-to-checkout a.checkout-button:hover{
  border-color:var(--frsc-purple-dark)!important;
  background:var(--frsc-purple-dark)!important;
}

.frsc-trust{
  display:flex;
  flex-wrap:wrap;
  gap:7px 18px;
  margin-top:13px;
  color:var(--frsc-muted);
  font-size:9px;
  line-height:1.5;
}

.frsc-trust a{
  color:var(--frsc-muted)!important;
}

.frsc-trust a:hover{
  color:var(--frsc-purple)!important;
}

.frsc-trust > * + *::before{
  content:"·";
  margin-right:18px;
  color:#bbb4bd;
}

/* Cross sells */
.franks-simple-cart .cross-sells{
  width:100%;
  margin-top:56px;
}

.franks-simple-cart .cross-sells > h2{
  margin-bottom:18px;
  font-size:22px;
}

.franks-simple-cart .cross-sells ul.products{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px 12px;
}

.franks-simple-cart .cross-sells ul.products::before,
.franks-simple-cart .cross-sells ul.products::after{
  display:none!important;
}

.franks-simple-cart .cross-sells ul.products li.product{
  float:none!important;
  width:auto!important;
  margin:0!important;
}

/* ==========================================================
   CLASSIC CHECKOUT
========================================================== */

/*
 * Keep third-party express checkout elements out of the two-column auto-flow.
 * The old layout made Stripe/Apple Pay/Google Pay wrappers become stray grid
 * cells, which is why the wallet buttons and “OR” separator could land in odd
 * positions. Any unknown direct checkout child now spans the full width.
 */
.franks-simple-checkout form.checkout.woocommerce-checkout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,430px);
  column-gap:56px;
  row-gap:12px;
  align-items:start;
}

.franks-simple-checkout form.checkout.woocommerce-checkout > *{
  min-width:0;
}

.franks-simple-checkout form.checkout.woocommerce-checkout > :not(#customer_details):not(#order_review_heading):not(#order_review){
  grid-column:1 / -1;
}

.franks-simple-checkout #customer_details{
  grid-column:1;
  grid-row:span 2;
  float:none!important;
  width:auto!important;
  min-width:0;
}

.franks-simple-checkout #order_review_heading{
  grid-column:2;
  margin:0 0 4px;
  font-size:22px;
  font-weight:850;
  line-height:1.15;
}

.franks-simple-checkout #order_review{
  grid-column:2;
  float:none!important;
  width:auto!important;
  margin:0;
  padding:20px 22px 22px;
  border:1px solid var(--frsc-line);
  border-radius:4px;
  background:#fff;
  box-shadow:0 10px 28px rgba(30,18,34,.045);
}

.franks-simple-checkout .col2-set{
  width:100%;
}

.franks-simple-checkout .col2-set .col-1,
.franks-simple-checkout .col2-set .col-2{
  float:none!important;
  width:100%!important;
}

.franks-simple-checkout .col2-set .col-2{
  margin-top:34px;
}

.franks-simple-checkout .woocommerce-billing-fields,
.franks-simple-checkout .woocommerce-shipping-fields,
.franks-simple-checkout .woocommerce-additional-fields{
  min-width:0;
}

.franks-simple-checkout .woocommerce-billing-fields > h3,
.franks-simple-checkout .woocommerce-shipping-fields > h3,
.franks-simple-checkout .woocommerce-additional-fields > h3{
  margin:0 0 20px;
  font-size:22px;
  font-weight:850;
  line-height:1.2;
}

.franks-simple-checkout .woocommerce-billing-fields__field-wrapper,
.franks-simple-checkout .woocommerce-shipping-fields__field-wrapper{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:16px;
  row-gap:0;
}

.franks-simple-checkout .woocommerce form .form-row{
  width:100%!important;
  float:none!important;
  margin:0 0 14px;
  padding:0;
}

.franks-simple-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
.franks-simple-checkout .woocommerce-shipping-fields__field-wrapper > .form-row{
  grid-column:1 / -1;
}

.franks-simple-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
.franks-simple-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first{
  grid-column:1;
}

.franks-simple-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last,
.franks-simple-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last{
  grid-column:2;
}

/* A more balanced UK address/contact layout while preserving WooCommerce IDs. */
.franks-simple-checkout #billing_city_field,
.franks-simple-checkout #billing_state_field,
.franks-simple-checkout #billing_postcode_field,
.franks-simple-checkout #billing_phone_field{
  grid-column:auto;
}

.franks-simple-checkout #billing_city_field,
.franks-simple-checkout #billing_postcode_field{
  grid-column:1;
}

.franks-simple-checkout #billing_state_field,
.franks-simple-checkout #billing_phone_field{
  grid-column:2;
}

.franks-simple-checkout #billing_email_field{
  grid-column:1 / -1;
}

.franks-simple-checkout .woocommerce form .form-row label{
  display:block;
  margin:0 0 7px;
  color:#59515b;
  font-size:10px;
  font-weight:800;
  line-height:1.25;
}

.franks-simple-checkout .woocommerce form .form-row .required{
  color:var(--frsc-purple);
}

.franks-simple-checkout .woocommerce input.input-text,
.franks-simple-checkout .woocommerce textarea,
.franks-simple-checkout .woocommerce select,
.franks-simple-checkout .select2-container .select2-selection--single{
  width:100%!important;
  min-height:46px;
  border:1px solid #ded8df!important;
  border-radius:3px!important;
  background:#fff!important;
  color:var(--frsc-ink)!important;
  box-shadow:none!important;
  font-size:11px!important;
  transition:border-color .16s ease,box-shadow .16s ease;
}

.franks-simple-checkout .woocommerce input.input-text{
  padding:0 13px!important;
}

.franks-simple-checkout .woocommerce textarea{
  min-height:106px;
  padding:12px 13px!important;
  resize:vertical;
}

.franks-simple-checkout .woocommerce input.input-text:focus,
.franks-simple-checkout .woocommerce textarea:focus,
.franks-simple-checkout .woocommerce select:focus,
.franks-simple-checkout .select2-container--focus .select2-selection--single{
  border-color:#8f719b!important;
  box-shadow:0 0 0 3px rgba(74,23,95,.075)!important;
  outline:0!important;
}

.franks-simple-checkout .select2-container{
  width:100%!important;
}

.franks-simple-checkout .select2-container .select2-selection--single .select2-selection__rendered{
  padding-left:13px!important;
  padding-right:34px!important;
  line-height:44px!important;
}

.franks-simple-checkout .select2-container .select2-selection--single .select2-selection__arrow{
  right:6px!important;
  height:44px!important;
}

.franks-simple-checkout .woocommerce form .form-row.woocommerce-invalid input.input-text,
.franks-simple-checkout .woocommerce form .form-row.woocommerce-invalid .select2-selection{
  border-color:#b9626d!important;
}

.franks-simple-checkout .woocommerce form .form-row.woocommerce-validated input.input-text,
.franks-simple-checkout .woocommerce form .form-row.woocommerce-validated .select2-selection{
  border-color:#adc5b4!important;
}

.franks-simple-checkout #order_review{
  position:sticky;
  top:24px;
}

.franks-simple-checkout #order_review table.shop_table{
  width:100%!important;
  margin:0 0 20px!important;
  border:0!important;
  border-collapse:collapse!important;
  border-radius:0!important;
  background:transparent!important;
}

.franks-simple-checkout #order_review table.shop_table thead,
.franks-simple-checkout #order_review table.shop_table tbody,
.franks-simple-checkout #order_review table.shop_table tfoot,
.franks-simple-checkout #order_review table.shop_table tr,
.franks-simple-checkout #order_review table.shop_table th,
.franks-simple-checkout #order_review table.shop_table td{
  background:transparent!important;
}

.franks-simple-checkout #order_review table.shop_table th,
.franks-simple-checkout #order_review table.shop_table td{
  padding:12px 0!important;
  border:0!important;
  border-bottom:1px solid var(--frsc-line)!important;
  font-size:10px;
  line-height:1.45;
  vertical-align:top;
}

.franks-simple-checkout #order_review table.shop_table th{
  color:var(--frsc-muted);
  font-weight:700;
  text-align:left;
}

.franks-simple-checkout #order_review table.shop_table td{
  color:var(--frsc-ink);
  font-weight:700;
  text-align:right;
}

.franks-simple-checkout #order_review table.shop_table thead th{
  padding-top:0!important;
  color:#8b848d;
  font-size:9px;
  font-weight:850;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.franks-simple-checkout #order_review .product-name{
  padding-right:18px!important;
  color:var(--frsc-ink)!important;
  text-align:left!important;
}

.franks-simple-checkout #order_review .product-total{
  text-align:right!important;
  white-space:nowrap;
}

.franks-simple-checkout #order_review .cart-subtotal th,
.franks-simple-checkout #order_review .cart-subtotal td{
  padding-top:15px!important;
}

.franks-simple-checkout #order_review .order-total th,
.franks-simple-checkout #order_review .order-total td{
  padding-top:16px!important;
  border-bottom:0!important;
  color:var(--frsc-ink)!important;
  font-size:13px;
  font-weight:900;
}

.franks-simple-checkout #payment{
  margin-top:2px;
  border:1px solid var(--frsc-line)!important;
  border-radius:4px!important;
  background:#fff!important;
  overflow:hidden;
}

.franks-simple-checkout #payment ul.payment_methods{
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:#fff!important;
}

.franks-simple-checkout #payment ul.payment_methods li{
  margin:0!important;
  padding:14px 16px!important;
  border-bottom:1px solid var(--frsc-line);
  background:#fff!important;
  font-size:10px;
}

.franks-simple-checkout #payment ul.payment_methods li:last-child{
  border-bottom:0;
}

.franks-simple-checkout #payment ul.payment_methods li > label{
  font-size:11px;
  font-weight:750;
}

.franks-simple-checkout #payment div.payment_box{
  margin:12px 0 0!important;
  padding:12px!important;
  border:1px solid #ece7ed!important;
  border-radius:3px!important;
  background:#faf9fa!important;
  color:var(--frsc-muted)!important;
  font-size:9px;
}

.franks-simple-checkout #payment div.payment_box::before{
  display:none!important;
}

.franks-simple-checkout #payment .place-order{
  margin:0!important;
  padding:18px 16px 16px!important;
  border-top:1px solid var(--frsc-line)!important;
  background:#fff!important;
}

.franks-simple-checkout #place_order{
  width:100%;
  min-height:50px!important;
  float:none!important;
  border-color:var(--frsc-purple)!important;
  background:var(--frsc-purple)!important;
  font-size:10px!important;
  line-height:1!important;
}

.franks-simple-checkout #place_order:hover{
  border-color:var(--frsc-purple-dark)!important;
  background:var(--frsc-purple-dark)!important;
}

.franks-simple-checkout .woocommerce-privacy-policy-text,
.franks-simple-checkout .woocommerce-terms-and-conditions-wrapper{
  color:var(--frsc-muted);
  font-size:8px;
  line-height:1.55;
}

.frsc-checkout-note{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px 8px;
  margin-top:10px;
  color:var(--frsc-muted);
  font-size:8px;
}

.frsc-checkout-note a{
  color:var(--frsc-muted)!important;
}

.frsc-checkout-note a:hover{
  color:var(--frsc-purple)!important;
}

/* Coupon / login notices */
.franks-simple-checkout .woocommerce-form-coupon-toggle,
.franks-simple-checkout .woocommerce-form-login-toggle{
  margin-bottom:12px;
}

.franks-simple-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.franks-simple-checkout .woocommerce-form-login-toggle .woocommerce-info{
  min-height:0;
  margin:0!important;
  padding:13px 16px 13px 46px!important;
  border-color:var(--frsc-line)!important;
  box-shadow:none;
  font-size:10px!important;
}

.franks-simple-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before,
.franks-simple-checkout .woocommerce-form-login-toggle .woocommerce-info::before{
  left:15px!important;
  width:21px;
  height:21px;
  font-size:11px!important;
}

.franks-simple-checkout form.checkout_coupon,
.franks-simple-checkout form.login{
  margin:0 0 28px!important;
  padding:18px!important;
  border:1px solid var(--frsc-line)!important;
  border-radius:4px!important;
  background:#fff;
}

/* Make wallet checkout visually unmistakable without changing gateway logic. */
.franks-simple-checkout .frsc-express-intro{
  grid-column:1 / -1;
  width:min(920px,100%);
  margin:8px auto 2px;
  padding:18px 20px 14px;
  border:1px solid #dfd3e4;
  border-bottom:0;
  border-radius:7px 7px 0 0;
  background:var(--frsc-purple-soft);
  text-align:center;
}

.franks-simple-checkout .frsc-express-intro strong{
  display:block;
  margin:0 0 4px;
  color:var(--frsc-purple-dark);
  font-size:15px;
  font-weight:900;
  line-height:1.2;
}

.franks-simple-checkout .frsc-express-intro span{
  display:block;
  color:#655b69;
  font-size:10px;
  font-weight:700;
  line-height:1.4;
}

.franks-simple-checkout form.checkout.woocommerce-checkout > .frsc-express-node{
  grid-column:1 / -1;
  width:min(920px,100%)!important;
  max-width:920px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.franks-simple-checkout .frsc-express-shortcut{
  position:fixed;
  right:18px;
  bottom:calc(18px + env(safe-area-inset-bottom));
  z-index:9998;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  min-width:190px;
  padding:11px 14px 12px;
  border:1px solid var(--frsc-purple)!important;
  border-radius:6px!important;
  background:var(--frsc-purple)!important;
  color:#fff!important;
  box-shadow:0 10px 28px rgba(50,16,68,.22)!important;
  opacity:0;
  pointer-events:none;
  transform:translateY(10px);
  transition:opacity .16s ease,transform .16s ease,background-color .16s ease;
  text-align:left;
  cursor:pointer;
}

.franks-simple-checkout .frsc-express-shortcut.is-visible{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}

.franks-simple-checkout .frsc-express-shortcut:hover{
  background:var(--frsc-purple-dark)!important;
}

.franks-simple-checkout .frsc-express-shortcut__eyebrow{
  font-size:8px;
  font-weight:800;
  line-height:1.15;
  letter-spacing:.06em;
  opacity:.8;
  text-transform:uppercase;
}

.franks-simple-checkout .frsc-express-shortcut__label{
  font-size:11px;
  font-weight:900;
  line-height:1.2;
}

/* Stripe / WooPayments express checkout compatibility. */
.franks-simple-checkout #wc-stripe-express-checkout-element,
.franks-simple-checkout #wc-stripe-payment-request-wrapper,
.franks-simple-checkout #wcpay-payment-request-wrapper{
  width:min(920px,100%)!important;
  max-width:920px!important;
  margin:0 auto 12px!important;
}

.franks-simple-checkout #wc-stripe-express-checkout-element{
  justify-content:center!important;
}

.franks-simple-checkout #wc-stripe-express-checkout-element iframe{
  max-width:none!important;
}

.franks-simple-checkout #wc-stripe-express-checkout-button-separator,
.franks-simple-checkout #wc-stripe-payment-request-button-separator,
.franks-simple-checkout #wcpay-payment-request-button-separator{
  width:min(920px,100%)!important;
  margin:8px auto 24px!important;
  color:#8a828c!important;
  font-size:10px!important;
  text-align:center!important;
}

/* Payment Plugins for Stripe WooCommerce compatibility. */
.franks-simple-checkout .wc-stripe-checkout-container,
.franks-simple-checkout .wc-stripe-payment-request-container,
.franks-simple-checkout #wc-stripe-payment-request-container{
  width:min(920px,100%)!important;
  max-width:920px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* ==========================================================
   WOOCOMMERCE BLOCKS CART
========================================================== */

.franks-simple-cart .wp-block-woocommerce-cart{
  padding-block:24px 72px;
}

.franks-simple-cart .wc-block-cart{
  gap:48px;
}

.franks-simple-cart .wc-block-cart-items{
  border:0!important;
  border-collapse:collapse;
}

.franks-simple-cart .wc-block-cart-items th{
  padding:0 0 12px!important;
  border-bottom:1px solid var(--frsc-line)!important;
  color:#8b848d!important;
  font-size:9px!important;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.franks-simple-cart .wc-block-cart-items td{
  padding:20px 0!important;
  border-bottom:1px solid var(--frsc-line)!important;
}

.franks-simple-cart .wc-block-cart-item__image img{
  aspect-ratio:.82/1;
  object-fit:cover;
}

.franks-simple-cart .wc-block-components-product-name{
  color:var(--frsc-ink)!important;
  font-size:13px!important;
  font-weight:800!important;
}

.franks-simple-cart .wc-block-components-product-metadata{
  color:var(--frsc-muted)!important;
  font-size:9px!important;
}

.franks-simple-cart .wc-block-components-quantity-selector{
  border-color:var(--frsc-line)!important;
  border-radius:2px!important;
}

.franks-simple-cart .wc-block-components-sidebar{
  padding:0!important;
}

.franks-simple-cart .wc-block-components-totals-wrapper{
  padding:14px 0!important;
  border-top:0!important;
  border-bottom:1px solid var(--frsc-line)!important;
}

.franks-simple-cart .wc-block-cart__submit-button{
  min-height:50px!important;
  border-radius:2px!important;
  background:var(--frsc-purple)!important;
  color:#fff!important;
  font-size:10px!important;
  font-weight:850!important;
  letter-spacing:.05em;
  text-transform:uppercase;
}

/* ==========================================================
   WOOCOMMERCE BLOCKS CHECKOUT
========================================================== */

.franks-simple-checkout .wp-block-woocommerce-checkout{
  padding-block:24px 72px;
}

.franks-simple-checkout .wc-block-checkout{
  gap:52px;
}

.franks-simple-checkout .wc-block-checkout__main{
  padding-right:0!important;
}

.franks-simple-checkout .wc-block-checkout__sidebar{
  top:24px!important;
  padding-left:0!important;
}

.franks-simple-checkout .wc-block-components-checkout-step{
  margin:0 0 28px!important;
  padding:0!important;
}

.franks-simple-checkout .wc-block-components-checkout-step__heading{
  margin-bottom:16px!important;
}

.franks-simple-checkout .wc-block-components-title{
  color:var(--frsc-ink)!important;
  font-size:22px!important;
  font-weight:850!important;
  letter-spacing:-.025em;
}

.franks-simple-checkout .wc-block-components-text-input input,
.franks-simple-checkout .wc-block-components-combobox .wc-block-components-combobox-control input,
.franks-simple-checkout .wc-block-components-address-form select{
  border-color:var(--frsc-line)!important;
  border-radius:2px!important;
  box-shadow:none!important;
}

.franks-simple-checkout .wc-block-components-order-summary{
  border:0!important;
}

.franks-simple-checkout .wc-block-components-order-summary-item{
  border-bottom:1px solid var(--frsc-line)!important;
}

.franks-simple-checkout .wc-block-components-totals-wrapper{
  border-top:0!important;
  border-bottom:1px solid var(--frsc-line)!important;
}

.franks-simple-checkout .wc-block-components-checkout-place-order-button{
  min-height:50px!important;
  border:0!important;
  border-radius:2px!important;
  background:var(--frsc-purple)!important;
  color:#fff!important;
  font-size:10px!important;
  font-weight:850!important;
  letter-spacing:.05em;
  text-transform:uppercase;
}

/* ==========================================================
   MOBILE
========================================================== */

@media(max-width:900px){
  .franks-simple-commerce .woocommerce,
  .franks-simple-commerce .wp-block-woocommerce-cart,
  .franks-simple-commerce .wp-block-woocommerce-checkout{
    width:min(100% - 28px,1180px);
  }

  .franks-simple-checkout form.checkout.woocommerce-checkout{
    grid-template-columns:1fr;
    gap:28px;
  }

  .franks-simple-checkout #customer_details,
  .franks-simple-checkout #order_review_heading,
  .franks-simple-checkout #order_review{
    grid-column:1;
    grid-row:auto;
  }

  .franks-simple-checkout #order_review{
    position:static;
  }

  .franks-simple-cart .cross-sells ul.products{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:700px){
  body nav.woocommerce-pagination,
  body .woocommerce-pagination{
    margin-top:20px!important;
  }

  body nav.woocommerce-pagination ul.page-numbers,
  body .woocommerce-pagination ul.page-numbers,
  body nav.woocommerce-pagination > ul,
  body .woocommerce-pagination > ul{
    gap:5px!important;
  }

  body nav.woocommerce-pagination .page-numbers li > a,
  body nav.woocommerce-pagination .page-numbers li > span,
  body .woocommerce-pagination .page-numbers li > a,
  body .woocommerce-pagination .page-numbers li > span,
  body nav.woocommerce-pagination a.page-numbers,
  body nav.woocommerce-pagination span.page-numbers,
  body .woocommerce-pagination a.page-numbers,
  body .woocommerce-pagination span.page-numbers{
    flex-basis:36px!important;
    width:36px!important;
    min-width:36px!important;
    max-width:36px!important;
    height:36px!important;
    min-height:36px!important;
    max-height:36px!important;
    border-radius:7px!important;
    font-size:12px!important;
  }

  .franks-commerce-notices .woocommerce-message{
    align-items:flex-start;
    flex-wrap:wrap;
    padding:15px 15px 15px 52px!important;
  }

  .franks-commerce-notices .woocommerce-message .button,
  .franks-commerce-notices .woocommerce-message a.button.wc-forward{
    width:100%;
    margin:4px 0 0!important;
    text-align:center;
  }

  .franks-simple-commerce .woocommerce{
    padding-block:16px 54px;
  }

  .franks-simple-commerce .entry-title,
  .franks-simple-commerce .page-title,
  .franks-simple-commerce .woocommerce h1{
    margin-bottom:24px;
    font-size:38px;
  }

  .franks-simple-cart .woocommerce table.shop_table.cart thead{
    display:none;
  }

  .franks-simple-cart .woocommerce table.shop_table.cart,
  .franks-simple-cart .woocommerce table.shop_table.cart tbody{
    display:block;
  }

  .franks-simple-cart .woocommerce table.shop_table.cart tr.cart_item{
    position:relative;
    display:grid;
    grid-template-columns:82px minmax(0,1fr) auto;
    gap:7px 14px;
    padding:18px 0;
    border-bottom:1px solid var(--frsc-line);
  }

  .franks-simple-cart .woocommerce table.shop_table.cart tr.cart_item td{
    display:block;
    padding:0!important;
    border:0!important;
  }

  .franks-simple-cart .woocommerce td.product-thumbnail{
    grid-column:1;
    grid-row:1 / span 4;
    width:auto;
  }

  .franks-simple-cart .woocommerce td.product-thumbnail img{
    width:82px!important;
    max-width:82px!important;
  }

  .franks-simple-cart .woocommerce td.product-name{
    grid-column:2;
    grid-row:1;
  }

  .franks-simple-cart .woocommerce td.product-price{
    grid-column:2;
    grid-row:2;
    color:var(--frsc-muted);
    font-size:10px;
  }

  .franks-simple-cart .woocommerce td.product-quantity{
    grid-column:2;
    grid-row:3;
  }

  .franks-simple-cart .woocommerce td.product-subtotal{
    grid-column:3;
    grid-row:1;
    padding-right:34px!important;
  }

  .franks-simple-cart .woocommerce td.product-remove{
    position:absolute;
    top:14px;
    right:0;
    width:auto;
  }

  .franks-simple-cart .woocommerce table.shop_table.cart tr:not(.cart_item){
    display:block;
  }

  .franks-simple-cart .woocommerce table.shop_table td.actions{
    padding-top:20px!important;
  }

  .franks-simple-cart .woocommerce .actions .coupon{
    display:grid;
    grid-template-columns:1fr auto;
  }

  .franks-simple-cart .woocommerce .coupon .input-text{
    width:100%!important;
  }

  .franks-simple-cart .woocommerce button[name="update_cart"]{
    width:100%;
    margin-top:8px;
  }

  .franks-simple-cart .cart-collaterals{
    margin-top:28px;
  }

  .frsc-trust{
    flex-direction:column;
    gap:5px;
  }

  .frsc-trust > * + *::before{
    content:"";
    margin:0;
  }

  .franks-simple-checkout .woocommerce-billing-fields__field-wrapper,
  .franks-simple-checkout .woocommerce-shipping-fields__field-wrapper{
    grid-template-columns:1fr;
  }

  .franks-simple-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
  .franks-simple-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last,
  .franks-simple-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first,
  .franks-simple-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last,
  .franks-simple-checkout #billing_city_field,
  .franks-simple-checkout #billing_state_field,
  .franks-simple-checkout #billing_postcode_field,
  .franks-simple-checkout #billing_phone_field,
  .franks-simple-checkout #billing_email_field{
    grid-column:1 / -1;
  }

  .franks-simple-checkout #order_review{
    padding:18px 16px;
  }

  .franks-simple-checkout form.checkout_coupon,
  .franks-simple-checkout form.login{
    padding:14px!important;
  }
}

@media(max-width:480px){
  body nav.woocommerce-pagination,
  body .woocommerce-pagination{
    justify-content:center!important;
  }

  body nav.woocommerce-pagination ul.page-numbers,
  body .woocommerce-pagination ul.page-numbers,
  body nav.woocommerce-pagination > ul,
  body .woocommerce-pagination > ul{
    justify-content:center!important;
  }

  body nav.woocommerce-pagination .page-numbers li > a,
  body nav.woocommerce-pagination .page-numbers li > span,
  body .woocommerce-pagination .page-numbers li > a,
  body .woocommerce-pagination .page-numbers li > span,
  body nav.woocommerce-pagination a.page-numbers,
  body nav.woocommerce-pagination span.page-numbers,
  body .woocommerce-pagination a.page-numbers,
  body .woocommerce-pagination span.page-numbers{
    flex-basis:34px!important;
    width:34px!important;
    min-width:34px!important;
    max-width:34px!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
  }

  .franks-simple-cart .cross-sells ul.products{
    grid-template-columns:1fr 1fr;
    gap:16px 10px;
  }
}


@media (max-width: 700px){
  .franks-simple-checkout .frsc-express-intro{
    width:100%;
    margin-top:4px;
    padding:15px 14px 12px;
  }

  .franks-simple-checkout .frsc-express-intro strong{
    font-size:14px;
  }

  .franks-simple-checkout .frsc-express-shortcut{
    right:12px;
    bottom:calc(12px + env(safe-area-inset-bottom));
    min-width:0;
    max-width:calc(100vw - 24px);
    padding:10px 12px 11px;
  }
}
