/*
Theme Name: Hello Elementor Child — NewStar Research
Theme URI: https://newstarinsights.com
Description: Child theme for NewStar Research. Brand tokens, components, motion rules.
Author: iWire Productions
Template: hello-elementor
Version: 2.9.19
Text Domain: hello-elementor-child
*/

/* ---------- Tokens (mirror Elementor Site Settings) ---------- */
:root {
  --brand-navy: #0B1F5E;
  --brand-navy-hover: #081747;
  --brand-blue: #1F3A93;
  --brand-red: #D51F2A;
  --brand-red-hover: #A8141E;
  --brand-gold: #F3C969;
  --gold-gradient: linear-gradient(120deg, #5E3909 0%, #B9821E 30%, #805A17 58%, #C09128 84%, #5E3909 100%);
  --text-ink: #182033;
  --text-slate: #667085;
  --text-disabled: #98A2B3;
  --surface-cloud: #F6F8FC;
  --surface-white: #FFFFFF;
  --border: #D7DEEA;
  --radius-card: 12px;
  --radius-button: 8px;
  --shadow-hover: 0 12px 32px rgba(11, 31, 94, .10);
  --shadow-header: 0 2px 12px rgba(11, 31, 94, .08);
  --space-section: clamp(64px, 8vw, 96px);
  --measure: 680px;
  --font-display: 'Montserrat', Arial, Helvetica, sans-serif;
  --font-body: 'Source Sans 3', Arial, Helvetica, sans-serif;
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 120px; }
body { font-family: var(--font-body); color: var(--text-ink); background: var(--surface-white); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, .elementor-button, nav, .elementor-nav-menu { font-family: var(--font-display); }
h1, h2 { letter-spacing: -0.01em; }
p, li { max-width: var(--measure); }
a { color: var(--brand-blue); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--brand-navy); }
:focus-visible { outline: 3px solid var(--brand-gold); outline-offset: 2px; border-radius: 4px; }
img { max-width: 100%; height: auto; }

/* Skip link */
.scr-skip { position: absolute; left: 16px; top: -48px; z-index: 10000; background: var(--brand-navy); color: #fff; padding: 10px 16px; border-radius: var(--radius-button); font: 600 14px var(--font-display); transition: top .15s var(--ease); }
.scr-skip:focus { top: 16px; }

/* ---------- Header ---------- */
.scr-header { background: #fff; border-bottom: 1px solid var(--border); transition: box-shadow .2s var(--ease); }
.scr-header.elementor-sticky--effects { box-shadow: var(--shadow-header); }
.scr-header .elementor-nav-menu--main .elementor-item { font-weight: 600; font-size: 15px; color: var(--text-ink); padding: 12px 14px; }
.scr-header .elementor-nav-menu--main .elementor-item:hover,
.scr-header .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--brand-blue); }
.scr-header .elementor-nav-menu--main .elementor-item.elementor-item-active::after { content: ""; display: block; height: 2px; background: var(--brand-blue); margin-top: 6px; }
.scr-header .elementor-nav-menu--dropdown { border: 1px solid var(--border); border-radius: var(--radius-button); box-shadow: var(--shadow-hover); }
.scr-header .elementor-nav-menu--dropdown a { min-height: 44px; }

/* ---------- Buttons ---------- */
.elementor-button { border-radius: var(--radius-button); min-height: 48px; font-weight: 600; font-size: 15px; transition: background-color .15s var(--ease), transform .1s var(--ease), color .15s var(--ease); }
.elementor-button:active { transform: translateY(1px); }
.scr-btn-primary .elementor-button { background: var(--brand-blue); color: #fff; }
.scr-btn-primary .elementor-button:hover { background: var(--brand-navy-hover); }
.scr-btn-cta .elementor-button { background: var(--brand-red); color: #fff; }
.scr-btn-cta .elementor-button:hover { background: var(--brand-red-hover); }
.scr-btn-secondary .elementor-button { background: transparent; color: var(--brand-navy); border: 2px solid var(--brand-navy); }
.scr-btn-secondary .elementor-button:hover { background: var(--brand-navy); color: #fff; }
.scr-btn-secondary.scr-on-dark .elementor-button { color: #fff; border-color: #fff; }
.scr-btn-secondary.scr-on-dark .elementor-button:hover { background: #fff; color: var(--brand-navy); }
@media (max-width: 767px) { .scr-btn-full .elementor-button { width: 100%; } }

/* ---------- Cards ---------- */
.scr-card { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-card); overflow: hidden; transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.scr-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); }
.scr-card .scr-frame img { transition: transform .35s var(--ease); }
.scr-card:hover .scr-frame img { transform: scale(1.03); }
.scr-card-quiet { background: var(--surface-cloud); border-radius: var(--radius-card); }

/* Uniform image frames */
.scr-frame { overflow: hidden; border-radius: inherit; }
.scr-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.scr-frame-4x3 { aspect-ratio: 4 / 3; }
.scr-frame-3x2 { aspect-ratio: 3 / 2; }
.scr-frame-16x9 { aspect-ratio: 16 / 9; }

/* Logo holding shape */
.scr-logo-holder { background: #fff; border-radius: var(--radius-card); padding: 20px; display: grid; place-items: center; }
.scr-logo-holder img { width: auto; max-height: 100%; object-fit: contain; }

/* Concentric rings motif */
.scr-rings { position: relative; overflow: hidden; background: var(--brand-navy); }
.scr-rings::before, .scr-rings::after { content: ""; position: absolute; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .14); pointer-events: none; }
.scr-rings::before { width: 140%; aspect-ratio: 1; left: -20%; top: 50%; transform: translateY(-50%); }
.scr-rings::after  { width: 90%;  aspect-ratio: 1; left:  5%; top: 50%; transform: translateY(-50%); border-color: rgba(255, 255, 255, .10); }
.scr-rings > * { position: relative; z-index: 1; }

/* Regions band */
.scr-region { position: relative; border-radius: var(--radius-card); overflow: hidden; }
.scr-region::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11, 31, 94, 0) 40%, rgba(11, 31, 94, .82) 100%); pointer-events: none; }
.scr-region .scr-region-label { position: absolute; left: 24px; right: 24px; bottom: 20px; z-index: 1; color: #fff; }
.scr-region .scr-region-label h3 { color: #fff; margin: 0 0 2px; }
.scr-region .scr-region-label span { font-size: 15px; opacity: .85; }

/* Gold band with white reading panel */
.scr-gold-band { background: var(--gold-gradient); }
.scr-gold-panel { background: rgba(255, 255, 255, .92); border-radius: 16px; padding: 48px; max-width: 800px; margin: 0 auto; }
@media (max-width: 767px) { .scr-gold-panel { padding: 24px; } }

/* Testimonials */
.scr-testimonial .elementor-testimonial__image img,
.scr-testimonial-logo { height: 56px; width: auto; max-width: 180px; object-fit: contain; }
.scr-testimonial .elementor-testimonial { background: var(--surface-cloud); border-radius: var(--radius-card); padding: 32px; height: 100%; }
.scr-testimonial .elementor-testimonial__text { font-family: var(--font-body); font-size: 18px; line-height: 28px; color: var(--text-ink); }
.scr-testimonial .elementor-testimonial__name { font-family: var(--font-display); font-weight: 600; font-size: 15px; color: var(--brand-navy); }
.scr-testimonial .elementor-testimonial__title { color: var(--text-slate); font-size: 14px; }
.scr-testimonial .swiper-slide { height: auto; }
.scr-monogram { width: 56px; height: 56px; border-radius: 50%; background: var(--brand-navy); color: #fff; display: grid; place-items: center; font: 700 18px var(--font-display); }

/* Client wall */
.scr-client-tile { width: 100%; aspect-ratio: 160 / 96; display: grid; place-items: center; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-card); padding: 16px; }
.scr-client-tile img { max-width: 70%; max-height: 70%; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .25s var(--ease), opacity .25s var(--ease); }
.scr-client-tile:hover img { filter: grayscale(0); opacity: 1; }
.scr-client-name { font: 600 20px var(--font-display); color: var(--brand-navy); padding: 16px 0; border-bottom: 1px solid var(--border); }

/* Topic chips */
.scr-chip { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; background: var(--surface-cloud); color: var(--brand-navy); font: 600 14px var(--font-display); margin: 0 8px 8px 0; }

/* Study cards + empty state */
.scr-study .e-loop-item, .scr-empty .e-loop-nothing-found { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-card); padding: 24px; }
.scr-study-meta { color: var(--text-slate); font-size: 14px; display: flex; flex-wrap: wrap; gap: 12px 20px; }

/* Optional mobile scroll-snap row */
@media (max-width: 767px) {
  .scr-scroll-snap { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
  .scr-scroll-snap > * { flex: 0 0 88%; scroll-snap-align: start; }
}

/* ---------- Forms ---------- */
.scr-form .elementor-field-label { font: 600 13px/18px var(--font-display); color: var(--text-ink); margin-bottom: 6px; }
.scr-form .elementor-field-textual { min-height: 48px; font-size: 16px; border: 1px solid var(--border); border-radius: var(--radius-button); background: #fff; color: var(--text-ink); }
.scr-form .elementor-field-textual:focus { outline: 3px solid var(--brand-gold); outline-offset: 2px; border-color: var(--brand-blue); }
.scr-form .elementor-field-subgroup label { font-family: var(--font-body); font-size: 16px; }
.scr-form .elementor-message-danger, .scr-form .elementor-error { color: var(--brand-red); font-size: 14px; }
.scr-form .elementor-message-success { background: var(--surface-cloud); border-radius: var(--radius-card); padding: 24px; color: var(--text-ink); }
.scr-form .e-form__buttons__wrapper__button-next, .scr-form .e-form__buttons__wrapper__button-submit { background: var(--brand-red); border-radius: var(--radius-button); min-height: 48px; }
.scr-form .e-form__buttons__wrapper__button-previous { background: transparent; color: var(--brand-navy); border: 2px solid var(--brand-navy); border-radius: var(--radius-button); }
.scr-form .e-form__indicators__indicator__progress__meter { background: var(--brand-blue); }
.scr-form .elementor-field-type-acceptance a { text-decoration: underline; }

/* ---------- Footer ---------- */
.scr-footer { background: var(--brand-navy); color: #fff; }
.scr-footer a { color: rgba(255, 255, 255, .8); }
.scr-footer a:hover { color: #fff; }
.scr-footer .scr-logo-holder { height: 120px; }
@media (max-width: 767px) { .scr-footer .scr-logo-holder { height: 96px; } }
.scr-footer .elementor-social-icon { background: transparent; border: 1px solid rgba(255, 255, 255, .3); }
.scr-footer .elementor-social-icon:hover { background: #fff; }
.scr-footer .elementor-social-icon:hover i { color: var(--brand-blue); }
.scr-footer-legal { border-top: 1px solid rgba(255, 255, 255, .14); padding-top: 24px; font-size: 13px; color: rgba(255, 255, 255, .6); }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .elementor-invisible { visibility: visible !important; }
  .scr-card:hover { transform: none; box-shadow: none; }
  .scr-card:hover .scr-frame img { transform: none; }
}

/* ---------- Homepage build additions ---------- */
.elementor-button { display: inline-flex; align-items: center; justify-content: center; }
.scr-frame-2x1 { aspect-ratio: 2 / 1; }
.scr-eyebrow { display: block; font: 600 13px/18px var(--font-display); color: var(--brand-blue); margin: 0 0 4px; }
.scr-eyebrow.scr-on-navy { color: var(--brand-gold); }
.scr-pill { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--brand-navy); font: 600 13px var(--font-display); }
.scr-link-on-navy { color: #fff; font: 600 15px var(--font-display); text-decoration: underline; text-underline-offset: 4px; }
.scr-link-on-navy:hover { color: var(--brand-gold); }

/* ---------- Header: single row on desktop, logo + hamburger below 1025px ---------- */
.scr-header .elementor-widget-html { position: static; }
.scr-logo { display: inline-block; line-height: 0; }
.scr-logo img { height: 80px; width: auto; }
@media (max-width: 1024px) { .scr-logo img { height: 60px; } }
@media (max-width: 767px)  { .scr-logo img { height: 54px; } }
.scr-header .scr-header-right { flex-wrap: nowrap; min-width: 0; }
.scr-header .elementor-nav-menu--main .elementor-item { white-space: nowrap; }
@media (min-width: 1200px) {
  .scr-header .elementor-nav-menu--main .elementor-item { padding-left: 13px !important; padding-right: 13px !important; font-size: 15px !important; }
  .scr-header .scr-header-right { gap: 28px !important; }
  .scr-header .scr-header-ctas { gap: 10px !important; }
}
/* CTA buttons cloned into the mobile menu (see scr.js) */
.scr-header .elementor-nav-menu--dropdown { box-shadow: 0 16px 32px rgba(11,31,94,.12); max-height: calc(100vh - 68px); overflow-y: auto; padding-bottom: 8px; }
.scr-header .elementor-nav-menu--dropdown a.elementor-item { min-height: 52px; }
.scr-header .scr-menu-ctas { list-style: none; padding: 12px 24px 12px; border-top: 1px solid var(--border); margin-top: 8px; }
.scr-header .scr-menu-ctas .scr-header-ctas { display: flex !important; flex-direction: column; gap: 10px !important; width: 100%; }
.scr-header .scr-menu-ctas .elementor-widget-button, .scr-header .scr-menu-ctas .elementor-button-wrapper, .scr-header .scr-menu-ctas .elementor-button { width: 100%; }
.scr-header .scr-menu-ctas .elementor-button { min-height: 48px; font-size: 15px !important; }

/* ---------- Hero carousel ---------- */
.scr-hero .swiper-slide > .e-con, .scr-hero .swiper-slide > .e-con p { color: #fff; }
.scr-hero h1.elementor-heading-title, .scr-hero h2.elementor-heading-title { color: #fff; }
.scr-hero .elementor-swiper-button { color: #fff; opacity: .8; transition: opacity .15s var(--ease); }
.scr-hero .elementor-swiper-button:hover, .scr-hero .elementor-swiper-button:focus-visible { opacity: 1; }
.scr-hero .swiper-pagination-bullet { background: #fff; opacity: .55; }
.scr-hero .swiper-pagination-bullet-active { opacity: 1; background: var(--brand-gold); }
.scr-hero-note { font: 600 13px/18px var(--font-display); color: var(--brand-gold); margin: 8px 0 0; }
@media (max-width: 767px) { .scr-hero .elementor-swiper-button { display: none !important; } }

/* ---------- Region grid ---------- */
.scr-region-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 479px) { .scr-region-grid { grid-template-columns: 1fr; } }
.scr-region { aspect-ratio: 3 / 2; }
.scr-region img { width: 100%; height: 100%; object-fit: cover; display: block; }
.scr-region .scr-region-label h3 { font-size: 18px; line-height: 24px; }
.scr-region .scr-region-label span { font-size: 14px; display: block; }
@media (max-width: 767px) { .scr-region .scr-region-label { left: 16px; right: 16px; bottom: 14px; } .scr-region .scr-region-label h3 { font-size: 16px; line-height: 22px; } .scr-region .scr-region-label span { font-size: 13px; } }

/* ---------- Logo grid (trusted by) ---------- */
.scr-logo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 767px) { .scr-logo-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } }
.scr-logo-grid .scr-logo-holder { height: 88px; padding: 14px 18px; }
.scr-logo-grid .scr-logo-holder img { max-width: 100%; max-height: 100%; width: auto; height: auto; }

/* ---------- Footer ---------- */
.scr-footer { border-top: 1px solid rgba(255,255,255,.14); }
.scr-trust { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.scr-trust-label { font: 600 13px/18px var(--font-display); color: rgba(255,255,255,.7); margin: 0; width: 100%; }
@media (min-width: 768px) { .scr-trust-label { width: auto; margin-right: 8px; } }
.scr-trust .scr-logo-holder { height: 72px; width: 168px; padding: 12px 18px; }
.scr-trust .scr-logo-holder img { max-width: 100%; max-height: 100%; width: auto; height: auto; }
.scr-footer-logo { height: 104px; width: auto; padding: 14px 18px; }
.scr-footer-logo img { height: 100%; width: auto; }
.scr-footer h3 { color: #fff; font-size: 15px; line-height: 22px; margin: 0; }
.scr-footer-list { list-style: none; margin: 0; padding: 0; }
.scr-footer-list li { margin: 0 0 8px; color: rgba(255,255,255,.8); font-size: 16px; line-height: 24px; }
.scr-footer p { color: rgba(255,255,255,.8); }
.scr-footer .elementor-nav-menu--main .elementor-item { padding: 6px 0; }
.scr-footer-legal a { color: rgba(255,255,255,.7); }
.scr-footer-legal a:hover { color: #fff; }

/* ---------- Testimonials on navy ---------- */
.scr-testimonial .elementor-testimonial__image img { border-radius: 0; background: #fff; padding: 6px 10px; }
.scr-testimonial .elementor-main-swiper .swiper-slide { height: auto; }
.scr-testimonial .elementor-swiper-button { color: #fff; }

/* ---------- Study cards ---------- */
.scr-study-card .elementor-widget-text-editor p { margin: 0; }
.scr-study .e-loop-nothing-found { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-card); padding: 24px; }

/* ---------- Participants band (deep navy, white card, gold accent) ---------- */
.scr-participants-band { position: relative; overflow: hidden; }
.scr-participants-band::before { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 80% at 50% 0%, rgba(31,58,147,.55) 0%, rgba(11,31,94,0) 60%); pointer-events: none; }
.scr-participants-band > * { position: relative; z-index: 1; }
.scr-participants-card { border-top: 4px solid var(--brand-gold); }
.scr-participants-card .scr-eyebrow { color: var(--brand-blue); }

/* ---------- Fixes (round 2) ---------- */
.scr-logo img { height: 88px; }
.scr-header .scr-header-right { flex: 1 1 auto; justify-content: flex-end; }
.scr-footer-logo { height: 104px; }
.scr-footer-logo img { height: 76px; width: auto; }
a.scr-link-on-navy { color: #fff !important; }
a.scr-link-on-navy:hover, a.scr-link-on-navy:focus-visible { color: var(--brand-gold) !important; }
.scr-testimonial .elementor-testimonial__image { height: auto !important; min-height: 0 !important; margin-bottom: 8px; }
.scr-testimonial .elementor-testimonial__image img { height: 56px !important; width: auto !important; max-width: 180px !important; object-fit: contain !important; border-radius: 0 !important; }
.scr-testimonial .elementor-testimonial__image:empty { display: none; }
.scr-testimonial .elementor-testimonial__content { padding-top: 0; }

/* ---------- Mobile / tablet navigation (custom full-screen panel) ---------- */
.scr-burger-wrap { display: none; }
.scr-burger { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-right: -8px; padding: 0; background: transparent; border: 0; border-radius: var(--radius-button); cursor: pointer; }
.scr-burger-box { position: relative; display: block; width: 24px; height: 18px; }
.scr-burger-line { position: absolute; left: 0; width: 24px; height: 2px; border-radius: 2px; background: var(--brand-navy); transition: transform .3s var(--ease), opacity .2s var(--ease); }
.scr-burger-line:nth-child(1) { top: 0; }
.scr-burger-line:nth-child(2) { top: 8px; }
.scr-burger-line:nth-child(3) { top: 16px; }
.scr-burger.is-open .scr-burger-line:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.scr-burger.is-open .scr-burger-line:nth-child(2) { opacity: 0; }
.scr-burger.is-open .scr-burger-line:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
@media (max-width: 1024px) {
  .scr-header .scr-nav, .scr-header .scr-header-ctas { display: none !important; }
  .scr-header .scr-header-right { display: none !important; }
  .scr-burger-wrap { display: block; }
}
.scr-mnav { position: fixed; left: 0; right: 0; top: 68px; bottom: 0; z-index: 99; background: var(--brand-navy); color: #fff; overflow-y: auto; -webkit-overflow-scrolling: touch; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .32s var(--ease), transform .32s var(--ease), visibility 0s linear .32s; }
.scr-mnav.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .32s var(--ease), transform .32s var(--ease); }
.scr-mnav-inner { min-height: 100%; display: flex; flex-direction: column; max-width: 640px; margin: 0 auto; padding: 24px 24px 40px; }
.scr-mnav-list { list-style: none; margin: 8px 0 0; padding: 0; }
.scr-mnav-list li { max-width: none; border-bottom: 1px solid rgba(255,255,255,.12); opacity: 0; transform: translateY(14px); transition: opacity .4s var(--ease), transform .4s var(--ease); }
.scr-mnav.is-open .scr-mnav-list li { opacity: 1; transform: none; }
.scr-mnav-list li:nth-child(1) { transition-delay: .06s; } .scr-mnav-list li:nth-child(2) { transition-delay: .12s; } .scr-mnav-list li:nth-child(3) { transition-delay: .18s; }
.scr-mnav-list li:nth-child(4) { transition-delay: .24s; } .scr-mnav-list li:nth-child(5) { transition-delay: .30s; } .scr-mnav-list li:nth-child(6) { transition-delay: .36s; }
.scr-mnav-list a { display: flex; align-items: center; min-height: 62px; color: #fff !important; font: 600 24px/1.2 var(--font-display); text-decoration: none !important; }
.scr-mnav-list a:hover, .scr-mnav-list a:focus-visible, .scr-mnav-list .current-menu-item > a { color: var(--brand-gold) !important; }
.scr-mnav-ctas { display: flex; flex-direction: column; gap: 12px; margin-top: 32px; opacity: 0; transform: translateY(14px); transition: opacity .4s var(--ease) .42s, transform .4s var(--ease) .42s; }
.scr-mnav.is-open .scr-mnav-ctas { opacity: 1; transform: none; }
.scr-mnav-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 20px; border-radius: var(--radius-button); font: 600 16px var(--font-display); color: #fff !important; text-decoration: none !important; transition: background-color .15s var(--ease); }
.scr-mnav-btn-blue { background: var(--brand-blue); } .scr-mnav-btn-blue:hover { background: var(--brand-navy-hover); }
.scr-mnav-btn-red { background: var(--brand-red); } .scr-mnav-btn-red:hover { background: var(--brand-red-hover); }
.scr-mnav-brand { margin-top: auto; padding-top: 56px; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; opacity: 0; transition: opacity .5s var(--ease) .5s; }
.scr-mnav.is-open .scr-mnav-brand { opacity: 1; }
.scr-mnav-brand .scr-logo-holder { height: 136px; width: auto; padding: 16px 22px; }
.scr-mnav-brand .scr-logo-holder img { height: 100%; width: auto; }
.scr-mnav-tagline { font: 700 20px/28px var(--font-display); color: #fff; margin: 0; max-width: none; }
.scr-mnav-est { font: 400 14px/20px var(--font-body); color: rgba(255,255,255,.7); margin: 0; }
html.scr-mnav-open, html.scr-mnav-open body { overflow: hidden; }
@media (min-width: 768px) { .scr-mnav-inner { padding: 32px 32px 56px; } .scr-mnav-list a { font-size: 28px; min-height: 72px; } .scr-mnav-ctas { flex-direction: row; } .scr-mnav-btn { flex: 1 1 0; } .scr-mnav-brand .scr-logo-holder { height: 160px; } }
@media (min-width: 1025px) { .scr-mnav { display: none !important; } }
@media (prefers-reduced-motion: reduce) { .scr-mnav, .scr-mnav-list li, .scr-mnav-ctas, .scr-mnav-brand, .scr-burger-line { transition: none !important; transform: none !important; } }

/* ---------- Fixes (round 3) ---------- */
.scr-header .scr-burger, .scr-header .scr-burger:hover, .scr-header .scr-burger:focus { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; color: var(--brand-navy) !important; }
.scr-header .scr-burger:focus-visible { outline: 3px solid var(--brand-gold); outline-offset: 2px; }
@media (max-width: 1199px) {
  .scr-header .scr-nav, .scr-header .scr-header-ctas, .scr-header .scr-header-right { display: none !important; }
  .scr-burger-wrap { display: block; }
}
@media (min-width: 1200px) { .scr-mnav { display: none !important; } .scr-burger-wrap { display: none !important; } }
@media (min-width: 1025px) and (max-width: 1199px) { .scr-mnav-inner { max-width: 720px; } }
/* Participants band: brand-blue diagonal gradient with a restrained glow behind the card */
.scr-participants-band { background-image: linear-gradient(135deg, #173B82 0%, #0E2A68 55%, #0B1F5E 100%) !important; }
.scr-participants-band::before { background: radial-gradient(60% 70% at 50% 45%, rgba(31,58,147,.55) 0%, rgba(31,58,147,0) 70%); }
.scr-participants-band::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: rgba(255,255,255,.08); }
.scr-participants-card { box-shadow: 0 30px 60px rgba(3,12,40,.45), 0 0 0 1px rgba(255,255,255,.06); }
/* Footer trust strip: consistent logo height and breathing room */
.scr-trust { gap: 16px 20px; }
.scr-trust .scr-logo-holder { height: 84px; width: 190px; padding: 14px 20px; }
.scr-trust .scr-logo-holder img { max-height: 100%; max-width: 100%; width: auto; height: auto; object-fit: contain; }

/* ---------- Fixes (round 4) ---------- */
/* Testimonial cards use flex column-reverse; pack content to the top instead of the bottom on shorter slides. */
.scr-testimonial .elementor-testimonial--layout-image_above .elementor-testimonial, .scr-testimonial .elementor-testimonial { justify-content: flex-end !important; }
.scr-testimonial .elementor-testimonial__footer { margin: 0 0 16px !important; }
.scr-testimonial .elementor-testimonial__footer:has(img[src=""]), .scr-testimonial .elementor-testimonial__footer:has(img:not([src])) { display: none !important; }

/* ---------- Refinement pass (round 5) ---------- */
/* Header aligned to the 1200 content grid, taller, larger logo */
.scr-logo img { height: 104px; }
@media (max-width: 1199px) { .scr-logo img { height: 60px; } }
@media (max-width: 767px)  { .scr-logo img { height: 54px; } }
@media (min-width: 1200px) {
  .scr-header .elementor-nav-menu--main .elementor-item { padding-left: 11px !important; padding-right: 11px !important; }
  .scr-header .scr-header-right { gap: 22px !important; }
}
/* Footer trust band: three large, uniform certification cards */
.scr-trust { display: block; }
.scr-trust-label { width: auto; margin: 0 0 16px; font-size: 14px; }
.scr-trust-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.scr-trust-card { display: flex; align-items: center; justify-content: center; background: #fff; border-radius: var(--radius-card); aspect-ratio: 2 / 1; padding: 20px 26px; overflow: hidden; transition: transform .2s var(--ease), box-shadow .2s var(--ease); }
a.scr-trust-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0,0,0,.25); }
.scr-trust-card img { width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
@media (max-width: 1024px) { .scr-trust-grid { gap: 16px; } .scr-trust-card { padding: 14px 18px; } }
@media (max-width: 599px) { .scr-trust-grid { grid-template-columns: 1fr; max-width: 360px; gap: 14px; } .scr-trust-card { padding: 18px 24px; } }
/* Participants band: vibrant layered gradient (cyan upper-left, royal blue center, violet upper-right, navy base) */
.scr-participants-band { background-color: #0B1F5E !important; background-image:
  radial-gradient(70% 65% at 6% -4%, rgba(56,214,204,.92) 0%, rgba(56,214,204,.45) 22%, rgba(56,214,204,0) 55%),
  radial-gradient(60% 60% at 96% 2%, rgba(147,90,255,.88) 0%, rgba(147,90,255,.35) 26%, rgba(147,90,255,0) 58%),
  radial-gradient(85% 75% at 50% 42%, rgba(40,105,255,.95) 0%, rgba(40,105,255,.55) 38%, rgba(40,105,255,0) 78%),
  linear-gradient(180deg, #2557D6 0%, #1E3F9E 38%, #142B73 72%, #0B1F5E 100%) !important; }
.scr-participants-band::before { background: radial-gradient(48% 55% at 50% 50%, rgba(255,255,255,.12) 0%, rgba(255,255,255,0) 70%); }
.scr-participants-band::after { background: linear-gradient(180deg, rgba(11,31,94,0), rgba(11,31,94,.6)); height: 40px; }
/* Mobile menu: fit the complete panel within the viewport height */
.scr-mnav-inner { padding: 14px 24px 18px; }
.scr-mnav-list { margin: 0; }
.scr-mnav-list a { font-size: clamp(24px, 6.6vw, 29px); min-height: clamp(46px, 6.6vh, 58px); }
.scr-mnav-ctas { margin-top: clamp(16px, 3vh, 28px); gap: 10px; }
.scr-mnav-btn { min-height: clamp(50px, 6.5vh, 56px); }
.scr-mnav-brand { padding-top: clamp(20px, 4vh, 48px); gap: 12px; }
.scr-mnav-brand .scr-logo-holder { height: clamp(76px, 12vh, 110px); padding: 10px 14px; }
.scr-mnav-tagline { font-size: clamp(16px, 4.4vw, 19px); line-height: 1.35; }
.scr-mnav-est { font-size: 13px; line-height: 18px; }
@media (max-height: 700px) and (max-width: 767px) { .scr-mnav-est { display: none; } .scr-mnav-list a { min-height: 44px; font-size: 23px; } .scr-mnav-btn { min-height: 48px; } .scr-mnav-brand .scr-logo-holder { height: 70px; } .scr-mnav-ctas { margin-top: 14px; } .scr-mnav-brand { padding-top: 16px; } }
@media (min-width: 768px) { .scr-mnav-inner { padding: 28px 32px 40px; } .scr-mnav-list a { font-size: 28px; min-height: 68px; } .scr-mnav-brand .scr-logo-holder { height: 150px; } .scr-mnav-tagline { font-size: 20px; } }

/* ---------- Footer: restrained Warm Gold accents ---------- */
.scr-footer { border-top: 0; }
.scr-trust { border-top: 1px solid rgba(243,201,105,.55); padding-top: 28px; }
.scr-trust-label { display: flex; align-items: center; gap: 14px; color: var(--brand-gold); font-size: 13px; letter-spacing: .01em; }
.scr-trust-label::before { content: ""; width: 28px; height: 1px; background: var(--brand-gold); flex: 0 0 auto; }
.scr-trust-label::after { content: ""; flex: 1 1 auto; height: 1px; background: linear-gradient(90deg, rgba(243,201,105,.45), rgba(243,201,105,0)); max-width: 220px; }
.scr-footer h3 { position: relative; padding-bottom: 10px; }
.scr-footer h3::after { content: ""; position: absolute; left: 0; bottom: 0; width: 22px; height: 2px; background: var(--brand-gold); border-radius: 2px; }
.scr-brandline { display: flex; align-items: center; gap: 10px; margin: 14px 0 4px; color: var(--brand-gold); max-width: 200px; }
.scr-brandline span { flex: 1 1 auto; height: 1px; background: linear-gradient(90deg, rgba(243,201,105,0), rgba(243,201,105,.8)); }
.scr-brandline span:last-child { background: linear-gradient(90deg, rgba(243,201,105,.8), rgba(243,201,105,0)); }
.scr-footer-contact li { display: flex; align-items: flex-start; gap: 10px; }
.scr-ico { width: 16px; height: 16px; flex: 0 0 16px; margin-top: 4px; color: var(--brand-gold); }
.scr-footer a:hover, .scr-footer .elementor-nav-menu--main .elementor-item:hover, .scr-footer-legal a:hover { color: var(--brand-gold) !important; }
.scr-footer .elementor-social-icon:hover { background: var(--brand-gold) !important; border-color: var(--brand-gold) !important; }
.scr-footer .elementor-social-icon:hover svg, .scr-footer .elementor-social-icon:hover i { fill: var(--brand-navy) !important; color: var(--brand-navy) !important; }
.scr-footer-legal { border-top-color: rgba(243,201,105,.28); }

/* ---------- Fixes (round 6) ---------- */
.scr-footer .elementor-heading-title, .scr-footer h3.elementor-heading-title { color: #fff !important; font-size: 15px !important; line-height: 22px !important; }
.scr-footer .elementor-widget-heading .elementor-heading-title { padding-bottom: 10px; position: relative; }
.scr-footer .elementor-widget-heading .elementor-heading-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 22px; height: 2px; background: var(--brand-gold); border-radius: 2px; }
.scr-footer h3::after { display: none; }
.scr-participants-card { max-width: 100%; }

/* ---------- Mobile / tablet closed header: large brand logo ---------- */
@media (max-width: 1199px) {
  .scr-header { min-height: 140px !important; }
  .scr-header .scr-logo img { height: 128px; }
  .scr-header .scr-burger { margin-right: 0; width: 52px; height: 52px; }
  html { scroll-padding-top: 152px; }
  /* Open menu must fit beneath the taller header */
  .scr-mnav-inner { padding: 12px 24px 16px; }
  .scr-mnav-list a { font-size: clamp(23px, 6.2vw, 28px); min-height: clamp(44px, 5.8vh, 54px); }
  .scr-mnav-ctas { margin-top: clamp(14px, 2.4vh, 24px); }
  .scr-mnav-btn { min-height: clamp(48px, 6vh, 54px); }
  .scr-mnav-brand { padding-top: clamp(16px, 3vh, 40px); gap: 10px; }
  .scr-mnav-brand .scr-logo-holder { height: clamp(70px, 10vh, 100px); }
  .scr-mnav-tagline { font-size: clamp(16px, 4.2vw, 18px); line-height: 1.3; }
}
@media (max-width: 767px) and (max-height: 700px) {
  .scr-mnav-list a { min-height: 40px; font-size: 22px; }
  .scr-mnav-btn { min-height: 44px; }
  .scr-mnav-ctas { margin-top: 12px; gap: 8px; }
  .scr-mnav-brand { padding-top: 12px; gap: 8px; }
  .scr-mnav-brand .scr-logo-holder { height: 60px; padding: 8px 12px; }
  .scr-mnav-tagline { font-size: 15px; line-height: 20px; }
}
@media (min-width: 768px) and (max-width: 1199px) { .scr-mnav-list a { font-size: 28px; min-height: 64px; } .scr-mnav-brand .scr-logo-holder { height: 140px; } }
/* Phones: keep the required brand elements and drop the optional heritage line for breathing room */
@media (max-width: 767px) { .scr-mnav-est { display: none; } .scr-mnav-inner { padding-bottom: 20px; } }

/* ---------- Art-direction pass (round 7) ---------- */
/* Hero: overlay protects the text on the left and fades so the image stays vivid on the right */
.scr-hero-slide::before { background: linear-gradient(90deg, rgba(11,31,94,.95) 0%, rgba(11,31,94,.88) 26%, rgba(11,31,94,.6) 50%, rgba(11,31,94,.2) 72%, rgba(11,31,94,.04) 100%) !important; opacity: 1 !important; }
@media (max-width: 1024px) { .scr-hero-slide::before { background: linear-gradient(90deg, rgba(11,31,94,.95) 0%, rgba(11,31,94,.88) 40%, rgba(11,31,94,.55) 75%, rgba(11,31,94,.3) 100%) !important; } }
@media (max-width: 767px) { .scr-hero-slide::before { background: linear-gradient(180deg, rgba(11,31,94,.93) 0%, rgba(11,31,94,.85) 55%, rgba(11,31,94,.62) 100%) !important; } }
/* Testimonials: dedicated logo stage with unified monochrome artwork */
.scr-testimonial .elementor-testimonial__footer { margin: 0 0 14px !important; }
.scr-testimonial .elementor-testimonial__footer:has(img[src=""]), .scr-testimonial .elementor-testimonial__footer:has(img:not([src])) { display: flex !important; }
.scr-testimonial .elementor-testimonial__image { display: flex !important; align-items: center; justify-content: flex-start; width: 100% !important; height: 84px !important; min-height: 0 !important; margin: 0 !important; }
.scr-testimonial .elementor-testimonial__image img { height: 84px !important; width: auto !important; max-width: 272px !important; object-fit: contain !important; object-position: left center; background: transparent !important; padding: 0 !important; border-radius: 0 !important; }
@media (max-width: 767px) { .scr-testimonial .elementor-testimonial__image { height: 64px !important; } .scr-testimonial .elementor-testimonial__image img { height: 64px !important; max-width: 210px !important; } .scr-testimonial .elementor-testimonial { padding: 24px !important; } }
/* About / regions: angular slanted image treatment with labels beneath */
.scr-region-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; align-items: start; }
.scr-region-item { margin: 0; display: flex; flex-direction: column; }
.scr-region-media { aspect-ratio: 3 / 4; clip-path: polygon(15% 0, 100% 0, 85% 100%, 0 100%); overflow: hidden; background: var(--brand-navy); }
.scr-region-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--ease); }
.scr-region-item:hover .scr-region-media img { transform: scale(1.04); }
.scr-region-item figcaption { text-align: center; padding: 14px 6px 0; }
.scr-region-item strong { display: block; font: 600 15px/20px var(--font-display); color: var(--brand-navy); }
.scr-region-item span { display: block; font: 400 13px/18px var(--font-body); color: var(--text-slate); margin-top: 2px; max-width: none; }
@media (max-width: 1024px) { .scr-region-row { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 16px; } .scr-region-media { aspect-ratio: 4 / 3; clip-path: polygon(10% 0, 100% 0, 90% 100%, 0 100%); } }
@media (max-width: 479px) { .scr-region-item strong { font-size: 14px; } .scr-region-item span { font-size: 12px; } }
@media (prefers-reduced-motion: reduce) { .scr-region-item:hover .scr-region-media img { transform: none; } }
/* Regions: angular only on desktop; rectangular rounded cards on tablet and mobile */
@media (max-width: 1024px) {
  .scr-region-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
  .scr-region-media { aspect-ratio: 3 / 2; clip-path: none; border-radius: var(--radius-card); }
  .scr-region-item figcaption { text-align: left; padding: 12px 2px 0; }
}
@media (max-width: 479px) {
  .scr-region-row { grid-template-columns: 1fr; gap: 20px; }
  .scr-region-media { aspect-ratio: 16 / 10; }
  .scr-region-item strong { font-size: 15px; } .scr-region-item span { font-size: 13px; }
}
/* Regions: taller architectural panels on desktop (widths, spacing, labels unchanged) */
@media (min-width: 1025px) { .scr-region-media { aspect-ratio: 9 / 16; } }

/* ---------- Back to top ---------- */
.scr-totop { position: fixed; right: 28px; bottom: 28px; z-index: 90; width: 50px; height: 50px; padding: 0; margin: 0; border: 0; border-radius: 50%; background: var(--brand-navy) !important; color: #fff !important; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 10px 28px rgba(3,12,40,.35), 0 0 0 1px rgba(255,255,255,.12); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s linear .3s, background-color .15s var(--ease), color .15s var(--ease); }
.scr-totop.is-visible { opacity: 1; visibility: visible; transform: none; transition: opacity .3s var(--ease), transform .3s var(--ease), background-color .15s var(--ease), color .15s var(--ease); }
.scr-totop:hover { background: var(--brand-navy-hover) !important; color: var(--brand-gold) !important; box-shadow: 0 12px 30px rgba(3,12,40,.4), 0 0 0 2px var(--brand-gold); }
.scr-totop:focus-visible { outline: 3px solid var(--brand-gold); outline-offset: 3px; color: var(--brand-gold) !important; }
.scr-totop:active { transform: translateY(1px); }
.scr-totop svg { display: block; }
@media (max-width: 767px) { .scr-totop { width: 46px; height: 46px; right: 16px; bottom: 16px; } }
html.scr-mnav-open .scr-totop { display: none; }
@media (prefers-reduced-motion: reduce) { .scr-totop { transition: none !important; transform: none !important; } }
/* Back to top: defeat the theme kit's generic button rules */
.scr-totop, .scr-totop:hover, .scr-totop:focus { padding: 0 !important; border: 0 !important; border-radius: 50% !important; line-height: 1 !important; font-size: 0 !important; width: 50px !important; height: 50px !important; min-height: 0 !important; }
@media (max-width: 767px) { .scr-totop, .scr-totop:hover, .scr-totop:focus { width: 46px !important; height: 46px !important; } }
.scr-totop svg { width: 22px !important; height: 22px !important; display: block !important; overflow: visible; }
.scr-totop svg path { fill: none !important; stroke: currentColor !important; stroke-width: 2.4 !important; }

/* ---------- Interior pages ---------- */
.scr-page-hero-panel { clip-path: polygon(0 0, 100% 0, calc(100% - 72px) 100%, 0 100%); padding-left: max(32px, calc((100vw - 1200px) / 2)) !important; }
@media (max-width: 1024px) { .scr-page-hero-panel { clip-path: polygon(0 0, 100% 0, calc(100% - 40px) 100%, 0 100%); } }
@media (max-width: 767px) { .scr-page-hero-panel { clip-path: none; } .scr-page-hero { background-position: center bottom !important; } }
.scr-page-hero h1.elementor-heading-title { color: #fff; }
.scr-timeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1024px) { .scr-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .scr-timeline { grid-template-columns: 1fr; } }
.scr-tl { position: relative; padding: 20px 0 0; border-top: 2px solid var(--border); }
.scr-tl::before { content: ""; position: absolute; left: 0; top: -2px; width: 56px; height: 2px; background: var(--brand-gold); }
.scr-tl-year { display: block; font: 700 22px/28px var(--font-display); color: var(--brand-navy); margin-bottom: 6px; }
.scr-tl strong { display: block; font: 600 16px/24px var(--font-display); color: var(--text-ink); margin-bottom: 6px; }
.scr-tl p { margin: 0; font-size: 15px; line-height: 24px; color: var(--text-slate); }
.scr-about-logo { height: 200px; width: auto; padding: 20px 26px; }
.scr-about-logo img { height: 100%; width: auto; }
.scr-about-logo-note { margin: 16px 0 0; text-align: center; font: 600 14px/20px var(--font-display); color: var(--brand-navy); }
.scr-region-row-wide .scr-region-media { aspect-ratio: 4 / 5; }
@media (min-width: 1025px) { .scr-region-row-wide .scr-region-media { aspect-ratio: 3 / 4; } }
.scr-process { list-style: none; margin: 0; padding: 0; counter-reset: step; }
.scr-process li { position: relative; padding: 0 0 14px 40px; counter-increment: step; max-width: none; }
.scr-process li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--brand-gold); color: var(--brand-navy); font: 700 13px/28px var(--font-display); text-align: center; }
.scr-process strong { display: block; color: #fff; font: 600 15px/22px var(--font-display); }
.scr-process span { display: block; color: rgba(255,255,255,.75); font-size: 14px; line-height: 20px; }
.scr-chips { display: flex; flex-wrap: wrap; gap: 0; }
.scr-facility-carousel .swiper-slide img { width: 100%; height: auto; display: block; border-radius: var(--radius-card); }
.scr-facility-carousel .elementor-swiper-button { color: #fff; filter: drop-shadow(0 2px 6px rgba(0,0,0,.5)); }
.scr-contact-list li { display: block; margin-bottom: 14px; color: var(--text-ink); }
.scr-contact-list strong { display: block; font: 600 13px/18px var(--font-display); color: var(--brand-blue); margin-bottom: 2px; }
.scr-contact-list a { color: var(--brand-blue); }
.scr-tier2 h3 { margin: 0; }
.scr-tier2 p { margin: 0; color: var(--text-ink); }
.scr-cta-band h2 { margin: 0; }
@media (min-width: 1025px) { .scr-sticky-aside { position: sticky; top: 148px; } }
/* Forms */
.scr-form .elementor-field-group { margin-bottom: 4px; }
.scr-form .elementor-field-label { font: 600 13px/18px var(--font-display) !important; color: var(--text-ink) !important; }
.scr-form .elementor-field-textual { min-height: 48px !important; font-size: 16px !important; border: 1px solid var(--border) !important; border-radius: var(--radius-button) !important; background: #fff !important; color: var(--text-ink) !important; }
.scr-form .elementor-field-textual:focus { outline: 3px solid var(--brand-gold) !important; outline-offset: 2px; border-color: var(--brand-blue) !important; }
.scr-form .elementor-field-subgroup label { font-family: var(--font-body); font-size: 16px; }
.scr-form .elementor-button[type="submit"], .scr-form .e-form__buttons__wrapper__button-next, .scr-form .e-form__buttons__wrapper__button-submit { background: var(--brand-red) !important; color: #fff !important; border-radius: var(--radius-button) !important; min-height: 48px; font: 600 15px var(--font-display) !important; padding: 12px 24px !important; }
.scr-form .elementor-button[type="submit"]:hover, .scr-form .e-form__buttons__wrapper__button-next:hover, .scr-form .e-form__buttons__wrapper__button-submit:hover { background: var(--brand-red-hover) !important; }
.scr-form .e-form__buttons__wrapper__button-previous { background: transparent !important; color: var(--brand-navy) !important; border: 2px solid var(--brand-navy) !important; border-radius: var(--radius-button) !important; min-height: 48px; font: 600 15px var(--font-display) !important; padding: 10px 22px !important; }
.scr-form .e-form__indicators__indicator__progress__meter { background: var(--brand-blue) !important; }
.scr-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number, .scr-form .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number { background: var(--brand-navy) !important; border-color: var(--brand-navy) !important; }
.scr-form .elementor-message-success { background: var(--surface-cloud); border-radius: var(--radius-card); padding: 24px; color: var(--text-ink); }
.scr-form .elementor-message-danger, .scr-form .elementor-error { color: var(--brand-red); font-size: 14px; }
.scr-form .elementor-field-type-acceptance a { text-decoration: underline; }
.scr-about-logo { height: 200px !important; width: auto; padding: 20px 26px; }
.scr-about-logo img { height: 160px !important; width: auto !important; max-height: none; }
/* Multi-step indicator labels */
.scr-form-steps .e-form__indicators__indicator__label { white-space: nowrap; font: 600 12px/16px var(--font-display) !important; color: var(--text-slate); }
.scr-form-steps .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label { color: var(--brand-navy); }
@media (max-width: 599px) { .scr-form-steps .e-form__indicators__indicator:not(.e-form__indicators__indicator--state-active) .e-form__indicators__indicator__label { display: none; } }

/* ---------- Site-wide correction pass (round 8) ---------- */
/* Footer legal row: copyright left, iWire credit centre, privacy right */
.scr-footer-legal { justify-content: space-between; }
.scr-legal-center { flex: 1 1 auto; text-align: center; }
.scr-credit { font-size: 13px; color: rgba(255,255,255,.6); }
.scr-credit a { color: rgba(255,255,255,.78); text-decoration: none; border-bottom: 1px solid rgba(243,201,105,.4); }
.scr-credit a:hover, .scr-credit a:focus-visible { color: var(--brand-gold) !important; border-bottom-color: var(--brand-gold); }
@media (max-width: 767px) { .scr-footer-legal { flex-direction: column; text-align: center; gap: 10px !important; } .scr-legal-center, .scr-legal-left, .scr-legal-right { width: 100%; text-align: center; } }

/* About: story photograph replaces the redundant logo panel */
.scr-story-figure { margin: 0; }
.scr-story-media { border-radius: var(--radius-card); overflow: hidden; aspect-ratio: 4 / 3; background: var(--surface-cloud); }
.scr-story-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.scr-story-figure figcaption { margin-top: 12px; font: 400 14px/20px var(--font-body); color: var(--text-slate); max-width: none; }
@media (max-width: 1024px) { .scr-story-media { aspect-ratio: 16 / 9; } }

/* Privacy policy and other long-form legal text */
.scr-legal-body { max-width: 100%; }
.scr-legal-body h2 { font-size: 26px; line-height: 34px; margin: 32px 0 8px; }
.scr-legal-body h3 { font-size: 20px; line-height: 28px; margin: 24px 0 6px; }
.scr-legal-body h2:first-child, .scr-legal-body h3:first-child { margin-top: 0; }
.scr-legal-body p, .scr-legal-body li { font-size: 16px; line-height: 27px; max-width: 100%; }
.scr-legal-body p { margin: 0 0 16px; }
.scr-legal-body ul, .scr-legal-body ol { margin: 0 0 16px; padding-left: 22px; }
.scr-legal-body li { margin-bottom: 8px; }

/* Facilities: wide landscape carousel, sharp full-size sources, no square crop */
.scr-facility-carousel .elementor-image-carousel-wrapper { max-width: 100%; }
.scr-facility-carousel .swiper-slide-image, .scr-facility-carousel .swiper-slide img { width: 100% !important; height: auto !important; max-height: none !important; object-fit: contain !important; border-radius: var(--radius-card); display: block; filter: none !important; }
.scr-facility-carousel .swiper-slide { display: flex; align-items: center; }
.scr-facility-carousel .elementor-swiper-button { color: #fff; filter: drop-shadow(0 2px 8px rgba(0,0,0,.55)); }
.scr-facility-carousel .swiper-pagination { bottom: 10px; }

/* Mobile / tablet menu: ~27% smaller type and spacing so the panel fits without scrolling */
.scr-mnav-inner { padding: 10px 24px 14px; }
.scr-mnav-list a { font-size: clamp(17px, 4.6vw, 21px); min-height: clamp(34px, 4.6vh, 42px); }
.scr-mnav-ctas { margin-top: clamp(12px, 2.2vh, 20px); gap: 8px; }
.scr-mnav-btn { min-height: 44px; font-size: 15px; }
.scr-mnav-brand { padding-top: clamp(12px, 2.2vh, 28px); gap: 8px; }
.scr-mnav-brand .scr-logo-holder { height: clamp(52px, 7.2vh, 74px); padding: 8px 12px; }
.scr-mnav-tagline { font-size: clamp(14px, 3.6vw, 16px); line-height: 1.3; }
@media (max-width: 1199px) {
  .scr-mnav-inner { padding: 10px 24px 14px; }
  .scr-mnav-list a { font-size: clamp(17px, 4.5vw, 20px); min-height: clamp(33px, 4.2vh, 40px); }
  .scr-mnav-ctas { margin-top: clamp(12px, 2vh, 18px); }
  .scr-mnav-btn { min-height: 44px; }
  .scr-mnav-brand { padding-top: clamp(10px, 2vh, 24px); }
  .scr-mnav-brand .scr-logo-holder { height: clamp(50px, 7vh, 70px); }
  .scr-mnav-tagline { font-size: clamp(14px, 3.6vw, 16px); }
}
@media (max-width: 767px) and (max-height: 700px) {
  .scr-mnav-list a { min-height: 30px; font-size: 16px; }
  .scr-mnav-btn { min-height: 42px; font-size: 14px; }
  .scr-mnav-ctas { margin-top: 10px; gap: 6px; }
  .scr-mnav-brand { padding-top: 10px; gap: 6px; }
  .scr-mnav-brand .scr-logo-holder { height: 46px; padding: 6px 10px; }
  .scr-mnav-tagline { font-size: 13px; line-height: 18px; }
}
@media (min-width: 768px) and (max-width: 1199px) {
  .scr-mnav-list a { font-size: 20px; min-height: 46px; }
  .scr-mnav-brand .scr-logo-holder { height: 100px; }
  .scr-mnav-tagline { font-size: 17px; }
}
/* Opening the menu by touch/mouse must not paint a focus ring on the first link */
.scr-mnav-list a:focus:not(:focus-visible) { outline: none !important; }
.scr-mnav-list a:focus-visible { outline: 3px solid var(--brand-gold); outline-offset: -3px; }
/* Facility banners fill the content container as a wide landscape strip */
.scr-facility-carousel .elementor-image-carousel-wrapper, .scr-facility-carousel .swiper, .scr-facility-carousel .swiper-slide { width: 100%; }
.scr-facility-carousel .swiper-slide-image, .scr-facility-carousel .swiper-slide img { width: 100% !important; height: auto !important; object-fit: cover !important; }

/* ---------- Mobile menu: cohesive composition + clean close control (round 9) ---------- */
/* Branding follows the CTAs naturally instead of being pinned to the viewport bottom */
.scr-mnav-brand { margin-top: 0 !important; padding-top: clamp(18px, 3.2vh, 34px) !important; }
.scr-mnav-inner { min-height: 0; justify-content: flex-start; }
@media (max-width: 1199px) { .scr-mnav-brand { padding-top: clamp(16px, 3vh, 30px) !important; } }
@media (max-width: 767px) and (max-height: 700px) { .scr-mnav-brand { padding-top: 14px !important; } }
/* Close / hamburger control: no gold box for touch or mouse, keyboard ring preserved */
.scr-header .scr-burger:focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; }
.scr-header .scr-burger:focus-visible { outline: 3px solid var(--brand-gold); outline-offset: 2px; border-radius: 8px; }
/* Facility banner: the slide's inner wrapper is sized to the source width, so stretch the whole chain */
.scr-facility-carousel .swiper-slide > *, .scr-facility-carousel .swiper-slide figure, .scr-facility-carousel .swiper-slide a { width: 100% !important; display: block; }
.scr-facility-carousel .swiper-slide img, .scr-facility-carousel .swiper-slide-image { width: 100% !important; max-width: 100% !important; height: auto !important; }

/* ---------- Privacy policy: fluid measure below desktop, 20px mobile inset (round 10) ---------- */
@media (max-width: 1024px) {
  .scr-legal-body { width: 100% !important; max-width: 100% !important; }
}
@media (max-width: 767px) {
  /* The section already insets 20px; keep the text inside it and never let long URLs push past the edge. */
  .scr-legal-body { width: 100% !important; max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; box-sizing: border-box; }
  .scr-legal-body p, .scr-legal-body li, .scr-legal-body h2, .scr-legal-body h3 { max-width: 100% !important; overflow-wrap: anywhere; word-break: break-word; }
  .scr-legal-body h2 { font-size: 22px; line-height: 30px; }
  .scr-legal-body h3 { font-size: 18px; line-height: 26px; }
}

/* ---------- Fluent Forms, branded to the NewStar design system (round 11) ---------- */
.scr-ff-wrap .fluentform, .frm-fluent-form { font-family: var(--font-body); }
.frm-fluent-form .ff-el-input--label label { font: 600 13px/18px var(--font-display) !important; color: var(--text-ink) !important; margin-bottom: 6px; }
.frm-fluent-form .ff-el-input--label.ff-el-is-required.asterisk-right label:after { color: var(--brand-red); }
.frm-fluent-form .ff-el-form-control { font-family: var(--font-body) !important; font-size: 16px !important; min-height: 48px; padding: 12px 14px; color: var(--text-ink) !important; background: #fff !important; border: 1px solid var(--border) !important; border-radius: var(--radius-button) !important; box-shadow: none !important; transition: border-color .15s var(--ease); }
.frm-fluent-form textarea.ff-el-form-control { min-height: 120px; line-height: 26px; }
.frm-fluent-form .ff-el-form-control:hover { border-color: #b9c6de !important; }
.frm-fluent-form .ff-el-form-control:focus { outline: 3px solid var(--brand-gold) !important; outline-offset: 2px; border-color: var(--brand-blue) !important; }
.frm-fluent-form select.ff-el-form-control { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23667085' stroke-width='1.6' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 14px center !important; background-size: 12px 8px !important; padding-right: 38px; }
.frm-fluent-form .ff-el-group { margin-bottom: 18px; }
.frm-fluent-form .ff-el-help-message { font-size: 13px; line-height: 18px; color: var(--text-slate); }
/* Section breaks read as the step headings they replace */
.frm-fluent-form .ff-el-section-break { border-top: 1px solid var(--border); padding-top: 22px; margin-top: 10px; }
.frm-fluent-form .ff-el-section-break:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
.frm-fluent-form .ff-el-section-break h3, .frm-fluent-form .ff-section-titl, .frm-fluent-form .ff-el-section-break .ff-el-section-title { font: 600 20px/28px var(--font-display) !important; color: var(--brand-navy) !important; margin: 0 0 4px !important; }
.frm-fluent-form .ff-el-section-break .ff-section_break_desk, .frm-fluent-form .ff-el-section-break p { font: 400 15px/23px var(--font-body); color: var(--text-slate); margin: 0 0 4px; max-width: none; }
/* Radio and checkbox groups */
.frm-fluent-form .ff-el-form-check { margin-bottom: 8px; }
.frm-fluent-form .ff-el-form-check-label, .frm-fluent-form .ff-el-form-check label { font-family: var(--font-body); font-size: 16px; line-height: 24px; color: var(--text-ink); }
.frm-fluent-form input[type=checkbox], .frm-fluent-form input[type=radio] { accent-color: var(--brand-blue); width: 18px; height: 18px; }
.frm-fluent-form input[type=checkbox]:focus-visible, .frm-fluent-form input[type=radio]:focus-visible { outline: 3px solid var(--brand-gold); outline-offset: 2px; }
.frm-fluent-form .ff_list_inline .ff-el-form-check { display: inline-flex; margin-right: 20px; }
/* Consent block */
.frm-fluent-form .ff-el-tc { background: var(--surface-cloud); border-radius: var(--radius-card); padding: 16px 18px; }
.frm-fluent-form .ff-el-tc label, .frm-fluent-form .ff-el-tc p { font-size: 15px; line-height: 23px; color: var(--text-ink); max-width: none; }
.frm-fluent-form .ff-el-tc a { color: var(--brand-blue); text-decoration: underline; }
/* Submit button matches the site CTA */
.frm-fluent-form .ff-btn-submit, .frm-fluent-form .ff-btn.ff-btn-submit { font: 600 15px var(--font-display) !important; min-height: 48px; padding: 13px 24px !important; border-radius: var(--radius-button) !important; background: var(--brand-red) !important; border: 0 !important; color: #fff !important; transition: background-color .15s var(--ease); }
.frm-fluent-form .ff-btn-submit:hover { background: var(--brand-red-hover) !important; }
.frm-fluent-form .ff-btn-submit:focus-visible { outline: 3px solid var(--brand-gold); outline-offset: 2px; }
.frm-fluent-form .ff-el-group.ff-text-left .ff-btn-submit { min-width: 200px; }
@media (max-width: 767px) { .frm-fluent-form .ff-btn-submit { width: 100%; } }
/* Validation and success states */
.frm-fluent-form .error, .frm-fluent-form .text-danger, .frm-fluent-form .ff-el-is-error .error-text { color: var(--brand-red) !important; font-size: 14px; }
.frm-fluent-form .ff-el-is-error .ff-el-form-control { border-color: var(--brand-red) !important; }
.ff-message-success, .frm-fluent-form + .ff-message-success, .ff_submitting_msg { background: var(--surface-cloud) !important; border: 1px solid var(--border) !important; border-left: 4px solid var(--brand-gold) !important; border-radius: var(--radius-card) !important; padding: 24px !important; color: var(--text-ink) !important; font-family: var(--font-body); font-size: 17px; line-height: 27px; }
/* Two-up rows on wider screens, matching the previous layout */
@media (min-width: 768px) {
  .scr-ff-wrap .ff-t-cell { padding-right: 12px; }
}

/* ================================================================
   Branded CTA colour system: Warm Gold replaces Signal Red (round 12)
   Signal Red remains reserved for validation, errors and system states.
   Contrast: navy #0B1F5E on gold #F3C969 = 9.75:1 (AAA);
             navy on the darker hover gold #E0B24A = 7.76:1 (AAA).
   ================================================================ */
:root {
  --brand-cta: #F3C969;
  --brand-cta-hover: #E0B24A;
  --brand-cta-text: #0B1F5E;
}
/* Elementor CTA buttons. !important is required because Elementor writes the
   old hex into per-element CSS with higher specificity than a class rule. */
.scr-btn-cta .elementor-button,
.scr-btn-cta .elementor-button:visited {
  background: var(--brand-cta) !important;
  background-color: var(--brand-cta) !important;
  color: var(--brand-cta-text) !important;
  border-color: var(--brand-cta) !important;
}
.scr-btn-cta .elementor-button:hover,
.scr-btn-cta .elementor-button:focus {
  background: var(--brand-cta-hover) !important;
  background-color: var(--brand-cta-hover) !important;
  color: var(--brand-cta-text) !important;
  border-color: var(--brand-cta-hover) !important;
}
.scr-btn-cta .elementor-button:focus-visible { outline: 3px solid var(--brand-navy); outline-offset: 2px; }
/* Mobile / tablet menu CTA */
.scr-mnav-btn-cta, .scr-mnav-btn-red { background: var(--brand-cta) !important; color: var(--brand-cta-text) !important; }
.scr-mnav-btn-cta:hover, .scr-mnav-btn-red:hover,
.scr-mnav-btn-cta:focus-visible, .scr-mnav-btn-red:focus-visible { background: var(--brand-cta-hover) !important; color: var(--brand-cta-text) !important; }
/* Fluent Forms submit buttons */
.frm-fluent-form .ff-btn-submit, .frm-fluent-form .ff-btn.ff-btn-submit {
  background: var(--brand-cta) !important;
  background-color: var(--brand-cta) !important;
  color: var(--brand-cta-text) !important;
  border-color: var(--brand-cta) !important;
}
.frm-fluent-form .ff-btn-submit:hover { background: var(--brand-cta-hover) !important; background-color: var(--brand-cta-hover) !important; color: var(--brand-cta-text) !important; }
.frm-fluent-form .ff-btn-submit:focus-visible { outline: 3px solid var(--brand-navy); outline-offset: 2px; }
/* Legacy Elementor form buttons, kept in sync in case any page still uses one */
.scr-form .elementor-button[type="submit"],
.scr-form .e-form__buttons__wrapper__button-next,
.scr-form .e-form__buttons__wrapper__button-submit { background: var(--brand-cta) !important; color: var(--brand-cta-text) !important; }
.scr-form .elementor-button[type="submit"]:hover,
.scr-form .e-form__buttons__wrapper__button-next:hover,
.scr-form .e-form__buttons__wrapper__button-submit:hover { background: var(--brand-cta-hover) !important; color: var(--brand-cta-text) !important; }
/* Signal Red stays functional only: .elementor-message-danger, .elementor-error,
   .frm-fluent-form .error / .text-danger / .ff-el-is-error and the required asterisk. */

/* Region panels: the wide modifier is a desktop-only treatment. Below 1025px fall back to the
   approved rectangular cards so tablet and mobile keep landscape crops, not portrait ones. */
@media (max-width: 1024px) { .scr-region-row-wide .scr-region-media { aspect-ratio: 3 / 2; } }
@media (max-width: 479px)  { .scr-region-row-wide .scr-region-media { aspect-ratio: 16 / 10; } }

/* ================================================================
   Native Elementor widget shims (2026-09-13 audit)
   The hand-coded HTML blocks were replaced with native Image, Heading and
   Container widgets. Elementor wraps each widget in an extra div, so these
   rules keep the original layout and typography byte-for-byte identical.
   No visual change is intended by anything in this block.
   ================================================================ */
/* 1. Image widgets used as fixed-ratio frames / logo holders: make Elementor's
      wrapper layout-transparent so the existing frame CSS still applies. */
.scr-frame > .elementor-widget-container,
.scr-region-media > .elementor-widget-container,
.scr-story-media > .elementor-widget-container,
.scr-logo-holder > .elementor-widget-container,
.scr-trust-card > .elementor-widget-container { display: contents; }

/* 2. Containers that replaced hand-coded grids keep their grid display
      (Elementor containers default to flex). */
.e-con.scr-region-row { display: grid; }
.e-con.scr-logo-grid { display: grid; }
.e-con.scr-trust-grid { display: grid; }
.e-con.scr-trust { display: flex; flex-direction: column; }
.e-con.scr-region-item { display: flex; flex-direction: column; gap: 0; }
.e-con.scr-story-figure { display: flex; flex-direction: column; gap: 0; }
.e-con.scr-region-row > .e-con, .e-con.scr-logo-grid > .e-con,
.e-con.scr-region-item, .e-con.scr-region-caption { padding: 0; --padding-block-start:0; --padding-block-end:0; --padding-inline-start:0; --padding-inline-end:0; }

/* 3. Heading widgets that replaced inline <span>/<p> labels: the styled class now
      sits on the widget wrapper, so the inner title element inherits from it. */
.scr-eyebrow .elementor-heading-title, .scr-pill .elementor-heading-title,
.scr-hero-note .elementor-heading-title, .scr-link-on-navy .elementor-heading-title,
.scr-region-name .elementor-heading-title, .scr-region-desc .elementor-heading-title,
.scr-trust-label .elementor-heading-title, .scr-story-cap .elementor-heading-title {
  font: inherit; color: inherit; margin: 0; letter-spacing: inherit; text-decoration: inherit;
}
.scr-pill.elementor-widget { align-self: flex-start; }
.scr-link-on-navy.elementor-widget { align-self: flex-start; }
.scr-link-on-navy .elementor-heading-title a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.scr-link-on-navy:hover .elementor-heading-title a { color: var(--brand-gold); }

/* 4. Region caption parts, previously <figcaption><strong>/<span>. */
.scr-region-caption { text-align: center; padding: 14px 6px 0; }
.scr-region-name { font: 600 15px/20px var(--font-display); color: var(--brand-navy); }
.scr-region-desc { font: 400 13px/18px var(--font-body); color: var(--text-slate); margin-top: 2px; }
@media (max-width: 1024px) { .scr-region-caption { text-align: left; padding: 12px 2px 0; } }
@media (max-width: 479px) { .scr-region-name { font-size: 15px; } .scr-region-desc { font-size: 13px; } }
/* 5. About story caption, previously <figcaption>. */
.scr-story-cap { margin-top: 12px; font: 400 14px/20px var(--font-body); color: var(--text-slate); }
/* 6. Elementor's image widget sets img{width:100%}; the logo and frame images size
      from the existing height/object-fit rules instead. */
.scr-logo img, .scr-logo.elementor-widget-image img { width: auto !important; max-width: none !important; }
.scr-frame img, .scr-region-media img, .scr-story-media img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.scr-logo-holder img, .scr-trust-card img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.scr-trust-card img { width: 100%; height: 100%; }
/* 7. The skip link is now its own widget. Take it out of the header's flex flow so it
      contributes no gap or width, exactly as when it shared the logo's HTML block. */
.scr-header .scr-skip-wrap { position: absolute; top: 0; left: 0; width: 0; height: 0; margin: 0; padding: 0; }
/* 8. Kill the inline-image baseline gap so the logo widget is exactly as tall as the logo. */
.scr-logo img { display: block; }
.scr-logo .elementor-widget-container, .scr-logo a { display: block; line-height: 0; }
/* 9. Skip link: hide it by transform rather than a fixed negative top, so its height
      can never let it peek below the header edge. Focus behaviour is unchanged. */
.scr-header .scr-skip:not(:focus) { transform: translateY(-200%); }
/* 10. Elementor's kit styles .elementor-heading-title with equal specificity and later
       source order, so the inherit shim needs !important to keep the original typography
       on the labels that used to be plain <span>/<p> markup. */
.elementor-widget-heading.scr-eyebrow .elementor-heading-title,
.elementor-widget-heading.scr-pill .elementor-heading-title,
.elementor-widget-heading.scr-hero-note .elementor-heading-title,
.elementor-widget-heading.scr-link-on-navy .elementor-heading-title,
.elementor-widget-heading.scr-region-name .elementor-heading-title,
.elementor-widget-heading.scr-region-desc .elementor-heading-title,
.elementor-widget-heading.scr-trust-label .elementor-heading-title,
.elementor-widget-heading.scr-story-cap .elementor-heading-title {
  font: inherit !important;
  color: inherit !important;
  letter-spacing: inherit !important;
  margin: 0 !important;
  text-transform: none !important;
}
/* 11. Containers that replaced plain markup must not inherit the kit's widget gap. */
.e-con.scr-region-caption, .e-con.scr-region-item, .e-con.scr-story-figure,
.e-con.scr-region-row, .e-con.scr-logo-grid, .e-con.scr-trust-grid { gap: 0; }
.e-con.scr-region-row { gap: 0; }
.e-con.scr-logo-grid { gap: 16px; }
.e-con.scr-trust-grid { gap: 24px; }
.e-con.scr-trust { gap: 0; }
@media (max-width: 1024px) { .e-con.scr-region-row { gap: 20px 16px; } .e-con.scr-logo-grid { gap: 12px; } .e-con.scr-trust-grid { gap: 16px; } }
@media (max-width: 599px)  { .e-con.scr-trust-grid { gap: 14px; } }
@media (max-width: 479px)  { .e-con.scr-region-row { gap: 20px; } }
/* 12. Footer fixes after the native-widget conversion.
       The brand logo must stay inside its white holder, the trust label stays left
       aligned, and the legal-row links keep the small footer link styling. */
.scr-footer .scr-footer-logo { display: grid; place-items: center; }
.scr-footer .scr-footer-logo img { height: 76px !important; width: auto !important; max-width: 100% !important; max-height: 100% !important; object-fit: contain; }
.e-con.scr-trust { align-items: flex-start; }
.scr-trust-label { text-align: left; align-self: flex-start; }
.e-con.scr-trust-grid { width: 100%; }
.scr-footer-legal .elementor-widget-heading .elementor-heading-title,
.scr-footer-legal .elementor-widget-heading .elementor-heading-title a {
  font: 400 13px/20px var(--font-body) !important;
  color: rgba(255,255,255,.7) !important;
  text-decoration: none !important;
}
.scr-footer-legal .elementor-widget-heading .elementor-heading-title a:hover { color: #fff !important; }
/* 13. The trust label is itself a flex row with decorative gold rules (::before/::after).
       It must stay full width or the trailing rule collapses, so stretch instead of
       shrink-wrapping it. */
.e-con.scr-trust { align-items: stretch; }
.scr-trust-label { align-self: auto; width: 100%; }
@media (min-width: 768px) { .scr-trust-label { width: 100%; margin-right: 0; } }

/* ---------- NewStar rebrand (round 12) ---------- */
/* Process list and topic chips now live in native Text Editor widgets; keep the original spacing. */
.scr-process-list .scr-process, .scr-chips-wrap .scr-chips { margin: 0; }
.scr-process-list p:empty, .scr-chips-wrap p:empty { display: none; }
/* Footer design credit (Text Editor widget in the legal row). */
.scr-credit p { margin: 0; }
/* Topic chips sit on a cloud section; give them a white pill so they read as chips. */
.scr-chips-wrap .scr-chip { background: #fff; box-shadow: inset 0 0 0 1px var(--border, #D7DEEA); }

/* ---------- Content + imagery pass (round 13) ---------- */
/* Homepage hero: lighter, left-weighted overlay. The new hero photos already darken toward the left,
   so the overlay only needs to support the text column and can fade to nearly nothing on the right. */
.scr-hero-slide::before { background: linear-gradient(90deg, rgba(11,31,94,.78) 0%, rgba(11,31,94,.62) 26%, rgba(11,31,94,.34) 50%, rgba(11,31,94,.10) 72%, rgba(11,31,94,0) 100%) !important; opacity: 1 !important; }
@media (max-width: 1024px) { .scr-hero-slide::before { background: linear-gradient(90deg, rgba(11,31,94,.80) 0%, rgba(11,31,94,.64) 40%, rgba(11,31,94,.34) 75%, rgba(11,31,94,.14) 100%) !important; } }
@media (max-width: 767px) { .scr-hero-slide::before { background: linear-gradient(180deg, rgba(11,31,94,.80) 0%, rgba(11,31,94,.66) 55%, rgba(11,31,94,.46) 100%) !important; } }
.scr-hero .scr-hero-title .elementor-heading-title, .scr-hero .swiper-slide > .e-con p { text-shadow: 0 1px 14px rgba(5,14,45,.35); }
/* Footer brand blurb under the logo. */
.scr-footer-blurb p { margin: 0; color: rgba(255,255,255,.78); font-size: 15px; line-height: 24px; max-width: 34ch; }
/* Plain bullet list in sidebars (no bold lead-ins). */
.scr-plain-list li { position: relative; padding-left: 18px; line-height: 24px; }
.scr-plain-list li::before { content: ""; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; border-radius: 50%; background: var(--brand-gold); }
/* Mobile menu: the market line is short enough to show on phones (still hidden on very short screens). */
@media (max-width: 767px) and (min-height: 701px) { .scr-mnav-est { display: block; } }

/* ---------- Correction pass (round 14) ---------- */
/* Testimonials: client logos in their original colours on a consistent white stage (never cropped). */
.scr-testimonial .elementor-testimonial__image { height: auto !important; margin: 0 0 18px !important; }
.scr-testimonial .elementor-testimonial__image img {
	display: block; width: 232px !important; max-width: 100% !important; height: 104px !important;
	object-fit: contain !important; object-position: center !important;
	background: #fff !important; padding: 12px 18px !important; box-sizing: border-box !important;
	border-radius: 10px !important; box-shadow: inset 0 0 0 1px var(--border, #D7DEEA) !important;
	filter: none !important; mix-blend-mode: normal !important;
}
@media (max-width: 767px) { .scr-testimonial .elementor-testimonial__image img { width: 200px !important; height: 90px !important; } }
/* Carousel guard rails: keep arrows at the approved size and give slides a sane width before Swiper initialises. */
.scr-testimonial .elementor-swiper-button { font-size: 24px !important; width: auto !important; height: auto !important; }
.scr-testimonial .elementor-swiper-button svg, .scr-testimonial .elementor-swiper-button i { width: 24px !important; height: 24px !important; font-size: 24px !important; fill: currentColor; }
.scr-testimonial .swiper:not(.swiper-initialized) .swiper-wrapper { display: flex; gap: 32px; overflow: hidden; }
.scr-testimonial .swiper:not(.swiper-initialized) .swiper-slide { flex: 0 0 calc(50% - 16px); min-width: 0; }
@media (max-width: 767px) { .scr-testimonial .swiper:not(.swiper-initialized) .swiper-slide { flex-basis: 100%; } }
.scr-testimonial .elementor-testimonial__text { overflow-wrap: anywhere; }

/* Footer contact column: space between the service description and the three links. */
.scr-footer-contact li.scr-footer-contact-lead { margin-bottom: 28px; }
@media (max-width: 1024px) { .scr-footer-contact li.scr-footer-contact-lead { margin-bottom: 22px; } }

/* Footer legal row: copyright + privacy link, centred together. */
.e-con.scr-footer-legal { justify-content: center !important; align-items: center !important; flex-wrap: wrap !important; column-gap: 32px !important; row-gap: 8px !important; text-align: center; }
.scr-footer-legal .scr-legal-left, .scr-footer-legal .scr-legal-right { width: auto !important; flex: 0 0 auto !important; text-align: center !important; margin: 0 !important; }
.scr-footer-legal .scr-legal-right .elementor-heading-title { text-align: center !important; }
@media (max-width: 1024px) { .e-con.scr-footer-legal { flex-direction: column !important; } .scr-footer-legal .scr-legal-left, .scr-footer-legal .scr-legal-right { width: 100% !important; } }
/* Client logo PNGs are 16:9 canvases with the artwork in the middle ~50% of the height (measured: every logo
   sits between 24% and 74% of the canvas height and spans ~90% of the width). A 10:3 stage with object-fit: cover
   trims only that empty top/bottom margin, so each logo is fully visible and substantially larger. */
.scr-testimonial .elementor-testimonial__image img { width: 260px !important; height: 86px !important; padding: 6px 10px !important; object-fit: cover !important; }
@media (max-width: 767px) { .scr-testimonial .elementor-testimonial__image img { width: 230px !important; height: 76px !important; } }
.scr-rings .scr-logo-grid .scr-logo-holder { padding: 8px 10px !important; }
.scr-rings .scr-logo-grid .scr-logo-holder img { width: 100% !important; height: auto !important; max-height: none !important; aspect-ratio: 10 / 3; object-fit: cover !important; }
/* Mobile menu panel: size the Site Logo from the white holder's height (a later generic
   ".scr-logo-holder img { height: auto }" rule let viewBox-only SVGs fall back to their natural width). */
.scr-mnav-brand .scr-logo-holder { display: inline-flex !important; align-items: center; justify-content: center; width: auto !important; align-self: flex-start; box-sizing: border-box; }
.scr-mnav-brand .scr-logo-holder img { height: 100% !important; width: auto !important; max-width: none !important; max-height: 100% !important; aspect-ratio: 1334 / 1179; }

/* ---------- Blog: Market Research Insights (round 15) ---------- */
/* Cards (NS Blog Card loop item): consistent 16:9 image, date, title, excerpt; whole card clickable via the title link. */
.scr-blog-card { position: relative; transition: box-shadow .2s var(--ease), transform .2s var(--ease); }
.scr-blog-card:hover { box-shadow: 0 14px 32px rgba(11,31,94,.12); transform: translateY(-2px); }
.scr-blog-card-media, .scr-blog-card-media a { display: block; margin: 0; }
.scr-blog-card-media img { display: block; width: 100% !important; height: auto !important; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 0; }
.scr-blog-card-body { flex: 1 1 auto; }
.scr-blog-date .elementor-heading-title { font: 600 12px/16px var(--font-display) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--text-slate, #667085) !important; margin: 0; }
.scr-blog-card-title .elementor-heading-title a { color: inherit; text-decoration: none; }
.scr-blog-card-title .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.scr-blog-card-title .elementor-heading-title a:focus-visible { outline: none; }
.scr-blog-card:focus-within { outline: 3px solid var(--brand-gold); outline-offset: 2px; }
.scr-blog-excerpt, .scr-blog-excerpt p { margin: 0; color: var(--text-slate, #667085); font-size: 15px; line-height: 24px; }
.scr-blog-excerpt p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.scr-blog-grid .elementor-loop-container { gap: 28px 24px; }
.scr-blog-grid .e-load-more-anchor + .elementor-button-wrapper { margin-top: 36px; }
.scr-blog-grid .elementor-button-wrapper .elementor-button { background: var(--brand-navy); color: #fff; border-radius: var(--radius-button, 8px); font: 600 15px/20px var(--font-display); padding: 14px 28px; }
.scr-blog-grid .elementor-button-wrapper .elementor-button:hover { background: var(--brand-navy-hover); }
.scr-blog-grid .e-load-more-message { color: var(--text-slate); text-align: center; margin-top: 16px; }

/* Single post: readable article column (~860px) with a boxed featured image (~1100px). */
.scr-post-head, .scr-post-content { width: 100%; max-width: 860px; margin-left: auto; margin-right: auto; }
.scr-post-hero { width: 100%; max-width: 1100px; margin: 0 auto; }
.scr-post-hero img { display: block; width: 100% !important; height: auto !important; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-card, 12px); }
.scr-post-title .elementor-heading-title { font: 700 44px/52px var(--font-display); color: var(--brand-navy); margin: 0; }
@media (max-width: 1024px) { .scr-post-title .elementor-heading-title { font-size: 36px; line-height: 44px; } }
@media (max-width: 767px) { .scr-post-title .elementor-heading-title { font-size: 29px; line-height: 37px; } }
.scr-post-content { color: var(--text-ink); font-size: 18px; line-height: 30px; overflow-wrap: break-word; }
.scr-post-content p { margin: 0 0 20px; max-width: none; }
.scr-post-content h2 { font: 600 28px/36px var(--font-display); color: var(--brand-navy); margin: 44px 0 14px; }
.scr-post-content h3 { font: 600 21px/29px var(--font-display); color: var(--brand-navy); margin: 30px 0 10px; }
.scr-post-content ul, .scr-post-content ol { margin: 0 0 22px; padding-left: 24px; }
.scr-post-content li { margin-bottom: 8px; max-width: none; }
.scr-post-content a { color: var(--brand-blue); text-decoration: underline; text-underline-offset: 3px; }
.scr-post-content a:hover { color: var(--brand-navy); }
@media (max-width: 767px) { .scr-post-content { font-size: 17px; line-height: 28px; } .scr-post-content h2 { font-size: 23px; line-height: 31px; margin-top: 34px; } .scr-post-content h3 { font-size: 19px; line-height: 27px; } }
.scr-related-title .elementor-heading-title { font: 600 28px/36px var(--font-display); color: var(--brand-navy); margin: 0; }

/* Footer: Latest Blogs column. */
.scr-footer-blogs .elementor-loop-container { display: flex !important; flex-direction: column; gap: 12px; }
.scr-footer-blog-link .elementor-heading-title, .scr-footer-blog-link .elementor-heading-title a { font: 400 15px/22px var(--font-body) !important; color: rgba(255,255,255,.8) !important; margin: 0; text-decoration: none; }
.scr-footer-blog-link .elementor-heading-title a:hover { color: var(--brand-gold) !important; }
.scr-footer-viewall { margin-top: 8px; }
.scr-footer-viewall .elementor-heading-title, .scr-footer-viewall .elementor-heading-title a { font: 600 14px/20px var(--font-display) !important; color: var(--brand-gold) !important; text-decoration: none; }
.scr-footer-viewall .elementor-heading-title a:hover { color: #fff !important; }
.scr-footer-blurb p + p { margin-top: 12px !important; }
/* Elementor's container rules give child widgets max-width:100%; pin the editorial widths. */
.e-con.scr-post > .e-con-inner > .elementor-widget.scr-post-content, .e-con.scr-post > .elementor-widget.scr-post-content,
.e-con.scr-post > .e-con-inner > .e-con.scr-post-head, .e-con.scr-post > .e-con.scr-post-head { width: 100% !important; max-width: 860px !important; align-self: center; }
.e-con.scr-post > .e-con-inner > .elementor-widget.scr-post-hero, .e-con.scr-post > .elementor-widget.scr-post-hero { width: 100% !important; max-width: 1100px !important; align-self: center; }
/* Footer blog titles and "View All" are links, not column headings: no gold heading bar. */
.scr-footer .scr-footer-blog-link .elementor-heading-title::after, .scr-footer .scr-footer-viewall .elementor-heading-title::after { display: none !important; }
.scr-footer .scr-footer-blog-link .elementor-heading-title, .scr-footer .scr-footer-viewall .elementor-heading-title { padding-bottom: 0 !important; position: static; }
/* Seven nav items (Blogs added): tighten link padding slightly just above the burger breakpoint so the row never wraps. */
@media (min-width: 1200px) and (max-width: 1299px) { .scr-nav .elementor-nav-menu--main .elementor-item { padding-left: 7px !important; padding-right: 7px !important; } }

/* Mobile page heroes: the photo shows in a 270px strip under the text panel. Size the photo to that strip
   (instead of stretching it behind the whole hero) and frame the relevant part. About: top of the New York
   image (sunset skyline + bridge). Facilities: windows, conference room and lounge seating (right side). */
@media (max-width: 767px) {
	.page-id-100 .e-con.scr-page-hero { background-size: auto 400px !important; background-position: 68% calc(100% + 130px) !important; }
	.page-id-112 .e-con.scr-page-hero { background-size: auto 300px !important; background-position: 82% calc(100% + 20px) !important; }
}
/* Privacy Policy mobile hero: frame the lock, shield and magnifier in the 270px strip. */
@media (max-width: 767px) { .page-id-3 .e-con.scr-page-hero { background-size: auto 300px !important; background-position: 58% calc(100% + 15px) !important; } }

/* Footer newsletter signup (Fluent Form #7 -> FluentCRM, double opt-in) */
.scr-footer-newsletter { border-top: 1px solid rgba(243,201,105,.22); padding-top: 18px !important; }
.scr-footer-newsletter .elementor-heading-title { letter-spacing: .06em; }
.scr-footer .scr-footer-news-text p { font-size: 14px; line-height: 21px; margin: 0; }
.scr-footer-news-form .fluentform .ff-el-group { margin-bottom: 10px; }
.scr-footer-news-form .fluentform .ff-el-form-control { background: rgba(255,255,255,.96); border: 1px solid rgba(255,255,255,.35); border-radius: 6px; color: #182033; font-size: 15px; line-height: 22px; padding: 10px 12px; min-height: 44px; }
.scr-footer-news-form .fluentform .ff-el-form-control::placeholder { color: #667085; opacity: 1; }
.scr-footer-news-form .fluentform .ff-el-form-control:focus { border-color: var(--brand-gold); box-shadow: 0 0 0 3px rgba(243,201,105,.35); outline: 0; }
.scr-footer-news-form .fluentform .ff_submit_btn_wrapper { margin-bottom: 0; }
.scr-footer-news-form .fluentform .ff-btn-submit { width: 100%; min-height: 44px; font: 700 14px/20px var(--font-display); letter-spacing: .02em; border-radius: 6px; }
.scr-footer-news-form .fluentform .ff-btn-submit:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.scr-footer-news-form .fluentform .error, .scr-footer-news-form .fluentform .text-danger { color: #FFB4B4; font-size: 13px; margin-top: 4px; }
.scr-footer-news-form .ff-message-success { background: rgba(255,255,255,.08); border: 1px solid rgba(243,201,105,.5); color: #fff; border-radius: 6px; padding: 12px 14px; font-size: 14px; line-height: 21px; box-shadow: none; margin: 0; }
.scr-footer .scr-footer-news-consent p { font-size: 12px; line-height: 18px; color: rgba(255,255,255,.62); margin: 0; }
.scr-footer .scr-footer-news-consent a { color: rgba(255,255,255,.85); text-decoration: underline; }
.scr-footer .scr-footer-social .elementor-social-icon { border-color: rgba(255,255,255,.3); }
