.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; } }