PM_Project/css/sections/angebote.css

91 lines
5.4 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.

/* 6. Angebote – Bildkarten statt Vergleichstabelle */
.offers-section { border-block: 1px solid var(--line); background: var(--surface-elevated); }
.offers-section .section-heading { margin-bottom: 28px; }
.concept-note { display: flex; gap: 8px; margin-bottom: 30px; color: var(--quiet); font-size: .8125rem; }
.package-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.package {
display: flex;
flex-direction: column;
padding: 16px;
overflow: hidden;
border: 1px solid var(--line);
border-radius: 2rem;
background: linear-gradient(#ffffff0f, #ffffff05), linear-gradient(#08151ee6, #091822fa);
box-shadow: 0 18px 48px rgb(0 0 0 / 16%);
transition: border-color .3s, transform .3s var(--ease), box-shadow .3s;
}
.package:hover { border-color: rgb(255 255 255 / 22%); transform: translateY(-4px); box-shadow: 0 24px 52px rgb(0 0 0 / 22%); }
.package.featured { border-color: color-mix(in srgb, var(--accent-muted) 35%, transparent); }
.package-image { position: relative; overflow: hidden; border-radius: 1.35rem; }
.package-image img { width: 100%; aspect-ratio: 1.65; transition: transform .65s var(--ease); }
.package:hover .package-image img { transform: scale(1.025); }
.package-badge {
position: absolute;
bottom: 12px;
left: 12px;
max-width: calc(100% - 24px);
padding: 6px 12px;
border: 1px solid color-mix(in srgb, var(--accent-muted) 32%, transparent);
border-radius: 999px;
background: rgb(7 27 34 / 90%);
color: color-mix(in srgb, var(--accent-strong) 74%, white);
font-size: .6875rem;
font-weight: 600;
letter-spacing: .13em;
}
.package-body { display: flex; flex: 1; flex-direction: column; padding: 24px 8px 8px; }
.package-body h3 { margin-block: 14px 20px; font-size: clamp(1.5rem, 2.05vw, 1.875rem); line-height: 1.3; }
.package-body > p:not(.eyebrow) { color: var(--muted); font-size: 1rem; line-height: 1.8; }
.package-body ul { flex: 1; margin-top: 24px; padding: 20px 0 24px; border-top: 1px solid var(--line); list-style: none; font-size: .9375rem; }
.package-body li { position: relative; padding: 6px 0 6px 23px; color: rgb(255 255 255 / 82%); }
.package-body li::before { content: '✓'; position: absolute; left: 0; color: var(--quiet); }
.package .button { width: 100%; font-size: .9375rem; }
.coaching-banner { display: flex; align-items: center; gap: 24px; margin-top: 30px; padding: 28px 30px; border: 1px solid var(--line); border-radius: 1.5rem; background: var(--panel); }
.bonus-symbol { display: grid; flex-shrink: 0; place-items: center; width: 52px; height: 52px; border: 1px solid var(--line); border-radius: 1rem; background: rgb(255 255 255 / 3%); color: rgb(255 255 255 / 80%); font-size: 1.5rem; }
.coaching-banner h3 { margin-bottom: 6px; font-size: 1.0625rem; }
.coaching-banner p { color: var(--muted); font-size: .9375rem; }
.coaching-banner .text-link { margin-left: auto; flex-shrink: 0; font-size: .875rem; }
/* 8. Produktdetails – weiterhin zentriert und innerhalb des Fensters scrollbar */
dialog {
position: fixed;
inset: 0;
margin: auto;
width: min(720px, calc(100% - 32px));
max-height: 90dvh;
padding: 0;
overflow-y: auto;
overscroll-behavior: contain;
border: 1px solid rgb(255 255 255 / 16%);
border-radius: 1.75rem;
background: linear-gradient(#ffffff07, #ffffff00), var(--surface-elevated);
color: var(--text);
box-shadow: 0 30px 100px rgb(0 0 0 / 55%);
scrollbar-color: #46545c transparent;
scrollbar-width: thin;
}
dialog::backdrop { background: rgb(2 8 12 / 78%); backdrop-filter: blur(7px); }
.dialog-inner { position: relative; padding: 42px; }
.close-dialog { position: absolute; top: 14px; right: 14px; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; background: rgb(255 255 255 / 4%); color: var(--muted); font-size: 1.75rem; line-height: 1; }
.close-dialog:hover { background: rgb(255 255 255 / 10%); color: #fff; }
.dialog-inner > .eyebrow { padding-right: 24px; }
.dialog-inner h2 { margin: 16px 18px 22px 0; font-size: 2rem; line-height: 1.2; }
.dialog-inner > p:not(.eyebrow) { color: var(--muted); font-size: 1rem; }
.dialog-inner h3 { margin: 28px 0 14px; font-size: 1.125rem; }
#dialog-features { padding-left: 20px; color: rgb(255 255 255 / 82%); font-size: 1rem; }
#dialog-features li { padding-block: 5px; }
#dialog-features li::marker { color: var(--quiet); }
.detail-note, .discount-help { color: var(--quiet); font-size: .8125rem; line-height: 1.7; }
.detail-note { margin-top: 12px; }
.discount-box { margin-block: 28px; padding: 24px; border: 1px solid var(--line); border-radius: 1.25rem; background: var(--panel); }
.discount-box h3 { margin: 10px 0 22px; }
.discount-box label { display: block; margin-bottom: 10px; color: rgb(255 255 255 / 82%); font-size: .9375rem; }
.discount-box select { width: 100%; min-height: 50px; padding: 12px; border: 1px solid rgb(255 255 255 / 20%); border-radius: .75rem; background: var(--background); color: #fff; font-size: .9375rem; }
#discount-result { padding-block: 20px; color: rgb(255 255 255 / 88%); font-size: 1.0625rem; }
#discount-result strong { color: color-mix(in srgb, var(--accent-strong) 70%, white); font-size: 1.5rem; font-weight: 600; }
.discount-box a { display: inline-block; margin-top: 16px; color: rgb(255 255 255 / 84%); font-size: .875rem; text-decoration: underline; text-underline-offset: 4px; }
.discount-box a:hover { color: #fff; }
.dialog-done { width: 100%; }
body:has(dialog[open]) { overflow: hidden; }