/*
Theme Name: Dobbs Exterior Cleaning
Theme URI: https://dobbsexteriorcleaning.com
Author: SimonTodd
Author URI: https://simontodd.com
Description: A professional, mobile-first WordPress theme for Dobbs Exterior Cleaning — brand colours from logo (#201f43 navy, #36a9e1 blue) with elegant typography, smooth animations, and responsive gallery.
Version: 2.5.0
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dobbs-exterior
Tags: one-column, custom-colors, custom-logo, custom-menu, featured-images, theme-options, translation-ready, accessibility-ready
*/

/* ========== 1. DESIGN TOKENS — Dobbs Brand Colours ========== */
:root {
    /* Brand colours from logo */
    --color-navy: #201f43;
    --color-navy-light: #2d2c5a;
    --color-navy-mid: #262554;
    --color-blue: #36a9e1;
    --color-blue-dark: #2e7abf;
    --color-blue-light: #56bbe6;
    --color-blue-pale: #8ed4f0;
    --color-blue-glow: rgba(54,169,225,0.15);
    --color-blue-deep: #2e54a2;
    --color-dark: #201f43;
    --color-white: #ffffff;
    --color-gray-50: #f8fafc;
    --color-gray-100: #f1f5f9;
    --color-gray-200: #e2e8f0;
    --color-text: #475569;
    --color-text-light: #64748b;
    --color-text-muted: #94a3b8;
    --color-border: #e2e8f0;
    --color-border-light: #f1f5f9;
    --color-overlay: rgba(32,31,67,0.55);
    --font-heading: 'DM Sans','Helvetica Neue',Arial,sans-serif;
    --font-body: 'Inter','Helvetica Neue',Arial,sans-serif;
    --font-accent: 'DM Sans','Helvetica Neue',sans-serif;
    --text-xs: 0.75rem; --text-sm: 0.875rem; --text-base: 1rem; --text-lg: 1.125rem; --text-xl: 1.25rem;
    --text-2xl: clamp(1.25rem,1rem + 1vw,1.5rem);
    --text-3xl: clamp(1.5rem,1.2rem + 1.5vw,2rem);
    --text-4xl: clamp(1.75rem,1.2rem + 2.5vw,2.75rem);
    --text-5xl: clamp(2rem,1.2rem + 3.5vw,3.5rem);
    --text-6xl: clamp(2.5rem,1.2rem + 5vw,4.5rem);
    --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem;
    --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem;
    --space-12: 3rem; --space-16: 4rem; --space-20: 5rem; --space-24: 6rem; --space-32: 8rem;
    --radius-sm: 6px; --radius-md: 12px; --radius-lg: 20px; --radius-xl: 28px; --radius-full: 9999px;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.04),0 4px 12px rgba(0,0,0,0.06);
    --shadow-md: 0 2px 8px rgba(0,0,0,0.05),0 8px 32px rgba(0,0,0,0.08);
    --shadow-lg: 0 4px 16px rgba(0,0,0,0.06),0 16px 48px rgba(0,0,0,0.1);
    --shadow-xl: 0 8px 30px rgba(0,0,0,0.07),0 24px 60px rgba(0,0,0,0.12);
    --shadow-blue: 0 4px 15px rgba(54,169,225,0.25);
    --transition-fast: 200ms cubic-bezier(0.4,0,0.2,1);
    --transition-base: 400ms cubic-bezier(0.4,0,0.2,1);
    --transition-slow: 600ms cubic-bezier(0.4,0,0.2,1);
}

/* ========== 2. RESET & BASE ========== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.7;color:var(--color-text);background:var(--color-white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--color-blue);text-decoration:none;transition:color var(--transition-fast)}
a:hover{color:var(--color-blue-dark)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;color:var(--color-dark);line-height:1.2;letter-spacing:-0.01em}
h1{font-size:var(--text-5xl)} h2{font-size:var(--text-4xl);margin-bottom:var(--space-6)} h3{font-size:var(--text-2xl);margin-bottom:var(--space-4)} h4{font-size:var(--text-xl);margin-bottom:var(--space-3)}
p{margin-bottom:var(--space-4)} p:last-child{margin-bottom:0}
svg{width:1em;height:1em;vertical-align:middle;flex-shrink:0}
ul,ol{margin:0;padding:0}
blockquote{font-family:var(--font-body);font-style:normal;border:none;padding:0;margin:0}

/* ========== 3. LAYOUT ========== */
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-5)}
.container-narrow{max-width:900px} .container-wide{max-width:1400px}
.section{padding:var(--space-16) 0}
@media(min-width:768px){.container{padding:0 var(--space-6)}.section{padding:var(--space-24) 0}}

/* ========== 4. ACCESSIBILITY ========== */
.skip-link{position:absolute;left:-9999px;top:0;z-index:10000;padding:var(--space-3) var(--space-6);background:var(--color-blue);color:var(--color-white);font-weight:600;border-radius:0 0 var(--radius-md) 0}
.skip-link:focus{left:0;outline:3px solid var(--color-blue-light);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--color-blue);outline-offset:2px}

/* ========== 5. BUTTONS ========== */
.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:13px 30px;font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;line-height:1.4;letter-spacing:0.06em;text-transform:uppercase;border:2px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap;position:relative;overflow:hidden}
.btn svg{width:1em;height:1em;transition:transform var(--transition-fast)}
.btn:hover svg{transform:translateX(3px)}
.btn-primary{background:var(--color-blue);color:var(--color-white);border-color:var(--color-blue);box-shadow:var(--shadow-blue)}
.btn-primary:hover{background:var(--color-blue-dark);border-color:var(--color-blue-dark);color:var(--color-white);box-shadow:0 6px 25px rgba(37,99,235,0.4);transform:translateY(-2px)}
.btn-secondary{background:var(--color-navy);color:var(--color-white);border-color:var(--color-navy)}
.btn-secondary:hover{background:var(--color-blue);border-color:var(--color-blue);color:var(--color-white);transform:translateY(-2px)}
.btn-outline{background:transparent;color:var(--color-navy);border-color:var(--color-navy)}
.btn-outline:hover{background:var(--color-navy);color:var(--color-white)}
.btn-outline-white{background:transparent;color:var(--color-white);border-color:rgba(255,255,255,0.3)}
.btn-outline-white:hover{background:var(--color-white);color:var(--color-navy);border-color:var(--color-white)}
.btn-lg{padding:16px 38px;font-size:var(--text-sm)} .btn-full{width:100%;justify-content:center}
@media(min-width:768px){.btn{padding:14px 32px}.btn-lg{padding:18px 44px;font-size:var(--text-base)}}

/* ========== 6. HEADER ========== */
.header-top-bar{display:none}
.site-header{position:absolute;top:0;left:0;right:0;z-index:1000;padding:var(--space-4) 0;background:transparent;transition:all var(--transition-base)}
.site-header.scrolled{position:fixed;background:rgba(32,31,67,0.95);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 1px 30px rgba(0,0,0,0.2);padding:var(--space-2) 0}
body:not(.home-page) .site-header{position:sticky;top:0;background:var(--color-navy);padding:var(--space-3) 0}
/* Admin bar offset */
.admin-bar .site-header{top:32px}
.admin-bar .site-header.scrolled{top:32px}
@media screen and (max-width:782px){.admin-bar .site-header{top:46px}.admin-bar .site-header.scrolled{top:46px}}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;gap:var(--space-4)}
.site-branding{flex-shrink:0}
.site-logo img,.site-logo .logo-img{height:36px;width:auto;transition:height var(--transition-fast)}
.scrolled .site-logo img,.scrolled .site-logo .logo-img{height:32px}
.site-title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:700;color:var(--color-white);text-decoration:none;letter-spacing:0.02em}
.site-title:hover{color:var(--color-blue-light)}
@media(min-width:768px){.site-logo img,.site-logo .logo-img{height:44px}.site-title{font-size:var(--text-2xl)}}
.main-navigation{display:none}
@media(min-width:1080px){.main-navigation{display:flex;align-items:center}}
.main-navigation ul{list-style:none;display:flex;align-items:center;gap:0;margin:0;padding:0}
.main-navigation a{display:block;padding:var(--space-2) 10px;color:rgba(255,255,255,0.75);font-size:0.78rem;font-weight:600;text-transform:uppercase;letter-spacing:0.03em;transition:color var(--transition-fast);position:relative;white-space:nowrap}
.main-navigation a::after{content:'';position:absolute;bottom:6px;left:50%;width:0;height:2px;background:var(--color-blue-light);border-radius:var(--radius-full);transition:all var(--transition-base);transform:translateX(-50%)}
.main-navigation a:hover::after,.main-navigation .current-menu-item>a::after{width:60%}
.main-navigation a:hover,.main-navigation .current-menu-item>a{color:var(--color-white)}
.main-navigation li{position:relative}
.main-navigation .sub-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);min-width:220px;background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-2);overflow:hidden;opacity:0;visibility:hidden;transition:all var(--transition-base);z-index:100}
.main-navigation li:hover>.sub-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.main-navigation .sub-menu a{color:var(--color-text);text-transform:none;letter-spacing:0;padding:var(--space-2) var(--space-4);font-weight:500;border-radius:var(--radius-sm)}
.main-navigation .sub-menu a::after{display:none}
.main-navigation .sub-menu a:hover{color:var(--color-blue);background:var(--color-gray-50)}
.header-cta{display:none;align-items:center;gap:var(--space-2)}
@media(min-width:1080px){.header-cta{display:flex}}
.header-phone{display:flex;align-items:center;gap:var(--space-2);color:var(--color-white);font-weight:600;font-size:var(--text-xs)}
.header-phone:hover{color:var(--color-blue-light)}
.header-phone svg{width:15px;height:15px}
.header-cta .btn-primary{padding:8px 18px;font-size:0.7rem;letter-spacing:0.05em}
.mobile-menu-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:rgba(255,255,255,0.08);border:none;border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;transition:all var(--transition-fast)}
.mobile-menu-toggle:hover{background:rgba(255,255,255,0.15)}
.mobile-menu-toggle svg{width:22px;height:22px}
.close-icon{display:none}
@media(min-width:1080px){.mobile-menu-toggle{display:none}}
.mobile-nav-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:9998;backdrop-filter:blur(4px)}
.mobile-nav-overlay.is-open{display:block;animation:fadeIn 0.3s ease}
.mobile-navigation{position:fixed;top:0;right:-100%;width:min(360px,88vw);height:100vh;height:100dvh;background:var(--color-navy);z-index:9999;overflow-y:auto;transition:right var(--transition-slow);padding:var(--space-6)}
.mobile-navigation.is-open{right:0}
.mobile-nav-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);padding-bottom:var(--space-5);border-bottom:1px solid rgba(255,255,255,0.08)}
.mobile-nav-close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.08);border:none;border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;transition:background var(--transition-fast)}
.mobile-nav-close:hover{background:rgba(255,255,255,0.15)}
.mobile-nav-close svg{width:20px;height:20px}
.mobile-navigation ul{list-style:none;margin:0;padding:0}
.mobile-navigation>ul>li{border-bottom:1px solid rgba(255,255,255,0.05)}
.mobile-navigation a{display:block;padding:var(--space-4) var(--space-2);color:rgba(255,255,255,0.72);font-size:var(--text-lg);font-weight:500;letter-spacing:0.02em}
.mobile-navigation a:hover{color:var(--color-blue-light)}
.mobile-navigation .sub-menu{padding-left:var(--space-5)}
.mobile-navigation .sub-menu a{font-size:var(--text-base);color:rgba(255,255,255,0.42);padding:var(--space-2)}
.mobile-nav-cta{margin-top:var(--space-8);display:flex;flex-direction:column;gap:var(--space-3)}
.hidden-mobile{display:none}
@media(min-width:1080px){.hidden-mobile{display:block}}

