.woocommerce ul.products li.product{position:relative}
.woocommerce ul.products li.product.product_tag-editors-pick>a.woocommerce-LoopProduct-link::before,.woocommerce ul.products li.product.product_tag-under-50>a.woocommerce-LoopProduct-link::after{position:absolute;z-index:3;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.4;white-space:nowrap;pointer-events:none}
.woocommerce ul.products li.product.product_tag-editors-pick>a.woocommerce-LoopProduct-link::before{content:"Editor\2019s pick";top:8px;left:8px;background:#111;color:#fff}
.woocommerce ul.products li.product.product_tag-under-50>a.woocommerce-LoopProduct-link::after{content:"Under \00A3 50";top:8px;right:8px;background:#c6f432;color:#111}
/* Narrow cards (2-column grid on phones): stack the badges so they never overlap */
@media (max-width:600px){
.woocommerce ul.products li.product.product_tag-under-50>a.woocommerce-LoopProduct-link::after{right:auto;left:8px}
.woocommerce ul.products li.product.product_tag-editors-pick.product_tag-under-50>a.woocommerce-LoopProduct-link::after{top:36px}
}
/* TNTX: mobile product CTA above the fold */
@media (max-width: 767px) {
  .single-product div.product .summary { display: flex; flex-direction: column; }
  .single-product div.product .summary > * { order: 5; }
  .single-product div.product .summary .product_title { order: 1; }
  .single-product div.product .summary form.cart { order: 2; margin: .75rem 0 1rem; }
  .single-product div.product .summary .woocommerce-product-details__short-description { order: 3; }
  .single-product div.product .woocommerce-product-gallery { max-width: 220px; margin-left: auto; margin-right: auto; }
}

/* TNTX: journal slider cards stand out on the dark navy band (lime border, light top strip, soft shadow) */
.tnx-band--ink .tnx-journal .tnx-journal__track .tnx-window { border: 2px solid var(--tnx-lime, #d1e66a); box-shadow: 0 8px 22px rgb(0 0 0 / .45); }
.tnx-band--ink .tnx-journal .tnx-journal__track .tnx-window__bar { background: #eef5cc; color: var(--tnx-night, #172428); border-bottom: 2px solid var(--tnx-night, #172428); font-weight: 600; }
.tnx-band--ink .tnx-journal .tnx-journal__track .tnx-window__dots i { box-shadow: 0 0 0 1px var(--tnx-night, #172428); }
.tnx-band--ink .tnx-journal .tnx-journal__track > li:first-child .tnx-window__title::after { color: var(--tnx-night, #172428); box-shadow: 0 0 0 1px var(--tnx-night, #172428); }
/* TNTX: shop pagination - spaced, chunky 44px buttons, clear current page (overrides WooCommerce defaults) */
.woocommerce nav.woocommerce-pagination { margin: 40px 0 8px; text-align: center; }
.woocommerce nav.woocommerce-pagination ul.page-numbers {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px;
  min-width: 0; min-height: 0; margin: 0; padding: 0 6px 6px 0;
  background: none; border: 0; border-radius: 0; box-shadow: none; white-space: normal; list-style: none;
}
.woocommerce nav.woocommerce-pagination ul.page-numbers li {
  float: none; display: block; margin: 0; padding: 0; border: 0; overflow: visible;
}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers,
.woocommerce nav.woocommerce-pagination ul li span.page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px; margin: 0; padding: 0 14px;
  background: var(--tnx-surface, #fff); color: var(--tnx-ink, #172428);
  border: 2px solid var(--tnx-ink, #172428); border-radius: var(--tnx-radius, 10px);
  box-shadow: 3px 3px 0 var(--tnx-ink, #172428);
  font-family: var(--tnx-font); font-size: 1.0625rem; font-weight: 800; line-height: 1;
  text-decoration: none; opacity: 1;
  transition: transform .1s ease, box-shadow .1s ease, background-color .1s ease;
}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:hover {
  background: var(--tnx-lime, #d1e66a); color: var(--tnx-on-accent, #172428);
  transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--tnx-ink, #172428);
}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:focus { background: var(--tnx-lime, #d1e66a); color: var(--tnx-on-accent, #172428); }
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:focus-visible { outline: 3px solid var(--tnx-pink, #ff7ac6); outline-offset: 3px; }
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--tnx-ink, #172428); }
.woocommerce nav.woocommerce-pagination ul li span.page-numbers.current {
  background: var(--tnx-lime, #d1e66a); color: var(--tnx-on-accent, #172428); opacity: 1;
  box-shadow: 3px 3px 0 var(--tnx-ink, #172428), inset 0 -4px 0 var(--tnx-ink, #172428);
}
.woocommerce nav.woocommerce-pagination ul li span.page-numbers.dots { min-width: 28px; padding: 0 4px; background: transparent; border-color: transparent; box-shadow: none; }
.woocommerce nav.woocommerce-pagination ul li .prev.page-numbers,
.woocommerce nav.woocommerce-pagination ul li .next.page-numbers { font-size: 1.25rem; }
/* ===== TrueNorth Tech X footer v2 (scoped to .tnx-footer--v2) =====
   Paste at the END of Appearance > Customize > Additional CSS. Header untouched. */
.tnx-footer--v2 .tnx-footer__main {
  grid-template-columns: 1.3fr 1fr 1fr 1.4fr;
  gap: 48px;
  padding: 64px var(--tnx-gutter) 40px;
}
.tnx-footer--v2 h2 { letter-spacing: .02em; }
.tnx-footer--v2 .tnx-footer-menu { gap: 12px; }
.tnx-footer--v2 .tnx-footer-menu a {
  display: inline-block;
  padding: 2px 0;              /* bigger tap target */
  color: #fff;
  text-decoration: none;
  text-underline-offset: 4px;
  transition: color .15s ease;
}
.tnx-footer--v2 .tnx-footer-menu a:hover,
.tnx-footer--v2 .tnx-footer-menu a:focus-visible {
  color: var(--tnx-lime, #d1e66a);
  text-decoration: underline;
  text-decoration-thickness: 2px;
}

/* Newsletter (existing MailPoet form id 1) */
.tnx-footer--v2 .tnx-footer__news p { margin: 0 0 14px; }
.tnx-footer--v2 .tnx-footer__news .mailpoet_form { padding: 0 !important; }
.tnx-footer--v2 .tnx-footer__news .mailpoet_paragraph { margin-bottom: 10px; }
.tnx-footer--v2 .tnx-footer__news input.mailpoet_text {
  width: 100% !important;
  padding: 12px 14px !important;
  border: 1px solid rgb(255 255 255 / .25) !important;
  border-radius: 10px;
  background: rgb(255 255 255 / .06);
  color: #fff;
}
.tnx-footer--v2 .tnx-footer__news input.mailpoet_text::placeholder { color: #8fa09d; }
.tnx-footer--v2 .tnx-footer__news input.mailpoet_submit {
  width: 100%;
  padding: 12px 16px !important;
  border: 0 !important;
  border-radius: 10px;
  background: var(--tnx-lime, #d1e66a) !important;
  color: var(--tnx-night, #172428) !important;
  font-weight: 800;
  cursor: pointer;
  transition: filter .15s ease, transform .15s ease;
}
.tnx-footer--v2 .tnx-footer__news input.mailpoet_submit:hover,
.tnx-footer--v2 .tnx-footer__news input.mailpoet_submit:focus-visible {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

/* Bottom bar: lime divider, muted disclosure, copyright */
.tnx-footer--v2 .tnx-footer__bottom { border-top: 0; padding-top: 0; }
.tnx-footer--v2 .tnx-footer__divider {
  height: 2px;
  margin: 0 0 18px;
  border: 0;
  background: var(--tnx-lime, #d1e66a);
  opacity: .85;
}
.tnx-footer--v2 .tnx-footer__disclosure {
  margin: 0 0 6px;
  color: #8fa09d;
  font-size: .8125rem;
  line-height: 1.5;
}
.tnx-footer--v2 .tnx-footer__copy { margin: 0; color: #b7c4c1; font-size: .875rem; }

/* Tablet */
@media (max-width: 1000px) {
  .tnx-footer--v2 .tnx-footer__main { grid-template-columns: 1fr 1fr; gap: 40px 32px; }
  .tnx-footer--v2 .tnx-footer__brand,
  .tnx-footer--v2 .tnx-footer__news { grid-column: 1 / -1; }
}

/* Mobile (~390px): Explore + Company stay side by side in 2 columns */
@media (max-width: 600px) {
  .tnx-footer--v2 .tnx-footer__main {
    grid-template-columns: 1fr 1fr;   /* overrides theme's 1-column rule */
    gap: 32px 20px;
    padding: 48px 20px 28px;
  }
  .tnx-footer--v2 .tnx-footer__brand,
  .tnx-footer--v2 .tnx-footer__news { grid-column: 1 / -1; }
  .tnx-footer--v2 .tnx-footer-menu { gap: 6px; }
  .tnx-footer--v2 .tnx-footer-menu a { padding: 8px 0; font-size: .95rem; } /* ~40px tap targets */
  .tnx-footer--v2 .tnx-footer__bottom { padding-left: 20px; padding-right: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .tnx-footer--v2 * { transition: none !important; transform: none !important; }
}


/* === Footer newsletter form restyle (MailPoet form id 1) — CSS only ===
   Scope: .tnx-footer--v2 .tnx-footer__news #mailpoet_form_1
   Built-in image CAPTCHA kept; styled below. Append after the existing footer block. */
.tnx-footer--v2 .tnx-footer__news { container-type: inline-size; }

.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 form.mailpoet_form {
  display: flex !important;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 10px;
  padding: 0 !important;
  margin: 0;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_paragraph {
  margin: 0 !important;
  line-height: 1.4;
  min-width: 0;
}
/* Default (narrow column, e.g. 4-col desktop footer): email full row, then first name + button */
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_paragraph:has(#form_email_1) { flex: 1 1 100%; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_paragraph:has(#form_first_name_1) { flex: 1 1 120px; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_paragraph:has(.mailpoet_submit) { flex: 0 0 auto; position: relative; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_form_paragraph { order: 5; flex: 1 1 100%; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_container { order: 6; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_message { order: 7; flex: 1 1 100%; }

/* Wide column (tablet full-width row / wide screens): true single row */
@container (min-width: 520px) {
  .tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_paragraph:has(#form_email_1) { flex: 1 1 240px; }
  .tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_paragraph:has(#form_first_name_1) { flex: 0 1 160px; }
}

/* Inputs: light field on navy for clear contrast */
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 input.mailpoet_text {
  display: block;
  width: 100% !important;
  min-height: 48px;
  margin: 0 !important;
  padding: 12px 14px !important;
  box-sizing: border-box !important;
  border: 2px solid #f4f7ef !important;
  border-radius: 10px !important;
  background: #f4f7ef !important;
  color: #172428 !important;
  font: inherit;
  font-size: 1rem !important;   /* >=16px stops iOS zoom-on-focus */
  line-height: 1.25;
  box-shadow: none !important;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 input.mailpoet_text::placeholder { color: #55625f; opacity: 1; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 input.mailpoet_text:focus,
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 input.mailpoet_text:focus-visible {
  outline: 3px solid var(--tnx-lime, #d1e66a) !important;
  outline-offset: 2px;
  border-color: #fff !important;
  background: #fff !important;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 input.mailpoet_text.parsley-error {
  border-color: #ff8f80 !important;
}

/* Subscribe button: lime, ink text */
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 input.mailpoet_submit {
  display: block;
  width: auto !important;
  min-width: 128px;
  height: 100%;
  min-height: 48px;
  margin: 0 !important;
  padding: 12px 22px !important;
  box-sizing: border-box !important;
  border: 2px solid var(--tnx-lime, #d1e66a) !important;
  border-radius: 10px !important;
  background: var(--tnx-lime, #d1e66a) !important;
  color: var(--tnx-night, #172428) !important;
  font: inherit;
  font-size: 1rem !important;
  font-weight: 800 !important;
  letter-spacing: .01em;
  cursor: pointer;
  transition: filter .15s ease, transform .15s ease;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 input.mailpoet_submit:hover { filter: brightness(1.08); transform: translateY(-1px); }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 input.mailpoet_submit:focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: 2px;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_form_loading {
  position: absolute; left: 50%; bottom: -14px; transform: translateX(-50%); width: auto;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_form_loading > span { background-color: var(--tnx-lime, #d1e66a) !important; }

/* Consent line: small and muted */
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_form_paragraph {
  margin: 2px 0 0 !important;
  color: #8fa09d;
  font-size: .78rem;
  line-height: 1.5;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_form_paragraph a {
  color: #c9d3d1; text-decoration: underline; text-underline-offset: 2px;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_form_paragraph a:hover,
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_form_paragraph a:focus-visible { color: var(--tnx-lime, #d1e66a); }

/* Field-level validation errors */
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .parsley-errors-list {
  margin: 6px 0 0 !important; padding: 0; list-style: none;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .parsley-errors-list li,
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .parsley-required {
  color: #ffb4a8 !important; font-size: .8125rem; line-height: 1.4;
}

/* Success / error messages */
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_message { margin: 0 !important; padding: 0 !important; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_message p { margin: 0 !important; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_validate_success,
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_validate_error {
  padding: 12px 14px !important;
  border-radius: 10px;
  font-size: .9375rem;
  font-weight: 600;
  line-height: 1.45;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_validate_success {
  background: rgb(209 230 106 / .14);
  border: 2px solid var(--tnx-lime, #d1e66a);
  color: #eef5cc !important;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_validate_error {
  background: rgb(255 120 100 / .12);
  border: 2px solid #ff8f80;
  color: #ffd2ca !important;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_validate_error:empty { display: none !important; }

/* Built-in image CAPTCHA (injected after first submit): image card + 2 icon buttons, then answer + submit */
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_container {
  flex: 1 1 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px 44px;
  gap: 10px;
  align-items: center;
  max-width: 420px;
  margin: 0 !important;
  padding: 14px;
  border: 1px solid rgb(255 255 255 / .18);
  border-radius: 12px;
  background: rgb(255 255 255 / .05);
  text-align: left;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_image_wrapper {
  grid-column: 1; margin: 0 !important;
  padding: 6px; border-radius: 10px; background: #fff; line-height: 0;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 img.mailpoet_captcha {
  display: block; width: 100%; max-width: 220px; height: auto; margin: 0 auto !important;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_container .mailpoet_icon_button {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0 !important;
  border: 0 !important; border-radius: 10px;
  background: #eef5cc !important;
  cursor: pointer;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_container .mailpoet_icon_button:hover { opacity: 1; background: var(--tnx-lime, #d1e66a) !important; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_container .mailpoet_icon_button:focus-visible { outline: 3px solid var(--tnx-lime, #d1e66a); outline-offset: 2px; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_container .mailpoet_icon_button img { width: 20px; height: 20px; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_label {
  grid-column: 1 / -1; display: block; margin: 2px 0 0 !important;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_label .mailpoet_text_label {
  display: block; margin: 0 0 6px; color: #dfe7e5; font-size: .875rem; line-height: 1.4;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_label input.mailpoet_text { max-width: none !important; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_submit { grid-column: 1 / -1; margin: 0 !important; }
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_submit input.mailpoet_submit { width: 100% !important; }

/* Mobile: everything stacked, full width */
@media (max-width: 600px) {
  .tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_paragraph:has(#form_email_1),
  .tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_paragraph:has(#form_first_name_1),
  .tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_paragraph:has(.mailpoet_submit) { flex: 1 1 100%; }
  .tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 input.mailpoet_submit { width: 100% !important; }
  .tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_captcha_container { max-width: none; padding: 12px; }
}

/* === TNX hero extras v1: quick chips, Today's pick, cursor + sticker motion === */
.tnx-quick { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-top: 26px; }
.tnx-quick__label { color: var(--tnx-muted); font-family: var(--tnx-mono); font-size: .8125rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.tnx-quick__label::before { content: "> "; color: var(--tnx-moss); }
.tnx-quick__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.tnx-quick__chip { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; background: var(--tnx-surface); border: var(--tnx-border); border-radius: 999px; box-shadow: 2px 2px 0 var(--tnx-ink); color: var(--tnx-ink); font-size: .875rem; font-weight: 800; text-decoration: none; transition: transform .1s ease, box-shadow .1s ease, background-color .15s ease; }
.tnx-quick__chip:hover, .tnx-quick__chip:focus-visible { background: var(--tnx-lime); color: var(--tnx-on-accent); transform: translate(-1px, -1px); box-shadow: 3px 3px 0 var(--tnx-ink); }
.tnx-quick__chip--under-50 { background: var(--tnx-sun); color: var(--tnx-on-accent); }

.tnx-pick { max-width: 520px; margin-top: 30px; background: var(--tnx-surface); border: var(--tnx-border); border-radius: var(--tnx-radius); box-shadow: 5px 5px 0 var(--tnx-ink); overflow: hidden; }
.tnx-pick__bar { display: flex; align-items: center; gap: 10px; padding: 7px 12px; background: var(--tnx-night); color: var(--tnx-lime); font-family: var(--tnx-mono); font-size: .8125rem; font-weight: 700; line-height: 1.2; }
.tnx-pick__label { text-transform: uppercase; letter-spacing: .05em; }
.tnx-pick__date { margin-left: auto; color: #b9c6c2; font-weight: 500; }
.tnx-pick__body { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 16px; align-items: start; padding: 16px 16px 4px; }
.tnx-pick__media { display: block; aspect-ratio: 1; padding: 6px; background: #fff; border: var(--tnx-border); border-radius: 8px; box-shadow: 3px 3px 0 var(--tnx-pink); }
.tnx-pick__media img { width: 100%; height: 100%; object-fit: contain; display: block; }
.tnx-pick__name { margin: 2px 0 6px; font-size: 1.0625rem; font-weight: 800; line-height: 1.3; }
.tnx-pick__name a { color: var(--tnx-ink); text-decoration: none; }
.tnx-pick__name a:hover { text-decoration: underline; text-decoration-color: var(--tnx-lime); text-decoration-thickness: 3px; }
.tnx-pick__verdict { margin: 0; color: var(--tnx-text); font-size: .9375rem; line-height: 1.5; }
.tnx-pick__verdict strong { color: var(--tnx-ink); }
.tnx-pick__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding: 14px 16px 16px; }
.tnx-pick__cta.tnx-button { min-height: 44px; padding: 0 18px; font-size: .9375rem; box-shadow: 3px 3px 0 var(--tnx-lime); }
.tnx-pick__cta.tnx-button:hover { box-shadow: 5px 5px 0 var(--tnx-lime); color: #fff; }
:root[data-theme="dark"] .tnx-pick__cta.tnx-button { box-shadow: 3px 3px 0 var(--tnx-pink); }
.tnx-pick__more { font-size: .9375rem; }
:root[data-theme="dark"] .tnx-pick__bar { background: #0d1719; border-bottom: 1px solid #2a3f44; }
:root[data-theme="dark"] .tnx-pick__media { background: #fff; }

/* Blinking terminal cursor after the headline */
.tnx-hero h1::after { content: ""; display: inline-block; width: .45em; height: .74em; margin-left: .12em; vertical-align: -.04em; background: var(--tnx-pink); box-shadow: .08em .08em 0 var(--tnx-ink); animation: tnx-cursor 1.1s steps(1) infinite; }
@keyframes tnx-cursor { 0%, 55% { opacity: 1; } 56%, 100% { opacity: 0; } }

/* Gentle wobble on the New drops sticker */
.tnx-hero .tnx-sticker { transform-origin: 30% 60%; animation: tnx-sticker-wobble 5s ease-in-out infinite; }
@keyframes tnx-sticker-wobble { 0%, 70%, 100% { transform: rotate(-3deg); } 76% { transform: rotate(2deg); } 82% { transform: rotate(-5deg); } 88% { transform: rotate(0deg); } 94% { transform: rotate(-3.5deg); } }

@media (max-width: 600px) {
  .tnx-quick { margin-top: 22px; }
  .tnx-quick__label { width: 100%; }
  .tnx-quick__list { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .tnx-quick__chip { width: 100%; justify-content: center; min-height: 40px; }
  .tnx-pick { margin-top: 26px; }
  .tnx-pick__body { grid-template-columns: 88px minmax(0, 1fr); gap: 14px; padding: 14px 14px 2px; }
  .tnx-pick__actions { padding: 14px; }
  .tnx-pick__cta.tnx-button { width: 100%; }
  .tnx-pick__more { margin: 0 auto; }
}
@media (prefers-reduced-motion: reduce) {
  .tnx-hero h1::after, .tnx-hero .tnx-sticker { animation: none !important; }
  .tnx-hero .tnx-sticker { transform: rotate(-3deg); }
  .tnx-quick__chip { transition: none; }
}
/* === end TNX hero extras v1 === */

/* === TNX newsletter card v1 ===
   Turns the footer newsletter block (.tnx-footer__news) into a stand-out card.
   CSS only; append after the existing footer + form blocks. */
.tnx-footer--v2 .tnx-footer__news {
  position: relative;
  align-self: start;
  padding: 34px 24px 24px;
  background: #213539;
  border: 3px solid var(--tnx-lime, #d1e66a);
  border-radius: 14px;
  box-shadow: 6px 6px 0 var(--tnx-pink, #ff7ac6);
  color: #c9d5d2;
}
/* Pink sticker badge (decorative pseudo-element, not read as content by most AT) */
.tnx-footer--v2 .tnx-footer__news::before {
  content: "FREE WEEKLY";
  position: absolute;
  top: -15px;
  right: 18px;
  padding: 5px 11px;
  background: var(--tnx-pink, #ff7ac6);
  color: var(--tnx-night, #172428);
  border: 2px solid var(--tnx-night, #172428);
  border-radius: 6px;
  box-shadow: 3px 3px 0 var(--tnx-night, #172428);
  font-family: var(--tnx-mono, ui-monospace, monospace);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1.2;
  white-space: nowrap;
  transform: rotate(4deg);
  pointer-events: none;
}
.tnx-footer--v2 .tnx-footer__news h2 {
  margin: 0 0 10px;
  color: var(--tnx-lime, #d1e66a);
  font-size: 1.3rem;
  line-height: 1.25;
}
.tnx-footer--v2 .tnx-footer__news > p {
  margin: 0 0 18px;
  color: #dbe4e1;
  font-size: .975rem;
  line-height: 1.55;
}
.tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_form_paragraph { color: #9fb0ac; }
/* Narrow desktop column (4-col footer): stack the form inside the card */
@container (max-width: 300px) {
  .tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_paragraph:has(#form_first_name_1),
  .tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 .mailpoet_paragraph:has(.mailpoet_submit) { flex: 1 1 100%; }
  .tnx-footer--v2 .tnx-footer__news #mailpoet_form_1 input.mailpoet_submit { width: 100% !important; }
}
@media (max-width: 600px) {
  .tnx-footer--v2 .tnx-footer__news {
    margin: 8px 6px 6px 0;   /* room for the sticker and the offset shadow */
    padding: 32px 18px 20px;
  }
  .tnx-footer--v2 .tnx-footer__news h2 { font-size: 1.25rem; }
}

/* === TNX card verdict v1 === */
body.tnx-has-woocommerce .tnx-main ul.products li.product .tnx-card-verdict { margin: 0; padding: 8px 14px 0; color: var(--tnx-text); font-size: .875rem; line-height: 1.45; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
body.tnx-has-woocommerce .tnx-main ul.products li.product .tnx-card-verdict::before { content: "Verdict"; display: inline-block; margin-right: 6px; padding: 1px 6px; background: var(--tnx-lime); border: 1.5px solid var(--tnx-ink); border-radius: 4px; color: var(--tnx-on-accent); font-family: var(--tnx-mono); font-size: .6875rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; vertical-align: 1px; }
body.tnx-has-woocommerce .tnx-main ul.products li.product .button { margin-top: auto; }
@media (max-width: 600px) {
  body.tnx-has-woocommerce .tnx-main ul.products li.product .tnx-card-verdict { padding: 6px 12px 0; font-size: .8125rem; line-height: 1.4; }
  body.tnx-has-woocommerce .tnx-main ul.products li.product .tnx-card-verdict::before { content: "\2713"; padding: 0 4px; margin-right: 4px; }
}
/* === end TNX card verdict v1 === */


/* === TNX archive chips v1 (builds on the hero .tnx-quick styles already live) === */
.tnx-quick--archive { margin: 18px 0 26px; }
.tnx-quick--archive .tnx-quick__chip.is-current { background: var(--tnx-night); border-color: var(--tnx-night); box-shadow: 2px 2px 0 var(--tnx-lime); color: #fff; }
.tnx-quick--archive .tnx-quick__chip.is-current:hover { background: var(--tnx-night); color: #fff; }
:root[data-theme="dark"] .tnx-quick--archive .tnx-quick__chip.is-current { background: var(--tnx-lime); border-color: var(--tnx-ink); color: var(--tnx-on-accent); box-shadow: 2px 2px 0 var(--tnx-pink); }
@media (max-width: 600px) {
  .tnx-quick--archive { flex-wrap: nowrap; gap: 10px; margin: 14px calc(var(--tnx-gutter) * -1) 20px; padding: 2px var(--tnx-gutter) 6px; overflow-x: auto; scrollbar-width: none; }
  .tnx-quick--archive::-webkit-scrollbar { display: none; }
  .tnx-quick--archive .tnx-quick__label { width: auto; flex: none; }
  .tnx-quick--archive .tnx-quick__list { width: auto; display: flex; flex-wrap: nowrap; gap: 8px; }
  .tnx-quick--archive .tnx-quick__chip { width: auto; min-height: 38px; padding: 0 14px; white-space: nowrap; }
  .tnx-quick--archive .tnx-quick__list li:last-child { padding-right: var(--tnx-gutter); }
}
/* === end TNX archive chips v1 === */


/* === TNX read time + read next v1 === */
.tnx-readtime { display: inline-flex; align-items: center; gap: 6px; }
.tnx-readtime::before { content: ""; width: 8px; height: 8px; background: var(--tnx-lime); border: 1.5px solid var(--tnx-ink); }
.tnx-readnext { margin: 0 0 36px; box-shadow: 5px 5px 0 var(--tnx-ink); }
.tnx-readnext__link { display: grid; grid-template-columns: 220px minmax(0, 1fr); color: var(--tnx-ink); text-decoration: none; }
.tnx-readnext__image { display: block; border-right: var(--tnx-border); background: var(--tnx-lime); }
.tnx-readnext__image img { width: 100%; height: 100%; min-height: 160px; display: block; object-fit: cover; }
.tnx-readnext__body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; }
.tnx-readnext__label { align-self: flex-start; padding: 2px 10px; background: var(--tnx-pink); border: var(--tnx-border); border-radius: 6px; color: var(--tnx-on-accent); font-family: var(--tnx-mono); font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; transform: rotate(-2deg); }
.tnx-readnext__title { margin-top: 4px; font-size: 1.1875rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.25; }
.tnx-readnext__excerpt { color: var(--tnx-text); font-size: .9375rem; line-height: 1.5; }
.tnx-readnext__cta { margin-top: 4px; font-family: var(--tnx-mono); font-size: .875rem; font-weight: 800; }
.tnx-readnext__link:hover .tnx-readnext__title { text-decoration: underline; text-decoration-color: var(--tnx-pink); text-decoration-thickness: 3px; }
.tnx-readnext__link:hover .tnx-readnext__cta { color: var(--tnx-moss); }
/* When the card shows the same post as the Previous link, hide that duplicate link */
.tnx-readnext--dup ~ .post-navigation .nav-previous { display: none; }
.tnx-readnext--dup ~ .post-navigation .nav-links { justify-content: flex-end; }
@media (max-width: 600px) {
  .tnx-readnext__link { grid-template-columns: 1fr; }
  .tnx-readnext__image { aspect-ratio: 16 / 9; border-right: 0; border-bottom: var(--tnx-border); }
  .tnx-readnext__image img { min-height: 0; }
  .tnx-readnext__title { font-size: 1.125rem; }
}
/* === end TNX read time + read next v1 === */


/* === TNX trust strip v1 === */
.tnx-trust { max-width: var(--tnx-width); margin: 0 auto; padding: 44px var(--tnx-gutter) 8px; }
.tnx-trust__title { display: inline-block; margin: 0 0 18px; color: var(--tnx-muted); font-family: var(--tnx-mono); font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.tnx-trust__title::before { content: "> "; color: var(--tnx-moss); }
.tnx-trust__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.tnx-trust__item { --c: var(--tnx-lime); display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; background: var(--tnx-surface); border: var(--tnx-border); border-radius: var(--tnx-radius); box-shadow: 4px 4px 0 var(--tnx-ink); }
.tnx-trust__item:nth-child(2) { --c: var(--tnx-pink); }
.tnx-trust__item:nth-child(3) { --c: var(--tnx-cyan); }
.tnx-trust__icon { flex: none; width: 42px; height: 42px; display: grid; place-items: center; background: var(--c); border: var(--tnx-border); border-radius: 8px; box-shadow: 2px 2px 0 var(--tnx-ink); color: var(--tnx-on-accent); }
.tnx-trust__text { color: var(--tnx-text); font-size: .9375rem; line-height: 1.45; }
.tnx-trust__text strong { display: block; margin-bottom: 2px; color: var(--tnx-ink); font-size: 1.0625rem; font-weight: 800; letter-spacing: -.01em; }
@media (max-width: 800px) {
  .tnx-trust__list { grid-template-columns: 1fr; gap: 0; background: var(--tnx-surface); border: var(--tnx-border); border-radius: var(--tnx-radius); box-shadow: 4px 4px 0 var(--tnx-ink); overflow: hidden; }
  .tnx-trust__item { border: 0; border-radius: 0; box-shadow: none; }
  .tnx-trust__item + .tnx-trust__item { border-top: 2px dashed var(--tnx-line); }
}
@media (max-width: 600px) {
  .tnx-trust { padding-top: 36px; padding-bottom: 0; }
  .tnx-trust__item { padding: 14px; gap: 12px; }
  .tnx-trust__icon { width: 38px; height: 38px; }
}
/* === end TNX trust strip v1 === */


/* === TNX tidy v1 === */
/* 1) Post tag pills: see "TNX fix v1" (1) below (the stronger rule; the tidy v1 copy was removed in consolidation) */

/* 2) "Check price on Amazon" on one line in 2-column phone grids (text unchanged) */
@media (max-width: 600px) {
  body.tnx-has-woocommerce .tnx-main ul.products:not(.tnx-carousel__track) li.product .button {
    align-self: stretch; width: auto; min-height: 40px; margin: 12px 8px 10px; padding: 0 4px;
    justify-content: center; text-align: center; white-space: nowrap;
    font-size: clamp(.6875rem, 3.05vw, .8125rem); letter-spacing: -.01em; line-height: 1.1;
  }
}
/* === end TNX tidy v1 === */

/* === TNX fix v1 === */
/* 1) Post tag pills: whole pills wrap as units with a gap (stronger, theme-independent selectors) */
.tnx-article .tnx-article__footer .tnx-article__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 8px; }
.tnx-article .tnx-article__footer .tnx-article__tags a { display: inline-flex; align-items: center; flex: 0 0 auto; max-width: 100%; margin: 0; padding: 4px 10px; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; line-height: 1.3; -webkit-box-decoration-break: clone; box-decoration-break: clone; }

/* 2) Star ratings on product cards: hidden.
   On the homepage, WooCommerce's star styles are scoped to body.woocommerce, so the rating fell back to plain
   "Rated 5.00 out of 5" text. The only rating on the site is a single "Admin" test review on the G305, so the cards
   are cleaner (and more honest) without stars; the verdict line does that job. Screen readers still hear aria-label. */
body.tnx-has-woocommerce .tnx-main ul.products li.product .star-rating { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; float: none; }

/* Alternative for later (real reviews): replace the block above with this to draw proper stars everywhere.
body.tnx-has-woocommerce .tnx-main ul.products li.product .star-rating { position: relative; float: none; display: block; overflow: hidden; width: 5.4em; height: 1em; margin: 8px 14px 0; font-family: WooCommerce; font-size: .875rem; line-height: 1; color: var(--tnx-ink); }
body.tnx-has-woocommerce .tnx-main ul.products li.product .star-rating::before { content: "\73\73\73\73\73"; position: absolute; top: 0; left: 0; opacity: .25; }
body.tnx-has-woocommerce .tnx-main ul.products li.product .star-rating span { position: absolute; top: 0; left: 0; overflow: hidden; padding-top: 1.5em; }
body.tnx-has-woocommerce .tnx-main ul.products li.product .star-rating span::before { content: "\53\53\53\53\53"; position: absolute; top: 0; left: 0; color: var(--tnx-ink); }
*/
/* === end TNX fix v1 === */

/* === TNX footer nav card v1 ===
   One card behind the brand block + Explore + Company columns.
   No shared wrapper exists in the markup, so the card is drawn by .tnx-footer__main::before,
   placed as a grid item spanning those cells; the items get explicit grid positions so they sit on top.
   Append after "TNX newsletter card v1". */
.tnx-footer--v2 .tnx-footer__main::before {
  content: "";
  grid-column: 1 / 4;
  grid-row: 1;
  z-index: 0;
  background: #213539;
  border: 3px solid var(--tnx-cyan, #5ee0f5);
  border-radius: 14px;
  box-shadow: 6px 6px 0 var(--tnx-cyan, #5ee0f5);
  pointer-events: none;
}
.tnx-footer--v2 .tnx-footer__brand,
.tnx-footer--v2 .tnx-footer__col { position: relative; z-index: 1; padding-top: 30px; padding-bottom: 30px; }
.tnx-footer--v2 .tnx-footer__brand { grid-column: 1; grid-row: 1; padding-left: 28px; }
.tnx-footer--v2 .tnx-footer__col:nth-of-type(1) { grid-column: 2; grid-row: 1; }
.tnx-footer--v2 .tnx-footer__col:nth-of-type(2) { grid-column: 3; grid-row: 1; padding-right: 28px; }
.tnx-footer--v2 .tnx-footer__news { grid-column: 4; grid-row: 1 / 3; position: relative; z-index: 1; }
/* Desktop: row 1 hugs the links; the taller newsletter card spills into the flexible row 2,
   so the nav card isn't stretched to the newsletter card's height */
@media (min-width: 1001px) {
  .tnx-footer--v2 .tnx-footer__main { grid-template-rows: auto 1fr; row-gap: 0; }
}
.tnx-footer--v2 .tnx-footer__brand p { color: #dbe4e1; }

/* Tablet + mobile: card spans the brand row and the two link columns below it */
@media (max-width: 1000px) {
  .tnx-footer--v2 .tnx-footer__main::before { grid-column: 1 / -1; grid-row: 1 / 3; }
  .tnx-footer--v2 .tnx-footer__brand { grid-column: 1 / -1; grid-row: 1; padding: 28px 24px 0; }
  .tnx-footer--v2 .tnx-footer__col:nth-of-type(1) { grid-column: 1; grid-row: 2; padding: 0 0 26px 24px; }
  .tnx-footer--v2 .tnx-footer__col:nth-of-type(2) { grid-column: 2; grid-row: 2; padding: 0 24px 26px 0; }
  .tnx-footer--v2 .tnx-footer__news { grid-column: 1 / -1; grid-row: 3; }
  /* dashed divider between brand and links, inset to the card padding */
  .tnx-footer--v2 .tnx-footer__brand::after {
    content: ""; position: absolute; left: 24px; right: 24px; bottom: -17px;
    border-top: 2px dashed #3a5459;
  }
}
@media (max-width: 600px) {
  .tnx-footer--v2 .tnx-footer__main::before { margin: 0 6px 0 0; }   /* room for the offset shadow, matches the newsletter card */
  .tnx-footer--v2 .tnx-footer__brand { padding: 26px 24px 0 18px; }
  .tnx-footer--v2 .tnx-footer__brand::after { left: 18px; right: 24px; }
  .tnx-footer--v2 .tnx-footer__col:nth-of-type(1) { padding: 0 0 22px 18px; }
  .tnx-footer--v2 .tnx-footer__col:nth-of-type(2) { padding: 0 24px 22px 0; }
}
/* === end TNX footer nav card v1 === */

/* === TNX landing cards v1 ===
   One card system for the homepage, matching the footer cards (3px border, 14px radius, hard 6px accent shadow).
   Scoped to body.home so Shop/category/post pages are untouched. CSS only. Append at the END of Additional CSS.
   Accent rhythm (top to bottom): hero pick = pink, north.exe = cyan, trust = lime/pink/cyan (sun frame on phones),
   carousels cycle lime > pink > cyan > sun per card (the theme's existing --c order), statement = ink on pink,
   footer = cyan + lime/pink (already live). Section headings: mono "> 0n /" kicker + one heading-chip style. */
:root {
  --tnx-card-r: 14px;
  --tnx-card-bw: 3px;
  --tnx-card-off: 6px;
  --tnx-card-pad: 22px;
  --tnx-card-navy: #213539;
  --tnx-card-ink-border: var(--tnx-card-bw) solid var(--tnx-ink);
  --tnx-label-font: var(--tnx-mono);
}

/* ---------- 1. Light card (white/off-white, ink border, accent shadow) ---------- */
.home .tnx-pick,
.home .tnx-hero__window,
.home .tnx-trust__item,
.home .tnx-category-card,
body.tnx-has-woocommerce.home .tnx-main .tnx-products ul.products li.product {
  border: var(--tnx-card-ink-border);
  border-radius: var(--tnx-card-r);
  box-shadow: var(--tnx-card-off) var(--tnx-card-off) 0 var(--a, var(--tnx-ink));
}
.home .tnx-pick { --a: var(--tnx-pink); }
.home .tnx-hero__window { --a: var(--tnx-cyan); }
.home .tnx-trust__item { --a: var(--c, var(--tnx-lime)); }
.home .tnx-category-track > li { --a: var(--c); }
.home .tnx-products ul.products li.product { --a: var(--c); }
.home .tnx-products ul.products li.product:nth-child(4n+1) { --a: var(--tnx-ink); } /* lime-on-lime band: ink instead */

/* Hover lift (same on every interactive card) */
.home .tnx-category-card:hover,
body.tnx-has-woocommerce.home .tnx-main .tnx-products ul.products li.product:hover {
  transform: translate(-2px, -2px);
  box-shadow: calc(var(--tnx-card-off) + 2px) calc(var(--tnx-card-off) + 2px) 0 var(--a, var(--tnx-ink));
}

/* Hero details */
.home .tnx-pick__bar { padding-block: 9px; }
.home .tnx-pick__media { border-radius: 10px; box-shadow: 3px 3px 0 var(--tnx-cyan); }
.home .tnx-pick__more, .home .tnx-pick__cta.tnx-button { min-height: 44px; }
.home .tnx-hero__window .tnx-window__bar { padding-block: 10px; }
.home .tnx-hero .tnx-quick__chip { min-height: 44px; padding-inline: 16px; }

/* Category cards: body spacing to the card pad, count as a small mono pill */
.home .tnx-category-card__name { padding: 16px 18px 0; }
.home .tnx-category-card__count { padding: 4px 18px 18px; }

/* Product cards (Featured, lime band) */
body.tnx-has-woocommerce.home .tnx-main .tnx-products ul.products li.product .woocommerce-loop-product__title { padding: 16px 18px 0; }
body.tnx-has-woocommerce.home .tnx-main .tnx-products ul.products li.product .button { margin: 16px 18px 18px; min-height: 44px; }

/* ---------- 2. Trust strip ---------- */
.home .tnx-trust__item { padding: var(--tnx-card-pad); }
@media (max-width: 800px) {
  .home .tnx-trust__list { border: var(--tnx-card-ink-border); border-radius: var(--tnx-card-r); box-shadow: var(--tnx-card-off) var(--tnx-card-off) 0 var(--tnx-sun); margin-right: var(--tnx-card-off); }
  .home .tnx-trust__item { border: 0; border-radius: 0; box-shadow: none; padding: 18px; }
}

/* ---------- 3. Dark card (navy, accent border + shadow) - journal band ---------- */
.home .tnx-band--ink .tnx-journal .tnx-journal__track .tnx-post-card {
  --a: var(--c, var(--tnx-lime));
  background: var(--tnx-card-navy);
  border: var(--tnx-card-bw) solid var(--a);
  border-radius: var(--tnx-card-r);
  box-shadow: var(--tnx-card-off) var(--tnx-card-off) 0 var(--a);
  color: #dbe4e1;
}
/* keeps the approved light title bar (#eef5cc) from "journal slider v1"; only the bar's bottom rule follows the accent */
.home .tnx-band--ink .tnx-journal .tnx-journal__track .tnx-post-card .tnx-window__bar { border-bottom: var(--tnx-card-bw) solid var(--tnx-night); }
.home .tnx-band--ink .tnx-post-card__image { border-bottom: var(--tnx-card-bw) solid var(--a); }
.home .tnx-band--ink .tnx-post-card__body { padding: 8px var(--tnx-card-pad) var(--tnx-card-pad); }
.home .tnx-band--ink .tnx-post-card .tnx-meta { color: #9fb0ac; }
.home .tnx-band--ink .tnx-post-card .tnx-meta > :first-child { color: var(--a); }
.home .tnx-band--ink .tnx-post-card h3 a { color: #fff; }
.home .tnx-band--ink .tnx-post-card h3 a:hover { color: #fff; text-decoration-color: var(--a); }
.home .tnx-band--ink .tnx-post-card p { color: #c9d5d2; }
.home .tnx-band--ink .tnx-arrow { box-shadow: 3px 3px 0 var(--tnx-lime); }

/* ---------- 4. Section headings: one label system ---------- */
.home .tnx-section__heading::before {
  flex: 1 0 100%; order: -1; margin-bottom: -6px;
  color: var(--tnx-muted); font-family: var(--tnx-label-font); font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.home .tnx-categories .tnx-section__heading::before { content: "> 01 / Browse"; }
.home .tnx-products .tnx-section__heading::before { content: "> 02 / Hand-picked"; color: var(--tnx-on-accent); opacity: .75; }
.home .tnx-journal .tnx-section__heading::before { content: "> 03 / Read"; color: #9fb0ac; }
.home .tnx-section__heading h2 {
  --sa: var(--tnx-cyan);
  padding: 7px 16px 9px;
  background: var(--tnx-card-navy);
  color: #fff;
  border: var(--tnx-card-bw) solid var(--tnx-ink);
  border-radius: 8px;
  box-shadow: 4px 4px 0 var(--sa);
  transform: rotate(-1deg);
}
.home .tnx-band--lime .tnx-section__heading h2 { --sa: var(--tnx-pink); }
.home .tnx-band--ink .tnx-section__heading h2 { --sa: var(--tnx-lime); background: var(--tnx-card-navy); color: var(--tnx-lime); border-color: var(--tnx-lime); }
.home .tnx-trust__title::before { content: "> 00 / "; }
.home .tnx-section__tools .tnx-text-link { min-height: 44px; }

/* ---------- 5. Statement band: a card with a sticker ---------- */
.home .tnx-statement p {
  position: relative;
  max-width: 19em;
  padding: 30px 28px 26px;
  background: var(--tnx-paper);
  color: var(--tnx-ink);
  border: var(--tnx-card-ink-border);
  border-radius: var(--tnx-card-r);
  box-shadow: var(--tnx-card-off) var(--tnx-card-off) 0 var(--tnx-ink);
}

.home .tnx-statement p::before {
  content: "OUR TAKE";
  position: absolute; top: -15px; left: 22px;
  padding: 5px 11px;
  background: var(--tnx-lime); color: var(--tnx-on-accent);
  border: 2px solid var(--tnx-ink); border-radius: 6px; box-shadow: 3px 3px 0 var(--tnx-ink);
  font-family: var(--tnx-mono); font-size: .75rem; font-weight: 800; letter-spacing: .06em; line-height: 1.2;
  transform: rotate(-3deg);
}

/* ---------- 6. Phones ---------- */
@media (max-width: 600px) {
  :root { --tnx-card-pad: 18px; }
  .home .tnx-pick, .home .tnx-statement p { margin-right: var(--tnx-card-off); }
  .home .tnx-statement { padding-block: 56px; }
  .home .tnx-statement p { padding: 28px 20px 22px; font-size: 1.6rem; }
  .home .tnx-section__heading::before { font-size: .75rem; }
}

/* Dark mode: navy cards stay navy; light cards follow the theme surface */
:root[data-theme="dark"] .home .tnx-statement p { background: var(--tnx-surface); }

@media (prefers-reduced-motion: reduce) {
  .home .tnx-category-card:hover,
  body.tnx-has-woocommerce.home .tnx-main .tnx-products ul.products li.product:hover { transform: none; }
}
/* === end TNX landing cards v1 === */

/* === TNX fix v2 (verdict check mark) folded into "TNX card verdict v1" above: content "\2713". === */
/* === end TNX fix v2 === */

/* TNX card fix v3 */
/* === TNX card fix v3: product cards line up, titles clamp, Amazon button never clips ===
   Applies to every WooCommerce product grid (shop, categories, tags) and the homepage carousels.
   Why buttons were uneven: "TNX tidy v1" (phones) and "TNX landing cards v1" (homepage) set the button
   with a margin shorthand, which reset the margin-top:auto from "TNX card verdict v1".
   Leaves the verdict line ("TNX card verdict v1") and hidden star ratings ("TNX fix v1") as they are. */

/* 1) Card = flex column, button pinned to the bottom so every button in a row lines up */
body.tnx-has-woocommerce .tnx-main ul.products li.product.type-product {
  display: flex; flex-direction: column;
}
body.tnx-has-woocommerce .tnx-main ul.products li.product.type-product > a.woocommerce-LoopProduct-link {
  display: block; flex: 0 0 auto;
}
/* keep the old minimum gap above the button on the tallest card in a row (was the button's own margin-top) */
body.tnx-has-woocommerce .tnx-main ul.products.tnx-carousel__track li.product.type-product > a.woocommerce-LoopProduct-link { margin-bottom: 16px; }
body.tnx-has-woocommerce .tnx-main ul.products li.product.type-product .button.product_type_external {
  margin-top: auto;        /* longhand only: side and bottom margins from earlier blocks are kept */
  max-width: 100%; box-sizing: border-box;
}

/* 2) Titles: at most 3 lines, then an ellipsis (full name stays on the product page and in the link) */
body.tnx-has-woocommerce .tnx-main ul.products li.product.type-product .woocommerce-loop-product__title {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3;
  overflow: hidden; text-overflow: ellipsis; overflow-wrap: anywhere;
  padding-bottom: 0;
}

@media (max-width: 600px) {
  body.tnx-has-woocommerce .tnx-main ul.products li.product.type-product .woocommerce-loop-product__title {
    font-size: .9375rem; line-height: 1.3;   /* 15px, was 17px */
  }
  body.tnx-has-woocommerce .tnx-main ul.products:not(.tnx-carousel__track) li.product.type-product > a.woocommerce-LoopProduct-link { margin-bottom: 12px; }

  /* 3) Phone button: never clips. Replaces the one-line ~11.9px rule from "TNX tidy v1"
        on the 2-column grids with a centred label that wraps to 2 lines at 13px. */
  body.tnx-has-woocommerce .tnx-main ul.products:not(.tnx-carousel__track) li.product.type-product .button.product_type_external {
    align-self: stretch; width: auto; max-width: 100%; box-sizing: border-box;
    min-height: 44px; padding: 6px 8px;
    display: flex; align-items: center; justify-content: center; text-align: center;
    white-space: normal; overflow-wrap: break-word; overflow: visible; text-overflow: clip;
    font-size: .8125rem; line-height: 1.2; letter-spacing: 0;   /* 13px */
  }
  /* Homepage carousel cards are wider and already fit on one line; just make sure they can wrap too */
  body.tnx-has-woocommerce .tnx-main ul.products.tnx-carousel__track li.product.type-product .button.product_type_external {
    white-space: normal; text-align: center; box-sizing: border-box;
  }
}
/* === end TNX card fix v3 === */

/* === TNX share buttons v1 ===
   Pairs with the share-buttons.php snippet. Compact row (under title / product summary)
   and "Share this" card (end of posts). Append to Additional CSS. */
.tnx-share {
  --tnx-share-ink: var(--tnx-ink, #172428);
  --tnx-share-lime: var(--tnx-lime, #d1e66a);
  font-family: var(--tnx-font, inherit);
}
.tnx-share__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
}
.tnx-share .tnx-share__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: 0 14px;
  border: 2px solid var(--tnx-share-ink);
  border-radius: 10px;
  background: #fcfdfb;
  color: var(--tnx-share-ink);
  font: 700 .875rem/1.1 var(--tnx-label-font, var(--tnx-font, inherit));
  letter-spacing: .01em;
  text-decoration: none;
  box-shadow: 3px 3px 0 var(--tnx-share-ink);
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease;
  -webkit-appearance: none;
  appearance: none;
}
.tnx-share .tnx-share__btn[hidden] { display: none; }
.tnx-share .tnx-share__btn:hover {
  background: var(--tnx-share-lime);
  color: var(--tnx-share-ink);
  transform: translate(-1px, -1px);
  box-shadow: 4px 4px 0 var(--tnx-share-ink);
  text-decoration: none;
}
.tnx-share .tnx-share__btn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--tnx-share-ink); }
.tnx-share .tnx-share__btn:focus-visible {
  outline: 3px solid var(--tnx-pink, #ff7ac6);
  outline-offset: 3px;
}
.tnx-share .tnx-share__btn.is-copied { background: var(--tnx-share-lime); }
.tnx-share .tnx-share__native { background: var(--tnx-share-lime); }

/* Compact row */
.tnx-share--compact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-top: 0;
  margin-bottom: 1.5rem;
}
.tnx-share--compact .tnx-share__label {
  font: 800 .75rem/1 var(--tnx-mono, ui-monospace, monospace);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tnx-share-ink);
}
.tnx-share--compact .tnx-share__btn { min-height: 44px; padding: 0 12px; font-size: .8125rem; }
.summary .tnx-share--compact { margin-top: 1.25rem; margin-bottom: 0; }

/* "Share this" card */
.tnx-share--card {
  margin-top: 2.5rem;
  margin-bottom: 1rem;
  padding: 22px;
  background: var(--tnx-card-navy, #213539);
  border: 3px solid var(--tnx-share-lime);
  border-radius: 14px;
  box-shadow: 6px 6px 0 var(--tnx-pink, #ff7ac6);
  color: #c9d5d2;
}
.tnx-share--card .tnx-share__title {
  margin: 0 0 4px;
  color: var(--tnx-share-lime);
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.2;
}
.tnx-share--card .tnx-share__sub { margin: 0 0 16px; font-size: .95rem; color: #c9d5d2; }
.tnx-share--card .tnx-share__btn {
  border-color: var(--tnx-share-lime);
  background: transparent;
  color: #f4f7ef;
  box-shadow: 3px 3px 0 var(--tnx-share-lime);
}
.tnx-share--card .tnx-share__btn:hover,
.tnx-share--card .tnx-share__btn.is-copied,
.tnx-share--card .tnx-share__native {
  background: var(--tnx-share-lime);
  color: var(--tnx-share-ink);
}

@media (max-width: 600px) {
  .tnx-share--card { padding: 18px; }
  .tnx-share--compact .tnx-share__btn { padding: 0 10px; }
  .tnx-share--card .tnx-share__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tnx-share--card .tnx-share__btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .tnx-share .tnx-share__btn { transition: none; }
  .tnx-share .tnx-share__btn:hover, .tnx-share .tnx-share__btn:active { transform: none; }
}
/* === end TNX share buttons v1 === */

/* === TNX wpDiscuz skin v1 (DRAFT: check selectors after install, wpDiscuz 7.6.x) ===
   Set wpDiscuz > Settings > Styles and Colors first (see comments-plan.md),
   then append this to Additional CSS. Scoped to #wpdcom so nothing else changes. */
/* (dead "#comments.tnx-comments #wpdcom" card rule removed in consolidation: #comments never has .tnx-comments) */
/* Thread header: "N comments" + sort/filter buttons */
#wpdcom .wpd-thread-head { border-bottom: 3px solid var(--tnx-ink, #172428); }
#wpdcom .wpd-thread-head .wpd-thread-info {
  border-bottom-color: var(--tnx-lime, #d1e66a);
  color: var(--tnx-ink, #172428);
  font-weight: 900;
  letter-spacing: -.02em;
}
#wpdcom .wpd-thread-filter .wpd-filter,
#wpdcom .wpdiscuz-sort-button {
  font-family: var(--tnx-mono, ui-monospace, monospace);
  font-size: .8125rem;
}
#wpdcom .wpd-thread-filter .wpd-filter.wpdf-active,
#wpdcom .wpdiscuz-sort-button-active {
  color: var(--tnx-ink, #172428);
  border-bottom-color: var(--tnx-lime, #d1e66a);
}
/* Form */
#wpdcom .wpd-form-wrap .wpd-form-head { border-bottom-color: var(--tnx-ink, #172428); }
#wpdcom .wpd-field-textarea .wpdiscuz-textarea-wrap,
#wpdcom .ql-container,
#wpdcom .ql-toolbar,
#wpdcom .wpd-field-text input,
#wpdcom .wpd-form .wpdiscuz-item input[type="text"],
#wpdcom .wpd-form .wpdiscuz-item input[type="email"],
#wpdcom .wpd-form .wpdiscuz-item input[type="url"] {
  border: 2px solid var(--tnx-ink, #172428) !important;
  border-radius: 10px;
  background: #f4f7ef;
}
#wpdcom .wpd-form input:focus-visible,
#wpdcom .wpd-form textarea:focus-visible,
#wpdcom .ql-editor:focus-visible {
  outline: 3px solid var(--tnx-pink, #ff7ac6);
  outline-offset: 2px;
}
#wpdcom .wpd-prim-button,
#wpdcom input.wc_comm_submit {
  min-height: 44px;
  padding: 0 20px;
  border: 2px solid var(--tnx-ink, #172428) !important;
  border-radius: 10px;
  background: var(--tnx-lime, #d1e66a) !important;
  color: var(--tnx-ink, #172428) !important;
  font-weight: 800;
  box-shadow: 3px 3px 0 var(--tnx-ink, #172428);
  cursor: pointer;
}
#wpdcom .wpd-prim-button:hover,
#wpdcom input.wc_comm_submit:hover { transform: translate(-1px, -1px); box-shadow: 4px 4px 0 var(--tnx-ink, #172428); }
#wpdcom .wpd-prim-button:focus-visible,
#wpdcom input.wc_comm_submit:focus-visible { outline: 3px solid var(--tnx-pink, #ff7ac6); outline-offset: 3px; }
/* Comments */
#wpdcom .wpd-comment .wpd-comment-wrap { padding-top: 14px; }
#wpdcom .wpd-comment-author,
#wpdcom .wpd-comment-author a { color: var(--tnx-ink, #172428); font-weight: 800; }
#wpdcom .wpd-comment-text { font-size: 1rem; line-height: 1.65; color: var(--tnx-text, #2a3f44); }
#wpdcom .wpd-comment-text a { color: var(--tnx-moss, #4f7a1f); font-weight: 600; }
#wpdcom .wpd-blog-administrator .wpd-comment-label,
#wpdcom .wpd-blog-post_author .wpd-comment-label {
  background: var(--tnx-pink, #ff7ac6);
  color: var(--tnx-ink, #172428);
  border: 2px solid var(--tnx-ink, #172428);
  border-radius: 6px;
  font-family: var(--tnx-mono, ui-monospace, monospace);
}
#wpdcom .wpd-comment-footer .wpd-vote-up,
#wpdcom .wpd-comment-footer .wpd-vote-down,
#wpdcom .wpd-comment-footer .wpd-reply-button {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
#wpdcom .wpd-vote-up.wpd-up svg,
#wpdcom .wpd-vote-up:hover svg { fill: var(--tnx-moss, #4f7a1f); }
#wpdcom .wpd-reply-button { color: var(--tnx-moss, #4f7a1f); font-weight: 700; }
#wpdcom .wpd-thread-list .wpd-comment .wpd-reply { border-left: 3px solid var(--tnx-lime, #d1e66a); }
/* Stand-alone post rating (stars) */
#wpd-post-rating .wpd-rating-wrap { border: 3px solid var(--tnx-ink, #172428); border-radius: 14px; background: #fcfdfb; }
/* === end TNX wpDiscuz skin v1 === */
/* TNX comment card v1 */
/* Wraps the wpDiscuz area (#comments.comments-area on single posts) in one navy card.
   CSS only; append after "TNX wpDiscuz skin v1". Scoped to body.single-post so
   WooCommerce's own #comments (product reviews) is never touched. */
body.single-post #comments.comments-area {
  --cc-navy: var(--tnx-card-navy, #213539);
  --cc-deep: #172428;
  --cc-line: #3d5559;
  --cc-lime: var(--tnx-lime, #d1e66a);
  --cc-pink: var(--tnx-pink, #ff7ac6);
  --cc-cyan: var(--tnx-cyan, #5ee0f5);
  --cc-paper: #f4f7ef;
  --cc-text: #dbe4e1;
  --cc-muted: #a9b9b5;
  --cc-mono: var(--tnx-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
  position: relative;
  display: flex;
  flex-direction: column;
  max-width: 760px;
  margin: 3.25rem auto 2rem;
  padding: 34px 28px 26px !important; /* wpDiscuz forces #comments padding-left/right:0 !important on small screens */
  background: var(--cc-navy);
  border: 3px solid var(--cc-lime);
  border-radius: 14px;
  box-shadow: 6px 6px 0 var(--cc-cyan);
  color: var(--cc-text);
  box-sizing: border-box;
}
/* Sticker (decorative) */
body.single-post #comments.comments-area::before {
  content: "JOIN THE CHAT";
  position: absolute;
  top: -16px;
  left: 22px;
  padding: 5px 11px;
  background: var(--cc-pink);
  color: var(--cc-deep);
  border: 2px solid var(--cc-deep);
  border-radius: 6px;
  box-shadow: 3px 3px 0 var(--cc-deep);
  font: 800 .75rem/1.2 var(--cc-mono);
  letter-spacing: .06em;
  white-space: nowrap;
  transform: rotate(-3deg);
  pointer-events: none;
}
/* Section label, pulled to the top of the card */
body.single-post #comments.comments-area::after {
  content: "> 04 / Comments";
  order: -1;
  margin: 0 0 6px;
  color: var(--cc-muted);
  font: 700 .8125rem/1.3 var(--cc-mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}
/* The skin's own card rule never matched (#comments has no .tnx-comments), but reset anyway */
body.single-post #comments.comments-area #wpdcom {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  color: var(--cc-text);
}

/* ---------- Heading + Article Rating row ---------- */
body.single-post #comments #wpd-post-rating {
  justify-content: flex-start;
  margin: 0 0 18px;
}
body.single-post #comments #wpd-post-rating::before {
  content: "Have your say";
  flex: 1 0 100%;
  margin: 0 0 14px;
  color: var(--cc-lime);
  font-size: 1.45rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.01em;
}
body.single-post #comments #wpd-post-rating .wpd-rating-wrap {
  width: auto;
  max-width: 100%;
  padding: 8px 14px;
  background: var(--cc-deep);
  border: 2px solid var(--cc-line);
  border-radius: 12px;
  box-shadow: none;
  box-sizing: border-box;
}
body.single-post #comments #wpd-post-rating .wpd-rating-left,
body.single-post #comments #wpd-post-rating .wpd-rating-right { display: none; }
body.single-post #comments #wpd-post-rating .wpd-rating-data {
  width: auto;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 6px 12px;
}
body.single-post #comments #wpd-post-rating .wpd-rating-value {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  background: var(--cc-lime);
  border: 2px solid var(--cc-deep);
  border-radius: 10px;
  box-shadow: 2px 2px 0 var(--cc-pink);
  font-family: var(--cc-mono);
}
body.single-post #comments #wpd-post-rating .wpd-rating-value span { color: var(--cc-deep); font-weight: 800; }
body.single-post #comments #wpd-post-rating .wpd-rating-value .wpdrv { font-size: 18px !important; line-height: 36px !important; }
body.single-post #comments #wpd-post-rating .wpd-rating-value .wpdrc { font-size: 14px !important; line-height: 22px !important; padding-top: 2px !important; }
body.single-post #comments #wpd-post-rating .wpd-rating-value .wpdrt { font-size: 9px !important; line-height: 10px !important; }
body.single-post #comments #wpd-post-rating .wpd-rating-value:hover { background: var(--cc-paper); }
body.single-post #comments #wpd-post-rating .wpd-rating-value:hover .wpdrc,
body.single-post #comments #wpd-post-rating .wpd-rating-value:hover .wpdrt { color: var(--cc-deep) !important; }
body.single-post #comments #wpd-post-rating .wpd-rating-title {
  width: auto;
  margin: 0;
  color: var(--cc-paper);
  font: 700 .8125rem/1.2 var(--cc-mono);
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: nowrap;
  word-break: normal;
}
body.single-post #comments #wpd-post-rating .wpd-rating-stars,
body.single-post #comments #wpd-post-rating .wpd-rate-starts { margin: 0; gap: 2px; }
body.single-post #comments #wpd-post-rating .wpd-rating-stars svg,
body.single-post #comments #wpd-post-rating .wpd-rate-starts svg {
  width: 28px;
  height: 28px;
  margin: 0;
  cursor: pointer;
}
body.single-post #comments #wpd-post-rating .wpd-rating-stars svg .wpd-star,
body.single-post #comments #wpd-post-rating .wpd-rate-starts svg .wpd-star { fill: #5b7377; }
body.single-post #comments #wpd-post-rating .wpd-rating-stars svg .wpd-active { fill: var(--cc-lime); }
body.single-post #comments #wpd-post-rating .wpd-rate-starts:hover svg .wpd-star { fill: var(--cc-lime); }
body.single-post #comments #wpd-post-rating.wpd-not-rated .wpd-rate-starts svg:hover ~ svg .wpd-star { fill: #5b7377; }

/* ---------- Form head: Login ---------- */
body.single-post #comments #wpdcom .wpd-form-head {
  margin: 0 0 4px;
  padding: 0 0 6px;
  border-bottom: 2px solid var(--cc-line);
}
body.single-post #comments #wpdcom .wpd-auth .wpd-login { font-size: .9375rem; }
body.single-post #comments #wpdcom .wpd-auth .wpd-login a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  color: var(--cc-cyan);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
body.single-post #comments #wpdcom .wpd-auth .wpd-login a:hover { color: var(--cc-lime); }
body.single-post #comments #wpdcom .wpd-auth .wpd-login a:focus-visible { outline: 3px solid var(--cc-lime); outline-offset: 2px; border-radius: 4px; }

/* ---------- Editor + fields: off-white on navy ---------- */
body.single-post #comments #wpdcom .wpd-form .wpdiscuz-textarea-wrap { padding: 14px 0 8px; }
body.single-post #comments #wpdcom .ql-container {
  min-height: 96px;
  background: var(--cc-paper);
  border: 2px solid var(--cc-deep) !important;
  border-radius: 10px;
  box-shadow: 4px 4px 0 var(--cc-pink);
  color: var(--cc-deep);
  font-size: 1rem;
}
body.single-post #comments #wpdcom .ql-container:focus-within {
  outline: 3px solid var(--cc-lime);
  outline-offset: 2px;
}
body.single-post #comments #wpdcom .ql-editor { min-height: 92px; padding: 14px 16px; font-size: 1rem; line-height: 1.55; }
body.single-post #comments #wpdcom .ql-editor:focus-visible { outline: none; }
body.single-post #comments #wpdcom .ql-editor.ql-blank::before { color: #55696a; font-style: normal; left: 16px; right: 16px; }
body.single-post #comments #wpdcom .ql-toolbar {
  margin-top: 10px;
  background: transparent;
  border: 0 !important;
  border-radius: 0;
}
body.single-post #comments #wpdcom .ql-toolbar button,
body.single-post #comments #wpdcom .ql-toolbar .wmu-add { color: var(--cc-paper); }
body.single-post #comments #wpdcom .ql-toolbar .ql-stroke { stroke: var(--cc-paper); }
body.single-post #comments #wpdcom .ql-toolbar .ql-fill { fill: var(--cc-paper); }
body.single-post #comments #wpdcom .wmu-upload-wrap .wmu-add,
body.single-post #comments #wpdcom .wmu-upload-wrap .wmu-add i { color: var(--cc-paper); cursor: pointer; }

body.single-post #comments #wpdcom .wpd-form-row .wpdiscuz-item { margin-bottom: 12px; }
body.single-post #comments #wpdcom .wpd-form-row .wpdiscuz-item input[type="text"],
body.single-post #comments #wpdcom .wpd-form-row .wpdiscuz-item input[type="email"],
body.single-post #comments #wpdcom .wpd-form-row .wpdiscuz-item input[type="url"] {
  min-height: 46px;
  height: 46px;
  background: var(--cc-paper);
  border: 2px solid var(--cc-deep) !important;
  border-radius: 10px;
  box-shadow: 3px 3px 0 var(--cc-deep);
  color: var(--cc-deep);
  font-size: 1rem;
}
body.single-post #comments #wpdcom .wpd-form-row .wpdiscuz-item input::placeholder { color: #55696a; opacity: 1; }
body.single-post #comments #wpdcom .wpd-form-row .wpdiscuz-item input:focus,
body.single-post #comments #wpdcom .wpd-form-row .wpdiscuz-item input:focus-visible {
  border-color: var(--cc-lime) !important;
  outline: 3px solid var(--cc-lime);
  outline-offset: 2px;
}
body.single-post #comments #wpdcom .wpd-form-row .wpdiscuz-item .wpd-field-icon { top: 15px; left: 14px; color: #55696a; opacity: .8; z-index: 1; pointer-events: none; }
body.single-post #comments #wpdcom .wpd-form-row .wpd-has-icon .wpd-field { padding-left: 40px; }

/* Notify bell + Post Comment */
body.single-post #comments #wpdcom .wc-field-submit { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
body.single-post #comments #wpdcom .wpd_label { margin: 0; }
body.single-post #comments #wpdcom .wpd_label__check i.wpdicon {
  width: 44px;
  height: 44px;
  padding: 0;
  line-height: 40px;
  font-size: 16px;
  border: 2px solid var(--cc-line);
  border-radius: 10px;
  background: var(--cc-deep);
  color: var(--cc-paper);
  box-sizing: border-box;
}
body.single-post #comments #wpdcom .wpd_label__checkbox:checked + .wpd_label__text .wpd_label__check i.wpdicon-on {
  background: var(--cc-lime);
  border-color: var(--cc-deep);
  color: var(--cc-deep);
}
body.single-post #comments #wpdcom .wpd_label:hover i.wpdicon { border-color: var(--cc-lime); }
body.single-post #comments #wpdcom .wpd-prim-button,
body.single-post #comments #wpdcom input.wc_comm_submit {
  min-height: 48px;
  padding: 0 24px;
  background: var(--cc-lime) !important;
  color: var(--cc-deep) !important;
  border: 2px solid var(--cc-deep) !important;
  border-radius: 10px;
  box-shadow: 4px 4px 0 var(--cc-pink);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: .01em;
}
body.single-post #comments #wpdcom .wpd-prim-button:hover,
body.single-post #comments #wpdcom input.wc_comm_submit:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--cc-pink); }
body.single-post #comments #wpdcom .wpd-prim-button:active,
body.single-post #comments #wpdcom input.wc_comm_submit:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--cc-pink); }
body.single-post #comments #wpdcom .wpd-prim-button:focus-visible,
body.single-post #comments #wpdcom input.wc_comm_submit:focus-visible { outline: 3px solid var(--cc-paper); outline-offset: 3px; }

/* ---------- Thread header: "N Comments" + sort ---------- */
body.single-post #comments #wpdcom .wpd-thread-wrapper { margin-top: 18px; }
body.single-post #comments #wpdcom .wpd-thread-head { border-bottom: 2px solid var(--cc-line); }
body.single-post #comments #wpdcom .wpd-thread-head .wpd-thread-info {
  color: var(--cc-paper);
  border-bottom: 3px solid var(--cc-lime);
  font: 800 .875rem/24px var(--cc-mono);
  letter-spacing: .08em;
}
body.single-post #comments #wpdcom .wpd-thread-head .wpd-thread-info .wpdtc { color: var(--cc-lime); font-size: 1rem; }
body.single-post #comments #wpdcom .wpd-thread-filter .wpd-filter:not(.wpdiscuz-hidden) {
  min-height: 44px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--cc-muted);
  border-bottom-color: var(--cc-line);
}
body.single-post #comments #wpdcom .wpd-thread-filter .wpdf-sorting { color: var(--cc-paper); }
body.single-post #comments #wpdcom .wpd-thread-filter .wpdf-active,
body.single-post #comments #wpdcom .wpdiscuz-sort-button-active { color: var(--cc-lime); border-bottom-color: var(--cc-lime); }
body.single-post #comments #wpdcom .wpdiscuz-sort-buttons {
  background: var(--cc-deep);
  border: 2px solid var(--cc-lime);
  border-radius: 10px;
  box-shadow: 4px 4px 0 var(--cc-pink);
}
body.single-post #comments #wpdcom .wpdiscuz-sort-buttons .wpdiscuz-sort-button { color: var(--cc-paper); padding: 10px 14px; }
body.single-post #comments #wpdcom .wpdiscuz-sort-buttons .wpdiscuz-sort-button:hover { color: var(--cc-lime); }

/* ---------- Comment list ---------- */
body.single-post #comments #wpdcom .wpd-thread-list { padding: 20px 0 4px; }
body.single-post #comments #wpdcom .wpd-thread-list > .wpd-comment { margin-bottom: 16px; }
body.single-post #comments #wpdcom .wpd-comment .wpd-comment-wrap {
  padding: 14px 16px 6px;
  background: var(--cc-deep);
  border: 2px solid var(--cc-line);
  border-radius: 12px;
}
body.single-post #comments #wpdcom .wpd-comment .wpd-avatar img,
body.single-post #comments #wpdcom .wpd-comment .wpd-avatar img.avatar { border: 2px solid var(--cc-lime); border-radius: 50%; }
body.single-post #comments #wpdcom .wpd-comment-author,
body.single-post #comments #wpdcom .wpd-comment-author a { color: var(--cc-paper); font-weight: 800; }
body.single-post #comments #wpdcom .wpd-comment-header,
body.single-post #comments #wpdcom .wpd-comment-date { color: var(--cc-muted); }
body.single-post #comments #wpdcom .wpd-comment-text,
body.single-post #comments #wpdcom .wpd-comment-text p { color: var(--cc-text); font-size: 1rem; line-height: 1.6; }
body.single-post #comments #wpdcom .wpd-comment-text a { color: var(--cc-cyan); font-weight: 700; text-decoration: underline; }
body.single-post #comments #wpdcom .wpd-comment.wpd-reply .wpd-comment-text,
body.single-post #comments #wpdcom .wpd-comment.wpd-reply .wpd-comment-text p { font-size: .9375rem; }
/* Replies: indented with a lime rule */
body.single-post #comments #wpdcom .wpd-thread-list .wpd-comment.wpd-reply,
body.single-post #comments #wpdcom .wpd-reply.wpd_comment_level-2 {
  margin: 12px 0 0 28px;
  padding-left: 14px;
  border-left: 3px solid var(--cc-lime);
}
body.single-post #comments #wpdcom .wpd-reply .wpd-reply { margin-left: 18px; }
body.single-post #comments #wpdcom .wpd-blog-administrator .wpd-comment-label,
body.single-post #comments #wpdcom .wpd-blog-post_author .wpd-comment-label {
  background: var(--cc-pink);
  color: var(--cc-deep);
  border: 2px solid var(--cc-deep);
}
body.single-post #comments #wpdcom .wpd-blog-administrator .wpd-comment-author { color: var(--cc-pink); }
/* Votes + reply */
body.single-post #comments #wpdcom .wpd-comment-footer { flex-wrap: wrap; gap: 6px; padding: 6px 0 4px; }
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote { gap: 6px; padding-right: 8px; }
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-up,
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-down {
  width: 44px;
  height: 44px;
  opacity: 1;
  border: 2px solid var(--cc-line);
  border-radius: 10px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-up svg,
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-down svg { width: 18px; height: 18px; fill: var(--cc-text); }
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-up:hover { border-color: var(--cc-lime); }
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-up:hover svg,
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-up.wpd-up svg { fill: var(--cc-deep); }
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-up:hover,
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-up.wpd-up { background: var(--cc-lime); border-color: var(--cc-deep); }
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-down:hover,
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-down.wpd-down { background: var(--cc-pink); border-color: var(--cc-deep); }
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-down:hover svg,
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-down.wpd-down svg { fill: var(--cc-deep); }
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-vote-result {
  min-width: 2ch;
  padding: 0 4px;
  color: var(--cc-paper);
  font: 800 .9375rem/1 var(--cc-mono);
}
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-reply-button {
  min-height: 44px;
  padding: 0 12px;
  gap: 6px;
  color: var(--cc-lime);
  font-weight: 800;
  border-radius: 10px;
}
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-reply-button svg { width: 18px; height: 18px; fill: var(--cc-lime); }
body.single-post #comments #wpdcom .wpd-comment-footer .wpd-reply-button:hover { background: rgba(209, 230, 106, .12); }
body.single-post #comments #wpdcom .wpd-toggle,
body.single-post #comments #wpdcom .wpd-toggle i { color: var(--cc-muted); }
body.single-post #comments #wpdcom .wpd-load-more-submit { min-height: 44px; }

/* ---------- Phones ---------- */
@media (max-width: 600px) {
  body.single-post #comments.comments-area {
    margin: 3rem 6px 1.5rem 0;  /* room for the offset shadow */
    padding: 30px 16px 20px !important;
    box-shadow: 5px 5px 0 var(--cc-cyan);
  }
  body.single-post #comments #wpd-post-rating::before { font-size: 1.3rem; }
  body.single-post #comments #wpd-post-rating .wpd-rating-wrap { width: 100%; padding: 8px 10px; }
  body.single-post #comments #wpd-post-rating .wpd-rating-data { gap: 6px 10px; }
  body.single-post #comments #wpd-post-rating .wpd-rating-stars svg,
  body.single-post #comments #wpd-post-rating .wpd-rate-starts svg { width: 26px; height: 26px; }
  body.single-post #comments #wpdcom .wpd-form-row .wpd-form-col-left,
  body.single-post #comments #wpdcom .wpd-form-row .wpd-form-col-right { width: 100%; float: none; }
  body.single-post #comments #wpdcom .wc-field-submit { justify-content: space-between; }
  body.single-post #comments #wpdcom .wpd-prim-button,
  body.single-post #comments #wpdcom input.wc_comm_submit { flex: 1 1 auto; }
  body.single-post #comments #wpdcom .wpd-comment .wpd-comment-wrap { padding: 12px 12px 4px; }
  body.single-post #comments #wpdcom .wpd-thread-list .wpd-comment.wpd-reply,
  body.single-post #comments #wpdcom .wpd-reply.wpd_comment_level-2 { margin-left: 10px; padding-left: 10px; }
  body.single-post #comments #wpdcom .wpd-reply .wpd-reply { margin-left: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  body.single-post #comments #wpdcom .wpd-prim-button:hover,
  body.single-post #comments #wpdcom .wpd-prim-button:active { transform: none; }
}
/* === end TNX comment card v1 === */
/* === TNX fixes 1022 v1 ===
   Append at the END of Additional CSS. Sections: 1 product card photo well  2 header menu (Deals chip, no cart)
   3 product page (breadcrumbs, one-tab verdict panel, Amazon button, disclosure)  4 post tables on phones
   5 post footer (prev/next cards, "Ready to choose?" note)  6 cookie banner (WPConsent)  7 cookie settings links  8 contact form */

/* 1) Product cards: true-colour photo on a white well, the card colour stays as a frame (no tint, no crop) */
body.tnx-has-woocommerce .tnx-main ul.products li.product a img {
  mix-blend-mode: normal;
  object-fit: contain;
  box-sizing: border-box;
  padding: 16px;
  background: #fff;
  box-shadow: inset 0 0 0 8px var(--c, var(--tnx-lime));
}
@media (max-width: 600px) {
  body.tnx-has-woocommerce .tnx-main ul.products li.product a img { padding: 11px; box-shadow: inset 0 0 0 6px var(--c, var(--tnx-lime)); }
}

/* 2) Header menu: Deals as a highlighted chip; the cart icon is hidden (Amazon-only shop) */
.tnx-header .tnx-cart-link { display: none !important; }
.tnx-menu .tnx-menu-deals > a { background: var(--tnx-pink); border-color: var(--tnx-ink); color: var(--tnx-on-accent); box-shadow: 2px 2px 0 var(--tnx-ink); }
.tnx-menu .tnx-menu-deals > a:hover { background: var(--tnx-lime); }
.tnx-menu .tnx-menu-deals.current-menu-item > a { background: var(--tnx-night); color: var(--tnx-pink); }
@media (max-width: 800px) {
  .tnx-menu > li.tnx-menu-deals > a { display: flex; align-items: center; justify-content: space-between; margin: 10px 0; padding: 14px 16px; border: 2px solid var(--tnx-ink); border-radius: 10px; }
  .tnx-menu > li.tnx-menu-deals > a::after { content: "Hot"; padding: 2px 8px; background: var(--tnx-ink); border-radius: 999px; color: var(--tnx-lime); font-family: var(--tnx-mono); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
}
@media (min-width: 801px) and (max-width: 1180px) {
  .tnx-menu a { padding: 6px 10px; }
}

/* 3) Product page */
.single-product .tnx-woo .woocommerce-breadcrumb { margin: 0 0 18px; padding: 8px 14px; display: inline-block; background: var(--tnx-surface); border: 2px solid var(--tnx-ink); border-radius: 999px; color: var(--tnx-muted); font-size: .8125rem; line-height: 1.4; }
.single-product .tnx-woo .woocommerce-breadcrumb a { color: var(--tnx-ink); font-weight: 700; text-decoration: none; }
.single-product .tnx-woo .woocommerce-breadcrumb a:hover { text-decoration: underline; text-decoration-color: var(--tnx-pink); text-decoration-thickness: 2px; }
@media (max-width: 600px) { .single-product .tnx-woo .woocommerce-breadcrumb { display: block; border-radius: 10px; } }

.tnx-woo div.product p.tnx-external-cart { margin: 18px 0 0; }
.tnx-woo div.product p.tnx-external-cart .single_add_to_cart_button { min-height: 48px; padding: 0 24px; font-size: 1rem; }
.tnx-woo div.product .tnx-affiliate-note { margin: 10px 0 18px; color: var(--tnx-muted); font-size: .8125rem; line-height: 1.45; }
.tnx-woo div.product .tnx-affiliate-note::before { content: "i"; display: inline-grid; place-items: center; width: 16px; height: 16px; margin-right: 6px; border: 1.5px solid currentColor; border-radius: 50%; font-family: var(--tnx-mono); font-size: .6875rem; font-weight: 800; vertical-align: 1px; }
@media (max-width: 767px) { /* keep the phone order from "TNTX: mobile product CTA above the fold": title, button, note, description */
  .single-product div.product .summary p.tnx-external-cart { order: 2; margin: .75rem 0 0; }
  .single-product div.product .summary .tnx-affiliate-note { order: 2; margin: 8px 0 14px; }
}

/* one tab left ("Our verdict"): hide the tab strip and show it as a card */
.tnx-woo div.product .woocommerce-tabs ul.tabs:has(> li:only-child) { display: none; }
.tnx-woo div.product .woocommerce-tabs:has(ul.tabs > li:only-child) .panel { margin: 0; padding: 20px 22px; background: var(--tnx-paper); border: 2px solid var(--tnx-ink); border-radius: var(--tnx-radius); box-shadow: 4px 4px 0 var(--tnx-lime); }
.tnx-woo div.product .woocommerce-tabs:has(ul.tabs > li:only-child) .panel > h2:first-child { display: inline-block; margin: 0 0 12px; padding: 3px 10px; background: var(--tnx-lime); border: 2px solid var(--tnx-ink); border-radius: 6px; color: var(--tnx-on-accent); font-family: var(--tnx-mono); font-size: .8125rem; letter-spacing: .04em; text-transform: uppercase; }
.tnx-woo div.product .woocommerce-tabs .panel p:last-child { margin-bottom: 0; }

/* 4) Post tables on phones: scroll sideways with a hint, first column stays readable */
@media (max-width: 600px) {
  .single-post .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 2px solid var(--tnx-ink); border-radius: 10px; }
  .single-post .wp-block-table table { min-width: 560px; margin: 0; border: 0; }
  .single-post .wp-block-table th:first-child, .single-post .wp-block-table td:first-child { position: sticky; left: 0; z-index: 1; background: var(--tnx-paper); box-shadow: 2px 0 0 var(--tnx-ink); }
  .single-post .wp-block-table:has(tr > :nth-child(3))::before { content: "Swipe to see more \2192"; position: sticky; left: 0; display: block; padding: 6px 10px; background: var(--tnx-lime); border-bottom: 2px solid var(--tnx-ink); color: var(--tnx-on-accent); font-family: var(--tnx-mono); font-size: .75rem; font-weight: 800; letter-spacing: .03em; }
}

/* 5) Post footer: previous/next as two cards; "Ready to choose?" as an on-brand note */
.single-post .post-navigation .nav-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 8px; }
.single-post .post-navigation .nav-next { grid-column: 2; text-align: right; }
.single-post .post-navigation a { max-width: none; height: 100%; box-sizing: border-box; padding: 14px 16px; background: var(--tnx-surface); border: 2px solid var(--tnx-ink); border-radius: var(--tnx-radius); box-shadow: 4px 4px 0 var(--tnx-cyan); color: var(--tnx-ink); line-height: 1.35; }
.single-post .post-navigation .nav-next a { box-shadow: 4px 4px 0 var(--tnx-lime); }
.single-post .post-navigation a:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--tnx-pink); }
.single-post .post-navigation a span { margin-bottom: 4px; }
.single-post .post-navigation .nav-previous a span::before { content: "\2190  "; }
.single-post .post-navigation .nav-next a span::after { content: "  \2192"; }
@media (max-width: 600px) {
  .single-post .post-navigation .nav-links { grid-template-columns: 1fr; }
  .single-post .post-navigation .nav-next { grid-column: 1; }
}
/* pale-blue editor boxes ("Quick picks" lists): white TNX card */
.single-post .wp-block-group.has-pale-cyan-blue-background-color { margin-block: 28px; padding: 18px 20px !important; background: var(--tnx-surface) !important; border: 3px solid var(--tnx-ink); border-radius: 14px; box-shadow: 6px 6px 0 var(--tnx-cyan); }
/* the one-paragraph "Ready to choose?" note: navy with a lime border */
.single-post .wp-block-group.has-pale-cyan-blue-background-color:has(> p:only-child) { background: var(--tnx-card-navy, #213539) !important; border-color: var(--tnx-lime); box-shadow: 6px 6px 0 var(--tnx-pink); color: #f4f7ef; }
.single-post .wp-block-group.has-pale-cyan-blue-background-color:has(> p:only-child) p { margin: 0; color: #f4f7ef; }
.single-post .wp-block-group.has-pale-cyan-blue-background-color:has(> p:only-child) strong { color: var(--tnx-lime); }
.single-post .wp-block-group.has-pale-cyan-blue-background-color:has(> p:only-child) a { color: #fff; font-weight: 700; text-decoration-color: var(--tnx-lime); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.single-post .wp-block-group.has-pale-cyan-blue-background-color:has(> p:only-child) a:hover { color: var(--tnx-lime); }

/* 6) Cookie banner (WPConsent draws it in a shadow root: only these custom properties and ::part() reach it) */
#wpconsent-container {
  --wpconsent-background: #213539;
  --wpconsent-text: #f4f7ef;
  --wpconsent-outline-color: rgba(209, 230, 106, .45);
  --wpconsent-accept-bg: #d1e66a;
  --wpconsent-accept-color: #172428;
  --wpconsent-cancel-bg: #d1e66a;
  --wpconsent-cancel-color: #172428;
  --wpconsent-preferences-bg: #f4f7ef;
  --wpconsent-preferences-color: #172428;
  --wpconsent-font-size: 15px;
  --wpconsent-line-height: 1.45;
  --wpconsent-border-radius: 14px;
  --wpconsent-focus-outline-color: #ff7ac6;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
#wpconsent-container::part(wpconsent-banner) { border-top: 3px solid #d1e66a; box-shadow: 0 -6px 0 rgba(255, 122, 198, .9); }
#wpconsent-container::part(wpconsent-button-accept),
#wpconsent-container::part(wpconsent-button-cancel),
#wpconsent-container::part(wpconsent-button-preferences) {
  min-height: 44px; height: auto; padding: 8px 16px; border: 2px solid #172428; border-radius: 10px;
  font-family: inherit; font-size: 15px; font-weight: 800; line-height: 1.2; box-shadow: 3px 3px 0 #ff7ac6; cursor: pointer;
}
#wpconsent-container::part(wpconsent-button-accept):hover,
#wpconsent-container::part(wpconsent-button-cancel):hover,
#wpconsent-container::part(wpconsent-button-preferences):hover { background: #ff7ac6; color: #172428; }
@media (max-width: 767px) {
  #wpconsent-container { --wpconsent-font-size: 13.5px; --wpconsent-line-height: 1.4; }
  #wpconsent-container::part(wpconsent-banner) { padding: 12px 14px 14px; }
  #wpconsent-container::part(wpconsent-banner-body) { padding: 0 0 10px; }
  #wpconsent-container::part(wpconsent-banner-footer) { flex-direction: row; flex-wrap: nowrap; gap: 8px; }
  #wpconsent-container::part(wpconsent-button-accept),
  #wpconsent-container::part(wpconsent-button-cancel),
  #wpconsent-container::part(wpconsent-button-preferences) { flex: 1 1 0; min-width: 0; padding: 8px 6px; font-size: 14px; box-shadow: 2px 2px 0 #ff7ac6; }
}
#wpconsent-container::part(wpconsent-preferences-content) { border: 3px solid #d1e66a; border-radius: 14px; }
#wpconsent-container::part(wpconsent-preferences-accept-button),
#wpconsent-container::part(wpconsent-preferences-save-button),
#wpconsent-container::part(wpconsent-preferences-cancel-button) { min-height: 44px; border: 2px solid #172428; border-radius: 10px; font-weight: 800; }
#wpconsent-container::part(wpconsent-settings-button) { background: #d1e66a !important; border: 2px solid #172428; box-shadow: 2px 2px 0 #ff7ac6; }

/* 7) "Cookie settings" link in the footer and the button on the Cookie Policy page */
.tnx-footer a.wpconsent-open-preferences { cursor: pointer; }
.wpconsent-open-preferences.tnx-cookie-settings-button { min-height: 44px; display: inline-flex; align-items: center; padding: 0 20px; background: var(--tnx-lime); border: 2px solid var(--tnx-ink); border-radius: var(--tnx-radius); box-shadow: 3px 3px 0 var(--tnx-ink); color: var(--tnx-on-accent); font: inherit; font-weight: 800; cursor: pointer; }
.wpconsent-open-preferences.tnx-cookie-settings-button:hover { background: var(--tnx-pink); }
.wpconsent-cookie-policy-table { width: 100%; }
@media (max-width: 600px) { .wpconsent-cookie-policy-table { display: block; overflow-x: auto; } }

/* 8) Contact form (SupportCandy): TNX card, no helper jargon, no Reset button, lime Submit */
.tnx-article__content #wpsc-container { margin-top: 22px; }
.tnx-article__content #wpsc-container .wpsc-body { padding: 22px 22px 18px; background: var(--tnx-surface); border: 3px solid var(--tnx-ink); border-radius: 14px; box-shadow: 6px 6px 0 var(--tnx-cyan); }
.tnx-article__content #wpsc-container .wpsc-create-ticket .wpsc-tff { margin-bottom: 16px; }
.tnx-article__content #wpsc-container .wpsc-create-ticket .wpsc-tff-label { margin-bottom: 6px; color: var(--tnx-ink); font-size: .9375rem; font-weight: 800; }
.tnx-article__content #wpsc-container .wpsc-create-ticket .wpsc-tff-label .required-indicator { color: #b3261e; }
.tnx-article__content #wpsc-container .wpsc-create-ticket .extra-info { display: none !important; }
.tnx-article__content #wpsc-container .wpsc-create-ticket input[type="text"], .tnx-article__content #wpsc-container .wpsc-create-ticket textarea, .tnx-article__content #wpsc-container .wpsc-create-ticket .select2-container .select2-selection--single { width: 100% !important; max-width: none; min-height: 46px; box-sizing: border-box; padding: 10px 12px; background: var(--tnx-paper); border: 2px solid var(--tnx-ink) !important; border-radius: 10px !important; color: var(--tnx-ink); font: inherit; }
.tnx-article__content #wpsc-container .wpsc-create-ticket textarea { min-height: 150px; }
.tnx-article__content #wpsc-container .wpsc-create-ticket .select2-container .select2-selection__rendered { line-height: 24px; padding-left: 0; }
.tnx-article__content #wpsc-container .wpsc-create-ticket .select2-container .select2-selection__arrow { top: 9px; right: 8px; }
.tnx-article__content #wpsc-container .wpsc-create-ticket :is(input[type="text"], textarea):focus { outline: 3px solid var(--tnx-pink); outline-offset: 1px; }
.tnx-article__content #wpsc-container .wpsc-create-ticket .checkbox-container { display: flex; gap: 10px; align-items: flex-start; color: var(--tnx-text); font-size: .875rem; line-height: 1.45; }
.tnx-article__content #wpsc-container .wpsc-create-ticket .checkbox-container label { display: block !important; flex: 1 1 auto; margin: 0; }
.tnx-article__content #wpsc-container .wpsc-create-ticket .checkbox-container label p { display: inline; margin: 0; }
.tnx-article__content #wpsc-container .wpsc-create-ticket .checkbox-container input[type="checkbox"] { width: 20px; height: 20px; flex: 0 0 auto; margin: 1px 0 0; accent-color: var(--tnx-moss); }
.tnx-article__content #wpsc-container #wpsc-ct-reset { display: none !important; }
.tnx-article__content #wpsc-container #wpsc-ct-submit { min-height: 48px; padding: 0 28px; background: var(--tnx-lime) !important; border: 2px solid var(--tnx-ink) !important; border-radius: var(--tnx-radius) !important; box-shadow: 3px 3px 0 var(--tnx-ink); color: var(--tnx-on-accent) !important; font-size: 1rem; font-weight: 800; }
.tnx-article__content #wpsc-container #wpsc-ct-submit:hover { background: var(--tnx-pink) !important; }
@media (max-width: 600px) { .tnx-article__content #wpsc-container .wpsc-body { padding: 16px 14px 14px; box-shadow: 4px 4px 0 var(--tnx-cyan); } .tnx-article__content #wpsc-container #wpsc-ct-submit { width: 100%; } }
/* === end TNX fixes 1022 v1 === */


/* === TNX post header v2 === */
/* Single-post title header as a brand card: calmer H1, one tidy meta row, byline chip with initials.
   Card matches the site card system (3px ink border, 14px radius, hard 6px accent shadow) with a
   lime/pink/cyan top stripe. Full article width, so it lines up with the cover and the content card.
   Scoped to body.single-post. Works with or without the optional .tnx-article__avatar span. */
body.single-post .tnx-article__header {
  position: relative; box-sizing: border-box; max-width: none; margin: 0 0 34px;
  padding: 44px clamp(20px, 5vw, 52px) 32px;
  background: var(--tnx-surface); color: var(--tnx-ink);
  border: var(--tnx-card-bw, 3px) solid var(--tnx-ink); border-radius: var(--tnx-card-r, 14px);
  box-shadow: var(--tnx-card-off, 6px) var(--tnx-card-off, 6px) 0 var(--tnx-pink);
  text-align: center;
}
/* Top colour stripe (decorative), sits inside the border */
body.single-post .tnx-article__header::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 10px;
  background: linear-gradient(90deg, var(--tnx-lime) 0 33.34%, var(--tnx-pink) 33.34% 66.67%, var(--tnx-cyan) 66.67% 100%);
  border-bottom: 2px solid var(--tnx-ink); border-radius: 11px 11px 0 0; pointer-events: none;
}
/* Dark mode: navy card, light ink border, same pink shadow */
:root[data-theme="dark"] body.single-post .tnx-article__header { background: var(--tnx-card-navy, #213539); }
:root[data-theme="dark"] body.single-post .tnx-article__header::before { border-bottom-color: #0d1719; }
:root[data-theme="dark"] body.single-post .tnx-article__byline { background: var(--tnx-surface); }

/* Meta row: category pills + date + read time, one centred row that wraps cleanly */
body.single-post .tnx-article__header .tnx-meta {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 8px 12px; margin: 0 0 18px;
  color: var(--tnx-muted); font-family: var(--tnx-mono); font-size: .75rem; font-weight: 700;
  letter-spacing: .06em; line-height: 1.2; text-transform: uppercase;
}
/* Category wrapper: drop the single big pill, hide the ", " separators, pill each link */
body.single-post .tnx-article__header .tnx-meta > :first-child {
  display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 6px;
  padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none;
  font-size: 0; color: var(--tnx-on-accent);
}
body.single-post .tnx-article__header .tnx-meta > :first-child a {
  display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px;
  background: var(--tnx-pink); color: var(--tnx-on-accent);
  border: 2px solid var(--tnx-ink); border-radius: 6px; box-shadow: 2px 2px 0 var(--tnx-ink);
  font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-decoration: none; white-space: nowrap;
  transition: transform .1s ease, box-shadow .1s ease, background-color .1s ease;
}
body.single-post .tnx-article__header .tnx-meta > :first-child a:nth-child(2) { background: var(--tnx-cyan); }
body.single-post .tnx-article__header .tnx-meta > :first-child a:nth-child(3) { background: var(--tnx-lime); }
body.single-post .tnx-article__header .tnx-meta > :first-child a:hover {
  transform: translate(-1px, -1px); box-shadow: 3px 3px 0 var(--tnx-ink);
}
body.single-post .tnx-article__header .tnx-meta > :first-child a:focus-visible { outline: 3px solid var(--tnx-pink); outline-offset: 2px; }
/* Date + read time sit together as one quiet group */
body.single-post .tnx-article__header .tnx-meta time,
body.single-post .tnx-article__header .tnx-meta .tnx-readtime { white-space: nowrap; }
body.single-post .tnx-article__header .tnx-meta .tnx-readtime { gap: 12px; }
body.single-post .tnx-article__header .tnx-meta .tnx-readtime::before {
  width: 6px; height: 6px; background: var(--tnx-lime); border: 1.5px solid var(--tnx-ink); border-radius: 50%;
}

/* Title: smaller on phones, no heavy shadow, tighter and balanced */
body.single-post .tnx-article__header h1,
:root[data-theme="dark"] body.single-post .tnx-article__header h1 {
  max-width: 22ch; margin: 0 auto;
  font-size: clamp(1.75rem, 1.05rem + 3.4vw, 3.25rem); font-weight: 800;
  letter-spacing: -.03em; line-height: 1.1;
  text-shadow: none; text-wrap: balance; overflow-wrap: break-word; hyphens: manual;
}
/* Hyphenated words (e.g. USB-C) are wrapped in .tnx-nowrap by single.php so they never split at the hyphen */
body.single-post .tnx-article__header h1 .tnx-nowrap { white-space: nowrap; }
/* Small brand accent bar under the title instead of the lime text shadow */
body.single-post .tnx-article__header h1::after {
  content: ""; display: block; width: 56px; height: 8px; margin: 18px auto 0;
  background: var(--tnx-lime); border: 2px solid var(--tnx-ink); border-radius: 999px;
  box-shadow: 3px 3px 0 var(--tnx-pink);
}

/* Byline: a small chip with an initials circle; the author link stays */
body.single-post .tnx-article__byline {
  display: inline-flex; align-items: center; gap: 10px; max-width: 100%;
  margin: 20px auto 0; padding: 5px 16px 5px 6px;
  background: var(--tnx-surface); border: 2px solid var(--tnx-ink); border-radius: 999px;
  box-shadow: 3px 3px 0 var(--tnx-cyan);
  color: var(--tnx-muted); font-family: var(--tnx-mono); font-size: .8125rem; line-height: 1.2;
}
body.single-post .tnx-article__byline:not(:has(.tnx-article__avatar)) { padding-left: 16px; }
body.single-post .tnx-article__avatar {
  flex: none; display: inline-grid; place-items: center; width: 32px; height: 32px;
  background: var(--tnx-lime); color: var(--tnx-on-accent);
  border: 2px solid var(--tnx-ink); border-radius: 50%;
  font-family: var(--tnx-font); font-size: .75rem; font-weight: 900; letter-spacing: .02em; line-height: 1;
}
body.single-post .tnx-article__byline a[rel="author"] {
  color: var(--tnx-ink); font-weight: 800; text-decoration: none;
}
body.single-post .tnx-article__byline a[rel="author"]:hover {
  text-decoration: underline; text-decoration-color: var(--tnx-pink); text-decoration-thickness: 2px; text-underline-offset: 3px;
}
body.single-post .tnx-article__byline a[rel="author"]:focus-visible { outline: 3px solid var(--tnx-pink); outline-offset: 2px; border-radius: 4px; }

@media (max-width: 600px) {
  body.single-post .tnx-article__header {
    margin: 0 4px 26px 0; padding: 32px 14px 24px;
    border-radius: 12px; box-shadow: 4px 4px 0 var(--tnx-pink);
  }
  body.single-post .tnx-article__header::before { height: 8px; border-radius: 9px 9px 0 0; }
  body.single-post .tnx-article__header .tnx-meta { gap: 8px 10px; margin-bottom: 14px; font-size: .6875rem; }
  body.single-post .tnx-article__header .tnx-meta > :first-child a { min-height: 26px; padding: 0 8px; font-size: .6875rem; }
  /* Phones: pills on the first line, date + read time together on the second */
  body.single-post .tnx-article__header .tnx-meta > :first-child { flex: 1 0 100%; }
  body.single-post .tnx-article__header h1,
  :root[data-theme="dark"] body.single-post .tnx-article__header h1 { font-size: clamp(1.625rem, .95rem + 3.3vw, 2rem); line-height: 1.12; letter-spacing: -.025em; }
  body.single-post .tnx-article__header h1::after { width: 44px; height: 7px; margin-top: 14px; }
  body.single-post .tnx-article__byline { margin-top: 16px; }
}
/* === end TNX post header v2 === */

/* === TNX SEO fixes v1 === */
/* Buying guides (homepage) */
.tnx-guides { padding-top: 64px; padding-bottom: 72px; }
.tnx-guides__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 22px; }
.tnx-guides__grid > li { min-width: 0; }
.tnx-guide { --c: var(--tnx-lime); display: flex; flex-direction: column; height: 100%; color: var(--tnx-ink); text-decoration: none; transition: transform .1s ease, box-shadow .1s ease; }
.tnx-guide--1 { --c: var(--tnx-pink); }
.tnx-guide--2 { --c: var(--tnx-cyan); }
.tnx-guide:hover, .tnx-guide:focus-visible { transform: translate(-2px, -2px); box-shadow: 7px 7px 0 var(--tnx-ink); }
.tnx-guide__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-bottom: var(--tnx-border); background: var(--c); }
.tnx-guide__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tnx-guide__media--quiz { display: flex; align-items: center; justify-content: center; font-family: var(--tnx-pixel); font-size: 4.5rem; line-height: 1; color: var(--tnx-on-accent); }
.tnx-guide__body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 16px 16px 18px; }
.tnx-guide__kicker { align-self: flex-start; padding: 3px 10px; background: var(--c); border: var(--tnx-border); border-radius: 999px; color: var(--tnx-on-accent); font-family: var(--tnx-mono); font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.tnx-guide__title { font-size: 1.05rem; font-weight: 800; line-height: 1.3; text-wrap: balance; }
.tnx-guide__cta { margin-top: auto; font-weight: 800; font-size: .9rem; text-decoration: underline; text-decoration-color: var(--c); text-decoration-thickness: 3px; text-underline-offset: 4px; }
@media (max-width: 600px) {
  .tnx-guides__grid { grid-template-columns: 1fr 1fr; gap: 14px; }
  .tnx-guide__title { font-size: .95rem; }
  .tnx-guide__body { padding: 12px; }
}
@media (max-width: 380px) { .tnx-guides__grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .tnx-guide { transition: none; } .tnx-guide:hover { transform: none; } }

/* "Read the guide" line on shop category/tag pages */
.tnx-guide-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 14px 0 18px; font-weight: 700; }
.tnx-guide-line__label { padding: 3px 10px; background: var(--tnx-lime); border: var(--tnx-border); border-radius: 6px; box-shadow: 2px 2px 0 var(--tnx-ink); color: var(--tnx-on-accent); font-family: var(--tnx-mono); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.tnx-guide-line a { color: var(--tnx-ink); text-decoration: underline; text-decoration-color: var(--tnx-pink); text-decoration-thickness: 3px; text-underline-offset: 3px; }
.tnx-guide-line__sep { color: var(--tnx-muted); }

/* Rank Math breadcrumbs */
.tnx-crumbs { margin: 0 0 14px; font-family: var(--tnx-mono); font-size: .8rem; font-weight: 700; color: var(--tnx-muted); }
.tnx-crumbs p { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.tnx-crumbs a { color: var(--tnx-ink); text-decoration: none; border-bottom: 2px solid var(--tnx-lime); }
.tnx-crumbs a:hover { background: var(--tnx-lime); color: var(--tnx-on-accent); }
.tnx-crumbs .separator { color: var(--tnx-muted); }
.tnx-crumbs .last { color: var(--tnx-text); font-weight: 600; }
.tnx-article__header .tnx-crumbs p { justify-content: center; }
.tnx-archive-description .tnx-crumbs { margin-bottom: 10px; }
.tnx-article__header .tnx-crumbs .last { max-width: 42ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* === end TNX SEO fixes v1 === */

/* === TNX breadcrumb card v1 === */
.tnx-crumbs {
  display: block; position: relative; margin: 0 0 18px; padding: 16px 16px 12px;
  background: var(--tnx-surface); color: var(--tnx-ink);
  border: 3px solid var(--tnx-ink); border-radius: 12px;
  box-shadow: 4px 4px 0 var(--tnx-cyan); overflow: hidden;
}
.tnx-crumbs::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px;
  background: linear-gradient(90deg, var(--tnx-lime) 0 33.34%, var(--tnx-pink) 33.34% 66.67%, var(--tnx-cyan) 66.67% 100%);
}
.tnx-crumbs p { gap: 6px 6px; }
.tnx-crumbs a {
  display: inline-block; padding: 3px 9px; border: 2px solid var(--tnx-ink); border-radius: 999px;
  background: var(--tnx-lime); color: var(--tnx-on-accent); box-shadow: 2px 2px 0 var(--tnx-ink);
  font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; line-height: 1.3;
}
.tnx-crumbs a:hover { transform: translate(-1px,-1px); box-shadow: 3px 3px 0 var(--tnx-ink); }
.tnx-crumbs .separator { font-weight: 800; color: var(--tnx-ink); }
.tnx-crumbs .last { flex-basis: 100%; margin-top: 4px; color: var(--tnx-ink); font-weight: 700; font-size: .8rem; }
:root[data-theme="dark"] .tnx-crumbs { background: var(--tnx-card-navy, #213539); }
/* Inside the post title card: keep it light, no card-in-a-card */
.tnx-article__header .tnx-crumbs { padding: 0; background: none !important; border: 0; box-shadow: none; overflow: visible; }
.tnx-article__header .tnx-crumbs::before { content: none; }
.tnx-article__header .tnx-crumbs .last { flex-basis: auto; margin-top: 0; }
/* === end TNX breadcrumb card v1 === */

/* === TNX CRT hero v1 === */
.tnx-hero .tnx-crt {
  position: relative; margin: 0 0 22px; padding: 18px 18px 34px;
  background: linear-gradient(160deg, #3a3d40 0%, #232527 55%, #17181a 100%);
  border: 3px solid var(--tnx-ink); border-radius: 26px;
  box-shadow: 6px 6px 0 var(--tnx-ink), inset 0 2px 0 rgba(255,255,255,.12), inset 0 -3px 0 rgba(0,0,0,.45);
}
.tnx-hero .tnx-crt__screen {
  position: relative; overflow: hidden; padding: 22px 20px 24px;
  background: radial-gradient(ellipse at center, #08240f 0%, #041408 60%, #010602 100%);
  border: 2px solid #000; border-radius: 22px / 28px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.9), inset 0 0 12px rgba(51,255,102,.18);
  color: #33ff66; animation: tnx-crt-flicker 6s infinite steps(1);
}
.tnx-hero .tnx-crt__screen::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 2;
  background: repeating-linear-gradient(to bottom, rgba(0,0,0,0) 0 2px, rgba(0,0,0,.28) 2px 3px);
}
.tnx-hero .tnx-crt__screen::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 3; border-radius: inherit;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0) 55%, rgba(0,0,0,.55) 100%);
}
.tnx-hero .tnx-crt__led {
  position: absolute; right: 26px; bottom: 12px; width: 9px; height: 9px; border-radius: 50%;
  background: #33ff66; box-shadow: 0 0 6px #33ff66, 0 0 12px rgba(51,255,102,.6); border: 1px solid #0a3;
}
.tnx-hero .tnx-crt::after {
  content: "TNX-80"; position: absolute; left: 24px; bottom: 9px;
  font-family: var(--tnx-mono, ui-monospace, monospace); font-size: .62rem; font-weight: 800; letter-spacing: .18em; color: #8a8f94;
}
.tnx-hero .tnx-crt .tnx-sticker {
  display: block; margin: 0 0 14px; padding: 0; background: none; border: 0; box-shadow: none; transform: none; animation: none;
  font-family: var(--tnx-mono, ui-monospace, monospace); font-size: .85rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: #33ff66; text-shadow: 0 0 6px rgba(51,255,102,.75);
}
.tnx-hero .tnx-crt .tnx-sticker::before { content: "> "; }
.tnx-hero .tnx-crt h1 {
  margin: 0 0 14px; color: #33ff66; -webkit-text-stroke: 0; background: none;
  text-shadow: 0 0 4px rgba(51,255,102,.9), 0 0 14px rgba(51,255,102,.45);
}
.tnx-hero .tnx-crt h1::after { content: none; }
.tnx-hero .tnx-crt .tnx-hero__intro {
  margin: 0; max-width: none; color: #9dffb5; font-family: var(--tnx-mono, ui-monospace, monospace); font-size: .95rem; line-height: 1.55;
  text-shadow: 0 0 5px rgba(51,255,102,.5);
}
/* typing: characters hold their space (no layout shift) and appear one by one */
.tnx-crt.is-typing .tnx-crt__ch { visibility: hidden; }
.tnx-crt.is-typing .tnx-crt__ch.on { visibility: visible; }
.tnx-crt .tnx-crt__ch.cur { position: relative; }
.tnx-crt .tnx-crt__ch.cur::after, .tnx-crt.is-done .tnx-hero__intro .tnx-crt__ch:last-child::after,
.tnx-crt:not(.is-typing):not(.is-done) .tnx-hero__intro::after {
  content: ""; position: absolute; width: .55em; height: 1em; margin-left: .08em; background: #33ff66;
  box-shadow: 0 0 8px rgba(51,255,102,.8); animation: tnx-crt-blink 1s steps(1) infinite;
}
.tnx-crt.is-done .tnx-hero__intro .tnx-crt__ch:last-child { position: relative; }
.tnx-crt:not(.is-typing):not(.is-done) .tnx-hero__intro::after { position: relative; display: inline-block; vertical-align: -.15em; }
@keyframes tnx-crt-blink { 50% { opacity: 0; } }
@keyframes tnx-crt-flicker { 0%, 100% { opacity: 1; } 47% { opacity: .96; } 48% { opacity: 1; } 83% { opacity: .975; } 84% { opacity: 1; } }
@media (max-width: 600px) {
  .tnx-hero .tnx-crt { padding: 12px 12px 30px; border-radius: 20px; box-shadow: 4px 4px 0 var(--tnx-ink), inset 0 2px 0 rgba(255,255,255,.12); }
  .tnx-hero .tnx-crt__screen { padding: 18px 14px 20px; border-radius: 16px / 22px; }
  .tnx-hero .tnx-crt .tnx-hero__intro { font-size: .875rem; }
}
@media (prefers-reduced-motion: reduce) {
  .tnx-hero .tnx-crt__screen, .tnx-crt *::after, .tnx-crt::after { animation: none !important; }
}
/* === end TNX CRT hero v1 === */
/* === TNX CRT critters v1 === */
/* a pixel rat and two imps wander the reserved bottom strip of the CRT screen (decorative, aria-hidden) */
.tnx-hero .tnx-crt__screen { --tnx-crit-p: 3px; --tnx-crit-strip: 52px; padding-bottom: 60px; }
.tnx-crt__critters {
  position: absolute; left: 0; right: 0; bottom: 0; height: var(--tnx-crit-strip); overflow: hidden;
  pointer-events: none; z-index: 1; filter: drop-shadow(0 0 3px rgba(51,255,102,.75));
}
.tnx-crit {
  --w: calc(var(--tnx-crit-p) * 15); --h: calc(var(--tnx-crit-p) * 12); --x: .4;
  position: absolute; inset: 0; color: #9dff6a;
  transform: translateX(calc((100% + var(--w)) * var(--x)));
  animation: tnx-crit-walk 16s linear infinite;
}
.tnx-crit__body {
  position: absolute; left: calc(-1 * var(--w)); bottom: calc(var(--tnx-crit-p) * 2);
  width: var(--w); height: var(--h); overflow: hidden;
}
.tnx-crit svg { display: block; width: 200%; height: 100%; fill: currentColor; animation: tnx-crit-legs .5s steps(2) infinite; }
.tnx-crit--rat { --w: calc(var(--tnx-crit-p) * 17); --h: calc(var(--tnx-crit-p) * 8); --x: .78; color: #33ff66; animation-duration: 9s; animation-delay: -7s; }
.tnx-crit--rat svg { animation-duration: .24s; }
.tnx-crit--imp1 { --x: .5; animation-delay: -8s; }
.tnx-crit--imp1 .tnx-crit__body { animation: tnx-crit-hop 16s linear infinite; animation-delay: -8s; }
.tnx-crit--imp2 { --x: .36; color: #22dd55; animation-name: tnx-crit-walk-look; animation-delay: -5.5s; }
.tnx-crit--imp2 .tnx-crit__body { animation: tnx-crit-look 16s step-end infinite; animation-delay: -5.5s; }
.tnx-crit--imp2 svg { animation-duration: .45s; }
@keyframes tnx-crit-legs { to { transform: translateX(-100%); } }
@keyframes tnx-crit-walk { from { transform: translateX(0); } to { transform: translateX(calc(100% + var(--w))); } }
/* imp 2 stops mid-screen for a look round, then catches up */
@keyframes tnx-crit-walk-look {
  0% { transform: translateX(0); }
  45%, 58% { transform: translateX(calc((100% + var(--w)) * .45)); }
  100% { transform: translateX(calc(100% + var(--w))); }
}
@keyframes tnx-crit-look { 0%, 55%, 100% { transform: none; } 48% { transform: scaleX(-1); } }
/* imp 1 does a little hop now and then */
@keyframes tnx-crit-hop {
  0%, 30%, 34%, 70%, 74%, 100% { transform: translateY(0); }
  32%, 72% { transform: translateY(calc(var(--tnx-crit-p) * -3)); }
}
@media (max-width: 600px) {
  .tnx-hero .tnx-crt__screen { --tnx-crit-p: 2px; --tnx-crit-strip: 36px; padding-bottom: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .tnx-crit, .tnx-crit__body, .tnx-crit svg { animation: none !important; }
}
/* === end TNX CRT critters v1 === */


/* === TNX search v1 === */
@media (max-width: 800px) { .tnx-header__actions { order: -1; margin: 12px 0 14px; } }
.tnx-shop-search { margin: 0 0 22px; max-width: 520px; }
.tnx-shop-search__label { margin: 0 0 8px; font-family: var(--tnx-mono, monospace); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.tnx-shop-search .tnx-search { height: 50px; border-width: 3px; box-shadow: 4px 4px 0 var(--tnx-ink); }
.tnx-shop-search .tnx-search__input, .tnx-shop-search .tnx-search__input:focus { width: 100%; font-size: 1rem; }
.tnx-sr__count { margin: 6px 0 0; font-family: var(--tnx-mono, monospace); font-weight: 700; }
.tnx-sr-badge { display: inline-block; margin: 0 0 8px; padding: 2px 8px; border: 2px solid var(--tnx-ink); border-radius: 6px; background: var(--tnx-cyan); color: #172428; font-family: var(--tnx-mono, monospace); font-size: .7rem; font-weight: 800; letter-spacing: .12em; }
.tnx-sr-card--product .tnx-sr-badge { background: var(--tnx-lime); }
.tnx-sr-card--product .tnx-post-card__image img { object-fit: contain; background: #fff; }
.tnx-sr-card__price { margin: 0 0 6px; font-weight: 800; font-size: 1.05rem; }
.tnx-sr-card__more { font-weight: 800; color: var(--tnx-ink); }
.tnx-sr-amazon { margin: 32px 0 8px; text-align: center; }
.tnx-sr-amazon__btn { display: inline-block; max-width: 100%; padding: 14px 22px; background: #d4e85a; color: #172428 !important; border: 3px solid #172428; border-radius: 12px; box-shadow: 5px 5px 0 #172428; font-weight: 800; text-decoration: none; overflow-wrap: anywhere; transition: transform .12s, box-shadow .12s; }
.tnx-sr-amazon__btn:hover, .tnx-sr-amazon__btn:focus-visible { transform: translate(-2px,-2px); box-shadow: 7px 7px 0 #172428; }
.tnx-sr-amazon__note { margin: 12px 0 0; font-size: .8rem; color: var(--tnx-muted); }
.tnx-sr-none { margin: 8px 0 24px; padding: 26px 20px; background: radial-gradient(ellipse at center, #08240f 0%, #041408 60%, #010602 100%); border: 3px solid #172428; border-radius: 18px; box-shadow: 6px 6px 0 #172428, inset 0 0 30px rgba(0,0,0,.9); color: #9dffb5; text-align: center; }
.tnx-sr-none__crt { margin: 0 0 10px; color: #33ff66; font-family: var(--tnx-mono, monospace); font-size: 1.35rem; font-weight: 800; letter-spacing: .06em; text-shadow: 0 0 6px rgba(51,255,102,.8), 0 0 16px rgba(51,255,102,.4); }
.tnx-sr-none__crt span { animation: tnx-sload-blink 1s steps(1) infinite; }
.tnx-sr-none__line { margin: 0 auto; max-width: 34em; font-family: var(--tnx-mono, monospace); text-shadow: 0 0 5px rgba(51,255,102,.45); }
.tnx-sr-none .tnx-sr-amazon__note { color: #9dffb5; }
.tnx-sload { position: fixed; left: 50%; top: 50%; z-index: 99999; transform: translate(-50%,-50%); padding: 12px 16px; background: #041408; border: 3px solid #172428; border-radius: 12px; box-shadow: 5px 5px 0 #172428, inset 0 0 16px rgba(51,255,102,.15); color: #33ff66; font: 800 .95rem/1.2 var(--tnx-mono, monospace); white-space: nowrap; text-shadow: 0 0 6px rgba(51,255,102,.8); pointer-events: none; }
.tnx-sload[hidden] { display: none; }
.tnx-sload__bar { position: relative; display: inline-block; }
.tnx-sload__bar::before { content: "░░░░░░░"; }
.tnx-sload__bar i { position: absolute; left: 0; top: 0; overflow: hidden; width: 0; font-style: normal; animation: tnx-sload-fill 1.4s steps(7) infinite; }
@keyframes tnx-sload-fill { to { width: 100%; } }
@keyframes tnx-sload-blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .tnx-sload__bar i { animation: none; width: 57%; }
  .tnx-sr-none__crt span { animation: none; }
  .tnx-sr-amazon__btn { transition: none; }
}
/* === end TNX search v1 === */


/* === TNX uniformity b1 === */
/* Item 1: one heading rule.
   Page + archive H1s = pixel font (matches .tnx-page-heading h1 / .tnx-404 h1 in the parent theme).
   Article (post) + product titles = sans (var(--tnx-font), Inter). */
body.page:not(.home) .tnx-article__header h1,
.tnx-woo > h1.page-title,
.tnx-woo .woocommerce-products-header__title {
  margin: 0 0 18px;
  font-family: var(--tnx-pixel);
  font-size: clamp(2rem, 5vw, 3.8rem);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.12;
  text-shadow: .08em .08em 0 var(--tnx-lime);
  text-wrap: balance;
}
body.single-post .tnx-article__header h1,
.tnx-woo .product .product_title {
  font-family: var(--tnx-font);
  font-weight: 800;
  letter-spacing: -.03em;
}
.tnx-woo .product .product_title { line-height: 1.1; text-shadow: none; }

/* Item 1: Woo breadcrumb (Shop, product categories, product pages) as one compact row,
   not a near-empty full-width card */
.tnx-woo .tnx-crumbs {
  display: inline-block; max-width: 100%;
  padding: 12px 14px 8px; margin: 0 0 14px;
}
.tnx-woo .tnx-crumbs .last { flex-basis: auto; margin-top: 0; }

/* Item 6 (+12): no cart in an Amazon-only shop. Header link and count stay hidden
   (cart, checkout and account URLs 301 to /shop/ from functions.php) */
.tnx-header .tnx-cart-link,
.tnx-cart-link,
.tnx-cart-count { display: none !important; }

/* Item 5: no price output anywhere (backstop for the PHP filter) */
ul.products li.product .price,
.single-product .summary .price,
.single-product .product .price,
.wc-block-grid__product-price,
.wc-block-components-product-price,
.wp-block-woocommerce-product-price,
.wc-block-components-product-price__value,
.product .woocommerce-Price-amount,
.wc-block-grid__product .woocommerce-Price-amount,
.product_list_widget .woocommerce-Price-amount,
.tnx-sr-card__price { display: none !important; }
/* === end TNX uniformity b1 === */
/* === TNX guides dropdown v1 === */
/* Desktop/tablet layout only (theme switches to the hamburger panel at max-width 800px). */
@media (min-width: 801px) {
  .tnx-menu > .menu-item-has-children > a { display: inline-flex; align-items: center; gap: 7px; }
  .tnx-menu > .menu-item-has-children > a::after {
    content: ""; width: 0; height: 0; margin-top: 2px;
    border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor;
    transition: transform .15s ease;
  }
  .tnx-menu > .menu-item-has-children:hover > a::after,
  .tnx-menu > .menu-item-has-children:focus-within > a::after,
  .tnx-menu > .menu-item-has-children.is-open > a::after { transform: rotate(180deg); }
  /* Opened by first tap on touch devices (JS adds .is-open). */
  .tnx-menu > .menu-item-has-children.is-open > .sub-menu { display: block; }
}
@media (min-width: 801px) and (prefers-reduced-motion: reduce) {
  .tnx-menu > .menu-item-has-children > a::after { transition: none; }
}
/* Header fit between the hamburger breakpoint and ~1100px (7 top-level items + search + theme toggle). */
@media (min-width: 801px) and (max-width: 1100px) {
  .tnx-header__inner { gap: 18px; }
  .tnx-header__panel { gap: 12px; }
  .tnx-menu { gap: 2px; }
  .tnx-menu > li > a { padding: 6px 9px; font-size: .875rem; }
  .tnx-search { padding-left: 12px; }
  .tnx-search__input { width: 72px; }
  .tnx-search__input:focus { width: 120px; }
}
@media (min-width: 801px) and (max-width: 960px) {
  .tnx-logo__text { display: none; }
}
/* === end TNX guides dropdown v1 === */

/* === TNX recent price hide (27 Oct 2026) === */
/* Homepage "Recently viewed" carousel: no prices on the site (localStorage held £0.00). */
.tnx-recent__price { display: none !important; }
/* === end TNX recent price hide === */


/* === TNX header restyle v1 (28 Oct 2026) === */
/* Console-style header that echoes the CRT hero: chunky ink bottom edge with a lime rail,
   logo tile with an offset sticker shadow, "Tech X" as a mini green-screen chip with a
   blinking block cursor. Header only; footer logo is untouched. CSS only, no markup change. */
.tnx-header {
  border-bottom: 3px solid var(--tnx-ink);
  box-shadow: 0 4px 0 var(--tnx-lime);
}
.tnx-header .tnx-logo { gap: 12px; border-radius: 12px; }
.tnx-header .tnx-logo__mark {
  border-radius: 10px;
  box-shadow: 3px 3px 0 0 var(--tnx-lime), 3px 3px 0 2px var(--tnx-ink);
  transition: transform .12s ease, box-shadow .12s ease;
}
.tnx-header .tnx-logo:hover .tnx-logo__mark,
.tnx-header .tnx-logo:focus-visible .tnx-logo__mark {
  transform: translate(-1px, -1px);
  box-shadow: 4px 4px 0 0 var(--tnx-lime), 4px 4px 0 2px var(--tnx-ink);
}
.tnx-header .tnx-logo__text { align-items: center; gap: 8px; }
.tnx-header .tnx-logo__text strong { color: var(--tnx-ink); font-weight: 900; letter-spacing: -.035em; }
.tnx-header .tnx-logo__text > span {
  position: relative; display: inline-flex; align-items: center; gap: 1px;
  padding: 5px 7px 4px 8px;
  background: radial-gradient(ellipse at center, #08240f 0%, #041408 70%, #010602 100%);
  border: 2px solid var(--tnx-ink); border-radius: 7px;
  box-shadow: 2px 2px 0 var(--tnx-ink), inset 0 0 8px rgba(51,255,102,.18);
  color: #33ff66; font-family: var(--tnx-pixel); font-size: .8125rem; font-weight: 400;
  letter-spacing: .06em; line-height: 1; text-transform: uppercase;
  text-shadow: 0 0 4px rgba(51,255,102,.75);
}
.tnx-header .tnx-logo__text > span::after {
  content: ""; display: inline-block; width: .55em; height: .95em; margin-left: 3px;
  background: #33ff66; box-shadow: 0 0 6px rgba(51,255,102,.8);
  animation: tnx-crt-blink 1.1s steps(1) infinite;
}
.tnx-header .tnx-logo:focus-visible { outline: 3px solid var(--tnx-pink); outline-offset: 5px; }
.tnx-header .tnx-menu-toggle:focus-visible { outline: 3px solid var(--tnx-pink); outline-offset: 3px; }
@media (max-width: 800px) {
  .tnx-header .tnx-menu-toggle { transition: transform .12s ease, box-shadow .12s ease; }
  .tnx-header .tnx-menu-toggle:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--tnx-ink); }
  .tnx-header__panel { top: calc(100% + 4px); }
}
@media (max-width: 600px) {
  .tnx-header .tnx-logo { gap: 10px; }
  .tnx-header .tnx-logo__text { gap: 7px; font-size: 1.0625rem; }
  .tnx-header .tnx-logo__text > span { padding: 4px 6px 3px 7px; font-size: .8125rem; }
}
@media (max-width: 374px) {
  .tnx-header .tnx-logo__text { font-size: 1rem; gap: 6px; }
  .tnx-header .tnx-logo__text > span { padding: 4px 5px 3px 6px; font-size: .75rem; }
}
/* 961-1180px: compact chip so the 7 menu items, search and theme toggle still fit */
@media (min-width: 961px) and (max-width: 1180px) {
  .tnx-header .tnx-logo { gap: 9px; }
  .tnx-header .tnx-logo__text { gap: 6px; font-size: 1.0625rem; }
  .tnx-header .tnx-logo__text > span { padding: 3px 5px 2px 6px; font-size: .6875rem; letter-spacing: .03em; }
  .tnx-header .tnx-logo__text > span::after { margin-left: 2px; }
}
:root[data-theme="dark"] .tnx-header .tnx-logo__mark { box-shadow: 3px 3px 0 0 var(--tnx-pink), 3px 3px 0 2px var(--tnx-ink); }
:root[data-theme="dark"] .tnx-header .tnx-logo:hover .tnx-logo__mark,
:root[data-theme="dark"] .tnx-header .tnx-logo:focus-visible .tnx-logo__mark { box-shadow: 4px 4px 0 0 var(--tnx-pink), 4px 4px 0 2px var(--tnx-ink); }
@media (prefers-reduced-motion: reduce) {
  .tnx-header .tnx-logo__text > span::after { animation: none !important; }
  .tnx-header .tnx-logo__mark, .tnx-header .tnx-menu-toggle { transition: none !important; }
}
/* === end TNX header restyle v1 === */