/* ==========================================================================
   NAD+ The One — WordPress & WooCommerce chrome
   Everything WordPress or WooCommerce prints that the static build never had:
   notices, cart, checkout, account, forms, comments, editor blocks.
   ========================================================================== */

/* ---------- Admin bar ---------- */

body.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
}

/* ---------- Skip link ---------- */

.skip-link:focus {
  position: fixed !important;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 200;
  width: auto !important;
  height: auto !important;
  clip: auto !important;
  margin: 0 !important;
  padding: 0.75rem 1.25rem;
  background: var(--primary);
  color: var(--primary-foreground);
  border-radius: var(--radius);
  font-size: 0.8125rem;
}

/* ---------- Generic page shell ---------- */

.section--page { border-top: 0; }
.section--page .entry-header { margin-bottom: 2.5rem; }

.entry-content { max-width: 46rem; }
.entry-content > * + * { margin-top: 1.25rem; }
.entry-content p,
.entry-content li { font-size: 0.9375rem; line-height: 1.8; color: var(--muted-foreground); }
.entry-content h2 { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.6rem, 3vw, 2.25rem); line-height: 1.1; margin-top: 2.5rem; color: var(--foreground); }
.entry-content h3 { font-size: 1.125rem; font-weight: 400; margin-top: 2rem; color: var(--foreground); }
.entry-content a { color: var(--foreground); border-bottom: 1px solid color-mix(in oklab, var(--foreground) 35%, transparent); }
.entry-content a:hover { border-color: var(--foreground); }
.entry-content ul { list-style: disc; padding-left: 1.25rem; }
.entry-content ol { list-style: decimal; padding-left: 1.25rem; }
.entry-content li + li { margin-top: 0.4rem; }
.entry-content blockquote {
  padding: 1.25rem 1.5rem;
  border-left: 2px solid var(--primary);
  background: var(--card);
  font-family: var(--font-display);
  font-size: 1.25rem;
}
.entry-content img { border-radius: var(--radius); }
.entry-content table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.entry-content th, .entry-content td { padding: 0.85rem 1rem; border-bottom: 1px solid color-mix(in oklab, var(--border) 60%, transparent); text-align: left; }

.alignwide { max-width: none; }
.alignfull { max-width: none; }
.aligncenter { margin-inline: auto; }
.alignleft { float: left; margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }

.page-links, .navigation, .pagination { font-size: 0.8125rem; letter-spacing: 0.1em; text-transform: uppercase; }
.pagination .page-numbers {
  display: inline-grid;
  place-items: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding-inline: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--border) 70%, transparent);
  border-radius: 999px;
  margin-right: 0.4rem;
}
.pagination .page-numbers.current { background: var(--primary); color: var(--primary-foreground); border-color: var(--primary); }

/* ---------- WooCommerce buttons ---------- */

.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.wc-block-components-button,
.wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.9rem 1.9rem;
  border: 0;
  border-radius: 999px;
  background: var(--primary);
  color: var(--primary-foreground);
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.25s ease, opacity 0.25s ease;
}

.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce button.button.alt:hover,
.wc-block-components-button:hover {
  background: color-mix(in oklab, var(--primary) 88%, #000);
  color: var(--primary-foreground);
}

.woocommerce .button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] { opacity: 0.45; cursor: not-allowed; }

/* Our own .btn classes must win when both are present on one element. */
.woocommerce button.button.btn--block,
.btn.btn--block { width: 100%; padding-block: 1.1rem; }

/* ---------- WooCommerce notices ---------- */

