/* ==========================================================================
   Supernormal × WooCommerce — maps the SN aesthetic onto native Woo blocks
   so shop, PDP, cart and checkout are real WooCommerce, brand-skinned.
   ========================================================================== */
.sn-brand .woocommerce, .sn-brand.woocommerce{ font-family:var(--font); }

/* --- shop / archive grid --- */
.sn-shop-wrap{ padding:clamp(36px,5vw,64px) 6vw clamp(56px,8vw,96px); }
.sn-shop-wrap .wc-block-product-template,
.sn-shop-wrap .wp-block-woocommerce-product-template,
.sn-shop-wrap ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:28px 24px; list-style:none; margin:0; padding:0; }
.sn-shop-wrap li.product, .sn-shop-wrap .wc-block-product{ margin:0 !important; width:auto !important; text-align:left; }
.sn-shop-wrap li.product a img, .sn-shop-wrap .wc-block-grid__product-image img,
.sn-shop-wrap .wc-block-components-product-image img{ border-radius:var(--r); border:1px solid var(--line); background:#eceef2; aspect-ratio:4/5; object-fit:cover; transition:transform .5s cubic-bezier(.23,1,.32,1); }
.sn-shop-wrap li.product:hover img{ transform:translateY(-6px); box-shadow:0 30px 54px -34px rgba(0,0,0,.4); }
.sn-shop-wrap .woocommerce-loop-product__title,
.sn-shop-wrap .wc-block-components-product-name{ font-size:1.3rem !important; font-weight:400 !important; letter-spacing:-.02em; color:var(--ink) !important; margin:14px 0 4px !important; padding:0 !important; }
.sn-shop-wrap .price, .sn-shop-wrap .wc-block-components-product-price{ color:var(--ink) !important; font-weight:600 !important; font-size:1.05rem !important; }
.sn-shop-wrap .price del{ color:var(--muted) !important; font-weight:400; }
.sn-shop-wrap .price ins{ text-decoration:none; }
.sn-shop-wrap .wc-block-components-product-rating{ display:none; }

/* woo button → SN pill everywhere */
.sn-brand a.button, .sn-brand button.button, .sn-brand .wp-block-button__link,
.sn-brand .wc-block-components-button, .sn-brand [type="submit"].button,
.sn-brand .single_add_to_cart_button{
  background:var(--coral) !important; color:#071022 !important; border:none !important; border-radius:999px !important;
  font-family:var(--mono) !important; font-size:.68rem !important; font-weight:700 !important; letter-spacing:.14em !important; text-transform:uppercase !important;
  padding:14px 26px !important; transition:filter .25s, transform .16s var(--ease-out) !important; box-shadow:none !important; line-height:1.2 !important; cursor:pointer;
}
.sn-brand a.button:hover, .sn-brand button.button:hover, .sn-brand .wp-block-button__link:hover,
.sn-brand .wc-block-components-button:hover, .sn-brand .single_add_to_cart_button:hover{
  background:var(--coral-dk) !important; color:#071022 !important; transform:translateY(-2px);
}
.sn-brand a.button:active, .sn-brand button.button:active, .sn-brand .single_add_to_cart_button:active{ transform:scale(.97); }
.sn-brand .added_to_cart{ margin-left:12px; font-size:.74rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; border-bottom:2px solid var(--coral); }

/* --- single product (PDP) --- */
.sn-pdp-wrap{ padding:clamp(28px,3.5vw,52px) 6vw clamp(56px,8vw,96px); }
.sn-brand .woocommerce-breadcrumb{ font-size:.78rem !important; color:var(--muted) !important; margin:0 0 26px !important; letter-spacing:.02em; }
.sn-brand .woocommerce-breadcrumb a{ color:var(--muted); } .sn-brand .woocommerce-breadcrumb a:hover{ color:var(--coral); }
.sn-brand.single-product div.product{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,5vw,72px); align-items:start; }
.sn-brand.single-product .woocommerce-product-gallery{ position:sticky; top:96px; background:var(--cream); border-radius:var(--r); padding:clamp(28px,4vw,52px); float:none !important; width:auto !important; margin:0 !important; }
.sn-brand.single-product .woocommerce-product-gallery img{ border-radius:4px; }
.sn-brand.single-product .woocommerce-product-gallery__trigger{ display:none; }
.sn-brand.single-product .product_title{ font-size:clamp(2.4rem,4.6vw,3.4rem) !important; margin:6px 0 8px !important; padding:0; letter-spacing:-.03em; }
.sn-brand.single-product .woocommerce-product-details__short-description{ color:var(--muted); font-size:1.02rem; line-height:1.55; max-width:46ch; }
.sn-brand.single-product p.price, .sn-brand.single-product .price{ color:var(--ink) !important; font-size:1.7rem !important; font-weight:600 !important; margin:22px 0 6px !important; }
.sn-brand.single-product .price del{ color:var(--muted) !important; font-weight:400; font-size:1.2rem; margin-right:10px; }
.sn-brand.single-product .price ins{ text-decoration:none; }
.sn-brand.single-product form.cart{ margin:22px 0 8px; display:flex; gap:12px; align-items:stretch; flex-wrap:wrap; }
.sn-brand.single-product form.cart .quantity input{ width:76px; height:100%; min-height:48px; border:1.5px solid var(--line); border-radius:4px; padding:0 12px; font:inherit; font-size:1rem; text-align:center; }
.sn-brand.single-product .single_add_to_cart_button{ flex:1; min-width:200px; justify-content:center; padding:17px 26px !important; }
.sn-brand.single-product .variations{ margin:14px 0 4px; }
.sn-brand.single-product .variations tbody, .sn-brand.single-product .variations tr{ display:block; }
.sn-brand.single-product .variations td, .sn-brand.single-product .variations th{ display:block; width:auto; padding:0; text-align:left; }
.sn-brand.single-product .variations label{ font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:8px; }
.sn-brand.single-product .variations select{ border:1.5px solid var(--line); border-radius:4px; padding:12px 16px; font:inherit; font-size:1rem; background:var(--panel); color:var(--ink); min-width:220px; }
.sn-brand.single-product .woocommerce-variation-price .price{ font-size:1.5rem !important; margin:14px 0 0 !important; }
.sn-brand.single-product .reset_variations{ font-size:.8rem; color:var(--muted); }

