:root{
  --ws2-ivory:#f4f0e8;
  --ws2-paper:#fbfaf6;
  --ws2-charcoal:#171714;
  --ws2-burgundy:#6f2338;
  --ws2-olive:#69705a;
  --ws2-gold:#b38a52;
  --ws2-rule:#d8d0c2;
  --ws2-serif:Georgia,"Times New Roman","Cormorant Garamond",serif;
  --ws2-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --ws2-max:1440px;
  --ws2-pad:clamp(20px,4vw,72px);
  --ws2-line:1px solid var(--ws2-rule);
  --ws2-line-strong:1px solid var(--ws2-charcoal);
}

*,*::before,*::after{box-sizing:border-box;min-width:0;}
html,body{overflow-x:clip;max-width:100%;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--ws2-paper);
  color:var(--ws2-charcoal);
  font-family:var(--ws2-sans);
  font-size:16px;
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--ws2-burgundy);
  outline-offset:3px;
}
h1,h2,h3,h4,h5,h6{
  font-family:var(--ws2-serif);
  font-weight:400;
  letter-spacing:-0.01em;
  line-height:1.15;
  color:var(--ws2-charcoal);
  margin:0 0 0.6em;
}
h1{font-size:clamp(2rem,4.4vw,3.4rem);}
h2{font-size:clamp(1.6rem,3vw,2.4rem);}
h3{font-size:clamp(1.2rem,2vw,1.6rem);}
p{margin:0 0 1em;}
hr{border:0;border-top:var(--ws2-line);margin:2rem 0;}
input,select,textarea,button{font-family:inherit;font-size:inherit;color:inherit;}
::selection{background:var(--ws2-burgundy);color:var(--ws2-ivory);}

.wrap,
.site-header .wrap,
.site-footer .wrap,
.header-inner.wrap{
  width:100%;
  max-width:var(--ws2-max);
  margin:0 auto;
  padding-left:var(--ws2-pad);
  padding-right:var(--ws2-pad);
}

/* ============ ANNOUNCEMENT ============ */
.announcement{
  background:var(--ws2-charcoal);
  color:var(--ws2-ivory);
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  text-align:center;
  padding:10px 16px;
  font-weight:400;
}
.announcement a{color:var(--ws2-ivory);border-bottom:1px solid var(--ws2-gold);padding-bottom:1px;}

/* ============ HEADER ============ */
.site-header{
  background:var(--ws2-paper);
  border-bottom:var(--ws2-line);
  position:relative;
  z-index:50;
}
.site-header .header-inner{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:clamp(16px,3vw,48px);
  padding-top:20px;
  padding-bottom:20px;
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--ws2-serif);
  font-size:clamp(1.1rem,1.6vw,1.4rem);
  letter-spacing:0.04em;
  color:var(--ws2-charcoal);
  white-space:nowrap;
}
.brand-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border:1px solid var(--ws2-charcoal);
  color:var(--ws2-burgundy);
  font-family:var(--ws2-serif);
  font-size:16px;
  border-radius:0;
  flex:0 0 auto;
}
.brand-name{
  font-weight:400;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-size:0.82em;
}
.primary-nav{
  justify-self:center;
}
.primary-nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:clamp(14px,2vw,32px);
}
.primary-nav a{
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ws2-charcoal);
  padding:6px 0;
  display:inline-block;
  border-bottom:1px solid transparent;
  transition:border-color .2s ease,color .2s ease;
}
.primary-nav a:hover,
.primary-nav a:focus-visible{
  border-bottom-color:var(--ws2-burgundy);
  color:var(--ws2-burgundy);
}
.primary-nav .current-menu-item > a,
.primary-nav .current_page_item > a{
  border-bottom-color:var(--ws2-charcoal);
}
.header-actions{
  display:inline-flex;
  align-items:center;
  gap:clamp(10px,1.4vw,20px);
}
.header-actions a,
.header-actions button{
  background:none;
  border:0;
  padding:6px 0;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  cursor:pointer;
  color:var(--ws2-charcoal);
  border-bottom:1px solid transparent;
}
.header-actions a:hover,
.header-actions button:hover,
.header-actions a:focus-visible,
.header-actions button:focus-visible{
  border-bottom-color:var(--ws2-burgundy);
  color:var(--ws2-burgundy);
}
.cart-button{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.cart-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  padding:0 6px;
  border:1px solid var(--ws2-charcoal);
  font-size:11px;
  line-height:1;
  letter-spacing:0;
  border-radius:999px;
  background:var(--ws2-ivory);
}
.menu-toggle{
  display:none;
  background:none;
  border:0;
  padding:8px 4px;
  cursor:pointer;
  width:32px;
  height:32px;
  position:relative;
}
.menu-toggle span,
.menu-toggle::before,
.menu-toggle::after{
  display:block;
  height:1px;
  background:var(--ws2-charcoal);
  width:22px;
  position:absolute;
  left:5px;
  transition:transform .25s ease,opacity .2s ease;
}
.menu-toggle::before{position:absolute;top:10px;content:"";}
.menu-toggle::after{position:absolute;top:20px;content:"";}
.menu-toggle span{top:15px;}
.menu-toggle[aria-expanded="true"]::before{transform:translateY(5px) rotate(45deg);}
.menu-toggle[aria-expanded="true"]::after{transform:translateY(-5px) rotate(-45deg);}
.menu-toggle[aria-expanded="true"] span{opacity:0;}
.header-search{
  border-left:var(--ws2-line);
  padding-left:clamp(10px,1.4vw,20px);
}

/* ============ FOOTER ============ */
.site-footer{
  background:var(--ws2-ivory);
  color:var(--ws2-charcoal);
  border-top:var(--ws2-line);
  margin-top:clamp(56px,8vw,120px);
  font-size:14px;
}
.footer-top{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:clamp(28px,5vw,80px);
  padding-top:clamp(44px,6vw,80px);
  padding-bottom:clamp(36px,5vw,64px);
}
.footer-lead{
  font-family:var(--ws2-serif);
  font-size:clamp(1.15rem,1.8vw,1.5rem);
  line-height:1.4;
  max-width:38ch;
  color:var(--ws2-charcoal);
}
.footer-links ul{
  list-style:none;
  margin:0;
  padding:0;
}
.footer-links li{margin-bottom:12px;}
.footer-links a{
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  border-bottom:1px solid transparent;
}
.footer-links a:hover,
.footer-links a:focus-visible{
  border-bottom-color:var(--ws2-burgundy);
  color:var(--ws2-burgundy);
}
.footer-bottom{
  display:flex;
  flex-wrap:wrap;
  gap:16px 32px;
  justify-content:space-between;
  align-items:center;
  padding-top:24px;
  padding-bottom:32px;
  border-top:var(--ws2-line);
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ws2-olive);
}
.footer-brand{
  font-family:var(--ws2-serif);
  letter-spacing:0.06em;
  color:var(--ws2-charcoal);
}

