/*
Theme Name: Kiosk
Theme URI: https://kiosk.supportedby.design
Author: Supported by Design
Author URI: https://supportedby.design
Description: A small, loud shop theme for selling zines. Built on the Team Compass visual language: cream, ink, electric blue, hard borders and offset shadows. WooCommerce ready, digital products first.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kiosk
Tags: e-commerce, one-column, two-columns, custom-menu, featured-images, full-width-template
WC requires at least: 8.0
WC tested up to: 9.5
*/

/* ---------------------------------------------------------------- tokens */
:root {
  --k-cream: #fdfaf5;
  --k-ink: #1a1a1a;
  --k-white: #ffffff;
  --k-blue: #0000ff;
  --k-blue-70: #6666ff;
  --k-peach: #ffe8de;
  --k-yellow: #ffff00;
  --k-purple: #9e00ce;

  --k-space-xxs: 16px;
  --k-space-xs: 24px;
  --k-space-s: 32px;
  --k-space-m: 48px;
  --k-space-l: 72px;

  --k-border: 3px solid var(--k-ink);
  --k-shadow: 5px 5px 0 0 var(--k-ink);
  --k-shadow-lg: 8px 8px 0 0 var(--k-ink);
  --k-shadow-soft: 4px 4px 30px 0 rgba(142, 142, 142, 0.25), 0 1px 1px 0 rgba(0, 0, 0, 0.25);

  --k-display: 'BBH Hegarty', 'Archivo Black', 'Arial Black', sans-serif;
  --k-serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --k-sans: 'Montserrat', system-ui, -apple-system, sans-serif;
  --k-mono: 'Kode Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  --k-gutter: 80px;
  --k-max: 1440px;
}

@media (max-width: 900px) { :root { --k-gutter: 24px; } }

/* ---------------------------------------------------------------- reset */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--k-cream);
  color: var(--k-ink);
  font-family: var(--k-sans);
  font-weight: 500;
  font-size: 18px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--k-blue); text-decoration: none; }
a:hover, a:focus { color: var(--k-blue-70); }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--k-purple);
  outline-offset: 3px;
}

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

.skip-link:focus {
  position: fixed; top: 16px; left: 16px; z-index: 999;
  background: var(--k-blue); color: var(--k-white);
  padding: 12px 20px; border: var(--k-border); clip: auto; width: auto; height: auto;
}

/* ---------------------------------------------------------------- type */
.k-display {
  font-family: var(--k-display);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.01em;
  color: var(--k-blue);
  margin: 0;
}

h1, h2, h3, h4 {
  font-family: var(--k-serif);
  font-weight: 700;
  line-height: 0.95;
  font-variation-settings: 'SOFT' 0, 'WONK' 1;
  margin: 0 0 var(--k-space-xxs);
}

h1 { font-size: clamp(34px, 4vw, 52px); }
h2 { font-size: clamp(30px, 3.2vw, 44px); }
h3 { font-size: clamp(22px, 2vw, 26px); }
h4 { font-size: 20px; }

.k-label {
  font-family: var(--k-mono);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: inline-block;
}

.k-lead { font-size: 20px; max-width: 34ch; }
.k-muted { opacity: 0.65; }

/* ---------------------------------------------------------------- layout */
.k-wrap { padding-left: var(--k-gutter); padding-right: var(--k-gutter); }
.k-section { padding-top: var(--k-space-l); padding-bottom: var(--k-space-l); }
.k-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--k-space-m); }
.k-rule-t { border-top: var(--k-border); }
.k-rule-b { border-bottom: var(--k-border); }
.k-on-white { background: var(--k-white); }

.k-section-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: var(--k-space-xs); margin-bottom: var(--k-space-s); flex-wrap: wrap;
}
.k-section-head h2 { margin: 0; max-width: 20ch; }

/* ---------------------------------------------------------------- strip */
.k-strip {
  height: 16px;
  background: linear-gradient(90deg,
    var(--k-blue) 0% 10%, var(--k-peach) 10% 20%, var(--k-yellow) 20% 30%,
    var(--k-purple) 30% 40%, var(--k-cream) 40% 50%, var(--k-blue) 50% 60%,
    var(--k-yellow) 60% 70%, var(--k-peach) 70% 80%, var(--k-purple) 80% 90%,
    var(--k-blue) 90% 100%);
}

