/* =====================================================================
   EAGLE GPS — About page
   ===================================================================== */

html {
    background-image: url(images/satelliteNW2.png);
    background-size: 7em;
    animation: egps-bg-drift 90s linear infinite;
}

@keyframes egps-bg-drift {
    0%   { background-position: 0 0; }
    50%  { background-position: -2px 3px; }
    100% { background-position: 0 0; }
}

/* ===== INTRO SECTION ===== */
.egps-lead {
    font-size: 1.05em;
    line-height: 1.55em;
}

/* ===== CALL-TO-ACTION BUTTONS ===== */
.egps-cta-row {
    margin: 1.4em 0 0.5em 0;
    display: flex;
    gap: 0.9em;
    flex-wrap: wrap;
}

.egps-btn {
    display: inline-block;
    padding: 0.65em 1.5em;
    border-radius: 0.3em;
    font-weight: bold;
    font-size: 1em;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
    letter-spacing: 0.02em;
    position: relative;
    overflow: hidden;
}

.egps-btn-primary {
    background-color: #004170;
    color: #fff !important;
    border: 2px solid #004170;
}

.egps-btn-primary:hover {
    background-color: #005a9a !important;
    color: #fff !important;
    box-shadow: 0 4px 14px rgba(0, 65, 112, 0.35);
    transform: translateY(-1px);
}

.egps-btn-secondary {
    background-color: #c50400;
    color: #fff !important;
    border: 2px solid #c50400;
}

.egps-btn-secondary:hover {
    background-color: #a00300 !important;
    color: #fff !important;
    box-shadow: 0 4px 14px rgba(197, 4, 0, 0.35);
    transform: translateY(-1px);
}

/* Primary CTA diagonal-gloss shimmer */
.egps-btn-primary::after {
    content: "";
    position: absolute;
    top: 0;
    left: -120%;
    width: 60%;
    height: 100%;
    background: linear-gradient(
        120deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.35) 50%,
        rgba(255, 255, 255, 0) 100%
    );
    transform: skewX(-20deg);
    pointer-events: none;
    animation: egps-btn-shimmer 7s ease-in-out infinite;
}

.egps-btn-primary:hover::after {
    animation-play-state: paused;
}

@keyframes egps-btn-shimmer {
    0%, 85%  { left: -120%; }
    92%      { left: 120%; }
    100%     { left: 120%; }
}

/* ===== SECTIONS ===== */
.egps-section {
    margin-top: 1.6em;
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 650ms cubic-bezier(0.22, 0.9, 0.28, 1),
                transform 650ms cubic-bezier(0.22, 0.9, 0.28, 1);
    will-change: opacity, transform;
}

.egps-section.is-inview {
    opacity: 1;
    transform: translateY(0);
}

.egps-section-title {
    font-size: 1.15em !important;
    font-weight: bold !important;
    color: #004170 !important;
    letter-spacing: 0.04em;
    margin: 0 0 0.7em 0 !important;
    padding-bottom: 0.35em;
    border-bottom: 2px solid transparent;   /* replaced by ::after animator */
    position: relative;
}

.egps-section-title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    height: 2px;
    width: 0;
    background: linear-gradient(90deg, #004170 0%, #0099dd 100%);
    transition: width 380ms cubic-bezier(0.22, 0.9, 0.28, 1) 120ms;
}

.egps-section.is-inview .egps-section-title::after {
    width: 100%;
}

/* ===== FEATURE GRID ===== */
.egps-features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14em, 1fr));
    gap: 0.9em;
    margin-top: 0.5em;
}

.egps-feature-item {
    background-color: #fff;
    border: 1px solid #ced4de;
    border-radius: 0.35em;
    padding: 0.85em 1em 0.9em 1em;
    position: relative;
    opacity: 0;
    transform: translateY(12px);
    transition:
        opacity 520ms cubic-bezier(0.22, 0.9, 0.28, 1),
        transform 520ms cubic-bezier(0.22, 0.9, 0.28, 1),
        border-color 220ms ease,
        box-shadow 220ms ease;
    will-change: opacity, transform;
}

.egps-features.is-inview .egps-feature-item:nth-child(1) { transition-delay: 60ms; }
.egps-features.is-inview .egps-feature-item:nth-child(2) { transition-delay: 120ms; }
.egps-features.is-inview .egps-feature-item:nth-child(3) { transition-delay: 180ms; }
.egps-features.is-inview .egps-feature-item:nth-child(4) { transition-delay: 240ms; }
.egps-features.is-inview .egps-feature-item:nth-child(5) { transition-delay: 300ms; }
.egps-features.is-inview .egps-feature-item:nth-child(6) { transition-delay: 360ms; }
.egps-features.is-inview .egps-feature-item:nth-child(7) { transition-delay: 420ms; }
.egps-features.is-inview .egps-feature-item:nth-child(8) { transition-delay: 480ms; }

.egps-features.is-inview .egps-feature-item {
    opacity: 1;
    transform: translateY(0);
}

.egps-feature-item:hover {
    transform: translateY(-4px);
    border-color: #004170;
    box-shadow: 0 10px 24px rgba(0, 65, 112, 0.12);
}

.egps-feature-item:hover .egps-feature-icon {
    animation: egps-icon-wobble 620ms ease-in-out;
}