.woocommerce-notices-wrapper:empty { display: none; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  margin: 0 0 1.75rem;
  padding: 1.1rem 1.35rem;
  list-style: none;
  border: 1px solid color-mix(in oklab, var(--border) 80%, transparent);
  border-left: 2px solid var(--primary);
  border-radius: var(--radius);
  background: var(--card);
  font-size: 0.875rem;
  color: var(--foreground);
}
.woocommerce-error { border-left-color: #a33; }
.woocommerce-message .button,
.woocommerce-info .button { margin-left: auto; padding: 0.6rem 1.25rem; font-size: 0.6875rem; }

/* ---------- Product archive ---------- */

.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: 1.5rem;
  margin: 2.5rem 0 0;
  list-style: none;
}
.woocommerce ul.products li.product {
  margin: 0;
  padding: 0;
  width: auto;
  float: none;
  background: var(--card);
  border: 1px solid color-mix(in oklab, var(--border) 60%, transparent);
  border-radius: var(--radius);
  overflow: hidden;
  text-align: left;
}
.woocommerce ul.products li.product a img { margin: 0; aspect-ratio: 1 / 1; object-fit: cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  padding: 1.25rem 1.25rem 0;
  font-size: 1rem;
  font-weight: 400;
}
.woocommerce ul.products li.product .price {
  display: block;
  padding: 0.4rem 1.25rem 0;
  font-family: var(--font-display);
  font-size: 1.5rem;
  color: var(--foreground);
}
.woocommerce ul.products li.product .button { margin: 1.25rem; }
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { font-size: 0.8125rem; color: var(--muted-foreground); }
.woocommerce span.onsale {
  min-height: 0;
  min-width: 0;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  background: var(--accent);
  color: var(--foreground);
  font-size: 0.625rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.4;
}

/* ---------- Single product: bits Woo prints that the design didn't plan for ---------- */

.nadone-product .single_variation_wrap .woocommerce-variation { display: none; }
.nadone-product .nadone-variations { margin: 0; }
.nadone-product .nadone-variation-row { display: grid; gap: 0.4rem; margin-top: 1.25rem; }
.nadone-product .nadone-variation-row label { font-size: 0.6875rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted-foreground); }
.nadone-product .nadone-variation-row select {
  width: 100%;
  padding: 0.85rem 1.1rem;
  background: var(--card);
  border: 1px solid color-mix(in oklab, var(--border) 70%, transparent);
  border-radius: var(--radius);
  font: inherit;
  color: inherit;
}
.nadone-product .reset_variations { display: none; }
.nadone-product .woocommerce-variation-add-to-cart { display: block; }
.nadone-product .woocommerce-variation-price { display: none; }

.nadone-simple-cart { margin-top: 2.25rem; }
.nadone-simple-cart .price { font-family: var(--font-display); font-size: 2rem; }
.nadone-simple-cart .quantity { display: inline-flex; margin-right: 0.75rem; }
.nadone-simple-cart .quantity input {
  width: 5rem;
  padding: 0.9rem 0.75rem;
  text-align: center;
  background: var(--card);
  border: 1px solid color-mix(in oklab, var(--border) 70%, transparent);
  border-radius: var(--radius);
  font: inherit;
}
.nadone-simple-cart form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.nadone-simple-cart .stock { width: 100%; font-size: 0.8125rem; color: var(--muted-foreground); }

.nadone-product .supply__price .woocommerce-Price-amount,
.nadone-product .purchase__price .woocommerce-Price-amount,
.nadone-product .buybar__total .woocommerce-Price-amount { font: inherit; }
.nadone-product .supply__sub .woocommerce-Price-amount { font: inherit; }
.nadone-product bdi { unicode-bidi: normal; }

/* Review form */
.nadone-reviews { margin-top: 3rem; max-width: 40rem; }
.nadone-review-form summary {
  cursor: pointer;
  padding: 1.1rem 0;
  border-top: 1px solid color-mix(in oklab, var(--border) 60%, transparent);
  border-bottom: 1px solid color-mix(in oklab, var(--border) 60%, transparent);
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.nadone-review-form[open] summary { border-bottom-color: transparent; }
#review_form { padding-top: 1.5rem; }
#review_form p { margin-bottom: 1.1rem; }
#review_form label,
.comment-form label { display: block; margin-bottom: 0.4rem; font-size: 0.75rem; letter-spacing: 0.08em; color: var(--muted-foreground); }
#review_form input[type="text"],
#review_form input[type="email"],
#review_form textarea,
#review_form select { width: 100%; }
.comment-form-cookies-consent { display: flex; align-items: center; gap: 0.6rem; font-size: 0.8125rem; }
.comment-form-cookies-consent label { margin: 0; }
.comment-form-cookies-consent input { width: auto; }

/* ---------- Forms ---------- */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
select,
textarea,
.wc-block-components-text-input input,
.select2-container .select2-selection--single {
  width: 100%;
  padding: 0.85rem 1.1rem;
  background: var(--card);
  border: 1px solid color-mix(in oklab, var(--border) 70%, transparent);
  border-radius: var(--radius);
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 300;
  color: var(--foreground);
  transition: border-color 0.2s ease;
}
input:focus, select:focus, textarea:focus { border-color: var(--foreground); outline: none; }
textarea { min-height: 9rem; resize: vertical; }
.select2-container--default .select2-selection--single { height: auto; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.4; padding: 0; color: var(--foreground); }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); right: 0.75rem; }
.select2-dropdown { border-color: color-mix(in oklab, var(--border) 70%, transparent); border-radius: var(--radius); }

