@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@600;700;800;900&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap');

/* ============================================================
   KITCHEN HARDWARE — industrial redesign.
   Charcoal + signal-amber. Condensed display type, technical
   mono labels, sharp edges, hard offset shadows instead of
   soft blur. Loaded after the theme's own CSS, so rules here
   win the cascade; !important is used only where needed to
   beat Spectra/Elementor inline styles.
   ============================================================ */

:root{
  --ast-global-color-0:#FFC400 !important;   /* primary accent — signal amber */
  --ast-global-color-1:#B37D00 !important;   /* pressed/hover amber */
  --ast-global-color-2:#16130F !important;   /* heading ink */
  --ast-global-color-3:#4A443C !important;   /* body text */
  --ast-global-color-4:#F3F0E8 !important;   /* light tint bg */
  --ast-global-color-5:#FFFFFF !important;   /* inverse text */
  --ast-global-color-6:#FFE9A8 !important;   /* pale amber tint */
  --ast-global-color-7:#141210 !important;   /* dark bg — hero/footer */
  --ast-global-color-8:#221D18 !important;   /* dark alt bg */

  --kn-paper:#FAF8F3;
  --kn-line:rgba(22,19,15,0.16);
  --kn-line-dark:rgba(255,196,0,0.28);
  --kn-shadow: 5px 5px 0 0 var(--ast-global-color-2);
  --kn-shadow-dark: 5px 5px 0 0 var(--ast-global-color-0);
  --kn-stripes: repeating-linear-gradient(-45deg, var(--ast-global-color-0) 0 14px, var(--ast-global-color-2) 14px 28px);
}

/* ---- Typography ---- */
body, p, li, span, input, textarea, select, button, a,
.woocommerce ul.products li.product .price,
.entry-content, .site-header, .site-footer{
  font-family:'IBM Plex Sans', sans-serif !important;
}
h1, h2, h3, h4, h5, h6,
.site-title, .entry-title, .product_title,
.wp-block-spectra-content h1, .wp-block-spectra-content h2,
.wp-block-spectra-content h3, .wp-block-spectra-content h4{
  font-family:'Big Shoulders Display', sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase;
  letter-spacing:0.2px;
}
body{ background-color:var(--kn-paper); line-height:1.7; }
.site-header, #masthead{ background-color:var(--kn-paper) !important; }

/* Mono utility — labels, eyebrows, prices, nav */
.kn-eyebrow, .main-header-menu > li > a.menu-link,
.woocommerce ul.products li.product .price, .price,
#colophon .widget-title, .site-footer .widget-title,
.ast-site-header-cart .cart-container{
  font-family:'IBM Plex Mono', monospace !important;
}

/* ---- Section rhythm ---- */
@media (min-width:1024px){
  .spectra-is-root-container.alignfull{ padding-top:72px !important; padding-bottom:72px !important; }
}
@media (min-width:768px) and (max-width:1023.98px){
  .spectra-is-root-container.alignfull{ padding-top:56px !important; padding-bottom:56px !important; }
}
@media (max-width:767.98px){
  .spectra-is-root-container.alignfull{ padding-top:40px !important; padding-bottom:40px !important; }
}

/* ---- Buttons: sharp tag shape, mono uppercase label, hard offset shadow ---- */
.wp-block-button__link, a.button, .button,
.add_to_cart_button, .single_add_to_cart_button,
input[type="submit"], #submit, .checkout-button, .wc-block-cart__submit-button{
  border-radius:2px !important;
  padding:14px 30px !important;
  font-family:'IBM Plex Mono', monospace !important;
  font-weight:600 !important;
  letter-spacing:1px;
  text-transform:uppercase;
  font-size:13px !important;
  border:2px solid var(--ast-global-color-2) !important;
  background-color:var(--ast-global-color-0) !important;
  color:var(--ast-global-color-2) !important;
  box-shadow:var(--kn-shadow);
  transition:transform 0.15s ease, box-shadow 0.15s ease;
}
.wp-block-button__link:hover, a.button:hover, .button:hover,
.add_to_cart_button:hover, .single_add_to_cart_button:hover,
input[type="submit"]:hover, #submit:hover, .checkout-button:hover{
  transform:translate(-3px,-3px);
  box-shadow:8px 8px 0 0 var(--ast-global-color-2);
}
.wp-block-button__link:active, a.button:active, .button:active{
  transform:translate(0,0);
  box-shadow:2px 2px 0 0 var(--ast-global-color-2);
}