/* ============ BUTTONS ============ */
.ws2-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 28px;
  font-family:var(--ws2-sans);
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  border-radius:0;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
  line-height:1;
  text-align:center;
}
.ws2-button.primary{
  background:var(--ws2-charcoal);
  color:var(--ws2-ivory);
  border:1px solid var(--ws2-charcoal);
}
.ws2-button.primary:hover,
.ws2-button.primary:focus-visible{
  background:var(--ws2-burgundy);
  border-color:var(--ws2-burgundy);
  color:var(--ws2-ivory);
}
.ws2-button.ghost{
  background:transparent;
  color:var(--ws2-charcoal);
  border:1px solid var(--ws2-charcoal);
}
.ws2-button.ghost:hover,
.ws2-button.ghost:focus-visible{
  background:var(--ws2-charcoal);
  color:var(--ws2-ivory);
}
button,input[type="submit"],.button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{
  border-radius:0;
}

/* ============ HOMEPAGE ============ */
body.home .ws-home{
  width:100%;
}
.ws2-section__title{
  font-family:var(--ws2-serif);
  font-size:clamp(1.5rem,2.6vw,2.2rem);
  font-weight:400;
  letter-spacing:-0.01em;
  margin:0 0 0.4em;
}
.ws2-section__title + .ws2-section__intro,
.ws2-section__intro{
  font-size:14px;
  letter-spacing:0.02em;
  color:var(--ws2-olive);
  max-width:52ch;
  margin:0 0 32px;
}

/* Hero */
.ws2-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:clamp(28px,5vw,80px);
  align-items:center;
  padding:clamp(48px,7vw,110px) var(--ws2-pad) clamp(40px,6vw,90px);
  max-width:var(--ws2-max);
  margin:0 auto;
}
.ws2-hero .copy{max-width:44ch;}
.ws2-hero .copy h1{
  font-size:clamp(2rem,4.6vw,3.6rem);
  line-height:1.08;
  margin-bottom:0.5em;
}
.ws2-hero .copy p{
  font-size:clamp(15px,1.2vw,17px);
  color:var(--ws2-charcoal);
  max-width:46ch;
  margin-bottom:1.4em;
}
.ws2-hero .copy::before{
  content:"";
  display:block;
  width:48px;
  height:1px;
  background:var(--ws2-gold);
  margin-bottom:28px;
}
.ws2-hero .actions,
.ws2-custom .actions,
.ws2-journal .actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  margin-top:8px;
}
.ws2-hero .gallery{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto;
  gap:clamp(10px,1.4vw,20px);
}
.ws2-hero .figure{
  margin:0;
  position:relative;
  background:var(--ws2-ivory);
  overflow:hidden;
}
.ws2-hero .figure:first-child{
  grid-row:span 2;
  aspect-ratio:3/4;
}
.ws2-hero .figure:not(:first-child){
  aspect-ratio:4/3;
}
.ws2-hero .figure img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ws2-hero .caption{
  position:absolute;
  left:12px;
  bottom:12px;
  background:var(--ws2-paper);
  color:var(--ws2-charcoal);
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  padding:6px 10px;
  border:1px solid var(--ws2-rule);
  margin:0;
}

/* Metrics */
.ws2-metrics{
  list-style:none;
  margin:0 auto;
  padding:clamp(32px,4vw,56px) var(--ws2-pad);
  max-width:var(--ws2-max);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(20px,3vw,48px);
  border-top:var(--ws2-line);
  border-bottom:var(--ws2-line);
}
.ws2-metrics .item{
  padding:0;
  text-align:left;
}
.ws2-metrics .value{
  display:block;
  font-family:var(--ws2-serif);
  font-size:clamp(1.6rem,3vw,2.4rem);
  line-height:1.1;
  color:var(--ws2-burgundy);
  margin-bottom:8px;
}
.ws2-metrics .label{
  display:block;
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ws2-olive);
  max-width:26ch;
}

/* Categories */
.ws2-categories{
  max-width:var(--ws2-max);
  margin:0 auto;
  padding:clamp(56px,7vw,110px) var(--ws2-pad);
}
.ws2-categories .list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(20px,3vw,48px);
}
.ws2-categories .item{
  border-top:var(--ws2-line-strong);
  padding-top:28px;
}
.ws2-categories .link{
  display:block;
}
.ws2-categories .name{
  display:block;
  font-family:var(--ws2-serif);
  font-size:clamp(1.15rem,1.8vw,1.5rem);
  line-height:1.2;
  margin-bottom:10px;
}
.ws2-categories .desc{
  display:block;
  font-size:14px;
  line-height:1.6;
  color:var(--ws2-olive);
  max-width:38ch;
  margin-bottom:18px;
}
.ws2-categories .link::after{
  content:"— View";
  display:block;
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ws2-burgundy);
}
.ws2-categories .link:hover .name,
.ws2-categories .link:focus-visible .name{
  color:var(--ws2-burgundy);
}

/* Process */
.ws2-process{
  background:var(--ws2-ivory);
  border-top:var(--ws2-line);
  border-bottom:var(--ws2-line);
}
.ws2-process .list{
  list-style:none;
  margin:0 auto;
  padding:clamp(56px,7vw,100px) var(--ws2-pad);
  max-width:var(--ws2-max);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(24px,3vw,48px);
  counter-reset:wsstep;
}
.ws2-process .step{
  padding-top:24px;
  border-top:var(--ws2-line-strong);
}
.ws2-process .index{
  display:block;
  font-family:var(--ws2-serif);
  font-size:13px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--ws2-gold);
  margin-bottom:14px;
}
.ws2-process .heading{
  display:block;
  font-family:var(--ws2-serif);
  font-size:1.15rem;
  line-height:1.25;
  margin-bottom:10px;
}
.ws2-process .text{
  display:block;
  font-size:14px;
  line-height:1.65;
  color:var(--ws2-olive);
  max-width:34ch;
}

