/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* About page text color (scoped to elementor page 168) */
.elementor-168,
.elementor-168 p,
.elementor-168 li,
.elementor-168 span,
.elementor-168 h1,
.elementor-168 h2,
.elementor-168 h3,
.elementor-168 h4,
.elementor-168 h5,
.elementor-168 h6 {
    color: #1f2937 !important;
}

/* FAQ section background + readable text */
.elementor-168 .elementor-element.elementor-element-18b0b76 {
    background: #002a54 !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76,
.elementor-168 .elementor-element.elementor-element-18b0b76 .elementor-heading-title,
.elementor-168 .elementor-element.elementor-element-18b0b76 summary,
.elementor-168 .elementor-element.elementor-element-18b0b76 p,
.elementor-168 .elementor-element.elementor-element-18b0b76 li {
    color: #ffffff !important;
}

/* Keep FAQ details open/closed styling subtle */

/* Improved FAQ accordion visuals */
.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion {
    max-width: 880px !important;
    margin: 24px auto !important;
    padding: 24px !important;
}

/* Ensure the widget column centers its contents */
.elementor-168 .elementor-element.elementor-element-6c5a9ca .elementor-widget-container,
.elementor-168 .elementor-element.elementor-element-dca3e45 .elementor-widget-container {
    display: flex !important;
    justify-content: center !important;
}

/* Center the whole FAQ section (desktop) */
.elementor-168 .elementor-element.elementor-element-18b0b76 .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
}

/* Ensure the heading centers and doesn't push the accordion left */
.elementor-168 .elementor-element.elementor-element-18b0b76 .elementor-heading-title {
    width: 100% !important;
    max-width: 1100px !important;
    margin: 0 0 28px !important;
    text-align: center !important;
}

/* Make sure the inner widget container doesn't inherit unexpected padding/alignment */
.elementor-168 .elementor-element.elementor-element-18b0b76 .elementor-widget-container {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
}

