/* Nu-B Holdings — storefront design system. Contract: DESIGN-CONTRACT.md (ledger paper · hairline rules · mulberry ink used only as a stamp).
   No box-shadow anywhere. Radius 0 except the round date-stamp. Fluid type via clamp(); grids via auto-fit/minmax. */
@font-face{font-family:"NB Caslon";src:url("../fonts/caslon-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"NB Caslon";src:url("../fonts/caslon-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"NB Caslon";src:url("../fonts/caslon-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"NB Mono";src:url("../fonts/plexmono-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"NB Mono";src:url("../fonts/plexmono-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

:root{
  --paper:#F5F0E6; --card:#FBF8F1; --ink:#1D1B22; --mute:#5F5A51; --rule:#D9D1BF; --mulb:#6E3A6B; --tint:#EFE3EE; --ink-mute:#BDB6AA; --ink-rule:#3A3742;
  --serif:"NB Caslon","Libre Caslon Text",Georgia,"Times New Roman",serif; --mono:"NB Mono","IBM Plex Mono",ui-monospace,Menlo,monospace;
  --f-label:.75rem;--f-ui:.875rem;--f-body:1.0625rem;--f-h3:clamp(1.35rem,2.6vw,2.2rem);--f-h2:clamp(2.2rem,4.6vw,4rem);--gut:clamp(20px,4.4vw,72px); --max:1320px; --hdr:76px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body.nb{--ast-global-color-0:#6E3A6B;--ast-global-color-1:#6E3A6B;--ast-global-color-2:#1D1B22;--ast-global-color-3:#5F5A51;--ast-global-color-4:#F5F0E6;--ast-global-color-5:#FBF8F1;--ast-global-color-6:#D9D1BF;--ast-global-color-7:#1D1B22;--ast-global-color-8:#1D1B22;margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:var(--f-body);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
:where(body.nb) img,:where(body.nb) svg{max-width:100%;height:auto;display:block}
body.nb a{color:inherit}
:where(body.nb) :focus-visible{outline:2px solid var(--mulb);outline-offset:3px}
.nb-skip{position:absolute;left:12px;top:-60px;background:var(--ink);color:var(--paper)!important;padding:12px 18px;z-index:200;font-family:var(--mono);font-size:var(--f-label);text-decoration:none}
.nb-skip:focus{top:12px}
.nb-mono{font-family:var(--mono);font-size:var(--f-label);letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.nb-wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}

/* ---- kill Astra chrome; we ship our own ---- */
body.nb #masthead,body.nb .site-header,body.nb #colophon,body.nb .site-footer,body.nb .ast-above-header-wrap,body.nb .ast-mobile-header-wrap,body.nb #ast-scroll-top,body.nb .ast-breadcrumbs-wrapper{display:none!important}
body.nb .site-content>.ast-container,body.nb .ast-container{max-width:none!important;padding:0!important;display:block!important}
body.nb #primary,body.nb #content,body.nb .site-main,body.nb article.ast-article-single,body.nb .ast-article-post{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important}
body.nb #secondary{display:none!important}
body.nb .ast-separate-container,body.nb .ast-plain-container{background:transparent!important}

/* ---- utility bar + header ---- */
.nb-util{background:var(--ink);color:var(--ink-mute);font-family:var(--mono);font-size:var(--f-label);letter-spacing:.12em;text-transform:uppercase}
.nb-util .nb-wrap{display:flex;justify-content:space-between;gap:20px;min-height:38px;align-items:center;flex-wrap:wrap}
.nb-util span+span{color:var(--paper)}
.nb-head{position:sticky;top:0;z-index:100;background:var(--paper);border-bottom:1px solid var(--rule);transition:border-color .2s}
.nb-head .nb-wrap{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:28px;min-height:var(--hdr)}
.nb-logo{display:block;height:44px;width:auto;flex:none}
body.nb .nb-logo img{height:44px;width:auto;max-width:none}
.nb-nav{justify-self:center;display:flex;gap:0}
.nb-nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 20px;font-family:var(--mono);font-size:var(--f-ui);letter-spacing:.13em;text-transform:uppercase;font-weight:500;text-decoration:none;color:var(--ink);border-left:1px solid var(--rule)}
.nb-nav a:last-child{border-right:1px solid var(--rule)}
.nb-nav a::after{content:"";position:absolute;left:20px;right:20px;bottom:6px;height:2px;background:var(--mulb);transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.3,.7,.2,1)}
.nb-nav a:hover::after,.nb-nav a[aria-current]::after{transform:scaleX(1)}
.nb-cart{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 4px 0 12px;font-family:var(--mono);font-size:var(--f-ui);letter-spacing:.13em;text-transform:uppercase;font-weight:500;text-decoration:none}
.nb-cart b{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;background:var(--mulb);color:var(--paper);font-weight:500;font-size:var(--f-label);letter-spacing:0}
.nb-burger{display:none;background:none;border:1px solid var(--ink);width:46px;height:46px;cursor:pointer;color:var(--ink);align-items:center;justify-content:center}
.nb-burger i{display:block;width:20px;height:2px;background:currentColor;position:relative}
.nb-burger i::before,.nb-burger i::after{content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor}
.nb-burger i::before{top:-6px}.nb-burger i::after{top:6px}
@media(max-width:920px){
  .nb-head .nb-wrap{grid-template-columns:1fr auto auto auto;gap:8px}
  .nb-burger{display:inline-flex}
  .nb-nav{position:fixed;inset:calc(var(--hdr) + 38px) 0 auto 0;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--rule);padding:8px var(--gut) 20px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:.2s;justify-self:stretch}
  .nb-nav.open{opacity:1;transform:none;pointer-events:auto}
  .nb-nav a{border:0!important;border-bottom:1px solid var(--rule)!important;min-height:52px;padding:0}
  .nb-nav a::after{display:none}
  .nb-cart span{display:none}
}

/* ---- buttons ---- */
.nb-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;background:var(--ink);color:var(--paper)!important;font-family:var(--mono);font-size:var(--f-ui);letter-spacing:.14em;text-transform:uppercase;font-weight:500;text-decoration:none;border:1px solid var(--ink);border-radius:0;cursor:pointer;transition:background .2s,color .2s}
.nb-btn:hover{background:var(--mulb);border-color:var(--mulb)}
.nb-btn.ghost{background:transparent;color:var(--ink)!important}
.nb-btn.ghost:hover{background:var(--ink);color:var(--paper)!important;border-color:var(--ink)}
.nb-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-family:var(--mono);font-size:var(--f-ui);letter-spacing:.13em;text-transform:uppercase;font-weight:500;text-decoration:none;border-bottom:1px solid currentColor}
.nb-link:hover{color:var(--mulb)}

/* ---- HERO ---- */
.nb-hero{padding:clamp(40px,7vw,104px) 0 clamp(48px,7vw,104px);position:relative}
.nb-hero .nb-wrap{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px;align-items:end}
.nb-hero-copy{grid-column:1/8}
.nb-kicker{font-family:var(--mono);font-size:var(--f-label);letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--mulb);display:flex;align-items:center;gap:14px;margin:0 0 28px}
.nb-kicker::before{content:"";width:44px;height:1px;background:var(--mulb)}
.nb-h1{color:var(--ink)!important;font-family:var(--serif);font-weight:700;font-size:clamp(3.1rem,8.6vw,8rem);line-height:.96;letter-spacing:-.025em;margin:0 0 30px}
.nb-lead{font-size:clamp(1.15rem,1.7vw,1.45rem);line-height:1.5;max-width:40ch;margin:0 0 40px;color:var(--ink)}
.nb-cta{display:flex;gap:20px;flex-wrap:wrap;align-items:center}
.nb-hero-art{grid-column:8/13;position:relative;min-height:clamp(340px,44vw,620px)}
.nb-sheet{position:absolute;inset:0 0 0 6%;background:var(--card);border:1px solid var(--rule);transform:rotate(1.6deg);
  background-image:repeating-linear-gradient(to bottom,transparent 0 35px,var(--rule) 35px 36px);background-position:0 58px}
