/* Omanda Produktwelt – 1:1 nach AuW-Vorlage seiten.pdf
   Alle Werte in Design-Pixeln der Vorlage (Artboard 1440, Inhaltsbreite 1140). */
.om-pw {
  --om-navy: #25539c;
  --om-navy-deep: #1c4179;
  --om-cyan: #6ec1e3;
  --om-cyan-deep: #4ea9d1;
  --om-cyan-soft: #dcf0f8;
  --om-green: #6ec16b;
  --om-green-deep: #57a955;
  --om-gray: #f1f3f4;
  --om-line: #d9d9d9;
  --om-text: #25539c;
  --om-white: #ffffff;
  --om-col: 560px;
  color: var(--om-text);
  font-family: Signika, "Segoe UI", sans-serif;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 0 80px;
}

.om-pw * { box-sizing: border-box; }
.om-pw a { color: inherit; }
.om-pw h1,
.om-pw h2,
.om-pw h3 {
  text-transform: none;
  letter-spacing: 0;
}

/* ---------- Übersicht ---------- */
body:has(.om-pw--overview) { overflow-x: hidden; }

.om-pw--overview { padding-top: 0; }

/* Kachelmosaik randlos über die volle Fensterbreite (Vorlage: 4 x 2 à 360 x 335) */
.om-pw__mosaic {
  position: relative;
  left: 50%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  width: 100vw;
  margin: 0 -50vw 94px;
  padding: 0;
}

.om-pw__tile {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 360 / 335;
  object-fit: cover;
}

.om-pw__intro {
  max-width: 1140px;
  margin: 0 auto 50px;
  padding: 0;
  text-align: center;
}

.om-pw__h1 {
  margin: 0 0 14px;
  color: var(--om-navy);
  font-size: 40px;
  font-weight: 600;
  line-height: 48px;
  text-align: center;
}

.om-pw__lead {
  margin: 0;
  color: var(--om-navy);
  font-size: 23.5px;
  font-weight: 600;
  line-height: 36px;
  text-align: center;
}

.om-pw__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  margin: 0 0 142px;
  padding: 0;
}

.om-pw__chip {
  display: inline-flex;
  align-items: center;
  height: 50px;
  padding: 0 24px;
  border: 0;
  border-radius: 999px;
  background: var(--om-cyan);
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  text-decoration: none;
  transition: background .2s;
}

.om-pw__chip:hover,
.om-pw__chip.is-active { background: var(--om-cyan-deep); }

.om-pw__line {
  margin: 0 0 132px;
  padding: 0;
  /* Sticky-Header ist auf Desktop 150px hoch (elementor-sticky--effects),
     120px waren zu wenig – die H2 rutschte teilweise dahinter. Etwas Luft
     (20px) dazu, damit die Überschrift nach dem Sprung frei sichtbar ist. */
  scroll-margin-top: 170px;
}

.om-pw__line-head {
  margin: 0 0 98px;
  padding: 0;
  text-align: center;
}

.om-pw__line h2 {
  margin: 0 0 16px;
  color: var(--om-navy);
  font-size: 40px;
  font-weight: 600;
  line-height: 48px;
  text-align: center;
}

.om-pw__line-text {
  /* !important nötig: Elementor erzwingt max-width:100% auf Widgets in
     Containern über ".elementor.elementor .e-con > .elementor-widget"
     (4 Klassen Spezifität) – regulär nicht zu überschreiben. */
  max-width: 1140px !important;
  margin: 0 auto;
  color: var(--om-navy);
  font-size: 23.5px;
  font-weight: 600;
  line-height: 36px;
  text-align: center;
}

/* Zweiter Absatz steht in der Vorlage eine Leerzeile tiefer */
.om-pw__line-text + .om-pw__line-text { margin-top: 36px; }

/* ---------- Karten (Vorlage: 366 x 579, Abstand 20) ----------
   max-width fixiert die Kartenbreite auf die Vorlage (1140px / 3 Spalten
   = 366px). Ohne das erbt das Grid die volle (ungebremste) Elementor-
   Containerbreite und die Karten werden bei Mehrfach-Zeilen zu breit. */
.om-pw__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 21px;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0;
}

