trihub-ernaehrung-advinters/css/leistungen.css

242 lines
5.6 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/* 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;
}
.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;
}
.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);
}
.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;
}
@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;
}
}