﻿/* Dark CTA modifier (used in contact section) */
.btn-cta-dark {
    --btn-bg: var(--primary-dark);
    --btn-color: var(--white);
    --btn-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

.btn-cta-dark:hover {
    --btn-bg: var(--primary-dark);
    /* keep same, but you could lighten slightly */
    --btn-shadow: 0 30px 50px rgba(0, 0, 0, 0.3);
    transform: translateY(-5px) scale(1.02);
}

/* Trust Badge Divider (used in services footer) */
.trust-badge-divider {
    width: 1px;
    height: 20px;
    background: var(--light-gray);
}

/* ===== CSS VARIABLES & GLOBAL STYLES ===== */
:root {
    /* Professional Blue Color Palette */
    --primary: #0A4B7A;
    --primary-dark: #07355A;
    --primary-light: #2C6C9E;
    --primary-soft: #E6F0F9;
    --accent-blue: #1E88E5;
    --accent-blue-dark: #1565C0;
    --accent-cyan: #00ACC1;
    --secondary: #5F7D95;
    --background: #e4fdf7;
    --light-gray: #E9EEF2;
    --text-dark: #1A2A3A;
    --text-medium: #425A70;
    --text-muted: #5F6C7A;
    --white: #FFFFFF;
    --light-bg: #F5F9FF;
    --overlay: rgba(10, 75, 122, 0.85);
    --shadow: 0 4px 6px rgba(10, 75, 122, 0.05);
    --shadow-hover: 0 10px 25px rgba(10, 75, 122, 0.15);
    --shadow-accent: 0 8px 20px rgba(30, 136, 229, 0.2);

    /* Border-radius system */
    --border-radius: 6px;
    --border-radius-xs: 4px;
    --border-radius-sm: 8px;
    --border-radius: 12px;
    --border-radius-lg: 16px;
    --border-radius-pill: 999px;

    /* Typography scale */
    --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-secondary: 'Poppins', 'Roboto', sans-serif;
    --font-size-base: 16px;
    --font-size-sm: 0.875rem;
    --font-size-md: 1rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    --font-size-2xl: 1.5rem;
    --font-size-3xl: 1.875rem;
    --font-size-4xl: 2.25rem;
    --line-height-sm: 1.35;
    --line-height-md: 1.5;
    --line-height-lg: 1.75;

    /* Spacing system */
    --space-xxs: 4px;
    --space-xs: 8px;
    --space-sm: 12px;
    --space-md: 16px;
    --space-lg: 24px;
    --space-xl: 32px;
    --space-2xl: 40px;
    --space-3xl: 56px;

    /* Container widths */
    --content-max-width: 1180px;
    --content-max-width-lg: 1024px;
    --content-max-width-md: 768px;
    --content-max-width-sm: 540px;
}

/* Global typography and spacing */
* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    line-height: var(--line-height-lg);
    color: var(--text-dark);
    background: var(--background);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-secondary);
    margin-top: var(--space-lg);
    margin-bottom: var(--space-md);
    color: var(--primary-dark);
}

h1 { font-size: var(--font-size-4xl); line-height: 1.1; }
h2 { font-size: var(--font-size-3xl); }
h3 { font-size: var(--font-size-2xl); }
h4 { font-size: var(--font-size-xl); }
h5 { font-size: var(--font-size-lg); }
h6 { font-size: var(--font-size-md); }

p {
    margin: 0 0 var(--space-md) 0;
    color: var(--text-medium);
}

a {
    color: var(--accent-blue);
    text-decoration: none;
    transition: color 0.25s ease;
}

a:hover, a:focus {
    color: var(--accent-blue-dark);
}

.container {
    width: min(100%, var(--content-max-width));
    margin-left: auto;
    margin-right: auto;
    padding-inline: var(--space-lg);
}

.content-container {
    width: min(100%, 1200px);
    max-width: 1200px;
    margin: 0 auto;
    padding-left: var(--space-md);
    padding-right: var(--space-md);
}

.grid {
    display: grid;
    gap: var(--space-lg);
}

.btn, .button {
    border: none;
    border-radius: var(--border-radius-sm);
    padding: calc(var(--space-sm) + 2px) var(--space-lg);
    font-size: var(--font-size-md);
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.btn-primary,
.btn-primary.btn-large,
.btn-primary.btn-header,
.btn.btn-primary {
    color: var(--white);
    background: linear-gradient(135deg, var(--accent-blue), var(--primary));
    box-shadow: var(--shadow);
}

.btn-primary:hover,
.btn-primary:focus {
    transform: translateY(-2px);
    box-shadow: var(--shadow-hover);
    background: linear-gradient(135deg, var(--accent-blue-dark), var(--primary-dark));
}

.btn-outline,
.btn-secondary {
    color: var(--primary-dark);
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid var(--primary);
}

.btn-outline:hover,
.btn-secondary:hover {
    background: var(--primary-soft);
}

.card,
.service-premium-card,
.feature-card,
.process-card {
    background: var(--white);
    border: 1px solid var(--light-gray);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow);
    padding: var(--space-lg);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    overflow: hidden;
}

.card:hover,
.service-premium-card:hover,
.feature-card:hover,
.process-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
    border-color: rgba(30, 136, 229, 0.25);
}

.shadow-soft { box-shadow: var(--shadow); }
.shadow-medium { box-shadow: 0 12px 30px rgba(10,75,122,0.15); }

.rounded { border-radius: var(--border-radius); }
.rounded-sm { border-radius: var(--border-radius-sm); }
.rounded-lg { border-radius: var(--border-radius-lg); }

.fade-in,
.animate-fade-in { opacity: 0; transform: translateY(12px); animation: fadeInUp 0.75s ease forwards; }

@media (max-width: 991px) {
    .container { padding-inline: var(--space-md); }
    h1 { font-size: var(--font-size-3xl); }
    h2 { font-size: var(--font-size-2xl); }
}

@media (max-width: 767px) {
    .container { padding-inline: var(--space-sm); }
    h1 { font-size: var(--font-size-2xl); }
    h2 { font-size: var(--font-size-xl); }
    .grid { gap: var(--space-md); }
}

:root {
    --max-width: var(--content-max-width);
}


/* -----------------------------
   Global preloader styles
   ----------------------------- */
body.preloader-active {
    opacity: 0;
    transition: opacity 0.5s ease;
}

/* Preloader styles */
#preloader,
#site-preloader {
    /* either ID name works */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    /* adjust to match your design */
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

/* Spinner */
#preloader .spinner,
#site-preloader .spinner {
    border: 4px solid #f3f3f3;
    border-top: 4px solid #3498db;
    /* spinner colour */
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite;
}

#preloader.hidden,
#site-preloader.hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* ===== ANIMATIONS ===== */
@keyframes float3d {
    0% {
        transform: perspective(500px) rotateX(0deg) rotateY(0deg) translateY(0px);
    }

    50% {
        transform: perspective(500px) rotateX(1deg) rotateY(2deg) translateY(-8px);
    }

    100% {
        transform: perspective(500px) rotateX(0deg) rotateY(0deg) translateY(0px);
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes pulse {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.05);
    }
}

/* Back button used on service pages and other internal content */
.back-home-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    color: #333;
    text-decoration: none;
    margin-bottom: 20px;
}

.back-home-btn:hover {
    color: #0073e6;
}

@keyframes float {

    0%,
    100% {
        transform: translate(0, 0) rotate(0deg);
    }

    33% {
        transform: translate(30px, -30px) rotate(120deg);
    }

    66% {
        transform: translate(-20px, 20px) rotate(240deg);
    }
}

@keyframes bounce {

    0%,
    20%,
    50%,
    80%,
    100% {
        transform: translateY(0);
    }

    40% {
        transform: translateY(-10px);
    }

    60% {
        transform: translateY(-5px);
    }
}

@keyframes rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* ===== BUTTON SYSTEM ===== */
.btn {
    /* Base variables - override in modifiers */
    --btn-padding: 10px 26px;
    --btn-font-size: 0.9rem;
    --btn-border-radius: var(--border-radius, 6px);
    --btn-bg: transparent;
    --btn-color: currentColor;
    --btn-border: 2px solid transparent;
    --btn-shadow: none;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: var(--btn-padding);
    border-radius: var(--btn-border-radius);
    font-weight: 600;
    font-size: var(--btn-font-size);
    line-height: 1.2;
    text-decoration: none;
    letter-spacing: 0.3px;
    background: var(--btn-bg);
    color: var(--btn-color);
    border: var(--btn-border);
    box-shadow: var(--btn-shadow);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Primary button */
.btn-primary {
    --btn-bg: linear-gradient(135deg, var(--accent-blue), var(--primary));
    --btn-color: var(--white);
    --btn-shadow: var(--shadow-accent);
}

.btn-primary:hover {
    --btn-bg: linear-gradient(135deg, var(--accent-blue-dark), var(--primary-dark));
    --btn-shadow: 0 12px 28px rgba(4, 4, 4, 0.35);
    transform: translateY(-2px);
}

/* Secondary button - for dark backgrounds (white border, white text) */
.btn-secondary {
    --btn-bg: transparent;
    --btn-color: var(--accent-blue);
    --btn-border: 2px solid var(--white);
}

.btn-secondary:hover {
    --btn-bg: var(--white);
    --btn-color: var(--primary);
    --btn-border-color: var(--white);
    transform: translateY(-2px);
}

/* Outline button - for light backgrounds */
.btn-outline {
    --btn-bg: transparent;
    --btn-color: var(--accent-blue);
    --btn-border: 2px solid var(--accent-blue);
}

.btn-outline:hover {
    --btn-bg: var(--accent-blue);
    --btn-color: var(--white);
    transform: translateY(-2px);
}

/* Large size */
.btn-large {
    --btn-padding: 16px 36px;
    --btn-font-size: 1rem;
}

/* Pill shape */
.btn-pill {
    --btn-border-radius: 40px;
}

/* Pulse animation */
.pulse-btn {
    animation: pulse 2s infinite;
}

/* Text link with arrow (used in case study, services) */
.btn-text {
    color: var(--primary-dark);
    text-decoration: none;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: gap 0.3s ease, color 0.3s ease;
}

.btn-text:hover {
    gap: 12px;
    color: var(--accent-blue);
}

.btn-text i {
    font-size: 0.9rem;
}

/* Light background modifier for special cases */
.btn-light {
    --btn-bg: var(--white);
    --btn-color: var(--primary);
}

.btn-light:hover {
    --btn-bg: var(--primary-soft);
}

/* ===== GLOBAL STYLES ===== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-primary);
    color: var(--text-dark);
    background-color: var(--background);
    line-height: 1.6;
    overflow-x: hidden;
}

/* ===== TYPOGRAPHY ===== */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 700;
    line-height: 1.2;
    color: var(--primary-dark);
    letter-spacing: -0.02em;
}

.section {
    padding: 50px 0;
    position: relative;
}

.section-title {
    font-size: 2.8rem;
    font-weight: 800;
    margin-bottom: 3rem;
    text-align: center;
    color: var(--primary-dark);
    letter-spacing: -0.02em;
}

.section-title span {
    color: var(--accent-blue);
    position: relative;
    display: inline-block;
}

.section-title span::after {
    content: '';
    position: absolute;
    bottom: 8px;
    left: 0;
    width: 100%;
    height: 8px;
    background: var(--primary-soft);
    z-index: -1;
    border-radius: 4px;
}

/* ===== SECTION HEADER (REUSABLE) ===== */
.section-header {
    position: relative;
    z-index: 2;
    margin-bottom: 60px;
}

.text-center {
    text-align: center;
}

.section-subtitle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: linear-gradient(135deg, var(--primary-soft), var(--white));
    padding: 10px 24px;
    border-radius: 40px;
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--primary);
    border: 1px solid rgba(10, 75, 122, 0.1);
    margin-bottom: 20px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
}

.section-subtitle i {
    color: var(--accent-blue);
}

.highlight {
    color: var(--accent-blue);
    position: relative;
    display: inline-block;
}

.highlight::after {
    content: '';
    position: absolute;
    bottom: 5px;
    left: 0;
    width: 100%;
    height: 8px;
    background: var(--primary-soft);
    z-index: -1;
    border-radius: 4px;
}

.section-description {
    max-width: 700px;
    margin: 20px auto 0;
    color: var(--text-medium);
    font-size: 1.1rem;
    line-height: 1.7;
}

.related-services {
    margin: 50px 0 20px;
}

.related-services__list {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    padding: 0;
    margin: 0;
}

.related-services__list li {
    background: var(--white);
    border: 1px solid rgba(10, 75, 122, 0.12);
    border-radius: var(--border-radius);
    padding: 16px 18px;
    box-shadow: var(--shadow);
    transition: transform 0.25s ease, border-color 0.25s ease;
}

.related-services__list li:hover {
    transform: translateY(-4px);
    border-color: rgba(30, 136, 229, 0.4);
}

.related-services__list a {
    text-decoration: none;
    color: var(--primary-dark);
    font-weight: 600;
}

.related-services__list a:hover {
    color: var(--accent-blue);
}

.ai-overview-section {
    background: var(--white);
    padding: 80px 0;
}

.ai-overview-content {
    max-width: 850px;
    margin: 0 auto;
    text-align: center;
}

.ai-overview-content .section-subtitle {
    margin: 0 auto 20px;
    max-width: 720px;
}

.ai-summary {
    color: var(--text-medium);
    font-size: 1.1rem;
    line-height: 1.7;
    margin: 0 auto;
    max-width: 780px;
}

.ai-summary p {
    margin-bottom: 1.5rem;
}

/* ===== BUTTON STYLES ===== */
.btn {
    /* Base variables - override in modifiers */
    --btn-bg: transparent;
    --btn-color: currentColor;
    --btn-border: 2px solid transparent;
    --btn-shadow: none;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 26px;
    border-radius: var(--border-radius);
    font-weight: 600;
    font-size: 0.90rem;
    line-height: 1.2;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    gap: 8px;
    letter-spacing: 0.3px;

    background: var(--btn-bg);
    color: var(--btn-color);
    border: var(--btn-border);
    box-shadow: var(--btn-shadow);
}

.btn-primary {
    --btn-bg: linear-gradient(135deg, var(--accent-blue), var(--primary));
    --btn-color: var(--white);
    --btn-shadow: var(--shadow-accent);
}

.btn-primary:hover {
    --btn-bg: linear-gradient(135deg, var(--accent-blue-dark), var(--primary-dark));
    --btn-shadow: 0 12px 28px rgba(4, 4, 4, 0.35);
    transform: translateY(-2px);
}


/*
 * .btn-secondary: For use on light backgrounds (default)
 * .btn-secondary-light: For use on dark backgrounds (inverts colors for contrast)
 */
.btn-secondary {
    --btn-bg: transparent;
    --btn-border: 2px solid var(--primary);
    --btn-color: var(--primary);
}

/* Modifier for dark backgrounds: ensures high contrast */
.btn-secondary-light,
.btn-secondary.btn--invert {
    --btn-bg: transparent;
    --btn-border: 2px solid var(--white);
    --btn-color: var(--white);
}

.btn-secondary:hover {
    --btn-bg: var(--primary);
    --btn-color: var(--white);
    --btn-border: 2px solid var(--primary);
    transform: translateY(-2px);
}

.btn-secondary-light:hover,
.btn-secondary.btn--invert:hover {
    --btn-bg: var(--white);
    --btn-color: var(--primary);
    --btn-border: 2px solid var(--white);
    transform: translateY(-2px);
}

.btn-outline {
    --btn-bg: transparent;
    --btn-border: 2px solid var(--accent-blue);
    --btn-color: var(--accent-blue);
}

.btn-outline:hover {
    --btn-bg: var(--accent-blue);
    --btn-color: var(--white);
    transform: translateY(-2px);
}

.btn-large {
    padding: 16px 36px;
    font-size: 1rem;
}

.btn--pill {
    border-radius: var(--border-radius-pill);
}

/* ===== HEADER STYLES ===== */
.main-header {
    background: var(--white);
    box-shadow: 0 2px 15px rgba(10, 75, 122, 0.08);
    position: sticky;
    top: 0;
    z-index: 1000;
    padding: 0;
    backdrop-filter: blur(10px);
    background: rgba(255, 255, 255, 0.98);
    border-radius: 0 0 var(--border-radius) var(--border-radius);
    margin: 0 0 18px;
    overflow: visible;
    transition: box-shadow 0.25s ease, background-color 0.25s ease;
}

.main-header.is-scrolled {
    box-shadow: 0 18px 45px rgba(10, 75, 122, 0.14);
    background: rgba(255, 255, 255, 0.995);
}

body.admin-bar .main-header {
    top: 32px;
}

/* Mobile: ensure the header stays visible at the very top so call-to-action is always accessible. */
@media (max-width: 768px) {
    .main-header {
        top: 0;
        margin: 0;
        border-radius: 0 0 20px 20px;
    }

    body.admin-bar .main-header {
        top: 46px;
    }
}

.header-grid {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 20px;
    min-height: 86px;
    position: relative;
}

.header-col {
    display: flex;
    align-items: center;
}

.header-logo {
    justify-content: flex-start;
}

.header-menu {
    justify-content: center;
    width: 100%;
}

.header-cta {
    justify-content: flex-end;
}

.logo-link {
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 4px;
}

.text-logo h1 {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--primary);
    margin: 0;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.text-logo .tagline {
    font-size: 0.8rem;
    color: var(--text-medium);
    display: block;
    font-weight: 400;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

/* Desktop Navigation - 3D Effects */
.nav-menu {
    display: flex;
    list-style: none;
    gap: 32px;
    margin: 0;
    padding: 0;
    justify-content: center;
    perspective: 1000px;
}

.nav-menu li {
    position: relative;
    transform-style: preserve-3d;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.nav-menu a {
    text-decoration: none;
    color: var(--text-dark);
    font-weight: 600;
    font-size: 1rem;
    padding: 10px 16px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    white-space: nowrap;
    display: inline-block;
    background: transparent;
    border-radius: 30px;
    z-index: 2;
    transform: translateZ(0);
}

.nav-menu li:hover {
    animation: none;
    transform: perspective(800px) rotateX(2deg) rotateY(4deg) translateZ(15px) translateY(-3px);
}

.nav-menu li:hover a {
    color: var(--primary);
    background: rgba(30, 136, 229, 0.04);
    box-shadow: 0 10px 25px -8px rgba(10, 75, 122, 0.3), 0 4px 8px rgba(0, 0, 0, 0.05), inset 0 0 0 1px rgba(255, 255, 255, 0.8);
    transform: translateZ(20px);
    text-shadow: 0 2px 4px rgba(255, 255, 255, 0.5);
}

.nav-menu a::after {
    content: '';
    position: absolute;
    bottom: 5px;
    left: 16px;
    right: 16px;
    width: calc(100% - 32px);
    height: 3px;
    background: linear-gradient(90deg, var(--accent-blue), var(--primary));
    border-radius: 10px;
    transform: scaleX(0) translateZ(0);
    transform-origin: center;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 0 2px 8px rgba(30, 136, 229, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.2);
    opacity: 0.9;
    z-index: -1;
}

.nav-menu li:hover a::after {
    transform: scaleX(1) translateZ(5px);
}

.nav-menu li::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.5));
    border-radius: 30px;
    transform: translateZ(-10px);
    opacity: 0;
    transition: all 0.4s ease;
    box-shadow: 0 15px 35px -10px rgba(10, 75, 122, 0.15), inset 0 -2px 0 rgba(0, 0, 0, 0.05);
    z-index: 1;
}

.nav-menu li:hover::before {
    opacity: 1;
    transform: translateZ(-5px) scale(0.98);
}

.nav-menu li::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 10%;
    width: 80%;
    height: 20px;
    background: radial-gradient(ellipse at center, rgba(10, 75, 122, 0.2) 0%, transparent 80%);
    border-radius: 50%;
    transform: translateZ(-20px) scale(0.8);
    opacity: 0;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    filter: blur(4px);
    z-index: -2;
}

.nav-menu li:hover::after {
    opacity: 0.6;
    transform: translateZ(-30px) scale(1.2);
    bottom: -12px;
}

/* Dropdown (desktop) */
.nav-menu .sub-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    min-width: 180px;
    padding: 10px;
    margin: 0;
    list-style: none;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(10, 75, 122, 0.08);
    border-radius: 14px;
    box-shadow: 0 25px 55px -20px rgba(10, 75, 122, 0.35), 0 10px 25px -12px rgba(0, 0, 0, 0.08);
    backdrop-filter: blur(12px);
    opacity: 0;
    transform: translateY(8px);
    visibility: hidden;
    pointer-events: none;
    z-index: 999;
}

.nav-menu li:hover>.sub-menu,
.nav-menu li:focus-within>.sub-menu {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
    pointer-events: auto;
}

.nav-menu li.menu-item-has-children::before {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 10px;
    background: transparent;
    z-index: 998;
}

.nav-menu .sub-menu li {
    width: 100%;
    border-radius: 10px;
    overflow: hidden;
}

.nav-menu .sub-menu li+li {
    margin-top: 6px;
}

.nav-menu .sub-menu a {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    color: #1f2a3d;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.7);
    border: 1px solid transparent;
    border-radius: 10px;
    transition: all 0.2s ease;
    font-weight: 600;
    font-size: 14px;
}

.nav-menu .sub-menu a::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--accent-blue);
    opacity: 0.45;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.nav-menu .sub-menu a::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 3px;
    background: var(--accent-blue);
    transform: scaleY(0);
    transition: transform 0.2s ease;
}

.nav-menu .sub-menu a:hover::after {
    transform: scaleY(1);
}

.nav-menu .sub-menu a:hover {
    background: #f0f6ff;
}

.nav-menu .menu-item-has-children:hover .sub-menu a {
    background: #f7f9fc;
    border-color: rgba(30, 136, 229, 0.2);
    color: var(--primary);
}

.nav-menu .sub-menu a:hover::before {
    opacity: 1;
    transform: scale(1.2);
    background: var(--background);
}

/* Add caret for menu items with children */
.nav-menu .menu-item-has-children>a::after {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-left: 8px;
    border: 2px solid currentColor;
    border-top: 0;
    border-left: 0;
    transform: rotate(45deg) translateY(-1px);
    transition: transform 0.2s ease, color 0.2s ease;
    opacity: 0.75;
}

.nav-menu .menu-item-has-children:hover>a::after {
    transform: rotate(225deg) translateY(0);
    color: var(--primary);
}

