/*
 * Value Construction — Elementor presentation
 *
 * WEB-A03.8: hero, sections, cards, FAQ, testimonials, Elementor cleanup,
 * homepage first-band. Rules moved intact from legacy-v4.css.
 */
/* --- from legacy-v4.css lines 368-552 --- */
/* ----------------------------------------------------------------------
   09. HERO / BANNER TREATMENT
   ---------------------------------------------------------------------- */
.vc-hero,
.hero-section,
.home-banner,
.page-header,
.page-title-section {
    position: relative;
    overflow: hidden;
}

.vc-hero {
    min-height: 620px;
    display: flex;
    align-items: center;
    background: var(--vc-navy-950);
    color: var(--vc-white);
}

.vc-hero h1,
.vc-hero h2,
.vc-hero h3,
.vc-hero p,
.hero-section h1,
.hero-section h2,
.hero-section p {
    color: var(--vc-white);
}

.vc-hero p,
.hero-section p {
    max-width: 760px;
    font-size: clamp(1.05rem, 1.7vw, 1.3rem);
    color: rgba(255, 255, 255, 0.84);
}

.vc-eyebrow,
.section-eyebrow,
.elementor-widget-text-editor .vc-eyebrow {
    display: inline-block;
    margin-bottom: 16px;
    color: var(--vc-accent);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

/* ----------------------------------------------------------------------
   10. SECTION SPACING
   ---------------------------------------------------------------------- */
.vc-section,
.section-padding {
    padding-top: clamp(70px, 8vw, 120px);
    padding-bottom: clamp(70px, 8vw, 120px);
}

.vc-section-sm {
    padding-top: clamp(45px, 5vw, 72px);
    padding-bottom: clamp(45px, 5vw, 72px);
}

.vc-bg-light {
    background: var(--vc-surface);
}

.vc-bg-dark {
    background: var(--vc-navy-950);
    color: var(--vc-white);
}

.vc-bg-dark h1,
.vc-bg-dark h2,
.vc-bg-dark h3,
.vc-bg-dark h4,
.vc-bg-dark p {
    color: var(--vc-white);
}

.vc-bg-dark p {
    color: rgba(255, 255, 255, 0.78);
}

/* ----------------------------------------------------------------------
   11. CORPORATE CARDS
   ---------------------------------------------------------------------- */
.vc-card,
.service-card,
.project-card,
.course-card {
    border-radius: var(--vc-radius-sm);
}

.vc-card,
.service-card,
.project-card,
.course-card {
    height: 100%;
    background: var(--vc-white);
    border: 1px solid var(--vc-steel-100);
    box-shadow: none;
    transition: transform var(--vc-transition), box-shadow var(--vc-transition), border-color var(--vc-transition);
}

.vc-card:hover,
.service-card:hover,
.project-card:hover,
.course-card:hover {
    transform: translateY(-4px);
    border-color: var(--vc-steel-200);
    box-shadow: var(--vc-shadow-md);
}

.vc-card h3,
.service-card h3,
.project-card h3,
.course-card h3 {
    color: var(--vc-navy-900);
}

.vc-card p,
.service-card p,
.project-card p,
.course-card p {
    color: var(--vc-muted);
}

/* Image cards: subtle zoom */
.vc-card img,
.service-card img,
.project-card img,
.course-card img {
    transition: transform 350ms ease;
}

.vc-card:hover img,
.service-card:hover img,
.project-card:hover img,
.course-card:hover img {
    transform: scale(1.02);
}

/* ----------------------------------------------------------------------
   12. SERVICE / CAPABILITY LINKS
   ---------------------------------------------------------------------- */
.vc-service-link,
.vc-arrow-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--vc-navy-900) !important;
    font-size: 14px;
    font-weight: 750;
    letter-spacing: 0.02em;
}

.vc-service-link:hover,
.vc-arrow-link:hover {
    color: var(--vc-accent) !important;
}

/* ----------------------------------------------------------------------
   13. METRICS / STATS
   ---------------------------------------------------------------------- */
