/*
Theme Name: Sticky Lewds
Theme URI: https://stickylewds.com
Author: Sticky Lewds
Description: Custom WooCommerce theme for Sticky Lewds. Blush palette, glossy glass product surfaces, drip dividers. No page builder required.
Version: 1.6.1
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GPL v2 or later
Text Domain: sticky-lewds
Tags: e-commerce, custom-colors, custom-logo, custom-menu, featured-images, translation-ready
WC requires at least: 8.0
WC tested up to: 11.1
*/

/* ==========================================================================
   1. Tokens
   ========================================================================== */
:root{
  --blush:#FFE2E2;
  --blush-soft:#FFF1F1;
  --blush-tint:#FFF8F9;
  --blush-deep:#FFE9EA;
  --rose:#F0AFB4;
  --rose-ink:#C97C84;
  --ink:#333333;
  --ink-mid:#474042;
  --ink-soft:#6E6467;
  --ink-faint:#A99B9E;
  --white:#FFFFFF;

  --ok:#3E8E5A;      --ok-bg:#E6F3EA;
  --warn:#B8791F;    --warn-bg:#FBF0DC;
  --bad:#B4453F;     --bad-bg:#FBE6E5;

  --pill:999px;
  --r-lg:22px;
  --r-md:18px;
  --r-sm:14px;
  --shell:min(1440px, 92vw);

  --shadow-card:0 16px 34px rgba(190,140,145,.24);
  --shadow-soft:0 3px 10px rgba(190,140,145,.16);
  --shadow-lift:0 9px 24px rgba(190,140,145,.3);

  --ease:cubic-bezier(.2,.8,.3,1);
  --font:'Outfit',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--blush);color:var(--ink);
  font-family:var(--font);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
button{font-family:inherit}
h1,h2,h3,h4{line-height:1.15;letter-spacing:-.018em;margin:0}
h1{font-size:clamp(30px,3.6vw,42px);font-weight:700;letter-spacing:-.022em}
h2{font-size:25px;font-weight:700}
h3{font-size:17px;font-weight:700}
p{margin:0 0 15px}
:focus-visible{outline:2.5px solid var(--rose-ink);outline-offset:3px;border-radius:4px}
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);white-space:nowrap;
}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:999;
  background:var(--white);padding:12px 20px;border-radius:0 0 var(--r-sm) 0;font-weight:600;
}
.skip-link:focus{left:0}
.shell{max-width:var(--shell);margin:0 auto;padding-left:28px;padding-right:28px}

/* ==========================================================================
   3. Buttons
   ========================================================================== */
.btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit{
  display:inline-block;border:0;cursor:pointer;text-decoration:none;
  font-family:var(--font);font-size:15.5px;font-weight:600;line-height:1.2;
  color:var(--ink);border-radius:var(--pill);padding:13px 26px;
  background:linear-gradient(to bottom,#fff 0%,rgba(255,255,255,.7) 48%,#fff 100%),var(--white);
  box-shadow:inset 0 1.5px 0 #fff,inset 0 -2px 7px rgba(201,124,132,.18),0 4px 14px rgba(190,140,145,.2);
  transition:transform .18s var(--ease),box-shadow .18s ease;
}
.btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover{
  transform:translateY(-1.5px);
  box-shadow:inset 0 1.5px 0 #fff,inset 0 -2px 7px rgba(201,124,132,.22),var(--shadow-lift);
  color:var(--ink);
}
.btn:active{transform:translateY(0)}
.btn--ink,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce .single_add_to_cart_button{
  background:linear-gradient(to bottom,var(--ink-mid) 0%,var(--ink) 100%);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 5px 16px rgba(51,51,51,.3);
}
.btn--ink:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover{
  background:linear-gradient(to bottom,var(--ink-mid) 0%,var(--ink) 100%);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 10px 26px rgba(51,51,51,.36);
}
.btn--wide{width:100%;padding:16px 26px;font-size:16.5px;text-align:center}
.btn--sm{padding:9px 18px;font-size:14px}
.woocommerce a.button.loading::after,
.woocommerce button.button.loading::after{top:.55em}

/* ==========================================================================
   4. Forms
   ========================================================================== */
input[type=text],input[type=email],input[type=password],input[type=tel],
input[type=url],input[type=number],input[type=search],input[type=date],
select,textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single{
  width:100%;font-family:var(--font);font-size:15.5px;color:var(--ink);
  background:var(--blush-soft);border:1.5px solid transparent;border-radius:var(--r-sm);
  padding:13px 16px;line-height:1.4;
  transition:border-color .16s ease,background .16s ease;
}
textarea{min-height:120px;resize:vertical;line-height:1.55}
input:focus,select:focus,textarea:focus,
.woocommerce form .form-row input.input-text:focus{
  outline:none;border-color:var(--rose-ink);background:var(--white);
}
::placeholder{color:var(--ink-faint)}
label{display:block;font-size:14.5px;font-weight:600;margin-bottom:7px}
.hint{font-weight:400;color:var(--ink-soft);font-size:13.5px}
.field{margin-bottom:16px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
input[type=checkbox],input[type=radio]{
  width:17px;height:17px;accent-color:var(--rose-ink);flex:none;margin:0;
}
.select2-container--default .select2-selection--single{height:auto;padding:12px 16px}
.select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:1.4;color:var(--ink);padding:0;
}
.select2-container--default .select2-selection--single .select2-selection__arrow{top:12px;right:10px}

/* ==========================================================================
   5. Header
   ========================================================================== */
.masthead{background:var(--white);position:sticky;top:0;z-index:60}
.masthead-in{
  max-width:var(--shell);margin:0 auto;padding:16px 28px;
  display:flex;align-items:center;gap:40px;
}
.brand{display:block;flex:none}
.brand img{height:40px;width:auto}
.brand-text{font-size:26px;font-weight:700;text-decoration:none;letter-spacing:-.02em}
.nav-main{margin-left:auto}
.nav-main ul{list-style:none;display:flex;gap:34px;margin:0;padding:0;align-items:center}
.nav-main a{
  text-decoration:none;font-size:15.5px;font-weight:500;color:var(--ink);
  padding:6px 0;position:relative;display:inline-block;
}
.nav-main a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--rose-ink);
  transform:scaleX(0);transform-origin:left;transition:transform .22s ease;
}
.nav-main a:hover::after,
.nav-main .current-menu-item > a::after,
.nav-main .current_page_item > a::after{transform:scaleX(1)}
.nav-main .sub-menu{
  display:none;position:absolute;background:var(--white);border-radius:var(--r-md);
  padding:10px;box-shadow:var(--shadow-card);min-width:200px;flex-direction:column;gap:2px;z-index:70;
}
.nav-main li{position:relative}
.nav-main li:hover > .sub-menu{display:flex}
.nav-main .sub-menu a{padding:9px 14px;border-radius:10px;width:100%}
.nav-main .sub-menu a::after{display:none}
.nav-main .sub-menu a:hover{background:var(--blush-soft)}