/* Mega Menu - Clean & Simple */
.menu-item-has-megamenu{position:relative !important}
.mega-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);background:#ffffff;border-radius:12px;box-shadow:0 25px 50px -12px rgba(0,0,0,0.15),0 0 0 1px rgba(0,0,0,0.05);padding:0;overflow:hidden;opacity:0;visibility:hidden;transition:all 0.2s ease;z-index:9999;min-width:200px}
.menu-item-has-megamenu:hover>.mega-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.mega-menu-inner{display:flex;flex-direction:column}
.mega-menu-section{padding:16px 20px}
.mega-menu-section+.mega-menu-section{border-top:1px solid #f1f5f9}
.mega-menu-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin-bottom:10px;display:block}
.mega-menu-links{display:flex;flex-direction:column;gap:2px}
.main-navigation .mega-menu .mega-menu-item{display:block;padding:8px 12px;margin:0 -8px;color:#334155 !important;font-size:13px;font-weight:500;border-radius:6px;transition:all 0.15s ease;white-space:nowrap;text-transform:none;letter-spacing:0;background:transparent}
.main-navigation .mega-menu .mega-menu-item::after{display:none !important;width:0 !important}
.main-navigation .mega-menu .mega-menu-item:hover{background:#f8fafc;color:#201f43 !important}

/* Empty state fallback */
.mega-menu-column:empty{display:none}
.mega-menu-inner:has(.mega-menu-column:empty):has(.mega-menu-column-additional) .mega-menu-column-additional{padding-left:0;border-left:none}

/* Mobile Menu Enhancements */
.mobile-nav-menu{list-style:none;margin:0;padding:0}
.mobile-nav-menu>li{border-bottom:1px solid rgba(255,255,255,0.05)}
.mobile-nav-menu>li>a{display:block;padding:var(--space-4) var(--space-2);color:rgba(255,255,255,0.72);font-size:var(--text-lg);font-weight:500;letter-spacing:0.02em}
.mobile-nav-menu>li>a:hover{color:var(--color-blue-light)}
.mobile-menu-parent{display:flex;align-items:center;justify-content:space-between}
.mobile-menu-parent svg{width:20px;height:20px;transition:transform 0.3s ease}
.mobile-menu-has-children.is-open .mobile-menu-parent svg{transform:rotate(180deg)}
.mobile-submenu{display:none;padding-left:var(--space-4);padding-bottom:var(--space-4)}
.mobile-menu-has-children.is-open .mobile-submenu{display:block}
.mobile-submenu li a{display:block;padding:var(--space-2) var(--space-3);color:rgba(255,255,255,0.5);font-size:var(--text-base);border-radius:var(--radius-sm)}
.mobile-submenu li a:hover{color:var(--color-blue-light);background:rgba(255,255,255,0.05)}
.mobile-submenu-header{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-blue-light);padding:var(--space-4) var(--space-3) var(--space-2);margin-top:var(--space-2)}
.mobile-submenu-header:first-child{margin-top:0}

/* ========== 7. HERO ========== */
.hero{position:relative;background:var(--color-navy);min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-height-large{min-height:85vh;min-height:85dvh}
.hero-height-medium{min-height:70vh;min-height:70dvh}
.admin-bar .hero{min-height:calc(100vh - 32px);min-height:calc(100dvh - 32px)}
.admin-bar .hero-height-large{min-height:calc(85vh - 32px);min-height:calc(85dvh - 32px)}
.admin-bar .hero-height-medium{min-height:calc(70vh - 32px);min-height:calc(70dvh - 32px)}
@media screen and (max-width:782px){.admin-bar .hero{min-height:calc(100vh - 46px);min-height:calc(100dvh - 46px)}}

/* Hero Background */
.hero-backgrounds{position:absolute;inset:0}
.hero-background{position:absolute;inset:0;opacity:0;transition:opacity 1.5s ease-in-out}
.hero-background.is-active{opacity:1}
.hero-background img{width:100%;height:100%;object-fit:cover;filter:brightness(0.9)}

/* Ken Burns effect for slideshow */
.hero-slideshow .hero-background img{animation:kenBurns 9s ease-in-out infinite alternate}
@keyframes kenBurns{
    0%{transform:scale(1) translate(0,0)}
    100%{transform:scale(1.08) translate(-1%,-1%)}
}

/* Hero Overlays - Multiple layers for depth */
.hero-overlay{position:absolute;inset:0;transition:background 0.3s ease}
.hero-overlay-gradient .hero-overlay{background:linear-gradient(180deg,rgba(32,31,67,calc(var(--hero-overlay-opacity) * 0.8)) 0%,rgba(32,31,67,calc(var(--hero-overlay-opacity) * 0.4)) 35%,rgba(32,31,67,calc(var(--hero-overlay-opacity) * 0.6)) 65%,rgba(32,31,67,calc(var(--hero-overlay-opacity) * 1)) 100%)}
.hero-overlay-dark .hero-overlay{background:rgba(15,15,30,var(--hero-overlay-opacity))}
.hero-overlay-blue .hero-overlay{background:linear-gradient(135deg,rgba(32,31,67,var(--hero-overlay-opacity)) 0%,rgba(54,169,225,calc(var(--hero-overlay-opacity) * 0.5)) 100%)}
.hero-overlay-minimal .hero-overlay{background:rgba(32,31,67,calc(var(--hero-overlay-opacity) * 0.5))}

/* Vignette effect for edge darkening */
.hero-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 0%,transparent 50%,rgba(15,15,30,0.4) 100%);pointer-events:none}

/* Hero decoration */
.hero-decoration{display:none}
.hero .container{display:flex;align-items:center;justify-content:center;width:100%;position:relative;z-index:2}

/* Hero Content */
.hero-content{position:relative;z-index:1;max-width:900px;padding:var(--space-20) var(--space-5) var(--space-16);margin:0 auto}
@media(min-width:768px){.hero-content{padding:var(--space-24) var(--space-6) var(--space-20)}}

/* Frosted glass content box option */
.hero-content-box .hero-content-inner{background:rgba(32,31,67,0.6);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.1);border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);margin-bottom:var(--space-8);box-shadow:0 25px 50px -12px rgba(0,0,0,0.4)}
@media(min-width:768px){.hero-content-box .hero-content-inner{padding:var(--space-12) var(--space-16)}}

/* Text shadow for readability */
.hero-text-shadow .hero-title{text-shadow:0 2px 4px rgba(0,0,0,0.3),0 4px 12px rgba(0,0,0,0.2)}
.hero-text-shadow .hero-description{text-shadow:0 1px 3px rgba(0,0,0,0.3)}
.hero-text-shadow .hero-badge{text-shadow:0 1px 2px rgba(0,0,0,0.2)}

/* Hero Badge */
.hero-badge{display:inline-flex;align-items:center;gap:var(--space-3);font-family:var(--font-body);font-weight:600;color:var(--color-blue-light);font-size:var(--text-sm);margin-bottom:var(--space-6);letter-spacing:0.08em;text-transform:uppercase;opacity:0;animation:heroFadeUp 0.8s 0.3s ease forwards}
.hero-badge::before,.hero-badge::after{content:'';width:40px;height:1px;background:linear-gradient(90deg,transparent,var(--color-blue-light))}
.hero-badge::after{background:linear-gradient(90deg,var(--color-blue-light),transparent)}
.hero-badge svg{display:none}

/* Hero Title */
.hero-title{font-size:clamp(2.2rem,5.5vw,4.2rem);color:var(--color-white);margin-bottom:var(--space-6);line-height:1.1;letter-spacing:-0.02em;font-weight:700;opacity:0;animation:heroFadeUp 0.8s 0.5s ease forwards}

/* Hero Description */
.hero-description{font-size:var(--text-lg);color:rgba(255,255,255,0.85);margin-bottom:var(--space-10);line-height:1.8;max-width:600px;margin-left:auto;margin-right:auto;opacity:0;animation:heroFadeUp 0.8s 0.7s ease forwards}
@media(min-width:768px){.hero-description{font-size:var(--text-xl)}}

/* Hero CTA Buttons */
.hero-cta{display:flex;flex-direction:column;gap:var(--space-4);align-items:center;margin-bottom:var(--space-10);opacity:0;animation:heroFadeUp 0.8s 0.9s ease forwards}
@media(min-width:480px){.hero-cta{flex-direction:row;justify-content:center;gap:var(--space-4)}}

/* Hero Trust Badges */
.hero-trust{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;opacity:0;animation:heroFadeUp 0.8s 1.1s ease forwards}
@media(min-width:768px){.hero-trust{gap:var(--space-4)}}
.hero-trust-item{display:flex;align-items:center;gap:var(--space-2);color:rgba(255,255,255,0.9);font-size:var(--text-sm);font-weight:500;background:rgba(255,255,255,0.1);backdrop-filter:blur(8px);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:1px solid rgba(255,255,255,0.15);transition:all 0.3s ease}
.hero-trust-item:hover{background:rgba(255,255,255,0.18);transform:translateY(-2px)}
.hero-trust-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--color-blue-light)}
.hero-trust-icon svg{width:16px;height:16px}

/* Scroll Indicator */
.hero-scroll-indicator{position:absolute;bottom:var(--space-8);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);z-index:2}
.hero-scroll-indicator .scroll-mouse{width:24px;height:40px;border:2px solid rgba(255,255,255,0.3);border-radius:12px;position:relative}
.hero-scroll-indicator .scroll-dot{width:4px;height:8px;background:rgba(255,255,255,0.6);border-radius:2px;position:absolute;top:6px;left:50%;transform:translateX(-50%);animation:heroScrollDot 2s ease-in-out infinite}

/* ========== 8. SECTION HEADERS ========== */
.section-header{text-align:center;max-width:600px;margin:0 auto var(--space-12)}
.section-header-center{text-align:center}
@media(min-width:768px){.section-header{margin-bottom:var(--space-16)}}
.section-badge{display:inline-flex;align-items:center;gap:var(--space-3);font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);color:var(--color-blue);margin-bottom:var(--space-3);letter-spacing:0.04em;text-transform:uppercase}
.section-badge::before{content:'';width:24px;height:2px;background:var(--color-blue);border-radius:var(--radius-full)}
.section-title{margin-bottom:var(--space-4);letter-spacing:-0.01em}
.section-description{font-size:var(--text-base);color:var(--color-text-light);line-height:1.8}
@media(min-width:768px){.section-description{font-size:var(--text-lg)}}
.section-sep{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin:var(--space-4) auto;width:80px}
.section-sep::before,.section-sep::after{content:'';flex:1;height:1px}
.section-sep::before{background:linear-gradient(90deg,transparent,var(--color-blue))}
.section-sep::after{background:linear-gradient(90deg,var(--color-blue),transparent)}

/* ========== 9. SERVICES ========== */
.services-section{background:var(--color-white)}
.services-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media(min-width:480px){.services-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.services-grid{grid-template-columns:repeat(4,1fr);gap:var(--space-6)}}
.service-card{position:relative;overflow:hidden;background:var(--color-navy);min-height:280px;display:flex;align-items:flex-end;border-radius:var(--radius-lg);cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base)}
@media(min-width:768px){.service-card{min-height:340px}}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl)}
.service-card-image{position:absolute;inset:0}
.service-card-image img{width:100%;height:100%;object-fit:cover;transition:transform 0.8s cubic-bezier(0.4,0,0.2,1)}
.service-card:hover .service-card-image img{transform:scale(1.08)}
.service-card-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,27,45,0.88) 0%,rgba(15,27,45,0.15) 60%,transparent 100%);transition:background var(--transition-base)}
.service-card:hover .service-card-overlay{background:linear-gradient(0deg,rgba(15,27,45,0.92) 0%,rgba(15,27,45,0.3) 70%,rgba(15,27,45,0.1) 100%)}
.service-card-content{position:relative;z-index:1;padding:var(--space-5);width:100%}
@media(min-width:768px){.service-card-content{padding:var(--space-6)}}
.service-card-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,0.12);border-radius:var(--radius-md);color:var(--color-blue-light);margin-bottom:var(--space-3);background:rgba(255,255,255,0.05);backdrop-filter:blur(8px);transition:all var(--transition-base)}
.service-card:hover .service-card-icon{background:var(--color-blue);color:var(--color-white);border-color:var(--color-blue)}
.service-card-icon svg{width:20px;height:20px}
.service-card-title{font-family:var(--font-heading);font-size:var(--text-lg);color:var(--color-white);margin-bottom:var(--space-2)}
@media(min-width:768px){.service-card-title{font-size:var(--text-xl)}}
.service-card-description{color:rgba(255,255,255,0.48);font-size:var(--text-sm);margin-bottom:var(--space-3);max-height:0;overflow:hidden;opacity:0;transition:max-height var(--transition-base),opacity var(--transition-base),margin var(--transition-base)}
.service-card:hover .service-card-description{max-height:100px;opacity:1;margin-bottom:var(--space-4)}
.service-card-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-blue-light);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:0.1em;transition:gap var(--transition-fast),color var(--transition-fast)}
.service-card-link:hover{gap:var(--space-3);color:var(--color-blue-pale)}
.service-card-link svg{width:14px;height:14px}
.service-card--no-image{background:var(--color-white);border:1px solid var(--color-border);min-height:auto;align-items:stretch}
.service-card--no-image .service-card-content{padding:var(--space-6) var(--space-5);text-align:center}
@media(min-width:768px){.service-card--no-image .service-card-content{padding:var(--space-8)}}
.service-card--no-image .service-card-icon{margin:0 auto var(--space-4);background:var(--color-gray-50);border-color:var(--color-border);color:var(--color-blue)}
.service-card--no-image:hover .service-card-icon{background:var(--color-blue);color:var(--color-white);border-color:var(--color-blue)}
.service-card--no-image .service-card-title{color:var(--color-dark)}
.service-card--no-image .service-card-description{color:var(--color-text-light);max-height:none;opacity:1;margin-bottom:var(--space-3)}
.service-card--no-image .service-card-link{color:var(--color-blue)}
.service-card--no-image .service-card-overlay{display:none}

