body {
    background-color: grey;
    padding-top: 75px;
}

* {box-sizing:border-box}

/* Slideshow container */
.slideshow-container {
    max-width: 1000px;
    position: relative;
    margin: auto;
}

/* Hide the images by default */
.mySlides {
    display: none;
}

/* Next & previous buttons */
.prev, .next {
    cursor: pointer;
    position: absolute;
    top: 50%;
    width: auto;
    margin-top: -22px;
    padding: 16px;
    color: white;
    font-weight: bold;
    font-size: 18px;
    transition: 0.6s ease;
    border-radius: 0 3px 3px 0;
    user-select: none;
    background-color: #717171;
}

/* Position the "next button" to the right */
.next {
    right: 0;
    border-radius: 3px 0 0 3px;
}

/* On hover, add a black background color with a little bit see-through */
.prev:hover, .next:hover {
    background-color: rgba(0,0,0,0.8);
}

/* Caption text */
.text {
    color: #f2f2f2;
    background-color: #717171;
    font-size: 15px;
    padding: 8px 12px;
    position: absolute;
    bottom: 8px;
    width: 100%;
    text-align: center;
}

/* Number text (1/3 etc) */
.numbertext {
    color: #f2f2f2;
    background-color: #717171;
    font-size: 12px;
    padding: 8px 12px;
    position: absolute;
    top: 0;
}

/* The dots/bullets/indicators */
.dot {
    cursor: pointer;
    height: 15px;
    width: 15px;
    margin: 0 2px;
    background-color: #bbb;
    border-radius: 50%;
    display: inline-block;
    transition: background-color 0.6s ease;
}

.active, .dot:hover {
    background-color: #717171;
}

/* Video wrapper */
.video-wrapper {
    width: 100%;
    padding: 0;
    margin: auto;
}

#indexVideo {
    width: 100%;
    height: auto;
    display: block;
    background-color: black;
}

/* Centered content sections */
.intro-section,
.offer-section {
    text-align: center;
}

.intro-section p,
.intro-section ul {
    font-size: 16px;
    line-height: 1.8;
    text-align: left;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.intro-section ul {
    padding-left: 20px;
}

.intro-section ul li {
    margin-bottom: 8px;
}

/* Portfolio CTA button — matches nav Contact button */
.cta-inquiry {
    display: inline-block;
    margin: 25px auto 10px;
    padding: 10px 30px;
    background-color: #005d2e;
    border-color: #005d2e;
    color: white;
    font-family: Logo;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 4px;
    font-size: 15px;
}

.cta-inquiry:hover,
.cta-inquiry:focus {
    background-color: #004a24;
    color: white;
    text-decoration: none;
}

/* Logo font headings */
.intro-section h1,
#offer h1 {
    font-family: Logo;
}

/* Slideshow images */
.mySlides img {
    width: 100%;
    height: auto;
    background-color: black;
}

/* Dots container */
.dots-container {
    text-align: center;
}

/* Footer */
#footer-container {
    background-color: dimgray;
    color: white;
    width: 100%;
    margin: 10px 0 0 0;
    padding: 10px;
}

#footer-container a {
    color: #c3a225;
    text-decoration: none;
}

#footer-container a:hover,
#footer-container a:focus {
    color: white;
    text-decoration: underline;
}

.offer-section a {
    color: #c3a225;
    text-decoration: none;
}

.offer-section a:hover,
.offer-section a:focus {
    color: white;
    text-decoration: underline;
}

/* Portfolio page video */
#portfolioVideo {
    width: 100%;
    height: auto;
    background-color: black;
}

/* Portfolio gallery grid */
.gallery-section {
    padding: 20px 0;
    text-align: center;
}

.gallery-section h2 {
    font-family: Logo;
    margin-bottom: 20px;
}

.gallery-img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    display: block;
    margin-bottom: 15px;
}

/* About page hero banner */
.about-hero {
    margin-bottom: 30px;
}

.about-hero img {
    width: 100%;
    max-height: 400px;
    object-fit: contain;
    background-color: dimgray;
}

/* Certification badges */
.cert-badges {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
    margin: 20px 0;
}

.cert-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 20px;
    border: 2px solid #c3a225;
    border-radius: 5px;
    background-color: #005d2e;
    color: white;
    font-family: Logo;
    text-transform: uppercase;
    font-size: 14px;
}

.cert-badge img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
}

/* ============================================================
   RSC PHASE 4: CSS FOUNDATION
   Appended 2026-03-16 — CSS only, no HTML changes
   ============================================================ */

