.elementor-kit-9{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Inter";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-weight:500;}.elementor-kit-9 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --e-gv-4336188:clamp(1rem, 2vw, 2rem); --fluid-gutter:clamp(1.25rem, -0.07rem + 5.63vw, 5rem); --pad-section-xs:clamp(1.5rem, 0.97rem + 2.25vw, 3rem); --pad-section-s:clamp(2.5rem, 1.62rem + 3.76vw, 5rem); --pad-section-m:clamp(4rem, 2.59rem + 6.01vw, 8rem); --pad-section-l:clamp(6rem, 3.89rem + 9.01vw, 12rem); --pad-section-xl:clamp(8rem, 5.18rem + 12.02vw, 16rem); --space-2xs:0.5rem; --space-xs:0.75rem; --space-s:1rem; --space-m:clamp(1.25rem, 1.03rem + 0.94vw, 1.875rem); --space-l:clamp(2rem, 1.65rem + 1.5vw, 3rem); --space-xl:clamp(3rem, 2.47rem + 2.25vw, 4.5rem); --text-sm:clamp(0.875rem, 0.85rem + 0.09vw, 0.9375rem); --text-body:clamp(1rem, 0.96rem + 0.19vw, 1.125rem); --text-lg:clamp(1.125rem, 1.04rem + 0.38vw, 1.375rem); --text-h4:clamp(1.25rem, 1.07rem + 0.75vw, 1.75rem); --text-h3:clamp(1.5rem, 1.24rem + 1.13vw, 2.25rem); --text-h2:clamp(1.875rem, 1.48rem + 1.69vw, 3rem); --text-h1:clamp(2.25rem, 1.63rem + 2.63vw, 4rem); --text-display:clamp(2.375rem, 1.27rem + 4.7vw, 5.5rem); --width-wide:80rem; --width-default:62.5rem; --width-narrow:45rem; --width-prose:38rem; --bg-base:#0B0A09; --bg-surface:#151412; --bg-raised:#1F1D1A; --border-subtle:#2E2B27; --accent:#F5CE23; --accent-strong:#FFD84D; --on-accent:#0B0A09; --text-primary:#FFFFFF; --text-secondary:#C9C6C1; --text-muted:#8A8680; --radius-s:6px; --radius-m:10px; --radius-l:18px; --radius-pill:999px; --font-body:Inter; --font-display:Daily Notes; --border-strong:#6B665E; --e-gv-dff2a86:Daily Notes; --pad-panel:clamp(1.75rem, 0.78rem + 4.13vw, 4.5rem); --radius-1px:1px; }
/* Start custom CSS *//* ── Nuetzling · site chrome (header, footer, page background) ───── */
/* The WooCommerce archive-card CSS that used to live here was removed on
   2026-09-17: /shop/ and the product-category archives now render from the
   Elementor product-archive template (post 155), which replaces the native
   ul.products loop and the theme's .site-main wrapper entirely. Those rules
   matched nothing. Archive styling now lives in the .elementor-page-155
   block at the end of this file. Related products on the single-product
   page have their own body.single-product rules and were NOT affected. */

/* ── Site chrome · theme footer + page background ─────────────────── */
/* The .site-header rules were removed 2026-09-17: the Elementor header
   template (204) replaces Hello's header entirely, so they matched nothing.
   Hello still renders the footer, so .site-footer stays. */


.site-footer {
  background-color: var(--bg-base);
  border-block-start: 1px solid var(--border-subtle);
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  padding-block: var(--space-l);
}
.site-footer a { color: var(--text-secondary); }
.site-footer a:hover { color: var(--accent); }

body { background-color: var(--bg-base); }

/* ── Nuetzling · single product ──────────────────────────────────── */
body.single-product .site-main {
  padding-inline: var(--fluid-gutter);
  padding-block: var(--pad-section-m);
  max-width: calc(var(--width-wide) + var(--fluid-gutter) * 2);
  margin-inline: auto;
}
body.single-product .woocommerce-breadcrumb {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin-block-end: var(--space-l);
}
body.single-product .woocommerce-breadcrumb a { color: var(--text-secondary); text-decoration: none; }
body.single-product .woocommerce-breadcrumb a:hover { color: var(--accent); }

/* two columns that collapse on their own — no media query */
body.single-product div.product {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
  gap: var(--space-xl);
  align-items: start;
}
body.single-product div.product::before,
body.single-product div.product::after { content: none; display: none; }

body.single-product div.product .woocommerce-product-gallery,
body.single-product div.product .summary { width: 100%; float: none; margin: 0; }

body.single-product .woocommerce-product-gallery img {
  width: 100%;
  border-radius: var(--radius-l);
  background-color: var(--bg-surface);
}
body.single-product .woocommerce-product-gallery__trigger {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
}

body.single-product .product_title {
  font-family: var(--font-body);
  font-size: var(--text-h2);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin: 0 0 var(--space-xs);
}
body.single-product .summary p.price,
body.single-product .summary .price {
  font-family: var(--font-body);
  font-size: var(--text-h3);
  font-weight: 700;
  color: var(--accent);
  margin: 0 0 var(--space-s);
}
body.single-product .summary .price del { color: var(--text-muted); font-weight: 400; }
body.single-product .summary .price ins { text-decoration: none; }

body.single-product .woocommerce-product-details__short-description {
  font-family: var(--font-body);
  font-size: var(--text-lg);
  line-height: 1.6;
  color: var(--text-secondary);
  margin-block-end: var(--space-m);
}

body.single-product form.cart { display: flex; flex-wrap: wrap; gap: var(--space-xs); align-items: stretch; margin-block-end: var(--space-m); }
body.single-product .quantity input.qty {
  width: 5rem;
  height: auto;
  font-family: var(--font-body);
  font-size: var(--text-body);
  color: var(--text-primary);
  background-color: var(--bg-surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-m);
  padding-block: 0.7em;
  text-align: center;
}
body.single-product button.single_add_to_cart_button {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 700;
  background-color: var(--accent);
  color: var(--on-accent);
  border: 1px solid var(--accent-strong);
  border-radius: var(--radius-m);
  padding: 0.85em 1.8em;
}
body.single-product button.single_add_to_cart_button:hover { background-color: var(--accent-strong); }

body.single-product .stock.in-stock { color: var(--text-secondary); font-family: var(--font-body); font-size: var(--text-sm); }
body.single-product .stock.out-of-stock { color: var(--text-muted); }

body.single-product .product_meta {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--text-muted);
  border-block-start: 1px solid var(--border-subtle);
  padding-block-start: var(--space-s);
}
body.single-product .product_meta a { color: var(--text-secondary); text-decoration: none; }
body.single-product .product_meta a:hover { color: var(--accent); }