/* woo tabs → clean SN */
.sn-brand .woocommerce-tabs{ grid-column:1 / -1; margin-top:clamp(40px,5vw,64px); }
.sn-brand .woocommerce-tabs ul.tabs{ list-style:none; margin:0 0 24px; padding:0 0 0; display:flex; gap:28px; border-bottom:1px solid var(--line); }
.sn-brand .woocommerce-tabs ul.tabs::before{ display:none; }
.sn-brand .woocommerce-tabs ul.tabs li{ background:none !important; border:none !important; padding:0 0 14px !important; margin:0 !important; border-radius:0 !important; }
.sn-brand .woocommerce-tabs ul.tabs li::before,.sn-brand .woocommerce-tabs ul.tabs li::after{ display:none !important; }
.sn-brand .woocommerce-tabs ul.tabs li a{ font-size:.82rem !important; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted) !important; padding:0 !important; }
.sn-brand .woocommerce-tabs ul.tabs li.active a{ color:var(--ink) !important; }
.sn-brand .woocommerce-tabs .panel{ margin:0 !important; padding:0; color:var(--muted); line-height:1.7; max-width:70ch; }
.sn-brand .woocommerce-tabs h2{ display:none; }

/* related products */
.sn-brand .related.products, .sn-brand .up-sells{ grid-column:1 / -1; margin-top:clamp(48px,6vw,80px); border-top:1px solid var(--line); padding-top:clamp(40px,5vw,64px); }
.sn-brand .related.products > h2, .sn-brand .up-sells > h2{ font-size:clamp(1.8rem,3vw,2.4rem); font-weight:400; letter-spacing:-.02em; margin-bottom:32px; }
.sn-brand .related.products ul.products{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; list-style:none; margin:0; padding:0; }