/* Products */
.ws2-products{
  max-width:var(--ws2-max);
  margin:0 auto;
  padding:clamp(56px,7vw,110px) var(--ws2-pad);
}
.ws2-products .list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(20px,3vw,40px);
}
.ws2-products .item{
  border-top:var(--ws2-line);
  padding-top:22px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ws2-products .link{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px 16px;
  align-items:baseline;
}
.ws2-products .name{
  font-family:var(--ws2-serif);
  font-size:clamp(1.05rem,1.5vw,1.25rem);
  line-height:1.3;
  grid-column:1;
}
.ws2-products .price{
  grid-column:2;
  grid-row:1;
  font-size:13px;
  letter-spacing:0.06em;
  color:var(--ws2-burgundy);
  white-space:nowrap;
}
.ws2-products .more{
  grid-column:1 / -1;
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ws2-olive);
  margin-top:6px;
}
.ws2-products .link:hover .name,
.ws2-products .link:focus-visible .name{color:var(--ws2-burgundy);}
.ws2-products .link:hover .more,
.ws2-products .link:focus-visible .more{color:var(--ws2-charcoal);}

/* Custom / Journal bands */
.ws2-custom,
.ws2-journal{
  border-top:var(--ws2-line);
  background:var(--ws2-paper);
}
.ws2-journal{background:var(--ws2-ivory);}
.ws2-custom .inner,
.ws2-journal .inner{
  max-width:var(--ws2-max);
  margin:0 auto;
  padding:clamp(56px,7vw,100px) var(--ws2-pad);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(24px,4vw,64px);
  align-items:end;
}
.ws2-custom .text,
.ws2-journal .text{
  max-width:60ch;
}
.ws2-custom .text h2,
.ws2-journal .text h2{
  font-size:clamp(1.5rem,2.8vw,2.2rem);
  margin-bottom:0.5em;
}
.ws2-custom .text p,
.ws2-journal .text p{
  color:var(--ws2-olive);
  font-size:15px;
  max-width:52ch;
}
.ws2-custom .actions,
.ws2-journal .actions{margin-top:0;}

/* ============ CATALOG ============ */
.catalog-page{
  max-width:var(--ws2-max);
  margin:0 auto;
  padding:0 var(--ws2-pad);
}
.catalog-page .crumbs{
  font-size:11px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ws2-olive);
  padding:24px 0;
  border-bottom:var(--ws2-line);
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
}
.catalog-page .crumbs a{color:var(--ws2-charcoal);}
.catalog-page .crumbs a:hover,
.catalog-page .crumbs a:focus-visible{color:var(--ws2-burgundy);}
.catalog-hero{
  padding:clamp(40px,5vw,72px) 0 clamp(28px,4vw,48px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,0.9fr);
  gap:clamp(24px,4vw,64px);
  align-items:end;
}
.catalog-hero h1{
  font-size:clamp(1.9rem,3.6vw,3rem);
  margin-bottom:0.4em;
}
.catalog-flower{
  font-size:14px;
  line-height:1.7;
  color:var(--ws2-olive);
  max-width:44ch;
}
.subcat-nav{
  border-top:var(--ws2-line);
  border-bottom:var(--ws2-line);
  padding:16px 0;
}
.subcat-nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:10px 28px;
}
.subcat-nav a{
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ws2-charcoal);
  padding-bottom:2px;
  border-bottom:1px solid transparent;
}
.subcat-nav a:hover,
.subcat-nav a:focus-visible{
  border-bottom-color:var(--ws2-burgundy);
  color:var(--ws2-burgundy);
}
.catalog-filters,
.catalog-tools{
  padding:24px 0;
  border-bottom:var(--ws2-line);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:16px 32px;
  justify-content:space-between;
}
.catalog-filters select,
.catalog-tools select,
.catalog-tools input[type="text"]{
  border:1px solid var(--ws2-rule);
  background:var(--ws2-paper);
  padding:10px 14px;
  border-radius:0;
  font-size:13px;
  letter-spacing:0.04em;
  min-width:180px;
}
.catalog-tools ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.catalog-tools ul li a,
.catalog-tools ul li span{
  display:inline-block;
  padding:8px 12px;
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  border:1px solid var(--ws2-rule);
  color:var(--ws2-charcoal);
}
.catalog-tools ul li a:hover,
.catalog-tools ul li a:focus-visible,
.catalog-tools ul li.is-active a,
.catalog-tools ul li.is-active span{
  border-color:var(--ws2-charcoal);
  color:var(--ws2-charcoal);
}

ul.products{
  list-style:none;
  margin:clamp(28px,4vw,48px) 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(24px,3vw,48px);
}
ul.products li.product{
  display:flex;
  flex-direction:column;
  border-top:var(--ws2-line-strong);
  padding-top:20px;
  position:relative;
  min-width:0;
}
ul.products li.product .woocommerce-loop-product__link{
  display:block;
}
ul.products li.product img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  border-radius:0;
  margin-bottom:18px;
  background:var(--ws2-ivory);
}
ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--ws2-serif);
  font-size:1.1rem;
  font-weight:400;
  line-height:1.3;
  padding:0;
  margin:0 0 8px;
  color:var(--ws2-charcoal);
}
ul.products li.product .price{
  color:var(--ws2-burgundy);
  font-size:14px;
  margin:0 0 14px;
}
ul.products li.product .button,
ul.products li.product .added_to_cart{
  display:inline-block;
  align-self:flex-start;
  background:transparent;
  color:var(--ws2-charcoal);
  border:1px solid var(--ws2-charcoal);
  padding:11px 22px;
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  border-radius:0;
  margin-top:auto;
}
ul.products li.product .button:hover,
ul.products li.product .button:focus-visible{
  background:var(--ws2-charcoal);
  color:var(--ws2-ivory);
}
ul.products li.product .onsale{
  position:absolute;
  top:20px;
  left:0;
  background:var(--ws2-burgundy);
  color:var(--ws2-ivory);
  font-size:10px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  padding:5px 10px;
  border-radius:0;
  min-height:auto;
  line-height:1;
}
.woocommerce-pagination{padding:32px 0;}
.woocommerce-pagination ul{
  border:0;
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  padding:0;
  margin:0;
  list-style:none;
}
.woocommerce-pagination ul li{border:0;margin:0;}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  height:40px;
  padding:0 10px;
  border:1px solid var(--ws2-rule);
  font-size:12px;
  letter-spacing:0.1em;
  color:var(--ws2-charcoal);
}
.woocommerce-pagination ul li span.current,
.woocommerce-pagination ul li a:hover,
.woocommerce-pagination ul li a:focus-visible{
  background:var(--ws2-charcoal);
  color:var(--ws2-ivory);
  border-color:var(--ws2-charcoal);
}
.woocommerce-result-count,
.woocommerce-ordering{font-size:12px;letter-spacing:0.06em;color:var(--ws2-olive);}
.woocommerce-ordering select{
  border:1px solid var(--ws2-rule);
  background:var(--ws2-paper);
  padding:8px 12px;
  border-radius:0;
}