/* Mobile nav */
@media (max-width: 992px) {

    body.nav-open {
        overflow: hidden;
    }

    .main-nav {
        position: absolute;
        top: calc(100% + 10px);
        left: 0;
        right: 0;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-10px);
        transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
        z-index: 1002;
    }

    .main-nav.open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }

    .nav-menu {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .main-nav .nav-menu {
        padding: 18px;
        background: rgba(255, 255, 255, 0.99);
        border: 1px solid rgba(10, 75, 122, 0.12);
        border-radius: 20px;
        box-shadow: 0 22px 48px rgba(10, 75, 122, 0.16);
    }

    .main-nav .nav-menu > li {
        width: 100%;
        animation: none;
        transform: none !important;
    }

    .main-nav .nav-menu > li::before,
    .main-nav .nav-menu > li::after {
        display: none;
    }

    .main-nav .nav-menu > li > a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 14px 16px;
        border-radius: 14px;
        background: rgba(247, 251, 255, 0.9);
    }

    .main-nav .menu-item-has-children {
        display: grid;
        gap: 8px;
    }

    .main-nav .menu-item-has-children > a::after {
        display: none;
    }

    .submenu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        border: 1px solid rgba(10, 75, 122, 0.12);
        border-radius: 12px;
        background: #ffffff;
        color: var(--primary);
        cursor: pointer;
        justify-self: end;
        margin: -50px 10px 0 0;
        transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
    }

    .submenu-toggle:hover,
    .submenu-toggle:focus-visible {
        background: rgba(30, 136, 229, 0.08);
        border-color: rgba(30, 136, 229, 0.25);
        outline: none;
    }

    .submenu-toggle i {
        transition: transform 0.2s ease;
    }

    .menu-item-has-children.open > .submenu-toggle i {
        transform: rotate(180deg);
    }

    .main-nav .menu-item-has-children>.sub-menu {
        display: none;
        position: static;
        min-width: 0;
        margin: 0;
        padding: 0 0 0 12px;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        pointer-events: auto;
        backdrop-filter: none;
    }

    .main-nav .menu-item-has-children.open>.sub-menu {
        display: grid;
        gap: 6px;
    }

    .main-nav .sub-menu a {
        background: rgba(247, 251, 255, 0.95);
    }

}

/* Header CTA */
.header-cta .btn-header {
    display: flex;
    align-items: center;
    gap: 12px;
    background: linear-gradient(135deg, var(--accent-blue), var(--primary));
    color: #ffffff;
    padding: 8px 20px;
    border-radius: var(--border-radius);
    text-decoration: none;
    box-shadow: var(--shadow-accent);
    font-size: 0.9rem;
}

.header-cta .btn-header .btn-text {
    display: flex;
    flex-direction: column;
    color: black;
}

.btn-label {
    font-size: 0.7rem;
    opacity: 0.9;
    letter-spacing: 0.5px;
}

.btn-phone {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.3px;
}

.btn-header i {
    font-size: 1.1rem;
}

/* Mobile Menu Toggle */
.mobile-menu-toggle {
    display: none;
    background: rgba(247, 251, 255, 0.9);
    border: 1px solid rgba(10, 75, 122, 0.12);
    border-radius: 14px;
    font-size: 1.25rem;
    color: var(--primary);
    cursor: pointer;
    transition: color 0.3s, background-color 0.3s, border-color 0.3s;
    padding: 10px 12px;
    z-index: 1001;
}

.mobile-menu-toggle:hover {
    color: var(--accent-blue);
    background: rgba(30, 136, 229, 0.08);
    border-color: rgba(30, 136, 229, 0.25);
}

.submenu-toggle {
    display: none;
}

/* ===== HERO SECTION ===== */
.hero-section {
    position: relative;
    background: linear-gradient(145deg, rgba(65, 155, 216, 0.95), rgba(7, 53, 90, 0.98));
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 120px 20px 80px;
    text-align: center;
    color: var(--white);
    overflow: hidden;
    isolation: isolate;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(45deg, rgba(10, 75, 122, 0.4), rgba(7, 53, 90, 0.6));
    z-index: 1;
}

.hero-pattern {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 24 L24 0 M-6 6 L6 -6 M18 30 L30 18" stroke="rgba(255,255,255,0.12)" stroke-width="1"/></svg>');
    background-size: 24px 24px;
    opacity: 0.16;
    z-index: 2;
}

.hero-shape {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(30, 136, 229, 0.2) 0%, transparent 70%);
    z-index: 2;
}

.shape-1 {
    width: 600px;
    height: 600px;
    top: -200px;
    right: -200px;
    animation: float 20s ease-in-out infinite;
}

.shape-2 {
    width: 400px;
    height: 400px;
    bottom: -100px;
    left: -100px;
    background: radial-gradient(circle, rgba(28, 104, 170, 0.15) 0%, transparent 70%);
    animation: float 15s ease-in-out infinite reverse;
}

.hero-content {
    position: relative;
    z-index: 10;
    max-width: 1000px;
    margin: 0 auto;
    animation: fadeInUp 1s ease-out;
    text-align: left;
}

.hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: 40px;
    align-items: start;
    justify-content: center;
    width: 100%;
}

.hero-grid__main {
    max-width: 740px;
}

.hero-grid__aside {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 22px;
}

.hero-visual-card {
    position: relative;
    width: 100%;
    max-width: 420px;
    padding: 12px;
    border-radius: calc(var(--border-radius-lg) + 6px);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.08));
    border: 1px solid rgba(255, 255, 255, 0.22);
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.18);
    backdrop-filter: blur(14px);
}

.hero-visual-card__badge {
    position: absolute;
    top: 22px;
    left: 22px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: var(--border-radius-pill);
    background: rgba(10, 75, 122, 0.82);
    color: var(--white);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: 0 10px 24px rgba(10, 75, 122, 0.28);
}

.hero-visual-card__badge i {
    color: #FFD54F;
}

.hero-visual {
    margin: 0;
    overflow: hidden;
    border-radius: var(--border-radius-lg);
    background: rgba(255, 255, 255, 0.08);
}

.hero-visual__image {
    display: block;
    width: 100%;
    height: 280px;
    object-fit: cover;
}

.hero-visual__caption {
    display: grid;
    gap: 6px;
    padding: 18px 18px 20px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(245, 249, 255, 0.98));
}

.hero-visual__title {
    color: var(--primary-dark);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.3;
}

.hero-visual__meta {
    color: var(--text-medium);
    font-size: 0.92rem;
    line-height: 1.5;
}

.hero-form-card {
    width: 100%;
    max-width: 420px;
    background: var(--white);
    border-radius: var(--border-radius-lg);
    padding: 30px 25px;
    box-shadow: 0 22px 48px rgba(0, 0, 0, 0.18);
    border: 1px solid rgba(0, 0, 0, 0.06);
    text-align: left;
}

.quote-card__header h2 {
    font-size: 1.8rem;
    margin: 0 0 10px;
    color: var(--primary-dark);
}

.quote-card__subtitle {
    margin: 0 0 22px;
    color: rgba(0, 0, 0, 0.65);
    font-size: 0.95rem;
    line-height: 1.4;
}

.quote-form {
    display: grid;
    gap: 16px;
}

.quote-form__row label {
    display: block;
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 6px;
    color: rgba(0, 0, 0, 0.75);
}

.quote-form__row input {
    width: 100%;
    padding: 12px 14px;
    border-radius: var(--border-radius);
    border: 1px solid rgba(0, 0, 0, 0.15);
    background: rgba(255, 255, 255, 0.95);
    font-size: 1rem;
    color: rgba(0, 0, 0, 0.85);
}

.quote-form__row input:focus {
    outline: 2px solid var(--accent-blue);
    outline-offset: 2px;
    border-color: rgba(30, 136, 229, 0.6);
}

.quote-form__submit {
    padding: 14px 16px;
    width: 100%;
    font-size: 1rem;
}

.quote-form-social-proof {
    margin-top: 10px;
    color: rgba(26, 42, 58, 0.85);
    font-size: 0.88rem;
    text-align: center;
    line-height: 1.4;
}

.inline-icon,
.inline-svg-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    vertical-align: middle;
    color: inherit;
}

.inline-icon svg {
    width: 100%;
    height: 100%;
    display: block;
    fill: currentColor;
}

.feature-badge .inline-icon,
.eat-badge .inline-icon {
    width: 1.1em;
    height: 1.1em;
}

.quote-card__trust-text {
    margin-top: 16px;
    font-size: 0.85rem;
    color: rgba(0, 0, 0, 0.6);
    text-align: center;
}

.required {
    color: var(--accent-blue);
}

.hero-trust-badge {
    display: flex;
    justify-content: center;
    gap: 25px;
    margin-bottom: 25px;
    flex-wrap: wrap;
    min-height: 48px;
    align-items: center;
}

/* Fix CLS: reserve space for trust badges / icons that may render late */
.trust-badges-row,
.service-trust-badges,
.testimonials-trust-badges,
.hero-trust-badge,
.trust-badge-item,
.trust-badge {
    min-height: 48px;
    min-width: 140px;
    box-sizing: border-box;
}

.trust-badge-item,
.trust-badge {
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.trust-badge-item {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    min-width: 140px;
    height: 36px;
    justify-content: center;
    box-sizing: border-box;
    backdrop-filter: blur(10px);
    padding: 8px 18px;
    border-radius: 40px;
    font-size: 0.85rem;
    font-weight: 500;
    color: black;
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.trust-badge-item:hover {
    background: var(--accent-blue);
    color: var(--white);
    transform: translateY(-2px);
    border-color: var(--accent-blue);
}

.trust-badge-item:hover i {
    color: var(--white);
}

.trust-badge-item i {
    color: var(--accent-blue);
}

.hero-content h1 {
    font-size: 4rem;
    font-weight: 900;
    margin-bottom: 20px;
    line-height: 1.1;
    color: var(--white);
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.2);
    letter-spacing: -0.02em;
}

.location-badge {
    display: inline-block;
    background: linear-gradient(135deg, var(--accent-blue), var(--primary));
    padding: 5px 15px;
    border-radius: 40px;
    font-size: 1.2rem;
    font-weight: 600;
    margin-left: 10px;
    box-shadow: 0 10px 20px rgba(30, 136, 229, 0.3);
}

.hero-subtitle {
    font-size: 1.4rem;
    margin-bottom: 25px;
    opacity: 0.95;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.95);
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    font-weight: 400;
}

.hero-benefits {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-bottom: 35px;
    flex-wrap: wrap;
}

.benefit-pill {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.08);
    padding: 8px 20px;
    border-radius: 40px;
    font-size: 1rem;
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, 0.15);
    transition: all 0.3s ease;
}

.benefit-pill:hover {
    background: var(--accent-blue);
    transform: translateY(-2px);
    border-color: var(--accent-blue);
}

.benefit-pill i {
    color: var(--accent-blue);
    font-size: 0.9rem;
}

.benefit-pill:hover i {
    color: var(--white);
}

.hero-buttons-wrapper {
    margin-bottom: 40px;
}

.hero-buttons {
    display: flex;
    gap: 20px;
    justify-content: center;
    margin-bottom: 15px;
    flex-wrap: wrap;
}

.btn-primary.btn-large {
    display: flex;
    align-items: center;
    gap: 12px;
    background: linear-gradient(135deg, var(--accent-blue), var(--primary));
    padding: 18px 36px;
    font-size: 1.1rem;
    font-weight: 700;
    border-radius: var(--border-radius-pill);
    box-shadow: 0 15px 30px rgba(30, 136, 229, 0.4);
    border: none;
}

.btn-primary.btn-large:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 20px 40px rgba(30, 136, 229, 0.5);
}

.btn-arrow {
    transition: transform 0.3s ease;
}

.btn-primary.btn-large:hover .btn-arrow {
    transform: translateX(5px);
}


/* .pulse-btn uses the global @keyframes pulse */
.pulse-btn {
    animation: pulse 2s infinite;
}

.btn-secondary.btn-large.btn-phone {
    display: flex;
    align-items: center;
    gap: 15px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border: 2px solid rgba(255, 255, 255, 0.3);
    padding: 18px 32px;
    border-radius: var(--border-radius-pill);
}

.btn-secondary.btn-large.btn-phone:hover {
    background: var(--white);
    border-color: var(--white);
}

.btn-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.btn-secondary.btn-large.btn-phone .btn-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.8;
}

.btn-secondary.btn-large.btn-phone .btn-number {
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1;
}

.btn-secondary.btn-large.btn-phone:hover .btn-number,
.btn-secondary.btn-large.btn-phone:hover .btn-label {
    color: var(--primary);
}

.response-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(10px);
    padding: 8px 20px;
    border-radius: 40px;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.response-badge i {
    color: var(--accent-blue);
}

.hero-social-proof {
    margin-top: 50px;
    padding-top: 30px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.review-stars {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin-bottom: 10px;
    min-height: 24px;
    padding: 2px 0;
}

.review-stars i {
    color: #FFC107;
    font-size: 1.2rem;
}

.review-count {
    margin-left: 10px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.95rem;
}

.trust-logos span {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.9rem;
}

.scroll-indicator {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 20;
}

.scroll-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: rgba(255, 255, 255, 0.8);
    transition: all 0.3s ease;
}

.scroll-text {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 8px;
}

.scroll-icon {
    font-size: 1.5rem;
    animation: bounce 2s infinite;
}

.scroll-link:hover {
    color: var(--white);
    transform: scale(1.1);
}

/* ===== PROCESS SECTION ===== */
.process-section {
    background: transparent;
    padding: 50px 0;
    position: relative;
    overflow: hidden;
}

.process-timeline {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    position: relative;
    margin-bottom: 50px;
}

.process-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
}

.process-number-wrapper {
    position: relative;
    margin-bottom: 25px;
}

.process-number {
    width: 60px;
    height: 60px;
    background: linear-gradient(145deg, var(--primary), var(--primary-dark));
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    font-weight: 800;
    margin: 0 auto;
    box-shadow: 0 10px 25px rgba(10, 75, 122, 0.25);
    border: 4px solid var(--white);
    position: relative;
    z-index: 3;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.process-card:hover .process-number {
    background: linear-gradient(145deg, var(--accent-blue), var(--primary));
    transform: scale(1.1);
    box-shadow: 0 15px 35px rgba(30, 136, 229, 0.35);
    border-color: var(--primary-soft);
}

.process-connector {
    position: absolute;
    top: 30px;
    left: 60px;
    width: calc(100% + 30px);
    height: 3px;
    background: linear-gradient(90deg, var(--primary-light), var(--primary-soft));
    z-index: 1;
}

.process-card:last-child .process-connector {
    display: none;
}

.process-content {
    background: var(--white);
    padding: 30px 25px;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
    border: 1px solid var(--light-gray);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
    position: relative;
    z-index: 2;
}

.process-card:hover .process-content {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(10, 75, 122, 0.12);
    border-color: transparent;
    border-top: 4px solid var(--accent-blue);
}

.process-icon-wrapper {
    width: 70px;
    height: 70px;
    background: linear-gradient(145deg, var(--primary-soft), var(--white));
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    font-size: 2rem;
    color: var(--primary);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px rgba(10, 75, 122, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.8);
}

.process-card:hover .process-icon-wrapper {
    background: linear-gradient(145deg, var(--accent-blue), var(--primary));
    color: var(--white);
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 15px 30px rgba(30, 136, 229, 0.25);
}

.process-content h3 {
    font-size: 1.3rem;
    color: var(--primary-dark);
    margin-bottom: 15px;
    font-weight: 700;
}

.process-content p {
    color: var(--text-medium);
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 20px;
}

.process-features {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.feature-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: var(--primary-soft);
    padding: 6px 14px;
    border-radius: 30px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--primary-dark);
    border: 1px solid rgba(10, 75, 122, 0.05);
}

.feature-tag i {
    color: var(--accent-blue);
    font-size: 0.7rem;
}

.process-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(145deg, var(--primary), var(--primary-dark));
    padding: 25px 35px;
    border-radius: 60px;
    margin-top: 30px;
    box-shadow: 0 20px 40px rgba(10, 75, 122, 0.2);
}

.process-cta-text {
    color: var(--white);
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.process-cta-text i {
    color: var(--accent-blue);
    font-size: 1.3rem;
}

.process-cta .btn-primary {
    background: var(--white);
    color: var(--primary);
    padding: 14px 32px;
    border-radius: var(--border-radius-pill);
    font-weight: 700;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.process-cta .btn-primary:hover {
    background: var(--primary-soft);
    transform: translateY(-2px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}

/* ===== SERVICES SECTION ===== */
.services-section {
    background: transparent;
    padding: 50px 0;
    position: relative;
    overflow: hidden;
}

.services-premium-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
    margin-bottom: 50px;
    position: relative;
    z-index: 5;
}

.service-premium-card {
    background: var(--white);
    border-radius: 24px;
    padding: 35px 25px;
    position: relative;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid var(--light-gray);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.service-premium-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--accent-blue), var(--primary));
    opacity: 0;
    transition: opacity 0.4s ease;
}

.service-premium-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 25px 50px rgba(10, 75, 122, 0.12);
    border-color: transparent;
}

.service-premium-card:hover::before {
    opacity: 1;
}

.service-badge {
    position: absolute;
    top: 20px;
    right: 20px;
    background: linear-gradient(135deg, var(--accent-blue), var(--primary));
    color: var(--white);
    padding: 6px 16px;
    border-radius: 30px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 5px 15px rgba(30, 136, 229, 0.25);
    z-index: 2;
}

.service-badge-premium {
    background: linear-gradient(135deg, #9C27B0, #6A1B9A);
}

.service-badge-saver {
    background: linear-gradient(135deg, #FF9800, #F57C00);
}

.service-icon-wrapper {
    width: 80px;
    height: 80px;
    background: linear-gradient(145deg, var(--primary-soft), var(--white));
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 15px 25px rgba(10, 75, 122, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.8);
}

.service-premium-card:hover .service-icon-wrapper {
    background: linear-gradient(145deg, var(--accent-blue), var(--primary));
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 20px 35px rgba(30, 136, 229, 0.25);
}

.service-icon {
    font-size: 2.2rem;
    color: var(--primary);
    transition: all 0.4s ease;
}

.service-premium-card:hover .service-icon {
    color: var(--white);
}

.service-premium-card h3 {
    font-size: 1.3rem;
    color: var(--primary-dark);
    margin-bottom: 15px;
    font-weight: 700;
    line-height: 1.3;
}

.service-premium-card p {
    color: var(--text-medium);
    font-size: 0.95rem;
    line-height: 1.7;
    margin-bottom: 20px;
    flex: 1;
}

.service-features {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 25px;
}

.service-features .feature-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    color: var(--text-dark);
}

.service-features .feature-item i {
    color: var(--accent-blue);
    font-size: 0.85rem;
}

.service-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid var(--light-gray);
}

.service-price {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--primary);
}

.service-link {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #1E88E5;
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    transition: all 0.3s ease;
}

.service-link i {
    transition: transform 0.3s ease;
}

.service-link:hover {
    color: var(--primary);
}

.service-link:hover i {
    transform: translateX(5px);
}

.service-card-wide {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    padding: 30px;
}

.service-card-wide .service-wide-content {
    flex: 1;
    margin-left: 20px;
}

.service-card-wide .service-features {
    flex-direction: row;
    flex-wrap: wrap;
    margin-bottom: 0;
}

.service-card-wide .service-footer {
    border-top: none;
    padding-top: 0;
    margin-left: 30px;
    min-width: 200px;
}

.services-footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    margin-top: 20px;
}

/* On larger screens, lay out the footer items side-by-side */
@media (min-width: 992px) {
    .services-footer {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }

    .view-all-container {
        text-align: left;
    }
}

.view-all-container {
    text-align: center;
}

.service-trust-badges {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding: 16px 24px;
    max-width: 900px;
    width: 100%;
    background: var(--white);
    border-radius: 60px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--light-gray);
    flex-wrap: wrap;
}

/* ===== WHY CHOOSE SECTION ===== */
.why-choose-section {
    background: transparent;
    padding: 50px 0;
    position: relative;
    overflow: hidden;
}

.why-choose-section::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 800px;
    height: 800px;
    background: radial-gradient(circle, var(--primary-soft) 0%, transparent 70%);
    opacity: 0.3;
    border-radius: 50%;
    transform: translate(400px, -200px);
    z-index: 0;
}

.why-choose-section::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, var(--accent-blue) 0%, transparent 80%);
    opacity: 0.05;
    border-radius: 50%;
    transform: translate(-200px, 200px);
    z-index: 0;
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 25px;
    margin-bottom: 50px;
    position: relative;
    z-index: 2;
}

.feature-card {
    background: var(--white);
    border-radius: 24px;
    padding: 30px 20px;
    position: relative;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid var(--light-gray);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    overflow: hidden;
}

.feature-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--accent-blue), var(--primary));
    opacity: 0;
    transition: opacity 0.4s ease;
}

.feature-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(10, 75, 122, 0.12);
    border-color: transparent;
}

.feature-card:hover::before {
    opacity: 1;
}

.feature-icon-wrapper {
    position: relative;
    margin-bottom: 20px;
}

.feature-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(145deg, var(--primary-soft), var(--white));
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--primary);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px rgba(10, 75, 122, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.feature-card:hover .feature-icon {
    background: linear-gradient(145deg, var(--accent-blue), var(--primary));
    color: var(--white);
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 15px 30px rgba(30, 136, 229, 0.25);
}

.feature-badge {
    position: absolute;
    top: -8px;
    right: -8px;
    background: linear-gradient(135deg, var(--accent-blue), var(--primary-dark));
    color: var(--white);
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 700;
    border: 2px solid var(--white);
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
}

.feature-content {
    flex: 1;
    margin-bottom: 20px;
}

.feature-content h3 {
    font-size: 1.2rem;
    color: var(--primary-dark);
    margin-bottom: 12px;
    font-weight: 700;
    line-height: 1.3;
}

.feature-content p {
    color: var(--text-medium);
    font-size: 0.9rem;
    line-height: 1.6;
    margin: 0;
}

.feature-stats {
    background: var(--primary-dark);
    padding: 12px 15px;
    border-radius: 12px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px solid rgba(10, 75, 122, 0.05);
}

.stat-number {
    font-size: 1.4rem;
    font-weight: 800;
    color: rgb(255, 255, 255);
    line-height: 1;
    margin-bottom: 4px;
}

.stat-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: rgb(255, 255, 255);
}

.trust-badges-row {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-bottom: 40px;
    flex-wrap: wrap;
    position: relative;
    z-index: 2;
    padding: 30px 0;
    border-top: 1px solid var(--light-gray);
    border-bottom: 1px solid var(--light-gray);
    background: var(--white);
    border-radius: 30px;
}

.trust-badge {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-dark);
    font-size: 0.9rem;
    font-weight: 500;
}

.trust-badge i {
    color: var(--accent-blue);
    font-size: 1rem;
}

.why-choose-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(145deg, var(--primary), var(--primary-dark));
    padding: 25px 35px;
    border-radius: 60px;
    position: relative;
    z-index: 2;
    box-shadow: 0 20px 40px rgba(10, 75, 122, 0.2);
}

.cta-text {
    color: var(--white);
    font-size: 1.2rem;
    font-weight: 600;
    margin: 0;
}

.why-choose-cta .btn-primary {
    background: linear-gradient(135deg, var(--accent-blue), var(--primary));
    color: var(--white);
    padding: 14px 32px;
    border-radius: 40px;
    font-weight: 700;
    box-shadow: 0 12px 22px rgba(0, 0, 0, 0.2);
    border: none;
}

.why-choose-cta .btn-primary:hover {
    background: linear-gradient(135deg, var(--accent-blue-dark), var(--primary-dark));
    transform: translateY(-2px);
    box-shadow: 0 16px 30px rgba(0, 0, 0, 0.2);
}

