/* ============================================================
   Continental Coaches Group — custom.css
   ONLY: @font-face declarations + @keyframes animations
   All layout/design handled by Tailwind CSS
   ============================================================ */

/* ─── Self-hosted Fonts ──────────────────────────────────────
   Download from: https://fonts.google.com/
   Place files in /assets/fonts/
   ─────────────────────────────────────────────────────────── */
@font-face {
    font-family: 'Poppins';
    src: url('/assets/fonts/Poppins-SemiBold.woff2') format('woff2'),
         url('/assets/fonts/Poppins-SemiBold.woff')  format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Poppins';
    src: url('/assets/fonts/Poppins-Bold.woff2') format('woff2'),
         url('/assets/fonts/Poppins-Bold.woff')  format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('/assets/fonts/Inter-Regular.woff2') format('woff2'),
         url('/assets/fonts/Inter-Regular.woff')  format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('/assets/fonts/Inter-Medium.woff2') format('woff2'),
         url('/assets/fonts/Inter-Medium.woff')  format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* ─── @keyframes ─────────────────────────────────────────────── */

/* Pulsing hub marker on Europe map */
@keyframes hub-pulse {
    0%, 100% { transform: scale(1);   opacity: 1;   }
    50%       { transform: scale(1.4); opacity: 0.6; }
}

/* Ripple ring around hub markers */
@keyframes hub-ripple {
    0%   { transform: scale(0.8); opacity: 0.8; }
    100% { transform: scale(2.2); opacity: 0;   }
}

/* Subtle fade-up for cards on scroll */
@keyframes fade-up {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0);    }
}

/* Logo strip scroll animation */
@keyframes logo-scroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Slide-in for mobile menu */
@keyframes slide-in-right {
    from { transform: translateX(100%); opacity: 0; }
    to   { transform: translateX(0);    opacity: 1; }
}

/* Quote widget slide-down on mobile */
@keyframes slide-down {
    from { transform: translateY(-100%); opacity: 0; }
    to   { transform: translateY(0);     opacity: 1; }
}

/* ─── Utility classes used by JS ────────────────────────────── */
.animate-hub-pulse  { animation: hub-pulse  2s ease-in-out infinite; }
.animate-hub-ripple { animation: hub-ripple 2s ease-out  infinite; }
.animate-fade-up    { animation: fade-up    0.5s ease-out forwards; }
.animate-logo-scroll { animation: logo-scroll 30s linear infinite; }
.animate-slide-in   { animation: slide-in-right 0.3s ease-out forwards; }
.animate-slide-down { animation: slide-down     0.3s ease-out forwards; }

/* Pause logo scroll on hover */
.logo-strip:hover .animate-logo-scroll { animation-play-state: paused; }
