/* ---- Neutralise Elementor defaults inside the shell ---- */
body .e-con{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px;min-width:0;max-width:100%}
body .elementor-widget:not(:last-child){margin-block-end:0}
body .elementor-widget-heading .elementor-heading-title{font:inherit;letter-spacing:inherit;color:inherit;line-height:inherit;margin:0;padding:0}
body .elementor-widget-heading .elementor-heading-title a{color:inherit}
body .elementor-widget-text-editor{font:inherit;color:inherit;line-height:inherit}
body .elementor-widget-text-editor p{margin:0}
body .elementor-widget-image .elementor-widget-container{height:100%}
body .fill,body .fill .elementor-widget-container,body .fill img{width:100%;height:100%}
body .fill img{object-fit:cover;display:block;border-radius:0}
body .h2{font-size:clamp(28px,2.8vw,40px);font-weight:500;line-height:1.15;letter-spacing:-.025em}
body .label{margin-bottom:14px}

/* ---- Header template ---- */
body .hdr.e-con{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:20px var(--pad);border-bottom:1px solid var(--line)}
body .hdr-nav.e-con{flex-direction:row;gap:28px;font-size:13px;font-weight:500}
body .hdr-nav a:hover{opacity:.55}
body .hdr-phone{justify-self:end;font-size:13px;font-weight:500}

