/*!
Theme Name: Nashonuma 2026
Theme URI: https://nashonuma.com
Template: nashonuma
Author: Nashonuma
Description: Fresh 2026 design system for Nashonuma — clean & premium eco. Child of the nashonuma theme; inherits all WooCommerce functionality with a modern, mobile-first visual layer.
Version: 1.0.1
Requires PHP: 7.4
Text Domain: nashonuma-2026
*/

/* ============================================================
   NASHONUMA 2026 — DESIGN SYSTEM (foundation)
   Brand: forest #073B3A · green #08A045 · honey-gold #E0A82E
   ============================================================ */
:root{
  --paper:#FAF8F3; --surface:#FFFFFF; --forest:#073B3A; --forest-2:#0B4A46;
  --green:#08A045; --gold:#E0A82E; --gold-soft:#F3E4C0;
  --ink:#14201D; --sage:#5F6F68; --line:#E7E2D6; --leaf-tint:#EEF3EC;
  --shadow:0 1px 2px rgba(20,32,29,.04),0 12px 32px -12px rgba(7,59,58,.16);
  --shadow-sm:0 1px 2px rgba(20,32,29,.05),0 6px 18px -10px rgba(7,59,58,.14);
  --r:18px; --r-sm:12px; --maxw:1180px;
  color-scheme: light;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

/* base */
body.nsx{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
.nsx h1,.nsx h2,.nsx h3{font-family:var(--serif);font-weight:600;line-height:1.1;margin:0}
.nsx a{color:inherit;text-decoration:none}
.nsx img{max-width:100%;height:auto}
.nsx-wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.nsx-eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--green)}