/* ============ PRODUCT PAGE ============ */
.product-page{
  max-width:var(--ws2-max);
  margin:0 auto;
  padding:0 var(--ws2-pad);
}
.product-crumbs{
  font-size:11px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ws2-olive);
  padding:24px 0;
  border-bottom:var(--ws2-line);
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
}
.product-crumbs a{color:var(--ws2-charcoal);}
.product-crumbs a:hover,
.product-crumbs a:focus-visible{color:var(--ws2-burgundy);}

div.product{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
  gap:clamp(28px,5vw,80px);
  padding:clamp(32px,4vw,64px) 0 clamp(40px,5vw,72px);
  align-items:start;
}
div.product .woocommerce-product-gallery{
  position:relative;
  width:100%;
  max-width:100%;
}
div.product .woocommerce-product-gallery__wrapper{
  margin:0;
}
div.product .woocommerce-product-gallery .flex-viewport{
  border:0;
  background:var(--ws2-ivory);
}
div.product .woocommerce-product-gallery img{
  width:100%;
  height:auto;
  border-radius:0;
  background:var(--ws2-ivory);
}
div.product .woocommerce-product-gallery .flex-control-thumbs{
  list-style:none;
  margin:16px 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
}
div.product .woocommerce-product-gallery .flex-control-thumbs li{
  width:auto;
  margin:0;
  float:none;
}
div.product .woocommerce-product-gallery .flex-control-thumbs img{
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  opacity:0.55;
  border:1px solid transparent;
  border-radius:0;
  transition:opacity .2s ease,border-color .2s ease;
}
div.product .woocommerce-product-gallery .flex-control-thumbs img:hover,
div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active{
  opacity:1;
  border-color:var(--ws2-charcoal);
}
.woocommerce-product-gallery__trigger{
  position:absolute;
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  background:var(--ws2-paper);
  border:1px solid var(--ws2-rule);
  color:transparent;
  font-size:0;
  z-index:10;
  border-radius:0;
}
.woocommerce-product-gallery__trigger::after{
  content:"↗";
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--ws2-charcoal);
  font-size:16px;
  width:100%;
  height:100%;
}
div.product .summary{
  max-width:100%;
  position:sticky;
  top:24px;
}
div.product .product_title{
  font-family:var(--ws2-serif);
  font-size:clamp(1.7rem,3vw,2.6rem);
  font-weight:400;
  line-height:1.12;
  margin:0 0 0.5em;
  color:var(--ws2-charcoal);
}
div.product .summary .price{
  font-family:var(--ws2-serif);
  font-size:clamp(1.2rem,1.8vw,1.6rem);
  color:var(--ws2-burgundy);
  margin:0 0 1em;
  display:block;
}
div.product .summary .price del{
  color:var(--ws2-olive);
  font-size:0.7em;
  margin-right:8px;
}
div.product .summary .price ins{
  text-decoration:none;
  font-weight:400;
}
div.product .woocommerce-product-details__short-description{
  font-size:15px;
  line-height:1.7;
  color:var(--ws2-charcoal);
  border-top:var(--ws2-line);
  padding-top:20px;
  margin-top:20px;
}
div.product .woocommerce-product-details__short-description p{margin-bottom:1em;}

.ws-vp table{
  width:100%;
  border-collapse:collapse;
  margin:20px 0;
  font-size:13px;
}
.ws-vp table th,
.ws-vp table td{
  text-align:left;
  padding:10px 12px;
  border-bottom:var(--ws2-line);
  letter-spacing:0.02em;
}
.ws-vp table th{
  font-family:var(--ws2-serif);
  font-weight:400;
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--ws2-olive);
  border-bottom:1px solid var(--ws2-charcoal);
}
.ws-vp table tr:last-child td{border-bottom:1px solid var(--ws2-charcoal);}

form.cart{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:12px;
  margin:24px 0 0;
  padding-top:24px;
  border-top:var(--ws2-line);
}
form.cart .quantity{
  display:inline-flex;
  align-items:center;
  border:1px solid var(--ws2-charcoal);
  background:var(--ws2-paper);
  margin:0;
}
form.cart .quantity input[type="number"]{
  width:64px;
  height:48px;
  border:0;
  background:transparent;
  text-align:center;
  font-size:15px;
  padding:0 4px;
  -moz-appearance:textfield;
}
form.cart .quantity input[type="number"]::-webkit-outer-spin-button,
form.cart .quantity input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
form.cart button[type="submit"].single_add_to_cart_button,
form.cart .single_add_to_cart_button{
  flex:1 1 220px;
  background:var(--ws2-charcoal);
  color:var(--ws2-ivory);
  border:1px solid var(--ws2-charcoal);
  padding:14px 28px;
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  border-radius:0;
  cursor:pointer;
  height:auto;
  line-height:1.2;
}
form.cart button[type="submit"].single_add_to_cart_button:hover,
form.cart button[type="submit"].single_add_to_cart_button:focus-visible,
form.cart .single_add_to_cart_button:hover,
form.cart .single_add_to_cart_button:

/* Exact BEM compatibility layer — v1.2.0 */
:root{--ws2-radius:14px;--ws2-radius-sm:10px;--ws2-line:rgba(26,26,26,.12);--ws2-line-strong:rgba(26,26,26,.22);--ws2-max:1240px;--ws2-gap:clamp(16px,2.2vw,28px);--ws2-space:clamp(28px,4vw,64px);--ws2-font:"Helvetica Neue",Helvetica,Arial,sans-serif}

.ws2-hero,.ws2-metrics,.ws2-categories,.ws2-process,.ws2-products,.ws2-custom,.ws2-journal{box-sizing:border-box;width:100%;max-width:var(--ws2-max);margin-inline:auto;padding-inline:clamp(16px,4vw,40px);color:var(--ws2-charcoal)}
.ws2-hero *,.ws2-metrics *,.ws2-categories *,.ws2-process *,.ws2-products *,.ws2-custom *,.ws2-journal *,.ws2-button{box-sizing:border-box;min-width:0}

