/* ==========================================================================
   MSK Design & Constructions — Unified Design System
   One shared stylesheet for index / about / services / portfolio / contact.
   Preserves every existing class name & JS hook; only visuals change.
   ========================================================================== */

/* ---------- Design tokens -------------------------------------------- */
:root{
  color-scheme: light;

  /* Brand palette (kept close to original terracotta/charcoal identity) */
  --primary:#93473A;
  --primary-dark:#742F26;
  --primary-light:#B26D5F;
  --primary-50: 147,71,58;      /* rgb triplet for alpha use */
  --secondary:#22303F;
  --secondary-light:#324459;
  --accent:#D4A24C;
  --gold:#D4AF37;

  --bg:#FBF9F7;
  --surface:#FFFFFF;
  --surface-2:#F5F1EC;
  --border:rgba(34,48,63,.10);
  --text:#22262B;
  --text-muted:#666B72;
  --text-inverse:#F8F5F1;

  --gradient-primary:linear-gradient(135deg,var(--primary),var(--primary-dark));
  --gradient-secondary:linear-gradient(135deg,var(--secondary),var(--secondary-light));
  --gradient-accent:linear-gradient(135deg,var(--accent),var(--gold));

  --shadow-sm:0 1px 2px rgba(20,20,20,.06), 0 1px 1px rgba(20,20,20,.04);
  --shadow-md:0 6px 16px -4px rgba(20,20,20,.12), 0 2px 6px rgba(20,20,20,.06);
  --shadow-lg:0 20px 40px -12px rgba(20,20,20,.18), 0 6px 12px rgba(20,20,20,.08);
  --shadow-xl:0 32px 64px -16px rgba(20,20,20,.28);
  --shadow-glow:0 0 0 4px rgba(var(--primary-50),.14);

  --radius-sm:8px;
  --radius-md:14px;
  --radius-lg:20px;
  --radius-xl:28px;
  --radius-full:999px;

  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.5rem; --space-6:2rem; --space-7:3rem; --space-8:4.5rem;

  --ease:cubic-bezier(.22,1,.36,1);
  --dur-fast:.18s; --dur:.35s; --dur-slow:.6s;

  --container:1240px;
}

[data-theme="dark"]{
  color-scheme: dark;
  --bg:#14161A;
  --surface:#1C1F25;
  --surface-2:#242830;
  --border:rgba(255,255,255,.09);
  --text:#EDEBE8;
  --text-muted:#A2A7AE;
  --text-inverse:#14161A;
  --primary-light:#C98576;
  --shadow-sm:0 1px 2px rgba(0,0,0,.5);
  --shadow-md:0 8px 20px -6px rgba(0,0,0,.55);
  --shadow-lg:0 24px 48px -14px rgba(0,0,0,.6);
  --shadow-xl:0 36px 72px -18px rgba(0,0,0,.7);
}

/* ---------- Reset & base ------------------------------------------------ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Poppins',sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);
}
[class$="-page"]{padding-top:84px;}
img{max-width:100%;display:block;}
ul{list-style:none;}
a{color:inherit;text-decoration:none;}

h1,h2,h3,h4,h5,h6{
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  line-height:1.25;
  letter-spacing:-.01em;
  color:var(--text);
}

.text-gradient{
  background:var(--gradient-primary);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  display:inline-block;
}
.text-center{text-align:center;}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

/* ---------- Section rhythm --------------------------------------------- */
.section-header{text-align:center;margin-bottom:3.5rem;max-width:720px;margin-left:auto;margin-right:auto;}
.section-title{
  font-size:clamp(1.9rem,3.6vw,2.6rem);
  margin-bottom:1rem;color:var(--secondary);position:relative;display:inline-block;
}
[data-theme="dark"] .section-title{color:var(--text);}
.section-title::after{
  content:'';position:absolute;bottom:-12px;left:50%;transform:translateX(-50%);
  width:56px;height:3px;border-radius:var(--radius-full);background:var(--gradient-primary);
}
.section-subtitle{font-size:1.05rem;color:var(--text-muted);max-width:640px;margin:0 auto;}

/* ---------- Buttons — with genuine micro-interactions ------------------- */
.btn-primary,.btn-secondary,.btn-light,.form-submit,.view-project,.view-btn,
.filter-btn,.directions-btn,.cta-button,.call-button{
  font-family:'Montserrat',sans-serif;
  cursor:pointer;border:none;
  transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.btn-primary,.btn-secondary,.btn-light,.form-submit,.view-project{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.95rem 1.9rem;border-radius:var(--radius-full);
  font-weight:600;font-size:.92rem;letter-spacing:.03em;text-transform:uppercase;
  position:relative;overflow:hidden;
}
.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-md);}
.btn-primary::after{
  content:'';position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);
  transform:translateX(-120%);transition:transform .6s var(--ease);
}
.btn-primary:hover::after{transform:translateX(120%);}
.btn-primary:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);}
.btn-primary:active{transform:translateY(-1px) scale(.98);}

