/* Kahlani theme — v7 design system (verbatim) + Elementor Free compatibility layer. Generated from kahlani-final-v7.html */
:root{
  --red:#E1261C;
  --dark:#0B0D0F;
  --dark-2:#121519;
  --light:#F5F5F3;
  --white:#FFFFFF;
  --muted:#8E9398;
  --line-d:rgba(245,245,243,0.12);
  --line-l:rgba(11,13,15,0.12);
  --ff-d:'Vazirmatn',sans-serif;
  --ff-m:'JetBrains Mono',monospace;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--ff-d); background:var(--dark); color:var(--light); overflow-x:hidden; -webkit-font-smoothing:antialiased; font-size:16px; line-height:1.5;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font-family:var(--ff-d); cursor:pointer;}
::selection{background:var(--red); color:#fff;}
::-webkit-scrollbar{width:8px;}
::-webkit-scrollbar-track{background:var(--dark-2);}
::-webkit-scrollbar-thumb{background:var(--red);}
:focus-visible{outline:2px solid var(--red); outline-offset:3px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
}

.mono{font-family:var(--ff-m);}
.eyebrow{font-family:var(--ff-m); font-size:.85rem; letter-spacing:.02em; color:var(--red); display:flex; align-items:center; gap:.6rem; margin-bottom:1.2rem;}
.eyebrow::before{content:"";width:24px;height:1.5px;background:var(--red);display:inline-block;}
.section-head{max-width:640px; margin-bottom:3rem;}
.section-head h2{font-size:clamp(2.2rem,3.6vw,3.6rem); font-weight:800; line-height:1.3; letter-spacing:-.01em;}
.section-head p{color:var(--muted); font-size:1.1rem; line-height:1.9; margin-top:1.1rem;}
.on-light{background:var(--light); color:var(--dark);}
.on-light .muted, .on-light p{color:#5b6066;}
.on-light .section-head p{color:#5b6066;}

/* ============ HEADER ============ */
.topnav{
  position:fixed; top:0; right:0; left:0; z-index:600;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 2.6rem; height:80px;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .4s var(--ease), border-color .4s var(--ease);
}
.topnav.solid{background:rgba(11,13,15,0.86); backdrop-filter:blur(14px); border-color:var(--line-d);}
.topnav.light{background:rgba(245,245,243,0.9); backdrop-filter:blur(14px); border-color:var(--line-l);}
.topnav.light .nav-links li a{color:var(--dark);}
.topnav.light .nav-logo img{filter:none;}
.nav-logo{display:flex; align-items:center; gap:.7rem;}
.nav-logo img{height:38px; width:auto; transition:filter .3s ease;}
.nav-links{display:flex; align-items:center; gap:2.3rem;}
.nav-links li a{font-size:.92rem; font-weight:500; color:var(--light); position:relative; padding:.4rem 0; transition:color .25s ease;}
.nav-links li a::after{content:""; position:absolute; right:0; bottom:-3px; width:0; height:2px; background:var(--red); transition:width .3s var(--ease);}
.nav-links li.active a{color:var(--red);}
.nav-links li.active a::after{width:100%;}
.nav-cta{font-family:var(--ff-d); font-weight:600; font-size:.88rem; color:#fff; background:var(--red); padding:.8rem 1.5rem; border-radius:2px; transition:background .25s ease, transform .25s ease; white-space:nowrap;}
.nav-cta:hover{background:#ff3527; transform:translateY(-1px);}
.nav-burger{display:none;}
@media (max-width:980px){
  .nav-links{display:none;}
  .nav-cta{display:none;}
  .nav-burger{display:flex; flex-direction:column; gap:5px; background:none; border:none; padding:.4rem;}
  .nav-burger span{width:22px; height:2px; background:var(--light); transition:background .3s;}
  .topnav.light .nav-burger span{background:var(--dark);}
  .topnav{padding:0 1.2rem;}
  .nav-logo img{height:30px;}
}
.mnav{position:fixed; inset:0; background:var(--dark); z-index:900; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.8rem; transform:translateY(-100%); transition:transform .4s var(--ease);}
.mnav.open{transform:translateY(0);}
.mnav a{font-size:1.3rem; font-weight:700;}
.mnav .close-btn{position:absolute; top:1.6rem; left:1.6rem; background:none; border:none; color:var(--light); font-size:1.6rem;}
.mnav .nav-cta{margin-top:1rem;}

/* mobile top progress bar */
.mobile-progress{display:none; position:fixed; top:0; right:0; left:0; height:3px; z-index:601; background:var(--line-d);}
.mobile-progress-fill{height:100%; width:0%; background:var(--red); transition:width .2s linear;}
@media (max-width:980px){.mobile-progress{display:block;}}

/* right progress rail (desktop) */
.progress-rail{position:fixed; top:0; bottom:0; right:1.4rem; z-index:590; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.1rem;}
.progress-rail button{background:none; border:none; font-family:var(--ff-m); font-size:.72rem; color:var(--muted); padding:.3rem; transition:color .25s ease, transform .25s ease;}
.progress-rail button.active{color:var(--red); transform:scale(1.15);}
.progress-rail .rail-track{width:1px; height:26px; background:var(--line-d);}
@media (max-width:980px){.progress-rail{display:none;}}


/* ============ SCROLL CONTAINER ============ */
html{scroll-behavior:auto;}
@media (min-width:981px){
html{scroll-snap-type:y mandatory;}
}
body::-webkit-scrollbar{width:8px;}
body::-webkit-scrollbar-track{background:var(--dark-2);}
body::-webkit-scrollbar-thumb{background:var(--red);}
.elementor .panel{min-height:100vh; position:relative; display:flex; flex-direction:column; justify-content:center; padding:7rem 3.4rem; overflow:hidden;}
@media (min-width:981px){
.elementor .panel{scroll-snap-align:start; scroll-snap-stop:always;}
.site-footer{scroll-snap-align:start;}
}
@media (max-width:980px){
.elementor .panel{padding:6rem 1.3rem 4.5rem 1.3rem; min-height:auto;}
}
.elementor .inner{max-width:1240px; width:100%; margin:0 auto; position:relative; z-index:2;}
/* ============ HERO ============ */
.elementor .hero-wrap{height:200vh; position:relative; scroll-snap-align:start; scroll-snap-stop:always;}
@media (max-width:980px){
.elementor .hero-wrap{height:100vh;}
}
.elementor .hero-pin{position:sticky; top:0; height:100vh; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;}
@media (max-width:980px){
.elementor .hero-pin{position:relative;}
}
.elementor .hero-media{position:absolute; inset:0; z-index:0; transform:scale(1.03); will-change:transform;}
.elementor .hero-media video{width:100%; height:100%; object-fit:cover; display:block;}
.elementor .hero-media .fallback-scene{position:absolute; inset:0; width:100%; height:100%;}
.elementor .hero-media .fallback-scene svg{width:100%; height:100%; display:block; animation:kenburns 26s ease-in-out infinite alternate;}
@keyframes kenburns{0%{transform:scale(1);}100%{transform:scale(1.08) translate(-1%,-1%);}}
.elementor .hero-scrim{position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(11,13,15,.35) 0%, rgba(11,13,15,.15) 35%, rgba(11,13,15,.75) 100%);}
.elementor .hero-scrim-extra{position:absolute; inset:0; z-index:1; background:rgba(11,13,15,0); transition:background .1s linear;}
.elementor .hero-content{position:relative; z-index:2; padding:0 3.4rem 6.5rem 3.4rem; max-width:820px;}
@media (max-width:980px){
.elementor .hero-content{padding:0 1.3rem 7rem 1.3rem;}
}
.elementor .hero-content .eyebrow{opacity:0; transform:translateY(16px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.elementor .hero-content h1{font-size:clamp(2.6rem,6vw,5.25rem); font-weight:800; line-height:1.18; letter-spacing:-.02em; margin-bottom:1.4rem;}
.elementor .hero-content h1 .line{display:block; overflow:hidden;}
.elementor .hero-content h1 .line span{display:block; opacity:0; transform:translateY(100%); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.elementor .hero-content p.lede{font-size:1.2rem; color:#d6d5d2; line-height:1.9; max-width:560px; margin-bottom:2.1rem; opacity:0; transform:translateY(18px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.elementor .hero-content .hero-cta{display:flex; gap:1rem; flex-wrap:wrap; opacity:0; transform:translateY(18px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.elementor .hero-wrap.state-2 .eyebrow,
.elementor .hero-wrap.state-2 p.lede,
.elementor .hero-wrap.state-2 .hero-cta{opacity:1; transform:translateY(0);}
.elementor .hero-wrap.state-2 h1 .line span{opacity:1; transform:translateY(0);}
@media (max-width:980px){
.elementor .hero-content .eyebrow,
.elementor .hero-content h1 .line span,
.elementor .hero-content p.lede,
.elementor .hero-content .hero-cta{opacity:1; transform:none;}
}
.elementor .btn-primary{font-family:var(--ff-d); font-weight:600; font-size:.95rem; padding:1rem 1.9rem; background:var(--red); color:#fff; border-radius:2px; display:inline-flex; align-items:center; gap:.6rem; border:none; transition:background .25s ease, transform .25s ease;}
.elementor .btn-primary:hover{background:#ff3527; transform:translateY(-1px);}
.elementor .btn-ghost{font-family:var(--ff-d); font-weight:600; font-size:.95rem; padding:1rem 1.9rem; background:rgba(245,245,243,0.08); color:var(--light); border:1px solid var(--line-d); border-radius:2px; display:inline-flex; align-items:center; gap:.6rem; transition:all .25s ease;}
.elementor .btn-ghost:hover{border-color:var(--red); color:var(--red);}
.elementor .on-light .btn-ghost{background:rgba(11,13,15,0.04); color:var(--dark); border-color:var(--line-l);}
.elementor .scroll-cue{position:absolute; z-index:3; bottom:2.2rem; right:50%; transform:translateX(50%); display:flex; flex-direction:column; align-items:center; gap:.6rem; font-family:var(--ff-m); font-size:.68rem; color:var(--muted); letter-spacing:.08em; transition:opacity .4s ease;}
.elementor .hero-wrap.state-2 .scroll-cue{opacity:0; pointer-events:none;}
.elementor .mouse-ic{width:22px; height:34px; border:1px solid var(--muted); border-radius:12px; position:relative;}
.elementor .mouse-ic::before{content:""; position:absolute; top:6px; left:50%; transform:translateX(-50%); width:3px; height:6px; background:var(--red); border-radius:2px; animation:scrolldrop 1.6s infinite;}
@keyframes scrolldrop{0%{opacity:1;top:6px;}80%{opacity:0;top:18px;}100%{opacity:0;top:6px;}}
/* hero video controls */
.elementor .hero-controls{position:absolute; z-index:3; bottom:2.2rem; left:3.4rem; display:flex; align-items:center; gap:.9rem; opacity:.85; transition:opacity .3s ease;}
@media (max-width:980px){
.elementor .hero-controls{left:1.3rem; bottom:1.4rem;}
}
.elementor .hero-controls:hover{opacity:1;}
.elementor .hc-btn{width:34px; height:34px; border-radius:50%; border:1px solid rgba(245,245,243,.35); background:rgba(11,13,15,.4); color:var(--light); display:flex; align-items:center; justify-content:center; transition:border-color .25s ease, color .25s ease;}
.elementor .hc-btn:hover{border-color:var(--red); color:var(--red);}
.elementor .hc-progress{width:90px; height:2px; background:rgba(245,245,243,.25); position:relative; border-radius:2px; overflow:hidden;}
.elementor .hc-progress-fill{position:absolute; inset:0; width:0%; background:var(--red);}
/* ============ ABOUT ============ */
.elementor .about-grid{display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:center;}
@media (max-width:980px){
.elementor .about-grid{grid-template-columns:1fr; gap:2.4rem;}
}
.elementor .about-frame{position:relative; overflow:hidden; box-shadow:0 30px 60px rgba(11,13,15,.16);}
.elementor .about-frame svg{width:100%; display:block; transition:transform .6s var(--ease);}
.elementor .about-frame:hover svg{transform:scale(1.04);}
.elementor .about-copy p{color:#5b6066; line-height:1.9; font-size:1.1rem; margin-bottom:1.2rem;}
.elementor .checklist{margin:1.6rem 0 2.4rem 0; display:flex; flex-direction:column; gap:.9rem;}
.elementor .checklist li{display:flex; align-items:center; gap:.85rem; font-size:1rem; font-weight:500;}
.elementor .checklist .ck{width:22px;height:22px; border-radius:50%; background:var(--red); color:#fff; display:flex; align-items:center; justify-content:center; font-size:.68rem; flex-shrink:0;}
.elementor .stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem; max-width:900px; margin:0 auto; text-align:center;}
@media (max-width:640px){
.elementor .stat-grid{grid-template-columns:1fr 1fr;}
}
.elementor .stat-grid .stat b{font-family:var(--ff-m); font-size:clamp(2rem,3.2vw,2.8rem); color:var(--red); display:block; font-weight:700;}
.elementor .stat-grid .stat span{font-size:.9rem; color:var(--muted); display:block; margin-top:.4rem; line-height:1.5;}
.elementor .stat-note{margin:2.2rem auto 0 auto; max-width:640px; text-align:center; font-size:.82rem; color:#8b8f93; line-height:1.85;}
.elementor #stats{background:var(--dark-2);}
/* ============ SERVICES ============ */
.elementor .services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem;}
@media (max-width:980px){
.elementor .services-grid{grid-template-columns:1fr;}
}
.elementor .svc-card{position:relative; height:480px; overflow:hidden; border-radius:2px; cursor:default;}
@media (max-width:980px){
.elementor .svc-card{height:360px;}
}
.elementor .svc-card .svc-bg{position:absolute; inset:0; transition:transform .7s var(--ease);}
.elementor .svc-card .svc-bg svg{width:100%; height:100%; display:block;}
.elementor .svc-card:hover .svc-bg{transform:scale(1.05);}
.elementor .svc-card .svc-overlay{position:absolute; inset:0; background:linear-gradient(0deg, rgba(11,13,15,.92) 0%, rgba(11,13,15,.25) 55%, rgba(11,13,15,.1) 100%); transition:background .4s ease;}
.elementor .svc-card:hover .svc-overlay{background:linear-gradient(0deg, rgba(11,13,15,.96) 0%, rgba(11,13,15,.4) 60%, rgba(11,13,15,.2) 100%);}
.elementor .svc-card .svc-body{position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:flex-end; padding:2rem; transition:transform .4s var(--ease);}
.elementor .svc-card:hover .svc-body{transform:translateY(-6px);}
.elementor .svc-card .svc-num{font-family:var(--ff-m); font-size:.8rem; color:var(--red); margin-bottom:.8rem;}
.elementor .svc-card h3{font-size:1.4rem; font-weight:700; margin-bottom:.7rem;}
.elementor .svc-card .svc-desc{font-size:.92rem; color:#c9c8c5; line-height:1.8; max-height:0; opacity:0; overflow:hidden; transition:max-height .4s var(--ease), opacity .4s ease;}
.elementor .svc-card:hover .svc-desc{max-height:120px; opacity:1;}
@media (max-width:980px){
.elementor .svc-card .svc-desc{max-height:none; opacity:1; margin-top:.4rem;}
.elementor .svc-card .svc-body{transform:none;}
}
.elementor .svc-arrow{position:absolute; top:1.6rem; left:1.6rem; z-index:2; width:38px; height:38px; border-radius:50%; border:1px solid rgba(245,245,243,.35); display:flex; align-items:center; justify-content:center; opacity:0; transform:translateY(-8px); transition:all .4s var(--ease);}
.elementor .svc-card:hover .svc-arrow{opacity:1; transform:translateY(0); border-color:var(--red); color:var(--red);}
@media (max-width:980px){
.elementor .svc-arrow{opacity:1; transform:translateY(0); border-color:rgba(245,245,243,.35);}
}
/* ============ PROCESS ============ */
.elementor .process-grid-outer{display:flex; align-items:stretch; gap:.6rem;}
@media (max-width:980px){
.elementor .process-grid-outer{flex-direction:column; gap:1rem;}
}
.elementor .p-step{position:relative; flex:1; text-align:center; padding:2.2rem 1.2rem; border:1px solid var(--line-d); border-radius:2px; transition:border-color .3s ease, background .3s ease;}
.elementor .p-step:hover{border-color:var(--red); background:rgba(225,38,28,.04);}
.elementor .p-step .p-num-badge{width:60px; height:60px; border-radius:50%; border:1.5px solid var(--red); color:var(--red); background:rgba(225,38,28,.08); display:flex; align-items:center; justify-content:center; margin:0 auto 1.2rem auto;}
.elementor .p-step .p-num-badge svg{width:22px; height:22px;}
.elementor .p-step .p-num{font-family:var(--ff-m); color:var(--red); font-size:.75rem; margin-bottom:.6rem; display:block; letter-spacing:.05em;}
.elementor .p-step h3{font-size:.98rem; font-weight:700; margin-bottom:.6rem; color:var(--light);}
.elementor .p-step p{font-size:.82rem; color:#9a9ea1; line-height:1.75;}
.elementor .p-arrow{display:none;}
@media (min-width:981px){
.elementor .p-arrow{display:flex; align-items:center; justify-content:center; color:var(--line-d); flex:0 0 auto; width:24px;}
.elementor .p-arrow svg{width:16px; height:16px;}
}
/* ============ PROJECTS ============ */
.elementor .proj-note{font-size:.85rem; color:#6b6f74; margin-top:-1.6rem; margin-bottom:2.4rem;}
.elementor .proj-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem;}
@media (max-width:980px){
.elementor .proj-grid{grid-template-columns:1fr;}
}
.elementor .proj-card{position:relative; height:420px; overflow:hidden; border-radius:2px;}
@media (max-width:980px){
.elementor .proj-card{height:320px;}
}
.elementor .proj-card .proj-bg{position:absolute; inset:0; transition:transform .7s var(--ease);}
.elementor .proj-card .proj-bg svg{width:100%; height:100%; display:block;}
.elementor .proj-card:hover .proj-bg{transform:scale(1.06);}
.elementor .proj-card .proj-overlay{position:absolute; inset:0; background:linear-gradient(0deg, rgba(11,13,15,.9) 0%, rgba(11,13,15,.1) 60%); display:flex; flex-direction:column; justify-content:flex-end; padding:1.6rem;}
.elementor .proj-card .proj-line{width:0; height:2px; background:var(--red); margin-bottom:.9rem; transition:width .5s var(--ease);}
.elementor .proj-card:hover .proj-line{width:40px;}
.elementor .proj-card .proj-cat{font-family:var(--ff-m); font-size:.7rem; color:var(--red); margin-bottom:.4rem;}
.elementor .proj-card .proj-title{font-size:1.15rem; font-weight:700;}
/* ============ WHY US ============ */
.elementor .why-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:1.4rem;}
@media (max-width:980px){
.elementor .why-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
.elementor .why-grid{grid-template-columns:1fr;}
}
.elementor .why-card{text-align:center; padding:2rem 1rem; border:1px solid var(--line-l); transition:border-color .3s ease;}
.elementor .why-card:hover{border-color:var(--red);}
.elementor .why-card .ic{width:44px; height:44px; margin:0 auto 1.2rem auto; color:var(--muted); border:1px solid var(--line-l); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:all .3s ease;}
.elementor .why-card:hover .ic{color:var(--red); border-color:var(--red);}
.elementor .why-card .ic svg{width:20px; height:20px;}
.elementor .why-card h3{font-size:1rem; font-weight:700; margin-bottom:.6rem;}
.elementor .why-card p{font-size:.85rem; color:#6b6f74; line-height:1.8;}
/* ============ SELECTED CLIENTS ============ */
.elementor .clients-row{display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:2.6rem 3.2rem;}
@media (max-width:640px){
.elementor .clients-row{gap:1.4rem 1rem;}
}
.elementor .client-tile{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.7rem;
  width:130px; height:100px; filter:grayscale(1); opacity:.55;
  transition:filter .35s ease, opacity .35s ease, transform .35s ease;
}
@media (max-width:640px){
.elementor .client-tile{width:43%; height:90px;}
}
.elementor a.client-tile{cursor:pointer;}
.elementor .client-tile:hover{filter:grayscale(0); opacity:1; transform:translateY(-2px);}
.elementor .client-tile .client-ic{width:40px; height:40px; color:#9a9a9a; transition:color .35s ease;}
.elementor .client-tile:hover .client-ic{color:var(--red);}
.elementor .client-tile span{font-size:.78rem; color:#8b8f93; font-family:var(--ff-m); text-align:center;}
.elementor .clients-note{text-align:center; margin-top:2.4rem; font-size:.8rem; color:#8b8f93; max-width:520px; margin-left:auto; margin-right:auto; line-height:1.85; border-top:1px solid var(--line-l); padding-top:1.4rem;}
/* ============ CTA ============ */
.elementor .cta-panel{min-height:70vh; text-align:center; align-items:center;}
.elementor .cta-inner{max-width:760px; margin:0 auto; position:relative; z-index:2;}
.elementor .cta-panel h2{font-size:clamp(2rem,4vw,3.2rem); font-weight:800; line-height:1.4; margin-bottom:1.3rem;}
.elementor .cta-panel p{font-size:1.1rem; color:var(--muted); line-height:1.9; margin-bottom:2.2rem;}
/* ============ CONTACT ============ */
.elementor .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start;}
@media (max-width:980px){
.elementor .contact-grid{grid-template-columns:1fr; gap:2.4rem;}
}
.elementor .contact-info .info-row{display:flex; align-items:center; gap:1rem; padding:1.1rem 0; border-bottom:1px solid var(--line-l);}
.elementor .contact-info .info-row .ic{width:22px;height:22px; color:var(--red); flex-shrink:0;}
.elementor .contact-info .info-row b{display:block; font-size:.72rem; color:#8b8f93; font-family:var(--ff-m); margin-bottom:.3rem;}
.elementor .contact-info .info-row span{font-size:1rem;}
.elementor .f-group{margin-bottom:1.2rem;}
.elementor .f-group label{display:block; font-family:var(--ff-m); font-size:.75rem; color:#6b6f74; margin-bottom:.5rem;}
.elementor .f-group input,
.elementor .f-group textarea{width:100%; background:#fff; border:1px solid var(--line-l); color:var(--dark); font-family:var(--ff-d); font-size:1rem; padding:.9rem 1rem; outline:none; transition:border-color .25s ease; border-radius:2px;}
.elementor .f-group input:focus,
.elementor .f-group textarea:focus{border-color:var(--red);}
.elementor .f-group textarea{resize:vertical; min-height:110px;}
/* ============ FOOTER ============ */
.site-footer{background:var(--dark-2); border-top:1px solid var(--line-d); padding:3.6rem 3.4rem 1.6rem 3.4rem;}
@media (max-width:980px){
.site-footer{padding:3rem 1.3rem 6.5rem 1.3rem;}
}
.footer-top{display:flex; justify-content:space-between; flex-wrap:wrap; gap:2.4rem; padding-bottom:2.4rem; border-bottom:1px solid var(--line-d); max-width:1240px; margin:0 auto;}
.footer-brand img{height:42px; width:auto; margin-bottom:1.1rem;}
.footer-brand p{color:var(--muted); font-size:.9rem; max-width:280px; line-height:1.85;}
.footer-cols{display:flex; gap:3.5rem; flex-wrap:wrap;}
.footer-col h4{font-family:var(--ff-m); font-size:.75rem; color:#8b8f93; letter-spacing:.05em; margin-bottom:1.2rem;}
.footer-col a{display:block; font-size:.92rem; color:var(--muted); margin-bottom:.75rem; transition:color .2s;}
.footer-col a:hover{color:var(--red);}
.footer-contact p{font-size:.85rem; color:var(--muted); line-height:1.9;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:1.6rem; flex-wrap:wrap; gap:1rem; max-width:1240px; margin:0 auto;}
.footer-bottom p{font-size:.8rem; color:#8b8f93; font-family:var(--ff-m);}
.footer-social{display:flex; gap:.8rem;}
.footer-social a{width:34px; height:34px; border:1px solid var(--line-d); display:flex; align-items:center; justify-content:center; color:var(--muted); transition:all .25s ease;}
.footer-social a:hover{border-color:var(--red); color:var(--red);}
.elementor .reveal{opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.elementor .reveal.in{opacity:1; transform:translateY(0);}
.elementor .reveal-stagger > *{opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.elementor .reveal-stagger.in > *{opacity:1; transform:translateY(0);}
.elementor .reveal-stagger.in > *:nth-child(1){transition-delay:.05s;}
.elementor .reveal-stagger.in > *:nth-child(2){transition-delay:.12s;}
.elementor .reveal-stagger.in > *:nth-child(3){transition-delay:.19s;}
.elementor .reveal-stagger.in > *:nth-child(4){transition-delay:.26s;}
.elementor .reveal-stagger.in > *:nth-child(5){transition-delay:.33s;}

/* Elementor Button widget variants of .btn-primary / .btn-ghost */
.elementor .kbtn-primary .elementor-button{font-family:var(--ff-d); font-weight:600; font-size:.95rem; padding:1rem 1.9rem; background:var(--red); color:#fff; border-radius:2px; display:inline-flex; align-items:center; gap:.6rem; border:none; transition:background .25s ease, transform .25s ease;}
.elementor .kbtn-primary .elementor-button:hover{background:#ff3527; transform:translateY(-1px);}
.elementor .kbtn-ghost .elementor-button{font-family:var(--ff-d); font-weight:600; font-size:.95rem; padding:1rem 1.9rem; background:rgba(245,245,243,0.08); color:var(--light); border:1px solid var(--line-d); border-radius:2px; display:inline-flex; align-items:center; gap:.6rem; transition:all .25s ease;}
.elementor .kbtn-ghost .elementor-button:hover{border-color:var(--red); color:var(--red);}
.elementor .on-light .kbtn-ghost .elementor-button{background:rgba(11,13,15,0.04); color:var(--dark); border-color:var(--line-l);}
/* line icons (masks) */
.elementor .ico-p1{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.5' y2='16.5'/%3E%3C/svg%3E");}
.elementor .ico-p2{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l6-1 11-11-5-5L4 15l-1 6z'/%3E%3Cpath d='M14 4l5 5'/%3E%3C/svg%3E");}
.elementor .ico-p3{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 00.34 1.87l.06.06a2 2 0 11-2.83 2.83l-.06-.06a1.7 1.7 0 00-1.87-.34 1.7 1.7 0 00-1.04 1.56V21a2 2 0 11-4 0v-.09A1.7 1.7 0 009 19.35a1.7 1.7 0 00-1.87.34l-.06.06a2 2 0 11-2.83-2.83l.06-.06A1.7 1.7 0 004.65 15a1.7 1.7 0 00-1.56-1.04H3a2 2 0 110-4h.09A1.7 1.7 0 004.65 9a1.7 1.7 0 00-.34-1.87l-.06-.06a2 2 0 112.83-2.83l.06.06A1.7 1.7 0 009 4.65a1.7 1.7 0 001.04-1.56V3a2 2 0 114 0v.09A1.7 1.7 0 0015 4.65a1.7 1.7 0 001.87-.34l.06-.06a2 2 0 112.83 2.83l-.06.06A1.7 1.7 0 0019.35 9a1.7 1.7 0 001.56 1.04H21a2 2 0 110 4h-.09A1.7 1.7 0 0019.4 15z'/%3E%3C/svg%3E");}
.elementor .ico-p4{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 000 1.4l1.6 1.6a1 1 0 001.4 0l3.1-3.1a5 5 0 01-6.6 6.6L5.7 21.2a2 2 0 01-2.9-2.9L12.2 8.9a5 5 0 016.6-6.6l-3.1 3.1z'/%3E%3C/svg%3E");}
.elementor .ico-p5{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='M7 15l4-5 3 3 5-7'/%3E%3C/svg%3E");}
.elementor .ico-parrow{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E");}
.elementor .ico-w1{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3C/svg%3E");}
.elementor .ico-w2{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v4M12 18v4M4.9 4.9l2.8 2.8M16.3 16.3l2.8 2.8M2 12h4M18 12h4M4.9 19.1l2.8-2.8M16.3 7.7l2.8-2.8'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/svg%3E");}
.elementor .ico-w3{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L3 14h7l-1 8 10-12h-7z'/%3E%3C/svg%3E");}
.elementor .ico-w4{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 00.34 1.87M4.6 9a1.7 1.7 0 00-.34-1.87'/%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E");}
.elementor .ico-w5{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h4l2 5-2.5 1.5a11 11 0 005 5L14 13l5 2v4a2 2 0 01-2 2C9 21 3 15 3 7a2 2 0 011-3z'/%3E%3C/svg%3E");}
.elementor .ico-c1{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h4l2 5-2.5 1.5a11 11 0 005 5L14 13l5 2v4a2 2 0 01-2 2C9 21 3 15 3 7a2 2 0 011-3z'/%3E%3C/svg%3E");}
.elementor .ico-c2{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E");}
.elementor .ico-c3{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s7-6.5 7-12a7 7 0 10-14 0c0 5.5 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");}

.elementor .about-frame::before{content:"";display:block;aspect-ratio:400/340;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 340' xmlns='http://www.w3.org/2000/svg'%3E           %3Crect x='0' y='0' width='400' height='340' fill='%230B0D0F'/%3E           %3Cg stroke='rgba(245,245,243,0.1)' stroke-width='1'%3E             %3Cline x1='0' y1='60' x2='400' y2='60'/%3E%3Cline x1='0' y1='120' x2='400' y2='120'/%3E             %3Cline x1='0' y1='180' x2='400' y2='180'/%3E%3Cline x1='0' y1='240' x2='400' y2='240'/%3E             %3Cline x1='0' y1='300' x2='400' y2='300'/%3E             %3Cline x1='66' y1='0' x2='66' y2='340'/%3E%3Cline x1='133' y1='0' x2='133' y2='340'/%3E             %3Cline x1='200' y1='0' x2='200' y2='340'/%3E%3Cline x1='266' y1='0' x2='266' y2='340'/%3E             %3Cline x1='333' y1='0' x2='333' y2='340'/%3E           %3C/g%3E           %3Crect x='50' y='120' width='300' height='130' fill='none' stroke='%23E1261C' stroke-width='2'/%3E           %3Crect x='50' y='120' width='300' height='18' fill='rgba(225,38,28,0.22)'/%3E           %3Cline x1='50' y1='240' x2='350' y2='240' stroke='%23E1261C' stroke-width='1.4'/%3E           %3Ccircle cx='82' cy='252' r='10' fill='none' stroke='%23E1261C' stroke-width='1.4'/%3E           %3Ccircle cx='140' cy='252' r='10' fill='none' stroke='%23E1261C' stroke-width='1.4'/%3E           %3Ccircle cx='198' cy='252' r='10' fill='none' stroke='%23E1261C' stroke-width='1.4'/%3E           %3Ccircle cx='256' cy='252' r='10' fill='none' stroke='%23E1261C' stroke-width='1.4'/%3E           %3Ccircle cx='314' cy='252' r='10' fill='none' stroke='%23E1261C' stroke-width='1.4'/%3E           %3Cg fill='%23E1261C' opacity='0.8'%3E             %3Crect x='66' y='150' width='26' height='14'/%3E%3Crect x='98' y='150' width='26' height='14'/%3E             %3Crect x='130' y='150' width='26' height='14'/%3E%3Crect x='162' y='150' width='26' height='14'/%3E             %3Crect x='194' y='150' width='26' height='14'/%3E%3Crect x='226' y='150' width='26' height='14'/%3E             %3Crect x='258' y='150' width='26' height='14'/%3E%3Crect x='290' y='150' width='26' height='14'/%3E           %3C/g%3E           %3Ctext x='60' y='60' fill='%238E9398' font-family='JetBrains Mono' font-size='10'%3ESECTION A-A%3C/text%3E           %3Ctext x='255' y='285' fill='%238E9398' font-family='JetBrains Mono' font-size='9'%3ETUNNEL KILN%3C/text%3E         %3C/svg%3E") center/100% 100% no-repeat;transition:transform .6s var(--ease);}
.elementor .about-frame:hover::before{transform:scale(1.04);}
.elementor .cta-panel .bg-photo{position:absolute;inset:0;opacity:.18;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='200 100 1200 800' preserveAspectRatio='xMidYMid slice'%3E%3Csvg x='0' y='0' width='1200' height='800' viewBox='0 0 1600 1000'%3E   %3Crect width='1600' height='1000' fill='%230B0D0F'/%3E   %3Cdefs%3E     %3CradialGradient id='glow1' cx='68%' cy='20%' r='50%'%3E%3Cstop offset='0%' stop-color='%23E1261C' stop-opacity='0.28'/%3E%3Cstop offset='100%' stop-color='%230B0D0F' stop-opacity='0'/%3E%3C/radialGradient%3E     %3ClinearGradient id='fadebot' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0%' stop-color='%230B0D0F' stop-opacity='0'/%3E%3Cstop offset='100%' stop-color='%23000' stop-opacity='0.65'/%3E%3C/linearGradient%3E   %3C/defs%3E   %3Crect width='1600' height='1000' fill='url(%23glow1)'/%3E   %3Cg fill='%23000' opacity='0.9'%3E     %3Cpath d='M0 520 L60 470 L120 520 L180 470 L240 520 L300 470 L360 520 L420 470 L480 520 L540 470 L600 520 L660 470 L720 520 L720 640 L0 640 Z'/%3E     %3Cpath d='M900 540 L960 490 L1020 540 L1080 490 L1140 540 L1200 490 L1260 540 L1320 490 L1380 540 L1440 490 L1500 540 L1560 490 L1600 520 L1600 660 L900 660 Z'/%3E   %3C/g%3E   %3Cg fill='%2308090a'%3E     %3Crect x='180' y='260' width='30' height='280'/%3E     %3Crect x='1310' y='180' width='36' height='360'/%3E   %3C/g%3E   %3Cg stroke='%23E1261C' stroke-width='1.6' opacity='0.4'%3E     %3Cline x1='180' y1='260' x2='180' y2='540'/%3E%3Cline x1='210' y1='260' x2='210' y2='540'/%3E     %3Cline x1='1310' y1='180' x2='1310' y2='540'/%3E%3Cline x1='1346' y1='180' x2='1346' y2='540'/%3E   %3C/g%3E   %3Cg%3E     %3Crect x='560' y='560' width='520' height='180' fill='%2308090a' stroke='%23E1261C' stroke-width='1.6' opacity='0.9'/%3E     %3Crect x='560' y='560' width='520' height='24' fill='%23E1261C' opacity='0.25'/%3E     %3Cline x1='560' y1='740' x2='1080' y2='740' stroke='%23E1261C' stroke-width='2' opacity='0.7'/%3E     %3Cg fill='%23E1261C' opacity='0.55'%3E       %3Ccircle cx='600' cy='758' r='13'/%3E%3Ccircle cx='670' cy='758' r='13'/%3E%3Ccircle cx='740' cy='758' r='13'/%3E       %3Ccircle cx='810' cy='758' r='13'/%3E%3Ccircle cx='880' cy='758' r='13'/%3E%3Ccircle cx='950' cy='758' r='13'/%3E       %3Ccircle cx='1020' cy='758' r='13'/%3E%3Ccircle cx='1050' cy='758' r='13'/%3E     %3C/g%3E     %3Cg fill='%23E1261C' opacity='0.5'%3E       %3Crect x='590' y='610' width='44' height='26'/%3E%3Crect x='648' y='610' width='44' height='26'/%3E       %3Crect x='706' y='610' width='44' height='26'/%3E%3Crect x='764' y='610' width='44' height='26'/%3E       %3Crect x='822' y='610' width='44' height='26'/%3E%3Crect x='880' y='610' width='44' height='26'/%3E       %3Crect x='938' y='610' width='44' height='26'/%3E%3Crect x='996' y='610' width='44' height='26'/%3E     %3C/g%3E   %3C/g%3E   %3Cg stroke='%23E1261C' stroke-width='1.6' fill='none' opacity='0.3'%3E     %3Cpath d='M100 560 L100 700 L400 700 L400 620'/%3E     %3Cpath d='M1200 620 L1200 700 L1550 700 L1550 550'/%3E     %3Ccircle cx='400' cy='620' r='9'/%3E%3Ccircle cx='1200' cy='620' r='9'/%3E   %3C/g%3E   %3Cg fill='%2308090a' opacity='0.95'%3E     %3Crect x='60' y='780' width='160' height='110'/%3E     %3Crect x='1380' y='760' width='180' height='130'/%3E   %3C/g%3E   %3Cg stroke='%23E1261C' stroke-width='1.2' opacity='0.4'%3E     %3Cline x1='60' y1='810' x2='220' y2='810'/%3E%3Cline x1='60' y1='840' x2='220' y2='840'/%3E%3Cline x1='60' y1='865' x2='220' y2='865'/%3E     %3Cline x1='1380' y1='795' x2='1560' y2='795'/%3E%3Cline x1='1380' y1='825' x2='1560' y2='825'/%3E%3Cline x1='1380' y1='855' x2='1560' y2='855'/%3E   %3C/g%3E   %3Cg stroke='%23000' stroke-width='9' fill='none' opacity='0.8'%3E     %3Cline x1='260' y1='900' x2='260' y2='300'/%3E     %3Cline x1='260' y1='320' x2='520' y2='320'/%3E   %3C/g%3E   %3Cg fill='%23ff8a4d' opacity='0.55'%3E     %3Ccircle cx='640' cy='600' r='3.5'/%3E%3Ccircle cx='720' cy='600' r='3.5'/%3E%3Ccircle cx='800' cy='600' r='3.5'/%3E     %3Ccircle cx='880' cy='600' r='3.5'/%3E%3Ccircle cx='960' cy='600' r='3.5'/%3E%3Ccircle cx='1030' cy='600' r='3.5'/%3E   %3C/g%3E   %3Crect width='1600' height='1000' fill='url(%23fadebot)'/%3E %3C/svg%3E%3C/svg%3E") center/cover no-repeat;}


/* v7 illustrations as CSS backgrounds (so they need no HTML widget) */
.elementor .svc-bg-1{background:url("data:image/svg+xml,%3Csvg viewBox='0 0 500 480' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='500' height='480' fill='%230B0D0F'/%3E%3Crect width='500' height='480' fill='url(%23svc1)'/%3E%3Cdefs%3E%3CradialGradient id='svc1' cx='65%' cy='25%' r='65%'%3E%3Cstop offset='0%' stop-color='%23E1261C' stop-opacity='0.28'/%3E%3Cstop offset='100%' stop-color='%230B0D0F' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg stroke='%23E1261C' stroke-width='2' fill='none' opacity='0.55'%3E%3Crect x='90' y='220' width='320' height='120'/%3E%3Cline x1='90' y1='340' x2='410' y2='340'/%3E%3Ccircle cx='130' cy='360' r='14'/%3E%3Ccircle cx='200' cy='360' r='14'/%3E%3Ccircle cx='270' cy='360' r='14'/%3E%3Ccircle cx='340' cy='360' r='14'/%3E%3Ccircle cx='380' cy='360' r='14'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat;}
.elementor .svc-bg-2{background:url("data:image/svg+xml,%3Csvg viewBox='0 0 500 480' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='500' height='480' fill='%230B0D0F'/%3E%3Crect width='500' height='480' fill='url(%23svc2)'/%3E%3Cdefs%3E%3CradialGradient id='svc2' cx='35%' cy='70%' r='65%'%3E%3Cstop offset='0%' stop-color='%23E1261C' stop-opacity='0.28'/%3E%3Cstop offset='100%' stop-color='%230B0D0F' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg stroke='%23E1261C' stroke-width='2' fill='none' opacity='0.55'%3E%3Cline x1='70' y1='260' x2='430' y2='260'/%3E%3Crect x='110' y='230' width='40' height='40'/%3E%3Crect x='180' y='230' width='40' height='40'/%3E%3Crect x='250' y='230' width='40' height='40'/%3E%3Crect x='320' y='230' width='40' height='40'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat;}
.elementor .svc-bg-3{background:url("data:image/svg+xml,%3Csvg viewBox='0 0 500 480' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='500' height='480' fill='%230B0D0F'/%3E%3Crect width='500' height='480' fill='url(%23svc3)'/%3E%3Cdefs%3E%3CradialGradient id='svc3' cx='55%' cy='35%' r='65%'%3E%3Cstop offset='0%' stop-color='%23E1261C' stop-opacity='0.3'/%3E%3Cstop offset='100%' stop-color='%230B0D0F' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg stroke='%23E1261C' stroke-width='2' fill='none' opacity='0.55'%3E%3Crect x='140' y='200' width='220' height='150' rx='2'/%3E%3Ccircle cx='185' cy='385' r='22'/%3E%3Ccircle cx='315' cy='385' r='22'/%3E%3Crect x='160' y='230' width='60' height='40'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat;}
.elementor .proj-bg-1{background:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 420' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='400' height='420' fill='%230B0D0F'/%3E%3Cg stroke='%23E1261C' stroke-width='1.4' fill='none' opacity='0.5'%3E%3Crect x='60' y='180' width='280' height='110'/%3E%3Cline x1='60' y1='235' x2='340' y2='235'/%3E%3Ccircle cx='95' cy='248' r='10'/%3E%3Ccircle cx='155' cy='248' r='10'/%3E%3Ccircle cx='215' cy='248' r='10'/%3E%3Ccircle cx='275' cy='248' r='10'/%3E%3Ccircle cx='320' cy='248' r='10'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat;}
.elementor .proj-bg-2{background:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 420' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='400' height='420' fill='%230B0D0F'/%3E%3Cg stroke='%23E1261C' stroke-width='1.4' fill='none' opacity='0.5'%3E%3Cline x1='60' y1='220' x2='340' y2='220'/%3E%3Crect x='100' y='190' width='34' height='34'/%3E%3Crect x='160' y='190' width='34' height='34'/%3E%3Crect x='220' y='190' width='34' height='34'/%3E%3Crect x='280' y='190' width='34' height='34'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat;}
.elementor .proj-bg-3{background:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 420' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='400' height='420' fill='%230B0D0F'/%3E%3Cg stroke='%23E1261C' stroke-width='1.4' fill='none' opacity='0.5'%3E%3Crect x='120' y='160' width='160' height='130' rx='2'/%3E%3Ccircle cx='155' cy='320' r='18'/%3E%3Ccircle cx='245' cy='320' r='18'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat;}

.elementor .svc-arrow::before{content:"";display:block;width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M7 17L17 7M7 7h10v10'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M7 17L17 7M7 7h10v10'/%3E%3C/svg%3E") center/contain no-repeat;}
.elementor .client-ic::before{content:"";display:block;width:100%;height:100%;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27  viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18M9 21V9'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27  viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18M9 21V9'/%3E%3C/svg%3E") center/contain no-repeat;}
.elementor .info-row .ic::before{content:"";display:block;width:100%;height:100%;background:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat;}
.elementor .hero-pin > .elementor-widget-html,.elementor .hero-pin > .elementor-widget-html > .elementor-widget-container{position:static;}
.elementor .hero-pin > .elementor-widget-html{display:contents;}
.elementor .kahlani-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden;}
.elementor .kahlani-contact-success{background:rgba(225,38,28,.08);border:1px solid var(--red);color:var(--red);padding:1rem 1.2rem;border-radius:2px;margin-bottom:1.4rem;font-size:.92rem;}
.elementor .contact-form .btn-primary{cursor:pointer;}

/* =====================================================================
   Elementor Free compatibility layer
   (everything above is the v7 CSS, unchanged; page rules are scoped with
   ".elementor " so they out-rank Elementor's own container/widget CSS)
   ===================================================================== */
.elementor{--kit-widget-spacing:0px;}
.elementor .e-con{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px;}
.elementor .elementor-widget:not(:last-child){margin-block-end:0;}
.elementor .elementor-widget-container{margin:0;padding:0;}
.elementor .elementor-heading-title{font-family:inherit;color:inherit;font-weight:700;line-height:inherit;}
.elementor .elementor-widget-text-editor{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;}
.elementor .hl{color:var(--red);}
.elementor .eyebrow--center{justify-content:center;}
.elementor .section-head--center{margin-left:auto;margin-right:auto;text-align:center;}

/* headings whose v7 markup carried inline styles */
.elementor .about-copy h2{font-size:clamp(1.9rem,3.4vw,2.6rem);font-weight:800;margin-bottom:1.4rem;line-height:1.4;}
.elementor .contact-info h2{font-size:clamp(1.9rem,3.2vw,2.4rem);font-weight:800;margin-bottom:1.5rem;}
.elementor .contact-info p.contact-lede{color:#5b6066;line-height:1.9;margin-bottom:1.2rem;}
.elementor .contact-info .info-row p{color:inherit;margin:0;}
.elementor .cta-panel .bg-photo{pointer-events:none;}

/* checklist  (Icon List widget) */
.elementor .checklist.elementor-widget{margin:1.6rem 0 2.4rem 0 !important;}
.elementor .checklist .elementor-icon-list-items{display:flex;flex-direction:column;gap:.9rem;list-style:none;margin:0;padding:0;}
.elementor .checklist .elementor-icon-list-item{display:flex;align-items:center;gap:.85rem;font-size:1rem;font-weight:500;margin:0;padding:0;}
.elementor .checklist .elementor-icon-list-icon{width:22px;height:22px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.68rem;flex-shrink:0;padding:0;}
.elementor .checklist .elementor-icon-list-icon i{display:none;}
.elementor .checklist .elementor-icon-list-icon::before{content:"\2713";}
.elementor .checklist .elementor-icon-list-text{padding:0;color:inherit;font-size:1rem;}

/* stats  (native Counter widget) */
.elementor .stat .elementor-counter{text-align:center;}
.elementor .stat .elementor-counter-number-wrapper{font-family:var(--ff-m);font-size:clamp(2rem,3.2vw,2.8rem);color:var(--red);display:block;font-weight:700;line-height:1.5;}
.elementor .stat-grid .stat .elementor-counter-number-wrapper span{font-size:inherit;color:inherit;display:inline;margin:0;}
.elementor .stat .elementor-counter-title{font-size:.9rem;color:var(--muted);display:block;margin-top:.4rem;line-height:1.5;font-family:var(--ff-d);font-weight:400;}

/* exact v7 line icons on top of Elementor's Icon widget (delete the "ico-exact" class to fall back to the Font Awesome icon) */
.elementor .ico-exact .elementor-widget-container,.elementor .ico-exact .elementor-icon-wrapper{width:100%;height:100%;}
.elementor .ico-exact .elementor-icon{display:block;width:100%;height:100%;font-size:0;line-height:0;color:inherit;}
.elementor .ico-exact .elementor-icon i{display:none;}
.elementor .ico-exact .elementor-icon::before{content:"";display:block;width:100%;height:100%;background:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat;}
.elementor .p-num-badge .ico-exact{width:22px;height:22px;}
.elementor .why-card .ic .ico-exact{width:20px;height:20px;}
.elementor .p-arrow::before{content:"";display:block;width:16px;height:16px;background:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat;}

/* Elementor Button widget: keep v7 spacing/wrapper neutral */
.elementor .kbtn-primary .elementor-button-wrapper,.elementor .kbtn-ghost .elementor-button-wrapper{text-align:inherit;}
.elementor .kbtn-primary .elementor-button,.elementor .kbtn-ghost .elementor-button{line-height:1.5;}
.elementor .kbtn-primary .elementor-button-content-wrapper,.elementor .kbtn-ghost .elementor-button-content-wrapper{gap:.6rem;}
.elementor .kbtn-primary .elementor-button:focus,.elementor .kbtn-ghost .elementor-button:focus{color:inherit;}

/* Elementor editor safeguards: never hide content that is being edited */
body.elementor-editor-active .reveal,
body.elementor-editor-active .reveal-stagger > *,
body.elementor-editor-active .hero-content .eyebrow,
body.elementor-editor-active .hero-content h1 .line span,
body.elementor-editor-active .hero-content p.lede,
body.elementor-editor-active .hero-content .hero-cta{opacity:1 !important;transform:none !important;}
body.elementor-editor-active .hero-wrap{height:auto !important;}
body.elementor-editor-active .hero-pin{position:relative !important;min-height:100vh;}
html:has(body.elementor-editor-active){scroll-snap-type:none !important;}

/* contact info rows (Heading widgets standing in for v7 <b>/<span>) */
.elementor .info-row .ir-label{display:block;font-size:.72rem;color:#8b8f93;font-family:var(--ff-m);margin-bottom:.3rem;}
.elementor .info-row .ir-label .elementor-heading-title{font-size:inherit;font-weight:400;}
.elementor .info-row .ir-value .elementor-heading-title{font-size:1rem;font-weight:400;color:inherit;}
.elementor .info-row > .e-con{--gap:0px;}
.elementor .ico-exact .elementor-icon svg{display:none;}
.elementor .svc-num .elementor-heading-title,.elementor .p-num .elementor-heading-title,.elementor .proj-cat .elementor-heading-title,.elementor .proj-title .elementor-heading-title{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit;}
.elementor .scroll-cue .elementor-heading-title{font:inherit;color:inherit;letter-spacing:inherit;}

/* Elementor containers default to flex-direction:column; restore the row layouts v7 relied on */
.elementor .hero-cta,.elementor .clients-row,.elementor .info-row{flex-direction:row;}
.elementor .clients-row{align-items:center;}
.elementor .info-row{align-items:center;}
.elementor .process-grid-outer{flex-direction:column;}
@media (min-width:981px){.elementor .process-grid-outer{flex-direction:row;}}
.elementor .p-step{flex:1 1 0;min-width:0;}
.elementor .p-arrow{flex:0 0 auto;}
/* keep v7 block flow for wrappers that had no display rule */
.elementor .client-tile{flex:0 0 auto;}
.elementor .info-row > .e-con:not(.ic){flex:1;}
.elementor .info-row .ic{flex:0 0 22px;}
.elementor .section-head--center h2{text-align:center;}