.ws2-button{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.85em 1.4em;border:1px solid transparent;border-radius:999px;font:inherit;font-size:clamp(.82rem,.9vw,.9rem);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;line-height:1.2;cursor:pointer;background:transparent;color:var(--ws2-charcoal);max-width:100%;white-space:nowrap}
.ws2-button--primary{background:var(--ws2-burgundy);border-color:var(--ws2-burgundy);color:var(--ws2-ivory)}
.ws2-button--ghost{background:transparent;border-color:var(--ws2-line-strong);color:var(--ws2-charcoal)}
.ws2-button:focus-visible{outline:2px solid var(--ws2-gold);outline-offset:2px}

.ws2-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--ws2-gap);align-items:center;padding-block:var(--ws2-space)}
.ws2-hero__copy{display:flex;flex-direction:column;gap:clamp(12px,1.4vw,20px);max-width:38rem}
.ws2-hero__eyebrow{margin:0;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ws2-olive)}
.ws2-hero__title{margin:0;font-size:clamp(1.9rem,4.4vw,3.4rem);line-height:1.08;letter-spacing:-.01em;font-weight:500}
.ws2-hero__lede{margin:0;font-size:clamp(.95rem,1.15vw,1.1rem);line-height:1.6;color:rgba(26,26,26,.72)}
.ws2-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}
.ws2-hero__gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(8px,1vw,14px);align-items:start}
.ws2-hero__figure{margin:0;display:flex;flex-direction:column;gap:8px}
.ws2-hero__figure:first-child{grid-column:1 / -1}
.ws2-hero__image{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:var(--ws2-radius);border:1px solid var(--ws2-line)}
.ws2-hero__figure:first-child .ws2-hero__image{aspect-ratio:16/10}
.ws2-hero__caption{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(26,26,26,.55)}

.ws2-metrics{padding-block:clamp(20px,3vw,40px);border-top:1px solid var(--ws2-line);border-bottom:1px solid var(--ws2-line)}
.ws2-metrics__list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ws2-gap);margin:0;padding:0;list-style:none}
.ws2-metrics__item{display:flex;flex-direction:column;gap:6px}
.ws2-metrics__value{font-size:clamp(1.4rem,2.4vw,2.1rem);line-height:1;font-weight:500;color:var(--ws2-burgundy)}
.ws2-metrics__label{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(26,26,26,.6)}

.ws2-categories{padding-block:var(--ws2-space)}
.ws2-categories__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ws2-gap);margin:0;padding:0;list-style:none}
.ws2-categories__item{min-width:0}
.ws2-categories__link{display:flex;flex-direction:column;gap:8px;padding:clamp(18px,2vw,28px);border:1px solid var(--ws2-line);border-radius:var(--ws2-radius);background:var(--ws2-ivory);text-decoration:none;color:inherit;height:100%}
.ws2-categories__link:focus-visible{outline:2px solid var(--ws2-gold);outline-offset:2px}
.ws2-categories__name{margin:0;font-size:clamp(1.02rem,1.3vw,1.2rem);font-weight:500;letter-spacing:-.005em}
.ws2-categories__desc{margin:0;font-size:.9rem;line-height:1.55;color:rgba(26,26,26,.66)}

.ws2-process{padding-block:var(--ws2-space)}
.ws2-process__list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ws2-gap);margin:0;padding:0;list-style:none;counter-reset:ws2step}
.ws2-process__step{display:flex;flex-direction:column;gap:10px;min-width:0;padding-top:18px;border-top:1px solid var(--ws2-line-strong)}
.ws2-process__index{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ws2-gold)}
.ws2-process__heading{margin:0;font-size:clamp(.98rem,1.2vw,1.12rem);font-weight:500}
.ws2-process__text{margin:0;font-size:.9rem;line-height:1.6;color:rgba(26,26,26,.66)}

.ws2-products{padding-block:var(--ws2-space)}
.ws2-products__list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ws2-gap);margin:0;padding:0;list-style:none}
.ws2-products__item{min-width:0}
.ws2-products__link{display:flex;flex-direction:column;gap:8px;height:100%;padding-bottom:14px;border-bottom:1px solid var(--ws2-line);text-decoration:none;color:inherit}
.ws2-products__link:focus-visible{outline:2px solid var(--ws2-gold);outline-offset:2px}
.ws2-products__name{margin:0;font-size:1rem;font-weight:500;line-height:1.35}
.ws2-products__price{margin:0;font-size:.92rem;letter-spacing:.04em;color:var(--ws2-burgundy)}
.ws2-products__more{margin-top:auto;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ws2-olive)}

.ws2-custom,.ws2-journal{padding-block:var(--ws2-space)}
.ws2-custom__inner,.ws2-journal__inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--ws2-gap);align-items:center;padding:clamp(22px,3.4vw,48px);border:1px solid var(--ws2-line);border-radius:var(--ws2-radius);background:var(--ws2-ivory)}
.ws2-custom__text,.ws2-journal__text{margin:0;min-width:0;font-size:clamp(.98rem,1.4vw,1.2rem);line-height:1.55;max-width:52ch}
.ws2-custom__actions,.ws2-journal__actions{display:flex;flex-wrap:wrap;gap:12px;min-width:0}

@media (max-width:900px){
.ws2-hero{grid-template-columns:minmax(0,1fr);gap:clamp(20px,4vw,36px)}
.ws2-hero__copy{max-width:none}
.ws2-metrics__list{grid-template-columns:repeat(2,minmax(0,1fr))}
.ws2-categories__list{grid-template-columns:repeat(2,minmax(0,1fr))}
.ws2-process__list{grid-template-columns:repeat(2,minmax(0,1fr))}
.ws2-products__list{grid-template-columns:repeat(2,minmax(0,1fr))}
.ws2-custom__inner,.ws2-journal__inner{grid-template-columns:minmax(0,1fr);align-items:start}
.ws2-custom__actions,.ws2-journal__actions{justify-content:flex-start}
}

@media (max-width:640px){
.ws2-hero__gallery{grid-template-columns:minmax(0,1fr)}
.ws2-hero__figure:first-child{grid-column:auto}
.ws2-hero__image,.ws2-hero__figure:first-child .ws2-hero__image{aspect-ratio:16/10}
.ws2-hero__actions{flex-direction:column;align-items:stretch}
.ws2-button{width:100%;white-space:normal;text-align:center}
.ws2-metrics__list,.ws2-categories__list,.ws2-process__list,.ws2-products__list{grid-template-columns:minmax(0,1fr)}
.ws2-metrics__item,.ws2-process__step{padding-top:12px}
.ws2-custom__inner,.ws2-journal__inner{padding:clamp(18px,5vw,26px)}
.ws2-custom__actions,.ws2-journal__actions{flex-direction:column;align-items:stretch}
}

