/* woocommerce/product.css
   Single product, plan cards, the accordion.
   Rewind Club - loaded in order by functions.php. */

.woocommerce div.product{display:grid; grid-template-columns:1.05fr 1fr; gap:52px; align-items:start}

.woocommerce div.product .woocommerce-product-gallery{width:100% !important; float:none !important; margin:0}

.woocommerce div.product .woocommerce-product-gallery__wrapper{border:1.5px solid var(--line); border-radius:22px; overflow:hidden; background:var(--paper-2)}

.woocommerce div.product .woocommerce-product-gallery__image img{aspect-ratio:1/1; object-fit:cover; display:block}

.woocommerce div.product .flex-control-thumbs{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:12px 0 0; padding:0}

.woocommerce div.product .flex-control-thumbs li{width:auto; float:none; margin:0}

.woocommerce div.product .flex-control-thumbs img{border:1.5px solid var(--line); border-radius:13px; aspect-ratio:1/1; object-fit:cover; opacity:1}

.woocommerce div.product .flex-control-thumbs img.flex-active{border-color:var(--ink); border-width:2.5px}

.woocommerce div.product .woocommerce-product-gallery__trigger{border-radius:999px}

.woocommerce div.product .summary.entry-summary{margin:0; float:none !important; width:100% !important}

.woocommerce div.product .product_title{font-size:clamp(32px,4.4vw,50px); margin:10px 0 14px}

.woocommerce div.product .rc-pdp-eyebrow{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.19em; text-transform:uppercase; color:var(--ink-2); margin:0;
}

.woocommerce div.product .woocommerce-product-details__short-description{
  font-size:17px; color:var(--ink-2); max-width:50ch;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price{font-size:36px; margin:18px 0 0; display:block; line-height:1.1}

.woocommerce div.product p.price .subscription-details,
.woocommerce div.product .woocommerce-variation-price .subscription-details{
  font-family:var(--font-body); font-size:15px; font-weight:400; color:var(--ink-2);
}

.woocommerce div.product .woocommerce-variation-price{margin-bottom:14px}

/* --- plan cards (built from the variations select by JS) --- */
.rc-plans{display:flex; flex-direction:column; gap:11px; margin:24px 0; border:none; padding:0}

.rc-plans legend{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.19em; text-transform:uppercase;
  color:var(--ink-2); padding:0; margin-bottom:11px;
}

.rc-plan{
  display:grid; grid-template-columns:22px 1fr auto; gap:14px; align-items:center;
  border:1.5px solid var(--line); background:var(--card); border-radius:14px; padding:15px 17px; cursor:pointer;
}

.rc-plan:hover{border-color:var(--ink-3)}

.rc-plan:has(input:checked){border-color:var(--ink); border-width:2.5px; padding:14px 16px; background:var(--card-2)}

.rc-plan input{accent-color:var(--mulberry); width:18px; height:18px; margin:0}

.rc-plan__t{font-weight:700; display:block}

.rc-plan__s{font-size:14px; color:var(--ink-2); display:block; margin-top:2px}

.rc-plan__p{font-family:var(--font-mono); font-size:14px; text-align:right; font-variant-numeric:tabular-nums; color:var(--ink-2)}

.rc-plan__p b{display:block; font-family:var(--font-display); font-size:19px; color:var(--ink)}

.woocommerce div.product form.cart .variations{display:none}

.woocommerce div.product form.cart .variations.rc-visible{display:table; width:100%}

.woocommerce div.product .woocommerce-variation-add-to-cart{display:flex; gap:12px; align-items:center; flex-wrap:wrap}

.woocommerce div.product form.cart{margin:0; display:flex; flex-direction:column; gap:4px}

.woocommerce div.product form.cart .quantity{display:flex; align-items:center; gap:10px; margin:0}

.woocommerce div.product form.cart .quantity::before{
  content:"QTY"; font-family:var(--font-mono); font-size:11px; letter-spacing:.13em; color:var(--ink-2);
}

.woocommerce .quantity input.qty,
.woocommerce table.cart td.product-quantity input.qty{
  width:74px; text-align:center; font:500 15px var(--font-body); padding:11px 6px;
  border-radius:11px; border:1.5px solid var(--line); background:var(--card); color:var(--ink);
  font-variant-numeric:tabular-nums;
}

.woocommerce div.product form.cart .button{margin-top:0}

.woocommerce div.product form.cart div.quantity,
.woocommerce div.product form.cart button.single_add_to_cart_button{float:none}

.rc-cart-row{display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:14px}

.rc-renew{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-2); margin:16px 0 0; line-height:1.7;
}

.woocommerce div.product .product_meta{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3);
  margin-top:22px; display:flex; flex-direction:column; gap:6px;
}

.woocommerce div.product .product_meta a{color:var(--ink-2); text-decoration:none}

