.elementor-kit-4{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Instrument Sans";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Instrument Sans";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Open Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Open Sans";--e-global-typography-accent-font-weight:600;}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1312px;}.e-con{--container-max-width:1312px;}.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;}}:root { --jmg-ink:#14171a; --jmg-body:#4b535b; --jmg-meta:#797979; --jmg-faint:#b1b1b1; --jmg-white:#ffffff; --jmg-tile:#f4f7f9; --jmg-wash:#eaeff3; --jmg-line:#d3dce3; --jmg-line-strong:#b1b1b1; --jmg-on-dark:#e3e9ee; --jmg-navy:#14171a; --jmg-navy-2:#4b535b; --jmg-blue:#ce202f; --jmg-blue-on-dark:#b1b1b1; --jmg-blue-wash:#e3eef5; --jmg-red:#ce202f; --jmg-red-press:#a81a26; --jmg-red-wash:#fdf3f4; --jmg-red-line:#f5d0d6; --jmg-red-on-dark:#ff8a9a; --jmg-amber:#b45309; --jmg-font:Open Sans; --jmg-fs-xs:13px; --jmg-fs-sm:14px; --jmg-fs-md:15px; --jmg-fs-base:16px; --jmg-fs-lg:18px; --jmg-fs-xl:20px; --jmg-fs-2xl:24px; --jmg-fs-3xl:28px; --jmg-fs-4xl:40px; --jmg-space-3xs:2px; --jmg-space-2xs:4px; --jmg-space-xs:8px; --jmg-space-s:12px; --jmg-space-m:16px; --jmg-space-l:24px; --jmg-space-xl:32px; --jmg-space-2xl:48px; --jmg-space-3xl:64px; --jmg-r-xs:4px; --jmg-r-sm:8px; --jmg-r-md:12px; --jmg-r-lg:16px; --jmg-r-xl:24px; --jmg-r-pill:999px; --jmg-page-width:1312px; --jmg-gutter:20px; --jmg-text-hero:clamp(36px, 4.6vw, 64px); --jmg-text-statement:clamp(40px, 6vw, 88px); --jmg-text-h2-lg:clamp(36px, 3.6vw, 52px); --jmg-text-h2:clamp(30px, 3.4vw, 48px); --jmg-text-h3:clamp(26px, 3vw, 40px); --jmg-text-h4:clamp(24px, 2.6vw, 36px); --jmg-text-h5:clamp(22px, 2.4vw, 32px); --jmg-text-card:clamp(20px, 1.9vw, 26px); --jmg-text-figure:clamp(48px, 5.5vw, 80px); --jmg-text-figure-xl:clamp(56px, 7vw, 104px); --jmg-band-y:clamp(48px, 5.5vw, 88px); --jmg-band-y-m:clamp(40px, 4.45vw, 64px); --jmg-band-y-s:clamp(32px, 3vw, 48px); }
/* Start custom CSS *//* JMG design tokens v3 (Claude Design, Oct 2026): everything that is not an editor variable.
   The colours, font, sizes, radii and spacing are V4 global variables (Site Settings > Variables). */
:root {
	--tc-title: var(--jmg-ink);
	--theme-color-title: var(--jmg-ink);
	--tc-text: var(--jmg-body);
	--theme-color-text: var(--jmg-body);
	--tc-meta: var(--jmg-meta);
	--theme-color-meta: var(--jmg-meta);
	--tc-link: var(--jmg-blue);
	--theme-color-link: var(--jmg-blue);
	--tc-hover: var(--jmg-ink);
	--theme-color-hover: var(--jmg-ink);
	--tc-bg_color: var(--jmg-white);
	--theme-color-bg_color: var(--jmg-white);
	--tc-bg_color_2: var(--jmg-wash);
	--theme-color-bg_color_2: var(--jmg-wash);
	--tc-bd_color: var(--jmg-line);
	--theme-color-bd_color: var(--jmg-line);
	--tc-alt_bg_color: var(--jmg-navy);
	--theme-color-alt_bg_color: var(--jmg-navy);
	--tc-alt_bg_color_2: var(--jmg-navy-2);
	--theme-color-alt_bg_color_2: var(--jmg-navy-2);
	--tc-alt_bd_color: #2b5573;
	--theme-color-alt_bd_color: #2b5573;
	--tc-alt_text: var(--jmg-on-dark);
	--theme-color-alt_text: var(--jmg-on-dark);
	--tc-alt_meta: var(--jmg-line-strong);
	--theme-color-alt_meta: var(--jmg-line-strong);
	--tc-alt_title: var(--jmg-white);
	--theme-color-alt_title: var(--jmg-white);
	--tc-alt_link: var(--jmg-blue-on-dark);
	--theme-color-alt_link: var(--jmg-blue-on-dark);
	--e-global-color-primary: var(--jmg-ink);
	--e-global-color-secondary: var(--jmg-navy);
	--e-global-color-text: var(--jmg-body);
	--e-global-color-accent: var(--jmg-red);
	--jmgw-ink: var(--jmg-ink);
	--jmgw-paper: var(--jmg-white);
	--jmgw-deep: var(--jmg-navy);
	--jmgw-panel: var(--jmg-navy-2);
	--jmgw-wash: var(--jmg-wash);
	--jmgw-tile: var(--jmg-tile);
	--jmgw-rule: var(--jmg-line);
	--jmgw-muted: var(--jmg-body);
	--jmgw-faint: var(--jmg-meta);
	--jmgw-accent: var(--jmg-blue);
	--jmgw-brand: var(--jmg-red);
	--jmgw-alert: var(--jmg-red);
	--tf-h2_font-family: var(--jmg-font);
	--tf-button_font-family: var(--jmg-font);
	--tf-p_font-family: var(--jmg-font);
	--jmg-text-display: var(--jmg-text-hero);
	--jmg-text-lead: var(--jmg-fs-lg);
	--jmg-text-body: var(--jmg-fs-base);
	--jmg-text-small: var(--jmg-fs-sm);
	--jmg-text-eyebrow: var(--jmg-fs-sm);
	--jmg-panel-pad: clamp(36px, 4.45vw, 72px) clamp(20px, 4.45vw, 72px);
	--jmg-gutter-x: max(20px, calc((100vw - 1216px) / 2));
	--jmgw-page: var(--jmg-page-width);
	--jmgw-section-y: var(--jmg-band-y);
	--jmg-radius-card: var(--jmg-r-md);
	--jmg-radius-inner: var(--jmg-r-sm);
	--jmg-radius-btn: var(--jmg-r-pill);
	--jmgw-radius-card: var(--jmg-r-md);
	--jmgw-radius-btn: var(--jmg-r-pill);
	--jmgw-radius-pill: var(--jmg-r-pill);
	--jmg-ink-0: rgba(11, 22, 32, 0);
	--jmg-ink-08: rgba(11, 22, 32, .08);
	--jmg-ink-12: rgba(11, 22, 32, .12);
	--jmg-ink-20: rgba(11, 22, 32, .2);
	--jmg-ink-30: rgba(11, 22, 32, .3);
	--jmg-ink-55: rgba(11, 22, 32, .55);
	--jmg-ink-75: rgba(11, 22, 32, .75);
	--jmg-ink-85: rgba(11, 22, 32, .85);
	--jmg-white-12: rgba(255, 255, 255, .12);
	--jmg-white-20: rgba(255, 255, 255, .2);
	--jmg-white-35: rgba(255, 255, 255, .35);
	--jmg-white-70: rgba(255, 255, 255, .7);
	--jmg-white-90: rgba(255, 255, 255, .9);
	--jmg-shadow-float: 0 16px 40px rgba(11, 22, 32, .15);
	--jmg-shadow-raise: 0 6px 18px rgba(11, 22, 32, .10);
	--jmg-scrim: linear-gradient(0deg, rgba(11, 22, 32, .75), transparent 55%);
	--m-ease-out: cubic-bezier(.23,1,.32,1);
	--m-ease-move: cubic-bezier(.77,0,.175,1);
	--m-ease-color: ease;
	--m-ease-linear: linear;
	--m-dur-press: .12s;
	--m-dur-pop: .16s;
	--m-dur-hover: .2s;
	--m-dur-state: .28s;
	--m-dur-fade: .4s;
	--m-dur-move: .5s;
	--m-dur-reveal: .6s;
	--m-dur-slow: 1s;
	--m-press-scale: 0.97;
	--m-press-scale-lg: 0.98;
	--m-press-scale-xl: 0.99;
	--m-enter-scale: 0.96;
	--m-hover-zoom: 1.04;
	--m-reveal-y: 16px;
	--m-reveal-blur: 4px;
	--m-reveal-zoom: 1.06;
	--m-stagger: 50ms;
	--m-stagger-max: 8;
	--m-hold: 1.6s;
	--jmg-ease: var(--m-ease-out);
	--jmg-dur-hover: var(--m-dur-hover);
	--jmg-dur-swap: var(--m-dur-move);
	--jmg-dur-fade: var(--m-dur-reveal);
}

body { font-family: var(--jmg-font); color: var(--jmg-body); background: var(--jmg-white); -webkit-font-smoothing: antialiased; }
:focus-visible { outline: 2px solid var(--jmg-blue); outline-offset: 3px; }

/* Links inside running text: blue, underlined on hover. A whole linked paragraph or heading
   (Elementor's e-paragraph-link-base / e-heading-link-base) takes its element's colour instead. */
.e-paragraph-base a:not([class]), .elementor-widget-text-editor a:not([class]) { color: var(--jmg-blue); text-underline-offset: 2px; }
.e-paragraph-base a:not([class]):hover, .elementor-widget-text-editor a:not([class]):hover { text-decoration: underline; }

/* The site header (Theme Builder part) stays at the top while the page scrolls, under the admin bar. */
.elementor-location-header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 1000; background: var(--jmg-white); }

