@font-face {
    font-family: 'PP Neue Montreal';
    src: url('https://assets.website-fields.com/6009ec8cda7f305645c9d91b/60176f9bb43e36419997ecfe_PPNeueMontreal-Book.otf') format('opentype');
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'PP Neue Montreal';
    src: url('https://assets.website-files.com/6009ec8cda7f305645c9d91b/60176f9b39c5673e51a86f5a_PPNeueMontreal-Medium.otf') format('opentype');
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: 'PP Mondwest';
    src: url('https://fonts.cdnfonts.com/s/91222/PPMondwest-Regular.woff') format('woff');
    font-weight: 400;
    font-display: swap;
}

body {
    font-family: 'PP Neue Montreal', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background-color: #ffffff;
    color: #051A24;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

.font-serif-custom {
    font-family: 'PP Mondwest', Georgia, serif;
}

/* Animations */
@keyframes fadeInUp {
    0% { opacity: 0; transform: translateY(30px); }
    100% { opacity: 1; transform: translateY(0); }
}

.reveal-element { opacity: 0; }

.animate-fade-in-up {
    animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Marquee */
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.marquee-track {
    display: flex;
    width: max-content;
    animation: marquee 12s linear infinite;
}

@media (min-width: 768px) {
    .marquee-track { animation: marquee 30s linear infinite; }
}

.marquee-container:hover .marquee-track { animation-play-state: paused; }

/* Buttons */
.shadow-btn-primary {
    box-shadow: 0px 1px 2px 0px rgba(5,26,36,0.1), 0px 4px 4px 0px rgba(5,26,36,0.09), 0px 9px 6px 0px rgba(5,26,36,0.05), 0px 17px 7px 0px rgba(5,26,36,0.01), 0px 26px 7px 0px rgba(5,26,36,0), inset 0px 2px 8px 0px rgba(255,255,255,0.5);
}

.shadow-btn-secondary {
    box-shadow: 0px 0px 0px 0.5px rgba(0,0,0,0.05), 0px 4px 30px rgba(0,0,0,0.08);
}

.shadow-blue-btn { box-shadow: 0px 8px 20px rgba(37, 99, 235, 0.35); }

/* Carousel */
.carousel-track { transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1); }
.cursor-crosshair { cursor: crosshair; }

/* Bottom Nav */
#bottom-nav {
    transition: transform 400ms cubic-bezier(0.4, 0, 0.2, 1), opacity 300ms ease;
}
.nav-hidden {
    transform: translateX(-50%) translateY(200%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Team Hover */
.team-hover-img {
    position: fixed;
    pointer-events: none;
    z-index: 9999;
    width: 160px;
    height: 160px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 300ms ease, transform 300ms cubic-bezier(0.16, 1, 0.3, 1);
}
.team-hover-img.active { opacity: 1; transform: scale(1); }
.team-name-hover { cursor: pointer; transition: color 200ms ease; }
.team-name-hover:hover { color: #0D212C; }

/* Page Overlays */
.page-overlay {
    position: fixed; inset: 0; background: rgba(255,255,255,0.98); z-index: 9000;
    transform: translateY(100%); transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    overflow-y: auto;
}
.page-overlay.active { transform: translateY(0); }

/* Booking */
.time-slot-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.time-slot-btn.selected { background-color: #051A24; color: white; border-color: #051A24; }

.tz-select {
    appearance: none; background: transparent; border: none; font-size: 14px; color: #475569;
    cursor: pointer; outline: none; font-family: inherit;
}
.meeting-select {
    appearance: none; background: transparent; border: none; font-size: 14px; color: #475569;
    cursor: pointer; outline: none; font-family: inherit;
}

@keyframes checkmark {
    0% { stroke-dashoffset: 50; }
    100% { stroke-dashoffset: 0; }
}
.check-animated { stroke-dasharray: 50; stroke-dashoffset: 50; animation: checkmark 0.5s ease forwards 0.3s; }

/* Partner Trail */
.partner-trail {
    position: absolute;
    pointer-events: none;
    border-radius: 16px;
    object-fit: cover;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    opacity: 0;
    transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 1;
    transform: scale(0.8);
}
.partner-trail.visible { opacity: 0.85; transform: scale(1) rotate(0deg); }
.partner-trail.fade-out { opacity: 0; transform: scale(0.6) rotate(5deg); }