.om-pw__grid.is-few {
  grid-template-columns: repeat(auto-fit, minmax(0, 366px));
}

.om-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  isolation: isolate;
  min-height: 579px;
  padding: 36px 18px 28px;
  border: 0;
  border-radius: 0;
  background: var(--om-gray);
  box-shadow: none;
  text-align: center;
  text-decoration: none;
  transition: background .2s;
}

.om-card:hover { background: #e7eaec; }

/* Grüner Störer auf bestellbaren Produkten (Vorlage: 151 x 50, 26 vom rechten, 28 vom oberen Rand) */
.om-card__order {
  position: absolute;
  top: 28px;
  right: 26px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  height: 50px;
  padding: 0 24px;
  border-radius: 999px;
  background: var(--om-green);
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
}

.om-card:hover .om-card__order { background: var(--om-green-deep); }

.om-card__visual {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 293px;
  margin: 0 0 36px;
  padding: 0;
}

.om-card__visual img {
  max-width: 100%;
  max-height: 293px;
  width: auto;
  height: auto;
}

.om-card__name {
  margin: 0;
  color: var(--om-navy);
  font-size: 24px;
  font-weight: 600;
  line-height: 30px;
}

/* Kein fester Abstand nach unten – der Pfeil hängt per auto-Margin an der Unterkante,
   dadurch bleiben alle Karten einer Reihe auf Vorlagenhöhe (579) und die Pfeile auf einer Linie. */
.om-card__slogan {
  margin: 0;
  color: var(--om-cyan);
  font-size: 24px;
  font-weight: 600;
  line-height: 30px;
}

/* War früher nur ein Pfeil-Icon ohne Beschriftung – nicht erkennbar, dass die
   ganze Karte anklickbar ist. Jetzt mit Label "Zum Produkt", darum feste
   Breite (104px) gegen automatische Breite + Innenabstand getauscht. */
.om-card__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: auto;
  height: 50px;
  padding: 0 24px;
  margin: auto 0 0;
  border-radius: 999px;
  background: var(--om-cyan);
  color: #fff;
}

.om-card__arrow-label {
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  color: #fff;
  white-space: nowrap;
}

.om-card:hover .om-card__arrow { background: var(--om-cyan-deep); }

/* ---------- Detailseite ---------- */
body:has(.om-pw.om-detail) { overflow-x: hidden; }

.om-pw.om-detail { padding-top: 0; }

.om-hero {
  position: relative;
  display: grid;
  grid-template-columns: 576px minmax(0, 1fr);
  align-items: center;
  min-height: 662px;
  max-width: 1140px;
  margin: 0 auto 51px;
  padding: 0;
  background: var(--om-gray);
  box-shadow: 0 0 0 100vmax var(--om-gray);
  clip-path: inset(0 -100vmax);
}

.om-hero__nav {
  position: absolute;
  top: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 28px;
  margin-top: -14px;
  color: var(--om-navy);
  text-decoration: none;
  transition: color .2s;
}

.om-hero__nav--prev { left: 0; }
.om-hero__nav--next { right: 0; }
.om-hero__nav:hover { color: var(--om-cyan); }
.om-arrow--prev { transform: scaleX(-1); }

.om-hero__visual {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0 0 102px;
}

.om-hero__media {
  position: relative;
  display: inline-flex;
  align-items: flex-end;
  justify-content: center;
  /* Elementor zwingt e-con-Containern per Element-ID-Regel width:100% auf –
     das würde die Box breiter machen als das enthaltene Bild (Produktfotos
     haben je nach Format unterschiedlich viel Weissraum links/rechts). Der
     Badge unten hängt sich per left:%-Wert an DIESE Box, darum muss sie so
     schmal wie das tatsächlich gerenderte Bild sein – nicht wie die Spalte. */
  width: fit-content !important;
  max-width: 100%;
  padding: 0;
}

.om-hero__media img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 553px;
  cursor: zoom-in;
}