@media (min-width: 1200px) {
    .elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion {
        max-width: 760px !important;
        padding: 28px !important;
    }
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion details {
    margin: 10px 0 !important;
    background: rgba(255, 255, 255, 0.03) !important;
    border-radius: 10px !important;
    padding: 8px 12px !important;
    box-shadow: 0 6px 18px rgba(2, 6, 23, 0.12) !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion summary {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    font-size: 18px !important;
    padding: 14px 10px !important;
    cursor: pointer !important;
    color: #ffffff !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion summary::marker {
    display: none;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion summary::after {
    content: '\25BE';
    /* small down chevron */
    transform: rotate(0deg);
    transition: transform .22s ease;
    font-size: 18px;
    color: rgba(255, 255, 255, 0.95);
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion details[open] summary::after {
    transform: rotate(180deg);
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion p {
    margin: 10px 0 14px 0 !important;
    color: rgba(255, 255, 255, 0.94) !important;
    line-height: 1.6 !important;
    padding: 0 6px 8px 6px !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .elementor-heading-title {
    font-size: 48px !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
}

/* Card-style accordion: separators, rounded panels, hover and open states */
.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion details {
    margin: 0 !important;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.01)) !important;
    border-radius: 10px !important;
    padding: 0 !important;
    overflow: visible !important;
    border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion details+details {
    margin-top: 12px !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion summary {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 18px 20px !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    color: #fff !important;
    background: transparent !important;
    border-radius: 10px !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion summary:hover {
    background: rgba(255, 255, 255, 0.03) !important;
}

/* bold bottom divider line */
.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion details {
    box-shadow: 0 6px 18px rgba(2, 6, 23, 0.08) inset, 0 8px 30px rgba(2, 6, 23, 0.06) !important;
}

/* chevron */
.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion summary::after {
    content: '\25BE';
    font-size: 18px;
    color: rgba(255, 255, 255, 0.9);
    transition: transform .24s ease;
    margin-left: 12px;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion details[open] summary::after {
    transform: rotate(180deg);
}

/* answer reveal: animate opacity and slide */
.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion p {
    max-height: 0;
    opacity: 0;
    transform: translateY(-6px);
    transition: max-height .28s ease, opacity .28s ease, transform .28s ease;
    padding: 0 20px 18px 20px !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion details[open] p {
    max-height: 400px;
    opacity: 1;
    transform: translateY(0);
}

/* subtle accent line left of each summary */
.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion summary::before {
    content: '';
    width: 4px;
    height: 36px;
    background: linear-gradient(180deg, #97ccfe, #004e8c);
    display: inline-block;
    margin-right: 12px;
    border-radius: 3px;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .elementor-heading-title {
    color: #ffffff !important;
    margin-bottom: 6px !important;
}

/* Make summary focus-visible for accessibility */
.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion summary:focus {
    outline: 3px solid rgba(255, 255, 255, 0.12) !important;
    outline-offset: 3px !important;
}

/* Final alignment override: keep About page FAQs centered */
.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion {
    margin-left: auto !important;
    margin-right: auto !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion summary {
    justify-content: center !important;
    text-align: center !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion p {
    text-align: center !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .faq-accordion summary::before {
    display: none !important;
}

/* Keep FAQ heading + accordion centered on the page, not a side column */
.elementor-168 .elementor-element.elementor-element-18b0b76 .elementor-element.elementor-element-dca3e45 {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 980px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-self: center !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .elementor-element.elementor-element-f02a735 {
    width: 100% !important;
    align-items: center !important;
}

.elementor-168 .elementor-element.elementor-element-18b0b76 .elementor-element.elementor-element-7b3232a .elementor-widget-container,
.elementor-168 .elementor-element.elementor-element-18b0b76 .elementor-element.elementor-element-6c5a9ca .elementor-widget-container {
    width: 100% !important;
    justify-content: center !important;
}

/* Hard-center FAQ area despite Elementor column defaults */
.elementor-168 .elementor-element.elementor-element-e5fd56b,
.elementor-168 .elementor-element.elementor-element-dca3e45 {
    width: 100% !important;
    justify-content: center !important;
}

.elementor-168 .elementor-element.elementor-element-dca3e45 {
    display: flex !important;
}

.elementor-168 .elementor-element.elementor-element-7b3232a,
.elementor-168 .elementor-element.elementor-element-6c5a9ca,
.elementor-168 .elementor-element.elementor-element-7b3232a .elementor-heading-title {
    text-align: center !important;
}

.elementor-168 .elementor-element.elementor-element-6c5a9ca .faq-accordion {
    width: min(760px, calc(100vw - 48px)) !important;
    margin-inline: auto !important;
}

/* Contact page form feedback */
.elementor-159 .contact-form-status {
    margin-top: 14px;
    min-height: 1.4em;
    font-size: 15px;
    line-height: 1.5;
    font-weight: 600;
    color: #1f2937;
}

.elementor-159 .contact-form-status[data-state="pending"] {
    color: #003263;
}

.elementor-159 .contact-form-status[data-state="success"] {
    color: #0f766e;
}

.elementor-159 .contact-form-status[data-state="error"] {
    color: #b91c1c;
}

.elementor-159 .elementor-button:disabled {
    opacity: 0.75;
    cursor: wait;
}

/* Contact page color cleanup */
.elementor-159 .elementor-element-dcdf8fc {
    background: linear-gradient(180deg, #f7fbff 0%, #ffffff 100%) !important;
}

.elementor-159 .elementor-element-b883016 .elementor-heading-title {
    color: #003263 !important;
    text-shadow: none !important;
}

.elementor-159 .elementor-element-b16632f p {
    color: #475569 !important;
}

.elementor-159 .elementor-element-e57493d {
    background: linear-gradient(180deg, #ffffff 0%, #f3f7fb 100%) !important;
}

.elementor-159 .elementor-element-e57493d .elementor-widget-container,
.elementor-159 .elementor-element-89fedc2 .elementor-widget-container {
    color: #1f2937 !important;
}

.elementor-159 .elementor-icon-list-text,
.elementor-159 .elementor-field-label {
    color: #1f2937 !important;
}

.elementor-159 .elementor-icon-list-item a,
.elementor-159 .elementor-icon-list-item {
    color: #1f2937 !important;
}

.elementor-159 .elementor-field-textual {
    background: #ffffff !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

.elementor-159 .elementor-field-textual:focus {
    border-color: #003263 !important;
    box-shadow: 0 0 0 3px rgba(0, 50, 99, 0.12) !important;
}

.elementor-159 .elementor-widget-form .elementor-button {
    background: #003263 !important;
    border-color: #003263 !important;
}

.elementor-159 .elementor-widget-form .elementor-button:hover,
.elementor-159 .elementor-widget-form .elementor-button:focus {
    background: #004e8c !important;
    border-color: #004e8c !important;
}

.elementor-159 .contact-intake-form .contact-form-grid {
    row-gap: 12px;
}

.elementor-159 .contact-intake-form .contact-states-group h4 {
    margin: 8px 0 10px;
    text-align: center;
    color: #111827;
    font-size: 32px;
    font-weight: 700;
}

.elementor-159 .contact-intake-form .contact-states-list {
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    max-height: 150px;
    overflow-y: auto;
    padding: 12px 14px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px 20px;
}

.elementor-159 .contact-intake-form .contact-states-list label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    color: #111827;
    margin: 0;
}

.elementor-159 .contact-intake-form .contact-file-row {
    display: flex;
    align-items: center;
    gap: 14px;
}

.elementor-159 .contact-intake-form .contact-file-row label {
    min-width: 190px;
    margin: 0;
    font-weight: 600;
    color: #111827;
}

.elementor-159 .contact-intake-form .contact-file-row input[type="file"] {
    color: #111827;
}

.elementor-159 .contact-intake-form .contact-consent-text {
    color: #1f2937;
    font-size: 16px;
    line-height: 1.6;
    margin-top: 4px;
}

.elementor-159 .contact-intake-form .contact-consent-check label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    color: #111827;
}

.elementor-159 .contact-intake-form .contact-submit-row .elementor-button {
    width: 100%;
    border-radius: 4px;
}

@media (max-width: 1024px) {
    .elementor-159 .contact-intake-form .contact-states-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .elementor-159 .contact-intake-form .contact-states-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .elementor-159 .contact-intake-form .contact-file-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .elementor-159 .contact-intake-form .contact-file-row label {
        min-width: 0;
    }
}

/* Services page visual cleanup */
.elementor-32 {
    color: #0f172a;
}

.elementor-32 .site-hero-static {
    background: linear-gradient(180deg, #003263 0%, #00467f 100%);
    color: #ffffff;
    padding: 84px 20px;
    text-align: center;
}

.elementor-32 .site-hero-inner h1 {
    color: #ffffff !important;
    font-size: clamp(2rem, 5vw, 3rem) !important;
    line-height: 1.15;
}

.elementor-32 .site-hero-inner p {
    color: rgba(255, 255, 255, 0.92) !important;
    max-width: 860px;
    margin: 18px auto 0;
    font-size: 1.05rem !important;
}

.elementor-32 .elementor-element.elementor-element-f2700c9,
.elementor-32 .elementor-element.elementor-element-ac05742 {
    padding: 56px 20px !important;
}

.elementor-32 .elementor-element.elementor-element-fdadb0e p {
    color: #334155 !important;
    line-height: 1.75;
    max-width: 920px;
    margin: 0 auto;
}

.elementor-32 .services-feature-heading {
    padding: 6px 20px 0;
    text-align: center;
}

.elementor-32 .services-feature-heading h2 {
    margin: 0;
    font-size: clamp(1.7rem, 3.8vw, 2.5rem);
    color: #003263;
}

.elementor-32 .elementor-element-services-grid .e-con-inner {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.elementor-32 .elementor-element-services-grid [class*="elementor-element-service"] {
    background: #ffffff;
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    padding: 22px 18px;
    min-height: 150px;
    display: flex !important;
    align-items: flex-start;
    gap: 12px;
    box-shadow: 0 8px 24px rgba(2, 32, 71, 0.06);
}

.elementor-32 .elementor-element-services-grid [class*="elementor-element-service"] p {
    margin: 0;
    color: #1e293b !important;
    line-height: 1.5;
}

.elementor-32 .elementor-element-services-grid [class*="elementor-element-service"] strong {
    color: #003263;
}

.elementor-32 .elementor-element-services-grid img {
    width: 42px !important;
    height: 42px !important;
    object-fit: contain;
}

.elementor-32 .elementor-element.elementor-element-ac05742 {
    background: linear-gradient(180deg, #f7fbff 0%, #eef5fc 100%) !important;
    text-align: center;
}

.elementor-32 .elementor-element.elementor-element-ac05742 .elementor-heading-title {
    color: #003263 !important;
}

.elementor-32 .elementor-element.elementor-element-ac05742 p {
    color: #475569 !important;
}

.elementor-32 .elementor-element.elementor-element-e19ec4f .elementor-button {
    background: #003263 !important;
    border-color: #003263 !important;
}

.elementor-32 .elementor-element.elementor-element-e19ec4f .elementor-button:hover,
.elementor-32 .elementor-element.elementor-element-e19ec4f .elementor-button:focus {
    background: #004e8c !important;
    border-color: #004e8c !important;
}

@media (max-width: 1024px) {
    .elementor-32 .elementor-element-services-grid .e-con-inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .elementor-32 .site-hero-static {
        padding: 62px 16px;
    }

    .elementor-32 .elementor-element-services-grid .e-con-inner {
        grid-template-columns: 1fr;
    }
}

/* --------------------------------------------------------------------------
   Mobile: full-width layout + no horizontal gutter (static / cPanel hosting)
   Mirrors Astra rules that normally depend on body.ast-header-break-point
   (added by theme JS). If that script fails or is blocked, the mobile header
   and sections still span the viewport; overflow from decorations is clipped.
   -------------------------------------------------------------------------- */

html {
    overflow-x: clip;
}

body {
    overflow-x: clip;
    max-width: 100%;
}

#page.hfeed.site,
.site-content {
    max-width: 100%;
    overflow-x: clip;
}

.site-hero-static {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

#masthead.site-header {
    max-width: 100%;
    overflow-x: clip;
}

@media (max-width: 1024px) {

    #content,
    #primary {
        max-width: 100%;
        overflow-x: clip;
    }

    .ast-primary-header-bar {
        display: grid;
    }

    #masthead .ast-mobile-header-wrap .ast-primary-header-bar,
    #masthead .ast-mobile-header-wrap .ast-below-header-bar,
    #masthead .ast-mobile-header-wrap .ast-above-header-bar {
        padding-left: 20px;
        padding-right: 20px;
    }

    .ast-builder-grid-row.ast-builder-grid-row-has-sides {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* Every Elementor page: stop flex/grid items from forcing horizontal scroll */
    .elementor {
        max-width: 100%;
    }

    .elementor .e-con,
    .elementor .e-con-inner {
        min-width: 0;
        max-width: 100%;
    }
}

@media (max-width: 767px) {

    #who-do-we-serve::before,
    #who-do-we-serve::after,
    #hear-from-our-clients::before {
        display: none !important;
    }

    .elementor-32 .elementor-element.elementor-element-f2700c9 {
        background-size: cover !important;
    }

    #ast-mobile-header .custom-logo-link {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
}