/* ========== 10. ABOUT ========== */
.about-section{background:var(--color-gray-50)}
.about-grid{display:grid;gap:var(--space-10);align-items:center}
@media(min-width:768px){.about-grid{grid-template-columns:1fr 1fr;gap:var(--space-16)}}
.about-image{position:relative}
.about-image-main{overflow:hidden;border-radius:var(--radius-lg)}
.about-image-main img{width:100%;height:auto;display:block;transition:transform 0.8s ease}
.about-image:hover .about-image-main img{transform:scale(1.03)}
.about-image-badge{position:absolute;bottom:-16px;right:var(--space-4);background:var(--color-blue);color:var(--color-white);padding:var(--space-4) var(--space-5);text-align:center;border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}
@media(min-width:768px){.about-image-badge{bottom:-24px;right:24px;padding:var(--space-5) var(--space-6)}}
.about-image-badge-number{display:block;font-family:var(--font-heading);font-size:var(--text-4xl);font-weight:700;line-height:1}
.about-image-badge-text{display:block;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:0.12em;margin-top:var(--space-1);opacity:0.9}
.about-content .section-badge{text-align:left;display:inline-flex}
.about-content h2{margin-bottom:var(--space-5)}
.about-content>p{color:var(--color-text-light);margin-bottom:var(--space-4);line-height:1.8}
.about-features-list{display:flex;flex-direction:column;gap:var(--space-5);margin:var(--space-6) 0}
@media(min-width:768px){.about-features-list{margin:var(--space-8) 0;gap:var(--space-6)}}
.about-feature-item{display:flex;gap:var(--space-4);align-items:flex-start}
.about-feature-icon{width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:var(--color-gray-50);border-radius:var(--radius-md);color:var(--color-blue);flex-shrink:0;border:1px solid var(--color-border);transition:all var(--transition-base)}
.about-feature-item:hover .about-feature-icon{background:var(--color-blue);color:var(--color-white);border-color:var(--color-blue)}
.about-feature-icon svg{width:20px;height:20px}
.about-feature-content h4{font-size:var(--text-sm);font-family:var(--font-body);font-weight:700;margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:0.04em}
.about-feature-content p{color:var(--color-text-light);font-size:var(--text-sm);margin-bottom:0;line-height:1.7}

/* Stats */
.stats-section{background:var(--color-navy-light)}
.stats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6);padding:var(--space-12) 0;text-align:center}
@media(min-width:768px){.stats-row{grid-template-columns:repeat(4,1fr);gap:var(--space-8);padding:var(--space-16) 0}}
.stat-item{position:relative}
.stat-item .stat-number{font-family:var(--font-heading);font-size:var(--text-5xl);font-weight:700;color:var(--color-blue-light);line-height:1;display:block}
.stat-item .stat-label{font-size:var(--text-xs);color:rgba(255,255,255,0.48);text-transform:uppercase;letter-spacing:0.08em;font-weight:600;margin-top:var(--space-2);display:block}
@media(min-width:768px){.stat-item .stat-label{font-size:var(--text-sm)}.stat-item+.stat-item::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:40px;background:rgba(255,255,255,0.08)}}

/* ========== 11. TESTIMONIALS ========== */
.testimonials-section{background:var(--color-white);position:relative;overflow:hidden}
.testimonials-section::before{content:'';position:absolute;top:-50%;right:-20%;width:60%;height:200%;background:radial-gradient(ellipse,rgba(37,99,235,0.04),transparent 70%);pointer-events:none}
.testimonials-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media(min-width:768px){.testimonials-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-6)}}
.testimonial-card{background:var(--color-white);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-base);position:relative}
@media(min-width:768px){.testimonial-card{padding:var(--space-8)}}
.testimonial-card:hover{border-color:var(--color-blue-light);box-shadow:var(--shadow-md);transform:translateY(-4px)}
.testimonial-stars{display:flex;gap:3px;margin-bottom:var(--space-4);color:#f59e0b}
.testimonial-stars svg{width:15px;height:15px}
.testimonial-content{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text-light);line-height:1.8;margin-bottom:var(--space-6);border:none;padding:0}
@media(min-width:768px){.testimonial-content{font-size:var(--text-lg)}}
.testimonial-author{display:flex;align-items:center;gap:var(--space-3)}
.testimonial-avatar{width:44px;height:44px;background:var(--color-navy);color:var(--color-blue-light);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-weight:700;font-size:var(--text-lg);flex-shrink:0}
.testimonial-info h5{font-size:var(--text-sm);margin-bottom:0;color:var(--color-dark);font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:0.06em}
.testimonial-info span{font-size:var(--text-xs);color:var(--color-text-muted)}

/* ========== 12. SERVICE AREAS ========== */
.areas-section{background:var(--color-white)}
.areas-grid{display:grid;gap:var(--space-8);align-items:start}
@media(min-width:768px){.areas-grid{grid-template-columns:1fr 1fr;gap:var(--space-12)}}
.areas-grid .section-badge{text-align:left;display:inline-flex}
.areas-grid h2{margin-bottom:var(--space-4)}
.areas-grid>div>p{color:var(--color-text-light);margin-bottom:var(--space-6);line-height:1.8}
.areas-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
.areas-list li{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text);font-size:var(--text-sm);font-weight:500}
.areas-list svg{width:16px;height:16px;color:var(--color-blue);flex-shrink:0}
.areas-map{overflow:hidden;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}
.areas-map iframe{display:block;border:none}

/* ========== 13. CTA BANNER ========== */
.cta-banner{position:relative;padding:var(--space-16) 0;text-align:center;overflow:hidden;background:var(--color-navy-light)}
@media(min-width:768px){.cta-banner{padding:var(--space-24) 0}}
.cta-banner::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(37,99,235,0.1) 0%,transparent 70%)}
.cta-banner-bg{position:absolute;inset:0}
.cta-banner-bg img{width:100%;height:100%;object-fit:cover;opacity:0.15}
.cta-banner-content{position:relative;z-index:2;max-width:600px;margin:0 auto}
.cta-banner-content h2{color:var(--color-white);margin-bottom:var(--space-4)}
.cta-banner-text{color:rgba(255,255,255,0.52);font-size:var(--text-base);margin-bottom:var(--space-8);line-height:1.8}
.cta-banner-text p{color:rgba(255,255,255,0.52)}
@media(min-width:768px){.cta-banner-text{font-size:var(--text-lg)}}
.cta-banner-actions{display:flex;flex-direction:column;gap:var(--space-3);align-items:center}
@media(min-width:480px){.cta-banner-actions{flex-direction:row;justify-content:center;gap:var(--space-4)}}

/* ========== 14. PAGE HEADER ========== */
.page-header{background:var(--color-navy-light);padding:calc(var(--space-32) + var(--space-4)) 0 var(--space-12);text-align:center;position:relative;overflow:hidden}
@media(min-width:768px){.page-header{padding:var(--space-32) 0 var(--space-16)}}
.page-header::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(37,99,235,0.08) 0%,transparent 60%)}
.page-header-title{color:var(--color-white);font-size:var(--text-5xl);margin-bottom:var(--space-4);position:relative}
.page-header-description{color:rgba(255,255,255,0.48);font-size:var(--text-base);max-width:600px;margin:0 auto;position:relative}
@media(min-width:768px){.page-header-description{font-size:var(--text-lg)}}
.breadcrumbs{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);font-size:var(--text-sm);flex-wrap:wrap;justify-content:center;position:relative}
.breadcrumbs a{color:rgba(255,255,255,0.38)}
.breadcrumbs a:hover{color:var(--color-blue-light)}
.breadcrumbs .separator{color:rgba(255,255,255,0.18)}
.breadcrumbs .current{color:rgba(255,255,255,0.65)}

/* ========== 15. FOOTER ========== */
.site-footer{background:var(--color-navy-light);color:rgba(255,255,255,0.55)}
.footer-main{padding:var(--space-16) 0}
@media(min-width:768px){.footer-main{padding:var(--space-20) 0}}
.footer-grid{display:grid;gap:var(--space-10);grid-template-columns:1fr}
@media(min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1.5fr}}
.footer-heading{color:var(--color-white);font-weight:700;margin-bottom:var(--space-5);text-transform:uppercase;letter-spacing:0.08em;font-size:var(--text-sm);font-family:var(--font-body)}
.footer-heading-additional{margin-top:var(--space-6);font-size:var(--text-xs);color:rgba(255,255,255,0.6)}
.footer-brand .site-title{margin-bottom:var(--space-4);display:block}
.footer-brand .footer-logo{display:block;margin-bottom:var(--space-4)}
.footer-brand .footer-logo img,.footer-brand .footer-logo .logo-img{height:40px;width:auto}
.footer-brand p{color:rgba(255,255,255,0.32);font-size:var(--text-sm);line-height:1.8}
.footer-links-column ul,.footer-services-column ul{list-style:none;padding:0;margin:0}
.footer-links-column a,.footer-services-column a{display:block;padding:var(--space-2) 0;color:rgba(255,255,255,0.38);font-size:var(--text-sm);transition:all var(--transition-fast)}
.footer-links-column a:hover,.footer-services-column a:hover{color:var(--color-blue-light);transform:translateX(4px)}
.footer-contact-column .footer-contact-item{display:flex;gap:var(--space-3);margin-bottom:var(--space-4);font-size:var(--text-sm)}
.footer-contact-item a{color:rgba(255,255,255,0.38)}
.footer-contact-item a:hover{color:var(--color-blue-light)}
.footer-contact-item svg{width:16px;height:16px;color:var(--color-blue-light);flex-shrink:0;margin-top:3px}
.footer-contact-item p,.footer-contact-item span{margin-bottom:0;color:rgba(255,255,255,0.38)}
.footer-social{display:flex;gap:var(--space-3);margin-top:var(--space-6)}
.footer-social a{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius-md);color:rgba(255,255,255,0.32);transition:all var(--transition-base)}
.footer-social a:hover{background:var(--color-blue);color:var(--color-white);border-color:var(--color-blue);transform:translateY(-3px)}
.footer-social svg{width:16px;height:16px}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.06);padding:var(--space-5) 0}
.footer-bottom-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);font-size:var(--text-xs);color:rgba(255,255,255,0.22)}
@media(min-width:768px){.footer-bottom-content{flex-direction:row;justify-content:space-between;text-align:left}}
.footer-bottom-content a{color:rgba(255,255,255,0.28)}
.footer-bottom-content a:hover{color:var(--color-blue-light)}
.footer-copyright{color:rgba(255,255,255,0.22)}
.footer-links{display:flex;gap:var(--space-6)}