/* Störer überlappt das Produktfoto um 1/5: die rechte Kante der Pille wird
   auf 27% der Bildbreite verankert (statt die Pille auf der Bildkante zu
   zentrieren). translateX(-100%) zieht die Pille komplett vor diese Kante,
   sodass rechts immer exakt 1/5 der Pille auf dem Bild liegt – unabhängig
   von Pillengrösse (Breakpoints) und vom Weissraum, den einzelne PNGs
   (z. B. die schmal freigestellten Trinkpäckchen) links mitbringen. */
.om-badge {
  position: absolute;
  left: 27%;
  top: 70.5%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 135px;
  height: 135px;
  transform: translate(-100%, -50%);
  border-radius: 50%;
  background: var(--om-cyan);
  color: #fff;
  font-size: 24px;
  font-weight: 600;
  line-height: 27px;
  text-align: center;
}

.om-hero__copy {
  padding: 28px 104px 0 0;
}

.om-hero__title {
  margin: 0;
  color: var(--om-navy);
  font-size: 40px;
  font-weight: 600;
  line-height: 48px;
}

.om-hero__slogan {
  margin: 0;
  color: var(--om-cyan);
  font-size: 40px;
  font-weight: 600;
  line-height: 48px;
}

.om-usps {
  display: grid;
  gap: 20px;
  margin-top: 44px;
  padding: 0;
}

.om-usp {
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr);
  gap: 17px;
  align-items: center;
  padding: 0;
}

/* Icon-Zeichnung füllt ca. 74 % der quadratischen Zeichenfläche – Box 60 px ergibt
   die in der Vorlage gemessene Glyphenbreite von ~44–57 px. */
.om-usp img {
  width: 60px;
  height: 60px;
  object-fit: contain;
}

.om-usp p {
  /* Farbe kommt aus dem text_color-Setting des Widgets, s. o. – diese
     Alt-Regel griff sonst direkt aufs <p> und blockierte die Bearbeitung. */
  margin: 0;
  font-size: 23px;
  font-weight: 600;
  line-height: 30px;
}

/* Textspalte 560 px, zentriert */
.om-detail__body {
  max-width: var(--om-col);
  margin: 0 auto;
  padding: 0;
}

.om-hero__intro {
  margin: 0;
  color: var(--om-navy);
  font-size: 23px;
  font-weight: 600;
  line-height: 30px;
}

.om-reimb {
  margin: 30px 0 0;
  color: var(--om-cyan);
  font-size: 23px;
  font-weight: 600;
  line-height: 30px;
}

.om-note,
.om-trade {
  margin: 30px 0 0;
  color: var(--om-navy);
  font-size: 23px;
  font-weight: 600;
  line-height: 30px;
}

/* Akkordeon: 3 Zeilen à 50 px, Linien #d9d9d9 */
.om-acc {
  max-width: var(--om-col);
  margin: 67px auto 0;
  border-top: 1px solid var(--om-line);
}

.om-acc__item {
  background: transparent;
  border-bottom: 1px solid var(--om-line);
  transition: background .15s;
}

.om-acc__item:hover,
.om-acc__item.is-open { background: var(--om-gray); }

.om-acc__btn {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 13px;
  width: 100%;
  height: 49px;
  padding: 0 24px;
  border: 0;
  background: none;
  color: #000;
  font: inherit;
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
  text-align: left;
  cursor: pointer;
}

/* Hello-Theme setzt button:hover/:focus auf #c36 – hier neutralisieren */
.om-acc__btn:hover,
.om-acc__btn:focus,
.om-acc__btn:focus-visible,
.om-acc__btn:active {
  background: none;
  color: #000;
  box-shadow: none;
}

.om-acc__btn:focus-visible {
  outline: 2px solid var(--om-cyan);
  outline-offset: -2px;
}

.om-acc__btn::after {
  content: "";
  flex: 0 0 auto;
  width: 14px;
  height: 8px;
  margin-top: 3px;
  background: no-repeat center/14px 8px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 8'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
  transition: transform .2s;
}

.om-acc__item.is-open .om-acc__btn::after {
  margin-top: -3px;
  transform: rotate(180deg);
}

.om-acc__panel {
  display: none;
  padding: 0 24px 20px;
  color: var(--om-navy);
  font-size: 18px;
  line-height: 28px;
}

.om-acc__item.is-open .om-acc__panel { display: block; }

