/* ============================================================ LAYOUT — Container, Header, Navigation, Footer, Sektionen ============================================================ */ .container { max-width: var(--container-max); margin-inline: auto; padding-inline: var(--container-pad); } .section { padding-block: var(--space-section); } .section--center { text-align: center; } .section--center p { margin-inline: auto; } /* --- Header --- */ .site-header { position: absolute; inset: 20px 0 auto 0; z-index: 10; } /* Desktop: Logo links | Nav exakt zentriert | CTAs rechts */ .site-header__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.5rem; min-height: var(--header-h); } .site-header__brand { justify-self: start; display: flex; align-items: center; text-decoration: none; color: var(--clr-text); } .site-header__logo { height: var(--logo-h); width: auto; filter: drop-shadow(var(--shadow)); } .site-header__actions { justify-self: end; display: flex; align-items: center; gap: 0.75rem; } /* --- Navigation --- */ .site-nav { justify-self: center; } .site-nav__toggle { display: none; } .site-nav__list { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem; font-size: var(--fs-500); } .site-nav__list a:not(.btn) { color: var(--clr-text); text-decoration: none; padding-block: 0.25em; border-bottom: 2px solid transparent; transition: border-color var(--transition); } .site-nav__list a:not(.btn):hover, .site-nav__list a:not(.btn)[aria-current="page"] { border-bottom-color: var(--clr-accent); } @media (max-width: 1249px) { /* Mobile: Logo links, CTAs + Burger rechts */ .site-header__inner { display: flex; justify-content: space-between; } .site-header__actions { order: 2; margin-left: auto; /* CTAs bleiben über dem Menü-Overlay sichtbar */ position: relative; z-index: 30; } .site-nav { order: 3; } .site-nav__toggle { display: grid; place-items: center; width: 48px; height: 48px; background: transparent; border: 0; cursor: pointer; } /* Burger: Mittelbalken + Pseudo-Balken, animiert zum X */ .site-nav__toggle-bar, .site-nav__toggle-bar::before, .site-nav__toggle-bar::after { display: block; width: 28px; height: 3px; background: var(--clr-text); border-radius: 2px; transition: transform var(--transition), opacity var(--transition); } .site-nav__toggle-bar { position: relative; } .site-nav__toggle-bar::before, .site-nav__toggle-bar::after { content: ''; position: absolute; left: 0; } .site-nav__toggle-bar::before { top: -9px; } .site-nav__toggle-bar::after { top: 9px; } .site-nav__toggle[aria-expanded="true"] .site-nav__toggle-bar { background: transparent; } .site-nav__toggle[aria-expanded="true"] .site-nav__toggle-bar::before { transform: translateY(9px) rotate(45deg); } .site-nav__toggle[aria-expanded="true"] .site-nav__toggle-bar::after { transform: translateY(-9px) rotate(-45deg); } .site-nav__list { position: fixed; inset: 0; z-index: 20; flex-direction: column; justify-content: center; gap: 1.75rem; background: rgb(0 0 0 / 0.91); font-size: var(--fs-700); visibility: hidden; opacity: 0; transition: opacity var(--transition), visibility var(--transition); } .site-nav__list a:not(.btn) { font-family: var(--ff-heading); text-transform: uppercase; } body.nav-open .site-nav__list { visibility: visible; opacity: 1; } body.nav-open { overflow: hidden; } /* Toggle über dem Overlay halten */ .site-nav__toggle { position: relative; z-index: 30; } } /* CTAs im Overlay-Menü: nur auf schmalen Screens (dort fehlen sie im Header) */ .site-nav__cta { display: none; } @media (max-width: 600px) { /* Schmale Screens: nur der primäre (letzte) CTA neben dem Burger */ .site-header__actions a:not(:last-child) { display: none; } .site-header__actions .btn { font-size: var(--fs-400); padding: 8px 14px; } /* Im offenen Menü übernehmen die Overlay-CTAs */ .site-nav__cta { display: block; margin-top: 1rem; } body.nav-open .site-header__actions { visibility: hidden; } } /* --- Footer --- */ .site-footer { margin-top: var(--space-section); background: var(--clr-bg-footer); font-size: var(--fs-500); } .site-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1.2fr 1fr; gap: 3rem; padding-block: 4.5rem 3.5rem; } @media (max-width: 992px) { .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 600px) { .site-footer__grid { grid-template-columns: 1fr; gap: 2.5rem; } } /* Brand-Block */ .site-footer__brand { display: grid; justify-items: start; gap: 1.25rem; } .site-footer__claim { color: var(--clr-text-muted); max-width: 36ch; } .site-footer__social { display: grid; gap: 0.5rem; } .site-footer__social a { display: inline-flex; align-items: center; gap: 0.6rem; padding-block: 0.3rem; color: var(--clr-text-muted); text-decoration: none; transition: color var(--transition); } .site-footer__social .icon { font-size: 1.25em; color: var(--clr-text); } /* Spalten-Headings mit rotem Akzentstrich */ .site-footer__heading { font-size: var(--fs-600); margin-bottom: 1.1rem; padding-bottom: 0.5rem; position: relative; } .site-footer__heading::after { content: ''; position: absolute; left: 0; bottom: 0; width: 2.5rem; height: 3px; background: var(--clr-accent); border-radius: 2px; } .site-footer__address { font-style: normal; color: var(--clr-text-muted); display: grid; gap: 1rem; } .site-footer__address p { display: flex; gap: 0.6rem; margin: 0; } .site-footer__address .icon { flex: none; margin-top: 0.3em; color: var(--clr-text); } .site-footer__list { display: grid; gap: 0.25rem; } .site-footer__list a, .site-footer__address a { display: inline-block; padding-block: 0.3rem; color: var(--clr-text-muted); text-decoration: none; transition: color var(--transition); } .site-footer__list a:hover, .site-footer__address a:hover, .site-footer__social a:hover { color: var(--clr-text); text-decoration: underline; text-underline-offset: 0.25em; } /* Bottom-Bar */ .site-footer__bottom { border-top: 1px solid var(--clr-glass-border); } .site-footer__bottom-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 2rem; padding-block: 1.5rem; font-size: var(--fs-400); color: var(--clr-text-muted); } .site-footer__bottom-inner p { margin: 0; }