/* ---- Images ---- */
figure.wp-block-image img{ border-radius:2px; transition:transform 0.4s ease, filter 0.4s ease; }
figure.wp-block-image:hover img{ transform:scale(1.04); }

/* ---- Links ---- */
a{ color:var(--ast-global-color-1); }
a:hover{ color:var(--ast-global-color-0); }

/* ============================================================
   Header / masthead
   ============================================================ */
#masthead{
  position:sticky !important;
  top:0 !important;
  z-index:999 !important;
  border-bottom:2px solid var(--ast-global-color-2);
}
#masthead::before{
  content:"";
  display:block;
  height:6px;
  background:var(--kn-stripes);
}

.main-header-menu > li > a.menu-link{
  font-weight:600 !important;
  font-size:12px !important;
  letter-spacing:0.8px;
  text-transform:uppercase;
  color:var(--ast-global-color-2) !important;
  padding:10px 16px !important;
  position:relative;
}
.main-header-menu > li > a.menu-link::after{
  content:"";
  position:absolute;
  left:16px; right:16px; bottom:4px;
  height:3px;
  background:var(--ast-global-color-0);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .18s steps(3,end);
}
.main-header-menu > li > a.menu-link:hover,
.main-header-menu > li.current-menu-item > a.menu-link{
  color:var(--ast-global-color-1) !important;
}
.main-header-menu > li > a.menu-link:hover::after,
.main-header-menu > li.current-menu-item > a.menu-link::after{
  transform:scaleX(1);
}

.main-header-menu .sub-menu{
  background:#FFFFFF !important;
  border:2px solid var(--ast-global-color-2) !important;
  border-radius:2px;
  box-shadow:var(--kn-shadow);
  padding:6px;
  margin-top:10px;
}
.main-header-menu .sub-menu li a.menu-link{
  border-radius:0;
  padding:10px 14px !important;
  color:var(--ast-global-color-2) !important;
  text-transform:none;
  font-size:14px !important;
}
.main-header-menu .sub-menu li a.menu-link:hover{
  background:var(--ast-global-color-6) !important;
}

/* Cart — square tag with clipped corner */
.ast-site-header-cart .cart-container{
  background:var(--ast-global-color-2) !important;
  color:var(--ast-global-color-0) !important;
  border-radius:0 !important;
  padding:9px 16px !important;
  font-weight:600;
  font-size:12px;
  letter-spacing:0.5px;
  text-transform:uppercase;
  clip-path:polygon(0 0, 100% 0, 100% 100%, 10px 100%, 0 calc(100% - 10px));
  transition:transform .15s ease;
}
.ast-site-header-cart .cart-container:hover{ transform:translateY(-2px); }
.ast-site-header-cart .cart-container,
.ast-site-header-cart .cart-container *{ color:var(--ast-global-color-0) !important; }

.ast-mobile-header-content{ background:var(--kn-paper) !important; }
.ast-mobile-menu-trigger-fill svg{ color:var(--ast-global-color-1); }

/* ============================================================
   Footer
   ============================================================ */
#colophon, .site-footer{
  background-color:var(--ast-global-color-7) !important;
  color:#EDE6D8 !important;
  padding-top:64px !important;
  padding-bottom:28px !important;
  position:relative;
}
#colophon::before, .site-footer::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:6px;
  background:var(--kn-stripes);
}
#colophon a, .site-footer a{ color:#EDE6D8 !important; }
#colophon a:hover, .site-footer a:hover{ color:var(--ast-global-color-0) !important; }
#colophon .widget-title, .site-footer .widget-title{
  color:var(--ast-global-color-0) !important;
  text-transform:uppercase;
  letter-spacing:1px;
  font-size:13px !important;
  margin-bottom:18px !important;
  padding-bottom:8px;
  border-bottom:1px solid var(--kn-line-dark);
}
.ast-footer-copyright{ opacity:0.65; font-family:'IBM Plex Mono', monospace !important; font-size:12px; }