.btn-secondary{background:var(--surface);color:var(--primary);border:2px solid var(--primary);}
.btn-secondary:hover{background:var(--primary);color:#fff;transform:translateY(-3px);box-shadow:var(--shadow-md);}
.btn-secondary:active{transform:translateY(-1px) scale(.98);}

.btn-light{background:#fff;color:var(--primary);}
.btn-light:hover{background:var(--primary);color:#fff;transform:translateY(-3px);box-shadow:var(--shadow-md);}

.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-light:focus-visible,
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:8px;
}

/* ---------- Navbar -------------------------------------------------------*/
.navbar{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  background:rgba(251,249,247,.82);
  backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:background var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
[data-theme="dark"] .navbar{background:rgba(20,22,26,.78);}
.navbar.scrolled{box-shadow:var(--shadow-md);border-bottom-color:var(--border);}

.nav-container{
  max-width:1400px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem);
  display:flex;justify-content:space-between;align-items:center;height:80px;
}
.logo{display:flex;align-items:center;gap:.75rem;cursor:pointer;}
.logo-image{
  width:48px;height:48px;border-radius:50%;object-fit:cover;
  border:2px solid var(--primary);box-shadow:var(--shadow-sm);
  transition:transform var(--dur-fast) var(--ease);
}
.logo:hover .logo-image{transform:scale(1.07) rotate(-4deg);}
.logo-icon{display:none;}
.logo-text{display:flex;flex-direction:column;line-height:1;}
.logo-main{font-family:'Cormorant SC',serif;font-size:1.6rem;font-weight:700;color:var(--primary);letter-spacing:.05em;}
.logo-sub{font-family:'Cormorant SC',serif;font-size:.78rem;color:var(--text-muted);font-weight:600;letter-spacing:.18em;}

.nav-menu{display:flex;gap:2.1rem;align-items:center;}
.nav-link{
  display:inline-block;font-weight:600;font-size:.92rem;color:var(--text);padding:.5rem 0;position:relative;
  transition:color var(--dur-fast) var(--ease);
}
.nav-link::after{
  content:'';position:absolute;bottom:0;left:0;width:0;height:2px;border-radius:2px;
  background:var(--gradient-primary);transition:width var(--dur) var(--ease);
}
.nav-link:hover,.nav-link.active{color:var(--primary);}
.nav-link:hover::after,.nav-link.active::after{width:100%;}

.nav-cta .cta-button,.nav-cta .call-button{
  background:var(--gradient-primary);color:#fff;padding:.75rem 1.4rem;border-radius:var(--radius-full);
  font-weight:600;font-size:.85rem;letter-spacing:.02em;display:flex;align-items:center;gap:.5rem;
  box-shadow:var(--shadow-sm);
}
.nav-cta .cta-button:hover,.nav-cta .call-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}

/* Theme toggle */
.theme-toggle{
  width:42px;height:42px;border-radius:50%;border:1px solid var(--border);
  background:var(--surface-2);color:var(--text);display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:1rem;transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
  margin-left:.75rem;
}
.theme-toggle:hover{transform:translateY(-2px) rotate(-8deg);box-shadow:var(--shadow-sm);}
.theme-toggle .fa-sun{display:none;}
[data-theme="dark"] .theme-toggle .fa-sun{display:inline;}
[data-theme="dark"] .theme-toggle .fa-moon{display:none;}
.nav-actions{display:flex;align-items:center;}

.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:.4rem;margin-left:.5rem;}
.hamburger .bar{width:24px;height:2.5px;background:var(--secondary);border-radius:var(--radius-full);transition:all var(--dur-fast) var(--ease);}
[data-theme="dark"] .hamburger .bar{background:var(--text);}
.hamburger.active .bar:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.hamburger.active .bar:nth-child(2){opacity:0;}
.hamburger.active .bar:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}

@media (max-width:768px){
  /* Stack the mobile menu + CTA in normal flow (instead of two absolutely
     positioned panels at the same top offset, which made them overlap). */
  .nav-container{flex-wrap:wrap;row-gap:0;}
  .logo{order:1;}
  .theme-toggle{order:2;}
  .hamburger{display:flex;order:3;}
  .nav-menu{display:none;order:4;width:100%;
    flex-direction:column;align-items:stretch;gap:0;background:var(--surface);
    padding:1.25rem 1.25rem 0;box-shadow:var(--shadow-lg);border-top:1px solid var(--border);}
  .nav-menu.active{display:flex;animation:menuDrop var(--dur) var(--ease);}
  .nav-menu .nav-link{display:block;width:100%;padding:.9rem 1rem;border-radius:var(--radius-sm);}
  .nav-menu .nav-link:hover{background:var(--surface-2);}
  .nav-cta{display:none;order:5;width:100%;}
  .nav-cta.active{display:block;width:100%;margin:0;padding:1rem 1.25rem 1.25rem;
    background:var(--surface);box-shadow:var(--shadow-lg);}
  .nav-cta.active .cta-button,.nav-cta.active .call-button{width:100%;justify-content:center;}
}
@keyframes menuDrop{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}

/* ---------- Hero sliders (home / about / services / portfolio / contact) */
.hero-slider,.about-hero-slider,.services-hero-slider,.portfolio-hero-slider,.contact-hero-slider{
  position:relative;height:100vh;min-height:640px;overflow:hidden;isolation:isolate;
}
.hero-slide,.about-hero-slide,.services-hero-slide,.portfolio-hero-slide,.contact-hero-slide{
  position:absolute;inset:0;opacity:0;transition:opacity 1.2s var(--ease);
  display:flex;align-items:center;justify-content:center;padding:2rem;
}
.hero-slide.active,.about-hero-slide.active,.services-hero-slide.active,
.portfolio-hero-slide.active,.contact-hero-slide.active{opacity:1;z-index:1;}

/* Background image lives on its own layer so it can slowly zoom (Ken Burns
   effect) while the slide is active, independent of the text content. */
.hero-slide::before,.about-hero-slide::before,.services-hero-slide::before,
.portfolio-hero-slide::before,.contact-hero-slide::before{
  content:'';position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;
  transform:scale(1);transition:transform 7s linear;
}
.hero-slide.active::before,.about-hero-slide.active::before,.services-hero-slide.active::before,
.portfolio-hero-slide.active::before,.contact-hero-slide.active::before{transform:scale(1.12);}

/* darker, more premium scrim so text always reads well in both themes */
.slide-1::before,.slide-2::before,.slide-3::before,
.portfolio-slide-1::before,.portfolio-slide-2::before,.portfolio-slide-3::before,
.contact-slide-1::before,.contact-slide-2::before,.contact-slide-3::before{
  background-image:linear-gradient(180deg, rgba(10,12,15,.55), rgba(10,12,15,.82)), var(--slide-img);
}
.slide-1{--slide-img:url('web-bg.jpg');}
.slide-2{--slide-img:url('project1image1.jpeg');}
.slide-3{--slide-img:url('project1image2.jpeg');}
.portfolio-slide-1{--slide-img:url('web-bg.jpg');}
.portfolio-slide-2{--slide-img:url('ongoingproject1image2.jpeg');}
.portfolio-slide-3{--slide-img:url('designsiteimage1.PNG');}
.contact-slide-1{--slide-img:url('web-bg.jpg');}
.contact-slide-2{--slide-img:url('project1image1.jpeg');}
.contact-slide-3{--slide-img:url('project1image2.jpeg');}

.hero-content,.about-hero-content,.services-hero-content,.portfolio-hero-content,.contact-hero-content{
  max-width:900px;text-align:center;position:relative;z-index:2;
}
.hero-title,.about-hero-title,.services-hero-title,.portfolio-hero-title,.contact-hero-title{
  font-size:clamp(2.4rem,5vw,4.2rem);margin-bottom:1.4rem;line-height:1.15;
  font-family:'Raleway',sans-serif;font-weight:800;color:#fff;
  opacity:0;transform:translateY(36px);animation:slideUp .9s var(--ease) .3s forwards;
}
.hero-title span,.about-hero-title span,.services-hero-title span,
.portfolio-hero-title span,.contact-hero-title span{
  background:linear-gradient(120deg,var(--accent),var(--primary-light));
  -webkit-background-clip:text;background-clip:text;color:transparent;display:block;
}
@keyframes slideUp{to{opacity:1;transform:translateY(0);}}

