/*
Theme Name: Studio Nafay
Theme URI: https://mediumblue-swallow-578696.hostingersite.com
Author: Studio Nafay
Author URI: https://mediumblue-swallow-578696.hostingersite.com
Description: Black and white editorial WooCommerce theme for Studio Nafay. Curated designer bags.
Version: 2.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: studio-nafay
Tags: e-commerce, one-column, custom-menu, editor-style, featured-images
WC requires at least: 7.0
WC tested up to: 9.9
*/

/* ============================================================
   1. TOKENS
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=IBM+Plex+Mono:wght@300;400;500&display=swap');

:root{
  --ink:#000;
  --paper:#fff;
  --hush:#f3f3f3;
  --mid:#8c8c8c;
  --line:#e0e0e0;
  --line-dk:#242424;
  --pad:clamp(16px,4vw,60px);
  --display:'Syne',Arial,sans-serif;
  --mono:'IBM Plex Mono',monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:var(--display);font-weight:400;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
:focus-visible{outline:1px solid currentColor;outline-offset:3px}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:15px;top:15px;z-index:999;background:#fff;padding:12px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}

.mono{font-family:var(--mono);font-weight:400;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--mid)}

/* ============================================================
   2. THE PLATE — house device (registration-mark frame)
   ============================================================ */
.plate{position:relative;border:1px solid var(--ink);padding:7px;background:var(--paper)}
.plate::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(var(--ink),var(--ink)) 3px 3px/9px 1px no-repeat,
    linear-gradient(var(--ink),var(--ink)) 3px 3px/1px 9px no-repeat,
    linear-gradient(var(--ink),var(--ink)) calc(100% - 3px) 3px/9px 1px no-repeat,
    linear-gradient(var(--ink),var(--ink)) calc(100% - 3px) 3px/1px 9px no-repeat,
    linear-gradient(var(--ink),var(--ink)) 3px calc(100% - 3px)/9px 1px no-repeat,
    linear-gradient(var(--ink),var(--ink)) 3px calc(100% - 3px)/1px 9px no-repeat,
    linear-gradient(var(--ink),var(--ink)) calc(100% - 3px) calc(100% - 3px)/9px 1px no-repeat,
    linear-gradient(var(--ink),var(--ink)) calc(100% - 3px) calc(100% - 3px)/1px 9px no-repeat;}
.plate.inv{border-color:#fff;background:transparent}
.plate.inv::before{background-image:
  linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),
  linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff)}

/* ============================================================
   3. MEDIA
   ============================================================ */
.media{position:relative;overflow:hidden;background:var(--hush)}
.media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.3,1)}
.media img.contain{object-fit:contain;padding:7%;background:var(--hush)}
.a45{aspect-ratio:4/5}
.a34{aspect-ratio:3/4}
.a43{aspect-ratio:4/3}
.low img{object-position:center 68%}
.top img{object-position:center 24%}
.placeholder{display:grid;place-items:center;min-height:320px;background:#e9e9e9;color:var(--mid);
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase}

/* ============================================================
   4. TICKER
   ============================================================ */
.ticker{background:var(--ink);color:#fff;overflow:hidden;padding:9px 0}
.ticker__track{display:flex;gap:42px;width:max-content;animation:ticker 34s linear infinite}
.ticker__track span{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;white-space:nowrap}
@keyframes ticker{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker__track{animation:none}}

/* ============================================================
   5. HEADER
   ============================================================ */
.site-header{position:sticky;top:0;z-index:80;background:var(--paper)}
.header-bar{display:flex;align-items:center;gap:20px;padding:14px var(--pad);border-bottom:1px solid transparent;transition:border-color .3s}
.site-header.is-stuck .header-bar{border-color:var(--line)}
.brand{font-family:var(--display);font-weight:800;font-size:clamp(18px,2.3vw,25px);letter-spacing:-.05em;text-transform:uppercase}
.desktop-nav{display:flex;gap:20px;margin-left:12px}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:16px}
.menu-toggle{display:none;width:20px;padding:0}
.menu-toggle i{display:block;height:1.5px;background:var(--ink);margin:5px 0}
@media(max-width:1000px){.desktop-nav{display:none}.menu-toggle{display:block}}

.scrim{position:fixed;inset:0;background:rgba(0,0,0,.55);opacity:0;pointer-events:none;transition:opacity .35s;z-index:90}
.scrim.is-open{opacity:1;pointer-events:auto}
.nav-drawer{position:fixed;top:0;bottom:0;right:0;width:min(370px,88vw);background:var(--ink);color:#fff;z-index:95;
  transform:translateX(100%);transition:transform .5s cubic-bezier(.4,0,.2,1);padding:18px 24px 40px;overflow:auto}
.nav-drawer.is-open{transform:none}
.drawer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line-dk)}
.nav-drawer a{display:block;padding:15px 0;border-bottom:1px solid var(--line-dk);
  font-family:var(--display);font-weight:800;font-size:18px;text-transform:uppercase;letter-spacing:-.03em}

/* ============================================================
   6. HERO
   ============================================================ */
.hero{position:relative;height:clamp(520px,88vh,900px);background:#000;color:#fff;overflow:hidden}
.hero__media{position:absolute;inset:0}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 46%}
.hero__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.3),rgba(0,0,0,.05) 34%,rgba(0,0,0,.72))}
.hero__copy{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(34px,7vh,74px);z-index:3}
.hero h1{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.05em;line-height:.86;
  font-size:clamp(30px,8.2vw,112px);margin:0;overflow-wrap:break-word;max-width:100%}
