/* UTM SHINE Design System: Elementor restyle.
   Presentation only. Remove the body class "utm-ds-on" (or deactivate the plugin) to get the original look back. */

body.utm-ds-on{
--utm-navy:#12263f;--utm-ink:#1b1f24;--utm-muted:#505a68;--utm-rule:#dfe4eb;--utm-tint:#eef2f7;--utm-surface:#f4f6f9;
--utm-display:Oswald,"Arial Narrow",Arial,sans-serif;
--utm-text:"Source Sans 3","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif
}

/* Elementor global colours (used by every widget that has not set its own colour). Optional: setting "UTM SHINE colours". */
body.utm-ds-on.utm-ds-colors{
--e-global-color-primary:#12263f;
--e-global-color-secondary:#27476f;
--e-global-color-text:#1b1f24;
--e-global-color-accent:#12263f
}
/* Elementor global fonts */
body.utm-ds-on.utm-ds-fonts{
--e-global-typography-primary-font-family:Oswald;
--e-global-typography-secondary-font-family:Oswald;
--e-global-typography-text-font-family:"Source Sans 3";
--e-global-typography-accent-font-family:"Source Sans 3"
}

/* page text: spacing only. Text colour is left to Elementor, so sections on dark backgrounds keep their own light text. */
body.utm-ds-on .elementor :where(p,li){line-height:1.6}
body.utm-ds-on .elementor :where(a){text-underline-offset:.18em}
body.utm-ds-on .elementor :where(.elementor-widget-text-editor a:not(.elementor-button)){text-decoration:underline}

/* fonts: Oswald for headings, Source Sans 3 for everything else (can be turned off in the settings) */
body.utm-ds-fonts .elementor :where(h1,h2,h3,h4,h5,h6,.elementor-heading-title,.elementor-icon-box-title,.elementor-image-box-title,.elementor-cta__title,.elementor-counter-number-wrapper,.elementor-counter-title,.elementor-price-table__heading,.elementor-flip-box__layer__title){font-family:var(--utm-display)!important;letter-spacing:.01em}
body.utm-ds-fonts .elementor :where(p,li,a,td,th,dt,dd,label,input,textarea,select,button,blockquote,figcaption,.elementor-widget-text-editor,.elementor-button,.elementor-icon-list-text,.elementor-tab-title,.elementor-accordion-title,.elementor-toggle-title,.elementor-testimonial__text,.elementor-testimonial__name,.elementor-testimonial__title,.elementor-icon-box-description,.elementor-image-box-description,.elementor-cta__description,.elementor-nav-menu a,.elementor-post__title,.elementor-post__excerpt){font-family:var(--utm-text)!important}
body.utm-ds-fonts .elementor :where(h1,h2,h3,h4,h5,h6) a{font-family:inherit!important}
body.utm-ds-fonts .elementor :where(.elementor-button){font-weight:600}

/* buttons: pill shape, lift on hover */
body.utm-ds-on .elementor .elementor-button{border-radius:999px;transition:transform .15s ease,box-shadow .15s ease,background-color .15s,color .15s}
body.utm-ds-on .elementor .elementor-button:hover,body.utm-ds-on .elementor .elementor-button:focus{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.2)}

/* images and cards */
body.utm-ds-on .elementor :where(.elementor-widget-image img,.elementor-widget-image-gallery img,.elementor-image-box-img img,.elementor-widget-image-carousel img){border-radius:10px}
body.utm-ds-on .elementor .elementor-widget-image-box .elementor-image-box-wrapper,body.utm-ds-on .elementor .elementor-widget-icon-box .elementor-icon-box-wrapper{transition:transform .2s ease}
body.utm-ds-on .elementor :where(.elementor-testimonial){border-radius:14px}
body.utm-ds-on .elementor :where(.elementor-widget-divider .elementor-divider-separator){border-color:var(--utm-rule)}