.why-choose-cta .btn-outline {
    border: 2px solid rgba(255, 255, 255, 0.9);
    color: rgba(255, 255, 255, 0.95);
    background: transparent;
    padding: 12px 28px;
    border-radius: 40px;
    font-weight: 600;
    transition: all 0.25s ease;
}

.why-choose-cta .btn-outline:hover {
    background: rgba(255, 255, 255, 0.15);
    color: var(--white);
    transform: translateY(-2px);
}

/* ===== E-E-A-T SECTION (PREMIUM) ===== */
.eat-section {
    background: transparent;
    padding: 50px 0;
    position: relative;
    overflow: hidden;
}

.eat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    margin-top: 50px;
    position: relative;
    z-index: 2;
}

.eat-card.premium {
    background: var(--white);
    border-radius: 24px;
    padding: 35px 25px;
    position: relative;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid var(--light-gray);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    overflow: hidden;
}

.eat-card.premium::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--accent-blue), var(--primary));
    opacity: 0;
    transition: opacity 0.4s ease;
}

.eat-card.premium:hover {
    transform: translateY(-10px);
    box-shadow: 0 25px 50px rgba(10, 75, 122, 0.12);
    border-color: transparent;
}

.eat-card.premium:hover::before {
    opacity: 1;
}

.eat-icon-wrapper {
    position: relative;
    margin-bottom: 25px;
}

.eat-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(145deg, var(--primary-soft), var(--white));
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
    color: var(--primary);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 15px 25px rgba(10, 75, 122, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.8);
}

.eat-card.premium:hover .eat-icon {
    background: linear-gradient(145deg, var(--accent-blue), var(--primary));
    color: var(--white);
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 20px 35px rgba(30, 136, 229, 0.25);
}

.eat-badge {
    position: absolute;
    top: -10px;
    right: -10px;
    background: linear-gradient(135deg, var(--accent-blue), var(--primary-dark));
    color: var(--white);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    font-weight: 700;
    border: 2px solid var(--white);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
}

.eat-card.premium h3 {
    font-size: 1.4rem;
    color: var(--primary-dark);
    margin-bottom: 15px;
    font-weight: 700;
}

.eat-card.premium p {
    color: var(--text-medium);
    font-size: 0.95rem;
    line-height: 1.7;
    margin-bottom: 20px;
}

.eat-stats {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid var(--light-gray);
    width: 100%;
}

.eat-stats span {
    background: var(--primary-soft);
    padding: 6px 14px;
    border-radius: 30px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--primary-dark);
}

.eat-trust-seals {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-top: 60px;
    flex-wrap: wrap;
}

.trust-seal {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 25px;
    background: var(--white);
    border-radius: 40px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--light-gray);
    font-weight: 600;
    color: var(--primary-dark);
}

.trust-seal i {
    color: var(--accent-blue);
    font-size: 1.1rem;
}

/* ===== TESTIMONIALS SECTION (PREMIUM) ===== */
.testimonials-section {
    background: transparent;
    padding: 100px 0;
    position: relative;
    overflow: hidden;
}

.rating-summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin: 0 auto 22px;
    padding: 12px 18px;
    background: rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.08);
    max-width: 560px;
}

.rating-stars i {
    color: #FFC107;
    font-size: 1.4rem;
}

.rating-score {
    font-size: 2rem;
    font-weight: 800;
    color: var(--primary);
}

.rating-count {
    color: var(--text-medium);
    font-size: 0.95rem;
}

.testimonials-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.testimonials-trust-badges {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.testimonials-case-link {
    font-size: 0.9rem;
    padding: 10px 18px;
    border-radius: var(--border-radius);
    border: 1px solid rgba(10, 75, 122, 0.15);
    background: rgba(255, 255, 255, 0.7);
    color: var(--primary-dark);
    transition: all 0.25s ease;
}

.testimonials-case-link:hover {
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
    color: var(--primary-dark);
    text-decoration: none;
}

.testimonials-trust-badges .trust-badge-item {
    font-size: 0.85rem;
    padding: 6px 14px;
}


.testimonials-premium-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-top: 50px;
}

.testimonial-premium-card {
    background: var(--white);
    border-radius: 24px;
    padding: 35px 30px;
    position: relative;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid var(--light-gray);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
}

.testimonial-premium-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 25px 50px rgba(10, 75, 122, 0.1);
    border-color: var(--accent-blue);
}

.testimonial-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 20px;
}

.testimonial-quote-icon i {
    font-size: 2rem;
    color: var(--accent-blue);
    opacity: 0.2;
}

.testimonial-rating i {
    color: #FFC107;
    font-size: 0.9rem;
}

.testimonial-content {
    flex: 1;
    margin-bottom: 25px;
}

.testimonial-content p {
    color: var(--text-dark);
    font-size: 1rem;
    line-height: 1.7;
    font-style: italic;
}

.testimonial-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 20px;
    border-top: 1px solid var(--light-gray);
}

.testimonial-author {
    display: flex;
    align-items: center;
    gap: 12px;
}

.author-avatar i {
    font-size: 2.2rem;
    color: var(--primary-light);
}

.author-info h4 {
    font-size: 1.1rem;
    color: var(--primary-dark);
    margin-bottom: 4px;
}

.author-location {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    color: var(--text-muted);
}

.author-location i {
    font-size: 0.7rem;
    color: var(--accent-blue);
}

.testimonial-verified {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.75rem;
    color: #059669;
    font-weight: 600;
}

.testimonials-cta {
    margin-top: 50px;
}

/* ===== CASE STUDY SECTION - COMPLETELY FIXED ===== */
.case-study-section {
    background: transparent;
    padding: 50px 0;
    position: relative;
    overflow: hidden;
}

.case-study-section .section-header {
    margin-bottom: 60px;
    text-align: center;
}

.case-study-section .section-subtitle {
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: var(--accent-blue);
    margin-bottom: 15px;
    position: relative;
}

.case-study-section .section-subtitle::before,
.case-study-section .section-subtitle::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 30px;
    height: 1px;
    background: var(--accent-blue);
}

.case-study-section .section-subtitle::before {
    right: 120%;
}

.case-study-section .section-subtitle::after {
    left: 120%;
}

.case-study-section .section-title {
    font-size: 2.8rem;
    margin-bottom: 20px;
}

.case-study-section .section-description {
    max-width: 700px;
    margin: 0 auto;
    color: var(--text-medium);
    font-size: 1.1rem;
}

/* Grid Layout */
.case-study-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 60px;
    align-items: start;
    margin-top: 50px;
}

/* Media Column */
.case-study-media {
    position: sticky;
    top: 100px;
}

.case-study-image {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Image Badge */
.image-badge {
    position: absolute;
    top: 25px;
    left: 25px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    padding: 12px 20px;
    border-radius: 50px;
    display: flex;
    align-items: center;
    gap: 12px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.badge-icon {
    color: var(--accent-blue);
    font-size: 1.3rem;
}

.badge-text {
    font-weight: 700;
    color: var(--primary-dark);
    font-size: 0.9rem;
    letter-spacing: 0.5px;
}

/* Stats Card */
.stats-card {
    position: absolute;
    bottom: -30px;
    right: 30px;
    background: linear-gradient(145deg, var(--primary), var(--primary-dark));
    padding: 25px 35px;
    border-radius: 16px;
    display: flex;
    gap: 35px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.stat-item {
    text-align: center;
}

.stat-value {
    display: block;
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 5px;
}

.stat-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.9;
}

.stat-divider {
    width: 1px;
    background: rgba(255, 255, 255, 0.2);
}

/* Project Meta */
.project-meta {
    display: flex;
    gap: 30px;
    margin-bottom: 40px;
    padding-bottom: 25px;
    border-bottom: 2px solid var(--light-gray);
    flex-wrap: wrap;
}

.meta-item {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--text-medium);
    font-size: 0.95rem;
    background: var(--primary-soft);
    padding: 8px 16px;
    border-radius: 40px;
}

.meta-item i {
    color: var(--accent-blue);
}

/* Case Cards */
.case-items {
    display: flex;
    flex-direction: column;
    gap: 25px;
    margin-bottom: 40px;
}

.case-card {
    background: var(--white);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    gap: 25px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--light-gray);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.case-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(to bottom, var(--accent-blue), var(--primary));
    opacity: 0;
    transition: opacity 0.3s ease;
}

.case-card:hover {
    transform: translateX(10px);
    box-shadow: 0 20px 40px rgba(10, 75, 122, 0.12);
}

.case-card:hover::before {
    opacity: 1;
}

.card-problem:hover::before {
    background: linear-gradient(to bottom, #f59e0b, #f97316);
}

.card-solution:hover::before {
    background: linear-gradient(to bottom, var(--accent-blue), var(--primary));
}

.card-result:hover::before {
    background: linear-gradient(to bottom, #10b981, #059669);
}

.card-icon-wrapper {
    flex-shrink: 0;
}

.card-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(145deg, var(--primary-soft), var(--white));
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: var(--primary);
    margin-bottom: 8px;
    box-shadow: 0 10px 20px rgba(10, 75, 122, 0.1);
}

.card-number {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--text-muted);
    text-align: center;
}

.card-content {
    flex: 1;
}

.card-content h3 {
    font-size: 1.3rem;
    margin-bottom: 12px;
    color: var(--primary-dark);
    font-weight: 700;
}

.card-content p {
    color: var(--text-medium);
    line-height: 1.7;
    margin-bottom: 15px;
}

/* Lists */
.problem-list,
.solution-list {
    list-style: none;
    padding: 0;
    margin: 10px 0 0;
}

.problem-list li,
.solution-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    font-size: 0.95rem;
    color: var(--text-medium);
}

.problem-list i {
    color: #ef4444;
    font-size: 0.9rem;
}

.solution-list i {
    color: #10b981;
    font-size: 0.9rem;
}

/* Result Highlight */
.result-highlight {
    background: linear-gradient(145deg, var(--primary-soft), var(--white));
    padding: 20px;
    border-radius: 16px;
    margin: 20px 0;
    text-align: center;
    border: 1px solid rgba(10, 75, 122, 0.1);
}

.result-stat {
    display: block;
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--primary);
    line-height: 1;
    margin-bottom: 5px;
}

.result-label {
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-medium);
}

/* Testimonial Snippet */
.result-testimonial {
    background: var(--primary-soft);
    padding: 25px;
    border-radius: 16px;
    margin: 25px 0;
    position: relative;
    border-left: 4px solid var(--accent-blue);
}

.result-testimonial i.fa-quote-left {
    color: var(--accent-blue);
    opacity: 0.2;
    font-size: 2rem;
    position: absolute;
    top: 15px;
    left: 15px;
}

.result-testimonial blockquote {
    margin: 0 0 10px 30px;
    font-style: italic;
    color: var(--text-dark);
    font-size: 1rem;
    line-height: 1.7;
}

.result-testimonial cite {
    display: block;
    margin-left: 30px;
    font-size: 0.85rem;
    color: var(--text-medium);
    font-weight: 600;
    font-style: normal;
}

/* Plan Badge */
.plan-badge {
    background: linear-gradient(135deg, #10b981, #059669);
    color: var(--white);
    padding: 12px 18px;
    border-radius: 40px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 0.85rem;
    font-weight: 600;
    box-shadow: 0 10px 20px rgba(16, 185, 129, 0.3);
}

.plan-badge i {
    color: var(--white);
    font-size: 1rem;
}

/* CTA Buttons */
.case-study-cta {
    display: flex;
    align-items: center;
    gap: 30px;
    margin-top: 40px;
    padding-top: 35px;
    border-top: 2px solid var(--light-gray);
    flex-wrap: wrap;
}

.case-study-cta .btn {
    font-size: 1.05rem;
}

.btn-text {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s ease;
    font-size: 1rem;
}

.btn-text:hover {
    gap: 15px;
    color: var(--accent-blue);
}

/* Ensure helper text inside outline/secondary buttons inherits the button color */
.btn-outline .btn-text,
.btn-secondary .btn-text,
.btn-secondary-light .btn-text,
.btn-secondary.btn--invert .btn-text {
    color: inherit;
}

.btn-outline:hover .btn-text,
.btn-secondary:hover .btn-text,
.btn-secondary-light:hover .btn-text,
.btn-secondary.btn--invert:hover .btn-text {
    color: inherit;
}

.btn-text i {
    font-size: 1rem;
}

.gallery-thumbnails {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-top: 20px;
}

.thumbnail-item {
    cursor: pointer;
    border-radius: 8px;
    overflow: hidden;
    border: 3px solid transparent;
    transition: all 0.3s ease;
    opacity: 0.7;
}

.thumbnail-item:hover {
    opacity: 1;
    transform: translateY(-3px);
}

.thumbnail-item.active {
    border-color: var(--accent-blue);
    opacity: 1;
    box-shadow: 0 5px 15px rgba(30, 136, 229, 0.3);
}

.thumbnail-item img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 1/1;
    object-fit: cover;
}

.gallery-main-image {
    position: relative;
    margin-bottom: 20px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.gallery-main-image img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.3s ease;
}

/* ===== SERVICE AREA SECTION ===== */
.service-area-section {
    background: transparent;
    padding: 30px 0;
    position: relative;
    overflow: hidden;
}

.service-area-section::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, var(--primary-soft) 0%, transparent 70%);
    opacity: 0.4;
    border-radius: 50%;
    transform: translate(300px, -200px);
    z-index: 0;
}

.area-showcase {
    display: grid;
    grid-template-columns: 1fr 1.8fr;
    gap: 40px;
    position: relative;
    z-index: 2;
}

.map-card {
    background: var(--white);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(10, 75, 122, 0.1);
    position: relative;
    border: 1px solid var(--light-gray);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.map-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 30px 60px rgba(10, 75, 122, 0.15);
}

.map-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 70%;
    background: var(--light-gray);
}

.map-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.coverage-badge {
    position: absolute;
    top: 20px;
    left: 20px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    padding: 15px 20px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 15px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.coverage-icon {
    width: 45px;
    height: 45px;
    background: linear-gradient(135deg, var(--accent-blue), var(--primary));
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 1.2rem;
}

.coverage-text {
    display: flex;
    flex-direction: column;
}

.coverage-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-medium);
}

.coverage-value {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--primary-dark);
}

.area-stats {
    display: flex;
    justify-content: space-around;
    padding: 25px 20px;
    background: linear-gradient(to right, var(--primary), var(--primary-dark));
    color: var(--white);
}

.area-list-column {
    background: var(--white);
    border-radius: 24px;
    padding: 35px;
    box-shadow: 0 20px 40px rgba(10, 75, 122, 0.06);
    border: 1px solid var(--light-gray);
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

.area-header {
    min-width: 0;
}

.area-column {
    display: grid;
    gap: 24px;
    align-content: start;
    min-width: 0;
}

.area-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 1.4rem;
    color: var(--primary-dark);
    margin-bottom: 10px;
}

.area-heading i {
    color: var(--accent-blue);
}

.area-intro {
    color: var(--text-medium);
    line-height: 1.6;
    padding-bottom: 20px;
    margin: 0;
    border-bottom: 1px solid var(--light-gray);
}

.area-grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-bottom: 0;
    align-items: start;
}

.area-category {
    margin-bottom: 25px;
}

.category-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1rem;
    color: var(--primary-dark);
    margin-bottom: 15px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--primary-soft);
}

.category-title i {
    color: var(--accent-blue);
}

.area-items {
    list-style: none;
    padding: 0;
    margin: 0;
}

.area-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px dashed var(--light-gray);
    transition: all 0.2s ease;
}

.area-item:hover {
    padding-left: 5px;
    background: var(--primary-soft);
    border-radius: 6px;
    border-bottom-color: transparent;
}

.area-name {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.95rem;
    color: var(--text-dark);
}

.area-name i {
    color: var(--accent-blue);
    font-size: 0.8rem;
}

.area-distance {
    font-size: 0.75rem;
    color: var(--text-muted);
    background: var(--light-bg);
    padding: 3px 8px;
    border-radius: 20px;
    flex-shrink: 0;
}

.area-badge {
    background: var(--accent-blue);
    color: var(--white);
    font-size: 0.7rem;
    padding: 3px 8px;
    border-radius: 20px;
    font-weight: 600;
    flex-shrink: 0;
}

.area-items.emergency .area-item.highlight {
    background: linear-gradient(135deg, #fff4e5, #ffe0b2);
    border-radius: 8px;
    padding: 10px;
    border-bottom: none;
    margin-bottom: 8px;
}

.area-items.emergency .area-name i {
    color: #f59e0b;
}

.service-promise {
    background: linear-gradient(145deg, var(--primary-soft), var(--white));
    padding: 20px;
    border-radius: 16px;
    text-align: center;
    border: 1px solid rgba(10, 75, 122, 0.1);
}

.service-promise i {
    font-size: 2rem;
    color: var(--accent-blue);
    margin-bottom: 10px;
}

.service-promise h4 {
    color: var(--primary-dark);
    margin-bottom: 8px;
    font-size: 1.1rem;
}

.service-promise p {
    color: var(--text-medium);
    font-size: 0.9rem;
    margin: 0;
}

.area-cta {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) auto;
    align-items: center;
    gap: 20px;
    background: linear-gradient(145deg, var(--primary-soft), #e3f2fd);
    padding: 20px 25px;
    border-radius: 16px;
    margin-top: 0;
    border: 1px solid rgba(30, 136, 229, 0.2);
    min-width: 0;
}

.cta-left {
    display: flex;
    align-items: center;
    gap: 15px;
    min-width: 0;
}

.cta-left i {
    font-size: 2.2rem;
    color: var(--accent-blue);
}

.cta-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    color: inherit;
    margin: 0;
}

.cta-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-medium);
}

.cta-headline {
    font-size: 1rem;
    font-weight: 700;
    color: var(--primary-dark);
    line-height: 1.35;
}

.cta-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
    min-width: 0;
}

.area-cta .btn-primary,
.area-cta .btn-secondary {
    white-space: nowrap;
}

.availability {
    display: block;
    text-align: right;
    line-height: 1.4;
}

.btn-primary {
    background: var(--accent-blue);
    color: var(--white);
    padding: 10px 25px;
    border-radius: 40px;
    font-size: 0.9rem;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-primary .availability {
    font-size: 0.7rem;
    color: var(--text-dark);
}

/* ===== FAQ SECTION - DARK OPACITY ===== */
.faq-section {
    position: relative;
    padding: 50px 0;
    background: var(--primary-dark);
    color: var(--white);
    isolation: isolate;
    overflow: hidden;
}

.faq-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url('data:image/svg+xml,<svg width="60" height="60" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg"><path d="M30 0L60 30L30 60L0 30L30 0Z" fill="rgba(255,255,255,0.03)"/></svg>');
    background-size: 60px 60px;
    opacity: 0.1;
    z-index: 1;
    pointer-events: none;
}

.faq-section .section-header,
.faq-section .section-title,
.faq-section .section-description {
    color: var(--white);
    position: relative;
    z-index: 3;
}

.faq-section .section-subtitle {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.faq-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-bottom: 50px;
    position: relative;
    z-index: 3;
}

.faq-column {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.faq-item {
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.faq-item:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(30, 136, 229, 0.4);
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.3);
}

.faq-question {
    width: 100%;
    padding: 22px 25px;
    background: transparent;
    border: none;
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--white);
    transition: all 0.3s ease;
}

.faq-question:hover {
    color: var(--accent-blue);
}

.faq-question i {
    color: var(--accent-blue);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-question[aria-expanded="true"] i {
    transform: rotate(180deg);
}

.faq-answer {
    padding: 0 25px;
    max-height: 0;
    overflow: hidden;
    transition: all 0.4s ease-out;
    opacity: 0;
}

.faq-question[aria-expanded="true"]+.faq-answer {
    padding: 0 25px 25px;
    max-height: 800px;
    opacity: 1;
}

.faq-answer p,
.faq-answer li {
    color: rgba(255, 255, 255, 0.9);
}

.faq-answer li i {
    color: var(--accent-blue);
}

.faq-tip {
    background: rgba(30, 136, 229, 0.15);
    color: var(--white);
    padding: 12px 16px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    border-left: 4px solid var(--accent-blue);
}

.emergency-note {
    background: rgba(239, 68, 68, 0.15);
    border-left: 4px solid #ef4444;
    padding: 15px;
    border-radius: 10px;
}

.seasonal-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.season {
    background: rgba(255, 255, 255, 0.08);
    padding: 15px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.season h4 {
    color: var(--white);
    display: flex;
    align-items: center;
    gap: 6px;
}

.season h4 i {
    color: var(--accent-blue);
}

.pricing-list li {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
    padding-bottom: 10px;
}

.faq-link {
    color: var(--accent-blue);
    font-weight: 700;
    text-decoration: none;
}

.faq-cta-card {
    background: linear-gradient(145deg, rgba(30, 136, 229, 0.95), rgba(10, 75, 122, 0.98));
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 20px;
    padding: 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--white);
    margin-top: 30px;
    position: relative;
    z-index: 3;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);
}

.faq-cta-card .cta-content {
    display: flex;
    align-items: center;
    gap: 25px;
}

.faq-cta-card .cta-content i {
    font-size: 3rem;
    color: rgba(255, 255, 255, 0.9);
}

.faq-cta-card .cta-text h3 {
    color: var(--white);
    font-size: 1.5rem;
    margin-bottom: 8px;
}

.faq-cta-card .cta-actions {
    display: flex;
    gap: 15px;
}

.faq-cta-card .btn-primary {
    --btn-bg: linear-gradient(135deg, var(--accent-blue), var(--primary));
    --btn-color: var(--white);
    --btn-shadow: var(--shadow-accent);
    padding: 14px 28px;
    border-radius: 40px;
    font-weight: 700;
}

.faq-cta-card .btn-primary:hover {
    --btn-bg: linear-gradient(135deg, var(--accent-blue-dark), var(--primary-dark));
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.22);
}

.faq-cta-card .btn-outline {
    --btn-bg: transparent;
    --btn-color: rgba(255, 255, 255, 0.95);
    --btn-border: 2px solid rgba(255, 255, 255, 0.35);
    padding: 14px 28px;
    border-radius: 40px;
    font-weight: 700;
}

.faq-cta-card .btn-outline:hover {
    --btn-bg: rgba(255, 255, 255, 0.15);
    --btn-color: var(--white);
    transform: translateY(-2px);
}

/* ===== CONTACT CTA SECTION ===== */
.contact-cta {
    background: linear-gradient(145deg, var(--primary), var(--primary-dark));
    color: var(--white);
    padding: 50px 0;
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

/* Animated Background */
.contact-cta::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
    animation: rotate 40s linear infinite;
    z-index: 1;
}

.contact-cta::after {
    content: '';
    position: absolute;
    bottom: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(30, 136, 229, 0.1) 0%, transparent 70%);
    animation: rotate 50s linear infinite reverse;
    z-index: 1;
}

.cta-content {
    position: relative;
    z-index: 10;
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}

/* Subtitle */
.cta-subtitle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    padding: 10px 24px;
    border-radius: 40px;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, 0.2);
    margin-bottom: 25px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
}

