Hub redesign, per-language logos, partner carousel, footer + menu fixes
MSOS Hub page: - "What you can do here": Porsche-style vertical image cards in a continuous auto-scrolling marquee with edge fades (real photos placeholders) - "A glimpse of the space": full-bleed band of 4 connected photos - "A space we built together": full-bleed image banner with blue gradient overlay - "Made possible by": partner logo tiles (Cultural Association + Ministry); processed Ministry + Cultural Association logos from source art - Copy/spacing polish; removed em-dashes; larger section spacing; deeper final-CTA gradient so it no longer blends into the footer Branding / partners: - Per-language MSOS logos (SVG) in header + footer across all pages - Partner carousel: added Ministry (wide variant), Cultural Association, Embassy of North Macedonia, and Spletni Mojster (width-capped); de-duplicated logos within each marquee group so new logos appear sooner Footer: - Build credit line (Spletni Mojster + Kristijan), clean centered text - Synced MK/SI footers to EN (added missing About us + Timeline links) Landing page: - FAQ short CTA already avatar design (FAQ page kept its Email/Viber block) - Swapped blurry stock video thumbnail for the real team photo - Removed the intentional hero-background blur Navigation: - Mobile menu: use 100dvh so the language selector is reachable with submenus open - Desktop: dropdown parents no longer navigate to dead "/#" links Language suggestion banner: - Dismissible, browser-language based banner suggesting the matching locale; remembers choice in localStorage and waits for the cookie-consent choice to avoid overlapping the consent card Removed stale *.html.bak backup files. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
7c32f416f5
commit
f5dfd8830e
249 files changed
+2259
-7319
No files matched your search
+9
-1
@@ -35,7 +35,6 @@
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
background: url('../../images/HeroSection-img1.webp') no-repeat center center/cover; /* POPRAVLJENO */
|
||||
filter: blur(2px);
|
||||
}
|
||||
|
||||
.hero-image-left, .hero-image-right {
|
||||
@@ -135,6 +134,11 @@
|
||||
-webkit-user-drag: none;
|
||||
user-select: none;
|
||||
}
|
||||
/* Spletni Mojster is a very wide wordmark — cap its width so it doesn't dominate */
|
||||
.marquee-group img[src*="mojster"] {
|
||||
height: auto;
|
||||
max-width: 200px;
|
||||
}
|
||||
@keyframes partners-marquee {
|
||||
from { transform: translateX(0); }
|
||||
to { transform: translateX(-50%); }
|
||||
@@ -693,6 +697,10 @@
|
||||
.marquee-group img {
|
||||
height: 40px;
|
||||
}
|
||||
.marquee-group img[src*="mojster"] {
|
||||
height: auto;
|
||||
max-width: 150px;
|
||||
}
|
||||
.marquee-track {
|
||||
animation-duration: 30s;
|
||||
}
|
||||
|
||||
+147
-39
@@ -34,39 +34,109 @@
|
||||
.hub-fact i { color: #2D738C; }
|
||||
|
||||
/* ---------- Generic section ---------- */
|
||||
.hub-section { max-width: 1120px; margin: 0 auto; padding: 64px 24px; }
|
||||
.hub-section { max-width: 1120px; margin: 0 auto; padding: 80px 24px 88px; scroll-margin-top: 96px; }
|
||||
.hub-section--tint { background: #F9FAFB; max-width: none; }
|
||||
.hub-section--tint > .hub-inner { max-width: 1120px; margin: 0 auto; }
|
||||
.hub-section-head { text-align: center; max-width: 720px; margin: 0 auto 40px; }
|
||||
.hub-h2 { font-size: 32px; line-height: 1.2; color: #101828; margin: 0 0 12px; font-weight: 700; }
|
||||
.hub-sub { font-size: 17px; line-height: 27px; color: #667085; margin: 0; }
|
||||
|
||||
/* ---------- Story (two columns) ---------- */
|
||||
.hub-story-grid {
|
||||
display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center;
|
||||
max-width: 1120px; margin: 0 auto;
|
||||
/* ---------- Story (full-bleed image banner with blue gradient) ---------- */
|
||||
.hub-story {
|
||||
position: relative; overflow: hidden;
|
||||
min-height: clamp(460px, 68vh, 660px);
|
||||
display: flex; align-items: center;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.hub-story-text .hub-h2 { text-align: left; }
|
||||
.hub-story-text p { font-size: 17px; line-height: 28px; color: #475467; margin: 0 0 16px; }
|
||||
.hub-story-bg {
|
||||
position: absolute; inset: 0; z-index: 0;
|
||||
width: 100%; height: 100%; object-fit: cover;
|
||||
}
|
||||
/* blueish gradient: strong on the text (left) side, fading toward the image */
|
||||
.hub-story-overlay {
|
||||
position: absolute; inset: 0; z-index: 1; pointer-events: none;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(18, 52, 68, 0.95) 0%,
|
||||
rgba(21, 60, 78, 0.82) 34%,
|
||||
rgba(24, 70, 90, 0.42) 66%,
|
||||
rgba(24, 70, 90, 0.10) 100%
|
||||
);
|
||||
}
|
||||
.hub-story-inner {
|
||||
position: relative; z-index: 2;
|
||||
width: 100%; max-width: 1120px; margin: 0 auto;
|
||||
padding: 64px 24px;
|
||||
}
|
||||
.hub-story-text { max-width: 640px; }
|
||||
.hub-story-text .hub-h2 {
|
||||
text-align: left; color: #FFFFFF;
|
||||
text-shadow: 0 2px 18px rgba(9, 26, 34, 0.35);
|
||||
}
|
||||
.hub-story-text p { font-size: 17px; line-height: 28px; color: rgba(255, 255, 255, 0.9); margin: 0 0 16px; }
|
||||
.hub-story-text p:last-child { margin-bottom: 0; }
|
||||
|
||||
/* ---------- Use cases ---------- */
|
||||
.hub-uses { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
|
||||
/* ---------- Use cases (image cards, continuous auto-scrolling marquee) ---------- */
|
||||
.hub-carousel { position: relative; }
|
||||
/* masked viewport: cards fade out at both edges instead of being hard-cut */
|
||||
.hub-uses {
|
||||
overflow: hidden;
|
||||
padding: 6px 0 10px;
|
||||
-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 2.5%, #000 97.5%, transparent 100%);
|
||||
mask-image: linear-gradient(90deg, transparent 0, #000 2.5%, #000 97.5%, transparent 100%);
|
||||
}
|
||||
/* the moving track = two identical groups; translateX(-50%) loops seamlessly */
|
||||
.hub-track {
|
||||
display: flex; width: max-content;
|
||||
animation: hub-marquee 55s linear infinite;
|
||||
}
|
||||
.hub-carousel:hover .hub-track { animation-play-state: paused; }
|
||||
.hub-group {
|
||||
display: flex; gap: 18px; padding-right: 18px; flex: 0 0 auto;
|
||||
}
|
||||
.hub-use {
|
||||
border: 1px solid #EAECF0; border-radius: 14px; padding: 22px; background: #fff;
|
||||
display: flex; flex-direction: column; gap: 10px;
|
||||
transition: transform 0.18s ease, box-shadow 0.18s ease;
|
||||
position: relative; overflow: hidden; border-radius: 16px;
|
||||
flex: 0 0 auto; width: clamp(230px, 22vw, 278px);
|
||||
aspect-ratio: 363 / 545;
|
||||
/* fallback while an image is missing */
|
||||
background: linear-gradient(135deg, #2D738C 0%, #255F74 100%);
|
||||
box-shadow: 0 8px 22px rgba(16, 24, 40, 0.10);
|
||||
transition: transform 0.25s ease, box-shadow 0.25s ease;
|
||||
}
|
||||
.hub-use:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(16, 24, 40, 0.07); }
|
||||
.hub-use-ico {
|
||||
width: 44px; height: 44px; border-radius: 10px;
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
font-size: 18px; color: #fff; background: #2D738C;
|
||||
.hub-use:nth-child(3n+2) { background: linear-gradient(135deg, #FA7850 0%, #E8613B 100%); }
|
||||
.hub-use:nth-child(3n+3) { background: linear-gradient(135deg, #3B82C4 0%, #2C6BA6 100%); }
|
||||
.hub-use:hover { transform: translateY(-4px); box-shadow: 0 18px 36px rgba(16, 24, 40, 0.18); }
|
||||
@keyframes hub-marquee {
|
||||
from { transform: translateX(0); }
|
||||
to { transform: translateX(-50%); }
|
||||
}
|
||||
.hub-use:nth-child(3n+2) .hub-use-ico { background: #FA7850; }
|
||||
.hub-use:nth-child(3n+3) .hub-use-ico { background: #3B82C4; }
|
||||
.hub-use h3 { font-size: 17px; color: #101828; margin: 0; }
|
||||
.hub-use p { font-size: 14px; line-height: 22px; color: #667085; margin: 0; }
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.hub-track { animation: none; }
|
||||
}
|
||||
.hub-use-img {
|
||||
position: absolute; inset: 0; width: 100%; height: 100%;
|
||||
object-fit: cover; display: block;
|
||||
transition: transform 0.4s ease;
|
||||
}
|
||||
.hub-use:hover .hub-use-img { transform: scale(1.05); }
|
||||
/* gradient rising from the bottom for text legibility */
|
||||
.hub-use::after {
|
||||
content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
|
||||
background: linear-gradient(
|
||||
to top,
|
||||
rgba(10, 18, 26, 0.88) 0%,
|
||||
rgba(10, 18, 26, 0.62) 26%,
|
||||
rgba(10, 18, 26, 0.18) 52%,
|
||||
rgba(10, 18, 26, 0) 72%
|
||||
);
|
||||
}
|
||||
.hub-use-body {
|
||||
position: absolute; z-index: 2; left: 0; right: 0; bottom: 0;
|
||||
display: flex; flex-direction: column; gap: 5px;
|
||||
padding: 16px 16px 16px;
|
||||
}
|
||||
.hub-use-body h3 { font-size: 18px; line-height: 1.25; color: #fff; margin: 0; font-weight: 700; }
|
||||
.hub-use-body p { font-size: 13px; line-height: 19px; color: rgba(255, 255, 255, 0.9); margin: 0; }
|
||||
|
||||
/* ---------- Amenities ---------- */
|
||||
.hub-amenities {
|
||||
@@ -80,31 +150,59 @@
|
||||
.hub-amenity i { color: #2E9E6B; font-size: 18px; width: 22px; text-align: center; flex-shrink: 0; }
|
||||
.hub-amenity span { font-size: 15px; font-weight: 500; color: #344054; }
|
||||
|
||||
/* ---------- Gallery (image placeholders) ---------- */
|
||||
.hub-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
|
||||
.hub-gallery .image-placeholder { margin: 0; }
|
||||
/* ---------- Gallery (full-bleed band of connected photos) ---------- */
|
||||
.hub-gallery {
|
||||
/* break out of the centred 1120px section to span the full viewport */
|
||||
position: relative; left: 50%; right: 50%;
|
||||
width: 100vw; margin-left: -50vw; margin-right: -50vw;
|
||||
display: flex;
|
||||
gap: 4px; /* the thin vertical lines between photos */
|
||||
background: #FFFFFF; /* colour shown in the gaps */
|
||||
}
|
||||
.hub-shot {
|
||||
margin: 0; flex: 1 1 0; min-width: 0; overflow: hidden;
|
||||
}
|
||||
.hub-shot img {
|
||||
display: block; width: 100%;
|
||||
height: clamp(340px, 48vh, 560px);
|
||||
object-fit: cover;
|
||||
transition: transform 0.5s ease;
|
||||
}
|
||||
.hub-shot:hover img { transform: scale(1.04); }
|
||||
|
||||
/* ---------- Supporters / made possible by ---------- */
|
||||
.hub-supporters { text-align: center; }
|
||||
.hub-supporters-list {
|
||||
display: flex; flex-wrap: wrap; justify-content: center; gap: 16px;
|
||||
max-width: 900px; margin: 0 auto;
|
||||
/* partner logo tiles */
|
||||
.hub-logos {
|
||||
display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch;
|
||||
gap: 20px; max-width: 960px; margin: 0 auto;
|
||||
}
|
||||
.hub-supporter {
|
||||
border: 1px solid #EAECF0; border-radius: 12px; padding: 18px 22px;
|
||||
background: #fff; font-size: 15px; font-weight: 600; color: #344054;
|
||||
display: inline-flex; align-items: center; gap: 10px;
|
||||
.hub-logo {
|
||||
flex: 0 1 240px;
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
background: #fff; border: 1px solid #EAECF0; border-radius: 14px;
|
||||
padding: 24px 28px; min-height: 120px;
|
||||
}
|
||||
.hub-supporter i { color: #2D738C; font-size: 18px; }
|
||||
.hub-logo img {
|
||||
max-width: 100%; max-height: 72px; width: auto; height: auto;
|
||||
object-fit: contain;
|
||||
}
|
||||
/* community credit line under the logos */
|
||||
.hub-community {
|
||||
margin: 22px auto 0; text-align: center;
|
||||
font-size: 15px; color: #667085;
|
||||
}
|
||||
.hub-community i { color: #FA7850; }
|
||||
|
||||
/* ---------- Final booking CTA ---------- */
|
||||
.hub-final {
|
||||
background: linear-gradient(135deg, #2D738C 0%, #255F74 100%);
|
||||
color: #fff; text-align: center; padding: 64px 24px;
|
||||
background: linear-gradient(135deg, #12394A 0%, #0C2A38 100%);
|
||||
color: #fff; text-align: center; padding: 84px 24px 88px;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.10);
|
||||
}
|
||||
.hub-final h2 { color: #fff; font-size: 30px; line-height: 1.2; margin: 0 0 12px; font-weight: 700; }
|
||||
.hub-final p { color: #D6E6EC; font-size: 17px; line-height: 27px; max-width: 640px; margin: 0 auto 24px; }
|
||||
.hub-final-cta { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
|
||||
.hub-final-cta { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; align-items: center; }
|
||||
.hub-final .btn-ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.6); }
|
||||
.hub-final .btn-ghost:hover { background: rgba(255,255,255,0.12); }
|
||||
|
||||
@@ -116,11 +214,21 @@
|
||||
.hub-lead { font-size: 17px; line-height: 27px; }
|
||||
.hub-section { padding: 48px 20px; }
|
||||
.hub-h2 { font-size: 26px; }
|
||||
.hub-story-grid { grid-template-columns: 1fr; gap: 28px; }
|
||||
.hub-story-media { order: -1; }
|
||||
.hub-uses { grid-template-columns: 1fr; }
|
||||
.hub-story { min-height: 0; }
|
||||
.hub-story-inner { padding: 48px 20px; }
|
||||
.hub-story-overlay {
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(18, 52, 68, 0.85) 0%,
|
||||
rgba(18, 52, 68, 0.9) 100%
|
||||
);
|
||||
}
|
||||
.hub-use { width: min(64vw, 240px); }
|
||||
.hub-use-body { padding: 16px 14px 18px; }
|
||||
.hub-amenities { grid-template-columns: 1fr 1fr; }
|
||||
.hub-gallery { grid-template-columns: 1fr; }
|
||||
.hub-gallery { flex-wrap: wrap; }
|
||||
.hub-shot { flex: 1 1 calc(50% - 2px); }
|
||||
.hub-shot img { height: clamp(180px, 30vh, 260px); }
|
||||
.hub-final { padding: 48px 20px; }
|
||||
.hub-final h2 { font-size: 24px; }
|
||||
}
|
||||
Reference in new issue
Block a user