.nb-sheet::before{content:"";position:absolute;top:0;bottom:0;left:64px;width:1px;background:#C9A0C6}
.nb-sheet .nb-line{position:absolute;left:96px;right:8%;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.nb-line>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:14px}
.nb-line>span:last-child{flex:none}
.nb-stamp{position:absolute;left:-4%;bottom:6%;width:clamp(150px,18vw,240px);color:var(--mulb);transform:rotate(-14deg)}
.nb-stamp img{width:100%;height:auto}
.rvon .nb-stamp{animation:nbstamp .7s .35s cubic-bezier(.2,.8,.2,1) both}
@keyframes nbstamp{0%{opacity:0;transform:rotate(-14deg) scale(1.5)}60%{opacity:1;transform:rotate(-14deg) scale(.96)}100%{opacity:1;transform:rotate(-14deg) scale(1)}}
@media(max-width:920px){.nb-hero-copy{grid-column:1/13}.nb-hero-art{grid-column:1/13;margin-top:44px;min-height:300px}}

/* ---- accent band ---- */
.nb-band{background:var(--mulb);color:var(--paper);padding:clamp(56px,9vw,132px) 0}
.nb-band p{color:var(--paper);margin:0;font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(2.2rem,5.6vw,5rem);line-height:1.08;letter-spacing:-.015em;max-width:20ch}
.nb-band .nb-mono{display:block;margin-top:32px;color:#E5D3E3}

/* ---- the Index ---- */
.nb-index-sec{padding:clamp(56px,8vw,120px) 0;border-bottom:1px solid var(--rule)}
.nb-index-sec .nb-wrap{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px}
.nb-index-side{grid-column:1/4;align-self:start;position:sticky;top:calc(var(--hdr) + 28px)}
.nb-h2{color:var(--ink)!important;font-family:var(--serif);font-weight:700;font-size:var(--f-h2);line-height:1;letter-spacing:-.02em;margin:0 0 20px}
.nb-side-note{color:var(--mute);max-width:26ch;margin:0 0 28px}
.nb-plate{position:relative;aspect-ratio:4/5;background:var(--card);border:1px solid var(--rule);overflow:hidden;display:grid;place-items:center}
.nb-plate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s}
.nb-plate img.on{opacity:1}
.nb-plate .nb-emb{width:34%;opacity:.9}
.nb-plate-cap{position:absolute;left:0;bottom:0;right:0;padding:12px 14px;background:var(--paper);border-top:1px solid var(--rule);font-family:var(--mono);font-size:var(--f-label);letter-spacing:.12em;text-transform:uppercase}
.nb-index{grid-column:5/13;list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.nb-index li{border-bottom:1px solid var(--rule)}
.nb-index a{display:grid;grid-template-columns:3.4rem 1fr auto;align-items:baseline;gap:12px;padding:22px 0;text-decoration:none;position:relative;transition:padding .25s,background .25s}
.nb-index a:hover,.nb-index a:focus-visible{background:var(--tint);padding-inline:14px}
.nb-index .n{font-family:var(--mono);font-size:var(--f-ui);letter-spacing:.1em;color:var(--mulb);font-weight:500}
.nb-index .t{font-family:var(--serif);font-weight:700;font-size:var(--f-h3);line-height:1.15;display:flex;align-items:baseline;gap:14px}
.nb-index .t i{flex:1;border-bottom:1px dotted var(--mute);transform:translateY(-6px);min-width:24px}
.nb-index .c{font-family:var(--mono);font-size:var(--f-ui);letter-spacing:.1em;color:var(--mute);white-space:nowrap}
@media(max-width:920px){.nb-index-side{grid-column:1/13;position:static;margin-bottom:36px}.nb-index{grid-column:1/13}.nb-plate{display:none}}

/* ---- numbers (ink ground) ---- */
.nb-nums{background:var(--ink);color:var(--paper);padding:clamp(60px,9vw,130px) 0}
.nb-nums .nb-wrap{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px;align-items:end}
.nb-big{grid-column:1/8;font-family:var(--serif);font-weight:700;font-size:clamp(7rem,24vw,21rem);line-height:.82;letter-spacing:-.05em;margin:0;color:var(--paper)}
.nb-big small{display:block;font-family:var(--mono);font-weight:500;font-size:var(--f-label);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);margin-top:22px;line-height:1.5}
.nb-pair{grid-column:9/13;display:grid;gap:0}
.nb-pair div{padding:26px 0;border-top:1px solid var(--ink-rule)}
.nb-pair div:last-child{border-bottom:1px solid var(--ink-rule)}
.nb-pair b{color:var(--paper);display:block;font-family:var(--serif);font-weight:700;font-size:var(--f-h2);line-height:1;letter-spacing:-.03em}
.nb-pair span{display:block;margin-top:10px;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
@media(max-width:920px){.nb-big{grid-column:1/13}.nb-pair{grid-column:1/13;margin-top:44px}}

/* ---- specimens / product grid ---- */
.nb-shelf{padding:clamp(56px,8vw,120px) 0}
.nb-shelf-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:44px;border-bottom:1px solid var(--ink);padding-bottom:22px}
.nb-shelf-head .nb-h2{margin:0}
body.nb ul.products{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:44px 28px;list-style:none;margin:0!important;padding:0!important}
body.nb ul.products::before,body.nb ul.products::after{display:none!important}
body.nb ul.products li.product{width:auto!important;margin:0!important;padding:0!important;float:none!important;position:relative;display:flex;flex-direction:column;text-align:left!important;background:transparent}
body.nb ul.products li.product a.woocommerce-LoopProduct-link{display:block;text-decoration:none}
body.nb ul.products li.product a.ast-loop-product__link{display:block;min-height:44px;padding:6px 0}
body.nb ul.products li.product img{width:100%!important;height:auto!important;aspect-ratio:4/5;object-fit:cover;background:var(--card);border:1px solid var(--rule);margin:0 0 16px!important;transition:border-color .2s}
body.nb ul.products li.product:hover img{border-color:var(--ink)}
body.nb ul.products li.product .ast-woo-product-category,body.nb ul.products li.product .ast-woo-shop-product-description,body.nb .onsale,body.nb .star-rating,body.nb .ast-shop-product-out-of-stock{display:none!important}
body.nb ul.products li.product .woocommerce-loop-product__title{font-family:var(--serif)!important;font-weight:700!important;font-size:var(--f-body)!important;line-height:1.3!important;margin:0 0 6px!important;padding:0!important;color:var(--ink)}
body.nb ul.products li.product .price{display:block;font-family:var(--mono)!important;font-size:var(--f-ui)!important;letter-spacing:.04em;color:var(--ink)!important;font-weight:500;border-top:1px solid var(--rule);padding-top:10px;margin:0 0 14px!important}
body.nb ul.products li.product .button,body.nb ul.products li.product .ast-on-card-button{margin-top:auto;display:inline-flex!important;align-items:center;justify-content:center;min-height:46px;padding:0 20px!important;background:transparent!important;color:var(--ink)!important;border:1px solid var(--ink)!important;border-radius:0!important;font-family:var(--mono)!important;font-size:var(--f-label)!important;letter-spacing:.13em;text-transform:uppercase;font-weight:500!important;width:100%;box-shadow:none!important}
body.nb ul.products li.product .button:hover{background:var(--ink)!important;color:var(--paper)!important}
body.nb .astra-shop-summary-wrap{display:flex;flex-direction:column;flex:1}

/* ---- inner pages / shop / single product ---- */
.nb-page{padding:clamp(40px,6vw,96px) 0 clamp(64px,8vw,120px)}
.nb-page-head{border-bottom:1px solid var(--ink);padding-bottom:26px;margin-bottom:clamp(32px,5vw,64px)}
.nb-page-head h1,body.nb .entry-title{font-family:var(--serif)!important;font-weight:700!important;font-size:var(--f-h2)!important;line-height:1!important;letter-spacing:-.025em!important;margin:0!important;color:var(--ink)!important}
.nb-page-head .nb-kicker{margin-bottom:18px}
.nb-prose{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px}
.nb-prose>aside{grid-column:1/4;align-self:start;position:sticky;top:calc(var(--hdr) + 28px);font-family:var(--mono);font-size:var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);line-height:1.9}
.nb-prose>aside a{display:block;text-decoration:none;border-bottom:1px solid var(--rule);padding:8px 0}
.nb-prose>aside a:hover{color:var(--mulb)}
.nb-prose>div{grid-column:5/13;max-width:68ch}
.nb-prose h2{font-family:var(--serif);font-weight:700;font-size:var(--f-h3);line-height:1.2;margin:2.4em 0 .6em;padding-top:1.1em;border-top:1px solid var(--rule);letter-spacing:-.01em}
.nb-prose h2:first-child{margin-top:0;border-top:0;padding-top:0}
.nb-prose p,.nb-prose li{font-size:var(--f-body)}
.nb-prose ul,.nb-prose ol{padding-left:1.2em}
.nb-prose li{margin:.35em 0}
.nb-prose a{color:var(--mulb);text-decoration-thickness:1px;text-underline-offset:3px}
.nb-prose dl{margin:1.4em 0;display:grid;grid-template-columns:minmax(120px,190px) 1fr;gap:0 24px}
.nb-prose dt{font-family:var(--mono);font-size:var(--f-label);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding:14px 0;border-top:1px solid var(--rule)}
.nb-prose dd{margin:0;padding:12px 0;border-top:1px solid var(--rule)}
.nb-prose .nb-fact{background:var(--card);border:1px solid var(--rule);padding:22px 26px;margin:1.6em 0}
@media(max-width:920px){.nb-prose>aside{position:static;grid-column:1/13;margin-bottom:28px}.nb-prose>div{grid-column:1/13}.nb-prose dl{grid-template-columns:1fr}}
.nb-form{display:grid;gap:18px;margin-top:8px}
.nb-form label{display:grid;gap:6px;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
body.nb input[type=text],body.nb input[type=email],body.nb input[type=tel],body.nb input[type=number],body.nb input[type=password],body.nb select,body.nb textarea,body.nb .input-text{width:100%;min-height:50px;padding:12px 14px;background:var(--card);border:1px solid var(--rule);border-radius:0;font-family:var(--serif);font-size:var(--f-body);color:var(--ink);box-shadow:none}
body.nb textarea{min-height:150px}
body.nb input:focus,body.nb select:focus,body.nb textarea:focus{border-color:var(--ink);outline:0}
.nb-notice{margin:0 0 20px;padding:14px 18px;border:1px solid var(--mulb);background:var(--tint);font-family:var(--mono);font-size:var(--f-ui)}

/* single product */
body.nb.single-product div.product{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px;max-width:var(--max);margin:0 auto;padding:clamp(32px,5vw,72px) var(--gut)}
body.nb.single-product div.product .woocommerce-product-gallery{grid-column:1/7;width:100%!important;float:none!important;margin:0!important}
body.nb.single-product div.product .summary{grid-column:8/13;width:100%!important;float:none!important;margin:0!important}
body.nb.single-product div.product .woocommerce-product-gallery img{width:100%;background:var(--card);border:1px solid var(--rule)}
body.nb.single-product .product_title{font-family:var(--serif);font-weight:700;font-size:var(--f-h2);line-height:1.05;letter-spacing:-.02em;margin:0 0 14px}
body.nb.single-product .summary .price{font-family:var(--mono)!important;font-size:var(--f-h3)!important;font-weight:500;color:var(--ink)!important;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);padding:14px 0;margin:0 0 22px!important;display:block}
body.nb.single-product .woocommerce-product-details__short-description{font-size:var(--f-body);margin-bottom:26px}
body.nb.single-product form.cart{display:flex;gap:14px;align-items:stretch;flex-wrap:wrap;margin-bottom:28px}
body.nb.single-product .quantity .qty{width:88px;min-height:52px;text-align:center}
body.nb.single-product button.single_add_to_cart_button{min-height:52px;padding:0 34px;background:var(--ink)!important;color:var(--paper)!important;border:1px solid var(--ink)!important;border-radius:0!important;font-family:var(--mono)!important;font-size:var(--f-ui)!important;letter-spacing:.14em;text-transform:uppercase;font-weight:500!important}
body.nb.single-product button.single_add_to_cart_button:hover{background:var(--mulb)!important;border-color:var(--mulb)!important}
body.nb.single-product .product_meta{font-family:var(--mono);font-size:var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);border-top:1px solid var(--rule);padding-top:16px;display:grid;gap:6px}
body.nb.single-product .woocommerce-tabs{grid-column:1/13;margin-top:64px}
body.nb.single-product .woocommerce-tabs ul.tabs{display:flex;gap:0;padding:0;margin:0 0 28px;list-style:none;border-bottom:1px solid var(--ink)}
body.nb.single-product .woocommerce-tabs ul.tabs li{margin:0;border:0;background:none}
body.nb.single-product .woocommerce-tabs ul.tabs li a{display:block;padding:14px 22px;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.13em;text-transform:uppercase;font-weight:500;text-decoration:none}
body.nb.single-product .woocommerce-tabs ul.tabs li.active a{background:var(--ink);color:var(--paper)}
body.nb.single-product table.shop_attributes th{font-family:var(--mono);font-size:var(--f-label);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);text-align:left;padding:12px 24px 12px 0;border-top:1px solid var(--rule);width:200px;background:none}
body.nb.single-product table.shop_attributes td{padding:12px 0;border-top:1px solid var(--rule);font-style:normal}
body.nb.single-product .related.products,body.nb.single-product .up-sells{grid-column:1/13;margin-top:56px}
body.nb.single-product .related h2{font-family:var(--serif);font-weight:700;font-size:var(--f-h3);border-bottom:1px solid var(--ink);padding-bottom:14px}
@media(max-width:920px){body.nb.single-product div.product .woocommerce-product-gallery,body.nb.single-product div.product .summary{grid-column:1/13}body.nb.single-product div.product .summary{margin-top:32px!important}}

