/* One responsive content width for every public section and the site chrome. */
:root { --content-max:1400px; --page-gutter:max(24px, calc((100% - 1400px) / 2)); }
.cms-section { padding:76px 0; font-family:"Segoe UI",SegoeUI,Arial,sans-serif; }
.cms-container { width:min(var(--content-max), calc(100% - 48px)); margin-inline:auto; min-width:0; }
.cms-section * { box-sizing:border-box; }
.cms-section [hidden] { display:none!important; }
.cms-theme-white { background:#fff; color:#0b2034; }
.cms-theme-soft { background:#f4f8fb; color:#0b2034; }
.cms-theme-dark { background:linear-gradient(115deg,#081c2c,#103a53); color:#fff; }
.cms-theme-blue { background:linear-gradient(115deg,#095ce8,#4462ea); color:#fff; }
.cms-eyebrow { display:block; margin-bottom:16px; font-size:14px; line-height:1.5; font-weight:500; letter-spacing:.07em; color:#0863d6; }
.cms-theme-dark .cms-eyebrow,.cms-theme-blue .cms-eyebrow { color:#bce3ff; }
.cms-section h1 { margin:0; font-size:clamp(40px,4vw,72px); font-weight:550; line-height:1.1; letter-spacing:-.035em; overflow-wrap:break-word; }
.cms-section h2 { margin:0; max-width:none; font-size:clamp(35px,2vw,54px); font-weight:500; line-height:1.18; letter-spacing:-.025em; overflow-wrap:break-word; }
.cms-section h3 { margin:0 0 12px; font-size:22px; font-weight:600; line-height:1.35; }
.cms-section p { font-size:17px; line-height:1.8; color:inherit; margin:16px 0 0; overflow-wrap:anywhere; }
.cms-lead { max-width:76ch; color:#425d73!important; }
.cms-theme-dark .cms-lead,.cms-theme-blue .cms-lead { color:#e0ebf5!important; }
.cms-split { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:64px; align-items:center; }
.cms-split>*,.cms-card-grid>* { min-width:0; }
.cms-copy { min-width:0; }
.cms-hero { padding-block:80px; }
.cms-hero .cms-copy { max-width:1000px; }
.cms-actions { display:flex; flex-wrap:wrap; gap:20px; align-items:center; margin-top:28px; }
.cms-actions .button { font-size:15px; font-weight:600; min-height:48px; padding:14px 22px; }
.cms-secondary-link { font-size:16px; font-weight:500; border-bottom:1px solid currentColor; padding:10px 0; }
.cms-theme-blue .button-primary { background:#fff; color:#0758cb; }
.cms-theme-dark .button-primary { background:#1172f5; color:#fff; }
.cms-visual { width:100%; margin:0; justify-self:center; }
.cms-visual img { display:block; width:100%; height:auto; max-height:600px; border-radius:18px; object-fit:contain; }
.cms-image-fit-cover img { aspect-ratio:4/3; object-fit:cover; }
.cms-image-size-small { width:35%; }.cms-image-size-medium { width:55%; }.cms-image-size-large { width:75%; }
.cms-image-left .cms-visual { grid-column:1; grid-row:1; }.cms-image-left.cms-split .cms-copy { grid-column:2; }
.cms-rich { margin-top:30px; max-width:none; font-size:17px; line-height:1.8; color:inherit; overflow-wrap:break-word; }
.cms-rich h2 { margin:40px 0 16px; }.cms-rich h3 { margin:28px 0 12px; }.cms-rich h4 { font-size:21px; }.cms-rich h5 { font-size:19px; }.cms-rich h6 { font-size:17px; }
.cms-rich ul,.cms-rich ol { padding-left:24px; }.cms-rich blockquote { margin:28px 0; padding:20px 26px; border-left:3px solid #2584fa; background:#edf5fe; color:#213b53; }
.cms-rich a { color:#0662d5; text-decoration:underline; }.cms-theme-dark .cms-rich a,.cms-theme-blue .cms-rich a { color:#a8ddff; }
.cms-rich figure { margin:28px auto; }.cms-rich figure img { width:100%; height:auto; display:block; border-radius:12px; }.cms-rich figcaption { font-size:14px; line-height:1.6; margin-top:10px; }
.cms-rich .image-small { max-width:35%; }.cms-rich .image-medium { max-width:55%; }.cms-rich .image-large { max-width:75%; }.cms-rich .image-full { max-width:100%; }
.cms-rich .content-columns { display:grid; gap:28px; margin:26px 0; }.cms-rich .content-column { min-width:0; }.cms-rich .columns-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }.cms-rich .columns-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }.cms-rich .columns-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.cms-intro-heading { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px; align-items:center; }.cms-intro-heading .cms-lead { margin:0; max-width:none; }
.cms-intro-copy { border-top:1px solid #d5e2ec; padding-top:28px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 64px; }.cms-intro-copy>p { margin:0; }.cms-intro-copy>div { grid-column:1/-1; }
.cms-card-grid,.cms-items { display:grid; gap:24px; margin-top:34px; }
.cms-columns-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }.cms-columns-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }.cms-columns-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.cms-card,.cms-cards .cms-items>article { padding:30px; background:#fff; color:#0b2034; border:1px solid #d4e1eb; border-radius:14px; display:flex; flex-direction:column; gap:10px; }
.cms-card p { margin:0; font-size:16px; line-height:1.75; color:#466078; }.cms-card h3 a { text-decoration:none; }.cms-card h3 a:hover { color:#0863d6; text-decoration:underline; }
.cms-card-image { width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:9px; margin-bottom:16px; }
.cms-card-icon { display:grid; place-items:center; width:52px; height:52px; padding:10px; background:#eef5fc; border-radius:12px; margin-bottom:12px; font-style:normal; }.cms-card-icon svg { width:100%; height:100%; }
.cms-items>article>img { width:100%; max-height:250px; object-fit:contain; border-radius:12px; margin-bottom:16px; }
.cms-process .cms-items>article { padding-top:20px; border-top:1px solid #cadbe8; }.cms-step-number { display:block; margin-bottom:20px; font-size:32px; font-weight:400; color:#1874d8; }
.cms-stats,.cms-logostrip { padding-block:30px; border-block:1px solid #d4e1eb; }.cms-stats .cms-items,.cms-logostrip .cms-items { margin-top:0; }.cms-stats h3 { font-size:30px; }.cms-stats p { font-size:15px; }.cms-logostrip .cms-items { display:flex; flex-wrap:wrap; gap:25px 60px; justify-content:space-between; align-items:center; }.cms-logostrip h3 { font-size:20px; color:#526e84; margin:0; }.cms-logostrip .cms-eyebrow { margin-bottom:24px; }
.cms-hero-illustration { display:grid; grid-template-columns:1fr; gap:18px; margin:0; padding:42px; border:1px solid #d1e3f2; border-radius:30px; background:radial-gradient(at 30% 20%,#d3ecff,transparent 65%),#edf4fc; }
.cms-hero-illustration article { display:grid; grid-template-columns:54px 1fr; column-gap:18px; padding:20px; background:#fff; border-radius:14px; color:#102a42; box-shadow:0 8px 24px #0c335710; }.cms-hero-illustration .cms-card-icon { grid-row:1/3; margin:0; }.cms-hero-illustration h3 { font-size:21px; margin:0; }.cms-hero-illustration p { font-size:15px; margin:4px 0 0; grid-column:2; }
.cms-calltoaction .cms-split { grid-template-columns:minmax(0,1fr) minmax(320px,420px); }.cms-calltoaction .cms-items { display:flex; flex-direction:column; padding:32px; margin:0; gap:18px; border-radius:16px; background:#fff; color:#102940; box-shadow:0 15px 45px #14326e16; }.cms-calltoaction .cms-items h3 { font-size:19px; margin:0; overflow-wrap:anywhere; }.cms-calltoaction .cms-items article:first-child h3 { font-size:27px; }.cms-calltoaction .cms-items p { font-size:15px; margin:4px 0 0; }
.cms-imageandtext .cms-items { grid-template-columns:1fr; border:1px solid #7ca8c05c; border-radius:20px; padding:36px; margin:0; }.cms-imageandtext .cms-items h3 { font-size:clamp(26px,3vw,50px); font-weight:500; }
.cms-contact-form { grid-column:2; grid-row:1/3; border:1px solid #d4e1eb; background:#fff; color:#102a42; padding:34px; border-radius:16px; }.cms-contact-details { grid-column:1; display:grid; grid-template-columns:1fr 1fr; gap:28px; align-self:start; }.cms-contact-details b { display:block; margin-bottom:8px; }.cms-contact-details p { margin:0; }.cms-contact-details a { overflow-wrap:anywhere; }
.cms-contact .cms-copy { align-self:end; }.cms-enquiry-form { display:grid; gap:10px; }.cms-enquiry-form label { font-size:15px; margin-top:10px; font-weight:500; }.cms-enquiry-form input,.cms-enquiry-form textarea,.cms-enquiry-form select { width:100%; padding:12px 14px; border:1px solid #bed0df; border-radius:7px; font:inherit; color:#102a42; background:#fff; }.cms-enquiry-form .consent { display:flex; align-items:flex-start; gap:12px; font-size:14px; }.cms-enquiry-form .consent input { width:18px; height:18px; flex:0 0 auto; }.cms-enquiry-form .honeypot { display:none; }
.cms-faq-list { display:grid; gap:14px; margin-top:28px; }.cms-faq-list details { padding:24px; border:1px solid #cbdce9; border-radius:12px; }.cms-faq-list summary { cursor:pointer; font-size:20px; font-weight:500; }.cms-pagination { display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }.cms-pagination a { padding:10px 18px; border:1px solid #ccdbe8; border-radius:6px; }.cms-pagination [aria-current="page"] { background:#126ee6; color:#fff; }
.studio-preview-notice { padding:16px 24px; background:#fff4c6; color:#493d08; font:15px/1.5 "Segoe UI",sans-serif; text-align:center; }
.primary-nav { font-size:16px; font-weight:500; gap:24px; }.footer-column>a,.footer-column address,.footer-brand p { font-size:15px; line-height:1.7; }.footer-column>b { font-size:16px; }.footer-bottom { font-size:12px; }
/* Absolute positioning avoids the fixed-position containing block created by the header backdrop filter. */
.product-nav-group { position:static; }.nav-group { display:flex; align-items:center; }.primary-nav { align-self:stretch; }
.product-mega { position:absolute; top:calc(100% - 1px); left:50%; width:min(1500px,calc(100vw - 48px)); max-height:calc(100dvh - var(--header-bottom) - 16px); }
.service-menu { top:calc(100% - 1px); }.nav-submenu-toggle { border:0; background:transparent; color:#526779; min-width:26px; min-height:44px; padding:0 4px; cursor:pointer; font-size:16px; }
.js-menu.nav-group:not(.is-open)>.service-menu,.js-menu.nav-group:not(.is-open)>.product-mega { display:none; }.js-menu.nav-group.is-open>.service-menu,.js-menu.nav-group.is-open>.product-mega { display:block; }.js-menu>a>small { display:none; }
.mega-category>a { font-size:15px; font-weight:500; min-height:44px; }.mega-category>strong { font-family:inherit; font-size:12px; font-weight:500; letter-spacing:.045em; color:#4d697e; }
.cms-section :focus-visible,.nav-submenu-toggle:focus-visible { outline:3px solid #1c81ed; outline-offset:4px; }
@media(max-width:1250px) { .primary-nav { gap:16px; font-size:15px; }.cms-split { gap:40px; }.cms-columns-4 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:960px) {
    .primary-nav { align-self:auto; }.nav-group { display:grid; grid-template-columns:1fr 40px; }.product-mega,.service-menu { grid-column:1/-1; position:static; inset:auto; width:100%; max-height:none; padding:18px 0; transform:none; overflow:visible; }.nav-submenu-toggle { border-bottom:1px solid #edf2f5; }.primary-nav>a,.nav-group>a { min-height:48px; }
    .cms-split,.cms-intro-heading,.cms-intro-copy,.cms-calltoaction .cms-split { grid-template-columns:1fr; gap:30px; }.cms-image-left .cms-visual,.cms-image-left.cms-split .cms-copy { grid-column:auto; grid-row:auto; }.cms-section { padding-block:56px; }.cms-columns-3,.cms-rich .columns-3,.cms-rich .columns-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }.cms-contact-form,.cms-contact-details { grid-column:auto; grid-row:auto; }.cms-contact-form { order:3; }.cms-hero-illustration { padding:26px; }
}
@media(max-width:640px) {
    :root { --page-gutter:20px; }.cms-container { width:calc(100% - 40px); }.cms-section { padding-block:44px; }.cms-section h1 { font-size:40px; }.cms-section h2 { font-size:clamp(35px,2vw,54px); }.cms-section p { font-size:16px; }.cms-columns-2,.cms-columns-3,.cms-columns-4,.cms-rich .columns-2,.cms-rich .columns-3,.cms-rich .columns-4,.cms-contact-details { grid-template-columns:1fr; }.cms-card,.cms-contact-form { padding:24px; }.cms-rich .image-small,.cms-rich .image-medium,.cms-rich .image-large { max-width:100%; }.cms-hero-illustration { padding:16px; }.cms-hero-illustration article { padding:16px; }.cms-stats .cms-items { gap:24px; }.mega-categories { grid-template-columns:1fr; }.cms-actions { align-items:flex-start; }.cms-calltoaction .cms-items { padding:26px; }
}
@media(prefers-reduced-motion:reduce) { .cms-section * { scroll-behavior:auto; transition:none; animation:none; } }

.cms-split.cms-has-image>.cms-items { grid-column:1/-1; }

.cms-section:not(.cms-hero):not(.cms-imageandtext):not(.cms-contact):not(.cms-calltoaction) .cms-visual { margin-block:32px; }
.cms-contact .cms-has-image .cms-visual { grid-column:1; grid-row:auto; }

.cms-article-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:50px; align-items:start; margin-top:28px; }
.cms-article-layout>.cms-rich { margin-top:0; }.cms-toc { position:sticky; top:112px; padding:22px; border:1px solid #d1deea; border-radius:12px; }
.cms-toc>b { display:block; font-size:17px; margin-bottom:15px; }.cms-toc nav { display:grid; gap:8px; }.cms-toc a { padding:8px 0; font-size:14px; line-height:1.5; border-bottom:1px solid #d8e4ed; }.cms-toc a.active { color:#0875ed; }.cms-brand-visual { display:grid; min-height:360px; place-items:center; border:1px solid #d4e2ed; background:#f5f9fc; border-radius:18px; overflow:hidden; }
.cms-brand-visual .about-logo-crop { max-width:95%; }.cms-brand-visual .about-logo-crop img { width:520px; max-width:none; border-radius:0; }
.cms-article-layout.cms-no-toc { grid-template-columns:1fr; }
.cms-card-category { font-size:13px; font-weight:500; line-height:1.5; color:#536e83; }
.cms-review-controls { display:flex; gap:10px; margin-top:24px; }.cms-review-controls button { width:44px; height:44px; border:1px solid #a2bed1; border-radius:50%; background:transparent; color:inherit; cursor:pointer; font:inherit; }.cms-review-controls button.active { background:#fff; color:#12334c; border-color:#fff; }
@media(max-width:960px) { .cms-article-layout { grid-template-columns:1fr; gap:24px; }.cms-toc { position:static; }.cms-toc nav { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .cms-toc nav { grid-template-columns:1fr; }.cms-brand-visual { min-height:280px; }.cms-brand-visual .about-logo-crop img { width:390px; } }

/* Shared social profiles and article metadata. */
.social-links { display:flex; gap:10px; flex-wrap:wrap; }
.social-links a { width:42px; height:42px; display:grid; place-items:center; color:inherit; border:1px solid currentColor; border-radius:50%; opacity:.85; }
.social-links svg { width:20px; height:20px; }.social-links a:hover { opacity:1; }.social-links a:focus-visible { outline:3px solid #4aa5ff; outline-offset:4px; }
.cms-contact .social-links { grid-column:1/-1; color:#23445d; }
.blog-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding-block:26px; color:#486174; font-size:15px; }.blog-breadcrumb a,.blog-return a { color:#0965c8; }.blog-breadcrumb [aria-current] { overflow-wrap:anywhere; }
.blog-article-meta { display:flex; align-items:center; flex-wrap:wrap; gap:12px 22px; margin-top:24px; color:inherit; font-size:15px; line-height:1.6; }.blog-topic { padding:4px 12px; border:1px solid #a9c6dc; border-radius:20px; }
.blog-card-date { display:block; color:#5a6c79; font-size:14px; margin:8px 0 12px; }.blog-return { padding-block:24px 48px; }.cms-empty { padding:24px; border:1px solid #ccdce7; border-radius:12px; line-height:1.7; }

/* Original product artwork keeps its colours and aspect ratio in every card and menu. */
.product-brand-icon, .cms-card-icon > .product-brand-icon, .mega-category i > .product-brand-icon { display:block; width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; aspect-ratio:auto; border:0; border-radius:0; padding:0; margin:0; filter:none; }