/* ============================================================
   Page title banners — About / Contact
   ============================================================ */
[data-spectra-id='78fbda14']{ text-align:left; }
[data-spectra-id='spectra-38b626f9-prefix']{
  font-size:56px !important;
  letter-spacing:0.5px;
}
[data-spectra-id='spectra-38b626f9-title']{
  font-family:'IBM Plex Mono', monospace !important;
  font-weight:500 !important;
  text-transform:none;
  opacity:0.85;
  font-size:15px !important;
  letter-spacing:0.5px;
  margin-top:12px !important;
}
[data-spectra-id='spectra-38b626f9-desc']{
  max-width:640px;
  margin:20px 0 0 !important;
  line-height:1.7 !important;
  opacity:0.9;
}
@media (max-width:767.98px){
  [data-spectra-id='78fbda14']{ text-align:center; }
  [data-spectra-id='spectra-38b626f9-prefix']{ font-size:38px !important; }
  [data-spectra-id='spectra-38b626f9-desc']{ margin-left:auto !important; margin-right:auto !important; }
}

/* Policy pages */
.entry-content > h2.wp-block-heading:first-child{
  font-size:32px !important;
  padding:10px 18px;
  margin-bottom:26px !important;
  display:inline-block;
  background:var(--ast-global-color-0);
  border:2px solid var(--ast-global-color-2);
  box-shadow:var(--kn-shadow);
}
.entry-content h3.wp-block-heading{
  color:var(--ast-global-color-2) !important;
  font-size:19px !important;
  margin-top:34px !important;
  padding-left:14px;
  border-left:5px solid var(--ast-global-color-0);
}

/* ============================================================
   HOME — hero
   ============================================================ */
.kn-eyebrow{
  display:inline-block;
  background:var(--ast-global-color-0) !important;
  color:var(--ast-global-color-2) !important;
  padding:5px 12px !important;
  font-size:12px !important;
  letter-spacing:2px !important;
  font-weight:600 !important;
}
[data-spectra-id='spectra-b7e374d1-title']{
  font-size:clamp(40px, 6vw, 76px) !important;
  line-height:0.98 !important;
  margin-top:18px !important;
}
[data-spectra-id='spectra-b7e374d1-desc']{
  font-family:'IBM Plex Sans', sans-serif !important;
  text-transform:none;
  max-width:560px;
  font-size:17px !important;
  opacity:0.85;
}

/* ---- Trust / feature row: bordered spec cards ---- */
@media (min-width:1024px){
  [data-spectra-id='dc55a5a3']{
    display:grid !important;
    grid-template-columns:repeat(3, 1fr) !important;
    gap:24px !important;
    align-items:stretch !important;
  }
}
@media (min-width:768px) and (max-width:1023.98px){
  [data-spectra-id='dc55a5a3']{
    display:grid !important;
    grid-template-columns:repeat(2, 1fr) !important;
    gap:20px !important;
    align-items:stretch !important;
  }
}
@media (max-width:767.98px){
  [data-spectra-id='dc55a5a3']{ display:flex !important; flex-direction:column !important; gap:20px !important; }
}
[data-spectra-id='dc55a5a3'] > div{
  background:#FFFFFF !important;
  padding:34px 28px !important;
  margin:0 !important;
  border:2px solid var(--ast-global-color-2) !important;
  box-shadow:none !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:0 !important;
}
[data-spectra-id='dc55a5a3'] .wp-block-spectra-icon{
  --spectra-background-color:transparent !important;
  background-color:transparent !important;
  border:2px solid var(--ast-global-color-2);
  border-radius:0 !important;
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
}
[data-spectra-id='dc55a5a3'] .wp-block-spectra-icon svg{ width:20px; height:20px; }
[data-spectra-id='dc55a5a3'] h4{ margin-top:18px !important; font-size:18px !important; }

