
:root{
  --bg:#f5f7fa;
  --surface:#ffffff;
  --surface-2:#eef2f6;
  --text:#18222e;
  --muted:#5d6a78;
  --line:#d8e0e8;
  --dark:#0f1720;
  --dark-2:#121e2b;
  --accent:#f37a16;
  --accent-2:#ff9d4b;
  --accent-dark:#cf650f;
  --success:#1f8f4f;
  --shadow:0 16px 42px rgba(10, 18, 28, .10);
  --radius:24px;
  --container:min(1200px, calc(100% - 32px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-text-size-adjust:100%}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.container{width:var(--container);margin-inline:auto}
.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{left:16px;top:16px;width:auto;height:auto;background:#fff;padding:10px 14px;border-radius:12px;z-index:999}
.topbar{background:var(--dark);color:#fff;font-size:.95rem}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 0}.topbar-links{display:flex;gap:1.15rem;flex-wrap:wrap}.topbar strong{color:#fff;font-weight:700}
.site-header{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.05)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0}.brand{display:flex;align-items:center;gap:14px;font-weight:800}.brand img{height:66px;width:auto}.mainnav{display:flex;align-items:center;gap:1.35rem;font-weight:700}.mainnav a{padding:.5rem .1rem;position:relative}.mainnav a:not(.btn)::after{content:'';position:absolute;left:0;bottom:.15rem;width:0;height:2px;background:var(--accent);transition:.22s}.mainnav a:not(.btn):hover::after,.mainnav a[aria-current="page"]::after{width:100%}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:1rem 1.3rem;border-radius:999px;border:1px solid transparent;font-weight:800;line-height:1.1;cursor:pointer;transition:.2s ease;min-height:52px}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 12px 24px rgba(243,122,22,.25)}.btn-primary:hover{background:var(--accent-dark)}
.btn-secondary{background:#fff;color:var(--text);border-color:var(--line)}.btn-secondary:hover{color:var(--accent);border-color:var(--accent)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.28)}.btn-ghost:hover{background:#fff;color:var(--accent);border-color:#fff}
.btn.tel::before{content:'☎';font-size:1rem}
.desktop-cta{display:inline-flex}.small-only-nav{display:none}.nav-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}.nav-toggle span{display:block;width:28px;height:2px;background:var(--dark);margin:6px 0;border-radius:4px}
.hero{position:relative;overflow:hidden;min-height:78vh;display:grid;align-items:center}.hero-slider,.slide,.slide-overlay{position:absolute;inset:0}.slide{background-size:cover;background-position:center;opacity:0;transform:scale(1.02);transition:opacity .9s ease}.slide.active{opacity:1}.slide-overlay{background:linear-gradient(90deg, rgba(8,13,20,.78) 0%, rgba(8,13,20,.58) 38%, rgba(8,13,20,.34) 70%, rgba(8,13,20,.50) 100%)}
.hero-content{position:relative;z-index:2;padding:5rem 0}.hero-copy{max-width:690px;color:#fff}.glass-panel{background:rgba(12,19,28,.52);border:1px solid rgba(255,255,255,.10);backdrop-filter:blur(10px);padding:2rem;border-radius:30px;box-shadow:var(--shadow)}
.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;font-weight:800;color:var(--accent);margin-bottom:1rem}
.hero h1,.page-hero h1{font-size:clamp(2.35rem, 5vw, 4.4rem);line-height:1.03;margin:.1rem 0 1rem}.hero p{font-size:1.08rem;color:#e5ebf1;max-width:58ch}
.cta-row{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}.hero-badges{display:flex;gap:.8rem;flex-wrap:wrap;list-style:none;padding:0;margin:1.4rem 0 0}.hero-badges li{padding:.72rem 1rem;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);font-size:.93rem}
.section{padding:5rem 0}.section-alt{background:linear-gradient(180deg,#fff,#f7f3ee)}.section-dark{background:linear-gradient(180deg,var(--dark),var(--dark-2));color:#fff}.section-dark p{color:#d6dde4}.page-hero{padding:4.3rem 0 2rem;background:linear-gradient(180deg,#fff,#eef3f7)}.page-hero.compact h1{font-size:clamp(2rem,4vw,3.2rem)}.page-hero p{color:var(--muted);max-width:760px}
.intro-strip{padding:1.25rem 0;background:#fff;border-block:1px solid rgba(0,0,0,.05)}.intro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.intro-grid div{background:var(--bg);padding:1rem 1.1rem;border-radius:18px}.intro-grid strong{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem}.intro-grid span,.intro-grid a{display:block;margin-top:.25rem;font-weight:800}
.section-head{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:end;margin-bottom:2rem}.section-head h2,.two-col h2,.service-row h2,.cta-box h2,.contact-card h2,.form-card h2,.legal-content h2{font-size:clamp(1.9rem, 4vw, 3rem);line-height:1.1;margin:.2rem 0 .7rem}.section-head p{color:var(--muted)}
.cards-4,.cards-5,.stats-grid,.gallery-grid,.sketch-grid,.service-list{display:grid;gap:1.2rem}.cards-4{grid-template-columns:repeat(4,1fr)}.cards-5{grid-template-columns:repeat(5,1fr)}.stats-grid{grid-template-columns:repeat(3,1fr)}.gallery-grid{grid-template-columns:repeat(3,1fr)}.sketch-grid{grid-template-columns:repeat(3,1fr)}
.card,.service-card,.project-link,.contact-card,.form-card,.service-row,.panel,.cta-box,.stat-card,.legal-content{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.service-card,.project-link{display:flex;flex-direction:column;height:100%}.service-card img,.project-link img{aspect-ratio:4/3;object-fit:cover}.service-card div,.project-link h3{padding:1.15rem 1.2rem}.service-card h3,.project-link h3,.stat-card h3{margin:0 0 .35rem;font-size:1.22rem}.service-card p,.project-link p,.stat-card p{margin:0;color:var(--muted)}.project-link{text-align:center}.project-link h3{padding:1rem}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.align-center{align-items:center}.panel{padding:1.3rem}.panel-image img{width:100%;height:auto;border-radius:20px;background:#fff}
.process{display:grid;gap:1rem;margin-top:1.35rem}.process-item{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;background:rgba(255,255,255,.06);padding:1rem;border-radius:18px}.process-item span{width:2.4rem;height:2.4rem;border-radius:999px;background:var(--accent);display:grid;place-items:center;color:#fff;font-weight:800}.process-item h3{margin:0 0 .25rem}.process-item p{margin:0;color:#d7dee5}
.service-row{display:grid;grid-template-columns:1.05fr .95fr;gap:1.4rem;align-items:center;padding:1.25rem}.service-row.reverse{grid-template-columns:.95fr 1.05fr}.service-row.reverse>:first-child{order:2}.service-row img{width:100%;height:100%;max-height:380px;object-fit:cover;border-radius:20px}.service-row ul{padding-left:1.1rem;margin:1rem 0 0}.service-row p{color:var(--muted)}
.gallery-item{display:block;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);background:#fff;position:relative}.gallery-item img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .3s ease}.gallery-item:hover img{transform:scale(1.03)}.gallery-item span{position:absolute;left:14px;bottom:14px;background:rgba(12,19,28,.75);color:#fff;padding:.55rem .8rem;border-radius:999px;font-size:.85rem;font-weight:700}
.stat-card{padding:1.4rem}.stat-card strong{display:block;font-size:2rem;color:var(--accent);line-height:1}
.contact-layout{gap:1.5rem;align-items:start}.contact-card,.form-card{padding:1.5rem}.contact-card p,.form-card p{color:var(--muted)}
.contact-list{list-style:none;padding:0;margin:1rem 0 0}.contact-list li{padding:.4rem 0;border-bottom:1px solid var(--line)}
.contact-form label{display:block;font-weight:800;margin-bottom:1rem}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:.95rem 1rem;margin-top:.45rem;font:inherit;background:#fff}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(243,122,22,.14)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.check{font-weight:400;font-size:.95rem;color:var(--muted)}.check input{margin-right:.5rem}.hp-field{position:absolute;left:-9999px;opacity:0}
.notice{padding:1rem 1.1rem;border-radius:16px;margin-bottom:1rem;font-weight:700}.notice.ok{background:#e8f7ef;color:#176b3c}.notice.err{background:#fff0f0;color:#a33a3a}
.site-footer{background:#fff;padding-top:2.8rem;margin-top:2rem;border-top:1px solid rgba(0,0,0,.05)}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:1.5rem;padding-bottom:2rem}.footer-logo{height:76px;width:auto;margin-bottom:.6rem}.footer-grid h3{margin-top:0}.footer-grid ul{list-style:none;padding:0;margin:0}.footer-grid li{margin:.35rem 0}.footer-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 0 1.6rem;border-top:1px solid rgba(0,0,0,.06);font-size:.95rem;color:var(--muted)}
.legal-content{padding:2rem}.legal-content h2{margin-top:2rem;font-size:1.4rem}.legal-content h2:first-child{margin-top:0}
.cta-box{padding:2rem;text-align:center}.lightbox{position:fixed;inset:0;background:rgba(7,12,17,.92);display:grid;place-items:center;padding:2rem;z-index:100}.lightbox img{max-width:min(1200px, 95vw);max-height:86vh;border-radius:12px}.lightbox-close{position:absolute;top:1rem;right:1rem;background:#fff;border:0;width:44px;height:44px;border-radius:50%;font-size:2rem;line-height:1;cursor:pointer}
.breadcrumbs{font-size:.92rem;color:var(--muted);margin:.3rem 0 0}.breadcrumbs a{color:var(--muted)}
@media (max-width:1100px){.cards-5{grid-template-columns:repeat(3,1fr)}.cards-4,.gallery-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}.footer-grid,.section-head,.two-col,.contact-layout{grid-template-columns:1fr}}
@media (max-width:860px){.desktop-cta{display:none}.nav-toggle{display:block}.mainnav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid rgba(0,0,0,.08);box-shadow:var(--shadow);display:none;flex-direction:column;align-items:flex-start;padding:1rem 16px}.mainnav.open{display:flex}.small-only-nav{display:inline-flex}.topbar-inner{flex-direction:column;align-items:flex-start}.hero{min-height:72vh}.hero-content{padding:4.25rem 0 3.5rem}.glass-panel{padding:1.35rem 1.2rem}.hero h1{font-size:clamp(2.15rem,10vw,3.2rem)}.intro-grid,.form-grid,.cards-5,.cards-4,.gallery-grid,.sketch-grid,.stats-grid,.footer-grid{grid-template-columns:1fr}.service-row,.service-row.reverse{grid-template-columns:1fr}.service-row.reverse>:first-child{order:0}.brand img{height:56px}.btn{width:auto;max-width:100%}.cta-row .btn{flex:1 1 220px}.hero-badges li{width:100%;text-align:center}}
@media (max-width:520px){.container{width:min(100% - 20px, 100%)}.topbar{font-size:.88rem}.hero-copy p{font-size:1rem}.hero-badges li{font-size:.88rem}.btn{padding:.95rem 1.05rem}.lightbox{padding:1rem}}


/* FINAL FIX: prevent inactive project lightbox overlay from showing */
.lightbox[hidden]{display:none !important; visibility:hidden !important; opacity:0 !important; pointer-events:none !important;}
.gallery-item span{display:none !important;}
.map-preview{display:block;margin-top:1rem;border-radius:20px;overflow:hidden;min-height:220px;background:linear-gradient(135deg,#e8eef4,#f8fafc);border:1px solid var(--line);box-shadow:var(--shadow);position:relative;color:var(--text)}
.map-preview::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,34,46,.07) 1px,transparent 1px),linear-gradient(rgba(24,34,46,.07) 1px,transparent 1px);background-size:34px 34px;opacity:.9}
.map-preview-content{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:1.4rem;z-index:1}
.map-pin{display:grid;place-items:center;margin:0 auto .75rem;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;font-size:1.5rem;box-shadow:0 10px 22px rgba(243,122,22,.3)}
.map-preview strong{display:block;font-size:1.1rem;margin-bottom:.25rem}.map-preview span{color:var(--muted);font-weight:700}
