trihub-ernaehrung-backseatDevs/src/styles/packages.css

280 lines
5.8 KiB
CSS

.packages-page {
margin: 0;
min-height: 100vh;
color: #f8fafc;
background:
radial-gradient(circle at 12% 0%, #53d5cd17, transparent 30%),
radial-gradient(circle at 88% 26%, #53d5cd0e, transparent 27%),
linear-gradient(145deg, #0d0d1a, #1a1a2e);
font-family: Inter, system-ui, sans-serif;
line-height: 1.6;
color-scheme: dark;
}
.packages-section,
.packages-section * {
box-sizing: border-box;
}
.packages-section {
width: min(1180px, calc(100% - 3rem));
margin: auto;
padding-block: 5rem;
overflow-wrap: anywhere;
}
.packages-header {
display: grid;
grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
gap: 3rem;
align-items: end;
margin-bottom: 3rem;
}
.packages-eyebrow,
.package-type {
color: #53d5cd;
font-size: 0.75rem;
font-weight: 600;
letter-spacing: 0.14em;
text-transform: uppercase;
}
.packages-header h1,
.detail-heading h1 {
margin: 0.75rem 0 1rem;
font-size: clamp(2rem, 4.5vw, 3.75rem);
font-weight: 600;
line-height: 1.15;
letter-spacing: -0.035em;
}
.packages-intro,
.package-desc,
.detail-text,
.detail-list,
.price-note,
.booking-notice {
color: #94a3b8;
}
.packages-intro {
margin: 0;
max-width: 40rem;
}
.packages-container {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 1.5rem;
}
.package-card,
.package-checkout {
min-width: 0;
padding: 1.75rem;
border: 1px solid #f8fafc1f;
border-radius: 1.4rem;
background: #ffffff0b;
}
.package-card {
display: flex;
flex-direction: column;
}
.package-type-container {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.75rem;
margin-bottom: 1rem;
}
.package-highlight {
border-radius: 999px;
padding: 0.25rem 0.65rem;
background: #53d5cd14;
color: #75e2dc;
border: 1px solid #53d5cd33;
font-size: 0.65rem;
font-weight: 600;
letter-spacing: 0.05em;
}
.package-title {
margin: 0 0 1rem;
color: #fff;
font-size: 1.55rem;
font-weight: 600;
line-height: 1.25;
letter-spacing: -0.025em;
}
.package-desc {
margin: 0 0 1.5rem;
}
.package-details-box {
padding-block: 1.5rem;
border-top: 1px solid #f8fafc1f;
flex: 1;
}
.detail-item + .detail-item {
margin-top: 1.25rem;
}
.detail-title {
margin: 0 0 0.5rem;
color: #f8fafc;
font-size: 1rem;
font-weight: 600;
}
.detail-text {
font-size: 0.9rem;
}
.package-btn {
display: flex;
align-items: center;
justify-content: center;
gap: 0.75rem;
width: 100%;
min-height: 3rem;
padding: 0.8rem 1.1rem;
border: 1px solid #94a3b840;
border-radius: 999px;
background: #ffffff06;
color: #f8fafc;
font: inherit;
font-size: 0.9rem;
font-weight: 600;
text-align: center;
text-decoration: none;
cursor: pointer;
}
.package-btn:hover {
border-color: #53d5cd;
background: #53d5cd14;
}
.package-btn.primary-cta {
background: #53d5cd;
border-color: #53d5cd;
color: #06130f;
}
.package-btn.primary-cta:hover {
background: #75e2dc;
}
.package-btn:disabled {
opacity: 0.65;
cursor: wait;
}
.packages-section :focus-visible {
outline: 3px solid #53d5cd;
outline-offset: 4px;
}
.packages-back {
display: inline-block;
margin-bottom: 2rem;
padding-block: 0.5rem;
color: #75e2dc;
text-decoration: none;
}
.detail-heading {
max-width: 52rem;
margin-bottom: 3rem;
}
.detail-grid {
display: grid;
grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
gap: 2.5rem;
align-items: start;
}
.detail-content > section + section {
margin-top: 2.5rem;
}
.detail-content h2,
.package-checkout h2 {
margin: 0 0 1rem;
font-size: 1.25rem;
}
.detail-list {
padding-left: 1.25rem;
}
.detail-list li {
margin-block: 0.65rem;
}
.detail-list li::marker {
color: #53d5cd;
}
.process-step {
margin-top: 1rem;
padding: 1.25rem;
border: 1px solid #f8fafc1f;
border-radius: 1rem;
background: #ffffff06;
}
.process-step strong {
display: block;
margin-bottom: 0.4rem;
}
.process-step p {
margin: 0;
}
.price-box {
margin-bottom: 1.5rem;
}
.price-amount {
display: block;
font-size: clamp(2rem, 4vw, 3rem);
font-weight: 600;
letter-spacing: -0.04em;
color: #75e2dc;
}
.price-note,
.booking-notice {
font-size: 0.85rem;
}
.detail-box {
margin-bottom: 1.5rem;
}
.detail-box label {
display: block;
margin-bottom: 0.5rem;
}
.variant-select {
width: 100%;
max-width: 100%;
min-width: 0;
min-height: 3rem;
padding: 0.65rem;
border: 1px solid #94a3b866;
border-radius: 0.75rem;
color: #f8fafc;
background: #0d0d1a;
font: inherit;
}
/* Die Detailseite zeigt ihre eigene Übersicht; Booking liefert den Dialog. */
.packages-section #booking-root > .booking > h2,
.packages-section #booking-root .booking__package,
.packages-section #booking-root .booking__payment,
.packages-section #booking-root .booking__open {
display: none;
}
.packages-section .booking__dialog {
background: #0d0d1a;
color: #f8fafc;
border-color: #94a3b840;
}
.packages-section .booking__dialog .booking__button:not(.booking__cancel) {
background: #53d5cd;
border-color: #53d5cd;
color: #06130f;
}
.packages-section .booking__dialog :focus-visible {
outline-color: #53d5cd;
}
@media (max-width: 60rem) {
.packages-container {
grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}
.packages-header,
.detail-grid {
grid-template-columns: minmax(0, 1fr);
gap: 1.5rem;
}
}
@media (max-width: 30rem) {
.packages-section {
width: calc(100% - 2rem);
padding-block: 2.5rem;
}
.package-card,
.package-checkout {
padding: 1.25rem;
}
}