/* ---------------------------------------------------------------- header */
.k-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--k-space-xs);
  padding: 20px var(--k-gutter);
  border-bottom: var(--k-border);
  background: var(--k-cream);
}
.k-brand { display: flex; align-items: baseline; gap: 12px; text-decoration: none; min-width: 0; }
.k-brand .k-display { font-size: 34px; }
.k-brand .k-label { color: var(--k-ink); opacity: 0.55; }
.k-brand:hover .k-display { color: var(--k-blue-70); }

.k-nav { display: flex; align-items: center; gap: var(--k-space-s); order: 2; margin-left: auto; }
.k-header__end { display: flex; align-items: center; gap: var(--k-space-xxs); order: 3; margin-left: var(--k-space-s); }
.k-nav ul { display: flex; align-items: center; gap: var(--k-space-s); list-style: none; margin: 0; padding: 0; }
.k-nav a { font-weight: 600; font-size: 18px; color: var(--k-ink); }
.k-nav a:hover, .k-nav .current-menu-item > a { color: var(--k-blue); }

.k-cart {
  display: flex; align-items: center; gap: 10px;
  border: var(--k-border); background: var(--k-white);
  padding: 8px 14px; font-weight: 600; font-size: 16px; color: var(--k-ink);
}
.k-cart:hover { background: var(--k-yellow); color: var(--k-ink); }

.k-menu-toggle { display: none; }

/* ---------------------------------------------------------------- buttons */
.k-btn,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce #respond input#submit, .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--k-sans); font-weight: 600; font-size: 18px; line-height: 1;
  padding: 16px var(--k-space-xs);
  background: var(--k-blue); color: var(--k-white);
  border: var(--k-border); border-radius: 0;
  box-shadow: var(--k-shadow);
  cursor: pointer; white-space: nowrap;
  transition: transform 0.08s ease, box-shadow 0.08s ease, background 0.12s ease;
  text-decoration: none;
}
.k-btn:hover, .k-btn:focus,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.woocommerce #respond input#submit:hover, .wp-block-button__link:hover {
  background: var(--k-blue); color: var(--k-white);
  transform: translate(3px, 3px); box-shadow: 2px 2px 0 0 var(--k-ink);
}
.k-btn:active { transform: translate(5px, 5px); box-shadow: none; }

.k-btn--ghost,
.woocommerce a.button.wc-backward, .woocommerce button.button:not(.alt),
.woocommerce a.button:not(.alt):not(.add_to_cart_button):not(.checkout-button) {
  background: var(--k-cream); color: var(--k-ink);
}
.k-btn--ghost:hover,
.woocommerce a.button.wc-backward:hover, .woocommerce button.button:not(.alt):hover {
  background: var(--k-yellow); color: var(--k-ink);
}
.k-btn--lg { font-size: 20px; padding: 20px var(--k-space-s); }
.k-btn[disabled], .woocommerce button.button:disabled { opacity: 0.45; box-shadow: none; transform: none; }

/* ---------------------------------------------------------------- ticker */
.k-ticker {
  background: var(--k-blue);
  border-top: var(--k-border); border-bottom: var(--k-border);
  padding: 14px 0; overflow: hidden;
}
.k-ticker__track {
  display: flex; align-items: center; gap: 28px; width: max-content;
  animation: k-scroll 28s linear infinite;
}
.k-ticker .k-label { color: var(--k-white); font-size: 14px; white-space: nowrap; }
@keyframes k-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .k-ticker__track { animation: none; } }