@media print{
.ws2-button{display:none}
}

/* Responsive header correction */
/* ============================================================
   Header layout override — fits brand | nav | actions on desktop,
   collapses to toggle + dropdown under 1200px.
   ============================================================ */

/* --- Global guards: no horizontal overflow, flex children can shrink --- */
.site-header,
.header-inner,
.primary-nav,
.header-actions,
.header-search {
  max-width: 100%;
  box-sizing: border-box;
}

.header-inner * {
  min-width: 0; /* allow flex/grid children to shrink instead of overflow */
}

img,
svg,
.brand img,
.header-actions img {
  max-width: 100%;
  height: auto;
}

/* Keep the header itself from scrolling the page sideways */
.site-header {
  position: relative;
  overflow-x: clip; /* clip (not hidden) keeps sticky/position safe */
}

/* --- Header shell --- */
.header-inner {
  display: flex;
  align-items: center;
  gap: var(--ws2-gap, 1.5rem);
  min-height: var(--ws2-header-h, 72px);
  padding-inline: var(--ws2-pad-x, 1.5rem);
}

/* ============================================================
   DESKTOP  ≥ 1201px  — brand | nav (direct anchors) | actions
   ============================================================ */
@media (min-width: 1401px) {
  .menu-toggle {
    display: none !important;
  }

  .primary-nav {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: var(--ws2-nav-gap, 1.75rem);
    /* never push the actions off-screen */
    min-width: 0;
  }

  /* direct child anchors (nav uses plain <a>, not <ul>) */
  .primary-nav > a {
    display: inline-block;
    flex: 0 0 auto;
    white-space: nowrap;
    color: var(--ws2-ink, inherit);
    text-decoration: none;
    letter-spacing: var(--ws2-track, 0.04em);
    font-size: var(--ws2-nav-size, 0.9rem);
    line-height: 1.2;
    padding-block: 0.35em;
  }

  .brand {
    flex: 0 0 auto;
    max-width: 22ch;
  }

  .header-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: var(--ws2-action-gap, 0.75rem);
    white-space: nowrap;
  }
}

/* ============================================================
   TABLET / MOBILE  ≤ 1200px — toggle + collapsible dropdown
   ============================================================ */
@media (max-width: 1400px) {
  .header-inner {
    flex-wrap: nowrap;
    gap: 0.75rem;
  }

  .brand {
    flex: 1 1 auto;
    min-width: 0;
  }

  /* toggle sits between brand and actions */
  .menu-toggle {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    order: 2;
    min-width: 44px;
    min-height: 44px;
    background: transparent;
    border: 1px solid var(--ws2-line, currentColor);
    border-radius: var(--ws2-radius, 2px);
    color: var(--ws2-ink, inherit);
    cursor: pointer;
  }

  .header-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.5rem;
    order: 3;
    white-space: nowrap;
  }

  /* Collapsed nav: no overflow, no horizontal bleed */
  .primary-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: none;              /* collapsed by default */
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
    order: 4;
    width: 100%;
    max-width: 100%;
    max-height: min(80vh, 520px);
    overflow-y: auto;
    overflow-x: hidden;         /* never scroll sideways */
    padding: var(--ws2-pad-y, 0.5rem) var(--ws2-pad-x, 1.5rem);
    background: var(--ws2-surface, #fff);
    border-top: 1px solid var(--ws2-line, rgba(0,0,0,.12));
    box-shadow: 0 12px 30px rgba(0,0,0,.08);
    z-index: 60;
  }

  .primary-nav.is-open {
    display: flex;
  }

  .primary-nav > a {
    display: block;
    width: 100%;
    padding: 0.9rem 0;
    white-space: normal;        /* wrap long labels instead of overflowing */
    overflow-wrap: anywhere;
    color: var(--ws2-ink, inherit);
    text-decoration: none;
    font-size: var(--ws2-nav-size, 0.95rem);
    letter-spacing: var(--ws2-track, 0.04em);
    border-bottom: 1px solid var(--ws2-line, rgba(0,0,0,.06));
  }

  .primary-nav > a:last-child {
    border-bottom: 0;
  }

  /* search sits below header, full width, no bleed */
  .header-search {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
}

/* ============================================================
   SMALL  ≤ 640px — compact brand / actions / announcement
   ============================================================ */
