This commit is contained in:
2026-02-05 11:53:21 +01:00
parent afcbd07d56
commit 1ff8454432
37 changed files with 5462 additions and 3491 deletions

View File

@@ -20,7 +20,7 @@ body {
min-height: 100vh;
}
/* Top Banner */
/* Top Banner - Ultra Smooth Performance */
.top-banner {
background-color: var(--primary-light);
color: var(--primary-dark);
@@ -29,50 +29,99 @@ body {
display: flex;
align-items: center;
justify-content: space-between;
position: sticky;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1001;
border-bottom: 1px solid #4f47471a;
transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1),
padding 0.25s cubic-bezier(0.4, 0, 0.2, 1);
will-change: height, padding;
border-bottom: 3px solid var(--accent-orange);
overflow: hidden;
/* Ultra-smooth transitions with hardware acceleration */
transition: height 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
padding 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
background-color 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
/* Performance optimizations */
will-change: height, padding, transform;
transform: translateZ(0);
backface-visibility: hidden;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
contain: layout style paint;
/* Prevent sub-pixel rendering issues */
box-shadow: 0 0 0 rgba(0,0,0,0);
}
/* Scrolled state with smooth transitions */
.top-banner.scrolled {
height: 70px;
padding: 5px 30px;
background-color: rgba(235, 235, 222, 0.95);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
box-shadow: 0 2px 20px rgba(79, 71, 71, 0.1);
}
/* Fast scroll state for velocity-based transitions */
.top-banner.fast-scroll {
transition-duration: 0.2s;
}
/* Light blink effect for top banner */
.top-banner::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 2px;
background: var(--accent-orange);
animation: lightBlink 3s ease-in-out infinite;
z-index: 1;
pointer-events: none;
}
@keyframes lightBlink {
0% {
left: -100%;
opacity: 0;
}
10% {
opacity: 1;
}
90% {
opacity: 1;
}
100% {
left: 100%;
opacity: 0;
}
}
.top-banner-left {
display: flex;
align-items: center;
flex: 1;
position: relative;
z-index: 2;
}
.top-banner-center {
display: flex;
justify-content: center;
flex: 2;
position: relative;
z-index: 2;
}
.top-banner-right {
display: flex;
justify-content: flex-end;
flex: 1;
}
.top-banner.scrolled {
padding: 2px 30px;
height: 60px;
}
.top-banner.scrolled .menu-toggle,
.top-banner.scrolled #cursorToggle {
width: 35px;
height: 35px;
}
.top-banner.scrolled .opening-hours {
font-size: 12px;
padding: 8px 15px;
position: relative;
z-index: 2;
}
.banner-left {
@@ -85,9 +134,62 @@ body {
margin-right: 15px;
}
.search-container {
.logo-link {
text-decoration: none;
display: flex;
align-items: center;
gap: 0;
margin-left: 0;
margin-right: 15px;
}
.logo {
height: 50px;
width: auto;
transition: height 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
will-change: height;
}
.top-banner.scrolled .logo {
height: 40px;
}
.menu-toggle {
background: transparent;
border: 2px solid var(--primary-dark);
color: var(--primary-dark);
width: 45px;
height: 45px;
border-radius: 12px;
cursor: pointer;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
will-change: width, height;
}
.top-banner.scrolled .menu-toggle,
.top-banner.scrolled #cursorToggle {
width: 35px;
height: 35px;
}
.opening-hours {
font-size: 14px;
color: var(--primary-mid);
background: rgba(79, 71, 71, 0.08);
padding: 10px 20px;
border-radius: 25px;
transition: font-size 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
padding 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
will-change: font-size, padding;
}
.top-banner.scrolled .opening-hours {
font-size: 12px;
padding: 8px 15px;
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 25px;
@@ -656,7 +758,7 @@ body {
.top-banner.dark-theme {
background-color: var(--primary-dark);
color: var(--primary-light);
border-bottom: 1px solid rgba(235, 235, 222, 0.1);
border-bottom: 3px solid var(--accent-orange);
}
.top-banner.dark-theme .company-name {
@@ -692,6 +794,21 @@ body {
transition: padding-top 0.2s ease-out;
}
/* Green Highlight Box */
.green-highlight-box {
display: inline-block;
background: rgba(34, 197, 94, 0.5); /* 50% transparent green */
padding: 8px 16px 8px 16px;
border-radius: 8px;
color: var(--primary-dark);
font-weight: 500;
backdrop-filter: blur(2px);
border: 1px solid rgba(34, 197, 94, 0.3);
box-shadow: 0 2px 8px rgba(34, 197, 94, 0.2);
margin-right: 80px; /* Move even further to the left */
position: relative;
}
/* Hero Section */
.hero-section {
display: flex;
@@ -1039,4 +1156,339 @@ body {
.opening-hours {
display: none;
}
}
/* Footer Banner Styles */
.footer-banner {
background: #2a2a2a !important;
color: var(--primary-light) !important;
padding: 60px 0 30px;
margin: 80px 0 0 0;
border-top: 3px solid var(--accent-orange);
width: 100%;
position: relative;
overflow: hidden;
}
.footer-banner::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg, transparent, var(--accent-orange), transparent);
animation: shimmer 3s infinite;
}
@keyframes shimmer {
0% { transform: translateX(-100%); }
100% { transform: translateX(100%); }
}
.footer-container {
max-width: 1200px;
margin: 0 auto;
padding: 0 40px;
position: relative;
z-index: 1;
}
.footer-content {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 40px;
width: 100%;
margin-bottom: 40px;
align-items: start;
}
.footer-section {
display: flex;
flex-direction: column;
gap: 20px;
}
.footer-logo {
margin-bottom: 15px;
}
.footer-logo-img {
height: 40px;
width: auto;
filter: brightness(0) invert(1);
opacity: 0.9;
}
.footer-description p {
line-height: 1.6;
opacity: 0.8;
font-size: 14px;
margin: 0;
}
.footer-title {
color: var(--accent-orange);
font-size: 16px;
margin: 0 0 15px 0;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
}
.footer-nav {
display: flex;
flex-direction: column;
gap: 12px;
}
.footer-link {
color: var(--primary-light);
text-decoration: none;
font-size: 14px;
opacity: 0.7;
transition: all 0.3s ease;
position: relative;
padding-left: 0;
}
.footer-link:hover {
opacity: 1;
color: var(--accent-orange);
transform: translateX(5px);
}
.footer-link::before {
content: '▸';
position: absolute;
left: -15px;
opacity: 0;
transition: opacity 0.3s ease;
color: var(--accent-orange);
}
.footer-link:hover::before {
opacity: 1;
}
.footer-contact {
display: flex;
flex-direction: column;
gap: 12px;
margin-bottom: 20px;
}
.contact-item {
display: flex;
align-items: center;
gap: 12px;
font-size: 14px;
opacity: 0.8;
}
.contact-icon {
font-size: 16px;
width: 20px;
text-align: center;
}
.social-media {
margin-top: -10px;
}
.social-icons {
display: flex;
gap: 15px;
}
.social-link {
display: flex;
align-items: center;
justify-content: center;
color: var(--primary-light);
text-decoration: none;
width: 40px;
height: 40px;
border-radius: 8px;
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
}
.social-link:hover {
background: var(--accent-orange);
transform: translateY(-3px) scale(1.1);
box-shadow: 0 8px 25px rgba(245, 124, 0, 0.3);
}
.social-link:hover svg {
filter: brightness(0) invert(1);
}
.social-link.instagram:hover {
background: linear-gradient(45deg, #E4405F, #C13584, #833AB4);
border-color: transparent;
}
.social-link.linkedin:hover {
background: #0077B5;
border-color: transparent;
}
.social-link img {
width: 40px;
height: 40px;
border-radius: 8px;
transition: transform 0.3s ease;
}
.social-link svg {
width: 16px;
height: 16px;
transition: transform 0.3s ease;
}
.social-link.facebook:hover svg {
filter: brightness(0) invert(1);
}
.social-link.instagram:hover svg {
filter: brightness(0) invert(1);
}
.footer-bottom {
border-top: 1px solid rgba(255, 255, 255, 0.1);
padding-top: 25px;
margin-top: 20px;
}
.footer-bottom-content {
display: flex;
justify-content: space-between;
align-items: center;
}
.footer-bottom p {
opacity: 0.6;
font-size: 13px;
margin: 0;
}
.footer-bottom-links {
display: flex;
align-items: center;
gap: 15px;
}
.footer-bottom-links .footer-link {
font-size: 13px;
opacity: 0.6;
}
.footer-bottom-links .footer-link:hover {
opacity: 1;
}
.separator {
opacity: 0.4;
font-size: 12px;
}
/* Footer Responsive Design */
@media (max-width: 1024px) {
.footer-content {
grid-template-columns: repeat(2, 1fr);
gap: 30px;
}
}
@media (max-width: 768px) {
.footer-content {
grid-template-columns: 1fr;
gap: 30px;
}
.footer-container {
padding: 0 20px;
}
.footer-banner {
padding: 40px 0 25px;
}
.footer-bottom-content {
flex-direction: column;
gap: 15px;
text-align: center;
}
.social-icons {
justify-content: center;
}
}
@media (max-width: 480px) {
.footer-banner {
padding: 30px 0 20px;
margin-top: 60px;
}
.footer-content {
gap: 25px;
}
.footer-title {
font-size: 15px;
}
.footer-logo-img {
height: 35px;
}
.social-link {
width: 35px;
height: 35px;
}
.social-link svg {
width: 14px;
height: 14px;
}
}
/* Chat Send Button Styles */
.chat-send {
background: var(--accent-teal);
color: white;
border: none;
border-radius: 50%;
width: 70px;
height: 70px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s ease;
flex-shrink: 0;
padding: 0;
margin-left: 10px;
box-shadow: 0 2px 8px rgba(38, 166, 154, 0.3);
}
.chat-send:hover {
background: #1e8e82;
transform: scale(1.05);
box-shadow: 0 4px 12px rgba(38, 166, 154, 0.4);
}
.chat-send:active {
transform: scale(0.95);
}
.chat-send img {
width: 64px;
height: 64px;
filter: brightness(0) invert(1);
object-fit: contain;
}