.cart-chip{
  display:flex;align-items:center;gap:9px;padding:10px 20px;border-radius:var(--pill);
  border:1.5px solid var(--ink);font-weight:600;font-size:15px;text-decoration:none;color:var(--ink);
  flex:none;transition:background .16s ease,color .16s ease;
}
.cart-chip:hover{background:var(--ink);color:#fff}
.cart-chip:hover .cart-count{background:#fff;color:var(--ink)}
.cart-count{
  background:var(--ink);color:#fff;font-size:11.5px;font-weight:700;
  min-width:19px;height:19px;padding:0 5px;border-radius:var(--pill);
  display:grid;place-items:center;transition:background .16s ease,color .16s ease;
}
.nav-toggle{
  display:none;margin-left:auto;background:transparent;border:0;cursor:pointer;
  padding:10px;border-radius:10px;
}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:4px 0;border-radius:2px}

/* typewriter strip */
.strip{background:var(--white);padding:0 28px 26px;text-align:center}
.typeline{
  font-size:clamp(18px,2.4vw,26px);font-weight:700;letter-spacing:-.01em;
  display:inline-flex;align-items:baseline;margin:0;
}
.typeline .cycled{color:var(--rose);min-width:1ch}
.typeline .caret{
  display:inline-block;width:2px;height:1.02em;background:var(--ink);
  transform:translateY(.12em);margin:0 12px 0 5px;
  animation:blink 1.05s steps(1) infinite;
}
@keyframes blink{50%{opacity:0}}

/* ==========================================================================
   6. Drip
   ========================================================================== */
.drip{display:block;width:100%;height:72px;margin-bottom:-1px;position:relative;z-index:3}
/* A drip at the top of a white section: its solid edge continues the pink
   band above, and the drops hang down into the white. */
.how > .drip{margin:0 0 -1px;display:block}

/* ==========================================================================
   7. Page head
   ========================================================================== */
.page-head{max-width:var(--shell);margin:0 auto;padding:36px 28px 0}
.page-head p{color:var(--ink-soft);font-size:16.5px;margin:10px 0 0;max-width:58ch}
.breadcrumbs{font-size:13.5px;color:var(--ink-soft);margin-bottom:12px}
.breadcrumbs a{color:var(--rose-ink);text-decoration:none;font-weight:600}
.breadcrumbs a:hover{text-decoration:underline}

/* ==========================================================================
   8. Product surface (shared: glass plate + gloss)
   ========================================================================== */
.plate{
  position:relative;overflow:hidden;display:grid;place-items:center;
  background:radial-gradient(120% 100% at 50% 0%, var(--blush-tint) 0%, var(--blush-deep) 100%);
}
.plate img{
  -webkit-user-drag:none;user-select:none;-webkit-user-select:none;pointer-events:none;
}
.gloss{
  position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  --gx:50%;--gy:18%;--gi:0;
  background:
    radial-gradient(64% 46% at var(--gx) var(--gy),
      rgba(255,255,255,.72) 0%, rgba(255,255,255,.34) 34%,
      rgba(255,255,255,.06) 62%, rgba(255,255,255,0) 78%),
    linear-gradient(calc(118deg + (var(--gi) * 26deg)),
      rgba(255,255,255,0) 32%, rgba(255,255,255,.22) 47%,
      rgba(255,255,255,.34) 51%, rgba(255,255,255,.16) 57%, rgba(255,255,255,0) 70%),
    radial-gradient(150% 96% at 50% 104%, rgba(190,140,145,.20) 0%, rgba(255,255,255,0) 52%);
  mix-blend-mode:screen;opacity:.9;
}
.gloss::after{
  content:"";position:absolute;inset:0;border-radius:inherit;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), inset 0 -14px 26px rgba(190,140,145,.14);
}
.shield{position:absolute;inset:0;z-index:4;-webkit-touch-callout:none}

/* ==========================================================================
   9. Product cards / loops
   ========================================================================== */
ul.products{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:22px;
}
/* these are wrappers, never grids */
.related.products,
.up-sells.products,
.cross-sells.products{display:block}
ul.products li.product{
  margin:0;padding:0;width:auto;float:none;clear:none;
  list-style:none;display:flex;
}
ul.products li.product::before{display:none}
ul.products li.product > .card{width:100%}
.card{
  background:var(--white);border-radius:var(--r-md);padding:14px;
  text-decoration:none;color:var(--ink);display:flex;flex-direction:column;height:100%;
  transition:transform .2s var(--ease),box-shadow .2s ease;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.card-art{
  aspect-ratio:1/1;border-radius:13px;margin-bottom:13px;
  position:relative;overflow:hidden;display:grid;place-items:center;
  background:radial-gradient(120% 100% at 50% 0%, var(--blush-tint) 0%, var(--blush-deep) 100%);
}
.card-art .woocommerce-placeholder,
.card-art img[src*="woocommerce-placeholder"]{
  width:100%;height:100%;object-fit:contain;padding:18%;
  opacity:.22;filter:none;
}
.card-art img{
  width:100%;height:100%;object-fit:contain;padding:9px;
  filter:drop-shadow(0 7px 13px rgba(120,80,88,.24));
  -webkit-user-drag:none;user-select:none;pointer-events:none;
  transition:transform .4s var(--ease);
}
.card:hover .card-art img{transform:scale(1.06)}
.card-art::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(64% 44% at var(--gx,50%) var(--gy,16%),
      rgba(255,255,255,.60) 0%, rgba(255,255,255,.22) 38%, rgba(255,255,255,0) 72%),
    linear-gradient(118deg,rgba(255,255,255,0) 34%,rgba(255,255,255,.26) 48%,
      rgba(255,255,255,.12) 56%,rgba(255,255,255,0) 68%);
  mix-blend-mode:screen;
}
.badge{
  position:absolute;top:10px;left:10px;z-index:4;
  background:var(--rose-ink);color:#fff;font-size:11.5px;font-weight:700;
  padding:4px 11px;border-radius:var(--pill);
}
.badge--out{background:var(--ink-soft)}
.c-series{font-size:12.5px;font-weight:600;color:var(--rose-ink);margin-bottom:3px}
.c-title{font-size:15.5px;font-weight:600;line-height:1.32;margin:0 0 8px}
.c-price{margin-top:auto;display:flex;align-items:baseline;gap:8px}
.c-price .amount,.p-now{font-weight:700;font-size:16.5px;color:var(--ink)}
.c-price del{font-size:13.5px;color:var(--ink-soft)}
.c-price del .amount{font-size:13.5px;font-weight:400;color:var(--ink-soft)}
.c-price ins{text-decoration:none}

/* ==========================================================================
   10. Shop toolbar / filters
   ========================================================================== */
