/* ==========================================================================
   Foreigners — WooCommerce
   Loaded only on pages that can render a Woo template.
   ========================================================================== */

/* ------------------------------------------------------- product cards -- */
ul.products{
  display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:0;padding:0;
}
@media (min-width:640px){ul.products{grid-template-columns:repeat(3,1fr);gap:20px}}
@media (min-width:1024px){
  ul.products.columns-4{grid-template-columns:repeat(4,1fr)}
  ul.products.columns-3{grid-template-columns:repeat(3,1fr)}
  ul.products.columns-5{grid-template-columns:repeat(5,1fr)}
}

ul.products li.product{
  position:relative;display:flex;flex-direction:column;margin:0;
  background:var(--surface);border:1px solid var(--line);
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
ul.products li.product:hover{border-color:var(--gold);box-shadow:var(--shadow-md)}

.card__media{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;background:var(--surface-2)}
.card__media-link{position:absolute;inset:0;display:block}
.card__media img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;margin:0;
  transition:opacity .45s var(--ease),transform .6s var(--ease);
}
.card__alt-img{opacity:0}
li.product:hover .card__alt-img{opacity:1}
li.product:hover .attachment-woocommerce_thumbnail{transform:scale(1.04)}

/* badges */
.badge{
  position:absolute;z-index:3;top:10px;padding:4px 9px;
  font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.4;
}
.badge--sale{left:10px;background:var(--warn);color:#fff}
.badge--new{right:10px;background:var(--ink);color:#fff}
ul.products li.product .onsale{display:none}

/* hover actions */
.card__actions{
  position:absolute;z-index:4;right:10px;top:10px;
  display:flex;flex-direction:column;gap:6px;
  opacity:0;translate:8px 0;transition:opacity .22s var(--ease),translate .22s var(--ease);
}
li.product:hover .card__actions,li.product:focus-within .card__actions{opacity:1;translate:0}
.card__act{
  display:grid;place-items:center;width:34px;height:34px;
  background:var(--surface);color:var(--ink);border:1px solid var(--line-2);
  transition:background .16s var(--ease),color .16s var(--ease),border-color .16s var(--ease);
}
.card__act:hover,.card__act.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
@media (hover:none){.card__actions{opacity:1;translate:0}}

/* card body */
.card__cat{
  display:block;padding:13px 14px 0;
  font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);
}
.card__title{margin:4px 0 0;padding:0 14px;font-size:.92rem;font-weight:600;line-height:1.35}
.card__title a{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  color:var(--ink);transition:color .16s var(--ease);
}
.card__title a:hover{color:var(--gold-ink)}

ul.products li.product .price{
  display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;
  padding:9px 14px 0;margin:0;margin-top:auto;
  font-size:1rem;font-weight:700;color:var(--ink);
}
ul.products li.product .price del{color:var(--text-3);font-weight:400;font-size:.85rem;opacity:1}
ul.products li.product .price ins{text-decoration:none;color:var(--warn)}

ul.products li.product .star-rating{margin:7px 14px 0;font-size:.72rem}

ul.products li.product .button{
  display:block;margin:13px 14px 14px;padding:11px 14px;text-align:center;
  background:var(--surface-2);color:var(--ink);border:1px solid var(--line-2);
  font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease);
}
ul.products li.product .button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
ul.products li.product .added_to_cart{display:none}
ul.products li.product .button.loading{opacity:.6;pointer-events:none}

/* ---------------------------------------------------------- shop layout -- */
.shop-layout{display:grid;gap:28px;padding-top:26px;padding-bottom:44px}
@media (min-width:1024px){
  body:not(.no-sidebar) .shop-layout{grid-template-columns:262px 1fr;gap:36px}
}
.shop-main{min-width:0}

.woocommerce-products-header{padding:30px 0 4px;text-align:center}
.woocommerce-products-header__title{margin:0 0 6px}
.term-description{color:var(--text-2);font-size:.9rem;max-width:62ch;margin-inline:auto}

