/* EXT:tw_elements · taurerwirt/angebot */
/* Taurerwirt: Angebots-Karte (u. a. im Overlay-Menü) */
.tw-offer { --tw-price: clamp(96px, 7.5vw, 150px); --tw-pad-x: clamp(16px, 2vw, 30px); --tw-pad-t: clamp(14px, 1.6vw, 26px); --tw-price-r: clamp(10px, 1.2vw, 18px); }
.tw-offer {
  /* Farben: im Backend je Karte einstellbar (CSS-Variablen inline), hier die Standardwerte */
  --o-bg: #dcdcdc;
  --o-c: var(--tw-text, #333333);
  --o-title: var(--tw-navy, #293349);
  --o-border: #ffffff;
  --o-border-h: var(--tw-gold, #d2be6f);
  --o-p-bg: #ffffff;
  --o-p-c: var(--tw-navy, #293349);
  --o-p-border: var(--tw-navy, #293349);
  --o-ratio: 5 / 3;
  position: relative;
  display: block;
  background: var(--o-bg);
  color: var(--o-c);
  text-decoration: none;
  border: 2px solid var(--o-border);
  transition: border-color .3s;
}
.tw-offer--ratio-4-3 { --o-ratio: 4 / 3; }
.tw-offer--ratio-16-9 { --o-ratio: 16 / 9; }
.tw-offer--ratio-1-1 { --o-ratio: 1 / 1; }
.tw-offer__media { position: relative; }
.tw-offer__media img { display: block; width: 100%; height: auto; aspect-ratio: var(--o-ratio); object-fit: cover; }
.tw-offer__price {
  position: absolute;
  right: var(--tw-price-r);
  bottom: 0;
  transform: translateY(50%);
  width: var(--tw-price);
  aspect-ratio: 1;
  border-radius: 50%;                   /* Kreis bleibt Kreis */
  border: 2px solid var(--o-p-border);
  background: var(--o-p-bg);
  display: grid; place-content: center; text-align: center;
  font-family: var(--font-family-headings);
  color: var(--o-p-c);
  line-height: 1.05;
}
.tw-offer__price small { font-size: clamp(.85rem, .9vw, 1.05rem); font-weight: 500; letter-spacing: .05em; text-transform: uppercase; }
.tw-offer__price strong { font-size: clamp(1.3rem, 1.6vw, 2rem); font-weight: 700; white-space: nowrap; }
.tw-offer__body { padding: var(--tw-pad-t) var(--tw-pad-x) clamp(18px, 2vw, 30px); }
/* Platzhalter rechts oben: Text fließt um die untere Hälfte des Preis-Kreises */
.tw-offer__body::before {
  content: "";
  float: right;
  width: calc(var(--tw-price) + var(--tw-price-r) - var(--tw-pad-x) + 10px);
  height: calc(var(--tw-price) / 2 - var(--tw-pad-t) + 8px);
}
.tw-offer__body::after { content: ""; display: block; clear: both; }
.tw-offer__date {
  margin: 0 0 .2em;
  font-family: var(--font-family-normal); font-size: clamp(1.05rem, 1.25vw, 1.4rem);
  letter-spacing: .03em; color: var(--o-title);
}
.tw-offer__title {
  margin: 0 0 .35em;
  font-family: var(--font-family-headings); font-weight: 500;
  overflow-wrap: normal; word-break: normal; hyphens: manual;
  font-size: clamp(1.6rem, 2.3vw, 2.6rem); line-height: 1.08;
  color: var(--o-title);
}
.tw-offer__text, .tw-offer__text p, .tw-offer__text li {
  font-family: var(--font-family-normal);
  font-size: clamp(.95rem, 1.05vw, 1.15rem);
  line-height: 1.35;
  color: var(--o-c);
}
.tw-offer__text p:first-child { font-size: clamp(1.05rem, 1.25vw, 1.4rem); color: var(--o-title); margin: 0 0 .5em; }
.tw-offer__text ul { margin: 0; padding-left: 1.2em; }
.tw-offer__text li { margin: .2em 0; }
a.tw-offer:hover, a.tw-offer:focus-visible { border-color: var(--o-border-h); }
.tw-offer--price-square .tw-offer__price { border-radius: 0; }
.tw-offer__more {
  display: inline-flex; align-items: center; gap: .8em;
  margin-top: 1em;
  font-family: var(--font-family-bold, 'Barlow Condensed', sans-serif);
  font-weight: 700; font-size: 1.05rem; letter-spacing: .15em; text-transform: uppercase;
  color: var(--o-title);
}
.tw-offer__more .tw-arrow { width: 3em; margin: 0; }
a.tw-offer:hover .tw-offer__more .tw-arrow { transform: translateX(6px); }
