/* Artikelkatalog Kikripp – eigener Namensraum, damit das Theme nicht dazwischenfunkt. */
.kikripp {
  --rot: #C8102E;
  --schwarz: #1A1A1A;
  --papier: #F7F5F2;
  --grau: #6B7280;
  --linie: #DCDCDC;
  --grund: #ffffff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: var(--schwarz);
  background: var(--grund);
  box-sizing: border-box;
}
.kikripp *, .kikripp *::before, .kikripp *::after { box-sizing: border-box; }
.kikripp [hidden] { display: none !important; }
.kikripp img { max-width: 100%; }

.kikripp button {
  background: var(--rot); color: #fff; border: 0; border-radius: 3px;
  padding: 11px 20px; font: inherit; font-weight: 600; font-size: 14.5px; cursor: pointer;
}
.kikripp button:hover { background: #a50d26; }
.kikripp button:disabled { background: #b8bcc2; cursor: default; }
.kikripp button:focus-visible, .kikripp input:focus-visible, .kikripp select:focus-visible {
  outline: 2px solid var(--rot); outline-offset: 2px;
}
.kikripp button.sek { background: transparent; color: #fff; border: 1px solid #4a4a4a; }
.kikripp button.sek:hover { background: #2a2a2a; }

/* Sperre */
.kikripp .sperre { background: var(--schwarz); padding: 48px 24px; text-align: center; }
.kikripp .sperre .box { max-width: 340px; margin: 0 auto; }
.kikripp .sperre img { width: 92px; margin-bottom: 6px; }
.kikripp .sperre .wort { font-weight: 800; letter-spacing: .12em; font-size: 30px; color: #fff; margin-bottom: 26px; }
.kikripp .sperre h2 { font-size: 15px; font-weight: 600; color: #fff; margin: 0 0 6px; }
.kikripp .sperre p { font-size: 13.5px; color: #9aa0a6; margin: 0 0 20px; }
.kikripp .sperre input {
  width: 100%; padding: 12px 14px; border: 1px solid #3a3a3a; background: #242424;
  color: #fff; border-radius: 3px; font: inherit; font-size: 15px; text-align: center;
}
.kikripp .sperre button { width: 100%; margin-top: 10px; }
.kikripp .sperre .fehler { color: #ff8a95; font-size: 13.5px; margin: 12px 0 0; min-height: 19px; }

/* Kopf und Filter */
.kikripp .band { background: var(--schwarz); color: #fff; font-size: 12.5px; padding: 8px 14px; text-align: center; }
.kikripp .kopf { border-bottom: 3px solid var(--rot); padding: 16px 0 14px; }
.kikripp .marke { display: flex; align-items: center; gap: 11px; }
.kikripp .marke img { width: 46px; }
.kikripp .marke .wort { font-weight: 800; letter-spacing: .11em; font-size: 22px; }
.kikripp .kopf h2 { font-size: 20px; font-weight: 700; margin: 4px 0 4px; }
.kikripp .kopf p { margin: 0; color: var(--grau); font-size: 13.5px; }

.kikripp .filter { border-bottom: 1px solid var(--linie); padding: 13px 0 11px; }
.kikripp .zeile { display: flex; gap: 8px; flex-wrap: wrap; }
.kikripp input[type=search], .kikripp select {
  padding: 9px 11px; border: 1px solid var(--linie); border-radius: 3px;
  font: inherit; font-size: 14px; background: var(--grund); color: var(--schwarz);
}
.kikripp input[type=search] { flex: 2 1 230px; }
.kikripp select { flex: 1 1 150px; }
.kikripp .chk { display: flex; align-items: center; gap: 7px; font-size: 14px; color: var(--grau); white-space: nowrap; }
.kikripp .chk input { width: auto; accent-color: var(--rot); }
.kikripp .zaehler { font-size: 13px; color: var(--grau); padding-top: 9px; font-variant-numeric: tabular-nums; }
.kikripp .zaehler b { color: var(--schwarz); }

/* Karten */
.kikripp .raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(248px, 1fr)); gap: 16px; padding: 20px 0 40px; }
.kikripp .karte { background: var(--grund); border: 1px solid var(--linie); border-radius: 3px; overflow: hidden; display: flex; flex-direction: column; }
.kikripp .karte.weg .bild, .kikripp .karte.weg .txt > :not(.interesse) { opacity: .55; }
/* 1.11.0: Interesse an reservierten Artikeln – bleibt voll sichtbar */
.kikripp .interesse { margin-top: 11px; }
.kikripp .interesse a { display: block; text-align: center; padding: 9px 6px; border: 1px solid var(--rot, #C8102E);
  border-radius: 3px; color: var(--rot, #C8102E); text-decoration: none; font-weight: 600; }
.kikripp .interesse a:hover { background: var(--rot, #C8102E); color: #fff; }
.kikripp .interesse small { display: block; margin-top: 5px; font-size: 12px; color: #666; text-align: center; }
.kikripp .bild { position: relative; height: 186px; background: var(--papier); overflow: hidden; }
/* contain statt cover: Hochformatfotos (Regale, Schraenke) werden ganz gezeigt statt auf
   einen Querstreifen beschnitten. Der Rand bleibt papierfarben. */
.kikripp .bild img { width: 100%; height: 186px; object-fit: contain; display: block; }
.kikripp .kein-bild { height: 186px; display: flex; align-items: center; justify-content: center; color: #b9bcc2; font-size: 13px; }
.kikripp .nr { position: absolute; left: 0; top: 0; background: var(--schwarz); color: #fff; font-size: 11px; font-weight: 600; padding: 3px 8px; letter-spacing: .04em; }
.kikripp .badge { position: absolute; top: 8px; right: 8px; font-size: 10.5px; font-weight: 700; padding: 3px 9px; border-radius: 2px; letter-spacing: .03em; text-transform: uppercase; }
.kikripp .badge.frei { background: rgba(255,255,255,.92); color: var(--schwarz); border: 1px solid var(--linie); }
.kikripp .badge.res { background: var(--rot); color: #fff; }
.kikripp .meta span.bnd { background: var(--rot); color: #fff; font-weight: 700; }
.kikripp .meta span.bes { background: #fff; border: 1px solid var(--schwarz); color: var(--schwarz); font-weight: 600; }
/* So laeuft es ab */
.kikripp .ablauf { border: 1px solid var(--linie); border-left: 3px solid var(--rot); background: var(--papier); padding: 10px 14px; margin: 14px 0 4px; font-size: 13.5px; }
.kikripp .ablauf summary { font-weight: 700; cursor: pointer; }
.kikripp .ablauf ul { margin: 8px 0 2px; padding-left: 18px; }
.kikripp .ablauf li { margin: 3px 0; line-height: 1.45; }
.kikripp .leiste .mindest { font-size: 12.5px; color: #f3b5bf; }
.kikripp .neuschild { position: absolute; right: 0; bottom: 0; background: var(--rot); color: #fff; font-size: 12px; font-weight: 800; padding: 4px 10px; letter-spacing: .08em; text-transform: uppercase; }
.kikripp .markenschild { position: absolute; left: 0; bottom: 0; background: var(--rot); color: #fff; font-size: 10px; font-weight: 700; padding: 3px 8px; letter-spacing: .04em; text-transform: uppercase; }
.kikripp .txt { padding: 12px 14px 14px; display: flex; flex-direction: column; flex: 1; }
.kikripp .txt h3 { margin: 0 0 4px; font-size: 15px; font-weight: 600; line-height: 1.3; }
.kikripp .txt .b { font-size: 13px; color: var(--grau); margin: 0 0 10px; line-height: 1.4; }
/* Mengenhinweis: was dazugehoert, was nicht, wie sich die Stueckzahl verteilt. */
.kikripp .txt .hw { font-size: 12.5px; color: var(--schwarz); margin: 0 0 10px; line-height: 1.45;
                    border-left: 2px solid var(--linie); padding-left: 9px; }
.kikripp .meta { font-size: 12px; color: var(--grau); display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 11px; }
.kikripp .meta span { background: var(--papier); padding: 3px 8px; border-radius: 2px; }
.kikripp .meta span.knapp { background: #fde8ea; color: #8d1220; }
.kikripp .preis { margin-top: auto; border-top: 1px solid var(--linie); padding-top: 10px; }
.kikripp .preis b { font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; display: block; }
.kikripp .preis small { display: block; color: var(--grau); font-size: 12px; margin-top: 2px; }
.kikripp .vhb { font-size: 11px; font-weight: 700; color: var(--rot); border: 1px solid var(--rot); padding: 1px 5px; border-radius: 2px; margin-left: 6px; vertical-align: middle; }
.kikripp .mengen { display: flex; gap: 7px; align-items: center; margin-top: 11px; }
.kikripp .mengen input { width: 86px; text-align: center; padding: 9px 6px; border: 1px solid var(--linie); border-radius: 3px; font: inherit; }
.kikripp .mengen button { flex: 1; }

/* Merkzettel: oben unter dem Kopf und beim Scrollen festgehalten, damit die Auswahl
   immer im Blick ist (Wunsch 01.10.2026). Die WordPress-Werkzeugleiste angemeldeter
   Nutzer wird ueber ihre CSS-Variable beruecksichtigt. */
.kikripp .leiste { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); background: var(--schwarz); color: #fff; padding: 12px 14px; margin-top: 10px; z-index: 5; }
.kikripp .leiste .inner { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; max-width: 1200px; margin: 0 auto; }
.kikripp .leiste .sum { flex: 1; font-size: 14px; color: #c9ccd1; }
.kikripp .leiste .sum b { font-size: 18px; color: #fff; font-weight: 700; }
/* Die leere Leiste traegt die Klasse "leer" - dieselbe wie der Hinweis "keine Treffer"
   im Raster, der 60 px Innenabstand hat. Ohne diese Zeile wurde die Leiste oben zum
   schwarzen Block. */
.kikripp .leiste.leer { padding: 12px 14px; text-align: left; color: #fff; grid-column: auto; }

/* Formular */
.kikripp .dlg { border: 1px solid var(--linie); border-radius: 4px; padding: 22px; margin: 18px 0 30px; background: var(--grund); }
.kikripp .dlg h3 { margin: 0 0 4px; font-size: 19px; font-weight: 700; }
.kikripp .dlg p.s { margin: 0 0 18px; color: var(--grau); font-size: 13.5px; }
.kikripp .feld { margin-bottom: 12px; }
.kikripp .feld label { display: block; font-size: 12.5px; font-weight: 600; margin-bottom: 5px; }
.kikripp .feld input, .kikripp .feld textarea, .kikripp .feld select { width: 100%; padding: 10px 12px; border: 1px solid var(--linie); border-radius: 3px; font: inherit; font-size: 14px; }
.kikripp .feld.zwei, .kikripp .feld .zwei { display: flex; gap: 10px; }
.kikripp .feld.zwei > div, .kikripp .feld .zwei > div { flex: 1; min-width: 0; }
.kikripp .feld.zwei > div:first-child { flex: 0 0 110px; }
.kikripp .feld .zwei { margin-top: 8px; }
.kikripp .feld label.chk2 { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; font-size: 13.5px; margin: 8px 0 0; }
.kikripp .feld label.chk2 input { width: auto; margin-top: 3px; accent-color: var(--rot); }
/* Feld gegen Formular-Roboter: fuer Menschen unsichtbar, aber nicht display:none,
   das erkennen manche Roboter und lassen es dann aus. */
.kikripp .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kikripp .pos { background: var(--papier); border-left: 3px solid var(--rot); padding: 12px 14px; font-size: 13.5px; margin-bottom: 16px; }
.kikripp .pos div { display: flex; justify-content: space-between; padding: 2px 0; gap: 12px; }
.kikripp .datenschutz { font-size: 12px; color: var(--grau); margin: 10px 0 14px; }
.kikripp .meldung { padding: 12px 14px; border-radius: 3px; margin: 12px 0; font-size: 14px; }
.kikripp .meldung.gut { background: #e7f4e9; color: #1d5c2a; border-left: 3px solid #2e7d3a; }
.kikripp .meldung.schlecht { background: #fde8ea; color: #8d1220; border-left: 3px solid var(--rot); }
.kikripp .leer { grid-column: 1/-1; text-align: center; color: var(--grau); padding: 60px 0; }
.kikripp .laedt { padding: 60px 0; text-align: center; color: var(--grau); }
/* Beleg in der Bestätigung – wird abfotografiert, muss also ruhig lesbar sein */
.kikripp .beleg { background: #fff; border: 1px solid #c8e0cd; border-radius: 3px;
                  margin: 12px 0 0; padding: 12px 14px; font-size: 13.5px; color: var(--schwarz); }
.kikripp .beleg .zeile { display: flex; justify-content: space-between; gap: 14px;
                         padding: 4px 0; border-bottom: 1px solid #eef3ef; }
.kikripp .beleg .zeile:last-child { border-bottom: 0; }
.kikripp .beleg .zeile span { color: var(--grau); }
.kikripp .beleg .zeile.summe { border-top: 1px solid #c8e0cd; margin-top: 4px; padding-top: 7px; }
.kikripp .beleg .zeile.summe span, .kikripp .beleg .zeile.summe b { font-weight: 700; color: var(--schwarz); }
.kikripp .feld small.hint { display: block; margin-top: 4px; font-size: 11.5px; color: var(--grau); }

/* Rechtliche Hinweise */
.kikripp .recht { border-top: 1px solid var(--linie); margin: 26px 0 30px; padding-top: 16px; font-size: 12.5px; line-height: 1.65; color: var(--grau); }
.kikripp .recht h4 { margin: 0 0 6px; font-size: 13px; font-weight: 700; color: var(--schwarz); text-transform: uppercase; letter-spacing: .06em; }
.kikripp .recht p { margin: 0 0 6px; }
/* Telefon: Auf 375 px fuellten Kopf, Filterzeile und Leiste zusammen den ganzen
   Bildschirm - von der ersten Artikelkarte blieb ein Streifen. Deshalb hier die
   Filterzeile auf drei statt fuenf Reihen und eine Leiste, die erst Knoepfe zeigt,
   wenn wirklich etwas vorgemerkt ist. */
@media (max-width: 560px) {
  .kikripp .leiste .sum { flex: 1 1 100%; }
  /* Leiste steht oben fest: beide Knoepfe nebeneinander, damit sie nicht ein Viertel
     des Bildschirms belegt */
  .kikripp .leiste { padding: 10px 12px; }
  .kikripp .leiste .inner { gap: 8px; }
  .kikripp .leiste button { flex: 1 1 0; padding-left: 8px; padding-right: 8px; font-size: 13.5px; }
  .kikripp .leiste.leer { padding: 10px 14px; }
  .kikripp .leiste.leer button { display: none; }
  .kikripp .leiste.leer .sum { font-size: 13px; }
  .kikripp input[type=search] { flex: 1 1 100%; }
  .kikripp select { flex: 1 1 calc(50% - 4px); min-width: 0; }
  .kikripp .chk { flex: 1 1 calc(50% - 4px); font-size: 13px; white-space: normal; }
  .kikripp .filter { padding: 10px 0 9px; }
  .kikripp .zaehler { padding-top: 7px; }
}
@media (prefers-reduced-motion: reduce) { .kikripp * { animation: none !important; transition: none !important; } }

/* Fußzeile der Website auf der Katalogseite ausblenden (Einstellung „Fußzeile ausblenden“).
   Mehrere Schreibweisen, weil Themes die Fußzeile unterschiedlich auszeichnen: Block-Themes
   als Template-Teil, klassische Themes als #colophon oder .site-footer. Der Katalog selbst
   enthält kein <footer>-Element, er ist davon nicht betroffen. */
body.kikripp-ohne-fusszeile footer.wp-block-template-part,
body.kikripp-ohne-fusszeile .wp-site-blocks > footer,
body.kikripp-ohne-fusszeile #colophon,
body.kikripp-ohne-fusszeile .site-footer,
body.kikripp-ohne-fusszeile #site-footer,
body.kikripp-ohne-fusszeile #footer,
body.kikripp-ohne-fusszeile > footer { display: none !important; }

/* ---- Fassung 1.2.2 (Wunsch 06.10.2026) ---------------------------------------------- */
/* Ankündigung: vorher klein und schwarz, wurde übersehen */
.kikripp .band { background: var(--rot); color: #fff; font-weight: 700; font-size: 15px; padding: 12px 16px; line-height: 1.4; }
.kikripp .ablauf p { margin: 8px 0 2px; line-height: 1.55; }

/* Die Leiste: Merkliste aufklappen */
.kikripp .leiste #k-merk { cursor: pointer; }
.kikripp .leiste .liste-knopf { text-decoration: underline; font-size: 13px; color: #fff; white-space: nowrap; }
.kikripp .merkliste { max-width: 1200px; margin: 10px auto 0; background: #262626; border-radius: 3px; padding: 6px 10px; max-height: 50vh; overflow-y: auto; }
.kikripp .merkliste .zeile { display: flex; gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px solid #3a3a3a; font-size: 13px; }
.kikripp .merkliste .zeile:last-child { border-bottom: 0; }
.kikripp .merkliste .zeile span { flex: 1; color: #ddd; min-width: 0; }
.kikripp .merkliste .zeile b { color: #fff; white-space: nowrap; }
.kikripp .merkliste input { width: 64px; padding: 6px; border: 1px solid #555; border-radius: 3px; background: #fff; color: #1a1a1a; text-align: center; }
.kikripp .merkliste .weg { background: transparent; border: 1px solid #555; color: #fff; width: 32px; height: 32px; padding: 0; font-size: 18px; line-height: 1; }
.kikripp .merkliste .weg:hover { background: #3a3a3a; }

/* Vorgemerkte Artikel bleiben auf der Karte erkennbar */
.kikripp .mengen button.drin { background: var(--schwarz); }
.kikripp .mengen button.drin:hover { background: #333; }
.kikripp .bild img[data-gross] { cursor: zoom-in; }
.kikripp .hint-bes { font-size: 12.5px; color: var(--grau); margin: -4px 0 12px; }

/* Formular und Bestätigung als Fenster über dem Katalog */
html.kik-offen { overflow: hidden; }
.kikripp .kik-fenster { position: fixed; inset: 0; background: rgba(26, 26, 26, .55); z-index: 100000; overflow-y: auto; padding: 32px 16px; }
.kikripp .kik-fenster-box { position: relative; max-width: 720px; margin: 0 auto; background: #fff; border-radius: 4px; box-shadow: 0 12px 40px rgba(0,0,0,.25); }
.kikripp .kik-fenster .dlg { margin: 0; border: 0; }
.kikripp .kik-fenster .meldung { margin: 0; padding: 22px; }
.kikripp .kik-zu { position: absolute; top: 6px; right: 6px; width: 40px; height: 40px; padding: 0; background: transparent; color: var(--schwarz); font-size: 28px; line-height: 1; z-index: 2; }
.kikripp .kik-zu:hover { background: var(--papier); }
.kikripp .knoepfe-beleg { margin: 14px 0 0; display: flex; gap: 8px; flex-wrap: wrap; }

/* Foto groß */
.kikripp .kik-gross { position: fixed; inset: 0; background: rgba(0, 0, 0, .86); z-index: 100001; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 16px; cursor: zoom-out; }
.kikripp .kik-gross img { max-width: 94vw; max-height: 84vh; object-fit: contain; }
.kikripp .kik-gross span { color: #fff; font-size: 13px; text-align: center; }

/* Nach oben */
.kikripp .nach-oben { position: fixed; right: 16px; bottom: 16px; width: 46px; height: 46px; padding: 0; border-radius: 50%; background: var(--schwarz); color: #fff; font-size: 22px; z-index: 50; box-shadow: 0 4px 14px rgba(0,0,0,.25); }

/* Das hidden-Attribut muss gegen die display-Angaben oben gewinnen */
.kikripp .kik-fenster[hidden], .kikripp .kik-gross[hidden], .kikripp .nach-oben[hidden], .kikripp .merkliste[hidden] { display: none !important; }

@media (max-width: 560px) {
  .kikripp .kik-fenster { padding: 0; }
  .kikripp .kik-fenster-box { border-radius: 0; min-height: 100%; }
  .kikripp .kik-fenster .dlg { padding: 18px 16px; }
}

/* Bestätigung drucken: nur das Fenster aufs Papier */
@media print {
  html.kik-offen body * { visibility: hidden; }
  html.kik-offen .kik-fenster, html.kik-offen .kik-fenster * { visibility: visible; }
  html.kik-offen .kik-fenster { position: absolute; inset: 0; background: #fff; overflow: visible; padding: 0; }
  html.kik-offen .kik-fenster-box { box-shadow: none; }
  .kikripp .kik-zu, .kikripp .knoepfe-beleg { display: none !important; }
}

/* 1.2.3: Menü und Social-Media-Symbole im Kopf der Website auf der Katalogseite ausblenden.
   Block-Themes (Navigation-/Social-Icons-Block) und gängige klassische Themes. Das Logo bleibt. */
body.kikripp-ohne-menue header .wp-block-navigation,
body.kikripp-ohne-menue header .wp-block-social-links,
body.kikripp-ohne-menue .wp-site-blocks > header .wp-block-navigation,
body.kikripp-ohne-menue .wp-site-blocks > header .wp-block-social-links,
body.kikripp-ohne-menue #site-navigation,
body.kikripp-ohne-menue .main-navigation,
body.kikripp-ohne-menue .site-header .social-navigation,
body.kikripp-ohne-menue .site-header .social-links,
body.kikripp-ohne-menue .header-social,
/* 1.2.4/1.2.5: Menüknopf fürs Telefon und alle Verweise auf Facebook und Instagram, dazu gängige
   Themes. Nicht pauschal `header nav` – im Theme von kikripp.de steckt das Logo in der <nav>.
   kikripp.de (Theme „kikripp“, Bootstrap): Menü #mainmenu, Knopf .navbar-toggler,
   Standort-Umschalter .daycare-switch. */
body.kikripp-ohne-menue header #mainmenu,
body.kikripp-ohne-menue header .navbar-collapse,
body.kikripp-ohne-menue header .navbar-toggler,
body.kikripp-ohne-menue .daycare-switch,
body.kikripp-ohne-menue header [class*="menu-toggle"],
body.kikripp-ohne-menue header [class*="nav-toggle"],
body.kikripp-ohne-menue header [class*="hamburger"],
body.kikripp-ohne-menue header [class*="social"],
body.kikripp-ohne-menue header a[href*="facebook.com"],
body.kikripp-ohne-menue header a[href*="instagram.com"],
body.kikripp-ohne-menue .elementor-location-header .elementor-widget-nav-menu,
body.kikripp-ohne-menue .elementor-location-header .elementor-widget-social-icons,
body.kikripp-ohne-menue #masthead .main-navigation,
body.kikripp-ohne-menue #main-header #et-top-navigation,
body.kikripp-ohne-menue .ast-builder-menu,
body.kikripp-ohne-menue .ast-header-social-wrap { display: none !important; }

/* 1.10.1: Geschenke-Hinweis in der Leiste und an der Karte */
.kikripp .geschenke-info { font-size: 13px; opacity: .9; }
.kikripp .geschenke-info a { color: inherit; text-decoration: underline; }
.kikripp .preis.geschenk small.kita { display: block; margin-top: 3px; }

/* 1.14.0: Block-Themes (z. B. Twenty Twenty-Five) halten Inhalte auf ~650 px. Der Katalog darf breiter sein. */
.is-layout-constrained > .kikripp,
.wp-block-post-content > .kikripp,
.entry-content > .kikripp {
  max-width: min(1200px, calc(100vw - 32px)) !important;
  width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
}
