.elementor-kit-7{--e-global-color-primary:#0F2650;--e-global-color-secondary:#1553B5;--e-global-color-text:#3D4756;--e-global-color-accent:#F7A800;--e-global-color-escbg:#F6F8FB;--e-global-color-escsoft:#E2E9F6;--e-global-color-eschero:#E8EFFA;--e-global-color-escborder:#E2E7F0;--e-global-color-escmuted:#71809A;--e-global-color-escfaint:#93A0B5;--e-global-color-escamberdk:#E09800;--e-global-color-escsuccess:#1F9D5B;--e-global-color-escsuccessbg:#E3F3E9;--e-global-color-escwa:#25D366;--e-global-color-esccallblue:#2D6CC9;--e-global-typography-primary-font-family:"Manrope";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Manrope";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Manrope";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Manrope";--e-global-typography-accent-font-weight:600;color:#3d4756;font-family:"Manrope", Sans-serif;font-weight:400;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 a{color:#1553b5;}.elementor-kit-7 a:hover{color:#0f3f8d;}.elementor-kit-7 h1{color:#0f2650;font-family:"Manrope", Sans-serif;font-weight:800;}.elementor-kit-7 h2{color:#0f2650;font-family:"Manrope", Sans-serif;font-weight:800;}.elementor-kit-7 h3{color:#0f2650;font-family:"Manrope", Sans-serif;font-weight:800;}.elementor-kit-7 h4{color:#0f2650;font-family:"Manrope", Sans-serif;font-weight:800;}.elementor-kit-7 h5{color:#0f2650;font-family:"Manrope", Sans-serif;font-weight:800;}.elementor-kit-7 h6{color:#0f2650;font-family:"Manrope", Sans-serif;font-weight:800;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS */:root{--esc-navy:#0f2650;--esc-blue:#1553b5;--esc-amber:#f7a800;}
body{background:#f6f8fb;-webkit-font-smoothing:antialiased;}
html,body{overflow-x:hidden;max-width:100%;}
.elementor-heading-title{overflow-wrap:break-word;}
h1,h2,h3,h4{letter-spacing:-0.01em;}

/* eyebrow: uppercase blue kicker used above almost every section heading */
.esc-eyebrow .elementor-heading-title{font-family:'Manrope',sans-serif !important;font-weight:800 !important;font-size:12px !important;letter-spacing:.18em !important;text-transform:uppercase;color:#1553b5 !important;line-height:1.4 !important;}

/* SVG icons: stroke style, follow the widget's icon colour */
.elementor-icon{color:var(--e-icon-color,currentColor);}
.elementor-icon > svg:not(.e-font-icon-svg){fill:none !important;stroke:currentColor !important;}
/* filled icons (star, whatsapp) opt out of the stroke rule */
.esc-ico-filled .elementor-icon > svg{fill:currentColor !important;stroke:none !important;}
.esc-ico-filled svg{fill:currentColor !important;stroke:none !important;}
.elementor-button-icon .esc-fill svg,.esc-fill svg{fill:currentColor !important;stroke:none !important;}

/* ---------- HEADER ---------- */
#esc-topbar{font-size:13px;font-weight:600;}
@media(max-width:1024px){#esc-topbar{display:none !important;}}
#esc-mainnav{box-shadow:0 1px 2px rgba(15,38,80,.06);}
/* desktop: logo | nav | Book ; mobile: logo | Book | burger */
@media(min-width:1025px){ #esc-nav{order:2;} #esc-headcta{order:3;margin-left:auto;} }
@media(max-width:1024px){ #esc-nav{order:3;flex-grow:0 !important;} #esc-headcta{order:2;margin-left:auto;} }
#esc-headcta .elementor-button{white-space:nowrap;}
#esc-nav .elementor-nav-menu--dropdown{transition:none !important;}
/* markup is nav.elementor-nav-menu--main > ul.elementor-nav-menu > li > a.elementor-item —
   the <ul> sits between, so a "--main > li" .elementor-kit-7 never matches. Target .elementor-item. */
#esc-nav .elementor-nav-menu > li > a.elementor-item{padding:10px 14px !important;border-radius:10px;font-weight:700;font-size:14.5px;line-height:1.2;white-space:nowrap;}
#esc-nav .elementor-nav-menu > li.current-menu-item > a.elementor-item{background:#e2e9f6;color:#1553b5 !important;}
/* The flex container is ul.elementor-nav-menu, NOT nav.elementor-nav-menu--layout-horizontal —
   Elementor's own rule sets flex-wrap:wrap on the ul, so a nowrap on the <nav> does nothing and
   the menu breaks onto two rows as soon as it runs out of room. Target the ul. */
/* Keep media queries FLAT — a nested @media here was NOT honoured (its rules leaked out and
   applied at every width). Measured headroom with full-size items: 279px @1280, 136px @1100,
   ~100px @1025 — so the menu fits on one row across the whole desktop range and needs no
   width-band tightening. nowrap is what actually prevents the two-row break. */
@media(min-width:1025px){
 #esc-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu{flex-wrap:nowrap !important;}
 #esc-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li{white-space:nowrap;flex:0 0 auto;}
 #esc-nav{flex-shrink:0 !important;}
}
/* the CTA label must never break to two lines */
#esc-headcta .elementor-button,#esc-headcta .elementor-button-text{white-space:nowrap !important;}
/* dropdown (mobile) items keep their own padding and stack full-width */
#esc-nav .elementor-nav-menu--dropdown a.elementor-item{padding:12px 14px !important;}
/* logo lockup: ELITE / SERVICE CENTRE — height auto so the widget's width control wins
   (a blanket width:auto here would override it and render the logo at natural size) */
.esc-wordmark .elementor-heading-title{line-height:1.05;}
.esc-logo img{height:auto !important;max-width:100%;object-fit:contain;}
/* Containers have no shrink-to-fit control — see esc_helpers CONTAINER_ALIASES.
   Must be fit-content, NOT auto: in a COLUMN flex parent, align-items:stretch is only
   ignored when the cross-size is an explicit value, so width:auto still stretched pills to
   full width (flex:0 0 auto only governs the MAIN axis). fit-content hugs in column parents
   and behaves identically to auto in row parents. */
.esc-inline{width:fit-content !important;max-width:100% !important;flex:0 0 auto !important;}
/* explicit-width containers (icon bubbles, number circles): keep the width, never shrink */
.esc-fixed{flex:0 0 auto !important;}
@media(max-width:520px){
 #esc-mainnav .esc-logo img{height:38px !important;}
 #esc-headcta .elementor-button{padding:9px 13px !important;font-size:12.5px !important;}
 #esc-mainnav > .e-con-inner{gap:10px;}
}

/* ---------- SHARED ---------- */
.esc-card{box-shadow:0 1px 2px rgba(15,38,80,.06);}
.esc-shadow-lg{box-shadow:0 2px 6px rgba(15,38,80,.07);}
.esc-cta-shadow .elementor-button{box-shadow:0 8px 20px rgba(247,168,0,.4);}
.esc-svccard{transition:all .2s;}
.esc-svccard:hover{box-shadow:0 16px 40px rgba(15,38,80,.16) !important;transform:translateY(-4px);}
.esc-disclaimer .elementor-widget-container{font-size:12px;color:#93a0b5;line-height:1.6;}

/* Layout classes. GOTCHA: a *boxed* container's real flex parent is its .e-con-inner,
   so every layout rule targets the element itself (full containers) AND its inner (boxed). */
.esc-grid4,.esc-grid4 > .e-con-inner{display:grid !important;grid-template-columns:repeat(4,1fr);gap:22px !important;width:100%;}
.esc-grid3,.esc-grid3 > .e-con-inner{display:grid !important;grid-template-columns:repeat(3,1fr);gap:24px !important;width:100%;}
.esc-grid2,.esc-grid2 > .e-con-inner{display:grid !important;grid-template-columns:1fr 1fr;gap:32px !important;width:100%;}
.esc-grid4 > .elementor-element,.esc-grid3 > .elementor-element,.esc-grid2 > .elementor-element,
.esc-grid4 > .e-con-inner > .elementor-element,.esc-grid3 > .e-con-inner > .elementor-element,.esc-grid2 > .e-con-inner > .elementor-element{width:auto !important;max-width:none !important;}
@media(max-width:980px){.esc-grid4,.esc-grid4 > .e-con-inner,.esc-grid3,.esc-grid3 > .e-con-inner{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.esc-grid4,.esc-grid4 > .e-con-inner,.esc-grid3,.esc-grid3 > .e-con-inner,.esc-grid2,.esc-grid2 > .e-con-inner{grid-template-columns:1fr;}}
/* brand logo tiles: auto-fill like the design */
.esc-brandgrid,.esc-brandgrid > .e-con-inner{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px !important;width:100%;}
.esc-brandgrid--home,.esc-brandgrid--home > .e-con-inner{grid-template-columns:repeat(4,1fr);gap:18px !important;}
@media(max-width:980px){.esc-brandgrid--home,.esc-brandgrid--home > .e-con-inner{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.esc-brandgrid--home,.esc-brandgrid--home > .e-con-inner{grid-template-columns:repeat(2,1fr);}}
.esc-brandgrid > .elementor-element,.esc-brandgrid > .e-con-inner > .elementor-element{width:auto !important;max-width:none !important;}
.esc-autofit,.esc-autofit > .e-con-inner{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px !important;width:100%;}
.esc-autofit > .elementor-element,.esc-autofit > .e-con-inner > .elementor-element{width:auto !important;max-width:none !important;}
/* stats row — design: centred, clamp gap, wrapping */
/* justify-content needs !important — Elementor's own .e-con-inner rule otherwise wins */
.esc-statsrow > .e-con-inner{display:flex !important;flex-wrap:wrap !important;justify-content:center !important;align-items:center !important;gap:clamp(20px,5vw,64px) !important;}
.esc-statsrow > .e-con-inner > .elementor-element{width:auto !important;max-width:none !important;flex:0 0 auto !important;}
.esc-statsgrid,.esc-statsgrid > .e-con-inner{display:grid !important;grid-template-columns:1fr 1fr;gap:28px !important;width:100%;}
.esc-statsgrid > .elementor-element,.esc-statsgrid > .e-con-inner > .elementor-element{width:auto !important;max-width:none !important;}

/* service card image: 16/9 cover, per design */
.elementor-widget-image.esc-svcimg{aspect-ratio:16/9;overflow:hidden;background:#0f2650;width:100%;}
.elementor-widget-image.esc-svcimg .elementor-widget-container,
.elementor-widget-image.esc-svcimg figure,
.elementor-widget-image.esc-svcimg a{height:100%;display:block;margin:0;}
.elementor-widget-image.esc-svcimg img{width:100% !important;height:100% !important;object-fit:cover;display:block;border-radius:0;}
/* brand logo tiles: contain, capped height */
.esc-brandimg img{max-height:46px !important;height:auto !important;width:auto !important;max-width:100% !important;object-fit:contain;}
.esc-brandgrid .esc-brandimg{display:flex;align-items:center;justify-content:center;}
.esc-brandgrid .esc-brandimg .elementor-widget-container{display:flex;align-items:center;justify-content:center;}

/* gallery grid (html widget) */
.esc-ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;}
.esc-gcell{aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:#e8edf4;border:1px solid #e2e7f0;box-shadow:0 1px 2px rgba(15,38,80,.06);}
.esc-gcell img{width:100%;height:100%;object-fit:cover;display:block;}

/* review avatar circle */
.esc-avatar .elementor-heading-title{width:44px;height:44px;border-radius:999px;background:#0f2650;color:#f7a800;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;}
.esc-avatar{flex:0 0 auto;}

/* forms — placeholder-only, rounded, per design */
.elementor-form .elementor-field-group .elementor-field{border:1.5px solid #c9d3e3 !important;border-radius:12px !important;padding:12px 16px !important;font-family:'Manrope',sans-serif !important;font-size:15px !important;color:#0f2650 !important;background:#fff !important;min-height:48px;box-shadow:none;}
.elementor-form .elementor-field-group{margin-bottom:8px;}
.elementor-form .elementor-field-group .elementor-field:focus{border-color:#1553b5 !important;box-shadow:0 0 0 3px rgba(21,83,181,.2) !important;}
.elementor-form .elementor-button{box-shadow:0 8px 20px rgba(247,168,0,.4);}
.elementor-message.elementor-message-success{font-family:'Manrope',sans-serif;color:#1f9d5b;font-weight:700;}

/* accordion / FAQ — match the design's bordered card look */
.esc-faq .elementor-accordion-item{border:1px solid #e2e7f0 !important;border-radius:12px;overflow:hidden;background:#fff;margin-bottom:12px;}
.esc-faq .elementor-tab-title{padding:16px 18px !important;font-weight:800 !important;color:#0f2650 !important;font-size:15.5px !important;}
.esc-faq .elementor-tab-title.elementor-active{color:#0f2650 !important;}
.esc-faq .elementor-tab-content{padding:0 18px 18px !important;color:#71809a !important;font-size:14px !important;line-height:1.7 !important;border-top:none !important;}
.esc-faq .elementor-accordion-icon{width:28px;height:28px;border-radius:999px;background:#e2e9f6;color:#1553b5;display:grid;place-items:center;flex:0 0 auto;}
.esc-faq .elementor-active .elementor-accordion-icon{background:#f7a800;color:#0f2650;}
.esc-faq .elementor-accordion-icon svg{width:14px;height:14px;}

/* footer — #esc-footcols is a BOXED container, so its real layout parent is .e-con-inner.
   Putting the grid on the outer element gave it one child and squeezed the whole footer
   into column 1 (1.4fr ≈ 43% of the viewport). Always target the inner on boxed containers. */
#esc-footcols > .e-con-inner{display:grid !important;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:40px !important;width:100%;align-items:start;}
#esc-footcols > .e-con-inner > .e-con{width:auto !important;max-width:none !important;}
@media(max-width:880px){#esc-footcols > .e-con-inner{grid-template-columns:1fr;gap:28px !important;}}
#esc-footcols .elementor-icon-list-icon{display:none !important;}
#esc-footnav .elementor-icon-list-text{padding-left:0 !important;margin-left:0 !important;}
#esc-footnav .elementor-icon-list-item,#esc-footnav .elementor-icon-list-item a{padding-left:0 !important;}
#esc-footcols .elementor-icon-list-item a:hover .elementor-icon-list-text{color:#f7a800 !important;}
#esc-footcontact .elementor-icon-list-icon{display:inline-flex !important;}
#esc-footcontact .elementor-icon-list-icon svg{width:17px;height:17px;}
#esc-footbot a:hover{color:#f7a800 !important;}
#esc-footcols img{margin-left:0 !important;}
@media(max-width:880px){#esc-footcols .elementor-widget-image .elementor-widget-container{text-align:left !important;}}

/* floating WhatsApp bubble */
#esc-wa{position:fixed;right:20px;bottom:84px;z-index:50;}
#esc-wa .elementor-icon{width:56px;height:56px;border-radius:999px;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px rgba(37,211,102,.45);transition:transform .15s;}
#esc-wa .elementor-icon:hover{transform:scale(1.06);}
#esc-wa .elementor-icon svg{width:26px;height:26px;fill:currentColor !important;stroke:none !important;}
@media(min-width:1025px){#esc-wa{bottom:20px;}}

/* mobile sticky call bar */
#esc-mobilebar{display:none !important;}
@media(max-width:1024px){
 #esc-mobilebar{display:flex !important;flex-wrap:nowrap !important;position:fixed;left:0;right:0;bottom:0;z-index:50;box-shadow:0 -4px 16px rgba(15,38,80,.18);padding:0 !important;}
 #esc-mobilebar > .elementor-element{flex:1 1 0 !important;min-width:0 !important;padding:0 !important;}
 #esc-mobilebar .elementor-widget-button{width:100% !important;padding:0 !important;}
 #esc-mobilebar .elementor-button{width:100% !important;justify-content:center;padding:16px 2px !important;border-radius:0 !important;}
 #esc-mobilebar .elementor-button-content-wrapper{flex-direction:row !important;align-items:center !important;justify-content:center !important;gap:8px !important;line-height:1;}
 #esc-mobilebar .elementor-button-icon{margin:0 !important;display:inline-flex;align-items:center;}
 #esc-mobilebar .elementor-button-icon svg{width:18px;height:18px;}
 #esc-mobilebar .elementor-button-text{font-size:16px;line-height:1;font-weight:800;}
 body{padding-bottom:56px;}
}

/* consistent tighter section padding on mobile */
@media(max-width:767px){
 [data-elementor-type="wp-page"] .e-con.e-parent{padding-top:32px !important;padding-bottom:32px !important;padding-left:18px !important;padding-right:18px !important;}
}

/* popups */
.elementor-popup-modal .dialog-close-button{z-index:5;}
.esc-flexend{margin-left:auto !important;}
.esc-grow{flex-grow:1 !important;flex-basis:0 !important;min-width:0 !important;}
.esc-nowrap{flex-wrap:nowrap !important;}

/* mobile ad-landing pages: narrow centred column + fixed bottom bar (design preview = 460px) */
#esc-mobcol{max-width:460px;margin:0 auto;min-height:100vh;box-shadow:0 0 40px rgba(15,38,80,.12);padding:0 0 60px !important;background:#f4f7fb;}
#esc-mobhead{position:sticky;top:0;z-index:30;}
/* landing-local grids */
.esc-m2,.esc-m2 > .e-con-inner{display:grid !important;grid-template-columns:1fr 1fr;gap:10px !important;width:100%;}
.esc-m3,.esc-m3 > .e-con-inner{display:grid !important;grid-template-columns:repeat(3,1fr);gap:10px !important;width:100%;}
.esc-m4,.esc-m4 > .e-con-inner{display:grid !important;grid-template-columns:repeat(4,1fr);gap:8px !important;width:100%;}
.esc-m2 > .elementor-element,.esc-m3 > .elementor-element,.esc-m4 > .elementor-element{width:auto !important;max-width:none !important;}
.esc-ggrid--2{grid-template-columns:1fr 1fr !important;gap:10px !important;}
.esc-ggrid--2 .esc-gcell{border-radius:13px;}
.esc-brandimg--sm img{max-height:30px !important;}
.esc-faq--sm .elementor-accordion-item{border-radius:12px;margin-bottom:9px;}
.esc-faq--sm .elementor-tab-title{padding:14px 15px !important;font-size:13.5px !important;}
.esc-faq--sm .elementor-tab-content{padding:0 15px 15px !important;font-size:12.5px !important;}
.esc-faq--sm .elementor-accordion-icon{width:auto;height:auto;background:none !important;color:#1553b5 !important;}
.esc-faq--sm .elementor-active .elementor-accordion-icon{background:none !important;color:#1553b5 !important;}
.esc-faq--sm .elementor-accordion-icon svg{width:18px;height:18px;}
/* compare table */
.esc-cmp{border:1px solid #e2e7f0;border-radius:13px;overflow:hidden;}
.esc-cmp-head,.esc-cmp-row{display:grid;grid-template-columns:1.6fr .7fr .7fr;}
.esc-cmp-head{background:#0f2650;color:#fff;font-weight:800;font-size:11.5px;}
.esc-cmp-row{border-top:1px solid #eef2f7;}
.esc-cmp-head .esc-cmp-l{padding:11px 13px;}
.esc-cmp-head .esc-cmp-y,.esc-cmp-head .esc-cmp-n{padding:11px 6px;text-align:center;}
.esc-cmp-row .esc-cmp-l{padding:11px 13px;font-size:12px;font-weight:600;color:#3d4756;}
.esc-cmp-row .esc-cmp-y{padding:11px 6px;display:grid;place-items:center;color:#1f9d5b;font-weight:800;}
.esc-cmp-row .esc-cmp-n{padding:11px 6px;display:grid;place-items:center;color:#d14b4b;font-weight:800;}
#esc-mobbar{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:460px;z-index:60;display:flex !important;flex-wrap:nowrap !important;padding:0 !important;box-shadow:0 -4px 16px rgba(15,38,80,.18);}
#esc-mobbar > .elementor-element{flex:1 1 0 !important;min-width:0 !important;padding:0 !important;}
#esc-mobbar .elementor-button{width:100% !important;display:flex !important;justify-content:center;padding:16px 2px !important;border-radius:0 !important;}
#esc-mobbar .elementor-button-content-wrapper{flex-direction:row !important;align-items:center !important;justify-content:center !important;gap:8px !important;line-height:1;}
#esc-mobbar .elementor-button-icon{margin:0 !important;display:inline-flex;align-items:center;}
#esc-mobbar .elementor-button-icon svg{width:18px;height:18px;}
#esc-mobbar .elementor-button-text{font-size:16px;line-height:1;font-weight:800;}/* End custom CSS */