/*
Theme Name: Fritz & Fritz 2026
Theme URI: 
Author: Lukas Fritze
Author URI: 
Description: 
Requires at least: 7.0
Tested up to: 7.0
Requires PHP: 7.4
Version: 1.0.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fritz-fritz-2026
*/

/* Kein seitliches Scrollen durch überhängende Signets.
   Callout, Personen-Profilkarte und Zitatkasten hängen ihr &-Signet über die
   rechte Kante (beim Callout 19,6 px), stehen aber auf Inhaltsbreite — daneben
   bleibt nur das root padding (1 rem). Der Rest macht das Dokument breiter als
   den Viewport. Das betrifft nicht nur Mobil: unterhalb von rund 1020 px
   Fensterbreite ist seitlich immer genau das root padding übrig. Der Überstand
   behält so seinen CI-Wert und verliert an der Displaykante nur 3–4 px.

   Der Zuschnitt muss an einem Element IM Dokument sitzen: `overflow-x` an
   `html` oder `body` propagiert auf den Viewport, und Chrome lässt die Seite
   dann trotzdem scrollen — mit `clip` wie mit `hidden` nachgemessen. `main`
   umschließt den gesamten Inhalt (alle neun Templates setzen es) und spannt
   über die volle Breite; Kopf- und Fußbereich haben keine Signets.

   Bewusst `clip` statt `hidden` (kein Scroll-Container, `position: sticky`
   bleibt nutzbar) und bewusst nur die waagerechte Achse — `overflow-y` bleibt
   `visible`, sonst wäre das Callout-Signet auch nach unten gekappt.

   Kehrseite: das schluckt jeden künftigen waagerechten Überlauf im Inhalt
   still. Zum Debuggen die Regel kurz herausnehmen (siehe AGENTS.md). */
main.wp-block-group {
  overflow-x: clip;
}

html {
  scroll-behavior: smooth;
}

/* ============================================================
   Umbruch und Trennung
   ============================================================ */

/* Fliesstext: `pretty` haelt die letzten Zeilen eines Absatzes im Blick —
   kein einzelnes Wort in der Schlusszeile und keine gequetschten oder
   gerissenen Wortabstaende davor. Steht am `body`, damit es ueberall erbt
   (Absaetze, Listen, Tabellenzellen, Bildunterschriften, Menue- und
   Button-Labels); auf einzeiligem Text ist es wirkungslos und kostet dort
   nichts. Browser ohne Unterstuetzung ignorieren den Wert und bleiben bei
   `wrap`. Gutenberg schreibt `body` fuer den Editor auf
   `.editor-styles-wrapper` um, die Regel gilt dort also mit. */
body {
  text-wrap: pretty;
}

/* Ueberschriften: `balance` verteilt die Woerter gleichmaessig auf die Zeilen,
   statt jede Zeile bis zum Rand zu fuellen und einen Rest uebrig zu lassen.
   Genau deshalb sind die von Hand gesetzten `<br>` aus den Ueberschriften der
   Bestandsseiten entfernt (2026-09-06): ein fester Umbruch sitzt bei jeder
   anderen Fensterbreite falsch, `balance` rechnet ihn bei jeder Breite neu.
   Wer wieder einen setzt, hebelt die Regel fuer diese Ueberschrift aus.

   Die Regel greift am Element, nicht an `.wp-block-heading`: sie soll auch die
   dynamischen Bloecke treffen (`core/post-title`, `core/query-title`,
   `core/site-title`) und die Ueberschriften in den klassischen Inhalten der
   Bestandsseiten, die die Blockklasse nicht tragen.

   Grenze der Browser: `balance` wirkt nur bis zu einer Handvoll Zeilen (Chrome
   sechs), laengere Ueberschriften brechen wie gewohnt. Fuer die Titelkaesten
   und Abschnittskoepfe des Themes reicht das.

   `hyphens: auto` faengt die Faelle, in denen das Ausbalancieren nicht genuegt:
   die langen Komposita des Fachgebiets ("Betriebsunterbrechung",
   "Rundum-Versicherungsschutz") sprengen in den schmalen Spalten der
   Titelkaesten und Karten sonst die Zeile. Die Trennstellen kommen aus dem
   Woerterbuch der Seitensprache — ein `lang` am `<html>` ist dafuer
   Voraussetzung und steht hier (`language_attributes()` gibt bei Sprache
   de_DE ein `lang="de"` aus, nachgemessen).

   `hyphenate-limit-chars` haelt die Trennung im Rahmen: erst ab acht Zeichen
   trennen, mindestens vier davor und drei danach. Ohne die Grenze trennt der
   Browser auch "Ho-tel" und laesst zwei Buchstaben allein in der Zeile — bei
   Schriftgroessen wie `jumbo` sofort sichtbar. Browser ohne Unterstuetzung
   trennen nach ihren eigenen Vorgaben, die Trennung faellt dort also nicht
   aus, sie wird nur grober. */
h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
  hyphens: auto;
  hyphenate-limit-chars: 8 4 3;
}

.wp-block-comments textarea#comment {
  border-radius: 20px;
  border: 0;
}

input[type="submit"] {
  transition: all ease 0.23s;
  -o-transition: all ease 0.23s;
  -moz-transition: all ease 0.23s;
  -webkit-transition: all ease 0.23s;
}

.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-textarea,
.wpcf7-form-control.wpcf7-number.wpcf7-validates-as-number,
.wpcf7-form-control.wpcf7-select {
  border-radius: 12px;
  border: 1px solid var(--wp--preset--color--light-grey);
  padding: 15px;
  width: 100%;
  margin-top: 20px;
  box-sizing: border-box;
  background-color: var(--wp--preset--color--background-alt);
}

.wpcf7-form-control.wpcf7-select {
  appearance: none;
  position: relative;
}

.wpcf7-form-control.wpcf7-select:after {
  content: ">";
  font-size: 20px;
  position: absolute;
  right: 20px;
  top: 10px;
}

form.wpcf7-form *::placeholder {
  font-size: 14px;
}

form.wpcf7-form *::-moz-placeholder {
  font-size: 14px;
}

form.wpcf7-form *::-webkit-input-placeholder {
  font-size: 14px;
}