/* --- accordion (replaces the tab strip) --- */
.rc-acc{grid-column:1/-1; margin-top:30px; border-top:1.5px solid var(--line)}

.woocommerce div.product .rc-acc details{border-bottom:1.5px solid var(--line)}

.rc-acc summary{
  cursor:pointer; padding:16px 0; font-family:var(--font-display); font-weight:700; font-size:18px;
  list-style:none; display:flex; justify-content:space-between; align-items:center; color:var(--ink);
}

.rc-acc summary::-webkit-details-marker{display:none}

.rc-acc summary::after{content:"+"; font-size:22px; color:var(--ink-3); line-height:1}

.rc-acc details[open] summary::after{content:"\2013"}

.rc-acc__body{padding:0 0 18px; color:var(--ink-2); font-size:15.5px}

.rc-acc__body h2{display:none}

.rc-acc__body ul{margin:0; padding-left:20px; display:flex; flex-direction:column; gap:6px}

.rc-acc__body table.shop_attributes th{font-family:var(--font-body); color:var(--ink)}

.woocommerce div.product .related,
.woocommerce div.product .upsells{grid-column:1/-1; margin-top:clamp(48px,7vw,84px)}

.woocommerce div.product .related>h2,
.woocommerce div.product .upsells>h2{font-size:clamp(28px,3.9vw,44px); margin-bottom:30px}

/* WooCommerce's woocommerce_before_main_content wrapper hooks don't fire
   inside the legacy-template block, so the gutter has to come from here.
   vw units are viewport-relative, so this nests inside .wrap harmlessly. */
.wp-site-blocks .woocommerce-page main > .woocommerce{
  width:min(1180px,92vw); margin-inline:auto;
}

/* Sale flash on the single product sits on the gallery, not the page edge. */
.woocommerce div.product > .onsale,
.woocommerce div.product span.onsale{
  position:absolute; top:14px; left:14px; right:auto; z-index:3;
  margin:0; min-height:0; min-width:0; line-height:1.4;
  border-radius:6px; padding:5px 9px;
  background:var(--mulberry); color:var(--mulberry-ink);
  font-family:var(--font-mono); font-size:10px; letter-spacing:.13em; text-transform:uppercase;
}

.woocommerce div.product{position:relative}

/* ------------------------------------------------------------
   Subscribe & Save options (All Products for WC Subscriptions)
   rendered as the plan cards from the design.
   ------------------------------------------------------------ */
.wcsatt-options-wrapper{margin:0}

.wcsatt-options-prompt-fieldset{border:none; padding:0; margin:22px 0}

.wcsatt-options-prompt-fieldset > legend{
  position:static !important; width:auto !important; height:auto !important;
  clip:auto !important; clip-path:none !important; overflow:visible !important;
  white-space:normal !important; padding:0; margin-bottom:11px;
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.19em;
  text-transform:uppercase; color:var(--ink-2);
}

ul.wcsatt-options-prompt-radios{
  list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px;
}

li.wcsatt-options-prompt-radio{margin:0; padding:0}

li.wcsatt-options-prompt-radio::marker{content:""}

.wcsatt-options-prompt-label{
  display:grid; grid-template-columns:22px 1fr; gap:14px; align-items:center; margin:0;
  border:1.5px solid var(--line); background:var(--card); border-radius:14px;
  padding:15px 17px; cursor:pointer; font-weight:500;
}

.wcsatt-options-prompt-label:hover{border-color:var(--ink-3)}

.wcsatt-options-prompt-label:has(input:checked){
  border-color:var(--ink); border-width:2.5px; padding:14px 16px; background:var(--card-2);
}

.wcsatt-options-prompt-action-input{accent-color:var(--mulberry); width:18px; height:18px; margin:0}

.wcsatt-options-prompt-action{display:block; font-weight:700; color:var(--ink)}

.wcsatt-options-prompt-action .price,
.wcsatt-options-prompt-action span.amount{font-size:18px}

.wcsatt-options-prompt-action .subscription-details{
  font-family:var(--font-body); font-weight:400; font-size:14px; color:var(--ink-2);
}

.wcsatt-options-prompt-action del{opacity:.5; margin-right:6px}

/* One big price at the top of the summary is enough — keep the rest card-sized. */
.woocommerce div.product form.cart .price,
.woocommerce div.product form.cart span.amount{font-size:19px; margin:0}

/* Sold individually: Woo still prints a hidden quantity wrapper. */
.woocommerce div.product form.cart .quantity.hidden,
.woocommerce div.product form.cart .quantity:has(input[type="hidden"]){display:none}

.woocommerce td.product-quantity .quantity.hidden{display:none}

/* Meta reads as a caption, not a heading. */
.woocommerce div.product .product_meta > span{display:block}

.woocommerce div.product .product_meta .sku_wrapper:empty{display:none}
