/* ============================================
   ENT Consulting — Global Stylesheet
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

/* ---- Reset & Base ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
    font-family: 'Inter', sans-serif;
    background-color: #f4f6f9;
    color: #141a24;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }

/* ---- Brand Tokens ---- */
:root {
    --dark:   #141a24;
    --ink:    #0b0f15;
    --light:  #f4f6f9;
    --card:   #ffffff;
    --muted:  #7a8291;
    --line:   #e4e8ee;
    --tint:   #e6edf4;
    --accent: #1d4ed8;
}

/* ---- Nav underline hover ---- */
.nav-link { position: relative; }
.nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 100%;
    height: 2px;
    background: currentColor;
    transform: scaleX(0);
    transition: transform 0.3s ease;
    transform-origin: right;
}
.nav-link:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

/* ---- Mobile Nav ---- */
#mobile-menu {
    transition: max-height 0.35s ease, opacity 0.35s ease;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
}
#mobile-menu.open {
    max-height: 400px;
    opacity: 1;
}

/* ---- Hero Slider ---- */
@keyframes slide { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.animate-slide { animation: slide 30s linear infinite; }

/* ---- Services Stack ---- */
.service-stack-item {
    border-top: 1px solid var(--line);
    transition: background 0.3s ease;
    cursor: pointer;
}
.service-stack-item:last-child { border-bottom: 1px solid var(--line); }
.service-stack-item .stack-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.45s ease, padding 0.3s ease;
}
.service-stack-item.active .stack-body {
    max-height: 300px;
}
.service-stack-item .stack-icon-wrap {
    transition: transform 0.35s ease;
}
.service-stack-item.active .stack-icon-wrap {
    transform: rotate(45deg);
}

/* ---- FAQ Accordion ---- */
.faq-item .faq-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
}
.faq-item.open .faq-body { max-height: 400px; }
.faq-item .faq-chevron { transition: transform 0.35s ease; }
.faq-item.open .faq-chevron { transform: rotate(180deg); }

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

/* ---- Policy content typography ---- */
.policy-content h2 {
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--dark);
    margin-top: 2.5rem;
    margin-bottom: 0.75rem;
}
.policy-content h3 {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--dark);
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
}
.policy-content p {
    color: var(--muted);
    line-height: 1.8;
    margin-bottom: 1.25rem;
}
.policy-content ul {
    list-style: disc;
    padding-left: 1.5rem;
    margin-bottom: 1.25rem;
    color: var(--muted);
    line-height: 1.8;
}
.policy-content a { color: var(--accent); }
.policy-content a:hover { text-decoration: underline; }

/* ---- Utility ---- */
.sr-only {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.container { width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 1.5rem; }

/* ---- Focus visible ---- */
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
