@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600&family=Manrope:wght@400;500;600;700&display=swap');

/* =============================================================================
   SWISS EMIRATES — WooCommerce skin  v1.1.0 (cleaned)

   DIVISION OF RESPONSIBILITY — do not blur this line:
     • THIS FILE (child theme): global Woo styling — typography, buttons,
       forms, notices, breadcrumb, single product, tabs, cart, checkout,
       account, pagination, price-slider internals.
     • Swiss_Emirates_Shop snippet (PHP): product LOOP CARD + grid + shop
       hero + filter rail + toolbar + chips. It restructures the loop with
       its own .swshop- classes, so this file must NEVER style
       ul.products / li.product cards. Old §08 removed for that reason.
       Loop sale badge + loop result-count/ordering also live there now.

   Enqueue AFTER woocommerce.css / woocommerce-layout.css so source order wins:
     wp_enqueue_style('swiss-woo-skin', get_stylesheet_directory_uri().'/swiss-woo-skin.css',
       ['woocommerce-general'], '1.1.0');
   (Swiss_Emirates_Shop snippet already does this automatically if the file
   exists in the child theme — do not enqueue it twice.)

   Breadcrumb separator — CSS cannot replace it. Add to functions.php:
     add_filter('woocommerce_breadcrumb_defaults', function($d){
       $d['delimiter'] = ' <span class="swiss-crumb-sep">&#10022;</span> '; return $d;
     });

   CONTENTS
     01  Tokens
     02  Base + typography
     03  Star motif helpers
     04  Buttons
     05  Forms + inputs
     06  Notices
     07  Breadcrumb
     08  (removed — loop card lives in Swiss_Emirates_Shop)
     09  Sale badge (single product) + star rating
     10  Pagination
     11  Sidebar widgets + price slider internals
     12  Single product
     13  Tabs, related, upsells
     14  Cart
     15  Checkout
     16  My account + order received
     17  Blocks compatibility (optional)
     18  Reduced motion
   ============================================================================ */

/* -----------------------------------------------------------------------------
   01  TOKENS — locked, mirrors design/index.html :root
   -------------------------------------------------------------------------- */
:root{
  --plum-900:#26215C;
  --plum-700:#3C3489;
  --plum-500:#534AB7;
  --lilac-100:#EEEDFE;
  --lilac-200:#DDD9F8;
  --pink-500:#D4537E;
  --pink-300:#ED93B1;
  --pink-100:#FBEAF0;
  --ivory:#F8F5F0;
  --ivory-deep:#F1ECE3;
  --ink:#1E1A3F;
  --white:#FFFFFF;
  --muted:#6B678F;
  --muted-soft:#9B97B8;
  --line:rgba(38,33,92,.1);
  --line-strong:rgba(38,33,92,.16);
  --ok:#2E7D52;

  --display:'Fraunces',serif;
  --body:'Manrope',sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);

  --r-card:20px;
  --r-media:14px;
  --r-field:12px;
  --shadow-card:0 30px 48px -26px rgba(38,33,92,.35);
  --shadow-btn:0 14px 34px -14px rgba(38,33,92,.55);
}

/* -----------------------------------------------------------------------------
   02  BASE + TYPOGRAPHY
   -------------------------------------------------------------------------- */