/* Reduced motion: stop movement, keep opacity and colour. */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; scroll-behavior: auto !important; }
}

/* Page frame (1440) */
/* Redesign Pack 12 Oct: the 1440 frame is the outer edge; content sits in a 1312 column (1440 - 2 x 64) with a
   fluid side gutter clamp(20px, 4vw, 64px). On this site the editor variable jmg-page-width holds the COLUMN (1312).
   The editor's jmg-gutter variable is a fixed size (20px, the phone gutter) because a size variable cannot hold
   clamp(); the fluid gutter is set here and wins over it. The pack's own names are aliased so CSS copied from the
   pack works as is. */
:root {
	--jmg-gutter: clamp(20px, 4vw, 64px);
	--jmg-frame-width: 1440px;
	--jmg-content-width: var(--jmg-page-width);
	--jmg-gutter-fluid: var(--jmg-gutter);
	--jmg-gutter-x: max(var(--jmg-gutter), calc((100vw - var(--jmg-page-width)) / 2));
	--jmg-box-y: var(--jmg-band-y-m);
	--jmgw-page: var(--jmg-page-width);
}
/* The site header's height as measured (14 Oct): 81px from 1180px (80px bar + 1px line), 90px from 601 to 1179px,
   64px up to 600px. Sticky sections and stacked cards hold
   below it, never under it. */
