/*
 * Notable block theme. Every value here is a token (theme.json presets, aliased
 * to the --nw-* names the Cloudflare platform uses), so a client variation
 * changes the look without touching this file. Do not add client-specific
 * rules: a need the tokens cannot express is a new shared rule or block.
 *
 * One button system and one hover for every button the site can show,
 * WooCommerce included (docs/WORDPRESS_THEME.md, "Buttons and hovers").
 */
:root {
  --nw-surface: var(--wp--preset--color--surface);
  --nw-bg: var(--wp--preset--color--bg);
  --nw-ink: var(--wp--preset--color--ink);
  --nw-muted: var(--wp--preset--color--muted);
  --nw-line: var(--wp--preset--color--line);
  --nw-accent: var(--wp--preset--color--accent);
  --nw-accent-ink: var(--wp--preset--color--accent-ink);
  --nw-dark: var(--wp--preset--color--dark);
  --nw-dark-ink: var(--wp--preset--color--dark-ink);
  --nw-primary: var(--wp--preset--color--primary);
  --nw-primary-ink: var(--wp--preset--color--primary-ink);
  --nw-font: var(--wp--preset--font-family--body);
  --nw-display-font: var(--wp--preset--font-family--display);
  --nw-display-stretch: var(--wp--custom--display-stretch, normal);
  --nw-max: var(--wp--style--global--wide-size);
  --nw-radius: var(--wp--custom--radius);
  --nw-button-radius: var(--wp--custom--button-radius);
  /* Button colours are variables so a band (dark, accent, cover) restyles its buttons without a specificity fight. */
  --nw-btn-bg: var(--nw-primary);
  --nw-btn-ink: var(--nw-primary-ink);
  --nw-btn2-ink: var(--wp--custom--outline-ink, var(--nw-primary));
  --nw-shadow: 0 14px 34px -18px color-mix(in srgb, var(--nw-ink) 45%, transparent);
  --nw-ease: .18s ease;
  --wc-form-border-color: var(--nw-line);
  --wc-form-border-radius: 8px;
  --wc-form-color-background: var(--nw-surface);
  --wc-form-color-text: var(--nw-ink);
}
/* The display face's width (a client's display font may be an expanded cut) follows it wherever it is used. */
:where(h1, h2, h3, h4, h5, h6, .wp-block-site-title, .wp-block-post-title) { font-stretch: var(--nw-display-stretch); }

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; overflow-x: clip; }
img { max-width: 100%; height: auto; }
.wp-site-blocks { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.wp-site-blocks > main, .wp-site-blocks > .wp-block-woocommerce-page-content-wrapper { flex: 1 0 auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.nt-main { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--70); }
.nt-main:has(> .wp-block-post-content > .nw-section:first-child) { padding-block-start: 0; }
.nt-main:has(> .wp-block-post-content > .nw-section:last-child) { padding-block-end: 0; }
.nt-page-title { margin-block-end: var(--wp--preset--spacing--50); }
.nt-kicker, .nt-card__kicker { color: var(--nw-muted); text-transform: uppercase; letter-spacing: .12em; font-size: var(--wp--preset--font-size--small); font-weight: 700; }

/* Links: never the browser's blue, one hover everywhere. */
a { color: var(--nw-ink); text-decoration-thickness: 1px; text-underline-offset: .18em; transition: color var(--nw-ease), text-decoration-color var(--nw-ease); }
a:where(:not(.wp-element-button):not(.wp-block-button__link):not(.nw-button)):hover { color: var(--nw-primary); text-decoration-thickness: 2px; }
.has-dark-background-color a:where(:not(.wp-element-button)), .nw-section--dark a:where(:not(.nw-button)) { color: var(--nw-dark-ink); }
/* On dark bands a link keeps its colour (an accent can fail contrast there) and hovers by its underline. */
.has-dark-background-color a:where(:not(.wp-element-button)):hover, .nw-section--dark a:where(:not(.nw-button)):hover { color: var(--nw-dark-ink); text-decoration-line: underline; text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--nw-primary); outline-offset: 3px; }

