319 lines
8.6 KiB
CSS
319 lines
8.6 KiB
CSS
/**
|
||
* Theme für den Publisher-Hub presseportale.com (presseportale.test)
|
||
*
|
||
* Eigener Charakter zwischen den beiden Brand-Portalen:
|
||
* - Surface: warmes Buchpapier (gleiche Familie wie BP24/Presseecho)
|
||
* - Primary: Hub-Blau (#1A2540) – seriös, plattform-neutral
|
||
* - Accent: gedecktes Bernstein (#B07A3A) – bewusst NICHT Orange (BP24) und NICHT Grün (Presseecho)
|
||
* - Schrift: Inter Tight + JetBrains Mono, OHNE Source Serif (Hub-Bezug, weniger editorial-redaktionell als die Brand-Portale)
|
||
*
|
||
* Token-Namen folgen wo möglich der BP24/Presseecho-Konvention (bg, bg-elev, bg-rule, ink-*),
|
||
* sodass viele Utility-Klassen identisch greifen. Hub-spezifische Tokens
|
||
* (hub, hub-2, hub-soft, accent-soft, hub-line) sind zusätzlich definiert.
|
||
*/
|
||
@import "./shared-styles.css";
|
||
|
||
@theme {
|
||
/* Surfaces — warmes Buchpapier, gleiche Familie wie die Brand-Portale */
|
||
--color-bg: #f6f4ef;
|
||
--color-bg-elev: #fbfaf6;
|
||
--color-bg-rule: #e2ddd0;
|
||
--color-bg-rule-strong: #1a1f1c;
|
||
--color-bg-dark: #15201a;
|
||
--color-bg-card: #ffffff;
|
||
--color-bg-card-warm: #efeadc;
|
||
--color-bg-card-warm-border: #d6cfbb;
|
||
|
||
/* Hub-Blau — Primary, plattform-neutral */
|
||
--color-hub: #1a2540;
|
||
--color-hub-2: #243152;
|
||
--color-hub-3: #2e3d66;
|
||
--color-hub-soft: #e5e9f1;
|
||
--color-hub-soft-2: #cfd6e4;
|
||
--color-hub-line: #7b8fbf;
|
||
|
||
/* Topbar (Alias für Hub-Gradient, damit shared base-Klassen passen) */
|
||
--color-topbar: #1a2540;
|
||
--color-topbar2: #243152;
|
||
--color-topbar-deep: #0f1729;
|
||
|
||
/* Akzent — gedecktes Bernstein (zwischen Orange und Beige) */
|
||
--color-accent: #b07a3a;
|
||
--color-accent-deep: #8a5e27;
|
||
--color-accent-soft: #f1e6d3;
|
||
--color-accent-warm: #b07a3a;
|
||
|
||
/* Ink — Anthrazit-Reihe */
|
||
--color-ink: #1a1f1c;
|
||
--color-ink-2: #3a413d;
|
||
--color-ink-3: #5a6360;
|
||
--color-ink-4: #8a918d;
|
||
--color-ink-on-dark: #f6f4ef;
|
||
--color-ink-on-dark-2: #b2b9c7;
|
||
--color-ink-on-dark-3: #7b8fbf;
|
||
--color-ink-on-dark-muted: #7b8fbf;
|
||
--color-ink-on-dark-rule: #2a3550;
|
||
|
||
/* Brand-Aliase, damit Komponenten, die brand-Tokens verwenden, funktionieren */
|
||
--color-brand: #1a2540;
|
||
--color-brand-deep: #0f1729;
|
||
--color-brand-soft: #e5e9f1;
|
||
--color-live: #c84a1e;
|
||
--color-gain: #2e8540;
|
||
--color-loss: #c8341e;
|
||
--color-ok: #2e8540;
|
||
|
||
/* Editorial-Akzente (für card-warm-Sektionen) */
|
||
--color-bg-card-warm-hover: #e6deca;
|
||
--color-bg-card-warm-rule: #c8bda3;
|
||
--color-card-warm-cat: #5a6360;
|
||
--color-card-warm-title: #2a302d;
|
||
--color-feature-line: #c0c8db;
|
||
--color-feature-dot: #d8dde9;
|
||
|
||
/* Fonts — Hub: Inter Tight + JetBrains Mono.
|
||
Source Serif 4 wird zusätzlich geladen, damit Markennennungen der
|
||
Tochter-Portale (presseecho, businessportal24) typografisch konsistent
|
||
erscheinen – im Hub-Standardtext kommt sie aber nicht zum Einsatz. */
|
||
--font-sans: "Inter Tight", Inter, system-ui, -apple-system,
|
||
BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||
--font-serif: "Source Serif 4", "Source Serif Pro", Charter,
|
||
"Iowan Old Style", Georgia, serif;
|
||
--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, SFMono-Regular,
|
||
Menlo, Consolas, monospace;
|
||
|
||
/* Layout */
|
||
--container-layout: 1280px;
|
||
}
|
||
|
||
/* HSL-Variablen für Legacy-Komponenten (shared-styles) */
|
||
:root {
|
||
--font-primary: var(--font-sans);
|
||
--font-secondary: var(--font-sans);
|
||
|
||
--background: 40 30% 95%; /* #f6f4ef */
|
||
--foreground: 144 8% 11%;
|
||
--card: 0 0% 100%;
|
||
--card-foreground: 144 8% 11%;
|
||
--popover: 0 0% 100%;
|
||
--popover-foreground: 144 8% 11%;
|
||
|
||
/* Primary: #1A2540 -> hsl(222, 43%, 18%) */
|
||
--primary: 222 43% 18%;
|
||
--primary-foreground: 0 0% 100%;
|
||
--primary-50: 222 43% 96%;
|
||
--primary-100: 222 43% 92%;
|
||
--primary-200: 222 43% 85%;
|
||
--primary-300: 222 43% 75%;
|
||
--primary-400: 222 43% 60%;
|
||
--primary-500: 222 43% 45%;
|
||
--primary-600: 222 43% 36%;
|
||
--primary-700: 222 43% 28%;
|
||
--primary-800: 222 43% 22%;
|
||
--primary-900: 222 43% 18%;
|
||
--primary-950: 222 43% 12%;
|
||
|
||
--secondary: 224 30% 30%;
|
||
--secondary-foreground: 0 0% 100%;
|
||
|
||
--muted: 40 18% 90%;
|
||
--muted-foreground: 144 6% 38%;
|
||
--accent: 31 51% 46%;
|
||
--accent-foreground: 0 0% 100%;
|
||
--destructive: 0 84% 60%;
|
||
--destructive-foreground: 0 0% 100%;
|
||
--border: 38 23% 85%;
|
||
--input: 38 23% 85%;
|
||
--ring: 222 43% 18%;
|
||
--radius: 4px;
|
||
|
||
--shadow-card: 0 1px 2px 0 rgb(26 37 64 / 0.06);
|
||
--shadow-card-hover: 0 4px 12px -2px rgb(26 37 64 / 0.12);
|
||
}
|
||
|
||
@layer base {
|
||
html,
|
||
body {
|
||
margin: 0;
|
||
padding: 0;
|
||
}
|
||
|
||
body {
|
||
background-color: #e8e4da;
|
||
color: var(--color-ink);
|
||
font-family: var(--font-sans);
|
||
-webkit-font-smoothing: antialiased;
|
||
font-feature-settings: "ss01", "cv11";
|
||
}
|
||
|
||
h1,
|
||
h2,
|
||
h3,
|
||
h4 {
|
||
font-family: var(--font-sans);
|
||
color: inherit;
|
||
letter-spacing: -0.01em;
|
||
}
|
||
|
||
.font-mono {
|
||
font-family: var(--font-mono);
|
||
font-feature-settings: "tnum";
|
||
}
|
||
}
|
||
|
||
@layer components {
|
||
/* Hub-Eyebrow — sperrgesetzt, in Hub-Blau */
|
||
.eyebrow {
|
||
font-size: 11px;
|
||
font-weight: 700;
|
||
letter-spacing: 0.2em;
|
||
text-transform: uppercase;
|
||
color: var(--color-hub);
|
||
}
|
||
.eyebrow.muted {
|
||
color: var(--color-ink-3);
|
||
letter-spacing: 0.16em;
|
||
font-weight: 600;
|
||
font-size: 10.5px;
|
||
}
|
||
.eyebrow.accent {
|
||
color: var(--color-accent-deep);
|
||
}
|
||
.eyebrow.on-dark {
|
||
color: var(--color-hub-line);
|
||
}
|
||
|
||
/* Section-Eyebrow mit kurzem Linien-Schwanz */
|
||
.section-eyebrow {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
font-size: 11px;
|
||
font-weight: 700;
|
||
letter-spacing: 0.22em;
|
||
text-transform: uppercase;
|
||
color: var(--color-hub);
|
||
}
|
||
.section-eyebrow::after {
|
||
content: "";
|
||
display: block;
|
||
width: 42px;
|
||
height: 1px;
|
||
background: var(--color-hub);
|
||
opacity: 0.45;
|
||
}
|
||
.section-eyebrow.on-dark {
|
||
color: var(--color-hub-line);
|
||
}
|
||
.section-eyebrow.on-dark::after {
|
||
background: var(--color-hub-line);
|
||
opacity: 0.55;
|
||
}
|
||
|
||
.rule {
|
||
height: 1px;
|
||
background: var(--color-bg-rule);
|
||
border: 0;
|
||
margin: 0;
|
||
}
|
||
.rule-strong {
|
||
height: 1px;
|
||
background: var(--color-bg-rule-strong);
|
||
border: 0;
|
||
margin: 0;
|
||
}
|
||
.rule-hub {
|
||
height: 2px;
|
||
background: var(--color-hub);
|
||
border: 0;
|
||
margin: 0;
|
||
}
|
||
|
||
/* Subtile geometrische Hintergrundlinien fürs Hero */
|
||
.hero-grid {
|
||
background-image:
|
||
linear-gradient(
|
||
to right,
|
||
rgba(26, 37, 64, 0.04) 1px,
|
||
transparent 1px
|
||
),
|
||
linear-gradient(
|
||
to bottom,
|
||
rgba(26, 37, 64, 0.04) 1px,
|
||
transparent 1px
|
||
);
|
||
background-size: 48px 48px;
|
||
background-position: -1px -1px;
|
||
}
|
||
|
||
/* Hub-Gradient-Klassen */
|
||
.bg-hub-grad {
|
||
background-image: linear-gradient(
|
||
135deg,
|
||
var(--color-hub) 0%,
|
||
var(--color-hub-2) 100%
|
||
);
|
||
}
|
||
.bg-hub-grad-2 {
|
||
background-image: linear-gradient(
|
||
180deg,
|
||
var(--color-hub) 0%,
|
||
var(--color-topbar-deep) 100%
|
||
);
|
||
}
|
||
.bg-accent-grad {
|
||
background-image: linear-gradient(
|
||
135deg,
|
||
var(--color-accent) 0%,
|
||
var(--color-accent-deep) 100%
|
||
);
|
||
}
|
||
.bg-topbar-grad {
|
||
background-image: linear-gradient(
|
||
135deg,
|
||
var(--color-topbar) 0%,
|
||
var(--color-topbar2) 100%
|
||
);
|
||
}
|
||
|
||
/* Empfohlen-Ribbon auf Tarif-Karten */
|
||
.ribbon-recommend {
|
||
position: absolute;
|
||
top: -1px;
|
||
left: -1px;
|
||
right: -1px;
|
||
background: var(--color-hub);
|
||
color: #fff;
|
||
font-size: 10.5px;
|
||
font-weight: 700;
|
||
letter-spacing: 0.18em;
|
||
text-transform: uppercase;
|
||
text-align: center;
|
||
padding: 8px 0;
|
||
}
|
||
|
||
/* Accordion-Pfeil (FAQ) */
|
||
details > summary {
|
||
list-style: none;
|
||
cursor: pointer;
|
||
}
|
||
details > summary::-webkit-details-marker {
|
||
display: none;
|
||
}
|
||
details[open] .faq-chev {
|
||
transform: rotate(180deg);
|
||
}
|
||
.faq-chev {
|
||
transition: transform 0.2s ease;
|
||
}
|
||
}
|
||
|
||
@layer utilities {
|
||
.tabular-nums {
|
||
font-variant-numeric: tabular-nums;
|
||
}
|
||
}
|
||
|
||
[x-cloak] {
|
||
display: none !important;
|
||
}
|