/* ---- Category grid ---- */
@media (min-width:768px){
  [data-spectra-id='1dc8aba8']{
    display:grid !important;
    grid-template-columns:repeat(3, 1fr) !important;
    gap:24px !important;
    align-items:stretch !important;
  }
}
@media (max-width:767.98px){
  [data-spectra-id='1dc8aba8']{ display:flex !important; flex-direction:column !important; gap:20px !important; }
}
[data-spectra-id='1dc8aba8'] > div{
  background:#FFFFFF !important;
  padding-bottom:34px;
  margin:0 !important;
  position:relative;
  border:2px solid var(--ast-global-color-2) !important;
}
[data-spectra-id='1dc8aba8'] figure{
  aspect-ratio:4 / 3 !important;
  overflow:hidden;
  border-radius:0;
  margin-bottom:0 !important;
  filter:grayscale(0.15) contrast(1.05);
}
[data-spectra-id='1dc8aba8'] figure img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  border-radius:0;
}
[data-spectra-id='1dc8aba8'] p{
  font-family:'Big Shoulders Display', sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase;
  font-size:22px !important;
  padding:18px 20px 4px !important;
  margin:0 !important;
}
[data-spectra-id='1dc8aba8'] .wp-block-buttons{ padding:0 20px; margin-top:10px; }

/* ---- Testimonials: ticket-style cards ---- */
[data-spectra-id='99079bba']{
  display:grid !important;
  gap:22px !important;
}
@media (min-width:768px){
  [data-spectra-id='99079bba']{ grid-template-columns:repeat(3, 1fr) !important; }
}
[data-spectra-id='99079bba'] > div{
  background:#FFFFFF;
  border:2px solid var(--ast-global-color-2);
  border-radius:2px;
  padding:30px 26px;
  position:relative;
  overflow:hidden;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
}
[data-spectra-id='99079bba'] > div::before{
  content:"";
  position:absolute;
  top:-2px; left:20px; right:20px;
  height:4px;
  background:var(--kn-stripes);
}
[data-spectra-id='99079bba'] .wp-block-spectra-icons{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:4px !important;
  margin:0 !important;
  height:20px;
}
[data-spectra-id='99079bba'] .wp-block-spectra-icons .wp-block-spectra-icon{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:20px !important;
  height:20px !important;
  flex:0 0 auto !important;
}
[data-spectra-id='99079bba'] .wp-block-spectra-icons svg{
  width:18px !important;
  height:18px !important;
  display:block !important;
}
[data-spectra-id='99079bba'] h4{
  font-family:'IBM Plex Mono', monospace !important;
  text-transform:none;
  font-weight:600 !important;
  font-size:13px !important;
  letter-spacing:0.3px;
  color:var(--ast-global-color-1) !important;
  margin-top:16px !important;
}
[data-spectra-id='99079bba'] p.wp-block-spectra-content{
  font-family:'IBM Plex Sans', sans-serif !important;
  text-transform:none;
  font-size:15.5px;
}

/* ============================================================
   ABOUT — Who Are We / Our Mission / What We Do trio
   ============================================================ */
[data-spectra-id='spectra-mfxh82jo-3v8bij']{
  align-items:flex-start !important;
}
@media (min-width:768px){
  [data-spectra-id='spectra-mfxh82jo-3v8bij']{
    grid-template-columns:1fr 1fr !important;
    gap:24px !important;
  }
  [data-spectra-id='spectra-mfxh82jo-3v8bij'] > div:nth-child(1){ grid-column:1; grid-row:1; }
  [data-spectra-id='spectra-mfxh82jo-3v8bij'] > div:nth-child(2){ grid-column:1; grid-row:2; }
  [data-spectra-id='spectra-mfxh82jo-3v8bij'] > div:nth-child(3){ grid-column:2; grid-row:1 / span 2; }
}
[data-spectra-id='spectra-mfxh82jo-3v8bij'] > div{
  --spectra-box-shadow:none !important;
  box-shadow:none !important;
  border:2px solid var(--ast-global-color-2) !important;
  padding:36px 34px !important;
  width:100%;
}
[data-spectra-id='spectra-mfxh82jo-3v8bij'] .spectra-separator-line{
  background:var(--ast-global-color-0) !important;
  height:4px !important;
  width:36px !important;
}
[data-spectra-id='spectra-mfxh82jo-3v8bij'] h3{
  margin-top:18px !important;
  margin-bottom:14px !important;
  font-size:20px !important;
}
[data-spectra-id='spectra-mfxh82jo-3v8bij'] p.wp-block-spectra-content{
  margin:0 !important;
  line-height:1.7 !important;
}