.woocommerce-result-count{margin:0;color:var(--text-3);font-size:.82rem}
.woocommerce-ordering{margin:0}
.woocommerce-ordering select,.shop-sidebar select{
  padding:9px 12px;background:var(--surface);border:1px solid var(--line-2);
  font-size:.84rem;color:var(--ink);
}
.shop-main .woocommerce-result-count{display:inline-block}
.shop-main form.woocommerce-ordering{float:right}
.shop-main::after{content:"";display:table;clear:both}
.shop-main ul.products{clear:both;padding-top:16px}

.shop-sidebar .widget{
  margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--line);
}
.shop-sidebar .widget:last-child{border-bottom:0}
.shop-sidebar .widget-title{
  margin:0 0 12px;font-size:.78rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink);
}
.shop-sidebar ul li{padding:5px 0;font-size:.87rem;color:var(--text-2)}
.shop-sidebar ul li a:hover{color:var(--gold-ink)}
.shop-sidebar .count{color:var(--text-3);font-size:.78rem}

.woocommerce-pagination{padding:28px 0}
.woocommerce-pagination ul{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}
.woocommerce-pagination .page-numbers{
  display:grid;place-items:center;min-width:38px;height:38px;padding:0 12px;
  background:var(--surface);border:1px solid var(--line-2);font-size:.85rem;color:var(--text-2);
}
.woocommerce-pagination .current{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}

/* -------------------------------------------------------- single product -- */
.single-product .site-main{padding:28px 0 10px}
@media (min-width:900px){
  .single-product div.product{display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:start}
  .single-product div.product .woocommerce-product-gallery{grid-column:1}
  .single-product div.product .summary{grid-column:2}
  .single-product div.product .woocommerce-tabs,
  .single-product div.product .related,
  .single-product div.product .upsells{grid-column:1/-1}
}

.woocommerce-product-gallery{position:relative}
.woocommerce-product-gallery img{border:1px solid var(--line)}
.woocommerce-product-gallery .flex-control-thumbs{
  display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0 0;padding:0;
}
.woocommerce-product-gallery .flex-control-thumbs img{
  cursor:pointer;opacity:.55;transition:opacity .18s var(--ease),border-color .18s var(--ease)
}
.woocommerce-product-gallery .flex-control-thumbs .flex-active,
.woocommerce-product-gallery .flex-control-thumbs img:hover{opacity:1;border-color:var(--gold)}

.product_title{margin:0 0 10px;font-size:clamp(1.4rem,3vw,1.95rem)}
.single-product div.product .price{
  margin:0 0 14px;font-size:1.45rem;font-weight:700;color:var(--ink);
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
}
.single-product div.product .price del{font-size:1rem;color:var(--text-3);font-weight:400;opacity:1}
.single-product div.product .price ins{text-decoration:none;color:var(--warn)}

.woocommerce-product-details__short-description{
  color:var(--text-2);font-size:.94rem;line-height:1.7;
  padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line);
}