/* tabs + related span the full grid */
body.single-product div.product .woocommerce-tabs,
body.single-product div.product .related,
body.single-product div.product .upsells {
  grid-column: 1 / -1;
  width: 100%;
  margin-block-start: var(--space-xl);
}

body.single-product .woocommerce-tabs ul.tabs {
  display: flex;
  gap: var(--space-2xs);
  padding: 0;
  margin: 0 0 var(--space-m);
  border-block-end: 1px solid var(--border-subtle);
}
body.single-product .woocommerce-tabs ul.tabs::before { content: none; display: none; }
body.single-product .woocommerce-tabs ul.tabs li {
  background: transparent;
  border: 0;
  border-radius: 0;
  margin: 0;
  padding: 0;
}
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after { content: none; display: none; }
body.single-product .woocommerce-tabs ul.tabs li a {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 600;
  color: var(--text-muted);
  padding: 0.75em 1.1em;
  border-block-end: 2px solid transparent;
  text-decoration: none;
}
body.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--text-primary); border-block-end-color: var(--accent); }
body.single-product .woocommerce-tabs ul.tabs li a:hover { color: var(--text-secondary); }

body.single-product .woocommerce-tabs .panel {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.7;
  color: var(--text-secondary);
  max-width: var(--width-narrow);
}
body.single-product .woocommerce-tabs .panel h2 {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.01em;
}
body.single-product .woocommerce-tabs .panel h3 {
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--text-primary);
  margin-block-start: var(--space-m);
}
body.single-product .woocommerce-tabs .panel ul { padding-inline-start: 1.2em; }
body.single-product .woocommerce-tabs .panel li { margin-block-end: 0.35em; }

/* NOTE: a child combinator cannot be used here. This meta field HTML-escapes
   the child-combinator character on save, which silently invalidated this
   rule and left the heading unstyled. :not() does the same job safely. */
body.single-product .related h2:not(.woocommerce-loop-product__title),
body.single-product .upsells h2:not(.woocommerce-loop-product__title) {
  font-family: var(--font-body);
  font-size: var(--text-h3);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin-block-end: var(--space-m);
}

/* related products reuse the archive card treatment */
body.single-product ul.products,
body.single-product ul.products[class*="columns-"] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: var(--space-m);
  margin: 0;
  padding: 0;
  list-style: none;
}
body.single-product ul.products::before,
body.single-product ul.products::after { content: none; display: none; }
body.single-product ul.products[class*="columns-"] li.product {
  width: 100%;
  float: none;
  clear: none;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-l);
  padding: var(--space-m);
}
body.single-product ul.products li.product:hover { border-color: var(--border-strong); background-color: var(--bg-raised); }
body.single-product ul.products li.product img { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: var(--radius-m); margin: 0; }
body.single-product ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-body); font-size: var(--text-body); font-weight: 700;
  line-height: 1.3; color: var(--text-primary); margin: 0; padding: 0;
}
body.single-product ul.products li.product .price { font-family: var(--font-body); font-size: var(--text-sm); font-weight: 600; color: var(--accent); margin: 0; }
body.single-product ul.products li.product a.button {
  margin-top: auto; align-self: flex-start;
  font-family: var(--font-body); font-size: var(--text-sm); font-weight: 700;
  background-color: var(--accent); color: var(--on-accent);
  border: 1px solid var(--accent-strong); border-radius: var(--radius-m);
  padding: 0.6em 1.2em; text-decoration: none;
}
body.single-product ul.products li.product a.button:not(.add_to_cart_button) {
  background-color: var(--bg-raised); color: var(--text-primary); border-color: var(--border-strong);
}

/* WooCommerce ships .woocommerce button.button.alt (0,3,1) for the primary
   action button. Match its class count to win without !important. */
body.woocommerce.single-product button.button.alt.single_add_to_cart_button,
body.woocommerce-page.single-product button.button.alt.single_add_to_cart_button {
  background-color: var(--accent);
  color: var(--on-accent);
  border: 1px solid var(--accent-strong);
  border-radius: var(--radius-m);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 700;
  padding: 0.85em 1.8em;
}
body.woocommerce.single-product button.button.alt.single_add_to_cart_button:hover,
body.woocommerce-page.single-product button.button.alt.single_add_to_cart_button:hover {
  background-color: var(--accent-strong);
  color: var(--on-accent);
}

/* ── Nuetzling · WooCommerce Blocks (cart + checkout share components) ── */
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main {
  padding-inline: var(--fluid-gutter);
  padding-block: var(--pad-section-m);
  max-width: calc(var(--width-wide) + var(--fluid-gutter) * 2);
  margin-inline: auto;
}
body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-checkout .page-title {
  font-family: var(--font-body);
  font-size: var(--text-h2);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin-block-end: var(--space-l);
}

/* layout
   Woo sizes main (65%) + sidebar (35%) to exactly 100%, so ANY gap on the
   flex container overflows and wraps the sidebar underneath. Don't add one.
   The cart block is .alignwide and breaks out of .site-main padding with a
   negative margin — neutralise that instead of fighting the padding. */
body.woocommerce-cart .wp-block-woocommerce-cart.alignwide,
body.woocommerce-checkout .wp-block-woocommerce-checkout.alignwide {
  margin-inline: 0;
  width: 100%;
  max-width: 100%;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-sidebar,
body.woocommerce-checkout .wc-block-components-sidebar {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-l);
  padding: var(--space-m);
}

/* table header */
body.woocommerce-cart .wc-block-cart-items__header {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  border-block-end: 1px solid var(--border-subtle);
}

/* rows */
body.woocommerce-cart .wc-block-cart-items__row {
  border-block-end: 1px solid var(--border-subtle);
}
body.woocommerce-cart .wc-block-cart-item__image img {
  border-radius: var(--radius-m);
  background-color: var(--bg-surface);
}

/* product name + price — both were unreadable on dark */
body.woocommerce-cart .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-components-product-name {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 700;
  line-height: 1.3;
  color: var(--text-primary);
  text-decoration: none;
}
body.woocommerce-cart a.wc-block-components-product-name:hover,
body.woocommerce-checkout a.wc-block-components-product-name:hover { color: var(--accent); }