/* ---------------------------------------------------------------- hero */
.k-hero { align-items: center; padding-top: var(--k-space-l); padding-bottom: var(--k-space-m); }
.k-hero__copy { grid-column: span 7; display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
.k-hero__copy h1.k-display { font-size: clamp(44px, 6vw, 82px); }
.k-hero__art { grid-column: span 5; display: flex; justify-content: flex-end; }
.k-hero__art figure {
  margin: 0; border: var(--k-border); background: var(--k-white);
  box-shadow: 12px 12px 0 0 var(--k-blue); transform: rotate(-2deg); max-width: 400px;
}
.k-actions { display: flex; align-items: center; gap: var(--k-space-xs); flex-wrap: wrap; }
.k-reassure { display: flex; align-items: center; gap: 12px; font-size: 16px; }
.k-reassure svg { flex-shrink: 0; }

/* ---------------------------------------------------------------- cards */
.k-card {
  background: var(--k-white); border: var(--k-border); box-shadow: var(--k-shadow);
  padding: 28px; display: flex; flex-direction: column; gap: var(--k-space-xxs);
}
.k-card__num { font-family: var(--k-display); font-size: 30px; color: var(--k-blue); opacity: 0.25; }
.k-card__top { display: flex; align-items: center; justify-content: space-between; }
.k-cols-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--k-space-s); }

.k-list { display: flex; flex-direction: column; gap: 20px; margin: 0; padding: 0; list-style: none; }
.k-list li { display: flex; gap: 14px; align-items: flex-start; }
.k-list svg { flex-shrink: 0; margin-top: 3px; }

.k-badge {
  font-family: var(--k-mono); font-weight: 600; font-size: 13px;
  letter-spacing: 0.06em; text-transform: uppercase;
  border: 2px solid var(--k-ink); padding: 4px 10px;
  background: var(--k-blue); color: var(--k-white); display: inline-block;
}
.k-badge--quiet { background: var(--k-cream); color: var(--k-ink); }

/* ---------------------------------------------------------------- newsletter */
.k-signup {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--k-space-m);
  align-items: center; margin: 0 var(--k-gutter) var(--k-space-l);
  background: var(--k-blue); border: var(--k-border); box-shadow: var(--k-shadow-lg);
  padding: var(--k-space-m);
}
.k-signup__copy { grid-column: span 6; color: var(--k-white); }
.k-signup__copy h2 { color: var(--k-white); }
.k-signup__copy .k-label { color: var(--k-white); opacity: 0.8; }
.k-signup__form { grid-column: span 6; display: flex; gap: var(--k-space-xxs); }
.k-signup__form input[type="email"] { flex-grow: 1; }

/* ---------------------------------------------------------------- forms */
input[type="text"], input[type="email"], input[type="password"], input[type="tel"],
input[type="url"], input[type="number"], input[type="search"], textarea, select,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.select2-container .select2-selection--single {
  width: 100%; height: 58px; padding: 0 18px;
  background: var(--k-white); color: var(--k-ink);
  border: var(--k-border); border-radius: 0;
  font-family: var(--k-sans); font-weight: 500; font-size: 18px;
  appearance: none;
}
textarea, .woocommerce form .form-row textarea { height: 120px; padding: 16px 18px; line-height: 1.5; }
::placeholder { color: var(--k-ink); opacity: 0.35; }
label, .woocommerce form .form-row label {
  font-family: var(--k-mono); font-weight: 600; font-size: 13px;
  letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 8px; display: block;
}

/* ---------------------------------------------------------------- footer */
.k-footer { border-top: var(--k-border); background: var(--k-cream); padding: 56px var(--k-gutter) 40px; }
.k-footer__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--k-space-m); }
.k-footer__col { display: flex; flex-direction: column; gap: 10px; }
.k-footer__col .k-label { margin-bottom: 6px; }
.k-footer a { font-size: 16px; color: var(--k-ink); }
.k-footer a:hover { color: var(--k-blue); }
.k-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.k-footer__pay { display: flex; align-items: center; gap: 10px; border: var(--k-border); background: var(--k-white); padding: 10px 14px; font-size: 15px; font-weight: 600; }
.k-footer__base {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px;
  border-top: var(--k-border); padding-top: 20px; margin-top: var(--k-space-m);
  font-size: 14px; opacity: 0.7;
}

/* ================================================================ WOOCOMMERCE */