/* forms (Elementor Pro forms and common form plugins inside Elementor) */
body.utm-ds-on .elementor :where(input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=search],input[type=password],textarea,select){border:1px solid #7a8697;border-radius:10px;padding:.7rem .9rem}
body.utm-ds-on .elementor :where(input,textarea,select):focus{outline:3px solid var(--utm-navy);outline-offset:1px;border-color:var(--utm-navy)}
body.utm-ds-on .elementor :where(.elementor-field-label,label){font-weight:600}

/* accordion, tabs, toggle */
body.utm-ds-on .elementor :where(.elementor-accordion-item,.elementor-toggle-item){border-color:var(--utm-rule)}
body.utm-ds-on .elementor :where(.elementor-tab-title.elementor-active,.elementor-accordion-title.elementor-active){color:var(--utm-navy)}

/* tables */
body.utm-ds-on .elementor :where(table){border-collapse:collapse}
body.utm-ds-on .elementor :where(td,th){border-color:var(--utm-rule)}

/* keyboard focus */
body.utm-ds-on .elementor :where(a,button,summary,[tabindex]):focus-visible{outline:3px solid var(--utm-navy);outline-offset:3px;border-radius:4px}

@media (prefers-reduced-motion:reduce){body.utm-ds-on .elementor *{transition:none!important}}

/* ===== 1.1.0: layout polish for Elementor-built pages ===== */

/* Content width: the Elementor kit lets boxed sections grow to 1500 px; keep them near the theme's own width */
body.utm-ds-on .elementor-section.elementor-section-boxed>.elementor-container{max-width:min(1240px,100%)}
body.utm-ds-on .elementor .e-con{--container-max-width:1240px}

/* Page titles: one consistent style; no heavy frame, shadow or outline around a title */
body.utm-ds-on .elementor h1.elementor-heading-title:where(:not([class*="utm-was-"])){font-size:clamp(2rem,4.6vw,3.1rem);line-height:1.1;letter-spacing:.01em;text-shadow:none;overflow-wrap:break-word}
body.utm-ds-on .elementor h2.elementor-heading-title:where(:not([class*="utm-was-"])){font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.2}
body.utm-ds-on .elementor h3.elementor-heading-title:where(:not([class*="utm-was-"])){font-size:clamp(1.2rem,2.2vw,1.55rem);line-height:1.25}
body.utm-ds-on .elementor .elementor-widget-heading>.elementor-widget-container:has(>h1.elementor-heading-title){border:0!important;border-radius:0!important;box-shadow:none!important;background:none!important;padding:0!important}

/* Sustainability sub-menu (Premium Addons menu widgets).
   1) A page that already has the horizontal sub-menu bar does not also need the slide-in menu: hide the duplicate "burger + Sustainability" bar. */
body.utm-ds-on .elementor:has(.elementor-widget-premium-nav-menu.premium-nav-hor) .elementor-widget-premium-nav-menu.premium-nav-slide{display:none!important}
/*    2) Where the slide-in menu is the only sub-menu, show its button as a clear pill that fits on a phone. */
body.utm-ds-on .elementor .elementor-widget-premium-nav-menu.premium-nav-slide{width:auto!important;max-width:100%!important;--container-widget-width:auto}
body.utm-ds-on .elementor .premium-nav-widget-container .premium-hamburger-toggle{width:auto;align-items:center;gap:.35rem;min-height:44px;padding:.4rem 1.1rem .4rem .7rem;border:1px solid var(--utm-rule);border-radius:999px;background:#fff}
body.utm-ds-on .elementor .premium-nav-widget-container .premium-hamburger-toggle :is(.premium-toggle-text,.premium-toggle-close,i){color:var(--utm-navy)}
body.utm-ds-on .elementor .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-text{font-weight:600}
/*    3) The horizontal bar: lighter frame, brand hover colour, comfortable links. */
body.utm-ds-on .elementor .premium-nav-hor .premium-nav-menu-container{box-shadow:0 6px 20px rgba(18,38,63,.08)!important;border:1px solid var(--utm-rule);border-radius:12px;background:#fff}
body.utm-ds-on .elementor .premium-nav-hor .premium-main-nav-menu>.premium-nav-menu-item:hover>.premium-menu-link,
body.utm-ds-on .elementor .premium-nav-hor .premium-sub-menu-item:hover>.premium-sub-menu-link{color:var(--utm-navy)!important}
body.utm-ds-on .elementor .premium-menu-link{min-height:44px}

/* Vertical rhythm: pages use stacks of spacer widgets (some are 300 px tall); cap them */
body.utm-ds-on .elementor .elementor-widget-spacer .elementor-spacer-inner{max-height:96px}
@media (max-width:1024px){body.utm-ds-on .elementor .elementor-widget-spacer .elementor-spacer-inner{max-height:64px}}
@media (max-width:767px){body.utm-ds-on .elementor .elementor-widget-spacer .elementor-spacer-inner{max-height:36px}}

/* Reading comfort: justified text makes uneven gaps on narrow screens (the class is added by the theme script) */
@media (max-width:1024px){body.utm-ds-on .elementor .utm-unjustify{text-align:left!important}}

/* Touch targets and links */
body.utm-ds-on .elementor .elementor-button{min-height:44px}
body.utm-ds-on .elementor .elementor-icon-list-item>a,body.utm-ds-on .elementor .elementor-icon-list-item>span{min-height:32px}
body.utm-ds-on .elementor :where(img,video,iframe){max-width:100%}

/* ===== 1.2.0: headings whose level was repaired by the theme (class utm-was-hN, opt-in feature) keep the look of the original tag.
   Same strength as the defaults above, so a size chosen in the widget still wins. ===== */
body.utm-ds-on :where(.elementor) .elementor-heading-title.utm-was-h3{font-size:clamp(1.2rem,2.2vw,1.55rem);line-height:1.25}
body.utm-ds-on :where(.elementor) .elementor-heading-title.utm-was-h4{font-size:1em}
body.utm-ds-on :where(.elementor) .elementor-heading-title.utm-was-h5{font-size:.83em}
body.utm-ds-on :where(.elementor) .elementor-heading-title.utm-was-h6{font-size:.67em}
body.utm-ds-on :where(.elementor) :is(h2,h3,h4,h5,h6).utm-was-h3:not(.elementor-heading-title){font-size:1.17em;margin-block:1em}
body.utm-ds-on :where(.elementor) :is(h2,h3,h4,h5,h6).utm-was-h4:not(.elementor-heading-title){font-size:1em;margin-block:1.33em}
body.utm-ds-on :where(.elementor) :is(h2,h3,h4,h5,h6).utm-was-h5:not(.elementor-heading-title){font-size:.83em;margin-block:1.67em}
body.utm-ds-on :where(.elementor) :is(h2,h3,h4,h5,h6).utm-was-h6:not(.elementor-heading-title){font-size:.67em;margin-block:2.33em}