/* shop archive */
body.nb .woocommerce-products-header{padding:clamp(40px,6vw,88px) 0 0}
body.nb .woocommerce-products-header__title{font-family:var(--serif)!important;font-weight:700!important;font-size:var(--f-h2)!important;line-height:1!important;letter-spacing:-.025em;border-bottom:1px solid var(--ink);padding-bottom:22px;margin:0!important}
body.nb.archive .site-main>ul.products,body.nb.post-type-archive-product .site-main>ul.products{max-width:var(--max);margin:44px auto 0!important;padding:0 var(--gut)!important}
body.nb .woocommerce-result-count,body.nb .woocommerce-ordering{max-width:none;margin:28px 0 0;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
body.nb .woocommerce-notices-wrapper{padding:0}
body.nb .woocommerce-message,body.nb .woocommerce-info{background:var(--tint);border:1px solid var(--mulb);color:var(--ink);padding:14px 18px;font-family:var(--mono);font-size:var(--f-ui);border-radius:0}
body.nb .woocommerce-pagination ul{display:flex;gap:6px;justify-content:center;list-style:none;padding:0;margin:56px 0 0;border:0}
body.nb .woocommerce-pagination ul li{border:0;margin:0}
body.nb .woocommerce-pagination a,body.nb .woocommerce-pagination span{display:inline-grid;place-items:center;min-width:46px;min-height:46px;border:1px solid var(--rule);font-family:var(--mono);font-size:var(--f-ui);text-decoration:none}
body.nb .woocommerce-pagination .current{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* cart + checkout shells */
body.nb .woocommerce-cart .woocommerce,body.nb .woocommerce-checkout .woocommerce,body.nb.woocommerce-cart .entry-content,body.nb.woocommerce-checkout .entry-content{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
body.nb table.shop_table{border:0;border-collapse:collapse;width:100%}
body.nb table.shop_table th{font-family:var(--mono);font-size:var(--f-label);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);border-bottom:1px solid var(--ink);padding:12px 10px;text-align:left;background:none}
body.nb table.shop_table td{border-top:1px solid var(--rule);padding:16px 10px;vertical-align:middle}
body.nb .cart_totals h2,body.nb h3#order_review_heading,body.nb .woocommerce-billing-fields h3{font-family:var(--serif);font-weight:700;font-size:var(--f-h3)}
body.nb .wc-proceed-to-checkout a.checkout-button,body.nb #place_order,body.nb .button.alt{background:var(--ink)!important;color:var(--paper)!important;border-radius:0!important;min-height:52px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono)!important;font-size:var(--f-ui)!important;letter-spacing:.14em;text-transform:uppercase;font-weight:500!important;padding:0 30px}
body.nb .wc-proceed-to-checkout a.checkout-button:hover,body.nb #place_order:hover{background:var(--mulb)!important}

/* ---- footer: the day-book ---- */
.nb-foot{background:var(--ink);color:var(--paper);padding:clamp(56px,7vw,100px) 0 30px;margin-top:0}
.nb-foot .nb-wrap>.g{display:grid;grid-template-columns:repeat(12,1fr);gap:44px 24px}
.nb-foot .b{grid-column:1/6}
body.nb .nb-foot .b img{height:48px;width:auto;max-width:none;margin-bottom:22px}
.nb-foot .b p{color:var(--ink-mute);max-width:38ch;margin:0 0 6px;font-size:var(--f-ui)}
.nb-foot .col{grid-column:span 2}
.nb-foot .col:nth-of-type(2){grid-column:7/9}
.nb-foot h3{color:var(--ink-mute)!important;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--ink-mute);margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--ink-rule)}
.nb-foot .col a{display:block;padding:10px 0;min-height:44px;text-decoration:none;font-size:var(--f-ui);color:var(--paper)}
.nb-foot .col a:hover{color:#DDB8DA}
.nb-day{margin-top:clamp(44px,6vw,80px);border-top:1px solid var(--ink-rule);padding-top:26px;display:grid;grid-template-columns:repeat(12,1fr);gap:18px 24px;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);line-height:1.8}
.nb-day .l{grid-column:1/9}
.nb-day .l b{color:var(--paper);font-weight:500}
.nb-day .r{grid-column:9/13;display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
body.nb .nb-day .r img{height:26px;width:auto;max-width:none;background:#fff;padding:2px}
@media(max-width:920px){.nb-foot .b,.nb-foot .col,.nb-foot .col:nth-of-type(2){grid-column:1/13}.nb-day .l,.nb-day .r{grid-column:1/13;justify-content:flex-start}}

/* cookie notice */
.nb-cookie{position:fixed;right:16px;bottom:16px;z-index:150;width:min(440px,calc(100% - 32px));background:var(--paper);border:1px solid var(--ink);padding:14px 16px;display:none;gap:12px;align-items:center;flex-wrap:wrap;font-size:var(--f-ui);line-height:1.45}
.nb-cookie.show{display:flex}
.nb-cookie p{margin:0;flex:1 1 260px}
.nb-cookie button{min-height:44px;padding:0 20px;background:var(--ink);color:var(--paper);border:0;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.13em;text-transform:uppercase;cursor:pointer}

/* progressive scroll-reveal: content is NEVER invisible — reveal moves elements, it does not hide them */
.rv{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.rvon .rv:not(.in){transform:translateY(26px)}
.nb-rule-draw{position:relative}
.rvon .nb-rule-draw::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.3,.7,.2,1)}
.rvon .nb-rule-draw.in::after{transform:scaleX(1)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rvon .rv:not(.in){transform:none}}

@media(max-width:640px){.nb-util span+span{display:none}.nb-util .nb-wrap{min-height:34px}}
body.nb.home .entry-header,body.nb.page-template-default.home .entry-header{display:none!important}

@media(max-width:640px){.nb-cookie{left:12px;right:12px;bottom:12px;width:auto;flex-wrap:nowrap;padding:10px 12px;font-size:var(--f-ui)}.nb-cookie p{flex:1 1 auto}.nb-cookie button{flex:none}}

body.nb .nb-btn,body.nb .nb-link,body.nb .nb-nav a,body.nb .nb-cart,body.nb .nb-foot a,body.nb .nb-index a,body.nb .nb-index a *,body.nb ul.products li.product a,body.nb .nb-logo,body.nb .nb-skip,body.nb .nb-prose>aside a,body.nb .nb-pagination a{text-decoration:none!important}
body.nb .nb-link{border-bottom:1px solid currentColor}

body.nb a.skip-link.screen-reader-text,body.nb .ast-skip-link{display:none!important}
body.nb.page .entry-title,body.nb .ast-archive-description{display:none!important}
body.nb .entry-title.product_title{display:block!important}
body.nb.archive .woocommerce-products-header__title{display:block!important}
/* mobile: shorter page — two-up product grid, tighter section rhythm */
@media(max-width:640px){
  body.nb ul.products{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:28px 14px}
  body.nb ul.products li.product .woocommerce-loop-product__title{font-size:var(--f-ui)!important}
  body.nb ul.products li.product .button{min-height:44px;padding:0 8px!important;font-size:var(--f-label)!important}
  .nb-hero{padding:32px 0 40px}.nb-hero-art{margin-top:28px;min-height:250px}
  .nb-h1{margin-bottom:22px}.nb-lead{margin-bottom:28px}
  .nb-band{padding:48px 0}.nb-index-sec,.nb-shelf{padding:48px 0}.nb-nums{padding:52px 0}
  .nb-index a{padding:16px 0}
  .nb-big{font-size:clamp(5.5rem,30vw,8rem)}.nb-pair{margin-top:30px}.nb-pair div{padding:18px 0}
  .nb-foot{padding:44px 0 24px}.nb-foot .g{gap:28px 24px}.nb-foot .col{grid-column:span 6!important}.nb-foot .b{grid-column:1/13!important}
}

/* breadcrumb: kit colours (was Woo #777 = 3.94:1), real tap targets */
body.nb .woocommerce-breadcrumb{max-width:var(--max);margin:0 auto;padding:18px var(--gut) 0;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)!important}
body.nb .woocommerce-breadcrumb a{color:var(--mute)!important;text-decoration:none!important;display:inline-block;padding-block:12px;margin-block:-12px}
body.nb .woocommerce-breadcrumb a:hover{color:var(--mulb)!important}
/* on-page contents links: 44px targets */
.nb-prose>aside a{min-height:44px;display:flex;align-items:center;padding:6px 0}
/* inline text links keep their line but present a 40px+ target */
body.nb .nb-prose p a,body.nb .nb-prose li a,body.nb .nb-prose dd a,body.nb .nb-cookie a{display:inline-block;padding-block:11px;margin-block:-11px}