.woocommerce .k-woo { padding: var(--k-space-m) var(--k-gutter) var(--k-space-l); }
.woocommerce-breadcrumb {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 18px var(--k-gutter); margin: 0 calc(var(--k-gutter) * -1) var(--k-space-m);
  border-bottom: var(--k-border);
  font-size: 15px; font-weight: 600; color: var(--k-ink);
}
.woocommerce-breadcrumb a { color: var(--k-blue); }

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { font-size: 15px; }
.woocommerce .woocommerce-ordering select { height: 48px; font-size: 16px; }

/* --------------------------------------------------------- product loop */
.woocommerce ul.products {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--k-space-s); margin: 0; padding: 0; list-style: none;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; }
.woocommerce ul.products li.product {
  width: auto; margin: 0; float: none; padding: 0;
  display: flex; flex-direction: column;
  background: var(--k-white); border: var(--k-border); box-shadow: var(--k-shadow);
  transition: transform 0.1s ease, box-shadow 0.1s ease;
}
.woocommerce ul.products li.product:hover { transform: translate(-3px, -3px); box-shadow: 8px 8px 0 0 var(--k-ink); }
.woocommerce ul.products li.product a img {
  margin: 0; border-bottom: var(--k-border);
  aspect-ratio: 3 / 4; object-fit: cover; object-position: top; width: 100%;
}
.k-tile__body { display: flex; flex-direction: column; gap: 12px; padding: var(--k-space-xs); flex-grow: 1; }
.k-tile__meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--k-serif); font-weight: 700; font-size: 24px; line-height: 0.95;
  font-variation-settings: 'SOFT' 0, 'WONK' 1;
  padding: 0; margin: 0; color: var(--k-ink); min-height: 2.2em;
}
.woocommerce ul.products li.product .price {
  font-family: var(--k-display); font-size: 26px; color: var(--k-blue); margin: 0;
}
.k-tile__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 8px; }
.woocommerce ul.products li.product .button { font-size: 16px; padding: 12px 18px; margin: 0; }
.woocommerce span.onsale {
  position: static; display: inline-block; border-radius: 0; min-height: 0; min-width: 0;
  background: var(--k-yellow); color: var(--k-ink); border: 2px solid var(--k-ink);
  font-family: var(--k-mono); font-size: 13px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; padding: 4px 10px; line-height: 1.2; margin: 0;
}

/* --------------------------------------------------------- single product */
.woocommerce div.product { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 56px; align-items: start; }
.woocommerce div.product div.images { grid-column: span 5; width: auto; float: none; margin: 0; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
  border: var(--k-border); box-shadow: 10px 10px 0 0 var(--k-blue); background: var(--k-white);
}
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: 14px; margin: 20px 0 0; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs img { width: 92px; height: 92px; object-fit: cover; border: var(--k-border); opacity: 1; }

.woocommerce div.product div.summary { grid-column: span 7; width: auto; float: none; margin: 0; display: flex; flex-direction: column; gap: var(--k-space-xs); }
.woocommerce div.product .product_title { font-size: clamp(34px, 3.6vw, 52px); margin: 0; max-width: 18ch; }
.woocommerce div.product p.price, .woocommerce div.product span.price {
  font-family: var(--k-display); font-size: clamp(38px, 4vw, 56px); color: var(--k-blue); margin: 0;
  display: flex; align-items: baseline; gap: 16px;
}
.woocommerce div.product p.price small { font-family: var(--k-sans); font-size: 16px; font-weight: 500; color: var(--k-ink); opacity: 0.6; }
.woocommerce div.product .woocommerce-product-details__short-description { font-size: 20px; max-width: 34ch; }

.woocommerce div.product form.cart { display: flex; align-items: center; gap: 20px; margin: 0; flex-wrap: wrap; }
.woocommerce div.product form.cart div.quantity { display: flex; align-items: center; border: var(--k-border); background: var(--k-white); margin: 0; float: none; }
.woocommerce div.product form.cart .quantity input.qty {
  width: 62px; height: 58px; border: 0; text-align: center; font-size: 20px; font-weight: 600; padding: 0;
}
.woocommerce div.product form.cart .button { padding: 18px var(--k-space-s); }