.om-acc__panel ul {
  margin: 0;
  padding-left: 1.15em;
}

.om-nahr {
  width: 100%;
  border-collapse: collapse;
  font-size: 18px;
}

/* Theme streift Tabellen (table tbody > tr:nth-child(2n+1) > td) – hier überschreiben */
.om-nahr tbody > tr:nth-child(n) > th,
.om-nahr tbody > tr:nth-child(n) > td {
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid var(--om-line);
  background: transparent;
  text-align: left;
  vertical-align: top;
}

.om-nahr th {
  padding-right: 24px;
  color: var(--om-navy);
  font-weight: 400;
}

.om-nahr td {
  color: var(--om-navy);
  font-weight: 600;
  white-space: nowrap;
}

.om-nahr tr.is-sub th { padding-left: 16px; }

.om-nahr__note {
  margin: 12px 0 0;
  color: var(--om-navy);
  font-size: 16px;
}

/* Icon-Zeilen */
.om-actions {
  max-width: var(--om-col);
  margin: 76px auto 0;
  padding: 0;
}

.om-pdf {
  display: flex;
  align-items: center;
  gap: 23px;
  padding: 0;
  color: var(--om-navy);
  font-size: 18px;
  font-weight: 600;
  line-height: 28px;
  text-decoration: none;
}

.om-pdf img {
  flex: 0 0 auto;
  width: 70px;
  height: 70px;
}

.om-pdf:hover span { text-decoration: underline; }

.om-orderhint {
  display: flex;
  align-items: center;
  gap: 23px;
  margin: 40px 0 0;
  padding: 0;
  color: var(--om-navy);
  font-size: 18px;
  font-weight: 600;
  line-height: 28px;
}

.om-orderhint img {
  flex: 0 0 auto;
  width: 70px;
  height: 70px;
}

.om-orderhint a { color: var(--om-cyan); }

/* Buttons: 50 px hoch, links Zurück, rechts Bestellen */
.om-detail__backrow {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  max-width: var(--om-col);
  margin: 70px auto 0;
  padding: 0;
}

.om-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 0 24px;
  border-radius: 999px;
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  transition: background .2s;
}

.om-btn--ghost { background: var(--om-cyan); }
.om-btn--ghost:hover { background: var(--om-cyan-deep); }
.om-btn--green { background: var(--om-green); }
.om-btn--green:hover { background: var(--om-green-deep); }

.om-detail__backrow .om-btn:only-child { margin-right: auto; }

/* Mehr Produkte entdecken */
.om-more { max-width: 1140px; margin: 68px auto 0; padding: 0; }

.om-more h2 {
  margin: 0 0 40px;
  color: var(--om-navy);
  font-size: 40px;
  font-weight: 600;
  line-height: 48px;
  text-align: left;
}

/* Lightbox */
.om-lightbox {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(37, 83, 156, .82);
  z-index: 99999;
}

.om-lightbox.is-open { display: flex; }

.om-lightbox img {
  max-width: min(920px, 92vw);
  max-height: 90vh;
}

.om-lightbox button {
  position: absolute;
  top: 18px;
  right: 22px;
  border: 0;
  background: none;
  color: #fff;
  font-size: 34px;
  cursor: pointer;
}

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
  .om-pw { padding-left: 20px; padding-right: 20px; }
  .om-pw__mosaic { margin-bottom: 80px; }
  .om-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .om-hero__copy { padding-right: 56px; }
}