/* ========== 16. CONTACT ========== */
.contact-section{background:var(--color-white)}
.contact-grid{display:grid;gap:var(--space-8)}
@media(min-width:768px){.contact-grid{grid-template-columns:340px 1fr;gap:var(--space-12)}}
.contact-info{display:flex;flex-direction:column;gap:var(--space-5)}
.contact-info-item{display:flex;gap:var(--space-4)}
.contact-info-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-gray-100);border-radius:var(--radius-md);color:var(--color-blue);flex-shrink:0;border:1px solid var(--color-border);transition:all var(--transition-base)}
.contact-info-item:hover .contact-info-icon{background:var(--color-blue);color:var(--color-white);border-color:var(--color-blue)}
.contact-info-icon svg{width:20px;height:20px}
.contact-info-content h4{font-size:var(--text-sm);font-family:var(--font-body);font-weight:700;margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:0.04em}
.contact-info-content a{color:var(--color-dark);font-weight:500}
.contact-info-content a:hover{color:var(--color-blue)}
.contact-info-content p{margin-bottom:0;color:var(--color-text-light);font-size:var(--text-sm)}
.contact-areas-box{margin-top:var(--space-6);padding:var(--space-6);background:var(--color-blue);border-radius:var(--radius-lg);color:var(--color-white)}
.contact-areas-box h4{color:var(--color-white);margin-bottom:var(--space-4)}
.contact-areas-box p{font-size:var(--text-sm);color:rgba(255,255,255,0.48)}
.contact-form-wrapper{background:var(--color-white);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}
@media(min-width:768px){.contact-form-wrapper{padding:var(--space-10)}}
.form-row{display:grid;grid-template-columns:1fr;gap:var(--space-4);margin-bottom:var(--space-4)}
@media(min-width:600px){.form-row{grid-template-columns:1fr 1fr}}
.form-group{margin-bottom:var(--space-4)}
.form-label{display:block;font-size:var(--text-sm);font-weight:700;color:var(--color-dark);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:0.04em}
.form-label .required{color:#dc2626}
.form-input,.form-select,.form-textarea{width:100%;padding:13px var(--space-5);font-family:var(--font-body);font-size:var(--text-base);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-gray-50);color:var(--color-text);transition:all var(--transition-fast);appearance:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-blue);box-shadow:0 0 0 3px var(--color-blue-glow);background:var(--color-white)}
.form-textarea{min-height:140px;resize:vertical}
.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
.form-checkbox{display:flex;gap:var(--space-3);align-items:flex-start}
.form-checkbox input[type="checkbox"]{width:18px;height:18px;margin-top:3px;flex-shrink:0;accent-color:var(--color-blue)}
.form-checkbox label{font-size:var(--text-sm);color:var(--color-text-light);cursor:pointer}
.form-status-success{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7;padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-weight:600}
.form-status-error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-weight:600}

/* ========== 17. SERVICE SINGLE ========== */
.service-layout{display:grid;gap:var(--space-8)}
@media(min-width:768px){.service-layout{grid-template-columns:1fr 300px;gap:var(--space-12)}}
.service-sidebar-card{padding:var(--space-6);background:var(--color-gray-50);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-6)}
.service-sidebar-card h4{margin-bottom:var(--space-4);font-family:var(--font-body);text-transform:uppercase;letter-spacing:0.04em;font-size:var(--text-sm)}
.service-list-menu{list-style:none;padding:0;margin:0}
.service-list-menu li{border-bottom:1px solid var(--color-border)}
.service-list-menu li:last-child{border-bottom:none}
.service-list-menu a{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;color:var(--color-text);font-size:var(--text-sm);font-weight:500;transition:all var(--transition-fast)}
.service-list-menu a:hover{color:var(--color-blue);padding-left:var(--space-3)}
.service-list-menu svg{width:14px;height:14px;color:var(--color-text-muted)}
.service-list-menu .current a{color:var(--color-blue);font-weight:700}

/* ========== 17b. SERVICE PAGES — Creative Design ========== */

/* Hero — full-bleed image with overlapping content card */
.sv-hero{position:relative;min-height:70vh;display:flex;align-items:flex-end;overflow:hidden}
.sv-hero-bg{position:absolute;inset:0}
.sv-hero-bg img{width:100%;height:100%;object-fit:cover}
.sv-hero-overlay{position:absolute;inset:0;background:linear-gradient(0deg,var(--color-navy) 0%,rgba(32,31,67,0.6) 40%,rgba(32,31,67,0.3) 100%)}
.sv-hero .container{position:relative;z-index:1;padding-bottom:var(--space-16)}
.sv-hero-card{max-width:640px;background:var(--color-white);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-xl);position:relative}
.sv-hero-card::before{content:'';position:absolute;top:-3px;left:var(--space-8);right:var(--space-8);height:4px;background:var(--color-blue);border-radius:4px 4px 0 0}
.sv-hero-card .breadcrumbs{justify-content:flex-start;margin-bottom:var(--space-4)}
.sv-hero-card .breadcrumbs a,.sv-hero-card .breadcrumbs .separator,.sv-hero-card .breadcrumbs .current{color:var(--color-text-muted)}
.sv-hero-card .breadcrumbs a:hover{color:var(--color-blue)}
.sv-hero-card h1{font-size:var(--text-4xl);color:var(--color-dark);margin-bottom:var(--space-3);line-height:1.1}
.sv-hero-tagline{font-size:var(--text-lg);color:var(--color-text-light);line-height:1.7;margin-bottom:var(--space-6)}
.sv-hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.sv-hero-actions .btn-outline-white{color:var(--color-navy);border-color:var(--color-navy)}
.sv-hero-actions .btn-outline-white:hover{background:var(--color-navy);color:var(--color-white)}
@media(min-width:768px){.sv-hero{min-height:75vh}.sv-hero .container{padding-bottom:var(--space-20)}.sv-hero-card{padding:var(--space-10)}.sv-hero-card h1{font-size:var(--text-5xl)}}

/* Stats — floating bar overlapping hero bottom */
.sv-stats-wrap{position:relative;z-index:2;margin-top:calc(-1 * var(--space-10))}
.sv-stats{background:var(--color-navy-light);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-8);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);box-shadow:var(--shadow-lg)}
.sv-stat{text-align:center;position:relative}
.sv-stat+.sv-stat::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:28px;background:rgba(255,255,255,0.1)}
.sv-stat-num{display:block;font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:700;color:var(--color-blue-light);line-height:1}
.sv-stat-lbl{display:block;font-size:var(--text-xs);color:rgba(255,255,255,0.45);text-transform:uppercase;letter-spacing:0.08em;margin-top:4px;font-weight:600}
@media(min-width:768px){.sv-stats{padding:var(--space-8) var(--space-12)}.sv-stat-num{font-size:var(--text-4xl)}}

/* Features — with dot-grid pattern background */
.sv-features{position:relative;background:var(--color-gray-50);overflow:hidden}
.sv-features-pattern{position:absolute;inset:0;background-image:radial-gradient(var(--color-gray-200) 1px,transparent 1px);background-size:24px 24px;opacity:0.5}
.sv-features .container{position:relative;z-index:1}
.sv-features-header{max-width:500px;margin-bottom:var(--space-10)}
@media(min-width:768px){.sv-features-header{margin-bottom:var(--space-12)}}
.sv-features-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media(min-width:768px){.sv-features-grid{grid-template-columns:1fr 1fr;gap:var(--space-6)}}
.sv-feat{display:flex;gap:var(--space-5);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--transition-base)}
.sv-feat:hover{border-color:var(--color-blue);box-shadow:var(--shadow-md);transform:translateY(-4px)}
.sv-feat-icon{width:52px;height:52px;min-width:52px;display:flex;align-items:center;justify-content:center;background:var(--color-blue-glow);border-radius:var(--radius-md);color:var(--color-blue);transition:all var(--transition-base)}
.sv-feat:hover .sv-feat-icon{background:var(--color-blue);color:var(--color-white)}
.sv-feat-icon svg{width:24px;height:24px}
.sv-feat-body h3{font-size:var(--text-base);font-weight:700;color:var(--color-dark);margin-bottom:var(--space-2)}
.sv-feat-body p{font-size:var(--text-sm);color:var(--color-text-light);line-height:1.7;margin:0}

/* Pull quote */
.sv-quote{background:var(--color-white);padding:var(--space-12) 0}
@media(min-width:768px){.sv-quote{padding:var(--space-16) 0}}
.sv-quote-inner{max-width:800px;margin:0 auto;text-align:center;position:relative;padding:var(--space-8) var(--space-5)}
.sv-quote-mark{width:56px;height:56px;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-5);color:var(--color-blue);opacity:0.3}
.sv-quote-mark svg{width:44px;height:44px}
.sv-quote-inner blockquote{font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--color-dark);line-height:1.5;font-weight:500;font-style:normal;border:none;padding:0;margin:0 0 var(--space-4)}
@media(min-width:768px){.sv-quote-inner blockquote{font-size:var(--text-3xl)}}
.sv-quote-inner cite{font-style:normal;font-size:var(--text-sm);color:var(--color-text-muted);letter-spacing:0.04em}

/* Process — vertical numbered steps */
.sv-process{background:var(--color-white)}
.sv-process-grid{display:grid;grid-template-columns:1fr;gap:var(--space-10)}
@media(min-width:768px){.sv-process-grid{grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:start}}
.sv-process-header p{color:var(--color-text-light);line-height:1.7;margin-top:var(--space-3)}
.sv-steps{display:flex;flex-direction:column;gap:0}
.sv-step{display:flex;gap:var(--space-5);align-items:flex-start}
.sv-step-indicator{display:flex;flex-direction:column;align-items:center;min-width:48px}
.sv-step-num{width:48px;height:48px;border-radius:50%;background:var(--color-navy);color:var(--color-blue-light);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:var(--text-sm);font-weight:700;flex-shrink:0;position:relative;z-index:1}
.sv-step-line{width:2px;height:32px;background:linear-gradient(180deg,var(--color-navy),var(--color-border));flex-shrink:0}
.sv-step-content{padding-top:var(--space-3);padding-bottom:var(--space-6)}
.sv-step-content h3{font-size:var(--text-base);font-weight:600;color:var(--color-dark);margin:0}

/* Image gallery — full-width mosaic */
.sv-gallery{background:var(--color-gray-100);padding:var(--space-8) 0}
@media(min-width:768px){.sv-gallery{padding:var(--space-12) 0}}
.sv-gallery .container-wide{max-width:1600px;margin:0 auto;padding:0 var(--space-5)}
.sv-gallery-header{text-align:center;margin-bottom:var(--space-8)}
.sv-gallery-header h2{font-size:var(--text-2xl);font-weight:700;color:var(--color-navy);margin:0 0 var(--space-2)}
@media(min-width:768px){.sv-gallery-header h2{font-size:var(--text-3xl)}}
.sv-gallery-header p{color:var(--color-gray-500);font-size:var(--text-base);margin:0}
.sv-gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}
@media(min-width:640px){.sv-gallery-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-4)}}
@media(min-width:1024px){.sv-gallery-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-4)}}
.sv-gallery-item{overflow:hidden;border-radius:var(--radius-lg);position:relative;background:var(--color-navy);aspect-ratio:4/3;cursor:pointer}
.sv-gallery-item.is-hidden{display:none}
.sv-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.6s ease,opacity 0.3s ease}
.sv-gallery-item:hover img{transform:scale(1.05);opacity:0.9}
.sv-gallery-item::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(32,31,67,0.4) 0%,transparent 50%);opacity:0;transition:opacity 0.3s ease;pointer-events:none}
.sv-gallery-item:hover::after{opacity:1}
.sv-gallery-item::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:50px;height:50px;background:rgba(255,255,255,0.9);border-radius:50%;z-index:2;transition:transform 0.3s ease;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23201f43' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3Cline x1='11' y1='8' x2='11' y2='14'/%3E%3Cline x1='8' y1='11' x2='14' y2='11'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:24px}
.sv-gallery-item:hover::before{transform:translate(-50%,-50%) scale(1)}

