AMPERION_Webpage/assets/scss/custom.scss

721 lines
13 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(2.5rem, 4vw, 4rem);
font-weight: 400;
line-height: 1.2;
color: #046e6e;
word-break: normal;
hyphens: none;
}
.text-center {
text-align: center;
}
.text-justify {
text-align: justify;
}
/* ========== Vereinheitlichte Section-Abstände ========== */
section {
margin-bottom: 0;
}
.section {
padding-top: 90px;
padding-bottom: 90px;
margin-top: 80px;
margin-bottom: 80px;
}
/* Spezielle Section-Anpassungen */
#welcome.section,
#service.section {
padding-top: 90px;
padding-bottom: 4px;
}
.section-spacing {
padding-top: 4rem;
padding-bottom: 4rem;
margin-top: 5rem;
}
/* ========== 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 (ohne „das führt irgendwo hin“) */
.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;
color: #F5A623; /* CI-Orange bleibt */
}
.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;
}
}
/* ========== 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 {
font-size: 1.25rem;
line-height: 1.85;
max-width: 200ch;
hyphens: auto;
-webkit-hyphens: auto;
overflow-wrap: anywhere;
margin-bottom: 1rem;
p, li {
margin-bottom: 1rem;
}
@media (min-width: 992px) {
font-size: 1.35rem;
}
}
/* ========== 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(260px, 38vw, 480px);
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 */
.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 (PV Austria + Text) */
.aff-right{
text-decoration:none; color:inherit;
align-items:center;
}
.aff-right .aff-pva-logo{
max-height:clamp(80px, 6vw, 140px);
width:auto; height:auto; display:block;
}
.aff-text{
margin:0;
font-size:clamp(.95rem, 1.4vw, 1.1rem);
line-height:1.5;
max-width:42ch; /* gute Lesbarkeit */
color:#374151;
}
/* 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;
}
}
/* Kleine Verfeinerungen */
.aff-right:focus-visible{
outline:2px dashed var(--amp-accent);
outline-offset:4px;
}