:root { --cms-line:#dce3ee; --cms-muted:#6e7f98; --cms-accent:#3b4f8b; }
.cms-side-menu:not(:has(a)) { display:none; }
.cms-news-list { border-top:2px solid #273d6a; }
.cms-news-row { display:grid; grid-template-columns:76px minmax(0,1fr); gap:28px; padding:32px 0; border-bottom:1px solid var(--cms-line); align-items:center; }
.cms-news-row:has(.cms-news-thumb) { grid-template-columns:76px minmax(0,1fr) 200px; }
.cms-news-date { display:grid; gap:8px; align-self:start; padding-top:4px; text-align:center; color:#8b9bb4; border-right:1px solid var(--cms-line); padding-right:22px; }
.cms-news-date b { font:500 42px/1 Arial,sans-serif; color:#3b4f8b; }
.cms-news-date span { font-size:12px; }
.cms-news-category { color:#6482a8; font-size:11px; }
.cms-news-copy h3 { font-size:23px; line-height:1.55; margin:9px 0 12px; }
.cms-news-copy h3 a { transition:color .2s; }
.cms-news-copy p { color:var(--cms-muted); font-size:14px; line-height:1.9; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.cms-news-read { display:inline-flex; gap:20px; font-size:12px; color:#4c689a; align-items:center; margin-top:18px; }
.cms-news-read i { transition:transform .2s; }
.cms-news-row:hover h3 a { color:#537cb6; }
.cms-news-row:hover .cms-news-read i { transform:translateX(5px); }
.cms-news-thumb { display:block; aspect-ratio:8/5; overflow:hidden; border-radius:8px; background:#e9eff7; }
.cms-news-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.cms-news-row:hover .cms-news-thumb img { transform:scale(1.045); }
.cms-news-article { padding:42px 48px 25px; background:white; border:1px solid var(--cms-line); border-radius:12px; }
.cms-news-back { display:inline-flex; align-items:center; gap:10px; font-size:12px; color:#7388a8; }
.cms-news-article-head { padding-bottom:28px; margin-bottom:32px; border-bottom:1px solid var(--cms-line); }
.cms-news-article-head h1 { font:700 clamp(25px,2vw,34px)/1.55 var(--font-body, sans-serif); margin:25px 0 22px; color:#1d3156; overflow-wrap:anywhere; }
.cms-news-meta { display:flex; gap:24px; flex-wrap:wrap; font-size:12px; color:#8290a8; }
.cms-news-meta i { margin-right:6px; }
.cms-news-body { max-width:840px; margin-inline:auto; font-size:16px; line-height:2.15; min-height:200px; }
.cms-news-body .cms-rich-image { background:transparent; padding:0; margin:28px auto; }
.cms-news-body .cms-rich-image img { width:auto!important; max-width:100%; height:auto!important; max-height:420px; border-radius:5px; }
.cms-news-article-end { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:40px; border-top:1px solid var(--cms-line); padding-top:20px; font-size:12px; color:#8494ad; }
.cms-news-article-end button { background:none; border:0; color:#5c77a0; cursor:pointer; padding:8px; }
.cms-news-neighbors { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:24px; }
.cms-news-neighbors>div { min-width:0; border:1px solid var(--cms-line); background:white; border-radius:8px; padding:24px; font-size:14px; line-height:1.8; }
.cms-news-neighbors small { display:block; font-size:11px; color:#879bb8; margin-bottom:9px; }
.cms-news-neighbors a:hover { color:#4d74ac; }
.cms-product-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.cms-product-tile { position:relative; min-width:0; display:flex; flex-direction:column; background:white; border:1px solid #dce4ef; border-radius:4px 18px 4px 4px; overflow:hidden; transition:border-color .25s,box-shadow .25s,transform .25s; }
.cms-product-tile::after { content:""; position:absolute; bottom:0; left:0; height:3px; width:100%; background:#3b4f8b; transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.cms-product-tile:hover,.cms-product-tile:focus-within { border-color:#899fc1; box-shadow:0 16px 30px #273d6a12; transform:translateY(-4px); }
.cms-product-tile:hover::after,.cms-product-tile:focus-within::after { transform:scaleX(1); }
.cms-product-tile-image { position:relative; isolation:isolate; display:block; height:255px; background-color:#f1f5fa; background-image:linear-gradient(#d9e3ef55 1px,transparent 1px),linear-gradient(90deg,#d9e3ef55 1px,transparent 1px); background-size:32px 32px; padding:48px 25px 32px; overflow:hidden; }
.cms-product-tile-image::before { content:""; position:absolute; z-index:-1; width:160px; height:160px; border:1px solid #ccd8e9; border-radius:50%; top:50%; left:50%; transform:translate(-50%,-45%); box-shadow:0 0 0 15px #e4ebf544; }
.cms-product-tile-image img { display:block; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 8px 6px #273d6a12); transition:transform .5s; }
.cms-product-tile:hover .cms-product-tile-image img { transform:translateY(-4px) scale(1.045); }
.cms-product-material { position:absolute; top:17px; left:18px; border-left:2px solid #657eaa; padding-left:8px; color:#5c7297; font-size:10px; }
.cms-product-image-caption { position:absolute; bottom:13px; left:18px; color:#8c9bb2; font:9px/1.3 Arial,sans-serif; letter-spacing:.12em; }
.cms-product-tile-copy { padding:22px 21px 18px; display:flex; flex-direction:column; flex:1; }
.cms-product-tile-copy h3 { font:22px/1.5 var(--font-display); margin:0 0 12px; color:#203758; }
.cms-product-tile-copy p { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:13px; color:#7b8ba3; line-height:1.9; min-height:3.8em; margin:0 0 21px; }
.cms-product-tile-actions { display:flex; justify-content:space-between; gap:12px; align-items:center; border-top:1px solid #e7ecf3; padding-top:15px; margin-top:auto; font-size:12px; }
.cms-product-tile-actions>a { display:inline-flex; align-items:center; gap:12px; color:#344e7e; font-weight:600; }
.cms-product-tile-actions>a>span { display:grid; place-items:center; height:30px; width:30px; border:1px solid #d8e1ee; border-radius:50%; transition:background .2s,color .2s; }
.cms-product-tile:hover .cms-product-tile-actions>a>span { background:#3b4f8b; color:white; border-color:#3b4f8b; }
.cms-product-tile-actions button { border:0; color:#8090a7; background:transparent; padding:8px 0; cursor:pointer; font-size:11px; }
.cms-product-tile-actions button i { margin-left:4px; font-size:9px; }
.cms-product-tile-actions button:hover { color:#3b4f8b; }
@media(max-width:1199px) { .cms-product-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:1100px) { .cms-news-row:has(.cms-news-thumb) { grid-template-columns:64px minmax(0,1fr) 150px; gap:20px; }.cms-news-copy h3 { font-size:20px; }.cms-news-article { padding:30px; }.cms-product-tile-image { height:220px; }.cms-product-tile-copy { padding:22px; }.cms-product-tile-copy h3 { font-size:21px; } }
@media(max-width:760px) { .cms-news-row,.cms-news-row:has(.cms-news-thumb) { grid-template-columns:48px minmax(0,1fr); gap:15px; padding:24px 0; }.cms-news-date { grid-row:1/3; padding-right:10px; }.cms-news-date b { font-size:30px; }.cms-news-date span { font-size:10px; }.cms-news-copy h3 { font-size:19px; }.cms-news-thumb { grid-column:2; width:150px; }.cms-news-copy p { font-size:13px; }.cms-news-article { padding:25px 20px; }.cms-news-body { font-size:15px; }.cms-news-meta { gap:12px; }.cms-news-neighbors { grid-template-columns:1fr; gap:12px; }.cms-product-list { grid-template-columns:1fr; gap:22px; }.cms-product-tile-image { height:245px; } }
@media print { body.site-v2--inner { background:white; }.site-header,.cms-banner,.cms-wayfinding,.cms-sidebar,.cms-news-neighbors,.contact-footer,.mobile-bottom-nav,.cms-news-article-end button { display:none!important; }.cms-layout { display:block; padding:0; }.cms-news-article { border:0; padding:0; }.cms-news-back { display:none; } }
body.site-v2.site-v2--inner { background:#f3f5fa; }
.site-v2--inner .site-header { color:#202d50; background:rgba(255,255,255,.97); border-bottom:1px solid rgba(59,79,139,.1); box-shadow:0 8px 30px rgba(24,35,74,.12); backdrop-filter:blur(18px); }
.site-v2--inner .site-header .brand-logo--on-dark { display:none; }
.site-v2--inner .site-header .brand-logo--on-light { display:block; }
.site-v2--inner .site-header .brand-slogan { color:#65728f; border-left-color:rgba(59,79,139,.18); }
.site-v2--inner .site-header .nav-link { color:#29385f; }
.site-v2--inner .site-header .nav-link:hover,.site-v2--inner .site-header .nav-link:focus-visible,.site-v2--inner .site-header .nav-link.is-current { color:var(--blue); }
.site-v2--inner .site-header .nav-link::after { background:linear-gradient(90deg,var(--blue),#8b9fd5); }
.site-v2--inner .site-header .icon-button,.site-v2--inner .site-header .menu-toggle { border-color:rgba(59,79,139,.18); color:var(--blue); background:#f3f5fb; }
.site-v2--inner .site-header .menu-toggle span { background:var(--blue); }
.site-v2--inner .site-header .language-switch { color:#65728f; }
.site-v2--inner .site-header .language-switch b { color:#25345c; }
.site-v2--inner .site-header .language-switch i { color:var(--blue); }
.cms-banner { position:relative; height:440px; overflow:hidden; background:#13223e; isolation:isolate; }
.cms-banner-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.cms-banner--1 .cms-banner-image,.cms-banner--6 .cms-banner-image { object-position:center 68%; }
.cms-banner--2 .cms-banner-image { object-position:center 45%; }
.cms-banner-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(11,24,47,.82),rgba(14,28,56,.42) 48%,rgba(14,28,56,.12)),linear-gradient(0deg,rgba(10,25,47,.3),transparent 60%); }
.cms-banner-copy { position:relative; padding-top:195px; color:white; }
.cms-eyebrow { display:flex; align-items:center; gap:14px; font-size:11px; font-weight:700; letter-spacing:.13em; color:var(--cms-accent); }
.cms-eyebrow i { width:36px; height:1px; background:currentColor; }
.cms-banner .cms-eyebrow { color:#c2dcff; }
.cms-banner h1 { font-family:var(--font-display); font-size:clamp(38px,3vw,54px); margin:20px 0 15px; font-weight:700; }
.cms-banner p { max-width:580px; font-size:16px; line-height:1.8; color:#dfebfa; }
.cms-banner-word { position:absolute; bottom:-16px; right:5%; font:bold clamp(55px,9vw,145px)/1 Arial,sans-serif; letter-spacing:.025em; color:rgba(255,255,255,.08); pointer-events:none; }
.cms-wayfinding { background:white; border-bottom:1px solid var(--cms-line); }
.cms-wayfinding>.page-shell { display:flex; justify-content:space-between; gap:20px; align-items:center; min-height:65px; font-size:13px; }
.cms-wayfinding>.page-shell>span { border-left:3px solid #3c88c1; padding-left:12px; font-weight:700; }
.cms-wayfinding nav { display:flex; gap:12px; align-items:center; flex-wrap:wrap; color:var(--cms-muted); }
.cms-wayfinding a:hover { color:var(--cms-accent); }
.cms-layout { display:grid; grid-template-columns:250px minmax(0,1fr); gap:45px; padding-block:60px 90px; align-items:start; }
.cms-sidebar { position:sticky; top:120px; display:grid; gap:22px; }
.cms-menu-panel { border:1px solid var(--cms-line); border-radius:15px; background:white; overflow:hidden; }
.cms-menu-heading { background:#1b2b52; padding:27px 24px; color:white; position:relative; overflow:hidden; }
.cms-menu-heading::after { content:""; position:absolute; width:130px; height:130px; border:20px solid rgba(142,172,225,.09); border-radius:50%; right:-65px; top:-38px; }
.cms-menu-heading small { color:#a3c8ec; letter-spacing:.14em; font-size:10px; }
.cms-menu-heading h2 { font-family:var(--font-display); font-size:24px; margin:10px 0; }
.cms-menu-heading>span { font-size:12px; opacity:.7; }
.cms-side-menu { display:grid; gap:8px; padding:12px; }
.cms-side-menu a { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:16px 13px; border-radius:6px; font-size:14px; transition:background .2s,color .2s; }
.cms-side-menu i { font-size:11px; opacity:.5; transition:transform .2s; }
.cms-side-menu a:hover,.cms-side-menu .is-current { color:white; background:var(--cms-accent); }
.cms-side-menu a:hover i { transform:translateX(3px); opacity:1; }
.cms-side-consult { position:relative; overflow:hidden; padding:26px 23px; border:1px solid #cedbf0; border-radius:15px; background:linear-gradient(135deg,#eaf2fb,#dce7f7); }
.cms-side-consult>i { display:block; color:#42689f; font-size:29px; margin-bottom:18px; }
.cms-side-consult small { font-size:9px; letter-spacing:.13em; color:#6882a2; }
.cms-side-consult h3 { font-size:18px; margin:12px 0; }
.cms-side-consult p { font-size:13px; line-height:1.8; color:#687c96; }
.cms-side-consult button { display:flex; justify-content:space-between; gap:15px; width:100%; padding:13px 14px; border:0; background:var(--cms-accent); color:white; border-radius:8px; margin:20px 0 14px; cursor:pointer; }
.cms-side-consult>a { font-size:18px; font-weight:bold; }
.cms-main-content { min-width:0; }
.cms-section-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; padding-bottom:26px; border-bottom:1px solid var(--cms-line); margin-bottom:28px; }
.cms-section-heading h2 { font:30px/1.4 var(--font-display); margin:10px 0 0; }
.cms-section-heading p { font-size:13px; color:var(--cms-muted); }
.cms-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.cms-card { background:white; border:1px solid var(--cms-line); border-radius:14px; overflow:hidden; min-width:0; transition:transform .25s,box-shadow .25s,border-color .25s; }
.cms-card:hover { transform:translateY(-5px); border-color:#b9cae4; box-shadow:0 12px 28px rgba(35,57,93,.09); }
.cms-card-media { position:relative; background:#edf2f8; }
.cms-card-media>small { position:absolute; top:17px; left:18px; color:white; background:rgba(25,47,78,.75); border-radius:4px; padding:6px 9px; font-size:11px; pointer-events:none; }
.cms-image-view { width:100%; height:270px; border:0; padding:0; display:block; overflow:hidden; position:relative; background:#edf2f8; cursor:zoom-in; }
.cms-image-view img { width:100%; height:100%; object-fit:contain; transition:transform .6s; }
.cms-grid--2 .cms-image-view img,.cms-grid--1 .cms-image-view img { object-fit:contain; padding:15px; }
.cms-image-view:hover img { transform:scale(1.05); }
.cms-image-view>span { position:absolute; bottom:15px; right:15px; display:flex; gap:8px; align-items:center; background:white; color:var(--cms-accent); padding:10px 12px; border-radius:6px; font-size:12px; opacity:0; transform:translateY(6px); transition:opacity .2s,transform .2s; }
.cms-image-view:hover>span,.cms-image-view:focus-visible>span { opacity:1; transform:none; }
.cms-card-copy { padding:25px; }
.cms-card-copy>small { display:block; color:#6c88ac; font-size:11px; }
.cms-card h3 { font-size:22px; margin:11px 0; line-height:1.5; }
.cms-card-copy p { font-size:14px; line-height:1.9; color:var(--cms-muted); margin-bottom:20px; }
.cms-card-copy p:empty { display:none; }
.cms-card-link { border-top:1px solid #e6ebf3; padding-top:17px; display:flex; justify-content:space-between; color:#426494; font-size:13px; }
.cms-grid--1 .cms-card:not(:has(.cms-card-media)) { border-top:3px solid #698cbd; }
.cms-grid--1 .cms-card:not(:has(.cms-card-media)) .cms-card-copy>small { font:bold 26px/1.4 Arial,sans-serif; color:#5c86b7; }
.cms-card-link i { transition:transform .2s; }
.cms-card:hover .cms-card-link i { transform:translateX(5px); }
.cms-story,.cms-product-detail { background:white; border:1px solid var(--cms-line); border-radius:16px; padding:40px; }
.cms-story-heading { border-bottom:1px solid var(--cms-line); margin-bottom:30px; padding-bottom:25px; }
.cms-story-heading h2 { font:clamp(25px,2vw,34px)/1.5 var(--font-display); margin:14px 0; overflow-wrap:anywhere; }
.cms-story-heading p { font-size:13px; color:var(--cms-muted); }
.cms-article { font-size:16px; line-height:2.1; color:#405574; overflow-wrap:anywhere; }
.cms-article p { margin:0 0 23px; }
.cms-article h2,.cms-article h3 { margin:30px 0 16px; color:#183856; }
.cms-article img,.cms-article video { max-width:100%; height:auto; border-radius:8px; }
.cms-article table { max-width:100%; border-collapse:collapse; display:block; overflow:auto; }
.cms-article td,.cms-article th { padding:10px; border:1px solid var(--cms-line); }
.cms-detail-photo { margin:28px 0 0; }
.cms-detail-photo button,.cms-rich-image { display:block; width:100%; padding:0; border:0; background:#f0f4f9; cursor:zoom-in; border-radius:10px; overflow:hidden; }
.cms-detail-photo img { max-width:100%; max-height:650px; object-fit:contain; display:block; margin:auto; }
.cms-detail-photo figcaption { text-align:center; font-size:12px; color:var(--cms-muted); padding:12px; }
.cms-detail-actions { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-top:25px; padding:24px 28px; border:1px solid var(--cms-line); background:white; border-radius:10px; font-size:13px; }
.cms-detail-actions button { border:0; background:none; color:var(--cms-accent); cursor:pointer; }
.cms-detail-actions i { margin-inline:8px; }
.cms-product-intro { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:32px; align-items:start; }
.cms-product-image { position:relative; display:block; width:100%; height:350px; border:1px solid #e1e7f1; border-radius:12px; background:#f3f6fa; padding:0; overflow:hidden; cursor:zoom-in; }
.cms-product-image>img { width:100%; height:100%; object-fit:contain; }
.cms-zoom-hint { position:absolute; bottom:0; left:0; width:100%; background:rgba(24,42,74,.83); color:white; padding:11px; font-size:11px; pointer-events:none; }
.cms-magnifier { position:absolute; width:150px; height:150px; border:3px solid white; border-radius:50%; box-shadow:0 3px 18px #10234355; background-repeat:no-repeat; display:none; pointer-events:none; z-index:2; }
.cms-product-thumbs { display:flex; flex-wrap:wrap; gap:10px; margin-top:13px; }
.cms-product-thumbs button { width:62px; height:62px; border:1px solid #d3dce9; background:#f5f8fb; border-radius:7px; padding:4px; cursor:pointer; }
.cms-product-thumbs img { width:100%; height:100%; object-fit:contain; }
.cms-product-thumbs .is-current { border:2px solid var(--cms-accent); }
.cms-product-summary { padding-top:9px; }
.cms-product-summary h2 { font:clamp(24px,2vw,32px)/1.5 var(--font-display); margin:17px 0; }
.cms-product-summary>p { color:var(--cms-muted); font-size:14px; line-height:1.9; }
.cms-product-tags { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0; }
.cms-product-tags span { font-size:11px; color:#4d6692; border:1px solid #d5dfef; background:#f4f7fc; padding:7px 9px; border-radius:4px; }
.cms-product-note { display:flex; gap:12px; font-size:12px; line-height:1.8; color:#798aa0; border-top:1px solid var(--cms-line); padding-top:19px; margin:0 0 23px; }
.cms-product-note i { margin-top:4px; color:#7396c6; font-size:18px; }
.cms-product-phone { display:block; font-size:14px; margin-top:17px; color:#6482ab; }
.cms-content-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; border-bottom:1px solid var(--cms-line); margin:35px 0 25px; padding-bottom:16px; }
.cms-content-heading h3 { border-left:3px solid #437cbd; padding-left:14px; font-size:20px; margin:0; }
.cms-content-heading span { font-size:10px; letter-spacing:.12em; color:#97a8bf; }
.cms-pagination { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:36px; font-size:13px; }
.cms-pagination a { border:1px solid var(--cms-line); background:white; padding:9px 14px; border-radius:5px; }
.cms-pagination a:hover { background:var(--cms-accent); color:white; }
.cms-contact-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:18px; }
.cms-contact-grid>a,.cms-contact-grid>button,.cms-contact-grid>div { display:grid; text-align:left; gap:9px; padding:25px; border:1px solid var(--cms-line); background:#f6f9fd; border-radius:10px; color:#284568; font-family:inherit; }
.cms-contact-grid>div:last-child { grid-column:1/-1; }
.cms-contact-grid b>a { color:inherit; text-decoration:none; }
.cms-contact-grid b>a:hover { color:var(--blue); }
.cms-contact-grid i { font-size:24px; color:#567fb2; }
.cms-contact-grid b { font-size:16px; overflow-wrap:anywhere; }
.cms-contact-grid small { color:var(--cms-muted); }
.cms-contact-grid>div:first-child { grid-row:span 2; background:#263b68; color:white; padding:36px; align-content:center; gap:16px; }
.cms-contact-grid>div:first-child i { color:#bed7f6; font-size:32px; }
.cms-contact-grid>div:first-child small { color:#c2d4ee; }
.cms-contact-grid>div:first-child b { font-size:clamp(17px,1.4vw,23px); line-height:1.7; }
.cms-contact-grid>div:nth-child(2) { grid-column:2; grid-row:2; }
.cms-contact-grid>div:nth-child(3) { grid-column:2; grid-row:1; }
.cms-contact-grid>div:last-child { grid-template-columns:40px 1fr; align-items:center; background:#edf3fa; }
.cms-contact-grid>div:last-child i { grid-row:span 2; }
.cms-contact-grid>div { transition:border-color .2s,box-shadow .2s; }
.cms-contact-grid>div:hover { border-color:#97b1d2; box-shadow:0 6px 20px #243c6410; }
.cms-contact-grid a:focus-visible { outline-offset:4px; }
.cms-rich-image { display:flex; justify-content:center; align-items:center; margin:24px auto; padding:18px; }
.cms-rich-image img { display:block; margin-inline:auto!important; object-fit:contain; max-height:850px; }
.cms-article a[data-image-view] { display:block; text-align:center; }
.cms-article a[data-image-view] img { display:block; margin-inline:auto!important; }
.cms-history-intro { border-left:4px solid #5775b0; padding:8px 0 8px 24px; margin:8px 0 45px; }
.cms-contact-map { margin-top:25px; border:1px solid var(--cms-line); border-radius:15px; overflow:hidden; background:white; }
.cms-contact-map header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:25px 30px; }
.cms-contact-map h3 { font:24px/1.4 var(--font-display); margin:10px 0 0; }
.cms-contact-map header>span { color:var(--cms-muted); font-size:12px; }
.cms-contact-map iframe { display:block; min-height:387px; width:100%; height:420px; border:0; background:#edf2f8; }
.cms-history-intro>span { font-size:12px; color:#6984ab; letter-spacing:.15em; }
.cms-history-intro h3 { font:clamp(24px,2vw,32px)/1.6 var(--font-display); margin:12px 0; }
.cms-history-intro p { font-size:14px; color:var(--cms-muted); }
.cms-timeline { position:relative; }
.cms-timeline::before { content:""; position:absolute; top:12px; bottom:35px; left:155px; width:1px; background:#c5d3e8; }
.cms-timeline-item { position:relative; display:grid; grid-template-columns:130px minmax(0,1fr); gap:55px; padding:0 0 30px; }
.cms-timeline-item::before { content:""; position:absolute; top:20px; left:149px; width:13px; height:13px; border-radius:50%; background:#5b7eb4; border:3px solid #f3f5fa; box-shadow:0 0 0 1px #9eb3d2; transition:background .2s,box-shadow .2s; }
.cms-timeline-year { padding-top:10px; text-align:right; font:700 clamp(23px,2vw,34px)/1.3 Arial,sans-serif; color:#3b4f8b; }
.cms-timeline-copy { background:white; border:1px solid var(--cms-line); border-radius:12px; padding:25px 30px; transition:border-color .2s,transform .2s; }
.cms-timeline-copy h3 { font-size:22px; margin:0 0 13px; }
.cms-timeline-copy p { color:var(--cms-muted); font-size:14px; line-height:1.9; }
.cms-timeline-link { display:inline-flex; gap:18px; align-items:center; margin-top:18px; font-size:12px; color:#5c7cac; }
.cms-timeline-item:hover .cms-timeline-copy { border-color:#9cb3d4; transform:translateX(3px); }
.cms-timeline-item:hover::before { background:#233b70; box-shadow:0 0 0 5px #c7d5eb; }
@media(max-width:760px) {
 .cms-contact-grid>div:first-child { grid-row:auto; padding:27px; }
 .cms-contact-grid>div:nth-child(2),.cms-contact-grid>div:nth-child(3) { grid-column:auto; grid-row:auto; }
 .cms-contact-grid>div:last-child { grid-template-columns:30px 1fr; }
 .cms-timeline::before { left:7px; }
 .cms-timeline-item { grid-template-columns:1fr; gap:10px; padding-left:30px; }
 .cms-timeline-item::before { left:1px; top:18px; }
 .cms-timeline-year { text-align:left; font-size:28px; }
 .cms-timeline-copy { padding:22px; }
 .cms-timeline-copy h3 { font-size:19px; }
 .cms-history-intro { margin-bottom:28px; padding-left:18px; }
 .cms-rich-image { padding:8px; }
}
.cms-main { padding-block:150px 90px; min-height:60vh; }
.cms-main h1 { font:36px/1.5 var(--font-display); }
.cms-search { display:flex; gap:12px; margin:25px 0; }
.cms-search input { flex:1; min-width:0; border:1px solid var(--cms-line); padding:15px; }
.cms-search button { background:var(--cms-accent); border:0; color:white; padding:0 28px; }
.cms-lightbox { width:min(1250px,94vw); max-width:94vw; height:min(850px,92dvh); max-height:92dvh; margin:auto; padding:0; border:1px solid #6e85a9; border-radius:16px; color:white; background:#121f36; overflow:hidden; }
.cms-lightbox::backdrop { background:rgba(5,12,26,.88); backdrop-filter:blur(5px); }
body:has(.cms-lightbox[open]) { overflow:hidden; }
.cms-lightbox-head { display:flex; gap:20px; justify-content:space-between; align-items:center; min-height:65px; padding:15px 22px; border-bottom:1px solid #334460; }
.cms-lightbox-head h2 { font-size:16px; margin:0; max-width:80%; }
.cms-lightbox button { border:1px solid #607493; color:white; background:#263852; border-radius:7px; padding:9px 12px; cursor:pointer; }
.cms-lightbox-stage { position:relative; height:calc(100% - 160px); }
.cms-lightbox-viewport { width:100%; height:100%; overflow:auto;place-items:center; }
.cms-lightbox-image { display:block; max-width:85%; max-height:100%; object-fit:contain; }
.cms-lightbox-viewport.is-zoomed { display:block; }
.cms-lightbox-viewport.is-zoomed .cms-lightbox-image { max-width:none; max-height:none; width:160%; margin:0; }
.cms-lightbox-prev,.cms-lightbox-next { position:absolute; top:50%; transform:translateY(-50%); z-index:2; }
.cms-lightbox-prev { left:13px; }.cms-lightbox-next { right:13px; }
.cms-lightbox-foot { height:95px; display:flex; align-items:center; gap:18px; padding:12px 22px; border-top:1px solid #334460; }
.cms-lightbox-count { font-size:12px; min-width:55px; }
.cms-lightbox-thumbs { display:flex; gap:8px; overflow-x:auto; flex:1; }
.cms-lightbox-thumbs button { width:53px; height:53px; padding:3px; flex:0 0 auto; }
.cms-lightbox-thumbs img { width:100%; height:100%; object-fit:contain; }
.cms-lightbox-thumbs .is-current { border-color:#8dd5ff; background:#476b91; }
.site-v2--inner :is(a,button):focus-visible { outline:3px solid #49a7d6; outline-offset:3px; }
@media(min-width:1600px) { .cms-layout { grid-template-columns:275px minmax(0,1fr); gap:55px; }.cms-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.cms-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:1100px) { .cms-layout { grid-template-columns:215px minmax(0,1fr); gap:25px; }.cms-story,.cms-product-detail { padding:25px; }.cms-product-intro { grid-template-columns:1fr; }.cms-product-image { height:380px; }.cms-sidebar { top:110px; } }
@media(max-width:760px) { .cms-banner { height:330px; }.cms-banner-copy { padding-top:140px; }.cms-banner h1 { font-size:35px; }.cms-banner p { font-size:13px; max-width:90%; }.cms-banner-word { font-size:55px; bottom:0; }.cms-wayfinding>.page-shell { min-height:55px; }.cms-wayfinding>.page-shell>span { display:none; }.cms-wayfinding nav { gap:9px; font-size:11px; }.cms-layout { grid-template-columns:1fr; gap:25px; padding-block:25px 45px; }.cms-sidebar { position:static; }.cms-menu-heading { padding:17px 20px; }.cms-menu-heading h2 { font-size:20px; margin:7px 0 0; }.cms-menu-heading>span { display:none; }.cms-side-menu { display:flex; overflow:auto; gap:6px; padding:10px; }.cms-side-menu a { flex:0 0 auto; padding:11px; font-size:12px; }.cms-side-menu i { display:none; }.cms-side-consult,.cms-side-sections { display:none; }.cms-grid { grid-template-columns:1fr; gap:20px; }.cms-section-heading { gap:10px; align-items:start; }.cms-section-heading h2 { font-size:25px; }.cms-section-heading>p { display:none; }.cms-image-view { height:250px; }.cms-image-view>span { opacity:1; transform:none; }.cms-story,.cms-product-detail { padding:23px 18px; border-radius:12px; }.cms-story-heading h2 { font-size:25px; }.cms-article { font-size:15px; }.cms-product-image { height:300px; }.cms-product-summary h2 { font-size:25px; }.cms-detail-actions { padding:20px 17px; flex-wrap:wrap; font-size:12px; }.cms-contact-grid { grid-template-columns:1fr; }.cms-lightbox { height:85dvh; width:96vw; max-width:96vw; }.cms-lightbox-head h2 { font-size:13px; }.cms-lightbox-foot { padding:10px; gap:8px; }.cms-lightbox-foot>button { font-size:11px; }.cms-lightbox-image { max-width:100%; }.cms-lightbox-prev { left:5px; }.cms-lightbox-next { right:5px; }.cms-magnifier { display:none!important; }.cms-main { padding-top:110px; }.cms-content-heading span { display:none; } }
@media(prefers-reduced-motion:reduce) { .site-v2--inner * { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

/* Product catalog: large photography within the shared inner-page layout. */
.product-catalog { --catalog-ink:#203758; --catalog-accent:#3b4f8b; }
.catalog-enquire { flex:none; display:inline-flex; align-items:center; gap:12px; padding:10px 0 10px 16px; border:0; background:none; color:var(--catalog-accent); font:500 13px/1.4 var(--font-body,sans-serif); cursor:pointer; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px 20px; align-items:start; counter-reset:catalog-product; }
.catalog-product { min-width:0; counter-increment:catalog-product; }
.catalog-product-link { display:block; position:relative; color:inherit; background:white; border:1px solid #dbe3ee; border-radius:8px; overflow:hidden; box-shadow:0 2px 8px #20375806; transition:border-color .25s,box-shadow .25s; }
.catalog-product-link::after { content:""; position:absolute; inset:auto 0 0; height:3px; background:var(--catalog-accent); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.catalog-image { position:relative; display:block; aspect-ratio:800/545; overflow:hidden; background:#e5e6e9; }
.catalog-image img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .4s ease; }
.catalog-number { position:absolute; right:14px; bottom:14px; display:grid; place-items:center; width:38px; height:30px; background:#fffffff0; border:1px solid #ffffffb0; color:#3b4f8b; font:500 13px/1 Consolas,monospace; letter-spacing:.05em; }
.catalog-number::before { content:counter(catalog-product,decimal-leading-zero); }
.catalog-caption { padding:19px 20px 17px; }
.catalog-caption h3 { margin:0; color:var(--catalog-ink); font:19px/1.55 var(--font-display,var(--font-body,sans-serif)); overflow-wrap:anywhere; transition:color .2s; }
.catalog-meta { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:16px; padding-top:13px; border-top:1px solid #e5eaf1; }
.catalog-category { display:block; position:relative; color:#75849a; padding-left:10px; font-size:11px; line-height:1.6; }
.catalog-category::before { content:""; position:absolute; left:0; top:.35em; width:2px; height:1em; background:#879bc0; }
.catalog-action { display:inline-flex; flex:none; align-items:center; gap:10px; color:#3b4f8b; font-size:12px; font-weight:600; white-space:nowrap; }
.catalog-action i { display:grid; place-items:center; width:28px; height:28px; border:1px solid #d7e0ec; border-radius:50%; font-size:11px; transition:color .2s,background .2s,border-color .2s; }
.catalog-product-link:hover,.catalog-product-link:focus-visible { border-color:#8b9fbd; box-shadow:0 9px 24px #20375810; }
.catalog-product-link:hover::after,.catalog-product-link:focus-visible::after { transform:scaleX(1); }
.catalog-product-link:hover .catalog-image img { transform:scale(1.025); }
.catalog-product-link:hover h3 { color:#486b9e; }
.catalog-product-link:hover .catalog-action i { background:#3b4f8b; border-color:#3b4f8b; color:white; }
.catalog-product-link:focus-visible,.catalog-enquire:focus-visible { outline:2px solid #3b4f8b; outline-offset:4px; }
.product-catalog .cms-pagination { margin-top:36px; }
html[lang=en] .catalog-caption h3 { font:600 18px/1.5 var(--font-body,sans-serif); }
@media(max-width:1100px) {
    .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 18px; }
    .catalog-caption { padding:16px 15px 14px; }
    .catalog-caption h3 { font-size:18px; }
    .catalog-meta { gap:9px; margin-top:13px; padding-top:11px; }
    .catalog-action { gap:7px; font-size:11px; }
    .catalog-category { font-size:10px; }
}
@media(max-width:600px) {
    .catalog-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
    .catalog-caption { padding:18px; }
    .catalog-meta { margin-top:14px; padding-top:12px; }
    .catalog-category { font-size:11px; }
    .catalog-enquire { font-size:12px; gap:8px; }
    .product-catalog .cms-pagination { margin-top:28px; }
}
@media(prefers-reduced-motion:reduce) {
    .catalog-product-link,.catalog-product-link::after,.catalog-image img,.catalog-action i { transition:none; }
}

/* Product banner uses the homepage steel-ball close-up. */
.cms-banner--2 .cms-banner-image,.cms-banner--31 .cms-banner-image { object-position:center 62%; }
@media(max-width:760px) {
    .cms-banner--2 .cms-banner-image,.cms-banner--31 .cms-banner-image { object-position:78% 58%; }
}