.required { color: #a33; }

/* ---------- Cart ---------- */

.woocommerce table.shop_table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid color-mix(in oklab, var(--border) 60%, transparent);
  border-radius: var(--radius);
  background: var(--card);
  margin-bottom: 2rem;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid color-mix(in oklab, var(--border) 45%, transparent);
  font-size: 0.875rem;
  font-weight: 300;
  vertical-align: middle;
}
.woocommerce table.shop_table th {
  font-size: 0.6875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 400;
  color: var(--muted-foreground);
  text-align: left;
}
.woocommerce table.shop_table tbody tr:last-child td { border-bottom: 0; }
.woocommerce table.cart img { width: 4.5rem; height: auto; border-radius: var(--radius); }
.woocommerce a.remove {
  display: inline-grid;
  place-items: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  color: var(--muted-foreground) !important;
  font-size: 1rem;
  line-height: 1;
  text-decoration: none;
}
.woocommerce a.remove:hover { background: var(--muted); color: var(--foreground) !important; }
.woocommerce .quantity input.qty {
  width: 4.5rem;
  padding: 0.6rem 0.5rem;
  text-align: center;
}
.woocommerce .cart-collaterals { margin-top: 2rem; }
.woocommerce .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: 1.75rem;
  line-height: 1.1;
  margin-bottom: 1.25rem;
}
.woocommerce .cart_totals .order-total .amount { font-family: var(--font-display); font-size: 1.5rem; }
.woocommerce .coupon { display: flex; gap: 0.6rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.woocommerce .coupon input { width: auto; flex: 1 1 12rem; }
.woocommerce .wc-proceed-to-checkout { margin-top: 1.5rem; }
.woocommerce .wc-proceed-to-checkout .checkout-button { width: 100%; }
.woocommerce .cart-empty { font-family: var(--font-display); font-size: 2rem; font-weight: 300; }
.woocommerce .return-to-shop { margin-top: 1.5rem; }

@media (min-width: 900px) {
  .woocommerce .cart-collaterals { display: flex; justify-content: flex-end; }
  .woocommerce .cart-collaterals .cart_totals { width: min(26rem, 100%); }
}

/* ---------- Checkout ---------- */

.woocommerce-checkout .col2-set { display: grid; gap: 2.5rem; }
@media (min-width: 900px) { .woocommerce-checkout .col2-set { grid-template-columns: 1fr 1fr; } }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { width: auto; float: none; }
.woocommerce form .form-row { display: block; margin-bottom: 1.1rem; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 0.4rem; font-size: 0.75rem; letter-spacing: 0.08em; color: var(--muted-foreground); }
.woocommerce form .form-row-first,
.woocommerce form .form-row-last { width: 100%; float: none; }
@media (min-width: 600px) {
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last { display: inline-block; width: calc(50% - 0.4rem); vertical-align: top; }
  .woocommerce form .form-row-first { margin-right: 0.7rem; }
}
#order_review { margin-top: 2rem; }
#payment { background: var(--card); border: 1px solid color-mix(in oklab, var(--border) 60%, transparent); border-radius: var(--radius); padding: 1.5rem; }
#payment ul.payment_methods { list-style: none; margin: 0 0 1.25rem; padding: 0; border-bottom: 1px solid color-mix(in oklab, var(--border) 45%, transparent); }
#payment ul.payment_methods li { padding-bottom: 1rem; font-size: 0.9375rem; }
#payment div.payment_box { margin-top: 0.75rem; padding: 1rem 1.25rem; background: var(--muted); border-radius: var(--radius); font-size: 0.8125rem; color: var(--muted-foreground); }
#payment div.payment_box::before { display: none; }
#place_order { width: 100%; }
.woocommerce-terms-and-conditions-wrapper { font-size: 0.8125rem; color: var(--muted-foreground); margin-bottom: 1.25rem; }

/* ---------- Order received / account ---------- */

.woocommerce-order-overview {
  list-style: none;
  display: grid;
  gap: 1rem;
  margin: 2rem 0;
  padding: 1.5rem;
  background: var(--card);
  border: 1px solid color-mix(in oklab, var(--border) 60%, transparent);
  border-radius: var(--radius);
}
@media (min-width: 800px) { .woocommerce-order-overview { grid-template-columns: repeat(4, 1fr); } }
.woocommerce-order-overview li { font-size: 0.9375rem; }
.woocommerce-order-overview strong { display: block; font-size: 0.6875rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted-foreground); font-weight: 400; }