@media (max-width: 640px) {
  .header-inner {
    min-height: 60px;
    padding-inline: 1rem;
    gap: 0.5rem;
  }

  .brand {
    flex: 1 1 auto;
    font-size: clamp(0.95rem, 4vw, 1.1rem);
    max-width: 60%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .header-actions {
    gap: 0.25rem;
    font-size: 0.85rem;
  }

  /* hide low-priority action items on tight screens */
  .header-actions .is-low-priority,
  .header-actions .hide-sm {
    display: none;
  }

  .menu-toggle {
    min-width: 40px;
    min-height: 40px;
  }

  .primary-nav {
    max-height: 75vh;
    padding-inline: 1rem;
  }

  .primary-nav > a {
    padding: 0.8rem 0;
  }

  /* announcement bar compacting */
  .announcement,
  .site-announcement,
  .announcement-bar {
    font-size: 0.75rem;
    padding-block: 0.4rem;
    line-height: 1.3;
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

/* ============================================================
   Safety: dropdown must not cause page-level horizontal scroll
   ============================================================ */
@media (max-width: 1400px) {
  body:has(.primary-nav.is-open) {
    overflow-x: hidden;
  }
}

/* Kill any inherited animations/transitions on nav for this override */
.primary-nav,
.primary-nav > a,
.menu-toggle {
  transition: none;
  animation: none;
}

/* WooCommerce single product layout correction */
/* Single product layout rescue — Woo defaults must not win */

.product-page > div.product {
  display: grid !important;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr) !important;
  gap: clamp(32px, 5vw, 72px) !important;
  align-items: start !important;
  max-width: var(--ws2-max, 1200px) !important;
  margin: 0 auto !important;
  padding: clamp(32px,4vw,64px) 0 clamp(40px,5vw,72px) !important;
  float: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Kill Woo float/width/position assumptions on the two main cells */
.product-page .woocommerce-product-gallery,
.product-page .woocommerce-product-gallery.images,
.product-page .entry-summary,
.product-page .summary.entry-summary {
  float: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
  box-sizing: border-box !important;
}

.product-page .woocommerce-product-gallery,
.product-page .woocommerce-product-gallery.images {
  grid-column: 1 !important;
  grid-row: 1 !important;
}

.product-page .summary.entry-summary {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

/* Gallery: force fills its column */
.product-page .woocommerce-product-gallery .flex-viewport,
.product-page .woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
.product-page .woocommerce-product-gallery .woocommerce-product-gallery__image,
.product-page .woocommerce-product-gallery img {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

.product-page .woocommerce-product-gallery .woocommerce-product-gallery__image img,
.product-page .woocommerce-product-gallery img {
  display: block !important;
  height: auto !important;
  max-height: 720px !important;
  object-fit: contain !important;
  background: var(--ws2-surface, #f6f5f2) !important;
}

.product-page .woocommerce-product-gallery__image a {
  display: block !important;
  width: 100% !important;
}

/* Thumbnails row sane */
.product-page .flex-control-thumbs {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 12px 0 0 !important;
}

.product-page .flex-control-thumbs li {
  width: auto !important;
  max-width: 88px !important;
  float: none !important;
  margin: 0 !important;
}

/* Summary typography — stop one-word-per-line */
.product-page .summary.entry-summary h1.product_title,
.product-page .summary.entry-summary .product_title {
  font-size: clamp(1.6rem, 2.4vw, 2.5rem) !important;
  line-height: 1.18 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  max-width: 100% !important;
  margin: 0 0 0.6em !important;
  letter-spacing: -0.01em !important;
}

.product-page .summary.entry-summary,
.product-page .summary.entry-summary p,
.product-page .summary.entry-summary span,
.product-page .summary.entry-summary li {
  overflow-wrap: break-word !important;
  word-break: normal !important;
}

.product-page .summary.entry-summary .price {
  float: none !important;
  display: block !important;
  margin: 0 0 0.75em !important;
  font-size: 1.25rem !important;
}

.product-page .summary.entry-summary form.cart,
.product-page .summary.entry-summary .cart {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  align-items: center !important;
  float: none !important;
  margin: 0 0 1em !important;
}

/* Tabs + related span full width */
.product-page .woocommerce-tabs.wc-tabs-wrapper,
.product-page .related.products,
.product-page .upsells.products,
.product-page .cross-sells {
  grid-column: 1 / -1 !important;
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  clear: both !important;
  box-sizing: border-box !important;
}

.product-page .woocommerce-tabs.wc-tabs-wrapper {
  margin-top: clamp(32px, 5vw, 64px) !important;
  border-top: 1px solid var(--ws2-border, rgba(0,0,0,.12)) !important;
  padding-top: clamp(24px, 4vw, 48px) !important;
}

/* Tabs nav: horizontal, scrollable internally, never blow out page */
.product-page .woocommerce-tabs ul.wc-tabs {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 4px !important;
  list-style: none !important;
  padding: 0 0 2px !important;
  margin: 0 0 24px !important;
  border-bottom: 1px solid var(--ws2-border, rgba(0,0,0,.12)) !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.product-page .woocommerce-tabs ul.wc-tabs li {
  float: none !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
}

.product-page .woocommerce-tabs ul.wc-tabs li a {
  display: block !important;
  padding: 10px 16px !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  border-bottom: 2px solid transparent !important;
}

.product-page .woocommerce-tabs ul.wc-tabs li.active a {
  border-bottom-color: currentColor !important;
}

/* Tab panels readable */
.product-page .woocommerce-tabs .panel,
.product-page .woocommerce-tabs .woocommerce-Tabs-panel {
  float: none !important;
  width: 100% !important;
  max-width: 72ch !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.65 !important;
}

.product-page .woocommerce-tabs .panel > *:first-child { margin-top: 0 !important; }
.product-page .woocommerce-tabs .panel > *:last-child { margin-bottom: 0 !important; }

.product-page .woocommerce-tabs .panel table {
  width: 100% !important;
  max-width: 100% !important;
  table-layout: auto !important;
}

/* Related / upsells grid */
.product-page .related.products > h2,
.product-page .upsells.products > h2 {
  margin: 0 0 0.75em !important;
}

.product-page .related.products ul.products,
.product-page .upsells.products ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
  gap: clamp(16px, 2.5vw, 32px) !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.product-page .related.products ul.products li.product,
.product-page .upsells.products ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Global page guards */
.product-page {
  overflow-x: clip !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.product-page *,
.product-page *::before,
.product-page *::after {
  box-sizing: border-box !important;
}

.product-page img,
.product-page video,
.product-page iframe {
  max-width: 100% !important;
}

/* Tablet / intermediate */
@media (max-width: 900px) {
  .product-page > div.product {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: clamp(20px, 4vw, 32px) !important;
  }
  .product-page .woocommerce-product-gallery,
  .product-page .woocommerce-product-gallery.images,
  .product-page .summary.entry-summary {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    position: static !important;
    top: auto !important;
  }
  .product-page .summary.entry-summary {
    position: static !important;
  }
  .product-page .woocommerce-product-gallery .woocommerce-product-gallery__image img,
  .product-page .woocommerce-product-gallery img {
    max-height: none !important;
  }
}

/* Mobile */
@media (max-width: 640px) {
  .product-page > div.product {
    gap: 20px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  .product-page .summary.entry-summary h1.product_title,
  .product-page .summary.entry-summary .product_title {
    font-size: 1.5rem !important;
  }
  .product-page .woocommerce-tabs.wc-tabs-wrapper {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  .product-page .woocommerce-tabs ul.wc-tabs {
    margin-bottom: 16px !important;
    padding-bottom: 0 !important;
  }
  .product-page .woocommerce-tabs ul.wc-tabs li a {
    padding: 10px 12px !important;
    font-size: 0.95rem !important;
  }
  .product-page .woocommerce-tabs .panel,
  .product-page .woocommerce-tabs .woocommerce-Tabs-panel {
    max-width: 100% !important;
    font-size: 1rem !important;
  }
  .product-page .related.products ul.products,
  .product-page .upsells.products ul.products {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important;
    gap: 16px !important;
  }
  .product-page .summary.entry-summary form.cart,
  .product-page .summary.entry-summary .cart {
    gap: 10px !important;
  }
}

/* WCAG contrast correction */
.site-footer, .site-footer .footer-lead, .site-footer h2, .site-footer h3, .site-footer p, .site-footer .footer-links a, .site-footer .footer-bottom, .site-footer em, .site-footer strong { color: var(--ws2-charcoal) !important; }
.site-footer .footer-lead { color: var(--ws2-charcoal) !important; }
.site-footer h2, .site-footer h3 { color: var(--ws2-burgundy) !important; }
.site-footer .footer-links a { color: var(--ws2-burgundy) !important; text-decoration: underline; }
.site-footer .footer-links a:hover, .site-footer .footer-links a:focus { color: var(--ws2-charcoal) !important; }
.site-footer .footer-bottom { color: var(--ws2-charcoal) !important; }
.site-footer em, .site-footer strong { color: var(--ws2-charcoal) !important; }
.ws2-hero__caption { color: var(--ws2-charcoal) !important; }
.ws2-metrics__label { color: var(--ws2-charcoal) !important; }

/* Minimal forest-and-sage palette */
:root{
  --ws2-ivory:#f6f2ea!important;
  --ws2-paper:#fffdf9!important;
  --ws2-charcoal:#141b18!important;
  --ws2-burgundy:#141b18!important;
  --ws2-olive:#8ca088!important;
  --ws2-gold:#8ca088!important;
  --ws2-line:#d8d1c5!important;
  --ws2-ink:#141b18;
  --ws2-sage:#8ca088;
  --ws2-taupe:#d8d1c5;
}

html,body{
  background-color:var(--ws2-ivory)!important;
  color:var(--ws2-ink)!important;
}

body{
  background-color:var(--ws2-ivory)!important;
}

a,
.ws2-categories__link,
.ws2-journal__inner a,
.product-page a{
  color:var(--ws2-ink)!important;
}

a:hover,
a:focus,
.ws2-categories__link:hover,
.ws2-categories__link:focus{
  color:#3f5a49!important;
}

.announcement{
  background-color:var(--ws2-ink)!important;
  color:#fffdf9!important;
}

.announcement a{
  color:#fffdf9!important;
}

.site-header{
  background-color:var(--ws2-ivory)!important;
  color:var(--ws2-ink)!important;
  border-bottom-color:var(--ws2-taupe)!important;
}

.site-header a,
.site-header .menu-item a{
  color:var(--ws2-ink)!important;
}

.site-header a:hover,
.site-header a:focus{
  color:#3f5a49!important;
}

.site-footer{
  background-color:var(--ws2-ink)!important;
  color:#e9e6df!important;
  border-top-color:var(--ws2-taupe)!important;
}

.site-footer a,
.site-footer .menu-item a{
  color:#fffdf9!important;
}

.site-footer a:hover,
.site-footer a:focus{
  color:#c7d2c3!important;
}

.ws2-button--primary,
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce .single_add_to_cart_button,
.woocommerce-checkout .button{
  background-color:var(--ws2-ink)!important;
  color:#fffdf9!important;
  border-color:var(--ws2-ink)!important;
}

.ws2-button--primary:hover,
.ws2-button--primary:focus,
.woocommerce .button:hover,
.woocommerce .button:focus,
.woocommerce button.button:hover,
.woocommerce button.button:focus,
.woocommerce input.button:hover,
.woocommerce input.button:focus,
.woocommerce #respond input#submit:hover,
.woocommerce #respond input#submit:focus,
.woocommerce a.button:hover,
.woocommerce a.button:focus{
  background-color:#2b3a30!important;
  color:#fffdf9!important;
  border-color:#2b3a30!important;
}

.ws2-button--ghost,
.woocommerce .button.alt,
.woocommerce .button.secondary{
  background-color:transparent!important;
  color:var(--ws2-ink)!important;
  border-color:var(--ws2-ink)!important;
}

.ws2-button--ghost:hover,
.ws2-button--ghost:focus,
.woocommerce .button.alt:hover,
.woocommerce .button.alt:focus{
  background-color:var(--ws2-ink)!important;
  color:#fffdf9!important;
  border-color:var(--ws2-ink)!important;
}

.ws2-metrics__value{
  color:var(--ws2-ink)!important;
}

.ws2-categories__link{
  background-color:var(--ws2-paper)!important;
  color:var(--ws2-ink)!important;
  border-color:var(--ws2-taupe)!important;
}

.ws2-categories__link:hover,
.ws2-categories__link:focus{
  border-color:var(--ws2-sage)!important;
  color:#3f5a49!important;
}

.ws2-custom__inner,
.ws2-journal__inner{
  background-color:var(--ws2-paper)!important;
  color:var(--ws2-ink)!important;
  border-color:var(--ws2-taupe)!important;
}

.product-page,
.woocommerce div.product,
.woocommerce-page div.product{
  background-color:var(--ws2-ivory)!important;
  color:var(--ws2-ink)!important;
}

.product-page .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:var(--ws2-ink)!important;
}

.woocommerce .star-rating span,
.woocommerce .star-rating::before{
  color:var(--ws2-sage)!important;
}

.woocommerce-message,
.woocommerce-info{
  background-color:var(--ws2-paper)!important;
  color:var(--ws2-ink)!important;
  border-top-color:var(--ws2-sage)!important;
}

.woocommerce-error{
  background-color:var(--ws2-ink)!important;
  color:#fffdf9!important;
}

::selection{
  background-color:var(--ws2-sage)!important;
  color:var(--ws2-ink)!important;
}

input,textarea,select{
  background-color:var(--ws2-paper)!important;
  color:var(--ws2-ink)!important;
  border-color:var(--ws2-taupe)!important;
}

input::placeholder,textarea::placeholder{
  color:#6b6a63!important;
}

input:focus,textarea:focus,select:focus{
  border-color:var(--ws2-ink)!important;
  outline-color:var(--ws2-ink)!important;
}

hr,.ws2-divider{
  border-color:var(--ws2-taupe)!important;
}

blockquote{
  border-left-color:var(--ws2-sage)!important;
  color:var(--ws2-ink)!important;
}

/* Dark footer contrast safeguard */
.site-footer h2,
.site-footer h3,
.site-footer strong,
.site-footer .brand,
.site-footer a {
  color: #fffdf9 !important;
}
.site-footer p,
.site-footer .footer-bottom,
.site-footer .footer-lead {
  color: #e9e6df !important;
}
.site-footer a:hover,
.site-footer a:focus {
  color: #c7d2c3 !important;
}