/* --- Font: Logo (eliminates FOUT by registering at CSS parse time) --- */
@font-face {
    font-family: Logo;
    src: url(fonts/ViceVersus.otf);
    font-display: swap;
}
/* Note: The @font-face in nav.html is left intact as a harmless fallback.
   CSS url() paths resolve relative to the stylesheet file location (root),
   NOT the document's <base href="../">. Portfolio pages are safe. */

/* --- CSS Custom Properties (brand tokens) --- */
:root {
    /* Brand colors */
    --rsc-green:        #005d2e;
    --rsc-green-light:  #1a7a45;
    --rsc-green-dark:   #004020;
    --rsc-gold:         #c3a225;
    --rsc-gold-light:   #d4b84a;
    --rsc-gray:         #717171;
    --rsc-gray-light:   #f5f5f5;
    --rsc-gray-border:  rgba(0, 0, 0, 0.08);

    /* Spacing scale — 8px base; --rsc-space-lg targets 60-80px section padding */
    --rsc-space-xs:  0.5rem;   /* 8px */
    --rsc-space-sm:  1rem;     /* 16px */
    --rsc-space-md:  2rem;     /* 32px */
    --rsc-space-lg:  4rem;     /* 64px */
    --rsc-space-xl:  5rem;     /* 80px */

    /* Border radius scale */
    --rsc-radius-sm: 4px;
    --rsc-radius-md: 8px;
    --rsc-radius-lg: 12px;

    /* Transitions — animate only transform and opacity for GPU compositing */
    --rsc-transition:      0.25s ease;
    --rsc-transition-slow: 0.4s ease;

    /* Content max-width */
    --rsc-content-max: 900px;
}

/* --- Body: white background (overrides grey via cascade order) --- */
/* padding-top: 75px from original body rule is preserved above — do NOT add it here */
body {
    background-color: white;
}

/* --- Section wrappers: spacing and background variants --- */
.rsc-section {
    padding-top: var(--rsc-space-lg);
    padding-bottom: var(--rsc-space-lg);
}

.rsc-section--gray {
    background-color: var(--rsc-gray-light);
}

.rsc-section--green {
    background-color: var(--rsc-green);
    color: white;
}

/* Subtle divider between adjacent rsc-section elements */
.rsc-section + .rsc-section {
    border-top: 1px solid var(--rsc-gray-border);
}

/* --- Typography hierarchy --- */
/* h1 and h2 inside rsc-sections use brand green */
.rsc-section h1,
.rsc-section h2 {
    font-family: Logo;
    text-transform: uppercase;
    color: var(--rsc-green);
}

/* h3 and h4 inside rsc-sections stay dark (not green) */
.rsc-section h3,
.rsc-section h4 {
    font-family: Logo;
    text-transform: uppercase;
    color: #333;
}

/* --- INFR-02: Bootstrap 3 flexbox override for equal-height card rows --- */
/* Usage: add class="row rsc-card-row" to any Bootstrap row containing cards */
.rsc-card-row {
    display: flex;
    flex-wrap: wrap;
}

/* Make each Bootstrap column a flex container so card interior can push CTA to bottom */
.rsc-card-row > [class*="col-"] {
    display: flex;
    flex-direction: column;
}

/* --- Scroll reveal: defined here so Phase 6 HTML can use .reveal immediately --- */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

/* --- Service cards (rsc-service-card) --- */
/* Usage (Phase 6): <div class="col-xs-12 col-sm-6 col-md-4"> */
/*                    <div class="rsc-service-card"> ... </div> */
/*                  </div> */
/* Parent row must use class="row rsc-card-row" for equal-height */
.rsc-service-card {
    background: white;
    border-radius: var(--rsc-radius-md);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 2px solid transparent;
    transition: transform var(--rsc-transition),
                box-shadow var(--rsc-transition),
                border-color var(--rsc-transition);
}

.rsc-service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    border-color: var(--rsc-gold);
}

.rsc-service-card-img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
}