.cta-subtitle i {
    color: var(--accent-blue);
}

/* Headline */
.cta-content h2 {
    font-size: 3.2rem;
    font-weight: 800;
    margin-bottom: 20px;
    color: var(--white);
    letter-spacing: -0.02em;
    line-height: 1.2;
    text-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
}

.cta-content .highlight {
    color: var(--accent-blue);
    position: relative;
    display: inline-block;
}

.cta-content .highlight::after {
    content: '';
    position: absolute;
    bottom: 10px;
    left: 0;
    width: 100%;
    height: 10px;
    background: rgba(30, 136, 229, 0.3);
    z-index: -1;
    border-radius: 5px;
}

/* Description */
.cta-description {
    font-size: 1.3rem;
    margin-bottom: 40px;
    opacity: 0.95;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.95);
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

/* CTA Buttons */
.cta-buttons {
    display: flex;
    gap: 20px;
    justify-content: center;
    margin-bottom: 40px;
    flex-wrap: wrap;
}

/* Phone Button */

/*
 * Modifier classes for CTA-style buttons
 * Use .btn--cta for prominent phone/primary CTA
 * Use .btn--cta-secondary for prominent secondary/email CTA
 */
.btn.btn--cta {
    display: flex;
    align-items: center;
    gap: 15px;
    background: var(--primary-dark);
    color: var(--white) !important;
    padding: 18px 36px;
    font-size: 1.1rem;
    font-weight: 700;
    border-radius: var(--border-radius-pill);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
    border: none;
    transition: all 0.3s ease;
}

.btn.btn--cta:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 30px 50px rgba(0, 0, 0, 0.3);
    background: var(--primary-dark);
}

.btn.btn--cta .btn-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.btn.btn--cta .btn-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.8;
    color: var(--primary);
}

.btn.btn--cta .btn-number {
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1;
    color: white;
}

.btn.btn--cta-secondary {
    display: flex;
    align-items: center;
    gap: 15px;
    background: transparent;
    border: 2px solid rgba(255, 255, 255, 0.3);
    color: var(--white);
    padding: 18px 32px;
    border-radius: var(--border-radius-pill);
    transition: all 0.3s ease;
}

.btn.btn--cta-secondary:hover {
    background: var(--white);
    border-color: var(--white);
    transform: translateY(-3px);
}

.btn.btn--cta-secondary .btn-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.btn.btn--cta-secondary .btn-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.8;
    color: var(--white);
}

.btn.btn--cta-secondary .btn-number {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--white);
}

.btn.btn--cta-secondary:hover .btn-label,
.btn.btn--cta-secondary:hover .btn-subtext,
.btn.btn--cta-secondary:hover .btn-number,
.btn.btn--cta-secondary:hover i {
    color: var(--primary);
}

/* Guarantee Badges */
.cta-guarantee {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 25px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

.guarantee-item {
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.95rem;
    font-weight: 500;
}

.guarantee-item i {
    color: var(--accent-blue);
    font-size: 1rem;
}

.guarantee-divider {
    width: 1px;
    height: 20px;
    background: rgba(255, 255, 255, 0.2);
}

.trust-badge-divider {
    width: 1px;
    height: 20px;
    background: var(--light-gray);
}

/* Response Badge */
.contact-cta .response-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(10px);
    padding: 10px 24px;
    border-radius: 40px;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.1);
    margin-top: 20px;
}

.contact-cta .response-badge i {
    color: var(--accent-blue);
}

/* ===== FOOTER ===== */
.main-footer {
    background: linear-gradient(145deg, var(--primary-dark), #04283E);
    color: rgba(255, 255, 255, 0.9);
    padding: 50px 0 20px;
    border-top: 4px solid var(--accent-blue);
}

.main-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), rgba(30, 136, 229, 0.5), rgba(255, 255, 255, 0.2), transparent);
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    margin-bottom: 40px;
}

.footer-col {
    width: 100%;
}

.footer-heading {
    color: var(--white);
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid rgba(255, 255, 255, 0.15);
    position: relative;
    letter-spacing: 0.5px;
}
.footer-heading::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 50px;
    height: 3px;
    background: var(--accent-blue);
    border-radius: 2px;
}

.footer-heading::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 50px;
    height: 3px;
    background: var(--accent-blue);
    border-radius: 2px;
}

.footer-logo .custom-logo {
    max-width: 180px;
    height: auto;
    margin-bottom: 15px;
}

.footer-tagline {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 25px;
}

.footer-trust-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin: 20px 0 15px;
}

.trust-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 255, 255, 0.1);
    padding: 8px 14px;
    border-radius: 30px;
    font-size: 0.85rem;
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
}

.trust-badge i {
    color: var(--accent-blue);
    font-size: 0.9rem;
}

.trust-badge:hover {
    background: var(--accent-blue);
    border-color: var(--accent-blue);
    transform: translateY(-2px);
    color: var(--white);
}

.trust-badge:hover i {
    color: var(--white);
}

.footer-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-menu li {
    margin-bottom: 10px;
}

.footer-menu a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-block;
    font-size: 0.95rem;
    position: relative;
    padding-left: 0;
}

.footer-menu a::before {
    content: "\203A";
    margin-right: 6px;
    color: var(--accent-blue);
    font-weight: 700;
    opacity: 0.7;
    transition: transform 0.2s ease;
}

.footer-menu a:hover {
    color: var(--white);
    transform: translateX(5px);
}

.footer-menu a:hover::before {
    opacity: 1;
    transform: translateX(2px);
}

.contact-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 18px;
}

.contact-item i {
    color: var(--accent-blue);
    font-size: 1.1rem;
    min-width: 20px;
    margin-top: 3px;
}

.contact-item div {
    display: flex;
    flex-direction: column;
}

.contact-link {
    color: var(--white);
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    transition: color 0.3s;
}

.contact-link:hover {
    color: var(--accent-blue);
}

.contact-label {
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 2px;
}

.contact-hours {
    color: var(--white);
    font-size: 0.9rem;
    line-height: 1.4;
    margin: 0;
}

.contact-item.emergency i {
    color: #ff6b6b;
}

.footer-newsletter {
    margin-top: 40px;
    padding-top: 30px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    text-align: center;
}

.footer-newsletter h4 {
    color: var(--white);
    margin-bottom: 8px;
}

.footer-newsletter p {
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 20px;
}

.newsletter-form {
    display: flex;
    gap: 10px;
    max-width: 500px;
    margin: 0 auto;
    flex-wrap: wrap;
    justify-content: center;
}

.newsletter-form input[type="email"] {
    flex: 1;
    min-width: 250px;
    padding: 12px 16px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--border-radius);
    background: rgba(255, 255, 255, 0.05);
    color: var(--white);
}

.newsletter-form input[type="email"]:focus {
    border-color: var(--accent-blue);
    outline: none;
}

.newsletter-form button {
    padding: 12px 24px;
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.85rem;
}

.footer-bottom a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    transition: color 0.3s;
}

.footer-bottom a:hover {
    color: var(--accent-blue);
}

.privacy-link {
    border-left: 1px solid rgba(255, 255, 255, 0.2);
    padding-left: 15px;
}

.footer-social {
    display: flex;
    gap: 12px;
    margin-top: 15px;
}

.social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--white);
    border-radius: 50%;
    transition: all 0.3s ease;
    font-size: 1.1rem;
}

.social-link:hover {
    background: var(--accent-blue);
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(30, 136, 229, 0.3);
}

@media (max-width: 768px) {
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .footer-col {
        text-align: center;
    }
    .footer-heading::after {
        left: 50%;
        transform: translateX(-50%);
    }
    .footer-menu a::before {
        content: none; /* Remove arrow on mobile for cleaner look */
    }
    .footer-menu a:hover {
        transform: none;
    }
    .contact-item {
        justify-content: center;
    }
    .footer-bottom {
        flex-direction: column;
        text-align: center;
    }
    .privacy-link {
        border-left: none;
        padding-left: 0;
    }
}

.social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--white);
    border-radius: 50%;
    transition: all 0.3s ease;
    font-size: 1rem;
}

.social-link:hover {
    background: var(--accent-blue);
    transform: translateY(-3px);
}

.footer-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-menu li {
    margin-bottom: 12px;
}

.footer-menu a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-block;
    font-size: 0.95rem;
}

.footer-menu a:hover {
    color: var(--white);
    transform: translateX(5px);
}

.contact-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}

.contact-item i {
    color: var(--accent-blue);
    font-size: 1rem;
    width: 20px;
    margin-top: 3px;
}

.contact-item div {
    display: flex;
    flex-direction: column;
}

.contact-link {
    color: var(--white);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    transition: color 0.3s;
}

.contact-link:hover {
    color: var(--accent-blue);
}

.contact-label {
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 2px;
}

.contact-hours {
    color: var(--white);
    font-size: 0.9rem;
    line-height: 1.4;
    margin: 0;
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.85rem;
}

.privacy-link {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.3s;
}

.privacy-link:hover {
    color: var(--accent-blue);
}

/* ===== BACK TO TOP ===== */
.back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    background: linear-gradient(135deg, var(--accent-blue), var(--primary));
    color: var(--white);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    z-index: 999;
    font-size: 1.2rem;
    opacity: 0;
    visibility: hidden;
}

.back-to-top:hover {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(30, 136, 229, 0.4);
}

/* ===== MOBILE STICKY CTA & QUOTE MODAL ===== */
.mobile-quick-cta {
    display: none;
    position: fixed;
    left: 50%;
    bottom: 12px;
    transform: translateX(-50%);
    z-index: 1001;
    background: linear-gradient(135deg, var(--accent-blue), var(--primary));
    color: var(--white);
    border: none;
    border-radius: 999px;
    padding: 12px 16px;
    box-shadow: 0 8px 24px rgba(10, 75, 122, 0.3);
    font-size: 0.95rem;
    min-width: 260px;
    font-weight: 700;
}

.mobile-quick-cta i {
    margin-right: 8px;
}

@media (max-width: 768px) {
    .mobile-quick-cta {
        display: flex;
        align-items: center;
        justify-content: center;
    }
}

.mobile-quote-modal {
    position: fixed;
    inset: 0;
    background: rgba(13, 28, 44, 0.75);
    display: none;
    opacity: 0;
    transition: opacity 0.25s ease;
    z-index: 2200;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.mobile-quote-modal.open {
    display: flex;
    opacity: 1;
}

.mobile-quote-panel {
    width: min(100%, 500px);
    max-height: min(90vh, 780px);
    background: var(--white);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-hover);
    padding: 1.25rem;
    overflow-y: auto;
    position: relative;
}

.mobile-quote-close {
    position: absolute;
    top: 10px;
    right: 10px;
    border: none;
    background: transparent;
    font-size: 1.4rem;
    color: var(--text-dark);
}

.mobile-quote-subtext {
    margin: 0 0 14px;
    color: var(--text-medium);
}

.mobile-quote-form .form-group {
    margin-bottom: 12px;
}

.mobile-quote-trust {
    margin-top: 12px;
    color: var(--text-muted);
    font-size: 0.82rem;
}

/* ===== SERVICE CARD HOVER TRANSITIONS ===== */
.service-card, .service-card-wide, .feature-card, .eat-card.premium {
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.service-card:hover, .service-card-wide:hover, .feature-card:hover, .eat-card.premium:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 35px rgba(0, 0, 0, 0.15);
    border-color: rgba(10, 75, 122, 0.2);
}

/* ===== FORM STYLES ===== */
.form-container {
    background: var(--white);
    padding: 35px;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-hover);
    border: 1px solid var(--light-gray);
}

.form-group {
    margin-bottom: 20px;
}

label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    color: var(--text-dark);
    font-size: 0.9rem;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
textarea,
select {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid var(--light-gray);
    border-radius: var(--border-radius);
    font-family: var(--font-primary);
    font-size: 0.95rem;
    color: var(--text-dark);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--white);
}

input:focus,
textarea:focus,
select:focus {
    outline: none;
    border-color: var(--accent-blue);
    box-shadow: 0 0 0 4px rgba(30, 136, 229, 0.1);
    background: linear-gradient(to bottom, var(--white), var(--primary-soft));
}

textarea {
    resize: vertical;
    min-height: 120px;
}

button[type="submit"] {
    background: linear-gradient(135deg, var(--accent-blue), var(--primary));
    color: var(--white);
    border: none;
    padding: 14px 36px;
    border-radius: var(--border-radius);
    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: var(--shadow-accent);
}

button[type="submit"]:hover {
    background: linear-gradient(135deg, var(--accent-blue-dark), var(--primary-dark));
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(30, 136, 229, 0.4);
}

/* ===== MODAL STYLES ===== */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 75, 122, 0.85);
    backdrop-filter: blur(5px);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 2200;
    padding: 20px;
}

.modal-overlay.show {
    display: flex;
}

.service-modal {
    background: var(--white);
    width: 100%;
    max-width: 650px;
    border-radius: var(--border-radius-lg);
    padding: 35px;
    box-shadow: 0 25px 70px rgba(10, 75, 122, 0.35);
    position: relative;
    transform: translateY(20px);
    opacity: 0;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(30, 136, 229, 0.2);
}

.modal-overlay.show .service-modal {
    transform: translateY(0);
    opacity: 1;
}

.service-modal h3 {
    font-size: 1.6rem;
    margin-bottom: 8px;
    color: var(--primary-dark);
}

.modal-subtitle {
    color: var(--text-medium);
    margin-bottom: 20px;
    font-size: 1rem;
}

.modal-close {
    position: absolute;
    top: 15px;
    right: 15px;
    background: transparent;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 1.4rem;
    transition: all 0.3s;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

.modal-close:hover {
    color: var(--accent-blue);
    background: var(--primary-soft);
    transform: rotate(90deg);
}

.modal-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px;
    gap: 12px;
    flex-wrap: wrap;
}

/* ===== CUSTOM LOGO SIZE CONTROL ===== */
.main-header .custom-logo,
.main-header .logo-image {
    width: auto;
    height: auto;
    max-width: 160px;
    max-height: 100px;
}

/* ===== UTILITY CLASSES ===== */
.icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    color: inherit;
}

.icon-sm {
    font-size: 0.9em;
}

.icon-lg {
    font-size: 1.2em;
}

.icon-muted {
    color: var(--text-muted);
}

.icon-accent {
    color: var(--accent-blue);
}

.text-center {
    text-align: center;
}

.mt-0 {
    margin-top: 0;
}

.mb-0 {
    margin-bottom: 0;
}

.mt-4 {
    margin-top: 2rem;
}

.mb-4 {
    margin-bottom: 2rem;
}

.mt-5 {
    margin-top: 3rem;
}

.mb-5 {
    margin-bottom: 3rem;
}

.pulse {
    animation: pulse 3s ease-in-out infinite;
}

/* ===== ANIMATION CLASSES ===== */
.process-card,
.service-premium-card,
.eat-card.premium,
.testimonial-premium-card,
.feature-card,
.case-card {
    animation: fadeInUp 0.8s ease-out forwards;
    opacity: 0;
}

.process-card:nth-child(1) {
    animation-delay: 0.1s;
}

.process-card:nth-child(2) {
    animation-delay: 0.2s;
}

.process-card:nth-child(3) {
    animation-delay: 0.3s;
}

.process-card:nth-child(4) {
    animation-delay: 0.4s;
}

/* ===== DESKTOP MEDIUM (<=1200px) ===== */
@media (max-width: 1200px) {
    .process-timeline {
        grid-template-columns: repeat(2, 1fr);
    }

    .process-connector {
        display: none !important;
    }

    .features-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .area-showcase {
        grid-template-columns: 1fr;
    }

    .area-grid-container {
        grid-template-columns: repeat(2, 1fr);
    }

    .eat-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .testimonials-premium-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ===== TABLET LANDSCAPE (<=992px) ===== */
@media (max-width: 992px) {

    /* Global */
    .section {
        padding: 80px 0;
    }

    .section-title {
        font-size: 2.2rem;
    }

    /* Header */
    .header-grid {
        grid-template-columns: 1fr auto auto;
        gap: 15px;
    }

    .header-cta {
        display: none !important;
    }

    .mobile-menu-toggle {
        display: block !important;
    }

    .custom-logo {
        max-width: 140px !important;
        max-height: 50px !important;
    }

    .text-logo h1 {
        font-size: 1.5rem !important;
    }

    /* Hero */
    .hero-content h1 {
        font-size: 3.2rem;
    }

    .hero-subtitle {
        font-size: 1.2rem;
    }

    .hero-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .hero-grid__main,
    .hero-grid__aside,
    .hero-visual-card,
    .hero-form-card {
        max-width: 100%;
    }

    /* Grid Layouts */
    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .features-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .faq-grid {
        grid-template-columns: 1fr;
    }

    .case-study-grid {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .stats-card {
        bottom: 20px;
        right: 20px;
    }

    .trust-badges-row {
        gap: 25px;
    }

    .why-choose-cta {
        flex-direction: column;
        text-align: center;
        gap: 20px;
        border-radius: 30px;
    }

    /* Service Area */
    .area-grid-container {
        grid-template-columns: 1fr;
    }

    .area-cta {
        flex-direction: column;
        text-align: center;
        gap: 15px;
        grid-template-columns: 1fr;
    }

    .cta-left {
        flex-direction: column;
        text-align: center;
    }

    .cta-right {
        align-items: center;
    }

    .availability {
        text-align: center;
    }

    /* Services */
    .service-card-wide {
        flex-direction: column;
        align-items: flex-start;
    }

    .service-card-wide .service-wide-content {
        margin-left: 0;
        margin-top: 20px;
        width: 100%;
    }

    .service-card-wide .service-features {
        flex-direction: column;
        gap: 10px;
        margin-bottom: 25px;
    }

    .service-card-wide .service-footer {
        margin-left: 0;
        width: 100%;
    }

    .service-trust-badges {
        gap: 20px;
        padding: 15px 20px;
    }

    /* EAT & Testimonials */
    .eat-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .testimonials-premium-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Navigation - Disable 3D */
    .nav-menu li {
        animation: none;
    }

    .nav-menu li:hover {
        transform: none;
    }

    .nav-menu li::before,
    .nav-menu li::after {
        display: none;
    }

    .nav-menu a {
        padding: 8px 12px;
    }

    .nav-menu a::after {
        left: 12px;
        right: 12px;
        width: calc(100% - 24px);
    }
}

/* ===== TABLET PORTRAIT (<=768px) ===== */
@media (max-width: 768px) {

    /* Global */
    .section {
        padding: 60px 0;
    }

    .section-title {
        font-size: 2rem;
    }

    /* Header */
    .main-header {
        padding: 10px 0 !important;
    }

    .custom-logo {
        max-width: 130px !important;
        max-height: 45px !important;
    }

    .text-logo h1 {
        font-size: 1.3rem !important;
    }

    .text-logo .tagline {
        display: none;
    }

    /* Hero */
    .hero-section {
        min-height: 90vh;
        padding: 100px 20px 60px;
    }

    .hero-content h1 {
        font-size: 2.4rem;
    }

    .hero-subtitle {
        font-size: 1.1rem;
    }

    .hero-benefits {
        flex-direction: column;
        align-items: center;
    }

    .benefit-pill {
        width: 100%;
        justify-content: center;
    }

    .hero-grid__aside {
        gap: 18px;
    }

    .hero-visual-card {
        padding: 10px;
    }

    .hero-visual-card__badge {
        top: 18px;
        left: 18px;
        font-size: 0.72rem;
        padding: 7px 12px;
    }

    .hero-visual__image {
        height: 220px;
    }

    .location-badge {
        display: block;
        margin: 10px auto 0;
        width: fit-content;
    }

    .review-stars {
        flex-wrap: wrap;
    }

    /* Process */
    .process-content {
        padding: 25px 20px;
    }

    .process-content h3 {
        font-size: 1.2rem;
    }

    .process-features {
        flex-direction: column;
        align-items: center;
    }

    /* Services */
    .service-premium-card {
        padding: 25px 20px;
    }

    .service-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }

    .service-card-wide .service-features {
        flex-direction: column;
    }

    .btn-primary.btn-large {
        width: 100%;
    }

    /* Features */
    .feature-icon {
        width: 70px;
        height: 70px;
        font-size: 1.8rem;
    }

    .stat-number {
        font-size: 1.2rem;
    }

    /* Case Study */
    .stats-card {
        flex-direction: column;
        gap: 15px;
    }

    .stat-divider {
        display: none;
    }

    .gallery-thumbnails {
        grid-template-columns: repeat(4, 1fr);
        gap: 5px;
    }

    /* Footer */
    .main-footer {
        padding: 50px 0 25px;
    }

    .footer-grid {
        gap: 30px;
    }

    .footer-heading {
        margin-bottom: 15px;
    }

    /* Buttons & Icons */
    .hero-buttons {
        gap: 12px;
    }

    .btn-large {
        width: 100%;
    }

    .process-icon {
        width: 70px;
        height: 70px;
        font-size: 2rem;
    }

    .service-icon,
    .eat-icon,
    .feature-item i {
        font-size: 3rem;
    }

    /* Contact CTA */
    .cta-content h2 {
        font-size: 2rem;
    }

    .cta-content p {
        font-size: 1rem;
    }

    .cta-subtitle {
        font-size: 0.75rem;
        padding: 8px 18px;
    }

    /* Form */
    .form-container {
        padding: 25px;
    }

    button[type="submit"] {
        width: 100%;
    }

    /* Modal */
    .modal-actions {
        flex-direction: column;
    }

    .modal-actions .btn {
        width: 100%;
    }
}

/* Post card specific adjustments */
.post-card .post-card__thumbnail img {
    border-radius: var(--border-radius-lg) var(--border-radius-lg) 0 0;
    width: 100%;
    height: auto;
    object-fit: cover;
}

.post-card .post-card__content {
    padding: 25px;
}

.post-card .post-card__meta {
    color: var(--text-muted);
    font-size: 0.85rem;
    margin-bottom: 15px;
}

.post-card .post-card__meta time,
.post-card .post-card__meta .post-categories {
    display: inline-block;
    margin-right: 10px;
}

.post-card .post-card__meta a {
    color: var(--accent-blue);
    text-decoration: none;
}

/* Breadcrumbs */
.breadcrumbs {
    margin-bottom: 1.4rem;
    padding: 0 1rem;
}

.breadcrumbs ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.breadcrumbs .breadcrumb-item {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
}

.breadcrumbs .breadcrumb-item + .breadcrumb-item::before {
    content: "/";
    color: var(--text-muted);
    margin: 0 0.45rem;
}

.breadcrumbs .breadcrumb-link {
    color: var(--text-medium);
    text-decoration: none;
    transition: color 0.2s ease, text-shadow 0.2s ease;
}

.breadcrumbs .breadcrumb-link:hover,
.breadcrumbs .breadcrumb-link:focus {
    color: var(--primary);
    outline: none;
    text-decoration: underline;
}

.breadcrumbs .breadcrumb-current,
.breadcrumbs .breadcrumb-item:last-child {
    color: var(--text-dark);
    font-weight: 700;
}

/* ===== PRINT STYLES ===== */
@media print {

    /* Hide navigation and UI-only elements when printing */
    .main-header,
    .main-footer,
    .back-to-top,
    .hero-buttons,
    .mobile-quick-cta,
    .mobile-quote-modal,
    .scroll-indicator,
    #preloader,
    #site-preloader {
        display: none;
    }

    body {
        background: white;
        color: black;
    }

    .section {
        padding: 30px 0;
    }
}
/* ===== SERVICE PAGE REVAMP ===== */
main.service-page {
    background:
        radial-gradient(circle at 12% 18%, rgba(30, 136, 229, 0.08), transparent 34%),
        radial-gradient(circle at 88% 8%, rgba(10, 75, 122, 0.07), transparent 30%),
        var(--background);
}