/* woo notices → SN */
.sn-brand .woocommerce-message, .sn-brand .woocommerce-info, .sn-brand .woocommerce-error{
  border-top:none !important; border-left:4px solid var(--coral); background:var(--cream); border-radius:4px; padding:16px 20px; font-size:.95rem; color:var(--ink);
}
.sn-brand .woocommerce-message::before, .sn-brand .woocommerce-info::before{ color:var(--coral); }

/* --- cart + checkout blocks --- */
.sn-commerce-wrap{ padding:clamp(40px,5vw,72px) 6vw clamp(56px,8vw,96px); max-width:1200px; margin:0 auto; }
.sn-brand .wc-block-cart__submit-button, .sn-brand .wc-block-components-checkout-place-order-button{
  background:var(--coral) !important; color:#071022 !important; border-radius:999px !important; font-weight:700 !important; letter-spacing:.07em; text-transform:uppercase; font-size:.82rem !important; padding:18px !important;
}
.sn-brand .wc-block-components-totals-item__value, .sn-brand .wc-block-cart-items__row .wc-block-components-product-price{ font-weight:600; }
.sn-brand .wc-block-components-text-input input, .sn-brand .wc-block-components-country-input input,
.sn-brand .wc-block-checkout__form input, .sn-brand .wc-block-components-text-input.is-active label{ border-radius:4px; }
.sn-brand .wc-block-components-text-input input:focus{ outline-color:var(--coral); box-shadow:0 0 0 2px var(--coral); }
.sn-brand .is-large.wc-block-cart .wc-block-cart-items{ border-radius:var(--r); }

/* volume discount hint on PDP */
.sn-brand .sn-vol{ margin:18px 0 4px; display:flex; gap:8px; flex-wrap:wrap; }
.sn-brand .sn-vol span{ font-size:.74rem; font-weight:600; letter-spacing:.02em; color:var(--muted); background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:7px 14px; }
.sn-brand .sn-vol span b{ color:var(--coral); }

