/* Module Custom Styles */ .mb-6 { margin-bottom: 6rem; } .mt-3 { margin-top: 3rem; } .mt-2 strong { font-size: 1.4rem; /* Textgröße – Standard ist ca. 1rem */ font-weight: 700; } .fontsizeInf { font-size: 1.4rem; /* Textgröße – Standard ist ca. 1rem */ } .event-list { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: center; } .event-card { /*background-color: var(--bs-gray-dark); */ border: 2px solid rgb(128 128 128); /* Umrandung */ border-radius: 12px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); padding: 1.5rem; width: 280px; /* color: #ddd; */ transition: all 0.3s ease; } .event-card h3 { margin-top: 0; margin-bottom: 0.5rem; } .event-card p { margin: 0.2rem 0; } .event-actions { margin-top: 1rem; display: flex; justify-content: space-between; } /* vorher: .event-card:hover { border-color: #66ccff; transform: translateY(-4px); <-- das ist der Übeltäter box-shadow: 0 6px 14px rgba(0,0,0,0.5); } */ /* nachher – kein transform mehr */ .event-card:hover { border-color: #66ccff; /* statt transform die Karte minimal "anheben" */ margin-top: -4px; /* optischer Lift */ box-shadow: 0 6px 14px rgba(0,0,0,0.5); } /* sicherheitshalber: Overlay darf nicht abgeschnitten werden */ .event-card { overflow: visible; } /* ---------- A) Hover nur auf Geräten mit Maus ---------- */ @media (hover: hover) and (pointer: fine) { .event-card:hover { border-color: #66ccff; transform: translateY(-4px); box-shadow: 0 6px 14px rgba(0,0,0,.5); } } /* Auf Touch-Geräten kein transform (verhindert Modal-Probleme) */ @media (hover: none), (pointer: coarse) { .event-card:hover { transform: none; box-shadow: 0 6px 14px rgba(0,0,0,.5); } } /* Sicherheitshalber: nichts abschneiden */ .event-card { overflow: visible; } /* ---------- B) Overlay/Modal (Desktop-Basis) ---------- */ /* Falls schon vorhanden, kannst du diese Werte als Override nutzen */ .overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); display: flex; align-items: center; justify-content: center; padding: 2rem; z-index: 2000; overscroll-behavior: contain; } .modal { background: #fff; border-radius: 10px; box-shadow: 0 20px 60px rgba(0,0,0,.35); width: min(92vw, 720px); max-height: 85vh; display: flex; flex-direction: column; overflow: hidden; /* für sticky header/footer */ } .modal-header, .modal-footer { padding: 1rem 1.25rem; background: #fff; } .modal-header { border-bottom: 1px solid rgba(0,0,0,.1); } .modal-footer { border-top: 1px solid rgba(0,0,0,.1); display: flex; gap: .75rem; justify-content: flex-end; } .modal-body { padding: 1rem 1.25rem; overflow: auto; -webkit-overflow-scrolling: touch; } /* Medien responsiv im Detail-Dialog */ .modal-body img, .modal-body video, .modal-body canvas, .modal-body iframe { max-width: 100% !important; height: auto !important; display: block; } /* ---------- C) Mobile-Vollbild & Sticky-Header/Footer ---------- */ @supports (height: 100dvh) { .modal { max-height: 100dvh; } } @media (max-width: 768px) { .overlay { padding: 0; } .modal { width: 100vw; height: 100vh; /* nutzt auf modernen Browsern 100dvh (s.o.) */ max-height: 100vh; border-radius: 0; } .modal-header { position: sticky; top: 0; z-index: 1; } .modal-footer { position: sticky; bottom: 0; z-index: 1; } .modal-body { padding: 1rem; } /* Lesbare Überschriften auf Mobile */ .modal-body h1 { font-size: clamp(1.25rem, 5.5vw, 2rem); } .modal-body h2 { font-size: clamp(1.125rem, 5vw, 1.5rem); } } /* iOS Safe-Area (Notch) */ @supports (padding: max(0px)) { .modal { padding-bottom: max(0px, env(safe-area-inset-bottom)); } }