main.service-page .service-single {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 22px;
}

main.service-page .breadcrumbs {
    max-width: 1280px;
    margin: 0 auto 18px;
    padding: 0 24px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
}

main.service-page .breadcrumbs a {
    color: var(--text-medium);
    text-decoration: none;
    padding: 6px 10px;
    border-radius: 999px;
    transition: color 0.25s ease, background-color 0.25s ease;
}

main.service-page .breadcrumbs a:hover {
    color: var(--primary);
    background: rgba(30, 136, 229, 0.08);
}

main.service-page .service-header {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    align-items: center;
    gap: 28px;
    background: linear-gradient(135deg, var(--white), var(--primary-soft));
    border: 1px solid rgba(10, 75, 122, 0.1);
    border-radius: 28px;
    box-shadow: 0 22px 60px rgba(10, 75, 122, 0.14);
    padding: 48px 40px;
    text-align: left;
    position: relative;
    overflow: hidden;
}

main.service-page .service-header::before {
    content: '';
    position: absolute;
    inset: -42% auto auto -18%;
    width: 320px;
    height: 320px;
    background: radial-gradient(circle, rgba(30, 136, 229, 0.16), transparent 62%);
    filter: blur(6px);
}

main.service-page .service-header::after {
    content: '';
    position: absolute;
    bottom: -120px;
    right: -70px;
    width: 280px;
    height: 280px;
    background: radial-gradient(circle at 30% 30%, rgba(10, 75, 122, 0.12), transparent 70%);
}

main.service-page .service-header > * {
    position: relative;
    z-index: 1;
}

.service-header__content,
.sgc-page-hero__content {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-self: flex-start;
}

.service-header__media,
.service-hero-accent,
.sgc-page-hero__aside {
    display: grid;
    gap: 18px;
    align-content: center;
}

.service-header__media .hero-visual-card,
.sgc-page-hero__aside .hero-visual-card {
    max-width: none;
}

.service-hero-card {
    padding: 20px 22px;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(10, 75, 122, 0.96), rgba(30, 136, 229, 0.88));
    color: var(--white);
    box-shadow: 0 20px 40px rgba(10, 75, 122, 0.18);
}

.card-kpi {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 800;
    line-height: 1.15;
}

.card-sub {
    margin: 8px 0 0;
    color: rgba(255, 255, 255, 0.88);
    line-height: 1.55;
}

.service-title {
    font-size: clamp(2.35rem, 4vw, 3.6rem);
    font-weight: 900;
    color: var(--primary-dark);
    letter-spacing: -0.02em;
    margin-bottom: 14px;
    line-height: 1.2;
    max-width: 14ch;
    text-wrap: balance;
}

.service-excerpt {
    font-size: 1.08rem;
    color: var(--text-medium);
    max-width: 68ch;
    margin: 0;
    line-height: 1.7;
    text-wrap: pretty;
}

.service-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.service-meta .pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(30, 136, 229, 0.12);
    color: var(--primary-dark);
    font-weight: 700;
    font-size: 0.92rem;
    border: 1px solid rgba(10, 75, 122, 0.08);
}

.service-single section {
    position: relative;
    overflow: hidden;
    background: var(--white);
    border: 1px solid rgba(10, 75, 122, 0.08);
    border-radius: 22px;
    padding: 34px 30px;
    box-shadow: 0 18px 50px rgba(10, 75, 122, 0.1);
    margin-bottom: 32px;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.service-single section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 140px;
    height: 4px;
    background: linear-gradient(90deg, var(--accent-blue), var(--primary));
}

.service-single section:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 60px rgba(10, 75, 122, 0.14);
    border-color: rgba(10, 75, 122, 0.12);
}

.service-single section:last-of-type {
    margin-bottom: 0;
}

.service-single h2 {
    font-size: 1.7rem;
    font-weight: 800;
    color: var(--primary-dark);
    margin-bottom: 16px;
    letter-spacing: -0.01em;
    text-wrap: balance;
}

.service-single p {
    color: var(--text-medium);
    font-size: 1.02rem;
    line-height: 1.75;
    margin-bottom: 18px;
}

.service-single ul {
    list-style: none;
    padding: 0;
    margin: 4px 0 18px;
    display: grid;
    gap: 12px;
}

.service-single ul li {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 12px;
    font-weight: 600;
    color: var(--text-dark);
}

.service-single ul li::before {
    content: '\f00c';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    color: var(--accent-blue);
    font-size: 0.95rem;
    margin-top: 2px;
}

.service-single blockquote {
    background: linear-gradient(135deg, var(--primary-soft), var(--white));
    border-left: 6px solid var(--accent-blue);
    border-radius: 16px;
    padding: 22px 24px 22px 28px;
    color: var(--text-dark);
    margin: 8px 0 20px;
    box-shadow: 0 14px 28px rgba(10, 75, 122, 0.1);
    position: relative;
}

.service-single blockquote::before {
    content: '\f10d';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    color: rgba(30, 136, 229, 0.3);
    font-size: 1.8rem;
    position: absolute;
    top: 14px;
    left: 12px;
}

.service-single blockquote p {
    margin-bottom: 0.6rem;
}

.service-single blockquote cite {
    display: block;
    margin-top: 0.8rem;
    font-size: 0.94rem;
    color: var(--text-medium);
    font-style: normal;
    font-weight: 700;
}

.service-single .service-faq {
    margin: 10px 0 0;
    display: grid;
    gap: 18px;
}

.service-single .service-faq dt {
    font-weight: 800;
    color: var(--primary);
    font-size: 1rem;
}

.service-single .service-faq dd {
    margin: 6px 0 0;
    color: var(--text-medium);
    line-height: 1.65;
}

.service-single .service-additional {
    background: linear-gradient(145deg, var(--primary-soft), var(--white));
}

.service-single .service-contact {
    background: linear-gradient(135deg, var(--accent-blue), var(--primary));
    color: var(--white);
    border: none;
    box-shadow: 0 28px 60px rgba(10, 75, 122, 0.25);
}

.service-single .service-contact h2 {
    color: var(--white);
}

.service-contact-form {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 18px 20px;
    margin-top: 16px;
}

.service-contact-form .form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.service-contact-form label {
    font-weight: 700;
    color: rgba(255, 255, 255, 0.92);
}

.service-contact-form input,
.service-contact-form textarea {
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.12);
    color: var(--white);
    font-size: 0.98rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
    transition: border 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.service-contact-form input:focus,
.service-contact-form textarea:focus {
    outline: none;
    border-color: rgba(255, 255, 255, 0.6);
    background: rgba(255, 255, 255, 0.16);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.12);
}

.service-contact-form textarea {
    min-height: 140px;
    resize: vertical;
}

.service-contact .btn-primary {
    justify-self: start;
    background: var(--white);
    color: var(--primary);
    box-shadow: 0 16px 30px rgba(0, 0, 0, 0.15);
}

.service-contact .btn-primary:hover {
    background: var(--primary-soft);
    transform: translateY(-2px);
    box-shadow: 0 22px 45px rgba(0, 0, 0, 0.2);
}

.service-single .related-services {
    background: linear-gradient(145deg, var(--white), var(--primary-soft));
}

.service-single .related-services h2 {
    margin-bottom: 18px;
}

.service-single .service-details {
    display: grid;
    gap: 18px;
}

.service-sidebar {
    background: var(--white);
    border: 1px solid rgba(10, 75, 122, 0.08);
    border-radius: 18px;
    padding: 22px 20px;
    box-shadow: 0 14px 32px rgba(10, 75, 122, 0.12);
    position: sticky;
    top: 120px;
}

.service-single section > .container > h2,
.service-single section > h2 {
    max-width: 18ch;
}

.service-single section > .container > p,
.service-single section > p {
    max-width: 70ch;
}

@media (max-width: 1100px) {
    main.service-page .service-header {
        grid-template-columns: 1fr;
        text-align: center;
    }

    main.service-page .service-header .service-meta {
        justify-content: center;
    }

    .service-header__content > .sgc-page-hero__label,
    .sgc-page-hero__content > .sgc-page-hero__label {
        align-self: center;
    }

    .service-header__media,
    .sgc-page-hero__aside {
        width: min(100%, 520px);
        margin: 0 auto;
    }
}

@media (max-width: 768px) {
    main.service-page {
        padding: 60px 0 80px;
    }

    .service-title {
        font-size: 2.35rem;
    }

    .service-single section {
        padding: 26px 22px;
    }

    .service-contact .btn-primary {
        width: 100%;
        justify-content: center;
    }
}
/* ===== STANDARD PAGE POLISH (Services + static pages) ===== */
body.page .site-main {
    background: radial-gradient(circle at 8% 12%, rgba(30, 136, 229, 0.05), transparent 32%),
        radial-gradient(circle at 92% 18%, rgba(10, 75, 122, 0.05), transparent 30%),
        var(--background);
}

body.page .breadcrumbs {
    max-width: 1280px;
    margin: 0 auto 22px;
    padding: 0 24px;
}

body.page .page-header {
    max-width: 1280px;
    margin: 0 auto 16px;
    padding: 0 24px;
}

body.page .page-title {
    font-size: 2.6rem;
    font-weight: 900;
    letter-spacing: -0.02em;
    color: var(--primary-dark);
    margin-bottom: 10px;
}

body.page .entry-content {
    max-width: 1180px;
    margin: 0 auto;
    padding: 40px 36px;
    background: linear-gradient(145deg, var(--white), var(--primary-soft));
    border-radius: 24px;
    border: 1px solid rgba(10, 75, 122, 0.08);
    box-shadow: 0 24px 55px rgba(10, 75, 122, 0.12);
}

body.page .entry-content > *:first-child {
    margin-top: 0;
}

body.page .entry-content h1,
body.page .entry-content h2,
body.page .entry-content h3 {
    color: var(--primary-dark);
    font-weight: 800;
    letter-spacing: -0.015em;
    margin-top: 24px;
    margin-bottom: 14px;
}

body.page .entry-content h1 {
    font-size: 2.4rem;
}

body.page .entry-content h2 {
    font-size: 1.6rem;
}

body.page .entry-content p {
    color: var(--text-medium);
    font-size: 1.02rem;
    line-height: 1.7;
    margin-bottom: 18px;
}

body.page .entry-content a {
    color: var(--accent-blue);
    font-weight: 700;
    text-decoration: none;
    transition: color 0.25s ease, text-decoration-color 0.25s ease;
}

body.page .entry-content a:hover {
    color: var(--primary);
    text-decoration: underline;
    text-decoration-color: var(--primary);
}

body.page .entry-content ul {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: grid;
    gap: 12px;
}

body.page .entry-content ul li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: start;
    color: var(--text-dark);
    font-weight: 600;
}

body.page .entry-content ul li::before {
    content: '\2713';
    color: var(--accent-blue);
    font-weight: 800;
    font-size: 0.95rem;
    margin-top: 3px;
}

body.page .entry-content strong {
    color: var(--primary-dark);
}

@media (max-width: 768px) {
    body.page .site-main {
        padding: 50px 0 70px;
    }

    body.page .entry-content {
        padding: 28px 22px;
    }

    body.page .page-title {
        font-size: 2.1rem;
    }
}

/* =========================================================
   Services Page Refinements (UI polish only)
   - Keep branding / layout, lighten shadows, tidy spacing
========================================================= */
.service-page .service-single section{
    padding:64px 30px;
    border-radius:14px;
    box-shadow:0 8px 24px rgba(10,75,122,0.10);
    border:1px solid rgba(10,75,122,0.10);
    margin-bottom:36px;
}
.service-page .service-single section:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 28px rgba(10,75,122,0.16);
}
.service-page .service-single h2{margin-bottom:18px;}
.service-page .service-single p{margin-bottom:16px;}
.service-page .service-single ul{gap:10px;}
.service-page .service-single .service-areas .area-list{box-shadow:0 6px 16px rgba(10,75,122,0.08);border-radius:12px;padding:16px 18px;border:1px solid rgba(10,75,122,0.08);}

/* Service cards hover */
.services-premium-grid .service-premium-card{
    transition:transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    box-shadow:0 6px 16px rgba(10,75,122,0.08);
}
.services-premium-grid .service-premium-card:hover{
    transform:translateY(-6px);
    box-shadow:0 12px 26px rgba(10,75,122,0.14);
    border-color:rgba(10,75,122,0.18);
}

/* FAQ accordion (services + single service) */
.service-faq .faq-item{border:1px solid rgba(10,75,122,0.10);border-radius:12px;box-shadow:0 6px 18px rgba(10,75,122,0.08);overflow:hidden;background:var(--white);}
.service-faq .faq-question{width:100%;padding:18px 22px;font-weight:700;font-size:1rem;color:var(--primary-dark);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(90deg,rgba(10,75,122,0.03),rgba(10,75,122,0.01));border:none;cursor:pointer;transition:color 0.2s ease,background 0.2s ease;}
.service-faq .faq-question i{color:var(--accent-blue);transition:transform 0.25s ease;}
.service-faq .faq-answer{max-height:0;overflow:hidden;transition:max-height 0.35s ease; padding:0 22px;}
.service-faq .faq-answer > div{padding:0 0 18px;color:var(--text-medium);line-height:1.65;}
.service-faq .faq-question[aria-expanded="true"]{color:var(--primary);}
.service-faq .faq-question[aria-expanded="true"] i{transform:rotate(180deg);}
.service-faq .faq-question[aria-expanded="true"] + .faq-answer{padding:0 22px 18px;max-height:420px;}
.service-faq .faq-question,
.service-faq .faq-question span,
.service-faq .faq-answer,
.service-faq .faq-answer p,
.service-faq .faq-answer li{
    color:var(--text-dark);
}
.service-faq .faq-question i,
.service-faq .faq-answer i{
    color:var(--accent-blue);
}

/* Contact/quote forms */
.service-contact-form,
form.service-contact-form{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:16px 18px;
    align-items:start;
}
.service-contact-form textarea{grid-column:1 / -1;}
.service-contact-form input,
.service-contact-form textarea{
    border-radius:10px;
    padding:12px 14px;
}
.service-contact .btn-primary,
.service-contact form button[type="submit"]{
    border-radius:12px;
    padding:14px 26px;
    box-shadow:0 12px 24px rgba(10,75,122,0.22);
    transition:transform 0.2s ease, box-shadow 0.2s ease;
}
.service-contact .btn-primary:hover,
.service-contact form button[type="submit"]:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 30px rgba(10,75,122,0.26);
}

/* Testimonial cards */
.service-testimonials blockquote{
    border-left:4px solid #FFB400;
    background:var(--white);
    border-radius:12px;
    box-shadow:0 8px 22px rgba(10,75,122,0.08);
    padding:18px 22px 16px 22px;
}
.service-testimonials cite{font-weight:700;color:var(--text-medium);}

/* Section spacing guidance */
.service-page .service-single{padding-bottom:60px;}
.service-page .service-single section + section{margin-top:0;}

/* Footer trust badges + newsletter */
.footer-trust-badges{
    display:flex;
    gap:10px;
    margin:15px 0;
    flex-wrap:wrap;
}
.footer-trust-badges .trust-badge img{
    max-height:40px;
    width:auto;
}
.contact-item.emergency i{
    color:#ff6b6b;
}
.footer-newsletter{
    margin-top:30px;
    padding-top:30px;
    border-top:1px solid rgba(255,255,255,0.1);
    text-align:center;
}
.footer-newsletter .newsletter-form{
    display:flex;
    gap:10px;
    max-width:500px;
    margin:0 auto;
}

/* =========================================================
   Shared polish fixes
   - Tighten button alignment
   - Keep FAQ copy readable on dark sections
   - Remove extra form-group spacing inside CSS grids
========================================================= */
.btn{
    min-height:48px;
    text-align:center;
    white-space:normal;
}

.btn-large{
    min-height:56px;
}

.btn:focus-visible,
.faq-question:focus-visible{
    outline:3px solid rgba(30,136,229,0.22);
    outline-offset:3px;
}

.service-cta{
    display:flex;
    flex-wrap:wrap;
    align-items:stretch;
    gap:14px;
    margin-top:24px;
}

.service-cta .btn{
    min-width:220px;
}

.service-contact-form .form-group{
    margin-bottom:0;
}

.faq-section > *{
    position:relative;
    z-index:3;
}

.faq-section .faq-question{
    gap:16px;
    line-height:1.45;
}

.faq-section .faq-question span{
    flex:1 1 auto;
}

.faq-section .faq-answer,
.faq-section .faq-answer p,
.faq-section .faq-answer li,
.faq-section .faq-answer strong{
    color:rgba(255,255,255,0.92);
}

.faq-section .faq-answer a{
    color:var(--white);
    font-weight:700;
    text-decoration:underline;
    text-decoration-color:rgba(255,255,255,0.35);
}

.faq-section .faq-answer > :last-child,
.faq-section .faq-answer > div > :last-child{
    margin-bottom:0;
}

.faq-cta-card{
    display:grid;
    grid-template-columns:minmax(0, 1.2fr) auto;
    gap:clamp(18px, 2.8vw, 30px);
    align-items:center;
}

.faq-cta-card .cta-content{
    min-width:0;
    align-items:flex-start;
}

.faq-cta-card .cta-text{
    display:grid;
    gap:8px;
    min-width:0;
}

.faq-cta-card .cta-text h3{
    margin:0;
}

.faq-cta-card .cta-text p{
    margin:0;
    max-width:44ch;
    color:rgba(255,255,255,0.88);
    font-size:0.98rem;
    line-height:1.6;
}

.faq-cta-card .cta-actions{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    align-items:stretch;
    justify-content:end;
    gap:14px;
    width:min(100%, 480px);
}

.faq-cta-card .cta-actions .btn{
    min-width:0;
    width:100%;
    justify-content:flex-start;
    padding-inline:22px;
}

.faq-cta-card .btn-icon-wrapper{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:rgba(255,255,255,0.12);
}

.faq-cta-card .btn-content{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    min-width:0;
}

.faq-cta-card .btn-label{
    font-size:0.72rem;
    text-transform:uppercase;
    letter-spacing:0.08em;
    opacity:0.82;
}

.faq-cta-card .btn-number,
.faq-cta-card .btn-subtext{
    font-size:1rem;
    font-weight:700;
    line-height:1.2;
}

@media (max-width:1100px){
    .faq-cta-card{
        grid-template-columns:1fr;
        align-items:flex-start;
    }

    .faq-cta-card .cta-text p{
        max-width:none;
    }

    .faq-cta-card .cta-actions{
        width:100%;
    }
}

@media (max-width:768px){
    .service-cta .btn{
        min-width:0;
        width:100%;
    }

    .faq-cta-card .cta-content{
        gap:16px;
    }

    .faq-cta-card .cta-content i{
        font-size:2.25rem;
    }

    .faq-cta-card .cta-actions{
        grid-template-columns:1fr;
    }

    .faq-cta-card .cta-actions .btn{
        width:100%;
    }
}

/* ===== MERGED FROM assets/css/seo-enhancements.css ===== */
:root {
	--sgc-surface: #ffffff;
	--sgc-surface-soft: #f4f8fc;
	--sgc-border: rgba(10, 75, 122, 0.12);
	--sgc-shadow: 0 22px 55px rgba(10, 75, 122, 0.12);
}

.nav-menu li,
.nav-menu li:hover,
.nav-menu a,
.nav-menu li:hover a {
	animation: none !important;
	transform: none !important;
}

.nav-menu li::before,
.nav-menu li::after {
	display: none !important;
}

.nav-menu a {
	transition: color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease !important;
}

.nav-menu li:hover a,
.nav-menu li.current-menu-item a,
.nav-menu li.current_page_item a {
	background: rgba(30, 136, 229, 0.08);
	box-shadow: none;
	color: var(--primary);
}

.sgc-form-notice {
	margin: 0 0 18px;
	padding: 14px 16px;
	border-radius: 14px;
	border: 1px solid transparent;
	font-weight: 600;
}

.sgc-form-notice p {
	margin: 0;
}

.sgc-form-notice--success {
	background: rgba(40, 167, 69, 0.12);
	border-color: rgba(40, 167, 69, 0.2);
	color: #1f6b35;
}

.sgc-form-notice--warning {
	background: rgba(255, 180, 0, 0.16);
	border-color: rgba(255, 180, 0, 0.3);
	color: #7b5600;
}

.sgc-form-notice--error {
	background: rgba(220, 53, 69, 0.12);
	border-color: rgba(220, 53, 69, 0.2);
	color: #8a2330;
}

.sgc-marketing-page {
	background:
		radial-gradient(circle at 10% 10%, rgba(30, 136, 229, 0.1), transparent 28%),
		radial-gradient(circle at 90% 18%, rgba(10, 75, 122, 0.08), transparent 26%),
		var(--background);
	padding-bottom: 90px;
}

.sgc-marketing-page__article {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 24px;
}

.sgc-page-hero,
.sgc-panel {
	background: linear-gradient(145deg, var(--sgc-surface), var(--sgc-surface-soft));
	border: 1px solid var(--sgc-border);
	border-radius: 28px;
	box-shadow: var(--sgc-shadow);
	margin-bottom: 28px;
	position: relative;
	overflow: hidden;
}

.sgc-page-hero::before,
.sgc-panel::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 180px;
	height: 4px;
	background: linear-gradient(90deg, var(--accent-blue), var(--primary));
}

.sgc-page-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.85fr);
	gap: 28px;
	align-items: center;
	padding: 44px 40px;
}

.sgc-page-hero__label,
.sgc-section-heading__label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border-radius: 999px;
	background: rgba(30, 136, 229, 0.1);
	color: var(--primary);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sgc-page-hero h1 {
	font-size: clamp(2.2rem, 4.4vw, 3.7rem);
	margin: 16px 0 14px;
	max-width: 13ch;
	text-wrap: balance;
}

.sgc-page-hero__intro {
	font-size: 1.08rem;
	line-height: 1.75;
	color: var(--text-medium);
	max-width: 760px;
}

.sgc-page-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 28px;
}

.sgc-page-hero__stats {
	display: grid;
	gap: 16px;
}

.sgc-stat-card {
	background: rgba(255, 255, 255, 0.8);
	border: 1px solid rgba(10, 75, 122, 0.08);
	border-radius: 20px;
	padding: 20px 18px;
}

.sgc-stat-card__value {
	display: block;
	color: var(--primary-dark);
	font-size: 1.65rem;
	font-weight: 800;
	line-height: 1.1;
}