body.woocommerce-cart .wc-block-components-product-price,
body.woocommerce-cart .wc-block-components-product-price__value,
body.woocommerce-checkout .wc-block-components-product-price,
body.woocommerce-checkout .wc-block-components-product-price__value {
  font-family: var(--font-body);
  color: var(--text-secondary);
}
body.woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price__value {
  color: var(--text-primary);
  font-weight: 700;
}
body.woocommerce-cart .wc-block-components-product-metadata,
body.woocommerce-checkout .wc-block-components-product-metadata {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--text-muted);
}

body.woocommerce-cart .wc-block-cart-item__remove-link {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--text-muted);
  text-decoration: underline;
}
body.woocommerce-cart .wc-block-cart-item__remove-link:hover { color: var(--text-secondary); }

/* quantity stepper */
body.woocommerce-cart .wc-block-components-quantity-.elementor-kit-9 {
  background-color: var(--bg-base);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-m);
}
body.woocommerce-cart .wc-block-components-quantity-.elementor-kit-9__input {
  font-family: var(--font-body);
  font-size: var(--text-body);
  color: var(--text-primary);
  background: transparent;
}
body.woocommerce-cart .wc-block-components-quantity-.elementor-kit-9__button {
  color: var(--text-secondary);
  background: transparent;
  border: 0;
}
body.woocommerce-cart .wc-block-components-quantity-.elementor-kit-9__button:hover { color: var(--accent); }

/* totals */
body.woocommerce-cart .wc-block-cart__totals-title,
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}
body.woocommerce-cart .wc-block-components-totals-item,
body.woocommerce-checkout .wc-block-components-totals-item {
  font-family: var(--font-body);
  color: var(--text-secondary);
}
body.woocommerce-cart .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__label { color: var(--text-secondary); }
body.woocommerce-cart .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-item__value { color: var(--text-primary); }

body.woocommerce-cart .wc-block-components-totals-footer-item,
body.woocommerce-checkout .wc-block-components-totals-footer-item {
  border-block-start: 1px solid var(--border-subtle);
  font-weight: 700;
  color: var(--text-primary);
}
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--accent);
  font-size: var(--text-h4);
}

/* coupon panel */
body.woocommerce-cart .wc-block-components-panel__button,
body.woocommerce-checkout .wc-block-components-panel__button {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--text-secondary);
}
body.woocommerce-cart .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-address-form input,
body.woocommerce-checkout select {
  font-family: var(--font-body);
  font-size: var(--text-body);
  color: var(--text-primary);
  background-color: var(--bg-base);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-s);
}
body.woocommerce-cart .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-text-input label {
  color: var(--text-muted);
  font-family: var(--font-body);
}

/* primary action */
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart a.wc-block-components-button.contained,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout button.wc-block-components-button.contained {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 700;
  background-color: var(--accent);
  color: var(--on-accent);
  border: 1px solid var(--accent-strong);
  border-radius: var(--radius-m);
  padding: 0.9em 1.6em;
  text-decoration: none;
}
body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart a.wc-block-components-button.contained:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout button.wc-block-components-button.contained:hover {
  background-color: var(--accent-strong);
  color: var(--on-accent);
}
body.woocommerce-cart .wc-block-cart__submit-button .wc-block-components-button__text,
body.woocommerce-checkout .wc-block-components-button__text { color: inherit; }

/* secondary links */
body.woocommerce-cart .wc-block-cart__submit-container + a,
body.woocommerce-cart .wc-block-components-button:not(.contained) {
  font-family: var(--font-body);
  color: var(--text-secondary);
}
body.woocommerce-cart .wc-block-components-notice-banner,
body.woocommerce-checkout .wc-block-components-notice-banner {
  background-color: var(--bg-surface);
  border-color: var(--border-strong);
  color: var(--text-secondary);
  border-radius: var(--radius-m);
}

/* ── Nuetzling · Blocks checkout ─────────────────────────────────── */
body.woocommerce-checkout .wc-block-components-checkout-step {
  border-block-end: 1px solid var(--border-subtle);
  padding-block-end: var(--space-m);
  margin-block-end: var(--space-m);
}
body.woocommerce-checkout .wc-block-components-checkout-step:last-of-type { border-block-end: 0; }

body.woocommerce-checkout .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-components-title,
body.woocommerce-checkout .wc-block-components-checkout-step__heading-content {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text-primary);
}
body.woocommerce-checkout .wc-block-components-checkout-step__description {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--text-muted);
}

/* form fields */
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-combobox input,
body.woocommerce-checkout .wc-block-components-select select,
body.woocommerce-checkout .wc-block-components-address-form input,
body.woocommerce-checkout .wc-block-components-address-form select {
  font-family: var(--font-body);
  font-size: var(--text-body);
  color: var(--text-primary);
  background-color: var(--bg-base);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-s);
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-combobox input:focus,
body.woocommerce-checkout select:focus {
  border-color: var(--accent);
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-combobox label,
body.woocommerce-checkout .wc-block-components-select label,
body.woocommerce-checkout .wc-block-components-form label {
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: var(--text-sm);
}
body.woocommerce-checkout .wc-block-components-address-form__address_2-toggle {
  color: var(--text-secondary);
  font-family: var(--font-body);
  font-size: var(--text-sm);
}

/* shipping + payment option cards */
body.woocommerce-checkout .wc-block-components-radio-control__option {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-m);
  /* Woo positions the radio input absolutely; leading padding must clear it
     or the label overlaps the control. */
  padding: var(--space-s) var(--space-m);
  padding-inline-start: 2.75rem;
  margin-block-end: var(--space-2xs);
}
body.woocommerce-checkout .wc-block-components-radio-control__option:hover { border-color: var(--border-strong); }
body.woocommerce-checkout .wc-block-components-radio-control__option--checked-option-highlighted,
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
  border-color: var(--accent);
  background-color: var(--bg-raised);
}
body.woocommerce-checkout .wc-block-components-radio-control__label {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 600;
  color: var(--text-primary);
}
body.woocommerce-checkout .wc-block-components-radio-control__secondary-label {
  font-family: var(--font-body);
  color: var(--accent);
  font-weight: 700;
}
body.woocommerce-checkout .wc-block-components-radio-control__description,
body.woocommerce-checkout .wc-block-components-radio-control__secondary-description {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--text-muted);
}