/* "What We Do" list — plain rows, no pill/shadow boxes */
.kn-value-grid{
  display:flex !important;
  flex-direction:column !important;
  gap:0 !important;
  margin:20px 0 0 !important;
}
.kn-value-grid li{
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  padding:14px 0 !important;
  margin:0 !important;
  border-bottom:1px solid var(--kn-line) !important;
}
.kn-value-grid li:first-child{ padding-top:0 !important; }
.kn-value-grid li:last-child{ border-bottom:none !important; padding-bottom:0 !important; }
.kn-value-grid li .spectra-list-icon{
  --spectra-text-color:var(--ast-global-color-1) !important;
  margin-top:3px;
}

/* ============================================================
   ABOUT — Core Values (two 3-up rows of numbered spec cards)
   ============================================================ */
[data-spectra-id='6b895d8b'], [data-spectra-id='spectra-a944afd2-c36c-4ff9-a670-5f6cefc3269a']{
  display:grid !important;
  gap:24px !important;
  align-items:stretch !important;
}
[data-spectra-id='6b895d8b']{ margin-bottom:24px !important; }
@media (min-width:768px){
  [data-spectra-id='6b895d8b'], [data-spectra-id='spectra-a944afd2-c36c-4ff9-a670-5f6cefc3269a']{ grid-template-columns:repeat(3,1fr) !important; }
}
@media (max-width:767.98px){
  [data-spectra-id='6b895d8b'], [data-spectra-id='spectra-a944afd2-c36c-4ff9-a670-5f6cefc3269a']{ display:flex !important; flex-direction:column !important; }
}
[data-spectra-id='6b895d8b'] > div, [data-spectra-id='spectra-a944afd2-c36c-4ff9-a670-5f6cefc3269a'] > div{
  background:#FFFFFF !important;
  padding:30px 26px !important;
  margin:0 !important;
  border:2px solid var(--ast-global-color-2) !important;
}
[data-spectra-id='6b895d8b'] span.wp-block-spectra-content,
[data-spectra-id='spectra-a944afd2-c36c-4ff9-a670-5f6cefc3269a'] span.wp-block-spectra-content{
  font-family:'Big Shoulders Display', sans-serif !important;
  font-weight:900 !important;
  font-size:38px !important;
  color:var(--ast-global-color-0) !important;
  -webkit-text-stroke:1.5px var(--ast-global-color-2);
  opacity:1 !important;
}
[data-spectra-id='6b895d8b'] h4.wp-block-spectra-content,
[data-spectra-id='spectra-a944afd2-c36c-4ff9-a670-5f6cefc3269a'] h4.wp-block-spectra-content{
  font-size:18px !important;
  margin-top:6px !important;
}

/* ---- Business Activities accordion ---- */
[data-spectra-id='spectra-mfxkczw1-6ninhe']{
  border:2px solid var(--ast-global-color-2) !important;
  border-radius:0 !important;
}
.wp-block-spectra-accordion-child-item{
  border-bottom:1px solid var(--kn-line) !important;
}
.wp-block-spectra-accordion-child-item:last-child{ border-bottom:none !important; }

/* ============================================================
   CONTACT — form + info card
   ============================================================ */