@media (max-width: 1024px) {
  /* Hero gestapelt: Pfeile als eigene Grid-Spalten, dadurch immer auf Bildmitte */
  .om-hero {
    grid-template-columns: 40px minmax(0, 1fr) 40px;
    grid-template-areas:
      "prev visual next"
      "copy copy copy";
    min-height: 0;
    padding: 48px 0 56px;
    row-gap: 32px;
  }
  .om-hero__nav {
    position: static;
    grid-area: prev;
    margin: 0;
    justify-self: start;
  }
  .om-hero__nav--next { grid-area: next; justify-self: end; }
  .om-hero__visual { grid-area: visual; padding: 0 12px; }
  .om-hero__copy { grid-area: copy; padding-top: 0; padding-right: 0; }
  .om-hero__media img { max-height: 420px; }
  .om-badge { width: 110px; height: 110px; font-size: 19px; line-height: 22px; }
  .om-hero__title,
  .om-hero__slogan { font-size: 32px; line-height: 40px; }
  .om-pw__mosaic { margin-bottom: 64px; }
  .om-pw__chips { margin-bottom: 88px; }
  .om-pw__line { margin-bottom: 88px; }
  .om-pw__line-head { margin-bottom: 60px; }
  .om-pw__grid,
  .om-pw__grid.is-few { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .om-card { min-height: 0; }
  .om-card__visual { height: 240px; }
  .om-card__visual img { max-height: 240px; }
  .om-card__order { top: 20px; right: 18px; height: 42px; padding: 0 18px; font-size: 16px; }
}

@media (max-width: 720px) {
  .om-pw { padding: 0 16px 56px; }
  .om-pw__h1,
  .om-pw__line h2,
  .om-more h2 { font-size: 30px; line-height: 38px; }
  .om-pw__lead,
  .om-pw__line-text,
  .om-hero__intro,
  .om-reimb,
  .om-note,
  .om-trade,
  .om-usp p { font-size: 19px; line-height: 29px; }
  /* Chips umbrechen statt seitlich wegscrollen – sonst ist die Leiste am Rand abgeschnitten */
  .om-pw__chips {
    flex-wrap: wrap;
    gap: 12px;
    margin: 0 0 40px;
    padding: 0;
  }
  .om-pw__chip { height: 44px; padding: 0 20px; font-size: 17px; }
  .om-pw__mosaic { margin-bottom: 48px; }
  /* Desktop-Abstände (142/132/98) wirken auf dem Handy als Leerflächen */
  .om-pw__intro { margin-bottom: 36px; }
  .om-pw__line { margin-bottom: 64px; }
  .om-pw__line-head { margin-bottom: 40px; }
  .om-pw__line-text + .om-pw__line-text { margin-top: 29px; }
  .om-hero__title,
  .om-hero__slogan { font-size: 26px; line-height: 34px; }
  .om-hero__visual { padding: 0 8px; }
  .om-hero__media img { max-height: 340px; }
  .om-badge { width: 92px; height: 92px; font-size: 16px; line-height: 19px; }
  .om-usp { grid-template-columns: 50px minmax(0, 1fr); gap: 14px; }
  .om-usp img { width: 50px; height: 50px; }
  .om-pw__grid,
  .om-pw__grid.is-few { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .om-card { padding: 18px 12px 20px; }
  .om-card__visual { height: 190px; margin-bottom: 22px; }
  .om-card__visual img { max-height: 190px; }
  .om-card__name,
  .om-card__slogan { font-size: 17px; line-height: 23px; }
  .om-card__slogan { margin-bottom: 18px; }
  .om-card__arrow { width: auto; height: 40px; padding: 0 18px; gap: 8px; }
  .om-card__arrow-label { font-size: 14px; }
  .om-pdf { gap: 14px; }
  .om-pdf img { width: 56px; height: 56px; }
  .om-orderhint { gap: 14px; }
  .om-orderhint img { width: 56px; height: 56px; }
  .om-detail__backrow { justify-content: flex-start; margin-top: 56px; }
  .om-acc { margin-top: 56px; }
  .om-actions { margin-top: 56px; }
  .om-more { margin-top: 56px; }
  .om-more h2 { margin-bottom: 28px; }
}

/* Telefone: eine Karte pro Reihe, sonst brechen Namen und Slogans unlesbar um */
@media (max-width: 600px) {
  /* Mosaik auf 2 Spalten, sonst sind die Kacheln kaum noch erkennbar */
  .om-pw__mosaic { grid-template-columns: repeat(2, 1fr); }
  .om-pw__grid,
  .om-pw__grid.is-few { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .om-card { padding: 24px 20px 24px; }
  .om-card__visual { height: 230px; }
  .om-card__visual img { max-height: 230px; }
  .om-card__name,
  .om-card__slogan { font-size: 19px; line-height: 26px; }
}

/* ---------- Elementor-Wrapper: gleiche Optik, Widgets bleiben editierbar ----------
   Die Regeln sind mit .om-pw vorangestellt, weil Elementors Widget- und
   Seiten-CSS im Editor nach diesem Stylesheet geladen wird und bei gleicher
   Spezifität sonst gewinnt (Buttons erschienen dort in der Akzentfarbe). */
.om-pw .elementor-widget-container {
  padding: 0;
}

/* Pfeile, Störer und Badge liegen in HTML-Widgets – die Wrapper werden aus dem
   Fluss genommen, damit Grid/Flex der Container wie in der Vorlage bleibt. */
.om-hero__nav-slot {
  position: absolute;
  top: 50%;
  width: 40px;
  height: 28px;
  margin-top: -14px;
  z-index: 2;
}

.om-hero__nav-slot--prev { left: 0; }
.om-hero__nav-slot--next { right: 0; }

.om-hero__nav-slot .om-hero__nav {
  position: static;
  margin: 0;
}

.om-badge-slot,
.om-card__order-slot {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.om-card__arrow-slot {
  margin-top: auto;
}

.om-pw__mosaic.e-con {
  max-width: 100vw;
}

.om-pw__mosaic img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 360 / 335;
  object-fit: cover;
}

.om-pw__h1 .elementor-heading-title {
  margin: 0 0 14px;
  color: var(--om-navy) !important;
  font-size: 40px;
  font-weight: 600;
  line-height: 48px;
  text-align: center;
}

.om-pw__lead .elementor-widget-container,
.om-pw__lead p {
  /* Farbe kommt jetzt aus dem text_color-Setting des Widgets (siehe
     build-elementor-native.php) statt hier erzwungen zu werden – sonst
     zeigt das Elementor-Panel eine andere Farbe als tatsächlich sichtbar. */
  margin: 0;
  font-size: 23.5px;
  font-weight: 600;
  line-height: 36px;
  text-align: center;
}

/* Chips und Buttons: die Pille sitzt auf dem <a> im Button-Widget,
   der Widget-Wrapper bleibt schmal (sonst Pille über die volle Breite). */
.om-chip,
.om-btnw {
  width: auto;
  max-width: 100%;
}

.om-pw .om-chip .elementor-button,
.om-pw .om-chip .elementor-button:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  border: 0;
  fill: #fff;
  box-shadow: none;
}

/* Aktiver Chip wird per JS gesetzt; braucht mehr Spezifität als das
   Widget-CSS, das Elementor aus den Button-Einstellungen erzeugt. */
.om-pw .om-chip.is-active .elementor-button {
  background-color: var(--om-cyan-deep);
  color: #fff;
}

.om-pw__line-title .elementor-heading-title {
  margin: 0 0 16px;
  color: var(--om-navy);
  font-size: 40px;
  font-weight: 600;
  line-height: 48px;
  text-align: center;
}

.om-pw__line-text .elementor-widget-container,
.om-pw__line-text p {
  /* Farbe kommt aus dem text_color-Setting des Widgets, s. o. */
  margin: 0;
  font-size: 23.5px;
  font-weight: 600;
  line-height: 36px;
  text-align: center;
}

.om-pw__line-text + .om-pw__line-text {
  margin-top: 36px;
}

.om-pw .om-card__name .elementor-heading-title {
  margin: 0;
  color: var(--om-navy);
  font-size: 24px;
  font-weight: 600;
  line-height: 30px;
  text-align: center;
}

.om-pw .om-card__slogan .elementor-widget-container,
.om-card__slogan p {
  /* Farbe kommt aus dem text_color-Setting des Widgets, s. o. */
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  line-height: 30px;
  text-align: center;
}

.om-card__visual img {
  display: block;
  max-width: 100%;
  max-height: 293px;
  margin: 0 auto;
  width: auto;
  height: auto;
  object-fit: contain;
}

.om-pw .om-hero__title .elementor-heading-title {
  margin: 0;
  color: var(--om-navy);
  font-size: 40px;
  font-weight: 600;
  line-height: 48px;
}

.om-pw .om-hero__slogan .elementor-heading-title {
  margin: 0;
  color: var(--om-cyan) !important;
  font-size: 40px;
  font-weight: 600;
  line-height: 48px;
}

.om-pw .om-usp .elementor-widget-container,
.om-usp p {
  /* Farbe kommt aus dem text_color-Setting des Widgets, s. o. */
  margin: 0;
  font-size: 23px;
  font-weight: 600;
  line-height: 30px;
}

.om-pw .om-hero__intro .elementor-widget-container,
.om-hero__intro p {
  /* Farbe kommt aus dem text_color-Setting des Widgets, s. o. */
  margin: 0;
  font-size: 23px;
  font-weight: 600;
  line-height: 30px;
}

.om-pw .om-reimb .elementor-widget-container,
.om-reimb p {
  /* Farbe kommt aus dem text_color-Setting des Widgets, s. o. */
  margin: 30px 0 0;
  font-size: 23px;
  font-weight: 600;
  line-height: 30px;
}

.om-pw .om-note .elementor-widget-container,
.om-note p,
.om-pw .om-trade .elementor-widget-container,
.om-trade p {
  /* Farbe kommt aus dem text_color-Setting des Widgets, s. o. */
  margin: 30px 0 0;
  font-size: 23px;
  font-weight: 600;
  line-height: 30px;
}

/* Akkordeon: Toggle-Widget, damit im Frontend wie in der Vorlage alles
   geschlossen startet. Die Rahmenlinie oben sitzt auf dem Container. */
.om-pw .om-acc.e-con {
  max-width: var(--om-col);
  margin: 67px auto 0;
  border-top: 1px solid var(--om-line);
}

.om-pw .om-acc__toggle .elementor-toggle-item {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--om-line);
}

.om-pw .om-acc__toggle .elementor-tab-title {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 13px;
  min-height: 49px;
  padding: 0 24px;
  background: none !important;
  color: #000;
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
}

.om-pw .om-acc__toggle .elementor-tab-title.elementor-active {
  background: var(--om-gray) !important;
}

.om-pw .om-acc__toggle .elementor-toggle-title,
.om-pw .om-acc__toggle .elementor-tab-title a {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  text-decoration: none;
}

.om-pw .om-acc__toggle .elementor-tab-content {
  padding: 0 24px 20px;
  border: 0;
  color: var(--om-navy);
  font-size: 18px;
  line-height: 28px;
}

.om-pw .om-acc__toggle .elementor-toggle-icon {
  display: none;
}

.om-pw .om-acc__toggle .elementor-tab-title::after {
  content: "";
  flex: 0 0 auto;
  width: 14px;
  height: 8px;
  margin-top: 3px;
  background: no-repeat center/14px 8px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 8'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
}

.om-pw .om-acc__toggle .elementor-tab-title.elementor-active::after {
  margin-top: -3px;
  transform: rotate(180deg);
}

.om-pdf img,
.om-orderhint img {
  width: 70px;
  height: 70px;
}

.om-pw .om-pdf-label .elementor-heading-title,
.om-pw .om-pdf-label .elementor-widget-container,
.om-pw .om-orderhint .elementor-widget-container,
.om-orderhint p {
  /* Farbe kommt aus title_color/text_color des jeweiligen Widgets, s. o. */
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  line-height: 28px;
}

/* Farbe, Radius, Innenabstand und Schrift kommen aus den Button-Einstellungen
   im Elementor-Widget (om_el_button), damit der Editor dasselbe zeigt. */
.om-pw .om-btnw .elementor-button,
.om-pw .om-btnw .elementor-button:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  border: 0;
  fill: #fff;
  box-shadow: none;
}

.om-pw .om-more-title .elementor-heading-title {
  margin: 0 0 40px;
  color: var(--om-navy);
  font-size: 40px;
  font-weight: 600;
  line-height: 48px;
  text-align: left;
}

@media (max-width: 720px) {
  .om-pw__h1 .elementor-heading-title,
  .om-pw__line-title .elementor-heading-title,
  .om-pw .om-more-title .elementor-heading-title {
    font-size: 30px;
    line-height: 38px;
  }
  .om-pw .om-chip .elementor-button { height: 44px; padding: 0 20px; font-size: 17px; }
}
