/* ============================================================ 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); padding: 70px 0 25px; background: var(--clr-bg-footer); font-size: var(--fs-400); } .site-footer__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; } @media (max-width: 768px) { .site-footer__grid { grid-template-columns: 1fr; } } .site-footer__heading { font-size: var(--fs-600); margin-bottom: 0.75rem; } .site-footer__address { font-style: normal; color: var(--clr-text-muted); } .site-footer__list { display: grid; gap: 0.4rem; } .site-footer__list a, .site-footer__address a { color: var(--clr-text-muted); } .site-footer__list a:hover, .site-footer__address a:hover { color: var(--clr-text); } .site-footer__copyright { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--clr-glass-border); color: var(--clr-text-faint); }