/* Homepage footer. Intentionally independent of the legacy site footer rules. */
#site-footer.exact-footer {
 position:relative;isolation:isolate;display:block;box-sizing:border-box;
 width:100%;height:auto;min-height:0;max-height:none;padding:0;overflow:hidden;
 background:linear-gradient(115deg,#f1f8ff,#f6faff);color:#526d8d;
 font-family:Inter,Arial,sans-serif;text-align:left;
}
#site-footer *,#site-footer *::before,#site-footer *::after{box-sizing:border-box}
#site-footer .reference-footer-main{
 position:relative;z-index:1;display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr 1.5fr;
 width:100%;max-width:1400px;margin:0 auto;padding:56px 28px 64px;gap:0;align-items:stretch;
}
#site-footer .reference-footer-brand{display:block;grid-column:auto;align-self:start;justify-self:start;padding:12px 28px 0 0;margin:0}
#site-footer .footer-brand-lockup{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:240px;max-width:100%;margin:0;text-decoration:none}
#site-footer .reference-footer-brand .brand-symbol{display:block;width:60px;height:60px;flex:0 0 60px}
#site-footer .reference-footer-brand .brand-wordmark{display:block;width:172px;height:43px;min-width:0;flex:0 1 172px}
#site-footer .reference-footer-brand svg{display:block;width:100%;height:100%}
#site-footer .reference-footer-brand p{margin:22px 0 0;max-width:245px;font-size:16px;line-height:1.8;font-weight:400;color:#526d8d}
#site-footer .reference-footer-column{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;width:100%;min-width:0;padding:0 22px;border-left:1px solid #dceaf6;gap:20px;text-align:left}
#site-footer .reference-footer-column h3{flex:0 0 auto;font-family:inherit;font-size:18px;line-height:1.35;font-weight:700;color:#0b2b53;margin:0 0 8px;letter-spacing:0}
#site-footer .reference-footer-column h3::after{content:'';display:block;width:36px;height:2px;margin:15px 0 0;background:#1260ff}
#site-footer .reference-footer-column>a{display:block;font-size:15px;line-height:1.5;font-weight:400;color:#526d8d;text-align:left;text-decoration:none;overflow-wrap:normal;transition:color .2s ease}
#site-footer a:hover{color:#1260ff}
#site-footer a:focus-visible{outline:2px solid #1260ff;outline-offset:5px;border-radius:2px}
#site-footer .reference-contact{gap:20px;padding-right:0}
#site-footer .reference-contact h3{margin-bottom:8px}
#site-footer .reference-contact>a{display:flex;align-items:center;gap:14px;overflow-wrap:anywhere}
#site-footer .reference-contact .contact-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;padding:0;border-radius:50%;background:#dfebff;color:#0b2b53}
#site-footer .contact-icon svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#site-footer .footer-waves{position:absolute;z-index:0;left:0;bottom:76px;width:36%;height:190px;max-height:40%;fill:none;stroke:#cbe3f8;stroke-width:1;opacity:.45;pointer-events:none}
#site-footer .reference-footer-bottom{position:relative;z-index:1;display:block;width:100%;height:auto;min-height:0;margin:0;padding:0;border:0;background:#09284d;color:#f1f5fb}
#site-footer .footer-bottom-container{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;max-width:1400px;margin:0 auto;padding:24px 28px}
#site-footer .reference-footer-bottom small{font-size:13px;line-height:1.6;color:#f1f5fb;white-space:normal}
#site-footer .reference-footer-bottom nav{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:0;margin:0;font-size:13px;line-height:1.6;color:#f1f5fb;white-space:normal}
#site-footer .reference-footer-bottom nav a{padding:0 20px;border-right:1px solid #a8bad0;color:inherit;text-decoration:none;transition:color .2s ease}
#site-footer .reference-footer-bottom nav a:first-child{padding-left:0}
#site-footer .reference-footer-bottom nav a:last-child{padding-right:0;border:0}
#site-footer .reference-footer-bottom nav a:hover{color:#a8ccff}
@media(max-width:1199px){
 #site-footer .reference-footer-main{grid-template-columns:repeat(3,minmax(0,1fr));padding:44px 28px;gap:36px 0}
 #site-footer .reference-footer-brand{padding-right:24px}
 #site-footer .reference-footer-column{padding:0 24px}
 #site-footer .reference-footer-column:nth-child(4){border-left:0;padding-left:0}
 #site-footer .reference-contact{grid-column:2 / 4}
 #site-footer .footer-bottom-container{align-items:flex-start;flex-direction:column;gap:16px}
 #site-footer .reference-footer-bottom nav{justify-content:flex-start}
}
@media(max-width:767px){
 #site-footer .reference-footer-main{grid-template-columns:repeat(2,minmax(0,1fr));padding:36px 24px;gap:36px 24px}
 #site-footer .reference-footer-brand{grid-column:1/-1;padding:0}
 #site-footer .reference-footer-column{border:0;padding:0;gap:20px}
 #site-footer .reference-contact{grid-column:auto}
 #site-footer .footer-bottom-container{padding:24px;gap:18px}
 #site-footer .reference-footer-bottom nav{gap:12px 0}
 #site-footer .reference-footer-bottom nav a{padding:0 12px}
}
@media(max-width:540px){
 #site-footer .reference-footer-main{grid-template-columns:minmax(0,1fr);gap:36px}
 #site-footer .reference-footer-brand,#site-footer .reference-contact{grid-column:auto}
 #site-footer .reference-footer-bottom nav{gap:12px 18px}
 #site-footer .reference-footer-bottom nav a{padding:0;border:0}
 #site-footer .footer-waves{width:100%;opacity:.3}
}
@media(prefers-reduced-motion:reduce){#site-footer a{transition:none}}

/* Compact closing viewport on desktop; retain stacked mobile readability. */
@media(min-width:768px){
 #site-footer.exact-footer{height:calc((100svh - var(--section-nav-height))*.62);display:flex;flex-direction:column}
 #site-footer .reference-footer-main{flex:1;min-height:0;grid-template-columns:1.35fr 1fr 1fr 1fr 1.5fr;padding:22px 24px;gap:0;align-items:stretch}
 #site-footer .reference-footer-brand{padding:10px 20px 0 0}
 #site-footer .footer-brand-lockup{width:210px}
 #site-footer .reference-footer-brand .brand-symbol{width:48px;height:48px;flex-basis:48px}
 #site-footer .reference-footer-brand .brand-wordmark{width:154px;height:39px;flex-basis:154px}
 #site-footer .reference-footer-brand p{font-size:15px;line-height:1.65;margin-top:16px}
 #site-footer .reference-footer-column{grid-column:auto;border-left:1px solid #dceaf6;padding:0 18px;gap:0;justify-content:space-between}
 #site-footer .reference-footer-column h3{font-size:17px;margin:0 0 8px}
 #site-footer .reference-footer-column h3::after{margin-top:10px}
 #site-footer .reference-footer-column>a{font-size:14px;line-height:1.4}
 #site-footer .reference-contact{justify-content:flex-start;gap:16px;padding-right:0}
 #site-footer .reference-contact .contact-icon{width:38px;height:38px;flex-basis:38px}
 #site-footer .reference-contact>a{gap:10px}
 #site-footer .reference-footer-bottom{flex:0 0 auto}
 #site-footer .footer-bottom-container{flex-direction:row;align-items:center;gap:16px;padding:18px 24px}
 #site-footer .reference-footer-bottom small,#site-footer .reference-footer-bottom nav{font-size:12px}
 #site-footer .reference-footer-bottom nav a{padding:0 12px}
}
@media(min-width:768px) and (max-width:1050px){
 #site-footer .reference-footer-main{grid-template-columns:1.2fr 1fr 1fr 1fr 1.35fr;padding:20px 16px}
 #site-footer .reference-footer-column{padding-left:12px;padding-right:12px}
 #site-footer .reference-contact{padding-right:0}
 #site-footer .footer-brand-lockup{width:170px}
 #site-footer .reference-footer-brand .brand-symbol{width:38px;height:38px;flex-basis:38px}
 #site-footer .reference-footer-brand .brand-wordmark{width:124px;height:31px;flex-basis:124px}
 #site-footer .reference-footer-brand p{font-size:14px}
 #site-footer .reference-contact>a{gap:8px}
}

/* A smaller footer with a light copyright row. */
#site-footer .reference-footer-bottom{background:transparent;color:#526d8d;border-top:1px solid #dceaf6}
#site-footer .reference-footer-bottom small,#site-footer .reference-footer-bottom nav{color:#526d8d}
#site-footer .reference-footer-bottom nav a:hover{color:#1260ff}
#site-footer .footer-bottom-container{padding-top:14px;padding-bottom:14px}
#site-footer .footer-waves{bottom:45px}
@media(min-width:768px){
 #site-footer.exact-footer{height:calc((100svh - var(--section-nav-height))*.54)}
 #site-footer .reference-footer-main{padding-top:16px;padding-bottom:16px}
 #site-footer .reference-footer-brand{padding-top:6px}
 #site-footer .reference-footer-column h3{margin-bottom:5px}
 #site-footer .reference-contact{gap:12px}
 #site-footer .reference-contact .contact-icon{width:34px;height:34px;flex-basis:34px}
 #site-footer .footer-bottom-container{padding-top:12px;padding-bottom:12px}
}

/* Minimal footer: no bottom layer, content-sized spacing. */
#site-footer.exact-footer{height:auto;min-height:0}
#site-footer .reference-footer-main{padding-top:20px;padding-bottom:20px}
#site-footer .reference-footer-column{gap:8px;justify-content:flex-start}
#site-footer .reference-footer-column h3{margin-bottom:6px}
#site-footer .reference-footer-brand p{margin-top:12px}
#site-footer .reference-contact{gap:12px}
#site-footer .footer-waves{bottom:0;height:100px}
@media(min-width:768px){
 #site-footer.exact-footer{height:auto}
 #site-footer .reference-footer-main{flex:none;padding-top:18px;padding-bottom:18px}
 #site-footer .reference-footer-column{gap:7px}
 #site-footer .reference-footer-column h3::after{margin-top:8px}
}

@media(min-width:768px){
 #partners{box-sizing:border-box;justify-content:center;padding:28px 5.5%;min-height:0}
 #partners h2{font-size:clamp(36px,3.6vw,48px)}
 #partners .partner-logos{margin-top:28px}
 #partners .partner-logo{height:clamp(64px,11svh,100px)}
}

/* Tighter spacing between the navigation links in each footer column. */
#site-footer .reference-footer-column{gap:4px}
#site-footer .reference-footer-column h3{margin-bottom:4px}
#site-footer .reference-contact{gap:10px}

/* Half the current vertical gap between every footer link row. */
#site-footer .reference-footer-column{gap:2px}
#site-footer .reference-contact{gap:5px}

/* Override global navigation-link padding that was inflating footer rows. */
#site-footer .reference-footer-column{gap:3px}
#site-footer .reference-footer-column>a{padding:0;margin:0;min-height:0;border-bottom:0;line-height:1.4}
#site-footer .reference-contact{gap:5px}

/* Slightly roomier footer rows without vertical dividers. */
#site-footer .reference-footer-column{gap:7px;border-left:0}
#site-footer .reference-contact{gap:10px}

/* Comfortable footer spacing and a more prominent two-line partner message. */
#site-footer .reference-footer-column{gap:10px}
#site-footer .reference-contact{gap:14px}
#partners>p:not(.eyebrow){font-size:16px;line-height:1.75;max-width:850px;margin-left:auto;margin-right:auto;text-align:center}
@media(max-width:760px){#partners>p:not(.eyebrow){font-size:14px;line-height:1.6}}

/* Slightly shift the four footer columns right while keeping branding fixed. */
@media(min-width:768px){
 #site-footer .reference-footer-main{grid-template-columns:1.5fr 1fr 1fr 1fr 1.35fr}
}

/* Shared footer on destination pages, positioned after page content. */
body:has(>.exact-footer):not(:has(#pages)){display:flex;flex-direction:column;min-height:100svh;height:auto;overflow-y:auto}
body:has(>.exact-footer):not(:has(#pages))>#site-footer{flex:0 0 auto;margin-top:auto}