.hero__eyebrow{margin:0 0 16px}
.hero__row{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-end;justify-content:space-between;margin-top:22px}
.hero__text{max-width:48ch;line-height:2;margin:0;color:#d8d8d8}
.hero__stamp{position:absolute;top:clamp(20px,4vh,40px);right:var(--pad);z-index:3;padding:11px 14px;color:#fff}
.hero__stamp strong{display:block;font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:-.03em;margin-top:5px}

.btn{display:inline-flex;align-items:center;gap:11px;background:#fff;color:#000;padding:15px 26px;
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  transition:background .3s,color .3s,box-shadow .3s;border:0}
.btn:hover{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px #fff}
.btn--dark{background:#000;color:#fff}
.btn--dark:hover{background:transparent;color:#000;box-shadow:inset 0 0 0 1px #000}

/* ============================================================
   7. SECTION HEAD
   ============================================================ */
.section{padding-top:clamp(56px,8vw,112px)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;
  padding:0 var(--pad) clamp(18px,2.6vw,32px);border-bottom:1px solid var(--line);margin-bottom:clamp(18px,2.6vw,30px)}
.section-title{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.045em;line-height:.9;
  font-size:clamp(28px,5.2vw,66px);margin:0}
.section-head .side{text-align:right;flex:0 0 auto;padding-bottom:5px;max-width:30ch}

/* ============================================================
   8. FEATURED SPLIT
   ============================================================ */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(20px,3.4vw,54px);padding:0 var(--pad);align-items:center}
.split__media{aspect-ratio:4/5}
.split__content h3{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.045em;line-height:.92;
  font-size:clamp(30px,4.6vw,64px);margin:14px 0 16px}
.split__content .lead{font-size:14px;line-height:1.9;color:#3d3d3d;max-width:44ch;margin:0}
.specs{border-top:1px solid var(--line);margin:22px 0}
.specs div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.specs span{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.specs span:last-child{color:var(--mid)}
.split__buy{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:20px}
.price{font-family:var(--mono);font-size:15px;letter-spacing:.04em}

/* ============================================================
   9. RAILS / CAROUSELS
   ============================================================ */
.rail-wrap{padding:0 var(--pad)}
.rail{display:flex;gap:clamp(12px,2vw,24px);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rail::-webkit-scrollbar{display:none}
.rail>*{flex:0 0 auto;scroll-snap-align:start}
.rail--3>*{width:calc((100% - 2*clamp(12px,2vw,24px))/3)}
.rail--4>*{width:calc((100% - 3*clamp(12px,2vw,24px))/4)}
@media(max-width:1000px){.rail--3>*,.rail--4>*{width:72%}}
.rail-ctl{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px var(--pad) 0;flex-wrap:wrap}
.rail-ctl .arrows{display:flex;gap:8px;margin-left:auto}
.rail-ctl .arrows button{width:34px;height:34px;border:1px solid var(--line);display:grid;place-items:center;transition:.25s}
.rail-ctl .arrows button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.rail-tabs{display:flex;gap:6px;flex-wrap:wrap}
.rail-tabs button{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;padding:8px 13px;border:1px solid var(--line)}
.rail-tabs button.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ============================================================
   10. PRODUCT CARD
   ============================================================ */
.card{position:relative}
.card:hover .media img{transform:scale(1.045)}
.card__stamp{position:absolute;top:14px;left:14px;z-index:3;background:var(--paper);padding:4px 7px;
  font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.card__flag{position:absolute;top:14px;right:14px;z-index:3;background:var(--ink);color:#fff;padding:4px 7px;
  font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.card__info{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:12px}
.card__title{font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:-.02em;text-transform:uppercase;line-height:1.25}
.card__price{font-family:var(--mono);font-size:11px;letter-spacing:.05em;white-space:nowrap}
.card__price del{color:var(--mid);margin-right:5px}
.card__price ins{text-decoration:none}
.card__row2{display:flex;justify-content:space-between;align-items:center;margin-top:8px;min-height:18px}
.card__row2 a,.card__row2 .added_to_cart{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;position:relative}
.card__row2 a::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1px;background:currentColor;transition:right .4s}
.card__row2 a:hover::after{right:0}

/* ============================================================
   11. SHAPE TILES
   ============================================================ */
.tile{display:block;background:var(--hush);transition:background .45s,color .45s}
.tile__cap{padding:14px 16px 18px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.tile__cap h3{font-family:var(--display);font-weight:800;font-size:clamp(14px,1.6vw,19px);text-transform:uppercase;letter-spacing:-.03em;margin:0}
.tile__cap span{white-space:nowrap;color:var(--mid);transition:color .45s}
.tile:hover{background:var(--ink);color:#fff}
.tile:hover .tile__cap span{color:#9a9a9a}
.tile:hover img{transform:scale(1.05)}

/* ============================================================
   12. PRIVATE ROOM
   ============================================================ */
.vault{background:var(--ink);color:#fff;margin-top:clamp(56px,8vw,112px);padding:clamp(40px,7vw,96px) var(--pad)}
.vault__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,60px);align-items:center}
.vault h2{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.045em;line-height:.9;
  font-size:clamp(30px,5.4vw,72px);margin:14px 0 0}
.vault .lead{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;line-height:2.1;color:#b6b6b6;margin:16px 0 0;max-width:44ch}
.vault__form{margin-top:26px;max-width:430px}
.vault__form .in{display:flex;align-items:center;border-bottom:1px solid #3a3a3a}
.vault__form input{flex:1;background:none;border:0;padding:13px 0;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#fff}
.vault__form input::placeholder{color:#6b6b6b}
.vault__form button{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#fff;padding:0 2px}
.vault__msg{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;margin-top:10px;color:#8a8a8a;min-height:14px}
.vault__locked{position:relative}
.vault__veil{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(9px);z-index:4;display:grid;place-items:center;
  text-align:center;transition:opacity .7s ease}
.vault__veil b{display:block;font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:-.03em;text-transform:uppercase}
.vault__veil span{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#9a9a9a}
.vault__inner{filter:blur(7px);transform:scale(1.02);transition:filter .9s ease,transform .9s ease}
.vault.is-open .vault__veil{opacity:0;pointer-events:none}
.vault.is-open .vault__inner{filter:none;transform:none}
.vault .card__title,.vault .card__price{color:#fff}
.vault .card__stamp{background:#fff;color:#000}

/* ============================================================
   13. STORY SPLIT
   ============================================================ */
.story{display:grid;grid-template-columns:1fr 1fr}
.story__media{min-height:clamp(340px,50vw,620px)}
.story__pane{padding:clamp(30px,6vw,78px) var(--pad);display:flex;flex-direction:column;justify-content:center;gap:16px}
.story__pane h3{font-family:var(--display);font-weight:800;font-size:clamp(24px,3.6vw,50px);text-transform:uppercase;letter-spacing:-.04em;line-height:.94;margin:0}
.story__pane p{font-size:14px;line-height:1.95;color:#3d3d3d;max-width:42ch;margin:0}

/* ============================================================
   14. LOOKBOOK
   ============================================================ */
.lookbook{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.lookbook figure{margin:0;position:relative;background:var(--paper);overflow:hidden}
.lookbook figure:hover img{transform:scale(1.05)}
.lookbook figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 15px 14px;color:#fff;
  background:linear-gradient(transparent,rgba(0,0,0,.6));font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase}

/* ============================================================
   15. REVIEWS
   ============================================================ */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.review{padding:clamp(24px,3vw,40px) clamp(18px,2.4vw,34px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;min-height:250px;transition:background .4s,color .4s}
.review:hover{background:var(--ink);color:#fff}
.review blockquote{margin:auto 0 0;font-size:clamp(15px,1.5vw,18px);line-height:1.6;letter-spacing:-.01em}
.review .who{margin-top:16px}
.review .stars{font-family:var(--mono);font-size:11px;letter-spacing:.3em}

/* ============================================================
   16. FOOTER
   ============================================================ */
.site-footer{background:var(--ink);color:#fff;margin-top:clamp(56px,8vw,110px);padding:clamp(38px,6vw,76px) var(--pad) 0}
.footer-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(26px,5vw,64px)}
.footer-note h4{font-family:var(--display);font-weight:800;font-size:clamp(20px,2.6vw,34px);text-transform:uppercase;letter-spacing:-.04em;line-height:1;margin:0}
.footer-note .sub{margin-top:11px;color:#9a9a9a}
.footer-form{display:flex;align-items:center;border-bottom:1px solid #333;margin-top:22px;max-width:440px}
.footer-form input{flex:1;background:none;border:0;padding:13px 0;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.footer-form input::placeholder{color:#6b6b6b}
.footer-form button{font-size:16px;padding:0 4px;color:#fff}
.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.footer-cols h5{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:#7d7d7d;margin:0 0 12px}
.footer-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.footer-cols a{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#dcdcdc}
.footer-cols a:hover{color:#fff}
.footer-wordmark{margin-top:clamp(34px,6vw,66px);font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.06em;
  font-size:clamp(56px,17vw,232px);line-height:.78;text-align:center}
.footer-bottom{border-top:1px solid #222;margin-top:clamp(20px,3vw,36px);padding:17px 0 26px;display:flex;flex-wrap:wrap;gap:12px;
  justify-content:space-between;color:#7d7d7d}

/* ============================================================
   17. UTIL
   ============================================================ */
.sn-note{position:fixed;left:var(--pad);bottom:20px;z-index:100;background:var(--ink);color:#fff;padding:12px 17px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;transform:translateY(170%);
  transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.sn-note.is-on{transform:none}
.to-top{position:fixed;right:16px;bottom:18px;z-index:70;width:38px;height:38px;background:var(--ink);color:#fff;
  display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .3s}
.to-top.is-on{opacity:1;pointer-events:auto}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ============================================================
   18. RESPONSIVE (global sections)
   ============================================================ */
@media(max-width:1000px){
  .split,.story,.vault__grid,.footer-grid{grid-template-columns:1fr}
  .lookbook{grid-template-columns:1fr 1fr}
  .reviews{grid-template-columns:1fr}
}
@media(max-width:600px){
  .hero h1{font-size:clamp(26px,9vw,40px)}
  .footer-cols{grid-template-columns:repeat(2,1fr)}
  .section-head{flex-direction:column;align-items:flex-start}
  .section-head .side{text-align:left}
}

/* ============================================================
   19. SHOP / ARCHIVE — mobile first, scoped
   ============================================================ */
.shop-hero{padding:clamp(24px,5vw,56px) var(--pad) 0}
.shop-hero h1{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.045em;line-height:.92;
  font-size:clamp(26px,7vw,72px);margin:0;overflow-wrap:break-word}
.shop-hero .desc{margin-top:14px;max-width:60ch;line-height:1.9;font-size:14px;color:#3d3d3d}

/* base = mobile: single column stack */
.shop-layout{display:block;padding:clamp(18px,3vw,40px) var(--pad) clamp(40px,6vw,80px)}
.shop-main{min-width:0}

.shop-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin-bottom:18px}
.shop-toolbar .count{color:var(--mid)}
.shop-toolbar .right{margin-left:auto;display:flex;align-items:center;gap:12px;min-width:0}
.shop-toolbar form.woocommerce-ordering{margin:0}
.shop-toolbar select{max-width:100%;border:1px solid var(--line);padding:8px 10px;font-family:var(--mono);font-size:9.5px;
  letter-spacing:.14em;text-transform:uppercase;background:var(--paper);border-radius:0;-webkit-appearance:none;appearance:none}

.filter-open{display:inline-block;border:1px solid var(--ink);padding:9px 14px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase}

/* mobile: sidebar is a drawer, fully hidden until opened */
.shop-filters{position:fixed;top:0;right:0;bottom:0;width:min(360px,90vw);background:var(--paper);z-index:96;
  padding:18px 22px 40px;overflow-y:auto;overflow-x:hidden;
  transform:translateX(101%);visibility:hidden;
  transition:transform .45s cubic-bezier(.4,0,.2,1),visibility 0s linear .45s}
.shop-filters.is-open{transform:none;visibility:visible;
  transition:transform .45s cubic-bezier(.4,0,.2,1),visibility 0s}
.filter-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line)}

.filter-group{border-bottom:1px solid var(--line);padding:14px 0}
.filter-group>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase}
.filter-group>summary::-webkit-details-marker{display:none}
.filter-group>summary::after{content:"+";font-family:var(--display);font-size:15px;line-height:1}
.filter-group[open]>summary::after{content:"–"}
.filter-list{margin-top:12px;display:grid;gap:9px;max-height:240px;overflow-y:auto}
.filter-list label{display:flex;align-items:center;gap:9px;cursor:pointer;
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.filter-list input[type=checkbox]{appearance:none;-webkit-appearance:none;width:12px;height:12px;border:1px solid var(--ink);
  flex:0 0 auto;border-radius:0;background:var(--paper);margin:0}
.filter-list input[type=checkbox]:checked{background:var(--ink)}
.filter-list .n{margin-left:auto;color:var(--mid)}
.filter-price{display:flex;align-items:center;gap:8px;margin-top:12px}
.filter-price input{width:100%;min-width:0;border:1px solid var(--line);padding:9px 10px;
  font-family:var(--mono);font-size:10px;border-radius:0;background:var(--paper)}
.filter-price span{color:var(--mid);font-family:var(--mono);font-size:10px}
.filter-actions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}
.filter-actions .apply{background:var(--ink);color:#fff;padding:12px 18px;font-family:var(--mono);font-size:9.5px;
  letter-spacing:.16em;text-transform:uppercase;flex:1}
.filter-actions .clear{border:1px solid var(--line);padding:12px 18px;font-family:var(--mono);font-size:9.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}

.active-chips{display:flex;gap:7px;flex-wrap:wrap;padding:0 0 14px}
.active-chips a{border:1px solid var(--line);padding:6px 10px;font-family:var(--mono);font-size:9px;
  letter-spacing:.14em;text-transform:uppercase}
.active-chips a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.shop-grid>*{min-width:0}
.shop-empty{padding:50px 0;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mid)}
.sn-pagination{margin-top:34px;border-top:1px solid var(--line);padding-top:20px}
.sn-pagination ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.sn-pagination .page-numbers{font-family:var(--mono);font-size:10px;letter-spacing:.14em;padding:8px 11px;
  border:1px solid var(--line);display:inline-block}
.sn-pagination .page-numbers.current{background:var(--ink);color:#fff;border-color:var(--ink)}

@media(min-width:700px){
  .shop-grid{grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,22px)}
}

@media(min-width:1001px){
  .shop-layout{display:grid;grid-template-columns:250px 1fr;gap:clamp(20px,3vw,44px)}
  .shop-toolbar{grid-column:1 / -1;margin-bottom:0}
  .filter-open,.filter-head{display:none}
  .shop-filters{position:static;width:auto;padding:0;background:none;z-index:auto;
    transform:none;visibility:visible;align-self:start;overflow:visible;transition:none}
  .shop-grid{grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,26px)}
}

/* ============================================================
   20. SINGLE PRODUCT — archive lab layout
   ============================================================ */

/* -- breadcrumb -- */
.snp-crumb{height:52px;border-bottom:1px solid var(--line);display:flex;align-items:center;overflow-x:auto;white-space:nowrap;padding:0 var(--pad)}
.snp-crumb span,.snp-crumb a{font-family:var(--mono);font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#444}
.snp-crumb a:hover{color:var(--ink)}
.snp-crumb b{font-weight:400;padding-inline:12px;color:#aaa}
.snp-crumb .current{color:var(--mid)}

/* -- head -- */
.snp-head{padding:clamp(38px,6vw,55px) var(--pad) clamp(20px,3vw,32px);text-align:center}
.snp-head .archive{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--mid);margin-bottom:16px}
.snp-head h1{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.055em;line-height:.86;
  font-size:clamp(32px,5.3vw,76px);margin:0 auto;max-width:980px}
.snp-head .snp-price{display:block;font-family:var(--mono);font-size:clamp(16px,2vw,26px);font-weight:500;letter-spacing:.05em;
  text-transform:uppercase;margin-top:18px}
.snp-head .snp-price del{color:var(--mid);margin-right:10px;font-weight:400}

/* -- gallery: hero + thumbnail rail -- */
.snp-gallery-wrap{position:relative;padding:0 var(--pad)}
.snp-cross{position:absolute;left:50%;width:26px;height:26px;transform:translateX(-50%);z-index:4;pointer-events:none}
.snp-cross:before,.snp-cross:after{content:"";position:absolute;background:#999}
.snp-cross:before{width:26px;height:1px;top:12px;left:0}.snp-cross:after{width:1px;height:26px;left:12px;top:0}
.snp-cross.top{top:-13px}.snp-cross.bottom{bottom:-13px}
.snp-stage-grid{display:grid;grid-template-columns:84px 1fr;gap:12px}
.snp-rail{display:flex;flex-direction:column;gap:9px}
.snp-rail-thumb{border:1px solid var(--line);background:var(--hush);aspect-ratio:1/1;overflow:hidden;padding:0;position:relative;cursor:pointer;transition:border-color .2s}
.snp-rail-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.snp-rail-thumb:hover img{transform:scale(1.06)}
.snp-rail-thumb.is-active{border-color:var(--ink)}
.snp-rail-thumb.is-active:after{content:"";position:absolute;inset:0;border:1px solid var(--ink)}
.snp-stage{position:relative;border:1px solid var(--line);background:var(--hush);overflow:hidden;height:560px}
.snp-stage img{width:100%;height:100%;object-fit:cover;transition:opacity .3s ease}
.snp-frame-label{position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:#555;background:var(--paper);padding:3px 6px;z-index:2}
.snp-stage-count{position:absolute;bottom:14px;right:14px;font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:#555;background:var(--paper);padding:3px 6px;z-index:2}
.snp-stage-arrow{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border:1px solid var(--line);background:var(--paper);display:grid;place-items:center;z-index:3;font-family:var(--mono);font-size:13px}
.snp-stage-arrow.prev{left:12px}.snp-stage-arrow.next{right:12px}
@media(max-width:900px){
  .snp-stage-grid{grid-template-columns:1fr}
  .snp-rail{flex-direction:row;overflow-x:auto;scrollbar-width:none;order:2}
  .snp-rail::-webkit-scrollbar{display:none}
  .snp-rail-thumb{flex:0 0 60px}
  .snp-stage{height:78vw}
}

/* -- purchase grid -- */
.snp-purchase{margin:34px var(--pad) 0;border:1px solid #a3a3a1}
.snp-cell{padding:20px 22px;border-bottom:1px solid #a3a3a1}
.snp-cell:last-child{border-bottom:0}
.snp-cell-title{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px;color:var(--mid)}
.snp-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.snp-tier{height:40px;border:1px solid #a3a3a1;display:grid;place-items:center;font-family:var(--mono);font-size:9px;letter-spacing:.13em;text-transform:uppercase}
.snp-tier.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}

.snp-cart-row{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
.snp-qty{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;text-align:center;border:1px solid #a3a3a1;height:46px;flex:0 0 132px}
.snp-qty button{height:100%;border:0;background:var(--paper);font-family:var(--mono);font-size:16px;cursor:pointer}
.snp-qty input{border:0;background:none;font-family:var(--mono);font-size:11px;text-align:center;width:100%;-moz-appearance:textfield}
.snp-qty input::-webkit-outer-spin-button,.snp-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.snp-cart-row .single_add_to_cart_button{flex:1;height:46px;border:0;background:var(--ink);color:#fff;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;transition:.25s;min-width:180px}
.snp-cart-row .single_add_to_cart_button:hover{background:#222}
.snp-cart-row .single_add_to_cart_button:disabled{opacity:.35;cursor:not-allowed}
.snp-cell form.cart{display:contents}
.snp-cell .woocommerce-variation-price,.snp-cell .woocommerce-variation-availability{width:100%;margin-top:10px;font-family:var(--mono);font-size:10px}
.snp-cell table.variations{width:100%;border-collapse:collapse;margin-bottom:12px}
.snp-cell table.variations td{padding:5px 0}
.snp-cell table.variations label{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.snp-cell table.variations select{border:1px solid #a3a3a1;padding:10px;font-family:var(--mono);font-size:10px;width:100%;background:var(--paper);-webkit-appearance:none;appearance:none;border-radius:0}

.snp-assure-row{display:grid;grid-template-columns:1fr 1fr}
.snp-assure{display:flex;align-items:center;gap:14px;padding:16px 22px}
.snp-assure:first-child{border-right:1px solid #a3a3a1}
.snp-assure .ic{font-size:20px;line-height:1}
.snp-assure strong,.snp-assure small{display:block;font-family:var(--mono);text-transform:uppercase}
.snp-assure strong{font-size:9px;letter-spacing:.12em}
.snp-assure small{font-size:8px;letter-spacing:.1em;color:var(--mid);margin-top:5px}
@media(max-width:640px){.snp-assure-row{grid-template-columns:1fr}.snp-assure:first-child{border-right:0;border-bottom:1px solid #a3a3a1}}

/* -- approval split -- */
.snp-approval{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);margin:clamp(50px,7vw,90px) var(--pad) 0;position:relative}
.snp-approval-image{min-height:300px;overflow:hidden;background:var(--hush)}
.snp-approval-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.snp-approval-copy{padding:clamp(30px,4vw,48px)}
.snp-approval-copy h2{font-family:var(--display);font-weight:700;font-size:clamp(22px,2.5vw,34px);letter-spacing:-.035em;text-transform:uppercase;margin:0 0 20px}
.snp-approval-copy p{font-family:var(--mono);font-size:9.5px;line-height:2;letter-spacing:.1em;text-transform:uppercase;margin:0;color:#333;max-width:56ch}
.snp-approval-steps{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}
.snp-approval-steps strong,.snp-approval-steps small{display:block;font-family:var(--mono);text-transform:uppercase}
.snp-approval-steps strong{font-size:9px;letter-spacing:.12em}
.snp-approval-steps small{font-size:8px;letter-spacing:.1em;color:var(--mid);margin-top:7px}
@media(max-width:900px){.snp-approval{grid-template-columns:1fr}}

/* -- related -- */
.snp-related{margin:clamp(50px,7vw,90px) 0 0}

/* -- services -- */
.snp-services{border:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);margin:clamp(50px,7vw,90px) var(--pad) 0}
.snp-service{min-height:110px;padding:20px;display:flex;align-items:center;gap:15px;border-right:1px solid var(--line)}
.snp-service:last-child{border-right:0}
.snp-service .ic{font-size:22px;line-height:1}
.snp-service strong,.snp-service small{display:block;font-family:var(--mono);text-transform:uppercase}
.snp-service strong{font-size:8.5px;letter-spacing:.12em}
.snp-service small{font-size:7.5px;line-height:1.7;letter-spacing:.1em;color:var(--mid);margin-top:6px}
@media(max-width:900px){
  .snp-services{grid-template-columns:repeat(2,1fr)}
  .snp-service:nth-child(2){border-right:0}
  .snp-service:nth-child(-n+2){border-bottom:1px solid var(--line)}
}

/* -- reviews split -- */
.snp-reviews{border:1px solid var(--line);border-top:0;display:grid;grid-template-columns:.85fr 1.55fr;min-height:220px;margin:0 var(--pad)}
.snp-score{padding:32px 40px;border-right:1px solid var(--line);display:grid;align-content:center;grid-template-columns:auto 1fr;column-gap:18px}
.snp-score .label{grid-column:1/3;font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mid)}
.snp-score .num{font-family:var(--display);font-weight:700;font-size:52px;letter-spacing:-.04em;line-height:1;margin-top:18px}
.snp-score .stars{align-self:end;font-size:15px;letter-spacing:.2em;margin-bottom:6px}
.snp-score .count{grid-column:1/3;font-family:var(--mono);font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;margin-top:8px;color:var(--mid)}
.snp-quote{padding:38px 46px;display:flex;flex-direction:column;justify-content:center}
.snp-quote .mark{font-family:var(--display);font-size:36px;font-weight:800;line-height:1}
.snp-quote p{font-family:var(--mono);font-size:10px;line-height:1.9;letter-spacing:.05em;max-width:70ch;margin:4px 0 16px;color:#222}
.snp-quote .who{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mid)}
@media(max-width:640px){
  .snp-reviews{grid-template-columns:1fr;margin:0 var(--pad)}
  .snp-score{border-right:0;border-bottom:1px solid var(--line)}
}

@media(max-width:640px){
  .snp-purchase{margin-left:16px;margin-right:16px}
  .snp-approval,.snp-services{margin-left:16px;margin-right:16px}
}

/* ============================================================
   21. CART / CHECKOUT / ACCOUNT — light touch
   ============================================================ */
.sn-page{padding:clamp(30px,5vw,70px) var(--pad) clamp(50px,7vw,90px)}
.sn-page h1{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.05em;
  font-size:clamp(28px,5vw,66px);line-height:.92;margin:0 0 26px}
.sn-page .entry{max-width:860px;line-height:1.9;font-size:15px}
.woocommerce table.shop_table{border:1px solid var(--line);border-radius:0;border-collapse:collapse;width:100%}
.woocommerce table.shop_table th{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;text-align:left;padding:14px}
.woocommerce table.shop_table td{padding:14px;border-top:1px solid var(--line)}
.woocommerce .button,.woocommerce button.button,.woocommerce input.button,.woocommerce a.button{
  background:var(--ink)!important;color:#fff!important;border-radius:0!important;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:14px 24px!important}
.woocommerce .button:hover,.woocommerce a.button:hover{background:#222!important}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{
  border:1px solid var(--line);border-radius:0;padding:12px}
.woocommerce-message,.woocommerce-info,.woocommerce-error{border-top-color:var(--ink)!important;
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.woocommerce-message::before,.woocommerce-info::before{color:var(--ink)!important}


/* ============================================================
   PRODUCT LAB — exact purchase/details composition
   ============================================================ */
.single-product .sn-product-buy{
 display:grid!important;
 grid-template-columns:1.25fr .65fr 1.1fr!important;
 grid-template-areas:"finish finish qty" "quality quality add" "shipping shipping shipping"!important;
 margin-top:42px!important;
 border:1px solid #9f9f9c!important;
}
.single-product .sn-buy-heading{display:none!important}
.single-product .sn-buy-form{display:contents!important;padding:0!important}
.single-product .sn-buy-form form.cart,
.single-product .sn-buy-form form.variations_form,
.single-product .sn-buy-form .single_variation_wrap,
.single-product .sn-buy-form .woocommerce-variation-add-to-cart{display:contents!important}
.single-product .sn-buy-form table.variations{
 grid-area:finish!important;
 display:block!important;
 width:100%!important;
 margin:0!important;
 padding:22px 24px!important;
 border:0!important;
 border-right:1px solid #aaa!important;
 border-bottom:1px solid #aaa!important;
}
.single-product .sn-buy-form table.variations tbody,
.single-product .sn-buy-form table.variations tr{display:block!important;width:100%!important}
.single-product .sn-buy-form .variations th,
.single-product .sn-buy-form .variations td{display:block!important;padding:0!important}
.single-product .sn-buy-form .variations th label{display:block!important;font-family:"IBM Plex Mono",monospace!important;font-size:8px!important;letter-spacing:.16em!important;text-transform:uppercase!important;margin:0 0 13px!important}
.single-product .sn-variation-choices{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:10px!important;border:0!important}
.single-product .sn-variation-choices button{
 height:72px!important;min-height:72px!important;
 border:1px solid #aaa!important;background:#fff!important;color:#000!important;
 font-family:"IBM Plex Mono",monospace!important;font-size:9px!important;letter-spacing:.14em!important;text-transform:uppercase!important
}
.single-product .sn-variation-choices button:last-child{border-right:1px solid #aaa!important}
.single-product .sn-variation-choices button.is-selected{background:#000!important;color:#fff!important;border-color:#000!important}
.single-product .sn-buy-form .reset_variations{font-family:"IBM Plex Mono",monospace!important;font-size:7px!important}
.single-product .sn-buy-form .woocommerce-variation{display:none!important}
.single-product .sn-buy-form .quantity{
 grid-area:qty!important;
 display:flex!important;
 align-items:center!important;
 justify-content:center!important;
 padding:30px 24px 20px!important;
 border:0!important;
 border-bottom:1px solid #aaa!important;
 position:relative!important
}
.single-product .sn-buy-form .quantity:before{
 content:"QUANTITY";position:absolute;left:24px;top:20px;
 font-family:"IBM Plex Mono",monospace;font-size:8px;letter-spacing:.16em
}
.single-product .sn-buy-form .quantity:after{
 content:"−        +";position:absolute;left:28px;right:28px;top:54px;
 display:flex;justify-content:space-between;font-family:"IBM Plex Mono",monospace;font-size:16px;pointer-events:none
}
.single-product .sn-buy-form .qty{
 width:100%!important;height:72px!important;background:#fff!important;border:1px solid #aaa!important;
 font-family:"IBM Plex Mono",monospace!important;font-size:11px!important;text-align:center!important
}
.single-product .sn-buy-form .single_add_to_cart_button{
 grid-area:add!important;
 display:block!important;width:calc(100% - 64px)!important;height:80px!important;min-height:80px!important;
 align-self:center!important;justify-self:center!important;
 border:0!important;background:#000!important;color:#fff!important;
 font-family:"IBM Plex Mono",monospace!important;font-size:10px!important;letter-spacing:.18em!important;text-transform:uppercase!important
}
.single-product .sn-buy-form .single_add_to_cart_button:after{content:"  →"}
.single-product .sn-buy-assurances{display:contents!important}
.single-product .sn-buy-assurances span{
 min-height:142px!important;padding:48px 82px!important;
 display:flex!important;align-items:center!important;position:relative!important;
 border:0!important;border-bottom:1px solid #aaa!important;
 text-align:left!important;font-family:"IBM Plex Mono",monospace!important;font-size:10px!important;font-weight:600!important;letter-spacing:.13em!important;text-transform:uppercase!important
}
.single-product .sn-buy-assurances span:before{font-size:28px;margin-right:28px;font-weight:400}
.single-product .sn-buy-assurances span:after{position:absolute;left:138px;top:82px;color:#888;font-size:7px;font-weight:400;letter-spacing:.1em}
.single-product .sn-buy-assurances span:nth-child(1){grid-area:quality!important;border-right:1px solid #aaa!important}
.single-product .sn-buy-assurances span:nth-child(1):before{content:"◈"}
.single-product .sn-buy-assurances span:nth-child(1):after{content:"CHECKED BEFORE DISPATCH  ·  PRE-DISPATCH VIDEO"}
.single-product .sn-buy-assurances span:nth-child(2){display:none!important}
.single-product .sn-buy-assurances span:nth-child(3){grid-area:shipping!important;border-bottom:0!important}
.single-product .sn-buy-assurances span:nth-child(3):before{content:"◇"}
.single-product .sn-buy-assurances span:nth-child(3):after{content:"TRACKED SHIPPING  ·  12–18 BUSINESS DAYS"}

.single-product .sn-product-accordions{
 width:min(1240px,calc(100% - 32px))!important;
 margin:60px auto 110px!important;
}
.single-product .sn-product-accordions details{border-top:1px solid #aaa!important}
.single-product .sn-product-accordions details:last-child{border-bottom:1px solid #aaa!important}
.single-product .sn-product-accordions summary{
 height:100px!important;padding:0 30px!important;
 font-family:"IBM Plex Mono",monospace!important;font-size:11px!important;letter-spacing:.16em!important
}
.single-product .sn-product-accordions summary span{font-size:0!important}
.single-product .sn-product-accordions summary span:after{content:"+";font-size:18px!important}
.single-product .sn-product-accordions details[open] summary span:after{content:"−"}
.single-product .sn-detail-copy,.single-product .sn-spec-list{
 max-width:none!important;padding:0 30px 34px!important;font-family:"Syne",Arial,sans-serif!important;font-size:16px!important;line-height:1.7!important;color:#333!important
}
.single-product .sn-spec-list p{grid-template-columns:220px 1fr!important;padding:14px 0!important}
.single-product .sn-inspection-card{width:min(1240px,calc(100% - 32px))!important;margin:0 auto 62px!important}

@media(max-width:900px){
 .single-product .sn-product-buy{grid-template-columns:1.35fr .75fr!important;grid-template-areas:"finish finish" "qty add" "quality quality" "shipping shipping"!important}
 .single-product .sn-buy-form table.variations{border-right:0!important}
 .single-product .sn-buy-form .quantity{border-right:1px solid #aaa!important}
}
@media(max-width:640px){
 .single-product .sn-product-buy{display:block!important}
 .single-product .sn-buy-form table.variations{padding:20px!important}
 .single-product .sn-variation-choices button{height:58px!important;min-height:58px!important;font-size:8px!important}
 .single-product .sn-buy-form .quantity{display:flex!important;padding:28px 20px 18px!important;border-right:0!important;border-bottom:1px solid #aaa!important}
 .single-product .sn-buy-form .quantity:before{left:20px;top:15px}
 .single-product .sn-buy-form .quantity:after{left:27px;right:27px;top:48px}
 .single-product .sn-buy-form .qty{height:60px!important}
 .single-product .sn-buy-form .single_add_to_cart_button{display:block!important;width:calc(100% - 40px)!important;height:64px!important;min-height:64px!important;margin:20px!important}
 .single-product .sn-buy-assurances{display:block!important}
 .single-product .sn-buy-assurances span{min-height:116px!important;padding:38px 30px!important}
 .single-product .sn-buy-assurances span:after{left:86px;top:68px}
 .single-product .sn-product-accordions{margin-top:45px!important;margin-bottom:75px!important}
 .single-product .sn-product-accordions summary{height:74px!important;padding:0 18px!important;font-size:9px!important}
 .single-product .sn-detail-copy,.single-product .sn-spec-list{padding:0 18px 25px!important;font-size:14px!important}
}


/* ============================================================
   SNP EXACT PURCHASE GRID — matches approved product lab
   ============================================================ */
.single-product .snp-purchase{width:min(1240px,calc(100% - 32px));margin:42px auto 0;border:1px solid #aaa}
.single-product .snp-purchase>.snp-cell,.single-product .snp-cart-row{display:contents!important}
.single-product .snp-purchase>.snp-assure-row{display:none!important}
.single-product .snp-cell-title{display:none!important}
.single-product form.snp-exact-form{display:grid!important;grid-template-columns:1.25fr .65fr 1.1fr;grid-template-areas:"tier tier qty" "quality quality add" "shipping shipping shipping";margin:0!important}
.single-product .snp-exact-form .variations{grid-area:tier;display:block!important;margin:0!important;padding:34px 38px 32px!important;border:0!important;border-right:1px solid #aaa!important;border-bottom:1px solid #aaa!important}
.single-product .snp-exact-form .variations tbody,.single-product .snp-exact-form .variations tr,.single-product .snp-exact-form .variations th,.single-product .snp-exact-form .variations td{display:block!important;width:100%!important;padding:0!important}
.single-product .snp-exact-form .variations th label{display:block;font-family:var(--mono);font-size:8px;letter-spacing:.16em;text-transform:uppercase;margin:0 0 28px}
.single-product .snp-tier-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.single-product .snp-tier-buttons button{height:72px;border:1px solid #aaa;background:#fff;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.single-product .snp-tier-buttons button.is-selected{background:#000;color:#fff;border-color:#000}
.single-product .snp-exact-form .variations select{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}
.single-product .snp-exact-form .reset_variations{display:none!important}
.single-product .snp-exact-form .single_variation_wrap{display:contents!important}
.single-product .snp-exact-form .woocommerce-variation{display:none!important}
.single-product .snp-exact-form .woocommerce-variation-add-to-cart{display:contents!important}
.single-product .snp-exact-form .quantity{grid-area:qty;position:relative;display:flex!important;align-items:flex-end!important;padding:62px 32px 32px!important;border:0!important;border-bottom:1px solid #aaa!important}
.single-product .snp-exact-form .quantity:before{content:"QUANTITY";position:absolute;top:35px;left:32px;font-family:var(--mono);font-size:8px;letter-spacing:.16em}
.single-product .snp-exact-form .snp-qty{height:72px;width:100%;display:grid!important;grid-template-columns:48px 1fr 48px;border:1px solid #aaa!important}
.single-product .snp-exact-form .snp-qty button,.single-product .snp-exact-form .qty{height:70px!important;border:0!important;background:#fff!important;text-align:center!important;font-family:var(--mono)!important;font-size:14px!important}
.single-product .snp-exact-form .single_add_to_cart_button{grid-area:add;width:calc(100% - 64px)!important;height:80px!important;min-height:80px!important;align-self:center;justify-self:center;margin:0!important;border:0!important;border-radius:0!important;background:#000!important;color:#fff!important;font-family:var(--mono)!important;font-size:10px!important;letter-spacing:.18em!important;text-transform:uppercase!important}
.single-product .snp-exact-form .single_add_to_cart_button:after{content:"  →"}
.single-product .snp-exact-form>.snp-assure{min-height:142px;padding:36px 34px;display:flex;align-items:center;gap:28px;border-bottom:1px solid #aaa}
.single-product .snp-exact-form>.snp-assure:first-of-type{grid-area:quality;border-right:1px solid #aaa}
.single-product .snp-exact-form>.snp-assure:last-of-type{grid-area:shipping;border-bottom:0}
.single-product .snp-exact-form>.snp-assure .ic{font-size:28px}
.single-product .snp-exact-form>.snp-assure strong,.single-product .snp-exact-form>.snp-assure small{display:block;font-family:var(--mono);text-transform:uppercase}
.single-product .snp-exact-form>.snp-assure strong{font-size:10px;letter-spacing:.13em}
.single-product .snp-exact-form>.snp-assure small{font-size:7px;letter-spacing:.1em;color:#888;margin-top:10px}
.single-product .snp-accordions{width:min(1240px,calc(100% - 32px))!important;margin:60px auto 110px!important}
.single-product .snp-accordions details{border-top:1px solid #aaa!important}
.single-product .snp-accordions details:last-child{border-bottom:1px solid #aaa!important}
.single-product .snp-accordions summary{min-height:100px!important;padding:0 30px!important;font-family:var(--mono)!important;font-size:11px!important;letter-spacing:.16em!important;text-transform:uppercase!important}
.single-product .snp-accordions .content{padding:0 30px 36px!important;font-size:16px!important;line-height:1.7!important}
@media(max-width:900px){
 .single-product form.snp-exact-form{grid-template-columns:1.35fr .75fr;grid-template-areas:"tier tier" "qty add" "quality quality" "shipping shipping"}
 .single-product .snp-exact-form .variations{border-right:0!important}
 .single-product .snp-exact-form .quantity{border-right:1px solid #aaa!important}
}
@media(max-width:640px){
 .single-product form.snp-exact-form{display:block!important}
 .single-product .snp-exact-form .variations{padding:24px 20px!important}
 .single-product .snp-exact-form .variations th label{margin-bottom:18px!important}
 .single-product .snp-tier-buttons{gap:8px}
 .single-product .snp-tier-buttons button{height:58px;font-size:8px}
 .single-product .snp-exact-form .quantity{padding:48px 20px 18px!important;border-right:0!important}
 .single-product .snp-exact-form .quantity:before{top:20px;left:20px}
 .single-product .snp-exact-form .single_add_to_cart_button{display:block!important;width:calc(100% - 40px)!important;height:64px!important;min-height:64px!important;margin:20px!important}
 .single-product .snp-exact-form>.snp-assure{min-height:112px;padding:28px 22px}
 .single-product .snp-accordions summary{min-height:74px!important;padding:0 18px!important;font-size:9px!important}
 .single-product .snp-accordions .content{padding:0 18px 26px!important;font-size:14px!important}
}


/* ============================================================
   PRODUCT LAB REFINEMENT v2.0.4
   ============================================================ */
.single-product .snp-price{display:none!important}
.single-product .snp-gallery-wrap{width:min(1180px,calc(100% - 32px))!important;margin-inline:auto!important}
.single-product .snp-stage{height:430px!important;background:#fafafa!important}
.single-product .snp-stage img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;padding:38px!important}
.single-product .snp-stage-grid{grid-template-columns:82px minmax(0,1fr)!important}
.single-product .snp-selected-price{
 width:min(1180px,calc(100% - 32px));margin:18px auto 34px;padding:0 0 20px;
 border-bottom:1px solid #aaa;font-family:var(--mono);font-size:20px;letter-spacing:.06em;
 font-variant-numeric:tabular-nums;text-align:right
}
.single-product .snp-selected-price .price{display:block!important;margin:0!important}
.single-product .snp-selected-price del{color:#888;margin-right:10px}
.single-product .snp-selected-price ins{text-decoration:none}

/* compact purchase ledger */
.single-product .snp-purchase{margin-top:0!important}
.single-product form.snp-exact-form{grid-template-rows:auto 150px 124px!important}
.single-product .snp-exact-form .variations{padding:25px 30px 24px!important}
.single-product .snp-exact-form .variations th label{margin-bottom:18px!important}
.single-product .snp-tier-buttons button{height:64px!important}
.single-product .snp-exact-form .quantity{min-height:150px!important;height:150px!important;padding:55px 28px 24px!important;align-items:center!important}
.single-product .snp-exact-form .quantity:before{top:28px!important;left:28px!important}
.single-product .snp-exact-form .snp-qty{height:62px!important}
.single-product .snp-exact-form .snp-qty button,.single-product .snp-exact-form .qty{height:60px!important}
.single-product .snp-exact-form .single_add_to_cart_button{height:72px!important;min-height:72px!important}
.single-product .snp-exact-form>.snp-assure{height:124px!important;min-height:124px!important;padding:28px 32px!important}

/* exact product-lab accordion */
.single-product .sn-tabs{
 width:min(1240px,calc(100% - 32px))!important;
 margin:60px auto 100px!important
}
.single-product .sn-tabs details{
 margin:0!important;padding:0!important;border:0!important;border-top:1px solid #aaa!important;background:#fff!important
}
.single-product .sn-tabs details:last-child{border-bottom:1px solid #aaa!important}
.single-product .sn-tabs summary{
 position:relative!important;display:flex!important;align-items:center!important;
 min-height:82px!important;padding:0 54px 0 30px!important;
 list-style:none!important;cursor:pointer!important;
 font-family:var(--mono)!important;font-size:10px!important;font-weight:400!important;
 line-height:1!important;letter-spacing:.18em!important;text-transform:uppercase!important
}
.single-product .sn-tabs summary::-webkit-details-marker{display:none!important}
.single-product .sn-tabs summary::marker{content:""!important;font-size:0!important}
.single-product .sn-tabs summary::after{
 content:"+"!important;position:absolute!important;right:30px!important;top:50%!important;
 transform:translateY(-50%)!important;font-family:var(--mono)!important;font-size:18px!important;
 font-weight:300!important;letter-spacing:0!important
}
.single-product .sn-tabs details[open]>summary::after{content:"−"!important}
.single-product .sn-tabs .body{
 max-width:none!important;margin:0!important;padding:0 30px 34px!important;
 font-family:var(--display)!important;font-size:16px!important;line-height:1.7!important;color:#333!important
}
.single-product .sn-tabs .body>p:first-child{margin-top:0!important}
.single-product .sn-tabs .body ul{padding-left:20px!important}

@media(max-width:900px){
 .single-product .snp-gallery-wrap{width:min(900px,calc(100% - 32px))!important}
 .single-product .snp-stage{height:390px!important}
 .single-product .snp-stage img{padding:34px!important}
 .single-product .snp-selected-price{width:calc(100% - 32px);font-size:18px}
 .single-product form.snp-exact-form{grid-template-rows:auto 138px 112px 112px!important}
 .single-product .snp-exact-form .quantity{height:138px!important;min-height:138px!important}
 .single-product .snp-exact-form>.snp-assure{height:112px!important;min-height:112px!important}
 .single-product .sn-tabs{margin-top:45px!important}
}
@media(max-width:640px){
 .single-product .snp-stage-grid{display:block!important}
 .single-product .snp-stage{height:68vw!important;min-height:300px!important;max-height:410px!important}
 .single-product .snp-stage img{padding:24px!important}
 .single-product .snp-selected-price{text-align:left!important;margin-top:14px!important;margin-bottom:26px!important;font-size:17px!important}
 .single-product form.snp-exact-form{display:block!important}
 .single-product .snp-exact-form .quantity{height:auto!important;min-height:118px!important}
 .single-product .snp-exact-form>.snp-assure{height:auto!important;min-height:104px!important}
 .single-product .sn-tabs summary{min-height:68px!important;padding:0 44px 0 18px!important;font-size:9px!important}
 .single-product .sn-tabs summary::after{right:18px!important}
 .single-product .sn-tabs .body{padding:0 18px 26px!important;font-size:14px!important}
}


/* approval service grid replacement v2.0.5 */
.single-product .snp-approval-copy>.snp-services{
 margin:30px 0 0!important;
 grid-template-columns:repeat(2,minmax(0,1fr))!important;
 border-color:var(--line)!important
}
.single-product .snp-approval-copy>.snp-services .snp-service{
 min-height:108px!important;padding:22px 28px!important
}
.single-product .snp-approval-copy>.snp-services .snp-service:nth-child(2){border-right:0!important}
.single-product .snp-approval-copy>.snp-services .snp-service:nth-child(-n+2){border-bottom:1px solid var(--line)!important}
@media(max-width:640px){
 .single-product .snp-approval-copy>.snp-services{grid-template-columns:1fr!important}
 .single-product .snp-approval-copy>.snp-services .snp-service{border-right:0!important;border-bottom:1px solid var(--line)!important}
 .single-product .snp-approval-copy>.snp-services .snp-service:last-child{border-bottom:0!important}
}


/* minimalist product header and gallery v2.0.6 */
.single-product .snp-head{padding-top:34px!important;padding-bottom:34px!important}
.single-product .snp-head h1{
 max-width:900px!important;
 font-size:clamp(26px,3.2vw,44px)!important;
 line-height:1.02!important;
 letter-spacing:-.035em!important
}
.single-product .snp-gallery-wrap{
 width:min(1080px,calc(100% - 40px))!important;
 padding:0!important;
 margin:0 auto!important
}
.single-product .snp-stage-grid{
 display:flex!important;
 flex-direction:column!important;
 gap:0!important
}
.single-product .snp-stage{
 order:1!important;
 width:100%!important;
 height:390px!important;
 border:1px solid #dedede!important;
 background:#fff!important
}
.single-product .snp-stage img{
 width:100%!important;
 height:100%!important;
 object-fit:contain!important;
 object-position:center!important;
 padding:54px!important
}
.single-product .snp-rail{
 order:2!important;
 display:flex!important;
 flex-direction:row!important;
 gap:10px!important;
 width:100%!important;
 padding:12px 0 0!important;
 overflow-x:auto!important
}
.single-product .snp-rail-thumb{
 flex:0 0 72px!important;
 width:72px!important;
 height:72px!important;
 aspect-ratio:1!important;
 background:#fff!important;
 border-color:#dedede!important
}
.single-product .snp-rail-thumb img{object-fit:contain!important;padding:7px!important}
.single-product .snp-cross,.single-product .snp-frame-label{display:none!important}
.single-product .snp-stage-count{bottom:12px!important;right:12px!important}
.single-product .snp-selected-price{
 width:min(1080px,calc(100% - 40px))!important;
 margin:16px auto 30px!important;
 padding-bottom:16px!important;
 font-size:18px!important
}
@media(max-width:900px){
 .single-product .snp-head{padding:28px 20px!important}
 .single-product .snp-head h1{font-size:clamp(25px,4vw,38px)!important;max-width:760px!important}
 .single-product .snp-gallery-wrap{width:calc(100% - 32px)!important}
 .single-product .snp-stage{height:360px!important}
 .single-product .snp-stage img{padding:48px!important}
 .single-product .snp-selected-price{width:calc(100% - 32px)!important}
}
@media(max-width:640px){
 .single-product .snp-head{padding:24px 16px!important}
 .single-product .snp-head h1{font-size:clamp(22px,7vw,30px)!important;line-height:1.08!important}
 .single-product .snp-gallery-wrap{width:calc(100% - 24px)!important}
 .single-product .snp-stage{height:320px!important;min-height:0!important}
 .single-product .snp-stage img{padding:30px!important}
 .single-product .snp-rail-thumb{flex-basis:62px!important;width:62px!important;height:62px!important}
 .single-product .snp-selected-price{width:calc(100% - 24px)!important;font-size:16px!important}
}

/* ============================================================
   STUDIO NAFAY — PREMIUM OVERLAPPING CAROUSEL MOTION v1.0
   ============================================================ */
:root{--sn-luxury-ease:cubic-bezier(.22,1,.36,1)}
.sn-premium-rail{scroll-behavior:smooth;scroll-snap-type:x proximity;overscroll-behavior-inline:contain}
.sn-premium-rail>.card,.sn-premium-rail>article{
 scroll-snap-align:center;transform:translateZ(0) scale(.965);opacity:.78;
 filter:saturate(.88);transition:transform .72s var(--sn-luxury-ease),opacity .56s ease,filter .72s var(--sn-luxury-ease),box-shadow .72s var(--sn-luxury-ease);
 will-change:transform,opacity
}
.sn-premium-rail>.card.sn-is-focus,.sn-premium-rail>article.sn-is-focus{
 transform:translateZ(0) scale(1);opacity:1;filter:saturate(1);z-index:2;
 box-shadow:0 18px 50px rgba(0,0,0,.07)
}
.sn-premium-rail.sn-motion-right>.card,.sn-premium-rail.sn-motion-right>article{animation:snRailRight .76s var(--sn-luxury-ease) both}
.sn-premium-rail.sn-motion-left>.card,.sn-premium-rail.sn-motion-left>article{animation:snRailLeft .76s var(--sn-luxury-ease) both}
@keyframes snRailRight{0%{transform:translate3d(0,0,0) scale(.965)}42%{transform:translate3d(-18px,0,0) scale(.945);opacity:.62;filter:blur(1.2px) saturate(.82)}100%{transform:translate3d(0,0,0) scale(.965)}}
@keyframes snRailLeft{0%{transform:translate3d(0,0,0) scale(.965)}42%{transform:translate3d(18px,0,0) scale(.945);opacity:.62;filter:blur(1.2px) saturate(.82)}100%{transform:translate3d(0,0,0) scale(.965)}}

.single-product #snpStage{overflow:hidden;isolation:isolate}
.single-product #snpStageImg{transition:opacity .3s ease,transform .72s var(--sn-luxury-ease),filter .48s ease!important;will-change:transform,opacity,filter}
.single-product #snpStage.sn-gallery-right #snpStageImg{animation:snGalleryRight .76s var(--sn-luxury-ease) both}
.single-product #snpStage.sn-gallery-left #snpStageImg{animation:snGalleryLeft .76s var(--sn-luxury-ease) both}
.single-product .snp-rail-thumb{transition:transform .55s var(--sn-luxury-ease),opacity .4s ease,border-color .4s ease,box-shadow .55s var(--sn-luxury-ease)!important}
.single-product .snp-rail-thumb:hover{transform:translateY(-4px) scale(1.025)}
.single-product .snp-rail-thumb.is-active{transform:translateY(-3px) scale(1.045);box-shadow:0 12px 28px rgba(0,0,0,.1)}
@keyframes snGalleryRight{0%{transform:translate3d(0,0,0) scale(1);opacity:1;filter:blur(0)}38%{transform:translate3d(-4%,0,0) scale(.985);opacity:.12;filter:blur(2px)}39%{transform:translate3d(4%,0,0) scale(1.025);opacity:0;filter:blur(2px)}100%{transform:translate3d(0,0,0) scale(1);opacity:1;filter:blur(0)}}
@keyframes snGalleryLeft{0%{transform:translate3d(0,0,0) scale(1);opacity:1;filter:blur(0)}38%{transform:translate3d(4%,0,0) scale(.985);opacity:.12;filter:blur(2px)}39%{transform:translate3d(-4%,0,0) scale(1.025);opacity:0;filter:blur(2px)}100%{transform:translate3d(0,0,0) scale(1);opacity:1;filter:blur(0)}}

@media(max-width:640px){
 .sn-premium-rail{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
 .sn-premium-rail>.card,.sn-premium-rail>article{transform:scale(.94);opacity:.68}
 .sn-premium-rail>.card.sn-is-focus,.sn-premium-rail>article.sn-is-focus{transform:scale(1);opacity:1;box-shadow:0 14px 34px rgba(0,0,0,.07)}
}
@media(prefers-reduced-motion:reduce){
 .sn-premium-rail,.sn-premium-rail>*,.single-product #snpStageImg,.single-product .snp-rail-thumb{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* ============================================================
   PRODUCT TRIPTYCH — OVERLAPPING LUXURY MOTION v1.0
   ============================================================ */
.single-product .snp-carousel{perspective:1400px;isolation:isolate;overflow:hidden}
.single-product .snp-carousel .snp-triptych-panel{
 transform:translate3d(0,0,0) scale(1);backface-visibility:hidden;
 transition:transform .92s var(--sn-luxury-ease),opacity .72s ease,filter .8s var(--sn-luxury-ease),box-shadow .9s var(--sn-luxury-ease)!important;
 will-change:transform,opacity,filter
}
.single-product .snp-carousel .snp-carousel-main{z-index:3;box-shadow:0 24px 70px rgba(0,0,0,.09)}
.single-product .snp-carousel .snp-carousel-side{z-index:1;opacity:.82;filter:saturate(.88)}
.single-product .snp-carousel .snp-carousel-side:hover{opacity:1;filter:saturate(1);transform:scale(1.012)}

.single-product .snp-carousel.sn-product-right .panel-1{animation:snTripLeftOut 1.82s var(--sn-luxury-ease) both}
.single-product .snp-carousel.sn-product-right .panel-2{animation:snTripMainRight 1.82s var(--sn-luxury-ease) both}
.single-product .snp-carousel.sn-product-right .panel-3{animation:snTripRightIn 1.82s var(--sn-luxury-ease) both}
.single-product .snp-carousel.sn-product-left .panel-1{animation:snTripLeftIn 1.82s var(--sn-luxury-ease) both}
.single-product .snp-carousel.sn-product-left .panel-2{animation:snTripMainLeft 1.82s var(--sn-luxury-ease) both}
.single-product .snp-carousel.sn-product-left .panel-3{animation:snTripRightOut 1.82s var(--sn-luxury-ease) both}

@keyframes snTripMainRight{0%{transform:translate3d(0,0,0) scale(1);opacity:1;filter:blur(0)}34%{transform:translate3d(-5%,0,-70px) scale(.965);opacity:.3;filter:blur(2px)}55%{transform:translate3d(4%,0,-40px) scale(.985);opacity:.55;filter:blur(1px)}100%{transform:translate3d(0,0,0) scale(1);opacity:1;filter:blur(0)}}
@keyframes snTripMainLeft{0%{transform:translate3d(0,0,0) scale(1);opacity:1;filter:blur(0)}34%{transform:translate3d(5%,0,-70px) scale(.965);opacity:.3;filter:blur(2px)}55%{transform:translate3d(-4%,0,-40px) scale(.985);opacity:.55;filter:blur(1px)}100%{transform:translate3d(0,0,0) scale(1);opacity:1;filter:blur(0)}}
@keyframes snTripLeftOut{0%{transform:translate3d(0,0,0) scale(1);opacity:.82}40%{transform:translate3d(-16%,0,-90px) scale(.93);opacity:.18;filter:blur(2px)}100%{transform:translate3d(0,0,0) scale(1);opacity:.82;filter:saturate(.88)}}
@keyframes snTripRightIn{0%{transform:translate3d(0,0,0) scale(1);opacity:.82}42%{transform:translate3d(-12%,0,55px) scale(1.035);opacity:1;filter:blur(0)}100%{transform:translate3d(0,0,0) scale(1);opacity:.82;filter:saturate(.88)}}
@keyframes snTripLeftIn{0%{transform:translate3d(0,0,0) scale(1);opacity:.82}42%{transform:translate3d(12%,0,55px) scale(1.035);opacity:1;filter:blur(0)}100%{transform:translate3d(0,0,0) scale(1);opacity:.82;filter:saturate(.88)}}
@keyframes snTripRightOut{0%{transform:translate3d(0,0,0) scale(1);opacity:.82}40%{transform:translate3d(16%,0,-90px) scale(.93);opacity:.18;filter:blur(2px)}100%{transform:translate3d(0,0,0) scale(1);opacity:.82;filter:saturate(.88)}}

@media(max-width:640px){
 .single-product .snp-carousel{perspective:900px}
 .single-product .snp-carousel .snp-carousel-main{box-shadow:0 16px 42px rgba(0,0,0,.08)}
}
@media(prefers-reduced-motion:reduce){
 .single-product .snp-carousel .snp-triptych-panel{animation:none!important;transition:none!important}
}

/* ============================================================
   ORIGINAL DESIGNER BOX — PRODUCT ADD-ON v1.0
   ============================================================ */
.single-product form.snp-exact-form{
 grid-template-areas:"tier tier qty" "box box add" "quality quality quality" "shipping shipping shipping"!important;
 grid-template-rows:auto 124px 124px 124px!important
}
.single-product .sn-designer-box-wrap{
 grid-area:box;position:relative;display:flex;align-items:center;padding:24px 30px;
 border-right:1px solid #aaa;border-bottom:1px solid #aaa;background:#fff
}
.single-product .sn-designer-box{width:100%;display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:18px;align-items:center;cursor:pointer}
.single-product .sn-designer-box input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.single-product .sn-box-check{width:24px;height:24px;border:1px solid #888;display:grid;place-items:center;transition:.25s ease}
.single-product .sn-box-check:after{content:"✓";font-family:"Syne",sans-serif;font-size:14px;line-height:1;color:#fff;opacity:0;transform:scale(.6);transition:.25s ease}
.single-product .sn-designer-box input:checked+.sn-box-check{background:#000;border-color:#000}
.single-product .sn-designer-box input:checked+.sn-box-check:after{opacity:1;transform:scale(1)}
.single-product .sn-designer-box input:focus-visible+.sn-box-check{outline:2px solid #000;outline-offset:3px}
.single-product .sn-box-copy strong,.single-product .sn-box-copy small{display:block;font-family:"Syne",sans-serif}
.single-product .sn-box-copy strong{font-size:15px;font-weight:650;line-height:1.2;letter-spacing:.01em}
.single-product .sn-box-copy small{margin-top:6px;color:#707070;font-size:12px;line-height:1.35}
.single-product .sn-box-price{font-family:"Syne",sans-serif;font-size:17px;font-weight:700;white-space:nowrap}
.single-product .sn-box-live{position:absolute;right:30px;bottom:10px;font-family:"Syne",sans-serif;font-size:10px;color:#777}
.single-product .sn-designer-box-wrap.is-selected{background:#f6f6f3}
.single-product .snp-exact-form>.snp-assure:first-of-type{border-right:0!important}

@media(max-width:900px){
 .single-product form.snp-exact-form{grid-template-areas:"tier tier" "box box" "qty add" "quality quality" "shipping shipping"!important;grid-template-rows:auto 116px 138px 112px 112px!important}
 .single-product .sn-designer-box-wrap{border-right:0;padding:22px 28px}
 .single-product .sn-box-live{right:28px}
}
@media(max-width:640px){
 .single-product form.snp-exact-form{display:block!important}
 .single-product .sn-designer-box-wrap{min-height:112px;padding:22px 20px;border-bottom:1px solid #aaa}
 .single-product .sn-designer-box{grid-template-columns:24px minmax(0,1fr) auto;gap:13px}
 .single-product .sn-box-copy strong{font-size:14px}
 .single-product .sn-box-copy small{font-size:11px}
 .single-product .sn-box-price{font-size:15px}
 .single-product .sn-box-live{right:20px;bottom:8px;font-size:9px}
}


/* ============================================================
   ORIGINAL DESIGNER BOX — SYMMETRIC LEDGER v1.1
   ============================================================ */
@media(min-width:901px){
 .single-product form.snp-exact-form{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-template-areas:"tier qty box add" "shipping shipping shipping shipping"!important;
  grid-template-rows:156px 96px!important
 }
 .single-product .snp-exact-form .variations{
  grid-area:tier!important;height:156px!important;padding:24px 22px 20px!important;
  border-right:1px solid #aaa!important;border-bottom:1px solid #aaa!important
 }
 .single-product .snp-exact-form .variations th label{
  margin:0 0 16px!important;font-size:9px!important
 }
 .single-product .snp-tier-buttons{gap:7px!important}
 .single-product .snp-tier-buttons button{
  min-width:0!important;height:64px!important;padding:0 5px!important;
  font-size:8px!important;letter-spacing:.08em!important
 }
 .single-product .snp-exact-form .quantity{
  grid-area:qty!important;height:156px!important;min-height:156px!important;
  padding:64px 22px 22px!important;align-items:center!important;
  border-right:1px solid #aaa!important;border-bottom:1px solid #aaa!important
 }
 .single-product .snp-exact-form .quantity:before{top:28px!important;left:0!important;width:100%;text-align:center;font-size:9px!important}
 .single-product .snp-exact-form .snp-qty{height:64px!important}
 .single-product .snp-exact-form .snp-qty button,
 .single-product .snp-exact-form .qty{height:62px!important}
 .single-product .sn-designer-box-wrap{
  grid-area:box!important;height:156px!important;padding:26px 20px 22px!important;
  border-right:1px solid #aaa!important;border-bottom:1px solid #aaa!important
 }
 .single-product .sn-designer-box{grid-template-columns:24px minmax(0,1fr) auto!important;gap:12px!important}
 .single-product .sn-box-copy strong{font-size:14px!important;line-height:1.16!important}
 .single-product .sn-box-copy small{font-size:10px!important;line-height:1.35!important;margin-top:5px!important}
 .single-product .sn-box-price{font-size:15px!important}
 .single-product .sn-box-live{right:20px!important;bottom:9px!important;font-size:9px!important}
 .single-product .snp-exact-form .single_add_to_cart_button{
  grid-area:add!important;width:calc(100% - 44px)!important;
  height:72px!important;min-height:72px!important;align-self:center!important;
  justify-self:center!important
 }
 .single-product .snp-exact-form>.snp-assure.is-quality{display:none!important}
 .single-product .snp-exact-form>.snp-assure.is-shipping{
  grid-area:shipping!important;width:100%!important;height:96px!important;min-height:96px!important;
  padding:24px 34px!important;border:0!important;display:flex!important;justify-content:center!important;
  text-align:center!important
 }
 .single-product .snp-exact-form>.snp-assure.is-shipping span:last-child{
  display:flex!important;align-items:center!important;gap:18px!important
 }
 .single-product .snp-exact-form>.snp-assure.is-shipping small{margin:0!important}
}
@media(max-width:900px) and (min-width:641px){
 .single-product form.snp-exact-form{
  display:grid!important;grid-template-columns:1fr 1fr!important;
  grid-template-areas:"tier tier" "qty box" "add add" "shipping shipping"!important;
  grid-template-rows:auto 138px 104px 96px!important
 }
 .single-product .snp-exact-form .variations{grid-area:tier!important;border-right:0!important}
 .single-product .snp-exact-form .quantity{
  grid-area:qty!important;height:138px!important;min-height:138px!important;
  border-right:1px solid #aaa!important;border-bottom:1px solid #aaa!important
 }
 .single-product .sn-designer-box-wrap{
  grid-area:box!important;height:138px!important;padding:22px 24px!important;
  border-right:0!important;border-bottom:1px solid #aaa!important
 }
 .single-product .snp-exact-form .single_add_to_cart_button{
  grid-area:add!important;width:calc(100% - 48px)!important;height:68px!important;
  min-height:68px!important;align-self:center!important;justify-self:center!important
 }
 .single-product .snp-exact-form>.snp-assure.is-quality{display:none!important}
 .single-product .snp-exact-form>.snp-assure.is-shipping{
  grid-area:shipping!important;height:96px!important;min-height:96px!important;
  display:flex!important;justify-content:center!important;text-align:center!important;border:0!important
 }
}
@media(max-width:640px){
 .single-product form.snp-exact-form{display:flex!important;flex-direction:column!important}
 .single-product .snp-exact-form .variations{order:1}
 .single-product .snp-exact-form .quantity{order:2}
 .single-product .sn-designer-box-wrap{order:3}
 .single-product .snp-exact-form .single_add_to_cart_button{order:4}
 .single-product .snp-exact-form>.snp-assure.is-quality{display:none!important}
 .single-product .snp-exact-form>.snp-assure.is-shipping{order:5;border-top:1px solid #aaa!important;border-bottom:0!important}
}


/* FINAL PURCHASE LEDGER CASCADE LOCK v2.0.9 */
@media(min-width:901px){
 body.single-product form.snp-exact-form{
  display:grid!important;
  grid-template:"tier qty box add" 156px "shipping shipping shipping shipping" 96px / repeat(4,minmax(0,1fr))!important
 }
}
@media(max-width:900px) and (min-width:641px){
 body.single-product form.snp-exact-form{
  display:grid!important;
  grid-template:"tier tier" auto "qty box" 138px "add add" 104px "shipping shipping" 96px / 1fr 1fr!important
 }
}
@media(max-width:640px){
 body.single-product form.snp-exact-form{display:flex!important;flex-direction:column!important}
}


/* FINAL PURCHASE LEDGER EXPLICIT GRID LOCK v2.0.10 */
@media(min-width:901px){
 body.single-product form.snp-exact-form{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-template-rows:156px 96px!important;
  grid-template-areas:"tier qty box add" "shipping shipping shipping shipping"!important
 }
}
@media(max-width:900px) and (min-width:641px){
 body.single-product form.snp-exact-form{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  grid-template-rows:auto 138px 104px 96px!important;
  grid-template-areas:"tier tier" "qty box" "add add" "shipping shipping"!important
 }
}


/* SMOOTH PRODUCT MOTION v2.0.12 */
.single-product .snp-carousel.sn-product-right .panel-1{animation:snSoftSideLeft 1.05s cubic-bezier(.22,.68,.28,1) both!important}
.single-product .snp-carousel.sn-product-right .panel-2{animation:snSoftMainRight 1.05s cubic-bezier(.22,.68,.28,1) both!important}
.single-product .snp-carousel.sn-product-right .panel-3{animation:snSoftSideInRight 1.05s cubic-bezier(.22,.68,.28,1) both!important}
.single-product .snp-carousel.sn-product-left .panel-1{animation:snSoftSideInLeft 1.05s cubic-bezier(.22,.68,.28,1) both!important}
.single-product .snp-carousel.sn-product-left .panel-2{animation:snSoftMainLeft 1.05s cubic-bezier(.22,.68,.28,1) both!important}
.single-product .snp-carousel.sn-product-left .panel-3{animation:snSoftSideRight 1.05s cubic-bezier(.22,.68,.28,1) both!important}

@keyframes snSoftMainRight{
 0%{transform:translate3d(0,0,0) scale(1);opacity:1}
 42%{transform:translate3d(-2.8%,0,0) scale(.99);opacity:.22}
 43%{transform:translate3d(2.2%,0,0) scale(.995);opacity:.22}
 100%{transform:translate3d(0,0,0) scale(1);opacity:1}
}
@keyframes snSoftMainLeft{
 0%{transform:translate3d(0,0,0) scale(1);opacity:1}
 42%{transform:translate3d(2.8%,0,0) scale(.99);opacity:.22}
 43%{transform:translate3d(-2.2%,0,0) scale(.995);opacity:.22}
 100%{transform:translate3d(0,0,0) scale(1);opacity:1}
}
@keyframes snSoftSideLeft{0%{transform:translateX(0);opacity:.82}50%{transform:translateX(-4%);opacity:.45}100%{transform:translateX(0);opacity:.82}}
@keyframes snSoftSideRight{0%{transform:translateX(0);opacity:.82}50%{transform:translateX(4%);opacity:.45}100%{transform:translateX(0);opacity:.82}}
@keyframes snSoftSideInLeft{0%{transform:translateX(0);opacity:.82}50%{transform:translateX(3%);opacity:1}100%{transform:translateX(0);opacity:.82}}
@keyframes snSoftSideInRight{0%{transform:translateX(0);opacity:.82}50%{transform:translateX(-3%);opacity:1}100%{transform:translateX(0);opacity:.82}}

@media(max-width:640px){
 .single-product .snp-carousel.sn-product-right .panel-2{animation:snSoftMainRight .88s cubic-bezier(.22,.68,.28,1) both!important}
 .single-product .snp-carousel.sn-product-left .panel-2{animation:snSoftMainLeft .88s cubic-bezier(.22,.68,.28,1) both!important}

 .nf-products .rail-wrap{overflow:hidden!important}
 .nf-products .sn-premium-rail{
  display:flex!important;
  grid-template-columns:none!important;
  gap:14px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  padding:0 18px 26px!important;
  scroll-padding-left:18px!important;
  scroll-snap-type:x mandatory!important
 }
 .nf-products .sn-premium-rail>.card{
  flex:0 0 78vw!important;
  width:78vw!important;
  min-width:78vw!important;
  max-width:78vw!important;
  transform:none!important;
  opacity:1!important;
  overflow:hidden!important;
  contain:paint!important;
  scroll-snap-align:center!important;
  box-sizing:border-box!important
 }
 .nf-products .sn-premium-rail>.card>a{display:block!important;width:100%!important;overflow:hidden!important}
 .nf-products .sn-premium-rail .card__info{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:7px!important;
  width:100%!important;
  min-width:0!important;
  min-height:92px!important;
  padding-right:4px!important;
  overflow:hidden!important
 }
 .nf-products .sn-premium-rail .card__title,
 .nf-products .sn-premium-rail .card__price{
  display:block!important;
  position:static!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important
 }
 .nf-products .sn-premium-rail .card__price{
  font-size:15px!important;
  font-weight:700!important;
  line-height:1.25!important;
  font-variant-numeric:tabular-nums!important
 }
 .nf-products .sn-premium-rail .card__row2{width:100%!important;min-width:0!important;overflow:hidden!important}
}
