/* ============================================================
   PAJAZITI Tief- und Straßenbau — Website Stylesheet
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800;900&family=Hanken+Grotesk:wght@400;500;600;700&display=swap');

:root{
  --orange:#ED7D1B;
  --orange-d:#d76d0e;
  --orange-l:#fff3e7;
  --ink:#17181c;
  --ink-soft:#2a2c31;
  --dark:#181818;
  --dark-2:#202020;
  --dark-3:#262626;
  --grey:#5f646c;
  --grey-l:#8a8f97;
  --line:#e6e8eb;
  --bg:#ffffff;
  --bg-soft:#f4f5f7;
  --maxw:1200px;
  --radius:8px;
  --shadow:0 18px 40px -20px rgba(0,0,0,.25);
  --shadow-card:0 10px 30px -18px rgba(0,0,0,.22);
  --font-head:'Archivo',system-ui,sans-serif;
  --font-body:'Hanken Grotesk',system-ui,sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--bg);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
ul{list-style:none}

h1,h2,h3,h4{font-family:var(--font-head);line-height:1.12;letter-spacing:-.01em;color:var(--ink)}

.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* eyebrow label */
.eyebrow{
  font-family:var(--font-head);
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--orange);
  display:inline-block;
  margin-bottom:14px;
}

/* buttons */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-head);font-weight:600;font-size:.95rem;
  padding:14px 24px;border-radius:6px;border:2px solid transparent;
  cursor:pointer;transition:.25s ease;white-space:nowrap;
}
.btn svg{width:16px;height:16px;transition:transform .25s ease}
.btn:hover svg{transform:translateX(4px)}
.btn-orange{background:var(--orange);color:#fff;border-color:var(--orange)}
.btn-orange:hover{background:var(--orange-d);border-color:var(--orange-d)}
.btn-dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-dark:hover{background:#000}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-block{width:100%;justify-content:center}

/* ============================ TOPBAR ============================ */
.topbar{background:var(--dark);color:#cfd2d6;font-size:.85rem}
.topbar .container{display:flex;align-items:center;justify-content:space-between;min-height:46px;gap:18px;flex-wrap:wrap}
.topbar-info{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.topbar-info a,.topbar-info span{display:inline-flex;align-items:center;gap:8px;color:#cfd2d6}
.topbar-info a:hover{color:#fff}
.topbar-info svg{width:15px;height:15px;color:var(--orange)}
.topbar-social{display:inline-flex;align-items:center;gap:12px;color:#cfd2d6}
.topbar-social a{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.08);transition:.2s}
.topbar-social a:hover{background:var(--orange);color:#fff}
.topbar-social svg{width:14px;height:14px}

/* ============================ HEADER ============================ */
.header{background:#fff;position:sticky;top:0;z-index:200;border-bottom:1px solid var(--line);transition:box-shadow .3s}
.header.scrolled{box-shadow:0 6px 24px -12px rgba(0,0,0,.18)}
.header .container{display:flex;align-items:center;justify-content:space-between;min-height:84px;gap:20px}
.brand img{height:54px;width:auto}
.nav{display:flex;align-items:center;gap:34px}
.nav>li>a{
  font-family:var(--font-head);font-weight:600;font-size:1rem;color:var(--ink-soft);
  padding:8px 0;position:relative;display:inline-flex;align-items:center;gap:6px;transition:.2s;
}
.nav>li>a:hover{color:var(--orange)}
.nav>li>a.active{color:var(--orange)}
.nav>li>a.active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--orange)}
.nav .caret{width:12px;height:12px;transition:transform .25s}
/* dropdown */
.has-drop{position:relative}
.dropdown{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);
  background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);
  min-width:240px;padding:8px;opacity:0;visibility:hidden;transition:.22s;z-index:50;
}
.has-drop:hover .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.has-drop:hover .caret{transform:rotate(180deg)}
.dropdown a{display:block;padding:10px 14px;border-radius:6px;font-weight:500;font-size:.95rem;color:var(--ink-soft)}
.dropdown a:hover{background:var(--bg-soft);color:var(--orange)}
.header-cta{display:flex;align-items:center;gap:14px}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;width:42px;height:42px}
.menu-toggle span{display:block;width:24px;height:2px;background:var(--ink);margin:5px auto;transition:.3s}
.menu-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle.open span:nth-child(2){opacity:0}
.menu-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ============================ HERO ============================ */
.hero{position:relative;min-height:560px;display:flex;align-items:center;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(8,8,10,.92) 0%,rgba(10,10,12,.86) 38%,rgba(12,12,14,.55) 66%,rgba(12,12,14,.22) 88%,rgba(12,12,14,.08) 100%);}
.hero h1{text-shadow:0 2px 18px rgba(0,0,0,.45)}
.hero p{text-shadow:0 1px 10px rgba(0,0,0,.4)}
.hero-inner{position:relative;z-index:2;padding:90px 0;max-width:640px}
.hero h1{font-size:clamp(2.3rem,5vw,3.6rem);font-weight:800;margin-bottom:20px;color:#fff}
.hero p{font-size:1.08rem;color:#e3e5e8;max-width:520px;margin-bottom:32px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero.center .hero-inner{margin:0 auto;text-align:center;max-width:760px}
.hero.center .hero-bg::after{background:linear-gradient(180deg,rgba(10,10,12,.82),rgba(10,10,12,.55))}
.hero.compact{min-height:440px}
.hero.compact .hero-inner{padding:70px 0}
.hero .accent{color:var(--orange)}

/* ============================ SECTION ============================ */
.section{padding:88px 0}
.section.soft{background:var(--bg-soft)}
.section.dark{background:var(--dark);color:#cfd2d6}
.section-head{text-align:center;max-width:680px;margin:0 auto 54px}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.5rem);font-weight:800}
.section-head.dark h2,.section.dark h2{color:#fff}
.section-head p{color:var(--grey);margin-top:14px;font-size:1.05rem}
.underline{width:54px;height:3px;background:var(--orange);margin:18px auto 0;border-radius:2px}

/* service teaser cards (home) */
.svc-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.svc-card{
  border:1px solid var(--line);border-radius:10px;padding:26px 18px;text-align:center;
  background:#fff;transition:.28s;
}
.svc-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-card);border-color:transparent}
.svc-ic{width:64px;height:64px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center}
.svc-ic svg{width:100%;height:100%}
.svc-ic img{width:100%;height:100%;object-fit:contain;transition:transform .35s ease}
.svc-card:hover .svc-ic img{transform:scale(1.12) rotate(-3deg)}
.svc-card h3{font-size:1.02rem;font-weight:700;margin-bottom:8px}
.svc-card p{font-size:.86rem;color:var(--grey);line-height:1.55}

/* about teaser */
.about-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:center}
.about-grid h2{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;margin-bottom:18px}
.about-grid p{color:var(--grey);margin-bottom:16px}
.checklist{margin:22px 0 28px;display:grid;gap:12px}
.checklist li{display:flex;align-items:center;gap:12px;font-weight:500;color:var(--ink-soft)}
.checklist .ck{flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:var(--orange);
  display:inline-flex;align-items:center;justify-content:center}
.checklist .ck svg{width:12px;height:12px;color:#fff}
.about-media{position:relative;border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}
.about-media>img{width:100%;height:100%;object-fit:cover}
.about-info{
  position:absolute;left:14px;right:14px;bottom:14px;background:rgba(20,20,22,.9);
  border-radius:8px;padding:18px 14px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;backdrop-filter:blur(4px);
}
.about-info .ai{display:flex;gap:10px;color:#dfe1e4;font-size:.8rem;line-height:1.4}
.about-info .ai svg{width:16px;height:16px;color:var(--orange);flex:0 0 16px;margin-top:2px}
.about-info .ai strong{display:block;color:#fff;font-family:var(--font-head);font-size:.82rem;margin-bottom:2px}

/* trust strip */
.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.trust .item{display:flex;gap:16px}
.trust .ic{flex:0 0 40px;width:40px;height:40px;color:var(--orange)}
.trust .ic svg{width:100%;height:100%}
.trust h4{color:#fff;font-size:1.02rem;margin-bottom:6px}
.trust p{font-size:.88rem;color:#9a9ea4;line-height:1.5}
.section.dark .trust-divider{position:relative}

/* projects */
.proj-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px;gap:20px;flex-wrap:wrap}
.proj-head h2{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800}
.proj-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.proj-card{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow-card)}
.proj-card img{width:100%;height:100%;object-fit:cover;transition:.5s}
.proj-card:hover img{transform:scale(1.07)}
.proj-card .cap{position:absolute;inset:auto 0 0 0;padding:18px 16px 14px;color:#fff;
  background:linear-gradient(0deg,rgba(0,0,0,.78),transparent);font-family:var(--font-head);font-weight:600;
  opacity:0;transform:translateY(8px);transition:.3s}
.proj-card:hover .cap{opacity:1;transform:translateY(0)}
.proj-card .cap span{display:block;font-family:var(--font-body);font-weight:500;font-size:.78rem;color:var(--orange);text-transform:uppercase;letter-spacing:.08em}

/* ============================ LEISTUNGEN cards ============================ */
.lcards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.lcard{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;transition:.28s;display:flex;flex-direction:column}
.lcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-card)}
.lcard-media{position:relative;aspect-ratio:16/10}
.lcard-img{position:absolute;inset:0;overflow:hidden;border-radius:12px 12px 0 0}
.lcard-media img{width:100%;height:100%;object-fit:cover;transition:.5s}
.lcard:hover .lcard-media img{transform:scale(1.06)}
.lcard-badge{position:absolute;left:18px;bottom:-26px;width:52px;height:52px;border-radius:12px;z-index:3;
  background:var(--orange);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 22px -6px rgba(237,125,27,.65)}
.lcard-badge svg{width:26px;height:26px;color:#fff}
.lcard-body{padding:40px 24px 26px;flex:1;display:flex;flex-direction:column}
.lcard-body h3{font-size:1.25rem;font-weight:700;margin-bottom:10px}
.lcard-body>p{color:var(--grey);font-size:.94rem;margin-bottom:16px}
.lcard-list{display:grid;gap:8px;margin-top:auto}
.lcard-list li{display:flex;align-items:center;gap:10px;font-size:.9rem;color:var(--ink-soft)}
.lcard-list svg{width:15px;height:15px;color:var(--orange);flex:0 0 15px}

/* ============================ VALUE cards (about) ============================ */
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.value{background:#fff;border:1px solid var(--line);border-radius:12px;padding:34px 24px;text-align:center;transition:.28s}
.value:hover{transform:translateY(-6px);box-shadow:var(--shadow-card)}
.value .ic{width:54px;height:54px;margin:0 auto 16px;color:var(--orange)}
.value .ic svg{width:100%;height:100%}
.value h3{font-size:1.12rem;font-weight:700;margin-bottom:10px}
.value p{font-size:.9rem;color:var(--grey);line-height:1.55}

/* small icon row (about page) */
.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:30px 0}
.mini{text-align:center}
.mini .ic{width:42px;height:42px;margin:0 auto 10px;color:var(--orange)}
.mini .ic svg{width:100%;height:100%}
.mini h4{font-size:.95rem;font-weight:700;margin-bottom:4px}
.mini p{font-size:.8rem;color:var(--grey);line-height:1.45}

/* ============================ CTA band ============================ */
.cta-band{position:relative;color:#fff;overflow:hidden}
.cta-band .bg{position:absolute;inset:0;background-size:cover;background-position:center}
.cta-band .bg::after{content:"";position:absolute;inset:0;background:rgba(16,16,18,.86)}
.cta-band .container{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;
  gap:26px;padding:50px 24px;flex-wrap:wrap}
.cta-band h2{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:800;color:#fff}
.cta-band p{color:#c8cacd;margin-top:6px}
.cta-left{display:flex;align-items:center;gap:22px}
.cta-left>svg{width:54px;height:54px;color:var(--orange);flex:0 0 54px}

/* ============================ CONTACT page ============================ */
.contact-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:-70px;position:relative;z-index:5}
.cc{background:#fff;border:1px solid var(--line);border-radius:12px;padding:30px 18px;text-align:center;box-shadow:var(--shadow-card);transition:.28s}
.cc:hover{transform:translateY(-6px)}
.cc .ic{width:56px;height:56px;border:2px solid var(--orange);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:var(--orange)}
.cc .ic svg{width:26px;height:26px}
.cc h3{font-family:var(--font-head);font-weight:700;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px}
.cc p{font-size:.9rem;color:var(--grey);line-height:1.5}
.cc a{color:var(--grey)}
.cc a:hover{color:var(--orange)}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:64px}
.panel{background:var(--bg-soft);border-radius:14px;padding:38px}
.panel h2{font-family:var(--font-head);font-size:1.4rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}
.panel .ul{width:44px;height:3px;background:var(--orange);border-radius:2px;margin-bottom:26px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.form input,.form textarea{
  width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:7px;background:#fff;
  font-family:var(--font-body);font-size:.95rem;color:var(--ink);transition:.2s;
}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(237,125,27,.13)}
.form textarea{resize:vertical;min-height:130px}
.form .full{margin-bottom:14px}
.form .consent{display:flex;align-items:flex-start;gap:10px;font-size:.84rem;color:var(--grey);margin:6px 0 18px}
.form .consent input{width:auto;margin-top:3px}
.form .consent a{color:var(--orange)}
.form-note{margin-top:14px;font-size:.9rem;color:var(--orange);font-weight:600;display:none}
.map-wrap{border-radius:10px;overflow:hidden;border:1px solid var(--line);aspect-ratio:16/10;background:#dfe3e6}
.map-wrap iframe{width:100%;height:100%;border:0;display:block}
.map-meta{margin-top:22px}
.map-meta h3{font-family:var(--font-head);font-size:1.05rem;margin-bottom:6px}
.map-meta p{color:var(--grey);font-size:.92rem}
.map-meta a{display:inline-flex;align-items:center;gap:8px;color:var(--orange);font-weight:600;margin-top:12px}
.map-meta a svg{width:16px;height:16px;transition:transform .2s}
.map-meta a:hover svg{transform:translateX(4px)}

/* ============================ PROJEKTE page ============================ */
.filter{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:40px}
.filter button{font-family:var(--font-head);font-weight:600;font-size:.9rem;padding:9px 20px;border:1px solid var(--line);
  background:#fff;border-radius:30px;cursor:pointer;color:var(--ink-soft);transition:.2s}
.filter button.active,.filter button:hover{background:var(--orange);border-color:var(--orange);color:#fff}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.gitem{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow-card)}
.gitem img{width:100%;height:100%;object-fit:cover;transition:.5s}
.gitem:hover img{transform:scale(1.07)}
.gitem .ov{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.78),transparent 60%);
  display:flex;flex-direction:column;justify-content:flex-end;padding:22px;opacity:0;transition:.3s}
.gitem:hover .ov{opacity:1}
.gitem .ov span{font-size:.78rem;color:var(--orange);text-transform:uppercase;letter-spacing:.1em;font-weight:600}
.gitem .ov h3{color:#fff;font-size:1.2rem;font-weight:700;margin-top:4px}

/* ============================ FOOTER ============================ */
.footer{background:var(--dark);color:#a7abb1;padding:64px 0 0}
.footer .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:48px}
.footer .logo{height:64px;width:auto;margin-bottom:18px}
.footer p{font-size:.92rem;line-height:1.6;color:#9a9ea4}
.footer h4{color:#fff;font-family:var(--font-head);font-size:1.05rem;margin-bottom:20px}
.footer .col a{display:block;color:#a7abb1;font-size:.92rem;padding:5px 0;transition:.2s;display:flex;align-items:center;gap:9px}
.footer .col a:hover{color:var(--orange)}
.footer .col a svg{width:13px;height:13px;color:var(--orange);flex:0 0 13px}
.footer .contact-row{display:flex;gap:11px;font-size:.92rem;margin-bottom:14px;color:#9a9ea4;align-items:flex-start}
.footer .contact-row svg{width:16px;height:16px;color:var(--orange);flex:0 0 16px;margin-top:3px}
.footer .contact-row a:hover{color:var(--orange)}
.footer .social{display:flex;gap:12px;margin-top:6px}
.footer .social a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.07);
  display:flex;align-items:center;justify-content:center;transition:.2s}
.footer .social a:hover{background:var(--orange)}
.footer .social svg{width:17px;height:17px;color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:20px 0;font-size:.84rem}
.footer-bottom .container{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.footer-bottom a{color:#9a9ea4;margin-left:22px}
.footer-bottom a:hover{color:var(--orange)}

/* ============================ reveal ============================ */
.reveal{opacity:0;transform:translateY(26px);transition:.7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ============================ legal pages ============================ */
.legal{padding:70px 0 90px}
.legal h1{font-size:2.2rem;margin-bottom:24px}
.legal h2{font-size:1.3rem;margin:30px 0 12px}
.legal p{color:var(--grey);margin-bottom:12px}
.legal a{color:var(--orange)}

/* ============================ responsive ============================ */
@media(max-width:1024px){
  .svc-grid{grid-template-columns:repeat(3,1fr)}
  .trust{grid-template-columns:repeat(2,1fr)}
  .proj-grid{grid-template-columns:repeat(2,1fr)}
  .lcards{grid-template-columns:repeat(2,1fr)}
  .values{grid-template-columns:repeat(2,1fr)}
  .contact-cards{grid-template-columns:repeat(3,1fr);row-gap:18px}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .footer .grid{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .nav,.header-cta .btn{display:none}
  .menu-toggle{display:block}
  .header .container{min-height:72px}
  .nav.mobile-open{
    display:flex;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;
    align-items:stretch;gap:0;padding:8px 0;border-bottom:1px solid var(--line);box-shadow:var(--shadow);
  }
  .nav.mobile-open>li{border-bottom:1px solid var(--line)}
  .nav.mobile-open>li>a{padding:15px 24px;font-size:1.05rem;justify-content:space-between}
  .nav.mobile-open .dropdown{position:static;transform:none;opacity:1;visibility:visible;
    box-shadow:none;border:0;border-radius:0;padding:0 0 8px 24px;min-width:0}
  .about-grid{grid-template-columns:1fr;gap:34px}
  .about-info{position:static;margin-top:14px;background:var(--dark)}
  .contact-grid{grid-template-columns:1fr}
  .cta-band .container{flex-direction:column;align-items:flex-start;text-align:left}
}
@media(max-width:640px){
  .topbar-info{gap:14px;font-size:.78rem}
  .topbar-info .hide-sm{display:none}
  .section{padding:60px 0}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .trust{grid-template-columns:1fr}
  .proj-grid,.gallery,.lcards,.values,.mini-grid{grid-template-columns:1fr}
  .contact-cards{grid-template-columns:1fr 1fr}
  .form-row{grid-template-columns:1fr}
  .footer .grid{grid-template-columns:1fr}
  .about-info{grid-template-columns:1fr;gap:14px}
  .hero h1{font-size:2.1rem}
  .panel{padding:24px}
}

/* ============================================================
   PRELOADER — animated excavator + logo
   ============================================================ */
#preloader{position:fixed;inset:0;z-index:9999;background:#181818;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;
  transition:opacity .6s ease,visibility .6s ease;
  animation:pl-failsafe 0s linear 5s forwards;}
#preloader.hide{opacity:0;visibility:hidden}
@keyframes pl-failsafe{to{opacity:0;visibility:hidden}}
#preloader .pl-logo{width:230px;max-width:62vw;height:auto;filter:drop-shadow(0 8px 24px rgba(0,0,0,.4))}
#preloader .pl-scene{position:relative}
#preloader .exc{width:170px;height:auto;display:block}
#preloader .pl-bar{width:210px;max-width:60vw;height:4px;border-radius:4px;background:rgba(255,255,255,.12);overflow:hidden}
#preloader .pl-bar i{display:block;height:100%;width:42%;border-radius:4px;background:var(--orange);animation:pl-load 1.15s ease-in-out infinite}
@keyframes pl-load{0%{transform:translateX(-130%)}100%{transform:translateX(330%)}}
#preloader .pl-text{font-family:var(--font-head);font-weight:600;letter-spacing:.18em;font-size:.74rem;text-transform:uppercase;color:#8a8f97}
/* excavator motion */
.exc .exc-boom{transform-origin:118px 96px;animation:exc-dig 1.9s ease-in-out infinite}
.exc .exc-bucket{transform-origin:190px 96px;animation:exc-curl 1.9s ease-in-out infinite}
.exc .exc-body{animation:exc-bob 1.9s ease-in-out infinite}
.exc .exc-dust{animation:exc-dust 1.9s ease-in-out infinite;transform-origin:center}
@keyframes exc-dig{0%,100%{transform:rotate(-7deg)}45%{transform:rotate(13deg)}60%{transform:rotate(11deg)}}
@keyframes exc-curl{0%,100%{transform:rotate(8deg)}45%{transform:rotate(-22deg)}60%{transform:rotate(-18deg)}}
@keyframes exc-bob{0%,100%{transform:translateY(0)}45%{transform:translateY(2px)}}
@keyframes exc-dust{0%,40%{opacity:0;transform:translateY(0) scale(.6)}55%{opacity:.9}100%{opacity:0;transform:translateY(-10px) scale(1.3)}}
@media(prefers-reduced-motion:reduce){
  .exc .exc-boom,.exc .exc-bucket,.exc .exc-body,.exc .exc-dust{animation:none}
}

/* ============================================================
   PROJECT MODAL
   ============================================================ */
.gitem{cursor:pointer}
.modal-overlay{position:fixed;inset:0;z-index:9000;background:rgba(14,14,16,.72);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;visibility:hidden;transition:.28s}
.modal-overlay.open{opacity:1;visibility:visible}
.modal{background:#fff;border-radius:16px;max-width:860px;width:100%;max-height:90vh;overflow:hidden;
  display:grid;grid-template-columns:1fr 1fr;box-shadow:0 30px 80px -20px rgba(0,0,0,.5);
  transform:translateY(18px) scale(.98);transition:.3s}
.modal-overlay.open .modal{transform:none}
.modal-media{position:relative;min-height:320px;background:#222}
.modal-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.modal-media .mtag{position:absolute;left:18px;top:18px;background:var(--orange);color:#fff;
  font-family:var(--font-head);font-weight:600;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  padding:7px 14px;border-radius:30px}
.modal-body{padding:34px 32px;overflow-y:auto}
.modal-body h3{font-size:1.55rem;font-weight:800;margin-bottom:6px}
.modal-meta{display:flex;gap:18px;flex-wrap:wrap;margin:14px 0 20px}
.modal-meta .mm{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--ink-soft);
  background:var(--bg-soft);border-radius:30px;padding:7px 14px}
.modal-meta .mm svg{width:16px;height:16px;color:var(--orange)}
.modal-body>p{color:var(--grey);font-size:.95rem;margin-bottom:20px}
.modal-body h4{font-family:var(--font-head);font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px;color:var(--ink)}
.modal-steps{display:grid;gap:14px;margin-bottom:8px}
.modal-steps li{display:flex;gap:14px;align-items:flex-start}
.modal-steps .num{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--orange);color:#fff;
  font-family:var(--font-head);font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center}
.modal-steps .stxt{font-size:.92rem;color:var(--ink-soft);line-height:1.5}
.modal-steps .stxt strong{display:block;color:var(--ink);font-weight:700;margin-bottom:1px}
.modal-close{position:absolute;right:16px;top:16px;z-index:5;width:40px;height:40px;border-radius:50%;border:0;
  background:rgba(255,255,255,.92);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.2);transition:.2s}
.modal-close:hover{background:#fff;transform:rotate(90deg)}
.modal-close svg{width:20px;height:20px;color:var(--ink)}
body.modal-open{overflow:hidden}
@media(max-width:760px){
  .modal{grid-template-columns:1fr;max-height:92vh}
  .modal-media{min-height:200px;max-height:230px}
  .modal-body{padding:26px 22px}
}

/* ============================================================
   EXTRA MOBILE REFINEMENTS
   ============================================================ */
@media(max-width:640px){
  body{font-size:15.5px}
  .container{padding:0 18px}
  .hero{min-height:480px}
  .hero.compact{min-height:380px}
  .hero-inner{padding:54px 0}
  .hero h1{font-size:1.95rem;line-height:1.14}
  .hero p{font-size:1rem}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions .btn{justify-content:center}
  .section-head{margin-bottom:38px}
  .proj-head{flex-direction:column;align-items:flex-start}
  .proj-head .btn{width:100%;justify-content:center}
  .lcard-list li{font-size:.92rem}
  .topbar .container{justify-content:center}
  .topbar-social{display:none}
  .cta-band .container{padding:38px 18px}
  .cta-band .btn{width:100%;justify-content:center}
  .filter{gap:8px}
  .filter button{padding:8px 15px;font-size:.82rem}
  .footer-bottom .container{flex-direction:column;align-items:flex-start;gap:8px}
  .footer-bottom a{margin-left:0;margin-right:18px}
  #preloader .exc{width:140px}
}
@media(max-width:380px){
  .hero h1{font-size:1.72rem}
  .svc-grid{grid-template-columns:1fr}
}

/* ============================================================
   ENHANCED ANIMATIONS — modern, high-end feel
   ============================================================ */
/* directional reveals */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.16,.84,.3,1),transform .8s cubic-bezier(.16,.84,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal-l{opacity:0;transform:translateX(-46px);transition:opacity .85s cubic-bezier(.16,.84,.3,1),transform .85s cubic-bezier(.16,.84,.3,1)}
.reveal-l.in{opacity:1;transform:none}
.reveal-r{opacity:0;transform:translateX(46px);transition:opacity .85s cubic-bezier(.16,.84,.3,1),transform .85s cubic-bezier(.16,.84,.3,1)}
.reveal-r.in{opacity:1;transform:none}
.reveal-zoom{opacity:0;transform:scale(.9);transition:opacity .8s ease,transform .8s cubic-bezier(.16,.84,.3,1)}
.reveal-zoom.in{opacity:1;transform:none}

/* staggered grid children: cards animate in one-by-one */
.svc-grid .svc-card,.lcards .lcard,.values .value,.gallery .gitem,.contact-cards .cc,.trust .item,.proj-grid .proj-card{
  opacity:0;transform:translateY(40px);
  transition:opacity .7s cubic-bezier(.16,.84,.3,1),transform .7s cubic-bezier(.16,.84,.3,1),box-shadow .3s ease,border-color .3s ease;
}
.svc-grid.in .svc-card,.lcards.in .lcard,.values.in .value,.gallery.in .gitem,
.contact-cards.in .cc,.trust.in .item,.proj-grid.in .proj-card{opacity:1;transform:none}
/* keep hover transforms working after reveal */
.svc-grid.in .svc-card:hover{transform:translateY(-6px)}
.lcards.in .lcard:hover,.values.in .value:hover,.contact-cards.in .cc:hover{transform:translateY(-6px)}
/* stagger delays */
.svc-grid.in .svc-card:nth-child(1),.lcards.in .lcard:nth-child(1),.values.in .value:nth-child(1),.gallery.in .gitem:nth-child(1),.contact-cards.in .cc:nth-child(1),.trust.in .item:nth-child(1),.proj-grid.in .proj-card:nth-child(1){transition-delay:.05s}
.svc-grid.in .svc-card:nth-child(2),.lcards.in .lcard:nth-child(2),.values.in .value:nth-child(2),.gallery.in .gitem:nth-child(2),.contact-cards.in .cc:nth-child(2),.trust.in .item:nth-child(2),.proj-grid.in .proj-card:nth-child(2){transition-delay:.13s}
.svc-grid.in .svc-card:nth-child(3),.lcards.in .lcard:nth-child(3),.values.in .value:nth-child(3),.gallery.in .gitem:nth-child(3),.contact-cards.in .cc:nth-child(3),.trust.in .item:nth-child(3),.proj-grid.in .proj-card:nth-child(3){transition-delay:.21s}
.svc-grid.in .svc-card:nth-child(4),.lcards.in .lcard:nth-child(4),.values.in .value:nth-child(4),.gallery.in .gitem:nth-child(4),.contact-cards.in .cc:nth-child(4),.trust.in .item:nth-child(4),.proj-grid.in .proj-card:nth-child(4){transition-delay:.29s}
.svc-grid.in .svc-card:nth-child(5),.lcards.in .lcard:nth-child(5),.gallery.in .gitem:nth-child(5),.contact-cards.in .cc:nth-child(5){transition-delay:.37s}
.svc-grid.in .svc-card:nth-child(6),.lcards.in .lcard:nth-child(6),.gallery.in .gitem:nth-child(6){transition-delay:.45s}
.gallery.in .gitem:nth-child(7){transition-delay:.53s}
.gallery.in .gitem:nth-child(8){transition-delay:.61s}

/* hero: slow ken-burns zoom on background + content fade-in-up */
.hero-bg{animation:kenburns 18s ease-out forwards}
@keyframes kenburns{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero-inner>*{opacity:0;animation:heroUp .9s cubic-bezier(.16,.84,.3,1) forwards}
.hero-inner>*:nth-child(1){animation-delay:.15s}
.hero-inner>*:nth-child(2){animation-delay:.3s}
.hero-inner>*:nth-child(3){animation-delay:.45s}
.hero-inner>*:nth-child(4){animation-delay:.6s}
@keyframes heroUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}

/* animated section underline grows when revealed */
.underline{width:0;transition:width .7s ease .25s}
.section-head.in .underline,.reveal.in .underline{width:54px}

/* eyebrow letter reveal */
.eyebrow{position:relative}

/* button shine sweep on hover */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-20deg);transition:left .6s ease}
.btn:hover::after{left:140%}
.btn-ghost::after{background:linear-gradient(120deg,transparent,rgba(255,255,255,.18),transparent)}

/* checklist items pop in sequentially */
.checklist li{opacity:0;transform:translateX(-14px);transition:opacity .5s ease,transform .5s ease}
.reveal.in .checklist li{opacity:1;transform:none}
.reveal.in .checklist li:nth-child(1){transition-delay:.2s}
.reveal.in .checklist li:nth-child(2){transition-delay:.3s}
.reveal.in .checklist li:nth-child(3){transition-delay:.4s}
.reveal.in .checklist li:nth-child(4){transition-delay:.5s}

/* lcard list checkmarks slide in */
.lcard-list li{transition:transform .2s ease}
.lcard:hover .lcard-list li{transform:translateX(3px)}

/* about media subtle float + image zoom on hover */
.about-media>img{transition:transform .6s ease}
.about-media:hover>img{transform:scale(1.04)}

/* nav link underline grow on hover */
.nav>li>a::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--orange);transition:width .28s ease}
.nav>li>a:hover::after{width:100%}
.nav>li>a.active::after{width:100%}

/* topbar icons subtle */
.cc .ic,.value .ic,.mini .ic{transition:transform .3s ease}
.cc:hover .ic{transform:scale(1.1) rotate(-4deg)}
.value:hover .ic{transform:translateY(-3px)}

/* trust icons pulse-in */
.trust .ic{transition:transform .4s cubic-bezier(.16,.84,.3,1)}
.trust.in .item:hover .ic{transform:scale(1.15)}

/* floating CTA badge pulse */
.cta-band .btn{position:relative}

/* scroll-to-top button */
#toTop{position:fixed;right:22px;bottom:22px;z-index:300;width:48px;height:48px;border-radius:50%;border:0;
  background:var(--orange);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px -8px rgba(237,125,27,.7);opacity:0;visibility:hidden;transform:translateY(14px);transition:.3s}
#toTop.show{opacity:1;visibility:visible;transform:none}
#toTop:hover{background:var(--orange-d);transform:translateY(-3px)}
#toTop svg{width:22px;height:22px}

/* respect reduced motion */
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal-l,.reveal-r,.reveal-zoom,
  .svc-grid .svc-card,.lcards .lcard,.values .value,.gallery .gitem,.contact-cards .cc,.trust .item,.proj-grid .proj-card,
  .hero-inner>*,.checklist li{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .hero-bg{animation:none}
}