.srfm-form-container-3783{
  --srfm-color-scheme-primary:var(--ast-global-color-2) !important;
  --srfm-color-scheme-text-on-primary:var(--ast-global-color-0) !important;
  --srfm-color-scheme-text:#16130F !important;
  --srfm-color-input-label:#16130F !important;
  --srfm-color-input-text:#16130F !important;
  --srfm-color-input-background:#FFFFFF !important;
  --srfm-color-input-border: rgba(22,19,15,0.35) !important;
  --srfm-color-input-border-hover: var(--ast-global-color-1) !important;
  --srfm-color-input-border-focus-glow: rgba(255,196,0,0.35) !important;
  --srfm-color-input-selected: rgba(255,196,0,0.18) !important;
  --srfm-btn-color-hover: var(--ast-global-color-1) !important;
  --srfm-form-border-radius-top:2px !important;--srfm-form-border-radius-right:2px !important;
  --srfm-form-border-radius-bottom:2px !important;--srfm-form-border-radius-left:2px !important;
  --srfm-instant-form-border-radius-top:2px !important;--srfm-instant-form-border-radius-right:2px !important;
  --srfm-instant-form-border-radius-bottom:2px !important;--srfm-instant-form-border-radius-left:2px !important;
}
.srfm-form-container-3783,
.srfm-block-wrap .srfm-input-block, .srfm-input-wrap{ border-radius:2px !important; }
.srfm-form-container-3783 .srfm-submit-btn-wrapper button,
.srfm-form-container-3783 button[type="submit"]{
  border-radius:2px !important;
  border:2px solid var(--ast-global-color-2) !important;
  box-shadow:var(--kn-shadow);
  text-transform:uppercase;
  letter-spacing:1px;
  font-family:'IBM Plex Mono', monospace !important;
  font-weight:600 !important;
}