/* PDP appended spec/coa/assurance from plugin */
.sn-brand .sn-pdp-extra{ grid-column:1 / -1; margin-top:8px; }
.sn-brand .sn-assure{ display:flex; flex-wrap:wrap; gap:10px 26px; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-top:4px; }
.sn-brand .sn-assure span{ font-size:.85rem; color:var(--muted); display:inline-flex; align-items:center; gap:9px; }
.sn-brand .sn-assure span::before{ content:""; width:16px; height:16px; border-radius:50%; background:var(--coral); -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9.55 17.6 4.4 12.45l1.4-1.4 3.75 3.75 8.25-8.25 1.4 1.4z"/></svg>') center/78% no-repeat; mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9.55 17.6 4.4 12.45l1.4-1.4 3.75 3.75 8.25-8.25 1.4 1.4z"/></svg>') center/78% no-repeat; }

@media (max-width:1000px){
  .sn-shop-wrap .wc-block-product-template, .sn-shop-wrap .wp-block-woocommerce-product-template, .sn-shop-wrap ul.products,
  .sn-brand .related.products ul.products{ grid-template-columns:repeat(2,1fr) !important; }
}
@media (max-width:760px){
  .sn-brand.single-product div.product{ grid-template-columns:minmax(0,1fr); }
  .sn-brand.single-product .woocommerce-product-gallery{ position:static; }
  .sn-shop-wrap .wc-block-product-template, .sn-shop-wrap .wp-block-woocommerce-product-template, .sn-shop-wrap ul.products,
  .sn-brand .related.products ul.products{ grid-template-columns:1fr 1fr !important; }
}

/* ===== responsive-qa hardening (Preva-learned traps) ===== */
/* whole shop card = one tap target (stretched link) */
.sn-shop-wrap li.product{ position:relative; }
.sn-shop-wrap li.product .woocommerce-LoopProduct-link::after{ content:""; position:absolute; inset:0; z-index:1; }
.sn-shop-wrap li.product .button{ position:relative; z-index:2; }
/* no sticky hover on touch */
@media (hover:none){
  .sn-shop-wrap li.product:hover img{ transform:none; box-shadow:none; }
}
/* PDP + shop: max-width container, never edge-hug */
.sn-pdp-wrap, .sn-shop-wrap{ max-width:1280px; margin:0 auto; }

/* dark notices + qty input (were defaulting to light) */
.sn-brand .woocommerce-message, .sn-brand .woocommerce-info, .sn-brand .woocommerce-error,
.sn-brand .wc-block-components-notice-banner{
  background:var(--panel) !important; color:var(--ink) !important;
  border:1px solid var(--line) !important; border-left:3px solid var(--coral) !important; border-radius:6px !important;
}
.sn-brand .woocommerce-message a, .sn-brand .woocommerce-info a{ color:var(--coral); font-weight:600; }
.sn-brand .woocommerce-message::before, .sn-brand .woocommerce-info::before{ color:var(--coral) !important; }
.sn-brand.single-product form.cart .quantity input{ background:var(--panel); color:var(--ink); }
/* gallery panel: contain the image */
.sn-brand.single-product .woocommerce-product-gallery img{ width:100%; height:auto; display:block; }

/* ============================================================= V9: catalog + PDP million-dollar pass */
/* --- catalog header background plate (theme asset) --- */
.sn-brand.post-type-archive-product .sn-phero{ background:var(--paper); }
.sn-brand.post-type-archive-product .sn-phero::before{ opacity:.04; }
.sn-brand.post-type-archive-product .sn-phero::after{ content:""; position:absolute; inset:0; z-index:0; background:url(img/phero.jpg) center/cover no-repeat; opacity:.3; }
.sn-brand.post-type-archive-product .sn-phero > *{ position:relative; z-index:1; }

/* --- catalog loop cards: match the home index cards --- */
.sn-shop-wrap{ padding-top:clamp(28px,4vw,48px); }
.sn-shop-wrap .woocommerce-result-count, .sn-shop-wrap .woocommerce-ordering{ display:none !important; }
.sn-shop-wrap ul.products{ gap:18px !important; }
.sn-shop-wrap li.product{ background:var(--panel); border:1px solid var(--line); border-radius:20px; padding:8px 8px 16px !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.4); transition:transform .5s var(--ease-drawer), border-color .25s; }
.sn-shop-wrap li.product:hover{ transform:translateY(-4px); border-color:var(--coral); }
.sn-shop-wrap li.product img{ border-radius:14px !important; border:none !important; aspect-ratio:4/5 !important; width:100%; }
.sn-shop-wrap li.product .sn-card-tag{ top:18px; left:18px; }
.sn-shop-wrap .woocommerce-loop-product__title{ font-size:1.12rem !important; font-weight:800 !important; font-stretch:110%; letter-spacing:-.01em; padding:14px 8px 0 !important; }
.sn-shop-wrap .price{ padding:2px 8px 8px; display:block; font-variant-numeric:tabular-nums; }
.sn-shop-wrap li.product .button{ margin:6px 8px 2px; }

