/**
 * SabbiraTech — hand-built Elementor template custom styles.
 *
 * Elementor regenerates element IDs on import, so these rules target the
 * stable CSS class hooks embedded in the templates:
 *   - Containers: `css_classes` control
 *   - Widgets:    `_css_classes` control
 *
 * This file is enqueued on the front end only (see sabbiratech-astra-hfb.php).
 *
 * All colors reference the Astra/Elementor globals so the design stays
 * on-palette and rethemeable from Site Settings.
 */

/* ============================================================
   About Us — about-us.html → about-us.json (new design)
   ============================================================ */

/* 1. Hero — legibility over the image overlay (left-aligned) */
.st-hero .elementor-heading-title,
.st-hero .elementor-text-editor {
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

/* 2. Staggered image heights (Who We Are) */
.st-img-tall img {
    height: 256px;
    width: 100%;
    object-fit: cover;
    border-radius: 16px;
}

.st-img-short img {
    height: 192px;
    width: 100%;
    object-fit: cover;
    border-radius: 16px;
}

/* 3. Mission & Vision cards — top accent border */
.st-mv-card {
    border-top: 4px solid var(--e-global-color-astglobalcolor8, #0f172a);
}
.st-mv-card--accent {
    border-top-color: var(--e-global-color-astglobalcolor0, #00d4ff);
}

/* 4. What We Do — icon square hover */
.st-what-card .st-what-icon .elementor-icon {
    transition: background-color 0.3s ease, color 0.3s ease;
}
.st-what-card:hover .st-what-icon .elementor-icon {
    background-color: var(--e-global-color-astglobalcolor8, #0f172a);
    color: var(--e-global-color-astglobalcolor4, #ffffff);
}

/* 5. Our Approach — connecting line + numbered steps */
.st-approach {
    position: relative;
}
@media (min-width: 768px) {
    /* horizontal guide line behind the step cards */
    .st-approach::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        right: 0;
        height: 4px;
        background: var(--e-global-color-astglobalcolor7, #d1d5db);
        transform: translateY(-50%);
        z-index: 0;
    }
}
.st-step {
    position: relative;
    z-index: 1;
}

/* Number circle */
.st-num .elementor-widget-container {
    width: 64px;
    height: 64px;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--e-global-color-astglobalcolor8, #0f172a);
    box-shadow: 0 4px 6px rgba(15, 23, 42, 0.2), 0 0 0 4px #ffffff;
}
.st-num .elementor-heading-title {
    color: #ffffff;
    font-weight: 700;
}
.st-num--accent .elementor-widget-container {
    background-color: var(--e-global-color-astglobalcolor0, #00d4ff);
    box-shadow: 0 4px 6px rgba(0, 212, 255, 0.2), 0 0 0 4px #ffffff;
}
.st-num--accent .elementor-heading-title {
    color: var(--e-global-color-astglobalcolor8, #0f172a);
}

/* 6. Why Choose Us — hover lift on standard cards */
.st-why-card {
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.st-why-card:hover {
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.12);
}

/* 7. Our Commitment — capped centered text */
.st-commit-text {
    max-width: 48rem;
    margin-inline: auto;
}

/* 8. CTA — rounded panel with blurred accent circles + deep shadow */
.st-cta {
    position: relative;
    overflow: hidden;
    background-color: var(--e-global-color-astglobalcolor8, #0f172a);
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.35);
}

.st-cta::before,
.st-cta::after {
    content: "";
    position: absolute;
    width: 256px;
    height: 256px;
    border-radius: 9999px;
    filter: blur(64px);
    pointer-events: none;
}

.st-cta::before {
    top: -80px;
    right: -80px;
    background: rgba(0, 212, 255, 0.10);
}

.st-cta::after {
    bottom: -80px;
    left: -80px;
    background: rgba(0, 212, 255, 0.10);
}

/* Keep CTA content above the decorative circles */
.st-cta > .e-con-inner {
    position: relative;
    z-index: 1;
}

/* ============================================================
   Single Service — single-service.html → single-service.json
   ============================================================ */

/* Page Hero: blurred accent corner circles */
.st-ss-hero,
.st-ss-cta {
    position: relative;
    overflow: hidden;
}

.st-ss-hero::before,
.st-ss-hero::after,
.st-ss-cta::before,
.st-ss-cta::after {
    content: "";
    position: absolute;
    border-radius: 9999px;
    pointer-events: none;
}

.st-ss-hero::before {
    top: -96px;
    right: -96px;
    width: 288px;
    height: 288px;
    background: rgba(0, 211, 255, 0.10);
    filter: blur(64px);
}
.st-ss-hero::after {
    bottom: -96px;
    left: -96px;
    width: 288px;
    height: 288px;
    background: rgba(255, 255, 255, 0.05);
    filter: blur(64px);
}

/* CTA: subtle corner circles */
.st-ss-cta::before {
    top: -80px;
    right: -80px;
    width: 256px;
    height: 256px;
    background: rgba(255, 255, 255, 0.05);
    filter: blur(40px);
}
.st-ss-cta::after {
    bottom: -80px;
    left: -80px;
    width: 256px;
    height: 256px;
    background: rgba(255, 255, 255, 0.05);
    filter: blur(40px);
}

/* Keep hero/CTA content above decorative circles */
.st-ss-hero > .e-con-inner,
.st-ss-cta > .e-con-inner {
    position: relative;
    z-index: 1;
}

/* Breadcrumb */
.st-ss-breadcrumb {
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 700;
}
.st-ss-breadcrumb a {
    color: inherit;
    text-decoration: none;
}
.st-ss-breadcrumb a:hover {
    text-decoration: underline;
}

/* "What's Included" list: two-column on tablet+ */
@media (min-width: 768px) {
    .st-ss-include-list .elementor-icon-list-items {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        column-gap: 12px;
        row-gap: 12px;
    }
}

/* Quick Facts sidebar */
.st-ss-facts-icon .elementor-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.st-ss-facts-list .elementor-icon-list-item {
    align-items: center;
}
.st-ss-facts .elementor-widget-button {
    width: 100%;
}
.st-ss-facts .elementor-button {
    width: 100%;
    text-align: center;
    justify-content: center;
}

/* Process step number square */
.st-ss-process .elementor-icon {
    border-radius: 16px;
}

/* ============================================================
   Contact Us — contact-us.html → contact-us.json
   ============================================================ */

/* Contact form (HTML widget) */
.st-contact-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.st-contact-form-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--e-global-color-astglobalcolor2, #1e293b);
    margin: 0;
}
.st-contact-form form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.st-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.st-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.st-field label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--e-global-color-astglobalcolor2, #1e293b);
}
.st-field input,
.st-field select,
.st-field textarea {
    border: 1px solid var(--e-global-color-astglobalcolor7, #d1d5db);
    border-radius: 8px;
    padding: 12px 14px;
    font-size: 0.875rem;
    font-family: inherit;
    color: var(--e-global-color-astglobalcolor2, #1e293b);
    background-color: #ffffff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.st-field input:focus,
.st-field select:focus,
.st-field textarea:focus {
    outline: none;
    border-color: var(--e-global-color-astglobalcolor8, #0f172a);
    box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.12);
}
.st-form-submit {
    width: 100%;
    background-color: var(--e-global-color-astglobalcolor8, #0f172a);
    color: #ffffff;
    font-weight: 700;
    font-size: 1rem;
    padding: 12px 16px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.2s ease;
}
.st-form-submit:hover {
    background-color: var(--e-global-color-astglobalcolor0, #00d4ff);
    color: var(--e-global-color-astglobalcolor8, #0f172a);
}
@media (max-width: 575px) {
    .st-field-row {
        grid-template-columns: 1fr;
    }
}

/* Contact info note */
.st-contact-note {
    font-size: 0.75rem;
    color: var(--e-global-color-astglobalcolor3, #334155);
    opacity: 0.7;
}

/* Support hours list (text-editor) */
.st-hours ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.st-hours li {
    margin-bottom: 4px;
    font-size: 0.875rem;
    line-height: 1.5;
}

/* ============================================================
   Responsive refinements
   ============================================================ */
@media (max-width: 767px) {
    .st-hero .elementor-heading-title {
        font-size: 1.875rem;
    }
}