/* checkboxes + terms */
body.woocommerce-checkout .wc-block-components-checkbox__label,
body.woocommerce-checkout .wc-block-checkout__terms,
body.woocommerce-checkout .wc-block-checkout__terms span {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 1.5;
  color: var(--text-secondary);
}
body.woocommerce-checkout .wc-block-checkout__terms a,
body.woocommerce-checkout .wc-block-components-checkbox__label a { color: var(--accent); text-decoration: underline; }
body.woocommerce-checkout .wc-block-components-checkbox__input {
  accent-color: var(--accent);
  border: 1px solid var(--border-strong);
}

/* saved address card */
body.woocommerce-checkout .wc-block-components-address-card {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-m);
  color: var(--text-secondary);
  font-family: var(--font-body);
  padding: var(--space-s) var(--space-m);
}
body.woocommerce-checkout .wc-block-components-address-card__edit { color: var(--accent); font-family: var(--font-body); }

/* order summary rows */
body.woocommerce-checkout .wc-block-components-order-summary-item__description,
body.woocommerce-checkout .wc-block-components-order-summary-item__individual-prices {
  font-family: var(--font-body);
  color: var(--text-muted);
  font-size: var(--text-sm);
}
body.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
  background-color: var(--bg-raised);
  border: 1px solid var(--border-strong);
  color: var(--text-primary);
  font-family: var(--font-body);
}
body.woocommerce-checkout .wc-block-components-order-summary__button-text {
  font-family: var(--font-body);
  color: var(--text-primary);
}

/* place order */
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  width: 100%;
  justify-content: center;
}
body.woocommerce-checkout .wc-block-components-validation-error,
body.woocommerce-checkout .wc-block-components-validation-error p {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: #FF9B8A;
}

/* ── Nuetzling · Mein Konto + order confirmation ─────────────────── */
body.woocommerce-account .site-main,
body.woocommerce-order-received .site-main,
body.woocommerce-view-order .site-main {
  padding-inline: var(--fluid-gutter);
  padding-block: var(--pad-section-m);
  max-width: calc(var(--width-wide) + var(--fluid-gutter) * 2);
  margin-inline: auto;
}
body.woocommerce-account .entry-title,
body.woocommerce-account .page-title,
body.woocommerce-order-received .entry-title,
body.woocommerce-order-received .page-title {
  font-family: var(--font-body);
  font-size: var(--text-h2);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin-block-end: var(--space-l);
}

/* two-column account layout, collapses on its own */
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
/* auto-fit grid produced 5 tracks here, not 2. Flex with a huge grow factor
   on the content gives a real sidebar+content pair that wraps on its own. */
body.woocommerce-account .woocommerce {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-l);
  align-items: flex-start;
}
body.woocommerce-account .woocommerce-MyAccount-navigation { flex: 1 1 14rem; max-width: 18rem; }
body.woocommerce-account .woocommerce-MyAccount-content { flex: 999 1 22rem; min-width: 0; }

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 600;
  color: var(--text-secondary);
  text-decoration: none;
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-m);
  padding: 0.7em 1em;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  color: var(--text-primary);
  border-color: var(--border-strong);
  background-color: var(--bg-raised);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  color: var(--on-accent);
  background-color: var(--accent);
  border-color: var(--accent-strong);
}

body.woocommerce-account .woocommerce-MyAccount-content,
body.woocommerce-order-received .woocommerce {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.7;
  color: var(--text-secondary);
}
/* scope to the Woo content area — a bare `body.x a` also recolours the
   site header and footer navigation. */
body.woocommerce-account .woocommerce-MyAccount-content a,
body.woocommerce-order-received .site-main a,
body.woocommerce-view-order .site-main a { color: var(--accent); }
body.woocommerce-account .woocommerce-MyAccount-content strong { color: var(--text-primary); }

/* login / register — what a logged-out visitor sees */
body.woocommerce-account form.woocommerce-form-login,
body.woocommerce-account form.woocommerce-form-register,
body.woocommerce-account form.woocommerce-ResetPassword {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-l);
  padding: var(--pad-panel);
  max-width: var(--width-narrow);
}
body.woocommerce-account h2 {
  font-family: var(--font-body);
  font-size: var(--text-h3);
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.02em;
}
body.woocommerce-account label,
body.woocommerce-order-received label {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--text-muted);
}
body.woocommerce-account input[type="text"],
body.woocommerce-account input[type="email"],
body.woocommerce-account input[type="password"],
body.woocommerce-account input[type="tel"],
body.woocommerce-account select,
body.woocommerce-account textarea {
  width: 100%;
  font-family: var(--font-body);
  font-size: var(--text-body);
  color: var(--text-primary);
  background-color: var(--bg-base);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-s);
  padding: 0.7em 1em;
}
body.woocommerce-account input:focus,
body.woocommerce-account select:focus,
body.woocommerce-account textarea:focus {
  border-color: var(--accent);
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

body.woocommerce-account button.woocommerce-button,
body.woocommerce-account button.woocommerce-Button,
body.woocommerce.woocommerce-account button.button,
body.woocommerce-order-received a.button {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 700;
  background-color: var(--accent);
  color: var(--on-accent);
  border: 1px solid var(--accent-strong);
  border-radius: var(--radius-m);
  padding: 0.8em 1.6em;
  text-decoration: none;
}
body.woocommerce-account button.woocommerce-button:hover,
body.woocommerce.woocommerce-account button.button:hover,
body.woocommerce-order-received a.button:hover { background-color: var(--accent-strong); color: var(--on-accent); }

/* tables — orders list, order details, addresses */
body.woocommerce-account table.shop_table,
body.woocommerce-order-received table.shop_table,
body.woocommerce-view-order table.shop_table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-l);
  overflow: hidden;
  font-family: var(--font-body);
  color: var(--text-secondary);
}
body.woocommerce-account table.shop_table th,
body.woocommerce-order-received table.shop_table th,
body.woocommerce-view-order table.shop_table th {
  background-color: var(--bg-surface);
  color: var(--text-muted);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: left;
  padding: var(--space-s) var(--space-m);
  border-block-end: 1px solid var(--border-subtle);
}
body.woocommerce-account table.shop_table td,
body.woocommerce-order-received table.shop_table td,
body.woocommerce-view-order table.shop_table td {
  padding: var(--space-s) var(--space-m);
  border-block-end: 1px solid var(--border-subtle);
  color: var(--text-secondary);
}
body.woocommerce-account table.shop_table tfoot th,
body.woocommerce-order-received table.shop_table tfoot th { background-color: transparent; text-transform: none; letter-spacing: 0; }
body.woocommerce-order-received table.shop_table tfoot tr:last-child td,
body.woocommerce-order-received table.shop_table tfoot tr:last-child th { color: var(--text-primary); font-weight: 700; }