/* Header */
.nt-header { position: sticky; top: 0; z-index: 50; background: var(--nw-surface); border-bottom: 1px solid var(--nw-line); padding-block: 14px; }
.admin-bar .nt-header { top: var(--wp-admin--admin-bar--height, 0); }
.nt-header__inner { gap: var(--wp--preset--spacing--40); min-height: 48px; }
.nt-brand { gap: 12px; min-width: 0; }
.nt-brand .wp-block-site-logo img { max-height: 56px; width: auto; }
.nt-brand .wp-block-site-title { margin: 0; font-family: var(--nw-display-font); font-size: var(--wp--preset--font-size--large); font-weight: 800; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nt-brand .wp-block-site-title a { text-decoration: none; }
/* On a phone the logo carries the name; a truncated title beside it only adds noise. */
@media (max-width: 600px) { .nt-brand:has(.wp-block-site-logo img) .wp-block-site-title { display: none; } }
.nt-header__actions { gap: 18px; }
.nt-nav { font-size: var(--wp--preset--font-size--small); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; gap: 22px; }
.nt-nav a { text-decoration: none; padding-block: 6px; border-bottom: 2px solid transparent; transition: border-color var(--nw-ease), color var(--nw-ease); }
.nt-nav a:hover, .nt-nav .current-menu-item > a { color: var(--nw-primary); border-bottom-color: currentColor; }
.nt-nav .wp-block-navigation__responsive-container-open, .nt-nav .wp-block-navigation__responsive-container-close { color: var(--nw-ink); border-radius: 8px; padding: 6px; transition: background var(--nw-ease); }
.nt-nav .wp-block-navigation__responsive-container-open:hover, .nt-nav .wp-block-navigation__responsive-container-close:hover { background: var(--nw-bg); }
/* Core paints the open menu white with black text (.wp-block-navigation:not(.has-background) ... { background-color: #fff }), which
   outranks a plain .nt-nav rule: on a dark site (Xtreme Autosports) the menu opened white and its close icon, in the site's light ink, vanished. */
.nt-nav.wp-block-navigation:not(#nt-specificity) .wp-block-navigation__responsive-container.is-menu-open { padding: var(--wp--preset--spacing--50); background: var(--nw-surface); color: var(--nw-ink); }
.nt-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 18px; font-size: var(--wp--preset--font-size--large); }
/* Header menu fit (assets/nav-fit.js): a full menu that would wrap onto a second row, or push the header past its
   box, becomes the menu button at that width, as on a phone. Same rules as notable_nav_breakpoint, keyed to a class. */
.nt-nav.nt-nav--collapsed .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
.nt-nav.nt-nav--collapsed .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
.nt-header .wc-block-mini-cart__button, .nt-header .wc-block-customer-account a { color: var(--nw-ink); border-radius: 999px; padding: 8px; transition: background var(--nw-ease), color var(--nw-ease); }
.nt-header .wc-block-mini-cart__button:hover, .nt-header .wc-block-customer-account a:hover { background: var(--nw-bg); color: var(--nw-primary); }
.nt-header .wc-block-mini-cart__badge { background: var(--nw-primary); color: var(--nw-primary-ink); }

/* WooCommerce store notice (Customize > WooCommerce > Store notice): the site's primary colours, not WooCommerce's purple */
:root :is(p.demo_store, .woocommerce-store-notice) { background: var(--nw-primary); color: var(--nw-primary-ink); font-family: var(--nw-font); font-size: var(--wp--preset--font-size--small); font-weight: 600; box-shadow: none; }
:root :is(p.demo_store, .woocommerce-store-notice) a { color: var(--nw-primary-ink); text-decoration-line: underline; text-decoration-thickness: 1px; }
:root :is(p.demo_store, .woocommerce-store-notice) a:hover { color: var(--nw-primary-ink); text-decoration-thickness: 2px; }

/* Footer */
.nt-footer { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); margin-block-start: 0; }
.nt-footer__inner { gap: var(--wp--preset--spacing--50); }
.nt-footer .wp-block-site-title { margin: 0 0 6px; font-family: var(--nw-display-font); font-size: var(--wp--preset--font-size--large); font-weight: 800; }
.nt-footer .wp-block-site-title a { text-decoration: none; }
.nt-footer .wp-block-site-title a:hover { text-decoration-line: underline; text-decoration-thickness: 2px; }
/* Footer text keeps the band's full ink: opacity on text lowers its contrast (white on #5F7790 at .8 was 3.6:1). */
.nt-footer .wp-block-site-tagline { max-width: 38ch; }
.nt-footer__nav { gap: 10px; font-weight: 600; }
.nt-footer__content :is(h2, h3, h4, h5, h6) { color: inherit; font-family: var(--nw-font); font-size: var(--wp--preset--font-size--medium); font-weight: 700; letter-spacing: 0; margin-block: 0 .75em; }
.nt-footer__content ul { list-style: none; padding: 0; margin: 0; }
.nt-footer__content .wp-block-column > :first-child + * { margin-block-start: 0; }
.nt-footer__content li { margin-block: 0 8px; }
.nt-footer__content a:where(:not(.wp-element-button)) { text-decoration: none; }
.nt-footer__content a:where(:not(.wp-element-button)):hover { text-decoration-line: underline; text-decoration-thickness: 2px; }
.nt-footer__content .wp-block-columns { gap: var(--wp--preset--spacing--50); margin-block-end: 0; }
.nt-footer__legal { margin-block-start: var(--wp--preset--spacing--50); padding-block-start: var(--wp--preset--spacing--40); border-top: 1px solid color-mix(in srgb, var(--nw-dark-ink) 22%, transparent); }

.has-dark-background-color, .nw-section--dark, .nw-hero-section--cover {
  --nw-btn-bg: var(--nw-dark-ink); --nw-btn-ink: var(--nw-dark); --nw-btn2-ink: var(--nw-dark-ink);
  --nw-btn-hover-bg: color-mix(in srgb, var(--nw-dark-ink) 16%, transparent); --nw-btn-hover-border: var(--nw-dark-ink); --nw-btn-hover-ink: var(--nw-dark-ink);
}
.nw-section--accent {
  --nw-btn-bg: var(--nw-accent-ink); --nw-btn-ink: var(--nw-accent); --nw-btn2-ink: var(--nw-accent-ink);
  --nw-btn-hover-bg: color-mix(in srgb, var(--nw-accent-ink) 16%, transparent); --nw-btn-hover-border: var(--nw-accent-ink); --nw-btn-hover-ink: var(--nw-accent-ink);
}