.rail{max-width:var(--shell);margin:0 auto;padding:26px 28px 0}
.rail-scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:12px;scrollbar-width:none}
.rail-scroll::-webkit-scrollbar{display:none}
.chip{
  flex:none;border:0;cursor:pointer;white-space:nowrap;text-decoration:none;
  background:linear-gradient(to bottom,#fff 0%,rgba(255,255,255,.72) 48%,#fff 100%),var(--white);
  color:var(--ink);border-radius:var(--pill);padding:10px 20px;font-size:14.5px;font-weight:600;
  box-shadow:inset 0 1.5px 0 #fff,inset 0 -2px 7px rgba(201,124,132,.16),var(--shadow-soft);
  transition:transform .18s var(--ease),box-shadow .18s ease,background .18s ease,color .18s ease;
}
.chip:hover{transform:translateY(-1.5px);box-shadow:inset 0 1.5px 0 #fff,0 8px 20px rgba(190,140,145,.26)}
.chip[aria-current="true"],.chip.is-active{
  background:linear-gradient(to bottom,var(--ink-mid) 0%,var(--ink) 100%);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 5px 16px rgba(51,51,51,.3);
}
.toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding:16px 0 4px;border-top:1px solid rgba(51,51,51,.12);margin-top:8px;
}
.woocommerce .woocommerce-result-count{margin:0;font-size:14.5px;color:var(--ink-soft)}
.woocommerce .woocommerce-ordering{margin:0}
.woocommerce .woocommerce-ordering select{
  width:auto;font-weight:600;background:var(--white);border:0;
  border-radius:var(--pill);padding:9px 16px;cursor:pointer;
  box-shadow:inset 0 1.5px 0 #fff,var(--shadow-soft);
}

/* ==========================================================================
   11. Pagination
   ========================================================================== */
.woocommerce nav.woocommerce-pagination{margin:36px 0 0}
.woocommerce nav.woocommerce-pagination ul{
  border:0;display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin:0;padding:0;
}
.woocommerce nav.woocommerce-pagination ul li{border:0;margin:0;overflow:visible}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  min-width:42px;height:42px;padding:0 14px;display:grid;place-items:center;
  background:var(--white);color:var(--ink);border-radius:var(--pill);
  font-size:15px;font-weight:600;text-decoration:none;
  box-shadow:inset 0 1.5px 0 #fff,var(--shadow-soft);
  transition:transform .18s ease,box-shadow .18s ease;
}
.woocommerce nav.woocommerce-pagination ul li a:hover{
  background:var(--white);transform:translateY(-1.5px);box-shadow:0 8px 20px rgba(190,140,145,.26);
}
.woocommerce nav.woocommerce-pagination ul li span.current{
  background:linear-gradient(to bottom,var(--ink-mid),var(--ink));color:#fff;
}

/* ==========================================================================
   12. Single product
   ========================================================================== */
.woocommerce div.product{display:block}
.product-panel{
  max-width:var(--shell);margin:0 auto;padding:44px 28px 76px;
  display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);
  gap:60px;align-items:start;
}
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product div.images{width:100%;margin:0;float:none}
.stage{
  border-radius:var(--r-lg);overflow:hidden;
  box-shadow:0 10px 30px rgba(190,140,145,.16);
}
.stage-art{
  aspect-ratio:1/1;position:relative;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(120% 100% at 50% 0%, var(--blush-tint) 0%, var(--blush-deep) 100%);
  perspective:900px;transform-style:preserve-3d;
  transition:transform .5s var(--ease);will-change:transform;
}
.stage-art .art{
  width:88%;height:88%;object-fit:contain;
  filter:drop-shadow(0 14px 22px rgba(120,80,88,.30)) drop-shadow(0 3px 6px rgba(120,80,88,.18));
  -webkit-user-drag:none;user-select:none;pointer-events:none;
  transform-origin:50% 50%;transition:transform .45s var(--ease);will-change:transform;
}
.watermark{
  position:absolute;bottom:18px;left:0;right:0;text-align:center;z-index:3;
  font-size:11px;letter-spacing:.16em;color:rgba(51,51,51,.24);font-weight:700;
}
.zoomtag{
  position:absolute;top:14px;right:14px;z-index:5;
  background:rgba(255,255,255,.82);backdrop-filter:blur(6px);
  border-radius:var(--pill);padding:5px 12px;
  font-size:12px;font-weight:600;color:var(--ink-soft);
  opacity:0;transition:opacity .22s ease;pointer-events:none;
}
.stage-art[data-zoomed="true"] .zoomtag{opacity:1}
.thumbs{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}
.thumb{
  width:70px;height:70px;border-radius:12px;flex:none;cursor:pointer;padding:0;overflow:hidden;
  border:2px solid transparent;position:relative;
  background:radial-gradient(120% 100% at 50% 0%, var(--blush-tint) 0%, var(--blush-deep) 100%);
  transition:border-color .18s ease;
}
.thumb[aria-current="true"],.thumb:hover{border-color:var(--rose-ink)}
.thumb img{width:100%;height:100%;object-fit:contain;padding:6px;-webkit-user-drag:none;pointer-events:none}

.woocommerce div.product .summary{margin:0;float:none;width:100%}
.eyebrow{
  display:inline-block;font-size:14px;font-weight:600;color:var(--rose-ink);
  margin-bottom:9px;text-decoration:none;
}
.eyebrow:hover{text-decoration:underline}
.woocommerce div.product .product_title{
  font-size:clamp(31px,3.7vw,43px);line-height:1.1;letter-spacing:-.022em;font-weight:700;margin:0 0 18px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:var(--ink);font-size:32px;font-weight:700;letter-spacing:-.02em;
  margin:0 0 26px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
}
.woocommerce div.product p.price del{font-size:19px;color:var(--ink-soft);font-weight:400;opacity:1}
.woocommerce div.product p.price ins{text-decoration:none}
.save-tag{
  font-size:12.5px;font-weight:700;color:#fff;background:var(--rose-ink);
  padding:4px 11px;border-radius:var(--pill);align-self:center;
}
/* Currency switchers emit a bare <select> AND their own styled widget.
   Hide the naked duplicate, style whatever is left. */