.wp-block-contact-form-7-contact-form-selector
  .wpcf7-form-control.wpcf7-submit {
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--light-color);
  border-radius: 12px;
  border: 0;
  font-size: 16px;
  padding: 15px 40px;
  margin-top: 15px;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-contact-form
  .wpcf7-form-control.wpcf7-submit {
  width: 100%;
}

.wp-block-contact-form-7-contact-form-selector
  .wpcf7-form-control.has-spinner.wpcf7-submit:hover {
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--light-color);
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter
  .wpcf7-form
  input,
.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  .wpcf7-form
  input {
  border-radius: 0;
  border: 0;
  border: 1px solid var(--wp--preset--color--light-color);
  background: #fff;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  .wpcf7-form
  input {
  border: 1px solid var(--wp--preset--color--foreground);
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-form-1
  .wpcf7-form
  input,
.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-form-1
  .wpcf7-form
  select,
.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-form-1
  .wpcf7-form
  textarea {
  border: 0 !important;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-form-1
  input.wpcf7-form-control.wpcf7-submit {
  border-radius: 6px;
  margin-top: 5px;
  width: 100%;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-form-1 {
  margin-bottom: -30px;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-form-1
  .wpcf7-form
  textarea {
  height: 120px;
}

form.comment-form {
  border-radius: 20px;
  margin-top: 24px;
}

.wp-block-post-comments-form {
  border-radius: 20px;
}

form.comment-form input[type="email"],
form.comment-form input[type="text"],
form.comment-form input[type="url"],
form.comment-form textarea {
  border-radius: 30px;
  margin: 12px 0 25px;
  border: 0;
}

form.comment-form .form-submit.wp-block-button {
  margin-top: 25px;
}

.wp-block-comment-author-name {
  font-weight: 600;
}

.wp-block-comment-date a {
  color: var(--wp--preset--color--foreground);
  font-size: 13px;
}

.wp-block-comment-template li {
  margin-top: 50px;
}

.wp-block-comment-template li li {
  margin-top: 10px;
  padding-left: 60px;
}

a.comment-reply-link {
  padding: 10px 16px;
  border-radius: 40px;
  font-size: 13px;
  background-color: var(--wp--preset--color--background-alt);
  columns: var(--wp--preset--color--primary);
}

a.comment-reply-link:hover {
  background-color: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--light-color);
}

.wp-block-post-comments-form {
  margin-top: 30px;
  display: inline-block;
  width: 100%;
}

.woocommerce ul.products li.product a img {
  border-radius: 5px;
  height: 350px;
  object-fit: cover;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  margin: 0 2.5% 2.992em 0;
  width: 23.1%;
}

.woocommerce ul.products li.last,
.woocommerce-page ul.products li.last {
  margin-right: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  border-radius: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active:before,
.woocommerce div.product .woocommerce-tabs ul.tabs li:before,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active:after {
  display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li:after {
  border: 0;
}

.woocommerce #reviews #comments ol.commentlist {
  padding: 0;
  margin-top: 20px !important;
}

.woocommerce-page .input-text {
  padding: 11px 30px;
  border: 1px solid #817e7e;
  border-radius: 5px;
}

.entry-content.wp-block-post-content a,
.wp-block-comment-content a,
p a,
.wp-block-heading a {
  text-decoration: underline;
}

/* Button-Links sind Flächen, keine Fließtext-Links. `core/button` rendert ein
   `<a>`, die Regel darüber trifft es also mit; Cores eigenes
   `text-decoration: none` steht in `:where(.wp-block-button__link)` und hat
   damit Spezifität 0. Die Rücknahme steht deshalb hier. `:is()` zählt wie eine
   Klasse, der Selektor bleibt damit knapp über der Unterstreichungsregel
   (0,3,1 gegen 0,2,1) und lässt alle anderen Links in Ruhe. */
.entry-content.wp-block-post-content a:is(.wp-element-button, .wp-block-button__link),
.wp-block-comment-content a:is(.wp-element-button, .wp-block-button__link),
p a:is(.wp-element-button, .wp-block-button__link),
.wp-block-heading a:is(.wp-element-button, .wp-block-button__link) {
  text-decoration: none;
}

nav.wp-block-navigation ul li a:hover,
nav.wp-block-navigation ul li a:focus {
  color: var(--wp--preset--color--primary) !important;
}

.wp-block-group.fritz-fritz-2026-product-image {
  position: relative;
  overflow: hidden;
}

.wp-block-group.fritz-fritz-2026-product-image .wc-block-components-product-image {
  margin: 0;
}

.wp-block-columns.fritz-fritz-2026-product-buttons {
  position: absolute;
  width: 80%;
  bottom: -40px;
  left: 10%;
  transition: all ease 0.23s;
  opacity: 0;
}

.wp-block-group.fritz-fritz-2026-product-box:hover
  .wp-block-columns.fritz-fritz-2026-product-buttons {
  opacity: 1;
  bottom: 24px;
}

.wp-block-group.fritz-fritz-2026-product-box .wc-block-components-product-sale-badge,
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-onsale {
  font-size: 12px;
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--light-color);
  border: 0;
  top: 12px;
  width: 40px;
  height: 24px;
  line-height: 24px;
  padding: 0;
  border-radius: 0;
  z-index: 1;
}

.wp-block-group.fritz-fritz-2026-product-box
  .wc-block-components-product-sale-badge.wc-block-components-product-sale-badge--align-left {
  left: 12px;
}

.wp-block-woocommerce-product-sale-badge.fritz-fritz-2026-sales-bade
  .wc-block-components-product-sale-badge {
  right: 12px;
  position: absolute;
}

.wp-block-group.fritz-fritz-2026-product-box
  .wc-block-components-product-sale-badge.wc-block-components-product-sale-badge--align-right {
  right: 12px;
}

.wp-block-group.fritz-fritz-2026-product-box
  .wp-block-group.fritz-fritz-2026-product-image
  img {
  transition: all ease 0.23s;
}

.wp-block-group.fritz-fritz-2026-product-box:hover
  .wp-block-group.fritz-fritz-2026-product-image {
  transform: translateY(-7px);
}

.wp-block-group.fritz-fritz-2026-product-box .wc-block-components-product-price del {
  color: var(--wp--preset--color--primary);
}

.wp-block-group.fritz-fritz-2026-product-box .wc-block-components-product-price ins {
  text-decoration: none;
}

.wp-block-group.fritz-fritz-2026-product-box .wp-block-woocommerce-product-price {
  margin-block-start: 0;
}

.wc-block-grid__product-rating .wc-block-grid__product-rating__stars:before {
  color: var(--wp--preset--color--grey);
}

.wp-block-group.fritz-fritz-2026-product-box a.wp-block-read-more,
.wp-block-group.fritz-fritz-2026-product-box
  a.wp-block-button__link.wp-element-button.wc-block-components-product-button__button,
.wp-block-group.fritz-fritz-2026-product-box
  button.wp-block-button__link.wp-element-button.wc-block-components-product-button__button.add_to_cart_button {
  width: 100%;
  text-align: center;
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--light-color);
  padding: 12px 0;
  font-size: 14px;
  border-radius: 30px;
}

.wp-block-group.fritz-fritz-2026-product-box a.wp-block-read-more:hover,
.wp-block-group.fritz-fritz-2026-product-box
  a.wp-block-button__link.wp-element-button.wc-block-components-product-button__button:hover,
.wp-block-group.fritz-fritz-2026-product-box
  button.wp-block-button__link.wp-element-button.wc-block-components-product-button__button.add_to_cart_button:hover {
  background: var(--wp--preset--color--secondary);
}

figure.wp-block-gallery.fritz-fritz-2026-brands figure.wp-block-image {
  padding: 0 40px;
  margin-bottom: 0 !important;
}

figure.wp-block-gallery.fritz-fritz-2026-brands figure.wp-block-image img {
  max-height: 100%;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  transition: all ease 0.23s;
}

figure.wp-block-gallery.fritz-fritz-2026-brands figure.wp-block-image img:hover {
  transform: scale(1.1);
}

.wp-block-cover.fritz-fritz-2026-cover-hover {
  background: #000;
}

.wp-block-cover.fritz-fritz-2026-cover-hover:hover img {
  transform: scale(1.1);
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  opacity: 0.35;
  -webkit-opacity: 0.35;
  -moz-opacity: 0.35;
}

.wp-block-cover.fritz-fritz-2026-cover-hover.opacity-none:hover img {
  opacity: 1;
  -webkit-opacity: 1;
  -moz-opacity: 1;
}

.wp-block-group.fritz-fritz-2026-product-cats {
  transition: all ease 0.23s;
}

.wp-block-group.fritz-fritz-2026-product-cats:hover {
  transform: translateY(-10px);
  -webkit-transform: translateY(-10px);
  -moz-transform: translateY(-10px);
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter
  form.wpcf7-form,
.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  form.wpcf7-form {
  position: relative;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter
  span.wpcf7-form-control-wrap,
.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  span.wpcf7-form-control-wrap {
  width: 100%;
  float: left;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter
  input.wpcf7-form-control.wpcf7-submit:hover,
.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  input.wpcf7-form-control.wpcf7-submit:hover {
  background: var(--wp--preset--color--secondary);
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter
  input.wpcf7-form-control.wpcf7-submit,
.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  input.wpcf7-form-control.wpcf7-submit {
  margin-top: 10px;
  background: var(--wp--preset--color--primary);
  height: 50px;
  position: absolute;
  right: 2px;
  padding: 0 30px;
  color: #fff;
  top: 2px;
  color: #fff;
  font-size: 18px;
  border: 0;
  border-radius: 0;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  input.wpcf7-form-control.wpcf7-submit {
  top: 0;
  right: 0;
  background: var(--wp--preset--color--foreground);
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
  height: 59px;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter
  span.wpcf7-form-control-wrap
  input,
.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  span.wpcf7-form-control-wrap
  input {
  height: 54px;
  padding: 0 20px;
  color: #464646;
  transition: all ease 0.23s;
  background-color: #fff;
  border-color: #e3e3e3;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  span.wpcf7-form-control-wrap
  input {
  height: 60px;
  border-radius: 6px;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter
  span.wpcf7-form-control-wrap
  input:focus,
.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  span.wpcf7-form-control-wrap
  input:focus {
  padding-left: 20px;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter
  span.wpcf7-form-control-wrap
  input::placeholder,
.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  span.wpcf7-form-control-wrap
  input::placeholder {
  font-size: 18px;
  color: var(--wp--preset--color--foreground);
  font-weight: 300;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-2
  span.wpcf7-form-control-wrap
  input::placeholder {
  color: var(--wp--preset--color--foreground);
}

.fritz-fritz-2026-nav-search.wp-block-search .wp-block-search__inside-wrapper {
  justify-content: end;
}

.fritz-fritz-2026-nav-search.wp-block-search .wp-block-search__inside-wrapper svg {
  height: 34px;
  width: 34px;
}

.fritz-fritz-2026-nav-search.wp-block-search .wp-block-search__button {
  width: 100%;
  max-width: 60px;
}

/* Kopfbereich immer über dem Seiteninhalt.
   Core gibt dem aufgeklappten Untermenü `position: absolute; z-index: 2`
   (wp-includes/blocks/navigation/style.css). Genau denselben z-index trägt ab
   782px der Titelkasten (.is-style-ff-titlebox in assets/css/blocks.css), damit
   er über die Bildspalte des Heroes ragt. Bei Gleichstand entscheidet die
   Dokumentreihenfolge – der Hero steht nach dem Header und hat das Untermenü
   deshalb überdeckt. Der Header bekommt hier einen eigenen Stacking-Kontext
   klar oberhalb aller Inhalts-z-indizes (höchster im Theme: 2, u. a. am
   Titelkasten); alles im Header – Untermenüs,
   Overlay-Menü – liegt damit über dem Inhalt, egal was dort noch dazukommt. */
header.wp-block-template-part {
  position: relative;
  z-index: 100;
}

.fritz-fritz-2026-navigation.wp-block-navigation
  ul.wp-block-navigation__submenu-container.wp-block-navigation-submenu {
  padding: 0;
  border: 0;
  transition: all ease 0.23s;
  transform: translateY(40px);
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.23);
}

.fritz-fritz-2026-navigation.wp-block-navigation
  li:hover
  ul.wp-block-navigation__submenu-container.wp-block-navigation-submenu {
  transform: translateY(0px);
}

/* Untermenues oeffnen ausschliesslich auf Klick: der Navigations-Block in
   parts/header.html steht auf submenuVisibility "click", Core rendert die
   beiden Hauptpunkte mit Unterpunkten dadurch als <button> statt als Link
   (wp-includes/blocks/navigation-submenu.php). Die Einblend-Bewegung darueber
   haengt an :hover – per Tastatur und auf dem Touchscreen gibt es den nicht,
   das aufgeklappte Untermenue stuende dort 40px zu tief. Core selbst blendet
   es ueber genau dieses aria-expanded ein, deshalb hier derselbe Marker. */
.fritz-fritz-2026-navigation.wp-block-navigation
  .wp-block-navigation-submenu__toggle[aria-expanded="true"]
  ~ ul.wp-block-navigation__submenu-container.wp-block-navigation-submenu {
  transform: translateY(0px);
}

.wp-block-navigation.fritz-fritz-2026-navigation
  .wp-block-navigation-item__content.wp-block-navigation-item__content {
  line-height: 50px;
}

.fritz-fritz-2026-navigation.wp-block-navigation
  ul.wp-block-navigation__submenu-container.wp-block-navigation-submenu
  .wp-block-navigation-item__content.wp-block-navigation-item__content {
  line-height: 24px;
  transition: all ease 0.23s;
}

.fritz-fritz-2026-navigation.wp-block-navigation
  ul.wp-block-navigation__submenu-container.wp-block-navigation-submenu
  .wp-block-navigation-item__content.wp-block-navigation-item__content:hover {
  background-color: #ededed;
}

.woocommerce.wc-block-catalog-sorting select.orderby {
  height: 30px;
  border: 0;
}

.wc-block-product-categories.fritz-fritz-2026-products-category-filter
  ul.wc-block-product-categories-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.wc-block-product-categories.fritz-fritz-2026-products-category-filter
  ul.wc-block-product-categories-list
  li {
  margin-bottom: 7px;
}

.wc-block-product-categories.fritz-fritz-2026-products-category-filter
  ul.wc-block-product-categories-list
  li
  a:hover
  span.wc-block-product-categories-list-item__name {
  color: var(--wp--preset--color--primary);
}

.woocommerce .wp-block-woocommerce-product-image-gallery {
  max-width: 100%;
}

.woocommerce .wp-block-woocommerce-product-image-gallery span.onsale {
  left: 10px;
  right: unset;
  z-index: 1;
  top: 10px;
  background: var(--wp--preset--color--primary);
  font-size: 14px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background-color: transparent;
  border: 0;
  margin: 0 30px 0 0 !important;
  padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
  display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0;
  border-width: 0;
  position: relative;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--wp--preset--color--foreground);
  font-weight: 600;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  padding: 10px 0 !important;
  font-weight: 400;
  position: relative;
  margin: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a:after,
.woocommerce div.product .woocommerce-tabs ul.tabs:after {
  content: "";
  width: 100%;
  left: 0;
  bottom: 0;
  position: absolute;
  background: var(--wp--preset--color--foreground);
}

.woocommerce div.product .woocommerce-tabs ul.tabs:after {
  background-color: var(--wp--preset--color--light-grey);
}

.woocommerce-tabs.wc-tabs-wrapper h2 {
  font-size: 24px;
  font-weight: 600;
}

button.single_add_to_cart_button.button.alt.wp-element-button,
.wc-block-cart__submit.wp-block-woocommerce-proceed-to-checkout-block
  a.components-button.wc-block-components-button,
a.components-button.wc-block-components-button.wp-element-button.wp-block-woocommerce-mini-cart-checkout-button-block.wc-block-mini-cart__footer-checkout.contained {
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--light-color);
  padding: 15px 60px;
  border-radius: 0;
}

button.single_add_to_cart_button.button.alt.wp-element-button:hover,
.wc-block-cart__submit.wp-block-woocommerce-proceed-to-checkout-block
  a.components-button.wc-block-components-button:hover,
a.components-button.wc-block-components-button.wp-element-button.wp-block-woocommerce-mini-cart-checkout-button-block.wc-block-mini-cart__footer-checkout.contained:hover {
  background: var(--wp--preset--color--secondary);
}

.woocommerce div.product form.cart div.quantity .qty {
  background: transparent;
  border: 0;
  padding: 0;
  font-size: 16px;
  border: 1px solid var(--wp--preset--color--light-grey);
}

.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block {
  background: var(--wp--preset--color--light-shade);
  padding: 24px;
  border-radius: 20px;
}

.wc-block-cart__submit.wp-block-woocommerce-proceed-to-checkout-block {
  margin-top: 24px;
}

.wc-block-cart-item__wrap a.wc-block-components-product-name {
  color: var(--wp--preset--color--foreground);
  font-weight: 600;
  font-size: 16px;
}

.wc-block-cart-item__wrap a.wc-block-components-product-name:hover {
  color: var(--wp--preset--color--secondary);
}

span.wc-block-formatted-money-amount.wc-block-components-formatted-money-amount.wc-block-components-product-price__value,
.wc-block-components-totals-item.wc-block-mini-cart__footer-subtotal
  span.wc-block-components-totals-item__label,
.wc-block-components-totals-item.wc-block-mini-cart__footer-subtotal
  span.wc-block-formatted-money-amount.wc-block-components-formatted-money-amount.wc-block-components-totals-item__value {
  font-weight: 600;
  color: var(--wp--preset--color--foreground);
}

.wc-block-components-totals-wrapper {
  border-top: 0;
}

.wc-block-components-order-summary
  .wc-block-components-order-summary-item__quantity {
  background: #000;
  color: #fff;
}

figure.wp-block-image.fritz-fritz-2026-app-image img {
  margin-top: -105px;
}

.wp-block-button.fritz-fritz-2026-more-products a.wp-element-button:hover {
  border-bottom-color: var(--wp--preset--color--secondary) !important;
}

button.components-button.wc-block-components-button.wp-element-button.wc-block-components-checkout-place-order-button {
  color: #fff;
}

form.comment-form .form-submit.wp-block-button input#submit {
  background-color: var(--wp--preset--color--primary);
  color: #fff;
  padding: 16px 30px;
  border-radius: 30px;
  border: 0;
}

form.comment-form .form-submit.wp-block-button input#submit:hover {
  background-color: var(--wp--preset--color--secondary);
}

.wp-block-post-comments-form input:not([type="submit"]),
.wp-block-post-comments-form textarea {
  border-color: var(--wp--preset--color--foreground);
}

.wp-block-button.fritz-fritz-2026-cat-more a.wp-block-button__link {
  width: 40px;
  height: 40px;
  text-indent: -5000px;
  padding: 0;
  position: relative;
  opacity: 0;
  transform: translateY(20px);
}

.wp-block-button.fritz-fritz-2026-cat-more a.wp-block-button__link:after {
  content: "";
  width: 10px;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 7px 0 7px 11px;
  border-color: transparent transparent transparent
    var(--wp--preset--color--primary);
  transform: rotate(0deg);
  position: absolute;
  left: 16px;
  top: 14px;
}

.wp-block-button.fritz-fritz-2026-cat-more a.wp-block-button__link:hover:after {
  border-color: transparent transparent transparent
    var(--wp--preset--color--light-color);
}

.wp-block-cover.fritz-fritz-2026-category-box:hover
  .wp-block-button.fritz-fritz-2026-cat-more
  a.wp-block-button__link {
  opacity: 1;
  transform: translateY(-5px);
}

.wc-block-cart-items.wp-block-woocommerce-cart-line-items-block
  td.wc-block-cart-item__image {
  padding: 16px 0 !important;
}

.wc-block-cart-items.wp-block-woocommerce-cart-line-items-block
  td.wc-block-cart-item__image
  img {
  border-radius: 12px;
}

.wc-block-components-order-summary
  .wc-block-components-order-summary-item__image
  img {
  border-radius: 4px;
}

.wpcf7 form .wpcf7-response-output {
  margin: 0;
  padding: 5px 10px;
  border: 1px solid #00a0d2;
}

.woocommerce #reviews #comments ol.commentlist li img.avatar {
  width: 68px;
  padding: 0;
  border: 0;
  border-radius: 50%;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text {
  border: 0;
  background: var(--wp--preset--color--light-shade);
  margin-left: 80px;
}

.wp-block-woocommerce-empty-cart-block
  .wc-block-grid.wp-block-product-new.wc-block-product-new {
  margin-top: 20px;
}

.wp-block-woocommerce-empty-cart-block
  h2.wp-block-heading.has-text-align-center {
  font-size: 30px;
}

.wc-block-cart__empty-cart__title.with-empty-cart-icon:before {
  background-color: var(--wp--preset--color--primary);
}

.wp-block-woocommerce-empty-cart-block
  img.attachment-woocommerce_thumbnail.size-woocommerce_thumbnail {
  height: 360px;
  border-radius: 0;
  object-fit: cover;
  object-position: top;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
  margin: 0;
  padding: 0;
  grid-gap: 30px;
}

.wp-block-woocommerce-empty-cart-block
  .wc-block-grid__products
  li.wc-block-grid__product {
  max-width: 23% !important;
  border: 0 !important;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
  font-size: 16px;
  color: var(--wp--preset--color--foreground);
}

.wp-block-woocommerce-empty-cart-block a:hover .wc-block-grid__product-title {
  color: var(--wp--preset--color--secondary);
}

.wp-block-woocommerce-empty-cart-block
  a.wp-block-button__link.wp-element-button.add_to_cart_button {
  color: #fff;
  padding: 12px 40px;
  font-size: 16px;
  border-radius: 0;
}

.wc-block-mini-cart__empty-cart-wrapper
  a.components-button.wc-block-components-button.wc-block-mini-cart__shopping-button {
  color: #fff;
  padding: 14px 30px;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
  background: var(--wp--preset--color--light-shade);
  padding: 24px;
  box-sizing: border-box;
  border-radius: 20px;
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
  list-style: none;
  padding: 10px 0;
  border-bottom: 1px solid #ebefef;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
  color: var(--wp--preset--color--foreground);
}

.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  color: var(--wp--preset--color--secondary);
}

.woocommerce-account button.woocommerce-Button.button.wp-element-button,
.wp-element-button,
.wp-block-button__link {
  color: #fff;
}

.woocommerce-account .woocommerce-MyAccount-content {
  width: 65%;
}

header.woocommerce-Address-title.title h3 {
  font-size: 20px;
}

.woocommerce .col2-set .col-1,
.woocommerce-page .col2-set .col-1,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-2 {
  float: left;
  width: 100%;
}

span.wc-block-mini-cart__badge {
  color: #fff;
}

h2.wc-block-mini-cart__title {
  font-size: 24px;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter.minimal-footer-layout
  span.wpcf7-form-control-wrap
  input {
  height: 52px;
  padding: 0 16px;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter.minimal-footer-layout
  span.wpcf7-form-control-wrap
  input::placeholder {
  font-size: 14px;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter.minimal-footer-layout
  input.wpcf7-form-control.wpcf7-submit {
  height: 39px;
  right: 7px;
  padding: 0 12px;
  top: 7px;
  font-size: 14px;
}

.wp-block-social-links.fritz-fritz-2026-header-socials .wp-social-link a {
  padding: 5px;
}

.wp-block-social-links.fritz-fritz-2026-header-socials .wp-social-link a svg {
  height: 20px;
  width: 20px;
}

form.fritz-fritz-2026-header-product-search.wp-block-search {
  width: 670px;
  max-width: 100%;
}

form.fritz-fritz-2026-header-product-search.wp-block-search .wp-block-search__input {
  padding: 0 20px;
}

form.fritz-fritz-2026-header-product-search.wp-block-search .wp-block-search__button {
  margin-left: 0;
  border-radius: 0;
  border: 0;
  height: 52px;
  padding: 0 20px;
}

form.fritz-fritz-2026-header-product-search.wp-block-search
  .wp-block-search__button:hover {
  background: var(--wp--preset--color--secondary) !important;
}

figure.wp-block-image.size-full.is-resized.fritz-fritz-2026-overlap-bottom {
  margin-bottom: -100px;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-style-2 {
  position: relative;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-style-2
  input.wpcf7-form-control.wpcf7-email {
  background: #fff;
  border-radius: 50px;
  height: 60px;
  padding: 0 24px;
  position: relative;
  margin-bottom: 20px;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-style-2
  .wpcf7-list-item {
  display: inline-block;
  margin: 0;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-style-2
  input.wpcf7-form-control.wpcf7-submit {
  background: var(--wp--preset--color--primary) url(assets/images/btn-arrow.svg)
    no-repeat center center;

  color: #fff;
  border-radius: 50px;
  position: absolute;
  right: 6px;
  top: 15px;
  text-indent: -5000px;
}

.wp-block-contact-form-7-contact-form-selector.fritz-fritz-2026-newsletter-style-2
  input.wpcf7-form-control.wpcf7-submit:hover {
  background-color: var(--wp--preset--color--secondary);
}

.wp-block-group.fritz-fritz-2026-header.fritz-fritz-2026-overlap-nav {
  position: fixed;
  z-index: 99;
  width: 100%;
}

.cozy-block-product-carousel .wp-block-post {
  overflow: visible !important;
  padding-top: 0;
}

.swiper-wrapper {
  z-index: inherit;
}

.woocommerce .comment-form-comment textarea {
  padding: 16px;
}

.wp-block-group.fritz-fritz-2026-service-box:hover,
.wp-block-group.fritz-fritz-2026-hover-box:hover {
  transform: scale(1.015) translateY(-7px);
  -webkit-transform: scale(1.015) translateY(-7px);
  -moz-transform: scale(1.015) translateY(-7px);
}

.wp-block-cover.fritz-fritz-2026-portfolio-box {
  background: #000;
}

.wp-block-cover.fritz-fritz-2026-portfolio-box:hover .wp-block-cover__image-background {
  transform: scale(1.1);
  opacity: 0.5;
}

.wp-block-cover.fritz-fritz-2026-portfolio-box .wp-block-cover__inner-container {
  height: 100%;
  width: 100%;
}

.wp-block-group.fritz-fritz-2026-portfolio-content {
  position: absolute;
  width: 100%;
  left: 50%;
  bottom: -25%;
  transform: translate(-50%, -50%);
  opacity: 0;
}

.wp-block-cover.fritz-fritz-2026-portfolio-box:hover
  .wp-block-group.fritz-fritz-2026-portfolio-content {
  bottom: 0;
  opacity: 1;
}

ul.wp-block-list.fritz-fritz-2026-category-list li {
  text-align: center;
  margin: 10px 0;
}

form.fritz-fritz-2026-banner-search.wp-block-search {
  max-width: 100% !important;
}

.wp-block-group.fritz-fritz-2026-search-box.is-style-fritz-fritz-2026-boxshadow {
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.6);
}

figure.wp-block-gallery.fritz-fritz-2026-gallery figure.wp-block-image {
  height: 280px;
}

.wc-block-grid .wc-block-grid__product-onsale,
.wc-block-grid__product-image .wc-block-grid__product-onsale {
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--light-color);
  border: 0;
  border-radius: 0;
  font-size: 12px;
  font-weight: 300;
  top: 10px;
}

.editor-styles-wrapper
  .wc-block-grid__products
  .wc-block-grid__product
  .wc-block-components-product-image
  .wc-block-components-product-sale-badge--align-right,
.wc-block-components-product-image
  .wc-block-components-product-sale-badge--align-right {
  right: 10px;
}

.editor-styles-wrapper
  .wc-block-grid__products
  .wc-block-grid__product
  .wc-block-components-product-image
  .wc-block-components-product-sale-badge--align-left,
.wc-block-components-product-image
  .wc-block-components-product-sale-badge--align-left {
  left: 10px;
}

.editor-styles-wrapper
  .wc-block-grid__products
  .wc-block-grid__product
  .wc-block-components-product-image
  img[alt=""],
.wc-block-components-product-image img[alt=""] {
  border: 0;
}

.wp-block-group.fritz-fritz-2026-dummy-product .wp-block-cover {
  overflow: hidden;
  position: relative;
}

.wp-block-group.fritz-fritz-2026-dummy-product
  .wp-block-cover
  .wp-block-cover__inner-container {
  margin-bottom: -100px;
  opacity: 0;
  transition: all ease 0.23s;
}

.wp-block-group.fritz-fritz-2026-dummy-product:hover
  .wp-block-cover
  .wp-block-cover__inner-container {
  margin-bottom: 0;
  opacity: 1;
}

.wp-block-group.fritz-fritz-2026-dummy-product:hover
  img.wp-block-cover__image-background {
  opacity: 0.65;
}

form.fritz-fritz-2026-header-search.wp-block-search .wp-block-search__inside-wrapper {
  border: 0;
  padding: 7px 7px 7px 10px;
  border-radius: 10px;
  background: #f6f0f2;
}

form.fritz-fritz-2026-header-search.wp-block-search
  .wp-block-search__inside-wrapper
  input {
  background: transparent;
}

.fritz-fritz-2026-header-search.wp-block-search .wp-block-search__button {
  padding: 0px;
}

.wp-block-social-links.fritz-fritz-2026-social-icon .wp-social-link svg {
  width: 20px;
  height: 20px;
}

@media (max-width: 768px) {
  .wp-block-heading.fritz-fritz-2026-big-title {
    font-size: 44px !important;
  }
}

@media (max-width: 600px) {
  .wp-block-navigation.fritz-fritz-2026-navigation ul {
    grid-gap: 0;
    padding-block-start: 0;
    padding-inline-start: 0;
    margin-block-start: 0;
    margin-block-end: 0;
  }

  .wp-block-navigation.fritz-fritz-2026-navigation
    .wp-block-navigation-item__content.wp-block-navigation-item__content {
    line-height: 30px;
    padding: 0;
  }

  .fritz-fritz-2026-navigation.wp-block-navigation
    ul.wp-block-navigation__submenu-container.wp-block-navigation-submenu {
    transform: translateY(0);
    box-shadow: none;
  }

  .wp-block-navigation__responsive-container
    .wp-block-navigation__responsive-container-content {
    padding: 20px;
  }
}

/* Aktueller Menuepunkt in Bordeaux – in beiden Darstellungen, Kopfzeile wie
   Overlay, deshalb bewusst ausserhalb jeder Media Query.

   WordPress setzt dafuer drei Marker: aria-current="page" am Link der
   aufgerufenen Seite, .current-menu-item an dessen Listenpunkt und
   .current-menu-ancestor an der Elternebene. Die Elternebene ist noetig, weil
   auf einer Unterseite der aktive Punkt im zugeklappten Untermenue steckt –
   ohne sie bliebe die Kopfzeile am Desktop unmarkiert. Und .current-menu-item
   ist noetig, seit die beiden Hauptpunkte mit Unterpunkten als <button>
   rendern (submenuVisibility "click"): ein Button bekommt von Core kein
   aria-current, auch wenn er auf die aufgerufene Seite zeigen wuerde.

   Der Selektor greift am <a>, nicht am <li>: im aufgeklappten Overlay setzt
   Core an .wp-block-navigation-item ein `color: inherit !important`, eine
   Farbe am Listenpunkt fiele dort also weg.

   Nur an .fritz-fritz-2026-navigation, nicht global: die Fussnavigation steht
   auf Bordeaux-Grund, dort waere Primary unsichtbar (sie nutzt Secondary). */
.fritz-fritz-2026-navigation
  .wp-block-navigation-item__content[aria-current="page"],
.fritz-fritz-2026-navigation
  .current-menu-item
  > .wp-block-navigation-item__content,
.fritz-fritz-2026-navigation
  .current-menu-ancestor
  > .wp-block-navigation-item__content {
  color: var(--wp--preset--color--primary);
}

/* ============================================================
   Mobiles Overlay-Menue (core/navigation, aufgeklappt)
   ============================================================ */

/* Die drei Masse, aus denen sich die Position des Schliessen-Kreuzes ergibt.
   --ff-header-padding-block muss mit dem padding-top/-bottom der Header-Gruppe
   in parts/header.html uebereinstimmen (dort als Inline-Style am Block, CSS
   kann es nicht liefern) – wird es dort geaendert, hier nachziehen. Die beiden
   anderen Werte setzt dieses Stylesheet selbst: die Logo-Hoehe gleich unten,
   die Icon-Groesse eine Regel weiter.
   Bewusst alles in rem: die Deckung von Burger und Kreuz bleibt dadurch auch
   erhalten, wenn jemand die Browser-Schriftgroesse veraendert. */
:root {
  --ff-header-padding-block: 0.5rem;
  --ff-header-logo-height: 6rem;
  --ff-nav-toggle-size: 1.5rem;
}

/* Das Logo bekommt seine Groesse ueber die HOEHE, nicht ueber die Breite: das
   SVG traegt width="100%" height="100%" und hat damit keine Eigengroesse (der
   Browser faellt auf 300x150 zurueck). Eine Breite in rem am Block loest sich
   dadurch nicht verlaesslich auf; die Hoehe schon, und genau sie braucht die
   Rechnung oben. Die Breite folgt dem viewBox-Verhaeltnis 1134:567 = 2:1. */
.wp-block-image.fritz-fritz-2026-logo img {
  height: var(--ff-header-logo-height);
  width: auto;
  /* Core setzt an .wp-block-image img ein height: auto mit derselben
     Spezifitaet – deshalb die Klasse des Bild-Blocks mit im Selektor.
     object-fit greift nur im Ausnahmefall: reicht die Zeilenbreite bei stark
     vergroesserter Schrift nicht mehr, klemmt max-width die Breite ab; ohne
     object-fit wuerde das Logo dann verzerrt. So bleibt die Kastenhoehe bei
     5rem und die Rechnung fuer das Kreuz stimmt weiter. */
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
}

/* Burger und Kreuz in rem statt der 24px, die Core setzt – sonst haengt die
   Rechnung unten an einem px-Wert und laeuft bei vergroesserter Schrift
   auseinander. */
.fritz-fritz-2026-navigation .wp-block-navigation__responsive-container-open svg,
.fritz-fritz-2026-navigation .wp-block-navigation__responsive-container-close svg {
  width: var(--ff-nav-toggle-size);
  height: var(--ff-nav-toggle-size);
}

/* Die Kopfzeile steht linksbuendig (Menue direkt neben dem Logo, Kundenwunsch
   2026-10-22). Unterhalb von Cores Umschaltpunkt (600px) zeigt der Block nur
   den Burger – der bleibt am rechten Rand, denn dort legt Core im Overlay das
   Kreuz hin. */
@media (max-width: 599px) {
  .wp-block-navigation.fritz-fritz-2026-navigation {
    margin-left: auto;
  }
}

/* Das Kreuz sitzt genau dort, wo der Burger war – beim Oeffnen und Schliessen
   springt damit nichts. Core legt es an die obere Kante des Overlays
   (position: absolute; top: 0), der Burger steht im Header mittig neben dem
   Logo; die Differenz holt das Padding des Overlays. */
.fritz-fritz-2026-navigation
  .wp-block-navigation__responsive-container.is-menu-open {
  padding-top: calc(
    var(--ff-header-padding-block) +
      (var(--ff-header-logo-height) - var(--ff-nav-toggle-size)) / 2
  );
}

/* Liste linksbuendig und ueber die volle Breite.
   Der Navigations-Block steht auf justifyContent "center", damit das
   Desktop-Menue mittig zwischen Logo und CTA sitzt. Core uebersetzt das in
   --navigation-layout-justification-setting und macht daraus align-items an
   Inhalt, Container und Item – im Overlay schrumpft dadurch jede Zeile auf
   ihre Textbreite und wird zentriert. align-items steht hier deshalb direkt,
   statt die Variable umzudefinieren: die <ul> setzt sie ueber
   .items-justified-center ein zweites Mal, eine Ueberschreibung am Container
   allein bliebe wirkungslos. */
.wp-block-navigation.fritz-fritz-2026-navigation
  .is-menu-open
  .wp-block-navigation__responsive-container-content,
.wp-block-navigation.fritz-fritz-2026-navigation
  .is-menu-open
  .wp-block-navigation__container,
.wp-block-navigation.fritz-fritz-2026-navigation
  .is-menu-open
  .wp-block-navigation-item,
.wp-block-navigation.fritz-fritz-2026-navigation
  .is-menu-open
  .wp-block-navigation__submenu-container {
  align-items: stretch;
}

/* Text buendig unter dem Logo: den seitlichen Abstand bringt das Overlay schon
   selbst mit (root padding), die 20px des Inhalts-Containers kaemen doppelt. */
.wp-block-navigation.fritz-fritz-2026-navigation
  .is-menu-open
  .wp-block-navigation__responsive-container-content {
  padding-left: 0;
  padding-right: 0;
}

/* Ganze Zeile klickbar. Die negativen Seitenraender ziehen nur die Tap-Flaeche
   nach aussen, der Text bleibt buendig; 0.75rem passen in die 1rem
   Seitenabstand des Overlays, es entsteht also kein Querscroll. */
.wp-block-navigation.fritz-fritz-2026-navigation
  .is-menu-open
  .wp-block-navigation-item__content.wp-block-navigation-item__content {
  display: block;
  padding: 0.55rem 0.75rem;
  margin-inline: -0.75rem;
  border-radius: 4px;
  line-height: 1.4;
}

/* Hauptpunkte fett, Unterpunkte in normaler Staerke */
.wp-block-navigation.fritz-fritz-2026-navigation
  .is-menu-open
  .wp-block-navigation__container
  > .wp-block-navigation-item
  > .wp-block-navigation-item__content.wp-block-navigation-item__content {
  font-weight: 700;
}

/* Unterpunkte einruecken. Core setzt hier padding-left UND -right auf 2rem,
   mit einem Selektor aus fuenf Klassen (:where zaehlt nicht mit) – das muss
   mit derselben Spezifitaet zurueckgenommen werden. */
.wp-block-navigation.fritz-fritz-2026-navigation
  .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content
  .has-child
  .wp-block-navigation__submenu-container {
  padding: 0 0 0 1rem;
  min-width: 0;
}
.wp-block-navigation.fritz-fritz-2026-navigation
  .is-menu-open
  .wp-block-navigation__submenu-container
  .wp-block-navigation-item__content.wp-block-navigation-item__content {
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
}

/* Trefferflaeche sichtbar machen. Die Textfarbe wechselt ueber die globale
   Navigations-Regel weiter auf Primary. */
.wp-block-navigation.fritz-fritz-2026-navigation
  .is-menu-open
  .wp-block-navigation-item__content.wp-block-navigation-item__content:hover,
.wp-block-navigation.fritz-fritz-2026-navigation
  .is-menu-open
  .wp-block-navigation-item__content.wp-block-navigation-item__content:focus-visible {
  background-color: var(--wp--preset--color--light-grey);
}

@media (max-width: 480px) {
  .wp-block-heading.fritz-fritz-2026-big-title {
    font-size: 28px !important;
  }
}

.wp-block-buttons
  a.wp-block-button__link.has-gradient-twelve-gradient-background:hover {
  background: linear-gradient(
    90deg,
    var(--wp--preset--color--primary) 65%,
    var(--wp--preset--color--secondary) 100%
  ) !important;
}

.wp-block-buttons
  a.wp-block-button__link.has-gradient-thirteen-gradient-background:hover {
  background: linear-gradient(
    90deg,
    var(--wp--preset--color--secondary) 65%,
    var(--wp--preset--color--primary) 100%
  ) !important;
}

/* ============================================================
   Fusszeile
   ============================================================ */

/* Die Fusszeile steht auf Primary: links die Marke (Logo und Claim), rechts
   sechs beschriftete Gruppen. Fuenf davon sind `core/navigation`-Bloecke mit
   eigenem Navigations-Post, die sechste der `core/social-links`-Block — siehe
   „Fusszeile" in AGENTS.md.

   Farben, Abstaende, Schriftgroessen, Spaltenzahl und Raster-Gap stehen als
   Block-Einstellungen im Part und nicht hier; die Beschriftung der Gruppen
   ist ein eigener Block Style. Uebrig bleiben vier Regeln, die ein
   Block-Attribut nicht ausdruecken kann; jede ist unten einzeln
   begruendet. */

/* (1) Das Logo. Der Bildblock kennt nur eine Breite, das SVG traegt aber
   width="100%" height="100%" und hat damit keine Eigengroesse — eine Breite
   loest sich dadurch nicht verlaesslich auf, die Hoehe schon. Derselbe Fall
   wie im Header, siehe --ff-header-logo-height. Die Breite folgt dem
   viewBox-Verhaeltnis 567:482.
   Das !important ist noetig, weil der Bildblock im Editor ein
   Inline-`height:auto` an das <img> schreibt (siehe den Gotcha dazu); ohne
   den Nachdruck laeuft das Logo dort auf Dateigroesse auf. */
:root {
  --ff-footer-logo-height: 7.5rem;
}

.wp-block-image.fritz-fritz-2026-footer-logo img {
  height: var(--ff-footer-logo-height) !important;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
}

/* (2) Die Spaltenzahl des Rasters haengt an der Fensterbreite, und genau das
   kann das Grid-Layout von Core nicht: `columnCount` gilt ueber alle Breiten,
   `minimumColumnWidth` rechnet mit auto-fill und trifft die 3 nur zufaellig.
   Die 3 Spalten stehen deshalb als Block-Einstellung im Part, hier steht die
   Ausnahme fuer schmale Fenster.
   Sechs Kacheln gehen nur in 3x2 und 2x3 glatt auf — jede andere Spaltenzahl
   laesst eine angebrochene Zeile stehen. Der Umschaltpunkt liegt bei 1000px
   und nicht beim 782px-Breakpoint von core/columns: direkt darueber steht die
   Markenspalte wieder daneben und laesst fuer drei Spalten zu wenig uebrig
   (nachgemessen bei 800px: 484px). Zwei Klassen (0,2,0) schlagen die
   Instanzklasse, mit der Core das Raster ausgibt (0,1,0). */
@media (max-width: 999px) {
  .fritz-fritz-2026-footer .ff-footer-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* (3) Die Beschriftung der Gruppen ist ein eigener Block Style
   `ff-footer-heading` an `core/heading` — angemeldet in
   `inc/core/block-style.php`, CSS im gleichnamigen Abschnitt von
   `assets/css/blocks.css`, wie bei jedem Block Style des Themes. Hier steht
   sie deshalb nicht. */

/* (4) Hover/Focus der Menue-Links. Ein Zustand ist kein Block-Attribut, und
   das !important ist Pflicht, nicht Geschmack: die globale Regel
   `nav.wp-block-navigation ul li a:hover` weiter oben setzt Primary mit
   !important — auf dem Bordeaux-Grund unsichtbar —, und dagegen kommt keine
   Spezifitaet an. */
nav.fritz-fritz-2026-footer-nav ul li a:hover,
nav.fritz-fritz-2026-footer-nav ul li a:focus-visible {
  color: var(--wp--preset--color--secondary) !important;
  text-decoration: underline;
}

/* (5) Hover/Focus des Logos — ebenfalls ein Zustand. */
.fritz-fritz-2026-footer .fritz-fritz-2026-footer-logo a:hover,
.fritz-fritz-2026-footer .fritz-fritz-2026-footer-logo a:focus-visible {
  opacity: 0.85;
}