/* --- PDP: editorial buy layout --- */
.sn-pdp-wrap{ padding-top:clamp(24px,3vw,40px); }
.sn-brand .hx-pdp-kicker{ display:flex; align-items:center; gap:12px; margin:4px 0 10px; font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.sn-brand .hx-pdp-badge{ background:var(--deep); color:#fff; border-radius:999px; padding:5px 12px; font-size:.6rem; letter-spacing:.16em; }
.sn-brand.single-product .product_title{ font-size:clamp(2.5rem,4.8vw,3.8rem) !important; font-stretch:112%; line-height:.94; letter-spacing:-.02em; }
.sn-brand.single-product .woocommerce-product-gallery{ position:sticky; top:104px; background:var(--panel); border:1px solid var(--line); border-radius:22px; padding:8px !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.4); }
.sn-brand.single-product .woocommerce-product-gallery__wrapper{ border-radius:15px; overflow:hidden; }
.sn-brand.single-product .woocommerce-product-gallery img{ border-radius:0; }
.sn-brand.single-product .flex-control-thumbs{ display:flex; gap:8px; margin:8px 4px 4px !important; padding:0; list-style:none; }
.sn-brand.single-product .flex-control-thumbs li{ width:72px; }
.sn-brand.single-product .flex-control-thumbs img{ border-radius:10px; border:2px solid transparent; cursor:pointer; opacity:.6; transition:opacity .2s, border-color .2s; }
.sn-brand.single-product .flex-control-thumbs img.flex-active, .sn-brand.single-product .flex-control-thumbs img:hover{ opacity:1; border-color:var(--coral); }
.sn-brand.single-product p.price{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:14px 0 !important; margin:22px 0 14px !important; max-width:420px; font-variant-numeric:tabular-nums; }
.sn-brand.single-product form.cart .quantity input{ background:var(--cream); border-radius:999px; }
.sn-brand.single-product .single_add_to_cart_button{ border-radius:999px !important; }
.sn-brand .sn-assure{ border-bottom:none; padding-bottom:6px; }
.sn-brand .sn-assure span::before{ border-radius:2px; }
/* spec section header to match the index system */
.sn-brand .sn-pdp-extra .sn-kicker{ color:var(--coral); }
.sn-brand .sn-pdp-extra{ margin-top:clamp(28px,4vw,48px); }
/* related products */
.sn-brand .related.products > h2, .sn-brand .up-sells > h2{ font-weight:800; font-stretch:110%; letter-spacing:-.02em; }
.sn-brand .related.products ul.products{ gap:18px; }
.sn-brand .related.products li.product{ background:var(--panel); border:1px solid var(--line); border-radius:20px; padding:8px 8px 16px; }
.sn-brand .related.products li.product img{ border-radius:14px; }

/* --- PDP structural grid (floats can't be sticky) --- */
.sn-brand.single-product div.product{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:0 clamp(28px,4.5vw,64px); align-items:start; }
.sn-brand.single-product div.product > *{ grid-column:1 / -1; min-width:0; }
.sn-brand.single-product div.product > .woocommerce-product-gallery{ grid-column:1; grid-row:1; float:none !important; width:100% !important; margin:0 !important; }
.sn-brand.single-product div.product > .summary{ grid-column:2; grid-row:1; float:none !important; width:100% !important; margin:0 !important; }
.sn-brand.single-product .woocommerce-tabs{ margin-top:clamp(32px,5vw,56px); }
.sn-brand.single-product .woocommerce-tabs ul.tabs{ display:none !important; }
.sn-brand.single-product .woocommerce-tabs .panel{ max-width:820px; margin:0; padding:0; }
.sn-brand.single-product .woocommerce-tabs .panel > h2:first-child{ font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--coral); margin-bottom:14px; }
.sn-brand.single-product .related.products > h2{ font-size:clamp(1.6rem,2.6vw,2.2rem); margin:clamp(36px,5vw,64px) 0 18px; }
.sn-brand .sn-loop-kicker{ display:block; padding:12px 8px 0; font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.sn-shop-wrap .woocommerce-loop-product__title{ padding-top:4px !important; }
@media (max-width:768px){
  .sn-shop-wrap ul.products{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:12px !important; }
  .sn-shop-wrap li.product{ width:100% !important; margin:0 !important; }
  .sn-brand.single-product div.product{ grid-template-columns:minmax(0,1fr); }
  .sn-brand.single-product div.product > .woocommerce-product-gallery{ grid-row:1; grid-column:1; position:static; }
  .sn-brand.single-product div.product > .summary{ grid-row:2; grid-column:1; }
}

/* --- V9.1 fixes: true grid, no duplicate headers, related cards --- */
.sn-shop-wrap .woocommerce-breadcrumb, .sn-shop-wrap .woocommerce-products-header{ display:none !important; }
.sn-shop-wrap ul.products, .sn-brand .related.products ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:18px !important; width:100% !important; margin:0 0 40px !important; padding:0 !important; }
.sn-shop-wrap ul.products::before, .sn-shop-wrap ul.products::after, .sn-brand .related.products ul.products::before, .sn-brand .related.products ul.products::after{ display:none !important; }
.sn-shop-wrap li.product, .sn-brand .related.products li.product{ float:none !important; width:100% !important; margin:0 !important; display:flex; flex-direction:column; }
.sn-brand .related.products li.product{ padding:8px 8px 16px !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.4); transition:transform .5s var(--ease-drawer), border-color .25s; }
.sn-brand .related.products li.product:hover{ transform:translateY(-4px); border-color:var(--coral); }
.sn-brand .related.products li.product img{ border-radius:14px !important; border:none !important; aspect-ratio:4/5 !important; width:100% !important; height:auto !important; object-fit:cover; }
.sn-brand .related.products li.product .sn-card-tag{ top:18px; left:18px; }
.sn-brand .related.products .woocommerce-loop-product__title{ font-size:1rem !important; font-weight:800 !important; font-stretch:110%; letter-spacing:-.01em; padding:4px 8px 0 !important; }
.sn-brand .related.products .sn-loop-kicker{ padding:12px 8px 0; }
.sn-brand .related.products .price{ padding:2px 8px 8px; display:block; font-variant-numeric:tabular-nums; }
.sn-brand .related.products li.product .button{ margin:auto 8px 2px; align-self:flex-start; }
.sn-shop-wrap li.product .button{ margin-top:auto; align-self:flex-start; }
.sn-brand.single-product .product_meta{ display:none !important; }
.sn-brand .related.products{ grid-column:1 / -1; }
@media (max-width:768px){
  .sn-shop-wrap ul.products, .sn-brand .related.products ul.products{ grid-template-columns:1fr 1fr !important; gap:12px !important; }
}

