
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("c65bab8042.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("4eae1c91ec.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("6569eafa75.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("58f2b5615e.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("6569eafa75.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("58f2b5615e.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --color-bg: #f3f2f2;
  --color-surface: #eae9e9;
  --color-text: #201e1d;
  --color-accent: #0088b0;
  --color-accent-2: #d6006c;
  --color-divider: color-mix(in srgb, #201e1d 16%, transparent);
  --color-neutral-100: #f8f4f4;
  --color-neutral-200: #eae7e7;
  --color-neutral-300: #d7d3d3;
  --color-neutral-400: #bab6b6;
  --color-neutral-500: #9b9797;
  --color-neutral-600: #7d7979;
  --color-neutral-700: #605d5d;
  --color-neutral-800: #444141;
  --color-neutral-900: #2d2b2b;
  --color-accent-100: #e9f8ff;
  --color-accent-200: #cbeeff;
  --color-accent-300: #99e0ff;
  --color-accent-400: #62c5ee;
  --color-accent-500: #38a6cf;
  --color-accent-600: #1186ac;
  --color-accent-700: #006786;
  --color-accent-800: #004961;
  --color-accent-900: #0a303e;
  --color-accent-2-100: #fff1f4;
  --color-accent-2-200: #ffdee6;
  --color-accent-2-300: #ffc0d0;
  --color-accent-2-400: #ff90b1;
  --color-accent-2-500: #ff458e;
  --color-accent-2-600: #d82071;
  --color-accent-2-700: #aa0b56;
  --color-accent-2-800: #790e3d;
  --color-accent-2-900: #4b1528;
  --color-process-yellow: #edbb00;
  --font-heading: "Source Serif 4", system-ui, sans-serif;
  --font-heading-weight: 600;
  --font-body: "Source Serif 4", system-ui, sans-serif;
  --space-1: 5.0px;
  --space-2: 10.0px;
  --space-3: 15.0px;
  --space-4: 20.0px;
  --space-6: 30.0px;
  --space-8: 40.0px;
  --radius-sm: 1px;
  --radius-md: 2px;
  --radius-lg: 4px;
  --shadow-sm: 0 1px 2px color-mix(in srgb, #2d2b2b 14%, transparent);
  --shadow-md: 0 3px 10px color-mix(in srgb, #2d2b2b 16%, transparent);
  --shadow-lg: 0 12px 32px color-mix(in srgb, #2d2b2b 22%, transparent);
}
body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
}
h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: var(--font-heading-weight); }
.halftone{position:relative;filter:grayscale(0.35) contrast(1.15);overflow:hidden}
.halftone::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(0,0,0,0.22) 30%,transparent 32%);
  background-size:3px 3px;mix-blend-mode:multiply}
.cmyk{position:relative;overflow:hidden;background:var(--color-bg)}

.cmyk img+img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.cmyk::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(0,0,0,0.10) 30%,transparent 32%);
  background-size:3px 3px;mix-blend-mode:multiply}
.cmyk .print{position:relative;width:100%}
.cmyk .print img{width:100%;height:100%;object-fit:cover;display:block}
.cmyk-num{--cmyk-num-ground:var(--color-bg);
  position:relative;width:fit-content;line-height:0.9;
  font-feature-settings:"pnum" 1;
  background:var(--cmyk-num-ground);padding:0.12em;margin:-0.12em}
.cmyk-num .paper{color:var(--color-bg); 
  text-shadow:0.036em 0.025em 0 var(--color-bg),-0.031em -0.023em 0 var(--color-bg)}
.cmyk-num .plate{position:absolute;inset:0.12em;mix-blend-mode:multiply;
  text-box:trim-both cap alphabetic }
.cmyk-num .plate-c{color:var(--color-accent)}
.cmyk-head{position:relative}
.cmyk-head .paper{color:var(--color-bg);
  text-shadow:0.027em 0.0185em 0 var(--color-bg),-0.0245em -0.0175em 0 var(--color-bg)
  }
.cmyk-head .plate{position:absolute;inset:0;mix-blend-mode:multiply;
  pointer-events:none;user-select:none;
  text-box:trim-both cap alphabetic }
.cmyk-head .plate-c{color:var(--color-accent)}
.cmyk-head .plate-m{color:var(--color-accent-2);
  translate:calc(0.018em + 0.009em*var(--press-nx, 0)) calc(0.0125em + 0.006em*var(--press-ny, 0))}
.cmyk-head .plate-y{color:var(--color-process-yellow);
  translate:calc(-0.0155em + 0.009em*var(--press-nx, 0)) calc(-0.0115em + 0.006em*var(--press-ny, 0))}