.k-pdp-reassure {
  display: flex; align-items: center; gap: 14px;
  background: var(--k-white); border: var(--k-border); padding: 16px 20px; max-width: 620px; font-size: 16px;
}
.k-pdp-meta { display: flex; flex-direction: column; max-width: 620px; margin-top: 8px; }
.k-pdp-meta__row {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  border-bottom: 2px solid rgba(26, 26, 26, 0.15); padding: 12px 0;
}
.k-pdp-meta__row .k-label { opacity: 0.6; }
.k-pdp-meta__row span:last-child { font-size: 16px; font-weight: 600; text-align: right; }

.woocommerce div.product .woocommerce-tabs { grid-column: 1 / -1; margin-top: var(--k-space-m); }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: 0; padding: 0; margin: 0 0 -3px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { content: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: var(--k-cream); border: var(--k-border); border-radius: 0; margin: 0 -3px 0 0; padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--k-mono); font-weight: 600; font-size: 13px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--k-ink); padding: 16px 24px; display: block;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--k-white); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--k-blue); }
.woocommerce div.product .woocommerce-tabs .panel {
  background: var(--k-white); border: var(--k-border); padding: var(--k-space-s); margin: 0; max-width: none;
}
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 26px; }

.woocommerce .related.products, .woocommerce .upsells.products { grid-column: 1 / -1; margin-top: var(--k-space-l); }

/* --------------------------------------------------------- cart + checkout
   Layout is stock WooCommerce on purpose. Only the skin changes here.        */
.woocommerce table.shop_table {
  border: var(--k-border); border-radius: 0; border-collapse: collapse; background: var(--k-white);
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td {
  border-top: 2px solid rgba(26, 26, 26, 0.15); padding: 16px; font-size: 16px;
}
.woocommerce table.shop_table th {
  font-family: var(--k-mono); font-weight: 600; font-size: 13px;
  letter-spacing: 0.06em; text-transform: uppercase;
}
.woocommerce table.shop_table tfoot .order-total td { font-size: 20px; }
.woocommerce table.shop_table tfoot .order-total .amount {
  font-family: var(--k-display); font-size: 34px; color: var(--k-blue);
}

.woocommerce-checkout h3, .woocommerce-cart h2, .woocommerce-checkout #order_review_heading { font-size: 32px; }
.woocommerce form.checkout_coupon, .woocommerce-info, .woocommerce-message, .woocommerce-error {
  border: var(--k-border); border-radius: 0; border-top-width: 3px;
  background: var(--k-white); color: var(--k-ink);
  padding: 16px 20px; margin: 0 0 var(--k-space-xs); font-size: 16px;
}
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before { display: none; }
.woocommerce-error { background: var(--k-peach); }
.woocommerce-message { background: var(--k-yellow); }

.woocommerce form .form-row { padding: 0; margin: 0 0 var(--k-space-xs); }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 12px); }
.woocommerce form .form-row-last { float: right; }

#order_review, .woocommerce-checkout-review-order {
  background: var(--k-white); border: var(--k-border); box-shadow: var(--k-shadow-lg); padding: var(--k-space-s);
}
#order_review table.shop_table { border: 0; box-shadow: none; }
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods {
  border: 0; padding: 0; margin: 0 0 var(--k-space-xs); display: flex; flex-direction: column; gap: 14px;
}
.woocommerce-checkout #payment ul.payment_methods li {
  border: var(--k-border); background: var(--k-cream); padding: 20px; list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) {
  background: var(--k-white); box-shadow: var(--k-shadow);
}
.woocommerce-checkout #payment ul.payment_methods li label {
  font-family: var(--k-sans); font-size: 18px; font-weight: 600;
  letter-spacing: 0; text-transform: none; display: inline; margin: 0;
}
.woocommerce-checkout #payment div.payment_box {
  background: transparent; margin: 16px 0 0 40px; padding: 0; font-size: 16px; color: var(--k-ink);
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
  appearance: none; width: 26px; height: 26px; border: var(--k-border);
  background: var(--k-white); margin-right: 14px; vertical-align: middle; position: relative;
}
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"]:checked::after {
  content: ""; position: absolute; inset: 4px; background: var(--k-blue);
}
.woocommerce-checkout #payment .place-order { padding: 0; margin-top: var(--k-space-xs); }
.woocommerce #payment #place_order, .woocommerce-checkout .place-order button {
  width: 100%; font-size: 20px; padding: 22px;
}
.woocommerce form .form-row .input-checkbox,
.woocommerce-form__input-checkbox {
  appearance: none; width: 26px; height: 26px; border: var(--k-border);
  background: var(--k-white); vertical-align: middle; margin-right: 12px; position: relative; top: -2px;
}
.woocommerce form .form-row .input-checkbox:checked,
.woocommerce-form__input-checkbox:checked { background: var(--k-blue); }
.woocommerce form .form-row .input-checkbox:checked::after,
.woocommerce-form__input-checkbox:checked::after {
  content: ""; position: absolute; left: 6px; top: 1px; width: 7px; height: 14px;
  border: solid var(--k-white); border-width: 0 3px 3px 0; transform: rotate(45deg);
}