.single-product .variations{margin-bottom:16px}
.single-product .variations th{text-align:left;padding:6px 12px 6px 0;font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.single-product .variations td{padding:6px 0}
.single-product .variations select{
  min-width:180px;padding:10px 12px;background:var(--surface);border:1px solid var(--line-2);
}
.reset_variations{font-size:.8rem;color:var(--text-3)}

.quantity{display:inline-flex;align-items:center;border:1px solid var(--line-2);overflow:hidden;background:var(--surface)}
.quantity input[type=number]{
  width:54px;height:46px;text-align:center;border:0;background:transparent;
  -moz-appearance:textfield;font-weight:600;color:var(--ink);
}
.quantity input::-webkit-outer-spin-button,.quantity input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.qty-btn{width:38px;height:46px;display:grid;place-items:center;color:var(--text-2);font-size:1.1rem;transition:color .15s var(--ease),background .15s var(--ease)}
.qty-btn:hover{color:var(--ink);background:var(--surface-2)}

form.cart{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:20px}
form.cart .button,.single_add_to_cart_button{
  flex:1 1 200px;min-height:46px;padding:13px 26px;
  background:var(--ink);color:#fff;
  font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  transition:background .18s var(--ease);
}
form.cart .button:hover{background:var(--gold-ink)}

.product_meta{font-size:.82rem;color:var(--text-3);padding-top:16px;border-top:1px solid var(--line)}
.product_meta>span{display:block;margin-bottom:5px}
.product_meta a:hover{color:var(--gold-ink)}

.woocommerce-tabs{margin-top:44px}
.woocommerce-tabs ul.tabs{
  display:flex;flex-wrap:wrap;gap:4px;margin:0 0 -1px;padding:0;
  border-bottom:1px solid var(--line);
}
.woocommerce-tabs ul.tabs li a{
  display:block;padding:13px 20px;font-size:.79rem;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);
  border-bottom:2px solid transparent;transition:color .16s var(--ease),border-color .16s var(--ease);
}
.woocommerce-tabs ul.tabs li.active a{color:var(--ink);border-bottom-color:var(--gold)}
.woocommerce-tabs .panel{padding:24px 0;font-size:.95rem;line-height:1.75;color:var(--text-2)}
.woocommerce-tabs .panel h2{font-size:1.12rem}

.related.products,.upsells.products{margin-top:48px;padding-top:38px;border-top:1px solid var(--line)}
.related.products>h2,.upsells.products>h2,.cross-sells>h2{
  text-align:center;font-size:clamp(1.25rem,2.4vw,1.65rem);margin-bottom:24px;
}

.star-rating{
  position:relative;display:inline-block;width:5.4em;height:1.2em;
  font-size:.8rem;line-height:1.2;overflow:hidden;font-family:inherit;
}
.star-rating::before,.star-rating span::before{
  content:"★★★★★";position:absolute;left:0;top:0;letter-spacing:.1em;
}
.star-rating::before{color:var(--line-2)}
.star-rating span{position:absolute;left:0;top:0;overflow:hidden;padding-top:1.5em}
.star-rating span::before{color:var(--gold)}

