Refactor SCSS and HTML for improved layout, typography, and animations

This commit is contained in:
astosic 2025-08-04 19:03:47 +02:00
parent 30fb9c0827
commit 53eff1def7
8 changed files with 265 additions and 158 deletions

View file

@ -18,7 +18,7 @@ body {
margin-top: 1rem; }
h1 {
font-size: clamp(2rem, 5vw, 3rem);
font-size: clamp(2.5rem, 5vw, 4rem);
font-weight: 600;
line-height: 1.3;
margin-bottom: 1rem;
@ -30,7 +30,7 @@ h1.page-title {
text-transform: capitalize; }
h2 {
font-size: clamp(1.25rem, 2vw, 1.5rem);
font-size: clamp(2rem, 3vw, 2.5rem);
font-style: italic;
font-weight: 400;
line-height: 1.4;
@ -38,15 +38,16 @@ h2 {
color: #222; }
h3 {
font-size: clamp(1.2rem, 1.8vw, 1.5rem);
font-size: clamp(1.8rem, 1.8vw, 2rem);
font-weight: normal;
line-height: 1.6;
margin-bottom: 1rem;
color: inherit; }
color: inherit;
color: #F5A623; }
p {
font-style: normal;
font-size: clamp(1.3rem, 1.5vw, 1.4rem);
font-size: clamp(1.5rem, 1.5vw, 1.8rem);
margin-bottom: 1.25rem;
line-height: 1.6; }
@ -2522,10 +2523,17 @@ header .navbar-default .navbar-nav li a:hover {
.text-justify {
text-align: justify; }
/* ========== Vereinheitlichte Section-Abstände ========== */
section {
margin-bottom: 0; }
/* ========== Sektionen Padding (Intro etc.) ========== */
.section {
padding-top: 90px;
padding-bottom: 90px;
margin-top: 80px;
margin-bottom: 80px; }
/* Spezielle Section-Anpassungen */
#welcome.section,
#service.section {
padding-top: 90px;
@ -2592,7 +2600,7 @@ section {
@media (max-width: 575px) {
.gif-background::after {
background-color: rgba(255, 255, 255, 0.5); } }
/* ========== Service-Layout (Kacheln / Pfeile) ========== */
/* ========== Service-Layout ========== */
.service-arrow .block {
display: flex;
align-items: center;
@ -2679,7 +2687,7 @@ section {
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
z-index: 2; }
/* ========== Zusatz-Layouts für Leistungen & Fokusthemen ========== */
/* ========== Zusatz-Layouts ========== */
.spacer-lg {
height: 0px; }
@ -2713,31 +2721,25 @@ section {
font-size: 1rem;
color: #333; }
/* --- WHY AMPERION: Grid-Layout mit gleich hohen Karten --- */
/* ========== WHY AMPERION Grid ========== */
.why-grid {
display: grid;
gap: 2rem;
/* Desktop: 3 Spalten => 3×2 */
grid-template-columns: repeat(3, minmax(0, 1fr));
/* Jede Zeile passt sich der höchsten Karte an */
align-items: stretch; }
/* Tablet: 2 Spalten => 2×3 */
@media (max-width: 991.98px) {
.why-grid {
grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Mobil: 1 Spalte => 1×6 */
@media (max-width: 575.98px) {
.why-grid {
grid-template-columns: 1fr; } }
/* Karten sollen die Zellen voll ausfüllen */
.service-card {
display: flex;
flex-direction: column;
height: 100%;
/* gleiche Höhe pro Zeile */
background: #fff;
padding: 1.5rem;
border-radius: 10px;
@ -2745,7 +2747,6 @@ section {
transition: transform .25s ease, box-shadow .25s ease;
text-align: center; }
/* Icon einheitlich */
.service-icon {
width: 56px;
height: 56px;
@ -2753,7 +2754,6 @@ section {
margin: 0 auto .75rem auto;
display: block; }
/* Titel & Copy nutzen deine Basis-Typo, nur kleine Anpassungen */
.service-card-title {
font-weight: 600;
margin: .25rem 0 .5rem; }
@ -2762,11 +2762,17 @@ section {
line-height: 1.6;
margin: 0; }
/* ========== Container & Layout-Hilfen ========== */
/* ========== Container & Layout ========== */
.my-container {
width: 80%;
margin: 0 auto; }
.custom-container {
max-width: 1800px;
margin: 0 auto;
padding-left: 30px;
padding-right: 30px; }
.fixed-width {
max-width: 1200px;
margin: 0 auto; }
@ -2852,58 +2858,78 @@ section {
@media (min-width: 992px) {
#about-intro .intro-text {
font-size: 1.35rem; } }
/* ========== Call-to-Action ========== */
.call-to-action.cta-animated {
position: relative;
background-attachment: fixed;
background-size: cover;
background-position: center;
color: #ffffff;
padding: 6rem 1rem; }
.call-to-action.cta-animated .overlay-dark {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.6);
z-index: 0; }
.call-to-action.cta-animated .block {
position: relative;
z-index: 1; }
.call-to-action.cta-animated .cta-title {
font-size: clamp(1.8rem, 4vw, 2.8rem);
font-weight: 600;
margin-bottom: 1rem; }
.call-to-action.cta-animated .cta-subtitle {
font-size: clamp(1rem, 2vw, 1.4rem);
max-width: 800px;
margin: 0 auto 2rem auto;
line-height: 1.6; }
.call-to-action.cta-animated .cta-buttons {
display: flex;
justify-content: center;
gap: 1rem;
flex-wrap: wrap; }
.call-to-action.cta-animated .btn {
padding: 0.9rem 2rem;
font-size: 1rem;
transition: all 0.3s ease; }
.call-to-action.cta-animated .btn:hover {
transform: scale(1.05); }
/* ========== Logo Animation ========== */
.logo-container {
width: 80%;
margin: 0 auto;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
gap: 20px; }
.fade-in {
opacity: 0;
transform: translateY(20px);
animation: fadeInUp 1s ease forwards; }
.frame1 {
flex: 0 0 40%;
display: flex;
justify-content: center;
align-items: center; }
.delay-1 {
animation-delay: 0.2s; }
.frame2 {
flex: 0 0 60%;
display: flex;
justify-content: center;
align-items: center; }
.delay-2 {
animation-delay: 0.4s; }
.banner-logo {
max-width: 100%;
height: auto;
opacity: 0; }
@keyframes fadeInUp {
/* Animationen */
.frame1 .banner-logo {
animation: moveIn 1s forwards; }
.frame2 .banner-logo {
animation: moveIn 1s 0.5s forwards; }
@keyframes moveIn {
from {
transform: translateX(50px);
opacity: 0; }
to {
opacity: 1;
transform: translateY(0); } }
transform: translateX(0);
opacity: 1; } }
@keyframes fadeIn {
from {
opacity: 0; }
to {
opacity: 1; } }
.fade-in-title {
opacity: 0;
animation: fadeTitle 1.5s forwards 1s; }
@keyframes fadeTitle {
to {
opacity: 1; } }
@media (max-width: 768px) {
.logo-container {
flex-direction: column;
width: 90%; }
.frame1, .frame2 {
flex: 0 0 auto;
width: 100%;
margin-bottom: 20px; } }
/* ========== Body Base (aus style.scss) ========== */
body {
font-family: Arial, sans-serif;
text-align: center;
background-color: #ffffff;
margin: 0;
padding: 20px; }
/* 1) Die .logo-container bekommt 80% Breite => 10% links und 10% rechts frei */
.logo-container {