.kn-contact-info-card{
  background:var(--ast-global-color-7) !important;
  border:2px solid var(--ast-global-color-2) !important;
  padding:36px 32px !important;
}
.kn-contact-info-card h3, .kn-contact-info-card h6{
  color:var(--ast-global-color-0) !important;
}
.kn-contact-info-card h6{
  font-family:'IBM Plex Mono', monospace !important;
  font-size:13px !important;
  letter-spacing:1px;
  text-transform:uppercase;
  border-bottom:1px solid var(--kn-line-dark);
  padding-bottom:10px;
  margin-bottom:16px !important;
}
.kn-contact-info-card p{ color:#EDE6D8 !important; }
.kn-contact-info-card .spectra-list-item{
  padding-bottom:16px;
  margin-bottom:16px;
  border-bottom:1px dashed rgba(255,196,0,0.3);
}
.kn-contact-info-card .spectra-list-item:last-child{ border-bottom:none; margin-bottom:0; padding-bottom:0; }
.kn-contact-info-card .spectra-list-icon{ --spectra-text-color:var(--ast-global-color-0) !important; }

/* ============================================================
   CART & CHECKOUT — client-side cart (see wp-content/custom/cart.js)
   ============================================================ */

/* -- toast -- */
.kn-toast{
  position:fixed;
  left:50%;
  bottom:28px;
  transform:translate(-50%, 20px);
  background:var(--ast-global-color-2);
  color:var(--ast-global-color-0);
  border:2px solid var(--ast-global-color-2);
  box-shadow:var(--kn-shadow-dark);
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  font-weight:600;
  letter-spacing:0.3px;
  padding:14px 22px;
  z-index:99999;
  opacity:0;
  pointer-events:none;
  transition:opacity 0.2s ease, transform 0.2s ease;
  max-width:90vw;
}
.kn-toast--visible{
  opacity:1;
  transform:translate(-50%, 0);
}

/* -- transient add-to-cart button state -- */
.add_to_cart_button.kn-added{
  background-color:var(--ast-global-color-2) !important;
  border-color:var(--ast-global-color-2) !important;
  color:var(--ast-global-color-0) !important;
}

/* -- cart page -- */
.wp-block-woocommerce-cart{ margin-top:8px; }
.kn-cart-wrap{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  align-items:start;
}
@media (min-width:1100px){
  .kn-cart-wrap{ grid-template-columns:1fr 300px; }
}
.kn-cart-table-scroll{ overflow-x:auto; }
.kn-cart-table{
  width:100%;
  border-collapse:collapse;
  border:2px solid var(--ast-global-color-2);
  background:#FFFFFF;
}
.kn-cart-table th{
  font-family:'IBM Plex Mono', monospace;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:0.5px;
  text-align:left;
  padding:14px 16px;
  border-bottom:2px solid var(--ast-global-color-2);
  color:var(--ast-global-color-3);
}
.kn-cart-table td{
  padding:12px 8px;
  border-bottom:1px solid var(--kn-line);
  vertical-align:middle;
}
.kn-cart-table tr:last-child td{ border-bottom:none; }
.kn-cart-row__product{ display:flex; align-items:center; gap:10px; min-width:140px; }
.kn-cart-row__thumb{ flex:0 0 auto; }
.kn-cart-row__thumb img{ width:44px; height:44px; object-fit:cover; border:2px solid var(--ast-global-color-2); display:block; }
.kn-cart-row__info{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.kn-cart-row__name{ font-weight:600; color:var(--ast-global-color-2) !important; text-decoration:none; }
.kn-cart-row__name:hover{ color:var(--ast-global-color-1) !important; }
.kn-cart-row__price-mobile{ display:none; font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--ast-global-color-3); }
.kn-cart-row__price, .kn-cart-row__subtotal{ font-family:'IBM Plex Mono', monospace; white-space:nowrap; }
.kn-cart-row__qty-line{ display:flex; align-items:center; gap:8px; }
.kn-qty-stepper{ display:inline-flex; align-items:stretch; border:2px solid var(--ast-global-color-2); flex:0 0 auto; height:24px; }
.kn-qty-stepper button{
  background:var(--ast-global-color-4);
  border:none;
  width:16px;
  padding:0;
  flex:0 0 16px;
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  color:var(--ast-global-color-2);
}
.kn-qty-stepper button:hover{ background:var(--ast-global-color-0); }
.kn-qty-input{
  width:26px;
  min-width:0;
  flex:0 0 26px;
  border:none;
  border-left:2px solid var(--ast-global-color-2);
  border-right:2px solid var(--ast-global-color-2);
  text-align:center;
  font-size:12px;
  font-family:'IBM Plex Mono', monospace;
  -moz-appearance:textfield;
  appearance:textfield;
}
.kn-qty-input::-webkit-outer-spin-button,
.kn-qty-input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.kn-cart-remove{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:none;
  border:2px solid var(--ast-global-color-2);
  width:24px;
  height:24px;
  padding:0;
  flex:0 0 24px;
  line-height:1;
  cursor:pointer;
  font-size:13px;
  font-weight:600;
  color:var(--ast-global-color-2);
  transition:background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.kn-cart-remove:hover{
  background:var(--ast-global-color-2);
  border-color:var(--ast-global-color-2);
  color:var(--ast-global-color-0);
}

@media (max-width:860px){
  /* the theme's own "wide alignment" breakout uses a negative margin to
     extend past the content column; that collapses to ~0 gutter on narrow
     viewports and runs the card straight to the screen edge, so pin our
     own padding instead of relying on it here. */
  .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout{
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:16px !important;
    padding-right:16px !important;
    box-sizing:border-box;
  }

  .kn-cart-table-scroll{ overflow-x:visible; }
  .kn-cart-table thead{ display:none; }
  .kn-cart-table, .kn-cart-table tbody{ display:block; width:100%; }
  .kn-cart-table tr{
    display:grid;
    grid-template-columns:44px 1fr;
    column-gap:12px;
    row-gap:12px;
    padding:16px;
    border-bottom:2px solid var(--ast-global-color-2);
  }
  .kn-cart-table tr:last-child{ border-bottom:none; }
  /* every td (and the product cell's own wrapper) hands its content straight
     to the row's grid, so each control can be placed in its own track */
  .kn-cart-table td, .kn-cart-row__product{ display:contents; }
  .kn-cart-row__thumb{ grid-column:1; grid-row:1; }
  .kn-cart-row__info{ grid-column:2; grid-row:1; display:flex; flex-direction:column; justify-content:center; gap:4px; min-width:0; }
  .kn-cart-row__price{ display:none !important; }
  .kn-cart-row__price-mobile{ display:block !important; }
  .kn-cart-row__qty-line{ grid-column:2; grid-row:2; justify-content:space-between; }
  .kn-cart-row__subtotal span{
    grid-column:2; grid-row:3;
    font-weight:700;
    font-family:'IBM Plex Mono', monospace;
  }
  .kn-cart-row__subtotal span:before{ content:"Subtotal: "; font-weight:400; color:var(--ast-global-color-3); }
}

.kn-cart-summary{
  border:2px solid var(--ast-global-color-2);
  background:#FFFFFF;
  padding:26px 24px;
  position:sticky;
  top:24px;
}
.kn-cart-summary h2{
  font-size:18px !important;
  margin:0 0 16px !important;
}
.kn-cart-summary__row{
  display:flex;
  justify-content:space-between;
  font-family:'IBM Plex Mono', monospace;
  padding:10px 0;
  border-bottom:1px solid var(--kn-line);
}
.kn-cart-summary__row--total{
  border-bottom:none;
  font-weight:700;
  font-size:18px;
  color:var(--ast-global-color-2);
}
.kn-cart-checkout-btn{
  display:block;
  text-align:center;
  margin-top:18px;
  width:100%;
}

/* -- checkout page -- */
.wp-block-woocommerce-checkout{ margin-top:8px; }
.kn-checkout-wrap{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  align-items:start;
}
@media (min-width:900px){
  .kn-checkout-wrap{ grid-template-columns:1fr 320px; }
}
.kn-checkout-form, .kn-order-summary, .kn-checkout-empty, .kn-order-confirm{
  border:2px solid var(--ast-global-color-2);
  background:#FFFFFF;
  padding:30px 28px;
}
.kn-checkout-form h2, .kn-order-summary h2{
  font-size:18px !important;
  margin:0 0 18px !important;
}
.kn-checkout-form h2 + label,
.kn-checkout-form label:first-of-type{ margin-top:0; }
.kn-checkout-form label{
  display:block;
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.5px;
  color:var(--ast-global-color-3);
  margin:16px 0 6px;
}
.kn-checkout-form input,
.kn-checkout-form textarea{
  width:100%;
  border:2px solid var(--ast-global-color-2);
  padding:10px 12px;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:15px;
  background:#FFFFFF;
  color:var(--ast-global-color-2);
}
.kn-checkout-note{
  font-size:13px;
  border:2px solid var(--ast-global-color-2);
  background:var(--ast-global-color-4);
  padding:14px 16px;
  margin:0 0 20px;
}
.kn-order-note{ margin-bottom:20px; }
.kn-checkout-terms{
  font-size:13px;
  opacity:0.8;
  margin:0 0 20px;
}
.kn-checkout-terms a{ color:var(--ast-global-color-2); text-decoration:underline; }
.kn-checkout-actions{
  display:flex;
  flex-direction:column-reverse;
  gap:14px;
}
.kn-return-to-cart{
  text-align:center;
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:0.5px;
  color:var(--ast-global-color-3) !important;
  text-decoration:underline;
}
.kn-place-order{ width:100%; margin-top:0; }
.kn-order-rows{ margin-bottom:16px; }
.kn-order-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--kn-line);
  font-size:14px;
}
.kn-order-row__qty{ font-family:'IBM Plex Mono', monospace; color:var(--ast-global-color-3); }
.kn-order-row__price{ font-family:'IBM Plex Mono', monospace; white-space:nowrap; }
.kn-order-total{
  display:flex;
  justify-content:space-between;
  font-weight:700;
  font-size:18px;
  padding-top:12px;
  border-top:2px solid var(--ast-global-color-2);
}
.kn-checkout-empty, .kn-order-confirm{ text-align:center; max-width:560px; margin:0 auto; }
.kn-order-confirm .kn-order-rows{ text-align:left; margin-top:20px; }
.kn-order-confirm .button{ margin-top:20px; }