.rsc-service-card-body {
    padding: 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.rsc-service-card-title {
    font-family: Logo;
    text-transform: uppercase;
    color: var(--rsc-green);
    margin-top: 0;
    margin-bottom: 0.75rem;
}

.rsc-service-card-text {
    flex: 1;
    font-size: 14px;
    line-height: 1.6;
    color: #333;
    margin-bottom: 1rem;
}

.rsc-service-card-link {
    font-family: Logo;
    text-transform: uppercase;
    color: var(--rsc-green);
    text-decoration: none;
    font-size: 13px;
    border-bottom: 2px solid var(--rsc-gold);
    padding-bottom: 2px;
    align-self: flex-start;
}

.rsc-service-card-link:hover,
.rsc-service-card-link:focus {
    color: var(--rsc-green-dark);
    text-decoration: none;
}

/* --- Hero overlay (rsc-hero-overlay) --- */
/* Usage (Phase 6): positioned container over .video-wrapper */
/* Applied via ::after on a wrapper, or as an absolute child div */
.rsc-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.25) 0%,
        rgba(0, 0, 0, 0.55) 60%,
        rgba(0, 93, 46, 0.75) 100%
    );
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: var(--rsc-space-md) var(--rsc-space-sm);
    text-align: center;
}

.rsc-hero-overlay-title {
    font-family: Logo;
    text-transform: uppercase;
    color: white;
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    margin-bottom: var(--rsc-space-xs);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.rsc-hero-overlay-tagline {
    color: rgba(255, 255, 255, 0.9);
    font-size: clamp(0.9rem, 2vw, 1.1rem);
    margin-bottom: var(--rsc-space-sm);
}

/* The .video-wrapper already exists — add relative positioning for overlay children */
.video-wrapper {
    position: relative;
}

/* --- Trust bar (rsc-trust-bar) --- */
/* Usage (Phase 6): <div class="rsc-trust-bar"> ... </div> */
.rsc-trust-bar {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--rsc-space-md);
    flex-wrap: wrap;
    padding: var(--rsc-space-sm) var(--rsc-space-sm);
    background-color: var(--rsc-green);
}

.rsc-trust-bar-item {
    display: inline-flex;
    align-items: center;
    gap: var(--rsc-space-xs);
    color: white;
    font-family: Logo;
    text-transform: uppercase;
    font-size: 13px;
}

.rsc-trust-bar-item-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid var(--rsc-gold);
    object-fit: contain;
    flex-shrink: 0;
}

/* --- FAQ accordion (rsc-faq) --- */
/* Usage (Phase 6, Phase 7): <details class="rsc-faq-item"> */
/*                              <summary class="rsc-faq-question">Q</summary> */
/*                              <div class="rsc-faq-answer"><p>A</p></div> */
/*                            </details> */
.rsc-faq {
    border-top: 2px solid var(--rsc-green);
    margin-bottom: var(--rsc-space-md);
}

.rsc-faq-item {
    border-bottom: 1px solid var(--rsc-gray-border);
}

.rsc-faq-question {
    font-family: Logo;
    text-transform: uppercase;
    color: var(--rsc-green);
    font-size: 15px;
    padding: var(--rsc-space-sm) 0;
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Hide default details marker; add custom indicator */
.rsc-faq-question::-webkit-details-marker {
    display: none;
}

.rsc-faq-question::after {
    content: '+';
    color: var(--rsc-gold);
    font-size: 20px;
    font-family: inherit;
    transition: transform var(--rsc-transition);
}

.rsc-faq-item[open] .rsc-faq-question::after {
    transform: rotate(45deg);
}

.rsc-faq-answer {
    padding: 0 0 var(--rsc-space-sm) 0;
    color: #333;
    font-size: 15px;
    line-height: 1.7;
}

/* --- Gallery image: aspect-ratio update (overrides height: 250px via cascade) --- */
/* Class name .gallery-img is NOT renamed — it is coupled to script-jquery.js      */
/* This block appended AFTER the original .gallery-img rule to take precedence      */
.gallery-img {
    height: auto;                        /* override fixed 250px */
    aspect-ratio: 16 / 9;
    border-radius: var(--rsc-radius-sm);
    /* width: 100%, object-fit: cover, display: block, margin-bottom: 15px kept from original */
}

/* Gallery hover overlay wrapper (new class — does not rename .gallery-img) */
/* Usage (Phase 7): wrap each <img class="gallery-img"> in this div */
.rsc-gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: var(--rsc-radius-sm);
    margin-bottom: 15px;
}

/* When inside the wrapper, let wrapper handle bottom spacing */
.rsc-gallery-item .gallery-img {
    margin-bottom: 0;
    transition: transform var(--rsc-transition);
}

.rsc-gallery-item:hover .gallery-img {
    transform: scale(1.04);
}

.rsc-gallery-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    display: flex;
    align-items: flex-end;
    padding: 1rem;
    opacity: 0;
    transition: opacity var(--rsc-transition);
}

.rsc-gallery-item:hover .rsc-gallery-overlay {
    opacity: 1;
}