.woocommerce-order, .woocommerce-thankyou-order-received {
  font-family: var(--k-serif); font-weight: 700; font-size: 32px; line-height: 0.95;
}
.woocommerce ul.order_details {
  display: flex; flex-wrap: wrap; gap: 0; margin: var(--k-space-xs) 0; padding: 0;
  border: var(--k-border); background: var(--k-white);
}
.woocommerce ul.order_details li {
  border-right: 2px solid rgba(26, 26, 26, 0.15); margin: 0; padding: 16px 24px;
  font-family: var(--k-mono); font-size: 12px; letter-spacing: 0.06em;
}
.woocommerce ul.order_details li strong { font-family: var(--k-sans); font-size: 18px; letter-spacing: 0; }
.woocommerce .woocommerce-order-downloads .button { font-size: 16px; padding: 12px 18px; }

/* ---------------------------------------------------------------- responsive */
@media (max-width: 1100px) {
  .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .k-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .k-menu-toggle {
    display: inline-flex; align-items: center; gap: 10px;
    background: var(--k-white); border: var(--k-border); padding: 10px 14px;
    font-family: var(--k-mono); font-weight: 600; font-size: 13px;
    letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer;
  }
  .k-nav {
    display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 20;
    flex-direction: column; align-items: stretch; gap: var(--k-space-xxs);
    background: var(--k-cream); border-bottom: var(--k-border); padding: var(--k-space-xs) var(--k-gutter);
  }
  .k-nav.is-open { display: flex; }
  .k-nav ul { flex-direction: column; align-items: flex-start; gap: var(--k-space-xxs); }
  .k-header { position: relative; gap: var(--k-space-xxs); }
  .k-header__end { margin-left: 0; }
  .k-nav { margin-left: 0; }
  .k-brand .k-label { display: none; }
  .k-brand .k-display { font-size: 28px; }
  .k-grid, .k-signup { grid-template-columns: 1fr; gap: var(--k-space-s); }
  .k-grid > *, .k-hero__copy, .k-hero__art, .k-signup__copy, .k-signup__form { grid-column: 1 / -1; }
  .k-hero__art { justify-content: flex-start; }
  .k-cols-3, .k-footer__cols { grid-template-columns: 1fr; }
  .woocommerce ul.products { grid-template-columns: 1fr; }
  .woocommerce div.product { grid-template-columns: 1fr; gap: var(--k-space-s); }
  .woocommerce div.product div.images, .woocommerce div.product div.summary { grid-column: 1 / -1; }
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; float: none; }
  .k-signup { margin-left: var(--k-gutter); margin-right: var(--k-gutter); padding: var(--k-space-s); }
  .k-signup__form { flex-direction: column; align-items: stretch; }
}
@media (max-width: 560px) {
  body { font-size: 17px; }
  .k-hero__art figure { transform: none; box-shadow: 8px 8px 0 0 var(--k-blue); }
  .woocommerce div.product form.cart { flex-direction: column; align-items: stretch; }
  .woocommerce div.product form.cart .button { width: 100%; }
}

@media print {
  .k-header, .k-footer, .k-ticker, .k-strip, .k-signup { display: none; }
  body { background: #fff; }
}
