/* ============================ NOKOMOTO UI KIT ============================ */
:root{
  --nkui-bg:#0A0A0F;
  --nkui-ink:#F4F4F7;
  --nkui-inkui-2:#B9B9C6;
  --nkui-mute:#7C7C8A;
  --nkui-line:rgba(255,255,255,.09);
  --nkui-line-soft:rgba(255,255,255,.055);
  /* Matched to the category-card buttons so the whole site shares one violet. */
  --nkui-accent:#7C3AED;
  --nkui-accent-2:#A855F7;
  --nkui-accent-soft:#C9BCFF;
  --nkui-accent-ink:#DCCCFF;
  --nkui-accent-glow:rgba(139,92,246,.95);
  --nkui-grad:linear-gradient(135deg,#A855F7 0%,#7C3AED 55%,#9333EA 100%);
  --nkui-radius:18px;
  --nkui-font-display:'Outfit','Space Grotesk',system-ui,-apple-system,sans-serif;
  --nkui-font-body:'Abel','Space Grotesk',system-ui,-apple-system,sans-serif;
}

/* Font repair: "hatchsans" is not installed on this site, so every element that
   asks for it inline used to fall back to the raw system font. */
[style*="hatchsans" i]{font-family:var(--nkui-font-display)!important;}

/* ------------------------------ typography ------------------------------ */
.nkui-head{display:flex;flex-direction:column;gap:14px;align-items:flex-start;max-width:70ch}
.nkui-head--center{align-items:center;text-align:center;margin-inline:auto}
.nkui-head>*{margin:0}

.nkui-eyebrow{font-family:var(--nkui-font-display);font-size:.72rem;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;color:var(--nkui-accent-soft);margin:0 0 14px}
.nkui-h1,.nkui-h2,.nkui-h3{font-family:var(--nkui-font-display);color:#fff;margin:0 0 16px;
  text-transform:uppercase;text-wrap:balance}
.nkui-h1:last-child,.nkui-h2:last-child,.nkui-h3:last-child,.nkui-eyebrow:last-child{margin-bottom:0}
.nkui-h1{font-size:clamp(2.1rem,5vw,3.9rem);font-weight:700;line-height:1.02;letter-spacing:-.02em}
.nkui-h2{font-size:clamp(1.7rem,3.4vw,2.9rem);font-weight:700;line-height:1.06;letter-spacing:-.015em}
.nkui-h3{font-size:clamp(1.05rem,1.7vw,1.38rem);font-weight:600;line-height:1.2;letter-spacing:.04em}
.nkui-accent{color:var(--nkui-accent-2)}
.nkui-lead{font-family:var(--nkui-font-body);font-size:clamp(1rem,1.1vw,1.12rem);line-height:1.7;
  color:var(--nkui-inkui-2);margin:0;max-width:66ch}
.nkui-body{font-family:var(--nkui-font-body);font-size:clamp(.94rem,1vw,1.02rem);line-height:1.75;
  color:var(--nkui-mute);margin:0;max-width:72ch}
.nkui-body p{margin:0 0 1em}
.nkui-body p:last-child{margin-bottom:0}

/* ------------------------------ reveal ---------------------------------- */
.nkui-anim .nkui-reveal{opacity:0;transform:translateY(14px);
  transition:opacity .6s cubic-bezier(.22,.61,.36,1) var(--nkui-delay,0ms),
             transform .6s cubic-bezier(.22,.61,.36,1) var(--nkui-delay,0ms)}
.nkui-anim .nkui-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .nkui-anim .nkui-reveal{opacity:1;transform:none;transition:none}
}

/* ------------------------------ spec sheet ------------------------------ */
.nkui-spec{font-family:var(--nkui-font-body);color:var(--nkui-ink);text-align:left;
  margin:0 0 clamp(24px,3vw,40px);-webkit-font-smoothing:antialiased}