.sgc-stat-card__label {
	display: block;
	margin-top: 6px;
	color: var(--text-medium);
	font-size: 0.95rem;
}

.sgc-panel {
	padding: 34px 30px;
}

.sgc-section-heading {
	max-width: 860px;
	margin-bottom: 22px;
}

.sgc-section-heading h2 {
	font-size: clamp(1.55rem, 3vw, 2.2rem);
	margin: 14px 0 12px;
}

.sgc-section-heading p {
	color: var(--text-medium);
	line-height: 1.75;
}

.sgc-rich-content,
.sgc-rich-content p,
.sgc-rich-content li {
	color: var(--text-medium);
	line-height: 1.75;
}

.sgc-rich-content ul {
	list-style: none;
	padding: 0;
	margin: 0 0 18px;
	display: grid;
	gap: 10px;
}

.sgc-rich-content ul li {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 10px;
}

.sgc-rich-content ul li::before {
	content: "\2713";
	color: var(--accent-blue);
	font-weight: 800;
}

.sgc-grid {
	display: grid;
	gap: 18px;
}

.sgc-grid--three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sgc-info-card,
.sgc-detail-list__item {
	background: rgba(255, 255, 255, 0.88);
	border: 1px solid rgba(10, 75, 122, 0.08);
	border-radius: 20px;
	padding: 22px 20px;
}

.sgc-info-card h2,
.sgc-info-card h3,
.sgc-detail-list__item h3 {
	margin: 0 0 10px;
	font-size: 1.1rem;
}

.sgc-info-card p,
.sgc-detail-list__item div {
	color: var(--text-medium);
	line-height: 1.7;
	margin: 0;
}

.sgc-card-link {
	display: inline-flex;
	margin-top: 14px;
	font-weight: 700;
	color: var(--accent-blue);
	text-decoration: none;
}

.sgc-card-link:hover {
	color: var(--primary);
}

.sgc-check-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 12px;
}

.sgc-check-list li {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 12px;
	padding: 14px 16px;
	background: rgba(255, 255, 255, 0.8);
	border: 1px solid rgba(10, 75, 122, 0.08);
	border-radius: 16px;
	color: var(--text-dark);
	font-weight: 600;
}

.sgc-check-list li::before {
	content: "\f058";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	color: var(--accent-blue);
}

.sgc-detail-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.sgc-map-frame {
	margin-top: 22px;
	border-radius: 20px;
	overflow: hidden;
	border: 1px solid rgba(10, 75, 122, 0.08);
	min-height: 320px;
}

.sgc-map-frame iframe {
	width: 100%;
	height: 320px;
	border: 0;
	display: block;
}

.sgc-panel--accent {
	background: linear-gradient(135deg, rgba(30, 136, 229, 0.12), rgba(10, 75, 122, 0.14)), #ffffff;
}

.sgc-contact-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 20px;
}

.sgc-contact-form__full {
	grid-column: 1 / -1;
}

.sgc-panel--cta {
	background: linear-gradient(135deg, var(--accent-blue), var(--primary));
	border: 0;
}

.sgc-cta-banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	color: #ffffff;
}

.sgc-cta-banner h2,
.sgc-cta-banner p {
	color: #ffffff;
	margin: 0;
}

.sgc-cta-banner p {
	margin-top: 10px;
	max-width: 760px;
	opacity: 0.92;
}

.sgc-page-hero__actions .btn,
.sgc-cta-banner .btn {
	min-width: 220px;
}

.sgc-contact-form .form-group {
	margin-bottom: 0;
}

.sgc-marketing-page .faq-section {
	padding: 34px 30px;
}

.sgc-marketing-page .faq-section .sgc-section-heading h2,
.sgc-marketing-page .faq-section .sgc-section-heading p {
	color: #ffffff;
}

.sgc-marketing-page .faq-section .faq-grid {
	grid-template-columns: 1fr;
	margin-bottom: 0;
}

.sgc-marketing-page .faq-section .faq-column {
	max-width: 100%;
}

@media (max-width: 1024px) {
	.sgc-grid--three,
	.sgc-detail-list,
	.sgc-contact-form,
	.sgc-page-hero {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.sgc-marketing-page__article {
		padding: 0 18px;
	}

	.sgc-page-hero,
	.sgc-panel {
		border-radius: 22px;
	}

	.sgc-page-hero {
		padding: 32px 24px;
	}

	.sgc-panel {
		padding: 26px 22px;
	}

	.sgc-page-hero__actions,
	.sgc-cta-banner {
		flex-direction: column;
		align-items: stretch;
	}

	.sgc-page-hero__actions .btn,
	.sgc-cta-banner .btn {
		min-width: 0;
		width: 100%;
		justify-content: center;
	}

	.sgc-marketing-page .faq-section {
		padding: 26px 22px;
	}
}

/* =========================================================
   Visual consistency overrides
   - FAQ spacing/readability across non-home pages
   - Trust badge visibility across homepage/services/footer
========================================================= */
.faq-section .section-header,
.faq-section .sgc-section-heading {
	position: relative;
	z-index: 3;
	margin-bottom: clamp(24px, 3vw, 34px);
}

.faq-section .sgc-section-heading h2,
.faq-section .sgc-section-heading p {
	color: var(--white);
}

.faq-section .container {
	padding-left: clamp(24px, 3.5vw, 38px);
	padding-right: clamp(24px, 3.5vw, 38px);
}

.faq-section .faq-grid {
	margin-top: clamp(18px, 2.5vw, 26px);
	gap: clamp(18px, 2.5vw, 30px);
}

.service-page .faq-section .faq-grid,
.sgc-marketing-page .faq-section .faq-grid {
	margin-bottom: 0;
}

.faq-section .faq-column {
	gap: clamp(16px, 2vw, 22px);
}

.faq-section .faq-item {
	border-radius: 18px;
	box-shadow: 0 14px 30px rgba(4, 25, 43, 0.14);
}

.faq-section .faq-question {
	align-items: flex-start;
	gap: 16px;
	line-height: 1.45;
}

.faq-section .faq-question span {
	flex: 1 1 auto;
}

.faq-section .faq-answer {
	line-height: 1.75;
}

.faq-section .faq-answer p,
.faq-section .faq-answer li,
.faq-section .faq-answer div,
.faq-section .faq-answer strong {
	color: rgba(255, 255, 255, 0.92);
}

.faq-section .faq-answer ul {
	margin: 0;
	padding-left: 1.1rem;
}

.faq-section .faq-answer li + li {
	margin-top: 0.45rem;
}

.sgc-marketing-page .faq-section {
	padding: clamp(34px, 4vw, 44px);
}

.sgc-marketing-page .faq-section .faq-grid {
	padding-top: 4px;
}

.trust-badges-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 16px;
	margin: 30px 0 0;
	padding: 18px;
	border: 1px solid rgba(10, 75, 122, 0.1);
	border-radius: 24px;
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(230, 240, 249, 0.82));
	box-shadow: 0 18px 40px rgba(10, 75, 122, 0.1);
}

.trust-badges-row .trust-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 58px;
	padding: 14px 16px;
	border-radius: 16px;
	border: 1px solid rgba(10, 75, 122, 0.1);
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 8px 20px rgba(10, 75, 122, 0.08);
	color: var(--primary-dark);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.trust-badges-row .trust-badge i {
	flex: 0 0 auto;
	color: var(--accent-blue);
	font-size: 1rem;
}

.footer-trust-badges .trust-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(255, 255, 255, 0.1);
	padding: 8px 14px;
	border-radius: 30px;
	font-size: 0.85rem;
	color: var(--white);
	border: 1px solid rgba(255, 255, 255, 0.2);
	transition: all 0.3s ease;
}

.footer-trust-badges .trust-badge i {
	color: var(--accent-blue);
	font-size: 0.9rem;
}

.footer-trust-badges .trust-badge:hover {
	background: var(--accent-blue);
	border-color: var(--accent-blue);
	transform: translateY(-2px);
	color: var(--white);
}

.footer-trust-badges .trust-badge:hover i {
	color: var(--white);
}

@media (max-width: 768px) {
	.faq-section {
		padding: 38px 0;
	}

	.faq-section .container {
		padding-left: 20px;
		padding-right: 20px;
	}

	.faq-section .faq-grid {
		gap: 16px;
		margin-top: 18px;
	}

	.faq-section .faq-question {
		padding: 20px 20px;
		font-size: 1rem;
	}

	.faq-question[aria-expanded="true"] + .faq-answer {
		padding: 0 20px 20px;
	}

	.faq-answer {
		padding: 0 20px;
	}

	.trust-badges-row {
		grid-template-columns: 1fr;
		padding: 16px;
		border-radius: 20px;
	}
}

/* =========================================================
   FAQ context repair
   - Restore dark FAQ treatment inside service/marketing wrappers
========================================================= */
.service-page .faq-section,
.sgc-marketing-page .faq-section {
	position: relative;
	background: linear-gradient(145deg, var(--primary), var(--primary-dark));
	color: var(--white);
	border: 1px solid rgba(10, 75, 122, 0.08);
	box-shadow: 0 24px 55px rgba(10, 75, 122, 0.2);
	isolation: isolate;
	overflow: hidden;
}

.service-page .faq-section::before,
.sgc-marketing-page .faq-section::before {
	content: '';
	position: absolute;
	inset: 0;
	width: auto;
	height: auto;
	background-image: url('data:image/svg+xml,<svg width="60" height="60" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg"><path d="M30 0L60 30L30 60L0 30L30 0Z" fill="rgba(255,255,255,0.03)"/></svg>');
	background-size: 60px 60px;
	opacity: 0.1;
	z-index: 1;
	pointer-events: none;
}

.service-page .faq-section .section-title,
.service-page .faq-section .section-description,
.service-page .faq-section .section-subtitle,
.sgc-marketing-page .faq-section .sgc-section-heading h2,
.sgc-marketing-page .faq-section .sgc-section-heading p {
	color: var(--white);
}

.service-page .faq-section .section-subtitle,
.sgc-marketing-page .faq-section .sgc-section-heading__label {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.18);
	color: var(--white);
}

.service-page .faq-section .faq-item,
.sgc-marketing-page .faq-section .faq-item {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.14);
	backdrop-filter: blur(12px);
}

.service-page .faq-section .faq-question,
.sgc-marketing-page .faq-section .faq-question {
	color: var(--white);
	background: transparent;
}

.service-page .faq-section .faq-question:hover,
.sgc-marketing-page .faq-section .faq-question:hover {
	color: #cfe8ff;
}

.service-page .faq-section .faq-answer,
.service-page .faq-section .faq-answer p,
.service-page .faq-section .faq-answer li,
.service-page .faq-section .faq-answer div,
.sgc-marketing-page .faq-section .faq-answer,
.sgc-marketing-page .faq-section .faq-answer p,
.sgc-marketing-page .faq-section .faq-answer li,
.sgc-marketing-page .faq-section .faq-answer div {
	color: rgba(255, 255, 255, 0.92);
}

/* ===== MOBILE RESPONSIVENESS HARDENING ===== */
button,
input[type="submit"],
input[type="button"],
input[type="reset"] {
	min-height: 44px;
}

.nav-menu a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

.nav-menu .sub-menu a,
.service-link,
.trust-badge-item,
.header-cta .btn-header,
.newsletter-form button,
.mobile-quick-cta {
	min-height: 44px;
}

.service-link {
	padding: 10px 0;
}

.trust-badge-item {
	height: auto;
	padding-top: 10px;
	padding-bottom: 10px;
}

.mobile-menu-toggle,
.submenu-toggle,
.mobile-quote-close {
	min-width: 44px;
	min-height: 44px;
}

.area-item {
	gap: 12px;
}

.area-name {
	flex: 1 1 auto;
	min-width: 0;
	flex-wrap: wrap;
}

.area-distance {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	white-space: nowrap;
}

.services-section .services-premium-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-flow: row dense;
}

.services-section .service-card-wide {
	grid-column: span 3;
}

@media (max-width: 1024px) {
	.services-section .services-premium-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.services-section .service-card-wide {
		grid-column: auto;
	}
}

@media (max-width: 640px) {
	.area-item {
		flex-direction: column;
		align-items: flex-start;
	}

	.area-item:hover {
		padding-left: 0;
	}

	.area-distance {
		align-self: flex-start;
		font-size: 0.72rem;
	}
}

@media (max-width: 768px) {
	.services-section .services-premium-grid {
		grid-template-columns: 1fr;
	}
}

/* ===== VISUAL HIERARCHY POLISH ===== */
.services-section .service-premium-card:not(.service-card-wide) {
	padding-top: 82px;
}

.services-section .service-wide-content {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
}

.services-section .service-premium-card h3 {
	margin-top: 0;
}

.services-section .service-footer {
	gap: 14px;
}

.services-section .service-link {
	min-width: 138px;
	white-space: nowrap;
}

.services-section .service-card-wide {
	align-items: stretch;
	padding: 32px 30px;
}

.services-section .service-card-wide .service-wide-content {
	justify-content: center;
	margin-left: 24px;
}

.services-section .service-card-wide .service-footer {
	margin-left: auto;
	min-width: 220px;
	justify-content: center;
}

.services-section .service-premium-card--featured:not(.service-card-wide) {
	padding-top: 82px;
}

.service-badge {
	top: 18px;
	right: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	max-width: calc(100% - 36px);
	padding: 10px 16px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	box-shadow: 0 14px 28px rgba(10, 75, 122, 0.22);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.1;
	text-align: center;
}

