.elementor-kit-7{--e-global-color-primary:#0A1826;--e-global-color-secondary:#0D5B8A;--e-global-color-text:#3D566D;--e-global-color-accent:#45AEEE;--e-global-color-sh_ink:#060A10;--e-global-color-sh_deep:#0D1B26;--e-global-color-sh_mid:#12222F;--e-global-color-sh_pale:#E8F0F7;--e-global-color-sh_white:#FFFFFF;--e-global-color-sh_fgl:#E8EEF6;--e-global-typography-primary-font-family:"Ploni";--e-global-typography-primary-font-size:64px;--e-global-typography-primary-font-weight:800;--e-global-typography-primary-line-height:1.04em;--e-global-typography-primary-letter-spacing:-1.2px;--e-global-typography-secondary-font-family:"Ploni";--e-global-typography-secondary-font-size:30px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.2em;--e-global-typography-secondary-letter-spacing:-0.3px;--e-global-typography-text-font-family:"Ploni";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"Ploni";--e-global-typography-accent-font-size:17px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-line-height:1.5em;--e-global-typography-sh_display-font-family:"Ploni";--e-global-typography-sh_display-font-size:84px;--e-global-typography-sh_display-font-weight:800;--e-global-typography-sh_display-line-height:1.02em;--e-global-typography-sh_display-letter-spacing:-1.6px;--e-global-typography-sh_lede-font-family:"Ploni";--e-global-typography-sh_lede-font-size:21px;--e-global-typography-sh_lede-font-weight:500;--e-global-typography-sh_lede-line-height:1.6em;--e-global-typography-sh_eyebrow-font-family:"Ploni";--e-global-typography-sh_eyebrow-font-size:14px;--e-global-typography-sh_eyebrow-font-weight:600;--e-global-typography-sh_eyebrow-line-height:1.4em;--e-global-typography-sh_eyebrow-letter-spacing:1.1px;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1360px;}.e-con{--container-max-width:1360px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS */@font-face{font-family:Ploni;src:url(https://www.shamrad.co.il/wp-content/uploads/fonts/ploni-ultralight-aaa.woff2) format('woff2');font-weight:100;font-style:normal;font-display:swap}
@font-face{font-family:Ploni;src:url(https://www.shamrad.co.il/wp-content/uploads/fonts/ploni-light-aaa.woff2) format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:Ploni;src:url(https://www.shamrad.co.il/wp-content/uploads/fonts/ploni-regular-aaa.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Ploni;src:url(https://www.shamrad.co.il/wp-content/uploads/fonts/ploni-medium-aaa.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Ploni;src:url(https://www.shamrad.co.il/wp-content/uploads/fonts/ploni-demibold-aaa.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Ploni;src:url(https://www.shamrad.co.il/wp-content/uploads/fonts/ploni-bold-aaa.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Ploni;src:url(https://www.shamrad.co.il/wp-content/uploads/fonts/ploni-ultrabold-aaa.woff2) format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:Ploni;src:url(https://www.shamrad.co.il/wp-content/uploads/fonts/ploni-black-aaa.woff2) format('woff2');font-weight:900;font-style:normal;font-display:swap}

/* ═══════════ TOKENS, lifted from the static build ═══════════ */
:root{
  --ink:#060a10; --steel-900:#0a111a; --steel-850:#0e1722; --steel-800:#121e2b;
  --fg:#e8eef6; --fg-mid:#b3c1d1; --fg-muted:#8798ab;
  --hairline:rgba(120,172,216,.17); --hairline-2:rgba(120,172,216,.32);
  --brand:#0d5b8a; --brand-hi:#0f6fa8;
  --signal:#45aeee; --signal-hi:#6cc2f5; --signal-dim:rgba(69,174,238,.14);
  --r:3px; --shell:1360px; --gutter:clamp(20px,5vw,64px); --ease:cubic-bezier(.16,1,.3,1);
}
/* Four depths of one blue. Each re-points the shared tokens rather than
   restyling components, so hairlines, muted copy and buttons follow on. */
.sh-tone-deep { background:var(--ink); }
.sh-tone-mid  { background:#0f2334;
  --hairline:rgba(129,183,228,.22); --hairline-2:rgba(129,183,228,.38); --fg-muted:#93a9bf; }
.sh-tone-pale, .sh-tone-white{
  --fg:#0a1826; --fg-mid:#3d566d; --fg-muted:#566e84;
  --signal:var(--brand);                /* #45aeee is unreadable on daylight */
  --signal-hi:#0a4a72; --signal-dim:rgba(13,91,138,.10);
  --hairline:rgba(13,91,138,.20); --hairline-2:rgba(13,91,138,.34);
  color:var(--fg);
}
.sh-tone-pale { background:#eaf1f8; }
.sh-tone-white{ background:#ffffff; }
.sh-tone-deep, .sh-tone-mid{ color:var(--fg); }
body{ font-family:Ploni, system-ui, sans-serif; }

/* ═══════════ TYPE ═══════════
   Elementor emits `.elementor-widget-heading .elementor-heading-title` for the
   kit's global typography, at the same specificity as a plain class and later
   in the cascade. Every rule here pins the widget class too, so it wins. */
.elementor-widget-heading.sh-display .elementor-heading-title{
  font-weight:800; font-size:clamp(2.3rem,5.1vw,4.5rem); line-height:1.02;
  letter-spacing:-.025em; text-wrap:balance; max-width:13em;
}
.elementor-widget-heading.sh-h2 .elementor-heading-title{
  font-weight:700; font-size:clamp(1.9rem,3.9vw,3.15rem); line-height:1.06;
  letter-spacing:-.02em; text-wrap:balance;
}
/* Reference: .head .h2 { max-width:13.5em } .head p { max-width:46ch; margin-top:20px } */
.sh-head .elementor-widget-heading.sh-h2 .elementor-heading-title{ max-width:13.5em; }
.sh-head .elementor-widget-text-editor p{ max-width:46ch !important; }
.sh-head .elementor-widget-text-editor{ margin-top:2px; } /* 18px gap + 2 = the reference's 20px */
.elementor-widget-heading.sh-h3 .elementor-heading-title{
  font-weight:600; font-size:clamp(1.2rem,1.7vw,1.5rem); line-height:1.25; letter-spacing:-.01em;
}
.elementor-widget-heading.sh-eyebrow .elementor-heading-title{
  font-weight:600; font-size:12.5px; letter-spacing:.09em; text-transform:uppercase;
  color:var(--signal) !important; display:block;
}
.sh-tone-deep .elementor-widget-heading .elementor-heading-title,
.sh-tone-mid  .elementor-widget-heading .elementor-heading-title{ color:#e8eef6 !important; }
.sh-tone-pale .elementor-widget-heading .elementor-heading-title,
.sh-tone-white .elementor-widget-heading .elementor-heading-title{ color:#0a1826 !important; }
.sh-tone-deep .elementor-widget-heading.sh-eyebrow .elementor-heading-title,
.sh-tone-mid  .elementor-widget-heading.sh-eyebrow .elementor-heading-title,
.sh-tone-pale .elementor-widget-heading.sh-eyebrow .elementor-heading-title,
.sh-tone-white .elementor-widget-heading.sh-eyebrow .elementor-heading-title{ color:var(--signal); }

.elementor-widget-text-editor.sh-lede p, .sh-lede p,
.elementor-widget-text-editor.sh-body p, .sh-body p{
  font-weight:300; font-size:clamp(1.05rem,1.45vw,1.28rem); line-height:1.6;
  color:var(--fg-mid); max-width:56ch; margin:0 0 1.1em;
}
.sh-lede p:last-child, .sh-body p:last-child{ margin-bottom:0; }
.elementor-widget-text-editor.sh-muted p, .sh-muted p{
  font-size:17px !important; font-weight:400 !important; line-height:1.65 !important;
  color:var(--fg-muted) !important; max-width:62ch;
}
.elementor-widget-text-editor.sh-scene p, .sh-scene p{
  font-size:clamp(21px,2.5vw,32px); line-height:1.5; font-weight:500;
  letter-spacing:-.01em; max-width:24em; color:var(--fg); margin:0 0 .7em;
}
.sh-scene p:last-child{ margin-bottom:0; }
/* Leading a body band rather than owning one: the story scale, not the display. */
.elementor-widget-text-editor.sh-scene--lead p, .sh-scene--lead p{
  font-size:clamp(1.15rem,1.85vw,1.6rem) !important; line-height:1.55 !important;
  font-weight:300 !important; color:var(--fg-mid) !important; max-width:68ch;
}
.elementor-widget-text-editor.sh-kicker p, .sh-kicker p{
  padding-top:clamp(28px,3vw,40px); border-top:1px solid var(--hairline);
  font-size:clamp(19px,2vw,25px); line-height:1.55; font-weight:500;
  max-width:26em; color:var(--fg); margin:0;
}
.sh-clients-label p{ margin:0; font-size:13px; letter-spacing:.12em; font-weight:600;
                     color:var(--fg-muted); text-transform:uppercase; }

/* ═══════════ BUTTONS ═══════════ */
.elementor-button{
  padding:14px 26px !important; border-radius:var(--r) !important;
  border:1px solid transparent; font-weight:600 !important; font-size:16px !important;
  white-space:nowrap; transition:background .25s var(--ease), border-color .25s var(--ease);
}
.sh-btn-signal .elementor-button{ background:var(--brand-hi) !important; color:#fff !important; }
.sh-btn-signal .elementor-button:hover{ background:#1584c4 !important; }
.sh-btn-ghost .elementor-button{ background:rgba(10,17,26,.55) !important;
  border-color:var(--hairline-2) !important; color:var(--fg) !important; }
.sh-tone-pale .sh-btn-ghost .elementor-button,
.sh-tone-white .sh-btn-ghost .elementor-button{ background:transparent !important; }
.sh-btn-ghost .elementor-button:hover{ border-color:var(--brand) !important; color:var(--brand) !important; }
.sh-btn-sm .elementor-button{ padding:11px 22px !important; font-size:15px !important; }

/* ═══════════ BANDS AND GRIDS ═══════════ */
.sh-band{ padding-block:clamp(88px,11vw,168px) !important; }
/* The page hero, the client strip and the chapters band each carry their own
   rhythm in the reference build; only the generic bands use 88-168. */
.sh-hero-band{ padding-block:clamp(72px,9vw,132px) clamp(64px,8vw,116px) !important; }
.sh-clients-band{ padding:56px 0 !important; border-block:1px solid var(--hairline) !important; overflow:hidden; }
.sh-clients-band > .e-con-inner{ gap:0 !important; }
.sh-clients-label{ width:100%; max-width:calc(var(--shell) - 2 * var(--gutter)); margin-inline:auto; padding:0; box-sizing:border-box; }
.sh-clients-label p{
  font-size:12px !important; font-weight:600 !important; letter-spacing:.085em;
  text-transform:uppercase; color:var(--fg-muted) !important; margin:0 0 26px !important; max-width:none; line-height:1.65;
}
/* The strip itself is full-bleed, the label keeps the shell. */
.sh-clients-band > .e-con-inner{ padding-block:0 !important; }
.sh-clients-band .elementor-widget-shamrad-marquee{ width:100vw !important; max-width:none !important; --container-widget-width:100vw;
  margin-inline:calc(50% - 50vw) !important; }
.sh-clients-band .sh-mq__track{ line-height:0; }
.sh-clients-band .sh-mq__track li{ display:flex; }
.sh-clients-band .sh-mq__track{ gap:76px; padding-inline-start:76px; }
.sh-clients-band .sh-mq img{ height:54px !important; max-width:180px; opacity:.78; }
.sh-clients-band .sh-mq__row{ -webkit-mask-image:linear-gradient(to left,transparent,#000 9%,#000 91%,transparent);
  mask-image:linear-gradient(to left,transparent,#000 9%,#000 91%,transparent); }
@media (max-width:760px){
  .sh-clients-band .sh-mq img{ height:56px !important; max-width:210px; }
}
.sh-sync-band{ padding-block:clamp(84px,9vw,140px) clamp(60px,7vw,100px) !important; }
/* Reference .shell: max-width 1360 INCLUDING a clamp(20px,5vw,64px) gutter, so the
   content column is 1232 at 1470. Elementor's boxed 1360 plus the band's own
   20px padding gave 1340 and put every page 54px wider than the reference. */
.sh-band{ padding-inline:var(--gutter) !important; }
.sh-band > .e-con-inner{ max-width:calc(var(--shell) - 2 * var(--gutter)); padding:0 !important; }
/* Elementor's 10px default on nested containers has no counterpart in the reference. */
.sh-band .e-con > .e-con-inner, .sh-band .e-con.e-flex{ padding:0; }
.sh-band .elementor-widget-text-editor p:last-child{ margin-bottom:0; }
.sh-head{ margin-bottom:clamp(44px,5vw,72px); }
.sh-grid{ flex-wrap:wrap !important; }
.sh-grid{ gap:clamp(36px,5vw,88px) !important; }
.sh-gcol--aside{ flex:0 0 calc(40% - clamp(18px,2.5vw,44px)) !important; width:auto !important; }
.sh-gcol--main { flex:1 1 calc(60% - clamp(18px,2.5vw,44px)) !important; width:auto !important; }
.sh-values{ flex-wrap:wrap !important; gap:2px !important; }
/* Reference .values__grid li: padding clamp(28,3vw,44) clamp(20,2.4vw,38), hairline on the
   inline-start edge; .value__icon 52px radius 12 signal on .10 tint, mb 22; h3 mb 10; p 15.5/1.55 muted. */
.sh-values > .sh-value.e-con{ flex:1 1 0 !important; width:auto !important; min-width:0;
  padding:clamp(28px,3vw,44px) clamp(20px,2.4vw,38px) !important;
  border-inline-start:1px solid var(--hairline); gap:0 !important; }
.sh-values > .sh-value.e-con:first-child{ border-inline-start:0; }
.sh-value .sh-value__iconw{ margin-bottom:22px; }
.sh-value__icon{ display:grid; place-items:center; width:52px; height:52px; border-radius:12px;
  background:rgba(69,174,238,.10); border:1px solid rgba(69,174,238,.22); color:var(--signal); }
.sh-value .elementor-widget-heading{ margin-bottom:10px; }
.sh-value .elementor-widget-text-editor p{ margin:0; font-size:15.5px !important; line-height:1.55 !important; color:var(--fg-muted) !important; }

/* ═══════════ HERO BAND ═══════════ */
.sh-hero-band{ position:relative; overflow:hidden; }
.sh-hero-pic{ position:absolute !important; inset:0; width:100%; height:100%; margin:0 !important; }
.sh-hero-pic .elementor-widget-container,.sh-hero-pic figure,.sh-hero-pic img{ width:100%; height:100%; margin:0; }
.sh-hero-pic img{ object-fit:cover; }
/* The photo is context, not content: it never wins against the headline. */
.sh-hero-band::after{ content:''; position:absolute; inset:0;
  background:linear-gradient(to left, rgba(6,10,16,.62), rgba(6,10,16,.88)); }
.sh-hero-copy{ position:relative; z-index:2; }
/* The 3D hero's act headline follows the same display scale. */
.sh-hero__title{ font-size:clamp(2.3rem,5.1vw,4.5rem) !important; line-height:1.02 !important;
                 letter-spacing:-.025em !important; max-width:13em; }
/* The act wrapper carried max-width:20em, which resolves against ITS font size of
   16px and not the headline's 72px. That capped the whole column at 320px and
   broke the headline over three lines. The measure belongs on each text element,
   in its own em. */
.sh-hero__act{ max-width:none !important; }
.sh-hero__body{ max-width:34em; }
.sh-hero__stat{ max-width:30em; }
/* Shell width alone leaves the copy hugging the edge on a laptop; the static
   build insets it by a gutter as well. */
.sh-hero__acts, .sh-hero__cta, .sh-hero__rot{ padding-inline:clamp(20px,5vw,64px); box-sizing:border-box; }
/* The footage runs bright wherever the video wall fills the frame, and the lede
   is deliberately a muted grey. A scrim on the copy side keeps it legible on
   every frame of the loop without dimming the whole picture. */
.sh-hero__stage::before{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(to left, rgba(6,10,16,.86) 0%, rgba(6,10,16,.55) 38%,
                                       rgba(6,10,16,.12) 66%, transparent 100%);
}
.sh-hero__acts, .sh-hero__cta, .sh-hero__rot{ position:relative; z-index:2; }
.sh-hero__body{ font-weight:300; color:#b3c1d1; }

/* ═══════════ HERO, AUTOPLAY MODE ═══════════ */
/* With the scrub off there is no 400vh scroll region to travel, so the section
   is one viewport tall and the stage stops being sticky. */
.sh-hero[data-scrub="0"]{ height:auto !important; }
/* The height comes from the widget's own control, so it is editable from the
   panel. The fallback only applies if the control was never touched. */
.sh-hero[data-scrub="0"] .sh-hero__stage{
  position:relative; height:var(--sh-hero-h, 82svh); min-height:420px;
}
.sh-hero[data-scrub="0"] .sh-hero__src{ opacity:1; }
/* Stack the copy and the buttons as one centred block. The stage was a two-row
   grid that pinned the buttons to the bottom edge, which left a large gap under
   the headline on tall screens. */
.sh-hero[data-scrub="0"] .sh-hero__stage{
  display:flex; flex-direction:column; justify-content:center; gap:0;
}
.sh-hero[data-scrub="0"] .sh-hero__acts{ align-self:auto; }
.sh-hero[data-scrub="0"] .sh-hero__cta{ margin:30px auto 0; }
@media (max-width:860px){
  .sh-hero[data-scrub="0"] .sh-hero__stage{ min-height:380px; }
}

/* ═══════════ SYNC CHAPTERS ═══════════ */
/* A sticky element can only travel its container height minus its own height.
   At 4/5 of a 651px column the picture was 814px tall, taller than the viewport
   minus the offset, so it unpinned and slid away before the last chapter. Cap it
   to the viewport and the whole run stays covered. */
/* Proportions taken from the static build at 1440x900: picture 558px pinned at
   210px, chapters 666px. The picture has to be SHORTER than a chapter, otherwise
   the sticky runs out of travel before the last one and drifts away from it. */
@media (min-width:901px){
  .sh-sync__grid{ align-items:start; }
  .sh-sync .sh-sync__stage{ position:sticky; top:23vh; height:62vh; min-height:380px; aspect-ratio:auto; }
  .sh-sync .sh-sync__ch{ min-height:74vh; display:flex; flex-direction:column; justify-content:center; }
}

/* ═══════════ HEADER ═══════════ */
.sh-header > .e-con-inner{ flex-wrap:nowrap; gap:40px; max-width:calc(var(--shell) - 2 * var(--gutter)) !important; margin-inline:auto; padding:0 !important; }
.sh-header > .e-con-inner > .e-con{ padding:0 !important; }
.sh-h-actions{ gap:14px !important; }
.sh-h-brand  { flex:0 0 auto !important; width:auto !important; }
.sh-h-nav    { flex:1 1 auto !important; width:auto !important; justify-content:center; }
.sh-h-actions{ flex:0 0 auto !important; width:auto !important; }
.sh-header .elementor-nav-menu{ flex-wrap:nowrap; }
.sh-header .elementor-nav-menu--main .elementor-item{ white-space:nowrap; }
.sh-tel{ color:#E8EEF6; text-decoration:none; font-weight:500; letter-spacing:.02em;
         white-space:nowrap; transition:color .25s var(--ease); }
.sh-tel:hover{ color:var(--signal); }
.sh-header .elementor-widget-text-editor p{ margin:0; }
/* Reference: the bar is fixed and transparent over the hero with a 148px scrim,
   and becomes a blurred 82% dark bar once the page has moved 12px (.is-stuck,
   set by site.js). Inner pages pad main by the bar height instead. */
.elementor-location-header{ position:fixed; top:0; inset-inline:0; z-index:120;
  transition:background-color .3s var(--ease), border-color .3s var(--ease); }
.elementor-location-header .sh-header{ background:transparent !important; border-bottom:1px solid transparent;
  transition:background-color .3s var(--ease), border-color .3s var(--ease), backdrop-filter .3s var(--ease); }
.elementor-location-header::before{ content:''; position:absolute; inset-block-start:0; inset-inline:0;
  height:148px; pointer-events:none; z-index:-1;
  background:linear-gradient(to bottom, rgba(6,10,16,.78) 0%, rgba(6,10,16,.42) 46%, transparent 100%);
  opacity:1; transition:opacity .3s var(--ease); }
.elementor-location-header.is-stuck::before{ opacity:0; }
.elementor-location-header.is-stuck .sh-header{ background:rgba(6,10,16,.82) !important;
  backdrop-filter:blur(14px) saturate(140%); -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom-color:var(--hairline); }
body:not(.home) .elementor-location-header .sh-header{ background:rgba(6,10,16,.94) !important;
  backdrop-filter:blur(14px) saturate(140%); -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom-color:var(--hairline); }
body:not(.home) .elementor-location-header::before{ display:none; }
body:not(.home) .site-main, body:not(.home) main,
body:not(.home) .elementor-location-single{ padding-top:78px; }
/* When the theme wraps the single template in main as well, pad only once. */
body:not(.home) main .elementor-location-single{ padding-top:0; }
/* The reference paints the page canvas ink (#060a10), so the 78px the fixed bar
   reserves above the hero reads as part of the bar. Hello's white body turned
   that strip into a visible white line under the header on every inner page. */
html, body, body .site-main, body main, .elementor-location-single, [data-elementor-type="wp-page"], [data-elementor-type="single"]{ background-color:#060a10; }
.elementor-location-header .sh-header > .e-con-inner{ position:static; z-index:auto; }
.elementor-location-header .sh-header{ z-index:1; }

/* ═══════════ FOOTER ═══════════ */
/* Reference: .footer{ padding-block:clamp(56px,6vw,88px) 32px; border-top:1px solid hairline }
   .footer__cols{ grid 1.4fr repeat(3,1fr); gap:40px }, the fifth column wraps under
   the first. h4 12/600/.085em muted, mb 18. li padding-block 6px, a 15.5 fg-mid.
   about p 15px muted, 40ch, mt 18. bottom: mt clamp(44,5vw,68), pt 24, 13.5px. */
.sh-footer, .elementor-location-footer > .e-con{
  padding:clamp(56px,6vw,88px) var(--gutter) 32px !important; border-top:1px solid var(--hairline); }
.sh-footer > .e-con-inner, .elementor-location-footer > .e-con > .e-con-inner{ padding:0 !important; gap:0 !important;
  max-width:calc(var(--shell) - 2 * var(--gutter)) !important; margin-inline:auto; }
.sh-fgrid{ display:grid !important; grid-template-columns:1.4fr repeat(3,1fr); gap:40px !important; padding:0 !important; }
.sh-fgrid > .sh-fcol{ width:auto !important; min-width:0; padding:0 !important; gap:0 !important; flex:none !important; }
.sh-fcol .elementor-widget-heading .elementor-heading-title{
  font-size:12px !important; font-weight:600 !important; letter-spacing:.085em;
  text-transform:uppercase; color:var(--fg-muted) !important; margin-bottom:18px; line-height:1.65;
}
.sh-fcol .elementor-widget-heading{ margin-bottom:0; }
.sh-footer{ color:#E8EEF6; }
.sh-fcol--about .elementor-widget-image{ width:auto; }
.sh-fcol--about img{ height:40px !important; width:auto !important; }
.sh-fabout, .sh-fcol--about .elementor-widget-text-editor p{
  color:var(--fg-muted) !important; font-size:15px !important; line-height:1.65; max-width:40ch; margin:18px 0 0 !important; }
.sh-flinks{ list-style:none; margin:0; padding:0; display:block; }
.sh-flinks li{ padding-block:6px; line-height:28px; height:40px; box-sizing:border-box; }
.sh-flinks li a{ display:inline-block; line-height:28px; }
.sh-fcol .elementor-widget-text-editor p{ margin:0; }
.sh-flinks a{ color:var(--fg-mid); text-decoration:none; font-size:15.5px; transition:color .25s var(--ease); }
.sh-flinks a:hover{ color:var(--signal); }
.sh-flegal-wrap{ border-top:1px solid var(--hairline) !important; padding:24px 0 0 !important; margin-top:clamp(44px,5vw,68px) !important; }
.sh-flegal-wrap .elementor-widget-text-editor, .sh-flegal-wrap .elementor-widget-text-editor *, .sh-flegal-wrap .sh-flegal, .sh-flegal-wrap .sh-flegal *{
  font-size:13.5px !important; color:var(--fg-muted) !important; line-height:1.65; }
.sh-flegal{ display:flex; flex-wrap:wrap; gap:8px 28px; align-items:center; }
.sh-flegal-wrap .elementor-widget-text-editor p{ margin:0; }
.sh-flegal a{ color:var(--fg-muted); text-decoration:none; }
.sh-flegal a:hover{ color:var(--signal); }
.sh-flegal__grp{ margin-inline-start:auto; }
@media (max-width:860px){
  .sh-fgrid{ grid-template-columns:1fr 1fr; }
  .sh-flegal__grp{ margin-inline-start:0; }
}
@media (max-width:520px){
  .sh-fgrid{ grid-template-columns:1fr; }
  .sh-flinks li{ padding-block:0; }
}

/* ═══════════ FORM ═══════════ */
/* Reference .form: grid gap 20; .form__row 2 cols gap 20; label 14.5/500 fg-mid, gap 8;
   inputs 13px 15px / 16px / hairline-2 border / radius 3; textarea min 128;
   .check 13.5px/1.55 muted, 20px box; .form__foot button + 13.5px note. */
.sh-form .elementor-form-fields-wrapper{ row-gap:20px !important; column-gap:0 !important; margin:0 -10px !important; width:calc(100% + 20px) !important; }
.sh-form .elementor-field-group{ padding:0 10px !important; margin:0 !important; }
/* .field is a grid with an empty .err line after the control: 8px the control never fills. */
.sh-form .elementor-field-group.elementor-field-type-text, .sh-form .elementor-field-group.elementor-field-type-email,
.sh-form .elementor-field-group.elementor-field-type-tel, .sh-form .elementor-field-group.elementor-field-type-select{ padding-bottom:8px !important; }
/* Reference: the two consents sit 14px apart inside one field, and the foot is 34px below. */
.sh-form .elementor-field-group.elementor-field-type-textarea{ padding-bottom:4px !important; }
.sh-form .elementor-field-type-acceptance + .elementor-field-type-acceptance{ margin-top:-6px !important; }
.sh-form .elementor-field-type-submit, .sh-form .elementor-field-type-html{ margin-top:14px !important; }
.sh-form .elementor-field-subgroup, .sh-form .elementor-field-option{ margin:0 !important; padding:0 !important; }
.sh-form .elementor-field-group.elementor-col-50{ flex:0 0 50% !important; max-width:50%; }
.sh-form .elementor-field-group.elementor-col-100{ flex:0 0 100% !important; max-width:100%; }
.sh-form .elementor-field-group > label{ font-size:14.5px !important; font-weight:500 !important; letter-spacing:0;
  line-height:1.65; color:var(--fg-mid) !important; margin-bottom:8px !important; padding:0; }
.sh-form input.elementor-field, .sh-form textarea.elementor-field, .sh-form select.elementor-field{
  background:#fff !important; border:1px solid var(--hairline-2) !important;
  border-radius:var(--r) !important; padding:13px 15px !important; font-size:16px !important; line-height:1.65 !important;
  min-height:0 !important; font-family:Ploni, system-ui, sans-serif !important; color:#0a1826 !important;
}
.sh-form textarea.elementor-field{ min-height:128px !important; }
.sh-form .elementor-field:focus{ border-color:var(--brand) !important;
  box-shadow:0 0 0 3px rgba(13,91,138,.12) !important; outline:none; }
.sh-form .elementor-select-wrapper{ background:none !important; border:0 !important; padding:0 !important; }
.sh-form .elementor-select-wrapper select{ width:100%; padding-inline-start:40px !important; color:#0a1826; }
.sh-form .elementor-select-wrapper select:invalid{ color:#6b8296; }
.sh-form .select-caret-down-wrapper{ inset-inline-start:auto !important; inset-inline-end:16px !important; left:16px !important; right:auto !important; }
.sh-form .elementor-select-wrapper select.elementor-field{ padding-inline-start:40px !important; padding-inline-end:15px !important;
  background:#fff !important; color:#0a1826 !important; appearance:none; -webkit-appearance:none; }
.sh-form .elementor-field-type-acceptance .elementor-field-subgroup{ display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; }
.sh-form .elementor-field-type-acceptance label{ font-size:14.5px !important; line-height:1.55 !important;
  color:var(--fg-muted) !important; font-weight:400 !important; margin:0 !important; }
.sh-form .elementor-field-type-acceptance a{ color:var(--brand); text-decoration:underline; text-underline-offset:2px; }
.sh-form .elementor-field-type-acceptance input[type=checkbox]{ width:20px; height:20px; margin:1px 0 0; flex:none;
  border:1px solid var(--hairline-2); border-radius:3px; background:#fff; accent-color:var(--brand-hi); }
.sh-form .elementor-field-type-acceptance .elementor-field-option{ display:flex; gap:12px; align-items:start; }
.sh-form .elementor-field-type-submit{ justify-content:flex-start; align-items:center; order:99; }
.sh-form .elementor-field-type-html{ align-self:center; order:100; }
/* Elementor prints the html field before the submit; the reference reads button, then note. */
.sh-form .elementor-field-type-html{ order:100; } .sh-form .elementor-field-type-submit{ order:99; }
.sh-form .elementor-field-type-submit{ justify-content:flex-start !important; }
.sh-form .elementor-field-type-html{ display:flex; justify-content:flex-start; }
.sh-form .elementor-field-type-submit .elementor-button{
  width:auto; background:var(--brand-hi) !important; color:#fff !important; border-radius:var(--r) !important;
  border:1px solid transparent !important; gap:10px;
  padding:14px 26px !important; font-size:16px !important; font-weight:600 !important; line-height:1.65 !important; }
.sh-form .elementor-field-type-submit .elementor-button:hover{ background:#1481c0 !important; }
.sh-form-note{ color:var(--fg-muted); font-size:13.5px; max-width:34ch; margin:0; line-height:1.65; }
.sh-form .elementor-mark-required .elementor-field-label::after{ color:#d8674f; }

/* ═══════════ SERVICE PILLARS ═══════════ */
.sh-pillars{ flex-wrap:wrap !important; }
.sh-pillar{
  flex:1 1 200px !important; width:auto !important;
  padding:clamp(26px,2.6vw,38px) clamp(18px,2vw,30px);
  border-inline-start:1px solid var(--hairline);
}
.sh-pillar:first-child{ border-inline-start:0; }
.sh-pillar .elementor-widget-text-editor p{ margin:0; }
.sh-pnum .elementor-heading-title{
  font-size:13px; font-weight:600; letter-spacing:.14em; color:var(--signal) !important;
}
/* The one line that carries the promise, so it reads louder than body copy
   without becoming a heading. */
.sh-emph p{
  font-size:clamp(19px,1.9vw,24px); line-height:1.5; font-weight:600;
  color:var(--fg); max-width:26em; margin:0;
}
.sh-quote p{
  font-size:clamp(22px,2.6vw,34px); line-height:1.45; font-weight:500;
  letter-spacing:-.015em; color:var(--fg); max-width:22em; margin:0;
  padding-inline-start:clamp(18px,2vw,28px); border-inline-start:2px solid var(--signal);
}

/* ═══════════ STORY + PROOF ═══════════ */
.sh-story p{
  font-weight:300 !important; font-size:clamp(1.15rem,1.85vw,1.6rem) !important;
  line-height:1.55 !important; color:var(--fg-mid) !important; max-width:68ch;
  text-wrap:pretty; margin:0 0 26px;
}
.sh-story p:last-child{ margin-bottom:0; }
.sh-story b{ color:var(--fg); font-weight:600; }

.sh-national{ border-block:1px solid var(--hairline); padding:0 !important; }
.sh-national > .e-con-inner{ max-width:none; }
/* Reference grid: .92fr 1.08fr, and the copy's outer edge lines up with the shell. */
.sh-nfig{ flex:0 0 46% !important; }
.sh-ngrid{ flex-wrap:nowrap !important; align-items:stretch !important; gap:0 !important; }
.sh-nfig{ flex:0 0 46% !important; width:auto !important; min-height:520px; position:relative;
          padding:0 !important; }
.sh-nfig .elementor-widget-image,.sh-nfig figure,.sh-nfig img{
  position:absolute; inset:0; width:100%; height:100%; margin:0; }
.sh-nfig img{ object-fit:cover; }
.sh-ncopy{ flex:1 1 54% !important; width:auto !important;
           padding:clamp(72px,8vw,132px) var(--gutter) !important;
           padding-inline-end:max(var(--gutter), calc((100vw - var(--shell)) / 2 + var(--gutter))) !important;
           display:flex; flex-direction:column; justify-content:center; gap:0 !important; }
.sh-ncopy .elementor-widget-heading + .elementor-widget-text-editor{ margin-top:22px; }
.sh-proof{ margin-top:clamp(36px,4vw,56px); list-style:none; padding:0; }
.sh-proof li{ display:grid; grid-template-columns:minmax(120px,auto) 1fr; gap:24px;
              align-items:baseline; padding-block:22px; border-top:1px solid var(--hairline); }
.sh-proof b{ font-size:clamp(1.5rem,2.4vw,2.1rem); font-weight:800; letter-spacing:-.03em;
             color:var(--signal); line-height:1; }
.sh-proof span{ color:var(--fg-mid); font-size:15.5px; line-height:1.5; }
@media (max-width:900px){
  .sh-ngrid{ flex-wrap:wrap !important; }
  .sh-nfig{ flex:1 1 100% !important; min-height:300px; }
  .sh-ncopy{ flex:1 1 100% !important; }
  .sh-proof li{ grid-template-columns:1fr; gap:6px; }
}

/* ═══════════ STATEMENT, LONG COPY ═══════════ */
/* The display scale suits a short claim. A full paragraph at 52px becomes a
   wall, and the scroll fill leaves most of it unreadable at any moment, so long
   copy drops to the reading scale and starts far closer to its final colour. */
.sh-fill--body .sh-fill__text{
  font-size:clamp(1.15rem,1.85vw,1.6rem) !important;
  line-height:1.55 !important; font-weight:300 !important;
  letter-spacing:0 !important; max-width:68ch; text-wrap:pretty;
}
.sh-fill--body{ --sh-fill-dim:#3d566d; --sh-fill-lit:#3d566d; }
.sh-fill .sh-fill__w{ color:#3d566d !important; transition:none; }
.sh-fill__hl .sh-fill__w{ color:#007cc1 !important; }

/* ═══════════ ROTATOR IN HEADLINE ═══════════ */
/* The rotating noun is part of the sentence, so it carries the headline's own
   weight and only the colour marks it out. */
.sh-hero__title .sh-rotator__word{
  color:#45aeee !important; font-weight:inherit !important; letter-spacing:inherit;
}
.sh-hero__title .sh-rotator{ margin-inline:0; }
.sh-hero .sh-hero__title{ text-wrap:balance; }
/* The widget stylesheet parks words at translateY(115%); GSAP absorbs that into
   its own y and the incoming word lands a line low. Let the script own motion. */
.sh-rotator__word:not(.is-on){ transform:none; }

/* ═══════════ DYNAMIC TAG IN A HEADING ═══════════ */
/* The field tag runs its value through wpautop, so a heading bound to one gets a
   <p> inside it. Make that paragraph transparent rather than a second block. */
.elementor-widget-heading .elementor-heading-title p{
  margin:0; font:inherit; color:inherit; letter-spacing:inherit; max-width:inherit;
}

/* ═══════════ PEERS ═══════════ */
.sh-peers-row p{ margin:0; }
.sh-peers-row a{
  display:inline-flex; align-items:center; gap:10px; min-height:44px;
  padding:12px 18px; border:1px solid var(--hairline); border-radius:var(--r);
  font-size:15px; color:var(--fg); text-decoration:none;
  transition:border-color .25s var(--ease), color .25s var(--ease);
}
.sh-peers-row a:hover{ border-color:var(--signal); color:var(--signal); }
.sh-peers-row .sh-peers-list{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;
                              list-style:none; padding:0; }

/* ═══════════ SYNC COPY ═══════════ */
.sh-sync__ch p{ color:var(--fg-mid) !important; }

/* ═══════════ ORBIT ═══════════ */
.sh-fill__stage{
  position:absolute; inset-block:0; inset-inline-end:0; inset-inline-start:auto;
  width:46%; display:grid; place-items:center; pointer-events:none; z-index:0;
}
.sh-fill .sh-fill__mark{ position:static !important; width:clamp(190px,20vw,330px) !important; max-width:none; height:auto;
                translate:none !important; }
.sh-orbit{ position:absolute; width:clamp(280px,30vw,470px); aspect-ratio:1; }
.sh-orbit__dot{
  position:absolute; width:46px; height:46px; border-radius:12px;
  display:grid; place-items:center; color:#007cc1; opacity:0;
  background:rgba(255,255,255,.72); border:1px solid rgba(0,124,193,.22);
  box-shadow:0 6px 20px rgba(10,17,26,.10);
}
.sh-orbit__dot svg, .sh-orbit__dot i{ width:22px; height:22px; font-size:20px; }
.sh-fill, .elementor-widget-shamrad-statement{ position:static !important; }
.sh-tone-pale.sh-band:has(.sh-fill){ position:relative; overflow:hidden; }
.sh-fill__stage{ inset-inline-end:0; inset-inline-start:auto; width:46%; }
@media (max-width:900px){
  .sh-fill__stage{ inset-inline:0 !important; width:100% !important; opacity:.5; }
  .sh-fill .sh-fill__mark{ width:min(58vw,300px) !important; }
  .sh-fill__inner{ max-width:none; }
}
@media (max-width:600px){
  .sh-fill .sh-fill__mark{ width:min(64vw,280px) !important; }
  .sh-fill .sh-fill__stage{ opacity:1; }
}
.sh-fill__text, .sh-fill .sh-btn, .sh-fill .elementor-button{ position:relative; z-index:1; }
@media (max-width:900px){
  .sh-fill__stage{ inset-inline:0; width:100%; opacity:.5; }
  .sh-fill__mark{ width:min(58vw,300px); }
  .sh-orbit{ width:min(76vw,400px); }
  .sh-orbit__dot{ width:38px; height:38px; border-radius:10px; }
}
@media (max-width:600px){
  .sh-orbit{ display:none; }
  .sh-fill__mark{ width:min(64vw,280px); opacity:.16; }
}

/* ═══════════ RESPONSIVE ═══════════ */
@media (max-width:1024px){
  /* One line: logo, CTA, burger. At 390px the three columns wanted 465px in a
     350px shell, which pushed the whole document sideways in RTL. */
  /* Elementor's inner wrapper carries its own 10px block padding, and the nav
     column stretches to 60px around a 36px burger. Both were padding the bar out
     to 96px against the static build's 78px. */
  .sh-header > .e-con-inner{ flex-wrap:nowrap !important; align-items:center;
                             gap:8px !important; padding-block:0 !important; }
  .sh-header > .e-con-inner > .e-con{ padding:0 !important; align-self:center; }
  /* The nav column stretched to 60px around a 36px burger because the closed
     dropdown still occupies the flow. Take the column out of the height
     calculation instead of repositioning the panel, which broke it opening. */
  .sh-h-nav{ align-self:center; position:static; }
  .sh-h-nav .elementor-widget-nav-menu > .elementor-widget-container{ display:flex; align-items:center; }
  .sh-h-nav .elementor-menu-toggle{ margin:0 !important; }
  /* The dropdown sat in the flow at the width of its column: 145px wide, and it
     stretched the bar to 96px. Anchor it to the header so it spans the full
     width below the bar and stops contributing height. */
  .sh-header{ position:relative; }
  /* Every wrapper between the header and the panel has to stay static, or one of
     them becomes the containing block and the panel inherits the burger's 36px. */
  .sh-h-nav .elementor-widget-nav-menu,
  .sh-h-nav .elementor-widget-nav-menu > .elementor-widget-container,
  .sh-h-nav .elementor-menu-toggle{ position:static !important; }
  .sh-h-nav nav.elementor-nav-menu--dropdown.elementor-nav-menu__container{
    position:absolute; inset-inline:0; top:100%; width:100%;
    background:#060a10; border-top:1px solid var(--hairline);
    box-shadow:0 24px 48px rgba(0,0,0,.45);
  }
  .sh-h-nav .elementor-nav-menu--dropdown a{ padding-inline:24px !important; }
  .sh-h-brand  { order:1; flex:0 1 auto !important; min-width:0; }
  .sh-h-actions{ order:2; flex:0 0 auto !important; margin-inline-start:auto; }
  .sh-h-nav    { order:3; flex:0 0 auto !important; width:auto !important; }
  .sh-h-nav .elementor-widget-nav-menu,
  .sh-h-nav .elementor-nav-menu__toggle{ width:auto !important; }
  .sh-h-actions .elementor-widget-text-editor{ display:none; }
  .sh-h-actions .elementor-button{ padding:11px 22px !important; font-size:15px !important; }
}
/* Tablet: the nav is a burger but there is plenty of room, so the lockup and the
   bar height stay at the desktop proportions the static build uses. */
/* Reference at <=1040: logo + burger only, same 78px bar and 162px lockup at every width. */
@media (max-width:1024px){
  .sh-h-brand .elementor-widget-theme-site-logo, .sh-h-brand img{ width:162px !important; height:auto; }
  .sh-header{ padding:0 32px !important; min-height:78px; }
  .sh-header > .e-con-inner{ gap:20px !important; }
  .sh-h-actions{ display:none !important; }
  /* Reference toggle: 46x46, three 1.6px strokes inset 13px at 15/21.2/27.4px,
     the third stopping 21px from the inline end. Drawn as gradients so the
     Elementor toggle matches without a custom widget. */
  .sh-h-nav .elementor-menu-toggle{ width:46px; height:46px; border:1px solid var(--hairline-2) !important;
    border-radius:var(--r); background:rgba(10,17,26,.4) !important; position:relative;
    background-image:
      linear-gradient(var(--fg),var(--fg)),
      linear-gradient(var(--fg),var(--fg)),
      linear-gradient(var(--fg),var(--fg)) !important;
    background-repeat:no-repeat !important;
    background-size:18px 1.6px, 18px 1.6px, 10px 1.6px !important;
    background-position:13px 15px, 13px 21.2px, 13px 27.4px !important;
    transition:border-color .2s var(--ease); }
  .sh-h-nav .elementor-menu-toggle:hover{ border-color:var(--signal) !important; }
  .sh-h-nav .elementor-menu-toggle .e-font-icon-svg, .sh-h-nav .elementor-menu-toggle i{ display:none !important; }
  .sh-h-nav .elementor-menu-toggle.elementor-active{
    background-image:none !important; }
  .sh-h-nav .elementor-menu-toggle.elementor-active::before,
  .sh-h-nav .elementor-menu-toggle.elementor-active::after{
    content:''; position:absolute; inset-inline:13px; top:21.2px; height:1.6px; background:var(--fg); border-radius:2px; }
  .sh-h-nav .elementor-menu-toggle.elementor-active::before{ transform:rotate(45deg); }
  .sh-h-nav .elementor-menu-toggle.elementor-active::after{ transform:rotate(-45deg); }
}
@media (max-width:600px){
  .sh-header{ padding:0 20px !important; }
}
@media (max-width:900px){
  .sh-gcol--aside{ flex:1 1 100% !important; }
  .sh-grid{ gap:20px !important; }
  /* The phone pan track is width:max-content by design; without a clip it
     widens the document. clip, not hidden, so sticky still works inside. */
  .elementor-widget-shamrad-sync, .sh-sync[data-pan="1"]{ overflow-x:clip; }
}
@media (max-width:1024px){
  .sh-pillar{ flex:1 1 45% !important; border-inline-start:0;
              border-block-start:1px solid var(--hairline); }
  .sh-pillar:nth-child(-n+2){ border-block-start:0; }
}
@media (max-width:600px){
  .sh-pillar{ flex:1 1 100% !important; }
  .sh-pillar:nth-child(2){ border-block-start:1px solid var(--hairline); }
}
@media (max-width:860px){
  .sh-values > .sh-value.e-con{ flex:1 1 100% !important; border-inline-start:0;
             border-block-start:1px solid var(--hairline); }
  .sh-values > .sh-value.e-con:first-child{ border-block-start:0; }
}
@media (max-width:768px){
  .sh-flegal__grp{ margin-inline-start:0; }
}
@media (max-width:380px){
  .sh-h-brand .elementor-widget-theme-site-logo, .sh-h-brand img{ width:96px !important; }
  .sh-h-actions .elementor-button{ padding:10px 16px !important; }
}

/* ═══════════ HOME PARITY (measured against the reference build) ═══════════ */
/* Every value below was read off the reference build's stylesheet or measured
   in its DOM at 1470x956. Nothing is an impression. */

/* ── Statement band ───────────────────────────────────────────────────────── */
.sh-fill__inner{ position:relative; z-index:1; display:block; font-size:17px; max-width:66ch; margin-inline-end:auto; }
.sh-fill .sh-fill__text{
  font-weight:300 !important; font-size:clamp(1.15rem,1.85vw,1.6rem) !important;
  line-height:1.55 !important; letter-spacing:0 !important; max-width:none; text-wrap:pretty; margin:0;
}
.sh-fill__hl .sh-fill__w{ color:#007cc1 !important; font-weight:700; }
.sh-fill .sh-btn{ margin-top:34px !important; }
.sh-fill .sh-arrow, .sh-sync__link .sh-arrow{ display:inline-block; margin-inline-start:0;
  transition:transform .2s var(--ease); }
.sh-fill .sh-btn:hover .sh-arrow{ transform:translateX(-4px); }
.sh-fill__stage{ opacity:1; }
.sh-fill__mark{ opacity:.5; }
/* The stage is a grid cell 46% wide and the orbit is centred in it, so the
   chips surround the mark instead of sitting on top of it. */
.sh-fill__stage .sh-orbit{ inset:auto; }
@media (min-width:901px){
  .sh-fill__inner{ max-width:66ch; }
}

/* ── Sync chapters ────────────────────────────────────────────────────────── */
.sh-sync__head h2{
  /* A quoted statement at section-title scale: clearly larger than the chapter
     titles beneath it (deck 19.8). */
  font-size:clamp(2rem,3.4vw,2.9rem) !important; line-height:1.18 !important;
  letter-spacing:-.02em !important; font-weight:700 !important; max-width:none !important;
  margin:0 !important; color:var(--fg) !important;
}
.sh-sync .sh-sync__ch{ border-top:0 !important; padding-top:0; padding-block:24px; }
.sh-sync .sh-sync__num{ font-size:12.5px !important; font-weight:600; letter-spacing:.09em;
  text-transform:uppercase; color:var(--signal) !important; display:block; }
.sh-sync .sh-sync__ch h3{
  font-weight:700 !important; font-size:clamp(1.7rem,2.9vw,2.6rem) !important;
  line-height:1.1 !important; letter-spacing:-.02em !important;
  margin:16px 0 18px !important; max-width:15em; color:var(--fg) !important;
}
.sh-sync .sh-sync__ch p{ font-size:1.05rem !important; line-height:1.6 !important;
  color:var(--fg-mid) !important; max-width:44ch; }
.sh-sync .sh-sync__link{ display:inline-flex; align-items:center; gap:8px; margin-top:20px;
  font-size:15px; font-weight:600; color:var(--brand) !important; text-decoration:none; }
.sh-sync .sh-sync__link:hover{ text-decoration:none; }
.sh-sync .sh-sync__link:hover .sh-arrow{ transform:translateX(-5px); }
.sh-sync__logos{ display:flex; flex-wrap:wrap; align-items:center; gap:16px 26px;
  margin:30px 0 0; padding:0; list-style:none; line-height:0; }
.sh-sync__logos li{ display:flex; margin:0; padding:0; }
.sh-sync__logos img{ height:44px; width:auto; max-width:140px; object-fit:contain;
  filter:invert(1) brightness(.28); opacity:.78; }
/* The client's own colour marks on a light ground: no inversion, full opacity. */
.sh-sync__logos--color img{ filter:none; opacity:1; }
@media (min-width:901px){
  .sh-sync .sh-sync__grid{ grid-template-columns:1fr 1.06fr !important;
    gap:clamp(48px,6vw,108px) !important; align-items:start; }
  .sh-sync .sh-sync__stage{ position:sticky; top:calc((100dvh - min(62vh,560px)) / 2 + 39px);
    height:min(62vh,560px); min-height:0; aspect-ratio:auto; border-radius:14px; overflow:hidden;
    background:#dce7f2; box-shadow:0 30px 70px rgba(10,34,58,.18); }
  /* Hello's img{height:auto} beat the widget's height:100%, so the photo sat at
     its own ratio and left the stage's pale ground showing underneath. */
  .sh-sync .sh-sync__pic{ position:absolute !important; inset:0 !important; width:100% !important; height:100% !important;
    max-width:none !important; object-fit:cover; border-radius:0;
    transform:scale(1.04); transition:opacity .6s var(--ease), transform 1.1s var(--ease); }
  .sh-sync .sh-sync__pic.is-on{ transform:none; }
  .sh-sync .sh-sync__ch{ min-height:74vh; opacity:.38; }
  .sh-sync .sh-sync__ch.is-on{ opacity:1; }
  .sh-sync .sh-sync__ch:last-child{ min-height:60vh; }
  .sh-sync .sh-sync__track{ gap:0; }
}


/* ── Partners band ────────────────────────────────────────────────────────── */
.sh-band .sh-vendors.e-con{ border-block:1px solid var(--hairline); padding:52px 0 !important; }
.sh-vendors .sh-mq img{ height:58px !important; }
.sh-vendors .sh-mq__track{ line-height:0; }
.sh-vendors .sh-mq__track li{ display:flex; }
.sh-vendors .sh-mq{ gap:66px !important; } /* reference: grid gap 40 + margin 26 between the rows */
.sh-vendors .sh-mq{ gap:26px; }
.sh-vendors .sh-mq__track{ gap:72px; padding-inline-start:72px; }
.sh-vendors .sh-mq img{ height:58px !important; max-width:240px; opacity:.8; }
.sh-vendors .sh-mq__row--fwd .sh-mq__track{ animation-duration:52s; }
.sh-vendors .sh-mq__row--rev .sh-mq__track{ animation-duration:60s; }
@media (max-width:760px){
  .sh-band .sh-vendors.e-con{ padding:34px 0 !important; }
  .sh-vendors .sh-mq{ gap:26px !important; }
  .sh-vendors .sh-mq__track{ gap:46px; padding-inline-start:46px; }
  .sh-vendors .sh-mq img{ height:42px !important; max-width:175px; }
}
@media (max-width:600px){
  .sh-vendors .sh-mq{ gap:18px; }
  .sh-vendors .sh-mq__track{ gap:40px; padding-inline-start:40px; }
  .sh-vendors .sh-mq img{ height:42px !important; max-width:168px; }
}

/* ── Contact band ─────────────────────────────────────────────────────────── */
/* Reference .contact__cols: grid .85fr 1fr, gap clamp(40,6vw,88), areas
   "intro form" / "details form", align-items:start. The form spans both rows,
   so the details row lands halfway down it. */
.sh-contact-cols{ display:grid !important; grid-template-columns:.85fr 1fr; grid-template-areas:"intro form" "details form";
  gap:clamp(40px,6vw,88px) !important; align-items:start; padding:0 !important; }
.sh-contact-cols > .sh-contact-intro{ grid-area:intro; width:auto !important; padding:0 !important; }
.sh-contact-cols > .sh-contact-details{ grid-area:details; width:auto !important; padding:0 !important; margin-top:72px; }
.sh-contact-cols > .sh-contact-form{ grid-area:form; width:auto !important; min-width:0; padding:0 !important; }
.sh-contact-intro .sh-lede{ margin-top:0; }
.sh-contact-intro .sh-lede p{ margin-top:20px !important; }
.sh-contact-form .elementor-widget-form{ width:100%; }
.sh-cfacts{ margin:0 !important; }
.sh-cfacts .elementor-icon-list-items{ list-style:none; padding:0; margin:0; }
.sh-cfacts .elementor-icon-list-item{ padding:16px 0 !important; margin:0 !important; border-top:1px solid var(--hairline); }
.sh-cfacts .elementor-icon-list-item:after{ display:none !important; }
.sh-cfacts .elementor-icon-list-icon{ display:none !important; }
.sh-cfacts .elementor-icon-list-item > a{ display:block; width:100%; padding:0 !important; text-decoration:none; color:inherit; }
.sh-cfacts .elementor-icon-list-text{
  display:grid !important; grid-template-columns:96px 1fr; gap:16px; align-items:baseline;
  width:100%; flex:1 1 100%; padding:0 !important; }
.sh-cfacts .k{ font-weight:600; font-size:12px; line-height:1.65; letter-spacing:.085em; text-transform:uppercase; color:var(--fg-muted); }
.sh-cfacts .v{ font-size:16.5px; line-height:1.65; color:var(--fg); }
.sh-cfacts a:hover .v{ color:var(--brand); }
.sh-contact-details .elementor-widget-button{ margin-top:30px; }
.sh-contact-details .elementor-button{ border:1px solid var(--hairline-2) !important; color:var(--fg) !important; background:transparent !important;
  padding:14px 26px !important; border-radius:var(--r) !important; font-size:16px !important; font-weight:600 !important; line-height:1.65 !important; }
.sh-contact-details .elementor-button:hover{ border-color:var(--brand) !important; color:var(--brand) !important; }
.sh-contact-details .elementor-button-content-wrapper, .sh-form .elementor-field-type-submit .elementor-button-content-wrapper{ gap:10px; align-items:center; }
.sh-contact-details .elementor-button-text::after, .sh-form .elementor-field-type-submit .elementor-button-text::after{ content:'\2190'; display:inline-block; margin-inline-start:10px; transition:transform .2s var(--ease); }
.sh-contact-details .elementor-button:hover .elementor-button-text::after, .sh-form .elementor-field-type-submit .elementor-button:hover .elementor-button-text::after{ transform:translateX(-4px); }
@media (max-width:900px){
  .sh-contact-cols{ grid-template-columns:1fr; grid-template-areas:"intro" "form" "details"; gap:34px !important; }
  .sh-contact-cols > .sh-contact-details{ margin-top:4px; }
  /* Reference .form__row{ grid-template-columns:1fr } at <=900: one field per line. */
  .sh-form .elementor-field-group.elementor-col-50{ flex:0 0 100% !important; max-width:100%; }
  .sh-form .elementor-field-type-html{ order:100; }
  .sh-contact-intro .sh-h2 .elementor-heading-title{ font-size:clamp(2rem,8.4vw,2.7rem) !important; line-height:1.05 !important; }
  .sh-contact-intro .sh-lede p{ font-size:1.05rem !important; margin-top:14px !important; }
}

/* ═══════════ HERO 1:1 (reference .hero__stage / .act / .btn) ═══════════ */
/* Stage: one centred block of act + buttons, exactly where the reference puts it. */
.sh-hero .sh-hero__stage{ grid-template-rows:auto auto !important; align-content:center; align-items:start; min-height:560px; }
.sh-hero .sh-hero__acts{ align-self:auto; width:100%; max-width:var(--shell); padding-inline:var(--gutter); }
.sh-hero .sh-hero__cta{ width:100%; max-width:var(--shell); padding-inline:var(--gutter); margin:34px auto 0 !important; gap:12px; }
.sh-hero .sh-hero__act{ width:min(100%,1240px); max-width:100% !important; }
.sh-hero .sh-hero__title{ font-size:clamp(2.3rem,5.1vw,4.5rem) !important; font-weight:800 !important;
  line-height:1.02 !important; letter-spacing:-.025em !important; max-width:13em; }
.sh-hero .sh-hero__body{ margin-top:22px !important; margin-bottom:0 !important; opacity:1 !important;
  font-weight:300 !important; font-size:clamp(1.05rem,1.45vw,1.28rem) !important; line-height:1.6 !important;
  color:var(--fg-mid) !important; max-width:46ch !important; }
.sh-hero .sh-hero__eyebrow{ font-size:12.5px !important; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
  margin-bottom:20px !important; }
/* Buttons: the reference .btn */
.sh-hero .sh-btn, .sh-fill .sh-btn{ display:inline-flex; align-items:center; gap:10px; padding:14px 26px !important;
  border-radius:var(--r) !important; border:1px solid transparent; font-weight:600; font-size:16px; line-height:1.65;
  white-space:nowrap; transform:none !important; }
.sh-hero .sh-btn--signal{ background:var(--brand-hi) !important; color:#fff !important; }
.sh-hero .sh-btn--signal:hover{ background:#1481c0 !important; }
.sh-hero .sh-btn--ghost{ border-color:var(--hairline-2) !important; color:var(--fg) !important; background:rgba(10,17,26,.55) !important; }
.sh-hero .sh-btn--ghost:hover{ border-color:var(--signal) !important; color:var(--signal) !important; }
.sh-fill .sh-btn--ghost{ border-color:var(--hairline-2) !important; color:var(--fg) !important; background:transparent !important; }
.sh-fill .sh-btn--ghost:hover{ border-color:var(--brand) !important; color:var(--brand) !important; }
/* The signal button carries an arrow in the reference. */
.sh-hero .sh-btn--signal::after{ content:'\2190'; display:inline-block; transition:transform .2s var(--ease); }
.sh-hero .sh-btn--signal:hover::after{ transform:translateX(-4px); }
@media (max-width:860px){
  .sh-hero .sh-hero__stage{ padding-block:0 !important; min-height:100svh; }
  .sh-hero .sh-hero__cta{ flex-direction:row; align-items:center; }
  .sh-hero .sh-btn{ width:auto; }
}
@media (max-width:640px){
  .sh-hero .sh-hero__cta{ flex-direction:column; align-items:stretch; gap:10px; width:100%; }
  .sh-hero .sh-btn{ width:100%; justify-content:center; padding-block:16px !important; }
}
@media (min-width:1700px){
  .sh-hero .sh-hero__body{ font-size:1.36rem !important; }
}

/* ═══════════ TOUCH TARGETS (reference, <=900) ═══════════ */
@media (max-width:900px){
  .sh-flinks a, .sh-sync .sh-sync__link{ display:inline-flex; align-items:center; min-height:44px; }
  .sh-flinks li{ padding-block:0; height:auto; }
  .sh-cfacts .elementor-icon-list-item > a .v{ display:inline-flex; align-items:center; min-height:44px; }
}

/* ═══════════ MEGA MENU (reference .mega) ═══════════ */
/* Reference: .nav__has-mega{position:static} so the panel spans the header;
   .mega{ top:100%; inset-inline:0; bg rgba(9,17,26,.97) blur 18; border-block hairline;
   shadow 0 30px 70px rgba(0,0,0,.5) } .mega__inner{ max-width:shell; padding:26px gutter 24px }
   .mega__title 12/600/.085em caps muted, mb16 pb12 border-bottom hairline;
   .mega__list grid minmax(250px,1fr) gap 4; .mega__item 12px 14px radius 3, gap 14;
   .mega__icon 38px radius 9 signal on rgba(69,174,238,.10) border .22; .mega__name 16/600 fg. */
.sh-h-nav, .sh-h-nav .elementor-widget-n-menu, .sh-h-nav .elementor-widget-n-menu > .elementor-widget-container,
.sh-h-nav .e-n-menu, .sh-h-nav .e-n-menu-wrapper, .sh-h-nav .e-n-menu-heading, .sh-h-nav .e-n-menu-item{ position:static !important; }
.elementor-location-header, .elementor-location-header .sh-header{ position:fixed; }
.elementor-location-header .sh-header{ position:relative; }
.sh-mega .e-n-menu-heading{ gap:34px !important; }
.sh-mega .e-n-menu-title{ padding:0 !important; gap:7px; }
.sh-mega .e-n-menu-title-container{ padding:6px 0 !important; font-size:20px; font-weight:500; line-height:1.65; color:rgba(232,238,246,.78); position:relative; }
.sh-mega .e-n-menu-title-text{ line-height:1.65; }
.sh-mega .e-n-menu-title-container::after{ content:''; position:absolute; inset-block-end:0; inset-inline:0; height:1.5px; background:var(--signal);
  transform:scaleX(0); transform-origin:right; transition:transform .25s var(--ease); }
.sh-mega .e-n-menu-title:hover .e-n-menu-title-container, .sh-mega .e-n-menu-title.e-active .e-n-menu-title-container,
.sh-mega .e-n-menu-item:hover .e-n-menu-title-container{ color:#fff; }
.sh-mega .e-n-menu-item:hover .e-n-menu-title-container::after, .sh-mega .e-n-menu-title.e-active .e-n-menu-title-container::after{ transform:scaleX(1); }
.sh-mega .e-n-menu-dropdown-icon{ padding:0 !important; margin-inline-start:9px; color:rgba(232,238,246,.7); background:none !important; }
.sh-mega .e-n-menu-dropdown-icon svg{ display:none; }
/* The reference chevron: a 13px 2px-stroke outline, drawn here so the FA glyph is not used. */
.sh-mega .e-n-menu-dropdown-icon{ display:inline-block !important; flex:none; width:13px !important; min-width:13px; height:13px !important; opacity:.7; transition:transform .25s var(--ease);
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8eef6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") center/13px no-repeat !important; }
.sh-mega .e-n-menu-dropdown-icon[aria-expanded="true"]{ transform:rotate(180deg); }
.sh-mega .e-n-menu-content{ top:78px !important; }
/* The panel */
.sh-mega .e-n-menu-content{ position:absolute !important; inset-inline:0 !important; top:100% !important; width:100% !important; max-width:none !important;
  background:rgba(9,17,26,.97) !important; backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-block:1px solid var(--hairline); box-shadow:0 30px 70px rgba(0,0,0,.5); padding:0 !important; margin:0 !important; }
.sh-mega .e-n-menu-content > .e-con, .sh-mega .sh-mega__inner{ background:transparent !important; border:0 !important; box-shadow:none !important; }
.sh-mega .e-n-menu-title-container, .sh-mega .e-n-menu-title-text{ color:rgba(232,238,246,.78) !important; }
.sh-mega .e-n-menu-item:hover .e-n-menu-title-text, .sh-mega .e-n-menu-title.e-active .e-n-menu-title-text{ color:#fff !important; }
.sh-mega .e-n-menu-dropdown-icon, .sh-mega .e-n-menu-dropdown-icon svg{ color:rgba(232,238,246,.7) !important; fill:rgba(232,238,246,.7) !important; }
.sh-mega .sh-mega__inner{ width:100%; max-width:var(--shell) !important; margin-inline:auto; padding:26px var(--gutter) 24px !important; gap:0 !important; }
.sh-mega .sh-mega__title .elementor-heading-title{ font-size:12px !important; font-weight:600 !important; letter-spacing:.085em; text-transform:uppercase;
  color:var(--fg-muted) !important; margin:0 0 16px; padding-bottom:12px; border-bottom:1px solid var(--hairline); line-height:1.65; }
.sh-mega .sh-mega__title{ margin:0; width:100%; }
.sh-mega .sh-mega__list{ display:grid !important; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:4px !important; padding:0 !important; width:100%; }
.sh-mega .sh-mega__list > .elementor-widget{ width:auto; }
.sh-mega__item{ display:flex; align-items:center; gap:14px; padding:12px 14px; border-radius:var(--r); border:1px solid transparent;
  text-decoration:none; color:var(--fg); transition:background-color .2s var(--ease), border-color .2s var(--ease); }
.sh-mega__item:hover{ background:rgba(69,174,238,.08); border-color:var(--hairline); }
.sh-mega__icon{ flex:none; width:38px; height:38px; border-radius:9px; display:grid; place-items:center;
  background:rgba(69,174,238,.10); border:1px solid rgba(69,174,238,.22); color:var(--signal); transition:background-color .2s var(--ease); }
.sh-mega__item:hover .sh-mega__icon{ background:rgba(69,174,238,.18); }
.sh-mega__name{ font-size:16px; font-weight:600; color:var(--fg); display:flex; align-items:center; line-height:1.4; }
@keyframes sh-mega-in{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }
.sh-mega .e-n-menu-content.e-active, .sh-mega .e-n-menu-content:not([hidden]){ animation:sh-mega-in .24s var(--ease) both; }
/* Toggle (burger) for the nested menu */
.sh-h-nav .e-n-menu-toggle{ width:46px; height:46px; border:1px solid var(--hairline-2) !important; border-radius:var(--r); background:rgba(10,17,26,.4) !important;
  position:relative; padding:0 !important; color:var(--fg); }
.sh-h-nav .e-n-menu-toggle svg{ display:none !important; }
.sh-h-nav .e-n-menu-toggle::before, .sh-h-nav .e-n-menu-toggle::after, .sh-h-nav .e-n-menu-toggle .e-n-menu-toggle-icon.e-open{ content:''; position:absolute; inset-inline:13px; height:1.6px; background:var(--fg); border-radius:2px; }
.sh-h-nav .e-n-menu-toggle::before{ top:15px; }
.sh-h-nav .e-n-menu-toggle .e-n-menu-toggle-icon.e-open{ top:21.2px; display:block !important; width:auto; }
.sh-h-nav .e-n-menu-toggle::after{ top:27.4px; inset-inline-end:21px; }
.sh-h-nav .e-n-menu-toggle[aria-expanded="true"]::before{ top:21.2px; transform:rotate(45deg); }
.sh-h-nav .e-n-menu-toggle[aria-expanded="true"] .e-n-menu-toggle-icon.e-open{ opacity:0; }
.sh-h-nav .e-n-menu-toggle[aria-expanded="true"]::after{ top:21.2px; inset-inline-end:13px; transform:rotate(-45deg); }
.sh-h-nav .e-n-menu-toggle .e-n-menu-toggle-icon.e-close{ display:none !important; }
}

/* ═══════════ SYNC, REFERENCE MOBILE (<=900: pinned pan) ═══════════ */
/* Desktop head inside the widget: reference .sync__head{ mb clamp(48,6vw,84) } eyebrow mb 18 */
.sh-sync__head{ margin-bottom:clamp(48px,6vw,84px); }
.sh-sync__eyebrow{ display:block; font-size:12.5px; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
  color:var(--brand); margin-bottom:18px; }
.sh-sync__head h2{ margin-bottom:0 !important; }
.sh-sync__inline{ display:none; margin:0; }
.sh-sync__dots{ display:none; list-style:none; margin:0; padding:0; }
@media (max-width:900px){
  .sh-sync-band{ padding:0 !important; }
  .sh-sync-band > .e-con-inner{ max-width:none !important; padding:0 !important; }
  .elementor-widget-shamrad-sync{ width:100% !important; }
  .sh-sync{ padding-block:0; height:100dvh; overflow:hidden; display:flex; flex-direction:column; }
  .sh-sync__head{ flex:none; margin-bottom:0; padding:calc(78px + 16px) var(--gutter) 10px; }
  .sh-sync__head h2{ font-size:clamp(1.4rem,5.8vw,1.8rem) !important; max-width:none !important; line-height:1.06 !important; }
  .sh-sync__eyebrow{ line-height:1.65; }
  .sh-sync .sh-sync__num{ line-height:1.65; }
  .sh-sync__eyebrow{ margin-bottom:12px; }
  .sh-sync__grid{ flex:1 1 auto; min-height:0; display:block !important; gap:0 !important; overflow:hidden; }
  .sh-sync[data-pan] .sh-sync__track, .sh-sync__track{ display:flex !important; height:100%; min-height:0; will-change:transform; gap:0 !important; width:auto; }
  .sh-sync .sh-sync__stage{ display:none !important; }
  .sh-sync[data-pan] .sh-sync__ch, .sh-sync .sh-sync__ch{ flex:0 0 100vw !important; width:100vw !important; min-height:0; height:100%; padding:0 var(--gutter) 18px !important;
    display:flex; flex-direction:column; justify-content:center; gap:0; opacity:1 !important; overflow:hidden; border:0; }
  .sh-sync__inline{ display:block; margin:0 0 14px; border-radius:12px; overflow:hidden; aspect-ratio:16/10; max-height:30vh;
    background:#dce7f2; flex:0 1 auto; min-height:0; }
  .sh-sync__inline img{ width:100%; height:100%; object-fit:cover; display:block; }
  .sh-sync .sh-sync__ch h3{ font-size:clamp(1.35rem,5.6vw,1.75rem) !important; margin:8px 0 8px !important; max-width:none; }
  .sh-sync .sh-sync__ch p{ font-size:.98rem !important; line-height:1.5 !important; max-width:none;
    display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
  .sh-sync .sh-sync__link{ margin-top:12px; }
  .sh-sync__logos{ margin-top:14px; padding-top:12px; flex-wrap:nowrap; overflow:hidden; gap:16px; }
  .sh-sync__logos li:nth-child(n+5){ display:none; }
  .sh-sync__logos img{ height:24px; max-width:70px; }
  /* reading order: picture, label, headline, copy, clients, link */
  .sh-sync .sh-sync__ch > *{ order:2; }
  .sh-sync .sh-sync__ch .sh-sync__inline{ order:1; }
  .sh-sync .sh-sync__ch .sh-sync__logos{ order:3; }
  .sh-sync .sh-sync__ch .sh-sync__link{ order:4; margin-top:16px; }
  /* progress rail */
  .sh-sync__dots{ display:flex; gap:7px; flex:none; padding:0 var(--gutter) 16px; order:-1; }
  .sh-sync__dots li{ width:22px; height:3px; border-radius:2px; background:rgba(13,91,138,.22);
    transition:background-color .3s var(--ease), width .3s var(--ease); }
  .sh-sync__dots li.is-on{ background:var(--brand); width:34px; }
  .sh-sync .sh-sync__link{ display:inline-flex; align-items:center; min-height:44px; }
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){
  .sh-sync{ height:auto; }
  .sh-sync__grid{ overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
  .sh-sync__track{ height:auto; }
  .sh-sync .sh-sync__ch{ scroll-snap-align:center; height:auto; padding-block:24px; }
}

/* ═══════════ DOMAIN IMAGERY ═══════════ */
/* Approach: the picture sits under the heading and rides along the long copy. */
.sh-approach-aside{ position:sticky; top:calc(78px + 40px); align-self:flex-start; }
.sh-approach-pic{ margin-top:28px; }
.sh-approach-pic img{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:14px;
  box-shadow:0 30px 70px rgba(10,34,58,.18); display:block; }
/* A page whose brief has no closing statement (transport) drops the band rather
   than showing a photo with nothing to say next to it. */
.sh-kicker-band:not(:has(.sh-kicker-copy > *)){ display:none !important; }
/* Kicker: statement on the right, picture on the left, same shell. */
.sh-kicker-grid{ display:grid !important; grid-template-columns:1.1fr .9fr; gap:clamp(40px,6vw,88px) !important; align-items:center; padding:0 !important; }
.sh-kicker-grid > .e-con{ width:auto !important; padding:0 !important; }
.sh-kicker-pic img{ width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:14px; display:block;
  box-shadow:0 30px 70px rgba(0,0,0,.35); }
@media (max-width:900px){
  .sh-approach-aside{ position:static; }
  .sh-approach-pic img{ aspect-ratio:16/10; }
  .sh-kicker-grid{ grid-template-columns:1fr; gap:28px !important; }
}

/* Logged-in editors: keep the fixed bar below the WordPress admin bar. */
body.admin-bar .elementor-location-header{ top:32px; }
body.admin-bar:not(.home) main{ padding-top:calc(78px + 32px); }
@media (max-width:782px){
  body.admin-bar .elementor-location-header{ top:46px; }
  body.admin-bar:not(.home) main{ padding-top:calc(78px + 46px); }
}

/* ═══════════ ABOUT 27.7 ═══════════ */
/* Four pillars: 2x2 on desktop so each keeps a readable measure, 1 column on phone. */
.sh-values--4{ display:grid !important; grid-template-columns:repeat(2,1fr); gap:2px !important; }
.sh-values--4 > .sh-value.e-con{ border-inline-start:0 !important; border-top:1px solid var(--hairline); }
.sh-values--4 > .sh-value.e-con:nth-child(-n+2){ border-top:0; }
.sh-values--4 > .sh-value.e-con:nth-child(2n){ border-inline-start:1px solid var(--hairline) !important; }
.sh-head + .sh-values--4{ margin-top:8px; }
@media (max-width:860px){
  .sh-values--4{ grid-template-columns:1fr; }
  .sh-values--4 > .sh-value.e-con{ border-inline-start:0 !important; border-top:1px solid var(--hairline); }
  .sh-values--4 > .sh-value.e-con:first-child{ border-top:0; }
}
/* From defence to civil: a plain list with a bold lead-in per item. */
.sh-civil .elementor-icon-list-items{ list-style:none; margin:0; padding:0; max-width:62ch; }
.sh-civil .elementor-icon-list-item{ padding:18px 0 !important; margin:0 !important; border-top:1px solid var(--hairline); }
.sh-civil .elementor-icon-list-item:first-child{ border-top:0; padding-top:0 !important; }
.sh-civil .elementor-icon-list-icon{ display:none !important; }
.sh-civil .elementor-icon-list-text{ font-size:16.5px; line-height:1.6; color:var(--fg-mid); padding:0 !important; }
.sh-civil .elementor-icon-list-text b{ color:var(--fg); font-weight:600; display:block; margin-bottom:2px; }
.sh-civil .elementor-icon-list-item:after{ display:none !important; }
/* Clients band with a paragraph under the label, inside the shell, strip still full-bleed. */
.sh-clients-band--note .sh-muted{ width:100%; max-width:calc(var(--shell) - 2 * var(--gutter)); margin-inline:auto; }
.sh-clients-band--note .sh-muted p{ max-width:82ch; margin:-10px 0 30px !important; font-size:15.5px !important; }

/* ═══════════ INDEX CARDS (/domains/, /solutions/) ═══════════ */
.sh-cards{ display:grid !important; grid-template-columns:repeat(3,1fr); gap:24px !important; padding:0 !important; }
/* five items: a row of three, then two centred underneath, all the same width */
.sh-cards--5{ grid-template-columns:repeat(6,minmax(0,1fr)); }
.sh-cards--5 > .sh-card.e-con{ grid-column:span 2 !important; min-width:0; max-width:none !important; }
.sh-cards--5 > .sh-card.e-con:nth-child(4){ grid-column:2 / span 2 !important; }
.sh-cards--5 > .sh-card.e-con:nth-child(5){ grid-column:4 / span 2 !important; }
.sh-cards > .sh-card.e-con{ width:auto !important; min-width:0; flex:none !important; padding:0 !important; gap:0 !important;
  background:#fff; border:1px solid var(--hairline); border-radius:14px; overflow:hidden;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease); }
.sh-cards > .sh-card.e-con:hover{ transform:translateY(-3px); box-shadow:0 24px 56px rgba(10,34,58,.14); border-color:var(--hairline-2); }
.sh-card__pic{ margin:0 !important; }
.sh-card__pic img{ width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; display:block;
  transition:transform .6s var(--ease); }
.sh-card.e-con:hover .sh-card__pic img{ transform:scale(1.03); }
.sh-card__body.e-con{ padding:24px 24px 26px !important; gap:0 !important; flex:1 1 auto; }
.sh-card__body .sh-eyebrow .elementor-heading-title{ margin-bottom:10px; }
.sh-card__title .elementor-heading-title{ font-size:clamp(1.2rem,1.5vw,1.4rem) !important; line-height:1.25 !important; margin-bottom:10px; }
.sh-card__title .elementor-heading-title a{ color:inherit; text-decoration:none; }
.sh-card__lead p{ font-size:15.5px !important; line-height:1.55 !important; color:var(--fg-muted) !important; margin:0 !important; max-width:none !important; }
.sh-card__more{ margin-top:auto; padding-top:18px; }
.sh-card__more .elementor-button{ background:none !important; padding:0 !important; color:var(--brand) !important;
  font-size:15px !important; font-weight:600 !important; border:0 !important; border-radius:0 !important; }
.sh-card__more .elementor-button-text::after{ content:'\2190'; display:inline-block; margin-inline-start:8px; transition:transform .2s var(--ease); }
.sh-card.e-con:hover .sh-card__more .elementor-button-text::after{ transform:translateX(-5px); }
@media (max-width:1024px){
  .sh-cards--5{ grid-template-columns:repeat(2,1fr); }
  .sh-cards--5 > .sh-card.e-con, .sh-cards--5 > .sh-card.e-con:nth-child(4), .sh-cards--5 > .sh-card.e-con:nth-child(5){ grid-column:auto !important; }
}
@media (max-width:640px){
  .sh-cards, .sh-cards--5{ grid-template-columns:1fr; }
}

/* Marquee with too few marks to loop: one static, centred row. */
.sh-mq--static .sh-mq__row{ -webkit-mask-image:none; mask-image:none; }
.sh-mq--static .sh-mq__track{ animation:none !important; justify-content:center; flex-wrap:wrap; gap:28px 56px !important;
  padding-inline-start:0 !important; width:100%; max-width:calc(var(--shell) - 2 * var(--gutter)); margin-inline:auto; }
.sh-mq--static .sh-mq__track img{ max-width:200px; }
@media (max-width:760px){ .sh-mq--static .sh-mq__track{ gap:20px 32px !important; } }

/* ═══════════ ABOUT: titled clients band, rotator hero, civil list scale ═══════════ */
.sh-clients-band--titled .sh-head{ width:100%; max-width:calc(var(--shell) - 2 * var(--gutter)); margin-inline:auto; margin-bottom:40px !important; }
.sh-clients-band--titled .sh-head .sh-h2 .elementor-heading-title{ color:#e8eef6 !important; }
.sh-clients-band--titled .sh-head .sh-lede p{ max-width:62ch; }
/* Standalone rotator headline: the page-hero display scale, rotor word in signal. */
.sh-display-rot .sh-hero__title{ font-size:clamp(2.3rem,5.1vw,4.5rem) !important; font-weight:800 !important; line-height:1.02 !important;
  letter-spacing:-.025em !important; max-width:none; margin:0; color:var(--fg); text-wrap:balance; }
.sh-display-rot .sh-rotator__word{ color:var(--signal) !important; font-weight:inherit !important; }
.sh-display-rot .sh-rotator__word:not(.is-on){ transform:none; }
/* Civil list: title at h3 scale, body at reading size. */
.sh-civil .elementor-icon-list-item{ padding:22px 0 !important; }
.sh-civil .elementor-icon-list-text{ font-size:17px !important; line-height:1.65; color:var(--fg-mid) !important; }
.sh-civil .elementor-icon-list-item, .sh-civil .elementor-icon-list-item a{ color:var(--fg-mid) !important; }
.sh-civil .elementor-icon-list-text b{ font-size:clamp(1.2rem,1.7vw,1.5rem); font-weight:600; line-height:1.25; margin-bottom:6px; color:var(--fg) !important; }

/* ═══════════ LEAD FORM (per-page) ═══════════ */
.sh-leadform .elementor-field-type-checkbox .elementor-field-subgroup{ display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; margin-top:4px; }
.sh-leadform .elementor-field-type-checkbox .elementor-field-option{ display:flex; align-items:flex-start; gap:12px; }
.sh-leadform .elementor-field-type-checkbox input[type=checkbox]{ width:20px; height:20px; margin:2px 0 0; flex:none;
  border:1px solid var(--hairline-2); border-radius:3px; background:#fff; accent-color:var(--brand-hi); }
.sh-leadform .elementor-field-type-checkbox label{ font-size:15px !important; line-height:1.55 !important; color:var(--fg-mid) !important; font-weight:400 !important; }
.sh-leadform .elementor-field-type-checkbox > label.elementor-field-label{ font-size:14.5px !important; color:var(--fg-mid) !important; font-weight:500 !important; margin-bottom:10px !important; }
.sh-leadform .elementor-field-type-submit{ margin-top:14px !important; }
.sh-leadform .elementor-field-type-submit .elementor-button{ width:auto; }
.sh-leadform-band .sh-contact-intro .sh-lede p{ margin-top:20px !important; }
@media (max-width:640px){ .sh-leadform .elementor-field-type-checkbox .elementor-field-subgroup{ grid-template-columns:1fr; } }

/* ═══════════ MOBILE DRAWER (reference .nav__drawer) ═══════════ */
@media (max-width:1024px){
  /* The open menu is a full-height sheet under the bar, like the reference drawer. */
  .sh-h-nav{ position:static !important; }
  /* Make the bar the sheet's containing block at every scroll position, not only
     once it is stuck and blurred; otherwise top:100% measures the viewport and the
     sheet opens below the fold at the top of the page. */
  .elementor-location-header{ transform:translateZ(0); will-change:transform; }
  body:has(.e-n-menu-toggle[aria-expanded="true"]) .elementor-location-header{ z-index:2147483001; }
  .sh-mega .e-n-menu-wrapper{
    /* The bar is fixed and backdrop-filtered, so this fixed box is positioned from the
       bar's own edges: top:100% = just under the bar, whatever the admin bar does. */
    position:fixed !important; top:100% !important; bottom:auto !important; inset-inline:0 !important; left:0 !important; right:0 !important;
    width:auto !important; max-width:none !important; height:var(--sh-sheet-h, calc(100dvh - 78px)) !important; max-height:none !important; transform:none !important;
    background:#060a10 !important;
    border-top:1px solid var(--hairline); z-index:2147483000;
    display:flex; flex-direction:column; padding:8px var(--gutter) 104px !important; overflow-y:auto; overscroll-behavior:contain;
    animation:sh-drawer-in .28s var(--ease) both; }
  .sh-mega .e-n-menu-heading{ flex-direction:column !important; align-items:stretch !important; gap:0 !important; width:100%; }
  .sh-mega .e-n-menu-item{ border-bottom:1px solid var(--hairline); width:100% !important; max-width:100% !important; margin:0 !important;
    left:auto !important; right:auto !important; background:transparent !important; }
  .sh-mega .e-n-menu-title{ width:100% !important; margin:0 !important; left:auto !important; right:auto !important; }
  .sh-mega .e-n-menu-title, .sh-mega .e-n-menu-title-container, .sh-mega .e-n-menu-heading, .sh-mega .e-n-menu-content,
  .sh-mega .e-n-menu-content > .e-con{ background:transparent !important; background-color:transparent !important; box-shadow:none !important; }
  .sh-mega .e-n-menu-title-container, .sh-mega .e-n-menu-title-text, .sh-mega .e-n-menu-title-container .e-n-menu-title-text{ color:var(--fg) !important; opacity:1 !important; }
  .sh-mega .e-n-menu-dropdown-icon{ color:var(--fg) !important; }
  .sh-mega .e-n-menu-title{ padding:0 !important; min-height:56px; display:flex; align-items:center; justify-content:space-between;
    width:100%; gap:12px; cursor:pointer; }
  .sh-mega .e-n-menu-title-container{ flex:1 1 auto; padding:18px 0 !important; font-size:18px !important; font-weight:600 !important; line-height:1.2 !important; }
  .sh-mega .e-n-menu-title-container::after{ display:none; }
  .sh-mega .e-n-menu-title-text{ font-size:18px !important; font-weight:600 !important; color:var(--fg) !important; }
  .sh-mega .e-n-menu-title.e-active .e-n-menu-title-text, .sh-mega .e-n-menu-item:has(.e-n-menu-dropdown-icon[aria-expanded="true"]) .e-n-menu-title-text{ color:var(--signal) !important; }
  /* chevron: inside the gutter, 44px tap target, at the inline end of the row */
  .sh-mega .e-n-menu-dropdown-icon{ position:static !important; flex:0 0 44px; width:44px !important; height:44px !important; min-width:44px; margin:0 !important;
    opacity:.6; background-position:center !important; background-size:16px !important; inset:auto !important; transform:none; }
  .sh-mega .e-n-menu-dropdown-icon[aria-expanded="true"]{ opacity:1; transform:rotate(180deg); }
  /* the panel opens inline under its row */
  .sh-mega .e-n-menu-content{ position:static !important; width:100% !important; background:transparent !important; border:0 !important;
    box-shadow:none !important; backdrop-filter:none !important; animation:none; top:auto !important; }
  .sh-mega .sh-mega__inner{ padding:0 0 12px !important; max-width:none !important; }
  .sh-mega .sh-mega__title{ display:none; }
  .sh-mega .sh-mega__list{ display:block !important; }
  .sh-mega__item{ padding:13px 4px 13px 0 !important; min-height:48px; border:0 !important; border-radius:0; gap:12px; }
  .sh-mega__item:hover{ background:none; }
  .sh-mega__icon{ width:34px; height:34px; border-radius:8px; }
  .sh-mega__icon svg{ width:18px; height:18px; }
  .sh-mega__name{ font-size:16px; font-weight:400; color:var(--fg-mid); }
  /* footer: phone + CTA, pinned to the bottom of the sheet */
  .sh-h-actions{ display:none !important; }
  .sh-mega .e-n-menu-wrapper::after{ content:''; }
  .sh-mega .e-n-menu-wrapper{ padding-bottom:0 !important; }
  .sh-mega .e-n-menu-wrapper .sh-drawer-foot{
    position:sticky; bottom:0; margin-top:auto; margin-inline:calc(-1 * var(--gutter)); width:auto; z-index:2;
    display:flex; flex-direction:row; align-items:center; justify-content:center; gap:14px; padding:16px var(--gutter);
    /* extra room below so a floating accessibility bubble in the corner never covers the buttons */
    padding-bottom:max(16px, env(safe-area-inset-bottom)); border-top:1px solid var(--hairline); background:rgba(10,17,26,.96); }
  .sh-mega .e-n-menu-wrapper .sh-drawer-foot{ padding-left:max(var(--gutter), 84px) !important; }
  .sh-drawer-foot a.sh-drawer-foot__tel{ flex:0 0 auto; display:inline-flex; align-items:center; min-height:50px; padding-inline:16px;
    font-size:16px; color:var(--fg-mid); border:1px solid var(--hairline-2); border-radius:var(--r); text-decoration:none; }
  .sh-drawer-foot a.sh-drawer-foot__cta{ flex:1 1 auto; max-width:380px; display:inline-flex; align-items:center; justify-content:center; min-height:50px;
    background:var(--brand-hi); color:#fff; font-weight:600; font-size:16px; border-radius:var(--r); text-decoration:none; }
  .sh-mega .e-n-menu-heading{ flex:1 0 auto; }
}
/* The drawer footer exists in the DOM at every width; it is a phone-only element. */
.sh-drawer-foot{ display:none; }
@media (max-width:1024px){ .sh-mega .e-n-menu-wrapper .sh-drawer-foot{ display:flex; } }
@keyframes sh-drawer-in{ from{ opacity:0; transform:translateY(-8px); } to{ opacity:1; transform:none; } }

/* About hero: the brand quote as a plain heading, one step below the display scale. */
.elementor-widget-heading.sh-hero--quote .elementor-heading-title{
  font-size:clamp(1.7rem,3.2vw,2.6rem) !important; line-height:1.2 !important; font-weight:700 !important;
  letter-spacing:-.015em !important; max-width:none !important; text-wrap:balance; }
@media (max-width:1024px){ body.sh-menu-open{ overflow:hidden; } }

/* About, civil band: picture on the left, copy + list on the right, like the approach bands. */
.sh-civil-grid{ display:grid !important; grid-template-columns:1.1fr .9fr; gap:clamp(40px,6vw,88px) !important; align-items:start; padding:0 !important; }
.sh-civil-grid > .e-con{ width:auto !important; padding:0 !important; min-width:0; }
/* copy on the right (first track), picture on the left, like every other image band */
.sh-civil-grid > .sh-civil__copy{ order:1; }
.sh-civil-grid > .sh-civil__fig{ order:2; }
.sh-civil__fig{ position:sticky; top:calc(78px + 40px); }
.sh-civil__pic img{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:14px; display:block;
  box-shadow:0 30px 70px rgba(0,0,0,.35); }
.sh-civil__copy .sh-head{ margin-bottom:clamp(28px,3vw,44px) !important; }
.sh-civil .elementor-icon-list-items{ max-width:none; }
@media (max-width:900px){
  .sh-civil-grid{ grid-template-columns:1fr; gap:28px !important; }
  .sh-civil__fig{ position:static; order:2; }
  .sh-civil__pic img{ aspect-ratio:16/10; }
}

/* ═══════════ DECK 19.8 ═══════════ */
/* Service page: the five anchor columns breathe away from their dividers. */
.sh-pillars > .sh-pillar.e-con{ padding-inline:clamp(18px,2.2vw,34px) !important; }
.sh-pillars .elementor-widget-text-editor p, .sh-pillars .elementor-widget-heading .elementor-heading-title{ padding-inline-end:4px; }

/* Index cards sit right under the hero now that the head band is gone. */
.sh-band:has(> .e-con-inner > .sh-cards), .sh-band:has(.sh-cards){ padding-block-start:clamp(56px,6vw,88px) !important; }

/* ═══════════ READING SCALE 20 (deck follow-up) ═══════════ */
/* One reading size for running copy across the whole site: 20px. Placed last
   with maximum weight so no earlier per-band rule undercuts it. True fine
   print (legal line, form hints, consent labels) and small-caps labels are
   the only survivors below it. */
html body .sh-muted p, html body .elementor-widget-text-editor.sh-muted p,
html body .sh-body p, html body .sh-story p, html body .sh-kicker p, html body .sh-quote p,
html body .sh-civil .elementor-icon-list-text,
html body .sh-card__lead p,
html body .sh-value .elementor-widget-text-editor p,
html body .sh-sync .sh-sync__ch p, html body .sh-sync__body,
html body .sh-pillars .elementor-widget-text-editor p,
html body .sh-proof-w .sh-proof span,
html body .sh-cfacts .elementor-icon-list-text, html body .sh-cfacts .elementor-icon-list-text .v,
html body .sh-leadform-band .sh-lede p,
html body .sh-head p{
  font-size:24px !important; line-height:1.6 !important; }
/* links and secondary rows scale with it */
html body .sh-sync .sh-sync__link{ font-size:19px !important; }
html body .sh-flinks li a{ font-size:18px !important; }
html body .sh-fabout, html body .sh-fcol--about .elementor-widget-text-editor p{ font-size:18px !important; }
html body .sh-cert__desc{ font-size:18px !important; }
html body .sh-cert__valid{ font-size:14px !important; }
/* measures widen so 20px copy doesn't become a tall narrow column */
html body .sh-muted p{ max-width:52ch; }
@media (max-width:600px){
  html body .sh-muted p, html body .sh-body p, html body .sh-story p,
  html body .sh-sync .sh-sync__ch p, html body .sh-head p{ font-size:19px !important; }
}

/* ═══════════ SERVICE VISION PAGE ═══════════ */
/* Vision band: one copy column (heading, body, emphasis) beside a portrait image. */
.sh-service-vision .sh-kicker-pic img{ aspect-ratio:4/5 !important; }
.sh-service-vision .sh-kicker-grid{ align-items:center; grid-template-columns:1fr 1fr !important; }
.sh-service-vision .sh-kicker-copy .sh-h2 .elementor-heading-title{ margin-bottom:24px; }
.sh-service-vision .sh-kicker-copy .sh-body p{ max-width:32em; }
.sh-service-vision .sh-emph p{ margin-top:18px; font-weight:700; }
/* Proof strip: three figures on ink, the About treatment. */
.sh-service-proof{ padding-block:clamp(48px,5vw,72px) !important; border-block:1px solid var(--hairline); }
.sh-service-proof .sh-proof{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,4vw,64px); list-style:none; margin:0; padding:0; }
.sh-service-proof .sh-proof li{ display:block !important; border-inline-start:1px solid var(--hairline); padding-inline-start:clamp(16px,2vw,28px); border-top:0 !important; }
.sh-service-proof .sh-proof li:first-child{ border-inline-start:0; padding-inline-start:0; }
.sh-service-proof .sh-proof b{ display:block; font-size:clamp(1.8rem,3vw,2.6rem); font-weight:800; letter-spacing:-.03em; color:var(--signal); margin-bottom:8px; }
.sh-service-proof .sh-proof span{ color:var(--fg-mid) !important; font-size:18px !important; line-height:1.55 !important; display:block; max-width:26ch; }
/* Quote hero: the desk photo full-bleed with the quote resting on it. */
.sh-qhero{ position:relative; padding:0 !important; overflow:hidden; }
.sh-qhero > .e-con-inner{ max-width:none !important; padding:0 !important; }
.sh-qhero .sh-qhero__pic{ margin:0 !important; }
.sh-qhero .sh-qhero__pic img{ width:100%; height:clamp(420px,52vh,560px); object-fit:cover; display:block; border-radius:0; box-shadow:none; }
.sh-qhero::after{ content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(6,10,16,.88) 0%, rgba(6,10,16,.35) 55%, rgba(6,10,16,.15) 100%); pointer-events:none; }
.sh-qhero .sh-qhero__text{ position:absolute; inset-inline:0; bottom:clamp(36px,6vh,72px); z-index:2; }
.sh-qhero .sh-qhero__text p{ max-width:30em; margin-inline:auto; text-align:center; color:#fff !important;
  font-size:clamp(1.35rem,2.2vw,1.9rem) !important; line-height:1.45 !important; font-weight:600; letter-spacing:-.01em;
  text-wrap:balance; text-shadow:0 2px 24px rgba(0,0,0,.45); border:0 !important; padding:0 !important; }
/* Anchors: five white cards with a watermark number, not bare columns. */
.sh-pillars{ gap:16px !important; }
.sh-pillars > .sh-pillar.e-con{ position:relative; background:#fff; border:1px solid var(--hairline); border-radius:14px;
  padding:clamp(24px,2.4vw,34px) clamp(20px,2vw,28px) !important; overflow:hidden;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease); border-inline-start:1px solid var(--hairline) !important; }
.sh-pillars > .sh-pillar.e-con:hover{ transform:translateY(-4px); box-shadow:0 24px 56px rgba(10,34,58,.14); border-color:var(--hairline-2); }
.sh-pillar .sh-pnum .elementor-heading-title{ position:absolute; top:-6px; inset-inline-end:6px; font-size:96px !important; font-weight:800 !important;
  letter-spacing:-.04em; line-height:1 !important; color:rgba(13,91,138,.08) !important; pointer-events:none; }
.sh-pillar .sh-pnum{ position:static !important; }
.sh-pillar .sh-h3 .elementor-heading-title{ position:relative; z-index:1; margin-top:34px; }
.sh-pillar .elementor-widget-text-editor{ position:relative; z-index:1; }
@media (max-width:1024px){ .sh-pillars > .sh-pillar.e-con{ flex:1 1 44% !important; } }
@media (max-width:640px){
  .sh-pillars > .sh-pillar.e-con{ flex:1 1 100% !important; }
  .sh-service-proof .sh-proof{ grid-template-columns:1fr; gap:20px; }
  .sh-service-proof .sh-proof li{ border-inline-start:0; padding-inline-start:0; border-top:1px solid var(--hairline); padding-top:16px; }
  .sh-service-proof .sh-proof li:first-child{ border-top:0; padding-top:0; }
}

/* ═══════════ WAZE LINKS ═══════════ */
/* The Waze treatment (brand blue + the FA Waze mark) lives on the contact page
   only; elsewhere the address stays a quiet link that still opens Waze. */
body.page-id-251 a[href*="waze.com"]{
  color:var(--brand-hi) !important; text-decoration:none !important; font-weight:inherit;
  display:inline-flex; align-items:center; gap:9px;
}
body.page-id-251 a[href*="waze.com"]:hover{ color:var(--signal) !important; }
body.page-id-251 a[href*="waze.com"]::before{
  content:''; flex:none; width:21px; height:21px; display:inline-block;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path fill='%230f6fa8' d='M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z'/></svg>") center/contain no-repeat;
}
/* Everywhere else: inherit the surrounding colour, no icon. */
html body .sh-cfacts a[href*="waze.com"]{ color:inherit !important; text-decoration:none !important; }
/* Facts links in general: brand blue on the contact page, quiet elsewhere. */
body.page-id-251 .sh-body a, body.page-id-251 .sh-contact-details a{
  color:var(--brand-hi) !important; text-decoration:none !important; }
body.page-id-251 .sh-body a:hover, body.page-id-251 .sh-contact-details a:hover{ color:var(--signal) !important; }
html body .sh-cfacts a{ color:inherit !important; text-decoration:none !important; }/* End custom CSS */