.nkui-spec *,.nkui-spec *::before,.nkui-spec *::after{box-sizing:border-box}
.nkui-spec dl,.nkui-spec dt,.nkui-spec dd,.nkui-spec p,.nkui-spec h2,.nkui-spec h3{margin:0}

.nkui-spec__head{display:flex;align-items:center;gap:16px;margin:0 0 clamp(16px,2vw,26px)}
.nkui-spec__title{font-family:var(--nkui-font-display);font-size:.78rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:#fff;white-space:nowrap}
.nkui-spec__rule{flex:1 1 auto;height:1px;min-width:24px;
  background:linear-gradient(90deg,var(--nkui-line),transparent)}

/* rows - one shape everywhere: label left, value right, stacked on small screens */
.nkui-spec__row{display:flex;align-items:baseline;justify-content:space-between;
  gap:clamp(12px,2vw,28px);padding:10px 0;border-top:1px solid var(--nkui-line-soft)}
.nkui-spec__label{flex:0 1 auto;font-family:var(--nkui-font-display);font-size:.655rem;
  font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--nkui-mute);
  line-height:1.5}
.nkui-spec__value{flex:1 1 auto;min-width:0;text-align:right;font-size:.95rem;line-height:1.45;
  color:var(--nkui-ink);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.nkui-spec__unit{color:var(--nkui-mute);font-size:.84em;margin-left:.3em}

/* ---- list layout: two or three balanced columns when there is room ---- */
.nkui-spec__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));
  gap:0 clamp(24px,3.5vw,56px)}

/* ---- card layout: masonry flow so groups of different sizes pack tightly ---- */
.nkui-spec__grid{columns:3 clamp(268px,25vw,340px);column-gap:clamp(12px,1.2vw,18px)}
.nkui-card{position:relative;overflow:hidden;display:block;width:100%;
  break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;
  margin:0 0 clamp(12px,1.2vw,18px);
  border:1px solid var(--nkui-line);border-radius:var(--nkui-radius);
  background:linear-gradient(180deg,rgba(255,255,255,.048),rgba(255,255,255,.012));
  padding:clamp(18px,1.8vw,24px);transition:border-color .4s ease,box-shadow .4s ease}
.nkui-card::after{content:"";position:absolute;inset:0 0 auto;height:1px;
  background:linear-gradient(90deg,transparent,rgba(201,188,255,.45),transparent);opacity:.7}
.nkui-card:hover{border-color:rgba(168,85,247,.38);box-shadow:0 22px 54px -30px rgba(139,92,246,.9)}
.nkui-card__head{display:flex;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:4px;
  border-bottom:1px solid var(--nkui-line-soft)}
.nkui-card__icon{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;
  border-radius:11px;color:var(--nkui-accent-soft);
  background:linear-gradient(140deg,rgba(168,85,247,.24),rgba(139,92,246,.06));
  border:1px solid rgba(168,85,247,.26)}
.nkui-card__icon .nkui-i{width:17px;height:17px;display:block}
.nkui-card__name{flex:1 1 auto;font-family:var(--nkui-font-display);font-size:.7rem;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:#EDEDF2}
.nkui-card__n{font-family:var(--nkui-font-display);font-size:.65rem;font-weight:600;
  letter-spacing:.1em;color:var(--nkui-mute);font-variant-numeric:tabular-nums}
.nkui-card__body>.nkui-spec__row:first-child{border-top:0}
/* transforms inside a multi-column flow are unreliable, so cards fade only */
.nkui-anim .nkui-spec__grid .nkui-reveal{transform:none}

/* ---- highlight tiles ---- */
.nkui-spec__tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,136px),1fr));
  gap:clamp(8px,1vw,14px)}
.nkui-tile{position:relative;overflow:hidden;border:1px solid var(--nkui-line);border-radius:14px;
  padding:clamp(14px,1.5vw,18px);
  background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.012));
  transition:border-color .4s ease}