/* buttons */
.nsx-btn{display:inline-flex;align-items:center;gap:.5em;border:0;cursor:pointer;font-weight:600;font-size:15px;padding:13px 22px;border-radius:999px;transition:transform .15s,box-shadow .15s,background .15s;font-family:var(--sans)}
.nsx-btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.nsx-btn--primary{background:var(--green);color:#fff}
.nsx-btn--primary:hover{transform:translateY(-2px);box-shadow:0 10px 22px -8px rgba(8,160,69,.5)}
.nsx-btn--forest{background:var(--forest);color:#fff}
.nsx-btn--gold{background:var(--gold);color:#2A2008}
.nsx-btn--ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.nsx-btn--ghost:hover{border-color:var(--forest);background:var(--surface)}

/* product card (WooCommerce loop) */
.nsx-card,ul.products li.product{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .18s,box-shadow .18s}
.nsx-card:hover,ul.products li.product:hover{transform:translateY(-4px);box-shadow:var(--shadow)}

/* header + footer shells (filled by overridden templates) */
.nsx-header{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nsx-footer{background:var(--forest);color:#D9E6E0}

/* Light-only storefront: product photography and the brand palette are designed
   for a light ground, and a dark variant caused light-on-light contrast bugs. */
@media (prefers-reduced-motion:reduce){.nsx *{transition:none!important}}

/* ============================================================
   HEADER / NAV / FOOTER  (2026 chrome)
   ============================================================ */
.nsx-skip{position:absolute;left:-9999px;top:0;background:var(--forest);color:#fff;padding:10px 16px;z-index:100}
.nsx-skip:focus{left:8px;top:8px}

/* utility bar */
.nsx-util{background:var(--forest);color:#EAF3EE;font-size:12.5px}
.nsx-util__in{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:38px;flex-wrap:wrap}
.nsx-util p{margin:0}
.nsx-util a{color:#EAF3EE;text-decoration:underline;text-underline-offset:2px}
.nsx-util__sale{display:flex;align-items:center;gap:8px}
.nsx-tag{background:var(--gold);color:#2A2008;font-weight:700;padding:2px 8px;border-radius:999px;font-size:11px;letter-spacing:.03em}

/* header */
.nsx-header{position:sticky;top:0;z-index:50;background:#FAF8F3;background:rgba(250,248,243,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);color:var(--ink)}
.nsx-header a{color:var(--ink)}
.nsx-nav{display:flex;align-items:center;gap:20px;min-height:74px}
.nsx-brand{display:block;flex:0 0 auto}
.nsx-brand{padding:14px 0}
img.nsx-brand__logo{height:46px;width:auto;max-height:46px;display:block}
.nsx-main{display:block}

/* menu */
.nsx-menu__list{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.nsx-menu__list > li{position:relative}
.nsx-menu__list > li > a{display:flex;align-items:center;gap:6px;padding:21px 13px;font-size:14.5px;font-weight:500;color:var(--ink)}
.nsx-menu__list > li > a:hover{color:var(--green)}
.nsx-caret{width:10px;height:10px;opacity:.6;transition:transform .18s}
.nsx-has-sub:hover .nsx-caret{transform:rotate(180deg)}
.nsx-sub{position:absolute;top:100%;left:0;margin-top:-6px;min-width:250px;background:var(--surface);
  border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:12px;
  display:grid;gap:2px;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:60}
.nsx-has-sub:hover .nsx-sub,.nsx-has-sub:focus-within .nsx-sub{opacity:1;visibility:visible;transform:translateY(0)}
.nsx-sub a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 12px;border-radius:9px;font-size:14px;font-weight:500;color:var(--ink)}
.nsx-sub a:hover{background:var(--leaf-tint);color:var(--green)}
.nsx-sub a span{font-size:11.5px;color:var(--sage);font-variant-numeric:tabular-nums}

/* actions */
.nsx-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.nsx-icon{width:40px;height:40px;border-radius:999px;display:grid;place-items:center;border:1px solid var(--line);background:var(--surface);color:var(--ink);position:relative}
.nsx-icon svg{width:18px;height:18px}
.nsx-icon:hover{border-color:var(--forest);color:var(--green)}
.nsx-cart__count{position:absolute;top:-4px;right:-4px;background:var(--gold);color:#2A2008;font-size:11px;font-weight:800;min-width:18px;height:18px;border-radius:999px;display:grid;place-items:center;padding:0 4px;font-variant-numeric:tabular-nums}

/* burger */
.nsx-menu__close{display:none}
  .nsx-burger{display:none;flex-direction:column;gap:4px;background:none;border:1px solid var(--line);border-radius:10px;padding:10px;cursor:pointer}
.nsx-burger span{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px}

/* footer */
.nsx-footer{background:var(--forest);color:#D9E6E0;margin-top:64px}
.nsx-fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px;padding:54px 24px 28px}
.nsx-fcol h2{font-family:var(--sans);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 14px;font-weight:800}
.nsx-fcol a{display:block;color:rgba(217,230,224,.85);font-size:14px;padding:5px 0}
.nsx-fcol a:hover{color:#fff}
img.nsx-fbrand__logo{height:44px;max-height:44px;width:auto;filter:brightness(0) invert(1);opacity:.95;margin-bottom:14px}
.nsx-fbrand p{color:rgba(217,230,224,.75);font-size:14px;max-width:36ch;margin:0 0 14px}
.nsx-nap{font-style:normal;font-size:13px;line-height:1.8;color:rgba(217,230,224,.75)}
.nsx-nap a{display:inline;padding:0;text-decoration:underline}
.nsx-social{display:flex;gap:14px;margin-top:14px}
.nsx-social a{display:inline;font-size:13px;text-decoration:underline;padding:0}
.nsx-fbot{border-top:1px solid rgba(255,255,255,.12);padding:18px 24px;display:flex;justify-content:space-between;
  align-items:center;gap:14px;flex-wrap:wrap;font-size:13px;color:rgba(217,230,224,.7)}
.nsx-pay{display:flex;gap:8px}
.nsx-pay span{background:rgba(255,255,255,.1);border-radius:6px;padding:4px 10px;font-size:11px;font-weight:700}
.nsx-legal{display:flex;gap:14px}
.nsx-legal a{color:rgba(217,230,224,.8);text-decoration:underline}

/* responsive */
@media (max-width:1024px){
  .nsx-burger{display:flex;order:3}
  /* IMPORTANT: backdrop-filter on the header creates a containing block for
     position:fixed children, which trapped the menu inside the header. Drop it
     on mobile so the panel can cover the viewport. */
  .nsx-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:#FAF8F3}
  .nsx-menu{position:fixed;top:0;right:0;bottom:0;left:auto;height:100dvh;height:100vh;
    width:min(88vw,330px);background:var(--surface);box-shadow:-18px 0 40px -20px rgba(7,59,58,.35);
    border-left:1px solid var(--line);padding:22px 18px calc(24px + env(safe-area-inset-bottom));
    transform:translateX(100%);transition:transform .25s ease;overflow-y:auto;
    -webkit-overflow-scrolling:touch;z-index:120;visibility:hidden}
  .nsx-menu.is-open{transform:translateX(0);visibility:visible}
  .nsx-scrim{position:fixed;inset:0;background:rgba(7,32,29,.45);opacity:0;visibility:hidden;
    transition:opacity .25s ease,visibility .25s;z-index:110}
  .nsx-scrim.is-open{opacity:1;visibility:visible}
  .nsx-menu__close{display:flex;align-items:center;justify-content:center;margin:0 0 10px auto;
    width:40px;height:40px;border-radius:999px;border:1px solid var(--line);background:var(--surface);
    font-size:20px;line-height:1;color:var(--ink);cursor:pointer}
  .nsx-menu__list{flex-direction:column;align-items:stretch;gap:0}
  .nsx-menu__list > li > a{padding:14px 8px;justify-content:space-between}
  .nsx-sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;
    margin:0 0 8px;padding:0 0 0 12px;background:transparent;display:none}
  .nsx-has-sub.is-open .nsx-sub{display:grid}
  .nsx-fgrid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .nsx-fgrid{grid-template-columns:1fr;gap:26px}
  .nsx-util__ship{display:none}
  img.nsx-brand__logo{height:36px;max-height:36px}
  .nsx-fbot{justify-content:flex-start}
}

/* ============================================================
   HOME PAGE
   ============================================================ */
.nsx-section{padding:56px 0}
.nsx-sechead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;flex-wrap:wrap}
.nsx-sechead h2{font-size:clamp(26px,3.4vw,38px);margin-top:8px}
.nsx-more{font-weight:600;color:var(--forest);border-bottom:2px solid var(--gold);padding-bottom:2px}
.nsx-eyebrow--gold{color:var(--gold)}
.nsx-eyebrow--brown{color:#8A6437}
.nsx-lede{font-size:18px;color:var(--sage);margin:18px 0 0;max-width:52ch}

/* hero */
.nsx-hero{padding:52px 0 36px}
.nsx-hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.nsx-hero h1{font-size:clamp(34px,5vw,56px);letter-spacing:-.01em;margin:14px 0 0}
.nsx-hero h1 em{font-style:normal;color:var(--green)}
.nsx-hero__cta{display:flex;gap:12px;margin:26px 0 0;flex-wrap:wrap}
.nsx-hero__trust{display:flex;gap:22px;margin:24px 0 0;padding:0;list-style:none;flex-wrap:wrap;font-size:13.5px;color:var(--sage)}
.nsx-hero__trust li::before{content:"✓";color:var(--green);font-weight:800;margin-right:6px}
.nsx-hero__trust b{color:var(--ink)}
.nsx-hero__media{border-radius:26px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:1/1;background:var(--leaf-tint)}
.nsx-hero__media img{width:100%;height:100%;object-fit:cover;display:block}

/* two paths */
.nsx-paths{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-top:8px}
.nsx-path{border-radius:var(--r);padding:34px;min-height:250px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;box-shadow:var(--shadow)}
.nsx-path--eco{background:linear-gradient(150deg,#0E5A44,#0A3F35 70%)}
.nsx-path--pack{background:linear-gradient(150deg,#7A5A17,#4A3A12 75%)}
.nsx-path h2{color:#fff;font-size:27px;margin:10px 0 8px}
.nsx-path p{color:rgba(255,255,255,.85);max-width:38ch;font-size:15px;margin:0 0 20px}
.nsx-path .nsx-eyebrow{color:rgba(255,255,255,.82)}
.nsx-path .nsx-btn{align-self:flex-start}

/* product grid */
.nsx-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.nsx-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s}
.nsx-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.nsx-card__media{display:block;position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--leaf-tint)}
.nsx-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.nsx-card:hover .nsx-card__media img{transform:scale(1.05)}
.nsx-badge{position:absolute;top:12px;left:12px;background:var(--gold);color:#2A2008;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px}
.nsx-card__body{padding:14px 16px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.nsx-card__body h3{font-family:var(--sans);font-size:15px;font-weight:600;line-height:1.35;margin:0}
.nsx-rate{font-size:12.5px;color:var(--sage);margin:0}
.nsx-rate span{color:var(--gold);letter-spacing:1px}
.nsx-price{margin:auto 0 0;font-weight:700;font-size:15.5px;color:var(--ink)}
.nsx-price del{color:var(--sage);font-weight:500;font-size:13px;margin-right:5px}
.nsx-price ins{text-decoration:none}

/* category tiles */
.nsx-tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.nsx-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:20px 14px;text-align:center;display:grid;gap:4px;transition:all .15s}
.nsx-tile:hover{border-color:var(--forest);transform:translateY(-3px)}
.nsx-tile__name{font-size:13.5px;font-weight:600}
.nsx-tile__count{font-size:11.5px;color:var(--sage)}

/* values band */
.nsx-values{background:var(--forest);color:#EAF3EE;padding:58px 0}
.nsx-values h2{color:#fff;font-size:clamp(24px,3vw,34px);margin-top:10px}
.nsx-values__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:32px}
.nsx-values__grid > div{border-top:2px solid rgba(224,168,46,.4);padding-top:14px}
.nsx-values__grid h3{color:#fff;font-family:var(--sans);font-size:16.5px;font-weight:700;margin:0 0 6px}
.nsx-values__grid p{color:rgba(234,243,238,.78);font-size:14px;margin:0}

/* wholesale band */
.nsx-whole{background:linear-gradient(135deg,var(--gold-soft),color-mix(in srgb,var(--gold-soft) 55%,var(--paper)));
  border-radius:var(--r);padding:38px;display:grid;grid-template-columns:1.35fr .65fr;gap:28px;align-items:center}
.nsx-whole h2{color:#241E10;font-size:clamp(24px,3vw,32px);margin:8px 0 10px}
.nsx-whole p{color:#4A4436;margin:0;max-width:54ch}
.nsx-whole__cta{display:grid;gap:10px;justify-items:stretch;text-align:center}
.nsx-whole__cta span{font-size:13px;color:#5A5238}

/* reviews */
.nsx-revs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.nsx-rev{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px;margin:0}
.nsx-rev__stars{color:var(--gold);letter-spacing:2px;font-size:15px;margin:0}
.nsx-rev p{font-size:15px;margin:12px 0 16px}
.nsx-rev footer{display:flex;align-items:center;gap:11px;font-size:13.5px}
.nsx-av{width:38px;height:38px;border-radius:999px;background:linear-gradient(150deg,var(--green),var(--forest));color:#fff;display:grid;place-items:center;font-weight:700;flex:0 0 auto}
.nsx-rev__meta{color:var(--sage);font-size:12.5px}

@media (max-width:1024px){
  .nsx-hero__grid{grid-template-columns:1fr;gap:30px}
  .nsx-grid{grid-template-columns:repeat(3,1fr)}
  .nsx-tiles{grid-template-columns:repeat(3,1fr)}
  .nsx-values__grid{grid-template-columns:1fr 1fr}
  .nsx-whole{grid-template-columns:1fr}
  .nsx-revs{grid-template-columns:1fr}
  .nsx-paths{grid-template-columns:1fr}
}
@media (max-width:640px){
  .nsx-grid{grid-template-columns:1fr 1fr;gap:14px}
  .nsx-tiles{grid-template-columns:1fr 1fr}
  .nsx-values__grid{grid-template-columns:1fr}
  .nsx-section{padding:40px 0}
  .nsx-whole{padding:26px}
}

/* WooCommerce shell */
.nsx-shop{padding:28px 0 8px}
.nsx-shop .woocommerce-breadcrumb{font-size:13px;color:var(--sage);margin-bottom:18px}
.nsx-shop .woocommerce-breadcrumb a{color:var(--sage)}
.nsx-shop .woocommerce-breadcrumb a:hover{color:var(--green)}

/* ============================================================
   PAGE HERO / BLOG / FAQS
   ============================================================ */
.nsx-pagehero{background:var(--forest);color:#EAF3EE;padding:52px 0}
.nsx-pagehero h1{color:#fff;font-size:clamp(30px,4vw,44px);margin:10px 0 10px}
.nsx-pagehero p{color:rgba(234,243,238,.82);max-width:60ch;margin:0}
.nsx-pagehero a{color:var(--gold);text-decoration:underline}

/* blog listing */
.nsx-posts{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.nsx-post{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.nsx-post:hover{box-shadow:var(--shadow);transform:translateY(-3px);transition:all .18s}
.nsx-post__media{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--leaf-tint)}
.nsx-post__media img{width:100%;height:100%;object-fit:cover;display:block}
.nsx-post__ph{display:block;width:100%;height:100%;background:linear-gradient(150deg,#CBB27C,#0B4A46)}
.nsx-post__body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}
.nsx-post__meta{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--sage);margin:0;font-weight:700}
.nsx-post__body h2{font-size:19px;line-height:1.3;margin:0}
.nsx-post__excerpt{font-size:14.5px;color:var(--sage);margin:0}
.nsx-post__more{margin-top:auto;font-weight:600;color:var(--forest);font-size:14px;border-bottom:2px solid var(--gold);align-self:flex-start;padding-bottom:2px}
.nsx-pagination{display:flex;gap:8px;justify-content:center;margin-top:34px;flex-wrap:wrap}
.nsx-pagination .page-numbers{display:grid;place-items:center;min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:14px;font-weight:600}
.nsx-pagination .page-numbers.current{background:var(--forest);color:#fff;border-color:var(--forest)}
.nsx-pagination a.page-numbers:hover{border-color:var(--forest)}

/* faqs */
.nsx-faqwrap{display:grid;grid-template-columns:1fr 300px;gap:40px;align-items:start}
.nsx-faqs{display:grid;gap:12px}
.nsx-faq{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}
.nsx-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:18px 20px;font-weight:600;font-size:15.5px;color:var(--ink)}
.nsx-faq summary::-webkit-details-marker{display:none}
.nsx-faq summary:hover{color:var(--green)}
.nsx-faq[open] summary{border-bottom:1px solid var(--line);color:var(--forest)}
.nsx-faq__icon{width:14px;height:14px;flex:0 0 auto;transition:transform .2s;color:var(--green)}
.nsx-faq[open] .nsx-faq__icon{transform:rotate(180deg)}
.nsx-faq__a{padding:16px 20px 20px;font-size:15px;color:var(--sage);line-height:1.65}
.nsx-faq__a p{margin:0 0 10px}
.nsx-faq__a a{color:var(--green);text-decoration:underline}
.nsx-faqside{background:var(--leaf-tint);border:1px solid var(--line);border-radius:var(--r);padding:26px;display:grid;gap:12px;position:sticky;top:100px}
.nsx-faqside h2{font-size:20px;margin:0}
.nsx-faqside p{font-size:14px;color:var(--sage);margin:0 0 4px}

@media (max-width:1024px){
  .nsx-posts{grid-template-columns:repeat(2,1fr)}
  .nsx-faqwrap{grid-template-columns:1fr;gap:26px}
  .nsx-faqside{position:static}
}
@media (max-width:640px){ .nsx-posts{grid-template-columns:1fr} }

/* ============================================================
   SHOP / CATEGORY ARCHIVE
   ============================================================ */
.nsx-pagehero--shop{padding:38px 0 34px}
.nsx-crumbs{font-size:12.5px;color:rgba(234,243,238,.7);margin-bottom:10px}
.nsx-crumbs a{color:rgba(234,243,238,.9);text-decoration:none}
.nsx-crumbs a:hover{color:var(--gold)}
.nsx-pagehero__desc{color:rgba(234,243,238,.82);max-width:70ch;font-size:15px}
.nsx-pagehero__desc p{margin:0 0 8px}
.nsx-shopbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.nsx-shopbar .woocommerce-result-count{margin:0;font-size:13.5px;color:var(--sage)}
.nsx-shopbar .woocommerce-ordering select{padding:9px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-family:var(--sans);font-size:14px;color:var(--ink)}
/* the loop <ul> */
ul.products{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;list-style:none;margin:0;padding:0}
ul.products li.product{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s}
ul.products li.product:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.nsx-card__title{font-family:var(--sans);font-size:15px;font-weight:600;line-height:1.35;margin:0}
.nsx-badge--out{background:var(--sage);color:#fff;left:auto;right:12px}
.nsx-add{margin-top:auto;display:inline-block;text-align:center;border:1.5px solid var(--forest);color:var(--forest);
  font-weight:700;font-size:13px;padding:9px 14px;border-radius:999px;transition:all .15s}
.nsx-add:hover{background:var(--forest);color:#fff}
.nsx-add.loading{opacity:.6}
.nsx-add.added{background:var(--green);border-color:var(--green);color:#fff}
@media (max-width:1024px){ ul.products{grid-template-columns:repeat(3,1fr)} }
@media (max-width:640px){ ul.products{grid-template-columns:1fr 1fr;gap:14px} }

/* ============================================================
   ARTICLE / PROSE / 404
   ============================================================ */
.nsx-article__meta{color:rgba(234,243,238,.75);font-size:13.5px;margin:10px 0 0}
.nsx-article__hero{margin-top:-26px;position:relative;z-index:2}
/* Featured images vary wildly (portrait/landscape). Lock a banner ratio and crop,
   so tall images can't dominate the page or bleed under the header. */
.nsx-article__hero img{width:100%;aspect-ratio:16/7;max-height:400px;object-fit:cover;object-position:center;
  border-radius:var(--r);box-shadow:var(--shadow);display:block;background:var(--leaf-tint)}
@media (max-width:640px){ .nsx-article__hero img{aspect-ratio:16/10;max-height:260px} }
/* in-article images shouldn't exceed the prose column */
.nsx-prose img{max-width:100%;height:auto;border-radius:var(--r-sm)}
.nsx-prose figure{margin:1.2em 0}
.nsx-article__wrap{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:44px;padding:44px 24px 8px;align-items:start}
.nsx-article__side{background:var(--leaf-tint);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:grid;gap:10px;position:sticky;top:100px}
.nsx-article__side h2{font-size:19px;margin:0}
.nsx-article__side p{font-size:14px;color:var(--sage);margin:0 0 4px}

/* long-form prose */
.nsx-prose{max-width:70ch;font-size:16.5px;line-height:1.75;color:var(--ink)}
.nsx-prose > *{margin:0 0 1.05em}
.nsx-prose h2{font-size:27px;margin:1.6em 0 .5em}
.nsx-prose h3{font-size:21px;margin:1.4em 0 .45em}
.nsx-prose a{color:var(--green);text-decoration:underline;text-underline-offset:2px}
.nsx-prose img{max-width:100%;height:auto;border-radius:var(--r-sm)}
.nsx-prose ul,.nsx-prose ol{padding-left:1.3em}
.nsx-prose li{margin:.4em 0}
.nsx-prose blockquote{border-left:3px solid var(--gold);padding-left:18px;color:var(--sage);font-style:italic;margin-left:0}
.nsx-prose table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.nsx-prose td,.nsx-prose th{border:1px solid var(--line);padding:9px 12px;text-align:left}

/* 404 + search form */
.nsx-404{display:grid;gap:20px;justify-items:start}
.nsx-404__links{display:flex;gap:12px;flex-wrap:wrap;margin:0}
.nsx-404 .search-field,.search-field{padding:12px 16px;border:1px solid var(--line);border-radius:999px;font-family:var(--sans);font-size:15px;min-width:min(340px,80vw)}
.nsx-404 .search-submit,.search-submit{padding:12px 20px;border:0;border-radius:999px;background:var(--forest);color:#fff;font-weight:600;cursor:pointer;margin-left:8px}

@media (max-width:1024px){
  .nsx-article__wrap{grid-template-columns:1fr;gap:26px}
  .nsx-article__side{position:static}
}

/* ------------------------------------------------------------
   FIX: WooCommerce core CSS floats `li.product` and gives it a
   percentage width, which collapses items inside our CSS grid.
   Override so the grid alone controls layout.
   ------------------------------------------------------------ */
.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin:0 !important;padding:0;list-style:none}
.woocommerce ul.products::before,.woocommerce ul.products::after,
ul.products::before,ul.products::after{content:none !important;display:none !important}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.product{width:auto !important;max-width:none !important;min-width:0;margin:0 !important;float:none !important;clear:none !important}
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last{clear:none !important}
/* WooCommerce also styles loop titles/prices — keep ours */
.woocommerce ul.products li.product .nsx-card__title{font-size:15px;padding:0;margin:0}
.woocommerce ul.products li.product .nsx-price{font-size:15.5px;margin:auto 0 0}
.woocommerce ul.products li.product img{width:100%;height:100%;object-fit:cover;margin:0}
@media (max-width:1024px){
  .woocommerce ul.products,.woocommerce-page ul.products,ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .woocommerce ul.products,.woocommerce-page ul.products,ul.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
}

/* ============================================================
   SINGLE PRODUCT — brand the WooCommerce defaults
   ============================================================ */
.woocommerce div.product{margin-top:6px}
.woocommerce div.product div.images,
.woocommerce div.product div.summary{margin-bottom:34px}

/* main gallery image */
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{border-radius:var(--r);overflow:hidden}
.woocommerce div.product div.images img{border-radius:var(--r);display:block}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger{border-radius:999px;background:var(--surface);
  box-shadow:var(--shadow-sm);z-index:9}

/* gallery thumbnails: real grid + spacing + radius */
.woocommerce div.product div.images .flex-control-thumbs{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;margin:14px 0 0 !important;padding:0;list-style:none;overflow:visible}
.woocommerce div.product div.images .flex-control-thumbs li{width:auto !important;float:none !important;margin:0 !important;list-style:none}
.woocommerce div.product div.images .flex-control-thumbs img{border-radius:var(--r-sm);opacity:.7;cursor:pointer;
  transition:opacity .15s,box-shadow .15s;width:100%;height:auto}
.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs img.flex-active{opacity:1;box-shadow:0 0 0 2px var(--green)}

/* buttons: kill the default purple, use the brand green */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt,
.woocommerce #respond input#submit,.woocommerce #respond input#submit.alt,
.woocommerce div.product form.cart .button,
.woocommerce .widget_shopping_cart a.button{
  background:var(--green) !important;color:#fff !important;border:0 !important;border-radius:999px !important;
  font-family:var(--sans);font-weight:700;font-size:15px;padding:13px 26px;line-height:1.2;
  transition:transform .15s,box-shadow .15s,background .15s;text-shadow:none}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit:hover,.woocommerce div.product form.cart .button:hover{
  background:#068A3B !important;transform:translateY(-2px);box-shadow:0 10px 22px -8px rgba(8,160,69,.45)}
.woocommerce a.button.disabled,.woocommerce button.button:disabled{background:var(--sage) !important;opacity:.65;transform:none}

/* quantity + cart row */
.woocommerce div.product form.cart{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0 22px}
.woocommerce .quantity .qty{border:1px solid var(--line);border-radius:999px;padding:12px 8px;width:84px;
  text-align:center;font-family:var(--sans);font-size:15px;background:var(--surface);color:var(--ink)}
.woocommerce div.product form.cart .variations{margin-bottom:8px}
.woocommerce div.product form.cart .variations select{padding:11px 14px;border:1px solid var(--line);border-radius:999px;
  background:var(--surface);font-family:var(--sans);font-size:14.5px;color:var(--ink)}

/* summary typography */
.woocommerce div.product .product_title{font-family:var(--serif);font-size:clamp(26px,3.2vw,38px);line-height:1.12;margin:0 0 12px}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--ink);font-size:26px;font-weight:700;font-family:var(--sans)}
.woocommerce div.product p.price del,.woocommerce div.product span.price del{color:var(--sage);font-weight:500;font-size:18px;opacity:.8}
.woocommerce div.product p.price ins{text-decoration:none;color:var(--green)}
.woocommerce div.product .woocommerce-product-details__short-description{color:var(--sage);font-size:15.5px;line-height:1.65}
.woocommerce div.product .product_meta{font-size:13.5px;color:var(--sage);border-top:1px solid var(--line);padding-top:14px;margin-top:6px}
.woocommerce div.product .product_meta a{color:var(--forest);text-decoration:underline}
.woocommerce .woocommerce-product-rating{margin-bottom:14px}
.woocommerce .star-rating span::before,.woocommerce .star-rating::before{color:var(--gold)}

/* tabs + reviews */
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 22px;display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:transparent;border:0;border-radius:0;margin:0;padding:0}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{padding:12px 16px;font-weight:700;color:var(--sage);font-size:14.5px;display:block}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--forest);box-shadow:inset 0 -2px 0 var(--gold)}
.woocommerce #reviews #comments ol.commentlist li .comment-text{border:1px solid var(--line);border-radius:var(--r);padding:18px}
