SurveyVista/Web/Views/Shared/Components/Footer/Default.cshtml
2025-12-14 16:56:10 +01:00

524 lines
No EOL
15 KiB
Text

@model Footer
<style>
@@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');
#Background {
font-family: 'Inter', sans-serif;
background: linear-gradient(135deg, #000000 0%, #0a0e1a 30%, #000000 70%, #000101 100%);
color: white;
min-height: 100vh;
position: relative;
overflow: hidden;
}
#Background::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(circle at 15% 25%, rgba(59, 130, 246, 0.08) 0%, transparent 35%), radial-gradient(circle at 85% 75%, rgba(20, 184, 166, 0.06) 0%, transparent 35%), radial-gradient(circle at 50% 50%, rgba(249, 115, 22, 0.04) 0%, transparent 40%);
z-index: 1;
}
/* Hero Section Styles */
.glass-hero-section {
position: relative;
z-index: 10;
padding: 80px 0;
background: rgba(0, 0, 0, 0.3);
backdrop-filter: blur(10px);
border-bottom: 1px solid rgba(59, 130, 246, 0.1);
}
.glass-hero-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: center;
max-width: 1200px;
margin: 0 auto;
padding: 0 24px;
}
.glass-hero-text h4 {
font-size: clamp(2rem, 4vw, 3.5rem);
font-weight: 900;
line-height: 1.1;
margin-bottom: 24px;
letter-spacing: -0.02em;
background: linear-gradient(135deg, #3b82f6 0%, #147bb8 50%, #f97316 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.glass-hero-text p {
font-size: 1.1rem;
line-height: 1.7;
color: rgba(255, 255, 255, 0.85);
margin-bottom: 16px;
}
.glass-hero-text .fst-italic {
font-size: 0.95rem;
color: rgba(255, 255, 255, 0.6);
font-style: italic;
margin-top: 24px;
}
.glass-hero-animation {
display: flex;
justify-content: center;
align-items: center;
}
dotlottie-player {
width: 100%;
max-width: 400px;
height: auto;
}
/* Footer Styles */
.glass-footer-container {
position: relative;
z-index: 10;
background: rgba(0, 0, 0, 0.6);
backdrop-filter: blur(20px);
border-top: 1px solid rgba(59, 130, 246, 0.15);
padding: 60px 0 0 0;
}
.glass-footer-wrapper {
max-width: 1200px;
margin: 0 auto;
}
.glass-footer-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 40px;
margin-bottom: 50px;
}
/* Glassmorphic cards restored */
.glass-footer-section {
background: rgba(59, 130, 246, 0.06);
backdrop-filter: blur(15px);
border: 1px solid rgba(59, 130, 246, 0.15);
border-radius: 16px;
padding: 32px;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.glass-footer-section::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, #3b82f6, #14b8a6, #f97316);
opacity: 0;
transition: opacity 0.3s ease;
}
.glass-footer-section:hover {
background: rgba(59, 130, 246, 0.1);
border-color: rgba(59, 130, 246, 0.25);
transform: translateY(-5px);
box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
}
.glass-footer-section:hover::before {
opacity: 1;
}
.glass-footer-section:nth-child(even) {
background: rgba(20, 184, 166, 0.06);
border-color: rgba(20, 184, 166, 0.15);
}
.glass-footer-section:nth-child(even):hover {
background: rgba(20, 184, 166, 0.1);
border-color: rgba(20, 184, 166, 0.25);
}
.glass-footer-heading {
font-size: 1.4rem;
font-weight: 700;
color: #ffffff;
margin-bottom: 20px;
position: relative;
text-transform: uppercase;
letter-spacing: 1px;
}
.glass-footer-heading::after {
content: '';
position: absolute;
bottom: -8px;
left: 0;
width: 60px;
height: 2px;
background: linear-gradient(90deg, #3b82f6, #14b8a6);
border-radius: 1px;
}
.glass-footer-section:nth-child(2) .glass-footer-heading::after {
background: linear-gradient(90deg, #14b8a6, #f97316);
}
.glass-footer-section:nth-child(3) .glass-footer-heading::after {
background: linear-gradient(90deg, #f97316, #3b82f6);
}
/* Style ViewComponent content */
.glass-footer-section h5,
.glass-footer-section h6 {
color: rgba(255, 255, 255, 0.9);
font-weight: 600;
margin-bottom: 12px;
font-size: 1.1rem;
}
.glass-footer-section p,
.glass-footer-section span,
.glass-footer-section div {
color: rgba(255, 255, 255, 0.8);
line-height: 1.6;
margin-bottom: 8px;
}
.glass-footer-section a {
color: rgba(255, 255, 255, 0.75);
text-decoration: none;
transition: all 0.3s ease;
position: relative;
padding: 4px 0;
display: inline-block;
}
.glass-footer-section a:hover {
color: #ffffff;
text-decoration: none;
padding-left: 10px;
}
.glass-footer-section a::before {
content: '';
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 0;
height: 2px;
background: linear-gradient(90deg, #3b82f6, #14b8a6);
transition: width 0.3s ease;
border-radius: 1px;
}
.glass-footer-section a:hover::before {
width: 6px;
}
/* Special styling for social media links */
.glass-footer-section ul {
list-style: none;
padding: 0;
margin: 20px 0 0 0;
}
.glass-footer-section li {
margin-bottom: 10px;
}
/* Newsletter input styling */
.glass-footer-section input[type="email"],
.glass-footer-section input[type="text"] {
background: rgba(255, 255, 255, 0.08) !important;
border: 1px solid rgba(255, 255, 255, 0.15) !important;
border-radius: 8px !important;
color: white !important;
padding: 12px 16px !important;
margin-bottom: 10px !important;
width: 100% !important;
transition: all 0.3s ease;
font-size: 1rem !important;
}
.glass-footer-section input[type="email"]:focus,
.glass-footer-section input[type="text"]:focus {
background: rgba(255, 255, 255, 0.12) !important;
border-color: rgba(59, 130, 246, 0.5) !important;
box-shadow: 0 0 15px rgba(59, 130, 246, 0.2) !important;
outline: none !important;
}
.glass-footer-section input::placeholder {
color: rgba(255, 255, 255, 0.5) !important;
}
.glass-footer-section button,
.glass-footer-section .btn {
background: linear-gradient(135deg, #3b82f6 0%, #14b8a6 100%) !important;
border: none !important;
border-radius: 8px !important;
color: white !important;
padding: 12px 20px !important;
font-weight: 600 !important;
cursor: pointer !important;
transition: all 0.3s ease !important;
text-transform: uppercase;
letter-spacing: 0.5px;
text-decoration: none !important;
display: inline-block !important;
}
.glass-footer-section button:hover,
.glass-footer-section .btn:hover {
transform: scale(1.05) !important;
box-shadow: 0 8px 20px rgba(59, 130, 246, 0.3) !important;
color: white !important;
}
/* Footer Bottom with Cards */
.glass-footer-bottom {
background: rgba(0, 0, 0, 0.8);
backdrop-filter: blur(15px);
border-top: 1px solid rgba(59, 130, 246, 0.1);
padding: 32px 0;
margin-top: 40px;
}
.glass-footer-bottom-content {
max-width: 1200px;
margin: 0 auto;
padding: 0 24px;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
text-align: center;
}
.glass-footer-info-card {
background: rgba(59, 130, 246, 0.08);
backdrop-filter: blur(10px);
border: 1px solid rgba(59, 130, 246, 0.15);
border-radius: 12px;
padding: 16px 20px;
transition: all 0.3s ease;
}
.glass-footer-info-card:hover {
background: rgba(59, 130, 246, 0.12);
border-color: rgba(59, 130, 246, 0.25);
transform: translateY(-2px);
}
.glass-footer-info-text {
color: rgba(255, 255, 255, 0.7);
font-size: 0.95rem;
margin: 0;
font-weight: 500;
}
.glass-footer-info-label {
color: rgba(255, 255, 255, 0.5);
font-size: 0.8rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 4px;
display: block;
}
/* Responsive Design */
@@media (max-width: 1024px) {
.glass-hero-content
{
grid-template-columns: 1fr;
gap: 40px;
text-align: center;
}
.glass-footer-grid {
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 30px;
}
}
@@media (max-width: 768px) {
.glass-hero-section
{
padding: 60px 0;
}
.glass-hero-content {
padding: 0 16px;
gap: 30px;
}
.glass-hero-text h4 {
font-size: clamp(1.8rem, 5vw, 2.5rem);
margin-bottom: 20px;
}
.glass-hero-animation {
padding: 24px;
}
.glass-footer-wrapper {
padding: 0 16px 32px 16px;
}
.glass-footer-grid {
grid-template-columns: 1fr;
gap: 24px;
}
.glass-footer-section {
padding: 24px;
}
.glass-footer-bottom-content {
grid-template-columns: 1fr;
gap: 16px;
padding: 0 16px;
}
}
@@media (max-width: 480px) {
.glass-hero-section
{
padding: 40px 0;
}
.glass-hero-content {
padding: 0 12px;
gap: 24px;
}
.glass-hero-text h4 {
font-size: clamp(1.5rem, 6vw, 2rem);
margin-bottom: 16px;
}
.glass-hero-animation {
padding: 16px;
}
.glass-footer-wrapper {
padding: 0 12px 24px 12px;
}
.glass-footer-section {
padding: 20px;
}
.glass-footer-heading {
font-size: 1.2rem;
margin-bottom: 16px;
}
}
</style>
<div class="d-flex flex-column" id="Background">
<!-- HERO SECTION -->
<section class="glass-hero-section flex-grow-1">
<div class="glass-hero-content">
<div class="glass-hero-text">
<h4>@Model.Title.ToUpper()</h4>
<p>@Html.Raw(Model.Content)</p>
<p class="fst-italic">@Model.Sitecopyright</p>
</div>
<div class="glass-hero-animation">
<script src="https://unpkg.com/@@dotlottie/player-component@latest/dist/dotlottie-player.mjs" type="module"></script>
<dotlottie-player src="https://lottie.host/f2df0cd6-fbde-4071-ab90-d9e74a075d5a/ygq5zJ9mzx.json"
speed="1"
direction="1"
playMode="normal"
loop
autoplay>
</dotlottie-player>
</div>
</div>
</section>
<!-- MODERN FOOTER -->
<footer class="glass-footer-container w-100 flex-shrink-0">
<div class="glass-footer-wrapper">
<div class="glass-footer-grid">
<!-- Address Section with Card -->
<div class="glass-footer-section">
<h3 class="glass-footer-heading">Contact Info</h3>
<vc:address></vc:address>
</div>
<!-- Navigation Section with Card -->
<div class="glass-footer-section">
<h3 class="glass-footer-heading">Quick Links</h3>
<vc:navigation-footer></vc:navigation-footer>
</div>
<!-- Newsletter Section with Card -->
<div class="glass-footer-section">
<h3 class="glass-footer-heading">Newsletter</h3>
<vc:subscription></vc:subscription>
<!-- Social Media Section -->
<h6 style="color: rgba(255, 255, 255, 0.9); font-weight: 600; margin: 24px 0 12px 0; font-size: 1.1rem;">Follow Us</h6>
<ul>
@foreach (var footerSocialMedia in Model.FooterSocialMedias)
{
<li>
<a href="@footerSocialMedia.SocialMedia.Url" target="_blank">
@footerSocialMedia.SocialMedia.Name
</a>
</li>
}
</ul>
</div>
</div>
</div>
<!-- Footer Bottom with Cards -->
<div class="glass-footer-bottom">
<div class="glass-footer-bottom-content">
<div class="glass-footer-info-card">
<span class="glass-footer-info-label">Designed By</span>
<p class="glass-footer-info-text">@Model.CreatedBy</p>
</div>
<div class="glass-footer-info-card">
<span class="glass-footer-info-label">Updated By</span>
<p class="glass-footer-info-text">@Model.UpdatedBy</p>
</div>
<div class="glass-footer-info-card">
<span class="glass-footer-info-label">Last Updated</span>
@using System.Globalization
<p class="glass-footer-info-text">
@Model.LastUpdated.ToString("dd-MM-yyyy HH:mm", new CultureInfo("da-DK"))
</p>
</div>
<div class="glass-footer-info-card">
<span class="glass-footer-info-label">Owner</span>
<p class="glass-footer-info-text">@Model.Owner</p>
</div>
</div>
</div>
</footer>
</div>