/* --- Variable Definitions --- */
:root {
    --primary-blue: #113daa;
    --dark-gray: #333333; 
    --light-gray: #6a6a72;
    --off-white: #f4f7f9;
    --white: #FFFFFF;
    --black: #000000;
}

/* --- General & Body Styles --- */
body {
    margin: 0;
    font-family: 'Exo', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.5;
    color: var(--dark-gray);
    background-color: var(--white);
}

a { color: var(--primary-blue); font-weight: bold; text-decoration: none; }
a:hover { text-decoration: underline; }

/* --- Header & Logos --- */
.site-header {
    background-color: var(--white);
    padding: 20px 0;
    border-bottom: 3px solid var(--primary-blue);
}

.logo-container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
}
.logo-item { text-align: center; }
.logo-label {
    display: block;
    font-size: 0.9em;
    color: var(--light-gray);
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
}
.logo-old, .logo-new { max-height: 60px; width: auto; }
.transition-icon {
    font-size: 2.5em;
    color: var(--primary-blue);
    margin-top: 25px; /* Aligns with logos */
}


/* --- Full-Width Section & Container --- */
.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}
.content-section { padding: 80px 0; text-align: center;}
.content-section.alternate-bg { background-color: var(--off-white); }

.content-section h2 {
    font-size: 2.4em;
    font-weight: 700;
    color: var(--primary-blue);
    margin-top: 0;
    margin-bottom: 60px;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-align: center;
    position: relative;
    padding-bottom: 15px;
}
.content-section h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background-color: var(--primary-blue);
}
.content-section h2 .fa-solid { margin-right: 15px; }


/* --- Hero Section --- */
.hero {
    background-image: linear-gradient(rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.65)), url('background-industrial.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    color: var(--white);
    padding: 100px 0;
    text-align: center;
}
.hero-content { max-width: 820px; margin: 0 auto; }
.hero h1 { font-size: 2.6em; font-weight: 700; margin-bottom: 0.2em; line-height: 1.5em; }
.hero .subtitle {
    font-size: 1.5em;
    color: #e0e0e0;
    margin-bottom: 1.5em;
    font-weight: 300;
}

/* --- Grid Layouts --- */
.grid-container {
    display: grid;
    gap: 30px;
    text-align: left;
}
.three-cols { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.four-cols { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }

.grid-item {
    background-color: var(--white);
    padding: 30px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    text-align: center;
}
.alternate-bg .grid-item {
    background-color: var(--white);
}
.grid-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.08);
}
.grid-item h3 {
    font-size: 1.3em;
    color: var(--black);
    margin-top: 0;
    margin-bottom: 10px;
}
.icon-feature {
    font-size: 2.5em;
    color: var(--primary-blue);
    margin-bottom: 15px;
    display: block;
    text-align: center;
}

/* --- Image Scroller Section --- */
.scroller-section {
    padding: 40px 0;
    background-color: var(--off-white);
}

.scroller {
    max-width: 1200px;
    margin: auto;
    overflow: hidden;
    -webkit-mask: linear-gradient(90deg, transparent, white 20%, white 80%, transparent);
    mask: linear-gradient(90deg, transparent, white 20%, white 80%, transparent);
}
.scroller-inner {
    display: flex;
    flex-wrap: nowrap;
    gap: 20px;
    padding-block: 1rem;
    list-style: none; /* remove ul dots */
    margin: 0; padding: 0; /* remove ul default padding */
}
.scroller-inner img {
    height: 160px; /* All images will have the same height */
    width: auto;
    border-radius: 6px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.07);
}

.scroller[data-animated="true"] {
    overflow: hidden;
}

.scroller[data-animated="true"] .scroller-inner {
    width: max-content;
    flex-wrap: nowrap;
    animation: scroll 40s linear infinite;
}
.scroller:hover .scroller-inner {
    animation-play-state: paused;
}

@keyframes scroll {
  to {
    transform: translate(calc(-50% - 10px)); /* Half the width + half the gap */
  }
}

/* --- CTA Section --- */
.cta-section { background-color: var(--primary-blue); color: var(--white); text-align: center;}
.cta-section h2 { color: var(--white); }
.cta-section h2::after { background-color: var(--white); }
.cta-button {
    display: inline-block;
    background-color: var(--white);
    color: var(--primary-blue);
    padding: 15px 35px;
    font-size: 1.1em;
    font-weight: bold;
    text-decoration: none;
    border-radius: 5px;
    margin-top: 20px;
    transition: background-color 0.3s ease, color 0.3s ease, transform 0.2s ease;
    border: 2px solid var(--white);
    text-transform: uppercase;
}
.cta-button:hover { background-color: transparent; color: var(--white); transform: translateY(-3px); text-decoration: none; }

/* --- Contact & Closing Sections --- */
.contact-info {
    font-size: 1.1em;
    display: inline-block;
    text-align: left;
    background-color: var(--off-white);
    padding: 30px 40px;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
}
.contact-info p { margin: 10px 0; }
.contact-info .fa-solid { color: var(--primary-blue); margin-right: 15px; width: 20px; }

.closing-section { text-align: center; }
.closing-section p { max-width: 820px; margin-left: auto; margin-right: auto; }

/* --- Footer --- */
.site-footer-bottom {
    background-color: var(--dark-gray);
    color: var(--off-white);
    text-align: center;
    padding: 20px;
    font-size: 0.9em;
}

/* --- Responsive Adjustments --- */
@media (max-width: 768px) {
    body { font-size: 16px; }
    .hero h1 { font-size: 2.2em; }
    .hero .subtitle { font-size: 1.2em; }
    .content-section h2 { font-size: 1.8em; }
    .scroller-inner img { height: 120px; }
}

@media (max-width: 480px) {
    .logo-container { flex-direction: column; gap: 20px; }
    .transition-icon { transform: rotate(90deg); margin-top: 0; }
    .logo-old, .logo-new { max-height: 45px; }
    .content-section { padding: 60px 0; }
    .scroller-inner img { height: 100px; }
}