:root {
    --primary: #111111;
    --primary-light: #333333;
    --accent: #111111;
    --accent-bright: #444444;
    --dark: #000000;
    --section-warm: #F5F5F5;
    --section-cool: #FAFAFA;
    --border: #E0E0E0;
}

body { font-family: 'Inter', sans-serif; color: #1a1a1a; }

/* NAVBAR */
.navbar {
    background: #111111 !important;
    padding: .65rem 0;
    box-shadow: 0 1px 0 rgba(255,255,255,.08);
}
.navbar .nav-link {
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .07em;
    color: rgba(255,255,255,.6) !important;
    padding: .45rem .9rem;
    position: relative;
    transition: color .22s;
}
.navbar .nav-link::after {
    content: '';
    position: absolute;
    bottom: 0; left: 50%; right: 50%;
    height: 1.5px;
    background: #ffffff;
    transition: left .25s, right .25s;
}
.navbar .nav-link:hover::after,
.navbar .nav-link.active::after { left: .9rem; right: .9rem; }
.navbar .nav-link:hover,
.navbar .nav-link.active { color: #ffffff !important; }

/* HERO */
.hero-slide {
    height: 100vh;
    max-height: 670px;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #111;
}
.hero-slide-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,.25) 0%, rgba(0,0,0,.65) 100%);
}
.hero-slide-content {
    position: relative;
    text-align: center;
    z-index: 2;
    padding: 0 1rem;
}
.hero-slide-content h1 { text-shadow: 0 2px 18px rgba(0,0,0,.5); }
.letter-spacing-lg { letter-spacing: .15em; }
.carousel-control-prev, .carousel-control-next { opacity: .6; width: 44px !important; }

/* DIVIDER */
.divider-line {
    width: 50px; height: 2px;
    background: #111111;
    border-radius: 1px;
    transition: width .4s ease;
}
*:hover > .divider-line { width: 80px; }