.service-badge-popular {
	background: linear-gradient(135deg, #0d9488, #0f766e);
}

.service-badge-premium {
	background: linear-gradient(135deg, #7c3aed, #5b21b6);
}

.service-badge-saver {
	background: linear-gradient(135deg, #f59e0b, #ea580c);
}

.card-problem {
	background: linear-gradient(145deg, #fffaf2, #ffffff);
}

.card-solution {
	background: linear-gradient(145deg, #f4fbff, #ffffff);
}

.card-result {
	background: linear-gradient(145deg, #f3fcf8, #ffffff);
}

@media (max-width: 768px) {
	.process-connector {
		display: none !important;
	}

	.case-card {
		flex-direction: column;
		align-items: flex-start;
		gap: 18px;
		padding: 24px 22px;
	}

	.case-card:hover {
		transform: none;
	}

	.card-icon-wrapper {
		display: flex;
		align-items: center;
		gap: 12px;
	}

	.card-icon {
		margin-bottom: 0;
	}

	.card-number {
		text-align: left;
	}

	.services-section .service-premium-card:not(.service-card-wide) {
		padding-top: 74px;
	}

	.services-section .service-link {
		min-width: 0;
	}
}

/* ===== ACCESSIBILITY + INTERACTION REFINEMENTS ===== */
:where(a, button, [role="button"], input, textarea, select, .thumbnail-item):focus-visible {
	outline: 3px solid var(--accent-blue);
	outline-offset: 3px;
	box-shadow: 0 0 0 5px rgba(30, 136, 229, 0.18);
}

.btn,
.header-cta .btn-header,
.thumbnail-item,
.service-link,
.service-title-link,
.area-name[href] {
	transition: transform 0.22s ease, box-shadow 0.22s ease, color 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, text-decoration-color 0.22s ease;
}

.btn:hover,
.btn:focus-visible,
.header-cta .btn-header:hover,
.header-cta .btn-header:focus-visible,
.process-cta .btn:hover,
.process-cta .btn:focus-visible,
.why-choose-cta .btn:hover,
.why-choose-cta .btn:focus-visible,
.case-study-cta .btn:hover,
.case-study-cta .btn:focus-visible {
	transform: translateY(-2px) scale(1.02);
	box-shadow: 0 18px 34px rgba(10, 75, 122, 0.22);
}

.service-title-link {
	color: inherit;
	text-decoration: none;
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}

.service-title-link:hover,
.service-title-link:focus-visible {
	color: var(--accent-blue);
	text-decoration: underline;
	text-decoration-color: rgba(30, 136, 229, 0.55);
}

.service-link {
	padding: 12px 18px;
	border-radius: 999px;
	border: 1px solid rgba(10, 75, 122, 0.14);
	background: rgba(247, 251, 255, 0.96);
	box-shadow: 0 10px 20px rgba(10, 75, 122, 0.08);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	text-decoration: none;
}

.service-link:hover,
.service-link:focus-visible {
	background: rgba(30, 136, 229, 0.12);
	border-color: rgba(30, 136, 229, 0.24);
	text-decoration: none;
}

.service-premium-card[data-card-url] {
	cursor: pointer;
}

.service-premium-card[data-card-url]:focus-visible {
	outline: 3px solid rgba(30, 136, 229, 0.35);
	outline-offset: 4px;
}

.area-name[href] {
	text-decoration: none;
	text-underline-offset: 4px;
}

.area-name[href]:hover,
.area-name[href]:focus-visible {
	color: var(--accent-blue);
	text-decoration: underline;
	text-decoration-color: rgba(30, 136, 229, 0.45);
}

.faq-item.is-open {
	border-color: rgba(30, 136, 229, 0.42);
	box-shadow: 0 22px 48px rgba(10, 75, 122, 0.18);
}

.faq-answer[aria-hidden="true"] {
	visibility: hidden;
}

.faq-answer[aria-hidden="false"] {
	visibility: visible;
}

.thumbnail-item {
	appearance: none;
	padding: 0;
	width: 100%;
	background: transparent;
}

.thumbnail-item:hover,
.thumbnail-item:focus-visible {
	opacity: 1;
	transform: translateY(-3px);
}

.main-footer .footer-tagline,
.main-footer .footer-newsletter p,
.main-footer .footer-bottom {
	color: rgba(255, 255, 255, 0.82);
}

.main-footer .footer-menu a,
.main-footer .footer-bottom a {
	color: rgba(255, 255, 255, 0.9);
}

.main-footer .contact-label {
	color: rgba(255, 255, 255, 0.72);
}

.main-footer .contact-link:hover,
.main-footer .footer-bottom a:hover,
.main-footer .footer-menu a:hover {
	color: #c9e8ff;
}

/* ===== PAGE-SPECIFIC POLISH ===== */
.hero-trust-badge {
	justify-content: flex-start;
	gap: 12px;
	padding: 14px 16px;
	width: fit-content;
	max-width: 100%;
	background: linear-gradient(145deg, rgba(7, 53, 90, 0.38), rgba(7, 53, 90, 0.16));
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 24px;
	backdrop-filter: blur(18px);
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.16);
}

.hero-trust-badge .trust-badge-item {
	min-width: 0;
	background: rgba(255, 255, 255, 0.14);
	color: var(--white);
	border-color: rgba(255, 255, 255, 0.12);
	box-shadow: none;
}

.hero-trust-badge .trust-badge-item i {
	color: #ffe08a;
}

.hero-trust-badge .trust-badge-item:hover {
	background: rgba(255, 255, 255, 0.24);
	color: var(--white);
	border-color: rgba(255, 255, 255, 0.3);
}

.hero-trust-badge .trust-badge-item:hover i {
	color: #fff4bf;
}

.hero-stat-strip {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-top: 26px;
	max-width: 760px;
}

.hero-stat {
	padding: 18px 18px 16px;
	border-radius: 20px;
	background: linear-gradient(145deg, rgba(7, 53, 90, 0.58), rgba(30, 136, 229, 0.24));
	border: 1px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 18px 34px rgba(0, 0, 0, 0.16);
	backdrop-filter: blur(16px);
}

.hero-stat__value {
	display: block;
	font-size: clamp(1.8rem, 4vw, 2.4rem);
	font-weight: 800;
	line-height: 1;
	color: #ffffff;
	margin-bottom: 8px;
}

.hero-stat__label {
	display: block;
	font-size: 0.92rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.88);
}

.sgc-info-card {
	display: grid;
	gap: 16px;
}

.sgc-info-card__media {
	margin: -22px -20px 0;
	overflow: hidden;
	border-radius: 20px 20px 16px 16px;
	background: rgba(7, 53, 90, 0.08);
	aspect-ratio: 16 / 10;
}

.sgc-info-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sgc-info-card__content {
	display: grid;
	gap: 10px;
}

.sgc-info-card__eyebrow {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 6px 10px;
	border-radius: 999px;
	background: rgba(30, 136, 229, 0.12);
	color: var(--primary);
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sgc-info-card__title-link {
	color: inherit;
	text-decoration: none;
}

.sgc-info-card__title-link:hover {
	color: var(--accent-blue);
}

.sgc-map-frame {
	background: #ffffff;
	box-shadow: 0 18px 34px rgba(10, 75, 122, 0.08);
}

.sgc-marketing-page__article--areas .sgc-page-hero {
	background:
		radial-gradient(circle at top left, rgba(30, 136, 229, 0.16), transparent 34%),
		radial-gradient(circle at 88% 18%, rgba(10, 75, 122, 0.12), transparent 28%),
		linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(240, 247, 255, 0.96));
}

.sgc-marketing-page__article--areas .sgc-panel {
	padding: clamp(34px, 4vw, 44px);
}

.sgc-marketing-page__article--areas .sgc-panel::after {
	content: "";
	position: absolute;
	inset: auto -12% -24% auto;
	width: 220px;
	height: 220px;
	background: radial-gradient(circle, rgba(30, 136, 229, 0.08), transparent 70%);
	pointer-events: none;
}

.sgc-marketing-page__article--areas .sgc-panel > * {
	position: relative;
	z-index: 1;
}

.sgc-marketing-page__article--areas .sgc-check-list {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 1120px;
}

.sgc-marketing-page__article--areas .sgc-check-list li {
	align-items: start;
	min-height: 100%;
	padding: 18px 18px;
}

.sgc-marketing-page__article--areas .sgc-grid--three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sgc-marketing-page__article--areas .sgc-info-card {
	min-height: 100%;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 250, 255, 0.98));
	padding: 24px 22px;
}

.sgc-marketing-page__article--areas .sgc-info-card__media {
	display: none;
}

.sgc-marketing-page__article--areas .sgc-info-card__content {
	min-height: auto;
	gap: 12px;
}

.sgc-marketing-page__article--areas .sgc-info-card__content h3 {
	font-size: 1.18rem;
	line-height: 1.2;
}

.sgc-marketing-page__article--areas .sgc-card-link {
	margin-top: auto;
	padding-top: 8px;
}

.sgc-marketing-page__article--areas .sgc-detail-list {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sgc-marketing-page__article--areas .sgc-detail-list__item {
	background: linear-gradient(180deg, rgba(247, 251, 255, 0.98), rgba(255, 255, 255, 0.98));
}

.sgc-marketing-page__article--areas .sgc-detail-list__item h3 {
	font-size: 0.82rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--accent-blue);
}

.sgc-marketing-page__article--areas .sgc-map-frame {
	margin-top: 28px;
	padding: 10px;
	border-radius: 24px;
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(232, 242, 252, 0.96));
	border-color: rgba(30, 136, 229, 0.18);
	box-shadow: 0 20px 42px rgba(10, 75, 122, 0.12);
}

.sgc-marketing-page__article--areas .sgc-map-frame iframe {
	height: 380px;
	border-radius: 18px;
}

.sgc-marketing-page__article--areas .area-grid-container--marketing {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sgc-marketing-page__article--areas .area-category {
	padding: 24px 20px 20px;
}

.sgc-marketing-page__article--areas .category-title {
	margin-bottom: 12px;
}

.sgc-marketing-page__article--areas .area-items {
	gap: 10px;
}

@media (max-width: 1100px) {
	.sgc-marketing-page__article--areas .sgc-check-list,
	.sgc-marketing-page__article--areas .sgc-detail-list,
	.sgc-marketing-page__article--areas .area-grid-container--marketing {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.sgc-marketing-page__article--areas .sgc-check-list,
	.sgc-marketing-page__article--areas .sgc-detail-list,
	.sgc-marketing-page__article--areas .sgc-grid--three,
	.sgc-marketing-page__article--areas .area-grid-container--marketing {
		grid-template-columns: 1fr;
	}

	.sgc-marketing-page__article--areas .sgc-map-frame iframe {
		height: 320px;
	}
}

@media (max-width: 1024px) {
	.hero-stat-strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 768px) {
	.hero-trust-badge {
		justify-content: center;
		padding: 12px;
	}

	.hero-trust-badge .trust-badge-item {
		width: 100%;
		justify-content: center;
	}

	.hero-stat-strip {
		grid-template-columns: 1fr;
	}
}

/* ===== GLOBAL PAGE CONSISTENCY SYSTEM ===== */
:root {
	--sgc-card-radius-pro: 24px;
	--sgc-card-border-pro: rgba(10, 75, 122, 0.1);
	--sgc-card-shadow-pro: 0 16px 34px rgba(10, 75, 122, 0.08);
	--sgc-card-shadow-hover-pro: 0 24px 48px rgba(10, 75, 122, 0.14);
}

.site-main :is(.section-header, .sgc-section-heading, .comments-header) {
	display: grid;
	gap: clamp(10px, 1.4vw, 16px);
	justify-items: center;
	align-content: start;
	text-align: center;
	max-width: min(920px, 100%);
	margin-left: auto;
	margin-right: auto;
	margin-bottom: clamp(28px, 4vw, 56px);
}

.site-main :is(.section-header, .sgc-section-heading, .comments-header) > * {
	margin: 0;
}

.site-main :is(.section-header, .comments-header) .section-subtitle,
.site-main .sgc-section-heading__label {
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	padding: 9px 18px;
	gap: 9px;
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	box-shadow: 0 12px 30px rgba(10, 75, 122, 0.08);
}

.site-main :is(.section-header, .comments-header) .section-title,
.site-main .sgc-section-heading h2 {
	max-width: min(30ch, 100%);
	margin-left: auto;
	margin-right: auto;
	text-wrap: balance;
	line-height: 1.04;
}

.site-main :is(.section-header, .comments-header) .section-description,
.site-main .sgc-section-heading p {
	max-width: min(70ch, 100%);
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	font-size: clamp(1rem, 1.2vw, 1.08rem);
	line-height: 1.8;
	color: var(--text-medium);
}

.service-single :is(.service-overview, .service-intro, .service-benefits, .service-pricing, .related-services, .service-contact) > .container {
	display: grid;
	justify-items: center;
}

.service-single :is(.service-overview, .service-intro, .service-benefits, .service-pricing, .related-services, .service-contact) > .container > h2,
.service-single :is(.service-overview, .service-intro, .service-benefits, .service-pricing, .related-services, .service-contact) > .container > p {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}

.service-single :is(.service-overview, .service-intro, .service-benefits, .service-pricing, .related-services, .service-contact) > .container > p {
	max-width: 72ch;
}

.service-single :is(.service-overview__body, .service-benefits ul, .service-pricing ul, .related-services__list, .service-contact-form) {
	width: min(100%, 920px);
	margin-left: auto;
	margin-right: auto;
}

.service-single .service-overview__body,
.service-single .service-benefits ul,
.service-single .service-pricing ul,
.service-single .related-services__list {
	text-align: left;
}

.service-single .service-contact .btn-primary,
.service-single .service-contact form button[type="submit"] {
	justify-self: center;
}

:is(.services-premium-grid, .features-grid, .testimonials-premium-grid, .area-grid-container, .sgc-grid--three, .sgc-detail-list, .posts-grid, .faq-grid) {
	align-items: stretch;
}

:is(.service-premium-card, .feature-card, .eat-card.premium, .testimonial-premium-card, .case-card, .sgc-info-card, .sgc-detail-list__item, .area-category, .post-card, .area-list-column) {
	border-radius: var(--sgc-card-radius-pro);
	border: 1px solid var(--sgc-card-border-pro);
	box-shadow: var(--sgc-card-shadow-pro);
}

:is(.service-premium-card, .feature-card, .eat-card.premium, .testimonial-premium-card, .case-card, .sgc-info-card, .sgc-detail-list__item, .area-category, .post-card):hover {
	box-shadow: var(--sgc-card-shadow-hover-pro);
}

:is(.service-premium-card, .feature-card, .eat-card.premium, .testimonial-premium-card, .case-card, .sgc-info-card, .sgc-detail-list__item, .area-category, .post-card) {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.service-wide-content.post-card__content,
.sgc-info-card__content,
.feature-content,
.card-content,
.testimonial-content {
	flex: 1;
}

.post-card__footer,
.service-footer,
.sgc-card-link {
	margin-top: auto;
}

.post-card .post-card__content {
	display: flex;
	flex-direction: column;
	gap: 14px;
	height: 100%;
}

.post-card .post-card__title,
.post-card .post-card__excerpt {
	text-align: center;
}

.post-card .post-card__title a {
	text-decoration: none;
}

.post-card .post-card__meta {
	text-align: center;
}

.post-card .post-card__footer {
	display: flex;
	justify-content: center;
}

.sgc-panel :is(.sgc-grid, .sgc-detail-list, .sgc-check-list, .sgc-map-frame, .sgc-rich-content) {
	margin-left: auto;
	margin-right: auto;
}

.sgc-panel .sgc-check-list,
.sgc-panel .sgc-rich-content {
	max-width: 960px;
}

.sgc-panel .sgc-detail-list,
.sgc-panel .sgc-grid {
	max-width: 1120px;
}

.area-category {
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(245, 249, 255, 0.96));
	padding: 24px 20px;
	margin-bottom: 0;
}

.category-title {
	justify-content: center;
	text-align: center;
}

.area-item {
	padding: 12px 10px;
	border-radius: 12px;
}

.area-name {
	flex: 1;
}

.process-content,
.service-premium-card,
.feature-card,
.testimonial-premium-card,
.sgc-info-card,
.sgc-detail-list__item {
	backdrop-filter: blur(8px);
}

@media (max-width: 768px) {
	.site-main :is(.section-header, .sgc-section-heading, .comments-header) {
		margin-bottom: 28px;
	}

	.site-main :is(.section-header, .comments-header) .section-title,
	.site-main .sgc-section-heading h2 {
		max-width: 100%;
	}

	.service-single :is(.service-overview__body, .service-benefits ul, .service-pricing ul, .related-services__list, .service-contact-form) {
		width: 100%;
	}
}

/* =========================================================
   Professional Page-System Overrides
   - Unify hero shells across page types
   - Standardize default button treatments
   - Keep general pages visually aligned with service/marketing pages
========================================================= */
:root {
	--sgc-btn-height-pro: 50px;
	--sgc-btn-height-lg-pro: 56px;
	--sgc-btn-shadow-soft-pro: 0 12px 28px rgba(10, 75, 122, 0.1);
	--sgc-btn-shadow-strong-pro: 0 18px 38px rgba(10, 75, 122, 0.18);
	--sgc-shell-bg-pro: linear-gradient(140deg, rgba(255, 255, 255, 0.98), rgba(230, 240, 249, 0.88));
	--sgc-shell-border-pro: 1px solid rgba(10, 75, 122, 0.12);
}

.section-subtitle,
.sgc-page-hero__label,
.sgc-section-heading__label {
	border: 1px solid rgba(10, 75, 122, 0.1);
	box-shadow: 0 10px 24px rgba(10, 75, 122, 0.08);
}

main.service-page .service-header,
.page-standard .page-header.service-header,
.sgc-page-hero {
	background: var(--sgc-shell-bg-pro);
	border: var(--sgc-shell-border-pro);
	border-radius: 30px;
	box-shadow: 0 26px 60px rgba(10, 75, 122, 0.14);
	padding: clamp(32px, 4vw, 48px);
	gap: clamp(22px, 3vw, 34px);
	align-items: center;
	margin-bottom: clamp(28px, 3vw, 40px);
}

.page-standard .page-header.service-header::before,
.sgc-page-hero::before,
main.service-page .service-header::before {
	inset: -12% auto auto -8%;
	width: 220px;
	height: 220px;
	background: radial-gradient(circle, rgba(30, 136, 229, 0.12), transparent 68%);
	filter: blur(2px);
}

.page-standard .page-header.service-header::after,
.sgc-page-hero::after,
main.service-page .service-header::after {
	content: none;
}

.service-title,
.sgc-page-hero h1 {
	color: var(--primary-dark);
	font-weight: 900;
	letter-spacing: -0.02em;
}

.service-excerpt,
.sgc-page-hero__intro {
	max-width: 62ch;
	text-wrap: pretty;
}

.service-meta,
.sgc-page-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.service-meta .pill,
.sgc-page-hero__meta .pill {
	background: rgba(255, 255, 255, 0.78);
	border: 1px solid rgba(10, 75, 122, 0.08);
	box-shadow: 0 10px 22px rgba(10, 75, 122, 0.06);
	color: var(--primary-dark);
}

.service-header__content > .sgc-page-hero__label,
.sgc-page-hero__content > .sgc-page-hero__label {
	align-self: flex-start;
	margin-top: 0;
	margin-bottom: 12px;
}

.sgc-stat-card {
	border-radius: 22px;
	border: 1px solid rgba(10, 75, 122, 0.08);
	box-shadow: 0 18px 36px rgba(10, 75, 122, 0.12);
}

.sgc-page-hero__aside {
	align-items: stretch;
}

.service-header__media {
	align-items: stretch;
}

.service-header__media > .service-hero-card:only-child {
	min-height: 210px;
}

.service-hero-card {
	position: relative;
	overflow: hidden;
	display: grid;
	gap: 10px;
	align-content: end;
	min-height: 148px;
	padding: 28px 26px;
	border-radius: 24px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	background:
		linear-gradient(145deg, rgba(7, 53, 90, 0.96), rgba(12, 86, 143, 0.96)),
		radial-gradient(circle at top right, rgba(132, 202, 255, 0.35), transparent 48%);
	box-shadow: 0 22px 44px rgba(10, 75, 122, 0.2);
	color: var(--white);
}

.service-hero-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(120deg, rgba(255, 255, 255, 0.1), transparent 42%, transparent 62%, rgba(255, 255, 255, 0.08));
	pointer-events: none;
}

.service-cta,
.sgc-page-hero__actions,
.page-standard__hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 28px;
}

.service-cta .btn,
.sgc-page-hero__actions .btn,
.page-standard__hero-actions .btn {
	min-width: 190px;
	justify-content: center;
}

.page-standard__content-card {
	position: relative;
	overflow: hidden;
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(245, 249, 255, 0.98));
	border: 1px solid rgba(10, 75, 122, 0.08);
	border-radius: 28px;
	box-shadow: 0 18px 50px rgba(10, 75, 122, 0.1);
	padding: clamp(28px, 4vw, 36px);
	margin-bottom: 28px;
}

.page-standard__content-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 160px;
	height: 4px;
	background: linear-gradient(90deg, var(--accent-blue), var(--primary));
}

.page-standard__content-card .entry-content,
.page-standard__content-card .entry-content p,
.page-standard__content-card .entry-content li {
	color: var(--text-medium);
	line-height: 1.8;
}

.page-standard__content-card .entry-content h2,
.page-standard__content-card .entry-content h3,
.page-standard__content-card .entry-content h4 {
	color: var(--primary-dark);
}

.service-hero-card .card-kpi,
.service-hero-card .card-sub {
	position: relative;
	z-index: 1;
}

.service-hero-card .card-kpi {
	margin: 0;
	color: var(--white);
	font-size: clamp(1.15rem, 2vw, 1.8rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.02em;
	max-width: 16ch;
	text-shadow: 0 1px 8px rgba(7, 43, 74, 0.18);
}

.service-hero-card .card-sub {
	margin: 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.95rem;
	line-height: 1.65;
	max-width: 30ch;
	text-shadow: 0 1px 6px rgba(7, 43, 74, 0.14);
}

.btn {
	--btn-padding: 13px 22px;
	--btn-font-size: 0.95rem;
	--btn-border-radius: 999px;
	min-height: var(--sgc-btn-height-pro);
	padding: var(--btn-padding);
	border-radius: var(--btn-border-radius);
	font-size: var(--btn-font-size);
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
}

.btn-large {
	--btn-padding: 16px 30px;
	--btn-font-size: 1rem;
	min-height: var(--sgc-btn-height-lg-pro);
}

.btn-pill,
.btn--pill {
	--btn-border-radius: 999px;
}

.btn-primary,
.btn.btn-primary {
	--btn-bg: linear-gradient(135deg, var(--accent-blue), var(--primary));
	--btn-color: var(--white);
	--btn-border: 1px solid rgba(10, 75, 122, 0.08);
	--btn-shadow: 0 16px 32px rgba(10, 75, 122, 0.18);
}

.btn-primary:hover,
.btn-primary:focus-visible {
	--btn-bg: linear-gradient(135deg, var(--accent-blue-dark), var(--primary-dark));
	--btn-shadow: var(--sgc-btn-shadow-strong-pro);
}

.btn-outline {
	--btn-bg: rgba(255, 255, 255, 0.94);
	--btn-color: var(--primary-dark);
	--btn-border: 1px solid rgba(10, 75, 122, 0.14);
	--btn-shadow: var(--sgc-btn-shadow-soft-pro);
}

.btn-outline:hover,
.btn-outline:focus-visible {
	--btn-bg: linear-gradient(135deg, var(--primary), var(--primary-dark));
	--btn-color: var(--white);
	--btn-border: 1px solid rgba(10, 75, 122, 0.96);
}

.btn-secondary {
	--btn-bg: linear-gradient(145deg, rgba(240, 247, 255, 0.96), rgba(255, 255, 255, 0.96));
	--btn-color: var(--primary-dark);
	--btn-border: 1px solid rgba(10, 75, 122, 0.12);
	--btn-shadow: 0 10px 20px rgba(10, 75, 122, 0.08);
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
	--btn-bg: linear-gradient(135deg, var(--primary), var(--primary-dark));
	--btn-color: var(--white);
	--btn-border: 1px solid rgba(10, 75, 122, 0.96);
}

.btn-light {
	--btn-bg: rgba(255, 255, 255, 0.97);
	--btn-color: var(--primary-dark);
	--btn-border: 1px solid rgba(255, 255, 255, 0.72);
	--btn-shadow: 0 12px 28px rgba(4, 25, 43, 0.18);
}

.btn-light:hover,
.btn-light:focus-visible {
	--btn-bg: rgba(230, 240, 249, 0.98);
	--btn-color: var(--primary-dark);
	--btn-border: 1px solid rgba(255, 255, 255, 0.84);
}

.btn i,
.btn .btn-icon-wrapper {
	flex: 0 0 auto;
}

@media (max-width: 1024px) {
	main.service-page .service-header,
	.page-standard .page-header.service-header,
	.sgc-page-hero {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	main.service-page .service-header,
	.page-standard .page-header.service-header,
	.sgc-page-hero,
	.page-standard__content-card {
		border-radius: 22px;
	}

	.service-title,
	.sgc-page-hero h1 {
		max-width: none;
	}

	.service-header__media > .service-hero-card:only-child {
		min-height: 172px;
	}

	.service-cta,
	.sgc-page-hero__actions,
	.page-standard__hero-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.service-cta .btn,
	.sgc-page-hero__actions .btn,
	.page-standard__hero-actions .btn {
		min-width: 0;
		width: 100%;
	}

	.page-standard__content-card {
		padding: 26px 22px;
	}
}

/* =========================================================
   Shared H2 Display Style
   - Match featured split-heading treatment across major page sections
========================================================= */
.sgc-heading-split {
	display: grid;
	gap: clamp(5px, 0.9vw, 12px);
	justify-items: center;
	margin-left: auto;
	margin-right: auto;
	max-width: min(28ch, 100%);
	text-align: center;
	text-wrap: balance;
	line-height: 1.02;
	letter-spacing: -0.035em;
	font-size: clamp(1.95rem, 4vw, 3.3rem);
	font-weight: 900;
	color: var(--primary-dark);
}

.sgc-heading-split--compact {
	max-width: min(30ch, 100%);
	font-size: clamp(1.8rem, 3.6vw, 2.95rem);
}

.sgc-heading-split--tight {
	max-width: min(32ch, 100%);
	font-size: clamp(1.65rem, 3.15vw, 2.55rem);
}

.service-single > section > .container > .sgc-heading-split,
.service-single > section > .sgc-heading-split,
.page-standard__content-card .entry-content > .sgc-heading-split,
.sgc-section-heading > .sgc-heading-split,
.comments-header > .sgc-heading-split {
	margin-bottom: 18px;
}

.section-title.sgc-heading-split {
	margin-bottom: 0;
}

.sgc-heading-split__base,
.sgc-heading-split__accent {
	display: block;
	max-width: 100%;
	text-wrap: balance;
}

.section-title.sgc-heading-split > span::after {
	content: none;
}

.section-title.sgc-heading-split > .sgc-heading-split__base,
.sgc-heading-split__base {
	color: var(--primary-dark);
}

.section-title.sgc-heading-split > .sgc-heading-split__accent,
.sgc-heading-split__accent {
	position: relative;
	color: var(--accent-blue);
	padding-inline: 0.06em;
	text-shadow: 0 10px 24px rgba(30, 136, 229, 0.14);
}

.section-title.sgc-heading-split > .sgc-heading-split__accent::after,
.sgc-heading-split__accent::after {
	content: "";
	position: absolute;
	left: 0.08em;
	right: 0.08em;
	bottom: 0.1em;
	height: 0.16em;
	border-radius: 999px;
	background: linear-gradient(90deg, rgba(30, 136, 229, 0.05), rgba(30, 136, 229, 0.24), rgba(30, 136, 229, 0.05));
	z-index: -1;
}

@media (max-width: 768px) {
	.site-main :is(.section-header, .sgc-section-heading, .comments-header) {
		gap: 12px;
	}

	.site-main :is(.section-header, .comments-header) .section-title,
	.site-main .sgc-section-heading h2,
	.site-main :is(.section-header, .comments-header) .section-description,
	.site-main .sgc-section-heading p {
		max-width: 100%;
	}

	.sgc-heading-split {
		max-width: 100%;
		font-size: clamp(1.7rem, 6.4vw, 2.7rem);
		line-height: 1.02;
	}

	.sgc-heading-split--compact {
		font-size: clamp(1.55rem, 5.8vw, 2.25rem);
	}

	.sgc-heading-split--tight {
		font-size: clamp(1.4rem, 5vw, 2rem);
	}
}

/* =========================================================
   Service Area Refresh
   - Fix compact layout width on service pages
   - Unify full and list-only area sections with cleaner cards
========================================================= */
.service-area-section {
	padding: clamp(48px, 6vw, 82px) 0;
	isolation: isolate;
}

.service-area-section::after {
	content: "";
	position: absolute;
	left: -90px;
	bottom: 28px;
	width: 280px;
	height: 280px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(0, 172, 193, 0.16) 0%, rgba(0, 172, 193, 0) 72%);
	pointer-events: none;
	z-index: 0;
}

.service-area-section > .container {
	position: relative;
	z-index: 1;
}

.service-area-section .section-header {
	margin-bottom: clamp(28px, 4vw, 48px);
}

.service-area-section .section-description {
	color: var(--text-medium);
}

.area-showcase {
	align-items: start;
	gap: clamp(24px, 3vw, 36px);
}

.service-area-section--full .area-map-column {
	display: flex;
}

.service-area-section--full .map-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(245, 249, 255, 0.98));
	box-shadow: 0 24px 56px rgba(10, 75, 122, 0.12);
	border: 1px solid rgba(10, 75, 122, 0.08);
}

.service-area-section--full .map-wrapper {
	padding-bottom: clamp(360px, 38vw, 460px);
}

.service-area-section--full .coverage-badge {
	top: 22px;
	left: 22px;
	border-radius: 16px;
	padding: 14px 18px;
	border-color: rgba(10, 75, 122, 0.08);
	box-shadow: 0 20px 34px rgba(10, 75, 122, 0.14);
}

.service-area-section--full .area-stats {
	gap: 16px;
	padding: 22px 20px;
}

.service-area-section--full .stat-item {
	display: grid;
	gap: 4px;
	text-align: center;
}

.service-area-section--full .stat-number {
	font-size: clamp(1.35rem, 2.4vw, 1.8rem);
	font-weight: 800;
	line-height: 1;
}

.service-area-section--full .stat-label {
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.92;
}

.service-area-section--full .stat-divider {
	width: 1px;
	background: rgba(255, 255, 255, 0.18);
}

.area-list-column {
	position: relative;
	overflow: hidden;
	padding: clamp(24px, 3.2vw, 36px);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 249, 255, 0.98));
	border: 1px solid rgba(10, 75, 122, 0.08);
	box-shadow: 0 24px 52px rgba(10, 75, 122, 0.08);
}

.area-list-column::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 4px;
	background: linear-gradient(90deg, var(--accent-blue), var(--accent-cyan));
}

.area-showcase > .area-list-column:only-child {
	grid-column: 1 / -1;
	justify-self: stretch;
	width: 100%;
	max-width: 100%;
}

.service-area-section--list-only .area-showcase {
	grid-template-columns: 1fr;
}

.service-area-section--list-only .area-list-column {
	max-width: min(1180px, 100%);
	margin-left: auto;
	margin-right: auto;
}

.area-header {
	margin-bottom: 4px;
}

.area-heading {
	margin-bottom: 12px;
}

.area-intro {
	border-bottom-color: rgba(10, 75, 122, 0.08);
}

.area-grid-container {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.service-area-section--list-only .area-grid-container {
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.area-grid-container--marketing {
	max-width: 1120px;
	margin-left: auto;
	margin-right: auto;
}

.area-column {
	gap: 22px;
}

.area-category {
	position: relative;
	overflow: hidden;
	padding: 20px 18px 18px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(248, 251, 255, 0.98));
	border: 1px solid rgba(30, 136, 229, 0.22);
	box-shadow: 0 12px 28px rgba(10, 75, 122, 0.07);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.area-category::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 3px;
	background: linear-gradient(180deg, var(--accent-blue), var(--accent-cyan));
	opacity: 0.9;
}

.area-category:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 36px rgba(10, 75, 122, 0.1);
	border-color: rgba(30, 136, 229, 0.3);
}

.category-title {
	justify-content: flex-start;
	text-align: left;
	gap: 10px;
	margin-bottom: 10px;
	padding-bottom: 14px;
	border-bottom: 1px solid rgba(10, 75, 122, 0.1);
	font-size: 1rem;
}

