/* Font Import */ @import url('https://fonts.googleapis.com/css2?family=Bagel+Fat+One&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Jost:wght@300;400;600&display=swap'); /* Reset / Normalize */ *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } /* Colors + Main Font */ :root { --max-width: 1200px; --padding: 1.5rem; --tomato: #D44B24; --tomato-dark: #D44B24; --olive: #6B6B05; --olive-dark: #545404; --olive-light: #C8CC7A; --butter: #F5F1BC; --butter-light: #FAF9F0; --white: #ffffff; --black: #141411; --brown: #66340d; --blue: #3489DA; --blue-dark: #1D70BF; --error: #FF3B30; --font-main: 'Jost', sans-serif; --font-size-base: 1rem; /* Shadows */ --shadow-interaction: 0 0.1875rem 0.75rem rgba(102, 52, 13, 0.1); --shadow-error: 0 0 0 2px rgba(255, 59, 48, 0.1); /* Spacing Scale > 1rem = 16px*/ --space-0: 0.25rem; /* 4px */ --space-1: 0.5rem; /* 8px */ --space-2: 0.75rem; /* 12px */ --space-3: 1rem; /* 16px */ --space-31: 1.25rem; /* 20px */ --space-4: 1.5rem; /* 24px */ --space-5: 2rem; /* 32px */ --space-6: 2.5rem; /* 40px */ --space-7: 3rem; /* 48px */ --space-8: 4rem; /* 64px */ /* Radius Scale */ --radius-pill: 100rem; --radius-sm: 0.5rem; --radius-md: 1rem; --radius-lg: 2rem; /* Letter Spacing */ --ls-none: 0; --ls-sm: 2.5%; --ls-la: 5%; } /* Base Styles */ body { font-family: var(--font-main); background-color: var(--butter); } img { max-width: 100%; display: block; } /* Typography */ h1, h2, h3, h4, h5, h6 { font-family: 'Bagel Fat One'; } h1 { font-size: clamp(2.25rem, 5vw, 3rem); font-weight: 600; line-height: 120%; letter-spacing: var(--ls-sm); color: var(--brown); margin-bottom: 2rem; } h2 { font-size: 2.5rem; font-weight: 600; line-height: 120%; letter-spacing: var(--ls-sm); color: var(--brown); margin-bottom: 1.5rem; } h3 { font-size: 2rem; font-weight: 600; line-height: 120%; letter-spacing: var(--ls-sm); color: var(--brown); margin-bottom: 1.5rem; } p { font-family: var(--font-main); font-size: 1.125rem; line-height: 1.5; color: var(--black); margin-bottom: 1rem; } .error-message { color: var(--error); font-size: 1rem; } /* Layout */ .main-content { margin-top: var(--space-8); } .container { width: 90%; max-width: 75rem; margin: 0 auto; } .icon { width: 20px; height: 20px; flex: 0 0 20px; display: inline-block; } /* Top Navigation */ .top-nav-wrap { position: sticky; height: 58px; top: 1rem; z-index: 1000; background: none; padding: 0 1rem; } .top-nav { background: var(--white); /*backdrop-filter: blur(3px) saturate(140%); -webkit-backdrop-filter: blur(3px) saturate(140%);*/ border-radius: var(--radius-lg); box-shadow: var(--shadow-interaction); display: flex; justify-content: space-between; align-items: center; min-height: 3rem; padding: 0.1875rem 0.75rem 0.1875rem var(--space-5); max-width: none; width: 100%; box-sizing: border-box; } .brand { display: inline-flex; align-items: center; height: 3.125rem; text-decoration: none; } .brand img { width: auto; height: 100%; max-width: 6.5rem; display: block; } .nav-tab { color: var(--black); font-size: 1.125rem; font-weight: 400; letter-spacing: var(--ls-sm); line-height: 1; text-decoration: none; padding-bottom: 4px; } .nav-tab:hover, .nav-tab:active, .nav-tab:focus-visible { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1.5px; } .nav-tab--active { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1.5px; } .nav-tab-links { display: flex; align-items: center; gap: var(--space-5); } /* Badge */ .badge { position: relative; display: inline-block; width: fit-content; color: var(--olive-dark); font-family: var(--font-main); font-size: 1rem; font-weight: 600; letter-spacing: var(--ls-la); margin-bottom: var(--space-6); z-index: 0; } .badge::before { content: ""; position: absolute; inset: 0; background-color: var(--olive-light); margin: -0.25rem -0.75rem; z-index: -1; clip-path: polygon( 1.5% 0%, 100% 0%, 98.5% 100%, 0% 100% ); } /* Buttons */ .button-primary { display: inline-block; padding: 0.375rem 1.5rem; background-color: var(--olive); border: 1.5px solid var(--olive); border-radius: var(--radius-lg); font-family: var(--font-main); font-weight: 400; font-size: 1.25rem; color: var(--butter-light); cursor: pointer; text-decoration: none; transition: background-color 0.2s ease, border-color 0.2s ease; } .button-primary:hover { background-color: var(--olive-dark); border-color: var(--olive-dark); } .button-primary:disabled { border-color: transparent; background: transparent; color: var(--olive-dark); opacity: 0.6; padding: 0.375rem 0 0.375rem 1.5rem; cursor: not-allowed; } .button-primary-abmelden { display: inline-block; padding: 0.375rem 1.5rem; background-color: var(--blue); border: 1.5px solid var(--blue); border-radius: var(--radius-lg); font-family: var(--font-main); font-weight: 400; font-size: 1.25rem; color: var(--butter-light); cursor: pointer; text-decoration: none; transition: background-color 0.2s ease, border-color 0.2s ease; } .button-primary-abmelden:hover, .button-primary-abmelden:focus-visible { background: var(--blue-dark); border-color: var(--blue-dark); } .button-secondary { display: inline-block; padding: 0.375rem 1.5rem; background-color: var(--butter); border: 1.5px solid var(--olive); border-radius: var(--radius-lg); font-family: var(--font-main); font-weight: 400; font-size: 1.25rem; color: var(--olive); cursor: pointer; text-decoration: none; transition: color 0.2s ease; } .button-secondary:hover { color: var(--olive-dark); background-color: var(--olive-light); border-color: var(--olive-dark); } .button--outline { background-color: transparent; color: var(--olive); border: 1.5px solid var(--olive); } .button--outline:hover { background-color: var(--olive-light); color: var(--black); } .counter-button { width: 44px; height: 44px; background-color: var(--olive); border: 1.5px solid var(--olive); border-radius: var(--radius-lg); font-family: var(--font-main); font-weight: 400; font-size: 1.25rem; color: var(--butter); cursor: pointer; text-decoration: none; transition: background-color 0.2s ease, border-color 0.2s ease; } .counter-button:hover, .counter-button:focus-visible { background-color: var(--olive-dark); border-color: var(--olive-dark); } .button-small { background: var(--olive); color: var(--butter-light); font-size: 1.125rem; font-weight: 400; letter-spacing: var(--ls-sm); line-height: 1; text-decoration: none; padding: var(--space-1) var(--space-4); border-radius: var(--radius-md); } .button-small:hover, .button-small:active, .button-small:focus-visible { background: var(--olive-dark); color: var(--butter-light); } /* Auth-Links in ausgeloggter Navigation: klarer Aktiv-/Default-Zustand. */ .auth-nav-button--default { background: transparent; color: var(--olive); border: 2px solid var(--olive); } .auth-nav-button--default:hover, .auth-nav-button--default:focus-visible { background: var(--olive-light); color: var(--black); } .auth-nav-button--active { background: var(--olive); color: var(--butter-light); border: 2px solid var(--olive); } .profile-pill { width: 2.375rem; height: 2.375rem; border-radius: 1.1875rem; background: var(--tomato); color: var(--white); font-size: 1.0625rem; font-weight: 400; letter-spacing: var(--ls-ui); line-height: 1.3; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; } /* Utilities */ .text-center { text-align: left; } .hidden { display: none !important; } /* Card Footer */ .card-footer { margin-top: auto; padding-top: var(--space-3); width: 100%; } /* Text Muted */ .text-muted { color: #888; font-size: 0.8rem; font-weight: 400; line-height: 1.4; } /* Instagram Invite */ .instagram-invite { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: var(--space-7); } .instagram-invite__link { display: flex; align-items: center; gap: 16px; text-decoration: none; } .instagram-invite__icon { height: 32px; width: 32px; object-fit: contain; border-radius: 8px; filter: brightness(0) saturate(100%) invert(27%) sepia(81%) saturate(749%) hue-rotate(24deg) brightness(90%) contrast(90%); } .instagram-invite__logo { height: 56px; width: 56px; object-fit: contain; } /* Modal / Popup */ .modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.4); animation: modalFadeIn 0.3s ease; } @keyframes modalFadeIn { from { opacity: 0; } to { opacity: 1; } } .modal.show { display: flex; justify-content: center; align-items: center; } .modal-content { background-color: var(--white); padding: 40px; border-radius: var(--radius-lg); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); max-width: 500px; width: 90%; text-align: center; animation: modalSlideIn 0.3s ease; } @keyframes modalSlideIn { from { transform: translateY(-50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .modal-header { position: relative; margin-bottom: var(--space-4); } .modal-header h2 { color: var(--olive); font-size: 1.5rem; } .close-btn { position: absolute; right: 0; top: 0; font-size: 28px; color: var(--black); background: none; border: none; cursor: pointer; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; } .modal-body { color: var(--black); font-size: 1rem; line-height: 1.6; margin-bottom: var(--space-6); } .modal-footer { display: flex; gap: var(--space-2); justify-content: center; } /* Snackbar */ .snackbar { position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%) translateY(100px); background: var(--olive); color: var(--white); padding: var(--space-3) var(--space-6); border-radius: var(--radius-pill); font-size: 1rem; font-weight: 600; font-family: var(--font-main); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2); opacity: 0; transition: transform 0.4s ease, opacity 0.4s ease; z-index: 9999; pointer-events: none; } .snackbar--visible { transform: translateX(-50%) translateY(0); opacity: 1; } .snackbar--danger { background: var(--tomato); } /* Lightbox */ .lightbox { position: fixed; inset: 0; z-index: 200; display: none; align-items: center; justify-content: center; padding: 24px; } .lightbox.is-open { display: flex; } .lightbox__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.75); } .lightbox__content { position: relative; margin: 0; max-width: min(96vw, 1100px); max-height: 90vh; z-index: 1; } .lightbox__image { display: block; width: 100%; max-height: 90vh; object-fit: contain; border-radius: 16px; background: #111; } .lightbox__close { position: absolute; top: -42px; right: 0; border: 0; background: transparent; color: var(--white); font-size: 40px; line-height: 1; cursor: pointer; } /* Footer */ .footer { display: flex; justify-content: center; align-items: center; gap: 1.5rem; padding: var(--space-3) var(--space-5); border: none; margin-top: 2.5rem; } .footer__link { color: var(--black); text-decoration: underline; font-size: 0.8rem; font-weight: 400; } /* Media Queries (Responsive) */ @media (max-width: 48rem) { .container { width: 95%; } .nav { flex-direction: column; } }