.woocommerce div.product .summary > select{display:none}
.woocommerce div.product .summary select:not(.qty){
  width:auto;min-width:180px;max-width:100%;
  background:var(--white);border:0;border-radius:var(--pill);padding:10px 16px;
  box-shadow:inset 0 1.5px 0 #fff,var(--shadow-soft);margin-bottom:20px;
}
.woocommerce div.product .summary .woocommerce-currency-switcher-form{margin-bottom:20px}
.whatyouget{background:var(--white);border-radius:var(--r-md);padding:20px 22px;margin-bottom:26px}
.wyg-title{font-weight:700;font-size:16.5px;margin-bottom:12px}
.wyg{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
.wyg div{font-size:14.5px;color:var(--ink-soft);display:flex;gap:9px}
.wyg b{color:var(--ink);font-weight:600}

.woocommerce div.product form.cart{margin:0 0 26px;display:flex;flex-direction:column;gap:12px}
.woocommerce div.product form.cart .qty-row{
  display:flex;gap:10px;align-items:center;flex-wrap:nowrap;
}
.woocommerce .quantity{
  display:flex;align-items:center;background:var(--white);
  border-radius:var(--pill);padding:3px;flex:0 0 auto;order:2;
}
.woocommerce .quantity .qty{
  width:40px;text-align:center;border:0;background:transparent;box-shadow:none;
  font-size:15.5px;font-weight:600;color:var(--ink);padding:7px 0;
  -moz-appearance:textfield;
}
.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.qty-row .qty-btn:first-child{order:1}
.qty-row .qty-btn:nth-of-type(2){order:3}
.qty-row .single_add_to_cart_button{order:4}
.woocommerce .quantity .qty:focus{outline:none}
.qty-btn{
  width:38px;height:38px;flex:0 0 38px;border:0;background:var(--white);cursor:pointer;
  font-size:19px;line-height:1;color:var(--ink);border-radius:50%;
  box-shadow:inset 0 1.5px 0 #fff,var(--shadow-soft);
  transition:background .16s ease,transform .16s ease;
}
.qty-btn:hover{background:var(--blush);transform:translateY(-1px)}
.woocommerce div.product form.cart .single_add_to_cart_button{
  flex:1 1 auto;white-space:nowrap;min-width:0;
  padding-left:20px;padding-right:20px;text-align:center;
}

/* express checkout buttons injected after the cart form */
.woocommerce div.product .wc-stripe-product-checkout-container,
.woocommerce div.product .wcpay-payment-request-wrapper,
.woocommerce div.product .gpay-card-info-container,
.woocommerce div.product #wc-stripe-payment-request-button{
  margin:0 0 26px;border-radius:var(--pill);overflow:hidden;
}
.assurance{display:grid;gap:9px;padding-top:24px;border-top:1px solid rgba(51,51,51,.14)}
.assure{display:flex;gap:11px;font-size:14.5px;color:var(--ink-soft)}
.assure span:first-child{color:var(--rose-ink);font-weight:700;flex:none}
.woocommerce div.product .product_meta{
  margin-top:22px;font-size:13.5px;color:var(--ink-soft);line-height:1.9;
  display:flex;flex-direction:column;gap:2px;
}
.woocommerce div.product .product_meta > span{display:block}
.woocommerce div.product .product_meta a{color:var(--rose-ink)}

/* below the fold */
.below{background:var(--white)}
.below-in{max-width:var(--shell);margin:0 auto;padding:64px 28px}
.cols{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:62px}
.prose p{margin-bottom:15px;max-width:62ch;color:var(--ink-soft);font-size:16px}
.prose b,.prose strong{color:var(--ink);font-weight:600}
.prose ul{color:var(--ink-soft);padding-left:20px}
.spec{
  display:flex;justify-content:space-between;gap:20px;padding:13px 0;
  border-bottom:1px solid rgba(51,51,51,.12);font-size:15.5px;
}
.spec:first-child{border-top:1px solid rgba(51,51,51,.12)}
.spec dt{color:var(--ink-soft);margin:0}
.spec dd{font-weight:600;text-align:right;margin:0}
.woocommerce div.product .woocommerce-tabs{display:none}

.related-wrap{max-width:var(--shell);margin:0 auto;padding:58px 28px 84px}
.woocommerce .related,
.woocommerce .up-sells{width:100%;float:none;clear:both}
.woocommerce .related ul.products,
.woocommerce .up-sells ul.products{grid-template-columns:repeat(4,1fr);gap:22px}
.woocommerce .related > h2,
.woocommerce .up-sells > h2{display:block;width:100%;margin-bottom:26px}
.woocommerce .related > h2,
.woocommerce .up-sells > h2{font-size:27px;margin-bottom:26px}
.sechead{
  display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  flex-wrap:wrap;margin-bottom:26px;
}
.sechead a{font-size:15px;font-weight:600;color:var(--rose-ink);text-decoration:none}
.sechead a:hover{text-decoration:underline}

/* ==========================================================================
   13. Home
   ========================================================================== */
.hero{background:var(--white);padding:52px 28px 66px}
.hero-in{
  max-width:var(--shell);margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:56px;align-items:center;
}
.hero .typeline{
  font-size:clamp(32px,4.8vw,56px);line-height:1.04;display:block;
}
.hero .typeline .row1{display:flex;align-items:baseline;min-height:1.12em}
.hero .typeline .row2{display:block}
.hero .typeline .caret{width:3px;height:.9em;transform:translateY(.06em);margin:0 0 0 7px}
.hero p{color:var(--ink-soft);font-size:17.5px;margin-top:20px;max-width:50ch}
.hero-cta{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.hero-stats{display:flex;gap:30px;margin-top:34px;flex-wrap:wrap}
.stat b{display:block;font-size:23px;font-weight:700;letter-spacing:-.02em}
.stat span{font-size:13.5px;color:var(--ink-soft)}
.hero-art{
  border-radius:24px;overflow:hidden;position:relative;aspect-ratio:1/1;
  background:radial-gradient(120% 100% at 50% 0%, var(--blush-tint) 0%, var(--blush-deep) 100%);
  display:grid;place-items:center;box-shadow:0 18px 44px rgba(190,140,145,.26);
  perspective:900px;transition:transform .5s var(--ease);
}
.hero-art img{
  width:88%;height:88%;object-fit:contain;
  filter:drop-shadow(0 16px 26px rgba(120,80,88,.3)) drop-shadow(0 3px 6px rgba(120,80,88,.18));
  -webkit-user-drag:none;user-select:none;pointer-events:none;
}
.band{max-width:var(--shell);margin:0 auto;padding:56px 28px 0}
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cat{
  background:var(--white);border-radius:16px;padding:20px 22px;text-decoration:none;color:var(--ink);
  transition:transform .18s var(--ease),box-shadow .18s ease;
}
.cat:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(190,140,145,.22)}
.cat b{display:block;font-size:17.5px;font-weight:700;letter-spacing:-.012em}
.cat span{font-size:13.5px;color:var(--rose-ink);font-weight:600}
.how{background:var(--white);margin-top:0;padding:0 0 66px}
/* the last pink band before the drip needs breathing room at its foot */
.band:last-of-type{padding-bottom:56px}
.how-in{max-width:var(--shell);margin:0 auto;padding:34px 28px 0;position:relative;z-index:2}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:22px}
.step{display:flex;gap:14px}
.step-n{
  width:34px;height:34px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:var(--blush);color:var(--rose-ink);font-weight:700;font-size:15px;
}
.step b{display:block;font-size:17px;font-weight:600;margin-bottom:4px}
.step p{font-size:14.5px;color:var(--ink-soft);line-height:1.55;margin:0}
.cta-strip{max-width:var(--shell);margin:56px auto 0;padding:0 28px}
.cta-in{
  background:var(--white);border-radius:var(--r-lg);padding:34px 38px;
  display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;
}
.cta-in p{color:var(--ink-soft);font-size:15.5px;max-width:52ch;margin:6px 0 0}

/* ==========================================================================
   14. Categories page
   ========================================================================== */
