/* ============================================================
   Folienmarie - "Zaubersterne" Shop-Funktionsseiten
   ============================================================
   On-Brand-CSS-Entwurf fuer WooCommerce-Funktionsseiten,
   404 und Suche. Knuepft an zaubersterne.css an und nutzt
   AUSSCHLIESSLICH dort definierte Design-Tokens:
     --c-ink     #2D2138  (Schrift)
     --c-ink-soft#5A4B6E  (Sekundaer-Schrift)
     --c-magenta #C13864  (Primaer-Akzent / Buttons)
     --c-magenta-deep #9A2B4E (Hover / dunkler Akzent)
     --c-paper   #FBF7F2  (Karten-/Flaechen-Hintergrund)
     --c-cream   #F6E9C6  (warmer Akzent)
     --c-cream-soft #FBF4DD (sanfter Karten-BG)
     --c-teal    #6FC9B8  (Erfolg/Türkis)
     --c-gold    #E8B83A  (Hinweis-Akzent)
     --fm-shadow-card 0 18px 40px rgba(45,33,56,0.07)
   Muster: Pillen-Buttons (magenta, uppercase, letter-spacing .16em),
   Karten (radius 24-28px), Headlines Fraunces serif italic,
   Body Inter, Inputs im .fm-cf7-Stil (radius 14px, 1.5px Border,
   Magenta-Focus mit 3px-Ring).
   ENTWURF - noch nicht im Theme verlinkt. Nur lesen/abgleichen.
   ============================================================ */


/* ============================================================
   0) GEMEINSAME GRUNDLAGEN (alle Shop-Funktionsseiten)
   ============================================================ */

/* Brand-Token fuer Erfolg/Fehler/Info aus den vorhandenen Farben ableiten */
:root {
  --fm-ok:        var(--c-teal);
  --fm-ok-bg:     rgba(111, 201, 184, 0.14);
  --fm-warn:      var(--c-gold);
  --fm-warn-bg:   rgba(232, 184, 58, 0.14);
  --fm-err:       var(--c-magenta-deep);
  --fm-err-bg:    rgba(154, 43, 78, 0.10);
  --fm-line:      rgba(45, 33, 56, 0.14);   /* dezente Trennlinien */
}

/* Ueberschriften in WooCommerce-Bereichen einheitlich Fraunces */
.woocommerce h1, .woocommerce h2, .woocommerce h3,
.woocommerce-page h1, .woocommerce-page h2, .woocommerce-page h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-weight: 900;
  color: var(--c-ink);
  letter-spacing: -.01em;
}

/* Pillen-Buttons: alle generischen Woo-Buttons auf den Marken-Look heben.
   (.alt-Varianten kommen schon aus zaubersterne.css - hier die uebrigen.) */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .78rem;
  border: none;
  border-radius: 999px;
  padding: 13px 28px;
  background: var(--c-cream);
  color: var(--c-magenta-deep);
  transition: background .2s, transform .2s, color .2s;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:hover {
  background: var(--c-cream-soft);
  color: var(--c-magenta-deep);
  transform: translateY(-2px);
}

/* Primaer-Aktionen (Checkout, Bestellen) bleiben magenta */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .checkout-button,
.woocommerce .wc-proceed-to-checkout .button,
.wc-block-components-button.contained,
.wc-block-cart__submit-button {
  background: var(--c-magenta);
  color: #fff;
  box-shadow: 0 12px 28px rgba(154, 43, 78, .30);
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce .checkout-button:hover,
.woocommerce .wc-proceed-to-checkout .button:hover,
.wc-block-components-button.contained:hover,
.wc-block-cart__submit-button:hover {
  background: var(--c-magenta-deep);
  color: #fff;
}


/* ============================================================
   1) HINWEIS-BOXEN (info / message / error)
   ------------------------------------------------------------
   Default-Woo nutzt Grau/Lila-Toechter. Hier on-brand:
   Papier-Karten mit linkem Akzentbalken statt Fremdfarben.
   Gilt fuer klassische UND Block-Notices.
   ============================================================ */
.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error,
.wc-block-components-notice-banner {
  border: 1px solid var(--fm-line);
  border-left-width: 4px;
  border-radius: 14px;
  background: var(--c-paper);
  color: var(--c-ink);
  font-family: 'Inter', sans-serif;
  font-size: 14.5px;
  line-height: 1.5;
  padding: 15px 20px;
  box-shadow: var(--fm-shadow-card);
  list-style: none;
}
/* Info (neutral, Magenta-Akzent) */
.woocommerce-info,
.woocommerce .woocommerce-info,
.wc-block-components-notice-banner.is-info {
  border-left-color: var(--c-magenta);
}
/* Erfolg / Bestaetigung (Türkis) */
.woocommerce-message,
.woocommerce .woocommerce-message,
.wc-block-components-notice-banner.is-success {
  border-left-color: var(--fm-ok);
  background: var(--fm-ok-bg);
}
/* Fehler (Magenta-Deep) */
.woocommerce-error,
.woocommerce .woocommerce-error,
.wc-block-components-notice-banner.is-error {
  border-left-color: var(--fm-err);
  background: var(--fm-err-bg);
  color: var(--c-magenta-deep);
}
/* Inline-Aktions-Button rechts in der Notice (z. B. "Warenkorb ansehen") */
.woocommerce-info .button,
.woocommerce-message .button,
.woocommerce-error .button {
  background: var(--c-magenta);
  color: #fff;
}
.woocommerce-info .button:hover,
.woocommerce-message .button:hover {
  background: var(--c-magenta-deep);
  color: #fff;
}


/* ============================================================
   2) WARENKORB - klassisches Shortcode-Markup [woocommerce_cart]
   ------------------------------------------------------------
   Tabelle als runde Papier-Karte, Summen-Box als Karte.
   ============================================================ */

/* Warenkorb-Tabelle: runde Ecken, Papier-BG, dezente Border.
   border-collapse:separate noetig, damit border-radius greift. */
.woocommerce table.shop_table {
  border: 1px solid var(--fm-line);
  border-radius: 24px;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  background: var(--c-paper);
  box-shadow: var(--fm-shadow-card);
  font-family: 'Inter', sans-serif;
  color: var(--c-ink);
  margin-bottom: 28px;
}
.woocommerce table.shop_table thead th {
  background: var(--c-cream-soft);
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-weight: 700;
  color: var(--c-ink);
  text-transform: none;
  letter-spacing: 0;
  border-bottom: 1px solid var(--fm-line);
  padding: 16px 18px;
}
.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
  border-top: 1px solid var(--fm-line);
  padding: 16px 18px;
  vertical-align: middle;
}
.woocommerce table.shop_table tbody tr:first-child td {
  border-top: none;
}
/* Produktbild-Thumbnail in der Warenkorb-Zeile abrunden */
.woocommerce table.shop_table td.product-thumbnail img {
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(45, 33, 56, .10);
}
/* Produktname-Link */
.woocommerce table.shop_table td.product-name a {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-weight: 700;
  color: var(--c-ink);
  text-decoration: none;
}
.woocommerce table.shop_table td.product-name a:hover {
  color: var(--c-magenta);
}
/* Preis / Zwischensumme in Magenta hervorheben */
.woocommerce table.shop_table td.product-subtotal,
.woocommerce table.shop_table td.product-price {
  font-family: 'Fraunces', serif;
  font-weight: 700;
  color: var(--c-magenta);
}
/* Loeschen-Kreuz dezent, Hover magenta */
.woocommerce table.shop_table td.product-remove a.remove {
  color: var(--c-ink-soft) !important;
  border-radius: 50%;
  font-weight: 700;
}
.woocommerce table.shop_table td.product-remove a.remove:hover {
  background: var(--c-magenta) !important;
  color: #fff !important;
}

/* Mengen-Stepper im fm-cf7-Input-Stil */
.woocommerce .quantity input.qty {
  border: 1.5px solid var(--fm-line);
  border-radius: 12px;
  background: var(--c-paper);
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: var(--c-ink);
  padding: 9px 8px;
  text-align: center;
  transition: border-color .2s, box-shadow .2s;
}
.woocommerce .quantity input.qty:focus {
  outline: none;
  border-color: var(--c-magenta);
  box-shadow: 0 0 0 3px rgba(193, 56, 100, .14);
}

/* Gutschein-Feld in der Warenkorb-Aktionszeile */
.woocommerce .cart .coupon input.input-text {
  border: 1.5px solid var(--fm-line);
  border-radius: 999px;
  background: var(--c-paper);
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--c-ink);
  padding: 11px 18px;
  transition: border-color .2s, box-shadow .2s;
}
.woocommerce .cart .coupon input.input-text:focus {
  outline: none;
  border-color: var(--c-magenta);
  box-shadow: 0 0 0 3px rgba(193, 56, 100, .14);
}

/* Summen-Box ("Warenkorb-Gesamtsumme") als Papier-Karte */
.woocommerce .cart_totals {
  background: var(--c-paper);
  border: 1px solid var(--fm-line);
  border-radius: 24px;
  padding: 28px 28px 24px;
  box-shadow: var(--fm-shadow-card);
}
.woocommerce .cart_totals h2 {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-weight: 900;
  color: var(--c-ink);
  margin-top: 0;
}
.woocommerce .cart_totals table.shop_table {
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  margin-bottom: 18px;
}
.woocommerce .cart_totals table.shop_table th {
  background: transparent;
  border: none;
  border-top: 1px dashed var(--fm-line);
  font-family: 'Inter', sans-serif;
  font-style: normal;
}
.woocommerce .cart_totals table.shop_table td {
  border: none;
  border-top: 1px dashed var(--fm-line);
}
.woocommerce .cart_totals .order-total .amount {
  font-family: 'Fraunces', serif;
  font-weight: 900;
  color: var(--c-magenta);
  font-size: 1.25em;
}
/* "Weiter zur Kasse" volle Breite, magenta Pille */
.woocommerce .wc-proceed-to-checkout a.checkout-button {
  display: block;
  text-align: center;
  width: 100%;
  padding: 16px 28px;
}

/* Leerer Warenkorb: freundliche on-brand Box statt nackter Text */
.woocommerce .cart-empty,
.woocommerce-cart .cart-empty {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 22px;
  color: var(--c-ink);
  text-align: center;
  background: var(--c-cream-soft);
  border-radius: 24px;
  padding: 36px 28px;
  box-shadow: var(--fm-shadow-card);
}
.woocommerce .return-to-shop a.button {
  background: var(--c-magenta);
  color: #fff;
}


/* ============================================================
   3) WARENKORB / KASSE - Block-Markup (Cart & Checkout Blocks)
   ------------------------------------------------------------
   Neuere Woo-Bloecke defensiv on-brand stylen.
   ============================================================ */
.wc-block-cart,
.wc-block-checkout {
  font-family: 'Inter', sans-serif;
  color: var(--c-ink);
}
/* Block-Warenkorb-Tabelle: dezente Trennlinien, keine harten Default-Borders */
.wc-block-cart-items {
  border-radius: 24px;
  overflow: hidden;
}
.wc-block-cart-items__row {
  border-top: 1px solid var(--fm-line);
}
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
  border-radius: 14px;
}
.wc-block-components-product-name {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-weight: 700;
  color: var(--c-ink);
  text-decoration: none;
}
.wc-block-components-product-name:hover {
  color: var(--c-magenta);
}
/* Block-Preise / Summen magenta */
.wc-block-components-product-price__value,
.wc-block-components-totals-item__value,
.wc-block-components-formatted-money-amount {
  font-family: 'Fraunces', serif;
  font-weight: 700;
  color: var(--c-magenta);
}
/* Summen-Karte rechts (Order Summary / Sidebar) */
.wc-block-components-sidebar,
.wc-block-components-totals-wrapper,
.wc-block-cart__sidebar .wc-block-components-panel {
  background: var(--c-paper);
  border: 1px solid var(--fm-line);
  border-radius: 24px;
  box-shadow: var(--fm-shadow-card);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-weight: 900;
  font-size: 1.2em;
}


/* ============================================================
   4) KASSE - klassisches Markup (form.checkout / #order_review)
   ------------------------------------------------------------
   Felder im fm-cf7-Stil, Bestell-Uebersicht als Karte.
   ============================================================ */

/* Eingabefelder: runde Inputs, 1.5px Border, Magenta-Focus (fm-cf7-Look) */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout textarea,
.wc-block-components-text-input input {
  width: 100%;
  border: 1.5px solid var(--fm-line);
  border-radius: 14px;
  background: var(--c-paper);
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: var(--c-ink);
  padding: 13px 16px;
  box-sizing: border-box;
  transition: border-color .2s, box-shadow .2s;
}

.woocommerce form .form-row textarea,
.woocommerce-checkout textarea {
  min-height:92px;
  line-height:1.45;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce-checkout input:focus,
.woocommerce-checkout textarea:focus,
.wc-block-components-text-input input:focus {
  outline: none;
  border-color: var(--c-magenta);
  box-shadow: 0 0 0 3px rgba(193, 56, 100, .14);
}
/* Labels im Inter-Stil */
.woocommerce form .form-row label,
.woocommerce-checkout label,
.wc-block-components-text-input label {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: var(--c-ink);
}
/* Select2-Dropdowns (Land etc.) angleichen */
.woocommerce .select2-container--default .select2-selection--single,
.woocommerce form .form-row select {
  border: 1.5px solid var(--fm-line) !important;
  border-radius: 14px !important;
  background: var(--c-paper);
  min-height: 48px;
  font-family: 'Inter', sans-serif;
  color: var(--c-ink);
}
.woocommerce .select2-container--default.select2-container--focus .select2-selection--single {
  border-color: var(--c-magenta) !important;
  box-shadow: 0 0 0 3px rgba(193, 56, 100, .14);
}

/* Spalten-Ueberschriften der Kasse */
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-weight: 900;
  color: var(--c-ink);
}

/* Bestelluebersicht (#order_review) als Papier-Karte */
.woocommerce-checkout #order_review {
  background: var(--c-paper);
  border: 1px solid var(--fm-line);
  border-radius: 24px;
  padding: 28px;
  box-shadow: var(--fm-shadow-card);
}
.woocommerce-checkout #order_review table.shop_table {
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
.woocommerce-checkout #order_review .order-total .amount {
  font-family: 'Fraunces', serif;
  font-weight: 900;
  color: var(--c-magenta);
  font-size: 1.2em;
}
/* Zahlungsarten-Box on-brand */
.woocommerce-checkout #payment {
  background: var(--c-cream-soft);
  border-radius: 18px;
}
.woocommerce-checkout #payment ul.payment_methods {
  border-bottom: 1px dashed var(--fm-line);
}
.woocommerce-checkout #payment div.payment_box {
  background: var(--c-paper);
  border-radius: 14px;
}
.woocommerce-checkout #payment div.payment_box::before {
  border-bottom-color: var(--c-paper);
}
/* "Bestellung abschicken" volle Breite, magenta */
.woocommerce-checkout #place_order {
  width: 100%;
  padding: 16px 28px;
  background: var(--c-magenta);
  color: #fff;
  box-shadow: 0 12px 28px rgba(154, 43, 78, .30);
}
.woocommerce-checkout #place_order:hover {
  background: var(--c-magenta-deep);
}

/* Login-/Coupon-Toggle oben in der Kasse (woocommerce-form-login etc.) */
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle {
  margin-bottom: 18px;
}


