/* ==========================================================================
   New Service Solutions — Elementor compatibility layer
   Loaded only when Elementor is active, after Elementor's frontend CSS.

   1. Maps Elementor Site Settings (Global Colors / Global Fonts) onto the
      theme's CSS variables, so editing them in Elementor updates the header,
      footer, blog and every page.
   2. Keeps theme classes working inside Elementor containers. Values are set
      through Elementor's own CSS variables, so anything you change in the
      Elementor panel for a specific element still wins.
   ========================================================================== */

body{
  --primary:var(--e-global-color-primary,#2557F5);
  --secondary:var(--e-global-color-secondary,#0E1E3D);
  --accent:var(--e-global-color-accent,#12C2B8);
  --text:var(--e-global-color-text,#1B2435);
  --dark:var(--e-global-color-nssdark,#0B1426);
  --muted:var(--e-global-color-nssmuted,#556078);
  --background:var(--e-global-color-nssbg,#F5F7FB);
  --border:var(--e-global-color-nssborder,#E2E7F0);
  --white:var(--e-global-color-nsswhite,#FFFFFF);
  --primary-hover:var(--e-global-color-nsshover,#1A44D1);
  --grad:linear-gradient(135deg,var(--primary) 0%,color-mix(in srgb,var(--primary) 55%,var(--accent)) 55%,var(--accent) 100%);
  --font-heading:var(--e-global-typography-primary-font-family,"Plus Jakarta Sans"),ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-body:var(--e-global-typography-text-font-family,"Inter"),ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

/* ---- Containers: no default padding/gap unless set (theme controls rhythm) ---- */
body .e-con{--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px}

/* ---- Visual containers ---- */
.e-con.nss-card,.e-con.nss-step,.e-con.nss-aud,.e-con.nss-work{--border-radius:20px}
.e-con.nss-cta,.e-con.nss-form-card,.e-con.nss-feature-panel{--border-radius:28px}
.e-con.nss-work,.e-con.nss-cta,.e-con.nss-glow{--overflow:hidden}
.e-con.nss-card{--padding-top:32px;--padding-right:32px;--padding-bottom:32px;--padding-left:32px}
.e-con.nss-card.is-service{--padding-top:36px;--padding-bottom:36px}
.e-con.nss-step{--padding-top:28px;--padding-right:24px;--padding-bottom:30px;--padding-left:24px}
.e-con.nss-aud{--padding-top:26px;--padding-right:26px;--padding-bottom:26px;--padding-left:26px}
.e-con.nss-work-body{--padding-top:26px;--padding-right:26px;--padding-bottom:28px;--padding-left:26px;--flex-grow:1}
.e-con.nss-value{--padding-top:24px}
.e-con.nss-cta{--padding-top:72px;--padding-right:64px;--padding-bottom:72px;--padding-left:64px}
.e-con.nss-form-card{--padding-top:44px;--padding-right:44px;--padding-bottom:44px;--padding-left:44px}
@media (max-width:1024px){.e-con.nss-cta{--padding-top:56px;--padding-right:40px;--padding-bottom:56px;--padding-left:40px}}
@media (max-width:767px){
  .e-con.nss-card{--padding-top:26px;--padding-right:22px;--padding-bottom:26px;--padding-left:22px}
  .e-con.nss-cta{--padding-top:44px;--padding-right:24px;--padding-bottom:44px;--padding-left:24px}
  .e-con.nss-form-card{--padding-top:28px;--padding-right:22px;--padding-bottom:28px;--padding-left:22px}
}

/* ---- Alignment helpers ---- */
.e-con.nss-head.is-center{--align-items:center;--text-align:center;--margin-left:auto;--margin-right:auto;--align-self:center;text-align:center}
.e-con.nss-head.is-center>.elementor-widget{text-align:center}
.e-con.nss-head{--width:100%}
.e-con.nss-head:not(.is-wide){max-width:780px}
.e-con.nss-page-hero .e-con.nss-head{max-width:820px}
.e-con.nss-actions{--flex-wrap:wrap;--align-items:center}
.e-con.nss-head.is-center .e-con.nss-actions,.e-con.nss-actions.is-center{--justify-content:center}
.e-con.nss-head-row{--flex-direction:row;--flex-wrap:wrap;--justify-content:space-between;--align-items:flex-end}
.e-con.nss-head-row>.e-con.nss-head{--width:auto;flex:1 1 520px}
.e-con.nss-trust-item{--flex-wrap:nowrap}
.e-con.nss-trust-item>.elementor-widget-text-editor{--container-widget-width:auto;flex:1 1 auto}
.e-con.nss-aud{--flex-wrap:nowrap;--align-items:flex-start}
.e-con.nss-aud>.e-con{--width:auto;flex:1 1 auto}
.e-con.nss-aud>.elementor-widget-icon,.e-con.nss-trust-item>.elementor-widget-icon{--container-widget-width:auto;flex:0 0 auto}
.e-con.nss-cta-grid,.e-con.nss-faq-wrap{--align-items:center}
.e-con.nss-faq-wrap{--align-items:start}

/* ---- Hero ---- */
.e-con.nss-hero-visual{--position:relative}
.nss-hero-visual .elementor-widget-html{position:static}
.nss-hero-visual .elementor-widget-image img{border-radius:0}

/* ---- Widgets: let theme classes drive typography ---- */
.elementor-widget-heading .elementor-heading-title{line-height:inherit}
.nss-eyebrow.elementor-widget-heading,.nss-tag.elementor-widget-heading,.nss-chip.elementor-widget-heading{line-height:1.2}
.nss-tag.elementor-widget-heading,.nss-chip.elementor-widget-heading{width:auto;max-width:100%;padding:0;background:none;border:0;--container-widget-width:auto}
.e-con>.nss-tag.elementor-widget-heading,.e-con>.nss-chip.elementor-widget-heading{width:auto}
.nss-step-num.elementor-widget-heading .elementor-heading-title{display:inline-block}
.elementor-widget-text-editor.nss-text p:last-child{margin-bottom:0}
.is-dark .elementor-widget-text-editor{color:inherit}
.elementor-widget-icon.nss-icon{width:auto}
.elementor-widget-icon.nss-icon .elementor-icon-wrapper{display:block;line-height:0}
.nss-icon .elementor-icon svg{width:23px;height:23px}
.nss-icon.is-sm .elementor-icon svg{width:19px;height:19px}
.elementor-widget-button .elementor-button{font-family:var(--font-heading)}
.nss-btnw .elementor-button-content-wrapper{gap:8px}
.elementor-widget-button.nss-btnw{width:auto;--container-widget-width:auto}
.nss-work .elementor-widget-image.nss-work-media{line-height:0;aspect-ratio:4/3;overflow:hidden;width:100%}
.nss-work .elementor-widget-image.nss-work-media img{width:100%;height:100%;object-fit:cover;border-radius:0}
.nss-work-meta.e-con{--gap:8px;--flex-wrap:wrap}
.elementor-widget-image.nss-img img{width:100%;height:auto}
.elementor-widget-html.nss-acc-el{width:100%}

/* ---- Icon list as check list ---- */
.nss-checks .elementor-icon-list-items{display:grid;gap:12px}
.nss-checks.is-2col .elementor-icon-list-items{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
@media (max-width:767px){.nss-checks.is-2col .elementor-icon-list-items{grid-template-columns:1fr}}
.nss-checks .elementor-icon-list-item{align-items:flex-start!important}
.nss-checks .elementor-icon-list-icon svg{fill:currentColor}

/* ---- Accordion widget styled like the theme accordion ---- */
.nss-acc-el .elementor-accordion{display:flex;flex-direction:column;gap:12px}
.nss-acc-el .elementor-accordion-item{border:1px solid var(--border)!important;border-radius:var(--r-md);background:var(--white);transition:border-color .25s,box-shadow .25s}
.nss-acc-el .elementor-accordion-item:has(.elementor-active){border-color:color-mix(in srgb,var(--primary) 35%,transparent)!important;box-shadow:var(--shadow-md)}
.nss-acc-el .elementor-tab-title{display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px!important;border:0!important;font-family:var(--font-heading);font-size:1.05rem;line-height:1.4;font-weight:700}
.nss-acc-el .elementor-tab-title a,.nss-acc-el .elementor-accordion-title{color:var(--dark)!important;text-decoration:none}
.nss-acc-el .elementor-tab-title:hover a{color:var(--primary)!important}
.nss-acc-el .elementor-accordion-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--background);flex-shrink:0;float:none!important;font-size:12px;color:var(--dark)}
.nss-acc-el .elementor-accordion-icon svg{width:12px;height:12px;fill:currentColor}
.nss-acc-el .elementor-active .elementor-accordion-icon{background:var(--primary);color:#fff}
.nss-acc-el .elementor-tab-content{padding:0 24px 22px!important;border:0!important;color:var(--muted);line-height:1.7}
.nss-acc-el .elementor-tab-content p{margin:0 0 .8em}
.nss-acc-el .elementor-tab-content p:last-child{margin:0}

/* ---- Google Map widget ---- */
.nss-map.elementor-widget-google_maps{border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--border)}
.nss-map.elementor-widget-google_maps iframe{display:block}

/* ---- Editor: never hide content while editing ---- */
.elementor-editor-active .nss-reveal,.elementor-editor-preview .nss-reveal{opacity:1!important;transform:none!important}
