/* Gemeinsame Basis, Header, Buttons und Footer aus TriHub Design Original. */ /* 1. Grundlagen und Typografie */ :root { --page: var(--background); --text: #fff; --muted: rgb(255 255 255 / 70%); --quiet: rgb(255 255 255 / 56%); --line: rgb(255 255 255 / 10%); --mint: oklch(70% .12 205); --panel: linear-gradient(#ffffff14, #08060608); --ease: cubic-bezier(.22, 1, .36, 1); color-scheme: dark; } * { box-sizing: border-box; } html { scroll-behavior: smooth; scroll-padding-top: 120px; } body { margin: 0; background: var(--background); color: var(--text); font-family: var(--font-sans), sans-serif; font-size: 1.0625rem; line-height: 1.7; -webkit-font-smoothing: antialiased; } main { overflow: clip; } h1, h2, h3, p, figure { margin: 0; } h1, h2, h3 { font-family: var(--font-display), sans-serif; font-weight: 700; letter-spacing: -.04em; text-wrap: balance; } h1, h2 { line-height: 1.12; } h3 { line-height: 1.35; } a { color: inherit; text-decoration: none; } button, select { font: inherit; } button { cursor: pointer; border: 0; } button, a, select { -webkit-tap-highlight-color: transparent; } a, button, select { touch-action: manipulation; } :where(button, a, select):focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 5px; } img { display: block; max-width: 100%; object-fit: cover; } button:disabled { cursor: default; } [hidden] { display: none !important; } .shell { width: min(1280px, calc(100% - 128px)); margin-inline: auto; } /* 2. Kopfbereich – Website-Logo ganz links, wie auf der Referenzseite */ .site-header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--line); background: linear-gradient(color-mix(in oklab, var(--background) 95%, transparent), color-mix(in oklab, var(--background) 80%, transparent)); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); } .header-inner { width: calc(100% - 64px); min-height: 98px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 16px; } .brand { display: inline-flex; align-items: center; gap: 16px; flex-shrink: 0; } .brand-mark { display: flex; align-items: center; justify-content: center; width: 74px; height: 66px; padding: 8px 12px; overflow: hidden; border: 1px solid rgb(255 255 255 / 12%); border-radius: 1.1rem; background: #fff; box-shadow: 0 14px 34px rgb(0 0 0 / 22%); } .brand-logo img { width: 48px; height: 48px; object-fit: contain; } .brand-copy { display: grid; gap: 3px; } .brand-name { color: var(--quiet); font-size: .75rem; letter-spacing: .28em; text-transform: uppercase; } .brand-sub { color: var(--muted); font-size: .875rem; line-height: 1.5; } .header-inner nav { display: flex; align-items: center; gap: 5px; margin-left: auto; } .header-inner nav a { padding: 9px 14px; border: 1px solid transparent; border-radius: 999px; color: var(--muted); font-size: .875rem; white-space: nowrap; transition: color .2s, background .2s, border-color .2s, box-shadow .2s; } .header-inner nav a:hover { border-color: var(--mint); background: var(--mint); color: #000; box-shadow: 0 0 18px color-mix(in srgb, var(--mint) 65%, transparent), inset 0 0 10px rgb(255 255 255 / 28%); } .menu-toggle { display: none; } .skip { position: fixed; left: 16px; top: -100px; z-index: 100; padding: 12px 20px; border-radius: 999px; background: #fff; color: var(--ink-strong); } .skip:focus { top: 12px; } /* 3. Buttons – weiße Primär-CTAs, zurückhaltende Konturen */ .button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 14px 24px; border: 1px solid transparent; border-radius: 999px; background: #fff; color: var(--ink-strong); font-size: .9375rem; font-weight: 600; line-height: 1.45; text-align: center; transition: background .25s, border-color .25s, transform .25s var(--ease); } .button:hover { background: #e9edf0; transform: translateY(-2px); } .button.small { min-height: 42px; padding: 10px 20px; font-size: .875rem; } .button.outline { border-color: rgb(255 255 255 / 16%); background: transparent; color: #fff; } .button.outline:hover { border-color: rgb(255 255 255 / 28%); background: rgb(255 255 255 / 7%); } .text-link { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0; border-bottom: 1px solid rgb(255 255 255 / 28%); background: transparent; color: rgb(255 255 255 / 86%); font-size: .9375rem; font-weight: 500; line-height: 1.4; transition: color .2s, border-color .2s; } .text-link:hover { color: #fff; border-color: #fff; } /* Footer */ footer { border-top: 1px solid var(--line); background: var(--sidebar); } .footer-main { display: flex; align-items: center; gap: 24px; padding-block: 32px; } .footer-main p { color: var(--muted); font-size: .9375rem; } .footer-main>a:last-child { margin-left: auto; color: var(--muted); font-size: .875rem; } .footer-main>a:last-child:hover { color: #fff; } .footer-note { display: flex; justify-content: space-between; gap: 24px; padding-block: 20px; border-top: 1px solid var(--line); color: var(--quiet); font-size: .75rem; }