/* ====== Grid ====== */
.stg-tiles{
  --accent: #F18520; /* Icon/Titel */
  --bar-bg: #F5EEE9; /* unterer Bereich & Kartenhintergrund */
  --gap: 24px;
  --radius: 22px;
  --lift: 48px;      /* wie weit der untere Bereich nach oben fährt (px) */
  --title-color: var(--accent);
  --text: #3C3C3C;
  display: grid;
  grid-template-columns: repeat(var(--cols, 3), minmax(0,1fr));
  gap: var(--gap);
}
@media (max-width: 1024px){
  .stg-tiles{ grid-template-columns: repeat(var(--cols-tab, 2), minmax(0,1fr)); }
}
@media (max-width: 680px){
  .stg-tiles{ grid-template-columns: repeat(var(--cols-mob, 1), minmax(0,1fr)); }
}

/* ====== Card ====== */
.stg-card{
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bar-bg);         /* komplette Kachel in BG-Farbe *
  display: flex;
  flex-direction: column;            /* damit die Bar den Rest füllt */
}

.stg-media{
  position: relative;
  aspect-ratio: 4 / 3;               /* anpassbar über Control */
  overflow: hidden;
}
.stg-media img{
  width: 100%;
  height: 100%!important;
  object-fit: cover;         /* füllt aus, ohne zu verzerren */
  object-position: 50% 15%;  /* Fokus höher: 0%=oben, 50%=Mitte. z.B. 15% */
  display: block;
}

/* ====== Bottom Bar – fährt bei Hover/Klick nach oben ====== */
.stg-bar{
  position: relative;
  z-index: 2;
  background: var(--bar-bg);
  color: var(--text);
  padding: 20px 18px 24px;
  text-align: center;

  /* zentriert */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  /* Bar füllt den verbleibenden Platz der Karte */
  flex: 1 1 auto;

  transform: translateY(0);
  transition: transform .28s ease;
}

/* Stabiler Text: zwei Schichten übereinander */
.stg-title{
  margin: 0 0 10px 0;
  font-size: 20px;
  font-weight: 600!important;
  color: var(--title-color)!important;
}
.stg-textwrap{
  position: relative;
  width: 100%;
  min-height: 40px;                 /* genug Platz für Sub/More → kein Springen */
}
.stg-sub, .stg-more{
  position: absolute;
  left: 0; right: 0;
  top: 0;
  padding: 0 6px;
  font-size: 14px;
  line-height: 1.35;
  color: var(--text);
  opacity: 0;
  transition: opacity .2s ease;
}
.stg-sub{ opacity: 1; }

/* Desktop: bei Hover über die gesamte Karte */
@media (hover:hover){
  .stg-card:hover .stg-bar{ transform: translateY(calc(-1 * var(--lift))); }
  .stg-card:hover .stg-sub{ opacity: 0; }
  .stg-card:hover .stg-more{ opacity: 1; }
}

/* Toggle-Zustand (für Touch/Click & Pfeil) */
.stg-card.is-open .stg-bar{
  transform: translateY(calc(-1 * var(--lift)));
}
.stg-card.is-open .stg-sub{ opacity: 0; }
.stg-card.is-open .stg-more{ opacity: 1; }

/* Icon/Bubble – 50/50 über der Kante zwischen Bild und Bar */
.stg-knot{
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, -50%);
  width: 32px; height: 32px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 91 90'><path d='M32.2695 2.57143L47.1135 0L73.5745 7.07143L91 27V47.5714L87.1277 71.3571L55.5035 90H35.4965L10.3262 75.8571L0 61.0714V34.0714L12.9078 11.5714L32.2695 2.57143Z' fill='%23F18500'/></svg>");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  display: grid; place-items: center;
  z-index: 4;                        /* über evtl. Links & Bar */
  cursor: pointer;
}
.stg-knot svg.chev {
  width: 16px;      /* Größe anpassen */
  height: 16px;
  fill: #fff;       /* Farbe des Icons */
  transition: transform .25s ease;
}

/* Rotation bei Hover oder offenem Zustand */
@media (hover:hover){
  .stg-card:hover .stg-knot svg.chev { transform: rotate(180deg); }
}
.stg-card.is-open .stg-knot svg.chev { transform: rotate(180deg); }

/* Optionaler Link über gesamte Karte (Pfeil bleibt klickbar) */
.stg-link{ position:absolute; inset:0; z-index:3; }

/* Fokus-Styles für Accessibility */
.stg-bar:focus-visible,
.stg-card.is-open .stg-bar:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