body.nb .woocommerce-breadcrumb a{display:inline-flex;align-items:center;min-width:44px;min-height:44px;margin-block:-12px;padding-block:0}
body.nb .woocommerce-pagination .page-numbers,body.nb a.page-numbers{min-width:44px!important;min-height:46px!important;padding:0 10px}
body.nb a.button.wc-backward,body.nb .return-to-shop a.button{min-height:46px;display:inline-flex;align-items:center;padding:0 26px;background:var(--ink)!important;color:var(--paper)!important;border-radius:0!important;font-family:var(--mono);font-size:var(--f-ui);letter-spacing:.12em;text-transform:uppercase}

/* archive: one centred container, count + sort on one row */
body.nb:not(.single-product) .ast-woocommerce-container{max-width:var(--max)!important;margin-inline:auto!important;padding-inline:var(--gut)!important;padding-bottom:clamp(56px,8vw,120px)}
body.nb.single-product .ast-woocommerce-container{max-width:none!important;padding:0!important}
body.nb .woocommerce-result-count{float:left;margin:26px 0 22px!important;line-height:46px}
body.nb .woocommerce-ordering{float:right;margin:26px 0 22px!important}
body.nb .woocommerce-ordering select{min-height:46px;padding:0 40px 0 14px;background:var(--card);border:1px solid var(--rule);border-radius:0;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
body.nb:not(.single-product) ul.products{clear:both}
body.nb .nb-deptline{font-family:var(--mono);font-size:var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--mulb);margin:18px 0 0}
/* single product */
body.nb.single-product .summary .woocommerce-breadcrumb,body.nb.single-product .summary .single-product-category{display:none!important}
body.nb.single-product>.site .woocommerce-breadcrumb,body.nb.single-product .ast-woocommerce-container>.woocommerce-breadcrumb{max-width:var(--max);margin:0 auto}
.nb-assure{list-style:none;margin:0 0 26px;padding:16px 0 0;border-top:1px solid var(--rule);display:grid;gap:8px;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.nb-assure li{padding-left:22px;position:relative}
.nb-assure li::before{content:"";position:absolute;left:0;top:.55em;width:10px;height:1px;background:var(--mulb)}
body.nb .nb-tab-note a{color:var(--mulb)}

/* the MAEF core blanket-hides every <header>/<footer> on its checkout page; our chrome is the trust surface an underwriter sees */
html body .nb-head{display:block!important}
html body .nb-foot{display:block!important}
html body header.nb-page-head{display:block!important}
body.nb.single-product .product_title{font-size:var(--f-h3)!important;line-height:1.1;margin-bottom:16px}
.nb-checkout-note{margin:18px 0 0;font-size:var(--f-label);letter-spacing:.06em;line-height:1.7;color:var(--mute);font-family:var(--mono);text-transform:none}
.nb-checkout-note a{color:var(--mulb);text-decoration:underline!important;display:inline-block;padding-block:11px;margin-block:-11px}
.nb-cards{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
body.nb .nb-cards img{height:28px;width:auto;max-width:none;background:#fff;border:1px solid var(--rule);padding:2px}
body.nb .woocommerce-checkout .woocommerce-info,body.nb .woocommerce-checkout .woocommerce-NoticeGroup{border-radius:0}
body.nb #payment .woocommerce-info{background:var(--tint);border:1px solid var(--mulb);color:var(--ink);font-family:var(--serif);font-size:var(--f-body);line-height:1.5;padding:16px 18px}
body.nb #payment .woocommerce-info a{color:var(--mulb);text-decoration:underline!important}

/* ---- header search ---- */
.nb-searchbtn{display:inline-grid;place-items:center;width:44px;height:44px;background:none;border:0;cursor:pointer;color:var(--ink)}
.nb-searchbtn:hover{color:var(--mulb)}
.nb-search{background:var(--card);border-bottom:1px solid var(--rule)}
.nb-search[hidden]{display:none}
.nb-search form{display:flex;gap:12px;padding:16px 0;align-items:stretch}
body.nb .nb-search input[type=search]{flex:1;min-height:52px}
/* ---- photographic sections (render only when the photograph exists) ---- */
.nb-scene{position:relative;margin-bottom:40px}
.nb-scene figure{margin:0}
body.nb .nb-scene img{width:100%;height:clamp(320px,52vw,760px);object-fit:cover}
.nb-scene .nb-panel{position:absolute;left:var(--gut);bottom:-32px;max-width:min(470px,88%);background:var(--paper);border:1px solid var(--ink);padding:26px 30px}
.nb-scene .nb-panel p:not(.nb-kicker){margin:0 0 12px;font-size:var(--f-h3);line-height:1.15;font-weight:700;letter-spacing:-.01em}
.nb-scene .nb-panel .nb-kicker{margin:0 0 12px}
.nb-macro .nb-panel{left:auto;right:var(--gut);bottom:36px}
.nb-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:0}
.nb-cell{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--card)}
body.nb .nb-cell img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.nb-cell:hover img{transform:scale(1.035)}
.nb-chamf{position:absolute;left:0;bottom:0;min-width:min(300px,86%);display:grid;gap:4px;padding:20px 34px 20px 24px;background:var(--paper);clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,0 100%);font-family:var(--serif);font-weight:700;font-size:var(--f-h3);line-height:1.1;color:var(--ink)}
.nb-chamf i,.nb-chamf em{font-style:normal;font-family:var(--mono);font-weight:500;font-size:var(--f-label);letter-spacing:.14em;text-transform:uppercase}
.nb-chamf i{color:var(--mulb)}.nb-chamf em{color:var(--mute)}
.nb-split{display:grid;grid-template-columns:repeat(12,1fr);align-items:center;margin:clamp(40px,6vw,96px) 0}
.nb-split figure{grid-column:1/8;grid-row:1;margin:0}
body.nb .nb-split figure img{width:100%;height:100%;min-height:440px;object-fit:cover}
.nb-split .nb-panel{grid-column:7/13;grid-row:1;position:relative;z-index:2;background:var(--paper);border:1px solid var(--ink);padding:clamp(28px,4vw,56px);margin-right:var(--gut)}
.nb-rules{margin:22px 0 0}
.nb-rules>div{display:grid;grid-template-columns:minmax(150px,.9fr) 2fr;gap:8px 20px;padding:18px 0;border-top:1px solid var(--rule)}
.nb-rules dt{font-weight:700;font-size:var(--f-body);display:flex;gap:12px;align-items:baseline}
.nb-rules dt i{font-style:normal;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.12em;color:var(--mulb);font-weight:500}
.nb-rules dd{margin:0;color:var(--mute)}
.nb-rules-sec{padding:clamp(56px,8vw,120px) 0;border-top:1px solid var(--rule)}
.nb-rules-sec .nb-rules{max-width:920px}
@media(max-width:820px){.nb-mosaic{grid-template-columns:1fr}.nb-split figure,.nb-split .nb-panel{grid-column:1/13;grid-row:auto}.nb-split .nb-panel{margin:-32px 20px 0}.nb-rules>div{grid-template-columns:1fr}.nb-macro .nb-panel,.nb-scene .nb-panel{left:16px;right:auto}}
/* ---- product cards: second photograph on hover ---- */
body.nb ul.products li.product a.woocommerce-LoopProduct-link{position:relative}
body.nb ul.products li.product img.nb-alt{position:absolute;top:0;left:0;width:100%!important;height:auto;aspect-ratio:4/5;object-fit:cover;margin:0!important;opacity:0;transition:opacity .4s;pointer-events:none}
@media(hover:hover){body.nb ul.products li.product:hover img.nb-alt{opacity:1}}

