/* Approved footer, option 5: a continuous blue heartbeat ribbon. */
.footer{padding-bottom:0}
.footer-pulse-band{position:relative;isolation:isolate;overflow:hidden;margin-top:26px;border-top:1px solid #d0e3f1;background:#eaf4fd;scroll-margin-top:20px}
.footer-pulse-main{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,330px);gap:64px;align-items:start;min-height:226px;padding-top:37px;padding-bottom:32px}
.footer-pulse-main .brand{position:relative;align-self:start;gap:17px;width:max-content;max-width:100%;margin-top:5px;background:#eaf4fd;box-shadow:0 0 16px 12px #eaf4fd}
.footer-pulse-main .brand-heart{width:76px;height:80px}
.footer .footer-pulse-main .brand-title{font-size:42px;line-height:1.1;letter-spacing:-1.1px}
.footer-pulse-main .brand-hours{font-size:.56em;margin-left:7px;letter-spacing:-.5px}
.footer-pulse-main .brand small{margin-top:11px;font-size:11px;line-height:1.3;letter-spacing:2.6px;color:#6488a5}
.footer-credit{position:relative;min-width:0;background:#eaf4fd;box-shadow:0 0 18px 14px #eaf4fd}
.footer-credit p{font-size:17px;line-height:1.5;color:#284d6b}
.footer-credit strong{display:block;margin-top:3px;font-size:14px;font-weight:500;color:#5a819f}
.footer-plan{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:45px;padding:12px 19px;margin-top:18px;border-radius:6px;background:#163b5b;color:#fff;font-size:13px;line-height:1.3;transition:background .18s}
.footer-plan:hover{background:#21618c}
.footer-plan span{font-size:20px;line-height:1}
.footer-pulse-line{position:absolute;z-index:0;left:0;right:0;top:86px;height:66px;overflow:hidden;pointer-events:none}
.footer-pulse-track{display:flex;width:200%;height:100%;will-change:transform;animation:footer-heartbeat-ribbon 16s linear infinite}
.footer-pulse-track svg{display:block;flex:0 0 50%;width:50%;height:100%;overflow:visible}
.footer-pulse-track path{fill:none;stroke:#398fc1;stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.footer-pulse-track circle{fill:#f4ce46}
@keyframes footer-heartbeat-ribbon{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.footer-pulse-watermark{position:absolute;z-index:0;left:18%;bottom:12px;font-size:clamp(130px,18vw,245px);font-weight:800;line-height:1;letter-spacing:-.065em;color:#b7d5eb;opacity:.22;pointer-events:none;user-select:none}
.footer-pulse-bottom{position:relative;z-index:2;border-top:1px solid #c8dfef;color:#5a7b97;font-size:10px;line-height:1.5}
.footer-pulse-bottom>.wrap{padding-top:16px;padding-bottom:16px}
@media(max-width:1050px){.footer-pulse-main{gap:44px;grid-template-columns:minmax(0,1fr) 285px}.footer-pulse-main .brand-heart{width:64px;height:68px}.footer .footer-pulse-main .brand-title{font-size:34px}.footer-credit p{font-size:16px}.footer-pulse-main .brand{gap:12px}}
@media(max-width:800px){.footer-pulse-main{grid-template-columns:minmax(0,1fr) 240px;gap:28px;min-height:210px;padding-top:30px;padding-bottom:28px}.footer-pulse-main .brand-heart{width:56px;height:60px}.footer .footer-pulse-main .brand-title{font-size:29px}.footer-pulse-main .brand small{font-size:9px;letter-spacing:1.8px}.footer-credit p{font-size:15px}.footer-pulse-line{top:75px;height:60px}}
@media(max-width:620px){
 .footer-pulse-band{margin-top:20px}
 .footer-pulse-main{grid-template-columns:1fr;gap:50px;min-height:0;padding-top:28px;padding-bottom:27px}
 .footer-pulse-main .brand{gap:13px;margin-top:0}
 .footer-pulse-main .brand-heart{width:61px;height:65px}
 .footer .footer-pulse-main .brand-title{font-size:32px}
 .footer-pulse-main .brand small{margin-top:9px;font-size:10px;letter-spacing:2px}
 .footer-credit{max-width:335px;box-shadow:none}
 .footer-credit p{font-size:16px}
 .footer-credit strong{font-size:13px}
 .footer-plan{margin-top:15px;min-height:44px;padding:12px 18px}
 .footer-pulse-line{top:89px;height:55px}
 .footer-pulse-track{animation-duration:10s}
 .footer-pulse-watermark{left:15%;bottom:52px;font-size:105px;opacity:.2}
 .footer-pulse-bottom{font-size:9px}
 .footer-pulse-bottom>.wrap{padding-top:14px;padding-bottom:14px}
}
@media(max-width:360px){.footer-pulse-main .brand{gap:10px}.footer .footer-pulse-main .brand-title{font-size:28px}.footer-pulse-main .brand-heart{width:52px;height:56px}.footer-pulse-main .brand small{font-size:9px;letter-spacing:1.5px}}
@media(prefers-reduced-motion:reduce){.footer-pulse-track{animation:none;transform:none;will-change:auto}}