/* Load more button */
.sv-gallery-more{text-align:center;margin-top:var(--space-8)}
.sv-gallery-load-more{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-8);background:var(--color-navy);color:var(--color-white);border:none;border-radius:var(--radius-full);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all 0.3s ease}
.sv-gallery-load-more:hover{background:var(--color-blue);transform:translateY(-2px);box-shadow:0 4px 12px rgba(54,169,225,0.3)}
.sv-gallery-load-more svg{width:20px;height:20px;transition:transform 0.3s ease}
.sv-gallery-load-more:hover svg{transform:translateY(2px)}
.sv-gallery-load-more.is-hidden{display:none}

/* Lightbox */
.sv-lightbox{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity 0.3s ease,visibility 0.3s ease}
.sv-lightbox.is-open{opacity:1;visibility:visible}
.sv-lightbox-backdrop{position:absolute;inset:0;background:rgba(32,31,67,0.95);backdrop-filter:blur(8px)}
.sv-lightbox-close{position:absolute;top:var(--space-5);right:var(--space-5);width:48px;height:48px;background:rgba(255,255,255,0.1);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s ease;z-index:10}
.sv-lightbox-close:hover{background:rgba(255,255,255,0.2);transform:scale(1.1)}
.sv-lightbox-close svg{width:24px;height:24px}
.sv-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;background:rgba(255,255,255,0.1);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s ease;z-index:10}
.sv-lightbox-nav:hover{background:rgba(255,255,255,0.2)}
.sv-lightbox-nav:disabled{opacity:0.3;cursor:not-allowed}
.sv-lightbox-prev{left:var(--space-5)}
.sv-lightbox-next{right:var(--space-5)}
.sv-lightbox-nav svg{width:28px;height:28px}
@media(max-width:768px){.sv-lightbox-nav{width:44px;height:44px}.sv-lightbox-prev{left:var(--space-3)}.sv-lightbox-next{right:var(--space-3)}}
.sv-lightbox-content{position:relative;max-width:90vw;max-height:85vh;z-index:5}
.sv-lightbox-content img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:var(--radius-lg);box-shadow:0 25px 50px -12px rgba(0,0,0,0.5);opacity:0;transform:scale(0.95);transition:opacity 0.3s ease,transform 0.3s ease}
.sv-lightbox.is-open .sv-lightbox-content img{opacity:1;transform:scale(1)}
.sv-lightbox-caption{text-align:center;color:rgba(255,255,255,0.8);font-size:var(--text-sm);margin-top:var(--space-4);max-width:600px;margin-left:auto;margin-right:auto}
.sv-lightbox-counter{position:absolute;bottom:var(--space-5);left:50%;transform:translateX(-50%);color:rgba(255,255,255,0.6);font-size:var(--text-sm);font-weight:500;z-index:10}

/* Content + sidebar */
.sv-content{background:var(--color-white)}
.sv-content-grid{display:grid;grid-template-columns:1fr;gap:var(--space-10)}
@media(min-width:1024px){.sv-content-grid{grid-template-columns:1fr 340px;gap:var(--space-12)}}
.sv-article h2{margin-top:var(--space-8);margin-bottom:var(--space-4);font-size:var(--text-3xl)}
.sv-article h2:first-child{margin-top:0}
.sv-article h3{margin-top:var(--space-6);margin-bottom:var(--space-3);font-size:var(--text-xl)}
.sv-sidebar{display:flex;flex-direction:column;gap:var(--space-5)}
.sv-sidebar-nav{background:var(--color-gray-50);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6)}
.sv-sidebar-nav h4{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-text-muted);margin-bottom:var(--space-4);font-family:var(--font-body)}
.sv-sidebar-nav ul{list-style:none;padding:0;margin:0}
.sv-sidebar-nav li{border-top:1px solid var(--color-border)}
.sv-sidebar-nav li:first-child{border-top:0}
.sv-sidebar-nav a{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;font-size:var(--text-sm);color:var(--color-text);font-weight:500;transition:all var(--transition-fast)}
.sv-sidebar-nav a:hover{color:var(--color-blue);padding-left:var(--space-2)}
.sv-sidebar-nav a svg{width:14px;height:14px;opacity:0.3;transition:all var(--transition-fast)}
.sv-sidebar-nav a:hover svg{opacity:0.6;transform:translateX(2px)}
.sv-sidebar-nav .is-current a{color:var(--color-blue);font-weight:700}
.sv-sidebar-nav .is-current a svg{opacity:0.7}
.sv-sidebar-cta{position:relative;border-radius:var(--radius-lg);overflow:hidden;padding:var(--space-8) var(--space-6);text-align:center}
.sv-sidebar-cta-bg{position:absolute;inset:0;background:var(--color-navy);z-index:0}
.sv-sidebar-cta-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(37,99,235,0.15),transparent 60%)}
.sv-sidebar-cta-content{position:relative;z-index:1}
.sv-sidebar-cta h4{color:var(--color-white);font-size:var(--text-lg);margin-bottom:var(--space-2)}
.sv-sidebar-cta p{color:rgba(255,255,255,0.5);font-size:var(--text-sm);margin-bottom:var(--space-5)}
.sv-sidebar-cta .btn{margin-bottom:var(--space-2);width:100%}
.sv-sidebar-cta .btn:last-child{margin-bottom:0}

/* Full-width CTA with background image */
.sv-cta{position:relative;padding:var(--space-20) 0;overflow:hidden;text-align:center}
.sv-cta-bg{position:absolute;inset:0}
.sv-cta-bg img{width:100%;height:100%;object-fit:cover}
.sv-cta-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(32,31,67,0.92),rgba(45,44,90,0.88))}
.sv-cta .container{position:relative;z-index:1}
.sv-cta-content{max-width:600px;margin:0 auto}
.sv-cta h2{color:var(--color-white);font-size:var(--text-4xl);margin-bottom:var(--space-4)}
.sv-cta p{color:rgba(255,255,255,0.5);font-size:var(--text-lg);margin-bottom:var(--space-8)}
.sv-cta-actions{display:flex;flex-direction:column;gap:var(--space-3);align-items:center}
@media(min-width:480px){.sv-cta-actions{flex-direction:row;justify-content:center;gap:var(--space-4)}}
@media(min-width:768px){.sv-cta{padding:var(--space-32) 0}}

/* Related services carousel */
.sv-carousel-section{background:var(--color-gray-50);padding:var(--space-12) 0;overflow:hidden}
.sv-carousel-header{display:flex;flex-direction:column;gap:var(--space-6);margin-bottom:var(--space-8)}
@media(min-width:768px){.sv-carousel-header{flex-direction:row;align-items:flex-end;justify-content:space-between}}
.sv-carousel-header .section-header{text-align:left;margin-bottom:0}
.sv-carousel-nav{display:flex;gap:var(--space-3)}
.sv-carousel-btn{width:48px;height:48px;border-radius:50%;background:var(--color-white);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s ease}
.sv-carousel-btn:hover{background:var(--color-navy);border-color:var(--color-navy);color:var(--color-white)}
.sv-carousel-btn:disabled{opacity:0.4;cursor:not-allowed}
.sv-carousel-btn svg{width:20px;height:20px}
.sv-carousel-wrapper{position:relative;margin:0 calc(-1 * var(--space-5))}
@media(min-width:1200px){.sv-carousel-wrapper{margin:0}}
.sv-carousel{overflow:hidden;padding:0 var(--space-5)}
@media(min-width:1200px){.sv-carousel{overflow:visible;padding:0;max-width:1200px;margin:0 auto}}
.sv-carousel-track{display:flex;gap:var(--space-5);transition:transform 0.5s cubic-bezier(0.25,0.1,0.25,1)}
.sv-carousel-slide{flex:0 0 280px}
@media(min-width:640px){.sv-carousel-slide{flex:0 0 340px}}
@media(min-width:1024px){.sv-carousel-slide{flex:0 0 calc(33.333% - 14px)}}
.sv-carousel-card{display:flex;flex-direction:column;background:var(--color-white);border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;border:1px solid var(--color-border);transition:all 0.3s ease;height:100%}
.sv-carousel-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(32,31,67,0.12);border-color:var(--color-blue)}
.sv-carousel-img{aspect-ratio:16/10;overflow:hidden}
.sv-carousel-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s ease}
.sv-carousel-card:hover .sv-carousel-img img{transform:scale(1.08)}
.sv-carousel-body{padding:var(--space-5);display:flex;flex-direction:column;flex:1}
.sv-carousel-body h3{font-size:var(--text-lg);font-weight:700;color:var(--color-navy);margin-bottom:var(--space-2)}
.sv-carousel-body p{font-size:var(--text-sm);color:var(--color-text-light);margin-bottom:var(--space-4);flex:1;line-height:1.6}
.sv-carousel-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--color-blue);transition:gap 0.2s ease}
.sv-carousel-link svg{width:16px;height:16px;transition:transform 0.2s ease}
.sv-carousel-card:hover .sv-carousel-link{gap:var(--space-3)}
.sv-carousel-card:hover .sv-carousel-link svg{transform:translateX(4px)}
.sv-carousel-dots{display:flex;justify-content:center;gap:var(--space-2);margin-top:var(--space-8)}
.sv-carousel-dot{width:10px;height:10px;border-radius:50%;background:var(--color-gray-300);border:none;cursor:pointer;transition:all 0.2s ease;padding:0}
.sv-carousel-dot:hover{background:var(--color-gray-400)}
.sv-carousel-dot.is-active{background:var(--color-blue);width:28px;border-radius:5px}

/* Service Testimonials Carousel */
.sv-testimonials-section{background:var(--color-white);padding:var(--space-16) 0;overflow:hidden}
@media(min-width:768px){.sv-testimonials-section{padding:var(--space-20) 0}}
.sv-testimonials-header{display:flex;flex-direction:column;gap:var(--space-6);margin-bottom:var(--space-10)}
@media(min-width:768px){.sv-testimonials-header{flex-direction:row;align-items:flex-end;justify-content:space-between}}
.sv-testimonials-header .section-header{text-align:left;margin-bottom:0}
.sv-testimonials-nav{display:flex;gap:var(--space-3)}
.sv-testimonials-btn{width:48px;height:48px;border-radius:50%;background:var(--color-gray-50);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s ease;color:var(--color-navy)}
.sv-testimonials-btn:hover{background:var(--color-navy);border-color:var(--color-navy);color:var(--color-white)}
.sv-testimonials-btn svg{width:20px;height:20px}
.sv-testimonials-carousel{overflow:hidden;margin:0 calc(-1 * var(--space-5))}
@media(min-width:768px){.sv-testimonials-carousel{margin:0}}
.sv-testimonials-track{display:flex;gap:var(--space-6);transition:transform 0.5s cubic-bezier(0.25,0.1,0.25,1)}
.sv-testimonial-slide{flex:0 0 calc(100% - var(--space-5));min-width:0}
@media(min-width:640px){.sv-testimonial-slide{flex:0 0 calc(50% - var(--space-3))}}
@media(min-width:1024px){.sv-testimonial-slide{flex:0 0 calc(33.333% - var(--space-4))}}
.sv-testimonial-card{background:var(--color-gray-50);padding:var(--space-8);border-radius:var(--radius-lg);height:100%;display:flex;flex-direction:column;border:1px solid var(--color-border);transition:all 0.3s ease}
.sv-testimonial-card:hover{border-color:var(--color-blue-light);box-shadow:var(--shadow-md)}
.sv-testimonial-stars{display:flex;gap:2px;margin-bottom:var(--space-4)}
.sv-testimonial-stars svg{width:18px;height:18px;color:#fbbf24}
.sv-testimonial-content{font-size:var(--text-base);color:var(--color-text);line-height:1.7;margin-bottom:var(--space-6);flex:1}
.sv-testimonial-author{display:flex;align-items:center;gap:var(--space-3);margin-top:auto}
.sv-testimonial-avatar{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-blue);color:var(--color-white);font-weight:600;font-size:var(--text-lg);border-radius:50%;flex-shrink:0}
.sv-testimonial-info{display:flex;flex-direction:column}
.sv-testimonial-info strong{color:var(--color-dark);font-size:var(--text-sm)}
.sv-testimonial-info span{font-size:var(--text-xs);color:var(--color-text-muted)}
.sv-testimonials-dots{display:flex;justify-content:center;gap:var(--space-2);margin-top:var(--space-8)}
.sv-testimonials-dot{width:10px;height:10px;border-radius:50%;background:var(--color-gray-300);border:none;cursor:pointer;transition:all 0.2s ease;padding:0}
.sv-testimonials-dot:hover{background:var(--color-gray-400)}
.sv-testimonials-dot.is-active{background:var(--color-blue);width:28px;border-radius:5px}