/* ------------------------------------------------------------ mini cart -- */
.widget_shopping_cart_content{padding:0 16px}
.woocommerce-mini-cart{padding-top:12px}
.woocommerce-mini-cart-item{
  position:relative;display:grid;grid-template-columns:58px 1fr;gap:12px;
  padding:12px 0;border-bottom:1px solid var(--line);
}
.woocommerce-mini-cart-item img{grid-row:1/3;width:58px;border:1px solid var(--line)}
.woocommerce-mini-cart-item a:not(.remove){color:var(--ink);font-size:.87rem;line-height:1.35;font-weight:500}
.woocommerce-mini-cart-item .quantity{border:0;background:none;color:var(--text-2);font-size:.82rem}
.woocommerce-mini-cart-item .remove{
  position:absolute;top:12px;right:0;width:22px;height:22px;
  display:grid;place-items:center;border-radius:50%;
  color:var(--text-3);font-size:1.1rem;line-height:1;
}
.woocommerce-mini-cart-item .remove:hover{background:var(--surface-2);color:var(--warn)}
.woocommerce-mini-cart__total{
  display:flex;justify-content:space-between;padding:16px 0;margin:0;
  border-bottom:1px solid var(--line);color:var(--ink);font-size:.92rem;
}
.woocommerce-mini-cart__total strong{font-weight:700}
.woocommerce-mini-cart__buttons{display:grid;gap:9px;padding:16px 0}
.woocommerce-mini-cart__buttons .button{
  display:block;padding:12px;text-align:center;
  border:1px solid var(--line-2);color:var(--ink);
  font-size:.77rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
}
.woocommerce-mini-cart__buttons .button:hover{border-color:var(--ink)}
.woocommerce-mini-cart__buttons .checkout{background:var(--ink);color:#fff;border-color:var(--ink)}
.woocommerce-mini-cart__buttons .checkout:hover{background:var(--gold-ink);border-color:var(--gold-ink)}
.woocommerce-mini-cart__empty-message{padding:36px 0;text-align:center;color:var(--text-3);font-size:.9rem}

/* ------------------------------------------------------ cart / checkout -- */
.woocommerce-cart .site-main,.woocommerce-checkout .site-main,.woocommerce-account .site-main{padding:30px 0 50px}
.shop_table{background:var(--surface);border:1px solid var(--line);font-size:.9rem}
.shop_table th{
  padding:14px;text-align:left;background:var(--surface-2);
  font-size:.73rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);
}
.shop_table td{padding:14px;border-top:1px solid var(--line);vertical-align:middle}
.shop_table .product-thumbnail img{width:64px;border:1px solid var(--line)}
.shop_table .product-remove a{
  display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--surface-2);color:var(--text-3);font-size:1.1rem;line-height:1;
}
.shop_table .product-remove a:hover{background:var(--warn);color:#fff}

.cart-collaterals{margin-top:28px}
.cart_totals{
  background:var(--surface-2);border:1px solid var(--line);
  padding:22px;max-width:440px;margin-left:auto;
}
.cart_totals h2{font-size:1.02rem;margin-bottom:14px}
.cart_totals .shop_table{border:0;background:none}
.cart_totals .shop_table th,.cart_totals .shop_table td{background:none;padding:9px 0;text-transform:none;letter-spacing:0;font-size:.9rem}
.cart_totals .order-total{font-size:1.02rem;font-weight:700;color:var(--ink)}
.wc-proceed-to-checkout{padding-top:14px}
.checkout-button{
  display:block;padding:14px;text-align:center;
  background:var(--ink);color:#fff;
  font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
}
.checkout-button:hover{background:var(--gold-ink)}

@media (min-width:900px){
  .woocommerce-checkout #customer_details{display:grid;grid-template-columns:1fr 1fr;gap:32px}
  form.checkout{display:grid;grid-template-columns:1.25fr 1fr;gap:36px;align-items:start}
  form.checkout #customer_details{grid-column:1}
  form.checkout #order_review_heading,form.checkout #order_review{grid-column:2}
}
h3#order_review_heading{margin-top:0}
#order_review{background:var(--surface-2);border:1px solid var(--line);padding:20px}

.form-row{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}
.form-row label{font-size:.78rem;font-weight:600;color:var(--ink)}
.form-row .required{color:var(--warn);text-decoration:none}
.input-text,.form-row input[type=text],.form-row input[type=email],.form-row input[type=tel],
.form-row input[type=password],.form-row textarea,.select2-container .select2-selection--single{
  width:100%;padding:11px 13px;background:var(--surface);
  border:1px solid var(--line-2);font-size:.92rem;
  transition:border-color .16s var(--ease);
}
.input-text:focus,.form-row textarea:focus{outline:none;border-color:var(--ink)}
.select2-container--default .select2-selection--single{height:44px;display:flex;align-items:center}

#payment{background:var(--surface-2);padding:16px;margin-top:16px;border:1px solid var(--line)}
#payment ul.payment_methods{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}
#payment ul.payment_methods li{padding:7px 0;font-size:.9rem}
#payment .payment_box{
  background:var(--surface);border:1px solid var(--line);padding:12px;
  font-size:.85rem;color:var(--text-2);margin-top:8px;
}
#place_order{
  width:100%;padding:14px;background:var(--ink);color:#fff;
  font-size:.83rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
}
#place_order:hover{background:var(--gold-ink)}

