AMPERION_Webpage/assets/scss/custom.scss
2025-08-11 18:55:52 +02:00

1282 lines
25 KiB
SCSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ========== Typografie & Basis ========== */
.hero-section {
width: 100%;
text-align: center;
padding: 0 1rem;
}
.hero-title {
font-size: clamp(1.8rem, 4vw, 4rem);
font-weight: 400;
line-height: 1.2;
color: #046e6e;
word-break: normal;
hyphens: none;
}
/* ========== Vereinheitlichte Section-Abstände ========== */
section {
margin-bottom: 0;
}
.section {
padding-top: 90px;
padding-bottom: 90px;
margin-top: 80px;
margin-bottom: 80px;
}
/* ========== Beschreibung ========== */
.description {
font-size: 22px;
line-height: 1.5;
padding-top: 90px;
padding-bottom: 1px;
@media (max-width: 768px) {
font-size: 18px;
padding-top: 70px;
}
@media (max-width: 480px) {
font-size: 16px;
padding-top: 50px;
}
}
/* ========== Fakten ========== */
.facts .fact-item {
padding: 15px;
}
.fact-image {
height: 250px;
width: auto;
object-fit: contain;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
/* ========== Hintergründe ========== */
.custom-background {
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
.gif-background {
background-image: url('/images/BackgroundAnimation.svg');
background-repeat: no-repeat;
position: relative;
background-size: cover;
background-position: center 50%;
@media (max-width: 991px) {
background-size: 120% auto;
background-position: center 40%;
}
@media (max-width: 575px) {
background-size: 180% auto;
background-position: center 50%;
}
&::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(255, 255, 255, 0.8);
@media (max-width: 575px) {
background-color: rgba(255, 255, 255, 0.5);
}
}
}
/* ========== Service-Layout ========== */
.service-arrow .block {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20px;
border-radius: 100px;
color: #8a0909;
}
.service-content {
flex: 1;
}
.service-icon,
.service-image {
margin: 0;
}
.service-image img {
max-width: 600px;
height: auto;
display: block;
}
/* Farbvarianten für Services */
.bg-service1,
.bg-service3,
.bg-service5,
.bg-service7 {
background-color: #8bcfd6;
}
.bg-service2,
.bg-service4,
.bg-service6,
.bg-service8 {
background-color: #6baeb5;
}
/* Service-Gitter */
.service-grid {
display: grid;
gap: 1.5rem;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
justify-content: center;
align-items: stretch;
margin: 0 auto;
max-width: 1200px;
padding: 0 1rem;
}
.service-item-fixed {
width: 100%;
border-radius: 10px;
overflow: hidden;
position: relative;
}
.zoom-wrap {
transition: transform 0.3s ease;
width: 100%;
height: 100%;
position: relative;
&:hover {
transform: scale(1.06);
}
img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
a {
display: block;
text-decoration: none;
color: inherit;
}
.overlay {
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
background: rgba(0, 0, 0, 0.4);
z-index: 1;
}
}
.overlay-text {
position: absolute;
top: 50%; left: 50%;
transform: translate(-50%, -50%);
color: #fff;
font-size: 2.3em;
font-weight: bold;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
z-index: 2;
}
/* ========== Zusatz-Layouts ========== */
.spacer-lg {
height: 0px;
}
.service-item {
position: relative;
overflow: hidden;
border-radius: 8px;
img {
width: 100%;
display: block;
}
.overlay {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.3);
}
.overlay-text {
font-size: clamp(2rem, 2vw, 3rem);
}
}
.info-card {
text-align: center;
padding: 1rem;
i {
font-size: 2rem;
margin-bottom: 0.5rem;
}
h3 {
font-weight: 600;
margin-top: 0.5rem;
margin-bottom: 0.25rem;
font-size: 1.2rem;
color: #046e6e;
}
p {
font-size: 1rem;
color: #333;
}
}
/* ========== WHY AMPERION Grid + Cards (ohne Link-Gefühl, mit Icon-Animation) ========== */
.why-grid {
display: grid;
gap: 2rem;
grid-template-columns: repeat(3, minmax(0, 1fr));
align-items: stretch;
}
@media (max-width: 991.98px) { .why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .why-grid { grid-template-columns: 1fr; } }
.service-card {
position: relative;
display: flex;
flex-direction: column;
height: 100%;
background: #fff;
padding: 1.65rem 1.5rem;
border-radius: 14px;
box-shadow: 0 4px 12px rgba(0,0,0,.05);
transition: box-shadow .25s ease;
text-align: center;
cursor: default; /* kein Hand-Cursor -> kein Link-Feeling */
}
/* dezentes Hover-Feedback */
.service-card::after {
content: '';
position: absolute; inset: 0;
border-radius: inherit;
background: radial-gradient(120% 100% at 50% 0%, rgba(245,166,35,.10), rgba(245,166,35,0) 60%);
opacity: 0; transition: opacity .25s ease;
pointer-events: none;
}
.service-card:hover {
box-shadow: 0 10px 28px rgba(0,0,0,.08);
}
.service-card:hover::after {
opacity: .04; /* sehr dezent */
}
/* Icon */
.service-icon {
width: 56px; height: 56px;
object-fit: contain;
margin: 0 auto .85rem auto;
display: block;
transform-origin: center;
}
/* Titel & Text */
.service-card-title {
font-weight: 700;
margin: .25rem 0 .5rem;
}
.service-card-description {
line-height: 1.65;
margin: 0;
color: #333;
}
/* 1) Beim Einblenden (AOS setzt .aos-animate) kurzer, sauberer Pop-in */
@keyframes amp-pop {
0% { transform: scale(.92); opacity: 0; }
60% { transform: scale(1.02); opacity: 1; }
100% { transform: scale(1); }
}
.service-card.aos-animate .service-icon {
animation: amp-pop .45s cubic-bezier(.2,.9,.2,1) both;
}
/* 2) Dezentes „Atmen“ (idle), startet erst nach dem Pop-in */
@keyframes amp-breathe {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-2.5px); }
}
.service-card.aos-animate .service-icon {
/* zweite Animation hängt sich hinten dran */
animation:
amp-pop .45s cubic-bezier(.2,.9,.2,1) both,
amp-breathe 7s ease-in-out .45s infinite;
}
/* Reduced motion respektieren */
@media (prefers-reduced-motion: reduce) {
.service-card, .service-card::after { transition: none !important; }
.service-card .service-icon { animation: none !important; }
}
/* ========== 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;
}
.fixed-text {
max-width: 600px;
margin-right: 15px;
}
/* ========== Titel mit Hintergrund ========== */
.page-title::before {
content: '';
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
background-color: #ffffff;
z-index: -1;
}
/* ========== Bildkomponenten & Icons ========== */
.custom-image {
width: 100px;
max-width: 70%;
height: auto;
}
.custom-title {
color: #046e6e;
}
/* ========== Hover Links ========== */
.hover-link {
transition: color 0.3s ease;
&:hover {
color: #F5A623;
}
}
.about-cta {
color: #046e6e; /* Türkis */
font-weight: 700;
text-decoration: none;
border-bottom: 2px solid transparent;
transition: color 0.2s ease, border-color 0.2s ease;
}
.about-cta:hover,
.about-cta:focus {
color: #F5A623; /* Orange */
border-bottom-color: #F5A623;
}
/* ========== Mehrwerte ========== */
.mehrwerte-grid {
display: grid;
gap: 0;
grid-template-columns: repeat(1, 1fr);
@media (min-width: 768px) {
grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 1200px) {
grid-template-columns: repeat(4, 1fr);
}
}
.mehrwerte-box {
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100%;
padding: 30px;
border-radius: 8px;
transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
&:hover {
background-color: lighten(#004d4d, 10%);
transform: translateY(-4px);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
h4, p {
color: #000 !important;
}
}
h4, p {
color: #000 !important;
transition: color 0.3s ease;
}
}
.mehrwert-icon {
filter: invert(74%) sepia(39%) saturate(2198%) hue-rotate(344deg) brightness(101%) contrast(92%);
}
/* ========== Gründerteam & Intro-Text ========== */
.container-fluid {
max-width: 100%;
padding-left: 5vw;
padding-right: 5vw;
}
#about-intro .intro-text {
max-width: 200ch;
hyphens: auto;
-webkit-hyphens: auto;
overflow-wrap: anywhere;
margin-bottom: 1rem;
}
#about-intro .intro-text p,
#about-intro .intro-text li {
margin-bottom: 1rem;
}
/* ========== Logo Animation ========== */
.logo-container {
width: 80%;
margin: 0 auto;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
gap: 20px;
}
.frame1 {
flex: 0 0 40%;
display: flex;
justify-content: center;
align-items: center;
}
.frame2 {
flex: 0 0 60%;
display: flex;
justify-content: center;
align-items: center;
}
.banner-logo {
max-width: 100%;
height: auto;
opacity: 0;
}
/* 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 {
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;
}
/* Orange-Hover für Section-Grid (zoom-Variante) */
#leistungen-fokusthemen .service-item {
position: relative;
}
#leistungen-fokusthemen .service-item .overlay-text {
transition: color 0.25s ease;
}
#leistungen-fokusthemen .service-item:hover .overlay-text {
color: #F5A623; /* Akzentfarbe */
}
/* Abstand zwischen den beiden Grids */
#leistungen-fokusthemen .grid-spacer {
height: 4rem;
}
@media (max-width: 992px) {
#leistungen-fokusthemen .grid-spacer {
height: 2.5rem;
}
}
/* Bild unterhalb von "Darum AMPERION" */
.darum-image-wrapper {
margin-top: 4rem;
}
/* ===== Über AMPERION Section ===== */
/* Hintergrundfarbe */
.bg-light-grey {
background-color: #f3f3f3;
}
/* Grundlayout der Zeile */
#about .about-row {
min-height: 400px;
}
/* Bildbereich */
#about .about-image-wrap {
width: 100%;
display: flex;
align-items: flex-end; /* Bild unten ausrichten */
padding-top: 30px;
}
#about .about-image {
width: 100%;
max-width: clamp(200px, 38vw, 300px);
height: auto;
object-fit: contain;
margin-left: auto; /* rechtsbündig in Spalte */
}
/* Textbereich Abstände */
#about .text-left p {
margin-bottom: 1rem;
}
/* Link-Styling: Standard Türkis, Hover Orange */
/* -> auch wenn in <b> oder <strong> gewrappt */
#about .text-left a,
#about .text-left b a,
#about .text-left strong a {
color: var(--amp-primary) !important; /* Türkis */
font-weight: 700;
text-decoration: none;
border-bottom: 2px solid transparent;
transition: color 0.2s ease, border-color 0.2s ease;
}
#about .text-left a:hover,
#about .text-left b a:hover,
#about .text-left strong a:hover,
#about .text-left a:focus {
color: var(--amp-accent) !important; /* Orange */
border-bottom-color: var(--amp-accent);
}
#about .text-left a:focus-visible,
#about .text-left b a:focus-visible,
#about .text-left strong a:focus-visible {
outline: 2px dashed var(--amp-accent);
outline-offset: 2px;
}
/* ===== Affiliations unter "Darum AMPERION" ===== */
.darum-aff-row{
display:flex;
align-items:center;
justify-content:center;
gap:clamp(1.25rem, 3vw, 3.5rem);
flex-wrap:wrap; /* bricht sauber um */
margin-top:clamp(4rem, 4vw, 6rem);
}
.aff-group{
display:flex;
align-items:center;
gap:clamp(.75rem, 2vw, 1.25rem);
}
/* Linker Block (Ingenieurbüros etc.) */
.aff-caption{
margin:0 0 .5rem 0;
font-size:clamp(.9rem, 1.2vw, 1rem);
color:#6b7280;
text-align:left;
}
.aff-logos{
display:flex;
align-items:center;
gap:clamp(.5rem, 1.2vw, 1rem);
flex-wrap:wrap;
}
.aff-logos img{
max-height:clamp(100px, 3.2vw, 180px);
width:auto;
height:auto;
display:block;
}
/* Rechter Block: Nur Logo (klickbar) */
.aff-right{
display:flex; /* zentriert das Logo im Link */
align-items:center;
justify-content:center;
text-decoration:none;
color:inherit;
}
.aff-right .aff-pva-logo{
max-height:clamp(60px, 6vw, 120px); /* Logo-Größe hier steuern */
width:auto;
height:auto;
display:block;
}
/* Dezente Trennlinie zwischen links/rechts (nur Desktop) */
@media (min-width: 900px){
.aff-right{
padding-left:clamp(1rem, 2.5vw, 3rem);
border-left:1px solid #e5e7eb;
}
}
/* Mobil: keine Trennlinie / kein Einzug */
@media (max-width: 899.98px){
.aff-right{
border-left:0;
padding-left:0;
}
}
/* Fokus-Style für Tastaturbedienung */
.aff-right:focus-visible{
outline:2px dashed var(--amp-accent);
outline-offset:4px;
}
/* ========================================
CTA SECTION - HYBRID DESIGN
======================================== */
.cta {
--cta-primary: #046e6e; /* Türkis */
--cta-accent: #F5A623; /* Orange */
/* Button-Preset (hier zentral Größe steuern) */
--btn-py: clamp(1.8rem, 2.8vw, 2.5rem); /* oben/unten -> Höhe */
--btn-px: clamp(1.8rem, 2.8vw, 2.5rem); /* links/rechts -> Breite */
--btn-fs: clamp(1.8rem, 2.8vw, 2.5rem); /* Schriftgröße */
position: relative;
overflow: hidden;
padding: clamp(6rem, 10vw, 12rem) 0;
background: #ffffff00;
}
/* ===== HINTERGRUND ANIMATIONEN ===== */
.cta__bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
/* Subtiles Grid */
.cta__grid {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: transparent; /* Explizit transparent */
background-image:
linear-gradient(rgba(4, 110, 110, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(4, 110, 110, 0.03) 1px, transparent 1px);
background-size: 50px 50px;
animation: gridMove 20s linear infinite;
}
@keyframes gridMove {
0% { transform: translate(0, 0); }
100% { transform: translate(50px, 50px); }
}
/* Energie-Linien Container */
.cta__energy-lines {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0.6;
}
/* Horizontale Energie-Linie */
.energy-line-h {
position: absolute;
height: 1px;
background: linear-gradient(90deg,
transparent 0%,
var(--cta-primary) 10%,
var(--cta-primary) 90%,
transparent 100%);
width: 200px;
animation: energyFlowH 8s linear infinite;
&::after {
content: '';
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
width: 20px;
height: 3px;
background: var(--cta-primary);
box-shadow: 0 0 10px var(--cta-primary), 0 0 20px var(--cta-primary);
border-radius: 50%;
}
&.energy-line-h1 { top: 20%; animation-duration: 6s; }
&.energy-line-h2 { top: 40%; animation-duration: 7s; animation-delay: 2s; }
&.energy-line-h3 { top: 60%; animation-duration: 8s; animation-delay: 4s; }
&.energy-line-h4 { top: 80%; animation-duration: 6.5s; animation-delay: 1s; }
}
@keyframes energyFlowH {
0% {
left: -200px;
opacity: 0;
}
10% {
opacity: 1;
}
90% {
opacity: 1;
}
100% {
left: 100%;
opacity: 0;
}
}
/* Vertikale Energie-Linie */
.energy-line-v {
position: absolute;
width: 1px;
background: linear-gradient(180deg,
transparent 0%,
var(--cta-primary) 10%,
var(--cta-primary) 90%,
transparent 100%);
height: 150px;
animation: energyFlowV 10s linear infinite;
&::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 3px;
height: 20px;
background: var(--cta-primary);
box-shadow: 0 0 10px var(--cta-primary), 0 0 20px var(--cta-primary);
border-radius: 50%;
}
&.energy-line-v1 { left: 15%; animation-duration: 7s; animation-delay: 1s; }
&.energy-line-v2 { left: 35%; animation-duration: 9s; animation-delay: 3s; }
&.energy-line-v3 { left: 65%; animation-duration: 8s; animation-delay: 2s; }
&.energy-line-v4 { left: 85%; animation-duration: 7.5s; animation-delay: 4s; }
}
@keyframes energyFlowV {
0% {
top: -150px;
opacity: 0;
}
10% {
opacity: 1;
}
90% {
opacity: 1;
}
100% {
top: 100%;
opacity: 0;
}
}
/* Energie-Knoten (Kreuzungspunkte) */
.energy-node {
position: absolute;
width: 6px;
height: 6px;
background: var(--cta-primary);
border-radius: 50%;
box-shadow: 0 0 10px var(--cta-primary);
animation: nodePulse 2s ease-in-out infinite;
&.energy-node1 { top: 20%; left: 15%; animation-delay: 0s; }
&.energy-node2 { top: 40%; left: 35%; animation-delay: 0.5s; }
&.energy-node3 { top: 60%; left: 65%; animation-delay: 1s; }
&.energy-node4 { top: 80%; left: 85%; animation-delay: 1.5s; }
&.energy-node5 { top: 30%; left: 50%; animation-delay: 0.25s; }
&.energy-node6 { top: 70%; left: 25%; animation-delay: 0.75s; }
}
@keyframes nodePulse {
0%, 100% {
transform: scale(1);
opacity: 0.6;
}
50% {
transform: scale(1.5);
opacity: 1;
}
}
/* ===== CONTENT STYLES ===== */
.cta .my-container {
position: relative;
z-index: 1;
}
.cta__wrap {
text-align: center;
max-width: 72rem;
margin: 0 auto;
padding: 0 clamp(1rem, 3vw, 2rem);
}
/* Große Typografie */
.cta__title {
margin: 0;
color: var(--cta-primary);
font-weight: 700;
letter-spacing: .2px;
font-size: clamp(2.2rem, 4.8vw, 3.6rem);
position: relative;
z-index: 2;
}
.cta__lead {
margin: .9rem auto 0;
color: #0f172a;
font-size: clamp(1.2rem, 2.8vw, 1.7rem);
line-height: 1.55;
max-width: 58rem;
position: relative;
z-index: 2;
}
.cta__accent {
color: var(--cta-accent);
font-weight: 700;
display: block;
margin-top: 0.5rem;
}
/* Buttons deutlich größer */
.cta__actions {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: clamp(1rem, 2.4vw, 1.6rem);
margin-top: clamp(1.4rem, 3vw, 2.2rem);
position: relative;
z-index: 2;
}
.cta__btn {
display: inline-flex;
align-items: center;
gap: .7rem;
padding: var(--btn-py) var(--btn-px);
border-radius: 9999px;
background: #fff;
color: var(--cta-primary);
border: 1px solid rgba(0,0,0,.06);
box-shadow: 0 1px 3px rgba(0,0,0,.06);
text-decoration: none;
font-weight: 700;
font-size: var(--btn-fs);
transition: background .15s ease, color .15s ease, box-shadow .2s ease, transform .04s ease;
position: relative;
overflow: hidden;
&::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: var(--cta-accent);
transform: translate(-50%, -50%);
transition: width 0.6s ease, height 0.6s ease;
z-index: -1;
}
&:hover {
background: var(--cta-accent);
color: #fff;
box-shadow: 0 8px 22px rgba(245,166,35,.35);
&::before {
width: 300%;
height: 300%;
}
}
&:active {
transform: translateY(1px);
}
&:focus-visible {
outline: 2px dashed var(--cta-accent);
outline-offset: 3px;
}
}
/* Social-Icons (etwas größer, Teal-Hover) */
.cta__social {
display: flex;
justify-content: center;
gap: clamp(.9rem, 2vw, 1.2rem);
margin-top: clamp(1.2rem, 2.4vw, 1.6rem);
position: relative;
z-index: 2;
}
.cta__social-link {
width: clamp(65px, 10vw, 70px);
height: clamp(65px, 10vw, 70px);
display: inline-flex;
align-items: center;
justify-content: center;
background: #fff;
border-radius: 9999px;
box-shadow: 0 1px 3px rgba(0,0,0,.06);
transition: background .2s ease, box-shadow .2s ease, transform .04s ease;
text-decoration: none;
position: relative;
overflow: hidden;
&::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: var(--cta-accent);
transform: translate(-50%, -50%);
transition: width 0.4s ease, height 0.4s ease;
z-index: -1;
}
&:hover {
background: var(--cta-accent);
box-shadow: 0 6px 16px rgba(4,110,110,.25);
transform: translateY(-2px);
&::before {
width: 100%;
height: 100%;
}
img {
filter: invert(1);
}
}
&:active {
transform: translateY(1px);
}
img {
width: clamp(24px, 3vw, 28px);
height: auto;
display: block;
transition: filter .2s ease;
position: relative;
z-index: 1;
}
}
/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
.energy-line-h2,
.energy-line-h4,
.energy-line-v2,
.energy-line-v4,
.energy-node4,
.energy-node5,
.energy-node6 {
display: none;
}
}
/* Weniger Abstand zur vorherigen Überschrift */
#about-intro.section.section-tight {
padding-top: 28px; /* statt 90px */
padding-bottom: 60px;
}
/* Keine eigene Schriftgröße erbt globales p-Design */
#about-intro .intro-text { font-size: inherit; line-height: inherit; }
#about-intro .intro-text p { margin-bottom: .8rem; }
/* Badges vereinheitlichen */
#about-intro .intro-badge {
font-size: 1rem;
padding: .45em .9em;
background: #006464;
border-radius: 999px;
}
/* About-Intro: Video ohne abgerundete Ecken */
.intro-video { width: 100%; height: 100%; object-fit: cover; display: block; }
.intro-media, .intro-video { border-radius: 0 !important; } /* überschreibt evtl. globale Styles */
/* ========================================
ABOUT PAGE STYLES
======================================== */
/* 1) Intro: Bild rechts, Text links, konsistente Abstände */
#about-intro {
.intro-content {
/* nutzt globale Typo; nur Abstände angleichen */
.article-copy {
p { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }
strong { font-weight: 700; }
}
}
.intro-image-wrapper {
position: relative;
}
.intro-image {
display: block;
width: 100%;
height: auto;
border-radius: .75rem; /* wie Cards */
box-shadow: 0 6px 30px rgba(0,0,0,.05);
object-fit: cover;
}
}
/* 2) Mission/Vision/Ziel: Tabs & Inhalt wie auf Index */
.mission-section {
.mission-tabs {
border-bottom: 1px solid #eaeaea;
margin-bottom: 1rem;
.nav-link {
border: 0;
padding: .5rem 1rem;
font-weight: 600;
color: #046e6e;
opacity: .7;
&.active,
&:hover {
opacity: 1;
border-bottom: 2px solid #046e6e;
background: transparent;
}
}
}
.mission-tab-content {
.tab-inner {
background: #fff;
border: 1px solid #eee;
border-radius: .75rem;
padding: 1.25rem;
box-shadow: 0 8px 24px rgba(0,0,0,.04);
p { margin-bottom: .9rem; }
p:last-child { margin-bottom: 0; }
}
}
}
/* 3) „Was uns auszeichnet“: Grid andocken an bestehende Service-Cards */
.why-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 1.25rem;
@media (max-width: 992px) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 576px) {
grid-template-columns: 1fr;
}
}
.service-card {
background: #fff;
border: 1px solid #eee;
border-radius: .75rem;
padding: 1.25rem;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-start;
text-align: center;
box-shadow: 0 8px 24px rgba(0,0,0,.04);
.service-icon {
width: 48px;
height: 48px;
margin: 0 auto .5rem;
display: block;
}
.service-card-title {
font-weight: 700;
margin-bottom: .35rem;
}
.service-card-description {
margin: 0;
}
}
/* 4) Team-Block: Karten & Bild */
.team-image {
display: block;
width: 100%;
height: auto;
border-radius: .75rem;
box-shadow: 0 6px 30px rgba(0,0,0,.05);
object-fit: cover;
}
.founder-card {
background: #fff;
border: 1px solid #eee;
border-radius: .75rem;
padding: 1.25rem;
height: 100%;
box-shadow: 0 8px 24px rgba(0,0,0,.04);
.founder-name {
margin-bottom: .5rem;
font-weight: 700;
}
.founder-description {
p { margin-bottom: .8rem; }
p:last-child { margin-bottom: 0; }
}
}
/* 5) Utilities: Badge-Row unter Intro-Text */
#about-intro .badge {
border: 1px solid #eaeaea;
background: #fafafa;
font-weight: 600;
}
/* 6) Harmonisierung der Section-Spacings für About */
#about-intro.section { padding-top: 90px; padding-bottom: 90px; }
.mission-section.section { padding-top: 0; padding-bottom: 90px; }
/* ABOUT Intro schmal & Blocksatz */
#about-intro .intro-text.article-copy {
max-width: 100ch; /* schmaler Textblock */
margin: 0 auto;
text-align: justify; /* „blocksartig“ */
text-justify: inter-word;
hyphens: auto;
-webkit-hyphens: auto;
overflow-wrap: anywhere;
}
#about-intro .intro-text.article-copy p {
margin-bottom: .9rem; /* etwas kompakter als Standard */
}
/* H2 optisch sauber zentrieren/ausbalancieren */
#about-intro h2 {
text-wrap: balance;
margin-bottom: 4rem;
}