.woocommerce-page,
.woocommerce{
  font-family:var(--body);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
body.woocommerce-page{background:var(--ivory)}

.woocommerce h1,.woocommerce h2,.woocommerce h3,
.woocommerce-page h1,.woocommerce-page h2,.woocommerce-page h3{
  font-family:var(--display);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.01em;
  color:var(--plum-900);
}
.woocommerce h2{font-size:clamp(26px,4.6vw,40px)}
.woocommerce h3{font-size:clamp(20px,3.2vw,26px)}
.woocommerce em{font-style:italic;color:var(--pink-500)}

.woocommerce a{color:inherit;text-decoration:none;transition:color .25s}
.woocommerce a:hover{color:var(--pink-500)}
.woocommerce :focus-visible{outline:2px solid var(--plum-500);outline-offset:3px;border-radius:2px}

.woocommerce .page-title,
.woocommerce-products-header__title{
  font-family:var(--display);
  font-size:clamp(32px,6vw,54px);
  color:var(--plum-900);
  margin-bottom:14px;
}
.woocommerce .term-description,
.woocommerce-products-header .term-description p{
  font-size:15px;color:#4A4670;max-width:52ch;
}

/* -----------------------------------------------------------------------------
   03  STAR MOTIF HELPERS
   The 4-point star is an SVG in the static pages; in Woo templates we cannot
   inject markup, so the ✦ glyph stands in via ::before.
   -------------------------------------------------------------------------- */
.swiss-crumb-sep{color:var(--pink-300);font-size:.85em;vertical-align:1px}

.woocommerce .woocommerce-products-header__title::before,
.woocommerce .cart_totals h2::before,
.woocommerce-checkout h3::before,
.woocommerce .cross-sells > h2::before,
.woocommerce .related > h2::before,
.woocommerce .upsells > h2::before{
  content:'\2726';
  color:var(--pink-500);
  font-family:var(--body);
  font-size:.5em;
  vertical-align:.35em;
  margin-right:.55em;
}

/* -----------------------------------------------------------------------------
   04  BUTTONS — mirrors .btn-primary from index.html
   Selector list matches WooCommerce's own so specificity ties and we win on
   source order. Do not shorten it.
   NOTE: loop-card quick-add (+) button is .swshop-quick-add and is styled by
   the Swiss_Emirates_Shop snippet, not here.
   -------------------------------------------------------------------------- */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce .product a.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:var(--body);
  font-size:13px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1;
  padding:16px 28px;
  border:none;
  border-radius:999px;
  background:var(--plum-900);
  color:#fff;
  box-shadow:var(--shadow-btn);
  text-shadow:none;
  cursor:pointer;
  transition:transform .3s var(--ease),box-shadow .3s,background .3s,color .3s;
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover{
  transform:translateY(-2px);
  background:var(--plum-700);
  color:#fff;
  box-shadow:0 20px 44px -14px rgba(38,33,92,.6);
}
.woocommerce a.button:active,
.woocommerce button.button:active,
.woocommerce input.button:active{transform:translateY(0)}

/* ghost / secondary — e.g. "Continue shopping", "Update cart" when inactive */
.woocommerce a.button.wc-backward,
.woocommerce button.button[name="update_cart"]{
  background:transparent;
  color:var(--plum-900);
  border:1.5px solid var(--line-strong);
  box-shadow:none;
}
.woocommerce a.button.wc-backward:hover,
.woocommerce button.button[name="update_cart"]:hover{
  background:transparent;
  border-color:var(--pink-300);
  color:var(--pink-500);
  box-shadow:none;
}

/* disabled */
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce button.button.disabled{
  background:var(--lilac-200);
  color:var(--muted);
  box-shadow:none;
  opacity:1;
  cursor:not-allowed;
}
.woocommerce button.button:disabled:hover{transform:none;background:var(--lilac-200)}

/* loading + added states — replaces Woo's icon-font spinner with a star */
.woocommerce a.button.loading::after,
.woocommerce button.button.loading::after,
.woocommerce .blockUI.blockOverlay::after{
  content:'\2726';
  font-family:var(--body);
  font-size:14px;
  color:currentColor;
  animation:swiss-spin 1.1s linear infinite;
}
.woocommerce a.button.loading,
.woocommerce button.button.loading{opacity:.75}
@keyframes swiss-spin{to{transform:rotate(360deg)}}

/* -----------------------------------------------------------------------------
   05  FORMS + INPUTS
   -------------------------------------------------------------------------- */
.woocommerce form .form-row label,
.woocommerce-page form .form-row label,
.woocommerce label{
  display:block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--plum-900);
  margin-bottom:8px;
}
.woocommerce .required{color:var(--pink-500);border:none}

.woocommerce input[type=text],
.woocommerce input[type=email],
.woocommerce input[type=tel],
.woocommerce input[type=password],
.woocommerce input[type=number],
.woocommerce input[type=search],
.woocommerce textarea,
.woocommerce select,
.woocommerce .select2-container .select2-selection--single{
  width:100%;
  font-family:var(--body);
  font-size:14px;
  color:var(--ink);
  background:var(--white);
  border:1.5px solid var(--line-strong);
  border-radius:var(--r-field);
  padding:13px 16px;
  outline:none;
  transition:border-color .25s,box-shadow .25s;
  box-sizing:border-box;
  height:auto;
}
.woocommerce textarea{min-height:120px;border-radius:16px;line-height:1.6}
.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus{
  border-color:var(--plum-500);
  box-shadow:0 0 0 4px rgba(83,74,183,.12);
}
.woocommerce input::placeholder,
.woocommerce textarea::placeholder{color:var(--muted-soft)}

/* select2 (used by checkout country/state) */
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:1.6;color:var(--ink);padding:0;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow{top:12px;right:10px}
.select2-dropdown{border:1.5px solid var(--line-strong);border-radius:var(--r-field);overflow:hidden;font-family:var(--body)}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--plum-900)}

/* checkbox / radio */
.woocommerce input[type=checkbox],
.woocommerce input[type=radio]{accent-color:var(--plum-900);width:17px;height:17px;margin-right:9px}
.woocommerce .woocommerce-form__label-for-checkbox{
  display:flex;align-items:center;gap:4px;
  font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:#4A4670;
}

/* -----------------------------------------------------------------------------
   06  NOTICES
   -------------------------------------------------------------------------- */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-info,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-error,