/* --------------------------------------------------------- notices etc -- */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-notice{
  display:flex;align-items:center;flex-wrap:wrap;gap:10px;
  padding:13px 16px;margin:0 0 18px;
  border-left:3px solid var(--gold);background:var(--surface-2);font-size:.89rem;color:var(--text-2);
}
.woocommerce-error{border-left-color:var(--warn);background:#FDF3F1;color:#8C2F22}
.woocommerce-message{border-left-color:var(--ok);background:#F1F8F4}
.woocommerce-message .button,.woocommerce-info .button{
  margin-left:auto;padding:9px 16px;background:var(--ink);color:#fff;
  font-size:.74rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
}
.woocommerce-error li{margin-bottom:4px}

/* account */
.woocommerce-MyAccount-navigation ul li{border-bottom:1px solid var(--line)}
.woocommerce-MyAccount-navigation ul li a{display:block;padding:11px 2px;font-size:.88rem}
.woocommerce-MyAccount-navigation ul li.is-active a{color:var(--gold-ink);font-weight:600}
@media (min-width:900px){
  .woocommerce-account .woocommerce{display:grid;grid-template-columns:230px 1fr;gap:38px;align-items:start}
}
.woocommerce-form-login,.woocommerce-form-register{
  background:var(--surface-2);border:1px solid var(--line);padding:24px;max-width:460px;
}
.woocommerce-form-login .button,.woocommerce-form-register .button{
  padding:12px 26px;background:var(--ink);color:#fff;
  font-size:.79rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
}

/* Woo's own layout helpers we do not want */
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{width:auto;float:none;margin-right:0}
.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2{float:none;width:auto}

/* ==========================================================================
   WooCommerce Blocks — cart and checkout
   ========================================================================== */

.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout{
  max-width:var(--maxw);margin-inline:auto;padding:30px var(--gutter) 50px;
}
.wc-block-components-title,
.wp-block-woocommerce-cart h1,.wp-block-woocommerce-checkout h1{color:var(--ink);letter-spacing:-.015em}
.wc-block-components-sidebar-layout .wc-block-components-sidebar{
  background:var(--surface-2);border:1px solid var(--line);padding:20px;
}

.wc-block-cart-items{font-size:.9rem}
.wc-block-cart-items__header{
  font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink);border-bottom:1px solid var(--line);
}
.wc-block-cart-items__row{border-bottom:1px solid var(--line)}
.wc-block-cart-item__image img{border:1px solid var(--line)}
.wc-block-components-product-name{font-size:.95rem;color:var(--ink);transition:color .16s var(--ease)}
.wc-block-components-product-name:hover{color:var(--gold-ink)}
.wc-block-components-product-price__value{font-weight:700;color:var(--ink)}
.wc-block-components-product-price ins{text-decoration:none;color:var(--warn)}
.wc-block-components-product-price del{color:var(--text-3);opacity:1}

.wc-block-components-quantity-selector{border:1px solid var(--line-2);background:var(--surface)}
.wc-block-components-quantity-selector__button{color:var(--text-2)}
.wc-block-components-quantity-selector__button:hover{color:var(--ink);background:var(--surface-2)}

.wc-block-components-totals-wrapper{border-top:1px solid var(--line)}
.wc-block-components-totals-item__label{color:var(--text-2)}
.wc-block-components-totals-footer-item{font-weight:700;color:var(--ink)}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{color:var(--ink)}

.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button{
  background:var(--ink)!important;color:#fff!important;
  border:0!important;border-radius:0!important;
  font-size:.8rem!important;font-weight:600!important;
  letter-spacing:.06em!important;text-transform:uppercase!important;
  transition:background-color .18s var(--ease);
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover{background:var(--gold-ink)!important}
.wc-block-components-button.is-link{color:var(--gold-ink)}

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox-control input,
.wc-block-components-select__container{
  border:1px solid var(--line-2)!important;border-radius:0!important;
  background:var(--surface)!important;
}
.wc-block-components-text-input input:focus{
  outline:none!important;border-color:var(--ink)!important;box-shadow:none!important;
}
.wc-block-components-text-input label{color:var(--text-3)}
.wc-block-components-checkout-step__heading-content,
.wc-block-components-checkout-step__description{color:var(--text-2)}
.wc-block-components-checkout-step{border-color:var(--line)}

.wc-block-components-notice-banner{border-radius:0;border-left-width:3px}
.wc-block-components-notice-banner.is-info{border-left-color:var(--gold)}
.wc-block-components-notice-banner.is-success{border-left-color:var(--ok)}
.wc-block-components-notice-banner.is-error{border-left-color:var(--warn)}

.wp-block-woocommerce-empty-cart-block{text-align:center;padding:40px 0}
