/* Elementor Free compatibility layer (no Pro features) */
body[class*="elementor-kit-"]{--kit-widget-spacing:0px}
.elementor-element{--widgets-spacing:0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px}
.e-con.container{width:min(1160px,92%);max-width:none;margin-inline:auto}
.elementor-widget:not(:last-child){margin-block-end:0}
.elementor-widget-heading .elementor-heading-title{margin:0 0 .5em;padding:0;line-height:1.15;font-family:inherit;font-weight:700;color:inherit}
:where(.elementor-heading-title){font-size:inherit}
.elementor-widget-text-editor{color:inherit;font-family:inherit;font-weight:inherit;font-size:inherit;line-height:inherit}
:where(.elementor-widget-text-editor) p{margin:0}
.elementor-widget-image img{display:block;max-width:100%;height:auto}
/* Buttons: wrapper carries .btn styles, inner link is a stretched hit area */
.elementor-widget-button.btn{position:relative;display:inline-flex}
.elementor-widget-button.btn .elementor-button-wrapper{display:contents}
.elementor-widget-button.btn .elementor-button{background:transparent;color:inherit;padding:0;border:0;border-radius:inherit;font:inherit;line-height:inherit;box-shadow:none;fill:currentColor}
.elementor-widget-button.btn .elementor-button::before{content:"";position:absolute;inset:0;border-radius:inherit}
.elementor-widget-button.btn .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:.5rem}
.elementor-widget-button.btn .elementor-button-text::after{content:"\2192";display:inline-block;margin-left:.5rem;transition:transform .2s var(--ease)}
.elementor-widget-button.btn:hover .elementor-button-text::after{transform:translateX(4px)}
.elementor-widget-button.btn .elementor-button:focus-visible::before{outline:3px solid var(--accent);outline-offset:3px}
/* Stretched card links */
.service-title.elementor-widget,.project-title.elementor-widget{position:static}
.service-card .elementor-heading-title a,.project-card .elementor-heading-title a{color:var(--text);text-decoration:none}
.service-card .elementor-heading-title a::after,.project-card .elementor-heading-title a::after{content:"";position:absolute;inset:0}
.elementor-widget.testimonial-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
/* FAQ: accordion semantics are added by theme.js */
.faq-q .elementor-heading-title{margin:0;font-size:1rem}
.faq-entry.faq-ready .faq-a{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows .3s var(--ease),opacity .3s,visibility .3s}
.faq-entry.faq-ready .faq-a>.elementor-widget-container{overflow:hidden}
.faq-entry.is-open .faq-a{grid-template-rows:1fr;opacity:1;visibility:visible}
.faq-a p{padding:0 1.25rem 1.25rem;color:var(--muted);max-width:62ch}
.faq-item:hover,.faq-item:focus-within{border-color:var(--accent);box-shadow:var(--shadow)}
.faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .25s,box-shadow .25s}
.fwd-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* Reveal states before JS maps classes to data attributes (no flash) */
.rv-auto,.rv-up,.rv-down,.rv-left,.rv-right,.rv-center{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--d,0) * .12s)}
.rv-up{transform:translateY(var(--shift))}.rv-down{transform:translateY(calc(var(--shift) * -1))}
.rv-left{transform:translateX(calc(var(--shift) * -1))}.rv-right{transform:translateX(var(--shift))}.rv-center{transform:scale(.96)}
.rv-auto.is-visible,.rv-up.is-visible,.rv-down.is-visible,.rv-left.is-visible,.rv-right.is-visible,.rv-center.is-visible{opacity:1;transform:none}
body.elementor-editor-active [class*="rv-"]{opacity:1!important;transform:none!important}
@media (prefers-reduced-motion:reduce){.rv-auto,.rv-up,.rv-down,.rv-left,.rv-right,.rv-center{opacity:1;transform:none}}
/* Boosted copies of approved rules for classes that sit on Elementor widget wrappers */
.elementor-widget.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.25rem;border-radius:999px;font-weight:600;text-decoration:none;border:2px solid var(--accent);transition:transform .2s var(--ease),background .2s,box-shadow .2s,border-color .2s}
.elementor-widget.btn-primary{background:var(--accent);color:#fff}
.elementor-widget.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-2px);box-shadow:var(--shadow)}
.elementor-widget.btn-outline{background:transparent;color:var(--accent)}
.elementor-widget.btn-outline:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.elementor-widget.hero-lead{font-size:clamp(1.02rem,1.5vw,1.2rem);color:var(--muted);max-width:52ch;margin:0 0 1.75rem}
.elementor-widget.btn-outline:hover{background:var(--accent);color:#fff}
.elementor-widget.trust-heading{font-size:clamp(1.4rem,2.6vw,2rem);max-width:28ch;margin:0 auto 2rem;text-align:center;letter-spacing:-.01em}
.elementor-widget.trust-title{font-size:1.05rem;margin-bottom:.35rem}
.elementor-widget.trust-text{margin:0;color:var(--muted);font-size:.95rem}
.elementor-widget.service-title{font-size:1.15rem;margin-bottom:.5rem}
.elementor-widget.service-link{color:var(--text);text-decoration:none}
.elementor-widget.service-link::after{content:"";position:absolute;inset:0;border-radius:var(--radius)}
.elementor-widget.service-link:focus-visible{outline:none}
.elementor-widget.service-text{color:var(--muted);margin:0 0 1.25rem;font-size:.97rem}
.elementor-widget.service-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:auto 0 0;padding-top:1rem;border-top:1px solid var(--border);font-size:.875rem}
.elementor-widget.project-badge{position:absolute;left:.75rem;top:.75rem;background:var(--surface);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:600}
.elementor-widget.project-type{margin:0 0 .35rem;color:var(--accent);font-weight:600;font-size:.875rem}
.elementor-widget.project-title{font-size:1.15rem;margin-bottom:.5rem}
.elementor-widget.project-link{color:var(--text);text-decoration:none}
.elementor-widget.project-link::after{content:"";position:absolute;inset:0}
.elementor-widget.project-link:focus-visible{outline:none}
.elementor-widget.project-text{color:var(--muted);margin:0 0 1rem;font-size:.97rem}
.elementor-widget.project-cta{margin:auto 0 0;color:var(--accent);font-weight:600}
.elementor-widget.btn-light{background:var(--white);color:var(--secondary-blue);border-color:var(--white)}
.elementor-widget.btn-light:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.25)}
.elementor-widget.why-title{font-size:1.05rem;margin-bottom:.4rem}
.elementor-widget.why-text{margin:0;color:var(--muted);font-size:.95rem}
.elementor-widget.process-number{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:.95rem;transition:transform .25s var(--ease)}
.elementor-widget.process-title{font-size:1.1rem;margin-bottom:.4rem}
.elementor-widget.process-text{margin:0;color:var(--muted);font-size:.93rem}
.elementor-widget.tech-group-title{font-size:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
.elementor-widget.tech-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:.5rem;border-radius:10px;background:var(--surface);border:1px solid var(--border);color:var(--accent);font-weight:700;font-size:.85rem;transition:transform .25s var(--ease)}
.elementor-widget.tech-name{font-weight:600;font-size:.95rem}
.elementor-widget.tech-role{color:var(--muted);font-size:.8rem}
.elementor-widget.testimonial-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none}
.elementor-widget.testimonial-id{display:flex;flex-direction:column;line-height:1.3}
.elementor-widget.btn-outline-light{background:transparent;color:var(--white);border-color:rgba(255,255,255,.7)}
.elementor-widget.btn-outline-light:hover{background:rgba(255,255,255,.12);border-color:var(--white);transform:translateY(-2px)}
.elementor-widget.badge{display:inline-block;margin:0 0 1rem;padding:.25rem .85rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--accent);font-weight:600;font-size:.875rem}
.elementor-widget.service-num{font-weight:700;color:var(--muted);font-size:.95rem}
.elementor-widget.detail-intro{color:var(--muted);margin:0 0 1.5rem;max-width:56ch}
.elementor-widget.detail-sub{font-size:1rem;margin:0 0 .6rem}
.elementor-widget.contact-form{scroll-margin-top:calc(var(--header-h) + 1rem);color-scheme:light;background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);padding:clamp(1.4rem,3vw,2.25rem);box-shadow:var(--shadow)}
.elementor-widget.contact-item{display:flex;gap:1rem;align-items:flex-start}
.elementor-widget.include-item{display:flex;align-items:center;gap:.85rem;padding:1.1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-weight:500}