.rsc-gallery-caption {
    color: white;
    font-family: Logo;
    text-transform: uppercase;
    font-size: 14px;
    margin: 0;
}

/* ============================================================
   RSC PHASE 5: SHARED PARTIALS — SEMANTIC + STYLE CONSOLIDATION
   Appended 2026-03-16 — semantic wrappers + style consolidation
   ============================================================ */

/* Reset <address> italic — used in footer.html for contact info */
address {
    font-style: normal;
}

/* Reset browser UA defaults on semantic landmark wrappers in partials */
#footer-container footer {
    display: block;
    margin: 0;
    padding: 0;
}

#nav-container nav {
    display: block;
    margin: 0;
    padding: 0;
}

#nav-container .col-sm-1 img,
#nav-container .col-xs-2 img {
    max-width: 60px;
    height: auto;
}

/* Moved from footer.html <style> block */
#socials a {
    width: 30px;
}

/* Footer h3 headings — Logo font (replaces four inline style attributes on footer h3 elements) */
#footer-container h3 {
    font-family: Logo;
    text-transform: uppercase;
}

/* Moved from nav.html <style> block — all rules below (excluding @font-face) */

/* Services dropdown — hover trigger */
.dropdown {
    position: relative;
}

.dropdown:hover > .dropdown-menu {
    display: block;
    margin-top: 0;
}

/* Logo font on dropdown items */
.dropdown-menu > li > a {
    font-family: Logo;
    text-transform: uppercase;
}

/* Brand color on dropdown items */
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
    background-color: #005d2e;
    color: white;
}

/* Hamburger icon bars */
.icon-bar {
    display: block;
    width: 22px;
    height: 2px;
    background-color: black;
    margin: 4px 0;
    border-radius: 1px;
}

/* Mobile nav list */
.mobile-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.mobile-nav-list li {
    border-bottom: 1px solid rgba(255,255,255,0.2);
}

.mobile-nav-list li:last-child {
    border-bottom: none;
}

.mobile-nav-list > li > a {
    font-family: Logo;
    text-transform: uppercase;
    color: white;
    padding: 10px 15px;
    display: block;
    text-decoration: none;
}

.mobile-nav-list > li > a:hover {
    background-color: #005d2e;
}

/* Mobile services submenu */
#mobile-services-submenu {
    list-style: none;
    padding: 0 0 0 20px;
    margin: 0;
}

#mobile-services-submenu li a {
    font-family: Logo;
    text-transform: uppercase;
    color: white;
    padding: 8px 15px;
    display: block;
    text-decoration: none;
    font-size: 13px;
}

#mobile-services-submenu li a:hover {
    background-color: #005d2e;
}

/* ============================================================
   RSC PHASE 6: HOMEPAGE VISUAL REFRESH — SERVICE AREA
   Appended 2026-03-16 — service area badge row
   ============================================================ */

/* Service area badge row — flex wrap of city/region name badges */
.rsc-service-area {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--rsc-space-sm);
    padding: var(--rsc-space-sm) 0;
}

.rsc-service-area-badge {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    border: 2px solid var(--rsc-gold);
    border-radius: var(--rsc-radius-sm);
    background-color: var(--rsc-gray-light);
    font-family: Logo;
    text-transform: uppercase;
    font-size: 13px;
    color: var(--rsc-green);
}

/* inquiry.html: extracts inline styles from h1#inquiry-title and .container */
.rsc-inquiry-title {
    font-family: Logo;
    text-transform: uppercase;
    text-align: center;
    padding-top: 20px;
}

.rsc-inquiry-form-container {
    min-height: 700px;
}

/* --- Reduced motion: disable all transitions and animations --- */
/* MUST be the last block before end of file                      */
@media (prefers-reduced-motion: reduce) {
    .rsc-service-card,
    .rsc-service-card:hover {
        transition: none;
        transform: none;
    }

    .rsc-gallery-item .gallery-img,
    .rsc-gallery-item:hover .gallery-img {
        transition: none;
        transform: none;
    }

    .rsc-gallery-overlay,
    .rsc-gallery-item:hover .rsc-gallery-overlay {
        transition: none;
        /* opacity stays 0 so overlay doesn't appear statically without hover context */
        opacity: 0;
    }

    .rsc-faq-question::after,
    .rsc-faq-item[open] .rsc-faq-question::after {
        transition: none;
        transform: none;
    }

    .reveal,
    .reveal.visible {
        transition: none;
        transform: none;
        opacity: 1;     /* visible without animation for reduced-motion users */
    }
}