.woocommerce-page .woocommerce-info{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  font-size:14px;
  line-height:1.5;
  background:var(--lilac-100);
  border:none;
  border-top:none;
  border-left:3px solid var(--plum-900);
  border-radius:var(--r-field);
  color:var(--ink);
  padding:16px 20px;
  margin:0 0 26px;
  list-style:none;
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-error::before,
.woocommerce .woocommerce-info::before,
.woocommerce-page .woocommerce-message::before,
.woocommerce-page .woocommerce-error::before,
.woocommerce-page .woocommerce-info::before{
  content:'\2726';
  position:static;
  font-family:var(--body);
  font-size:14px;
  line-height:1;
  color:var(--pink-500);
  top:auto;left:auto;
}
.woocommerce .woocommerce-message{background:var(--pink-100);border-left-color:var(--pink-500)}
.woocommerce .woocommerce-message::before{color:var(--pink-500)}
.woocommerce .woocommerce-error{background:#FCE9EF;border-left-color:var(--pink-500);color:#8A2447}
.woocommerce .woocommerce-error li{list-style:none;margin:0}
.woocommerce .woocommerce-info{background:var(--lilac-100);border-left-color:var(--plum-500)}

.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button,
.woocommerce .woocommerce-error .button{
  margin-left:auto;padding:11px 20px;font-size:11px;
}

/* -----------------------------------------------------------------------------
   07  BREADCRUMB
   (Shop archives print their own crumbs in the hero — Woo's breadcrumb is
   removed there by the snippet. These rules cover single product + anywhere
   else Woo prints it.)
   -------------------------------------------------------------------------- */
.woocommerce .woocommerce-breadcrumb{
  font-size:12px;
  letter-spacing:.06em;
  color:var(--muted);
  margin:0 0 22px;
  padding:0;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.woocommerce .woocommerce-breadcrumb a{color:var(--muted)}
.woocommerce .woocommerce-breadcrumb a:hover{color:var(--pink-500)}

/* -----------------------------------------------------------------------------
   08  (REMOVED)
   Loop grid + product card are fully owned by the Swiss_Emirates_Shop
   snippet (css_card), which restructures the card markup with .swshop-
   classes on every page (archive, related, upsells, [products] shortcode).
   Do not add ul.products / li.product card rules back here.
   -------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------
   09  SALE BADGE (single product) + STAR RATING
   Loop badge is .swshop-badge (snippet). This covers the single product page.
   -------------------------------------------------------------------------- */
.woocommerce div.product span.onsale{
  position:absolute;
  top:20px;
  left:20px;
  right:auto;
  z-index:3;
  min-width:0;
  min-height:0;
  width:auto;
  height:auto;
  line-height:1;
  border-radius:999px;
  background:var(--pink-500);
  color:#fff;
  font-family:var(--body);
  font-size:9px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:6px 11px;
  margin:0;
  text-shadow:none;
}

/* rating — ✦ instead of the WooCommerce star font */
.woocommerce .star-rating{
  float:none;
  position:relative;
  height:1.1em;
  width:5.8em;
  line-height:1.1;
  font-family:var(--body);
  font-size:13px;
  letter-spacing:.12em;
  overflow:hidden;
  margin:0 0 8px;
}
.woocommerce .star-rating::before{
  content:'\2726\2726\2726\2726\2726';
  color:var(--lilac-200);
  position:absolute;
  left:0;top:0;
  float:none;
}
.woocommerce .star-rating span{
  position:absolute;
  left:0;top:0;
  overflow:hidden;
  padding-top:1.5em;
  float:none;
}
.woocommerce .star-rating span::before{
  content:'\2726\2726\2726\2726\2726';
  color:var(--pink-500);
  position:absolute;
  left:0;top:0;
}
.woocommerce .woocommerce-product-rating{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.woocommerce .woocommerce-product-rating .woocommerce-review-link{font-size:13px;color:var(--muted)}
.woocommerce .woocommerce-product-rating .woocommerce-review-link:hover{color:var(--pink-500)}

/* -----------------------------------------------------------------------------
   10  PAGINATION
   (Result count + ordering dropdown live in the snippet's .swshop-toolbar.)
   -------------------------------------------------------------------------- */
.woocommerce nav.woocommerce-pagination{margin:10px 0 40px;text-align:center}
.woocommerce nav.woocommerce-pagination ul{
  display:inline-flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  border:none;
  margin:0;
  padding:0;
}
.woocommerce nav.woocommerce-pagination ul li{border:none;margin:0;overflow:visible}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  display:grid;
  place-items:center;
  min-width:40px;
  height:40px;
  padding:0 12px;
  border-radius:999px;
  background:var(--white);
  border:1px solid var(--line);
  font-size:13px;
  font-weight:700;
  color:var(--plum-900);
  transition:all .25s;
}
.woocommerce nav.woocommerce-pagination ul li a:hover{
  background:var(--lilac-100);
  border-color:var(--lilac-200);
  color:var(--plum-900);
}
.woocommerce nav.woocommerce-pagination ul li span.current{
  background:var(--plum-900);
  border-color:var(--plum-900);
  color:#fff;
}

/* -----------------------------------------------------------------------------
   11  SIDEBAR WIDGETS + PRICE SLIDER INTERNALS
   The snippet's filter rail wraps WC_Widget_Price_Filter and resets the
   widget box; the slider track/handle/range below is what it depends on.
   -------------------------------------------------------------------------- */
.woocommerce .widget,
.widget.woocommerce{
  border-top:1px solid var(--line);
  padding:22px 0;
  margin:0;
}
.woocommerce .widget:last-child{border-bottom:1px solid var(--line)}
.woocommerce .widget .widget-title,
.widget.woocommerce .widget-title,
.woocommerce .widget h2{
  font-family:var(--body);
  font-size:11px;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--plum-900);
  margin-bottom:16px;
}
.woocommerce .widget .widget-title::before,
.widget.woocommerce .widget-title::before{
  content:'\2726';
  color:var(--pink-500);
  font-size:10px;
  margin-right:9px;
  vertical-align:1px;
}
.woocommerce .widget ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.woocommerce .widget ul li{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:13.5px;
  color:#4A4670;
  padding:0;
  border:none;
}
.woocommerce .widget ul li a{color:#4A4670;flex:1}
.woocommerce .widget ul li a:hover{color:var(--plum-900)}
.woocommerce .widget ul li .count{font-size:11.5px;color:var(--muted-soft);font-variant-numeric:tabular-nums}
.woocommerce .widget ul li.current-cat > a,
.woocommerce .widget ul li.chosen > a{color:var(--plum-900);font-weight:700}

/* price filter slider */
.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content{
  background:var(--lilac-200);
  border-radius:999px;
  height:4px;
  margin-bottom:1.2em;
}
.woocommerce .widget_price_filter .ui-slider .ui-slider-range{background:var(--pink-500);border-radius:999px}
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle{
  width:20px;
  height:20px;
  top:-8px;
  margin-left:-10px;
  border-radius:50%;
  background:var(--plum-900);
  border:3px solid #fff;
  box-shadow:0 4px 12px -3px rgba(38,33,92,.55);
  transition:transform .25s var(--ease);
}
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle:hover{transform:scale(1.14)}
.woocommerce .widget_price_filter .price_slider_amount{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
}
.woocommerce .widget_price_filter .price_slider_amount .price_label{
  font-size:13px;color:var(--muted);order:1;
}
.woocommerce .widget_price_filter .price_slider_amount .price_label span{
  font-family:var(--display);font-size:16px;color:var(--plum-900);
}
.woocommerce .widget_price_filter .price_slider_amount .button{
  order:2;float:none;padding:11px 20px;font-size:11px;box-shadow:none;
}

/* active filters */
.woocommerce .widget_layered_nav_filters ul{display:flex;flex-wrap:wrap;gap:9px}
.woocommerce .widget_layered_nav_filters ul li{
  background:var(--lilac-100);
  border-radius:999px;
  padding:8px 15px;
  font-size:12px;
  font-weight:600;
  color:var(--plum-900);
}
.woocommerce .widget_layered_nav_filters ul li a{color:var(--plum-900)}
.woocommerce .widget_layered_nav_filters ul li a::before{content:'\00d7';margin-right:7px;color:var(--pink-500);font-weight:700}

/* cart widget */
.woocommerce .widget_shopping_cart .total{
  border-top:1px solid var(--line);
  padding-top:14px;
  font-size:14px;
  color:var(--muted);
}
.woocommerce .widget_shopping_cart .total strong{color:var(--plum-900)}
.woocommerce .widget_shopping_cart .buttons{display:grid;gap:10px}
.woocommerce .widget_shopping_cart .buttons a{width:100%}

/* -----------------------------------------------------------------------------
   12  SINGLE PRODUCT
   -------------------------------------------------------------------------- */
.woocommerce div.product{margin-bottom:0}

.woocommerce div.product div.images{margin-bottom:28px}
.woocommerce div.product div.images img{
  border-radius:28px;
  background:linear-gradient(165deg,var(--pink-100),var(--lilac-200));
  box-shadow:none;
}
.woocommerce div.product div.images .flex-control-thumbs{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:14px;
}
.woocommerce div.product div.images .flex-control-thumbs li{width:auto;float:none;margin:0}
.woocommerce div.product div.images .flex-control-thumbs li img{
  border-radius:var(--r-media);
  border:1.5px solid transparent;
  opacity:1;
  transition:border-color .3s,transform .3s var(--ease);
}
.woocommerce div.product div.images .flex-control-thumbs li img:hover{transform:translateY(-3px)}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active{border-color:var(--plum-900)}

.woocommerce div.product .product_title{
  font-family:var(--display);
  font-size:clamp(30px,7vw,48px);
  font-weight:400;
  line-height:1.08;
  color:var(--plum-900);
  margin:10px 0 12px;
  padding:0;
}
.woocommerce div.product .summary{margin-bottom:36px}

.woocommerce div.product p.price,
.woocommerce div.product span.price{
  display:flex;
  align-items:baseline;
  gap:12px;
  flex-wrap:wrap;
  font-family:var(--display);
  font-size:clamp(28px,5vw,36px);
  font-weight:500;
  color:var(--plum-900);
  margin:0 0 6px;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del{
  font-family:var(--body);font-size:16px;font-weight:400;color:var(--muted-soft);opacity:1;
}
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins{font-weight:500;color:var(--plum-900);text-decoration:none;background:none}

.woocommerce div.product .woocommerce-product-details__short-description{
  font-size:15px;
  color:#4A4670;
  max-width:50ch;
  margin:22px 0 28px;
}
.woocommerce div.product .stock.in-stock{color:var(--ok);font-weight:600;font-size:13px}
.woocommerce div.product .stock.out-of-stock{color:var(--pink-500);font-weight:600;font-size:13px}

/* variations */
.woocommerce div.product form.cart .variations{
  border:none;
  margin-bottom:20px;
  width:100%;
}
.woocommerce div.product form.cart .variations tr{display:block;margin-bottom:14px}
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th{
  display:block;
  padding:0;
  border:none;
  background:none;
  text-align:left;
  vertical-align:top;
}
.woocommerce div.product form.cart .variations label{
  font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--plum-900);margin-bottom:9px;
}
.woocommerce div.product form.cart .variations label::before{
  content:'\2726';color:var(--pink-500);font-size:10px;margin-right:9px;vertical-align:1px;
}
.woocommerce div.product form.cart .reset_variations{
  display:inline-block;
  margin-top:9px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--plum-500);
}
.woocommerce div.product form.cart .woocommerce-variation-price{margin-bottom:16px}

/* quantity — pill, mirrors product.html .qty */
.woocommerce .quantity{
  display:inline-flex;
  align-items:center;
  background:var(--white);
  border:1.5px solid var(--line-strong);
  border-radius:999px;
  padding:4px;
}
.woocommerce .quantity .qty{
  width:56px;
  height:38px;
  padding:0;
  text-align:center;
  font-size:15px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  color:var(--ink);
  background:none;
  border:none;
  border-radius:999px;
  -moz-appearance:textfield;
}
.woocommerce .quantity .qty:focus{box-shadow:none}
.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button{opacity:1;height:34px}

.woocommerce div.product form.cart{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px;
  margin-bottom:22px;
}
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .woocommerce-variation{flex:1 1 100%}
.woocommerce div.product form.cart div.quantity{float:none;margin:0}
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart button.single_add_to_cart_button{
  flex:1 1 auto;
  min-width:190px;
  float:none;
  padding:17px 34px;
  font-size:13px;
}

.woocommerce div.product .product_meta{
  border-top:1px solid var(--line);
  padding-top:20px;
  margin-top:6px;
  font-size:12.5px;
  color:var(--muted);
  display:grid;
  gap:7px;
}
.woocommerce div.product .product_meta > span{display:block}
.woocommerce div.product .product_meta .sku_wrapper,
.woocommerce div.product .product_meta .posted_in,
.woocommerce div.product .product_meta .tagged_as{color:var(--muted)}
.woocommerce div.product .product_meta a{color:var(--plum-500)}

@media (min-width:820px){
  .woocommerce div.product div.images{float:left;width:48%;margin-bottom:0}
  .woocommerce div.product div.summary{float:right;width:48%;margin-bottom:0}
  .woocommerce div.product::after{content:'';display:table;clear:both}
}

/* -----------------------------------------------------------------------------
   13  TABS, RELATED, UPSELLS
   (Product cards inside related/upsells are .swshop- cards from the snippet;
   only the section spacing + headings live here.)
   -------------------------------------------------------------------------- */
.woocommerce div.product .woocommerce-tabs{clear:both;padding-top:clamp(40px,6vw,72px)}
.woocommerce div.product .woocommerce-tabs ul.tabs{
  display:flex;
  flex-wrap:wrap;
  gap:28px;
  padding:0;
  margin:0 0 28px;
  border-bottom:1px solid var(--line);
  list-style:none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{
  content:none;display:none;border:none;box-shadow:none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:none;
  border:none;
  border-radius:0;
  margin:0;
  padding:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display:block;
  position:relative;
  font-family:var(--display);
  font-size:18px;
  font-weight:400;
  color:var(--plum-900);
  opacity:.6;
  padding:0 0 14px;
  transition:opacity .25s,color .25s;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a::after{
  content:'';
  position:absolute;
  left:0;
  bottom:-1px;
  width:100%;
  height:1.5px;
  background:var(--pink-500);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .35s var(--ease);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{opacity:1;color:var(--plum-900)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{opacity:1;color:var(--plum-900)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover::after{transform:scaleX(1);transform-origin:left}

.woocommerce div.product .woocommerce-tabs .panel{
  font-size:14px;
  color:#4A4670;
  max-width:70ch;
  margin-bottom:0;
  padding:0;
}
.woocommerce div.product .woocommerce-tabs .panel h2{
  font-size:clamp(22px,3.4vw,30px);
  margin-bottom:14px;
}
.woocommerce div.product .woocommerce-tabs .panel p{margin-bottom:14px}
.woocommerce div.product .woocommerce-tabs .panel ul{list-style:none;display:grid;gap:9px;padding:0}
.woocommerce div.product .woocommerce-tabs .panel ul li{display:flex;gap:11px;align-items:flex-start}
.woocommerce div.product .woocommerce-tabs .panel ul li::before{content:'\2726';color:var(--pink-300);font-size:11px;line-height:1.7}

/* attributes table inside the Additional information tab */
.woocommerce table.shop_attributes{border:none;margin:0}
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td{
  border:none;
  border-bottom:1px solid var(--line);
  padding:13px 0;
  font-size:13.5px;
  font-style:normal;
  background:none;
}
.woocommerce table.shop_attributes th{
  font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:11px;color:var(--plum-900);width:38%;
}
.woocommerce table.shop_attributes td p{margin:0;padding:0;color:#4A4670}

/* reviews */
.woocommerce #reviews #comments h2{font-size:clamp(22px,3.4vw,30px);margin-bottom:22px}
.woocommerce #reviews ol.commentlist{padding:0;margin:0;display:grid;gap:16px}
.woocommerce #reviews ol.commentlist li{margin:0}
.woocommerce #reviews ol.commentlist li .comment_container{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  padding:22px 24px;
  display:flex;
  gap:16px;
}
.woocommerce #reviews ol.commentlist li img.avatar{
  position:static;
  width:44px;
  height:44px;
  border-radius:50%;
  border:none;
  padding:0;
  background:var(--lilac-200);
}
.woocommerce #reviews ol.commentlist li .comment-text{
  border:none;
  border-radius:0;
  margin:0;
  padding:0;
  flex:1;
}
.woocommerce #reviews ol.commentlist li .comment-text p.meta{font-size:13px;color:var(--muted);margin-bottom:8px}
.woocommerce #reviews ol.commentlist li .comment-text p.meta strong{color:var(--plum-900);font-weight:700}
.woocommerce #reviews ol.commentlist li .comment-text .description{font-size:13.5px;color:#4A4670}
.woocommerce #review_form_wrapper{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  padding:26px;
  margin-top:22px;
}
.woocommerce #review_form #respond .comment-reply-title{
  font-family:var(--display);font-size:22px;color:var(--plum-900);display:block;margin-bottom:16px;
}
.woocommerce p.stars a{color:var(--pink-500)}

/* related + upsells + cross-sells */
.woocommerce .related,
.woocommerce .upsells.products,
.woocommerce .cross-sells{clear:both;padding-top:clamp(46px,6vw,80px)}
.woocommerce .related > h2,
.woocommerce .upsells.products > h2,
.woocommerce .cross-sells > h2{
  font-size:clamp(26px,4.4vw,40px);
  margin-bottom:clamp(24px,4vw,40px);
}

/* -----------------------------------------------------------------------------
   14  CART
   -------------------------------------------------------------------------- */
.woocommerce table.shop_table{
  border:1px solid var(--line);
  border-radius:var(--r-card);
  border-collapse:separate;
  border-spacing:0;
  background:var(--white);
  margin:0 0 26px;
  overflow:hidden;
}
.woocommerce table.shop_table th{
  font-family:var(--body);
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--plum-900);
  background:var(--ivory);
  padding:16px 18px;
  border:none;
  border-bottom:1px solid var(--line);
  text-align:left;
}
.woocommerce table.shop_table td{
  padding:18px;
  border:none;
  border-bottom:1px solid var(--line);
  font-size:14px;
  color:#4A4670;
  vertical-align:middle;
}
.woocommerce table.shop_table tbody tr:last-child td{border-bottom:none}
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th{border-top:1px solid var(--line);font-weight:700}

.woocommerce table.cart img,
.woocommerce table.shop_table .product-thumbnail img{
  width:72px;
  border-radius:var(--r-media);
  background:linear-gradient(165deg,var(--lilac-100),var(--lilac-200));
}
.woocommerce table.cart .product-name a{font-family:var(--display);font-size:16px;color:var(--plum-900)}
.woocommerce table.cart .product-name a:hover{color:var(--pink-500)}
.woocommerce table.cart .product-price,
.woocommerce table.cart .product-subtotal{font-weight:700;color:var(--ink)}
.woocommerce table.cart td.product-remove a.remove{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:50%;
  background:var(--lilac-100);
  color:var(--plum-900) !important;
  font-size:16px;
  line-height:1;
  transition:background .25s,color .25s;
}
.woocommerce table.cart td.product-remove a.remove:hover{background:var(--pink-500);color:#fff !important}

/* coupon — dashed pink, mirrors index.html .coupon */
.woocommerce table.cart td.actions{padding:18px;background:var(--ivory)}
.woocommerce table.cart td.actions .coupon{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  background:var(--white);
  border:1px dashed var(--pink-300);
  border-radius:var(--r-field);
  padding:12px 14px;
  margin-bottom:14px;
  float:none;
}
.woocommerce table.cart td.actions .coupon label{
  margin:0;
  font-size:11px;
  letter-spacing:.18em;
  color:var(--pink-500);
  white-space:nowrap;
}
.woocommerce table.cart td.actions .coupon .input-text{
  flex:1;
  min-width:150px;
  width:auto;
  border-radius:999px;
  padding:11px 16px;
  font-size:13px;
}
.woocommerce table.cart td.actions .coupon .button{padding:12px 22px;font-size:11px;box-shadow:none}
.woocommerce table.cart td.actions > .button{float:none;width:100%}

/* cart totals */
.woocommerce .cart-collaterals{margin-top:8px}
.woocommerce .cart-collaterals .cart_totals{
  float:none;
  width:100%;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  padding:24px;
}
.woocommerce .cart-collaterals .cart_totals h2{
  font-size:24px;
  margin-bottom:18px;
}
.woocommerce .cart-collaterals .cart_totals table.shop_table{
  border:none;
  border-radius:0;
  background:none;
  margin:0;
}
.woocommerce .cart-collaterals .cart_totals table th,
.woocommerce .cart-collaterals .cart_totals table td{
  background:none;
  padding:13px 0;
  border-bottom:1px solid var(--line);
  font-size:14px;
}
.woocommerce .cart-collaterals .cart_totals table th{
  letter-spacing:.12em;font-size:11px;width:44%;
}
.woocommerce .cart-collaterals .cart_totals .order-total th,
.woocommerce .cart-collaterals .cart_totals .order-total td{
  border-bottom:none;
  padding-top:16px;
}
.woocommerce .cart-collaterals .cart_totals .order-total td strong{
  font-family:var(--display);font-size:24px;font-weight:500;color:var(--plum-900);
}
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout{padding:18px 0 0}
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button{
  display:flex;
  width:100%;
  font-size:13px;
  padding:18px 30px;
}
.woocommerce .cart-collaterals .shipping-calculator-button{
  font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--plum-500);
}
.woocommerce .cart-collaterals .cross-sells{width:100%;float:none}

.woocommerce .cart-empty,
.woocommerce .wc-empty-cart-message .cart-empty{
  font-family:var(--display);
  font-size:clamp(24px,4.4vw,34px);
  color:var(--plum-900);
  text-align:center;
  margin-bottom:16px;
}
.woocommerce .return-to-shop{text-align:center;margin-bottom:40px}

@media (min-width:900px){
  .woocommerce .cart-collaterals .cart_totals{float:right;width:44%}
  .woocommerce .cart-collaterals::after{content:'';display:table;clear:both}
  .woocommerce table.cart td.actions .coupon{float:left;margin-bottom:0}
  .woocommerce table.cart td.actions > .button{float:right;width:auto}
}

/* stacked cart rows on phones */
@media (max-width:640px){
  .woocommerce table.shop_table_responsive thead,
  .woocommerce table.shop_table_responsive tbody th{display:none}
  .woocommerce table.shop_table_responsive tr{
    display:block;
    border-bottom:1px solid var(--line);
    padding:6px 0;
  }
  .woocommerce table.shop_table_responsive tr:last-child{border-bottom:none}
  .woocommerce table.shop_table_responsive tr td{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    border:none;
    padding:9px 16px;
    text-align:right;
  }
  .woocommerce table.shop_table_responsive tr td::before{
    content:attr(data-title) ': ';
    font-size:11px;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--plum-900);
    float:none;
  }
  .woocommerce table.shop_table_responsive tr td.product-remove::before,
  .woocommerce table.shop_table_responsive tr td.product-thumbnail::before{content:none}
  .woocommerce table.shop_table_responsive tr td.actions{display:block;text-align:left}
}

/* -----------------------------------------------------------------------------
   15  CHECKOUT
   -------------------------------------------------------------------------- */
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle{margin-bottom:20px}
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  padding:24px;
  margin:0 0 26px;
}
.woocommerce form.checkout_coupon{border:1px dashed var(--pink-300)}