/* ============================================================
   5) KASSE - Block-Checkout (form/Block-Felder defensiv)
   ============================================================ */
.wc-block-checkout__form .wc-block-components-text-input input,
.wc-block-components-address-form input {
  border: 1.5px solid var(--fm-line);
  border-radius: 14px;
}
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper,
.wc-block-checkout__sidebar {
  background: var(--c-paper);
  border-radius: 24px;
}
.wc-block-components-checkout-place-order-button {
  background: var(--c-magenta);
  color: #fff;
  border-radius: 999px;
}
.wc-block-components-checkout-place-order-button:hover {
  background: var(--c-magenta-deep);
}


/* ============================================================
   6) MEIN KONTO - Login/Register + Konto-Navigation
   ------------------------------------------------------------
   Bestaetigt aus Live-DOM: form.woocommerce-form-login,
   .woocommerce-form-row, input.woocommerce-Input,
   button.woocommerce-button.button, .woocommerce-LostPassword,
   .woocommerce-notices-wrapper. Navigation
   (.woocommerce-MyAccount-navigation) wird nach Login sichtbar.
   ============================================================ */

/* Login-/Register-Formular als Papier-Karte */
.woocommerce-account .woocommerce form.login,
.woocommerce-account .woocommerce form.register,
.woocommerce form.woocommerce-form-login,
.woocommerce form.woocommerce-form-register,
.woocommerce-account .woocommerce > .u-column1,
.woocommerce-account .woocommerce > .u-column2 {
  border: 1px solid var(--fm-line);
  border-radius: 24px;
  background: var(--c-paper);
  padding: 32px 30px;
  box-shadow: var(--fm-shadow-card);
}

/* Eingabefelder im fm-cf7-Stil */
.woocommerce form .woocommerce-form-row input.input-text,
.woocommerce form input.woocommerce-Input,
.woocommerce-account input.input-text {
  width: 100%;
  border: 1.5px solid var(--fm-line);
  border-radius: 14px;
  background: var(--c-paper);
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: var(--c-ink);
  padding: 13px 16px;
  box-sizing: border-box;
  transition: border-color .2s, box-shadow .2s;
}
.woocommerce form .woocommerce-form-row input.input-text:focus,
.woocommerce form input.woocommerce-Input:focus,
.woocommerce-account input.input-text:focus {
  outline: none;
  border-color: var(--c-magenta);
  box-shadow: 0 0 0 3px rgba(193, 56, 100, .14);
}
.woocommerce-account form label {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: var(--c-ink);
}

/* Login-/Register-Button magenta Pille */
.woocommerce form.login button.woocommerce-button,
.woocommerce form.register button.woocommerce-button,
.woocommerce-account button.woocommerce-button.button {
  background: var(--c-magenta);
  color: #fff;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: .78rem;
  padding: 14px 32px;
  box-shadow: 0 12px 28px rgba(154, 43, 78, .30);
}
.woocommerce form.login button.woocommerce-button:hover,
.woocommerce-account button.woocommerce-button.button:hover {
  background: var(--c-magenta-deep);
  color: #fff;
}

/* "Passwort vergessen?" + "Angemeldet bleiben" dezent */
.woocommerce-LostPassword a,
.woocommerce-account .lost_password a {
  color: var(--c-magenta);
  text-decoration: none;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
}
.woocommerce-LostPassword a:hover { color: var(--c-magenta-deep); }
.woocommerce-form-login__rememberme {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--c-ink-soft);
}
.woocommerce-account input[type="checkbox"] { accent-color: var(--c-magenta); }

/* Konto-Navigation (nach Login): saubere Liste, Magenta-Active */
.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--fm-line);
  border-radius: 20px;
  overflow: hidden;
  background: var(--c-paper);
  box-shadow: var(--fm-shadow-card);
}
.woocommerce-MyAccount-navigation li {
  border-top: 1px solid var(--fm-line);
}
.woocommerce-MyAccount-navigation li:first-child { border-top: none; }
.woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 14px 20px;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: var(--c-ink-soft);
  text-decoration: none;
  transition: background .15s, color .15s;
}
.woocommerce-MyAccount-navigation li a:hover {
  background: var(--c-cream-soft);
  color: var(--c-magenta);
}
.woocommerce-MyAccount-navigation li.is-active a {
  background: var(--c-cream-soft);
  color: var(--c-magenta);
  font-weight: 700;
  box-shadow: inset 4px 0 0 var(--c-magenta);
}

/* Konto-Inhalt (Dashboard, Bestellungen, Adressen) */
.woocommerce-MyAccount-content {
  font-family: 'Inter', sans-serif;
  color: var(--c-ink);
}
.woocommerce-MyAccount-content a:not(.button) {
  color: var(--c-magenta);
}
/* Bestelluebersicht-/Adress-Tabellen erben die runde Karten-Tabelle aus (2) */


/* ============================================================
   7) SUCHE - Ergebnisseite (body.search.search-results)
   ------------------------------------------------------------
   Live-DOM: Heading h1.uk-h3 ("Suchergebnisse fuer ..."),
   Treffer als article.uk-article.product im YOOtheme-Grid.
   ============================================================ */

/* Such-Headline gross und im Marken-Look statt klein/grau */
body.search .uk-h3,
body.search .tm-main h1.uk-h3,
body.search-results h1 {
  font-family: 'Fraunces', serif !important;
  font-style: italic !important;
  font-weight: 900 !important;
  color: var(--c-ink) !important;
  font-size: clamp(34px, 4.5vw, 52px) !important;
  letter-spacing: -.01em;
  text-align: center;
}

/* Treffer-Artikel als Papier-Karte */
body.search article.uk-article.product,
body.search-results article.uk-article {
  background: var(--c-paper);
  border: 1px solid var(--fm-line);
  border-radius: 24px;
  box-shadow: var(--fm-shadow-card);
  padding: 24px 28px;
  margin-bottom: 22px;
  transition: transform .2s, box-shadow .2s;
}
body.search article.uk-article.product:hover,
body.search-results article.uk-article:hover {
  transform: translateY(-3px);
  box-shadow: var(--fm-shadow-card-hover);
}
/* Treffer-Titel Fraunces, Hover magenta */
body.search article.uk-article .uk-article-title,
body.search article.uk-article h2,
body.search article.uk-article h3 {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-weight: 700;
  color: var(--c-ink);
}
body.search article.uk-article a:hover .uk-article-title,
body.search article.uk-article .uk-article-title a:hover {
  color: var(--c-magenta);
}
/* Eventuelle Preisangabe magenta */
body.search article.uk-article .price,
body.search article.uk-article .amount {
  font-family: 'Fraunces', serif;
  font-weight: 700;
  color: var(--c-magenta);
}

/* Keine Treffer: freundliche on-brand Box (defensive Selektoren) */
body.search .uk-alert,
body.search-results .no-results,
body.search-results .search-no-results {
  background: var(--c-cream-soft);
  border: none;
  border-radius: 24px;
  padding: 32px 28px;
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 18px;
  color: var(--c-ink);
  text-align: center;
  box-shadow: var(--fm-shadow-card);
}

/* Native UIkit-Suchfeld im Marken-Look (auch oben/Sidebar) */
.uk-search.uk-search-default .uk-search-input {
  border: 1.5px solid var(--fm-line);
  border-radius: 999px;
  background: var(--c-paper);
  font-family: 'Inter', sans-serif;
  color: var(--c-ink);
  padding-left: 44px;
}
.uk-search.uk-search-default .uk-search-input:focus {
  border-color: var(--c-magenta);
  box-shadow: 0 0 0 3px rgba(193, 56, 100, .14);
}
.uk-search .uk-search-icon { color: var(--c-magenta); }

