/* Shared footer styles - modern redesign */
.footer-frame-svg { position: absolute; right: 0; top: 0; bottom: 0; height: 100%; width: auto; max-width: 32px; object-fit: cover; object-position: right center; pointer-events: none; z-index: 1; }
.footer-link:hover::after { width: 100%; }
.footer-calendar-wrap .footer-calendar-icon { display: inline-block; opacity: 0; transform: scale(0.5); }
.footer-calendar-wrap.is-visible .footer-calendar-icon { animation: footerCalendarReveal 5s ease-out 1 forwards; }
@keyframes footerCalendarReveal {
    0% { opacity: 0; transform: scale(0.5) rotate(-15deg); }
    15% { opacity: 1; transform: scale(1.15) rotate(5deg); }
    30% { transform: scale(0.95) rotate(-2deg); }
    45% { transform: scale(1.05) rotate(2deg); }
    60%, 100% { opacity: 1; transform: scale(1) rotate(0deg); }
}
.footer-link .footer-link-icon { display: inline-block; transition: transform 0.2s ease; }
.footer-link:hover .footer-link-icon { animation: footerIconHover 2s ease-in-out 1; }
@keyframes footerIconHover {
    0%, 100% { transform: scale(1) rotate(0deg); }
    15% { transform: scale(1.3) rotate(-8deg); }
    30% { transform: scale(1.2) rotate(8deg); }
    45% { transform: scale(1.25) rotate(-5deg); }
    60% { transform: scale(1.15) rotate(3deg); }
    75% { transform: scale(1.05) rotate(-2deg); }
}
.footer-heart { display: inline-block; color: #fa0073; font-size: 1.35em; vertical-align: middle; line-height: 1; animation: footerHeartBeat 1.2s ease-in-out infinite; margin: 0 3px; }
@keyframes footerHeartBeat { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.2); opacity: 0.9; } }
.footer-theme { background: linear-gradient(165deg, #020c41 0%, #030d75 45%, #041060 100%); border-top: 2px solid transparent; border-image: linear-gradient(90deg, transparent, rgba(250,0,115,0.5), transparent) 1; position: relative; overflow: hidden; }
.footer-theme .footer-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.5rem; padding-bottom: 1.75rem; margin-bottom: 1.75rem; border-bottom: 1px solid rgba(255,255,255,0.06); }
.footer-theme .footer-logo-wrap { flex-shrink: 0; }
.footer-theme .footer-logo-wrap img { height: 3.25rem; transition: transform 0.3s ease, filter 0.3s ease; }
.footer-theme .footer-logo-wrap:hover img { transform: scale(1.04); filter: drop-shadow(0 0 10px rgba(250,0,115,0.2)); }
.footer-theme .footer-nav { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.footer-theme .footer-nav .footer-link { display: inline-flex; align-items: center; padding: 0.55rem 1.15rem; font-size: 0.8125rem; font-weight: 600; text-decoration: none; color: rgba(255,255,255,0.88); background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 100px; letter-spacing: 0.02em; transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease; }
.footer-theme .footer-nav .footer-link::after { display: none; }
.footer-theme .footer-nav .footer-link:hover { color: #fff; background: rgba(250,0,115,0.14); border-color: rgba(250,0,115,0.35); box-shadow: 0 0 0 1px rgba(250,0,115,0.08); }
.footer-theme .footer-content-well { margin-bottom: 1.75rem; padding: 1.25rem 1.1rem 1.25rem 1.15rem; border-left: 3px solid transparent; border-image: linear-gradient(180deg, rgba(250,0,115,0.5), rgba(250,0,115,0.2)) 1; background: rgba(255,255,255,0.02); border-radius: 0 8px 8px 0; }
.footer-theme .footer-disclaimer-label { display: inline-block; font-size: 0.65rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 0.6rem; padding: 0.2rem 0.5rem; background: rgba(255,255,255,0.05); border-radius: 4px; }
.footer-theme .footer-disclaimer-card { padding: 0; margin: 0; border: none; }
.footer-theme .footer-disclaimer-card p { margin: 0; font-size: 0.8125rem; line-height: 1.75; color: rgba(255,255,255,0.72); text-align: justify; }
.footer-theme .footer-disclaimer-card a { color: #fa0073; text-decoration: none; font-weight: 600; padding-bottom: 1px; border-bottom: 1px solid rgba(250,0,115,0.35); transition: border-color 0.2s ease, color 0.2s ease; }
.footer-theme .footer-disclaimer-card a:hover { color: #ff4da6; border-bottom-color: #fa0073; }
.footer-theme .footer-bottom { margin-top: 0; padding: 1.5rem 0 0; border-top: 1px solid rgba(255,255,255,0.06); position: relative; background: transparent; }
.footer-theme .footer-bottom::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(250,0,115,0.3), transparent); opacity: 0.95; }
.footer-theme .footer-bar-inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.75rem 0; }
.footer-theme .footer-brand { display: flex; align-items: center; gap: 0.7rem; }
.footer-theme .footer-brand .footer-calendar-icon { flex-shrink: 0; font-size: 1.05rem; }
.footer-theme .footer-brand-text { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.4rem; }
.footer-theme .footer-brand-dates { font-size: 0.8125rem; font-weight: 600; color: rgba(255,255,255,0.82); letter-spacing: 0.03em; }
.footer-theme .footer-brand-pipe { color: rgba(255,255,255,0.4); font-weight: 300; user-select: none; margin: 0 0.2rem; }
.footer-theme .footer-brand-tagline { font-size: 0.8125rem; font-weight: 500; color: rgba(255,255,255,0.58); font-style: italic; letter-spacing: 0.02em; }
.footer-theme .footer-partners { display: flex; align-items: center; gap: 1.25rem; }
.footer-theme .footer-dev-badge { display: flex; flex-direction: column; align-items: center; justify-content: center; text-decoration: none; padding-right: 1rem; margin-right: 0.25rem; border-right: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.6); transition: color 0.2s ease; }
.footer-theme .footer-dev-badge:hover { color: #fa0073; }
.footer-theme .footer-dev-badge .footer-dev-line1 { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1.3; display: block; }
.footer-theme .footer-dev-badge .footer-dev-line2 { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; line-height: 1.2; display: block; }
.footer-theme .footer-partners a:not(.footer-dev-badge) { opacity: 0.72; transition: opacity 0.25s ease, transform 0.25s ease; }
.footer-theme .footer-partners a:not(.footer-dev-badge):hover { opacity: 1; transform: scale(1.06); }
.footer-theme .footer-partners img { height: 1.75rem; display: block; }
@media (max-width: 768px) {
    .footer-theme .footer-top { flex-direction: column; text-align: center; }
    .footer-theme .footer-nav { justify-content: center; }
    .footer-theme .footer-content-well { padding: 1rem; }
    .footer-theme .footer-bar-inner { flex-direction: column; text-align: center; gap: 0.75rem; }
    .footer-theme .footer-brand { justify-content: center; }
    .footer-theme .footer-brand-text { justify-content: center; }
}