/* The button system. Primary: brand on its ink. Secondary: outline. */
:root :is(
  .wp-element-button, .wp-block-button__link, .wp-block-search__button, .nw-button,
  .wc-block-components-button:not(.is-link):not(.wc-block-components-button--text),
  .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
  .wc-block-mini-cart__footer-actions .wc-block-components-button,
  .fluentform .ff-btn-submit
) {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 48px; padding: .85em 1.6em;
  border: 1px solid var(--nw-btn-border, var(--nw-btn-bg)); border-radius: var(--nw-button-radius);
  background: var(--nw-btn-bg); color: var(--nw-btn-ink);
  font-family: var(--nw-font); font-size: var(--wp--preset--font-size--medium); font-weight: 700; line-height: 1.2; letter-spacing: 0; text-transform: none;
  text-decoration: none; box-shadow: none; cursor: pointer;
  transition: transform var(--nw-ease), background-color var(--nw-ease), box-shadow var(--nw-ease), color var(--nw-ease);
}
:root :is(
  .wp-element-button, .wp-block-button__link, .wp-block-search__button, .nw-button,
  .wc-block-components-button:not(.is-link):not(.wc-block-components-button--text),
  .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
  .wc-block-mini-cart__footer-actions .wc-block-components-button,
  .fluentform .ff-btn-submit
):is(:hover, :focus-visible):not(:disabled) {
  transform: translateY(-2px); background: var(--nw-btn-hover-bg, color-mix(in srgb, var(--nw-btn-bg) 86%, #000)); border-color: var(--nw-btn-hover-border, color-mix(in srgb, var(--nw-btn-bg) 86%, #000)); color: var(--nw-btn-hover-ink, var(--nw-btn-ink));
  box-shadow: var(--nw-shadow); text-decoration: none;
}
:root :is(.is-style-outline > .wp-block-button__link, .nw-button--secondary, .wc-block-components-button.outlined, .wc-block-mini-cart__footer-actions .wc-block-mini-cart__footer-cart) {
  --nw-btn-bg: transparent; --nw-btn-ink: var(--nw-btn2-ink); --nw-btn-border: var(--nw-btn2-ink);
  --nw-btn-hover-bg: color-mix(in srgb, var(--nw-btn2-ink) 12%, transparent); --nw-btn-hover-border: var(--nw-btn2-ink); --nw-btn-hover-ink: var(--nw-btn2-ink);
}
:root :is(.wp-element-button, .wp-block-button__link, .nw-button, .woocommerce .button):disabled, :root .woocommerce .button.disabled { opacity: .55; transform: none; cursor: not-allowed; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  :root :is(.wp-element-button, .wp-block-button__link, .nw-button, .wc-block-components-button, .woocommerce .button, .nt-card, .wc-block-product) { transition: none; }
  :root :is(.wp-element-button, .wp-block-button__link, .nw-button, .wc-block-components-button, .woocommerce .button, .nt-card, .wc-block-product):hover { transform: none; }
}

/* Forms */
:root { accent-color: var(--nw-primary); }
.wc-block-components-notice-banner.is-info, .wc-block-components-notice-banner.is-success { border-color: var(--nw-line); border-left: 4px solid var(--nw-primary); background: var(--nw-bg); color: var(--nw-ink); }
.wc-block-components-notice-banner.is-info > svg, .wc-block-components-notice-banner.is-success > svg { background: var(--nw-primary); fill: var(--nw-primary-ink); }
.wc-block-components-notice-banner.is-error { border-left-width: 4px; }
:root :is(input[type=text], input[type=email], input[type=tel], input[type=number], input[type=password], input[type=search], input[type=url], textarea, select):not(.wc-block-components-text-input input) {
  font: inherit; color: var(--nw-ink); background: var(--nw-surface);
  border: 1px solid var(--nw-line); border-radius: 8px; padding: .7em .85em; min-height: 48px;
}
:root :is(input, textarea, select):focus { outline: 3px solid color-mix(in srgb, var(--nw-primary) 35%, transparent); outline-offset: 1px; border-color: var(--nw-primary); }
.nt-search { max-width: 560px; margin-block: var(--wp--preset--spacing--40); }
.wp-block-search__inside-wrapper { gap: 8px; }

/* Cards: posts and products lift and gain a shadow. */
.nt-card, .nt-products .wc-block-product {
  position: relative; display: flex; flex-direction: column; gap: 10px;
  padding: 0 0 var(--wp--preset--spacing--30); background: var(--nw-surface);
  border: 1px solid var(--nw-line); border-radius: var(--nw-radius); overflow: hidden;
  transition: transform var(--nw-ease), box-shadow var(--nw-ease), border-color var(--nw-ease);
}
.nt-card:hover, .nt-products .wc-block-product:hover { transform: translateY(-4px); box-shadow: var(--nw-shadow); border-color: color-mix(in srgb, var(--nw-primary) 40%, var(--nw-line)); }
.nt-card > :not(.wp-block-post-featured-image), .nt-products .wc-block-product > :not(.wc-block-components-product-image) { margin-inline: var(--wp--preset--spacing--40); }
.nt-card .wp-block-post-featured-image, .nt-card .wp-block-post-featured-image img { margin: 0; border-radius: 0; }
.nt-card .wp-block-post-title, .nt-products .wp-block-post-title { margin-block: 0; line-height: 1.25; }
.nt-card .wp-block-post-title a, .nt-products .wp-block-post-title a { text-decoration: none; }
.nt-card .wp-block-post-excerpt { color: var(--nw-muted); margin-block: 0; }
.nt-card .wp-block-post-excerpt__more-link { font-weight: 700; }
/* The gap must equal the one WordPress uses to work out a responsive grid's columns (the block gap, spacing 40), or a 3-column grid fits only 2 (0.1.21). */
.nt-post-grid .wp-block-post-template { gap: var(--wp--preset--spacing--40); }
.nt-post-grid .wp-block-post-template > li > .nt-card { height: 100%; }
.nt-card > :first-child:not(.wp-block-post-featured-image) { margin-block-start: var(--wp--preset--spacing--40); }

/* Store: product grid */
.nt-products .wc-block-components-product-image { margin: 0 0 6px; }
.nt-products .wc-block-components-product-image img { aspect-ratio: 1; object-fit: cover; border-radius: 0; }
.nt-products .wc-block-components-product-price { color: var(--nw-ink); font-weight: 700; margin-block: 0; }
.nt-products .wc-block-components-product-button { margin-block: auto 0; }
.nt-products .wc-block-components-product-button .wp-block-button__link { width: 100%; }
.wc-block-components-product-sale-badge, :root .woocommerce span.onsale { min-height: 0; min-width: 0; line-height: 1.4; background: var(--nw-accent); color: var(--nw-accent-ink); border: 0; border-radius: 999px; font-weight: 700; font-size: var(--wp--preset--font-size--small); text-transform: none; padding: 4px 12px; }
.nt-products .wc-block-components-product-sale-badge { margin: 10px; }
:root .woocommerce span.onsale { top: 12px; left: 12px; right: auto; margin: 0; z-index: 2; }
.woocommerce div.product form.cart div.quantity { margin: 0; }
:root :is(.woocommerce .related > h2, .woocommerce .upsells > h2, .wp-block-woocommerce-related-products h2) { font-size: var(--wp--preset--font-size--x-large); }
.wc-block-components-product-price del { color: var(--nw-muted); font-weight: 400; }
.wc-block-components-product-price ins { text-decoration: none; }
.woocommerce-breadcrumb, .wc-block-breadcrumbs { color: var(--nw-muted); font-size: var(--wp--preset--font-size--small); }
.wc-block-product-results-count, .woocommerce-result-count { color: var(--nw-muted); margin: 0; }
.wp-block-query-pagination { gap: 8px; margin-block-start: var(--wp--preset--spacing--50); }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; border: 1px solid var(--nw-line); border-radius: 999px; text-decoration: none; padding: 0 12px; }
.wp-block-query-pagination a:hover { border-color: var(--nw-primary); color: var(--nw-primary); }
.wp-block-query-pagination .page-numbers.current { background: var(--nw-ink); color: var(--nw-surface); border-color: var(--nw-ink); }

/* Store: featured products (inc/store.php). A badge with a tick on the image, a primary band on the card. */
.nt-featured-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px 4px 10px; border-radius: 999px; background: var(--nw-primary); color: var(--nw-primary-ink); font-family: var(--nw-font); font-size: var(--wp--preset--font-size--small); font-weight: 700; line-height: 1.4; letter-spacing: .02em; }
.nt-featured-badge::before { content: ""; width: .5em; height: .85em; margin-block-start: -.15em; border: solid currentColor; border-width: 0 .17em .17em 0; transform: rotate(45deg); }
.wc-block-components-product-image:has(> .nt-featured-badge) { position: relative; }
.wc-block-components-product-image > .nt-featured-badge { position: absolute; top: 10px; left: 10px; z-index: 2; }
.nt-products .wc-block-product:has(.nt-featured-badge) { border-color: var(--nw-primary); box-shadow: inset 0 4px 0 var(--nw-primary); }
.nt-featured-flag { margin: 0 0 10px; }