body.woocommerce-account .woocommerce-Address,
body.woocommerce-order-received .woocommerce-customer-details address {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-l);
  padding: var(--space-m);
  font-style: normal;
  color: var(--text-secondary);
  font-family: var(--font-body);
}

/* order confirmation */
body.woocommerce-order-received .woocommerce-thankyou-order-received {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  line-height: 1.1;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.005em;
  margin-block-end: var(--space-m);
}
body.woocommerce-order-received ul.woocommerce-order-overview {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-m);
  margin: 0 0 var(--space-l);
  padding: var(--space-m);
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-l);
}
body.woocommerce-order-received ul.woocommerce-order-overview li {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border: 0;
  padding: 0;
  margin: 0;
}
body.woocommerce-order-received ul.woocommerce-order-overview li strong {
  display: block;
  font-size: var(--text-body);
  color: var(--text-primary);
  text-transform: none;
  letter-spacing: 0;
  margin-block-start: 0.25em;
}
body.woocommerce-order-received h2,
body.woocommerce-view-order h2 {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 700;
  color: var(--text-primary);
  margin-block-start: var(--space-l);
}

/* notices */
body .woocommerce-message,
body .woocommerce-info,
body .woocommerce-error {
  background-color: var(--bg-surface);
  border-block-start: 3px solid var(--accent);
  border-radius: var(--radius-m);
  color: var(--text-secondary);
  font-family: var(--font-body);
}
body .woocommerce-message a,
body .woocommerce-info a { color: var(--accent); }

/* ── Nuetzling · footer ──────────────────────────────────────────── */
.site-footer .footer-inner {
  max-width: calc(var(--width-wide) + var(--fluid-gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--fluid-gutter);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-m);
}
.site-footer .site-branding,
.site-footer .site-branding .site-title,
.site-footer .site-branding .site-title a {
  font-family: var(--font-display);
  font-size: var(--text-h4);
  color: var(--text-primary);
  text-decoration: none;
  letter-spacing: 0.01em;
}
.site-footer nav ul,
.site-footer .footer-navigation ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-m);
  margin: 0;
  padding: 0;
}
.site-footer nav a {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 600;
  color: var(--text-secondary);
  text-decoration: none;
}
.site-footer nav a:hover { color: var(--accent); }
.site-footer .copyright p {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin: 0;
}

/* ── Nuetzling · 404 ─────────────────────────────────────────────── */
body.error404 .site-main {
  padding-inline: var(--fluid-gutter);
  padding-block: var(--pad-section-l);
  max-width: calc(var(--width-narrow) + var(--fluid-gutter) * 2);
  margin-inline: auto;
  text-align: center;
}
body.error404 .page-title,
body.error404 h1 {
  font-family: var(--font-display);
  font-size: var(--text-h1);
  line-height: 1.06;
  text-transform: uppercase;
  letter-spacing: 0.005em;
  color: var(--text-primary);
  text-wrap: balance;
  margin: 0 0 var(--space-m);
}
body.error404 .page-content,
body.error404 .page-content p {
  font-family: var(--font-body);
  font-size: var(--text-lg);
  line-height: 1.6;
  color: var(--text-secondary);
  text-wrap: balance;
}
body.error404 .search-form,
body.search .search-form {
  display: flex;
  gap: var(--space-2xs);
  justify-content: center;
  margin-block-start: var(--space-m);
}
body.error404 .search-form input[type="search"],
body.search .search-form input[type="search"] {
  font-family: var(--font-body);
  font-size: var(--text-body);
  color: var(--text-primary);
  background-color: var(--bg-surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-m);
  padding: 0.75em 1em;
  min-width: 0;
}
body.error404 .search-form button,
body.error404 .search-form input[type="submit"],
body.search .search-form button {
  font-family: var(--font-body);
  font-weight: 700;
  background-color: var(--accent);
  color: var(--on-accent);
  border: 1px solid var(--accent-strong);
  border-radius: var(--radius-m);
  padding: 0.75em 1.4em;
}

/* ── search results + blog archive (same shell) ──────────────────── */
body.search .site-main,
body.blog .site-main,
body.archive:not(.woocommerce-shop):not(.tax-product_cat) .site-main {
  padding-inline: var(--fluid-gutter);
  padding-block: var(--pad-section-m);
  max-width: calc(var(--width-wide) + var(--fluid-gutter) * 2);
  margin-inline: auto;
}
body.search .page-title,
body.blog .page-title,
body.archive .page-title {
  font-family: var(--font-body);
  font-size: var(--text-h2);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
}
body.search article,
body.blog article {
  border-block-end: 1px solid var(--border-subtle);
  padding-block: var(--space-m);
}
body.search article h2 a,
body.blog article h2 a,
body.search article h3 a,
body.blog article h3 a {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 700;
  color: var(--text-primary);
  text-decoration: none;
}
body.search article h2 a:hover,
body.blog article h2 a:hover { color: var(--accent); }
body.search article p,
body.blog article p {
  font-family: var(--font-body);
  color: var(--text-secondary);
  line-height: 1.6;
}

/* ── Nuetzling · generic content pages (Impressum, AGB, Kontakt …) ─ */
body.page:not(.home):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.woocommerce-shop) .site-main {
  padding-inline: var(--fluid-gutter);
  padding-block: var(--pad-section-m);
  max-width: calc(var(--width-narrow) + var(--fluid-gutter) * 2);
  margin-inline: auto;
}
body.page:not(.home) .site-main .entry-title,
body.page:not(.home) .site-main .page-title {
  font-family: var(--font-body);
  font-size: var(--text-h2);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--text-primary);
  margin-block-end: var(--space-l);
  text-wrap: balance;
}
body.page:not(.home) .page-content,
body.page:not(.home) .entry-content {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--text-secondary);
}
body.page:not(.home) .entry-content h2,
body.page:not(.home) .page-content h2 {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text-primary);
  margin-block: var(--space-l) var(--space-xs);
}
body.page:not(.home) .entry-content h3,
body.page:not(.home) .page-content h3 {
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--text-primary);
  margin-block: var(--space-m) var(--space-2xs);
}
body.page:not(.home) .entry-content p,
body.page:not(.home) .page-content p { margin-block: 0 var(--space-s); }
body.page:not(.home) .entry-content a,
body.page:not(.home) .page-content a { color: var(--accent); }
body.page:not(.home) .entry-content ul,
body.page:not(.home) .page-content ul { padding-inline-start: 1.3em; margin-block-end: var(--space-s); }
body.page:not(.home) .entry-content li,
body.page:not(.home) .page-content li { margin-block-end: 0.4em; }
body.page:not(.home) .entry-content em,
body.page:not(.home) .page-content em { color: var(--text-muted); font-style: italic; }

