/* RN28 complete standalone navigation system: legacy CSS does not target rn28 classes. */
.rn28-shell,.rn28-shell *{box-sizing:border-box}
.rn28-shell{position:relative;z-index:500;background:#fff;color:#0B4F5C;font-family:"Source Sans 3","Segoe UI",Arial,sans-serif}
.rn28-header{position:relative;background:#fff;border-bottom:1px solid #dce8ea;box-shadow:0 2px 8px rgba(9,64,75,.06)}
.rn28-inner{width:min(1280px,calc(100% - 44px));margin:auto;min-height:80px;display:flex;align-items:center;gap:28px}
.rn28-brand{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.rn28-brand-link{display:flex;gap:12px;align-items:center;text-decoration:none!important;color:#0B4F5C!important;font-size:21px;font-weight:850;white-space:nowrap;line-height:1.1}
.rn28-brand-link img{width:52px;height:38px;object-fit:contain}
.rn28-brand-link b{color:#CC3F0A}
.rn28-phone{font-size:12px;font-weight:800;letter-spacing:.02em;text-decoration:none!important;background:#CC3F0A;color:white!important;border-radius:5px;padding:4px 12px;margin-left:64px}
.rn28-desktop{flex:1;display:flex!important;justify-content:flex-end;align-items:center;gap:clamp(6px,.65vw,13px);min-width:0}
.rn28-item{position:static;flex:none}
.rn28-trigger{border:0;background:transparent;color:#0B4F5C;cursor:pointer;font:800 clamp(11px,.82vw,14px)/1.25 "Source Sans 3",Arial,sans-serif;white-space:nowrap;padding:14px 5px;border-radius:5px}
.rn28-trigger span{color:#CC3F0A;font-size:16px;padding-left:2px}
.rn28-trigger:hover,.rn28-trigger[aria-expanded="true"],.rn28-trigger:focus-visible{color:#087B87;background:#f0f8f8;outline-offset:3px}
.rn28-direct{font:800 clamp(11px,.82vw,14px)/1.25 "Source Sans 3",Arial,sans-serif;text-decoration:none!important;color:#0B4F5C!important;white-space:nowrap;padding:12px 6px}
.rn28-direct:hover{color:#CC3F0A!important}
.rn28-panel{display:none;position:absolute;top:calc(100% - 1px);left:50%;transform:translateX(-50%);width:min(1140px,calc(100vw - 48px));background:#fff;border:1px solid #dbe7e9;border-top:4px solid #CC3F0A;box-shadow:0 18px 40px rgba(7,47,63,.20);border-radius:0 0 12px 12px;z-index:9999;overflow:hidden;text-align:left}
.rn28-item.rn28-open .rn28-panel{display:block}
.rn28-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#F6FAFA;border-bottom:1px solid #dde9ea;padding:18px 26px}
.rn28-panel-heading strong{display:block;color:#0B4F5C;font-size:21px;line-height:1.2}
.rn28-panel-heading small{display:block;color:#547784;margin-top:5px;font-size:13px}
.rn28-view{color:#087B87!important;font-size:13px;font-weight:800;text-decoration:none!important;white-space:nowrap}
.rn28-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:22px 26px 26px;gap:28px;align-items:start}
.rn28-col h3{font-size:12px;color:#0B4F5C;font-weight:900;letter-spacing:.09em;text-transform:uppercase;margin:0 0 13px;border-bottom:2px solid #e3eeef;padding-bottom:10px}
.rn28-col a{display:block!important;padding:8px 10px!important;border-radius:5px;font-size:14px!important;font-weight:650!important;line-height:1.3!important;color:#315662!important;text-decoration:none!important;white-space:normal!important}
.rn28-col a:hover,.rn28-col a:focus-visible{background:#e9f5f5;color:#087B87!important;text-decoration:none!important}
.rn28-panel-foot{background:#f6fafa;border-top:1px solid #e1eaec;padding:13px 26px;display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#4c6c75}
.rn28-panel-foot a{color:#087B87!important;font-weight:800;text-decoration:none!important}
.rn28-mobile-toggle,.rn28-mobile{display:none}
@media(max-width:1100px){.rn28-inner{gap:12px;width:calc(100% - 32px)}.rn28-brand-link{font-size:18px}.rn28-brand-link img{width:43px}.rn28-phone{margin-left:55px}.rn28-desktop{gap:2px}}
@media(max-width:930px){.rn28-desktop{display:none!important}.rn28-inner{min-height:72px;justify-content:space-between}.rn28-mobile-toggle{display:flex;align-items:center;gap:8px;background:#0B4F5C;color:#fff;border:0;border-radius:6px;padding:10px 15px;font:800 15px Arial,sans-serif;cursor:pointer}.rn28-mobile:not([hidden]){display:block;background:white;border-top:1px solid #dce7e9;padding:10px 20px 22px;max-height:72vh;overflow:auto}.rn28-mobile details{border-bottom:1px solid #e0e9eb}.rn28-mobile summary{list-style:none;cursor:pointer;padding:13px 0;font-weight:850}.rn28-mobile summary:after{content:'+';float:right;color:#CC3F0A}.rn28-mobile details[open] summary:after{content:'−'}.rn28-mobile a{display:block!important;color:#0B4F5C!important;text-decoration:none!important;font-weight:650;font-size:14px;padding:10px 14px!important;background:#F7FAFA;margin:2px 0;border-radius:4px}}
@media(prefers-reduced-motion:no-preference){.rn28-panel{animation:rn28enter .12s ease-out}@keyframes rn28enter{from{opacity:.6;transform:translate(-50%,-5px)}to{opacity:1;transform:translate(-50%,0)}}}

/* V29: balanced, full-width navigation with large, consistent three-column mega menus */
@media(min-width:931px){
.rn28-shell .rn28-inner{width:min(1500px,calc(100% - 52px));gap:30px}
.rn28-shell .rn28-brand{flex:0 0 245px}
.rn28-shell .rn28-desktop{flex:1;display:grid!important;grid-template-columns:repeat(8,minmax(0,1fr));gap:0;justify-content:stretch;width:100%;align-items:stretch;min-height:80px}
.rn28-shell .rn28-item{min-width:0;display:flex;justify-content:center;align-items:center}
.rn28-shell .rn28-trigger,.rn28-shell .rn28-direct{min-width:0;width:100%;height:48px;display:flex;justify-content:center;align-items:center;gap:4px;text-align:center;font:800 clamp(11px,.9vw,14px)/1.15 "Source Sans 3",Arial,sans-serif;white-space:nowrap;padding:8px 3px}
.rn28-shell .rn28-panel{width:min(1180px,calc(100vw - 64px));max-height:min(75vh,690px);overflow-y:auto}
.rn28-shell .rn28-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 32px}
.rn28-shell .rn28-col a{font-size:14px!important;padding:8px 10px!important}
}
@media(min-width:931px) and (max-width:1199px){.rn28-shell .rn28-inner{gap:12px;width:calc(100% - 24px)}.rn28-shell .rn28-brand{flex-basis:204px}.rn28-shell .rn28-brand-link{font-size:18px}.rn28-shell .rn28-trigger,.rn28-shell .rn28-direct{font-size:11px}}
@media(max-width:930px){.rn29-mobile-heading{padding:12px 12px 5px;font-size:11px;letter-spacing:.07em;font-weight:900;text-transform:uppercase;color:#087B87}}

/* V30 — only header position and top-link alignment; leave menus and site intact */
.rn28-shell{position:sticky!important;top:0!important;z-index:10000!important;isolation:isolate}
.rn28-shell .rn28-header{position:relative!important;top:auto!important}
@media(min-width:931px){
 .rn28-shell .rn28-inner{align-items:center!important}
 .rn28-shell .rn28-desktop{align-items:center!important;grid-auto-flow:row!important;grid-template-rows:minmax(64px,auto)!important}
 .rn28-shell .rn28-desktop>.rn28-item,
 .rn28-shell .rn28-desktop>.rn28-direct{align-self:center!important;justify-self:stretch!important;min-height:48px!important;height:48px!important;display:flex!important;align-items:center!important;justify-content:center!important;line-height:1.2!important;margin:0!important;position:static!important;top:auto!important;transform:none!important}
 .rn28-shell .rn28-desktop>.rn28-direct{padding:8px 3px!important}
}
@media(max-width:930px){.rn28-shell{top:0!important}}

/* V42: the header uses the same content rail as the existing page container. */
.rn28-shell .rn28-inner{
  width:min(var(--rn-content-max,1224px),calc(100% - 120px))!important;
  max-width:var(--rn-content-max,1224px)!important;
  margin-left:auto!important;margin-right:auto!important;
}
@media(max-width:980px){.rn28-shell .rn28-inner{
  width:min(var(--rn-frame-max,1280px),calc(100% - 48px))!important;
  max-width:var(--rn-frame-max,1280px)!important;
}}
@media(max-width:620px){.rn28-shell .rn28-inner{
  width:min(var(--rn-frame-max,1280px),calc(100% - 32px))!important;
}}

/* V61: the rn28 header is sticky (in normal flow); remove the legacy fixed-header body offset that left a blank band above the header on mobile. */
@media (max-width:980px){html body{padding-top:0!important}}
/* RN V75 — mobile tap targets: enlarge the touch area of the header phone, menu and logo to >=44px without changing how they look */
@media(max-width:930px){.rn28-phone,.rn28-mobile-toggle,.rn28-brand-link{position:relative}.rn28-phone::after{content:"";position:absolute;left:-4px;right:-4px;top:-9px;bottom:-9px}.rn28-mobile-toggle::after,.rn28-brand-link::after{content:"";position:absolute;left:0;right:0;top:-3px;bottom:-3px}}