.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading{
  font-family:var(--display);
  font-size:clamp(22px,3.6vw,30px);
  color:var(--plum-900);
  margin:0 0 20px;
}
.woocommerce-checkout #customer_details{margin-bottom:34px}
.woocommerce form .form-row{
  display:flex;
  flex-direction:column;
  padding:0;
  margin:0 0 16px;
}
.woocommerce form .form-row-first,
.woocommerce form .form-row-last{width:100%;float:none}
@media (min-width:640px){
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last{width:48.5%}
  .woocommerce form .form-row-first{float:left}
  .woocommerce form .form-row-last{float:right}
  .woocommerce form .col2-set::after,
  .woocommerce-page form .col2-set::after{content:'';display:table;clear:both}
}
.woocommerce form .form-row.woocommerce-invalid input.input-text{border-color:var(--pink-500)}
.woocommerce form .form-row.woocommerce-validated input.input-text{border-color:rgba(46,125,82,.5)}
.woocommerce .woocommerce-error li,
.woocommerce form .form-row .required{text-decoration:none}

.woocommerce-checkout #order_review{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  padding:24px;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table{
  border:none;
  border-radius:0;
  background:none;
  margin-bottom:22px;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table td{
  background:none;
  padding:13px 0;
  border-bottom:1px solid var(--line);
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th{
  font-size:11px;letter-spacing:.18em;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-name{
  font-size:14px;color:#4A4670;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-name strong.product-quantity{
  color:var(--muted-soft);font-weight:600;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot .order-total td{
  border-bottom:none;padding-top:16px;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot .order-total td strong{
  font-family:var(--display);font-size:24px;font-weight:500;color:var(--plum-900);
}

/* payment box */
.woocommerce-checkout #payment,
.woocommerce-checkout #payment.woocommerce-checkout-payment{
  background:var(--ivory);
  border-radius:var(--r-card);
  padding:22px;
}
.woocommerce-checkout #payment ul.payment_methods{
  border:none;
  padding:0;
  margin:0 0 18px;
  list-style:none;
  display:grid;
  gap:10px;
}
.woocommerce-checkout #payment ul.payment_methods li{
  background:var(--white);
  border:1.5px solid var(--line);
  border-radius:16px;
  padding:15px 18px;
  transition:border-color .25s;
}
.woocommerce-checkout #payment ul.payment_methods li:hover{border-color:var(--pink-300)}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked){border-color:var(--plum-900)}
.woocommerce-checkout #payment ul.payment_methods li label{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-family:var(--body);
  font-size:14px;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
  color:var(--plum-900);
  margin:0;
}
.woocommerce-checkout #payment ul.payment_methods li img{max-height:26px;margin-left:10px;vertical-align:middle}
.woocommerce-checkout #payment div.payment_box{
  background:var(--lilac-100);
  border-radius:var(--r-field);
  color:#4A4670;
  font-size:13px;
  line-height:1.6;
  padding:14px 16px;
  margin:13px 0 0;
}
.woocommerce-checkout #payment div.payment_box::before{
  border-bottom-color:var(--lilac-100);
  top:-.75em;
  left:14px;
  margin:-1em 0 0;
}
.woocommerce-checkout #payment div.payment_box p:last-child{margin-bottom:0}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper{
  font-size:12.5px;color:var(--muted);margin-bottom:16px;
}
.woocommerce-checkout #payment .form-row.place-order{padding:0;margin:0}
.woocommerce-checkout #payment #place_order,
.woocommerce #payment #place_order{
  display:flex;
  width:100%;
  float:none;
  padding:19px 30px;
  font-size:13px;
  letter-spacing:.14em;
}

