:root {
  --color-bg: #f4f7fb;
  --color-surface: #ffffff;
  --color-text: #112033;
  --color-text-soft: #5d6978;
  --color-dark: #0f1e34;
  --color-dark-2: #171d25;
  --color-border: rgba(17, 32, 51, 0.1);
  --color-accent: #f39220;
  --color-accent-2: #ffc54c;
  --color-focus: #ffdd8a;
  --shadow-sm: 0 10px 30px rgba(10, 19, 31, 0.08);
  --shadow-lg: 0 24px 80px rgba(9, 17, 29, 0.18);
  --radius-sm: 12px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-pill: 999px;
  --container: min(1180px, calc(100% - 2rem));
  --header-height: 88px;
  --transition: 220ms ease;
}
*,*::before,*::after{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--color-text);background:var(--color-bg);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility} a{color:inherit;text-decoration:none} img{max-width:100%;display:block} svg{fill:currentColor} button,a,input,textarea,select{transition:background-color var(--transition),border-color var(--transition),color var(--transition),transform var(--transition),box-shadow var(--transition),opacity var(--transition)} :focus-visible{outline:3px solid var(--color-focus);outline-offset:3px} .container{width:var(--container);margin-inline:auto} .visually-hidden,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0} .skip-link{left:1rem;top:1rem;z-index:10000;background:var(--color-accent);color:var(--color-dark);padding:.75rem 1rem;border-radius:var(--radius-sm);font-weight:700}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(12,19,31,.72);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)} .site-header.is-scrolled{background:rgba(12,19,31,.92);box-shadow:0 18px 50px rgba(0,0,0,.28)} .site-header__inner{display:flex;align-items:center;gap:1rem;min-height:var(--header-height)} .site-brand{flex-shrink:0}.site-brand img{width:clamp(172px,21vw,240px);height:auto} .site-nav{margin-left:auto}.site-nav__list{display:flex;align-items:center;gap:.25rem;list-style:none;margin:0;padding:0}.site-nav__link{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.8rem 1rem;font-weight:700;color:rgba(255,255,255,.88);border-radius:var(--radius-pill)} .site-nav__link::after{content:"";position:absolute;left:1rem;right:1rem;bottom:.45rem;height:2px;border-radius:var(--radius-pill);transform:scaleX(0);transform-origin:center;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-2));transition:transform var(--transition)} .site-nav__link:hover,.site-nav__link.is-active{color:#fff}.site-nav__link:hover::after,.site-nav__link.is-active::after{transform:scaleX(1)} .site-social{display:inline-flex;align-items:center;gap:.35rem;margin-left:.5rem}.social-link{display:inline-grid;place-items:center;width:44px;height:44px;color:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.14);border-radius:50%;background:rgba(255,255,255,.04)} .social-link:hover{color:var(--color-dark);background:var(--color-accent);border-color:var(--color-accent);transform:translateY(-1px)} .social-link svg{width:20px;height:20px}
.nav-toggle{display:none;margin-left:auto;padding:0;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;cursor:pointer}.nav-toggle__line{display:block;width:20px;height:2px;margin:5px auto;background:currentColor;border-radius:99px}.system-messages{position:relative;z-index:1}
.hero{position:relative;isolation:isolate;min-height:min(92vh,960px);display:flex;align-items:center;overflow:clip;background:var(--color-dark)} .hero__media,.hero__overlay{position:absolute;inset:0} .hero__media{background-image:linear-gradient(110deg,rgba(14,27,46,.92),rgba(14,27,46,.56) 45%,rgba(14,27,46,.3)),url('../images/hero-construction.svg');background-position:center;background-size:cover;transform:scale(1.02)} .hero__overlay{background:radial-gradient(circle at 80% 20%,rgba(243,146,32,.22),transparent 28%),linear-gradient(180deg,transparent 0%,rgba(15,30,52,.12) 55%,rgba(15,30,52,.82) 100%)} .hero__content{position:relative;z-index:1;padding-block:8rem 6rem;color:#fff}
.eyebrow{display:inline-flex;align-items:center;gap:.65rem;font-size:.9rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent-2);margin-bottom:1rem}.eyebrow::before{content:"";width:2.5rem;height:2px;border-radius:99px;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-2))}.hero h1,.page-hero h1,.error-page h1{font-size:clamp(2.6rem,5vw,5rem);line-height:1.05;margin:0 0 1.1rem;letter-spacing:-.03em}.hero__lead,.page-hero p{max-width:58rem;margin:0;color:rgba(255,255,255,.9);font-size:clamp(1rem,1.6vw,1.18rem)} .hero__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.9rem 1.35rem;font-weight:800;border-radius:var(--radius-pill);border:1px solid transparent;cursor:pointer}.btn--primary{color:var(--color-dark);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-2));box-shadow:0 16px 30px rgba(243,146,32,.28)} .btn--primary:hover{transform:translateY(-2px);box-shadow:0 22px 40px rgba(243,146,32,.35)} .btn--secondary{color:#fff;border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.06)} .btn--secondary:hover{background:rgba(255,255,255,.12)} .text-link{color:var(--color-accent);font-weight:800}.text-link:hover{color:var(--color-dark)} .hero__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;list-style:none;padding:0;margin:3rem 0 0;max-width:54rem}.hero__stats li{padding:1rem 1.1rem;background:rgba(255,255,255,.08);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md)} .hero__stats strong{display:block;font-size:1.45rem;line-height:1.1;color:#fff}.hero__stats span{color:rgba(255,255,255,.8);font-size:.96rem}
.section{padding-block:clamp(4rem,9vw,6.5rem)} .section--light{background:var(--color-bg)} .section--dark{background:linear-gradient(180deg,var(--color-dark),#152845);color:#fff} .section--trust{background:linear-gradient(180deg,#fff,#f4f7fb)} .section-heading{max-width:44rem;margin-bottom:2.4rem}.section-heading--between{max-width:none;display:flex;align-items:end;justify-content:space-between;gap:1rem}.section-heading h2,.about-card h2,.why-us h2{margin:0 0 .9rem;font-size:clamp(2rem,3vw,3rem);line-height:1.15;letter-spacing:-.03em}.section-heading p,.about-card p,.why-us__content>p{margin:0;color:var(--color-text-soft);font-size:1.04rem}.section--dark .section-heading p,.section--dark .why-us__content>p,.section--dark .feature-list__item p{color:rgba(255,255,255,.78)}
.card-grid,.testimonial-grid,.values-grid,.projects-grid{display:grid;gap:1.2rem}.card-grid--services,.values-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.card,.project-card,.testimonial-card,.about-card,.gallery-card,.error-page__card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)} .service-card,.value-card{padding:1.5rem;min-height:100%}.service-card__icon,.value-card__icon{display:inline-grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,rgba(243,146,32,.12),rgba(255,197,76,.18));color:var(--color-accent);margin-bottom:1.2rem}.service-card__icon svg,.value-card__icon svg,.feature-list__icon svg,.testimonial-card__stars svg{width:24px;height:24px}.service-card h3,.project-card h3,.value-card h3,.feature-list__item h3,.testimonial-card__author{margin:0 0 .55rem;font-size:1.2rem}.service-card p,.project-card p,.value-card p,.feature-list__item p,.testimonial-card blockquote,.site-footer__text,.about-card p,.component-section{margin:0;color:var(--color-text-soft)}
.why-us{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:2rem;align-items:center}.why-us__visual img,.page-hero__image img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)} .feature-list{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:1rem}.feature-list__item{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;padding:1rem 1.15rem;border-radius:var(--radius-md);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)} .feature-list__icon{display:inline-grid;place-items:center;width:42px;height:42px;color:var(--color-dark);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-2));border-radius:50%;flex-shrink:0}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card{overflow:hidden}.project-card__media{aspect-ratio:16/10;overflow:hidden}.project-card__media img,.gallery-card__media img{width:100%;height:100%;object-fit:cover}.project-card__media img{transition:transform 500ms ease}.project-card:hover .project-card__media img{transform:scale(1.04)} .project-card__body{padding:1.35rem}.project-card__meta,.testimonial-card__role{display:inline-block;margin-bottom:.6rem;font-size:.9rem;font-weight:700;color:var(--color-accent)} .testimonial-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.testimonial-card{padding:1.5rem}.testimonial-card__stars{display:flex;gap:.2rem;color:var(--color-accent);margin-bottom:1rem}.testimonial-card blockquote{font-size:1.02rem;line-height:1.7;min-height:9rem}
.page-hero{position:relative;overflow:clip;color:#fff;background:linear-gradient(135deg,var(--color-dark),#162946 58%,#1f3558 100%)} .page-hero::before,.page-hero::after{content:"";position:absolute;inset:auto;pointer-events:none}.page-hero::before{width:32rem;height:32rem;right:-8rem;top:-8rem;border-radius:50%;background:radial-gradient(circle,rgba(243,146,32,.22),transparent 60%)} .page-hero::after{left:0;right:0;bottom:0;height:1px;background:rgba(255,255,255,.1)} .page-hero .container{position:relative;z-index:1;padding-block:clamp(4.5rem,8vw,6rem)} .page-hero__content--split{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,480px);gap:2rem;align-items:center}.about-grid{display:grid;grid-template-columns:minmax(280px,1.05fr) minmax(0,1.35fr);gap:1.5rem;align-items:start}.about-card--intro{padding:1.6rem}.section--gallery{padding-top:3rem}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}.gallery-card{position:relative;overflow:hidden;min-height:19rem;color:#fff;isolation:isolate}.gallery-card:nth-child(1),.gallery-card:nth-child(4){grid-column:span 7}.gallery-card:nth-child(2),.gallery-card:nth-child(3),.gallery-card:nth-child(5),.gallery-card:nth-child(6){grid-column:span 5}.gallery-card__media{display:block;position:absolute;inset:0}.gallery-card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.58))}.gallery-card__overlay{position:absolute;inset-inline:0;bottom:0;z-index:1;display:flex;flex-direction:column;gap:.2rem;padding:1.35rem;transform:translateY(8px)} .gallery-card__overlay strong{font-size:1.15rem}.gallery-card__overlay span{color:rgba(255,255,255,.78);font-size:.92rem}.gallery-card:hover img,.gallery-card:focus-visible img{transform:scale(1.05)} .gallery-card img{transition:transform 500ms ease}
.lightbox{position:fixed;inset:0;z-index:2000}.lightbox[hidden]{display:none}.lightbox__backdrop{position:absolute;inset:0;background:rgba(8,13,22,.82);backdrop-filter:blur(6px)} .lightbox__dialog{position:relative;width:min(1200px,calc(100% - 2rem));margin:min(5vh,2rem) auto;max-height:calc(100vh - 4rem);padding:1rem;border-radius:24px;background:#101720;box-shadow:var(--shadow-lg)} .lightbox__image{width:100%;max-height:calc(100vh - 10rem);object-fit:contain;border-radius:18px}.lightbox__caption{margin:.85rem 0 0;color:rgba(255,255,255,.86)} .lightbox__close{position:absolute;right:1rem;top:1rem;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);color:#fff;font-size:1.8rem;line-height:1;cursor:pointer}
.site-footer{background:var(--color-dark-2);color:#fff;padding-block:2rem}.site-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}.site-footer__title{margin:0 0 .35rem;font-size:1.4rem}.site-footer__text{max-width:40rem;color:rgba(255,255,255,.72)} .site-footer__links{display:flex;flex-wrap:wrap;gap:1rem}.site-footer__links a{color:rgba(255,255,255,.9);font-weight:700}.site-footer__links a:hover{color:var(--color-accent-2)} .component-section{padding-top:1rem}.component-view__content{padding:1rem}.error-page{min-height:100vh;display:grid;place-items:center;padding-block:4rem}.error-page__card{max-width:42rem;padding:2rem;text-align:center}.error-page__card p{margin-bottom:1.5rem}.reveal-on-scroll{opacity:0;transform:translateY(14px)} .reveal-on-scroll.is-visible{opacity:1;transform:translateY(0);transition:opacity 500ms ease,transform 500ms ease}
@media (max-width:1100px){.card-grid--services,.values-grid,.projects-grid,.testimonial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-card:nth-child(n){grid-column:span 6}.why-us,.about-grid,.page-hero__content--split{grid-template-columns:1fr}} @media (max-width:860px){:root{--header-height:76px}.nav-toggle{display:inline-block}.site-nav{position:absolute;top:calc(100% + .75rem);right:1rem;left:1rem;padding:.75rem;border-radius:24px;background:rgba(15,22,35,.98);box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.08);opacity:0;visibility:hidden;transform:translateY(-6px)} .site-nav.is-open{opacity:1;visibility:visible;transform:translateY(0)} .site-nav__list{flex-direction:column;align-items:stretch}.site-nav__link{justify-content:flex-start}.site-social{display:none}.hero__content{padding-block:7rem 4rem}.hero__stats{grid-template-columns:1fr}.section-heading--between,.site-footer__inner{flex-direction:column;align-items:flex-start}} @media (max-width:680px){.container{width:min(100% - 1.25rem,100%)}.card-grid--services,.values-grid,.projects-grid,.testimonial-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr}.gallery-card:nth-child(n){grid-column:auto}.gallery-card{min-height:16rem}.hero h1,.page-hero h1,.error-page h1{font-size:clamp(2.1rem,10vw,3.4rem)} .lightbox__dialog{width:calc(100% - 1rem);padding:.75rem;margin-block:.5rem;max-height:calc(100vh - 1rem)}} @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *,*::before,*::after{transition:none !important;animation:none !important}.reveal-on-scroll{opacity:1;transform:none}}