/* STATS BAR */
.stats-bar {
    background: #111111;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.stat-item { padding: .6rem 1rem; cursor: default; }
.stat-number {
    font-size: 2.1rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1;
    transition: all .3s ease;
    display: inline-block;
}
.stat-item:hover .stat-number { color: #cccccc; transform: scale(1.08); }
.stat-label {
    font-size: .78rem;
    color: rgba(255,255,255,.5);
    margin-top: .35rem;
    letter-spacing: .05em;
    transition: color .3s;
}
.stat-item:hover .stat-label { color: rgba(255,255,255,.85); }

/* SECTIONS */
.section-about { background: #ffffff; }
.section-services { background: #F5F5F5; }
.section-why { background: #111111; position: relative; overflow: hidden; }
.section-why::before {
    content: '';
    position: absolute; inset: 0;
    background-image: radial-gradient(circle at 20% 50%, rgba(255,255,255,.03) 0%, transparent 60%);
    pointer-events: none;
}
.section-refs { background: #FAFAFA; }

/* SECTION HEADINGS */
.section-title {
    display: inline-block;
    transition: color .25s ease;
    cursor: default;
}
.section-title:hover { color: #333333 !important; }

/* ABOUT CHECK ITEMS */
.check-item { transition: transform .2s; cursor: default; }
.check-item:hover { transform: translateX(4px); }
.check-item:hover span { color: #111111 !important; font-weight: 700; }
.check-item .bi-check-circle-fill { transition: color .3s; }
.check-item:hover .bi-check-circle-fill { color: #333333 !important; }

/* CATEGORY CARDS */
.cat-card-inner {
    height: 290px;
    background: #e5e7eb;
    box-shadow: 0 2px 12px rgba(0,0,0,.1);
    transition: box-shadow .3s;
}
.cat-card:hover .cat-card-inner { box-shadow: 0 8px 32px rgba(0,0,0,.22); }
.cat-card-img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .5s ease, filter .4s ease;
    display: block;
}
.cat-card:hover .cat-card-img { transform: scale(1.07); filter: brightness(1.04); }
.cat-card-inner.no-img { background: #222; }
.cat-card-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.04) 55%);
    transition: background .3s;
}
.cat-card:hover .cat-card-overlay {
    background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.1) 100%);
}
.cat-card-label {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 1rem 1rem 1.1rem;
    text-align: center;
    letter-spacing: .06em;
    font-size: .78rem;
    transition: padding .3s;
}
.cat-card:hover .cat-card-label span { color: #ffffff !important; }

/* WHY CARDS */
.why-card {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.1);
    transition: background .3s, border-color .3s, transform .3s;
}
.why-card:hover {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.3);
    transform: translateY(-5px);
}
.why-card .bi { transition: transform .3s; }
.why-card:hover .bi { transform: scale(1.15); }
.why-card h5 { transition: color .3s; }
.why-card:hover h5 { color: #ffffff !important; }

/* REFERENCE ITEMS */
.ref-item {
    border-radius: 7px;
    transition: background .2s, transform .2s, box-shadow .2s;
    cursor: default;
}
.ref-item:hover {
    background: rgba(0,0,0,.04);
    transform: translateX(5px);
    box-shadow: -3px 0 0 #111111;
}
.ref-item span { transition: color .2s, font-weight .1s; }
.ref-item:hover span { color: #111111 !important; font-weight: 600; }
.ref-item .bi { transition: color .3s; }
.ref-item:hover .bi { color: #333333 !important; }

/* CTA SECTION */
.cta-section {
    background: #111111;
    position: relative;
    overflow: hidden;
}
.cta-section::before {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(circle at 70% 50%, rgba(255,255,255,.04) 0%, transparent 60%);
}
.cta-section h3 { color: #fff; }
.cta-section p { color: rgba(255,255,255,.7) !important; }
.cta-section .btn-light {
    background: #ffffff; border-color: #ffffff;
    color: #111111; font-weight: 700;
    transition: background .2s, transform .2s;
}
.cta-section .btn-light:hover { background: #eeeeee; transform: translateY(-1px); }
.cta-section .btn-outline-light {
    border-color: rgba(255,255,255,.45); color: #fff;
    transition: background .2s, border-color .2s;
}
.cta-section .btn-outline-light:hover {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.7);
}

/* CONTACT */
.contact-info-item {
    padding: .6rem .8rem;
    border-radius: 10px;
    transition: background .2s, transform .2s;
    cursor: default;
}
.contact-info-item:hover { background: #F5F5F5; transform: translateX(5px); }
.contact-link { transition: color .2s; }
.contact-link:hover { color: #111111 !important; }

/* PAGE HEADER */
.page-header { background: #111111; }

/* SERVICE / PROJECT CARDS */
.service-card, .project-card {
    border-radius: 12px !important;
    transition: transform .25s, box-shadow .25s;
}
.service-card:hover, .project-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 32px rgba(0,0,0,.1) !important;
}
.service-icon { width:60px; height:60px; display:flex; align-items:center; justify-content:center; }
.contact-icon { width:48px; height:48px; display:flex; align-items:center; justify-content:center; flex-shrink:0; border-radius:10px; }
.project-placeholder { height:180px; border-radius:12px 12px 0 0; }

/* FOOTER */
.footer-main {
    background: #0a0a0a !important;
    border-top: 2px solid #222222;
}
.footer-main .fw-bold { color: #ffffff !important; }
.footer-main h6 { color: #888888 !important; letter-spacing: .08em; }
.footer-main p.text-muted,
.footer-main ul li,
.footer-main ul li a,
.footer-main ul li a.text-muted,
.footer-main li.text-muted,
.footer-main span.text-muted { color: rgba(255,255,255,.6) !important; }
.footer-main a { transition: color .2s; }
.footer-main a:hover { color: #ffffff !important; }
.footer-main .bi-facebook,
.footer-main .bi-instagram,
.footer-main .bi-linkedin {
    color: rgba(255,255,255,.3) !important;
    font-size: 1.2rem;
    transition: color .2s;
}
.footer-main .bi-facebook:hover,
.footer-main .bi-instagram:hover,
.footer-main .bi-linkedin:hover { color: rgba(255,255,255,.9) !important; }
.footer-main hr { border-color: rgba(255,255,255,.07) !important; }
.footer-main .text-warning { color: rgba(255,255,255,.55) !important; }
.footer-main .bi.text-warning { color: rgba(255,255,255,.45) !important; }

/* BUTTONS */
.btn-primary {
    background: #111111 !important;
    border-color: #111111 !important;
    color: #ffffff !important;
    transition: background .2s, box-shadow .2s, transform .2s;
}
.btn-primary:hover {
    background: #333333 !important;
    box-shadow: 0 4px 14px rgba(0,0,0,.22) !important;
    transform: translateY(-1px);
}
.btn-warning {
    background: #111111 !important;
    border-color: #111111 !important;
    color: #ffffff !important;
    transition: background .2s, transform .2s;
}
.btn-warning:hover {
    background: #333333 !important;
    border-color: #333333 !important;
    color: #ffffff !important;
    transform: translateY(-1px);
}
.btn-outline-primary {
    border-color: #111111 !important;
    color: #111111 !important;
    transition: all .22s;
}
.btn-outline-primary:hover {
    background: #111111 !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(0,0,0,.18);
    transform: translateY(-1px);
}
.form-control:focus, .form-select:focus {
    border-color: #666666;
    box-shadow: 0 0 0 .2rem rgba(0,0,0,.08);
}

/* BADGE / COLOR FIXES */
.badge.bg-primary { background: #111111 !important; }
.badge.bg-primary.bg-opacity-10 {
    background: rgba(0,0,0,.07) !important;
    color: #111111 !important;
}
.text-warning { color: #777777 !important; }
.text-primary { color: #111111 !important; }

/* UTILITIES */
.py-6 { padding-top: 5rem; padding-bottom: 5rem; }
.letter-spacing { letter-spacing: .08em; }
.rounded-4 { border-radius: 1rem !important; }
.text-white-75 { color: rgba(255,255,255,.75) !important; }

/* RESPONSIVE */
@media (max-width: 768px) {
    .hero-slide { height: 65vw; max-height: 420px; }
    .py-6 { padding-top: 3rem; padding-bottom: 3rem; }
    .stat-number { font-size: 1.6rem; }
}