/* ========== 18. ENTRY CONTENT ========== */
.entry-content{max-width:800px;margin:0 auto}
.entry-content h2{margin-top:var(--space-10);margin-bottom:var(--space-4)}
.entry-content h3{margin-top:var(--space-8);margin-bottom:var(--space-3)}
.entry-content p{margin-bottom:var(--space-4);line-height:1.8}
.entry-content ul,.entry-content ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}
.entry-content li{margin-bottom:var(--space-2)}
.entry-content img{border-radius:var(--radius-md);box-shadow:var(--shadow-md)}
.entry-content a{text-decoration:underline}

/* ========== 20. SCROLL ANIMATIONS ========== */
[data-animate]{opacity:0;transform:translateY(30px);transition:opacity 0.7s cubic-bezier(0.4,0,0.2,1),transform 0.7s cubic-bezier(0.4,0,0.2,1)}
[data-animate].is-visible{opacity:1;transform:translateY(0)}
[data-animate="scale-in"]{transform:scale(0.95)}
[data-animate="scale-in"].is-visible{transform:scale(1)}
[data-animate="fade-left"]{transform:translateX(-30px)}
[data-animate="fade-left"].is-visible{transform:translateX(0)}
[data-animate="fade-right"]{transform:translateX(30px)}
[data-animate="fade-right"].is-visible{transform:translateX(0)}
[data-animate-stagger]>*{opacity:0;transform:translateY(20px);transition:opacity 0.5s ease,transform 0.5s ease}
[data-animate-stagger].is-visible>*:nth-child(1){transition-delay:0s;opacity:1;transform:translateY(0)}
[data-animate-stagger].is-visible>*:nth-child(2){transition-delay:0.1s;opacity:1;transform:translateY(0)}
[data-animate-stagger].is-visible>*:nth-child(3){transition-delay:0.15s;opacity:1;transform:translateY(0)}
[data-animate-stagger].is-visible>*:nth-child(4){transition-delay:0.2s;opacity:1;transform:translateY(0)}
[data-animate-stagger].is-visible>*:nth-child(5){transition-delay:0.25s;opacity:1;transform:translateY(0)}
[data-animate-stagger].is-visible>*:nth-child(6){transition-delay:0.3s;opacity:1;transform:translateY(0)}
[data-animate-stagger].is-visible>*:nth-child(7){transition-delay:0.35s;opacity:1;transform:translateY(0)}
[data-animate-stagger].is-visible>*:nth-child(8){transition-delay:0.4s;opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){[data-animate],[data-animate-stagger]>*{opacity:1;transform:none;transition:none}}

/* ========== 21. KEYFRAMES ========== */
@keyframes heroFadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes heroScrollDot{0%{transform:translateX(-50%) translateY(0);opacity:1}100%{transform:translateX(-50%) translateY(16px);opacity:0}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes galleryReveal{from{opacity:0;transform:scale(0.92)}to{opacity:1;transform:scale(1)}}

/* ========== 21b. SERVICES ARCHIVE (.svc-) ========== */
.svc-archive{overflow-x:hidden}

/* Hero */
.svc-hero{position:relative;min-height:auto;display:flex;flex-direction:column;justify-content:center;padding:var(--space-16) 0 var(--space-12);background:var(--color-navy)}
@media(min-width:768px){.svc-hero{padding:var(--space-20) 0 var(--space-16)}}
.svc-hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,var(--color-navy) 0%,var(--color-navy-light) 100%)}
.svc-hero .container{position:relative;z-index:2}
.svc-hero-content{max-width:640px}
.svc-hero-badge{display:inline-flex;align-items:center;gap:var(--space-2);background:rgba(54,169,225,0.15);border:1px solid rgba(54,169,225,0.3);color:var(--color-blue-light);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;margin-bottom:var(--space-5)}
.svc-hero-badge-count{background:var(--color-blue);color:var(--color-white);padding:2px 10px;border-radius:var(--radius-full);font-weight:700;margin-left:-6px}
.svc-hero h1{font-size:var(--text-4xl);color:var(--color-white);margin-bottom:var(--space-4);line-height:1.1}
@media(min-width:768px){.svc-hero h1{font-size:var(--text-5xl)}}
.svc-hero p{font-size:var(--text-lg);color:rgba(255,255,255,0.7);line-height:1.7;margin-bottom:var(--space-6)}
.svc-hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center}
.svc-hero-phone{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-white);font-weight:600;transition:color var(--transition-fast)}
.svc-hero-phone:hover{color:var(--color-blue-light)}
.svc-hero-phone-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.1);border-radius:var(--radius-full);transition:background var(--transition-fast)}
.svc-hero-phone-icon svg{width:18px;height:18px}
.svc-hero-phone:hover .svc-hero-phone-icon{background:rgba(54,169,225,0.3)}

/* Trust row */
.svc-hero-trust{position:relative;z-index:3;margin-top:var(--space-10)}
.svc-trust-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}
@media(min-width:768px){.svc-trust-row{grid-template-columns:repeat(4,1fr);gap:var(--space-6)}}
.svc-trust-item{display:flex;align-items:center;gap:var(--space-3);color:rgba(255,255,255,0.6);font-size:var(--text-sm);font-weight:500}
.svc-trust-item svg{width:20px;height:20px;color:var(--color-blue-light);flex-shrink:0}

/* Featured service */
.svc-featured{padding:var(--space-10) 0 var(--space-12);background:var(--color-white)}
@media(min-width:768px){.svc-featured{padding:var(--space-6) 0 var(--space-16)}}
.svc-featured-label{margin-bottom:var(--space-4)}
.svc-featured-label span{display:inline-block;background:var(--color-blue);color:var(--color-white);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:0.1em;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full)}
.svc-featured-card{display:grid;grid-template-columns:1fr;border-radius:var(--radius-xl);overflow:hidden;background:var(--color-navy);text-decoration:none;box-shadow:var(--shadow-xl);transition:transform var(--transition-base),box-shadow var(--transition-base)}
@media(min-width:768px){.svc-featured-card{grid-template-columns:1.2fr 1fr;min-height:400px}}
.svc-featured-card:hover{transform:translateY(-4px);box-shadow:0 25px 50px -12px rgba(32,31,67,0.35)}
.svc-featured-img{position:relative;aspect-ratio:16/10;overflow:hidden}
@media(min-width:768px){.svc-featured-img{aspect-ratio:auto}}
.svc-featured-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s ease}
.svc-featured-card:hover .svc-featured-img img{transform:scale(1.05)}
.svc-featured-overlay{position:absolute;inset:0;background:linear-gradient(90deg,var(--color-navy) 0%,transparent 50%);opacity:0}
@media(min-width:768px){.svc-featured-overlay{opacity:1}}
.svc-featured-content{padding:var(--space-8);display:flex;flex-direction:column;justify-content:center}
@media(min-width:768px){.svc-featured-content{padding:var(--space-10) var(--space-12)}}
.svc-featured-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-blue);border-radius:var(--radius-lg);margin-bottom:var(--space-5)}
.svc-featured-icon svg{width:28px;height:28px;color:var(--color-white)}
.svc-featured-content h2{font-size:var(--text-2xl);color:var(--color-white);margin-bottom:var(--space-3)}
@media(min-width:768px){.svc-featured-content h2{font-size:var(--text-3xl)}}
.svc-featured-content p{color:rgba(255,255,255,0.7);line-height:1.7;margin-bottom:var(--space-5)}
.svc-featured-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-blue-light);font-weight:600;font-size:var(--text-sm);letter-spacing:0.02em}
.svc-featured-link svg{width:18px;height:18px;transition:transform var(--transition-fast)}
.svc-featured-card:hover .svc-featured-link svg{transform:translateX(4px)}

/* Services grid - clean uniform layout */
.svc-grid-section{padding:var(--space-12) 0 var(--space-16);background:var(--color-gray-50)}
@media(min-width:768px){.svc-grid-section{padding:var(--space-16) 0 var(--space-20)}}
.svc-grid-header{text-align:center;max-width:500px;margin:0 auto var(--space-10)}
.svc-grid-header h2{font-size:var(--text-3xl);color:var(--color-dark);margin-bottom:var(--space-3)}
.svc-grid-header p{color:var(--color-text-light)}
.svc-bento{display:grid;grid-template-columns:1fr;gap:var(--space-6)}
@media(min-width:600px){.svc-bento{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.svc-bento{grid-template-columns:repeat(3,1fr)}}
.svc-card{position:relative;display:flex;flex-direction:column;background:var(--color-white);border-radius:var(--radius-xl);overflow:hidden;text-decoration:none;border:1px solid var(--color-border);transition:all var(--transition-base)}
.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-blue)}
.svc-card-img{position:relative;aspect-ratio:16/10;overflow:hidden}
.svc-card-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease}
.svc-card:hover .svc-card-img img{transform:scale(1.05)}
.svc-card-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(32,31,67,0.4) 100%);opacity:0;transition:opacity var(--transition-base)}
.svc-card:hover .svc-card-overlay{opacity:1}
.svc-card-content{padding:var(--space-6);display:flex;flex-direction:column;flex:1}
.svc-card-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-blue-glow);border-radius:var(--radius-md);margin-bottom:var(--space-4);transition:all var(--transition-fast)}
.svc-card-icon svg{width:22px;height:22px;color:var(--color-blue)}
.svc-card:hover .svc-card-icon{background:var(--color-blue)}.svc-card:hover .svc-card-icon svg{color:var(--color-white)}
.svc-card-content h3{font-size:var(--text-lg);color:var(--color-dark);margin-bottom:var(--space-2)}
.svc-card-content p{font-size:var(--text-sm);color:var(--color-text-light);line-height:1.6;margin-bottom:var(--space-4);flex:1}
.svc-card-link{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:600;color:var(--color-blue);transition:gap var(--transition-fast)}
.svc-card-link svg{width:16px;height:16px}
.svc-card:hover .svc-card-link{gap:var(--space-2)}

/* Why choose us */
.svc-why{position:relative;padding:var(--space-16) 0;background:var(--color-white);overflow:hidden}
@media(min-width:768px){.svc-why{padding:var(--space-20) 0}}
.svc-why-pattern{position:absolute;top:0;right:0;width:400px;height:400px;background:radial-gradient(circle,var(--color-blue-glow) 0%,transparent 70%);opacity:0.5;pointer-events:none}
.svc-why-header{text-align:center;margin-bottom:var(--space-12)}
.svc-why-header h2{font-size:var(--text-3xl);color:var(--color-dark);margin-top:var(--space-3)}
.svc-why-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}
@media(min-width:600px){.svc-why-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.svc-why-grid{grid-template-columns:repeat(4,1fr)}}
.svc-why-card{text-align:center;padding:var(--space-6)}
.svc-why-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:var(--color-gray-50);border-radius:var(--radius-xl);margin:0 auto var(--space-5);transition:all var(--transition-base)}
.svc-why-icon svg{width:28px;height:28px;color:var(--color-blue)}
.svc-why-card:hover .svc-why-icon{background:var(--color-blue);transform:scale(1.1)}.svc-why-card:hover .svc-why-icon svg{color:var(--color-white)}
.svc-why-card h3{font-size:var(--text-lg);color:var(--color-dark);margin-bottom:var(--space-2)}
.svc-why-card p{font-size:var(--text-sm);color:var(--color-text-light);line-height:1.7}

/* CTA section */
.svc-cta{position:relative;padding:var(--space-16) 0;background:var(--color-navy);overflow:hidden}
@media(min-width:768px){.svc-cta{padding:var(--space-20) 0}}
.svc-cta-bg{position:absolute;inset:0;background:linear-gradient(135deg,var(--color-navy) 0%,var(--color-navy-light) 50%,var(--color-blue-deep) 100%)}
.svc-cta-bg::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%2336a9e1' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}
.svc-cta .container{position:relative;z-index:2}
.svc-cta-content{text-align:center;max-width:600px;margin:0 auto}
.svc-cta-content h2{font-size:var(--text-3xl);color:var(--color-white);margin-bottom:var(--space-4)}
@media(min-width:768px){.svc-cta-content h2{font-size:var(--text-4xl)}}
.svc-cta-content p{font-size:var(--text-lg);color:rgba(255,255,255,0.7);margin-bottom:var(--space-8)}
.svc-cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4)}

