html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
* { -webkit-font-smoothing: antialiased; }

/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(40px); transition: opacity 0.9s cubic-bezier(0.16,1,0.3,1), transform 0.9s cubic-bezier(0.16,1,0.3,1); }
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }

/* Hero parallax */
.hero-bg { will-change: transform; transition: transform 0.1s linear; }

/* Gradient text */
.gradient-text { background: linear-gradient(135deg, #002E7D 0%, #0050C8 50%, #002E7D 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

/* Float animation */
@keyframes float { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-20px) rotate(2deg); } }
.floating { animation: float 7s ease-in-out infinite; }

/* Scroll indicator */
@keyframes scrollDown { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(20px); opacity: 0; } }
.scroll-dot { animation: scrollDown 1.8s ease-in-out infinite; }

/* Gradient shift */
@keyframes gradientShift { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.animated-gradient { background-size: 200% 200%; animation: gradientShift 8s ease infinite; }

/* Marquee */
@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.marquee-track { animation: marquee 25s linear infinite; }
.marquee-track:hover { animation-play-state: paused; }

/* Slideshow */
.slideshow-track { transition: transform 1.2s cubic-bezier(0.2,1,0.3,1); will-change: transform; }
.slideshow-item img { transition: transform 2s ease; }
.slideshow-item:hover img { transform: scale(1.08); }

/* Card hover */
.bento-card { transition: transform 0.5s cubic-bezier(0.16,1,0.3,1), box-shadow 0.5s ease; }
.bento-card .card-overlay { transition: opacity 0.5s ease; }
.bento-card:hover .card-overlay { opacity: 0.9; }
.bento-card .card-arrow { transition: transform 0.4s ease, opacity 0.4s ease; }
.bento-card:hover .card-arrow { transform: translateX(8px); opacity: 1; }
.bento-card:hover { box-shadow: 0 20px 60px rgba(0,0,0,0.12); }
.bento-card.bg-gradient-to-br:hover { box-shadow: 0 20px 60px rgba(0,46,125,0.3); }
.bento-card img { transition: transform 0.7s cubic-bezier(0.16,1,0.3,1); }
.bento-card:hover img { transform: scale(1.1); }

/* Product card image zoom */
.product-card .product-img { transition: transform 0.7s cubic-bezier(0.16,1,0.3,1); }
.product-card:hover .product-img { transform: scale(1.1); }

/* GM photo wrapper image zoom */
.gm-img-wrapper img { transition: transform 0.6s cubic-bezier(0.16,1,0.3,1); }
.gm-img-wrapper:hover img { transform: scale(1.08); }

/* Nav dropdown */
.nav-dropdown-toggle .bi-chevron-down { transition: transform 0.3s ease; }
li.open .nav-dropdown-toggle .bi-chevron-down { transform: rotate(180deg); }
.dropdown-menu { transition: all 0.4s cubic-bezier(0.16,1,0.3,1); }

/* Navbar states */
.navbar.scrolled { background: rgba(255,255,255,0.97); backdrop-filter: blur(20px); box-shadow: 0 4px 30px rgba(0,0,0,0.08); }
.navbar.scrolled .brand-text span { color: #002E7D !important; }
.navbar.scrolled .nav-links a { color: #002E7D !important; }
.navbar.scrolled .nav-links a:hover { color: #e4c829 !important; }
.navbar.scrolled .menu-toggle { color: #002E7D; }
.navbar.menu-active { background: #fff !important; box-shadow: 0 5px 15px rgba(0,0,0,0.1); }
.navbar.menu-active .brand-text span { color: #002E7D !important; }
.navbar.menu-active .menu-toggle { color: #002E7D !important; }

/* Desktop dropdown open */
.nav-links li.open .dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); }

/* Mobile nav */
@media (max-width: 767px) {
    .nav-links { position: absolute; top: 100%; left: 0; width: 100%; background: #fff; flex-direction: column; align-items: stretch; padding: 0.5rem 0; gap: 0; box-shadow: 0 10px 30px rgba(0,0,0,0.1); transform: translateY(-10px); opacity: 0; visibility: hidden; transition: all 0.3s ease; }
    .nav-links.active { transform: translateY(0); opacity: 1; visibility: visible; display: flex !important; }
    .nav-links li { width: 100%; }
    .nav-links a { color: #002E7D !important; padding: 0.8rem 1.5rem; display: block; width: 100%; border-bottom: 1px solid #f0f4f9; font-size: 1rem; }
    .nav-links a:hover { background: #f4f7fa; }
    .dropdown-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; display: none; padding: 0; background: #f8fafc; width: 100%; min-width: 100%; }
    .nav-links li.open .dropdown-menu { display: block; }
    .dropdown-menu a { padding-left: 3rem; padding-top: 0.6rem; padding-bottom: 0.6rem; font-size: 0.9rem; border-bottom: 1px solid #edf2f7; }
}

/* Stat counter */
.stat-number { font-variant-numeric: tabular-nums; }

/* Scroll progress bar */
#scroll-progress { position: fixed; top: 0; left: 0; height: 3px; background: linear-gradient(90deg, #002E7D, #e4c829); z-index: 9999; width: 0%; transition: width 0.1s ease-out; }

/* Marquee edge fade */
.marquee-wrapper { mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent); -webkit-mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent); }

/* Hero text shadow */
.hero-text-shadow { text-shadow: 0 2px 20px rgba(0,0,0,0.3), 0 0 60px rgba(0,0,0,0.2); }

/* CTA bg */
.cta-bg { background-size: cover; background-position: center; }

/* Stat divider */
.stat-divider { width: 1px; height: 60px; background: rgba(255,255,255,0.1); }

/* World map */
.world-map-wrap { position: relative; width: 100%; margin: 0 auto 3rem; }
.world-map-svg { width: 100%; height: auto; display: block; }
.goa-overlay { position: absolute; left: 72.25%; top: 51.45%; transform: translate(-50%, -50%); pointer-events: none; }
.goa-logo-pin { position: absolute; bottom: calc(100% + 4px); left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; }
.goa-logo-circle { width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(135deg, #002E7D, #0050C8); display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 25px rgba(0,46,125,0.35); animation: goa-float 3s ease-in-out infinite; }
@keyframes goa-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.goa-connector { width: 2px; height: 16px; background: linear-gradient(to bottom, rgba(228,200,41,0.8), rgba(228,200,41,0.2)); }
.goa-label { position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 11px; font-weight: 600; color: #002E7D; background: rgba(255,255,255,0.9); padding: 3px 12px; border-radius: 20px; box-shadow: 0 2px 10px rgba(0,0,0,0.08); }

/* Sister plant pins */
.plant-pin { position: absolute; transform: translate(-50%, -50%); pointer-events: auto; cursor: pointer; z-index: 5; }
.plant-dot { width: 12px; height: 12px; border-radius: 50%; background: #002E7D; border: 2px solid #fff; box-shadow: 0 2px 8px rgba(0,46,125,0.3); transition: all 0.3s ease; }
.plant-pin:hover .plant-dot { transform: scale(1.5); background: #0050C8; box-shadow: 0 4px 16px rgba(0,80,200,0.4); }
.plant-tooltip { position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 10px; font-weight: 600; color: #002E7D; background: rgba(255,255,255,0.92); padding: 3px 10px; border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); opacity: 1; pointer-events: none; transition: all 0.25s ease; border: 1px solid rgba(0,46,125,0.1); }
.plant-tooltip.below { bottom: auto; top: calc(100% + 6px); }
.plant-tooltip.left { bottom: auto; top: 50%; left: auto; right: calc(100% + 6px); transform: translateY(-50%); }
.plant-tooltip.right { bottom: auto; top: 50%; left: calc(100% + 6px); transform: translateY(-50%); }
.plant-pin:hover .plant-tooltip { opacity: 1; transform: translateX(-50%) translateY(-2px); box-shadow: 0 4px 15px rgba(0,0,0,0.12); }
.plant-pin:hover .plant-tooltip.below { transform: translateX(-50%) translateY(2px); }
.plant-pin:hover .plant-tooltip.left { transform: translateY(-50%) translateX(-2px); }
.plant-pin:hover .plant-tooltip.right { transform: translateY(-50%) translateX(2px); }
.plant-pulse { position: absolute; inset: 0; border-radius: 50%; border: 2px solid rgba(0,46,125,0.3); animation: plant-pulse 2.5s ease-out infinite; }
@keyframes plant-pulse { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(3); opacity: 0; } }

/* Card grid */
.card-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; max-width: 80rem; margin-left: auto; margin-right: auto; }
@media (min-width: 640px) { .card-grid { grid-template-columns: repeat(2, 1fr); gap: 1.75rem; } }
@media (min-width: 1024px) { .card-grid { grid-template-columns: repeat(4, 1fr); gap: 1.75rem; } }
.quick-card { transition: box-shadow 0.3s ease; }
.quick-card:hover { box-shadow: 0 20px 40px rgba(0,0,0,0.10); }
.quick-card .card-arrow { transition: transform 0.3s ease; }
.quick-card:hover .card-arrow { transform: translateX(4px); }

/* Contact departments section background */
.bg-departments { background: radial-gradient(circle at 10% 10%, rgba(228,200,41,0.12) 0%, transparent 40%), radial-gradient(circle at 90% 80%, rgba(0,46,125,0.08) 0%, transparent 45%), #ffffff; }

/* Job listing description clamp / expand */
.job-description p { color: #334155; opacity: 0.85; line-height: 1.6; max-height: 5.5rem; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; font-size: 0.95rem; }
.job-description.collapsed p { max-height: 5.5rem; }
.job-description.expanded p { max-height: none; display: block; -webkit-line-clamp: unset; line-clamp: unset; }
.job-description-toggle { background: none; border: none; color: #002E7D; font-weight: 600; cursor: pointer; padding: 0; }

/* Tailwind line-clamp fallback */
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Gallery lightbox skin */
.goverlay { background: rgba(0, 46, 125, 0.92) !important; }
.glightbox-clean .gprev, .glightbox-clean .gnext, .glightbox-clean .gclose { background: rgba(228, 200, 41, 0.95) !important; color: #002E7D !important; border-radius: 50% !important; width: 44px !important; height: 44px !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.glightbox-clean .gprev:hover, .glightbox-clean .gnext:hover, .glightbox-clean .gclose:hover { background: #ffffff !important; color: #002E7D !important; }
.glightbox-clean .gclose { opacity: 1 !important; top: 20px !important; right: 20px !important; }
.gslide-description { background: rgba(10,15,26,0.8) !important; color: #ffffff !important; }