/* Store: quick buy (inc/store.php) */
.nt-quick-buy { display: grid; gap: 8px; margin-block: auto 0; }
.nt-quick-buy__label { color: var(--nw-muted); font-size: var(--wp--preset--font-size--small); font-weight: 700; }
.nt-quick-buy__select { width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid var(--nw-line); border-radius: 8px; background: var(--nw-surface); color: var(--nw-ink); font: inherit; font-size: var(--wp--preset--font-size--small); }
.nt-quick-buy__add { width: 100%; font-size: var(--wp--preset--font-size--small); }
.nt-quick-buy__add[disabled] { opacity: .7; cursor: progress; }
.nt-quick-buy__status { min-height: 1.4em; color: var(--nw-muted); font-size: var(--wp--preset--font-size--small); }
.nt-quick-buy.is-added .nt-quick-buy__status { color: var(--nw-primary); font-weight: 700; }
.nt-quick-buy.is-failed .nt-quick-buy__status { color: var(--nw-accent); }
.nt-quick-buy__more { align-self: center; font-size: var(--wp--preset--font-size--small); font-weight: 700; }
.nt-products .wc-block-product:has(.nt-quick-buy__more) { padding-block-end: var(--wp--preset--spacing--30); }

/* Store: product page notes (inc/store.php) */
.nt-standard-note { margin-block: 0 var(--wp--preset--spacing--40); padding-inline-start: 12px; border-inline-start: 3px solid var(--nw-line); color: var(--nw-muted); font-size: var(--wp--preset--font-size--small); }
.nt-guarantee { margin: 0 0 var(--wp--preset--spacing--40); max-width: 420px; }
.nt-guarantee img { display: block; width: 100%; height: auto; }

/* Store: single product */
.single-product .nt-main > .wp-block-columns { gap: var(--wp--preset--spacing--60); }
.woocommerce-product-gallery__image img, .wc-block-product-image-gallery img { border-radius: var(--nw-radius); }
.single-product .wp-block-post-title { font-size: var(--wp--preset--font-size--xx-large); margin-block: 0 12px; }
.single-product .wc-block-components-product-price, .single-product .price { color: var(--nw-ink); font-weight: 700; }
.woocommerce div.product form.cart, .wc-block-add-to-cart-form form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin-block: var(--wp--preset--spacing--40); }
.woocommerce .quantity .qty { width: 5em; min-height: 48px; text-align: center; }
.woocommerce div.product form.cart .variations { margin-block-end: 12px; border: 0; }
.woocommerce div.product form.cart .variations td, .woocommerce div.product form.cart .variations th { padding: 6px 12px 6px 0; border: 0; }
.woocommerce div.product form.cart .reset_variations { font-size: var(--wp--preset--font-size--small); }
.woocommerce div.product .stock { color: var(--nw-muted); }
.woocommerce div.product .out-of-stock { color: var(--nw-accent); font-weight: 700; }
.wp-block-woocommerce-product-meta { color: var(--nw-muted); font-size: var(--wp--preset--font-size--small); }
.wp-block-woocommerce-product-meta .wp-block-group { flex-wrap: wrap; gap: 6px 18px; }
.nt-product-details { margin-block-start: var(--wp--preset--spacing--60); }
.woocommerce-Tabs-panel > h2:first-child, .wp-block-woocommerce-product-details h2 { font-size: var(--wp--preset--font-size--large); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-left: 0 !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 18px; border-bottom: 1px solid var(--nw-line); display: flex; flex-wrap: wrap; gap: 4px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; margin: 0; padding: 0; }
/* WooCommerce draws the quantity buttons at 60% opacity: black on Zander's orange fell to 4.39:1. Enabled buttons draw at full strength; a disabled one keeps WooCommerce's fade. */
:root .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:not(:disabled) { opacity: 1; }
/* Inactive tabs keep full opacity (faded they fell to 4.27:1); the active tab is marked by its ink colour and underline. */
:root .woocommerce div.product .woocommerce-tabs ul.tabs, :root .woocommerce div.product .woocommerce-tabs ul.tabs li, :root .woocommerce div.product .woocommerce-tabs ul.tabs li a { opacity: 1; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 10px 16px; font-weight: 700; color: var(--nw-muted); text-decoration: none; border-bottom: 2px solid transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--nw-primary); border-bottom-color: currentColor; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--nw-ink); border-bottom-color: var(--nw-ink); }
.wp-block-woocommerce-related-products, .woocommerce .related, .woocommerce .upsells { margin-block-start: var(--wp--preset--spacing--60); }
.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: 12px; border: 1px solid var(--nw-line); background: var(--nw-bg); color: var(--nw-ink); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--nw-primary); }
.woocommerce-message, .woocommerce-info { border-top: 3px solid var(--nw-primary); }
.woocommerce-message .button, .woocommerce-info .button { float: right; }
/* WooCommerce hard-codes the notice's "View cart" link grey with !important; it is a link here, in the link colours. */
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward { color: var(--nw-ink) !important; opacity: 1; text-decoration-thickness: 1px; }
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward:is(:hover, :focus-visible) { color: var(--nw-primary) !important; text-decoration-line: underline; text-decoration-thickness: 2px; }