/* ---- Hero ---- */
body .hero.e-con{padding:64px var(--pad) 0;flex-direction:column;align-items:stretch}
body .hero-name{font-size:clamp(18px,1.7vw,24px);font-weight:500;letter-spacing:-.02em;line-height:1.3}
body .hero-title.e-con{flex-direction:row;justify-content:space-between;align-items:flex-start}
body .hero-h1{font-family:var(--serif);font-weight:400;font-size:clamp(84px,12vw,172px);line-height:1;letter-spacing:-.035em;margin:-6px 0 0 -2px}
body .sparkles{display:flex;gap:18px;margin-top:70px;color:#333}
body .sparkles span{width:20px;height:20px;background:currentColor;-webkit-mask:var(--m-spark) center/contain no-repeat;mask:var(--m-spark) center/contain no-repeat}
body .hero-grid.e-con{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:70px;align-items:start}
body .hero-left.e-con{max-width:240px}
body .contact-line{font-size:13px;font-weight:500;padding:8px 0 7px;border-bottom:1px solid #ddd}
body .contact-line+.contact-line{margin-top:6px}
body .hero-intro.e-con{align-items:flex-start}
body .hero-intro .elementor-widget-text-editor{font-size:13.5px;line-height:1.6;color:#333;max-width:520px}
body .hero-btn{margin-top:20px}
body .hero-btn .elementor-button{background:var(--ink);color:#fff;border-radius:6px;padding:9px 14px;font:500 12px/1.5 var(--sans);box-shadow:0 3px 0 #444}
body .hero-btn .elementor-button-text{display:inline-flex;align-items:center;gap:8px}
body .hero-btn .elementor-button-text::after{content:"";width:11px;height:11px;background:currentColor;-webkit-mask:var(--m-down) center/contain no-repeat;mask:var(--m-down) center/contain no-repeat}

/* ---- Social icons widget (hero + footer) ---- */
body .socials{margin-top:22px}
body .socials .elementor-social-icons-wrapper{display:flex;flex-wrap:wrap;gap:10px}
body .socials .elementor-grid-item{margin:0;width:auto}
body .socials .elementor-social-icon{width:28px!important;height:28px!important;min-width:0;padding:0;border:1px solid #d4d4d4;border-radius:50%!important;background:transparent!important;color:var(--ink);display:grid;place-items:center;font-size:12px!important;transition:.2s}
body .socials .elementor-social-icon i,body .socials .elementor-social-icon svg{color:inherit;fill:currentColor;width:12px;height:12px;font-size:12px}
body .socials .elementor-social-icon:hover{background:var(--ink)!important;color:#fff;border-color:var(--ink)}

/* ---- Marquee ---- */
body .marquee.e-con{overflow:hidden;margin-top:64px;padding-bottom:70px}
body .marquee-track.e-con{flex-direction:row;gap:18px;width:max-content;max-width:none}
body .marquee-track.is-ready{animation:mq 40s linear infinite}
body .marquee:hover .marquee-track{animation-play-state:paused}
body .slide.e-con{flex:none;width:clamp(240px,38vw,553px);aspect-ratio:4/3;border:1px solid var(--line);border-radius:12px;background:#ececec;overflow:hidden;box-shadow:0 18px 40px -22px rgba(0,0,0,.25)}
body .slide.is-accent{background:#eef59d}
@keyframes mq{to{transform:translateX(-50%)}}
.elementor-editor-active .marquee-track{animation:none!important}
.elementor-editor-active .marquee.e-con{overflow-x:auto}

/* ---- Section heads ---- */
body .services.e-con{padding:70px var(--pad) 90px}
body .section-head.e-con{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:34px}
body .section-head .h2{max-width:520px}
body .section-intro{color:var(--muted);font-size:12.5px;line-height:1.6;max-width:520px}

/* ---- Services accordion ---- */
body .svc.e-con{border:1px solid var(--line);border-radius:14px;margin-bottom:8px;background:#fff;transition:background .25s}
body .svc.is-open{background:var(--panel)}
body .svc-head.e-con{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:20px;cursor:pointer}
body .svc-num{font-weight:500;font-size:14px}
body .svc-num .elementor-heading-title{display:flex;align-items:center}
body .svc-num .elementor-heading-title::before{content:"";width:0;height:17px;opacity:0;background:currentColor;-webkit-mask:var(--m-spark) center/contain no-repeat;mask:var(--m-spark) center/contain no-repeat;transition:.25s}
body .svc.is-open .svc-num .elementor-heading-title::before{width:17px;margin-right:14px;opacity:1}
body .svc-row.e-con{flex-direction:row;justify-content:space-between;align-items:center}
body .svc-title{font-weight:500;font-size:15px}
body .svc-btn .elementor-button{font:500 10.5px/1.4 var(--sans);border-radius:5px;padding:5px 9px;background:#f1f1f1;color:var(--ink);border:1px solid #e4e4e4}
body .svc.is-open .svc-btn .elementor-button{background:var(--ink);color:#fff;border-color:var(--ink)}
body .svc-body.e-con{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease}
body .svc.is-open .svc-body.e-con,.elementor-editor-active .svc-body.e-con{grid-template-rows:1fr}
body .svc-clip.e-con{overflow:hidden;min-height:0;display:block}
body .svc-content.e-con{display:grid;grid-template-columns:1fr 1fr;padding:0 20px 20px}
body .svc-detail.e-con{grid-column:2}
body .svc-img{aspect-ratio:1.66;border-radius:8px;background:linear-gradient(135deg,#8c8c88,#bdbdb8);overflow:hidden;margin-bottom:14px}
body .svc-text{font-size:12px;color:#444;line-height:1.55;max-width:420px}

/* ---- Process ---- */
body .process.e-con{padding:70px var(--pad) 80px;background:var(--soft);border-block:1px solid var(--line);text-align:center;align-items:stretch}
body .process .h2{max-width:600px;margin:0 auto 52px}
body .steps.e-con{flex-direction:row;justify-content:center;align-items:center;width:100%}
body .step{flex:0 0 19.6%;margin-left:-.7%;transition:flex-basis .35s ease;position:relative}
body .step:first-child{margin-left:0}
body .step.is-active{flex-basis:24%;z-index:2}
body .step .elementor-button{width:100%;aspect-ratio:1;border-radius:50%;background:transparent;border:1px solid #d6d6d6;color:var(--ink);font:500 11px var(--sans);letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;padding:0;transition:all .35s ease}
body .step.is-active .elementor-button{background:#fff;border:1.5px solid var(--ink);box-shadow:0 0 0 6px #fff,0 0 0 7px #e5e5e5}
body .process-text{margin:34px auto 0;max-width:260px;color:var(--muted);font-size:12px}

/* ---- Work ---- */
body .work.e-con{padding:90px var(--pad)}
body .work-head.e-con{flex-direction:row;justify-content:space-between;align-items:flex-end;margin-bottom:26px}
body .arrows.e-con{flex-direction:row;gap:8px}
body .arrows .elementor-button{width:34px;height:34px;padding:0;border-radius:50%;background:#f1f1f1;color:var(--ink);display:grid;place-items:center;font-size:0}
body .arrows .elementor-button-text{font-size:0}
body .arrows .elementor-button-text::before{content:"";display:block;width:15px;height:15px;background:currentColor}
body .arrow-prev .elementor-button-text::before{-webkit-mask:var(--m-undo) center/contain no-repeat;mask:var(--m-undo) center/contain no-repeat}
body .arrow-next .elementor-button-text::before{-webkit-mask:var(--m-redo) center/contain no-repeat;mask:var(--m-redo) center/contain no-repeat}
body .arrows .elementor-button:hover{background:var(--ink);color:#fff}
body .grid.e-con{display:grid;grid-template-columns:1fr 1fr;gap:14px}
body .card.e-con{border:1px solid var(--line);border-radius:14px;padding:5px;background:#fff}
body .card.is-hidden{display:none}
body .card-img{aspect-ratio:1.4;border-radius:9px;background:#e7e7e7;overflow:hidden}
body .card-img img{transition:transform .5s}
body .card:hover .card-img img{transform:scale(1.03)}
body .card-body.e-con{padding:12px 6px 8px}
body .card-row.e-con{flex-direction:row;justify-content:space-between;margin-bottom:6px}
body .card-title{text-transform:uppercase;font-weight:500;font-size:14px}
body .card-year{color:var(--muted);font-size:12px}
body .card-desc{font-size:11.5px;color:var(--muted);line-height:1.5}

/* ---- Footer template ---- */
body .contact.e-con{background:#0a0a0a;color:#fff;border-radius:14px;margin:0 clamp(10px,1.2vw,18px) clamp(10px,1.2vw,18px);padding:56px clamp(20px,5.5vw,80px) 34px;width:auto;max-width:none}
body .contact .label{color:#9a9a9a;margin:0}
body .contact-title{font-family:var(--serif);font-weight:400;font-size:clamp(64px,9.5vw,136px);line-height:1.05;letter-spacing:-.03em;color:#c7c7c7}
body .contact-title em{font-style:italic}
body .contact-row.e-con{flex-direction:row;justify-content:space-between;align-items:flex-end;margin-top:10px}
body .contact-mail{font-size:clamp(20px,2.2vw,30px);border-bottom:1px solid #666;padding-bottom:8px;color:#e6e6e6}
body .contact .socials{margin:0}
body .contact .socials .elementor-social-icon{border-color:#555;color:#ddd}
body .contact .socials .elementor-social-icon:hover{background:#fff!important;color:#000;border-color:#fff}
body .foot.e-con{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-top:1px solid #2c2c2c;margin-top:90px;padding-top:22px;font-size:11.5px;font-weight:500}
body .foot-nav.e-con{flex-direction:row;gap:18px}
body .foot .logo{font-size:15px}
body .foot-phone{justify-self:end}

/* ---- Responsive ---- */
@media (max-width:900px){
  body .hdr.e-con{grid-template-columns:1fr auto}
  body .hdr-phone{display:none}
  body .hdr-nav.e-con{gap:16px}
  body .hero-grid.e-con,body .section-head.e-con{grid-template-columns:1fr;gap:28px}
  body .sparkles{display:none}
  body .hero-h1{font-size:clamp(64px,22vw,120px)}
  body .svc-head.e-con,body .svc-content.e-con{grid-template-columns:90px 1fr}
  body .grid.e-con{grid-template-columns:1fr}
  body .steps.e-con{flex-wrap:wrap;gap:10px}
  body .step,body .step.is-active{flex:0 0 40%;margin:0}
  body .step.is-active{flex-basis:46%}
  body .contact-row.e-con{flex-direction:column;align-items:flex-start;gap:28px}
  body .foot.e-con{grid-template-columns:1fr;gap:14px;justify-items:start;margin-top:56px}
  body .foot-phone{justify-self:start}
}
