/* Bootstrap 3 navigation, scoped to the public site. */
.cfsl-site .cfsl-header { position: sticky; top: 0; z-index: 900; }
.cfsl-site #mainNav.cfsl-navbar { background: transparent; border: 0; border-radius: 0; margin-block: 0; min-height: 0; }
.cfsl-site #mainNav::before, .cfsl-site #mainNav::after,
.cfsl-site .cfsl-nav::before, .cfsl-site .cfsl-nav::after { display: none; }
.cfsl-site #navSection { background: rgba(255,255,255,.94); box-shadow: 0 6px 24px #006cb509; position: relative; z-index: 600; }
.cfsl-site #navigation.navbar-collapse { border: 0; box-shadow: none; padding: 0; max-height: none; }
.cfsl-site .cfsl-nav.navbar-nav { float: none; margin: 0; gap: 14px; }
.cfsl-site .cfsl-nav.navbar-nav > li { float: none; }
.cfsl-site .cfsl-nav > li > a, .cfsl-site .cfsl-nav-item > a { position: relative; padding: 14px 8px; border-radius: 7px; color: #264961; font-size: 13px; line-height: 20px; }
.cfsl-site .cfsl-nav > li > a:not(.cfsl-enquiry)::after,
.cfsl-site .cfsl-nav-item > a::after { content: ''; position: absolute; bottom: 5px; left: 8px; right: 8px; height: 2px; border-radius: 2px; margin: 0; background: #006CB5; transform: scaleX(0); transform-origin: left; }
.cfsl-site .cfsl-nav > li > a:hover, .cfsl-site .cfsl-nav-item > a:hover,
.cfsl-site .cfsl-nav a[aria-current="page"], .cfsl-site .cfsl-dropdown.is-current > .cfsl-nav-item > a { background: #edf6fd; color: #006CB5; text-decoration: none; }
.cfsl-site .cfsl-nav > li > a:hover::after, .cfsl-site .cfsl-nav-item > a:hover::after,
.cfsl-site .cfsl-nav > li > a[aria-current="page"]::after,
.cfsl-site .cfsl-nav-item > a[aria-current="page"]::after,
.cfsl-site .cfsl-dropdown.is-current > .cfsl-nav-item > a::after { transform: scaleX(1); }
.cfsl-site .cfsl-nav-item { gap: 0; }
.cfsl-site .cfsl-submenu-toggle { height: 44px; width: 25px; border-radius: 6px; color: #006CB5; }
.cfsl-site .cfsl-submenu-toggle:hover, .cfsl-site .open > .cfsl-nav-item > .cfsl-submenu-toggle { background: #e6f2fc; }
.cfsl-site .cfsl-submenu-toggle .caret { border-top-width: 5px; border-right-width: 4px; border-left-width: 4px; vertical-align: middle; }
.cfsl-site .open > .cfsl-nav-item > .cfsl-submenu-toggle .caret { transform: rotate(180deg); }
.cfsl-site .cfsl-submenu.dropdown-menu { display: block; visibility: hidden; opacity: 0; pointer-events: none; transform: translateY(10px); top: calc(100% + 10px); left: 0; margin: 0; border: 1px solid #dceaf5; border-top: 3px solid #006CB5; border-radius: 12px; padding: 10px; background: rgba(255,255,255,.98); box-shadow: 0 18px 45px #006cb51c; }
.cfsl-site .cfsl-dropdown.open > .cfsl-submenu { visibility: visible; opacity: 1; pointer-events: auto; transform: translateY(0); }
.cfsl-site .cfsl-dropdown.open > .cfsl-nav-item > a { color: #006CB5; background: #edf6fd; }
.cfsl-site .cfsl-services-menu { width: 290px; }
.cfsl-site .cfsl-submenu > li > a { color: #264961; font-size: 13px; line-height: 1.6; padding: 11px 12px; border-radius: 6px; }
.cfsl-site .cfsl-submenu > li > a.cfsl-service-variant-link { padding-left: 28px; font-size: 12px; }
.cfsl-site .cfsl-submenu > li > a:hover, .cfsl-site .cfsl-submenu > li > a:focus { color: #006CB5; background: #edf6fd; }
.cfsl-site .cfsl-submenu a[aria-current="page"]::after { content: none; }
.cfsl-site .cfsl-nav .cfsl-enquiry { background: linear-gradient(120deg,#006CB5,#168bd5); color: white; padding: 13px 18px; box-shadow: 0 5px 16px #006cb526; border: 1px solid #ffffff45; }
.cfsl-site .cfsl-nav .cfsl-enquiry:hover, .cfsl-site .cfsl-nav .cfsl-enquiry[aria-current="page"] { color: white; background: linear-gradient(120deg,#005b99,#006CB5); }
.cfsl-site .cfsl-nav .cfsl-enquiry::after { content: none; }
.cfsl-site .navbar-toggle.cfsl-menu-toggle { margin: 0; border: 1px solid #c9deed; background: #f5faff; color: #006CB5; min-height: 44px; min-width: 44px; justify-content: center; }
.cfsl-site .navbar-toggle.cfsl-menu-toggle:hover { background: #e9f4fd; }
.cfsl-site .cfsl-menu-toggle[aria-expanded="true"] .cfsl-menu-icon { border-color: transparent; }
.cfsl-site .cfsl-menu-toggle[aria-expanded="true"] .cfsl-menu-icon::after { top: 4px; transform: rotate(45deg); }
.cfsl-site .cfsl-menu-toggle[aria-expanded="true"] .cfsl-menu-icon::before { content: ''; position: absolute; width: 18px; left: 0; top: 4px; border-top: 2px solid; transform: rotate(-45deg); }
/* Blue light and translucent surfaces on the homepage. */
.cfsl-home .cfsl-hero { background: radial-gradient(ellipse at 85% 15%,#86caff60,transparent 50%), radial-gradient(ellipse at 5% 90%,#a9e3ef65,transparent 45%), linear-gradient(125deg,#f5fbff,#e3f1fc 55%,#d2eafa); isolation: isolate; }
.cfsl-home .cfsl-hero::before { content: ''; position: absolute; width: 360px; height: 360px; border: 1px solid #ffffffa0; border-radius: 50%; right: -90px; top: -180px; box-shadow: 0 0 0 45px #ffffff20,0 0 0 90px #ffffff12; pointer-events: none; z-index: -1; }
.cfsl-home .cfsl-hero-grid { gap: 34px; padding-block: 52px; }
.cfsl-hero-copy { position: relative; padding: 34px; border-radius: 20px; background: rgba(255,255,255,.65); border: 1px solid #ffffff; box-shadow: inset 0 1px 0 #fff,0 20px 50px #006cb50d; }
.cfsl-home .cfsl-hero h1 { font-size: clamp(35px,4vw,56px); letter-spacing: -1.8px; color: #006CB5; }
.cfsl-home .cfsl-hero h1 span { color: #006CB5; background: linear-gradient(110deg,#006CB5 10%,#2693d9 48%,#006CB5 85%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.cfsl-home .cfsl-hero-art { padding: 16px 16px 40px; border: 1px solid #ffffffb0; border-radius: 20px; background: rgba(255,255,255,.3); box-shadow: inset 0 1px 0 #fff,0 24px 55px #006cb51c; overflow: hidden; }
.cfsl-home .cfsl-hero-art::before { inset: 0; border-radius: 20px; background: transparent; }
.cfsl-home .cfsl-hero-art::after { content: ''; position: absolute; inset: -60% -100%; background: linear-gradient(115deg,transparent 40%,#ffffff05 44%,#ffffff70 49%,#ffffff05 54%,transparent 59%); transform: translateX(-45%); pointer-events: none; }
.cfsl-home .cfsl-hero-art img { border: 1px solid #ffffffb0; box-shadow: 0 8px 20px #006cb50c; }
.cfsl-home .cfsl-heritage { left: 28px; bottom: 14px; z-index: 1; background: rgba(255,255,255,.9); border: 1px solid #fff; border-left: 4px solid #006CB5; box-shadow: 0 10px 30px #006cb51a; }
.cfsl-home .cfsl-heritage strong { color: #006CB5; }
.cfsl-home .cfsl-trust-strip { background: linear-gradient(110deg,#006CB5,#087fc7 60%,#006CB5); box-shadow: inset 0 1px 0 #ffffff40; }
.cfsl-home .cfsl-trust-grid span { color: #e3f3ff; }
.cfsl-home .cfsl-service-card { border-color: #d9e9f5; box-shadow: 0 6px 24px #006cb507; }
.cfsl-home .cfsl-service-card:hover { transform: translateY(-5px); box-shadow: 0 16px 32px #006cb51c; border-color: #8fc4e8; }
.cfsl-home .cfsl-service-card > img { transform: scale(1); }
.cfsl-home .cfsl-cta { background: radial-gradient(ellipse at 90% 0,#ffffffb0,transparent 60%),linear-gradient(115deg,#e7f4ff,#d7ecfc); border-top: 1px solid #fff; }
.cfsl-site .cfsl-enquiry, .cfsl-home .cfsl-button { position: relative; overflow: hidden; isolation: isolate; }
.cfsl-site .cfsl-enquiry::before, .cfsl-home .cfsl-button::before { content: ''; position: absolute; width: 35%; height: 220%; left: -65%; top: -60%; transform: skewX(-25deg); background: linear-gradient(90deg,transparent,#ffffff65,transparent); pointer-events: none; z-index: -1; }
.cfsl-site .cfsl-enquiry:hover::before, .cfsl-home .cfsl-button:hover::before { left: 140%; }
.cfsl-home .cfsl-button, .cfsl-home .cfsl-nav .cfsl-enquiry { background: #E31E24; border-color: #E31E24; color: #fff; box-shadow: 0 5px 16px #e31e2426; }
.cfsl-home .cfsl-button:hover, .cfsl-home .cfsl-button:focus-visible,
.cfsl-home .cfsl-nav .cfsl-enquiry:hover, .cfsl-home .cfsl-nav .cfsl-enquiry:focus-visible { background: #bd151b; border-color: #bd151b; color: #fff; }
@supports (backdrop-filter: blur(12px)) {
    .cfsl-site #navSection { backdrop-filter: blur(12px); }
    .cfsl-hero-copy, .cfsl-home .cfsl-hero-art, .cfsl-home .cfsl-heritage { backdrop-filter: blur(12px); }
}
@media (min-width: 1200px) {
    .cfsl-site .cfsl-submenu::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
    .cfsl-site .cfsl-services-menu { max-height: calc(100vh - 210px); max-height: calc(100dvh - 210px); overflow-y: auto; }
    .cfsl-site #navigation.navbar-collapse.collapse { display: block !important; height: auto !important; overflow: visible !important; }
    .cfsl-site .navbar-toggle.cfsl-menu-toggle { display: none; }
}
@media (max-width: 1199px) {
    .cfsl-site #mainNav { flex-wrap: wrap; }
    .cfsl-site .navbar-toggle.cfsl-menu-toggle { display: inline-flex; }
    .cfsl-site #navigation.navbar-collapse.collapse:not(.in) { display: none !important; }
    .cfsl-site #navigation.navbar-collapse.in { display: block !important; }
    .cfsl-site #navigation.navbar-collapse.in { max-height: calc(100vh - 170px); max-height: calc(100dvh - 170px); overflow-y: auto; }
    .cfsl-site #navigation.collapsing { display: block !important; width: 100%; overflow: hidden; }
    .cfsl-site #navigation { width: 100%; border-top: 1px solid #e2edf5; }
    .cfsl-site .cfsl-nav.navbar-nav { display: block; padding-block: 12px 0; }
    .cfsl-site .cfsl-nav > li { border-bottom: 1px solid #e8f1f8; }
    .cfsl-site .cfsl-nav > li:last-child { border-bottom: 0; }
    .cfsl-site .cfsl-nav-item > a { flex: 1; }
    .cfsl-site .cfsl-submenu-toggle { width: 48px; }
    .cfsl-site .cfsl-submenu.dropdown-menu { display: none; position: static; float: none; width: 100%; border: 0; border-left: 2px solid #006CB5; border-radius: 0 8px 8px 0; box-shadow: none; background: #f2f8fe; margin-block: 4px 14px; transform: none; }
    .cfsl-site .cfsl-dropdown.open > .cfsl-submenu { display: block; }
    .cfsl-site .cfsl-nav > li > a::after, .cfsl-site .cfsl-nav-item > a::after { display: none; }
    .cfsl-site .cfsl-nav .cfsl-enquiry { margin-top: 12px; }
}
@media (max-width: 767px) {
    .cfsl-home .cfsl-hero-grid { padding-block: 28px 36px; gap: 26px; }
    .cfsl-hero-copy { padding: 25px 20px; border-radius: 16px; }
    .cfsl-home .cfsl-hero h1 { font-size: clamp(33px,8.7vw,48px); letter-spacing: -1.2px; }
    .cfsl-home .cfsl-hero .cfsl-eyebrow { font-size: 9px; letter-spacing: 1.6px; }
    .cfsl-home .cfsl-hero .cfsl-actions { gap: 10px; }
    .cfsl-home .cfsl-hero .cfsl-button { width: 100%; }
    .cfsl-home .cfsl-hero-art { padding: 12px 12px 42px; }
    .cfsl-home .cfsl-heritage { left: 22px; padding: 14px 16px; }
    .cfsl-home .cfsl-heritage strong { font-size: 25px; }
}
@media (prefers-reduced-motion: no-preference) {
    .cfsl-site .cfsl-submenu { transition: opacity .2s ease,transform .2s ease,visibility .2s; }
    .cfsl-site .cfsl-submenu-toggle .caret, .cfsl-site .cfsl-nav a::after { transition: transform .2s ease; }
    .cfsl-site #navigation.collapsing { transition: height .3s ease; }
    .cfsl-home .cfsl-hero-art::after { animation: cfsl-glass-shine 9s ease-in-out infinite; }
    .cfsl-home .cfsl-service-card { transition: transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
    .cfsl-site .cfsl-enquiry::before, .cfsl-home .cfsl-button::before { transition: left .65s ease; }
    .cfsl-site .cfsl-dropdown.open > .cfsl-submenu { animation: cfsl-menu-reveal .2s ease-out; }
}
@media (prefers-reduced-motion: reduce) {
    .cfsl-site #navigation.collapsing { transition: none; }
    .cfsl-home .cfsl-service-card:hover { transform: none; }
}
@keyframes cfsl-glass-shine { 0%,35% { transform: translateX(-45%); } 70%,100% { transform: translateX(45%); } }
@keyframes cfsl-menu-reveal { from { opacity: 0; } to { opacity: 1; } }