/* Store: cart and checkout, block and classic */
.wc-block-cart, .wc-block-checkout { font-size: var(--wp--preset--font-size--medium); }
.wc-block-components-sidebar-layout .wc-block-components-sidebar { background: var(--nw-bg); border-radius: var(--nw-radius); padding: var(--wp--preset--spacing--40); }
/* Below a desktop width the order summary stacks under the form instead of being squeezed beside it. */
@media (max-width: 1023px) {
  .wc-block-components-sidebar-layout { flex-direction: column; }
  .wc-block-components-sidebar-layout > .wc-block-components-main, .wc-block-components-sidebar-layout > .wc-block-components-sidebar { width: 100%; padding-inline: 0; }
  .wc-block-components-sidebar-layout > .wc-block-components-sidebar { padding: var(--wp--preset--spacing--40); margin-block-start: var(--wp--preset--spacing--40); }
}
.wc-block-components-totals-wrapper, .wc-block-cart-items, .wc-block-cart-items td, .wc-block-cart-items th { border-color: var(--nw-line); }
.wc-block-components-product-name { color: var(--nw-ink); font-weight: 700; text-decoration: none; }
.wc-block-components-product-name:hover { color: var(--nw-primary); text-decoration: underline; }
.wc-block-cart-item__remove-link, .wc-block-components-totals-coupon-link, .wc-block-components-checkout-return-to-cart-button, .wc-block-components-button.is-link { color: var(--nw-ink); text-decoration: underline; text-underline-offset: .18em; }
.wc-block-cart-item__remove-link:hover, .wc-block-components-totals-coupon-link:hover, .wc-block-components-checkout-return-to-cart-button:hover, .wc-block-components-button.is-link:hover { color: var(--nw-primary); text-decoration-thickness: 2px; }
:root .wc-block-components-form .wc-block-components-text-input input:is([type=email], [type=number], [type=password], [type=tel], [type=text], [type=url]),
:root .wc-block-components-text-input input:is([type=email], [type=number], [type=password], [type=tel], [type=text], [type=url]),
:root .wc-block-components-combobox .wc-block-components-combobox-control input, :root .wc-blocks-components-select .wc-blocks-components-select__select, :root .wc-block-components-textarea {
  border: 1px solid var(--nw-line); border-radius: 8px; background: var(--nw-surface); color: var(--nw-ink);
}
/* WooCommerce paints the select box and unchecked radios and checkboxes white; on a dark surface that hid the Country/Region label (1.1:1). */
:root .wc-blocks-components-select .wc-blocks-components-select__container { background: var(--nw-surface); }
:root .wc-blocks-components-select .wc-blocks-components-select__label { color: var(--nw-muted); }
:root .wc-block-components-radio-control .wc-block-components-radio-control__input, :root .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { background-color: var(--nw-surface); border-color: var(--nw-muted); }
:root .wc-block-components-form .wc-block-components-text-input input:focus, :root .wc-block-components-text-input input:focus, :root .wc-blocks-components-select .wc-blocks-components-select__select:focus, :root .wc-block-components-textarea:focus {
  border-color: var(--nw-primary); box-shadow: 0 0 0 1px var(--nw-primary);
}
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-color: var(--nw-line); }
:root :is(.wc-block-components-radio-control__option--checked-option-highlighted, .wc-block-components-radio-control-accordion-option--checked-option-highlighted, .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted) { box-shadow: inset 0 0 0 2px var(--nw-primary); border-radius: 8px; }
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked { border-color: var(--nw-primary); }
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before { background: var(--nw-primary); }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--nw-primary); border-color: var(--nw-primary); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--nw-primary-ink); }
/* One heading voice across block and classic cart and checkout. */
:root :is(.wc-block-cart__totals-title, .wc-block-components-checkout-step__title, .woocommerce .cart_totals > h2, .woocommerce-billing-fields > h3, .woocommerce-shipping-fields h3, #order_review_heading, .woocommerce-additional-fields > h3, .wc-block-components-title.wc-block-components-title) {
  font-family: var(--nw-display-font); font-stretch: var(--nw-display-stretch); font-size: var(--wp--preset--font-size--large); font-weight: 700; text-transform: none; letter-spacing: 0; color: var(--nw-ink);
}
.woocommerce-checkout-review-order-table { width: 100%; }
.woocommerce table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; }
.woocommerce table.cart td.actions .coupon .input-text { width: auto; flex: 1 1 10em; min-height: 48px; margin: 0; }
.woocommerce table.cart td.actions .coupon .button { flex: 0 0 auto; }
.woocommerce table.cart td.actions > .button { float: right; }
.wc-block-components-checkout-place-order-button, .wc-block-cart__submit-button { width: 100%; }
.wc-block-components-quantity-selector { border-radius: 8px; border-color: var(--nw-line); }
.woocommerce table.shop_table { border: 1px solid var(--nw-line); border-radius: var(--nw-radius); border-collapse: separate; overflow: hidden; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--nw-line); padding: 14px 16px; }
.woocommerce table.shop_table thead th { background: var(--nw-bg); }
.woocommerce a.remove { color: var(--nw-muted) !important; border: 1px solid var(--nw-line); }
.woocommerce a.remove:hover { background: var(--nw-primary); color: var(--nw-primary-ink) !important; border-color: var(--nw-primary); }
*, *::before, *::after { box-sizing: border-box; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout-review-order { background: var(--nw-bg); border-radius: var(--nw-radius); padding: var(--wp--preset--spacing--40); }
.woocommerce form .form-row label { font-weight: 600; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select { width: 100%; }
.woocommerce-checkout #payment { background: var(--nw-surface); border: 1px solid var(--nw-line); border-radius: 12px; }
.woocommerce-checkout #payment div.payment_box { background: var(--nw-bg); color: var(--nw-ink); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--nw-bg); }
.woocommerce #place_order { width: 100%; }
.woocommerce .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--50); }
.woocommerce .col2-set::before, .woocommerce .col2-set::after { display: none; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: auto; float: none; }
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register { border: 1px solid var(--nw-line); border-radius: var(--nw-radius); padding: var(--wp--preset--spacing--40); }