:root { --jmg-header-h: 81px; }
@media (max-width: 1179px) { :root { --jmg-header-h: 90px; } }
@media (max-width: 600px) { :root { --jmg-header-h: 64px; } }
/* Where sticky headings and photos stop (client, 14 Oct: they sat "always so close" to the bar above). One value for
   the whole site: the header plus 48px of air. A page with a sticky Section Nav adds the bar's height to it. */
:root { --jmg-sticky-gap: 48px; --jmg-sticky-top: calc(var(--jmg-header-h) + var(--jmg-sticky-gap)); }
@media (max-width: 1179px) { :root { --jmg-sticky-gap: 32px; } }
/* The site header follows the column and the gutter. */
body .jmgw-hdr { --jmgw-hdr-gutter: var(--jmg-gutter); }

/* Typography: Instrument Sans for headings (the Redesign Pack's face; the client brought it back over Roboto
   Condensed, 12 Oct), Open Sans for text (brand sheet), Helvetica as the fallback. Instrument Sans is self-hosted by
   the JMG Widgets plugin; headings keep the pack's own tight tracking. */
body { font-family: "Open Sans", Helvetica, Arial, sans-serif; }
body h1, body h2, body h3, body h4, body h5, body h6, body .e-heading-base, body .jmg-figure, body [data-jmg-part~="figure"] {
	font-family: "Instrument Sans", Helvetica, Arial, sans-serif !important;
}
body h1, body h2, body h3 { font-weight: 600 !important; } /* Verkada sets its headings at 600 (client, 12 Oct) */
/* Video Hero fits the screen (client, 14 Oct): exactly one screen below the header, video plus band. svh so a phone's
   address bar does not push the band below the fold; the WordPress admin bar (32px, 46px on phones) is taken off too,
   so it also fits for a logged-in editor. The widget's 760px minimum would overflow shorter screens. !important because
   Elementor writes the widget's control defaults into the page CSS at three-class specificity. */
