Improve hero layout, gallery grid, and anchor scroll offset.

Stack hero actions in a row, center the fifth gallery item, and offset in-page navigation for the sticky header.
This commit is contained in:
2026-09-07 15:43:38 +02:00
parent 8d201527a9
commit d91c03002b
+43 -22
View File
@@ -1,4 +1,3 @@
:root { :root {
--brand: #f78f1e; --brand: #f78f1e;
--brand-deep: #d96f12; --brand-deep: #d96f12;
@@ -13,6 +12,9 @@
--muted: #8b9298; --muted: #8b9298;
--max-width: 72rem; --max-width: 72rem;
--header-height: 5rem; --header-height: 5rem;
--notice-bar-height: 1.875rem;
--site-header-height: calc(var(--header-height) + var(--notice-bar-height));
--sticky-offset: calc((var(--site-header-height) + 0.5rem) * 0.5);
--radius: 0.5rem; --radius: 0.5rem;
--radius-lg: 0.75rem; --radius-lg: 0.75rem;
} }
@@ -27,6 +29,10 @@ html {
scroll-behavior: smooth; scroll-behavior: smooth;
} }
main > section[id] {
scroll-margin-top: var(--sticky-offset);
}
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
html { html {
scroll-behavior: auto; scroll-behavior: auto;
@@ -35,7 +41,11 @@ html {
body { body {
margin: 0; margin: 0;
font-family: system-ui, -apple-system, "Segoe UI", sans-serif; font-family:
system-ui,
-apple-system,
"Segoe UI",
sans-serif;
font-size: 1rem; font-size: 1rem;
line-height: 1.6; line-height: 1.6;
color: var(--text); color: var(--text);
@@ -68,7 +78,6 @@ a:hover {
margin-inline: auto; margin-inline: auto;
} }
.site-notice { .site-notice {
padding-block: 0.375rem; padding-block: 0.375rem;
text-align: center; text-align: center;
@@ -145,7 +154,6 @@ a:hover {
color: var(--text); color: var(--text);
} }
.btn { .btn {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
@@ -157,7 +165,10 @@ a:hover {
font-weight: 600; font-weight: 600;
line-height: 1.4; line-height: 1.4;
cursor: pointer; cursor: pointer;
transition: background 0.15s, border-color 0.15s, color 0.15s; transition:
background 0.15s,
border-color 0.15s,
color 0.15s;
} }
.btn--primary { .btn--primary {
@@ -184,7 +195,6 @@ a:hover {
background: var(--surface); background: var(--surface);
} }
.hero { .hero {
position: relative; position: relative;
padding-block: clamp(3rem, 8vw, 6rem); padding-block: clamp(3rem, 8vw, 6rem);
@@ -196,8 +206,16 @@ a:hover {
position: absolute; position: absolute;
inset: 0; inset: 0;
background: background:
radial-gradient(ellipse 80% 60% at 50% -20%, rgba(247, 143, 30, 0.18), transparent), radial-gradient(
radial-gradient(ellipse 50% 40% at 100% 50%, rgba(0, 154, 218, 0.1), transparent); ellipse 80% 60% at 50% -20%,
rgba(247, 143, 30, 0.18),
transparent
),
radial-gradient(
ellipse 50% 40% at 100% 50%,
rgba(0, 154, 218, 0.1),
transparent
);
pointer-events: none; pointer-events: none;
} }
@@ -243,7 +261,7 @@ a:hover {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 0.5rem 0.75rem; gap: 0.5rem 0.75rem;
margin: 0 0 1.25rem; margin: 0;
padding: 0; padding: 0;
list-style: none; list-style: none;
} }
@@ -267,13 +285,13 @@ a:hover {
} }
.hero__sub { .hero__sub {
margin: 0 0 2rem; margin: 2rem 0 2rem;
font-size: clamp(1rem, 2vw, 1.125rem); font-size: clamp(1rem, 2vw, 1.125rem);
color: var(--muted); color: var(--muted);
line-height: 1.7; line-height: 1.7;
} }
.hero__actions { .hero__actions-row {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
align-items: flex-end; align-items: flex-end;
@@ -304,7 +322,6 @@ a:hover {
justify-content: center; justify-content: center;
} }
.section { .section {
padding-block: clamp(3rem, 6vw, 5rem); padding-block: clamp(3rem, 6vw, 5rem);
} }
@@ -326,7 +343,6 @@ a:hover {
color: var(--muted); color: var(--muted);
} }
.about p { .about p {
margin: 0 0 1rem; margin: 0 0 1rem;
max-width: 42rem; max-width: 42rem;
@@ -337,7 +353,6 @@ a:hover {
margin-bottom: 0; margin-bottom: 0;
} }
.pillars { .pillars {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@@ -382,7 +397,6 @@ a:hover {
background: var(--accent); background: var(--accent);
} }
.features-grid { .features-grid {
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
@@ -404,7 +418,12 @@ a:hover {
.feature-card--lead { .feature-card--lead {
border-color: rgba(247, 143, 30, 0.4); border-color: rgba(247, 143, 30, 0.4);
background: linear-gradient(135deg, rgba(247, 143, 30, 0.08), rgba(0, 154, 218, 0.05), var(--surface)); background: linear-gradient(
135deg,
rgba(247, 143, 30, 0.08),
rgba(0, 154, 218, 0.05),
var(--surface)
);
} }
.feature-card__icon { .feature-card__icon {
@@ -441,7 +460,6 @@ a:hover {
margin-top: 0.375rem; margin-top: 0.375rem;
} }
.steps { .steps {
display: grid; display: grid;
grid-template-columns: repeat(3, 1fr); grid-template-columns: repeat(3, 1fr);
@@ -493,7 +511,6 @@ a:hover {
color: var(--muted); color: var(--muted);
} }
.roadmap { .roadmap {
display: grid; display: grid;
grid-template-columns: repeat(3, 1fr); grid-template-columns: repeat(3, 1fr);
@@ -529,7 +546,6 @@ a:hover {
color: var(--muted); color: var(--muted);
} }
.gallery { .gallery {
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
@@ -542,6 +558,14 @@ a:hover {
} }
} }
@media (min-width: 40.01rem) {
.gallery__item--last {
grid-column: 1 / -1;
justify-self: center;
width: calc((100% - 1.25rem) / 2);
}
}
.gallery__item { .gallery__item {
margin: 0; margin: 0;
} }
@@ -640,7 +664,6 @@ body:has(.lightbox:target) {
border-color: var(--accent); border-color: var(--accent);
} }
.cta-block { .cta-block {
text-align: center; text-align: center;
padding: 2.5rem 1.5rem; padding: 2.5rem 1.5rem;
@@ -669,7 +692,6 @@ body:has(.lightbox:target) {
font-size: 0.875rem; font-size: 0.875rem;
} }
.contact-grid { .contact-grid {
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
@@ -711,7 +733,6 @@ body:has(.lightbox:target) {
color: var(--muted); color: var(--muted);
} }
.site-footer { .site-footer {
padding-block: 2rem 2.5rem; padding-block: 2rem 2.5rem;
border-top: 1px solid var(--border); border-top: 1px solid var(--border);