/* Header + footer v2 (preview: home page only). Header: full-width Sigil Blue strip with simple drop-downs. Footer: light sheet with brand, link columns and contact. */
.sh,.sf{--b:var(--sigil-blue,#385ea8);--y:var(--sigil-yellow,#f49a23);--navy:var(--sigil-navy,#0d1a35);--l:#f1f5fb;--t:#4a4f5c;--e:cubic-bezier(.32,.72,0,1)}
.sh a:focus-visible,.sh button:focus-visible,.sf a:focus-visible,.sf summary:focus-visible{outline:2px solid var(--y);outline-offset:3px}

/* ---------- header ---------- */
.sh-bar{display:flex;align-items:center;justify-content:space-between;height:70px}
.sh-logo{display:block;flex:none}
.sh-logo img{display:block;width:100px;height:auto}
.sh-nav{display:none}
.sh .header__navicon{display:flex;align-items:center}

/* header colour, all widths: Sigil Blue everywhere; on the home page (.sh--hero) it is transparent over the hero and turns blue once the page scrolls */
#sigil-header.sh{background:var(--b)!important;box-shadow:none!important;transition:transform .55s var(--e),background-color .35s,box-shadow .4s}
#sigil-header.sh.scrolled{box-shadow:0 2px 24px rgba(13,26,53,.22)!important}
body:not(.mnav-open) #sigil-header.sh.sh--hero:not(.scrolled){background:transparent!important}

@media (min-width:1200px){
#sigil-header.sh.is-hidden{transform:translateY(-100%)}
.sh-bar{display:grid;grid-template-columns:auto 1fr auto;gap:24px;height:80px;transition:height .45s var(--e)}
.sh.scrolled .sh-bar{height:70px}
.sh-nav{display:block;justify-self:center}
.sh-nav>ul{display:flex;align-items:center;gap:6px;margin:0;padding:0;list-style:none}
.sh-item{position:relative;display:flex;align-items:center}
.sh-item>a{position:relative;display:block;padding:12px 14px;font-size:15px;font-weight:600;line-height:1;white-space:nowrap;text-decoration:none;color:#fff!important}
.sh-has>a{padding-right:4px}
.sh-item>a::after{content:"";position:absolute;left:14px;right:14px;bottom:3px;height:2px;border-radius:2px;background:var(--y);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--e)}
.sh-has>a::after{right:4px}
.sh-item:hover>a::after,.sh-item.is-open>a::after,.sh-item>a:focus-visible::after,.sh-item.is-current>a::after{transform:scaleX(1)}
.sh-chev{display:grid;place-items:center;width:28px;height:28px;margin-right:2px;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;color:#fff;transition:color .25s}
.sh-chev:hover{color:var(--y)}
.sh-chev svg{width:14px;height:14px;transition:transform .45s var(--e)}
.sh-item.is-open .sh-chev svg{transform:rotate(180deg)}
.sh .hdr-call{justify-self:end}

/* drop-down: just the service names */
.sh-mega{position:absolute;top:calc(100% + 8px);left:0;z-index:5;min-width:370px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .22s .06s,transform .4s var(--e) .06s,visibility 0s .35s}
.sh-mega::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.sh-item.is-open .sh-mega{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}
.sh-mega ul{margin:0;padding:10px;list-style:none;border-radius:22px;background:#fff;box-shadow:0 36px 70px -34px rgba(13,26,53,.55),0 0 0 1px rgba(56,94,168,.1)}
.sh-mega li a{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 16px;border-radius:14px;font-size:15.5px;font-weight:600;line-height:1.3;text-decoration:none;color:var(--b)!important;transition:background-color .25s}
.sh-mega li a svg{flex:none;width:16px;height:16px;opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .4s var(--e)}
.sh-mega li a:hover,.sh-mega li a:focus-visible{background:var(--l)}
.sh-mega li a:hover svg,.sh-mega li a:focus-visible svg{opacity:1;transform:none}
.sh-mega li a.is-current{background:var(--l)}
.sh-mega li a.is-current svg{opacity:1;transform:none}
.sh-mega li.sh-all{margin-top:6px;padding-top:6px;border-top:1px solid rgba(56,94,168,.14)}
.sh-mega li.sh-all a{font-size:13.5px;font-weight:700}
}
@media (max-width:1199px){.sh .hdr-call{display:none}}

/* ---------- footer ---------- */
.sf{position:relative;overflow:hidden;margin-top:-1px;padding-top:clamp(56px,6vw,88px);border-radius:44px 44px 0 0;background:var(--l)}
.sf-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:0 30px;border-radius:100px;font-size:15px;font-weight:700;line-height:1;text-decoration:none;transition:background-color .3s,color .3s,box-shadow .3s,transform .4s var(--e)}
.sf-btn svg{width:18px;height:18px}
.sf-btn--s{min-height:48px;padding:0 24px;gap:10px;font-size:14px}
.sf-btn--s svg{width:16px;height:16px}
.sf-btn--p{background:var(--b);color:#fff!important}
.sf-btn--p:hover{background:var(--y);color:var(--navy)!important;transform:translateY(-2px)}
.sf-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.95fr) minmax(0,.6fr) minmax(0,1.45fr);align-items:start;gap:44px 28px;padding:0 0 clamp(40px,4vw,56px)}
.sf-logo img{display:block;width:132px;height:auto}
.sf-tag{margin:20px 0 24px;max-width:34ch;font-size:15px;line-height:1.75;color:var(--t)}
.sf-contact{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.sf-contact a{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;align-items:center;font-size:14.5px;line-height:1.5;font-weight:500;text-decoration:none;color:var(--navy)!important}
.sf-contact i{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;box-shadow:inset 0 0 0 1.5px rgba(56,94,168,.35);font-size:14px;color:var(--b);transition:background-color .3s,color .3s,box-shadow .3s}
.sf-contact a:hover i{background:var(--b);box-shadow:inset 0 0 0 1.5px var(--b);color:#fff}
.sf-contact span{overflow-wrap:anywhere}
.sf-contactcol .sf-btn{margin-top:22px}
.sf-social{display:flex;gap:10px;margin:0;padding:0;list-style:none}
.sf-social a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;font-size:16px;text-decoration:none;color:var(--b)!important;box-shadow:0 10px 24px -16px rgba(56,94,168,.7);transition:background-color .3s,color .3s,transform .4s var(--e)}
.sf-social a:hover{background:var(--b);color:#fff!important;transform:translateY(-3px)}
.sf-title{display:block;margin:0 0 18px;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#4a69a6}
.sf-col summary,.sf-col h3{display:block;margin:0 0 18px;padding:0;list-style:none;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#4a69a6;cursor:default}
.sf-col summary::-webkit-details-marker{display:none}
.sf-col summary svg{display:none}
.sf-col ul{margin:0;padding:0;list-style:none;display:grid;gap:11px}
.sf-col li a{position:relative;display:inline-block;font-size:15px;line-height:1.4;font-weight:500;text-decoration:none;color:var(--t)!important;transition:color .25s}
.sf-col li a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1.5px;background:var(--y);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--e)}
.sf-col li a:hover{color:var(--b)!important}
.sf-col li a:hover::after{transform:scaleX(1)}
.sf-legal{display:flex;align-items:center;justify-content:space-between;gap:12px 32px;padding:24px 72px 30px 0;border-top:1px solid rgba(56,94,168,.22);font-size:13.5px;color:var(--t)}
.sf-legal p{margin:0;font-size:13.5px;line-height:1.5;color:var(--t)!important}
.sf-legal nav{display:flex;gap:24px}
.sf-legal a{color:var(--t)!important;text-decoration:none}
.sf-legal a:hover{color:var(--b)!important;text-decoration:underline;text-underline-offset:4px}
@media (max-width:1399px){
.sf-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.sf-brand,.sf-contactcol{grid-column:span 2}
}
@media (max-width:991px){
.sf-grid{grid-template-columns:1fr 1fr}
.sf-brand,.sf-contactcol{grid-column:auto}
}
@media (max-width:767px){
.sf{border-radius:32px 32px 0 0}
.sf-btn{width:100%}
.sf-grid{grid-template-columns:1fr;gap:0;padding-bottom:20px}
.sf-brand{padding-bottom:32px}
.sf-tag{max-width:none}
.sf-contactcol{padding:28px 0 32px}
.sf-col{border-top:1px solid rgba(56,94,168,.22)}
.sf-col:last-of-type{border-bottom:1px solid rgba(56,94,168,.22)}
.sf-col summary{display:flex;align-items:center;justify-content:space-between;min-height:60px;margin:0;cursor:pointer;font-size:12px;color:var(--b)}
.sf-col summary svg{display:block;width:16px;height:16px;transition:transform .45s var(--e)}
.sf-col[open] summary svg{transform:rotate(180deg)}
.sf-col ul{padding:2px 0 20px}
.sf-col li a{font-size:16px;padding:3px 0}
.sf-legal{flex-direction:column;align-items:flex-start;padding:22px 0 30px;border-top:1px solid rgba(56,94,168,.22)}
}
@media (min-width:768px){.sf-col summary{pointer-events:none}}
@media (prefers-reduced-motion:reduce){.sh-mega,.sh-mega li a svg,.sh-chev svg,.sf-btn,.sf-social a,.sf-col li a::after,#sigil-header.sh{transition:none}}