.hero-subtitle,.about-hero-subtitle,.services-hero-subtitle,
.portfolio-hero-subtitle,.contact-hero-subtitle{
  font-size:1.15rem;margin-bottom:2.2rem;color:rgba(255,255,255,.88);line-height:1.8;
  max-width:680px;margin-left:auto;margin-right:auto;
  opacity:0;transform:translateY(24px);animation:slideUp .9s var(--ease) .55s forwards;
}
.hero-buttons,.about-hero-buttons,.services-hero-buttons,
.portfolio-hero-buttons,.contact-hero-buttons{
  display:flex;gap:1.1rem;justify-content:center;flex-wrap:wrap;margin-top:.5rem;
  opacity:0;transform:translateY(24px);animation:slideUp .9s var(--ease) .8s forwards;
}

.hero-breadcrumb,.portfolio-hero-breadcrumb,.contact-hero-breadcrumb{
  display:flex;justify-content:center;gap:.5rem;margin-bottom:1.5rem;font-size:.85rem;color:rgba(255,255,255,.65);
}
.hero-breadcrumb a,.portfolio-hero-breadcrumb a,.contact-hero-breadcrumb a{color:var(--accent);transition:color var(--dur-fast) var(--ease);}
.hero-breadcrumb a:hover,.portfolio-hero-breadcrumb a:hover,.contact-hero-breadcrumb a:hover{color:#fff;}

.slide-counter,.portfolio-slide-counter,.contact-slide-counter{
  position:absolute;bottom:34px;left:50%;transform:translateX(-50%);display:flex;gap:.6rem;z-index:3;
}
.slide-dot,.portfolio-slide-dot,.contact-slide-dot{
  width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.35);cursor:pointer;
  transition:all var(--dur) var(--ease);
}
.slide-dot.active,.portfolio-slide-dot.active,.contact-slide-dot.active{
  background:var(--accent);width:26px;border-radius:var(--radius-full);
}
.slide-nav,.portfolio-slide-nav,.contact-slide-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(255,255,255,.12);backdrop-filter:blur(6px);color:#fff;border:1px solid rgba(255,255,255,.25);
  width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:3;transition:all var(--dur-fast) var(--ease);
}
.slide-nav:hover,.portfolio-slide-nav:hover,.contact-slide-nav:hover{background:var(--primary);border-color:var(--primary);transform:translateY(-50%) scale(1.08);}
.slide-nav.prev,.portfolio-slide-nav.prev,.contact-slide-nav.prev{left:28px;}
.slide-nav.next,.portfolio-slide-nav.next,.contact-slide-nav.next{right:28px;}

.floating-elements,.portfolio-floating-elements,.contact-floating-elements{
  position:absolute;inset:0;pointer-events:none;z-index:1;
}
.floating-element,.portfolio-floating-element,.contact-floating-element{
  position:absolute;font-size:1.4rem;color:rgba(255,255,255,.12);animation:floaty 16s infinite linear;
}
.floating-element:nth-child(1),.portfolio-floating-element:nth-child(1),.contact-floating-element:nth-child(1){top:20%;left:10%;}
.floating-element:nth-child(2),.portfolio-floating-element:nth-child(2),.contact-floating-element:nth-child(2){top:60%;left:85%;animation-delay:-5s;}
.floating-element:nth-child(3),.portfolio-floating-element:nth-child(3),.contact-floating-element:nth-child(3){top:40%;left:90%;animation-delay:-10s;}
.floating-element:nth-child(4),.portfolio-floating-element:nth-child(4),.contact-floating-element:nth-child(4){top:80%;left:15%;animation-delay:-7s;}
.floating-element:nth-child(5),.portfolio-floating-element:nth-child(5),.contact-floating-element:nth-child(5){top:10%;left:70%;animation-delay:-12s;}
@keyframes floaty{0%{transform:translateY(0) rotate(0);opacity:.1;}50%{opacity:.3;}100%{transform:translateY(-100vh) rotate(360deg);opacity:.1;}}
@media (max-width:480px){.floating-element,.portfolio-floating-element,.contact-floating-element{display:none;}}

@media (max-width:768px){
  .hero-slider,.about-hero-slider,.services-hero-slider,.portfolio-hero-slider,.contact-hero-slider{height:92vh;min-height:560px;}
  .slide-nav,.portfolio-slide-nav,.contact-slide-nav{width:40px;height:40px;}
  .slide-nav.prev,.portfolio-slide-nav.prev,.contact-slide-nav.prev{left:12px;}
  .slide-nav.next,.portfolio-slide-nav.next,.contact-slide-nav.next{right:12px;}
}

/* ---------- Stats (home / about / portfolio) ---------------------------- */
.stats-section,.stats-grid,.portfolio-stats{background:var(--surface);}
.stats-container,.stats-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;
  max-width:var(--container);margin:0 auto;padding:4.5rem 1.5rem;
}
.portfolio-stats{margin:-56px auto 0;max-width:1200px;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);
  background:var(--surface);position:relative;z-index:2;padding:3rem 1.5rem;}
.portfolio-stats .stats-container{padding:0;}

.stat-card,.stat-item,.stat-box{
  background:var(--surface-2);border-radius:var(--radius-lg);padding:2.2rem 1.5rem;text-align:center;
  border:1px solid var(--border);box-shadow:var(--shadow-sm);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.stat-card:hover,.stat-item:hover,.stat-box:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:rgba(var(--primary-50),.3);}
/* Scroll-reveal for the home-page stat cards only (kept separate from
   .stat-item/.stat-box so the about-page dark stats band is never affected). */
.stat-card{transition:opacity .7s var(--ease), transform .7s var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);}
.stat-card:not(.animated){opacity:0;transform:translateY(24px);}
.stat-icon{
  width:64px;height:64px;border-radius:50%;background:var(--gradient-primary);color:#fff;
  display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;font-size:1.6rem;
  box-shadow:var(--shadow-md);
}
.stat-number{font-size:2.3rem;font-weight:800;font-family:'Montserrat',sans-serif;color:var(--primary);margin-bottom:.3rem;}
.stat-label,.stat-text{color:var(--text-muted);font-weight:500;}

