PM_Project/css/base.css

322 lines
5.3 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/* 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;
}