.nkui-tile:hover{border-color:rgba(168,85,247,.36)}
.nkui-tile__v{font-family:var(--nkui-font-display);font-weight:700;line-height:1;letter-spacing:-.02em;
  font-size:clamp(1.4rem,2.3vw,1.85rem);
  background:linear-gradient(118deg,#fff 12%,var(--nkui-accent-soft) 96%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-fill-color:transparent}
.nkui-tile__v--sm{font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.15}
.nkui-tile__u{font-size:.5em;font-weight:500;letter-spacing:.04em;margin-left:.28em;
  -webkit-text-fill-color:var(--nkui-mute);color:var(--nkui-mute)}
.nkui-tile__v--sm .nkui-tile__u{font-size:.68em}
.nkui-tile__l{display:block;margin-top:10px;font-family:var(--nkui-font-display);font-size:.61rem;
  font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--nkui-mute)}

/* ---- collapsible full list ---- */
.nkui-more{margin-top:14px;border:1px solid var(--nkui-line);border-radius:14px;
  background:rgba(255,255,255,.022)}
.nkui-more__t{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;
  padding:13px clamp(14px,1.6vw,18px);font-family:var(--nkui-font-display);font-size:.68rem;
  font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--nkui-inkui-2);
  transition:color .3s ease}
.nkui-more__t::-webkit-details-marker{display:none}
.nkui-more__t:hover{color:#fff}
.nkui-more__t::after{content:"";margin-left:auto;width:8px;height:8px;flex:0 0 8px;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .3s ease}
.nkui-more[open] .nkui-more__t::after{transform:rotate(225deg) translateY(-2px)}
.nkui-more__c{font-variant-numeric:tabular-nums;color:var(--nkui-mute);letter-spacing:.1em}
.nkui-more__b{padding:2px clamp(14px,1.6vw,18px) clamp(10px,1.4vw,16px)}

/* ------------------------------ features -------------------------------- */
.nkui-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--nkui-min,210px)),1fr));
  gap:clamp(18px,2.2vw,30px);text-align:left}
.nkui-feature{display:flex;flex-direction:column;gap:6px}
.nkui-feature__i{width:clamp(42px,3.6vw,54px);height:auto;margin:0 0 8px;display:block}
.nkui-feature__t{font-family:var(--nkui-font-display);font-size:clamp(.95rem,1.15vw,1.05rem);
  font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#fff;margin:0;line-height:1.25}
.nkui-feature__d{font-family:var(--nkui-font-body);font-size:clamp(.88rem,1vw,.96rem);line-height:1.55;
  color:var(--nkui-mute);margin:0}

/* -------------------------------- steps --------------------------------- */
.nkui-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--nkui-min,230px)),1fr));
  gap:clamp(18px,2.2vw,30px);text-align:left}
.nkui-step{position:relative;padding-top:22px;border-top:1px solid var(--nkui-line)}
.nkui-step::before{content:"";position:absolute;top:-1px;left:0;width:40px;height:2px;
  background:linear-gradient(90deg,var(--nkui-accent-2),var(--nkui-accent))}