.groups{
  max-width:var(--shell);margin:0 auto;padding:30px 28px 0;
  display:grid;grid-template-columns:repeat(2,1fr);gap:22px;
}
.gcard{
  background:var(--white);border-radius:20px;padding:16px;text-decoration:none;color:var(--ink);
  display:flex;gap:18px;align-items:center;
  transition:transform .2s var(--ease),box-shadow .2s ease;
}
.gcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.gart{display:flex;flex:none}
.gart .t{
  width:74px;height:92px;border-radius:12px;overflow:hidden;position:relative;flex:none;
  background:radial-gradient(120% 100% at 50% 0%, var(--blush-tint) 0%, var(--blush-deep) 100%);
  display:grid;place-items:center;margin-left:7px;
}
.gart .t:first-child{margin-left:0}
.gart .t:nth-child(2){margin-top:12px}
.gart .t:nth-child(3){margin-top:24px}
.gart img{
  width:100%;height:100%;object-fit:contain;padding:6px;
  filter:drop-shadow(0 5px 9px rgba(120,80,88,.22));
  -webkit-user-drag:none;user-select:none;pointer-events:none;
}
.gart .t::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(118deg,rgba(255,255,255,0) 34%,rgba(255,255,255,.28) 48%,
    rgba(255,255,255,.1) 57%,rgba(255,255,255,0) 68%);
  mix-blend-mode:screen;
}
.gmeta{display:flex;flex-direction:column;gap:4px;min-width:0}
.gname{font-size:21px;font-weight:700;letter-spacing:-.015em}
.gblurb{font-size:14px;color:var(--ink-soft);line-height:1.45}
.gcount{font-size:13px;font-weight:600;color:var(--rose-ink);margin-top:5px}
.serieswrap{max-width:var(--shell);margin:0 auto;padding:52px 28px 0}
.searchrow{margin:18px 0 22px}
.searchrow input{
  max-width:420px;background:var(--white);border:0;border-radius:var(--pill);padding:13px 22px;
  box-shadow:inset 0 1.5px 0 #fff,var(--shadow-soft);
}
.serieslist{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.srow{
  background:var(--white);border-radius:var(--r-sm);padding:14px 18px;text-decoration:none;color:var(--ink);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  transition:transform .16s var(--ease),box-shadow .16s ease;
}
.srow:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(190,140,145,.2)}
.sname{font-size:15px;font-weight:600}
.scount{
  font-size:13px;font-weight:600;color:var(--rose-ink);background:var(--blush-soft);
  border-radius:var(--pill);padding:2px 10px;flex:none;
}

/* ==========================================================================
   15. Panels, cards, sidebars (contact / account / generic)
   ========================================================================== */
.wrap-2col{
  max-width:var(--shell);margin:0 auto;padding:24px 28px 0;
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:34px;align-items:stretch;
}
.panel{background:var(--white);border-radius:var(--r-lg);padding:32px 34px}
.panel h2{font-size:22px;margin-bottom:6px}
.panel .lede{color:var(--ink-soft);font-size:15px;margin-bottom:22px}
.side{display:grid;gap:18px;align-content:start;position:sticky;top:110px}
.scard{background:var(--white);border-radius:20px;padding:24px 26px}
.scard h3{margin-bottom:12px}
.scard .note{font-size:13.5px;color:var(--ink-soft);margin:11px 0 0;line-height:1.55}
.scard .note b{color:var(--ink);font-weight:600}
.linklist{list-style:none;display:grid;gap:9px;margin:12px 0 0;padding:0}
.linklist a{font-size:14.5px;font-weight:600;color:var(--rose-ink);text-decoration:none}
.linklist a:hover{text-decoration:underline}
.formula{
  display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  background:var(--blush-soft);border-radius:16px;padding:20px 16px;margin-bottom:16px;
}
.f-term{
  background:var(--white);border-radius:var(--pill);padding:9px 16px;
  font-size:14.5px;font-weight:600;white-space:nowrap;
  box-shadow:inset 0 1.5px 0 #fff,0 2px 8px rgba(190,140,145,.18);
}
.f-op{font-size:17px;font-weight:700;color:var(--rose-ink)}
.f-group{
  display:flex;align-items:center;gap:8px;
  border:1.5px solid rgba(201,124,132,.4);border-radius:var(--pill);padding:5px 8px;
}
.tabs{display:flex;gap:10px;flex-wrap:wrap;max-width:var(--shell);margin:0 auto;padding:26px 28px 0}
.drop{
  border:2px dashed rgba(201,124,132,.5);border-radius:16px;background:var(--blush-soft);
  padding:26px 20px;text-align:center;cursor:pointer;
  transition:background .16s ease,border-color .16s ease;
}
.drop:hover,.drop.over{background:var(--blush-tint);border-color:var(--rose-ink)}
.drop b{display:block;font-size:15.5px;margin-bottom:4px}
.drop span{font-size:13.5px;color:var(--ink-soft)}
.filelist{margin-top:12px;display:grid;gap:8px}
.fileitem{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--blush-soft);border-radius:12px;padding:10px 14px;font-size:14px;
}
.fileitem button{border:0;background:transparent;cursor:pointer;color:var(--rose-ink);font-weight:600;font-size:13.5px}
.check{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;color:var(--ink-soft);margin:16px 0}
.perks{list-style:none;display:grid;gap:10px;margin:4px 0 0;padding:0}
.perks li{display:flex;gap:11px;font-size:14.5px;color:var(--ink-soft)}
.perks li i{color:var(--rose-ink);font-weight:700;flex:none;font-style:normal}
.rowbtn{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:6px}
.small-link{font-size:14px;color:var(--rose-ink);text-decoration:none;font-weight:600}
.small-link:hover{text-decoration:underline}

/* WooCommerce shortcode pages: cart, checkout, my account. These bring
   their own layout, so they get the shell and nothing else. */
.wc-page{
  max-width:var(--shell);margin:0 auto;padding:26px 28px 0;
}
.wc-page > .woocommerce{width:100%}

/* ==========================================================================
   16. My Account
   ========================================================================== */