.woocommerce-MyAccount-navigation ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; }
.woocommerce-MyAccount-navigation li a {
  display: inline-block;
  padding: 0.6rem 1.2rem;
  border: 1px solid color-mix(in oklab, var(--border) 70%, transparent);
  border-radius: 999px;
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.woocommerce-MyAccount-navigation li.is-active a { background: var(--primary); color: var(--primary-foreground); border-color: var(--primary); }
@media (min-width: 900px) {
  .woocommerce-account .woocommerce { display: grid; grid-template-columns: 15rem 1fr; gap: 3rem; align-items: start; }
  .woocommerce-MyAccount-navigation ul { flex-direction: column; }
}

/* ---------- Block cart & checkout (if you keep the block pages) ---------- */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  --wp--preset--color--contrast: var(--foreground);
  font-family: var(--font-sans);
  font-weight: 300;
}
.wc-block-components-title,
.wp-block-woocommerce-cart h1,
.wp-block-woocommerce-checkout h1 {
  font-family: var(--font-display) !important;
  font-weight: 300 !important;
  letter-spacing: -0.02em;
}
.wc-block-components-totals-item__value,
.wc-block-formatted-money-amount { font-family: var(--font-sans); }
.wc-block-cart-item__wrap .wc-block-components-product-name { font-size: 1rem; }
.wc-block-components-panel__button,
.wc-block-components-text-input label { font-family: var(--font-sans); }

/* ---------- Comments ---------- */

.comment-list { list-style: none; display: grid; gap: 1.25rem; margin-top: 2rem; }
.comment-body {
  background: var(--card);
  border: 1px solid color-mix(in oklab, var(--border) 60%, transparent);
  border-radius: var(--radius);
  padding: 1.5rem;
  font-size: 0.875rem;
  color: var(--muted-foreground);
}
.comment-author { font-size: 0.8125rem; color: var(--foreground); }
.comment-reply-title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 300; }

/* ---------- Footer widgets ---------- */

.site-footer__widgets { display: grid; gap: 2rem; margin-bottom: 3rem; }
@media (min-width: 800px) { .site-footer__widgets { grid-template-columns: repeat(3, 1fr); } }
.site-footer__widgets ul { list-style: none; }
.site-footer__widgets li + li { margin-top: 0.65rem; }
.site-footer__widgets a { font-size: 0.875rem; color: var(--muted-foreground); }

/* ---------- Footer menus rendered by wp_nav_menu ---------- */

.site-footer .menu { list-style: none; }
.site-footer .menu li + li { margin-top: 0.65rem; }
.site-footer .menu a { font-size: 0.875rem; color: var(--muted-foreground); }
.site-footer .menu a:hover { color: var(--foreground); }

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ---------- Buy button safety net ----------
   WooCommerce marks the add-to-cart button "selection needed" until its
   variation script has matched a variation. The first supply option is always
   preselected here, so the button must stay usable even if that script is
   slow, blocked or errors. */

.nadone-product .single_add_to_cart_button.wc-variation-selection-needed {
  opacity: 1;
  cursor: pointer;
  pointer-events: auto;
}
.nadone-product .woocommerce-variation-add-to-cart-disabled { opacity: 1; }

/* ---------- Neutralise WooCommerce's default product floats ----------
   post_class() puts a bare "product" class on the single-product wrapper, and
   WooCommerce's own rules target `div.product div.images` / `div.summary` with
   floats and 48% widths. The layout here is a grid, so those are reset. */

.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.woocommerce div.product .gallery,
.woocommerce div.product .entry-summary {
  float: none;
  width: auto;
  margin: 0;
}
.woocommerce div.product .woocommerce-tabs { display: none; }

/* ---------- Custom logo (Appearance → Customise → Site Identity) ----------
   The wordmark is sized by height so any aspect ratio scales predictably.
   The max-width stops a tall or square upload stretching the header. */

.site-header__logo img,
.site-footer img {
  max-width: 220px;
  object-fit: contain;
}