.nkui-step__n{display:block;font-family:var(--nkui-font-display);font-size:.66rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--nkui-accent-soft)}
.nkui-step__t{font-family:var(--nkui-font-display);font-size:clamp(1rem,1.2vw,1.1rem);font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:#fff;margin:11px 0 9px;line-height:1.25}
.nkui-step__d{font-family:var(--nkui-font-body);font-size:clamp(.9rem,1vw,.98rem);line-height:1.65;
  color:var(--nkui-mute);margin:0}

/* ------------------------- utilities for UX Builder --------------------- */
/* put class="nkui-panel" on a Flatsome column to turn it into a glass card */
.nkui-panel>.col-inner{border:1px solid var(--nkui-line);border-radius:22px;
  background:linear-gradient(126deg,rgba(255,255,255,.055),rgba(255,255,255,.012));
  padding:clamp(24px,2.8vw,40px) clamp(20px,2.6vw,38px)}
.nkui-center{margin-left:auto;margin-right:auto;text-align:center}
.nkui-narrow{max-width:62ch}
.nkui-divider{height:1px;border:0;margin:clamp(22px,3vw,40px) 0;
  background:linear-gradient(90deg,var(--nkui-line),transparent)}
/* Flatsome adds its own <p> margins inside [ux_text]; keep our rhythm */
.ux-text .nkui-head>*,.ux-text>.nkui-eyebrow,.ux-text>.nkui-h1,.ux-text>.nkui-h2,.ux-text>.nkui-h3{margin-top:0}

/* --------------------------- small screens ------------------------------ */
@media (max-width:549px){
  .nkui-spec__row{display:block;padding:10px 0}
  .nkui-spec__value{text-align:left;margin-top:3px}
  .nkui-spec__head{gap:12px}
  .nkui-spec__title{white-space:normal}
}

/* -------------------------------- print --------------------------------- */
@media print{
  .nkui-spec{color:#111}
  .nkui-card,.nkui-tile,.nkui-more{border-color:#ccc;background:none;box-shadow:none}
  .nkui-spec__value,.nkui-card__name,.nkui-spec__title{color:#111}
  .nkui-tile__v{-webkit-text-fill-color:#111;color:#111;background:none}
  .nkui-more[open] .nkui-more__b,.nkui-more__b{display:block}
}

/* ========================================================================
   PAGE REPAIRS
   Things outside the spec sheet that are visibly broken on this install.
   Each block says what it fixes and why.
   ===================================================================== */

/* --- 1. Font repair -----------------------------------------------------
   WordPress is emitting the SERVER FILE PATH as a URL for these two
   families, e.g.
     /home/customer/www/nokomoto.com/public_html/wp-content/fonts/raleway/...
   glued onto the domain, so every request 404s and headings silently fall
   back to the system font. The files themselves are fine - only the URL is
   wrong - so we re-declare them against the correct path. */
@font-face{
  font-family:'Raleway';font-style:normal;font-weight:800;font-display:swap;
  src:url('/wp-content/fonts/raleway/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVtapbCIPrE.woff2') format('woff2');
}
@font-face{
  font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;
  src:url('/wp-content/fonts/montserrat/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw5aXo.woff2') format('woff2');
}

/* --- 2. Product title ---------------------------------------------------
   The SEO title runs to three oversized lines and shouts over the price.
   Same hierarchy, calmer scale. */
.product-info .product-title,
.product-info .product-title a{
  font-size:clamp(1.18rem,1.75vw,1.62rem);
  line-height:1.24;
  letter-spacing:-.005em;
  text-wrap:balance;
  margin-bottom:.55em;
}
.product-info .price,
.product-info .price-wrapper .price{
  font-family:var(--nkui-font-display);
  font-size:clamp(1.25rem,1.7vw,1.55rem);
  letter-spacing:-.01em;
}
.product-info .product-short-description>p,
.product-info .woocommerce-product-details__short-description>p{
  font-family:var(--nkui-font-body);
  font-size:clamp(.92rem,1vw,1rem);
  line-height:1.7;
  color:var(--nkui-mute);
  max-width:66ch;
}

/* --- 3. Product thumbnails ---------------------------------------------
   Two compounding failures on this install: the lazy-load placeholder is
   never swapped (so every thumb is a 1x1 GIF), and the Flatsome slider
   never reaches .flickity-enabled - together they collapse each thumbnail
   to about 10px wide. The JS swaps the images; this makes the strip lay out
   correctly whether or not the slider ever initialises. */
.product-thumbnails img{
  width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;display:block;
  background:rgba(255,255,255,.04);
}
.product-thumbnails .col a,
.product-thumbnails .col>a{
  display:block;overflow:hidden;border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
  transition:border-color .3s ease,opacity .3s ease;
}
.product-thumbnails .col a:hover{border-color:rgba(255,255,255,.22)}
.product-thumbnails .is-nav-selected a,
.product-thumbnails .col.is-nav-selected>a{border-color:var(--nkui-accent-2)}
/* only when the slider failed to start */
.product-thumbnails.slider:not(.flickity-enabled){
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;
}
.product-thumbnails.slider:not(.flickity-enabled)>.col{
  display:block!important;width:auto;max-width:none;flex:none;padding:0;margin:0;
}
.product-thumbnails.slider:not(.flickity-enabled)>.col:nth-child(n+5){display:none!important}

/* --- 4. Page builder bands ---------------------------------------------
   On a product page the builder content renders inside .container, where
   Flatsome's ".container .row:not(.row-collapse)" rule applies
   margin:0 -15px. That beats the row's own margin:0 auto, so every row was
   pinned to the left with ~215px of dead space on the right. It also means
   [section padding="..."] with a four-value shorthand is ignored, which is
   why every band fell back to Flatsome's default 30px.
   Adding class="nkui-band" to a section fixes both, and gives the whole
   page one vertical rhythm. */
.section.nkui-band{
  padding-top:clamp(56px,6.5vw,104px);
  padding-bottom:clamp(56px,6.5vw,104px);
  padding-left:clamp(16px,2vw,30px);
  padding-right:clamp(16px,2vw,30px);
}
.section.nkui-band>.section-content>.row{
  margin-left:auto;margin-right:auto;
  max-width:1210px;width:100%;
}
.section.nkui-band>.section-content>.row+.row{margin-top:clamp(28px,3.4vw,56px)}
.section.nkui-band--flush-top{padding-top:0}
.section.nkui-band--flush-bottom{padding-bottom:0}
.section.nkui-band--tight{
  padding-top:clamp(36px,4vw,64px);
  padding-bottom:clamp(36px,4vw,64px);
}

/* --- 5. Banner bands ----------------------------------------------------
   Percentage heights keep the two photographic bands proportional instead
   of fighting a hard pixel height. */
.nkui-banner .banner-inner,
.nkui-banner{background-color:var(--nkui-bg)}

/* --- 6. Images inside builder columns -----------------------------------
   Keeps every [ux_image] on the same baseline: never upscaled past its
   natural size, always aligned to the column, never a stray full-bleed. */
.nkui-band .ux-image,
.nkui-band .img-inner img{max-width:100%;height:auto}
.nkui-band .col>.col-inner>.img:last-child{margin-bottom:0}

/* ========================================================================
   COMMERCE CONTROLS
   The single-product buy box was still on Flatsome's stock styling: a flat
   square button, and a quantity stepper with a WHITE input and light-grey
   +/- keys sitting on a black page. These rebuild it to match the button
   system already used on the category cards (.product-card-25-btn):
   gradient 135deg A855F7 -> 7C3AED -> 9333EA, 1px rgba(255,255,255,.14),
   10px radius, inset top highlight and a violet drop glow.
   ===================================================================== */

/* --- the buy row -------------------------------------------------------- */
.single-product .product-info form.cart{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;
}
.single-product .product-info form.cart .quantity{margin:0}

/* --- quantity stepper --------------------------------------------------- */
.single-product .product-info .quantity.ux-quantity{
  display:inline-flex;align-items:stretch;height:52px;overflow:hidden;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  box-shadow:inset 0 1px 0 0 rgba(255,255,255,.05);
  transition:border-color .25s ease;
}
.single-product .product-info .quantity.ux-quantity:focus-within{
  border-color:rgba(139,92,246,.55);
}
.single-product .product-info .quantity .ux-quantity__button{
  width:46px;min-width:46px;height:auto;margin:0;padding:0;
  background:transparent!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  color:var(--nkui-accent-soft)!important;
  font-family:var(--nkui-font-display);font-size:1.15rem;font-weight:500;line-height:1;
  text-transform:none;letter-spacing:0;
  transition:background .22s ease,color .22s ease;
}
.single-product .product-info .quantity .ux-quantity__button:hover{
  background:rgba(139,92,246,.18)!important;color:#fff!important;
}
.single-product .product-info .quantity .ux-quantity__button:active{
  background:rgba(139,92,246,.3)!important;
}
.single-product .product-info .quantity input.qty{
  width:52px;min-width:52px;height:auto;margin:0;padding:0;
  background:transparent!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  color:var(--nkui-ink)!important;
  font-family:var(--nkui-font-display);font-size:.98rem;font-weight:600;
  text-align:center;font-variant-numeric:tabular-nums;
  -moz-appearance:textfield;appearance:textfield;
}
.single-product .product-info .quantity input.qty::-webkit-outer-spin-button,
.single-product .product-info .quantity input.qty::-webkit-inner-spin-button{
  -webkit-appearance:none;margin:0;
}

/* --- primary buttons ---------------------------------------------------- */
.single-product .product-info .single_add_to_cart_button,
.single-product .nkui-band .button.secondary:not(.is-outline),
.nkui-band .button.secondary:not(.is-outline),
.nkui-band .button.primary:not(.is-outline){
  height:52px;min-height:52px;padding:0 30px;margin:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--nkui-grad)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  border-radius:12px!important;
  color:#fff!important;
  font-family:var(--nkui-font-display);
  font-size:.95rem;font-weight:600;letter-spacing:.015em;text-transform:none;
  box-shadow:0 10px 30px -12px var(--nkui-accent-glow),
             inset 0 1px 0 0 rgba(255,255,255,.26)!important;
  transition:transform .25s ease,box-shadow .25s ease,filter .25s ease;
}
.single-product .product-info .single_add_to_cart_button{flex:1 1 auto;min-width:210px}
.single-product .product-info .single_add_to_cart_button:hover,
.nkui-band .button.secondary:not(.is-outline):hover,
.nkui-band .button.primary:not(.is-outline):hover{
  transform:translateY(-1px);filter:brightness(1.07);
  box-shadow:0 16px 40px -12px var(--nkui-accent-glow),
             inset 0 1px 0 0 rgba(255,255,255,.32)!important;
}
.single-product .product-info .single_add_to_cart_button:active,
.nkui-band .button.secondary:not(.is-outline):active{transform:translateY(0)}

/* --- secondary / outline buttons ---------------------------------------- */
.single-product .product-info .button.is-outline,
.nkui-band .button.is-outline{
  height:52px;min-height:52px;padding:0 30px;margin:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(139,92,246,.13)!important;
  border:1px solid rgba(139,92,246,.55)!important;
  border-radius:12px!important;
  color:var(--nkui-accent-ink)!important;
  font-family:var(--nkui-font-display);
  font-size:.95rem;font-weight:600;letter-spacing:.015em;text-transform:none;
  box-shadow:inset 0 1px 0 0 rgba(255,255,255,.08)!important;
  transition:background .25s ease,border-color .25s ease,color .25s ease,transform .25s ease;
}
.single-product .product-info .button.is-outline:hover,
.nkui-band .button.is-outline:hover{
  background:rgba(139,92,246,.22)!important;
  border-color:rgba(139,92,246,.8)!important;
  color:#fff!important;transform:translateY(-1px);
}

/* buttons set to expand keep their own width */
.nkui-band .button.expand{width:100%}

/* --- stock line --------------------------------------------------------- */
.single-product .product-info .stock{
  font-family:var(--nkui-font-display);font-size:.7rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--nkui-mute);
  margin:0 0 14px;
}
.single-product .product-info .stock.in-stock{color:#5ED6A4}

@media (max-width:549px){
  /* qty + CTA stay on one row down to ~340px, then the CTA wraps full width
     on its own rather than being squeezed. */
  .single-product .product-info form.cart{gap:10px}
  .single-product .product-info .single_add_to_cart_button{min-width:186px;padding:0 18px}
  .single-product .product-info .quantity .ux-quantity__button{width:42px;min-width:42px}
  .single-product .product-info .quantity input.qty{width:44px;min-width:44px}
  .nkui-band .button.is-outline,
  .nkui-band .button.secondary:not(.is-outline){width:100%;padding:0 20px}
}