/* Pagination (Such-/Shop-Listen) on-brand */
.woocommerce nav.woocommerce-pagination ul,
.uk-pagination {
  border: none;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.uk-pagination > * > * {
  font-family: 'Inter', sans-serif;
  color: var(--c-ink-soft);
  border-radius: 999px;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.uk-pagination > .uk-active > * {
  background: var(--c-magenta) !important;
  color: #fff !important;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.uk-pagination > * > a:hover {
  color: var(--c-magenta);
}


/* ============================================================
   8) 404 - Seite nicht gefunden (body.error404)
   ------------------------------------------------------------
   Live-DOM ist YOOtheme-nativ: h1.uk-heading-medium.uk-text-center,
   p.uk-text-large.uk-text-center, form.uk-search.uk-search-default.
   Headline auf Fraunces heben, freundlicher Block + "Zum Shop"-Pille.
   ============================================================ */
body.error404 .tm-main {
  background: radial-gradient(80% 60% at 50% 0%, var(--c-cream-soft) 0%, transparent 70%), var(--c-paper);
}
/* "Hoppla!" gross und im Marken-Look (Halbgeviertstrich-Sprache im Text via Template) */
body.error404 h1.uk-heading-medium,
body.error404 .tm-main h1 {
  font-family: 'Fraunces', serif !important;
  font-style: italic !important;
  font-weight: 900 !important;
  color: var(--c-ink) !important;
  letter-spacing: -.01em;
}
body.error404 .uk-text-large {
  font-family: 'Fraunces', serif;
  font-style: italic;
  color: var(--c-ink-soft);
}
/* Suchfeld der 404-Seite erbt den .uk-search-Look aus (7) */

/* "Zum Shop"-Button: greift, sobald im 404-Template ein
   .uk-button(-primary) oder .fm-btn-shop ergaenzt wird.
   Bis dahin nur als magenta Pille vordefiniert. */
body.error404 .uk-button-primary,
body.error404 a.fm-btn-shop,
body.error404 .uk-text-center a.uk-button {
  background: var(--c-magenta) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: .78rem;
  padding: 14px 32px !important;
  box-shadow: 0 12px 28px rgba(154, 43, 78, .30);
}
body.error404 .uk-button-primary:hover,
body.error404 a.fm-btn-shop:hover {
  background: var(--c-magenta-deep) !important;
}


/* ============================================================
   9) RESPONSIVE - schmale Viewports
   ============================================================ */
@media (max-width: 640px) {
  /* Warenkorb-Karten und Summen-Boxen etwas kompakter */
  .woocommerce .cart_totals,
  .woocommerce-checkout #order_review,
  .woocommerce form.woocommerce-form-login {
    padding: 22px 18px;
  }
  /* Such-/404-Headline nicht ueberlaufen lassen */
  body.search .uk-h3,
  body.error404 h1.uk-heading-medium {
    font-size: clamp(28px, 7vw, 40px) !important;
  }
  /* Volle Breite fuer Konto-Spalten (u-columns) */
  .woocommerce-account .woocommerce > .u-column1,
  .woocommerce-account .woocommerce > .u-column2 {
    width: 100%;
    margin-bottom: 18px;
  }
}

/* ===== Fester Warenkorb-Button (Nicht-Home-Seiten) ===== */
.fm-cart-fab{ position:fixed; right:22px; bottom:22px; z-index:1000; display:inline-flex; align-items:center; gap:9px; background:var(--c-magenta); color:#fff; border-radius:999px; padding:13px 20px; box-shadow:0 12px 28px rgba(154,43,78,.34); text-decoration:none; font-family:'Inter',sans-serif; font-weight:700; font-size:13px; letter-spacing:.04em; transition:transform .2s, background .2s; }
.fm-cart-fab:hover{ background:var(--c-magenta-deep); transform:translateY(-3px); color:#fff; }
.fm-cart-fab svg{ fill:none; stroke:#fff; stroke-width:1.5; stroke-linejoin:round; stroke-linecap:round; }
.fm-cart-fab-count{ background:var(--c-gold); color:var(--c-magenta-deep); border-radius:999px; min-width:21px; height:21px; padding:0 6px; display:inline-flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; }
@media (max-width:560px){ .fm-cart-fab{ right:14px; bottom:14px; padding:12px 16px; } .fm-cart-fab-label{ display:none; } }

/* ============================================================
   DS-Abgleich fuer Warenkorb, Checkout, Konto, Suche, 404
   Stand 2026-06-04: Page-Templates-Board aus folienmarie-ds.
   ============================================================ */
.woocommerce,
.woocommerce-page,
.wc-block-cart,
.wc-block-checkout {
  font-family: var(--font-body);
  font-weight: 600;
}
.woocommerce table.shop_table,
.woocommerce .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-account .woocommerce form.login,
.woocommerce-account .woocommerce form.register,
.woocommerce form.woocommerce-form-login,
.woocommerce form.woocommerce-form-register,
.woocommerce-account .woocommerce > .u-column1,
.woocommerce-account .woocommerce > .u-column2,
.woocommerce-MyAccount-navigation ul,
.wc-block-components-sidebar,
.wc-block-components-totals-wrapper,
.wc-block-cart__sidebar .wc-block-components-panel {
  background:#fff !important;
  border:1px solid var(--c-cream-soft) !important;
  border-radius:var(--r-md) !important;
  box-shadow:0 4px 16px rgba(45,33,56,.06) !important;
}
.woocommerce h1,
.woocommerce h2,
.woocommerce h3,
.woocommerce-page h1,
.woocommerce-page h2,
.woocommerce-page h3,
.woocommerce .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading,
.woocommerce-account .woocommerce h2,
body.search .uk-h3,
body.error404 h1.uk-heading-medium {
  font-family:var(--font-display) !important;
  font-weight:900 !important;
  font-style:italic !important;
  letter-spacing:0 !important;
  color:var(--c-ink) !important;
}
.woocommerce form .form-row label,
.woocommerce-checkout label,
.wc-block-components-text-input label,
.woocommerce-account form label,
.woocommerce table.shop_table thead th,
.woocommerce-MyAccount-navigation li a {
  font-family:var(--font-ui) !important;
  font-weight:800 !important;
  letter-spacing:.04em !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout textarea,
.wc-block-components-text-input input,
.woocommerce .cart .coupon input.input-text,
.woocommerce .quantity input.qty,
.woocommerce form input.woocommerce-Input,
.woocommerce-account input.input-text {
  background:var(--c-paper) !important;
  border:1.5px solid #E0D8E8 !important;
  border-radius:var(--r-xs) !important;
  font-family:var(--font-body) !important;
  font-weight:600 !important;
  color:var(--c-ink) !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce-checkout input:focus,
.woocommerce-checkout textarea:focus,
.wc-block-components-text-input input:focus,
.woocommerce .quantity input.qty:focus,
.woocommerce form input.woocommerce-Input:focus {
  border-color:var(--c-magenta) !important;
  box-shadow:0 0 0 3px rgba(193,56,100,.12) !important;
}
.woocommerce table.shop_table td.product-name a,
.wc-block-components-product-name,
.woocommerce .cart_totals .order-total .amount,
.woocommerce-checkout #order_review .order-total .amount,
.wc-block-components-product-price__value,
.wc-block-components-totals-item__value,
.wc-block-components-formatted-money-amount,
.woocommerce table.shop_table td.product-subtotal,
.woocommerce table.shop_table td.product-price {
  font-family:var(--font-display) !important;
  font-weight:900 !important;
  font-style:italic !important;
  color:var(--c-ink) !important;
}
.woocommerce .cart_totals .order-total .amount,
.woocommerce-checkout #order_review .order-total .amount,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color:var(--c-magenta) !important;
}
.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.wc-block-components-notice-banner {
  border-radius:var(--r-sm) !important;
  font-family:var(--font-body) !important;
  font-weight:600 !important;
}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button,
.woocommerce .checkout-button,
.woocommerce .wc-proceed-to-checkout .button,
.wc-block-cart__submit-button,
.woocommerce-checkout #place_order {
  border:2.5px solid #fff !important;
  border-radius:var(--r-pill) !important;
  font-family:var(--font-ui) !important;
  font-weight:900 !important;
  letter-spacing:.02em !important;
  text-transform:none !important;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .checkout-button,
.woocommerce .wc-proceed-to-checkout .button,
.wc-block-components-button.contained,
.wc-block-cart__submit-button,
.woocommerce-checkout #place_order {
  background:var(--c-magenta) !important;
  color:#fff !important;
  box-shadow:var(--shadow-btn) !important;
}

@media (max-width:700px) {
  body.woocommerce-cart .wc-block-cart-item__prices {
    display:none !important;
  }

  body.woocommerce-cart .wc-block-cart__sidebar {
    padding:16px !important;
    overflow:hidden;
  }

  body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper,
  body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-panel {
    margin:0 !important;
    padding:12px 0 !important;
    border:0 !important;
    border-top:1px solid rgba(45,33,56,.10) !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }

  body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper:first-child {
    border-top:0 !important;
    padding-top:0 !important;
  }

  body.woocommerce-cart .wc-block-components-panel__button {
    min-height:30px;
    padding:0 32px 0 0 !important;
    color:var(--c-ink) !important;
    font-family:var(--font-ui) !important;
    font-size:16px !important;
    font-weight:800 !important;
    line-height:1.25 !important;
  }

  body.woocommerce-cart .wc-block-components-totals-item {
    align-items:flex-start;
    gap:14px;
  }

  body.woocommerce-cart .wc-block-components-totals-footer-item {
    margin-top:10px;
    padding:16px !important;
    border:1px solid var(--c-cream-soft) !important;
    border-radius:20px !important;
    background:#fff !important;
  }
}
.fm-cart-fab {
  border:2.5px solid #fff;
  font-family:var(--font-ui);
  font-weight:900;
  letter-spacing:.02em;
  text-transform:none;
  box-shadow:var(--shadow-btn);
}
/* Real WooCommerce template shell: no YOOtheme page wrapper. */
.fm-template-woo {
  background: var(--fm-bg, #fff8f0);
}

.fm-woo-shell {
  min-height: 70vh;
  padding: clamp(28px, 5vw, 72px) 0 clamp(48px, 7vw, 96px);
}

.fm-woo-container {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
}

.fm-template-woo .woocommerce-notices-wrapper {
  margin-bottom: 18px;
}

body.fm-template-woo .zs-site-header {
  display: block;
}

body.fm-template-woo .zs-site-header .uk-container {
  width: min(1180px, calc(100% - 32px));
  max-width: none;
  margin: 0 auto;
  padding: 0;
}

body.fm-template-woo .zs-site-header .zs-nav {
  min-height: 72px;
  padding: 14px 0;
}

/* Template-first static pages: rendered without WordPress page posts. */
.fm-template-page {
  min-height:100vh;
  background:var(--c-paper);
  color:var(--c-ink);
  font-family:var(--font-body);
}

body.fm-template-page .zs-site-header .uk-container {
  width:min(1180px, calc(100% - 32px));
  max-width:none;
  margin:0 auto;
  padding:0;
}

body.fm-template-page .zs-site-header .zs-nav {
  min-height:72px;
  padding:14px 0;
}

body.fm-template-page .fm-page-shell {
  box-sizing:border-box;
  width:min(960px, calc(100% - 32px));
  margin:clamp(42px, 6vw, 82px) auto;
  padding:clamp(28px, 5vw, 58px);
  border:2px solid rgba(255,255,255,.86);
  border-radius:28px;
  background:
    var(--m-ink),
    radial-gradient(90% 70% at 50% 0%, var(--c-cream-soft) 0%, transparent 72%),
    rgba(255,255,255,.82);
  background-size:96px, auto, auto;
  box-shadow:0 8px 0 rgba(154,43,78,.08),0 24px 58px rgba(45,33,56,.10);
}

body.fm-template-page .fm-page-shell *,
body.fm-template-page .fm-page-shell *::before,
body.fm-template-page .fm-page-shell *::after {
  box-sizing:border-box;
}

body.fm-template-page .fm-page-shell .fm-btn {
  max-width:100%;
  white-space:normal;
  text-align:center;
}

body.fm-template-page .fm-kicker {
  display:inline-flex;
  margin:0 0 10px;
  padding:8px 16px;
  border:2.5px solid #fff;
  border-radius:999px;
  background:var(--c-magenta);
  color:#fff !important;
  -webkit-text-fill-color:#fff;
  font-family:var(--font-ui) !important;
  font-size:12px !important;
  font-style:normal !important;
  font-weight:900 !important;
  letter-spacing:.12em !important;
  line-height:1;
  text-transform:uppercase !important;
  transform:rotate(-1.5deg);
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.14),0 5px 12px rgba(193,56,100,.28);
}

body.fm-template-page .fm-page-shell h1,
body.fm-template-page .fm-page-shell h2,
body.fm-template-page .fm-page-shell h3 {
  color:var(--c-ink) !important;
  font-family:var(--font-display) !important;
  font-style:italic !important;
  font-weight:900 !important;
  letter-spacing:0;
}

body.fm-template-page .fm-page-shell h1 {
  max-width:780px;
  margin:0 0 18px;
  padding-bottom:.08em;
  font-size:clamp(40px, 5vw, 64px);
  line-height:1.18;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  text-wrap:balance;
}

body.fm-template-page .fm-page-shell h2 {
  margin:0 0 12px;
  font-size:clamp(28px, 3.8vw, 42px);
  line-height:1.12;
}

body.fm-template-page .fm-page-shell p,
body.fm-template-page .fm-page-shell li,
body.fm-template-page .fm-page-shell address {
  max-width:760px;
  margin:0 0 14px;
  color:var(--c-ink-soft);
  font-size:17px;
  font-weight:700;
  line-height:1.62;
}

body.fm-template-page .fm-page-shell a {
  color:var(--c-magenta);
  font-weight:900;
  text-decoration:none;
}

body.fm-template-page .fm-page-shell a:hover {
  color:var(--c-magenta-deep);
  text-decoration:underline;
}

body.fm-template-page .fm-legal-draft-notice {
  margin:24px 0;
  padding:18px 22px;
  border:2px dashed rgba(193,56,100,.28);
  border-radius:18px;
  background:var(--c-cream-soft);
}

body.fm-template-page .fm-legal-nav {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:26px;
}

body.fm-template-page .fm-legal-nav a,
body.fm-template-page .fm-legal-nav-current {
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:9px 14px;
  border:2px solid #fff;
  border-radius:999px;
  background:var(--c-cream);
  color:var(--c-magenta-deep);
  font-family:var(--font-ui);
  font-size:12px;
  font-weight:900;
  text-decoration:none;
}

body.fm-template-page .fm-legal-nav-current {
  background:var(--c-magenta);
  color:#fff;
}

body.fm-template-page .zs-footer-bottom,
body.fm-template-woo .zs-footer-bottom {
  flex-wrap:wrap !important;
}

@media (max-width: 760px) {
  body.fm-template-woo .zs-site-header .uk-container,
  body.fm-template-page .zs-site-header .uk-container {
    width: calc(100% - 24px);
  }

  body.fm-template-woo .zs-site-header .zs-nav,
  body.fm-template-page .zs-site-header .zs-nav {
    min-height: 62px;
    gap: 12px;
  }

  body.fm-template-woo .zs-site-header .zs-nav-links,
  body.fm-template-woo .zs-site-header .zs-m2,
  body.fm-template-page .zs-site-header .zs-nav-links,
  body.fm-template-page .zs-site-header .zs-m2 {
    display: none;
  }

  body.fm-template-woo .zs-site-header .zs-m1,
  body.fm-template-page .zs-site-header .zs-m1 {
    font-size: 27px;
  }

  body.fm-template-woo .zs-site-header .zs-nav-cart,
  body.fm-template-page .zs-site-header .zs-nav-cart {
    padding: 10px 15px;
    font-size: 11px;
  }

  body.fm-template-page .fm-page-shell {
    width:calc(100% - 24px);
    margin:30px auto;
    padding:28px 20px;
    border-radius:22px;
  }

  body.fm-template-page .fm-page-shell h1 {
    font-size:34px;
    line-height:1.18;
    max-width:100%;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }

  body.fm-template-page .fm-legal-page h1 {
    font-size:min(34px, 6.7vw);
    line-height:1.2;
  }

  body.fm-template-page .fm-page-shell p,
  body.fm-template-page .fm-page-shell li,
  body.fm-template-page .fm-page-shell address {
    font-size:15px;
  }
}

/* ============================================================
   10) TEMPLATE-FIRST SHOP + PRODUKTSEITE
   ============================================================ */

body.fm-template-woo {
  margin:0;
}

body.fm-template-woo .fm-woo-shell,
body.fm-template-woo .fm-woo-shell *,
body.fm-template-woo .fm-woo-shell *::before,
body.fm-template-woo .fm-woo-shell *::after {
  box-sizing:border-box;
}

.fm-template-woo .fm-woo-shell {
  padding:0 0 clamp(56px, 8vw, 104px);
  background:
    radial-gradient(96% 70% at 50% 0%, rgba(239,233,242,.78) 0%, transparent 66%),
    var(--c-paper);
  color:var(--c-ink);
  font-family:var(--font-body);
  font-weight:600;
}

.fm-template-woo .fm-woo-container {
  width:100%;
  max-width:none;
  margin:0;
}

.fm-woo-system-page {
  width:min(1080px, calc(100% - 32px));
  margin:0 auto;
}

.fm-woo-system-card {
  overflow:hidden;
  padding:clamp(22px, 4vw, 42px);
  border:2px solid #fff;
  border-radius:28px;
  background:
    var(--m-stars),
    radial-gradient(90% 70% at 50% 0%, var(--c-cream-soft) 0%, transparent 72%),
    rgba(255,255,255,.88);
  background-size:90px, auto, auto;
  box-shadow:0 8px 0 rgba(154,43,78,.07),0 24px 58px rgba(45,33,56,.10);
}

.fm-woo-system-card > :first-child {
  margin-top:0;
}

.fm-woo-page-head {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  margin:0 0 clamp(28px, 5vw, 56px);
  background:
    radial-gradient(105% 90% at 0% 0%, var(--c-purple) 0%, transparent 56%),
    radial-gradient(110% 90% at 100% 0%, var(--c-pink) 0%, transparent 56%),
    radial-gradient(110% 90% at 100% 100%, var(--c-teal) 0%, transparent 58%),
    radial-gradient(96% 86% at 0% 100%, var(--c-blue) 0%, transparent 58%),
    var(--c-mist);
  color:var(--c-paper);
}

.fm-woo-page-head::after {
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:14px;
  background-image:
    linear-gradient(135deg,var(--c-cream) 33%,transparent 33%),
    linear-gradient(-135deg,var(--c-cream) 33%,transparent 33%);
  background-size:20px 14px;
  background-repeat:repeat-x;
  opacity:.48;
  z-index:2;
}

.fm-woo-page-head-pattern {
  position:absolute;
  inset:0;
  z-index:0;
  background-image:var(--m-stars);
  background-size:86px;
  opacity:.46;
  pointer-events:none;
}

.fm-woo-page-head-inner {
  position:relative;
  z-index:1;
  width:min(1180px, calc(100% - 32px));
  margin:0 auto;
  padding:clamp(42px, 7vw, 86px) 0 clamp(50px, 7vw, 92px);
}

.fm-woo-crumbs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 14px;
  color:rgba(246,233,198,.78);
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.fm-woo-crumbs a {
  color:inherit;
  text-decoration:none;
}

.fm-woo-crumbs strong {
  color:#fff;
  font-weight:900;
}

.fm-woo-eyebrow {
  display:inline-flex;
  margin:0 0 14px;
  padding:8px 17px;
  border:2.5px solid rgba(255,255,255,.84);
  border-radius:999px;
  background:var(--c-magenta);
  color:#fff !important;
  font-family:var(--font-ui) !important;
  font-size:12px !important;
  font-weight:900 !important;
  letter-spacing:.12em !important;
  line-height:1 !important;
  text-transform:uppercase;
  transform:rotate(-1.5deg);
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.14),0 5px 12px rgba(45,33,56,.22);
}

.fm-woo-page-head h1 {
  max-width:880px;
  margin:0;
  padding-bottom:.12em;
  color:var(--c-paper) !important;
  font-family:var(--font-display) !important;
  font-size:clamp(44px, 7vw, 86px);
  font-style:italic !important;
  font-weight:900 !important;
  letter-spacing:0;
  line-height:1.14;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  text-wrap:balance;
  text-shadow:0 3px 0 rgba(154,43,78,.28),0 12px 26px rgba(45,33,56,.22);
}

.fm-woo-head-copy {
  max-width:680px;
  margin:20px 0 0;
  color:rgba(255,255,255,.92);
  font-family:var(--font-display);
  font-size:clamp(17px, 2vw, 22px);
  font-style:italic;
  line-height:1.52;
  text-shadow:0 1px 2px rgba(45,33,56,.18);
}

.fm-woo-head-trust {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:26px;
}

.fm-woo-head-trust span {
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 13px;
  border:2px solid rgba(255,255,255,.82);
  border-radius:999px;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-family:var(--font-ui);
  font-size:12px;
  font-weight:900;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.08);
}

.fm-collection-theme {
  --fm-collection-a:var(--c-magenta);
  --fm-collection-b:var(--c-magenta-deep);
  --fm-collection-c:var(--c-gold);
  --fm-collection-soft:var(--c-cream-soft);
  --fm-collection-paper:var(--c-paper);
  --fm-collection-ink:var(--c-ink);
  --fm-collection-cream:var(--c-cream);
}

.fm-collection-theme .fm-woo-page-head-inner {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,340px);
  gap:clamp(22px,4vw,52px);
  align-items:center;
}

.fm-woo-page-head-copy {
  min-width:0;
}

body.fm-template-woo.has-world:not(.world-home) .fm-woo-shell {
  background:
    radial-gradient(90% 62% at 50% 0%, color-mix(in srgb, var(--fm-collection-soft) 78%, #fff 22%) 0%, transparent 70%),
    var(--c-paper);
}

.fm-collection-theme.fm-woo-page-head,
body.fm-template-woo .fm-global-header.fm-collection-theme,
body.fm-template-page .fm-global-header.fm-collection-theme {
  background:
    radial-gradient(105% 90% at 0% 0%, color-mix(in srgb, var(--fm-collection-a) 88%, #fff 12%) 0%, transparent 56%),
    radial-gradient(110% 90% at 100% 0%, color-mix(in srgb, var(--fm-collection-c) 84%, #fff 16%) 0%, transparent 56%),
    radial-gradient(110% 90% at 100% 100%, color-mix(in srgb, var(--fm-collection-a) 62%, var(--c-teal) 38%) 0%, transparent 58%),
    radial-gradient(96% 86% at 0% 100%, var(--fm-collection-b) 0%, transparent 58%),
    var(--fm-collection-b) !important;
}

.fm-collection-theme.fm-woo-page-head::after {
  background-image:
    linear-gradient(135deg,var(--fm-collection-cream) 33%,transparent 33%),
    linear-gradient(-135deg,var(--fm-collection-cream) 33%,transparent 33%);
}

.fm-collection-theme .fm-woo-eyebrow {
  background:var(--fm-collection-cream);
  color:var(--fm-collection-b) !important;
}

.fm-collection-theme .fm-shop-hero-primary {
  color:var(--fm-collection-b);
}

.fm-collection-theme .fm-shop-hero-secondary {
  background:rgba(255,255,255,.16);
}

.fm-collection-scallop {
  position:relative;
  justify-self:end;
  width:min(100%, 340px);
  aspect-ratio:1 / .97;
  display:grid;
  place-items:center;
  color:var(--fm-collection-cream);
  transform:rotate(2deg);
}

.fm-collection-scallop svg {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  filter:drop-shadow(0 20px 42px color-mix(in srgb, var(--fm-collection-b) 36%, transparent));
}

.fm-collection-scallop-content {
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:78%;
  min-height:64%;
  padding:38px 28px 32px;
  text-align:center;
}

.fm-collection-scallop-eyebrow,
.fm-collection-scallop-count {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:100%;
  padding:8px 13px;
  border:1.5px solid color-mix(in srgb, var(--fm-collection-cream) 78%, transparent);
  border-radius:6px;
  background:var(--fm-collection-cream);
  color:var(--fm-collection-b);
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1;
  text-transform:uppercase;
  box-shadow:0 3px 0 color-mix(in srgb, var(--fm-collection-b) 28%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--fm-collection-b) 18%, transparent);
}

.fm-collection-scallop strong {
  display:block;
  max-width:100%;
  margin:12px 0 8px;
  color:var(--fm-collection-cream);
  font-family:var(--font-display);
  font-size:40px;
  font-style:italic;
  font-weight:900;
  letter-spacing:0;
  line-height:1.02;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  white-space:nowrap;
  text-shadow:0 3px 0 color-mix(in srgb, var(--fm-collection-b) 72%, #000 28%),0 9px 18px rgba(20,10,20,.34);
}

.fm-collection-scallop-rule {
  display:block;
  width:76px;
  height:2px;
  margin:0 0 10px;
  background:linear-gradient(90deg, transparent, var(--fm-collection-cream), transparent);
  opacity:.84;
}

.fm-collection-scallop-note {
  position:absolute;
  right:-5%;
  top:10%;
  z-index:3;
  display:grid;
  place-items:center;
  width:88px;
  height:88px;
  padding:10px;
  border:2px solid rgba(255,255,255,.82);
  border-radius:50%;
  background:var(--fm-collection-c);
  color:var(--fm-collection-b);
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:900;
  letter-spacing:0;
  line-height:1.05;
  text-align:center;
  text-transform:uppercase;
  box-shadow:0 6px 0 color-mix(in srgb, var(--fm-collection-b) 28%, transparent),0 16px 28px color-mix(in srgb, var(--fm-collection-b) 24%, transparent),inset 0 -3px 0 rgba(0,0,0,.11);
  transform:rotate(-8deg);
}

body.fm-template-woo .fm-global-header.fm-collection-theme .zs-nav-cart,
body.fm-template-page .fm-global-header.fm-collection-theme .zs-nav-cart {
  color:var(--fm-collection-b);
}

body.fm-template-woo .fm-global-header.fm-collection-theme .fm-mobile-menu[open] summary,
body.fm-template-page .fm-global-header.fm-collection-theme .fm-mobile-menu[open] summary,
body.fm-template-woo .fm-global-header.fm-collection-theme .fm-mobile-menu-panel a:hover,
body.fm-template-page .fm-global-header.fm-collection-theme .fm-mobile-menu-panel a:hover {
  color:var(--fm-collection-b);
}

.fm-collection-story,
.fm-collection-pairing {
  width:min(1180px, calc(100% - 32px));
  margin:0 auto clamp(26px, 4vw, 44px);
}

.fm-collection-story {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(340px,1.08fr);
  gap:clamp(18px, 3vw, 34px);
  overflow:hidden;
  padding:clamp(22px, 4vw, 38px);
  border:2px solid #fff;
  border-radius:28px;
  background:
    var(--m-stars),
    linear-gradient(140deg, color-mix(in srgb, var(--fm-collection-soft) 86%, #fff 14%), #fff);
  background-size:88px, auto;
  color:var(--fm-collection-ink);
  box-shadow:0 8px 0 color-mix(in srgb, var(--fm-collection-b) 14%, transparent),0 24px 58px rgba(45,33,56,.10);
}

.fm-collection-kicker {
  display:inline-flex;
  margin:0 0 12px;
  padding:7px 13px;
  border:2px solid #fff;
  border-radius:999px;
  background:var(--fm-collection-b);
  color:#fff;
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.14);
}

.fm-collection-story h2,
.fm-collection-pairing h2 {
  max-width:680px;
  margin:0;
  color:var(--fm-collection-ink) !important;
  font-family:var(--font-display) !important;
  font-size:clamp(34px, 4.8vw, 58px);
  font-style:italic !important;
  font-weight:900 !important;
  letter-spacing:0;
  line-height:1.12;
}

.fm-collection-story-copy p:last-child {
  max-width:610px;
  margin:16px 0 0;
  color:color-mix(in srgb, var(--fm-collection-ink) 78%, #fff 22%);
  font-size:17px;
  line-height:1.55;
}

.fm-collection-stat-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.fm-collection-stat-grid article {
  min-width:0;
  padding:18px;
  border:2px solid #fff;
  border-radius:22px;
  background:rgba(255,255,255,.78);
  box-shadow:0 10px 22px rgba(45,33,56,.07);
}

.fm-collection-stat-grid span {
  display:block;
  color:var(--fm-collection-b);
  font-family:var(--font-display);
  font-size:clamp(28px, 4vw, 42px);
  font-style:italic;
  font-weight:900;
  line-height:1;
}

.fm-collection-stat-grid strong {
  display:block;
  margin-top:8px;
  color:var(--fm-collection-ink);
  font-family:var(--font-display);
  font-size:20px;
  font-style:italic;
  font-weight:900;
  line-height:1.05;
}

.fm-collection-stat-grid p {
  margin:8px 0 0;
  color:color-mix(in srgb, var(--fm-collection-ink) 72%, #fff 28%);
  font-size:13px;
  line-height:1.4;
}

.fm-collection-type-pills {
  display:flex;
  flex-wrap:wrap;
  grid-column:1 / -1;
  gap:8px;
  margin-top:4px;
}

.fm-collection-type-pill {
  display:inline-flex;
  min-height:34px;
  align-items:center;
  padding:8px 13px;
  border:2px solid #fff;
  border-radius:999px;
  background:var(--fm-collection-b);
  color:#fff;
  font-family:var(--font-ui);
  font-size:12px;
  font-weight:900;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.12);
}

.fm-collection-type-gel {
  background:var(--fm-collection-a);
}

.fm-collection-type-premium {
  background:var(--fm-collection-c);
  color:var(--fm-collection-ink);
}

.fm-collection-pairing {
  margin-top:clamp(42px, 6vw, 74px);
}

.fm-collection-pairing-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:18px;
}

.fm-collection-pairing-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.fm-collection-pairing-card {
  position:relative;
  display:flex;
  min-height:190px;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  padding:22px;
  border:2px solid #fff;
  border-radius:24px;
  background:
    var(--m-stars),
    linear-gradient(145deg, var(--fm-collection-a), var(--fm-collection-b));
  background-size:82px, auto;
  color:#fff;
  text-decoration:none !important;
  box-shadow:0 14px 34px rgba(45,33,56,.10);
  transition:transform .2s, box-shadow .2s;
}

.fm-collection-pairing-card::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 28%, rgba(45,33,56,.42));
}

.fm-collection-pairing-card > * {
  position:relative;
  z-index:1;
}

.fm-collection-pairing-card:hover {
  transform:translateY(-5px);
  box-shadow:0 22px 48px rgba(45,33,56,.16);
  color:#fff;
}

.fm-collection-pairing-card span {
  align-self:flex-start;
  margin-bottom:auto;
  padding:7px 12px;
  border:2px solid #fff;
  border-radius:999px;
  background:var(--fm-collection-cream);
  color:var(--fm-collection-b);
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:900;
}

.fm-collection-pairing-card strong {
  margin-top:28px;
  color:#fff;
  font-family:var(--font-display);
  font-size:clamp(30px, 4vw, 46px);
  font-style:italic;
  font-weight:900;
  line-height:.98;
}

.fm-collection-pairing-card small {
  max-width:360px;
  margin-top:10px;
  color:rgba(255,255,255,.88);
  font-size:14px;
  font-weight:800;
  line-height:1.4;
}

body.fm-template-woo.has-world:not(.world-home) .fm-shop-card-media,
body.fm-template-woo.has-world:not(.world-home) .fm-product-main-image {
  background:
    var(--m-stars),
    linear-gradient(150deg, color-mix(in srgb, var(--fm-collection-a) 30%, #fff 70%), color-mix(in srgb, var(--fm-collection-c) 34%, #fff 66%)),
    #fff;
  background-size:74px, auto, auto;
}

body.fm-template-woo.has-world:not(.world-home) .fm-shop-card-world {
  background:var(--fm-collection-b);
  color:#fff;
}

body.fm-template-woo.has-world:not(.world-home) .fm-shop-card-cta,
body.fm-template-woo.has-world:not(.world-home) .woocommerce a.fm-shop-card-cta.button,
body.fm-template-woo.has-world:not(.world-home) .fm-shop-pagination .current,
body.fm-template-woo.has-world:not(.world-home) .fm-product-buybox button.single_add_to_cart_button {
  background:var(--fm-collection-b) !important;
}

body.fm-template-woo.has-world:not(.world-home) .fm-shop-card-cta:hover,
body.fm-template-woo.has-world:not(.world-home) .woocommerce a.fm-shop-card-cta.button:hover,
body.fm-template-woo.has-world:not(.world-home) .fm-product-buybox button.single_add_to_cart_button:hover {
  background:color-mix(in srgb, var(--fm-collection-b) 84%, #000 16%) !important;
}

body.fm-template-woo.has-world:not(.world-home) .fm-shop-card-price,
body.fm-template-woo.has-world:not(.world-home) .fm-product-summary-price,
body.fm-template-woo.has-world:not(.world-home) .fm-shop-result-count,
body.fm-template-woo.has-world:not(.world-home) .fm-shop-help-band span {
  color:var(--fm-collection-b);
}

body.fm-template-woo.has-world:not(.world-home) .fm-product-gallery,
body.fm-template-woo.has-world:not(.world-home) .fm-product-summary-card,
body.fm-template-woo.has-world:not(.world-home) .fm-product-info-panel,
body.fm-template-woo.has-world:not(.world-home) .fm-single-inspiration,
body.fm-template-woo.has-world:not(.world-home) .fm-set-teaser,
body.fm-template-woo.has-world:not(.world-home) .fm-product-related {
  box-shadow:0 8px 0 color-mix(in srgb, var(--fm-collection-b) 10%, transparent),0 24px 58px rgba(45,33,56,.10);
}

@media (max-width: 900px) {
  .fm-collection-theme .fm-woo-page-head-inner {
    grid-template-columns:1fr;
  }

  .fm-collection-scallop {
    justify-self:center;
    width:min(68vw, 250px);
    margin-top:-4px;
  }

  .fm-collection-story {
    width:calc(100% - 28px);
    grid-template-columns:1fr;
  }

  .fm-collection-pairing {
    width:calc(100% - 28px);
  }

  .fm-collection-pairing-head {
    display:block;
  }

  .fm-collection-pairing-grid {
    grid-template-columns:1fr;
  }
}

@media (max-width: 560px) {
  .fm-collection-theme .fm-woo-page-head-inner {
    gap:14px;
  }

  .fm-collection-scallop {
    width:min(58vw, 210px);
    margin-top:-18px;
    margin-bottom:-4px;
  }

  .fm-collection-scallop strong {
    font-size:28px;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }

  .fm-collection-scallop-content {
    width:82%;
    padding:28px 22px 24px;
  }

  .fm-collection-scallop-note {
    width:66px;
    height:66px;
    font-size:8px;
  }

  .fm-collection-story {
    padding:20px;
    border-radius:24px;
  }

  .fm-collection-story h2,
  .fm-collection-pairing h2 {
    font-size:34px;
  }

  .fm-collection-stat-grid {
    grid-template-columns:1fr;
  }

  .fm-collection-type-pills {
    gap:6px;
  }

  .fm-collection-type-pill {
    min-height:32px;
    font-size:11px;
  }

  .fm-collection-pairing-card {
    min-height:164px;
    padding:18px;
  }
}

.fm-shop-type-board,
.fm-shop-world-board,
.fm-shop-filter-lab,
.fm-shop-toolbar,
.fm-shop-product-grid,
.fm-shop-pagination,
.fm-shop-help-band,
.fm-product-detail {
  width:min(1180px, calc(100% - 32px));
  margin-right:auto;
  margin-left:auto;
}

.fm-shop-type-board {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-bottom:28px;
}

.fm-shop-type-card {
  position:relative;
  display:flex;
  min-height:170px;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  padding:24px;
  border:2.5px solid #fff;
  border-radius:24px;
  background:
    var(--m-stars),
    linear-gradient(155deg, var(--c-magenta), var(--c-magenta-deep));
  background-size:76px, auto;
  color:#fff;
  text-decoration:none !important;
  box-shadow:0 6px 0 rgba(154,43,78,.10),0 18px 42px rgba(45,33,56,.10);
  transition:transform .2s, box-shadow .2s;
}

.fm-shop-type-card:hover {
  transform:translateY(-5px) rotate(-.5deg);
  color:#fff;
  box-shadow:0 8px 0 rgba(154,43,78,.14),0 24px 52px rgba(45,33,56,.15);
}

.fm-shop-type-card span,
.fm-shop-world-card span {
  align-self:flex-start;
  max-width:100%;
  min-width:0;
  overflow-wrap:break-word;
  margin-bottom:auto;
  padding:7px 13px;
  border:2px solid #fff;
  border-radius:999px;
  background:var(--c-gold);
  color:var(--c-magenta-deep);
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:900;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.12);
}

.fm-shop-type-card strong,
.fm-shop-world-card strong {
  max-width:100%;
  min-width:0;
  margin-top:28px;
  color:inherit;
  font-family:var(--font-display);
  font-size:clamp(27px, 3vw, 38px);
  font-style:italic;
  font-weight:900;
  line-height:1;
  overflow-wrap:break-word;
  text-shadow:0 2px 3px rgba(45,33,56,.20);
}

.fm-shop-type-card small,
.fm-shop-world-card small {
  max-width:100%;
  min-width:0;
  margin-top:8px;
  color:rgba(255,255,255,.88);
  font-family:var(--font-body);
  font-size:14px;
  font-weight:700;
  line-height:1.35;
  overflow-wrap:break-word;
}

.fm-shop-type-card em {
  margin-top:16px;
  color:rgba(246,233,198,.9);
  font-family:var(--font-ui);
  font-size:11px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.fm-shop-type-semi-cured-gel {
  background:
    var(--m-stars),
    linear-gradient(155deg, #6FC9B8, #2596AD);
}

.fm-shop-type-semi-cured-gel-premium {
  background:
    var(--m-stars),
    linear-gradient(155deg, #E8B83A, #C13864);
}

.fm-shop-world-board {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:34px;
}

.fm-shop-world-card {
  position:relative;
  display:flex;
  min-width:0;
  min-height:176px;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  padding:18px;
  border:2px solid #fff;
  border-radius:22px;
  color:var(--c-paper);
  text-decoration:none !important;
  box-shadow:0 14px 34px rgba(45,33,56,.09);
  transition:transform .2s, box-shadow .2s;
}

.fm-shop-world-card::before {
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--m-stars);
  background-size:72px;
  opacity:.72;
}

.fm-shop-world-card::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 30%, rgba(45,33,56,.40));
}

.fm-shop-world-card > * {
  position:relative;
  z-index:2;
}

.fm-shop-world-card:hover,
.fm-shop-world-card.is-active {
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(45,33,56,.14);
}

.fm-shop-world-card.is-active {
  outline:3px solid var(--c-gold);
  outline-offset:2px;
}

.fm-shop-world-card strong {
  margin-top:22px;
  font-size:24px;
  line-height:1.08;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

.fm-shop-world-card small {
  max-width:100%;
  font-size:12px;
  overflow-wrap:break-word;
}

.fm-shop-world-1 { background:linear-gradient(158deg,#5FC48A,#2D6A4F); }
.fm-shop-world-2 { background:linear-gradient(158deg,#9B6FE3,#6A4BC4); }
.fm-shop-world-3 { background:linear-gradient(158deg,#F275A6,#D14380); }
.fm-shop-world-4 { background:linear-gradient(158deg,#8DBE83,#2D6A4F); }
.fm-shop-world-5 { background:linear-gradient(158deg,#5A4B6E,#21182A); }
.fm-shop-world-6 { background:linear-gradient(158deg,#F0B05A,#C13864); }

.fm-shop-filter-lab {
  position:relative;
  overflow:hidden;
  scroll-margin-top:112px;
  margin-bottom:28px;
  padding:clamp(22px, 3vw, 34px);
  border:2px solid #fff;
  border-radius:30px;
  background:
    linear-gradient(135deg, rgba(251,244,221,.96), rgba(255,255,255,.92)),
    var(--m-stars);
  background-size:auto, 82px;
  box-shadow:0 8px 0 rgba(154,43,78,.08),0 26px 64px rgba(45,33,56,.10);
}

.fm-shop-filter-lab::before {
  content:"";
  position:absolute;
  inset:auto 22px 18px auto;
  width:180px;
  height:26px;
  border-top:2px dashed rgba(193,56,100,.22);
  border-bottom:2px dashed rgba(193,56,100,.18);
  transform:rotate(-2deg);
  opacity:.75;
}

.fm-filter-lab-head {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(120px,170px);
  gap:24px;
  align-items:start;
  margin-bottom:18px;
}

.fm-filter-kicker {
  display:inline-flex;
  width:max-content;
  margin:0 0 10px;
  padding:8px 13px;
  border:2px solid #fff;
  border-radius:999px;
  background:var(--c-gold);
  color:var(--c-magenta-deep);
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.12);
}

.fm-filter-lab-head h2 {
  max-width:780px;
  margin:0;
  color:var(--c-ink) !important;
  font-family:var(--font-display) !important;
  font-size:clamp(34px, 4.4vw, 58px) !important;
  font-style:italic !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  line-height:1.08;
}

.fm-filter-lab-head p:not(.fm-filter-kicker) {
  max-width:720px;
  margin:12px 0 0;
  color:var(--c-ink-soft);
  font-size:15px;
  line-height:1.5;
}

.fm-filter-status {
  display:grid;
  min-height:146px;
  place-items:center;
  padding:18px;
  border:2px dashed rgba(193,56,100,.24);
  border-radius:28px;
  background:
    var(--m-stars),
    linear-gradient(150deg, var(--c-magenta), var(--c-magenta-deep));
  background-size:72px, auto;
  color:#fff;
  text-align:center;
  box-shadow:0 14px 34px rgba(154,43,78,.18);
}

.fm-filter-status strong {
  display:block;
  color:#fff;
  font-family:var(--font-display);
  font-size:clamp(42px, 5vw, 64px);
  font-style:italic;
  font-weight:900;
  line-height:.9;
  text-shadow:0 2px 2px rgba(45,33,56,.18);
}

.fm-filter-status span {
  color:var(--c-cream);
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.fm-filter-active-row {
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin:0 0 18px;
  padding:13px;
  border:1px dashed rgba(45,33,56,.14);
  border-radius:20px;
  background:rgba(255,255,255,.70);
}

.fm-filter-active-label,
.fm-filter-passive-note,
.fm-filter-active-chip,
.fm-filter-reset {
  display:inline-flex;
  align-items:center;
  min-height:32px;
  border-radius:999px;
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:900;
  line-height:1.1;
}

.fm-filter-active-label {
  padding:0 11px;
  background:var(--c-ink);
  color:#fff;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.fm-filter-active-chip {
  padding:0 12px;
  background:var(--c-cream);
  color:var(--c-magenta-deep);
  box-shadow:inset 0 -1px 0 rgba(0,0,0,.08);
}

.fm-filter-passive-note {
  color:var(--c-ink-soft);
}

.fm-filter-reset {
  margin-left:auto;
  padding:0 12px;
  background:var(--c-magenta);
  color:#fff !important;
  text-decoration:none !important;
  box-shadow:0 8px 18px rgba(154,43,78,.18);
}

.fm-filter-reset:hover {
  background:var(--c-magenta-deep);
  color:#fff !important;
}

.fm-filter-quick-grid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:18px;
}

.fm-filter-quick-card {
  display:flex;
  min-height:140px;
  flex-direction:column;
  justify-content:flex-end;
  padding:18px;
  border:2px solid #fff;
  border-radius:24px;
  background:
    var(--m-stars),
    linear-gradient(150deg, #fff, var(--c-cream-soft));
  background-size:68px, auto;
  color:var(--c-ink);
  text-decoration:none !important;
  box-shadow:0 12px 28px rgba(45,33,56,.07);
  transition:transform .18s, box-shadow .18s, background .18s;
}

.fm-filter-quick-card:hover,
.fm-filter-quick-card.is-active {
  transform:translateY(-4px);
  background:
    var(--m-stars),
    linear-gradient(150deg, var(--c-magenta), var(--c-magenta-deep));
  background-size:68px, auto;
  color:#fff;
  box-shadow:0 16px 36px rgba(154,43,78,.20);
}

.fm-filter-quick-card.is-empty {
  opacity:.52;
}

.fm-filter-quick-card strong {
  display:block;
  margin-bottom:8px;
  color:inherit;
  font-family:var(--font-display);
  font-size:25px;
  font-style:italic;
  font-weight:900;
  line-height:1;
}

.fm-filter-quick-card span {
  color:inherit;
  font-size:13px;
  font-weight:700;
  line-height:1.35;
  opacity:.86;
}

.fm-filter-quick-card em {
  display:inline-flex;
  align-self:flex-start;
  margin-top:14px;
  padding:6px 10px;
  border-radius:999px;
  background:var(--c-gold);
  color:var(--c-magenta-deep);
  font-family:var(--font-ui);
  font-size:10px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.fm-filter-group-grid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.fm-filter-group {
  min-width:0;
  padding:16px;
  border:1px solid rgba(45,33,56,.10);
  border-radius:22px;
  background:rgba(255,255,255,.82);
}

.fm-filter-group-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px dashed rgba(45,33,56,.14);
}

.fm-filter-group h3 {
  margin:0;
  color:var(--c-ink) !important;
  font-family:var(--font-display) !important;
  font-size:25px !important;
  font-style:italic !important;
  font-weight:900 !important;
  line-height:1;
}

.fm-filter-group p {
  max-width:300px;
  margin:0;
  color:var(--c-ink-soft);
  font-size:12px;
  font-weight:700;
  line-height:1.35;
  text-align:right;
}

.fm-filter-chip-list {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.fm-filter-chip {
  display:inline-flex;
  align-items:center;
  max-width:100%;
  min-height:44px;
  gap:9px;
  padding:7px 8px 7px 11px;
  border:1.5px solid rgba(45,33,56,.12);
  border-radius:999px;
  background:#fff;
  color:var(--c-ink);
  text-decoration:none !important;
  box-shadow:0 4px 12px rgba(45,33,56,.04);
  transition:border-color .16s, background .16s, transform .16s, color .16s;
}

.fm-filter-chip:hover,
.fm-filter-chip.is-active {
  border-color:var(--c-magenta);
  background:var(--c-magenta);
  color:#fff;
  transform:translateY(-1px);
}

.fm-filter-chip.is-empty {
  opacity:.48;
}

.fm-filter-swatch {
  flex:0 0 auto;
  width:22px;
  height:22px;
  border:2px solid #fff;
  border-radius:50%;
  background:var(--fm-filter-swatch);
  box-shadow:0 3px 8px rgba(45,33,56,.16);
}

.fm-filter-chip-copy {
  display:grid;
  min-width:0;
  gap:2px;
}

.fm-filter-chip strong {
  color:inherit;
  font-family:var(--font-ui);
  font-size:12px;
  font-weight:900;
  line-height:1.05;
}

.fm-filter-chip small {
  max-width:210px;
  overflow:hidden;
  color:inherit;
  font-size:10.5px;
  font-weight:700;
  line-height:1.15;
  opacity:.74;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.fm-filter-chip em {
  display:grid;
  flex:0 0 auto;
  min-width:26px;
  height:26px;
  place-items:center;
  border-radius:50%;
  background:var(--c-cream);
  color:var(--c-magenta-deep);
  font-family:var(--font-ui);
  font-size:10px;
  font-style:normal;
  font-weight:900;
}

.fm-filter-chip.is-active em,
.fm-filter-chip:hover em {
  background:#fff;
  color:var(--c-magenta-deep);
}

.fm-shop-toolbar {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
  margin-bottom:22px;
  padding:18px 0;
  border-top:1px dashed rgba(45,33,56,.16);
  border-bottom:1px dashed rgba(45,33,56,.16);
}

.fm-shop-result-count {
  margin:0;
  color:var(--c-ink);
  font-family:var(--font-display);
  font-size:24px;
  font-style:italic;
  font-weight:900;
}

.fm-shop-toolbar-note {
  margin:5px 0 0;
  color:var(--c-ink-soft);
  font-size:14px;
  line-height:1.35;
}

.fm-shop-ordering form {
  margin:0;
}

.fm-shop-ordering select.orderby {
  min-height:44px;
  border:1.5px solid #E0D8E8;
  border-radius:999px;
  background:#fff;
  color:var(--c-ink);
  font-family:var(--font-body);
  font-weight:700;
  padding:0 42px 0 16px;
}

.fm-shop-product-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  align-items:stretch;
}

.fm-shop-card {
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:2px solid #fff;
  border-radius:24px;
  background:var(--c-paper);
  box-shadow:0 14px 32px rgba(45,33,56,.08);
  transition:transform .2s, box-shadow .2s;
}

.fm-shop-card:hover {
  transform:translateY(-6px) rotate(-.7deg);
  box-shadow:0 6px 0 rgba(154,43,78,.10),0 22px 48px rgba(45,33,56,.14);
}

.fm-shop-card-media {
  position:relative;
  display:block;
  aspect-ratio:4 / 3.35;
  overflow:hidden;
  border-radius:20px 20px 14px 14px;
  background:
    var(--m-stars),
    linear-gradient(150deg, rgba(232,155,184,.35), rgba(111,201,184,.24)),
    #fff;
  background-size:74px, auto, auto;
}

.fm-shop-card-media::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 56%, rgba(45,33,56,.28));
  pointer-events:none;
}

.fm-shop-card-img {
  box-sizing:border-box;
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:contain;
  padding:18px;
  filter:drop-shadow(0 14px 22px rgba(45,33,56,.14));
}

.fm-shop-card-world {
  position:absolute;
  top:10px;
  right:10px;
  z-index:3;
  max-width:calc(100% - 20px);
  padding:7px 11px;
  border:2px solid #fff;
  border-radius:999px;
  background:var(--c-gold);
  color:#fff;
  font-family:var(--font-ui);
  font-size:10px;
  font-weight:900;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.13),0 4px 10px rgba(45,33,56,.16);
}

.fm-shop-card-type {
  position:absolute;
  right:13px;
  bottom:13px;
  left:13px;
  z-index:3;
  padding:7px 10px;
  border:1.5px dashed rgba(255,255,255,.74);
  border-radius:10px;
  background:rgba(45,33,56,.34);
  color:#fff;
  text-align:center;
  font-family:var(--font-ui);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  backdrop-filter:blur(4px);
}

.fm-shop-card-body {
  display:flex;
  flex:1;
  flex-direction:column;
  padding:17px 16px 16px;
}

.fm-shop-card h2 {
  margin:0 0 9px;
  color:var(--c-ink) !important;
  font-family:var(--font-display) !important;
  font-size:19px !important;
  font-style:italic !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  line-height:1.22;
}

.fm-shop-card h2 a {
  color:inherit;
  text-decoration:none;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

.fm-shop-card p {
  flex:1;
  margin:0 0 16px;
  color:var(--c-ink-soft);
  font-size:13.5px;
  line-height:1.45;
}

.fm-shop-card-foot {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:auto;
  padding-top:14px;
  border-top:1px dashed rgba(45,33,56,.15);
}

.fm-shop-card-price {
  color:var(--c-ink);
  font-family:var(--font-display);
  font-size:19px;
  font-style:italic;
  font-weight:900;
  white-space:nowrap;
}

.fm-shop-card-cta,
.woocommerce a.fm-shop-card-cta.button {
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:10px 15px !important;
  border:2px solid #fff !important;
  border-radius:999px !important;
  background:var(--c-magenta) !important;
  color:#fff !important;
  font-family:var(--font-ui) !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.04em !important;
  line-height:1 !important;
  text-decoration:none !important;
  text-transform:none !important;
  box-shadow:var(--shadow-btn) !important;
}

.fm-shop-card-cta:hover,
.woocommerce a.fm-shop-card-cta.button:hover {
  background:var(--c-magenta-deep) !important;
  color:#fff !important;
  transform:translateY(-1px);
}

.fm-shop-pagination {
  margin-top:34px;
}

.fm-shop-pagination ul {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  margin:0;
  padding:0;
  list-style:none;
}

.fm-shop-pagination a,
.fm-shop-pagination span {
  display:grid;
  min-width:40px;
  min-height:40px;
  place-items:center;
  border-radius:999px;
  background:#fff;
  color:var(--c-ink-soft);
  font-family:var(--font-ui);
  font-weight:900;
  text-decoration:none;
}

.fm-shop-pagination .current {
  background:var(--c-magenta);
  color:#fff;
}

.fm-shop-help-band {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  margin-top:clamp(44px, 6vw, 76px);
}

.fm-shop-help-band article {
  padding:24px;
  border:1px solid var(--c-cream-soft);
  border-radius:24px;
  background:#fff;
  box-shadow:0 4px 16px rgba(45,33,56,.06);
}

.fm-shop-help-band span {
  display:block;
  margin-bottom:10px;
  color:var(--c-magenta);
  font-family:var(--font-display);
  font-size:40px;
  font-style:italic;
  font-weight:900;
  line-height:1;
}

.fm-shop-help-band strong {
  display:block;
  color:var(--c-ink);
  font-family:var(--font-display);
  font-size:22px;
  font-style:italic;
  font-weight:900;
  line-height:1.05;
}

.fm-shop-help-band p {
  margin:10px 0 0;
  color:var(--c-ink-soft);
  font-size:14px;
  line-height:1.5;
}

.fm-product-detail-main {
  display:grid;
  grid-template-columns:minmax(320px,.96fr) minmax(360px,1.04fr);
  gap:clamp(28px, 5vw, 56px);
  align-items:start;
}

.fm-product-detail-main > * {
  min-width:0;
}

.fm-product-gallery,
.fm-product-summary-card,
.fm-product-info-panel,
.fm-single-inspiration,
.fm-set-teaser,
.fm-product-related {
  border:2px solid #fff;
  border-radius:28px;
  background:#fff;
  box-shadow:0 8px 0 rgba(154,43,78,.07),0 24px 58px rgba(45,33,56,.10);
}

.fm-product-gallery {
  position:sticky;
  top:22px;
  overflow:hidden;
  padding:18px;
  background:
    var(--m-stars),
    radial-gradient(90% 70% at 50% 0%, var(--c-cream-soft) 0%, transparent 72%),
    #fff;
  background-size:86px, auto, auto;
}

.fm-product-main-image {
  position:relative;
  display:block;
  line-height:0;
  overflow:hidden;
  aspect-ratio:1;
  border-radius:22px;
  background:
    linear-gradient(150deg, rgba(232,155,184,.25), rgba(111,201,184,.20)),
    var(--c-paper);
}

.fm-product-main-img {
  width:100%;
  height:100%;
  object-fit:contain;
  padding:26px;
  filter:drop-shadow(0 18px 28px rgba(45,33,56,.16));
}

.fm-product-thumbs {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}

.fm-product-thumbs a {
  display:block;
  overflow:hidden;
  aspect-ratio:1;
  border:2px solid transparent;
  border-radius:14px;
  background:var(--c-paper);
}

.fm-product-thumbs a.is-active {
  border-color:var(--c-magenta);
}

.fm-product-thumbs img {
  width:100%;
  height:100%;
  object-fit:contain;
  padding:7px;
}

.fm-product-summary-card {
  padding:clamp(24px, 4vw, 38px);
}

.fm-product-badge-row-single {
  margin-bottom:16px;
}

.fm-product-summary-card h2 {
  margin:0 0 12px;
  color:var(--c-ink) !important;
  font-family:var(--font-display) !important;
  font-size:clamp(38px, 5.2vw, 68px) !important;
  font-style:italic !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  line-height:1.08;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
}

.fm-product-summary-price {
  margin:0 0 18px;
  color:var(--c-magenta);
  font-family:var(--font-display);
  font-size:clamp(30px, 3.8vw, 46px);
  font-style:italic;
  font-weight:900;
  line-height:1;
}

.fm-product-shortcopy {
  color:var(--c-ink-soft);
  font-size:17px;
  line-height:1.55;
}

.fm-product-shortcopy p {
  margin:0 0 14px;
}

.fm-product-buybox {
  margin:22px 0;
  padding:20px;
  border:1px dashed rgba(193,56,100,.24);
  border-radius:20px;
  background:var(--c-paper);
}

.fm-product-stockline {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  color:var(--c-ink-soft);
  font-family:var(--font-ui);
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.fm-product-stockline span {
  color:#1a7a6d;
}

.fm-product-buybox form.cart {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  margin:0;
  min-height:0;
}

.fm-product-buybox .quantity {
  flex:0 0 auto;
}

.fm-product-buybox .quantity input.qty {
  width:72px;
  min-height:48px;
}

.fm-product-buybox button.single_add_to_cart_button {
  flex:1 1 auto;
  height:auto;
  min-height:50px;
  background:var(--c-magenta) !important;
  color:#fff !important;
  box-shadow:var(--shadow-btn) !important;
}

.fm-product-quick-facts {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:20px 0 0;
}

.fm-product-quick-facts div {
  padding:13px;
  border-radius:16px;
  background:var(--c-cream-soft);
}

.fm-product-quick-facts dt {
  margin:0 0 4px;
  color:var(--c-ink-soft);
  font-family:var(--font-ui);
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.fm-product-quick-facts dd {
  margin:0;
  color:var(--c-ink);
  font-family:var(--font-display);
  font-size:18px;
  font-style:italic;
  font-weight:900;
  line-height:1.1;
}

.fm-product-support-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin:clamp(34px, 5vw, 58px) auto 0;
}

.fm-product-info-panel {
  min-width:0;
  padding:22px;
  box-shadow:0 4px 16px rgba(45,33,56,.06);
}

.fm-product-info-panel h2,
.fm-single-inspiration h2,
.fm-product-related-head h2 {
  margin:0 0 14px;
  color:var(--c-ink) !important;
  font-family:var(--font-display) !important;
  font-size:28px !important;
  font-style:italic !important;
  font-weight:900 !important;
  line-height:1.05;
}

.fm-product-info-application .fm-application-strip {
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}

.fm-product-info-application .fm-application-steps {
  flex-direction:column;
}

.fm-product-info-application .fm-application-step + .fm-application-step::before {
  display:none;
}

.fm-product-support-grid,
.fm-single-inspiration,
.fm-set-teaser,
.fm-product-related {
  width:min(1180px, calc(100% - 32px));
}

.fm-single-inspiration,
.fm-set-teaser,
.fm-product-related {
  margin:clamp(24px, 4vw, 42px) auto 0;
  padding:clamp(24px, 4vw, 34px);
}

.fm-single-inspiration .fm-inspiration-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.fm-set-teaser {
  background:
    radial-gradient(70% 90% at 0% 0%, var(--c-purple), transparent 60%),
    radial-gradient(70% 90% at 100% 0%, var(--c-pink), transparent 60%),
    radial-gradient(70% 90% at 100% 100%, var(--c-teal), transparent 60%),
    radial-gradient(70% 90% at 0% 100%, var(--c-blue), transparent 60%),
    var(--c-mist);
  color:#fff;
}

.fm-set-teaser-kicker,
.fm-set-teaser-text {
  color:#fff;
}

.fm-set-teaser-link {
  display:inline-flex;
  margin-top:10px;
  padding:11px 18px;
  border:2px solid #fff;
  border-radius:999px;
  background:var(--c-cream);
  color:var(--c-magenta-deep) !important;
  font-family:var(--font-ui);
  font-weight:900;
  text-decoration:none !important;
  box-shadow:0 8px 18px rgba(45,33,56,.18);
}

.fm-product-related-head {
  max-width:720px;
  margin-bottom:24px;
}

.fm-shop-product-grid-related {
  width:100%;
}

@media (max-width: 1100px) {
  .fm-shop-world-board {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .fm-filter-quick-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .fm-shop-product-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .fm-product-support-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 860px) {
  .fm-shop-type-board,
  .fm-product-detail-main,
  .fm-shop-help-band {
    grid-template-columns:1fr;
  }
  .fm-product-gallery {
    position:static;
  }
  .fm-shop-toolbar {
    align-items:flex-start;
    flex-direction:column;
  }
  .fm-filter-lab-head,
  .fm-filter-group-grid {
    grid-template-columns:1fr;
  }
  .fm-filter-status {
    min-height:108px;
  }
  .fm-filter-group-head {
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .fm-filter-group p {
    max-width:none;
    text-align:left;
  }
  .fm-shop-ordering,
  .fm-shop-ordering form,
  .fm-shop-ordering select.orderby {
    width:100%;
  }
}

@media (max-width: 700px) {
  .fm-woo-page-head-inner {
    width:calc(100% - 44px);
    padding:36px 0 52px;
  }
  .fm-woo-page-head h1 {
    font-size:34px;
    line-height:1.14;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }

  body.single-product .fm-woo-page-head h1 {
    font-size:clamp(34px, 10.5vw, 46px);
    line-height:1.08;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }

  .fm-collection-scallop {
    width:min(58vw, 210px);
    margin-top:-18px;
    margin-bottom:-4px;
  }
  .fm-collection-scallop-content {
    width:82%;
    padding:28px 22px 24px;
  }
  .fm-collection-scallop strong {
    margin:9px 0 7px;
    font-size:28px;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  .fm-collection-scallop-eyebrow,
  .fm-collection-scallop-count {
    padding:7px 10px;
    font-size:10px;
  }
  .fm-collection-scallop-note {
    right:-6%;
    top:8%;
    width:68px;
    height:68px;
    padding:8px;
    font-size:9px;
  }
  .fm-shop-world-board,
  .fm-shop-product-grid,
  .fm-product-support-grid,
  .fm-single-inspiration .fm-inspiration-grid {
    grid-template-columns:1fr;
  }
  .fm-filter-quick-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .fm-shop-filter-lab {
    width:calc(100% - 28px);
    scroll-margin-top:96px;
    padding:18px 14px;
    border-radius:24px;
  }
  .fm-filter-lab-head h2 {
    font-size:clamp(31px, 11vw, 44px) !important;
  }
  .fm-filter-active-row {
    padding:10px;
  }
  .fm-filter-reset {
    width:100%;
    justify-content:center;
    margin-left:0;
  }
  .fm-filter-quick-card {
    min-height:126px;
    padding:15px;
  }
  .fm-filter-quick-card strong {
    font-size:21px;
  }
  .fm-filter-quick-card span {
    font-size:11.5px;
  }
  .fm-filter-chip-list {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .fm-filter-chip {
    width:100%;
    justify-content:space-between;
    min-height:46px;
    gap:7px;
    padding:7px 7px 7px 10px;
    border-radius:999px;
  }
  .fm-filter-chip small {
    display:none;
  }
  .fm-filter-chip strong {
    font-size:11px;
    line-height:1.12;
  }
  .fm-filter-swatch {
    width:18px;
    height:18px;
  }
  .fm-filter-chip em {
    min-width:24px;
    height:24px;
  }
  .fm-shop-world-card {
    min-height:150px;
  }
  .fm-product-summary-card h2 {
    font-size:clamp(34px, 11vw, 52px) !important;
    line-height:1.1;
  }
  .fm-product-quick-facts {
    grid-template-columns:1fr;
  }
  .fm-product-buybox form.cart {
    flex-direction:column;
    align-items:stretch;
  }
  .fm-product-buybox .quantity,
  .fm-product-buybox button.single_add_to_cart_button {
    flex:none;
  }
  .fm-product-buybox .quantity input.qty,
  .fm-product-buybox button.single_add_to_cart_button {
    width:100%;
  }
  .fm-product-buybox button.single_add_to_cart_button {
    min-height:54px;
    padding:14px 22px !important;
  }
}

/* ============================================================
   11) Header + Shop-Hero: kompakter Warenkorb-Legacy-Schnitt
   ============================================================ */

body.fm-template-woo .woocommerce-notices-wrapper:empty {
  display:none;
  margin:0;
}

body.fm-template-woo .zs-site-header,
body.fm-template-page .zs-site-header {
  overflow:hidden;
  background:#B83266 !important;
  box-shadow:none;
}

body.fm-template-woo .zs-site-header.zs-gradient-bg::before,
body.fm-template-page .zs-site-header.zs-gradient-bg::before {
  background-image:var(--m-stars);
  background-size:86px;
  opacity:.18;
}

body.fm-template-woo .zs-site-header .uk-container,
body.fm-template-page .zs-site-header .uk-container {
  width:min(1216px, calc(100% - 64px));
}

body.fm-template-woo .zs-site-header .zs-nav,
body.fm-template-page .zs-site-header .zs-nav {
  box-sizing:border-box;
  min-height:78px;
  padding:17px 0;
}

body.fm-template-woo .zs-site-header .zs-nav-mark,
body.fm-template-page .zs-site-header .zs-nav-mark {
  gap:14px;
}

body.fm-template-woo .zs-site-header .zs-m1,
body.fm-template-page .zs-site-header .zs-m1 {
  color:#fff;
  font-family:var(--font-ui);
  font-size:34px;
  font-style:normal;
  font-weight:900;
  letter-spacing:-.01em;
  line-height:.95;
  text-shadow:0 3px 0 rgba(90,21,46,.28),0 8px 18px rgba(45,33,56,.20);
}

body.fm-template-woo .zs-site-header .zs-m2,
body.fm-template-page .zs-site-header .zs-m2 {
  padding-left:14px;
  border-left:1px solid rgba(255,255,255,.58);
  color:var(--c-cream);
  font-family:var(--font-mono) !important;
  font-size:11px;
  font-weight:900 !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
}

body.fm-template-woo .zs-site-header .zs-nav-links,
body.fm-template-page .zs-site-header .zs-nav-links {
  gap:28px;
}

body.fm-template-woo .zs-site-header .zs-nav-links a,
body.fm-template-page .zs-site-header .zs-nav-links a {
  color:#fff;
  font-size:13px;
  text-shadow:0 2px 8px rgba(45,33,56,.22);
}

body.fm-template-woo .zs-site-header .zs-nav-links a:hover,
body.fm-template-page .zs-site-header .zs-nav-links a:hover {
  border-color:var(--c-cream);
  color:var(--c-cream);
}

body.fm-template-woo .zs-site-header .zs-nav-cart,
body.fm-template-page .zs-site-header .zs-nav-cart {
  min-height:42px;
  padding:12px 22px;
  border:2.5px solid #fff;
  background:#fff;
  color:var(--c-magenta);
  font-size:13px;
  white-space:nowrap;
  box-shadow:inset 0 -3px 0 rgba(154,43,78,.12),0 8px 18px rgba(45,33,56,.22);
}

body.woocommerce-shop .fm-woo-page-head-shop {
  margin:0 0 30px;
  background:#B83266;
  color:var(--c-cream);
  text-align:center;
}

body.woocommerce-shop .fm-woo-page-head-shop::after {
  height:10px;
  background:repeating-linear-gradient(90deg, var(--c-cream) 0 9px, transparent 9px 18px);
  opacity:.72;
}

body.woocommerce-shop .fm-woo-page-head-shop .fm-woo-page-head-pattern {
  background-image:var(--m-stars);
  background-size:82px;
  opacity:.22;
}

body.woocommerce-shop .fm-woo-page-head-shop .fm-woo-page-head-inner {
  display:flex;
  width:min(980px, calc(100% - 48px));
  flex-direction:column;
  align-items:center;
  padding:30px 0 42px;
}

body.woocommerce-shop .fm-woo-page-head-shop .fm-woo-crumbs {
  justify-content:center;
  margin-bottom:14px;
  color:rgba(246,233,198,.88);
}

body.woocommerce-shop .fm-woo-page-head-shop .fm-woo-eyebrow {
  margin-bottom:10px;
  background:var(--c-cream);
  color:var(--c-magenta-deep) !important;
  box-shadow:inset 0 -3px 0 rgba(154,43,78,.16),0 5px 12px rgba(45,33,56,.20);
}

body.woocommerce-shop .fm-woo-page-head-shop h1 {
  max-width:820px;
  padding-bottom:.12em;
  color:var(--c-cream) !important;
  font-family:var(--font-ui) !important;
  font-size:72px;
  font-style:normal !important;
  letter-spacing:-.02em;
  line-height:1.12;
  text-shadow:0 4px 0 rgba(154,43,78,.36),0 12px 24px rgba(45,33,56,.30);
}

body.woocommerce-shop .fm-woo-page-head-shop .fm-woo-head-copy {
  max-width:690px;
  margin-top:15px;
  color:rgba(255,255,255,.94);
  font-family:var(--font-body);
  font-size:18px;
  font-style:normal;
  font-weight:700;
  line-height:1.45;
}

.fm-shop-hero-actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin-top:21px;
}

.fm-shop-hero-primary,
.fm-shop-hero-secondary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:12px 19px;
  border:2px solid #fff;
  border-radius:999px;
  font-family:var(--font-ui);
  font-size:13px;
  font-weight:900;
  line-height:1;
  text-decoration:none !important;
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.12),0 8px 18px rgba(45,33,56,.18);
}

.fm-shop-hero-primary {
  background:#fff;
  color:var(--c-magenta);
}

.fm-shop-hero-secondary {
  background:rgba(255,255,255,.13);
  color:#fff;
}

.fm-shop-hero-primary:hover,
.fm-shop-hero-secondary:hover {
  transform:translateY(-2px);
}

body.woocommerce-shop .fm-woo-page-head-shop .fm-woo-head-trust {
  display:none;
}

body.woocommerce-shop .fm-shop-type-board {
  gap:16px;
  margin-bottom:16px;
}

body.woocommerce-shop .fm-shop-type-card {
  min-height:126px;
  justify-content:center;
  padding:20px;
  border-radius:22px;
}

body.woocommerce-shop .fm-shop-type-card span {
  margin-bottom:11px;
}

body.woocommerce-shop .fm-shop-type-card strong {
  margin-top:0;
  font-size:32px;
}

body.woocommerce-shop .fm-shop-type-card small {
  max-width:none;
  margin-top:6px;
  font-size:13px;
}

body.woocommerce-shop .fm-shop-type-card em {
  margin-top:10px;
}

body.woocommerce-shop .fm-shop-world-board {
  gap:10px;
  margin-bottom:24px;
}

body.woocommerce-shop .fm-shop-world-card {
  min-height:118px;
  padding:14px;
  border-radius:18px;
}

body.woocommerce-shop .fm-shop-world-card span {
  margin-bottom:12px;
  padding:6px 10px;
  font-size:10px;
}

body.woocommerce-shop .fm-shop-world-card strong {
  margin-top:0;
  font-size:20px;
}

body.woocommerce-shop .fm-shop-world-card small {
  margin-top:6px;
  font-size:11px;
  line-height:1.25;
}

body.woocommerce-shop .fm-shop-toolbar {
  margin-bottom:18px;
  padding:14px 0;
}

body.fm-template-woo.woocommerce-shop .fm-cart-fab,
body.fm-template-woo.tax-product_cat .fm-cart-fab,
body.fm-template-woo.post-type-archive-product .fm-cart-fab {
  display:none;
}

@media (max-width: 900px) {
  body.fm-template-woo .zs-site-header .uk-container,
  body.fm-template-page .zs-site-header .uk-container {
    width:calc(100% - 28px);
  }

  body.fm-template-woo .zs-site-header .zs-nav,
  body.fm-template-page .zs-site-header .zs-nav {
    min-height:68px;
    padding:13px 0;
  }

  body.fm-template-woo .zs-site-header .zs-nav-links,
  body.fm-template-page .zs-site-header .zs-nav-links,
  body.fm-template-woo .zs-site-header .zs-m2,
  body.fm-template-page .zs-site-header .zs-m2 {
    display:none;
  }

  body.fm-template-woo .zs-site-header .zs-m1,
  body.fm-template-page .zs-site-header .zs-m1 {
    font-size:30px;
  }

  body.fm-template-woo .zs-site-header .zs-nav-cart,
  body.fm-template-page .zs-site-header .zs-nav-cart {
    min-height:38px;
    padding:10px 15px;
    font-size:12px;
  }

  body.woocommerce-shop .fm-woo-page-head-shop .fm-woo-page-head-inner {
    width:calc(100% - 32px);
    padding:28px 0 38px;
  }

  body.woocommerce-shop .fm-woo-page-head-shop h1 {
    font-size:52px;
  }

  body.woocommerce-shop .fm-woo-page-head-shop .fm-woo-head-copy {
    font-size:16px;
  }

  body.woocommerce-shop .fm-shop-type-board {
    width:calc(100% - 28px);
    grid-template-columns:1fr;
    gap:10px;
  }

  body.woocommerce-shop .fm-shop-type-card {
    min-height:104px;
  }

  body.woocommerce-shop .fm-shop-type-card strong {
    font-size:28px;
  }

  body.woocommerce-shop .fm-shop-world-board {
    width:calc(100% - 28px);
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }

  body.woocommerce-shop .fm-shop-world-card {
    min-height:112px;
  }
}

@media (max-width: 460px) {
  body.fm-template-woo .zs-site-header .zs-m1,
  body.fm-template-page .zs-site-header .zs-m1 {
    font-size:28px;
  }

  body.fm-template-woo .zs-site-header .zs-nav-cart,
  body.fm-template-page .zs-site-header .zs-nav-cart {
    padding-right:13px;
    padding-left:13px;
    font-size:11px;
  }

  body.woocommerce-shop .fm-woo-page-head-shop h1 {
    font-size:44px;
  }

  .fm-shop-hero-actions {
    width:100%;
  }

  .fm-shop-hero-primary,
  .fm-shop-hero-secondary {
    flex:1 1 100%;
  }
}

/* ============================================================
   12) Globaler Header final: sticky + mobile Navigation
   ============================================================ */

body.fm-template-woo .zs-site-header,
body.fm-template-page .zs-site-header {
  display:block !important;
  position:sticky;
  top:0;
  z-index:1100;
  overflow:visible;
  border-bottom:1px solid rgba(255,255,255,.22);
}

body.admin-bar.fm-template-woo .zs-site-header,
body.admin-bar.fm-template-page .zs-site-header {
  top:32px;
}

body.fm-template-woo .fm-global-nav,
body.fm-template-page .fm-global-nav {
  gap:18px;
  min-height:72px !important;
  padding:12px 0 !important;
}

body.fm-template-woo .zs-site-header .fm-global-logo-link,
body.fm-template-page .zs-site-header .fm-global-logo-link {
  flex:0 1 auto;
  min-width:0;
}

body.fm-template-woo .zs-site-header .fm-global-logo-img,
body.fm-template-page .zs-site-header .fm-global-logo-img {
  display:block;
  width:auto;
  height:54px;
  max-width:min(292px, 32vw);
  filter:drop-shadow(0 4px 12px rgba(45,33,56,.30));
}

body.fm-template-woo .zs-site-header .zs-m1,
body.fm-template-page .zs-site-header .zs-m1 {
  font-size:31px;
}

body.fm-template-woo .zs-site-header .zs-m2,
body.fm-template-page .zs-site-header .zs-m2 {
  font-size:10px;
}

body.fm-template-woo .zs-site-header .zs-nav-cart,
body.fm-template-page .zs-site-header .zs-nav-cart {
  min-height:40px;
  padding:11px 19px;
}

#folienmarie-kollektionen,
body.fm-template-woo .fm-shop-world-board,
body.fm-template-page .fm-shop-world-board {
  scroll-margin-top:96px;
}

body.fm-template-woo .fm-nav-actions,
body.fm-template-page .fm-nav-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}

body.fm-template-woo .fm-mobile-menu,
body.fm-template-page .fm-mobile-menu {
  position:relative;
  z-index:80;
  display:none;
}

body.fm-template-woo .fm-mobile-menu summary,
body.fm-template-page .fm-mobile-menu summary {
  display:inline-flex;
  min-height:42px;
  align-items:center;
  justify-content:center;
  padding:10px 15px;
  border:2px solid rgba(255,255,255,.9);
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#fff;
  cursor:pointer;
  font-family:var(--font-ui);
  font-size:12px;
  font-weight:900;
  line-height:1;
  list-style:none;
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.10),0 8px 18px rgba(45,33,56,.18);
}

body.fm-template-woo .fm-mobile-menu summary::-webkit-details-marker,
body.fm-template-page .fm-mobile-menu summary::-webkit-details-marker {
  display:none;
}

body.fm-template-woo .fm-mobile-menu-panel,
body.fm-template-page .fm-mobile-menu-panel {
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  z-index:90;
  display:grid;
  grid-auto-rows:min-content;
  align-content:start;
  width:min(286px, calc(100vw - 28px));
  gap:6px;
  padding:10px;
  border:2px solid #fff;
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 46px rgba(45,33,56,.28);
}

body.fm-template-woo .fm-mobile-menu-panel a,
body.fm-template-page .fm-mobile-menu-panel a {
  display:flex;
  height:40px;
  min-height:40px;
  align-items:center;
  padding:0 13px;
  border-radius:14px;
  color:var(--c-ink);
  font-family:var(--font-ui);
  font-size:13px;
  font-weight:900;
  line-height:1;
  text-decoration:none;
}

body.fm-template-woo .fm-mobile-menu-panel a:hover,
body.fm-template-page .fm-mobile-menu-panel a:hover {
  background:var(--c-cream-soft);
  color:var(--c-magenta-deep);
}

body.fm-template-woo .fm-mobile-menu[open] summary,
body.fm-template-page .fm-mobile-menu[open] summary {
  background:#fff;
  color:var(--c-magenta);
}

@media (max-width: 900px) {
  body.fm-template-woo .zs-site-header,
  body.fm-template-page .zs-site-header {
    background:#B83266 !important;
  }

  body.admin-bar.fm-template-woo .zs-site-header,
  body.admin-bar.fm-template-page .zs-site-header {
    top:46px;
  }

  body.fm-template-woo .zs-site-header .zs-nav,
  body.fm-template-page .zs-site-header .zs-nav {
    min-height:64px;
    padding:10px 0;
  }

  body.fm-template-woo .zs-site-header .fm-global-logo-img,
  body.fm-template-page .zs-site-header .fm-global-logo-img {
    height:46px;
    max-width:min(210px, 44vw);
  }

  body.fm-template-woo .zs-site-header .zs-nav-links,
  body.fm-template-page .zs-site-header .zs-nav-links {
    display:none !important;
  }

  body.fm-template-woo .fm-mobile-menu,
  body.fm-template-page .fm-mobile-menu {
    display:block;
  }

  body.fm-template-woo .zs-site-header .zs-nav-cart,
  body.fm-template-page .zs-site-header .zs-nav-cart {
    min-height:38px;
    padding:10px 13px;
    font-size:11px;
    letter-spacing:.06em !important;
  }
}

@media (max-width: 520px) {
  body.fm-template-woo .zs-site-header .uk-container,
  body.fm-template-page .zs-site-header .uk-container {
    width:calc(100% - 20px);
  }

  body.fm-template-woo .zs-site-header .zs-m1,
  body.fm-template-page .zs-site-header .zs-m1 {
    font-size:24px;
  }

  body.fm-template-woo .zs-site-header .fm-global-logo-img,
  body.fm-template-page .zs-site-header .fm-global-logo-img {
    height:36px;
    max-width:min(166px, 42vw);
  }

  body.fm-template-woo .zs-site-header .zs-nav,
  body.fm-template-page .zs-site-header .zs-nav {
    gap:8px;
  }

  body.fm-template-woo .fm-nav-actions,
  body.fm-template-page .fm-nav-actions {
    gap:7px;
  }

  body.fm-template-woo .fm-mobile-menu summary,
  body.fm-template-page .fm-mobile-menu summary {
    min-height:36px;
    padding:9px 11px;
    font-size:11px;
  }
}

/* ============================================================
   13) Template-first Suche + 404
   ============================================================ */

body.fm-template-search,
body.fm-template-missing {
  margin:0;
  background:
    radial-gradient(96% 70% at 50% 0%, rgba(239,233,242,.76) 0%, transparent 66%),
    var(--c-paper);
}

.fm-search-shell,
.fm-missing-shell {
  overflow:hidden;
  padding:0 0 clamp(56px, 8vw, 104px);
}

.fm-search-hero,
.fm-missing-hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  margin:0 0 clamp(28px, 5vw, 56px);
  background:
    radial-gradient(105% 90% at 0% 0%, var(--c-purple) 0%, transparent 56%),
    radial-gradient(110% 90% at 100% 0%, var(--c-pink) 0%, transparent 56%),
    radial-gradient(110% 90% at 100% 100%, var(--c-teal) 0%, transparent 58%),
    radial-gradient(96% 86% at 0% 100%, var(--c-blue) 0%, transparent 58%),
    var(--c-mist);
  color:var(--c-paper);
}

.fm-search-hero::after,
.fm-missing-hero::after {
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:14px;
  background-image:
    linear-gradient(135deg,var(--c-cream) 33%,transparent 33%),
    linear-gradient(-135deg,var(--c-cream) 33%,transparent 33%);
  background-repeat:repeat-x;
  background-size:20px 14px;
  opacity:.52;
  z-index:2;
}

.fm-missing-pattern {
  position:absolute;
  inset:0;
  z-index:0;
  background-image:var(--m-stars);
  background-size:86px;
  opacity:.42;
  pointer-events:none;
}

.fm-search-inner,
.fm-missing-inner {
  position:relative;
  z-index:1;
  width:min(980px, calc(100% - 32px));
  margin:0 auto;
  padding:clamp(44px, 7vw, 86px) 0 clamp(54px, 7vw, 94px);
}

.fm-search-inner h1,
.fm-missing-inner h1 {
  max-width:820px;
  margin:0;
  color:var(--c-paper) !important;
  font-family:var(--font-display) !important;
  font-size:clamp(44px, 7vw, 84px);
  font-style:italic !important;
  font-weight:900 !important;
  letter-spacing:0;
  line-height:.94;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
  text-shadow:0 3px 0 rgba(154,43,78,.28),0 12px 26px rgba(45,33,56,.22);
}

.fm-search-inner > p,
.fm-missing-inner > p {
  max-width:680px;
  margin:20px 0 0;
  color:rgba(255,255,255,.92);
  font-family:var(--font-display);
  font-size:clamp(17px, 2vw, 22px);
  font-style:italic;
  font-weight:800;
  line-height:1.5;
  text-shadow:0 1px 2px rgba(45,33,56,.18);
}

.fm-search-form {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:10px;
  max-width:720px;
  margin:clamp(22px, 4vw, 34px) 0 0;
  padding:8px;
  border:2px solid rgba(255,255,255,.86);
  border-radius:999px;
  background:rgba(255,255,255,.20);
  box-shadow:0 16px 38px rgba(45,33,56,.18);
}

.fm-search-form input[type="search"] {
  min-width:0;
  min-height:48px;
  padding:0 18px;
  border:0;
  border-radius:999px;
  background:#fff;
  color:var(--c-ink);
  font-family:var(--font-body);
  font-size:16px;
  font-weight:800;
  outline:none;
}

.fm-search-form input[type="search"]:focus {
  box-shadow:0 0 0 3px rgba(232,184,58,.38);
}

.fm-search-form button,
.fm-missing-actions .fm-btn {
  display:inline-flex;
  min-height:48px;
  align-items:center;
  justify-content:center;
  padding:0 22px;
  border:2.5px solid #fff;
  border-radius:999px;
  background:var(--c-magenta);
  color:#fff;
  cursor:pointer;
  font-family:var(--font-ui);
  font-size:13px;
  font-weight:900;
  line-height:1;
  text-decoration:none !important;
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.14),0 10px 22px rgba(45,33,56,.20);
}

.fm-search-form button:hover,
.fm-missing-actions .fm-btn:hover {
  background:var(--c-magenta-deep);
  color:#fff;
  transform:translateY(-2px);
}

.fm-missing-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:clamp(22px, 4vw, 32px);
}

.fm-missing-actions .fm-btn-ghost {
  background:rgba(255,255,255,.16);
}

.fm-search-results,
.fm-search-empty,
.fm-missing-section {
  box-sizing:border-box;
  width:min(1180px, calc(100% - 32px));
  margin:0 auto clamp(34px, 5vw, 58px);
}

.fm-missing-section {
  padding:clamp(24px, 4vw, 38px);
  border:2px solid #fff;
  border-radius:28px;
  background:
    var(--m-stars),
    radial-gradient(90% 70% at 50% 0%, var(--c-cream-soft) 0%, transparent 72%),
    rgba(255,255,255,.88);
  background-size:90px, auto, auto;
  box-shadow:0 8px 0 rgba(154,43,78,.07),0 24px 58px rgba(45,33,56,.10);
}

.fm-missing-world-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  margin-top:24px;
}

.fm-search-shell .fm-shop-world-board {
  margin-top:clamp(30px, 5vw, 58px);
}

.fm-search-empty .fm-empty-state {
  max-width:none;
  padding:clamp(28px, 5vw, 50px);
  border:2px solid #fff;
  border-radius:28px;
  background:#fff;
  box-shadow:0 8px 0 rgba(154,43,78,.07),0 24px 58px rgba(45,33,56,.10);
}

.fm-search-empty .fm-empty-suggestions {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  margin:24px 0 18px;
}

.fm-search-empty .fm-empty-suggestion {
  display:grid;
  min-width:0;
  min-height:92px;
  align-content:center;
  justify-items:start;
  gap:4px;
  padding:16px;
  border:2px solid #fff;
  border-radius:18px;
  background:
    var(--m-stars),
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(251,244,221,.88));
  background-size:76px, auto;
  color:var(--c-ink) !important;
  box-shadow:0 10px 24px rgba(45,33,56,.08);
  text-align:left;
  text-decoration:none !important;
  transform:none;
}

.fm-search-empty .fm-empty-suggestion:hover {
  color:var(--c-magenta-deep) !important;
  transform:translateY(-2px);
}

.fm-search-empty .fm-empty-suggestion-icon {
  color:var(--c-magenta);
  font-family:var(--font-ui);
  font-size:18px;
  font-weight:900;
  line-height:1;
}

.fm-search-empty .fm-empty-suggestion-title {
  color:inherit;
  font-family:var(--font-display);
  font-size:20px;
  font-style:italic;
  font-weight:900;
  line-height:1.05;
}

.fm-search-empty .fm-empty-shop-link a {
  display:inline-flex;
  min-height:42px;
  align-items:center;
  justify-content:center;
  padding:0 18px;
  border:2px solid #fff;
  border-radius:999px;
  background:var(--c-magenta);
  color:#fff !important;
  font-family:var(--font-ui);
  font-size:13px;
  font-weight:900;
  text-decoration:none !important;
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.12),0 8px 18px rgba(45,33,56,.14);
}

/* Systemseiten: Warenkorb, Kasse und Konto sichtbar als Kaufstrecke. */
.fm-woo-page-head-system {
  margin-bottom:0;
}

.fm-woo-system-page {
  position:relative;
  z-index:2;
  margin-top:clamp(24px, 5vw, 46px);
}

.fm-woo-system-card .woocommerce {
  display:block;
}

.fm-woo-system-card .woocommerce-cart-form,
.fm-woo-system-card .cart-collaterals,
.fm-woo-system-card form.checkout,
.fm-woo-system-card .woocommerce-MyAccount-content,
.fm-woo-system-card .woocommerce-MyAccount-navigation,
.fm-woo-system-card .woocommerce-form-login {
  min-width:0;
}

.fm-woo-system-card .woocommerce-cart-form {
  overflow-x:auto;
  padding-bottom:4px;
}

.fm-woo-system-card .wp-block-woocommerce-cart.alignwide,
.fm-woo-system-card .wp-block-woocommerce-empty-cart-block,
.fm-woo-system-card .wc-block-grid {
  max-width:100%;
  overflow-x:hidden;
}

.fm-woo-system-card .cart-collaterals {
  margin-top:24px;
}

.fm-woo-system-card .woocommerce table.shop_table {
  width:100%;
}

.fm-woo-system-card .woocommerce-checkout .col2-set,
.fm-woo-system-card .woocommerce-checkout #order_review {
  min-width:0;
}

@media (min-width: 960px) {
  .fm-woo-system-card .woocommerce-checkout form.checkout {
    display:grid;
    grid-template-columns:minmax(0, 1.08fr) minmax(320px, .92fr);
    gap:28px;
    align-items:start;
  }

  .fm-woo-system-card .woocommerce-checkout #order_review_heading,
  .fm-woo-system-card .woocommerce-checkout #order_review {
    grid-column:2;
  }

  .fm-woo-system-card .woocommerce-checkout .col2-set {
    grid-row:1 / span 2;
  }
}

@media (max-width: 820px) {
  .fm-missing-world-grid {
    grid-template-columns:1fr;
  }

  .fm-search-empty .fm-empty-suggestions {
    grid-template-columns:1fr;
  }

  .fm-search-form {
    grid-template-columns:1fr;
    border-radius:24px;
  }

  .fm-search-form input[type="search"],
  .fm-search-form button {
    width:100%;
  }
}

@media (max-width: 560px) {
  .fm-search-inner,
  .fm-missing-inner {
    width:calc(100% - 24px);
    padding:38px 0 50px;
  }

  .fm-search-inner h1,
  .fm-missing-inner h1 {
    font-size:clamp(38px, 12vw, 52px);
  }

  .fm-missing-actions .fm-btn {
    width:100%;
  }

  .fm-search-results,
  .fm-search-empty,
  .fm-missing-section {
    width:calc(100% - 24px);
  }

  .fm-woo-system-card .woocommerce-checkout #order_review {
    padding:18px 12px;
    border-radius:20px;
    overflow-x:hidden;
  }

  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table {
    display:block;
    table-layout:fixed;
    width:100%;
    max-width:100%;
    font-size:13px;
  }

  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table thead,
  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table tbody,
  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table tfoot {
    display:block;
    width:100%;
  }

  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table tr {
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(108px, max-content);
    align-items:center;
    width:100%;
  }

  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table th,
  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table td {
    display:block;
    width:auto !important;
    padding:11px 8px;
    overflow-wrap:break-word;
    word-break:normal;
  }

  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table .product-name,
  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table th:first-child,
  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table td:first-child {
    min-width:0;
  }

  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table .product-total,
  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table th:last-child,
  .fm-woo-system-card .woocommerce-checkout #order_review table.shop_table td:last-child {
    text-align:right;
  }

  .fm-woo-system-card .woocommerce-checkout #order_review .woocommerce-shipping-methods {
    margin:0;
    padding:0;
    list-style:none;
  }

  .fm-woo-system-card .woocommerce-checkout #order_review .woocommerce-shipping-methods li {
    margin:0;
  }
}

/* Shop-Filter: konservative PLP-Facetten statt Sortenfinder-Sektion. */
.fm-shop-listing-layout {
  width:min(1180px, calc(100% - 32px));
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(210px, 238px) minmax(0, 1fr);
  gap:28px;
  align-items:start;
}

.fm-shop-listing-layout.is-without-filters {
  display:block;
}

.fm-shop-listing-main {
  min-width:0;
}

.fm-shop-listing-main .fm-shop-toolbar,
.fm-shop-listing-main .fm-shop-product-grid,
.fm-shop-listing-main .fm-shop-pagination {
  width:100%;
  margin-right:0;
  margin-left:0;
}

.fm-shop-listing-main .fm-shop-product-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.fm-shop-listing-layout.is-without-filters .fm-shop-product-grid {
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.fm-shop-filter-sidebar {
  position:sticky;
  top:96px;
  max-height:calc(100vh - 116px);
  overflow:auto;
  align-self:start;
  padding:18px;
  border:1px solid rgba(45,33,56,.12);
  border-radius:14px;
  background:rgba(255,255,255,.88);
  box-shadow:0 10px 26px rgba(45,33,56,.07);
}

.fm-shop-filter-sidebar[open] {
  display:block;
}

.fm-shop-filter-sidebar summary {
  list-style:none;
}

.fm-shop-filter-sidebar summary::-webkit-details-marker {
  display:none;
}

.fm-filter-mobile-summary {
  display:none;
}

.fm-filter-sidebar-body {
  display:block;
}

.fm-shop-filter-sidebar:not([open]) .fm-filter-sidebar-body {
  display:none;
}

.fm-filter-sidebar-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  padding-bottom:13px;
  border-bottom:1px solid rgba(45,33,56,.11);
}

.fm-filter-sidebar-head span,
.fm-filter-mobile-summary span {
  color:var(--c-ink);
  font-family:var(--font-ui);
  font-size:12px;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.fm-filter-sidebar-head strong,
.fm-filter-mobile-summary strong {
  color:var(--c-ink-soft);
  font-family:var(--font-body);
  font-size:12px;
  font-weight:800;
}

.fm-shop-filter-sidebar .fm-filter-active-row {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 16px;
  padding:0 0 14px;
  border:0;
  border-bottom:1px dashed rgba(45,33,56,.12);
  border-radius:0;
  background:transparent;
}

.fm-shop-filter-sidebar .fm-filter-active-chip,
.fm-shop-filter-sidebar .fm-filter-reset {
  min-height:28px;
  padding:0 9px;
  font-size:10px;
}

.fm-shop-filter-sidebar .fm-filter-reset {
  width:auto;
  margin-left:0;
  background:var(--c-ink);
  box-shadow:none;
}

.fm-shop-filter-sidebar .fm-filter-group-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}

.fm-shop-filter-sidebar .fm-filter-group {
  padding:0 0 15px;
  border:0;
  border-bottom:1px dashed rgba(45,33,56,.13);
  border-radius:0;
  background:transparent;
}

.fm-shop-filter-sidebar .fm-filter-group:last-child {
  padding-bottom:0;
  border-bottom:0;
}

.fm-shop-filter-sidebar .fm-filter-group-head {
  display:block;
  margin-bottom:8px;
  padding-bottom:0;
  border-bottom:0;
}

.fm-shop-filter-sidebar .fm-filter-group h3 {
  color:var(--c-ink) !important;
  font-family:var(--font-ui) !important;
  font-size:11px !important;
  font-style:normal !important;
  font-weight:900 !important;
  letter-spacing:.1em !important;
  line-height:1.2 !important;
  text-transform:uppercase;
}

.fm-shop-filter-sidebar .fm-filter-chip-list {
  display:flex;
  flex-direction:column;
  gap:2px;
}

.fm-shop-filter-sidebar .fm-filter-chip {
  width:100%;
  min-height:34px;
  justify-content:space-between;
  gap:8px;
  padding:7px 8px;
  border:0;
  border-radius:8px;
  background:transparent;
  box-shadow:none;
  color:var(--c-ink-soft);
}

.fm-shop-filter-sidebar .fm-filter-chip:hover,
.fm-shop-filter-sidebar .fm-filter-chip.is-active {
  background:var(--c-cream-soft);
  color:var(--c-magenta-deep);
  transform:none;
}

.fm-shop-filter-sidebar .fm-filter-chip.is-active {
  background:var(--c-magenta);
  color:#fff;
}

.fm-shop-filter-sidebar .fm-filter-chip.is-empty {
  display:none;
}

.fm-shop-filter-sidebar .fm-filter-chip small {
  display:none;
}

.fm-shop-filter-sidebar .fm-filter-chip strong {
  font-size:12px;
  line-height:1.2;
}

.fm-shop-filter-sidebar .fm-filter-chip em {
  min-width:24px;
  height:22px;
  background:rgba(45,33,56,.07);
  color:var(--c-ink-soft);
  font-size:10px;
}

.fm-shop-filter-sidebar .fm-filter-chip.is-active em,
.fm-shop-filter-sidebar .fm-filter-chip:hover em {
  background:#fff;
  color:var(--c-magenta-deep);
}

.fm-shop-filter-sidebar .fm-filter-swatch {
  width:16px;
  height:16px;
  border-width:1px;
  box-shadow:0 2px 5px rgba(45,33,56,.12);
}

@media (max-width: 1120px) {
  .fm-shop-listing-layout {
    grid-template-columns:minmax(190px, 220px) minmax(0, 1fr);
    gap:22px;
  }

  .fm-shop-listing-main .fm-shop-product-grid,
  .fm-shop-listing-layout.is-without-filters .fm-shop-product-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width: 960px) {
  .fm-shop-listing-layout {
    grid-template-columns:1fr;
    gap:16px;
  }

  .fm-shop-filter-sidebar {
    position:static;
    max-height:none;
    overflow:visible;
    padding:0;
    border-radius:14px;
  }

  .fm-filter-mobile-summary {
    display:flex;
    min-height:52px;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:0 14px;
    cursor:pointer;
  }

  .fm-filter-mobile-summary::after {
    content:"+";
    display:grid;
    width:26px;
    height:26px;
    place-items:center;
    border-radius:50%;
    background:var(--c-cream-soft);
    color:var(--c-magenta-deep);
    font-family:var(--font-ui);
    font-weight:900;
  }

  .fm-shop-filter-sidebar[open] .fm-filter-mobile-summary::after {
    content:"-";
  }

  .fm-filter-mobile-summary em {
    padding:5px 8px;
    border-radius:999px;
    background:var(--c-magenta);
    color:#fff;
    font-family:var(--font-ui);
    font-size:10px;
    font-style:normal;
    font-weight:900;
  }

  .fm-filter-sidebar-head {
    display:none;
  }

  .fm-filter-sidebar-body {
    padding:0 14px 14px;
  }

  .fm-shop-filter-sidebar .fm-filter-group-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px 18px;
  }

  .fm-shop-filter-sidebar .fm-filter-group {
    padding-bottom:10px;
  }

  .fm-shop-filter-sidebar .fm-filter-chip {
    min-height:32px;
    padding:6px 4px;
  }

  .fm-shop-listing-main .fm-shop-product-grid,
  .fm-shop-listing-layout.is-without-filters .fm-shop-product-grid,
  .fm-shop-product-grid-related {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 700px) {
  .fm-shop-listing-layout {
    width:calc(100% - 24px);
  }

  .fm-shop-filter-sidebar .fm-filter-group-grid {
    grid-template-columns:1fr;
  }

  .fm-shop-listing-main .fm-shop-toolbar {
    gap:12px;
    padding:14px 0;
  }

  .fm-shop-listing-main .fm-shop-product-grid,
  .fm-shop-listing-layout.is-without-filters .fm-shop-product-grid {
    grid-template-columns:1fr;
  }

  .fm-shop-product-grid-related {
    grid-template-columns:1fr;
  }

  .fm-shop-product-grid-related .fm-shop-card h2 {
    font-size:15.5px !important;
    line-height:1.28;
  }
}