/* ========== 21c. ABOUT PAGE (.about-) ========== */
.about-page{overflow-x:hidden}

/* Hero */
.about-hero{padding:var(--space-12) 0 var(--space-16);background:var(--color-gray-50)}
@media(min-width:768px){.about-hero{padding:var(--space-16) 0 var(--space-20)}}
.about-hero-grid{display:grid;grid-template-columns:1fr;gap:var(--space-10);align-items:center}
@media(min-width:768px){.about-hero-grid{grid-template-columns:1fr 1fr;gap:var(--space-12)}}
.about-hero-content .breadcrumbs{margin-bottom:var(--space-4)}
.about-hero-content h1{font-size:var(--text-4xl);color:var(--color-dark);margin-bottom:var(--space-4);line-height:1.1}
@media(min-width:768px){.about-hero-content h1{font-size:var(--text-5xl)}}
.about-hero-lead{font-size:var(--text-lg);color:var(--color-text);line-height:1.7;margin-bottom:var(--space-8)}
.about-hero-highlights{display:flex;gap:var(--space-6)}
.about-hero-highlight{display:flex;flex-direction:column}
.about-hero-highlight-num{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:700;color:var(--color-blue);line-height:1}
.about-hero-highlight-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:0.05em;margin-top:var(--space-1)}
.about-hero-image{position:relative}
.about-hero-image-wrap{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-xl)}
.about-hero-image-wrap img{width:100%;height:auto;display:block}
.about-hero-badge{position:absolute;bottom:var(--space-4);left:var(--space-4);display:flex;align-items:center;gap:var(--space-2);background:var(--color-white);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--text-sm);font-weight:600;color:var(--color-dark)}
.about-hero-badge svg{width:20px;height:20px;color:var(--color-blue)}

/* Story */
.about-story{padding:var(--space-16) 0;background:var(--color-white)}
@media(min-width:768px){.about-story{padding:var(--space-20) 0}}
.about-story-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}
@media(min-width:768px){.about-story-grid{grid-template-columns:200px 1fr;gap:var(--space-12)}}
.about-story-label{flex-shrink:0}
.about-story-content h2{font-size:var(--text-3xl);color:var(--color-dark);margin-bottom:var(--space-6);line-height:1.2}
.about-story-text{max-width:700px}
.about-story-text p{font-size:var(--text-base);color:var(--color-text);line-height:1.8;margin-bottom:var(--space-4)}
.about-story-text p:last-child{margin-bottom:0}

/* Values */
.about-values{padding:var(--space-16) 0;background:var(--color-gray-50)}
@media(min-width:768px){.about-values{padding:var(--space-20) 0}}
.about-values-header{text-align:center;max-width:550px;margin:0 auto var(--space-12)}
.about-values-header h2{font-size:var(--text-3xl);color:var(--color-dark);margin:var(--space-3) 0 var(--space-4)}
.about-values-header p{color:var(--color-text-light)}
.about-values-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}
@media(min-width:600px){.about-values-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.about-values-grid{grid-template-columns:repeat(4,1fr)}}
.about-value-card{background:var(--color-white);border-radius:var(--radius-xl);padding:var(--space-8);text-align:center;border:1px solid var(--color-border);transition:all var(--transition-base)}
.about-value-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-blue)}
.about-value-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-blue-glow);border-radius:var(--radius-lg);margin:0 auto var(--space-5);transition:all var(--transition-fast)}
.about-value-icon svg{width:26px;height:26px;color:var(--color-blue)}
.about-value-card:hover .about-value-icon{background:var(--color-blue)}.about-value-card:hover .about-value-icon svg{color:var(--color-white)}
.about-value-card h3{font-size:var(--text-lg);color:var(--color-dark);margin-bottom:var(--space-2)}
.about-value-card p{font-size:var(--text-sm);color:var(--color-text-light);line-height:1.6}

/* Why choose */
.about-why{padding:var(--space-16) 0;background:var(--color-white)}
@media(min-width:768px){.about-why{padding:var(--space-20) 0}}
.about-why-grid{display:grid;grid-template-columns:1fr;gap:var(--space-10);align-items:center}
@media(min-width:768px){.about-why-grid{grid-template-columns:1fr 1fr;gap:var(--space-12)}}
.about-why-content h2{font-size:var(--text-3xl);color:var(--color-dark);margin:var(--space-3) 0 var(--space-8);line-height:1.2}
.about-why-list{list-style:none;padding:0;margin:0}
.about-why-list li{display:flex;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border)}
.about-why-list li:last-child{border-bottom:none}
.about-why-list svg{width:24px;height:24px;color:var(--color-blue);flex-shrink:0;margin-top:2px}
.about-why-list strong{display:block;font-size:var(--text-base);color:var(--color-dark);margin-bottom:2px}
.about-why-list span{font-size:var(--text-sm);color:var(--color-text-light);line-height:1.5}
.about-why-image{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg)}
.about-why-image img{width:100%;height:auto;display:block}

/* Service areas */
.about-areas{padding:var(--space-16) 0;background:var(--color-navy)}
@media(min-width:768px){.about-areas{padding:var(--space-20) 0}}
.about-areas-header{text-align:center;max-width:550px;margin:0 auto var(--space-10)}
.about-areas-header .section-badge{background:rgba(54,169,225,0.15);border-color:rgba(54,169,225,0.3);color:var(--color-blue-light)}
.about-areas-header h2{font-size:var(--text-3xl);color:var(--color-white);margin:var(--space-3) 0 var(--space-4)}
.about-areas-header p{color:rgba(255,255,255,0.7)}
.about-areas-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3)}
.about-area-tag{display:inline-block;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.15);color:rgba(255,255,255,0.8);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);transition:all var(--transition-fast)}
.about-area-tag:hover{background:var(--color-blue);border-color:var(--color-blue);color:var(--color-white)}

/* CTA */
.about-cta{padding:var(--space-16) 0;background:linear-gradient(135deg,var(--color-gray-50) 0%,var(--color-white) 100%)}
@media(min-width:768px){.about-cta{padding:var(--space-20) 0}}
.about-cta-content{text-align:center;max-width:600px;margin:0 auto}
.about-cta-content h2{font-size:var(--text-3xl);color:var(--color-dark);margin-bottom:var(--space-4)}
.about-cta-content p{font-size:var(--text-lg);color:var(--color-text);margin-bottom:var(--space-8)}
.about-cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4)}
.about-cta .btn-outline-white{border-color:var(--color-navy);color:var(--color-navy)}
.about-cta .btn-outline-white:hover{background:var(--color-navy);color:var(--color-white)}

/* ========== 21d. GALLERY PAGE ========== */
.gallery-page{overflow-x:hidden}

/* Gallery Section */
.gallery-section{padding:var(--space-16) 0;background:var(--color-white)}
@media(min-width:768px){.gallery-section{padding:var(--space-20) 0}}

/* Filters */
.gallery-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-10)}
@media(min-width:768px){.gallery-filters{gap:var(--space-3)}}
.gallery-filter{padding:var(--space-2) var(--space-5);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;color:var(--color-text);background:var(--color-gray-50);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:all 0.2s ease}
.gallery-filter:hover{border-color:var(--color-blue);color:var(--color-blue)}
.gallery-filter.is-active{background:var(--color-navy);color:var(--color-white);border-color:var(--color-navy)}

/* Grid */
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}
@media(min-width:768px){.gallery-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-5)}}
@media(min-width:1024px){.gallery-grid{grid-template-columns:repeat(4,1fr);gap:var(--space-6)}}

/* Gallery item */
.gallery-item{position:relative;border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;aspect-ratio:4/3;background:var(--color-gray-100)}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease}
.gallery-item:hover img{transform:scale(1.08)}
.gallery-item-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(32,31,67,0.6);opacity:0;transition:opacity 0.3s ease}
.gallery-item:hover .gallery-item-overlay{opacity:1}
.gallery-item-overlay svg{width:40px;height:40px;color:var(--color-white);transform:scale(0.8);transition:transform 0.3s ease}
.gallery-item:hover .gallery-item-overlay svg{transform:scale(1)}

/* Filter animation */
.gallery-item[data-hiding="true"]{animation:galFadeOut 0.3s forwards}
.gallery-item[data-showing="true"]{animation:galFadeIn 0.3s forwards}
@keyframes galFadeOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.95)}}
@keyframes galFadeIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}

/* Lightbox */
.gallery-lightbox{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;opacity:0;transition:opacity 0.3s ease}
.gallery-lightbox.is-open{display:flex}
.gallery-lightbox-backdrop{position:absolute;inset:0;background:rgba(32,31,67,0.95)}
.gallery-lightbox-close{position:absolute;top:var(--space-4);right:var(--space-4);z-index:10;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.1);border:none;border-radius:var(--radius-full);color:var(--color-white);cursor:pointer;transition:all 0.2s ease}
.gallery-lightbox-close:hover{background:rgba(255,255,255,0.2);transform:rotate(90deg)}
.gallery-lightbox-close svg{width:24px;height:24px}
.gallery-lightbox-nav{position:absolute;top:50%;z-index:10;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.1);border:none;border-radius:var(--radius-full);color:var(--color-white);cursor:pointer;transform:translateY(-50%);transition:all 0.2s ease}
.gallery-lightbox-nav:hover{background:var(--color-blue)}
.gallery-lightbox-nav svg{width:24px;height:24px}
.gallery-lightbox-prev{left:var(--space-4)}
.gallery-lightbox-next{right:var(--space-4)}
@media(min-width:768px){.gallery-lightbox-prev{left:var(--space-8)}.gallery-lightbox-next{right:var(--space-8)}}
.gallery-lightbox-content{position:relative;z-index:5;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;align-items:center}
@media(min-width:768px){.gallery-lightbox-content{max-width:80vw}}
.gallery-lightbox-content img{max-width:100%;max-height:calc(85vh - 60px);object-fit:contain;border-radius:var(--radius-md);box-shadow:0 25px 50px -12px rgba(0,0,0,0.5)}
.gallery-lightbox-info{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;max-width:600px;margin-top:var(--space-4);padding:0 var(--space-4)}
.gallery-lightbox-info p{font-size:var(--text-base);color:var(--color-white);margin:0}
.gallery-lightbox-info span{font-size:var(--text-sm);color:rgba(255,255,255,0.5)}

/* ========== 21e. REVIEWS PAGE ========== */
.reviews-page{}

/* Reviews Section */
.reviews-section{padding:var(--space-16) 0;background:var(--color-white)}
@media(min-width:768px){.reviews-section{padding:var(--space-20) 0}}
.reviews-grid{display:grid;gap:var(--space-6)}
@media(min-width:768px){.reviews-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.reviews-grid{grid-template-columns:repeat(3,1fr)}}

/* Review Card */
.review-card{background:var(--color-gray-50);border-radius:var(--radius-lg);padding:var(--space-6);border:1px solid var(--color-border);transition:all 0.2s ease}
.review-card:hover{border-color:var(--color-blue);box-shadow:var(--shadow-md)}
.review-stars{display:flex;gap:2px;margin-bottom:var(--space-4)}
.review-stars svg{width:18px;height:18px;color:#fbbf24}
.review-content{font-size:var(--text-base);color:var(--color-text);line-height:1.7;margin-bottom:var(--space-5);font-style:normal}
.review-author{display:flex;align-items:center;gap:var(--space-3)}
.review-avatar{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-blue);color:var(--color-white);font-weight:600;font-size:var(--text-lg);border-radius:50%;flex-shrink:0}
.review-info{display:flex;flex-direction:column}
.review-info strong{color:var(--color-dark);font-size:var(--text-sm)}
.review-info span{font-size:var(--text-xs);color:var(--color-text-muted)}

/* ========== 22. SERVICES PAGE ========== */
.services-page{}