/* about page dark stats band (always dark, regardless of light/dark site theme) */
#stats.stats-section,.about-page .stats-section,body.about-page section#stats{
  padding:0 !important;
  background-color:#14161a !important;
  background-image:linear-gradient(180deg, rgba(10,12,15,.72), rgba(10,12,15,.82)), url('web-bg.jpg') !important;
  background-position:center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
  background-attachment:scroll !important;
}
.about-page .stats-grid{padding:5rem 1.5rem !important;}
.about-page .stat-item,body.about-page .stat-item{background-color:rgba(255,255,255,.1) !important;border-color:rgba(255,255,255,.2) !important;backdrop-filter:blur(6px) !important;}
.about-page .stat-item .stat-number,.about-page .stat-item .stat-label,body.about-page .stat-item .stat-number,body.about-page .stat-item .stat-label{color:#fff !important;}
.about-page .stat-item:hover{background:rgba(255,255,255,.14) !important;}

/* ---------- CTA sections & banners --------------------------------------*/
.cta-section{
  padding:6rem 1.5rem;text-align:center;color:#fff;position:relative;overflow:hidden;
  background:linear-gradient(160deg, var(--secondary), #101820);
}
.cta-container{max-width:900px;margin:0 auto;position:relative;z-index:1;}
.cta-title{font-size:clamp(1.9rem,4vw,2.6rem);margin-bottom:1.2rem;color:#fff;}
.cta-description{font-size:1.1rem;opacity:.85;margin-bottom:2rem;max-width:680px;margin-left:auto;margin-right:auto;}
.contact-info{background:rgba(255,255,255,.08);padding:1.75rem;border-radius:var(--radius-lg);margin:1.5rem auto;max-width:600px;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);}
.contact-item{display:flex;align-items:center;justify-content:center;gap:.85rem;margin-bottom:.85rem;font-size:1.02rem;}
.contact-item i{color:var(--accent);width:26px;}
.cta-buttons{display:flex;gap:1.1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

.cta-banner{
  background:var(--gradient-primary);color:#fff;padding:3rem 2.5rem;margin:3rem auto;
  border-radius:var(--radius-xl);display:flex;justify-content:space-between;align-items:center;gap:2rem;
  max-width:1160px;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);
}
.cta-banner::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.14) 50%,transparent 70%);}
.cta-banner .cta-content{position:relative;z-index:1;flex:1;}
.cta-banner h3{color:#fff;font-size:1.7rem;margin-bottom:.5rem;}
.cta-banner p{color:rgba(255,255,255,.9);margin-bottom:0;}
.cta-action{position:relative;z-index:1;display:flex;gap:1rem;flex-wrap:wrap;}
.cta-banner .btn-secondary{background:transparent;border-color:#fff;color:#fff;}
.cta-banner .btn-secondary:hover{background:#fff;color:var(--primary);}

.portfolio-cta{
  padding:6rem 1.5rem;text-align:center;color:#fff;position:relative;overflow:hidden;
  background:linear-gradient(180deg, rgba(10,12,15,.7), rgba(10,12,15,.86)), url('web-bg.jpg') center/cover fixed;
}
.portfolio-cta h2{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:1.2rem;color:#fff;}
.portfolio-cta p{font-size:1.1rem;max-width:640px;margin:0 auto 2rem;opacity:.88;}

/* ---------- Footer --------------------------------------------------------*/
.footer{
  background:linear-gradient(180deg, var(--secondary), #0E141B);
  color:var(--text-inverse);padding:4.5rem 1.5rem 0;position:relative;overflow:hidden;
}
.footer::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);}
.footer-content{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:2.5rem;
  max-width:var(--container);margin:0 auto;padding-bottom:3rem;position:relative;z-index:1;
}
.footer-section{display:flex;flex-direction:column;}
.footer-logo{display:flex;align-items:center;gap:.85rem;margin-bottom:1.25rem;}
.footer-logo-image{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--accent);box-shadow:var(--shadow-md);}
.footer-logo i{display:none;}
.footer-brand h3{font-family:'Cormorant SC',serif;font-size:1.6rem;letter-spacing:.05em;color:#fff;}
.footer-brand p{font-family:'Cormorant SC',serif;font-size:.85rem;letter-spacing:.15em;color:rgba(255,255,255,.65);}
.footer-description{color:rgba(255,255,255,.68);line-height:1.7;margin-bottom:1.4rem;font-size:.95rem;}
.social-links{display:flex;gap:.75rem;}
.social-link{
  width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;color:#fff;transition:all var(--dur-fast) var(--ease);
}
.social-link:hover{background:var(--accent);color:#20140b;transform:translateY(-3px);border-color:var(--accent);}
.footer-section h4{font-size:1.05rem;margin-bottom:1.3rem;color:#fff;font-weight:600;position:relative;padding-bottom:.6rem;}
.footer-section h4::after{content:'';position:absolute;bottom:0;left:0;width:32px;height:2px;background:var(--accent);}
.footer-links{display:flex;flex-direction:column;gap:.65rem;}
.footer-links a{color:rgba(255,255,255,.68);font-size:.93rem;display:flex;align-items:center;gap:.4rem;transition:all var(--dur-fast) var(--ease);}
.footer-links a::before{content:'\2192';opacity:0;transform:translateX(-4px);transition:all var(--dur-fast) var(--ease);color:var(--accent);}
.footer-links a:hover{color:#fff;padding-left:4px;}
.footer-links a:hover::before{opacity:1;transform:translateX(0);}
.contact-info-footer p,.footer-section .contact-info p{display:flex;align-items:center;gap:.6rem;margin-bottom:.85rem;color:rgba(255,255,255,.68);font-size:.93rem;}
.contact-info-footer i,.footer-section .contact-info i{color:var(--accent);width:18px;}
.footer-bottom{
  max-width:var(--container);margin:0 auto;padding:1.75rem 0;border-top:1px solid rgba(255,255,255,.1);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;position:relative;z-index:1;
}
.footer-bottom p{color:rgba(255,255,255,.6);font-size:.88rem;}
.footer-extra{display:flex;gap:1.75rem;}
.footer-extra a{color:rgba(255,255,255,.6);font-size:.85rem;transition:color var(--dur-fast) var(--ease);}
.footer-extra a:hover{color:#fff;}

@media (max-width:992px){.footer-content{grid-template-columns:1fr 1fr;}}
@media (max-width:768px){.footer-content{grid-template-columns:1fr;} .footer-bottom{flex-direction:column;text-align:center;}}

/* ---------- Floating WhatsApp + Back to top ------------------------------*/
.whatsapp-float{
  position:fixed;bottom:28px;right:28px;width:58px;height:58px;background:#25D366;color:#fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;box-shadow:0 8px 22px rgba(37,211,102,.4);
  z-index:999;transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.whatsapp-float::before{
  content:'';position:absolute;inset:0;border-radius:50%;background:#25D366;
  animation:waPulse 2.4s var(--ease) infinite;z-index:-1;
}
@keyframes waPulse{0%{opacity:.55;transform:scale(1);}100%{opacity:0;transform:scale(1.7);}}
.whatsapp-float:hover{transform:scale(1.08);box-shadow:0 10px 28px rgba(37,211,102,.55);}
.whatsapp-float .tooltip{
  position:absolute;right:70px;background:var(--secondary);color:#fff;padding:.55rem 1rem;border-radius:var(--radius-sm);
  font-size:.85rem;white-space:nowrap;opacity:0;transform:translateX(10px);transition:all var(--dur-fast) var(--ease);pointer-events:none;
}
.whatsapp-float:hover .tooltip{opacity:1;transform:translateX(0);}

.back-to-top{
  position:fixed;bottom:96px;right:29px;width:48px;height:48px;background:var(--gradient-primary);color:#fff;
  border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(16px);transition:all var(--dur) var(--ease);z-index:999;box-shadow:var(--shadow-md);
}
.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0);}
.back-to-top:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}

@media (max-width:768px){
  .whatsapp-float{width:52px;height:52px;bottom:20px;right:20px;font-size:1.4rem;}
  .back-to-top{bottom:84px;right:22px;width:44px;height:44px;}
}

/* ---------- Reveal-on-scroll utility (used by JS) ------------------------*/
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.visible{opacity:1;transform:translateY(0);}

/* =====================  ABOUT PAGE  ====================================*/
.journey-section{padding:6rem 1.5rem;background:var(--bg);}
.journey-timeline{position:relative;max-width:1100px;margin:0 auto;padding:3rem 0;}
.journey-timeline::before{content:'';position:absolute;left:50%;transform:translateX(-50%);width:3px;height:100%;background:var(--gradient-primary);border-radius:var(--radius-full);opacity:.5;}
.journey-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:4rem;position:relative;opacity:0;transform:translateY(28px);transition:all .7s var(--ease);}
.journey-item.visible{opacity:1;transform:translateY(0);}
.journey-item:nth-child(even){flex-direction:row-reverse;}
.journey-content{
  width:45%;background:var(--surface);padding:2.2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);
  border:1px solid var(--border);position:relative;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.journey-content:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl);}
.journey-year{
  position:absolute;top:-22px;left:50%;transform:translateX(-50%);background:var(--gradient-primary);color:#fff;
  padding:.6rem 1.6rem;border-radius:var(--radius-full);font-weight:700;font-size:1.05rem;white-space:nowrap;box-shadow:var(--shadow-md);z-index:2;
}
.journey-marker{position:absolute;left:50%;transform:translateX(-50%);width:20px;height:20px;background:var(--surface);border:4px solid var(--primary);border-radius:50%;z-index:2;box-shadow:0 0 0 5px rgba(var(--primary-50),.15);}
.journey-item:nth-child(odd) .journey-marker{right:-10px;left:auto;}
.journey-item:nth-child(even) .journey-marker{left:-10px;right:auto;}
.journey-icon{width:60px;height:60px;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;font-size:1.5rem;color:#fff;}
.journey-content h3{font-size:1.3rem;margin-bottom:.75rem;}
.journey-content p{color:var(--text-muted);line-height:1.75;margin-bottom:1.1rem;}
.journey-highlight{display:inline-block;background:rgba(var(--primary-50),.1);color:var(--primary);padding:.4rem .9rem;border-radius:var(--radius-full);font-size:.85rem;font-weight:600;}

.mission-section,.team-section{padding:6rem 1.5rem;}
.mission-section{background:var(--surface);}
.team-section{background:var(--bg);}
.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;max-width:var(--container);margin:0 auto;}
.mission-card{
  text-align:center;padding:2.4rem;border-radius:var(--radius-lg);background:var(--surface-2);
  border:1px solid var(--border);box-shadow:var(--shadow-sm);
  transition:opacity .7s var(--ease), transform .35s var(--ease), box-shadow var(--dur) var(--ease);
}
.mission-card:not(.animated){opacity:0;transform:translateY(24px);}
.mission-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);}
.mission-icon{width:74px;height:74px;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.4rem;font-size:1.9rem;color:#fff;}
.mission-card:nth-child(2) .mission-icon{background:var(--gradient-secondary);}
.mission-card:nth-child(3) .mission-icon{background:var(--gradient-accent);}
.mission-card h3{font-size:1.3rem;margin-bottom:.85rem;}
.mission-card p{color:var(--text-muted);line-height:1.75;}

.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:2.2rem;max-width:var(--container);margin:0 auto;}
.team-card{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:opacity .7s var(--ease), transform .35s var(--ease), box-shadow var(--dur) var(--ease);}
.team-card:not(.animated){opacity:0;transform:translateY(24px);}
.team-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);}
.founder-img,.architect-img,.engineer-img,.team-img{
  width:100%;height:280px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;
  background-size:cover;background-position:center;transition:transform .6s var(--ease);
}
.founder-img{background-image:linear-gradient(0deg,rgba(10,12,15,.55),rgba(10,12,15,.1)),url('founder.jpeg');}
.architect-img{background-image:linear-gradient(0deg,rgba(10,12,15,.55),rgba(10,12,15,.1)),url('architect.jpeg');}
.engineer-img{background-image:linear-gradient(0deg,rgba(10,12,15,.55),rgba(10,12,15,.1)),url('civilengineer.jpeg');}
.team-card:hover .founder-img,.team-card:hover .architect-img,.team-card:hover .engineer-img{transform:scale(1.06);}
.team-img i{font-size:4.5rem;color:rgba(255,255,255,.85);}
.team-info{padding:1.8rem;text-align:center;}
.team-info h4{font-size:1.2rem;margin-bottom:.35rem;}
.team-role{color:var(--primary);font-weight:600;font-size:.85rem;margin-bottom:.9rem;display:block;letter-spacing:.04em;}
.team-desc{color:var(--text-muted);font-size:.92rem;line-height:1.7;margin-bottom:.9rem;}
.team-social{display:flex;justify-content:center;gap:.85rem;margin-top:.9rem;}
.team-social a{width:34px;height:34px;background:var(--surface-2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--primary);transition:all var(--dur-fast) var(--ease);}
.team-social a:hover{background:var(--primary);color:#fff;transform:translateY(-3px);}

@media (max-width:992px){
  .journey-timeline::before{left:24px;}
  .journey-item{flex-direction:column !important;align-items:flex-start;margin-left:56px;}
  .journey-content{width:100%;}
  .journey-year{left:-70px;transform:translateX(0);}
  .journey-marker{left:-34px !important;right:auto !important;}
}
@media (max-width:768px){.mission-grid,.team-grid{grid-template-columns:1fr;}}

/* =====================  SERVICES PAGE  ==================================*/
.service-nav{background:var(--surface);position:sticky;top:80px;z-index:900;box-shadow:var(--shadow-sm);border-bottom:1px solid var(--border);}
.service-nav-container{max-width:var(--container);margin:0 auto;display:flex;justify-content:center;flex-wrap:wrap;}
.service-nav-item{flex:1;min-width:180px;text-align:center;}
.service-nav-link{
  display:block;padding:1.15rem 1rem;color:var(--text-muted);font-weight:600;font-size:.92rem;
  border-bottom:3px solid transparent;transition:all var(--dur-fast) var(--ease);background:var(--surface);
}
.service-nav-link:hover{color:var(--primary);background:rgba(var(--primary-50),.05);}
.service-nav-link.active{color:var(--primary);border-bottom-color:var(--primary);background:rgba(var(--primary-50),.06);}
.service-nav-icon{display:block;font-size:1.3rem;margin-bottom:.4rem;}

.service-section{padding:5.5rem 1.5rem;scroll-margin-top:150px;}
.service-section:nth-child(even){background:var(--surface-2);}
.service-container{max-width:var(--container);margin:0 auto;}
.service-header{text-align:center;margin-bottom:3rem;max-width:760px;margin-left:auto;margin-right:auto;}
.service-icon-large{width:92px;height:92px;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.4rem;font-size:2.2rem;color:#fff;box-shadow:var(--shadow-md);}
.service-title{font-size:clamp(1.7rem,3.6vw,2.3rem);margin-bottom:.85rem;}
.service-subtitle{color:var(--text-muted);font-size:1.05rem;}

.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.75rem;margin-bottom:2.5rem;}
.feature-card{
  background:var(--surface);padding:2.2rem;border-radius:var(--radius-lg);text-align:center;
  border:1px solid var(--border);box-shadow:var(--shadow-sm);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.feature-card.animated{opacity:1;transform:translateY(0);}
.feature-card:not(.animated){opacity:0;transform:translateY(24px);}
.feature-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);}
.feature-icon{width:64px;height:64px;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;font-size:1.6rem;color:#fff;transition:transform .5s var(--ease);}
.feature-card:hover .feature-icon{transform:rotate(8deg) scale(1.08);}
.feature-title{font-size:1.2rem;margin-bottom:.8rem;transition:color var(--dur-fast) var(--ease);}
.feature-card:hover .feature-title{color:var(--primary);}
.feature-desc{color:var(--text-muted);line-height:1.75;}

.process-section{background:var(--surface);padding:6rem 1.5rem;}
.process-timeline{position:relative;padding:3rem 0;max-width:1100px;margin:0 auto;}
.process-timeline::before{content:'';position:absolute;left:50%;transform:translateX(-50%);width:3px;height:100%;background:var(--gradient-primary);border-radius:var(--radius-full);opacity:.5;}
.process-step{display:flex;justify-content:space-between;align-items:center;margin-bottom:4rem;position:relative;opacity:0;transform:translateY(28px);transition:all .7s var(--ease);}
.process-step.visible{opacity:1;transform:translateY(0);}
.process-step:nth-child(even){flex-direction:row-reverse;}
.step-content{width:45%;background:var(--surface);padding:2.2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--border);transition:transform var(--dur) var(--ease);}
.step-content:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl);}
.step-number{position:absolute;top:-22px;left:50%;transform:translateX(-50%);background:var(--gradient-primary);color:#fff;padding:.55rem 1.5rem;border-radius:var(--radius-full);font-weight:700;box-shadow:var(--shadow-md);z-index:2;}
.step-marker{position:absolute;left:50%;transform:translateX(-50%);width:20px;height:20px;background:var(--surface);border:4px solid var(--primary);border-radius:50%;z-index:2;box-shadow:0 0 0 5px rgba(var(--primary-50),.15);}
.process-step:nth-child(odd) .step-marker{right:-10px;left:auto;}
.process-step:nth-child(even) .step-marker{left:-10px;right:auto;}
.step-icon{width:56px;height:56px;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;font-size:1.4rem;color:#fff;}
.step-title{font-size:1.25rem;margin-bottom:.8rem;}
.step-desc{color:var(--text-muted);line-height:1.75;}

.why-choose-section{background:var(--surface-2);padding:6rem 1.5rem;}
.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.75rem;max-width:var(--container);margin:0 auto;}
.advantage-card{background:var(--surface);padding:2rem;border-radius:var(--radius-lg);text-align:center;border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:all var(--dur) var(--ease);}
.advantage-card.animated{opacity:1;transform:translateY(0);}
.advantage-card:not(.animated){opacity:0;transform:translateY(24px);}
.advantage-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:var(--shadow-lg);}
.advantage-icon{width:64px;height:64px;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;font-size:1.6rem;color:#fff;transition:transform .4s var(--ease);}
.advantage-card:hover .advantage-icon{transform:rotate(-10deg) scale(1.08);}
.advantage-card h4{font-size:1.1rem;margin-bottom:.7rem;transition:color var(--dur-fast) var(--ease);}
.advantage-card:hover h4{color:var(--primary);}
.advantage-card p{color:var(--text-muted);line-height:1.75;}

@media (max-width:992px){
  .process-timeline::before{left:24px;}
  .process-step{flex-direction:column !important;align-items:flex-start;margin-left:56px;}
  .step-content{width:100%;}
  .step-number{left:-70px;transform:translateX(0);}
  .step-marker{left:-34px !important;right:auto !important;}
  .service-nav-container{flex-direction:column;}
}
@media (max-width:768px){.features-grid,.advantages-grid{grid-template-columns:1fr;}}

/* =====================  PORTFOLIO PAGE  =================================*/
.filter-nav{background:var(--surface);padding:1.75rem;position:sticky;top:80px;z-index:890;box-shadow:var(--shadow-sm);border-bottom:1px solid var(--border);}
.filter-container{max-width:var(--container);margin:0 auto;text-align:center;}
.filter-title{font-size:1.05rem;color:var(--primary);margin-bottom:1.1rem;font-weight:600;}
.filter-buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:.7rem;}
.filter-btn{
  background:var(--surface);border:1.5px solid var(--border);color:var(--text-muted);
  padding:.65rem 1.5rem;border-radius:var(--radius-full);font-weight:600;font-size:.88rem;
}
.filter-btn:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px);}
.filter-btn.active{background:var(--gradient-primary);color:#fff;border-color:transparent;box-shadow:var(--shadow-sm);}

.projects-section{padding:4.5rem 1.5rem;background:var(--bg);}
.projects-container{max-width:1400px;margin:0 auto;}
.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:2.2rem;margin-bottom:3.5rem;}
.project-card{
  background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);
  border:1px solid var(--border);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  animation:fadeInUp .6s var(--ease);
}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.project-card.hidden{display:none;}
.project-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-xl);}
.project-image{height:240px;position:relative;overflow:hidden;}
.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.project-card:hover .project-image img{transform:scale(1.08);}
.image-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,12,15,.85),transparent 60%);display:flex;align-items:flex-end;justify-content:center;padding-bottom:1.5rem;opacity:0;transition:opacity var(--dur) var(--ease);}
.project-card:hover .image-overlay{opacity:1;}
.view-btn{background:var(--gradient-primary);color:#fff;padding:.75rem 1.6rem;border-radius:var(--radius-full);font-weight:600;display:flex;align-items:center;gap:.5rem;transform:translateY(14px);box-shadow:var(--shadow-md);}
.project-card:hover .view-btn{transform:translateY(0);}
.view-btn:hover{transform:translateY(-2px) !important;}
.project-info{padding:1.75rem;}
.project-category{display:inline-block;background:rgba(var(--primary-50),.1);color:var(--primary);padding:.35rem 1rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:600;margin-bottom:.9rem;letter-spacing:.02em;}
.category-interior .project-category{background:rgba(72,187,120,.12);color:#2f8f5b;}
.category-renovation .project-category{background:rgba(159,122,234,.12);color:#7c4fd6;}
.project-title{font-size:1.3rem;margin-bottom:.6rem;line-height:1.3;}
.project-location{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.9rem;margin-bottom:1.2rem;}
.project-location i{color:var(--primary);}
.project-details{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.2rem;padding:1rem;background:var(--surface-2);border-radius:var(--radius-sm);}
.detail-item{display:flex;align-items:center;gap:.6rem;font-size:.85rem;}
.detail-item i{color:var(--primary);width:18px;}
.project-description{color:var(--text-muted);line-height:1.65;font-size:.92rem;margin-bottom:0;}

.empty-state{text-align:center;padding:5rem 1.5rem;display:none;}
.empty-state.active{display:block;animation:fadeInUp .5s var(--ease);}
.empty-icon{font-size:3.5rem;color:var(--border);margin-bottom:1.2rem;}
.empty-title{font-size:1.5rem;color:var(--text-muted);margin-bottom:.85rem;}
.empty-text{color:var(--text-muted);max-width:460px;margin:0 auto 1.75rem;line-height:1.75;}

.testimonials-section{padding:6rem 1.5rem;background:var(--surface-2);}
.video-testimonials{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2.2rem;}
.video-testimonial-card{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--border);transition:transform var(--dur) var(--ease);}
.video-testimonial-card:hover{transform:translateY(-6px);}
.video-box video{width:100%;height:230px;object-fit:cover;border-bottom:3px solid var(--accent);}
.testimonial-info{padding:1.7rem;}
.client-quote{color:var(--text-muted);line-height:1.7;margin-bottom:1.1rem;font-style:italic;}
.client-details strong{display:block;font-size:1.02rem;}
.client-details span{font-size:.88rem;color:var(--text-muted);}

/* Lightbox modal */
.lightbox-modal{position:fixed;inset:0;background:rgba(8,9,11,.92);z-index:9999;display:none;align-items:center;justify-content:center;opacity:0;transition:opacity var(--dur) var(--ease);}
.lightbox-modal.active{display:flex;opacity:1;}
.lightbox-content{width:90%;max-width:1000px;max-height:90vh;background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);animation:zoomIn .3s var(--ease);}
@keyframes zoomIn{from{transform:scale(.92);opacity:.6;}to{transform:scale(1);opacity:1;}}
.lightbox-media-container{height:50vh;min-height:300px;background:#000;position:relative;overflow:hidden;flex-shrink:0;}
.image-slider{position:relative;width:100%;height:100%;}
.slider-image{position:absolute;inset:0;opacity:0;transition:opacity .5s var(--ease);display:flex;align-items:center;justify-content:center;}
.slider-image.active{opacity:1;z-index:1;}
.slider-image img,.slider-image video{max-width:100%;max-height:100%;object-fit:contain;}
.slider-controls{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:14px;z-index:2;}
.slider-prev,.slider-next{background:rgba(255,255,255,.15);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);color:#fff;width:38px;height:38px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast) var(--ease);}
.slider-prev:hover,.slider-next:hover{background:var(--primary);border-color:var(--primary);}
.slider-dots{display:flex;gap:7px;}
.slider-dots .dot{width:8px;height:8px;background:rgba(255,255,255,.4);border-radius:50%;cursor:pointer;transition:all var(--dur-fast) var(--ease);}
.slider-dots .dot.active{background:var(--accent);transform:scale(1.25);}
.lightbox-info{padding:1.8rem;overflow-y:auto;max-height:calc(40vh - 4rem);}
.lightbox-title{font-size:1.6rem;margin-bottom:1.2rem;color:var(--primary);padding-right:40px;}
.lightbox-description{color:var(--text-muted);line-height:1.75;margin-bottom:1.6rem;}
.lightbox-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1.1rem;margin-bottom:1rem;padding:1.2rem;background:var(--surface-2);border-radius:var(--radius-md);}
.lightbox-detail{padding:1rem;background:var(--surface);border-radius:var(--radius-sm);text-align:center;box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:transform var(--dur-fast) var(--ease);}
.lightbox-detail:hover{transform:translateY(-3px);}
.detail-label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:.4rem;}
.detail-value{font-size:1.05rem;font-weight:700;color:var(--primary);}
.lightbox-close{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast) var(--ease);z-index:10000;}
.lightbox-close:hover{background:var(--primary);transform:rotate(90deg);}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast) var(--ease);z-index:10000;}
.lightbox-nav.prev{left:20px;} .lightbox-nav.next{right:20px;}
.lightbox-nav:hover{background:var(--primary);}
.lightbox-info::-webkit-scrollbar{width:7px;}
.lightbox-info::-webkit-scrollbar-track{background:transparent;}
.lightbox-info::-webkit-scrollbar-thumb{background:var(--primary);border-radius:4px;}