/* placeholder banner — impossible to mistake for finished copy */
.ph-note {
  display: block;
  background-color: var(--bg-surface);
  border: 1px dashed var(--accent);
  border-radius: var(--radius-m);
  padding: var(--space-s) var(--space-m);
  color: var(--accent);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: 1.5;
  margin-block-end: var(--space-l);
}

/* ── Nuetzling · search + blog archive (corrected .elementor-kit-9s) ──────
   Hello outputs the page heading as h1.entry-title inside .page-header,
   NOT .page-title — the earlier rule missed it entirely. */
body.search .page-header .entry-title,
body.blog .page-header .entry-title,
body.archive:not(.tax-product_cat):not(.woocommerce-shop) .page-header .entry-title,
body.single:not(.single-product) .page-header .entry-title {
  font-family: var(--font-body);
  font-size: var(--text-h2);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin-block-end: var(--space-l);
  text-wrap: balance;
}

/* Unconstrained thumbnails were rendering ~900px tall in results.
   Float keeps a thumbnail list without restructuring the template. */
body.search article img,
body.blog article img,
body.archive:not(.tax-product_cat):not(.woocommerce-shop) article img {
  width: 100%;
  max-width: 9rem;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--radius-m);
  background-color: var(--bg-surface);
  float: left;
  margin: 0 var(--space-m) var(--space-s) 0;
}

body.search article,
body.blog article,
body.archive:not(.tax-product_cat):not(.woocommerce-shop) article {
  overflow: hidden;
  border-block-end: 1px solid var(--border-subtle);
  padding-block: var(--space-m);
  margin: 0;
}
body.search article:last-of-type,
body.blog article:last-of-type { border-block-end: 0; }

body.search article .entry-title,
body.blog article .entry-title,
body.search article h2,
body.blog article h2,
body.search article h3,
body.blog article h3 {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--text-primary);
  margin: 0 0 var(--space-2xs);
}
body.search article a,
body.blog article a { color: inherit; text-decoration: none; }
body.search article .entry-title a:hover,
body.blog article .entry-title a:hover,
body.search article h2 a:hover,
body.blog article h2 a:hover { color: var(--accent); }

body.search article p,
body.blog article p,
body.search .entry-content,
body.blog .entry-content {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.6;
  color: var(--text-secondary);
  margin: 0 0 var(--space-xs);
}

body.search .no-results,
body.search .page-content {
  font-family: var(--font-body);
  color: var(--text-secondary);
}

/* pagination shared by search, blog and product archives */
.pagination,
.nav-links,
.woocommerce-pagination {
  font-family: var(--font-body);
  margin-block-start: var(--space-l);
}
.pagination a, .nav-links a, .woocommerce-pagination a,
.pagination .current, .nav-links .current, .woocommerce-pagination .current {
  display: inline-block;
  color: var(--text-secondary);
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-s);
  padding: 0.5em 0.9em;
  margin-inline-end: var(--space-2xs);
  text-decoration: none;
}
.pagination .current, .nav-links .current, .woocommerce-pagination .current {
  color: var(--on-accent);
  background-color: var(--accent);
  border-color: var(--accent-strong);
}

/* ── Nuetzling · Elementor product archive (template 155) ─────────── */
/* Replaces WooCommerce's native ul.products loop. Scoped to
   .elementor-page-155, which covers /shop/ and every product category
   archive. The V3 loop widgets are styled here because the Elementor MCP
   emits per-widget custom CSS with a bare "&amp;" that matches nothing. */

.elementor-page-155 .elementor-widget-theme-post-featured-image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-m);
  display: block;
}

/* outranks Elementor's stock heading colour (0,2,0) */
.elementor-page-155 .elementor-widget-theme-post-title .elementor-heading-title {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--text-primary);
}

/* stretched link — the whole card becomes clickable as soon as the title
   widget's Link is bound to the post URL */
.elementor-page-155 .elementor-widget-theme-post-title .elementor-heading-title a {
  color: inherit;
  text-decoration: none;
}
.elementor-page-155 .elementor-widget-theme-post-title .elementor-heading-title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

.elementor-page-155 [data-e-type="e-collection-loop-item"] {
  transition: border-color 160ms ease, background-color 160ms ease;
}
.elementor-page-155 [data-e-type="e-collection-loop-item"]:hover {
  border-color: var(--border-strong);
  background-color: var(--bg-raised);
}

/* ── Nuetzling · product archive CTA button ───────────────────────── */
/* Added in the Elementor editor (dynamic post-url link). Styled here
   rather than with the btn/btn-secondary classes because writing to
   template 155 via MCP risks dropping the dynamic binding. Mirrors
   .btn + .btn-secondary exactly. */
.elementor-page-155 [data-e-type="e-collection-loop-item"] .e-button-base {
  order: 2;
  position: relative;
  z-index: 2;
  align-self: stretch;
  margin-block-start: var(--space-s);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--text-body);
  text-align: center;
  text-decoration: none;
  padding-block: 0.85em;
  padding-inline: 1.6em;
  border-radius: var(--radius-m);
  border: 1px solid var(--border-strong);
  color: var(--text-primary);
  background-color: var(--bg-surface);
  transition: background-color 160ms ease;
}
.elementor-page-155 [data-e-type="e-collection-loop-item"] .e-button-base:hover,
.elementor-page-155 [data-e-type="e-collection-loop-item"] .e-button-base:focus-visible {
  background-color: var(--bg-raised);
}

/* price sits directly above the button */
.elementor-page-155 [data-e-type="e-collection-loop-item"] .e-d74bf2e-8171 {
  order: 1;
}

/* unpriced products: the button takes over pushing itself to the bottom,
   so every card's CTA still lines up */
