246 lines
6.0 KiB
CSS
246 lines
6.0 KiB
CSS
/* Vincent: Gemeinsame Klassennamen und Variablen sind auf .pakete begrenzt. */
|
||
/* ==========================================================
|
||
tri-hub.de – Farben angeglichen an Produktübersicht (Shahnam)
|
||
Hintergrund: #071419 / #1b2830
|
||
Akzent: #4597A3 (gedämpftes Cyan-Teal)
|
||
Primärtext: #ffffff / #b7bec2 / #7e858a
|
||
Typografie: Sora (Display) + Inter (Body)
|
||
Werte per Pixel-Sampling aus dem Screenshot der Produktübersicht ermittelt.
|
||
========================================================== */
|
||
|
||
.pakete {
|
||
/* Werte per Pixel-Sampling aus dem Referenz-Screenshot (Produktübersicht) übernommen */
|
||
--background: #0714198a; /* früher "bg-dark */
|
||
--background-rgb: 7 20 25; /* gleiche Basisfarbe wie --background,
|
||
aber ohne fixes Alpha – für Gradient-Stops
|
||
wird benutzt um Bildern einen gradient zu verpassen */
|
||
--background-panel: #152027; /* früher "primary */
|
||
--accent: #4597A3;
|
||
--accent-soft: rgba(69, 151, 163, 0.14);
|
||
--text-primary: #ffffff;
|
||
--text-muted: #7e858a;
|
||
|
||
--font-display: "Sora", "Inter", system-ui, sans-serif;
|
||
--font-body: "Inter", system-ui, sans-serif;
|
||
}
|
||
|
||
.pakete,
|
||
.pakete * {
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.pakete {
|
||
margin: 0;
|
||
background: var(--background);
|
||
color: var(--text-primary);
|
||
font-family: var(--font-body);
|
||
}
|
||
|
||
/* ---------- Leistungsübersicht ---------- */
|
||
|
||
.pakete {
|
||
padding: 5rem 1.5rem;
|
||
max-width: 1120px;
|
||
margin: 0 auto;
|
||
}
|
||
|
||
.pakete .pakete__intro {
|
||
text-align: center;
|
||
max-width: 42rem;
|
||
margin: 0 auto 3rem;
|
||
}
|
||
|
||
.pakete .pakete__titel {
|
||
font-family: var(--font-display);
|
||
font-weight: 700;
|
||
font-size: clamp(1.8rem, 3vw, 2.4rem);
|
||
color: var(--text-primary);
|
||
margin: 0 0 0.75rem;
|
||
}
|
||
|
||
.pakete .pakete__text {
|
||
color: var(--text-muted);
|
||
line-height: 1.6;
|
||
margin: 0;
|
||
}
|
||
|
||
/* Kästchen nebeneinander, jede Karte für sich */
|
||
.pakete .pakete__grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||
gap: 1.5rem;
|
||
align-items: stretch;
|
||
}
|
||
|
||
.pakete .paket-karte {
|
||
display: flex;
|
||
flex-direction: column;
|
||
min-width: 0;
|
||
background: var(--background-panel);
|
||
border: 1px solid rgba(248, 250, 252, 0.08);
|
||
border-radius: 14px;
|
||
padding: 0; /* Entfernt, damit das Bild oben bündig anliegt */
|
||
overflow: hidden;
|
||
position: relative;
|
||
}
|
||
|
||
/* Empfehlung kommt aus der JSON-Datei; die Auswahlklasse setzt leistungen.js beim Klick. */
|
||
.pakete .paket-karte--empfohlen {
|
||
border-color: 1px solid rgba(248, 250, 252, 0.08);
|
||
box-shadow: 0 0 0 1px var(--accent-soft);
|
||
}
|
||
|
||
.pakete .paket-karte--ausgewaehlt {
|
||
border-color: var(--accent);
|
||
box-shadow: 0 0 0 2px var(--accent);
|
||
}
|
||
|
||
.pakete .paket-karte__badge {
|
||
display: inline-block;
|
||
background: var(--accent-soft);
|
||
color: var(--accent);
|
||
border: 1px solid var(--accent);
|
||
font-size: 0.7rem;
|
||
font-weight: 600;
|
||
letter-spacing: 0.06em;
|
||
text-transform: uppercase;
|
||
padding: 0.25rem 0.65rem;
|
||
border-radius: 999px;
|
||
margin: 0; /* Kein Abstand nach unten, da er jetzt im Header neben der Überschrift steht */
|
||
line-height: 1;
|
||
}
|
||
.pakete .paket-karte__image-wrapper {
|
||
width: 100%;
|
||
/* Proportional skalieren, damit beim Spaltenwechsel keine extremen Bildausschnitte entstehen. */
|
||
aspect-ratio: 3 / 2;
|
||
flex-shrink: 0;
|
||
overflow: hidden;
|
||
position: relative;
|
||
}
|
||
|
||
.pakete .paket-karte__image {
|
||
width: 100%;
|
||
height: 100%;
|
||
object-fit: cover;
|
||
object-position: center top;
|
||
display: block;
|
||
}
|
||
|
||
/* ---------- Karteninhalt: Paketname, Preis, Beschreibung und Leistungen ---------- */
|
||
.pakete .paket-karte__body {
|
||
padding: 1.75rem;
|
||
display: flex;
|
||
flex-direction: column;
|
||
flex-grow: 1;
|
||
}
|
||
|
||
.pakete .paket-karte__header {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 0.75rem;
|
||
margin-bottom: 0.5rem;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.pakete .paket-karte__name {
|
||
font-family: var(--font-display);
|
||
font-weight: 600;
|
||
font-size: 1.4rem;
|
||
color: var(--text-primary);
|
||
margin: 0 0 0.5rem;
|
||
}
|
||
|
||
.pakete .paket-karte__preis {
|
||
margin: 0 0 0.75rem;
|
||
display: flex;
|
||
align-items: baseline;
|
||
gap: 0.35rem;
|
||
}
|
||
|
||
.pakete .paket-karte__betrag {
|
||
font-family: var(--font-display);
|
||
font-size: 2rem;
|
||
font-weight: 700;
|
||
color: var(--text-primary);
|
||
}
|
||
|
||
.pakete .paket-karte__zeitraum {
|
||
color: var(--text-muted);
|
||
font-size: 0.9rem;
|
||
}
|
||
|
||
.pakete .paket-karte__beschreibung {
|
||
color: var(--text-muted);
|
||
line-height: 1.55;
|
||
margin: 0 0 1.5rem;
|
||
min-height: 3.3em;
|
||
}
|
||
|
||
.pakete .paket-karte__leistungen {
|
||
list-style: none;
|
||
margin: 0 0 2rem;
|
||
padding: 0;
|
||
flex-grow: 1;
|
||
}
|
||
|
||
.pakete .paket-karte__leistungen li {
|
||
position: relative;
|
||
padding-left: 1.4rem;
|
||
margin-bottom: 0.7rem;
|
||
line-height: 1.4;
|
||
color: var(--text-primary);
|
||
}
|
||
|
||
.pakete .paket-karte__leistungen li::before {
|
||
content: "";
|
||
position: absolute;
|
||
left: 0;
|
||
top: 0.5em;
|
||
width: 8px;
|
||
height: 8px;
|
||
border-radius: 2px;
|
||
background: var(--accent);
|
||
}
|
||
|
||
/* ---------- Paketauswahl und Tastaturfokus ---------- */
|
||
.pakete .paket-karte__cta {
|
||
font-family: var(--font-body);
|
||
font-weight: 600;
|
||
font-size: 0.95rem;
|
||
color: var(--text-primary);
|
||
background: var(--background);
|
||
border: 1px solid rgba(248, 250, 252, 0.08);
|
||
border-radius: 8px;
|
||
padding: 0.85rem 1rem;
|
||
cursor: pointer;
|
||
transition: filter 0.15s ease;
|
||
}
|
||
|
||
.pakete .paket-karte__cta:hover,
|
||
.pakete .paket-karte__cta:focus-visible {
|
||
filter: brightness(1.1);
|
||
}
|
||
|
||
.pakete .paket-karte__cta:focus-visible {
|
||
outline: 2px solid var(--text-primary);
|
||
outline-offset: 2px;
|
||
}
|
||
|
||
/* ---------- Spaltenwechsel: drei, zwei, dann eine; Empfehlung bleibt mobil zuerst ---------- */
|
||
@media (max-width: 860px) {
|
||
.pakete .pakete__grid {
|
||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||
}
|
||
|
||
.pakete .paket-karte--empfohlen {
|
||
order: -1;
|
||
}
|
||
}
|
||
|
||
@media (max-width: 620px) {
|
||
.pakete .pakete__grid {
|
||
grid-template-columns: minmax(0, 480px);
|
||
justify-content: center;
|
||
}
|
||
}
|