@media (min-width:900px){
  .woocommerce-checkout .col2-set#customer_details .col-1,
  .woocommerce-checkout .col2-set#customer_details .col-2{width:48%}
  .woocommerce-checkout #order_review,
  .woocommerce-checkout #order_review_heading{width:48%;float:right;clear:right}
  .woocommerce-checkout #customer_details{width:48%;float:left;margin-bottom:0}
  .woocommerce-checkout .col2-set#customer_details .col-1,
  .woocommerce-checkout .col2-set#customer_details .col-2{width:100%;float:none}
  .woocommerce-checkout form.checkout::after{content:'';display:table;clear:both}
}

/* -----------------------------------------------------------------------------
   16  MY ACCOUNT + ORDER RECEIVED
   -------------------------------------------------------------------------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style:none;
  margin:0 0 26px;
  padding:0;
  display:grid;
  gap:2px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a{
  display:block;
  padding:13px 16px;
  border-radius:var(--r-field);
  font-size:13.5px;
  font-weight:600;
  color:#4A4670;
  transition:background .25s,color .25s;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover{background:var(--lilac-100);color:var(--plum-900)}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a{background:var(--plum-900);color:#fff}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a:hover{background:var(--plum-700);color:#fff}
@media (min-width:820px){
  .woocommerce-account .woocommerce-MyAccount-navigation{float:left;width:24%}
  .woocommerce-account .woocommerce-MyAccount-content{float:right;width:72%}
}

.woocommerce ul.order_details{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  padding:22px;
  margin:0 0 30px;
  list-style:none;
  display:grid;
  gap:16px;
}
.woocommerce ul.order_details li{
  border:none;
  padding:0;
  margin:0;
  float:none;
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
}
.woocommerce ul.order_details li strong{
  display:block;
  font-family:var(--display);
  font-size:18px;
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
  color:var(--plum-900);
  margin-top:5px;
}
@media (min-width:640px){
  .woocommerce ul.order_details{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
}
.woocommerce .woocommerce-order p.woocommerce-notice--success,
.woocommerce .woocommerce-thankyou-order-received{
  font-family:var(--display);
  font-size:clamp(24px,4.4vw,34px);
  color:var(--plum-900);
  margin-bottom:22px;
}

/* -----------------------------------------------------------------------------
   17  BLOCKS COMPATIBILITY (optional — only if the store uses Cart/Checkout blocks)
   -------------------------------------------------------------------------- */
.wp-block-woocommerce-cart .wc-block-components-button,
.wp-block-woocommerce-checkout .wc-block-components-button,
.wc-block-components-button:not(.is-link){
  border-radius:999px;
  background:var(--plum-900);
  color:#fff;
  font-family:var(--body);
  font-size:13px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:16px 28px;
  box-shadow:var(--shadow-btn);
  transition:transform .3s var(--ease),background .3s;
}
.wc-block-components-button:not(.is-link):hover{transform:translateY(-2px);background:var(--plum-700)}
.wc-block-components-product-name{font-family:var(--display);color:var(--plum-900)}
.wc-block-components-totals-item__value,
.wc-block-formatted-money-amount{font-weight:700;color:var(--ink)}
.wc-block-components-text-input input[type=text],
.wc-block-components-text-input input[type=email],
.wc-block-components-text-input input[type=tel]{
  border:1.5px solid var(--line-strong);
  border-radius:var(--r-field);
  font-family:var(--body);
}

/* -----------------------------------------------------------------------------
   18  REDUCED MOTION
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .woocommerce *,
  .woocommerce *::before,
  .woocommerce *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .woocommerce a.button:hover,
  .woocommerce button.button:hover{transform:none}
}