/* Page Hero - Simple */
.page-hero{padding:var(--space-20) 0 var(--space-16);background:var(--color-navy);text-align:center}
@media(min-width:768px){.page-hero{padding:var(--space-24) 0 var(--space-20)}}
.page-hero-content{max-width:700px;margin:0 auto}
.page-hero .section-badge{color:var(--color-blue-light);margin-bottom:var(--space-4)}
.page-hero .section-badge::before{background:var(--color-blue-light)}
.page-hero h1{font-size:clamp(2.5rem,5vw,3.5rem);color:var(--color-white);margin-bottom:var(--space-6);letter-spacing:-0.02em}
.page-hero p{font-size:var(--text-lg);color:rgba(255,255,255,0.75);line-height:1.7;max-width:550px;margin:0 auto}
@media(min-width:768px){.page-hero p{font-size:var(--text-xl)}}

/* Services Grid */
.services-grid-section{padding:var(--space-16) 0;background:var(--color-white)}
@media(min-width:768px){.services-grid-section{padding:var(--space-20) 0}}
.services-grid{display:grid;gap:var(--space-8)}
@media(min-width:768px){.services-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-10)}}

/* Service Card V2 */
.service-card-v2{display:block;background:var(--color-white);border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 4px 6px -1px rgba(0,0,0,0.05);border:1px solid var(--color-border);transition:all 0.3s ease}
.service-card-v2:hover{transform:translateY(-6px);box-shadow:0 20px 40px -12px rgba(0,0,0,0.15);border-color:transparent}
.service-card-image{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--color-gray-100)}
.service-card-image img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease}
.service-card-v2:hover .service-card-image img{transform:scale(1.05)}
.service-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-gray-100) 0%,var(--color-gray-200) 100%);color:var(--color-text-light)}
.service-card-placeholder svg{width:48px;height:48px;opacity:0.5}
.service-card-body{padding:var(--space-8)}
.service-card-body h2{font-size:var(--text-2xl);margin-bottom:var(--space-3);color:var(--color-dark);transition:color 0.2s ease}
.service-card-v2:hover .service-card-body h2{color:var(--color-blue)}
.service-card-body p{font-size:var(--text-base);color:var(--color-text-light);line-height:1.7;margin-bottom:var(--space-5)}
.service-card-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-blue);font-weight:600;font-size:var(--text-sm)}
.service-card-link svg{width:18px;height:18px;transition:transform 0.2s ease}
.service-card-v2:hover .service-card-link svg{transform:translateX(4px)}

/* Additional Services */
.additional-services-section{padding:var(--space-16) 0;background:var(--color-gray-50)}
@media(min-width:768px){.additional-services-section{padding:var(--space-20) 0}}
.additional-services-grid{display:grid;gap:var(--space-6)}
@media(min-width:640px){.additional-services-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:992px){.additional-services-grid{grid-template-columns:repeat(3,1fr)}}
.additional-service-card{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-5);background:var(--color-white);border-radius:var(--radius-lg);border:1px solid var(--color-border);transition:all 0.2s ease}
.additional-service-card:hover{border-color:var(--color-blue);box-shadow:var(--shadow-md)}
.additional-service-image{width:80px;height:80px;flex-shrink:0;border-radius:var(--radius-md);overflow:hidden;background:var(--color-gray-100)}
.additional-service-image img{width:100%;height:100%;object-fit:cover}
.additional-service-content{flex:1;min-width:0}
.additional-service-content h3{font-size:var(--text-lg);color:var(--color-dark);margin-bottom:var(--space-1);transition:color 0.2s ease}
.additional-service-card:hover h3{color:var(--color-blue)}
.additional-service-link{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--color-text-light);font-size:var(--text-sm)}
.additional-service-link svg{width:14px;height:14px;transition:transform 0.2s ease}
.additional-service-card:hover .additional-service-link svg{transform:translateX(3px)}

/* ========== 23. UTILITIES ========== */
.mb-4{margin-bottom:var(--space-4)}
.widget{margin-bottom:var(--space-6)}
.widget-title{font-size:var(--text-sm);font-weight:700;margin-bottom:var(--space-4);color:var(--color-dark);text-transform:uppercase;letter-spacing:0.04em;font-family:var(--font-body)}
.text-center{text-align:center}
.lead{font-size:var(--text-lg);color:var(--color-text-light);line-height:1.7;margin-bottom:var(--space-6)}

/* ========== 23. SERVICES SHOWCASE (Image Collage Section) ========== */
.services-showcase{padding:var(--space-16) 0;background:var(--color-white)}
@media(min-width:768px){.services-showcase{padding:var(--space-20) 0}}
.services-showcase-grid{display:grid;gap:var(--space-12)}
@media(min-width:992px){.services-showcase-grid{grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center}}

/* Image Collage */
.image-collage{position:relative;overflow:hidden}
.collage-wrapper{position:relative;display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(12,1fr);gap:var(--space-4);min-height:400px}
@media(min-width:768px){.collage-wrapper{min-height:500px}}
.collage-img{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
.collage-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease}
.collage-img:hover img{transform:scale(1.05)}
.collage-img-1{grid-column:1/7;grid-row:1/7;z-index:2}
.collage-img-2{grid-column:6/13;grid-row:2/9;z-index:3}
.collage-img-3{grid-column:1/7;grid-row:7/13;z-index:2}
.collage-accent-shape{display:none}
.collage-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--color-gray-100) 0%,var(--color-gray-200) 100%)}

/* Services Content */
.services-showcase-content{padding:var(--space-4) 0}
@media(min-width:992px){.services-showcase-content{padding:var(--space-8) 0}}
.services-showcase-content h2{font-size:var(--text-3xl);margin-bottom:var(--space-6)}
@media(min-width:768px){.services-showcase-content h2{font-size:var(--text-4xl)}}

/* Services Checklist */
.services-checklist{display:grid;gap:var(--space-3);margin-bottom:var(--space-8)}
@media(min-width:480px){.services-checklist{grid-template-columns:1fr 1fr}}
.services-checklist li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}
.services-checklist li:last-child{border-bottom:none}
.services-checklist svg{width:20px;height:20px;color:var(--color-blue);flex-shrink:0}
.services-checklist a,.services-checklist span{color:var(--color-text);font-weight:500;transition:color 0.2s ease}
.services-checklist a:hover{color:var(--color-blue)}

/* Services CTA */
.services-showcase-cta{display:flex;flex-wrap:wrap;gap:var(--space-4)}

/* ========== 24. WHY CHOOSE US ========== */
.why-section{padding:var(--space-16) 0;background:var(--color-gray-50)}
@media(min-width:768px){.why-section{padding:var(--space-20) 0}}
.why-grid{display:grid;gap:var(--space-6)}
@media(min-width:768px){.why-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-8)}}
@media(min-width:992px){.why-grid{grid-template-columns:repeat(4,1fr)}}
.why-card{background:var(--color-white);padding:var(--space-8);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-sm);transition:all 0.3s ease;border:1px solid var(--color-border)}
.why-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.why-card-icon{width:64px;height:64px;margin:0 auto var(--space-5);display:flex;align-items:center;justify-content:center;background:var(--color-blue-glow);border-radius:50%;color:var(--color-blue)}
.why-card-icon svg{width:28px;height:28px}
.why-card h3{font-size:var(--text-lg);margin-bottom:var(--space-3)}
.why-card p{font-size:var(--text-sm);color:var(--color-text-light);line-height:1.6}

/* ========== 25. TESTIMONIALS (Homepage) ========== */
.testimonials-section{padding:var(--space-16) 0;background:var(--color-navy)}
@media(min-width:768px){.testimonials-section{padding:var(--space-20) 0}}
.testimonials-section .section-badge{color:var(--color-blue-light)}
.testimonials-section .section-badge::before{background:var(--color-blue-light)}
.testimonials-section .section-title{color:var(--color-white)}
.testimonials-slider{display:grid;gap:var(--space-6)}
@media(min-width:768px){.testimonials-slider{grid-template-columns:repeat(3,1fr);gap:var(--space-8)}}
.testimonial-card{background:rgba(255,255,255,0.05);backdrop-filter:blur(8px);padding:var(--space-8);border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,0.1)}
.testimonial-stars{display:flex;gap:2px;margin-bottom:var(--space-4)}
.testimonial-stars svg{width:18px;height:18px;color:#fbbf24}
.testimonial-content{font-size:var(--text-base);color:rgba(255,255,255,0.85);line-height:1.7;margin-bottom:var(--space-6)}
.testimonial-author{display:flex;align-items:center;gap:var(--space-3)}
.testimonial-avatar{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-blue);color:var(--color-white);font-weight:600;font-size:var(--text-lg);border-radius:50%;flex-shrink:0}
.testimonial-info h5{color:var(--color-white);font-size:var(--text-sm);margin-bottom:2px}
.testimonial-info span{font-size:var(--text-xs);color:rgba(255,255,255,0.5)}

/* ========== 26. AREAS SECTION ========== */
.areas-section{padding:var(--space-16) 0;background:var(--color-white)}
@media(min-width:768px){.areas-section{padding:var(--space-20) 0}}
.areas-grid{display:grid;gap:var(--space-10)}
@media(min-width:992px){.areas-grid{grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center}}
.areas-content h2{font-size:var(--text-3xl);margin-bottom:var(--space-4)}
.areas-content>p{color:var(--color-text-light);line-height:1.7;margin-bottom:var(--space-6)}
.areas-tags{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-8)}
.area-tag{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-gray-50);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;color:var(--color-text);transition:all 0.2s ease}
.area-tag:hover{background:var(--color-blue-glow);border-color:var(--color-blue);color:var(--color-blue)}
.area-tag svg{width:14px;height:14px;color:var(--color-blue)}
.areas-map{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);min-height:350px}
@media(min-width:992px){.areas-map{min-height:450px}}
.areas-map iframe{width:100%;height:100%;min-height:350px}
@media(min-width:992px){.areas-map iframe{min-height:450px}}

/* ========== 27. CTA SECTION ========== */
.cta-section{padding:var(--space-16) 0;background:var(--color-gray-50)}
@media(min-width:768px){.cta-section{padding:var(--space-20) 0}}
.cta-card{background:linear-gradient(135deg,var(--color-navy) 0%,var(--color-navy-light) 100%);padding:var(--space-8);border-radius:var(--radius-xl);display:flex;flex-direction:column;gap:var(--space-6);text-align:center}
@media(min-width:768px){.cta-card{padding:var(--space-10)}}
@media(min-width:1080px){.cta-card{flex-direction:row;align-items:center;justify-content:space-between;text-align:left;padding:var(--space-12) var(--space-16);gap:var(--space-8)}}
.cta-content{flex:1}
.cta-content h2{font-size:var(--text-2xl);color:var(--color-white);margin-bottom:var(--space-3)}
@media(min-width:768px){.cta-content h2{font-size:var(--text-3xl)}}
.cta-content p{color:rgba(255,255,255,0.7);font-size:var(--text-base)}
@media(min-width:768px){.cta-content p{font-size:var(--text-lg)}}
.cta-actions{display:flex;flex-direction:column;gap:var(--space-4);align-items:center;flex-shrink:0}
@media(min-width:480px){.cta-actions{flex-direction:row;gap:var(--space-5)}}
.cta-phone{display:flex;align-items:center;gap:var(--space-3);color:var(--color-white);font-size:var(--text-base);font-weight:600;white-space:nowrap;transition:color 0.2s ease}
@media(min-width:768px){.cta-phone{font-size:var(--text-lg)}}
.cta-phone:hover{color:var(--color-blue-light)}
.cta-phone svg{width:20px;height:20px;flex-shrink:0}
.btn-white{background:var(--color-white);color:var(--color-navy);border:2px solid var(--color-white);white-space:nowrap}
.btn-white:hover{background:transparent;color:var(--color-white)}

/* ========== 28. PRINT ========== */
@media print{.site-header,.site-footer,.cta-banner,.hero-cta,.mobile-navigation,.mobile-nav-overlay,.header-top-bar,.skip-link,.gallery-lightbox,.gallery-filters{display:none!important}body{font-size:12pt;color:#000}a{color:#000;text-decoration:underline}.container{max-width:100%;padding:0}.hero{min-height:auto;padding:var(--space-8) 0}}