/* --- V9.2: gallery back to flow --- */
.sn-brand.single-product .woocommerce-product-gallery{ position:relative !important; top:auto !important; }
.sn-brand .related.products ul.products{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; }

/* --- V9.3: NO sticky summary — sticky grid items clamp to the grid container
   (not their row), so a sticky summary rides down over the spec/tabs sections
   on every viewport once the gallery scrolls past. --- */
.sn-brand.single-product div.product > .summary{ position:static; }
/* mobile card grids: 2-up, minmax(0,*) so min-content cards can never widen the
   page; must stay AFTER the V9.2 3-col related rule in the cascade */
@media (max-width:768px){
  .sn-shop-wrap ul.products, .sn-brand .related.products ul.products{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  /* Woo block grid ships -8px side margins that widen the page past the viewport */
  ul.wc-block-grid__products{ margin-left:0 !important; margin-right:0 !important; }
}

/* --- V10: researcher login gate (account page) --- */
.sn-brand .sn-gate-note{ max-width:640px; margin:0 0 34px; }
.sn-brand .sn-gate-note h1{ margin:10px 0 12px; }
.sn-brand .sn-gate-note p{ color:var(--muted); line-height:1.7; }
.sn-brand .sn-reg-attest label{ display:flex; gap:10px; align-items:flex-start; font-size:.88rem; line-height:1.6; color:var(--muted); }
.sn-brand .sn-reg-attest input{ margin-top:4px; flex:none; }

/* --- V10.1: gate-view sign-in forms (modal presentation of the login gate) --- */
.sn-brand .sn-gate{ overflow-y:auto; }
.sn-brand .sn-gate-box{ margin:auto; }
.sn-brand .sn-gate-box .sn-kicker{ display:block; margin-bottom:10px; }
.sn-brand .sn-gate-form{ display:flex; flex-direction:column; gap:12px; margin:0 0 16px; }
.sn-brand .sn-gate-form label{ display:flex; flex-direction:column; gap:6px; font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.sn-brand .sn-gate-form input[type="text"], .sn-brand .sn-gate-form input[type="email"], .sn-brand .sn-gate-form input[type="password"]{ border:1.5px solid var(--line); background:var(--panel); color:var(--ink); border-radius:6px; padding:12px 14px; font:inherit; font-size:.95rem; }
.sn-brand .sn-gate-form input:focus{ outline:none; border-color:var(--coral); }
.sn-brand .sn-gate-attest{ flex-direction:row !important; align-items:flex-start; gap:10px !important; text-transform:none !important; letter-spacing:0 !important; font-weight:400 !important; font-size:.8rem !important; line-height:1.55; }
.sn-brand .sn-gate-attest input{ margin-top:3px; flex:none; }
.sn-brand .sn-gate-reg{ margin:0 0 16px; border-top:1px solid var(--line); padding-top:14px; }
.sn-brand .sn-gate-reg summary{ cursor:pointer; font-size:.8rem; font-weight:600; color:var(--ink); list-style:none; }
.sn-brand .sn-gate-reg summary::-webkit-details-marker{ display:none; }
.sn-brand .sn-gate-reg summary::after{ content:" →"; color:var(--coral); }
.sn-brand .sn-gate-reg[open] summary{ margin-bottom:14px; }

/* --- V10.2: checkout research-use declaration step --- */
.sn-brand .sn-confirm-wrap{ max-width:660px; margin:0 auto; padding:clamp(48px,7vw,90px) 6vw clamp(64px,8vw,110px); }
.sn-brand .sn-confirm-form fieldset{ border:none; margin:26px 0 4px; padding:0; display:flex; flex-direction:column; gap:10px; }
.sn-brand .sn-confirm-form legend{ font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:12px; }
.sn-brand .sn-confirm-opt{ display:flex; gap:12px; align-items:center; border:1px solid var(--line); border-radius:10px; padding:14px 16px; cursor:pointer; background:var(--panel); transition:border-color .2s, background .2s; font-size:.95rem; }
.sn-brand .sn-confirm-opt:hover{ border-color:var(--coral); }
.sn-brand .sn-confirm-opt:has(input:checked){ border-color:var(--coral); background:var(--cream); }
.sn-brand .sn-confirm-opt input{ accent-color:var(--coral); flex:none; }
.sn-brand .sn-confirm-attest{ margin:18px 0 22px; }
.sn-brand .sn-confirm-err{ border-left:4px solid #d96a6a; background:var(--cream); padding:12px 16px; border-radius:6px; margin:14px 0 4px; font-size:.9rem; }
.sn-brand .sn-confirm-form .sn-gate-enter{ width:100%; }

/* --- V10.3: my-account page (login/register fallback + dashboard) --- */
.sn-brand.woocommerce-account .woocommerce{ max-width:1120px; margin:0 auto; padding:clamp(40px,6vw,72px) 6vw clamp(72px,9vw,120px); }
.sn-brand .u-columns.col2-set{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,3vw,40px); }
.sn-brand .u-columns.col2-set .u-column1, .sn-brand .u-columns.col2-set .u-column2{ width:auto; float:none; max-width:none; }
.sn-brand.woocommerce-account .u-column1 h2, .sn-brand.woocommerce-account .u-column2 h2{ font-weight:800; font-stretch:110%; letter-spacing:-.02em; margin:0 0 16px; }
.sn-brand.woocommerce-account form.login, .sn-brand.woocommerce-account form.register{ background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:clamp(22px,3.2vw,34px); margin:0; }
.sn-brand.woocommerce-account form .form-row label{ font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; }
.sn-brand.woocommerce-account form input[type="text"], .sn-brand.woocommerce-account form input[type="email"], .sn-brand.woocommerce-account form input[type="password"]{ width:100%; border:1.5px solid var(--line); background:var(--cream); color:var(--ink); border-radius:6px; padding:12px 14px; font:inherit; font-size:.95rem; }
.sn-brand.woocommerce-account form input:focus{ outline:none; border-color:var(--coral); }
.sn-brand.woocommerce-account .show-password-input::after{ color:var(--muted); }
.sn-brand.woocommerce-account .lost_password{ margin:14px 0 0; font-size:.86rem; }
@media (max-width:860px){ .sn-brand .u-columns.col2-set{ grid-template-columns:1fr; } }

/* --- V10.4: pin account columns (a notices div is also a grid child) --- */
.sn-brand .u-columns.col2-set > *{ grid-column:1 / -1; }
.sn-brand .u-columns.col2-set > .u-column1{ grid-column:1; grid-row:2; }
.sn-brand .u-columns.col2-set > .u-column2{ grid-column:2; grid-row:2; }
@media (max-width:860px){
  .sn-brand .u-columns.col2-set > .u-column1{ grid-column:1; grid-row:auto; }
  .sn-brand .u-columns.col2-set > .u-column2{ grid-column:1; grid-row:auto; }
}
.sn-brand.woocommerce-account form .sn-reg-attest label{ text-transform:none; letter-spacing:0; font-weight:400; font-size:.82rem; line-height:1.6; }