.vc-stat-number,
.counter-number,
.elementor-counter-number-wrapper {
    color: var(--vc-navy-900);
    font-size: clamp(2.5rem, 5vw, 4.75rem);
    font-weight: 750;
    line-height: 1;
    letter-spacing: -0.05em;
}

.vc-stat-label,
.elementor-counter-title {
    margin-top: 10px;
    color: var(--vc-muted);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}


/* --- from legacy-v4.css lines 910-951 --- */
/* ----------------------------------------------------------------------
   22. FAQ / ACCORDIONS
   ---------------------------------------------------------------------- */
.elementor-accordion .elementor-accordion-item,
.elementor-toggle .elementor-toggle-item,
.wp-block-details {
    border: 0 !important;
    border-bottom: 1px solid var(--vc-steel-100) !important;
}

.elementor-accordion .elementor-tab-title,
.elementor-toggle .elementor-tab-title,
.wp-block-details summary {
    padding: 20px 0 !important;
    color: var(--vc-navy-900) !important;
    font-weight: 700 !important;
}

.elementor-accordion .elementor-tab-content,
.elementor-toggle .elementor-tab-content {
    padding: 0 0 22px !important;
    border: 0 !important;
    color: var(--vc-muted);
}

/* ----------------------------------------------------------------------
   23. TESTIMONIALS
   ---------------------------------------------------------------------- */
.vc-testimonial,
.elementor-testimonial-wrapper {
    padding: 30px;
    background: var(--vc-surface);
    border-left: 3px solid var(--vc-accent);
}

.vc-testimonial blockquote,
.elementor-testimonial-content {
    color: var(--vc-text);
    font-size: 1.05rem;
    line-height: 1.75;
}


/* --- from legacy-v4.css lines 998-1018 --- */
/* ----------------------------------------------------------------------
   25. ELEMENTOR CLEANUP
   ---------------------------------------------------------------------- */
.elementor-widget-text-editor,
.elementor-widget-text-editor p {
    color: var(--vc-muted);
}

.elementor-widget-icon-box .elementor-icon-box-title {
    color: var(--vc-navy-900);
    font-weight: 700;
}

.elementor-widget-icon-box .elementor-icon-box-description {
    color: var(--vc-muted);
}

.elementor-widget-image img {
    display: block;
}


/* --- from legacy-v4.css lines 1360-1536 --- */
/* ----------------------------------------------------------------------
   30B. HOMEPAGE HERO — V4
   Works automatically with the current first Elementor hero and also
   supports the reusable .vc-hero class for future pages.
   WEB-D02.4A: first-section hero rules exclude .vc-header-v2 so a Theme
   Builder header is not restyled as the homepage hero.
   ---------------------------------------------------------------------- */

.vc-hero,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2),
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2),
body.home .elementor > .e-con:first-child {
    position: relative !important;
    overflow: hidden !important;
    min-height: 650px !important;
    background-color: var(--vc-navy-950);
    isolation: isolate;
}

/* Replace heavy template shapes with one controlled photographic gradient */
.vc-hero::before,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2)::before,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2)::before,
body.home .elementor > .e-con:first-child::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    opacity: 1 !important;
    background:
        linear-gradient(
            90deg,
            rgba(7, 21, 33, 0.90) 0%,
            rgba(7, 21, 33, 0.78) 36%,
            rgba(7, 21, 33, 0.46) 62%,
            rgba(7, 21, 33, 0.14) 100%
        ) !important;
    clip-path: none !important;
}

/* Neutralize common Elementor/template overlays and polygon styling */
.vc-hero .elementor-background-overlay,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2) .elementor-background-overlay,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2) .elementor-background-overlay,
body.home .elementor > .e-con:first-child .elementor-background-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(7, 21, 33, 0.14) 0%,
            rgba(7, 21, 33, 0.04) 100%
        ) !important;
    opacity: 1 !important;
    clip-path: none !important;
}

