/* ============================================================
   GROUNDWORK TEMPLATE
   Structured & Scalable — vibrant teal, split hero with
   residential/commercial CTAs, mega service grid, vehicle section.
   
   Prefix: gw-
   Primary: var(--primary) — vibrant teal
   Secondary: var(--secondary) — deep teal
   Accent: var(--accent) — bright cyan
   ============================================================ */

@keyframes gw-fadeUp{from{opacity:0;transform:translateY(50px);}to{opacity:1;transform:translateY(0);}}
@keyframes gw-fadeLeft{from{opacity:0;transform:translateX(-60px);}to{opacity:1;transform:translateX(0);}}
@keyframes gw-fadeRight{from{opacity:0;transform:translateX(60px);}to{opacity:1;transform:translateX(0);}}
@keyframes gw-scaleIn{from{opacity:0;transform:scale(0.85);}to{opacity:1;transform:scale(1);}}
@keyframes gw-slideDown{from{opacity:0;transform:translateY(-24px);}to{opacity:1;transform:translateY(0);}}

.gw-animate{opacity:0;}
.gw-animate.gw-visible{animation-duration:0.75s;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(0.22,1,0.36,1);}
.gw-fade-up.gw-visible{animation-name:gw-fadeUp;}
.gw-fade-left.gw-visible{animation-name:gw-fadeLeft;}
.gw-fade-right.gw-visible{animation-name:gw-fadeRight;}
.gw-scale-in.gw-visible{animation-name:gw-scaleIn;}
.gw-stagger-1{animation-delay:.06s;}.gw-stagger-2{animation-delay:.14s;}
.gw-stagger-3{animation-delay:.22s;}.gw-stagger-4{animation-delay:.30s;}
.gw-stagger-5{animation-delay:.38s;}.gw-stagger-6{animation-delay:.46s;}