.woocommerce-account .woocommerce{width:100%;margin:0;padding:0}
.woocommerce-account .woocommerce-MyAccount-navigation{
  float:none;width:238px;background:var(--white);border-radius:20px;padding:12px;
  position:sticky;top:110px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.woocommerce-account .woocommerce-MyAccount-navigation a{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 16px;border-radius:13px;font-size:15px;font-weight:600;
  color:var(--ink);text-decoration:none;transition:background .16s ease,color .16s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover{background:var(--blush-soft)}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
  background:linear-gradient(to bottom,var(--ink-mid),var(--ink));color:#fff;
}
.woocommerce-account .woocommerce-MyAccount-content{
  float:none;width:auto;display:grid;gap:18px;
}
.acct-grid{
  display:grid;grid-template-columns:238px minmax(0,1fr);
  gap:26px;align-items:start;width:100%;
}
.woocommerce-account .woocommerce-MyAccount-content{min-width:0}
.card-block{background:var(--white);border-radius:20px;padding:26px 28px}
.card-block h2{font-size:20px;margin-bottom:4px}
.card-block .sub{color:var(--ink-soft);font-size:14.5px;margin-bottom:18px}
.cardhead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.cardhead h2{margin-bottom:0}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tile{background:var(--blush-soft);border-radius:16px;padding:18px 20px}
.tile b{display:block;font-size:25px;font-weight:700;letter-spacing:-.02em}
.tile span{font-size:13.5px;color:var(--ink-soft)}
.orders{display:grid;gap:12px}
.order-row{
  background:var(--blush-soft);border-radius:16px;padding:16px 18px;
  display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;
  text-decoration:none;color:var(--ink);
  transition:background .16s ease,transform .16s ease;
}
.order-row:hover{background:var(--blush-tint);transform:translateY(-1px)}
.mini{display:flex}
.mini .m{
  width:52px;height:52px;border-radius:11px;background:var(--white);flex:none;
  display:grid;place-items:center;overflow:hidden;margin-left:-12px;
  box-shadow:0 2px 8px rgba(190,140,145,.22);
}
.mini .m:first-child{margin-left:0}
.mini img{width:100%;height:100%;object-fit:contain;padding:4px;-webkit-user-drag:none;pointer-events:none}
.ometa b{display:block;font-size:15.5px;font-weight:600}
.ometa span{font-size:13.5px;color:var(--ink-soft)}
.oright{text-align:right;display:grid;gap:6px;justify-items:end}
.otot{font-weight:700;font-size:16px}
.pill{font-size:12.5px;font-weight:700;border-radius:var(--pill);padding:4px 12px;white-space:nowrap}
.pill--ok{background:var(--ok-bg);color:var(--ok)}
.pill--warn{background:var(--warn-bg);color:var(--warn)}
.pill--neutral{background:var(--blush);color:var(--rose-ink)}
.pill--bad{background:var(--bad-bg);color:var(--bad)}

.timeline{display:grid;margin-top:4px}
.tstep{display:grid;grid-template-columns:auto 1fr;gap:14px;padding-bottom:20px;position:relative}
.tstep:last-child{padding-bottom:0}
.tstep::before{content:"";position:absolute;left:12px;top:26px;bottom:0;width:2px;background:rgba(51,51,51,.12)}
.tstep:last-child::before{display:none}
.tdot{width:26px;height:26px;border-radius:50%;background:var(--blush-soft);border:2px solid rgba(51,51,51,.14);z-index:1}
.tstep.done .tdot{background:var(--ok);border-color:var(--ok);display:grid;place-items:center;color:#fff;font-size:13px;font-weight:700}
.tstep.now .tdot{background:var(--white);border-color:var(--rose-ink);box-shadow:0 0 0 4px rgba(201,124,132,.16)}
.tstep b{display:block;font-size:15.5px;font-weight:600}
.tstep span{font-size:13.5px;color:var(--ink-soft)}
.tstep.pending b,.tstep.pending span{color:var(--ink-faint)}

.lines{display:grid;gap:12px}
.line{
  display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;
  padding-bottom:12px;border-bottom:1px solid rgba(51,51,51,.1);
}
.line:last-child{border-bottom:0;padding-bottom:0}
.lart{width:58px;height:58px;border-radius:12px;background:var(--blush-soft);display:grid;place-items:center;overflow:hidden;flex:none}
.lart img{width:100%;height:100%;object-fit:contain;padding:5px;-webkit-user-drag:none;pointer-events:none}
.line b{display:block;font-size:15px;font-weight:600}
.line span{font-size:13.5px;color:var(--ink-soft)}
.addr-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.abox{background:var(--blush-soft);border-radius:16px;padding:20px 22px}
.abox h3{font-size:15px;margin-bottom:8px}
.abox address{font-size:14.5px;color:var(--ink-soft);line-height:1.6;font-style:normal}
.empty-state{text-align:center;padding:34px 16px;color:var(--ink-soft)}
.empty-state b{display:block;font-size:17px;color:var(--ink);margin-bottom:6px}

/* ==========================================================================
   17. Cart & checkout
   ========================================================================== */
.woocommerce table.shop_table{
  border:0;background:var(--white);border-radius:20px;padding:10px 18px;
  border-collapse:separate;border-spacing:0;
}
.woocommerce table.shop_table th{
  font-size:13.5px;font-weight:700;color:var(--ink-soft);
  border:0;padding:16px 12px;text-transform:none;
}
.woocommerce table.shop_table td{border:0;border-top:1px solid rgba(51,51,51,.1);padding:16px 12px}
.woocommerce table.shop_table tbody tr:first-child td{border-top:0}
.woocommerce table.cart img{width:60px;border-radius:12px;background:var(--blush-soft)}

/* Cart quantity: on a white table the transparent single-product style
   disappears, so give it a visible pill here. */
.woocommerce table.cart .quantity{
  display:inline-flex;background:var(--blush-soft);border-radius:var(--pill);
  padding:3px;border:1.5px solid rgba(51,51,51,.12);
}
.woocommerce table.cart .quantity .qty{
  width:52px;background:transparent;border:0;text-align:center;
  font-size:15.5px;font-weight:600;color:var(--ink);padding:8px 0;
}
.woocommerce table.cart .quantity .qty:focus{outline:none}
.woocommerce table.cart td.product-quantity{white-space:nowrap}

/* Remove button: clearer target */
.woocommerce table.cart a.remove{
  width:30px;height:30px;font-size:18px;
  background:var(--blush-soft);
}
.woocommerce a.remove{
  color:var(--rose-ink)!important;font-weight:700;line-height:1;
  width:24px;height:24px;display:grid;place-items:center;border-radius:50%;
}
.woocommerce a.remove:hover{background:var(--rose-ink);color:#fff!important}
.woocommerce .cart-collaterals,
.woocommerce-cart .cart-collaterals .cart_totals{width:100%;float:none}
.woocommerce-cart .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce .woocommerce-checkout-review-order{
  background:var(--white);border-radius:20px;padding:26px 28px;
}
.woocommerce-cart .cart_totals h2,
.woocommerce-checkout h3{font-size:20px;margin-bottom:14px}
.woocommerce-checkout .col2-set{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2{width:auto;float:none}
.woocommerce-checkout #customer_details{
  background:var(--white);border-radius:20px;padding:28px 30px;margin-bottom:22px;
}
.woocommerce .woocommerce-checkout-payment,
.woocommerce #payment{background:transparent}
.woocommerce #payment ul.payment_methods{border:0;padding:0 0 12px}
.woocommerce #payment div.form-row{padding:12px 0 0}
.woocommerce-checkout .checkout-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:26px;align-items:start}
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce{width:100%}
.woocommerce-cart table.shop_table{width:100%}
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error{
  background:var(--white);border:0;border-radius:16px;padding:16px 20px 16px 22px;
  border-top:0;color:var(--ink);box-shadow:var(--shadow-soft);
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.woocommerce .woocommerce-message{border-left:4px solid var(--ok)}
.woocommerce .woocommerce-info{border-left:4px solid var(--rose-ink)}
.woocommerce .woocommerce-error{border-left:4px solid var(--bad);list-style:none}
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-error::before{display:none}
.woocommerce .woocommerce-message .button{margin-left:auto}

/* ==========================================================================
   18. Footer
   ========================================================================== */
.foot{background:var(--ink);color:#EDE4E5;padding:54px 28px 34px;margin-top:70px}
.foot-in{max-width:var(--shell);margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:44px}
.foot-logo{height:36px;width:auto;filter:brightness(0) invert(1)}
.foot p{font-size:14.5px;color:#B3A6A8;margin-top:14px;max-width:34ch;line-height:1.65}
.foot h3{font-size:14px;font-weight:700;margin-bottom:14px;color:#fff}
.foot ul{list-style:none;display:grid;gap:9px;margin:0;padding:0}
.foot ul a{font-size:14.5px;color:#B3A6A8;text-decoration:none}
.foot ul a:hover{color:#fff}
.foot-base{
  max-width:var(--shell);margin:38px auto 0;padding-top:22px;
  border-top:1px solid rgba(255,255,255,.14);
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
  font-size:13px;color:#8C7F81;
}

/* ==========================================================================
   19. Responsive
   ========================================================================== */
@media (max-width:1024px){
  .products,ul.products{grid-template-columns:repeat(3,1fr)}
  .serieslist{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:920px){
  .product-panel{grid-template-columns:1fr;gap:34px;padding:30px 22px 56px}
  .cols{grid-template-columns:1fr;gap:38px}
  .hero-in{grid-template-columns:1fr;gap:34px}
  .hero{padding:34px 20px 44px}
  .groups{grid-template-columns:1fr}
  .wrap-2col{grid-template-columns:1fr;gap:22px;align-items:start}
  .side{position:static}
  .acct-grid{grid-template-columns:1fr;gap:16px}
  .woocommerce-account .woocommerce-MyAccount-navigation{width:auto;position:static}
  .woocommerce-account .woocommerce-MyAccount-navigation ul{display:flex;overflow-x:auto;gap:6px}
  .woocommerce-account .woocommerce-MyAccount-navigation a{white-space:nowrap}
  .woocommerce-checkout .checkout-layout,
  .woocommerce-checkout .col2-set{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr;gap:18px}
  .cats{grid-template-columns:repeat(2,1fr)}
  .tiles{grid-template-columns:1fr}
  .addr-grid,.two,.wyg{grid-template-columns:1fr}
}
@media (max-width:760px){
  .products,ul.products{grid-template-columns:repeat(2,1fr);gap:16px}
  .serieslist{grid-template-columns:repeat(2,1fr)}
  .nav-main{
    display:none;position:absolute;top:100%;left:0;right:0;background:var(--white);
    padding:14px 20px 20px;box-shadow:0 14px 26px rgba(190,140,145,.2);
  }
  .nav-main.is-open{display:block}
  .nav-main ul{flex-direction:column;gap:4px;align-items:stretch}
  .nav-main a{padding:11px 0}
  .nav-toggle{display:block;order:3}
  .masthead-in{padding:13px 20px;gap:14px;position:relative;flex-wrap:wrap}
  .brand img{height:32px}
  .cart-chip{order:2;margin-left:auto;padding:9px 16px;font-size:14px}
  .shell,.page-head,.band,.rail,.groups,.serieswrap,.wrap-2col,.tabs,
  .below-in,.related-wrap,.how-in,.cta-strip,.woocommerce-account .woocommerce{
    padding-left:20px;padding-right:20px;
  }
  .panel,.card-block,.scard{padding:24px 22px}
  .foot-in{grid-template-columns:1fr;gap:30px}
  .drip{height:48px}
  .order-row{grid-template-columns:1fr auto;gap:12px}
  .mini{display:none}
  .cta-in{padding:26px 22px}
  .thumb{width:60px;height:60px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
}

/* WooCommerce resets we always want */
.woocommerce .woocommerce-breadcrumb{display:none}
.woocommerce ul.products li.product .woocommerce-loop-product__title{padding:0}
.woocommerce span.onsale{display:none}
.woocommerce .products .star-rating,
.woocommerce .star-rating{color:var(--rose-ink)}


/* ==========================================================================
   20. Single-product layout guards
   Belt and braces: these win over any leftover cached rules that put the
   grid on div.product instead of the panel.
   ========================================================================== */
.woocommerce div.product,
.woocommerce-page div.product{
  display:block !important;
  grid-template-columns:none !important;
}
.woocommerce div.product .product-panel{
  display:grid !important;
  grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);
  gap:60px;
  align-items:start;
}
.woocommerce div.product .below,
.woocommerce div.product .related-wrap{
  grid-column:auto;
  width:100%;
}
.woocommerce div.product .related.products,
.woocommerce div.product .up-sells.products{
  display:block !important;grid-template-columns:none !important;width:100%;
}
.woocommerce div.product ul.products{
  display:grid !important;grid-template-columns:repeat(4,1fr) !important;gap:22px;
}
@media (max-width:1024px){
  .woocommerce div.product ul.products{grid-template-columns:repeat(3,1fr) !important}
}
@media (max-width:760px){
  .woocommerce div.product ul.products{grid-template-columns:repeat(2,1fr) !important}
}
@media (max-width:920px){
  .woocommerce div.product .product-panel{
    grid-template-columns:1fr !important;
    gap:34px;
  }
}


/* ==========================================================================
   21. Loop layout guards
   WooCommerce's own layout stylesheet floats products and gives them
   percentage widths. These rules make sure the grid always wins, whatever
   order the stylesheets end up in.
   ========================================================================== */
.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:22px !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after{display:none !important}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  float:none !important;
  clear:none !important;
  width:auto !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  list-style:none !important;
}
.woocommerce ul.products li.product > .card,
.woocommerce-page ul.products li.product > .card{
  width:100% !important;
  min-width:0 !important;
}
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last{clear:none !important}

@media (max-width:1024px){
  .woocommerce ul.products,
  .woocommerce-page ul.products{grid-template-columns:repeat(3,1fr) !important}
}
@media (max-width:760px){
  .woocommerce ul.products,
  .woocommerce-page ul.products{
    grid-template-columns:repeat(2,1fr) !important;
    gap:16px !important;
  }
}


/* ==========================================================================
   22. Cart and checkout polish
   ========================================================================== */

/* Proceed to checkout: normal height, not a giant slab */
.woocommerce .wc-proceed-to-checkout{padding:18px 0 0}
.woocommerce .wc-proceed-to-checkout a.checkout-button{
  display:block;width:100%;text-align:center;
  font-size:16.5px !important;padding:16px 26px !important;
  line-height:1.2;margin:0;border-radius:var(--pill);
}

/* Cart totals: the inner table must not overflow its white panel */
.woocommerce-cart .cart_totals{box-sizing:border-box;overflow:hidden}
.woocommerce-cart .cart_totals table.shop_table{
  width:100% !important;padding:0 !important;background:transparent !important;
  border-radius:0 !important;box-shadow:none !important;table-layout:auto;
}
.woocommerce-cart .cart_totals table.shop_table th{width:30%;padding-left:0}
.woocommerce-cart .cart_totals table.shop_table td{padding-right:0}

/* Shipping calculator: tidy fields */
.woocommerce .shipping-calculator-form{margin-top:12px;display:grid;gap:10px;max-width:360px}
.woocommerce .shipping-calculator-form p{margin:0}
.woocommerce .shipping-calculator-form .button{justify-self:start}
.woocommerce .shipping-calculator-button{color:var(--rose-ink);font-weight:600;text-decoration:none}

/* Coupon row on the cart */
.woocommerce-cart table.cart td.actions .coupon{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.woocommerce-cart table.cart td.actions .coupon .input-text{
  width:200px;min-width:0;padding:11px 16px;border-radius:var(--pill);
}

/* Checkout layout */
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:26px;align-items:start}
.woocommerce-checkout form.checkout #customer_details{grid-column:1}
.woocommerce-checkout form.checkout #order_review_heading{grid-column:2;grid-row:1;margin:0 0 -12px;font-size:20px}
.woocommerce-checkout form.checkout #order_review{grid-column:2;grid-row:1;margin-top:34px}
.woocommerce-checkout .col2-set{display:block}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2{width:100%;float:none}
.woocommerce-checkout .col2-set .col-2{margin-top:22px}
.woocommerce form .form-row{margin:0 0 14px;padding:0}
.woocommerce form .form-row label{font-size:14px;font-weight:600;margin-bottom:6px}
.woocommerce form .form-row-first,
.woocommerce form .form-row-last{width:calc(50% - 7px)}
.woocommerce form .form-row-first{float:left}
.woocommerce form .form-row-last{float:right}
.woocommerce form .form-row-wide{clear:both}
.woocommerce form .form-row .required{color:var(--rose-ink);text-decoration:none}
.woocommerce-checkout #payment ul.payment_methods li{list-style:none;padding:10px 0}
.woocommerce-checkout #payment ul.payment_methods li img{display:inline-block;max-height:26px;width:auto;vertical-align:middle;margin:0 4px}
.woocommerce-checkout #payment div.payment_box{
  background:var(--blush-soft);border-radius:var(--r-sm);color:var(--ink-soft);font-size:14px;
}
.woocommerce-checkout #payment div.payment_box::before{display:none}
.woocommerce-checkout #place_order{float:none;width:100%;padding:16px 26px}

/* Dropdowns: native selects and WooCommerce's selectWoo replacement */
.woocommerce form .form-row select,
.woocommerce .shipping-calculator-form select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236E6467' stroke-width='1.6' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;padding-right:40px;
}
.select2-container{width:100% !important}
.select2-container--default .select2-selection--single{
  height:auto;min-height:48px;display:flex;align-items:center;
  background:var(--blush-soft);border:1.5px solid transparent;border-radius:var(--r-sm);
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single{
  border-color:var(--rose-ink);background:var(--white);
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
  padding:0 40px 0 16px;line-height:1.4;color:var(--ink);
}
.select2-container--default .select2-selection--single .select2-selection__arrow{
  height:100%;top:0;right:12px;
}
.select2-dropdown{
  border:0;border-radius:var(--r-sm);overflow:hidden;
  box-shadow:0 14px 30px rgba(190,140,145,.26);
}
.select2-search--dropdown .select2-search__field{
  border-radius:10px;border:1.5px solid rgba(51,51,51,.12);padding:9px 12px;
}
.select2-results__option{padding:9px 14px;font-size:14.5px}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected]{
  background:var(--blush);color:var(--ink);
}

@media (max-width:920px){
  .woocommerce-checkout form.checkout{grid-template-columns:1fr}
  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review{grid-column:1;grid-row:auto;margin-top:0}
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last{width:100%;float:none}
}


/* ==========================================================================
   23. Policies hub
   ========================================================================== */
.legal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.legal-card{
  background:var(--white);border-radius:var(--r-md);padding:22px 24px;
  text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;gap:10px;justify-content:space-between;min-height:118px;
  transition:transform .18s var(--ease),box-shadow .18s ease;
}
.legal-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(190,140,145,.22)}
.legal-card b{font-size:17px;font-weight:700;line-height:1.3}
.legal-card span{font-size:14px;font-weight:600;color:var(--rose-ink)}
@media (max-width:920px){.legal-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.legal-grid{grid-template-columns:1fr}}


/* ==========================================================================
   24. Age gate
   ========================================================================== */
.age-gate{
  position:fixed;inset:0;z-index:10000;
  display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(255,226,226,.55);
  backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);
}
html.sl-age-ok .age-gate{display:none}
html:not(.sl-age-ok) body{overflow:hidden}
.age-card{
  background:var(--white);border-radius:26px;padding:40px 38px 30px;
  max-width:460px;width:100%;text-align:center;
  box-shadow:0 26px 60px rgba(190,140,145,.35);
  animation:age-in .35s var(--ease) both;
}
@keyframes age-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.age-logo{height:46px;width:auto;margin:0 auto 22px}
.age-card h2{font-size:26px;margin-bottom:10px}
.age-card p{color:var(--ink-soft);font-size:15.5px;margin:0 0 24px}
.age-actions{display:flex;flex-direction:column;gap:10px}
.age-actions .btn{width:100%;padding:15px 26px;font-size:16px;text-align:center}
.age-card small{display:block;margin-top:18px;font-size:12.5px;color:var(--ink-faint)}
.age-gate.is-leaving{opacity:0;transition:opacity .25s ease}
@media (prefers-reduced-motion:reduce){.age-card{animation:none}}


/* ==========================================================================
   25. Currency switcher: hide the plugin's raw duplicate select
   ========================================================================== */
.woocommerce div.product .summary select.woocommerce-currency-switcher,
.woocommerce div.product .summary select.woocs_flag_view_item,
.woocommerce div.product .summary > select,
body select.woocommerce-currency-switcher{display:none !important}
.woocommerce div.product .summary .woocommerce-currency-switcher-form{margin-bottom:20px}

/* ==========================================================================
   26. Shop search
   ========================================================================== */
.shop-search{display:flex;gap:9px;align-items:center;flex:1 1 260px;max-width:420px}
.shop-search input[type=search]{
  flex:1;min-width:0;background:var(--white);border:0;border-radius:var(--pill);
  padding:11px 18px;font-size:14.5px;
  box-shadow:inset 0 1.5px 0 #fff,var(--shadow-soft);
}
.shop-search input[type=search]:focus{outline:2.5px solid var(--rose-ink);outline-offset:2px}
.shop-search .btn{flex:none}
.toolbar{gap:14px}
@media (max-width:760px){
  .shop-search{flex:1 1 100%;max-width:none;order:-1}
}


/* ==========================================================================
   27. Tag chips
   ========================================================================== */
.tagwrap{margin-top:30px}
.tagwrap h2{font-size:20px;margin-bottom:14px}
.tagchips{display:flex;flex-wrap:wrap;gap:8px;max-height:84px;overflow:hidden;position:relative}
.tagchips.is-open{max-height:none}
.tagchip{
  display:inline-block;text-decoration:none;border:0;cursor:pointer;font-family:var(--font);
  background:var(--blush-soft);color:var(--ink-soft);
  border-radius:var(--pill);padding:7px 14px;font-size:13.5px;font-weight:600;
  transition:background .16s ease,color .16s ease;
}
.tagchip:hover{background:var(--blush);color:var(--ink)}
.tagchip--more{background:var(--rose-ink);color:#fff}
.tagchip--more:hover{background:var(--rose-ink);color:#fff;opacity:.9}

/* the product column no longer stretches to match a long right column */
.product-panel{align-items:start}
.woocommerce div.product .product_meta{margin-top:20px}