@media (max-width:768px){
  .projects-grid{grid-template-columns:1fr;}
  .project-details{grid-template-columns:1fr;}
  .lightbox-content{width:95%;height:95vh;}
  .lightbox-media-container{height:35vh;min-height:230px;}
  .lightbox-info{padding:1.4rem;max-height:calc(60vh - 3rem);}
  .lightbox-details{grid-template-columns:repeat(2,1fr);}
}

/* =====================  CONTACT PAGE  ====================================*/
.contact-info-section{padding:6rem 1.5rem;background:var(--surface);}
.info-container{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.75rem;}
.info-card{background:var(--surface-2);padding:2.2rem 1.75rem;border-radius:var(--radius-lg);text-align:center;border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:opacity .7s var(--ease), transform .35s var(--ease), box-shadow var(--dur) var(--ease);}
.info-card:not(.animated){opacity:0;transform:translateY(24px);}
.info-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);}
.info-icon{width:64px;height:64px;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;font-size:1.6rem;color:#fff;transition:transform .5s var(--ease);}
.info-card:hover .info-icon{transform:rotate(8deg) scale(1.08);}
.info-title{font-size:1.15rem;margin-bottom:.85rem;font-weight:600;}
.info-details{color:var(--text-muted);line-height:1.6;}
.info-link{color:var(--primary);font-weight:600;margin-top:.9rem;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:gap var(--dur-fast) var(--ease);}
.info-link:hover{gap:.75rem;}

.contact-main-section{padding:6rem 1.5rem;background:var(--bg);}
.contact-container{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;}
.contact-form-container,.contact-details-container{background:var(--surface);padding:2.6rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--border);}
.form-title,.details-title{font-size:1.7rem;margin-bottom:.4rem;}
.form-subtitle,.details-subtitle{color:var(--text-muted);}
.contact-form{margin-top:1.75rem;}
.form-group{margin-bottom:1.4rem;}
.form-label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.92rem;}
.form-input,.form-textarea,.form-select{
  width:100%;padding:.9rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);
  font-family:'Poppins',sans-serif;font-size:.98rem;background:var(--surface-2);color:var(--text);
  transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.form-input:hover,.form-textarea:hover,.form-select:hover{border-color:rgba(var(--primary-50),.4);}