/* Store: My Account */
.woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after { display: none; }
.woocommerce-account .woocommerce { display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 1fr); gap: var(--wp--preset--spacing--50); }
.woocommerce-account .woocommerce > :not(.woocommerce-MyAccount-navigation):not(.woocommerce-MyAccount-content) { grid-column: 1 / -1; }
.woocommerce-account:not(.logged-in) .woocommerce { grid-template-columns: 1fr; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--nw-line); border-radius: var(--nw-radius); overflow: hidden; }
.woocommerce-MyAccount-navigation li + li { border-top: 1px solid var(--nw-line); }
.woocommerce-MyAccount-navigation a { display: block; padding: 12px 16px; text-decoration: none; font-weight: 600; transition: background var(--nw-ease), color var(--nw-ease); }
.woocommerce-MyAccount-navigation a:hover { background: var(--nw-bg); color: var(--nw-primary); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--nw-primary); color: var(--nw-primary-ink); text-decoration: none; }
.woocommerce-MyAccount-navigation li { margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li::before, .woocommerce-MyAccount-navigation li::after { display: none; }

/* Post content */
.wp-block-post-content > * + * { margin-block-start: var(--wp--preset--spacing--40); }
.wp-block-quote { border-left: 4px solid var(--nw-accent); padding-left: var(--wp--preset--spacing--40); }
.wp-block-post-featured-image img { border-radius: var(--nw-radius); }
.nt-entry-header { margin-block-end: var(--wp--preset--spacing--50); }
.nt-post-nav { margin-block-start: var(--wp--preset--spacing--50); }

@media (max-width: 781px) {
  .nt-header { padding-block: 10px; }
  .nt-brand .wp-block-site-title { font-size: var(--wp--preset--font-size--medium); }
  .woocommerce-account .woocommerce, .woocommerce .col2-set { grid-template-columns: 1fr; }
  .woocommerce-message .button, .woocommerce-info .button { float: none; display: flex; margin-block-end: 10px; }
  .woocommerce table.shop_table_responsive tr td::before { font-weight: 700; }
}

/* Header phone link and search (notable_header_phone, notable_header_search). */
.nt-header__phone { margin: 0; white-space: nowrap; font-size: var(--wp--preset--font-size--small); font-weight: 700; }
.nt-header__phone a { color: inherit; text-decoration: none; }
.nt-header__phone a:hover, .nt-header__phone a:focus-visible { color: var(--nw-primary); text-decoration: underline; }
/* The button system's selector list carries WooCommerce's #respond input#submit, and :is() takes its strongest
   argument's specificity (two ids), so the quiet search icon needs the same weight: the id pair never matches. */
:root .nt-header.nt-header :is(.nt-header__search, #nt-specificity#nt-specificity) .wp-block-search__button { min-height: 0; margin: 0; padding: 8px; border: 0; border-radius: 999px; background: transparent; color: var(--nw-ink); box-shadow: none; transform: none; }
:root .nt-header.nt-header :is(.nt-header__search, #nt-specificity#nt-specificity) .wp-block-search__button:is(:hover, :focus-visible) { background: var(--nw-bg); color: var(--nw-primary); transform: none; }
/* A submenu's arrow button visibly answers the pointer, like every other link in the header (0.1.21). */
.nt-header .wp-block-navigation-submenu__toggle { border-radius: 4px; transition: background-color var(--nw-ease); }
.nt-header .wp-block-navigation-submenu__toggle:is(:hover, :focus-visible) { background: color-mix(in srgb, currentColor 16%, transparent); }
/* On a toned header band (notable_header_tone) the icon takes the band's ink, like the menu beside it (0.1.21). */
:root .nt-header.nt-header.has-background :is(.nt-header__search, #nt-specificity#nt-specificity) .wp-block-search__button { color: inherit; }
:root .nt-header.nt-header.has-background :is(.nt-header__search, #nt-specificity#nt-specificity) .wp-block-search__button:is(:hover, :focus-visible) { background: color-mix(in srgb, currentColor 16%, transparent); color: inherit; }
.nt-header__search .wp-block-search__button svg { width: 24px; height: 24px; fill: currentColor; }
@media (max-width: 600px) { .nt-header__phone { display: none; } }
/* Header words and search field (notable_header_account_label, notable_header_cart_label, notable_header_search = field):
   the live site's "Login" and "Cart" beside the icons and a visible search box. Phones keep the icons only. */
.nt-header__account-label, .nt-header__cart-label { margin: 0; white-space: nowrap; font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.nt-header__account-label a, .nt-header__cart-label a { display: inline-flex; align-items: center; gap: 6px; min-height: 24px; color: var(--nw-ink); text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 2px; text-underline-offset: 4px; transition: color var(--nw-ease), text-decoration-color var(--nw-ease); }
.nt-header__account-label a:is(:hover, :focus-visible), .nt-header__cart-label a:is(:hover, :focus-visible) { color: var(--nw-primary); text-decoration-color: currentColor; }
.nt-header__account-label svg { flex: none; fill: currentColor; }
.nt-header .nt-header__account--phone { display: none; }
.nt-header__search--field .wp-block-search__inside-wrapper { align-items: center; padding: 0 2px 0 14px; border: 1px solid var(--nw-line); border-radius: 999px; background: var(--nw-surface); }
.nt-header__search--field .wp-block-search__input { width: 150px; min-height: 36px; padding: 0; border: 0; background: transparent; color: var(--nw-ink); font-size: var(--wp--preset--font-size--small); }
.nt-header__search--field .wp-block-search__input::placeholder { color: var(--nw-muted); opacity: 1; }
.nt-header__search--field .wp-block-search__inside-wrapper:focus-within { border-color: var(--nw-primary); }
:root .nt-header.nt-header :is(.nt-header__search--field, #nt-specificity#nt-specificity) .wp-block-search__button { padding: 6px; }
.nt-header__search--field .wp-block-search__button svg { width: 20px; height: 20px; }
@media (max-width: 600px) {
  .nt-header__account-label, .nt-header__cart-label, .nt-header__search--field { display: none; }
  .nt-header .nt-header__account--phone { display: block; }
}
/* Centred header (notable_header_layout = centered): phone left, logo centre, tools right, the menu on its own row. */
.nt-header--centered .nt-header__top { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--wp--preset--spacing--40); }
.nt-header--centered .nt-header__top > * { margin: 0; }
.nt-header--centered .nt-brand { justify-content: center; }
.nt-header--centered .nt-header__actions { justify-content: flex-end; }
.nt-header--centered > .nt-nav { margin-block-start: 10px; }
.nt-header--centered .nt-nav .wp-block-navigation__container { justify-content: center; }
@media (max-width: 600px) {
  .nt-header--centered .nt-header__top { grid-template-columns: 1fr auto 1fr; }
}
/* Below 600px only, where core Navigation shows the menu button: at exactly 600 core shows the full menu, which this
   rule laid over the logo (Xtreme Autosports and Holy Grail in the QA suite's header-collision check, 0.1.22). */
@media (max-width: 599.98px) {
  /* Centred by stretching the box and flex, never by a transform: a transform, filter, perspective, contain or
     will-change on any ancestor of the menu makes it the containing block of WordPress's position: fixed overlay,
     which then opens inside this 48px box instead of covering the screen (Wine Education Council, 2026-10-14). */
  .nt-header--centered > .nt-nav { position: absolute; inset-block: 0; inset-inline-start: var(--wp--preset--spacing--50); display: flex; align-items: center; margin: 0; }
}
/* Shop filter sidebar (notable_shop_filters = on): search and the category filter beside the grid; WooCommerce turns the filters into a drawer on phones. */
.nt-shop { display: grid; grid-template-columns: minmax(200px, 260px) minmax(0, 1fr); gap: var(--wp--preset--spacing--50); align-items: start; }
.nt-shop__filters { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--40); min-width: 0; position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 110px); }
.nt-shop__filters fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.nt-shop__search .wp-block-search__inside-wrapper { padding: 4px; border: 1px solid var(--nw-line); border-radius: var(--nw-radius); background: var(--nw-surface); }
.nt-shop__filters-title { margin: 0 0 12px; font-size: var(--wp--preset--font-size--large); }
.nt-shop__filters .wc-block-product-filter-checkbox-list__label { color: var(--nw-ink); font-size: var(--wp--preset--font-size--small); }
/* WooCommerce's filter options are 20px rows with a 14px box; on touch screens each row is a 24px target (WCAG 2.5.8). */
@media (max-width: 781px), (pointer: coarse) {
  :root .wc-block-product-filter-checkbox-list__label { min-height: 24px; align-items: center; }
  :root .wc-block-product-filter-checkbox-list__input-wrapper { min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; }
}
.nt-shop__search .wp-block-search__input { min-width: 0; min-height: 44px; border: 0; background: transparent; color: var(--nw-ink); }
@media (max-width: 781px) {
  .nt-shop { grid-template-columns: 1fr; }
  .nt-shop__filters { position: static; }
}

/* Page title above a section-led page (Contact Us): the section-first rule above drops the top padding, which jammed
   the title against the header. A title keeps its space. */
.nt-main:has(> .nt-page-title):has(> .wp-block-post-content > .nw-section:first-child) { padding-block-start: var(--wp--preset--spacing--60); }

/* The open menu (phone, and tablet when notable_nav_breakpoint is set): left-aligned, sub-items under their parent
   at a normal size, nothing right-aligned or indented into a wrapping column. */
:root .nt-nav .wp-block-navigation__responsive-container.is-menu-open { --navigation-layout-justification-setting: flex-start; --navigation-layout-align: flex-start; text-align: left; }
:root .nt-nav .is-menu-open :is(.wp-block-navigation__responsive-container-content, .wp-block-navigation__container, .wp-block-navigation-item, .wp-block-navigation__submenu-container) { align-items: flex-start; justify-content: flex-start; text-align: left; }
.nt-nav .is-menu-open :is(.wp-block-navigation__responsive-container-content, .wp-block-navigation__container) { width: 100%; }
.nt-nav .is-menu-open .wp-block-navigation__submenu-container { width: 100%; min-width: 0; padding: 4px 0 0 16px; gap: 12px; font-size: var(--wp--preset--font-size--medium); }
.nt-nav .is-menu-open .wp-block-navigation-item__content { white-space: normal; }

/* Store notice as a bar above the header (notable_store_notice_position = top). */
:root .nt-notice-top :is(p.demo_store, .woocommerce-store-notice) { position: static; inset: auto; width: auto; margin: 0; padding: 10px var(--wp--preset--spacing--40); text-align: center; }

/* Product buttons in two-column phone grids ("Select options", quick buy "Add to cart") stay on one line. #nt-specificity#nt-specificity: see the header search rule. */
@media (max-width: 600px) {
  :root :is(.wc-block-components-product-button .wp-block-button__link, .nt-quick-buy__add, #nt-specificity#nt-specificity) { padding-inline: .6em; font-size: var(--wp--preset--font-size--small); white-space: nowrap; }
}

/* WooCommerce Subscriptions' "or subscribe to save" prompt (and its dash) in small price lines was 11.7px on a phone. */
.wcsatt-sub-options { font-size: max(.83em, 12.5px); }

/* Shop search (notable_shop_search = on). */
.nt-shop-search { max-width: none; margin-block: 0 var(--wp--preset--spacing--40); }
.nt-shop-search .wp-block-search__inside-wrapper { padding: 4px; border: 1px solid var(--nw-line); border-radius: var(--nw-radius); background: var(--nw-surface); }
.nt-shop-search .wp-block-search__input { min-width: 0; min-height: 44px; border: 0; background: transparent; color: var(--nw-ink); }

/* 0.1.16: imported product descriptions use h4-h6 as section headings; keep them above body size (Zen's Tea review, 2026-10-06: 14px bold under 17px text). */
.woocommerce-Tabs-panel :is(h4, h5, h6) { font-size: var(--wp--preset--font-size--medium); line-height: 1.3; margin: 1.4em 0 .5em; }
/* "People Also Like" on the cart (option notable_cart_picks). */
.nt-cart-picks { margin-top: 48px; }
.nt-cart-picks .nt-cart-picks__title { margin-bottom: 20px; }

/* Long unbroken strings in content (a URL or email address in a privacy policy) wrap instead of pushing the page sideways on a phone. */
.wp-site-blocks :where(p, li, td, th, dd, figcaption, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

/* 0.1.17 product details (inc/product-details.php): facts on the product page and cards, a product note, the related-products button, the archive intro. */
.nt-facts { list-style: none; margin: 0 0 var(--wp--preset--spacing--40); padding: 0; display: grid; gap: 4px; }
.nt-facts__label { font-weight: 700; }
.nt-facts--card { margin: -.25rem 0 .5rem; gap: 2px; color: var(--nw-muted); font-size: var(--wp--preset--font-size--small); }
.nt-facts--card .nt-facts__value a { color: inherit; }
.nt-product-note { margin-block: 0 var(--wp--preset--spacing--30); font-weight: 700; font-style: italic; }
.nt-related__more { display: flex; flex-wrap: wrap; justify-content: center; margin-block: var(--wp--preset--spacing--40) 0; }
.wp-block-post-title.has-text-align-center + .nt-facts--card { justify-items: center; text-align: center; }
.nt-archive-intro { margin-block: 0 var(--wp--preset--spacing--40); }
.nt-archive-intro__heading { margin-block: 0 8px; font-size: var(--wp--preset--font-size--large); }
.nt-archive-intro__text { margin: 0; max-width: 60ch; color: var(--nw-muted); }

/* 0.1.17 age gate (inc/age-gate.php, option notable_age_gate): a modal on a dark band, the site's photo behind it. */
html.nt-age-gate-open { overflow: hidden; }
.nt-age-gate { font-family: var(--nw-font); width: min(720px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); padding: 0; border: 0; border-radius: var(--nw-radius); background: var(--nw-dark); color: var(--nw-dark-ink); overflow: auto; }
.nt-age-gate::backdrop { background: color-mix(in srgb, #000 82%, transparent); }
.nt-age-gate__panel { position: relative; isolation: isolate; }
.nt-age-gate__image { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; opacity: .3; }
.nt-age-gate__body { display: grid; justify-items: center; gap: var(--wp--preset--spacing--40); padding: clamp(28px, 6vw, 56px) clamp(20px, 5vw, 48px); text-align: center; }
.nt-age-gate__logo { width: auto; max-width: min(260px, 70%); height: auto; max-height: 120px; object-fit: contain; }
.nt-age-gate__step { display: grid; justify-items: center; gap: var(--wp--preset--spacing--40); position: relative; width: 100%; }
.nt-age-gate__step[hidden] { display: none; }
.nt-age-gate :is(.nt-age-gate__question, .nt-age-gate__welcome) { margin: 0; color: var(--nw-dark-ink); font-size: var(--wp--preset--font-size--x-large); text-transform: uppercase; }
.nt-age-gate p { margin: 0; max-width: 52ch; }
.nt-age-gate__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.nt-age-gate__actions .wp-element-button { min-width: 120px; }
.nt-age-gate__welcome:focus { outline: none; }
.nt-age-gate__close { position: absolute; top: -12px; right: -12px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid currentColor; border-radius: 999px; background: transparent; color: var(--nw-dark-ink); font-size: 26px; line-height: 1; cursor: pointer; transition: background-color var(--nw-ease); }
.nt-age-gate__close:is(:hover, :focus-visible) { background: color-mix(in srgb, var(--nw-dark-ink) 16%, transparent); }
.nt-age-gate .fluentform { width: 100%; max-width: 420px; text-align: start; }
.nt-age-gate .fluentform :is(label, .ff-el-input--label) { color: var(--nw-dark-ink); font-family: var(--nw-font); font-weight: 700; }
.nt-age-gate .fluentform .ff-el-group { margin-bottom: 16px; }
.nt-age-gate .fluentform input { width: 100%; }
.nt-age-gate [data-nt-age-welcome] { padding-top: 40px; }
/* 0.1.17 Blank page template: no header or footer, the content centred in the window. */
.nt-main--blank { min-height: 100dvh; display: grid; align-content: center; }

/* A core Cover block on a dark image (WordPress marks only light covers, with is-light): its text links take the cover's own ink, as on a dark band (0.1.21). */
.wp-block-cover:not(.is-light) a:not(.wp-element-button) { color: inherit; text-decoration-thickness: 1px; }
.wp-block-cover:not(.is-light) a:not(.wp-element-button):hover { text-decoration-thickness: 2px; }

/* 0.1.20 site chrome options (inc/site-chrome.php). All off by default. */
/* Page frame (notable_frame_left/right, per page or site-wide): a patterned strip each side, the site in a centred column. */
body.nt-framed { background-position: left top, right top; background-repeat: repeat-y, repeat-y; background-size: var(--nt-frame) auto, var(--nt-frame) auto; }
body.nt-framed .wp-site-blocks { margin-inline: var(--nt-frame); background: var(--nw-surface); min-width: 0; }
/* On a phone the strips are half as wide, so the cart and checkout keep their room. */
@media (max-width: 600px) { body.nt-framed { --nt-frame-now: calc(var(--nt-frame) / 2); background-size: var(--nt-frame-now) auto, var(--nt-frame-now) auto; } body.nt-framed .wp-site-blocks { margin-inline: var(--nt-frame-now); } }
/* Header and footer bands (notable_header_tone, notable_footer_tone): the band's ink for every link and icon in it. */
.nt-header.has-background { border-bottom-color: transparent; }
:is(.nt-header, .nt-footer).has-background :is(a:where(:not(.wp-element-button)), .wc-block-mini-cart__button, .wp-block-navigation__responsive-container-open) { color: inherit; }
:is(.nt-header, .nt-footer).has-background a:where(:not(.wp-element-button)):hover, .nt-header.has-background .nt-nav .current-menu-item > a { color: inherit; text-decoration-line: underline; text-decoration-thickness: 2px; border-bottom-color: currentColor; }
.nt-header.has-background :is(.wc-block-mini-cart__button, .wc-block-customer-account a, .nt-nav .wp-block-navigation__responsive-container-open):hover { background: color-mix(in srgb, currentColor 16%, transparent); color: inherit; }
.nt-header.has-background .nt-nav .wp-block-navigation__responsive-container.is-menu-open a { color: var(--nw-ink); }
.nt-footer.has-background .nt-footer__legal { border-top-color: color-mix(in srgb, currentColor 22%, transparent); }
/* A header that scrolls away with the page (notable_header_sticky = off), for tall live headers. */
.nt-header-static .nt-header { position: relative; top: auto; }
/* A header that hides on scroll down and returns on scroll up (notable_header_sticky = hide, 0.1.21).
   The header template part is exactly as tall as .nt-header, so a sticky .nt-header has no room to stick inside it:
   the wrapper sticks and slides instead. It only moves while the menu is closed (header-autohide.js never hides with
   it open), so the transform never becomes the open overlay's containing block. */
.nt-header-autohide header.wp-block-template-part:has(> .nt-header) { position: sticky; top: 0; z-index: 50; transition: transform 0.25s ease; }
.nt-header-autohide header.wp-block-template-part:has(> .nt-header--hidden) { transform: translateY(-100%); }
@media (prefers-reduced-motion: reduce) { .nt-header-autohide header.wp-block-template-part:has(> .nt-header) { transition: none; } }
/* A large logo (notable_header_logo_width) and the second badge at the right (notable_header_badge). */
.nt-logo-large .nt-header .nt-brand .wp-block-site-logo img { width: min(var(--nt-logo-width), 26vw); max-height: none; }
.nt-header__badge { margin: 0; flex: 0 0 auto; line-height: 0; }
.nt-header__badge img { width: min(var(--nt-badge-width, 120px), 16vw); height: auto; display: block; transition: transform var(--nw-ease); }
.nt-header__badge a:hover img { transform: scale(1.04); }
/* Plain product cards (notable_product_cards = plain): image, title, price and button on the section's own colour, as page builders drew them. */
.nt-cards-plain .nt-products .wc-block-product { background: transparent; border: 0; border-radius: 0; padding: 0; color: inherit; gap: 8px; }
.nt-cards-plain .nt-products .wc-block-product:hover { box-shadow: none; }
.nt-cards-plain .nt-products .wc-block-product > :not(.wc-block-components-product-image) { margin-inline: 0; }
.nt-cards-plain .nt-products :is(.wc-block-components-product-price, .wp-block-post-title, .wp-block-post-title a) { color: inherit; }
.nt-cards-plain .nt-products .wc-block-product:hover .wp-block-post-title a { text-decoration-line: underline; text-decoration-thickness: 2px; }
.nt-cards-plain .nt-products .wc-block-components-product-button { align-items: flex-start; }
.nt-cards-plain .nt-products .wc-block-components-product-button .wp-block-button__link { width: auto; }
/* "Background sound" style of the Audio block (assets/background-audio.js): one fixed play/pause button, not the player. */
.wp-block-audio.is-style-notable-background.is-ready { margin: 0; }
.wp-block-audio.is-style-notable-background.is-ready audio { display: none; }
.nt-audio-toggle { position: fixed; left: 16px; bottom: 16px; z-index: 60; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 2px solid var(--nw-primary-ink); border-radius: 999px; background: var(--nw-primary); color: var(--nw-primary-ink); cursor: pointer; box-shadow: var(--nw-shadow); transition: transform var(--nw-ease), background var(--nw-ease); }
.nt-audio-toggle:hover { transform: translateY(-2px); background: color-mix(in srgb, var(--nw-primary) 86%, #000); }
