/* Foreground colours follow the nearest painted surface, not a distant panel. */
:root{--eccum-copy:#596575;--eccum-heading:#022047;--eccum-accent:#c2262e;--eccum-link:#a51e28}
body .eccum-rich{color:var(--eccum-copy,#596575)!important}
body :is(h1,h2,h3,h4).eccum-rich{color:var(--eccum-heading,#022047)!important}
body .eccum-rich :is(p,li,strong,b,em,span):not(.accent){color:inherit}
body .eccum-rich a{color:var(--eccum-link,#a51e28);text-decoration:underline;text-underline-offset:.16em}
body .service-card .eccum-rich a{color:inherit;text-decoration:none}
body .eccum-rich.eyebrow,body .accent{color:var(--eccum-accent,#c2262e)!important}
:is(.site-header,.site-footer,.eccum-hero,.eccum-slide,.contact-form){--eccum-copy:#fff;--eccum-heading:#fff;--eccum-accent:#ffb0b7;--eccum-link:#ffb0b7}
:is(.service-card,.news-card,.eccum-accordion,.accordion-body){--eccum-copy:#596575;--eccum-heading:#022047;--eccum-accent:#c2262e;--eccum-link:#a51e28}
body .accordion-body{background:#fff;color:#596575;line-height:1.65;overflow-wrap:anywhere}
body .eccum-accordion>summary{color:#022047;background:#fff;line-height:1.5;gap:16px;min-height:48px}
body .eccum-accordion[open]>summary{color:#fff;background:#c2262e}
body .eccum-accordion[open]>summary::after{color:#fff}
body .eccum-accordion>summary::after{flex:0 0 auto}
body .service-card:is(:hover,:focus-within){--eccum-copy:#fff;--eccum-heading:#fff;--eccum-accent:#fff;--eccum-link:#fff;background:#022047}
body .news-body p,body .news-body time{color:#596575}
body .eccum-form a{color:var(--eccum-link,#a51e28);text-decoration:underline;text-underline-offset:.16em}
body .eccum-form :is(input,textarea)::placeholder{color:#e1e7ed;opacity:1}
body .newsletter-form input[type=email]{background:#fff;color:#022047}
body .newsletter-form input[type=email]::placeholder{color:#596575}
body .eccum-form small{font-size:12px;line-height:1.5}
body .eccum-form .consent{font-size:13px;line-height:1.55}
body .eccum-cta:disabled{opacity:1;background:#a51e28;color:#fff}
/* Text on photographs needs a predictable dark backing, too. */
body .eccum-slide::after{background:#0009}
body .eccum-slide>div>.eccum-rich:first-child{color:#ffe4e6!important}
body .eccum-hero{background-color:#35465a!important;background-blend-mode:multiply}
body .eccum-block[style*="background-image"]{background-color:var(--eccum-image-tint,#35465a)!important;background-blend-mode:multiply}
body .site-header a:is(:hover,:focus-visible){color:#ffe4e6}
body :is(.site-header,.site-footer,.contact-form) :focus-visible{outline:3px solid #ffe4e6;outline-offset:4px}
/* Text keeps its natural height; long words/URLs cannot widen a column. */
.eccum-rich,.accordion-body,.news-body,.eccum-column{min-width:0;overflow-wrap:anywhere}
.eccum-rich{max-width:100%;height:auto;min-height:0}
.eccum-rich p,.eccum-rich li{line-height:1.6}
.eccum-rich :is(h1,h2,h3,h4),:is(h1,h2,h3,h4).eccum-rich{line-height:1.25}
.accordion-body>:last-child,.eccum-rich>:last-child{margin-bottom:0}
.eccum-accordion{scroll-margin-top:110px}
html{scroll-padding-top:110px}
.main-nav a,.nav-toggle{min-height:44px}
body .topbar{font-size:12px;line-height:1.4}
@media(max-width:1024px){
 .header-inner{width:100%}.main-nav>ul{gap:18px}
 .eccum-column>.eccum-rich{max-width:100%}
 .accordion-body{padding:22px}
}
@media(max-width:767px){
 body .topbar{font-size:12px;gap:6px;flex-wrap:wrap;height:auto;min-height:42px;padding-block:8px}
 body .site-header .main-nav{top:100%}
 .site-header .site-logo{width:min(165px,45vw)}
 .header-inner{padding-inline:18px}
 .eccum-rich :is(p,li),.accordion-body{font-size:16px;line-height:1.65}
 body :is(h1,h2).eccum-rich{font-size:clamp(24px,6.5vw,32px)!important;line-height:1.25!important}
 body h3.eccum-rich{font-size:clamp(20px,5.5vw,24px)!important}
 .accordion-body{padding:20px 16px}
 .eccum-accordion>summary{padding:14px 16px}
 .eccum-rich{margin-block-end:24px}
 .image-stack{max-width:calc(100% - 16px)}
 .contact-form{padding:24px 18px}
 .contact-form .field-grid{gap:20px}
 .eccum-form input:not([type=checkbox]),.eccum-form textarea{font-size:16px!important;min-height:44px}
 .eccum-cta{min-height:44px}
 .slider-controls{max-width:100%;flex-wrap:wrap;row-gap:8px}
 .slider-controls button{min-width:36px;min-height:44px}
}