.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 4px rgba(var(--primary-50),.12);}
.form-textarea{min-height:140px;resize:vertical;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.form-submit{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm);margin-top:.5rem;}
.form-submit:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.form-submit:disabled{opacity:.65;cursor:not-allowed;transform:none;}
#form-status{margin-bottom:1rem;}
#form-status .status-success,#form-status .status-error{
  padding:1rem;border-radius:var(--radius-sm);display:flex;align-items:flex-start;gap:.7rem;font-size:.92rem;
  animation:fadeInUp .4s var(--ease);
}
#form-status .status-success{background:rgba(16,163,74,.12);color:#1a7f43;}
#form-status .status-error{background:rgba(220,38,38,.12);color:#c0392b;}
.form-input.invalid,.form-textarea.invalid,.form-select.invalid{border-color:#e11d48;}

.contact-method{padding:1.5rem 0;border-bottom:1px solid var(--border);}
.contact-method:first-of-type{padding-top:0;}
.contact-method:last-of-type{border-bottom:none;padding-bottom:0;}
.method-header{display:flex;align-items:center;gap:.9rem;margin-bottom:.7rem;}
.method-icon{width:44px;height:44px;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;flex-shrink:0;transition:transform var(--dur-fast) var(--ease);}
.method-header h4{font-size:1.05rem;margin:0;}
.method-content{padding-left:calc(44px + .9rem);}
.method-content p{color:var(--text-muted);line-height:1.6;margin-bottom:0;}
.method-content p a{color:var(--primary);font-weight:600;}
.method-link{color:var(--primary);font-weight:600;margin-top:.6rem;display:flex;align-items:center;gap:.5rem;transition:gap var(--dur-fast) var(--ease);}
.method-link:hover{gap:.75rem;}
.contact-method:hover .method-icon{transform:scale(1.08) rotate(-6deg);}
.business-hours{margin-top:1.5rem;}
.hours-title{font-size:1.1rem;margin-bottom:.85rem;}
.hours-item{display:flex;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid var(--border);font-size:.92rem;}
.hours-item:last-child{border-bottom:none;}
.hours-time{color:var(--primary);font-weight:600;}

.map-section{padding:6rem 1.5rem;background:var(--surface);}
.map-container{max-width:var(--container);margin:0 auto;}
.map-header{text-align:center;margin-bottom:2.5rem;}
.map-title{font-size:1.7rem;margin-bottom:.4rem;}
.map-subtitle{color:var(--text-muted);max-width:600px;margin:0 auto;}
.map-wrapper{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-xl);height:460px;position:relative;}
.map-placeholder{width:100%;height:100%;background:linear-gradient(180deg, rgba(10,12,15,.6), rgba(10,12,15,.82)), url('web-bg.jpg') center/cover;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;padding:2rem;}
.map-placeholder i{font-size:3.5rem;margin-bottom:1.3rem;opacity:.9;}
.map-placeholder h3{color:#fff;margin-bottom:.5rem;}
.map-placeholder p{color:rgba(255,255,255,.85);max-width:400px;margin-bottom:0;}
.directions-btn{position:absolute;bottom:20px;right:20px;background:var(--gradient-primary);color:#fff;padding:.8rem 1.5rem;border-radius:var(--radius-full);font-weight:600;display:flex;align-items:center;gap:.5rem;box-shadow:var(--shadow-md);}
.directions-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);}

@media (max-width:992px){
  .contact-container{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
}
@media (max-width:768px){
  .info-container{grid-template-columns:1fr;}
  .contact-form-container,.contact-details-container{padding:1.75rem;}
  .method-header{justify-content:center;}
  .method-content{padding-left:0;text-align:center;}
  .method-link{justify-content:center;}
  .directions-btn{position:relative;bottom:auto;right:auto;margin-top:1rem;width:100%;justify-content:center;}
}