body .jmgw-vhero { --jmgw-vhero-h: 100svh !important; --jmgw-vhero-offset: var(--jmg-header-h, 80px) !important; --jmgw-vhero-min: 520px !important; }
body.admin-bar .jmgw-vhero { --jmgw-vhero-offset: calc(var(--jmg-header-h, 80px) + 32px) !important; }
@media (min-width: 783px) and (max-height: 820px) { body .jmgw-vhero { --jmgw-vhero-share: 66% !important; } } /* short laptop screens: more room for the words */
@media (max-width: 782px) { body.admin-bar .jmgw-vhero { --jmgw-vhero-offset: calc(var(--jmg-header-h, 64px) + 46px) !important; } }
/* Button hovers, as the library (style-hover): primary dims to .85; ghost fills ink with white text. .2s colour ease. */
body .jmg-btn-primary { transition: opacity var(--m-dur-hover, .2s) var(--m-ease-color, ease), transform var(--m-dur-press, .12s) var(--m-ease-out, ease); }
body .jmg-btn-primary:hover, body .jmg-btn-primary:focus-visible { opacity: .85; }
body .jmg-btn-ghost { transition: background-color var(--m-dur-hover, .2s) var(--m-ease-color, ease), color var(--m-dur-hover, .2s) var(--m-ease-color, ease), border-color var(--m-dur-hover, .2s) var(--m-ease-color, ease); }
body .jmg-btn-ghost:hover, body .jmg-btn-ghost:focus-visible { background-color: var(--jmg-ink) !important; color: var(--jmg-white) !important; border-color: var(--jmg-ink) !important; }
body .jmgw-hdr, body .elementor-location-footer { --tf-p_font-family: "Open Sans", Helvetica, Arial, sans-serif; --tf-h2_font-family: "Open Sans", Helvetica, Arial, sans-serif; }

/* Nothing below the hero runs the full screen width: a photo, video, tile or marquee band
   (data-jmg-frame="boxed") and a rail's scrolling track (data-jmg-frame="track") sit in the page column,
   with the gutter at the sides on smaller screens. A boxed band takes the card radius. */
body .elementor > [data-jmg-frame="boxed"][data-jmg-frame], body [data-jmg-frame="track"][data-jmg-frame] {
	width: min(100% - 2 * var(--jmg-gutter), var(--jmg-page-width)); max-width: none; margin-inline: auto; padding-inline: 0;
}
body [data-jmg-frame="boxed"][data-jmg-frame] { overflow: clip; border-radius: var(--jmg-r-lg); }
/* A boxed band placed straight on the page keeps a section's breathing room above and below, so it never
   touches the band before or after it (a boxed band inside a section takes that section's width and spacing). */
body .elementor > [data-jmg-frame="boxed"][data-jmg-frame] { margin-block: var(--jmg-band-y, clamp(48px, 5.5vw, 88px)); }/* End custom CSS */