.vc-hero .elementor-column:first-child > .elementor-element-populated,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2) .elementor-column:first-child > .elementor-element-populated,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2) .elementor-column:first-child > .elementor-element-populated {
    background-color: transparent !important;
    background-image: none !important;
    clip-path: none !important;
}

/* Keep actual content above the gradient */
.vc-hero > *,
.vc-hero .elementor-container,
.vc-hero .e-con-inner,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2) > .elementor-container,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2) > .elementor-container,
body.home .elementor > .e-con:first-child > .e-con-inner {
    position: relative;
    z-index: 2;
}

/* Hero content width/alignment */
.vc-hero .elementor-container,
.vc-hero .e-con-inner,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2) > .elementor-container,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2) > .elementor-container,
body.home .elementor > .e-con:first-child > .e-con-inner {
    min-height: 650px !important;
    align-items: center !important;
}

/* Strong, restrained hero typography */
.vc-hero h1,
.vc-hero h2,
.vc-hero .elementor-heading-title,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2) h1,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2) h2,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2) .elementor-heading-title,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2) h1,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2) h2,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2) .elementor-heading-title,
body.home .elementor > .e-con:first-child h1,
body.home .elementor > .e-con:first-child h2,
body.home .elementor > .e-con:first-child .elementor-heading-title {
    color: var(--vc-white) !important;
    max-width: 860px;
    margin-bottom: 18px !important;
    font-size: clamp(3rem, 5.7vw, 5.35rem) !important;
    font-weight: 750 !important;
    line-height: 0.98 !important;
    letter-spacing: -0.045em !important;
    text-shadow: none !important;
}

/* Smaller eyebrow / lead-in heading when nested above the main headline */
.vc-hero .vc-eyebrow,
.vc-hero .section-eyebrow {
    color: rgba(255, 255, 255, 0.82) !important;
}

/* Hero supporting text */
.vc-hero p,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2) p,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2) p,
body.home .elementor > .e-con:first-child p {
    max-width: 680px !important;
    color: rgba(255, 255, 255, 0.82) !important;
    font-size: 18px !important;
    line-height: 1.65 !important;
}

/* Hero CTA */
.vc-hero .elementor-button,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2) .elementor-button,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2) .elementor-button,
body.home .elementor > .e-con:first-child .elementor-button {
    min-height: 52px !important;
    padding: 15px 27px !important;
    background: var(--vc-white) !important;
    border-color: var(--vc-white) !important;
    color: var(--vc-navy-950) !important;
    border-radius: 2px !important;
    font-weight: 750 !important;
}

.vc-hero .elementor-button span,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2) .elementor-button span,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2) .elementor-button span,
body.home .elementor > .e-con:first-child .elementor-button span {
    color: inherit !important;
}

.vc-hero .elementor-button:hover,
body.home .elementor > .elementor-section:first-child:not(.vc-header-v2) .elementor-button:hover,
body.home .elementor-section-wrap > .elementor-section:first-child:not(.vc-header-v2) .elementor-button:hover,
body.home .elementor > .e-con:first-child .elementor-button:hover {
    background: var(--vc-accent) !important;
    border-color: var(--vc-accent) !important;
    color: var(--vc-white) !important;
}

/* Remove conspicuous theme shape effects inside a deliberately tagged hero */
.vc-hero .shape,
.vc-hero .banner-shape,
.vc-hero .slider-shape,
.vc-hero .hero-shape,
.vc-hero [class*="shape"] {
    clip-path: none !important;
}

/* ----------------------------------------------------------------------
   30C. FIRST CONTENT BAND — V2
   Makes the area below the hero calmer until content is rebuilt.
   ---------------------------------------------------------------------- */
body.home .elementor-section + .elementor-section,
body.home .elementor-section-wrap > .elementor-section:nth-child(2) {
    border-top: 0 !important;
}

body.home .elementor-counter-number-wrapper,
body.home .counter-number {
    letter-spacing: -0.045em !important;
}
