/* E2V Carpentry Theme - Final Consolidated Version */
/* ============================================== */

/* 1. Global Settings & Variables
------------------------------------- */
:root {
    --e2v-dark: #1c1c1c;      /* A deeper, richer black */
    --e2v-green: #84BD00;     /* Your vibrant logo green */
    --e2v-light: #f8f9fa;     /* Off-white for text */
    --e2v-grey: #adb5bd;      /* A secondary grey for text */
    --e2v-dark-contrast: #2a2a2a; /* A slightly lighter dark shade for sections */
}

body {
    font-family: 'Poppins', sans-serif;
    background-color: var(--e2v-dark);
    color: var(--e2v-light);
}

/* 2. Typography & Links
------------------------------------- */
h1, h2, h3, h4, h5, h6 {
    color: var(--e2v-light);
    font-weight: 600;
}

p {
    color: var(--e2v-grey);
    line-height: 1.7;
}

a {
    color: var(--e2v-green);
    text-decoration: none;
    transition: color 0.3s ease;
}

a:hover {
    color: #a2e800; /* Lighter green on hover */
}

.heading-accent::after {
    content: '';
    display: block;
    width: 60px;
    height: 4px;
    background: linear-gradient(90deg, var(--e2v-green), #a2e800);
    margin: 15px auto 0;
    border-radius: 2px;
}
.heading-accent.text-start::after {
    margin-left: 0;
}

/* 3. Reusable Components
------------------------------------- */
.btn-primary {
    background-color: var(--e2v-green);
    border: 2px solid var(--e2v-green);
    color: var(--e2v-dark);
    font-weight: bold;
    padding: 12px 30px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(132, 189, 0, 0.2);
}

.btn-primary:hover {
    background-color: #a2e800;
    border-color: #a2e800;
    color: var(--e2v-dark);
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(162, 232, 0, 0.3);
}

.section-bg-contrast {
    background-color: var(--e2v-dark-contrast);
}

/* 4. Header & Navigation
------------------------------------- */
.top-header { background: #111 !important; font-size: 0.9rem; }
.top-header span { color: var(--e2v-grey); }
.navbar { background-color: var(--e2v-dark) !important; border-bottom: 1px solid #333; padding: 1rem 0; }
.nav-link { color: var(--e2v-light) !important; font-weight: 500; margin: 0 10px; }
.nav-link:hover, .nav-link.active { color: var(--e2v-green) !important; }

/* 5. Text Logo Styling
------------------------------------- */
.navbar-brand.text-logo {
    color: var(--e2v-green) !important;
    font-weight: 800; /* Extra bold */
    line-height: 1;
    display: flex;
    align-items: center;
    padding-top: 0;
    padding-bottom: 0;
}
.text-logo .logo-icon-e { font-size: 1.8rem; margin-right: 4px; font-weight: 900; }
.text-logo .logo-main-text { font-size: 2.2rem; letter-spacing: -2px; }
.logo-subtitle-wrapper { display: flex; flex-direction: column; margin-left: 8px; margin-top: 2px; }
.logo-subtitle-wrapper .logo-subtitle { display: block; font-size: 0.7rem; font-weight: 400; letter-spacing: 2px; color: var(--e2v-grey); line-height: 1; margin-top: 2px; }
footer .text-logo { font-size: 0.8em; }

/* 6. Hero Section
------------------------------------- */
.hero-section { position: relative; height: 90vh; display: flex; align-items: center; justify-content: center; color: white; text-align: center; }
#hero-video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.hero-section::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); z-index: -1; }
.hero-text h1 { font-size: 3.5rem; font-weight: 700; text-shadow: 0px 2px 10px rgba(0,0,0,0.7); }

/* 7. Accordion (FAQ) Styling
------------------------------------- */
.accordion-item { background-color: var(--e2v-dark-contrast); border: 1px solid #444; margin-bottom: 10px; border-radius: 8px; }
.accordion-header .accordion-button { background-color: var(--e2v-dark-contrast); color: var(--e2v-light); font-weight: 600; border-radius: 8px; box-shadow: none; }
.accordion-header .accordion-button:not(.collapsed) { color: var(--e2v-green); background-color: #333; }
.accordion-button::after { filter: invert(1) grayscale(100%) brightness(200%); }
.accordion-body { background-color: var(--e2v-dark); color: var(--e2v-grey); border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; }

/* 8. Card Styling (Values, Services, Blog)
------------------------------------- */
.value-card, .service-card, .blog-card {
    background-color: var(--e2v-dark-contrast);
    border: 1px solid #444;
    border-radius: 8px;
    padding: 2rem;
    height: 100%;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.value-card:hover, .service-card:hover, .blog-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.4);
    border-color: var(--e2v-green);
}
.value-card .icon { font-size: 2.5rem; color: var(--e2v-green); margin-bottom: 1rem; }
.service-card img, .blog-card img { border-radius: 8px; margin-bottom: 1.5rem; object-fit: cover; width: 100%; }

/* 9. Homepage Service Icons
------------------------------------- */
.service-icon-box {
    padding: 1.5rem 1rem;
    background-color: var(--e2v-dark);
    border-radius: 8px;
    height: 100%;
    transition: background-color 0.3s ease;
}
.service-icon-box:hover { background-color: #111; }
.service-icon-box i { font-size: 2.5rem; color: var(--e2v-green); margin-bottom: 1rem; transition: transform 0.3s ease; }
.service-icon-box:hover i { transform: translateY(-5px) scale(1.1); }

/* 10. Form Controls on Dark Theme
------------------------------------- */
.form-control.dark-theme-form {
    background-color: #3a3a3a;
    color: var(--e2v-light);
    border: 1px solid #555;
    padding: 12px;
}
.form-control.dark-theme-form::placeholder {
    color: var(--e2v-grey);
}
.form-control.dark-theme-form:focus {
    background-color: #444;
    color: var(--e2v-light);
    border-color: var(--e2v-green);
    box-shadow: 0 0 0 0.25rem rgba(132, 189, 0, 0.25);
}

/* 11. Footer
------------------------------------- */
footer { background-color: #111; color: var(--e2v-grey); }
footer h5 { color: var(--e2v-light); }

/* 12. Responsive Adjustments
------------------------------------- */
@media (max-width: 767px) {
    /* Reduce headline size on mobile */
    .hero-text h1 {
        font-size: 2.5rem;
    }

    /* Add more vertical space on mobile */
    .py-5 {
        padding-top: 3rem !important;
        padding-bottom: 3rem !important;
    }
}

/* 5b. Real logo image (replaces the .text-logo recreation in header/footer)
------------------------------------- */
.site-logo { height: 46px; width: auto; display: block; }
.footer-logo { height: 40px; width: auto; display: block; }
@media (max-width: 575.98px) {
    .site-logo { height: 38px; }
    .footer-logo { height: 34px; }
}

/* Top bar: two numbers now, so they need separating and they are links. */
.top-header a { color: var(--e2v-light); text-decoration: none; }
.top-header a:hover { color: var(--e2v-green); }
.topbar-sep { color: var(--e2v-grey); margin: 0 .55rem; }
.top-header .fa-phone-alt { margin-right: .55rem !important; }
footer a[href^="tel:"], footer a[href^="mailto:"] { text-decoration: none; }

/* 9. Our Team (about.php)
------------------------------------- */
.team-card {
    background-color: var(--e2v-dark-contrast);
    border: 1px solid #333;
    border-left: 4px solid var(--e2v-green);
    border-radius: 8px;
    padding: 1.75rem;
}
.team-card .team-name { color: var(--e2v-light); font-weight: 700; font-size: 1.35rem; margin-bottom: .25rem; }
.team-card .team-role {
    color: var(--e2v-green);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: .78rem;
    font-weight: 600;
    margin-bottom: 1rem;
}
.team-card p:last-child { margin-bottom: 0; }

/* Plain list, not a table — the table's rules rendered as white lines on the
   dark page and the client asked for text instead. */
.trades-list { list-style: none; padding: 0; margin: 0; }
.trade-item {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .35rem 1rem;
    padding: .55rem 0;
    color: var(--e2v-grey);
}
.trade-name { color: var(--e2v-light); font-weight: 600; min-width: 5.5rem; }
.trade-role { color: var(--e2v-green); font-weight: 600; font-size: .85rem; text-transform: uppercase; letter-spacing: 1px; min-width: 8rem; }
.trade-desc { flex: 1 1 16rem; }
@media (max-width: 575.98px) {
    .trade-item { flex-direction: column; gap: .1rem; padding: .7rem 0; }
    .trade-role { min-width: 0; }
}

/* 10. Our Work gallery (portfolio.php)
------------------------------------- */
.work-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}
.work-tile {
    background-color: var(--e2v-dark-contrast);
    border: 1px solid #333;
    border-radius: 8px;
    overflow: hidden;
    padding: 0;
    display: block;
    width: 100%;
}
.work-photo { cursor: pointer; transition: border-color .25s ease, transform .25s ease; }
.work-photo img { width: 100%; height: 260px; object-fit: cover; display: block; }
.work-photo:hover, .work-photo:focus-visible { border-color: var(--e2v-green); transform: translateY(-3px); }
.work-photo:focus-visible { outline: 2px solid var(--e2v-green); outline-offset: 2px; }
.work-tile video { display: block; background: #000; }
.work-modal { background-color: var(--e2v-dark); border: 1px solid #333; }
@media (max-width: 575.98px) {
    .work-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; }
    .work-photo img { height: 170px; }
}

/* 11. Small-screen gutter fix
------------------------------------- */
@media (max-width: 575.98px) {
    .row.g-5 { --bs-gutter-x: 1.5rem; }
}

/* 12. Blog card images
-------------------------------------
   Were inline height:200px with no width or object-fit, so anything that was
   not 2.25:1 got squashed — a 1000x1000 photo rendered 450x200. Crop instead. */
.blog-card-img { width: 100%; height: 200px; object-fit: cover; display: block; }

/* Honeypot. Off-screen rather than display:none, because some bots skip fields
   that are display:none. Never shown to a real visitor either way. */
.hp-field { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