/* ── Top Utility Bar ─────────────────────────── */
.gw-topbar{background:var(--secondary,#134e4a);color:rgba(255,255,255,0.8);font-size:13px;padding:8px 0;}
.gw-topbar-inner{max-width:1280px;margin:0 auto;padding:0 28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}
.gw-topbar a{color:#fff;text-decoration:none;transition:opacity 0.2s;}
.gw-topbar a:hover{opacity:0.8;}
.gw-topbar i{margin-right:6px;color:var(--accent,#2dd4bf);}
.gw-topbar-left,.gw-topbar-right{display:flex;align-items:center;gap:20px;}

/* ── Nav ─────────────────────────────────────── */
.gw-nav{position:sticky;top:0;z-index:200;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,0.06);animation:gw-slideDown 0.5s ease;transition:box-shadow 0.4s;}
.gw-nav.gw-scrolled{box-shadow:0 4px 28px rgba(0,0,0,0.08);}
.gw-nav-inner{max-width:1280px;margin:0 auto;padding:0 28px;display:flex;justify-content:space-between;align-items:center;height:72px;}
.gw-nav-logo-text{font-family:'Sora',sans-serif;font-size:24px;font-weight:800;color:var(--primary,#0d9488);text-decoration:none;letter-spacing:-0.02em;}
.gw-nav-links{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0;}
.gw-nav-links a{color:#475569;text-decoration:none;font-weight:600;font-size:15px;transition:color 0.2s;}
.gw-nav-links a:hover,.gw-nav-links a.active{color:var(--primary,#0d9488);}
.gw-nav-cta{background:var(--primary,#0d9488)!important;color:#fff!important;padding:11px 28px;border-radius:10px;font-weight:700;font-size:14px;transition:all 0.3s;box-shadow:0 4px 14px rgba(13,148,136,0.3);display:inline-block;text-decoration:none;}
.gw-nav-cta:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(13,148,136,0.4);background:#0f766e!important;}
.gw-nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none;}
.gw-nav-toggle span{width:26px;height:2.5px;background:#334155;border-radius:2px;transition:all 0.3s;}

/* ── Hero — Split Layout ─────────────────────── */
.gw-hero{background:linear-gradient(160deg,#042f2e 0%,var(--secondary,#134e4a) 50%,#0f3d38 100%);position:relative;overflow:hidden;padding:80px 0;}
.gw-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(45,212,191,0.08)0%,transparent 60%);pointer-events:none;}
.gw-hero-inner{max-width:1280px;margin:0 auto;padding:0 28px;display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center;position:relative;z-index:1;}
.gw-hero-content{animation:gw-fadeLeft 0.9s cubic-bezier(0.22,1,0.36,1) 0.2s both;}
.gw-hero-tag{display:inline-flex;align-items:center;gap:8px;background:rgba(45,212,191,0.12);border:1px solid rgba(45,212,191,0.25);color:#5eead4;padding:8px 18px;border-radius:8px;font-size:13px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;margin-bottom:20px;}
.gw-hero h1{font-family:'Sora',sans-serif;font-size:clamp(34px,4.5vw,54px);font-weight:800;color:#fff;line-height:1.1;margin:0 0 18px;letter-spacing:-0.03em;}
.gw-hero h1 em{font-style:normal;color:var(--accent,#2dd4bf);}
.gw-hero-sub{font-size:18px;color:rgba(255,255,255,0.6);line-height:1.65;margin:0 0 36px;max-width:520px;}

/* Split CTA: Residential / Commercial */
.gw-hero-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.gw-hero-split-card{background:rgba(255,255,255,0.05);border:1.5px solid rgba(255,255,255,0.1);border-radius:14px;padding:24px 20px;text-align:center;transition:all 0.3s;cursor:pointer;text-decoration:none;}
.gw-hero-split-card:hover{background:rgba(255,255,255,0.1);border-color:var(--accent,#2dd4bf);transform:translateY(-4px);}
.gw-hero-split-icon{font-size:32px;color:var(--accent,#2dd4bf);margin-bottom:10px;}
.gw-hero-split-card h4{font-family:'Sora',sans-serif;font-size:16px;font-weight:700;color:#fff;margin:0 0 4px;}
.gw-hero-split-card p{font-size:13px;color:rgba(255,255,255,0.5);margin:0;}

.gw-hero-right{animation:gw-fadeRight 0.9s cubic-bezier(0.22,1,0.36,1) 0.4s both;}
.gw-hero-form{background:#fff;border-radius:18px;padding:40px 32px;box-shadow:0 24px 64px rgba(0,0,0,0.3);}
.gw-hero-form h3{font-family:'Sora',sans-serif;font-size:24px;font-weight:800;color:#0f172a;margin:0 0 6px;}
.gw-hero-form .gw-form-sub{font-size:15px;color:#94a3b8;margin:0 0 24px;}
.gw-form-group{margin-bottom:14px;}
.gw-form-group input,.gw-form-group textarea,.gw-form-group select{width:100%;padding:14px 18px;border:2px solid #e2e8f0;border-radius:12px;font-size:15px;font-family:'Sora',sans-serif;color:#1e293b;transition:all 0.25s;background:#f8fafc;box-sizing:border-box;}
.gw-form-group input:focus,.gw-form-group textarea:focus,.gw-form-group select:focus{outline:none;border-color:var(--primary,#0d9488);box-shadow:0 0 0 4px rgba(13,148,136,0.1);background:#fff;}
.gw-form-group textarea{resize:vertical;min-height:80px;}
.gw-form-group select{cursor:pointer;appearance:auto;}
.gw-form-submit{width:100%;padding:16px;background:var(--primary,#0d9488);color:#fff;border:none;border-radius:12px;font-size:17px;font-weight:800;font-family:'Sora',sans-serif;cursor:pointer;transition:all 0.3s;box-shadow:0 4px 18px rgba(13,148,136,0.3);}
.gw-form-submit:hover{background:#0f766e;transform:translateY(-2px);box-shadow:0 8px 28px rgba(13,148,136,0.4);}

/* ── Sections ─────────────────────────────────── */
.gw-section{padding:100px 0;}
.gw-section-light{background:#f0fdfa;}
.gw-section-dark{background:linear-gradient(135deg,#042f2e,#134e4a);color:#fff;}
.gw-container{max-width:1280px;margin:0 auto;padding:0 28px;}
.gw-section-header{text-align:center;margin-bottom:56px;}
.gw-section-tag{display:inline-flex;align-items:center;gap:8px;background:rgba(13,148,136,0.08);color:var(--primary,#0d9488);padding:6px 16px;border-radius:8px;font-size:13px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:14px;}
.gw-section-dark .gw-section-tag{background:rgba(45,212,191,0.12);color:#5eead4;}
.gw-section-header h2{font-family:'Sora',sans-serif;font-size:clamp(28px,3.5vw,42px);font-weight:800;color:#0f172a;margin:0 0 12px;letter-spacing:-0.02em;}
.gw-section-dark .gw-section-header h2{color:#fff;}
.gw-section-header p{font-size:17px;color:#64748b;max-width:580px;margin:0 auto;line-height:1.65;}
.gw-section-dark .gw-section-header p{color:rgba(255,255,255,0.6);}

/* ── Services — 4-col mega grid ──────────────── */
.gw-services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.gw-service-card{background:#fff;border-radius:16px;overflow:hidden;border:1px solid #e8f0ed;transition:all 0.4s;box-shadow:0 1px 6px rgba(0,0,0,0.03);}
.gw-service-card:hover{transform:translateY(-8px);box-shadow:0 16px 48px rgba(13,148,136,0.1);border-color:var(--primary,#0d9488);}
.gw-service-img{width:100%;height:160px;overflow:hidden;}
.gw-service-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s;}
.gw-service-card:hover .gw-service-img img{transform:scale(1.08);}
.gw-service-img-ph{width:100%;height:100%;background:linear-gradient(135deg,var(--primary,#0d9488),#14b8a6);display:flex;align-items:center;justify-content:center;}
.gw-service-img-ph i{font-size:40px;color:rgba(255,255,255,0.25);}
.gw-service-body{padding:22px;}
.gw-service-body h3{font-family:'Sora',sans-serif;font-size:18px;font-weight:700;color:#0f172a;margin:0 0 8px;}
.gw-service-body p{font-size:14px;color:#64748b;line-height:1.6;margin:0 0 14px;}
.gw-service-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary,#0d9488);font-weight:700;font-size:13px;text-decoration:none;transition:gap 0.3s;}
.gw-service-link:hover{gap:12px;}

/* ── About ─────────────────────────────────── */
.gw-about-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.gw-about-content h2{font-family:'Sora',sans-serif;font-size:clamp(28px,3vw,38px);font-weight:800;color:#0f172a;margin:0 0 16px;letter-spacing:-0.02em;}
.gw-about-content p{font-size:16px;color:#64748b;line-height:1.75;margin:0 0 28px;}
.gw-about-features{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.gw-about-feature{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:600;color:#334155;}
.gw-about-feature i{width:28px;height:28px;border-radius:50%;background:rgba(13,148,136,0.1);color:var(--primary,#0d9488);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;}
.gw-about-img{border-radius:18px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,0.1);}
.gw-about-img img{width:100%;height:auto;display:block;}
.gw-about-img-ph{width:100%;height:380px;background:linear-gradient(135deg,var(--primary,#0d9488),#14b8a6);display:flex;align-items:center;justify-content:center;font-size:80px;color:rgba(255,255,255,0.15);}

/* ── Testimonials ─────────────────────────────── */
.gw-testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.gw-testimonial-card{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:16px;padding:36px;transition:all 0.3s;backdrop-filter:blur(4px);}
.gw-testimonial-card:hover{background:rgba(255,255,255,0.08);transform:translateY(-4px);border-color:rgba(45,212,191,0.2);}
.gw-testimonial-stars{color:#fbbf24;font-size:16px;margin-bottom:16px;letter-spacing:2px;}
.gw-testimonial-text{font-size:16px;color:rgba(255,255,255,0.8);line-height:1.7;font-style:italic;margin:0 0 24px;}
.gw-testimonial-author{font-weight:700;color:#fff;font-size:15px;}
.gw-testimonial-loc{font-size:13px;color:rgba(255,255,255,0.4);margin-top:2px;}

/* ── FAQ ─────────────────────────────────────── */
.gw-faq-list{max-width:780px;margin:0 auto;}
.gw-faq-item{background:#fff;border-radius:14px;margin-bottom:12px;overflow:hidden;border:1px solid #e8f0ed;transition:all 0.3s;}
.gw-faq-item.active{border-color:var(--primary,#0d9488);box-shadow:0 4px 20px rgba(13,148,136,0.08);}
.gw-faq-question{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;cursor:pointer;font-family:'Sora',sans-serif;font-size:17px;font-weight:700;color:#1e293b;transition:color 0.2s;}
.gw-faq-question:hover{color:var(--primary,#0d9488);}
.gw-faq-question i{transition:transform 0.3s;color:#94a3b8;font-size:14px;}
.gw-faq-item.active .gw-faq-question i{transform:rotate(180deg);color:var(--primary,#0d9488);}
.gw-faq-answer{max-height:0;overflow:hidden;transition:max-height 0.4s cubic-bezier(0.22,1,0.36,1);}
.gw-faq-item.active .gw-faq-answer{max-height:400px;}
.gw-faq-answer-inner{padding:0 28px 24px;font-size:15px;color:#64748b;line-height:1.7;}

/* ── CTA Banner ─────────────────────────────── */
.gw-cta{background:linear-gradient(135deg,var(--primary,#0d9488),#14b8a6);padding:64px 0;text-align:center;position:relative;overflow:hidden;}
.gw-cta::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 50%,rgba(255,255,255,0.1)0%,transparent 60%);}
.gw-cta h2{font-family:'Sora',sans-serif;font-size:clamp(28px,3.5vw,42px);font-weight:800;color:#fff;margin:0 0 14px;position:relative;}
.gw-cta p{font-size:18px;color:rgba(255,255,255,0.85);margin:0 0 32px;position:relative;}
.gw-cta-btn{display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--primary,#0d9488);padding:16px 36px;border-radius:12px;font-weight:800;font-size:17px;text-decoration:none;transition:all 0.3s;position:relative;box-shadow:0 4px 16px rgba(0,0,0,0.12);}
.gw-cta-btn:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,0,0,0.18);}

/* ── Gallery ─────────────────────────────────── */
.gw-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.gw-gallery-item{border-radius:12px;overflow:hidden;aspect-ratio:4/3;}
.gw-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s;}
.gw-gallery-item:hover img{transform:scale(1.08);}

/* ── Contact ─────────────────────────────────── */
.gw-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.gw-contact-card{display:flex;gap:18px;padding:20px 0;border-bottom:1px solid #e8f0ed;}
.gw-contact-icon{width:52px;height:52px;border-radius:14px;background:rgba(13,148,136,0.08);display:flex;align-items:center;justify-content:center;color:var(--primary,#0d9488);font-size:20px;flex-shrink:0;}
.gw-contact-card h4{font-family:'Sora',sans-serif;font-weight:700;color:#0f172a;margin:0 0 4px;font-size:16px;}
.gw-contact-card p,.gw-contact-card a{font-size:15px;color:#64748b;text-decoration:none;margin:0;}
.gw-contact-card a:hover{color:var(--primary,#0d9488);}

/* ── Footer ─────────────────────────────────── */
.gw-footer{background:#021a17;color:rgba(255,255,255,0.6);padding:64px 0 0;}
.gw-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:44px;max-width:1280px;margin:0 auto;padding:0 28px;}
.gw-footer h4{font-family:'Sora',sans-serif;font-size:16px;font-weight:800;color:#fff;margin:0 0 16px;}
.gw-footer p,.gw-footer a{font-size:14px;color:rgba(255,255,255,0.45);text-decoration:none;line-height:1.7;}
.gw-footer a:hover{color:#2dd4bf;}
.gw-footer-links{list-style:none;padding:0;margin:0;}
.gw-footer-links li{margin-bottom:10px;}
.gw-footer-social{display:flex;gap:10px;margin-top:18px;}
.gw-footer-social a{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,0.04);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.45);font-size:17px;transition:all 0.3s;}
.gw-footer-social a:hover{background:var(--primary,#0d9488);color:#fff;transform:translateY(-3px);}
.gw-footer-bottom{border-top:1px solid rgba(255,255,255,0.06);padding:24px 0;margin-top:52px;text-align:center;font-size:13px;}

/* ── Responsive ─────────────────────────────── */
@media(max-width:1024px){.gw-hero-inner{grid-template-columns:1fr;gap:40px;}.gw-services-grid{grid-template-columns:repeat(2,1fr);}.gw-about-grid,.gw-contact-grid{grid-template-columns:1fr;}.gw-testimonials-grid{grid-template-columns:1fr 1fr;}.gw-gallery-grid{grid-template-columns:repeat(3,1fr);}.gw-footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:768px){.gw-topbar-right{display:none;}.gw-nav-links{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;flex-direction:column;padding:20px 28px;gap:14px;box-shadow:0 12px 32px rgba(0,0,0,0.08);}.gw-nav-links.active{display:flex;}.gw-nav-toggle{display:flex;}.gw-services-grid,.gw-testimonials-grid{grid-template-columns:1fr;}.gw-gallery-grid{grid-template-columns:1fr 1fr;}.gw-footer-grid{grid-template-columns:1fr;}.gw-hero h1{font-size:32px;}.gw-hero-split{grid-template-columns:1fr;}}