body.nb.single-product .product_meta a{display:inline-block;padding-block:13px;margin-block:-13px}

@media print{
  .nb-util,.nb-head,.nb-foot,.nb-cookie,.nb-search,.nb-cta,.nb-prose>aside,.nb-skip{display:none!important}
  body.nb{background:#fff;color:#000;font-size:11pt}
  .nb-page{padding:0}.nb-prose>div{grid-column:1/13;max-width:none}
  .nb-prose a{color:#000;text-decoration:underline}.nb-prose a[href^="/"]::after{content:" (" attr(href) ")";font-size:9pt}
  .nb-prose h2{break-after:avoid}.nb-prose dl>div,.nb-prose li{break-inside:avoid}
}

body.nb .nb-spec{display:block;font-family:var(--mono);font-size:var(--f-label);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin:0 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.nb ul.products li.product .price{text-align:right}

/* Astra's global button styles outrank single-class rules: raise specificity for our icon buttons */
body.nb button.nb-searchbtn,body.nb button.nb-burger{background:transparent!important;border-radius:0!important;box-shadow:none!important;padding:0!important;color:var(--ink)!important;min-width:44px}
body.nb button.nb-searchbtn{border:0!important}
body.nb button.nb-searchbtn svg{width:20px;height:20px;display:block;stroke:currentColor}
body.nb button.nb-searchbtn:hover{color:var(--mulb)!important}
/* equal columns: a long unbreakable spec line must not widen its grid track */
body.nb ul.products li.product{min-width:0}
body.nb .nb-spec{min-width:0;max-width:100%}