.category-title i {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 8px;
	background: linear-gradient(135deg, rgba(30, 136, 229, 0.12), rgba(0, 172, 193, 0.1));
	color: var(--accent-blue);
	flex: 0 0 auto;
	font-size: 0.82rem;
}

.area-category-summary {
	margin: 0 0 14px;
	color: var(--text-medium);
	font-size: 0.88rem;
	line-height: 1.55;
}

.area-items {
	display: grid;
	gap: 8px;
}

.service-area-section .area-items {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 8px;
}

.area-item {
	padding: 10px 12px;
	border: 1px solid rgba(10, 75, 122, 0.08);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 253, 0.92));
	border-radius: 12px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.service-area-section .area-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	grid-template-columns: none;
	font-weight: 600;
	color: var(--text-dark);
}

.service-area-section .area-item::before {
	content: none !important;
	display: none !important;
}

.area-item:hover {
	transform: translateX(3px);
	padding-left: 12px;
	background: var(--white);
	border-color: rgba(30, 136, 229, 0.22);
	box-shadow: 0 10px 20px rgba(10, 75, 122, 0.07);
}

.area-name {
	flex: 1;
	min-width: 0;
	font-weight: 600;
	font-size: 0.92rem;
}

.service-area-section .area-name {
	display: flex;
	align-items: center;
	gap: 8px;
}

.area-name,
.area-name a,
.area-link {
	color: var(--text-dark);
	text-decoration: none;
}

a.area-name:hover,
.area-name a:hover,
.area-link:hover {
	color: var(--primary);
}

.area-name i {
	width: 18px;
	flex: 0 0 18px;
	margin-top: 2px;
	font-size: 0.72rem;
}

.area-distance,
.area-badge {
	align-self: center;
	padding: 5px 9px;
	border-radius: 999px;
	font-size: 0.7rem;
	font-weight: 700;
	line-height: 1;
}

.area-distance {
	background: rgba(10, 75, 122, 0.06);
	color: var(--primary-dark);
	border: 1px solid rgba(10, 75, 122, 0.08);
}

.area-badge {
	background: linear-gradient(135deg, #f59e0b, #fb923c);
	color: var(--white);
	box-shadow: 0 10px 18px rgba(245, 158, 11, 0.26);
}

.area-items.emergency .area-item.highlight {
	background: linear-gradient(135deg, #fff6e8, #ffe8bf);
	border: 1px solid rgba(245, 158, 11, 0.28);
	box-shadow: 0 16px 28px rgba(245, 158, 11, 0.14);
}

.service-promise {
	display: grid;
	gap: 8px;
	align-content: start;
	background: linear-gradient(145deg, rgba(230, 240, 249, 0.88), rgba(255, 255, 255, 0.98));
	border: 1px solid rgba(10, 75, 122, 0.08);
}

.area-cta {
	background: linear-gradient(135deg, rgba(10, 75, 122, 0.06), rgba(30, 136, 229, 0.12));
	border: 1px solid rgba(30, 136, 229, 0.18);
	box-shadow: 0 18px 34px rgba(10, 75, 122, 0.08);
}

.cta-right {
	gap: 10px;
}

@media (min-width: 1201px) {
	.service-area-section--full .area-map-column .map-card {
		position: sticky;
		top: 120px;
	}
}

@media (max-width: 1200px) {
	.service-area-section--list-only .area-grid-container {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 992px) {
	.area-grid-container {
		grid-template-columns: 1fr;
	}

	.service-area-section--list-only .area-grid-container {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.area-category {
		padding: 20px 18px 18px;
	}
}

@media (max-width: 768px) {
	.service-area-section {
		padding: 52px 0;
	}

	.service-area-section::before {
		transform: translate(160px, -200px);
	}

	.service-area-section::after {
		left: -80px;
		bottom: 0;
		width: 220px;
		height: 220px;
	}

	.service-area-section--full .coverage-badge {
		position: static;
		margin: 18px 18px 0;
	}

	.service-area-section--full .area-stats {
		flex-wrap: wrap;
	}

	.service-area-section--full .stat-divider {
		display: none;
	}

	.area-list-column {
		padding: 22px 18px;
		border-radius: 20px;
	}

	.service-area-section--list-only .area-grid-container {
		grid-template-columns: 1fr;
	}

	.area-grid-container {
		gap: 16px;
	}
}

/* =========================================================
   Shared Service Copy Sections
   - Benefits, pricing, overview lists, and related links
========================================================= */
.service-single :is(.service-overview, .service-benefits, .service-pricing, .related-services) > .container > h2 {
	max-width: 24ch;
	font-size: clamp(1.95rem, 3vw, 2.6rem);
	margin-bottom: 14px;
}

.service-single :is(.service-overview, .service-benefits, .service-pricing, .related-services) > .container > p {
	max-width: 64ch;
}

.service-single .service-benefits,
.service-single .service-pricing {
	background:
		radial-gradient(circle at top right, rgba(30, 136, 229, 0.08), transparent 28%),
		linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(239, 246, 255, 0.96));
}

.service-single :is(.service-overview__body, .service-benefits, .service-pricing) ul {
	width: min(100%, 1060px);
	margin: 24px auto 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.service-single :is(.service-overview__body, .service-benefits, .service-pricing) ul li {
	position: relative;
	display: block;
	min-height: 100%;
	padding: 18px 18px 18px 58px;
	border-radius: 18px;
	border: 1px solid rgba(10, 75, 122, 0.1);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(245, 249, 255, 0.96));
	box-shadow: 0 16px 32px rgba(10, 75, 122, 0.08);
	font-weight: 500;
	line-height: 1.68;
	color: var(--text-medium);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.service-single :is(.service-overview__body, .service-benefits, .service-pricing) ul li::before {
	position: absolute;
	top: 18px;
	left: 18px;
	width: 26px;
	height: 26px;
	display: grid;
	place-items: center;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--accent-blue), var(--primary));
	color: var(--white);
	box-shadow: 0 12px 22px rgba(30, 136, 229, 0.24);
	font-size: 0.72rem;
	margin: 0;
}

.service-single :is(.service-overview__body, .service-benefits, .service-pricing) ul li:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 40px rgba(10, 75, 122, 0.12);
	border-color: rgba(30, 136, 229, 0.22);
}

.service-single :is(.service-overview__body, .service-benefits, .service-pricing) ul li strong {
	display: block;
	margin-bottom: 6px;
	color: var(--primary-dark);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.35;
}

.service-single .service-pricing ul li {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(232, 243, 255, 0.98));
}

.service-single .service-pricing ul li strong {
	color: var(--primary);
}

.service-single .related-services__list {
	width: min(100%, 1060px);
	margin: 24px auto 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
}

.service-single .related-services__list li {
	padding: 0;
	display: block;
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(240, 247, 255, 0.96));
	border: 1px solid rgba(10, 75, 122, 0.08);
	border-radius: 18px;
	box-shadow: 0 14px 28px rgba(10, 75, 122, 0.08);
	overflow: hidden;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.service-single .related-services__list li::before {
	content: none;
}

.service-single .related-services__list li:hover {
	transform: translateY(-4px);
	border-color: rgba(30, 136, 229, 0.22);
	box-shadow: 0 20px 38px rgba(10, 75, 122, 0.12);
}

.service-single .related-services__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	padding: 18px 20px;
	color: var(--primary-dark);
	font-weight: 700;
	line-height: 1.6;
	text-decoration: none;
}

.service-single .related-services__list a::after {
	content: "\f061";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 0.82rem;
	color: var(--accent-blue);
	flex: 0 0 auto;
}

@media (max-width: 992px) {
	.service-single :is(.service-overview__body, .service-benefits, .service-pricing) ul {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.service-single :is(.service-overview, .service-benefits, .service-pricing, .related-services) > .container > h2 {
		max-width: 100%;
		font-size: clamp(1.7rem, 6vw, 2.2rem);
	}

	.service-single :is(.service-overview__body, .service-benefits, .service-pricing) ul li {
		padding: 16px 16px 16px 54px;
		border-radius: 16px;
	}

	.service-single :is(.service-overview__body, .service-benefits, .service-pricing) ul li::before {
		top: 16px;
		left: 16px;
	}

	.service-single .related-services__list a {
		padding: 16px 18px;
	}
}

/* =========================================================
   Content Hub Sections
   - Shared service/location clusters used on home and blog templates
========================================================= */
.sgc-content-hub {
	padding: clamp(48px, 6vw, 82px) 0;
}

.sgc-content-hub__clusters {
	display: grid;
	gap: clamp(22px, 3vw, 30px);
}

.sgc-link-cluster {
	position: relative;
	overflow: hidden;
	padding: clamp(24px, 3vw, 34px);
	border-radius: 26px;
	background:
		radial-gradient(circle at top right, rgba(0, 172, 193, 0.12), transparent 34%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(242, 248, 255, 0.97));
	border: 1px solid rgba(10, 75, 122, 0.08);
	box-shadow: 0 22px 48px rgba(10, 75, 122, 0.08);
}

.sgc-link-cluster::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 4px;
	background: linear-gradient(90deg, var(--accent-blue), var(--accent-cyan));
}

.sgc-link-cluster__header {
	display: grid;
	gap: 10px;
	margin-bottom: 22px;
}

.sgc-link-cluster__header h3 {
	margin: 0;
	font-size: clamp(1.3rem, 2vw, 1.65rem);
	letter-spacing: -0.03em;
}

.sgc-link-cluster__header p {
	margin: 0;
	max-width: 72ch;
	color: var(--text-medium);
}

.sgc-link-cluster__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}

.sgc-link-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	height: 100%;
	padding: 18px 18px 20px;
	border-radius: 18px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(246, 250, 255, 0.96));
	border: 1px solid rgba(10, 75, 122, 0.08);
	box-shadow: 0 14px 30px rgba(10, 75, 122, 0.06);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.sgc-link-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 38px rgba(10, 75, 122, 0.1);
	border-color: rgba(30, 136, 229, 0.24);
}

.sgc-link-card__eyebrow,
.sgc-link-chip__eyebrow {
	margin: 0;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--accent-blue);
}

.sgc-link-card__title {
	margin: 0;
	font-size: 1.02rem;
	line-height: 1.35;
	min-height: calc(1.35em * 2);
	text-wrap: balance;
}

.sgc-link-card__title a {
	color: var(--primary-dark);
	text-decoration: none;
}

.sgc-link-card__title a:hover {
	color: var(--accent-blue);
}

.sgc-link-card__text {
	margin: 0;
	width: 100%;
	flex: 1 1 auto;
	color: var(--text-medium);
	font-size: 0.94rem;
	line-height: 1.65;
}

.sgc-link-card__cta {
	width: 100%;
	min-height: 58px;
	margin-top: 6px;
	padding-inline: 16px;
	justify-content: center;
	text-align: center;
	line-height: 1.25;
	text-wrap: balance;
}

.sgc-link-cluster--chips {
	padding-bottom: clamp(22px, 3vw, 30px);
}

.sgc-link-chips {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 12px;
}

.sgc-link-chip {
	position: relative;
	display: grid;
	gap: 5px;
	padding: 16px 18px;
	border-radius: 16px;
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(241, 247, 255, 0.96));
	border: 1px solid rgba(10, 75, 122, 0.08);
	box-shadow: 0 12px 26px rgba(10, 75, 122, 0.05);
	color: var(--primary-dark);
	text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.sgc-link-chip::after {
	content: "\f061";
	position: absolute;
	top: 50%;
	right: 16px;
	transform: translateY(-50%);
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 0.78rem;
	color: var(--accent-blue);
}

.sgc-link-chip:hover {
	transform: translateY(-3px);
	border-color: rgba(30, 136, 229, 0.24);
	box-shadow: 0 18px 34px rgba(10, 75, 122, 0.1);
	color: var(--primary);
}

.sgc-link-chip__label {
	padding-right: 22px;
	font-weight: 700;
	line-height: 1.4;
}

.sgc-content-hub__footer {
	display: flex;
	justify-content: center;
	margin-top: 24px;
}

@media (max-width: 992px) {
	.sgc-link-cluster__grid,
	.sgc-link-chips {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 768px) {
	.sgc-content-hub {
		padding: 52px 0;
	}

	.sgc-link-cluster {
		padding: 22px 18px;
		border-radius: 22px;
	}

	.sgc-link-cluster__grid,
	.sgc-link-chips {
		grid-template-columns: 1fr;
	}

	.sgc-link-card {
		padding: 16px 16px 18px;
	}

	.sgc-link-chip {
		padding: 15px 16px;
	}
}

/* =========================================================
   Brand System Refresh
   - Final palette tokens and consistency overrides
========================================================= */
:root {
	--brand-navy: #0A4B7A;
	--brand-navy-dark: #042F4A;
	--brand-blue: #1E88E5;
	--brand-blue-dark: #1565C0;
	--brand-gold: #FFB400;
	--brand-gold-dark: #E6A800;
	--brand-gray-bg: #F0F8F4;
	--brand-gray-text: #6B7A8A;
	--brand-text-dark: #1A2A3A;
	--brand-white: #FFFFFF;
	--brand-success: #2E7D32;
	--brand-error: #D32F2F;

	--primary: var(--brand-navy);
	--primary-dark: var(--brand-navy-dark);
	--primary-light: #2C6C9E;
	--primary-soft: #E8F1F7;
	--accent-blue: var(--brand-blue);
	--accent-blue-dark: var(--brand-blue-dark);
	--background: var(--brand-gray-bg);
	--light-bg: #F7FBF8;
	--light-gray: #DDE6EA;
	--text-dark: var(--brand-text-dark);
	--text-medium: #425A70;
	--text-muted: var(--brand-gray-text);
	--white: var(--brand-white);
	--sgc-surface: var(--brand-white);
	--sgc-surface-soft: #F7FBF8;
	--sgc-border: rgba(10, 75, 122, 0.12);
	--sgc-shadow: 0 22px 55px rgba(10, 75, 122, 0.12);
	--sgc-shell-bg-pro: linear-gradient(140deg, rgba(255, 255, 255, 0.98), rgba(240, 248, 244, 0.96));
}

:where(a, button, [role="button"], input, textarea, select, .thumbnail-item):focus-visible {
	outline: 2px solid var(--accent-blue);
	outline-offset: 3px;
	box-shadow: 0 0 0 4px rgba(30, 136, 229, 0.16);
}

.btn-primary,
.btn.btn-primary {
	--btn-bg: linear-gradient(135deg, var(--accent-blue), #1777cf);
	--btn-color: var(--white);
	--btn-border: 1px solid rgba(21, 108, 192, 0.18);
	--btn-shadow: 0 14px 28px rgba(30, 136, 229, 0.24);
}

.btn-primary:hover,
.btn-primary:focus-visible {
	--btn-bg: linear-gradient(135deg, var(--accent-blue-dark), var(--primary-dark));
	--btn-shadow: 0 18px 34px rgba(21, 108, 192, 0.28);
}

.btn-secondary {
	--btn-bg: rgba(255, 255, 255, 0.95);
	--btn-color: var(--primary);
	--btn-border: 1px solid rgba(10, 75, 122, 0.16);
	--btn-shadow: 0 10px 18px rgba(10, 75, 122, 0.08);
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
	--btn-bg: var(--primary);
	--btn-color: var(--white);
	--btn-border: 1px solid var(--primary);
	--btn-shadow: 0 16px 30px rgba(10, 75, 122, 0.2);
}

.btn-outline {
	--btn-bg: transparent;
	--btn-color: var(--primary);
	--btn-border: 1px solid rgba(10, 75, 122, 0.22);
	--btn-shadow: none;
}

.btn-outline:hover,
.btn-outline:focus-visible {
	--btn-bg: var(--primary);
	--btn-color: var(--white);
	--btn-border: 1px solid var(--primary);
	--btn-shadow: 0 14px 28px rgba(10, 75, 122, 0.18);
}

.btn:hover,
.btn:focus-visible,
.header-cta .btn-header:hover,
.header-cta .btn-header:focus-visible,
.process-cta .btn:hover,
.process-cta .btn:focus-visible,
.why-choose-cta .btn:hover,
.why-choose-cta .btn:focus-visible,
.case-study-cta .btn:hover,
.case-study-cta .btn:focus-visible {
	transform: translateY(-2px);
	box-shadow: var(--btn-shadow, 0 16px 28px rgba(10, 75, 122, 0.2));
}

.process-cta .btn-primary,
.why-choose-cta .btn-primary,
.service-contact .btn-primary,
.service-contact form button[type="submit"] {
	background: var(--btn-bg);
	color: var(--btn-color);
	border: var(--btn-border);
	box-shadow: var(--btn-shadow);
}

.process-cta .btn-primary:hover,
.why-choose-cta .btn-primary:hover,
.service-contact .btn-primary:hover,
.service-contact form button[type="submit"]:hover {
	background: var(--btn-bg);
	color: var(--btn-color);
	box-shadow: var(--btn-shadow);
}

.trust-badges-row {
	background: linear-gradient(145deg, rgba(240, 248, 244, 0.98), rgba(255, 255, 255, 0.98));
	border-color: rgba(10, 75, 122, 0.12);
}

.trust-badges-row .trust-badge {
	background: rgba(255, 255, 255, 0.98);
	border-color: rgba(10, 75, 122, 0.08);
	color: var(--primary-dark);
}

.main-footer {
	background: linear-gradient(145deg, var(--primary-dark), #031f32);
}

.service-badge {
	color: var(--white);
}

.service-badge-premium,
.service-badge-saver {
	color: var(--brand-text-dark);
	border-color: rgba(255, 255, 255, 0.55);
}

.service-badge-premium {
	background: linear-gradient(135deg, #ffd166, var(--brand-gold));
	box-shadow: 0 14px 28px rgba(255, 180, 0, 0.2);
}

.service-badge-saver {
	background: linear-gradient(135deg, var(--brand-gold), var(--brand-gold-dark));
	box-shadow: 0 14px 28px rgba(255, 180, 0, 0.22);
}

.services-section .service-premium-card[data-service-slug="gutter-club-membership"] {
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(255, 248, 231, 0.96));
	border-color: rgba(255, 180, 0, 0.3);
	box-shadow: 0 22px 42px rgba(255, 180, 0, 0.14), 0 16px 34px rgba(10, 75, 122, 0.08);
}

.services-section .service-premium-card[data-service-slug="gutter-club-membership"] .service-link {
	--btn-bg: linear-gradient(135deg, var(--brand-gold), var(--brand-gold-dark));
	--btn-color: var(--brand-text-dark);
	--btn-border: 1px solid rgba(255, 180, 0, 0.36);
	--btn-shadow: 0 16px 30px rgba(255, 180, 0, 0.2);
}

.services-section .service-premium-card[data-service-slug="gutter-club-membership"] .service-link:hover,
.services-section .service-premium-card[data-service-slug="gutter-club-membership"] .service-link:focus-visible {
	--btn-bg: linear-gradient(135deg, #ffc233, var(--brand-gold-dark));
	--btn-color: var(--brand-text-dark);
	--btn-border: 1px solid rgba(230, 168, 0, 0.44);
	--btn-shadow: 0 20px 34px rgba(255, 180, 0, 0.24);
}

.services-section .service-premium-card[data-service-slug="gutter-club-membership"] .service-price {
	color: var(--primary-dark);
}

.service-testimonials blockquote {
	border-left-color: var(--brand-gold);
}

.sgc-form-notice--success {
	background: rgba(46, 125, 50, 0.12);
	border-color: rgba(46, 125, 50, 0.24);
	color: var(--brand-success);
}

.sgc-form-notice--warning {
	background: rgba(255, 180, 0, 0.16);
	border-color: rgba(255, 180, 0, 0.28);
	color: #7b5a00;
}

.sgc-form-notice--error {
	background: rgba(211, 47, 47, 0.12);
	border-color: rgba(211, 47, 47, 0.22);
	color: var(--brand-error);
}

/* =========================================================
   Spacing Rhythm System
   - Final section, container, card, and grid spacing
========================================================= */
:root {
	--sgc-section-pad-desktop: var(--space-3xl);
	--sgc-section-pad-tablet: var(--space-2xl);
	--sgc-section-pad-mobile: var(--space-xl);
	--sgc-grid-gap-desktop: var(--space-xl);
	--sgc-grid-gap-mobile: var(--space-lg);
	--sgc-card-pad-y-desktop: var(--space-lg);
	--sgc-card-pad-x-desktop: var(--space-xl);
	--sgc-card-pad-y-mobile: var(--space-md);
	--sgc-card-pad-x-mobile: var(--space-lg);
	--sgc-service-section-pad-desktop: var(--space-xl);
	--sgc-service-section-pad-mobile: var(--space-lg);
}

.section,
.sgc-content-hub {
	padding-block: var(--sgc-section-pad-desktop);
}

.hero-section {
	padding: 120px 0 80px;
}

main :is(h1, h2, h3, h4, h5, h6) {
	margin-top: 0;
	margin-bottom: var(--space-md);
}

main h2 {
	margin-bottom: var(--space-lg);
}

.services-premium-grid,
.features-grid,
.testimonials-premium-grid,
.process-timeline,
.posts-grid,
.faq-grid {
	gap: var(--sgc-grid-gap-desktop);
}

.service-premium-card,
.process-card,
.feature-card,
.testimonial-premium-card {
	padding: var(--sgc-card-pad-y-desktop) var(--sgc-card-pad-x-desktop);
}

.services-section .service-card-wide {
	padding: var(--sgc-card-pad-y-desktop) var(--sgc-card-pad-x-desktop);
}

.service-page .service-single section,
.service-single section {
	padding: var(--sgc-service-section-pad-desktop);
	margin: 0 0 var(--space-xl);
}

.service-page .service-single section:last-of-type,
.service-single section:last-of-type {
	margin-bottom: 0;
}

.footer-grid {
	gap: var(--space-2xl);
}

.why-choose-cta:is(.archive-services, .blog-cta, .post-cta) {
	margin-top: var(--space-2xl);
}

@media (max-width: 991px) {
	.section,
	.sgc-content-hub {
		padding-block: var(--sgc-section-pad-tablet);
	}

	.services-premium-grid,
	.features-grid,
	.testimonials-premium-grid,
	.process-timeline,
	.posts-grid,
	.faq-grid {
		gap: var(--sgc-grid-gap-mobile);
	}
}

@media (max-width: 767px) {
	.section,
	.sgc-content-hub {
		padding-block: var(--sgc-section-pad-mobile);
	}

	.hero-section {
		padding: 80px 0 60px;
	}

	.service-premium-card,
	.process-card,
	.feature-card,
	.testimonial-premium-card,
	.services-section .service-card-wide {
		padding: var(--sgc-card-pad-y-mobile) var(--sgc-card-pad-x-mobile);
	}

	.service-page .service-single section,
	.service-single section {
		padding: var(--sgc-service-section-pad-mobile);
		margin: 0 0 var(--space-lg);
	}

	.footer-grid {
		gap: var(--space-xl);
	}

	.why-choose-cta:is(.archive-services, .blog-cta, .post-cta) {
		margin-top: var(--space-xl);
	}
}