.cmyk-num .plate-m{color:var(--color-accent-2);
  translate:calc(0.036em + 0.018em*var(--press-nx, 0)) calc(0.025em + 0.0125em*var(--press-ny, 0))}
.cmyk-num .plate-y{color:var(--color-process-yellow);
  translate:calc(-0.031em + 0.018em*var(--press-nx, 0)) calc(-0.023em + 0.0125em*var(--press-ny, 0))}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-size: 15px; line-height: 1.55; font-weight: 400; }
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  line-height: 1.12; letter-spacing: -0.015em; margin: 0 0 var(--space-2);
}
h1 { font-size: 42px; }
h2 { font-size: 32px; }
h3 { font-size: 25px; }
h4 { font-size: 20px; }
h5 { font-size: 16px; }
h6 { font-size: 13px; }
h6 { letter-spacing: 0.08em; text-transform: uppercase; }
p { margin: 0 0 var(--space-3); }
a { color: var(--color-accent); text-underline-offset: 3px; }
img { display: block; max-width: 100%; }
figure { margin: 0; }
figcaption {
  font-size: 11px; margin-top: var(--space-1);
  color: color-mix(in srgb, var(--color-text) 55%, transparent);
}
.text-muted { color: color-mix(in srgb, var(--color-text) 55%, transparent); }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
::selection { background: color-mix(in srgb, var(--color-accent) 30%, transparent); }
.hr {
  height: 1px; border: 0; margin: var(--space-4) 0;
  background: var(--color-divider);
}
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  cursor: pointer; text-decoration: none;
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 14px; line-height: 1.2; color: var(--color-text); 
  background: transparent; border: 1px solid transparent;
  padding: var(--space-2) calc(var(--space-3) * 1.2);
  border-radius: var(--radius-md);
}
.btn svg { display: block; }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-primary { background: var(--color-accent); color: var(--color-bg); }
.btn-primary:hover { background: var(--color-accent-600); }
.btn-primary:active { background: var(--color-accent-700); }
.btn-secondary { border-color: var(--color-divider); }
.btn-secondary:hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); }
.btn-secondary:active { background: color-mix(in srgb, var(--color-text) 14%, transparent); }
.btn-ghost { color: var(--color-accent); padding-inline: var(--space-1); }
.btn-ghost:hover { background: color-mix(in srgb, var(--color-accent) 10%, transparent); }
.btn-ghost:active { background: color-mix(in srgb, var(--color-accent) 18%, transparent); }
.btn-icon { width: 36px; height: 36px; padding: 0; }
.btn-block { width: 100%; margin-top: var(--space-2); }
.field > label {
  display: block; font-size: 12px; margin-bottom: 5px;
  color: color-mix(in srgb, var(--color-text) 70%, transparent);
}
.input {
  width: 100%; min-height: 36px; padding: 6px 10px; font: inherit;
  font-size: 14px; color: var(--color-text); caret-color: var(--color-accent);
  background: var(--color-surface);
  border: 1px solid var(--color-divider); border-radius: var(--radius-md);
}
.input::placeholder { color: color-mix(in srgb, var(--color-text) 65%, transparent); opacity: 1; }
.input:hover { border-color: color-mix(in srgb, var(--color-text) 45%, transparent); }
.input:focus-visible { border-color: var(--color-accent); outline-offset: 0; }
textarea.input { min-height: 90px; resize: vertical; }
.radio { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; }
.radio input, .seg-opt input {
  position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;
}
.radio .dot {
  width: 16px; height: 16px; flex: none; border-radius: 50%;
  border: 1.5px solid var(--color-divider);
}
.radio:hover .dot { border-color: var(--color-accent); }
.radio input:checked + .dot {
  border-color: var(--color-accent); background: var(--color-accent);
  box-shadow: inset 0 0 0 4px var(--color-bg);
}
.radio input:focus-visible + .dot { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.seg {
  display: inline-flex; overflow: hidden;
  border: 1px solid var(--color-divider); border-radius: var(--radius-md);
}
.seg-opt {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 12px; font-size: 13px; cursor: pointer;
}
.seg-opt + .seg-opt { border-left: 1px solid var(--color-divider); }
.seg-opt:has(input:checked) { background: var(--color-accent); color: var(--color-bg); }
.seg-opt:not(:has(input:checked)):hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); }
.seg-opt:has(input:focus-visible) { outline: 2px solid var(--color-accent); outline-offset: -2px; }
.card {
  display: flex; flex-direction: column; gap: var(--space-2);
  padding: var(--space-3); border-radius: var(--radius-md); background: var(--color-surface);
}
.card-kicker { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent); }
.card-title {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 17px; line-height: 1.2;
}
.card-body { margin: 0; font-size: 13px; opacity: 0.8; flex: 1; }
.card-meta {
  display: flex; align-items: center; gap: 6px; font-size: 11px;
  color: color-mix(in srgb, var(--color-text) 50%, transparent);
}
.elev-sm { box-shadow: var(--shadow-sm); }
.elev-md { box-shadow: var(--shadow-md); }
.elev-lg { box-shadow: var(--shadow-lg); }
.tag {
  display: inline-flex; align-items: center; font-size: 11px;
  letter-spacing: 0.02em; padding: 3px 10px;
  border-radius: calc(var(--radius-md) * 0.75);
}
.tag-accent { background: var(--color-accent-100); color: var(--color-accent-800); }
.tag-accent-2 { background: var(--color-accent-2-100); color: var(--color-accent-2-800); }
.tag-neutral { background: var(--color-neutral-100); color: var(--color-neutral-800); }
.tag-outline { border: 1px solid var(--color-accent); color: var(--color-accent); }
.nav {
  display: flex; align-items: center; gap: var(--space-4);
  padding: var(--space-3) var(--space-4);
  border-bottom: none;
}
.nav-brand {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 18px; margin-right: auto;
}
.nav a { color: inherit; text-decoration: none; font-size: 14px; }
.nav a:hover, .nav a[aria-current='page'] { color: var(--color-accent); }
.table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table th {
  text-align: left; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  color: color-mix(in srgb, var(--color-text) 60%, transparent);
  padding: var(--space-2); border-bottom: 1px solid var(--color-divider);
}
.table td {
  padding: var(--space-2);
  border-bottom: 1px solid color-mix(in srgb, var(--color-text) 8%, transparent);
}
.table tbody tr:hover { background: color-mix(in srgb, var(--color-text) 4%, transparent); }
.dialog-backdrop {
  position: fixed; inset: 0; display: grid; place-items: center;
  padding: var(--space-4);
  background: color-mix(in srgb, var(--color-neutral-900) 50%, transparent);
}
.dialog {
  width: min(440px, 100%); display: flex; flex-direction: column; gap: var(--space-3);
  padding: var(--space-4); border-radius: var(--radius-lg);
  background: var(--color-surface); box-shadow: var(--shadow-lg);
}
.dialog-title {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 20px;
}
.dialog-body { font-size: 14px; opacity: 0.85; }
.dialog-actions { display: flex; justify-content: flex-end; gap: var(--space-2); margin-top: var(--space-2); }
    a:hover { color: var(--color-accent-700); }
    :root {
  --color-bg: #ffffff;
  --color-surface: #f2f7f8;
  --color-divider: color-mix(in srgb, #0a2540 14%, transparent);
  --color-accent: #0e9aa3;
  --color-accent-100: #e6f7f7;
  --color-accent-200: #c1ecec;
  --color-accent-300: #86dcdb;
  --color-accent-400: #4ac6c4;
  --color-accent-500: #1cadab;
  --color-accent-600: #0e9aa3;
  --color-accent-700: #0a7880;
  --color-accent-800: #095a61;
  --color-accent-900: #0a3d42;
  --color-accent-2: #0a2540;
  --color-accent-2-100: #e9eef5;
  --color-accent-2-200: #cbd8e8;
  --color-accent-2-300: #9db4d1;
  --color-accent-2-400: #5f88b0;
  --color-accent-2-500: #2f6090;
  --color-accent-2-600: #16436e;
  --color-accent-2-700: #0a2540;
  --color-accent-2-800: #081c31;
  --color-accent-2-900: #061424;
}
    @media (max-width: 900px) { .resp-grid-2col { grid-template-columns: 1fr !important; } }
/* ---- static rebuild additions ---- */
.img-slot{width:100%;height:100%;min-height:180px;display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(45deg,var(--color-neutral-200),var(--color-neutral-200) 10px,var(--color-neutral-100) 10px,var(--color-neutral-100) 20px);
  border:1px solid var(--color-divider);color:color-mix(in srgb,var(--color-text) 45%,transparent);
  font-size:12px;text-align:center;padding:var(--space-3)}
.wrap{padding-left:var(--space-4)!important;padding-right:var(--space-4)!important}
header a{color:#fff;text-decoration:none}
header a:hover{text-decoration:underline}
.navtoggle{display:none}
#navcheck{position:absolute;opacity:0;pointer-events:none}
.mobilenav{display:none;flex-direction:column;gap:var(--space-3);padding:0 0 var(--space-4)}
#navcheck:checked~.mobilenav{display:flex}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--space-4);top:var(--space-2);z-index:99;background:#fff;color:#000;padding:8px 12px}
@media (max-width:920px){
  .navlinks{display:none!important}
  .navcta{display:none!important}
  .navtoggle{display:inline-flex}
  section[style*="grid-template-columns"]{grid-template-columns:1fr!important}
  footer div[style*="grid-template-columns"]{grid-template-columns:1fr 1fr!important}
  h1{font-size:34px}h2{font-size:26px}
}
@media (max-width:560px){footer div[style*="grid-template-columns"]{grid-template-columns:1fr!important}}
.formnote{grid-column:1/-1;font-size:12px;color:color-mix(in srgb,var(--color-text) 55%,transparent);margin:0}
fieldset{border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4) var(--space-4);margin:0 0 var(--space-3);grid-column:1/-1}
legend{font-family:var(--font-heading);font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-700);padding:0 6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
@media (max-width:640px){.grid2{grid-template-columns:1fr}}
select.input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--color-text) 50%),linear-gradient(135deg,var(--color-text) 50%,transparent 50%);background-position:calc(100% - 16px) 15px,calc(100% - 11px) 15px;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}
.check{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.4;cursor:pointer}
.check input{margin-top:3px;flex:none;accent-color:var(--color-accent)}
header[style*="--color-accent-2"] a{color:#fff}
header[style*="--color-accent-2"] .navtoggle{color:#fff;border-color:rgba(255,255,255,.4)}
header:not([style*="--color-accent-2"]) .navtoggle{color:var(--color-text);border-color:var(--color-divider)}
.mobilenav a{display:block;padding:6px 0;font-size:15px}

/* ---- card grids collapse on small screens (all pages) ---- */
@media (max-width:1000px){
  section div[style*="repeat(4,1fr)"]{grid-template-columns:1fr 1fr!important}
}
@media (max-width:760px){
  section div[style*="repeat(3,1fr)"],
  section div[style*="repeat(2,1fr)"]{grid-template-columns:1fr!important}
  section > div[style*="grid-template-columns"]{grid-template-columns:1fr!important}
}
@media (max-width:640px){
  section div[style*="repeat(4,1fr)"]{grid-template-columns:1fr!important}
  section div[style*="1fr 1fr"]{grid-template-columns:1fr!important}
  .grid2{grid-template-columns:1fr!important}
  section div[style*="repeat(3,auto)"]{grid-template-columns:1fr 1fr!important;gap:var(--space-4)!important}
}

/* ================= navigation fit + mobile comfort (added) ================= */
/* desktop: tighten nav gap so all items fit comfortably as the menu grows */
.navlinks{gap:var(--space-4)!important;flex-wrap:wrap;row-gap:6px}

@media (max-width:768px){
  body{font-size:16px}                                   /* comfortable base, stops phones zooming */
  h1{font-size:30px!important;line-height:1.18}
  h2{font-size:23px!important}
  h3{font-size:19px}
  /* everything single-column on a phone */
  section[style*="grid-template-columns"]{grid-template-columns:1fr!important}
  section div[style*="grid-template-columns"]{grid-template-columns:1fr!important}
  .grid2{grid-template-columns:1fr!important}
  section div[style*="repeat(3,auto)"]{grid-template-columns:1fr 1fr!important;gap:var(--space-4)!important}
  /* a little less vertical air so pages don't feel endless */
  section{padding-top:30px!important;padding-bottom:30px!important}
  /* comfortable, tappable buttons */
  .btn{min-height:46px;font-size:15px;padding:12px 18px}
  /* bigger, clearer mobile menu */
  header .nav{padding-top:14px!important;padding-bottom:14px!important}
  .navtoggle{min-height:44px;font-size:15px}
  .mobilenav{padding:8px 0 16px}
  .mobilenav a{display:block;padding:13px 4px!important;font-size:17px!important;
    border-bottom:1px solid var(--color-divider);text-decoration:none}
  /* forms comfortable, no zoom-jump on focus */
  .input{font-size:16px;min-height:46px}
  /* footer stacks cleanly */
  footer div[style*="grid-template-columns"]{grid-template-columns:1fr!important;gap:var(--space-4)!important}
  /* homepage top "group companies" rail: wrap and left-align instead of squashing */
  header div[style*="justify-content:flex-end"]{justify-content:flex-start!important;gap:12px 14px!important;flex-wrap:wrap}
  /* cards a touch more inner room */
  .card{padding:var(--space-4)}
}
@media (max-width:480px){
  h1{font-size:26px!important}
  h2{font-size:21px!important}
  section div[style*="repeat(3,auto)"]{grid-template-columns:1fr!important}
  /* full-width buttons are easiest to tap one-handed — but never the Menu toggle */
  .btn:not(.navtoggle){width:100%;justify-content:center}
  .navtoggle{width:auto}
}