.elementor-page-155 [data-e-type="e-collection-loop-item"]:has(.e-d74bf2e-8171:empty) .e-button-base {
  margin-block-start: auto;
}

/* Elementor puts position:relative on widget wrappers, which made the
   stretched link size to the title instead of the card. */
.elementor-page-155 [data-e-type="e-collection-loop-item"] .elementor-widget-theme-post-title {
  position: static;
}

/* ── Nuetzling · single posts ─────────────────────────────────────── */
/* Posts render from the Elementor single-post template (post 178), which
   replaces Hello's template entirely: there is no .site-main, .page-content,
   .post-tags or .comments-area on a post page any more. The article body is
   raw post HTML inside the theme-post-content widget. Comments were dropped
   deliberately; the tag list has no widget available and is not rendered. */

body.single-post .elementor-widget-theme-post-featured-image img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-m);
  display: block;
}

/* The e-div-block wrapping the content widget carries Elementor's default
   10px padding, which inset the body copy 10px from the title and image.
   Targeted by element id because a child combinator cannot be used here. */
body.single-post .elementor-element-5ad62816 { padding: 0; }

body.single-post .elementor-widget-theme-post-content {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--text-secondary);
}
body.single-post .elementor-widget-theme-post-content h2 {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text-primary);
  margin-block: var(--space-l) var(--space-xs);
}
body.single-post .elementor-widget-theme-post-content h3 {
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--text-primary);
  margin-block: var(--space-m) var(--space-2xs);
}
body.single-post .elementor-widget-theme-post-content p { margin-block: 0 var(--space-s); }
body.single-post .elementor-widget-theme-post-content a { color: var(--accent); }
body.single-post .elementor-widget-theme-post-content ul,
body.single-post .elementor-widget-theme-post-content ol {
  padding-inline-start: 1.3em;
  margin-block-end: var(--space-s);
}
body.single-post .elementor-widget-theme-post-content li { margin-block-end: 0.4em; }
body.single-post .elementor-widget-theme-post-content strong { color: var(--text-primary); font-weight: 700; }
body.single-post .elementor-widget-theme-post-content em { color: var(--text-muted); font-style: italic; }

/* Category + tag archives. The earlier search/blog block gave archives the
   container, cards and thumbnails but NOT the text inside them, so post
   titles and excerpts inherited the default dark colour. */
body.archive:not(.tax-product_cat):not(.woocommerce-shop) article .entry-title,
body.archive:not(.tax-product_cat):not(.woocommerce-shop) article h2,
body.archive:not(.tax-product_cat):not(.woocommerce-shop) article h3 {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--text-primary);
  margin: 0 0 var(--space-2xs);
}
body.archive:not(.tax-product_cat):not(.woocommerce-shop) article a {
  color: inherit;
  text-decoration: none;
}
body.archive:not(.tax-product_cat):not(.woocommerce-shop) article .entry-title a:hover,
body.archive:not(.tax-product_cat):not(.woocommerce-shop) article h2 a:hover { color: var(--accent); }
body.archive:not(.tax-product_cat):not(.woocommerce-shop) article p,
body.archive:not(.tax-product_cat):not(.woocommerce-shop) .entry-content {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.6;
  color: var(--text-secondary);
  margin: 0 0 var(--space-xs);
}
body.archive:not(.tax-product_cat):not(.woocommerce-shop) article:last-of-type { border-block-end: 0; }

/* description WordPress prints under a category or tag heading */
body.archive:not(.tax-product_cat):not(.woocommerce-shop) .archive-description,
body.archive:not(.tax-product_cat):not(.woocommerce-shop) .taxonomy-description {
  font-family: var(--font-body);
  color: var(--text-secondary);
  margin-block-end: var(--space-l);
}

/* ── Nuetzling · Ratgeber teaser on the homepage ──────────────────── */
/* Post cards in the e-collection-loop on page 49. Same treatment as the
   shop archive cards; the V3 loop widgets are styled here because the
   Elementor MCP cannot emit usable per-widget CSS for them. */

.elementor-page-49 [data-e-type="e-collection-loop-item"] .elementor-widget-theme-post-featured-image img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-m);
  display: block;
}

/* Elementor sets position:relative on widget wrappers, which would size the
   stretched link to the title instead of the whole card. */
.elementor-page-49 [data-e-type="e-collection-loop-item"] .elementor-widget-theme-post-title {
  /* theme-post-title always carries .elementor-page-title, and the homepage has
     Elementor's Hide Title setting on, which sets --page-title-display: none.
     That was hiding every loop title. Reset the variable for these cards only. */
  --page-title-display: block;
  display: block;
  position: static;
}

.elementor-page-49 [data-e-type="e-collection-loop-item"] .elementor-heading-title {
  /* German article titles run long; text-h4 pushed them to 6 lines in a
     teaser card, so these use the smaller step. */
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--text-primary);
  text-wrap: balance;
}
.elementor-page-49 [data-e-type="e-collection-loop-item"] .elementor-heading-title a {
  color: inherit;
  text-decoration: none;
}
.elementor-page-49 [data-e-type="e-collection-loop-item"] .elementor-heading-title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

.elementor-page-49 [data-e-type="e-collection-loop-item"] {
  text-align: start;
  transition: border-color 160ms ease, background-color 160ms ease;
}
.elementor-page-49 [data-e-type="e-collection-loop-item"]:hover {
  border-color: var(--border-strong);
  background-color: var(--bg-raised);
}

/* ── Nuetzling · site header (Theme Builder template 204) ─────────── */
/* Replaces Hello's .site-header entirely. Layout lives here because
   manage-elements style updates do not persist on a published Theme
   Builder document, and because Elementor containers default to
   width:100% — that squeezed the nav to zero width and wrapped the menu
   into a vertical column. */

.elementor-location-header {
  position: sticky;
  top: 0;
  z-index: 200;
}
html { scroll-padding-top: 6rem; }

/* brand and actions size to content; nav takes the middle */
.elementor-204 .elementor-element-6f69c159,
.elementor-204 .elementor-element-5d46333c {
  width: auto;
  flex: 0 0 auto;
}
.elementor-204 .elementor-element-7a8c1ca9 {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
}