@keyframes egps-icon-wobble {
    0%   { transform: rotate(0deg) scale(1); }
    25%  { transform: rotate(-5deg) scale(1.06); }
    55%  { transform: rotate(4deg) scale(1.04); }
    80%  { transform: rotate(-2deg) scale(1.02); }
    100% { transform: rotate(0deg) scale(1); }
}

.egps-feature-item h3 {
    font-size: 0.98em !important;
    font-weight: bold !important;
    color: #004170 !important;
    margin: 0.25em 0 0.3em 0 !important;
}

.egps-feature-item p {
    font-size: 0.93em;
    margin: 0 !important;
    line-height: 1.45em;
    color: #333;
}

.egps-feature-icon {
    font-size: 1.5em;
    line-height: 1.1em;
    height: 1.1em;
    display: flex;
    align-items: flex-end;
    margin-bottom: 0.55em;
    transform-origin: bottom center;
    position: relative;
}

/* ===== LIVE PULSE on real-time icons ===== */
.egps-feature-item .egps-marker-img,
.egps-feature-item .egps-phone-svg {
    position: relative;
    z-index: 1;
}

/* Pulse ring emitted from the map marker image */
/*.egps-feature-item .egps-feature-icon:has(.egps-marker-img)::before,
.egps-feature-item .egps-feature-icon:has(.egps-phone-svg)::before {
    content: "";
    position: absolute;
    left: 0.15em;
    bottom: 0.05em;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    border: 2px solid #0099dd;
    opacity: 0;
    transform: scale(0.6);
    pointer-events: none;
    z-index: 0;
    animation: egps-pulse-ring 2.2s ease-out infinite;
}*/

.egps-feature-item .egps-feature-icon:has(.egps-phone-svg)::before {
    border-color: #c50400;
    left: 0.25em;
    width: 0.75em;
    height: 0.75em;
}

@keyframes egps-pulse-ring {
    0%   { opacity: 0.75; transform: scale(0.6); }
    70%  { opacity: 0;    transform: scale(1.8); }
    100% { opacity: 0;    transform: scale(1.8); }
}

/* ===== INDUSTRY LIST ===== */
.egps-industry-list {
    margin: 0.5em 0 0.5em 1.1em;
    padding: 0;
}

.egps-industry-list li {
    margin-bottom: 0.45em;
    line-height: 1.45em;
    opacity: 0;
    transform: translateX(-8px);
    transition:
        opacity 420ms cubic-bezier(0.22, 0.9, 0.28, 1),
        transform 420ms cubic-bezier(0.22, 0.9, 0.28, 1);
}

.egps-industries.is-inview .egps-industry-list li:nth-child(1) { transition-delay: 60ms; }
.egps-industries.is-inview .egps-industry-list li:nth-child(2) { transition-delay: 120ms; }
.egps-industries.is-inview .egps-industry-list li:nth-child(3) { transition-delay: 180ms; }
.egps-industries.is-inview .egps-industry-list li:nth-child(4) { transition-delay: 240ms; }
.egps-industries.is-inview .egps-industry-list li:nth-child(5) { transition-delay: 300ms; }
.egps-industries.is-inview .egps-industry-list li:nth-child(6) { transition-delay: 360ms; }
.egps-industries.is-inview .egps-industry-list li:nth-child(7) { transition-delay: 420ms; }

.egps-industries.is-inview .egps-industry-list li {
    opacity: 1;
    transform: translateX(0);
}

/* ===== ADDRESS NOTE ===== */
.egps-address-note {
    margin-top: 1em;
    font-size: 0.9em;
    line-height: 1.5em;
}

/* ===== ICON COLOUR OVERRIDES ===== */
.egps-icon-blue {
    filter: invert(22%) sepia(85%) saturate(600%) hue-rotate(183deg) brightness(88%) contrast(102%);
}

.egps-geofence-svg {
    width: 0.99em;
    height: 0.99em;
    display: block;
}

.egps-shield-svg {
    width: 1.25em;
    height: 1.25em;
    display: block;
}

.egps-marker-img {
    height: 1.35em;
    width: auto;
    display: block;
}

.egps-phone-svg {
    width: 0.85em;
    height: 1.03em;
    display: block;
}

.egps-barchart-svg {
    width: 1.12em;
    height: 0.92em;
    display: block;
}


/* ===== RESPONSIVE ===== */
@media only screen and (max-width: 620px) {
    .egps-features-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media only screen and (max-width: 440px) {
    .egps-features-grid {
        grid-template-columns: 1fr;
    }

    .egps-cta-row {
        flex-direction: column;
    }

    .egps-btn {
        text-align: center;
    }
}

/* ===== ACCESSIBILITY: REDUCED MOTION ===== */
@media (prefers-reduced-motion: reduce) {
    html { animation: none !important; }
    .egps-section,
    .egps-feature-item,
    .egps-industry-list li {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
    .egps-section-title::after { width: 100% !important; transition: none !important; }
    .egps-btn-primary::after { display: none !important; }
    .egps-feature-icon:has(.egps-marker-img)::before,
    .egps-feature-icon:has(.egps-phone-svg)::before { animation: none !important; display: none !important; }
    .egps-feature-item:hover { transform: none !important; }
    .egps-feature-item:hover .egps-feature-icon { animation: none !important; }
}