/* nav links */
.elementor-204 .elementor-nav-menu a.elementor-item {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 600;
  color: var(--text-secondary);
  padding: 0.4em 0.8em;
  fill: currentColor;
}
.elementor-204 .elementor-nav-menu a.elementor-item:hover,
.elementor-204 .elementor-nav-menu a.elementor-item:focus,
.elementor-204 .elementor-nav-menu a.elementor-item.elementor-item-active,
.elementor-204 .elementor-nav-menu a.elementor-item.highlighted {
  color: var(--text-primary);
  background-color: transparent;
}

/* burger toggle */
.elementor-204 .elementor-menu-toggle {
  color: var(--text-primary);
  background-color: transparent;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-s);
  padding: 0.4em;
}
.elementor-204 .elementor-menu-toggle:hover { border-color: var(--border-strong); }

/* collapsed dropdown panel */
/* Elementor leaves the collapsed dropdown in normal flow at display:block,
   so its width was widening the nav container and pushing the burger past
   the gutter. Taking it out of flow fixes the bar layout. */
.elementor-204 .elementor-element-7a8c1ca9.e-con { position: relative; }
.elementor-204 .elementor-nav-menu--dropdown {
  position: absolute;
  top: calc(100% + var(--space-2xs));
  inset-inline-end: 0;
  min-width: 14rem;
  z-index: 210;
  overflow: hidden;
  background-color: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-m);
}
.elementor-204 .elementor-nav-menu--dropdown a.elementor-item {
  color: var(--text-secondary);
  padding: 0.75em 1em;
}
.elementor-204 .elementor-nav-menu--dropdown a.elementor-item:hover {
  color: var(--text-primary);
  background-color: var(--bg-raised);
}

/* Header CTA: smaller than a page CTA so the bar stays compact. */
/* .btn sets these at (0,2,0); match its class count to win without !important. */
.elementor-204 .e-button-base.btn {
  white-space: nowrap;
  font-size: var(--text-sm);
  padding-block: 0.6em;
  padding-inline: 1.15em;
}

/* Below the burger breakpoint the order is logo | CTA | burger, and the
   CTA shrinks further so all three fit inside the gutter on a 375px phone. */
/* .e-con added to outrank the element's own style class, which is emitted
   in local-204-frontend-desktop.css AFTER this file and sets flex:1 1 auto.
   Without it the nav shrank to 19px and the burger overflowed the gutter. */
@media (max-width: 1024px) {
  .elementor-204 .elementor-element-7a8c1ca9.e-con { order: 3; flex: 0 0 auto; justify-content: flex-end; }
  .elementor-204 .elementor-element-5d46333c.e-con { order: 2; }
  .elementor-204 .elementor-element-da23c7b.e-con { gap: var(--space-s); }
}
@media (max-width: 767px) {
  .elementor-204 .e-button-base.btn { padding-inline: 0.7em; }
  .elementor-204 .elementor-element-da23c7b.e-con { gap: var(--space-2xs); }
  .elementor-204 .elementor-element-67861189.e-con { padding-block: var(--space-xs); }
  /* The logo image is 160px wide. At that size logo + CTA + burger came to
     375px against 335px of gutter on a 375px phone and pushed the burger
     off screen, so the wordmark scales down here. */
  /* the Site Logo widget emits .elementor-204 .elementor-element.elementor-element-d231933 img
     at (0,3,1) from post-204.css, which loads after this file — hence the extra classes. */
  .elementor-204 .elementor-element.elementor-element-d231933.elementor-widget img { width: 110px; height: auto; }
}

/* ── Nuetzling · cart (woocommerce-menu-cart in header template 204) ─ */
/* This widget exposes a full custom-property API and its own stylesheet
   loads AFTER the kit with identical .elementor-kit-9s, so overriding properties
   can never win. Setting its variables is both reliable and on-system. */
.elementor-204 .elementor-widget-woocommerce-menu-cart {
  /* toggle button in the bar */
  --toggle-button-background-color: transparent;
  --toggle-button-hover-background-color: transparent;
  --toggle-button-border-color: var(--border-subtle);
  --toggle-button-hover-border-color: var(--border-strong);
  --toggle-button-border-radius: var(--radius-s);
  --toggle-button-border-width: 1px;
  --toggle-button-icon-color: var(--text-secondary);
  --toggle-button-icon-hover-color: var(--text-primary);
  --toggle-button-text-color: var(--text-secondary);
  --toggle-button-hover-text-color: var(--text-primary);
  --toggle-icon-padding: 0.5em 0.7em;

  /* item-count bubble (Elementor ships #d9534f) */
  --items-indicator-background-color: var(--accent);
  --items-indicator-text-color: var(--on-accent);

  /* slide-out panel */
  --cart-background-color: var(--bg-surface);
  --cart-padding: var(--space-l);
  --cart-close-button-color: var(--text-secondary);
  --cart-close-button-hover-color: var(--text-primary);
  --divider-color: var(--border-subtle);
  --subtotal-divider-color: var(--border-subtle);
  --menu-cart-subtotal-color: var(--text-primary);
  --product-price-color: var(--text-secondary);
  --product-variations-color: var(--text-muted);
  --remove-item-button-color: var(--text-muted);
  --remove-item-button-hover-color: var(--accent);
  --empty-message-color: var(--text-muted);

  /* footer buttons: secondary + primary, matching .btn treatments */
  --cart-footer-buttons-border-radius: var(--radius-m);
  --view-cart-button-background-color: var(--bg-raised);
  --view-cart-button-text-color: var(--text-primary);
  --view-cart-button-hover-background-color: var(--bg-base);
  --view-cart-button-hover-text-color: var(--text-primary);
  --checkout-button-background-color: var(--accent);
  --checkout-button-text-color: var(--on-accent);
  --checkout-button-hover-background-color: var(--accent-strong);
  --checkout-button-hover-text-color: var(--on-accent);
}

/* The product title has no variable, so it stays a property override. */
.elementor-menu-cart__product-name,
.elementor-menu-cart__product-name a {
  font-family: var(--font-body);
  font-weight: 700;
  color: var(--text-primary);
  text-decoration: none;
}
.elementor-menu-cart__product-name a:hover { color: var(--accent); }

/* Hidden below the burger breakpoint: logo, cart, CTA and burger together
   overflow the gutter on a 375px phone, and "Warenkorb" is already an item
   in the collapsed menu. */
@media (max-width: 767px) {
  .elementor-204 .elementor-widget-woocommerce-menu-cart { display: none; }
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Daily Notes';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://nuetzling.store/wp-content/uploads/2026/09/daily-notes.woff2') format('woff2');
}
/* End Custom Fonts CSS */