@font-face{font-family:"LINE Seed JP Footer";src:url("/assets/footer-LINESeedJP-ExtraBold.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"LINE Seed JP Footer";src:url("/assets/footer-LINESeedJP-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
footer.site-footer.neko-footer-v2{position:relative!important;display:block!important;width:100%!important;max-width:none!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#fff!important;color:#19191b;transform:none!important;text-align:left;overflow:visible;scroll-snap-align:start}
#root footer.site-footer[hidden],.neko-final-screen footer[hidden]{display:none!important}
.neko-footer-v2 *{box-sizing:border-box}
footer.neko-footer-v2 :is(h2,h3,p){margin:0;letter-spacing:0}
footer.neko-footer-v2 :is(a,span,p,small){color:inherit;text-decoration:none}
footer.neko-footer-v2 a:hover{text-decoration:underline;text-underline-offset:4px}
footer.neko-footer-v2 a:focus-visible{outline:2px solid #c7a162;outline-offset:5px}
footer.neko-footer-v2 .nf-rail{width:100%;max-width:1200px;margin-inline:auto}
footer.neko-footer-v2 .nf-cta{padding:64px clamp(40px,8.333vw,120px);background:#f8f8f7}
footer.neko-footer-v2 .nf-cta h2{font:800 42px/52px "LINE Seed JP Footer","Noto Sans JP",sans-serif}
footer.neko-footer-v2 .nf-button{display:flex;align-items:center;justify-content:center;width:220px;height:52px;margin-top:28px;padding:0 24px;border-radius:26px;background:#19191b;color:#fff;font:700 14px/22px "LINE Seed JP Footer","Noto Sans JP",sans-serif}
footer.neko-footer-v2 .nf-main{padding:72px clamp(40px,8.333vw,120px);background:#fff}
footer.neko-footer-v2 .nf-main-grid{display:grid;grid-template-columns:minmax(0,440px) minmax(0,604px);justify-content:space-between;gap:clamp(32px,5vw,100px)}
footer.neko-footer-v2 .nf-brand{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:0}
footer.neko-footer-v2 .nf-brand-name{font:700 30px/40px "LINE Seed JP Footer","Noto Sans JP",sans-serif}
footer.neko-footer-v2 .nf-subtitle{font:400 12px/20px "Noto Sans JP",sans-serif}
footer.neko-footer-v2 .nf-description{font:400 15px/26px "Noto Sans JP",sans-serif}
footer.neko-footer-v2 .nf-groups{display:grid;grid-template-columns:1fr 1.125fr 1fr;gap:clamp(24px,3.6vw,52px)}
footer.neko-footer-v2 .nf-group{min-width:0}
footer.neko-footer-v2 .nf-group h3{margin:0 0 18px;font:700 14px/22px "LINE Seed JP Footer","Noto Sans JP",sans-serif}
footer.neko-footer-v2 .nf-group :is(a,span){display:block;font:400 14px/32px "Noto Sans JP",sans-serif}
footer.neko-footer-v2 .nf-legal{padding:0 clamp(40px,8.333vw,120px) 36px;background:#fff}
footer.neko-footer-v2 .nf-legal .nf-rail{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:112px;padding-top:36px;border-top:1px solid #19191b}
footer.neko-footer-v2 .nf-legal-links{display:flex;flex-wrap:wrap;gap:0 22px;font:400 11px/24px "Noto Sans JP",sans-serif}
footer.neko-footer-v2 .nf-legal small{flex-shrink:0;font:600 10px/16px Poppins,sans-serif}
footer.neko-footer-v2 .nf-mobile{display:none!important}
@media (min-width:761px) and (max-width:1100px){
 footer.neko-footer-v2 .nf-main-grid{grid-template-columns:1fr;gap:40px}
 footer.neko-footer-v2 .nf-groups{max-width:604px}
}
@media (max-width:760px){
 footer.neko-footer-v2 .nf-desktop{display:none!important}
 footer.neko-footer-v2 .nf-mobile{display:block!important}
 footer.neko-footer-v2 .nf-cta{padding:64px 24px}
 footer.neko-footer-v2 .nf-cta h2{font-size:clamp(25px,7.95vw,31px)!important;line-height:40px!important;font-weight:800}
 footer.neko-footer-v2 br{display:block}
 footer.neko-footer-v2 .nf-button{width:100%;margin-top:24px}
 footer.neko-footer-v2 .nf-main{padding:56px 24px 48px}
 footer.neko-footer-v2 .nf-main-grid{grid-template-columns:minmax(0,1fr);gap:32px}
 footer.neko-footer-v2 .nf-brand{gap:10px}
 footer.neko-footer-v2 .nf-brand-name{font-size:28px;line-height:38px}
 footer.neko-footer-v2 .nf-subtitle{font-size:11px;line-height:18px}
 footer.neko-footer-v2 .nf-description{font-size:15px;line-height:25px}
 footer.neko-footer-v2 .nf-medical{font:400 11px/19px "Noto Sans JP",sans-serif}
 footer.neko-footer-v2 .nf-groups{grid-template-columns:minmax(0,145fr) minmax(0,165fr);gap:32px;border-top:1px solid #19191b;padding-top:32px}
 footer.neko-footer-v2 .nf-group h3{margin-bottom:16px}
 footer.neko-footer-v2 .nf-social{grid-column:1/-1;display:flex;flex-direction:column;align-items:flex-start;gap:24px;border-top:1px solid #19191b;padding-top:32px}
 footer.neko-footer-v2 .nf-social h3{margin:0}
 footer.neko-footer-v2 .nf-social>div{text-align:left}
 footer.neko-footer-v2 .nf-social :is(a,span){line-height:30px}
 footer.neko-footer-v2 .nf-legal{padding:0 24px 40px}
 footer.neko-footer-v2 .nf-legal .nf-rail{display:flex;flex-direction:column;align-items:flex-start;gap:20px;min-height:0;padding-top:20px}
 footer.neko-footer-v2 .nf-legal-links{display:flex;flex-wrap:wrap;gap:0 22px}
 footer.neko-footer-v2 .nf-legal small{font-size:9px;line-height:16px}
}

/* The final home stop uses the shared footer at its natural height. */
html body #root .neko-final-screen{height:auto!important;min-height:100svh!important;display:flex!important;flex-direction:column;justify-content:center;padding:112px 0 0!important;background:#fff;overflow:visible!important}
/* The home controller handles section snapping; native snap would pull a tall footer back to its top. */
html.route-home.neko-footer-scroll,html.route-home.neko-footer-scroll body{scroll-snap-type:none!important}

/* Match the research article rail while its fixed theme navigation is visible. */
@media(min-width:761px){
 .detail-page.rr-mounted{--rr-footer-rail:min(1460px,calc(100vw - 64px));--rr-footer-offset:300px}
 .detail-page.rr-mounted>footer.neko-footer-v2{width:calc(var(--rr-footer-rail) - var(--rr-footer-offset))!important;margin-left:calc((100% - var(--rr-footer-rail))/2 + var(--rr-footer-offset))!important}
 .detail-page.rr-mounted>footer.neko-footer-v2 .nf-main-grid{grid-template-columns:minmax(0,1fr);gap:40px}
 .detail-page.rr-mounted>footer.neko-footer-v2 .nf-groups{max-width:604px}
 .detail-page.rr-mounted>footer.neko-footer-v2 :is(.nf-cta,.nf-main,.nf-legal){padding-left:clamp(24px,4vw,64px);padding-right:clamp(24px,4vw,64px)}
}
@media(min-width:1121px) and (max-width:1400px){.detail-page.rr-mounted{--rr-footer-offset:268px}}
@media(min-width:761px) and (max-width:1120px){.detail-page.rr-mounted{--rr-footer-rail:min(960px,calc(100vw - 40px));--rr-footer-offset:230px}}

/* Desktop dimensions follow the supplied footer reference. */
@media(min-width:1101px){footer.neko-footer-v2 .nf-cta>.nf-rail{max-width:1040px}footer.neko-footer-v2 .nf-main-grid{max-width:1044px;grid-template-columns:minmax(0,440px) minmax(0,604px);gap:0}footer.neko-footer-v2 .nf-groups{gap:52px;grid-template-columns:160fr 180fr 160fr}}
footer.neko-footer-v2 .nf-legal .nf-rail{min-height:69px;padding-top:28px}footer.neko-footer-v2 .nf-legal-links{color:#565659;line-height:18px}

/* Mobile footer reference: 390px canvas, 24px gutters and 342px content. */
@media(max-width:760px){
 footer.neko-footer-v2 :is(.nf-cta,.nf-main,.nf-legal){padding-left:24px!important;padding-right:24px!important;overflow:hidden}
 footer.neko-footer-v2 .nf-cta{padding-top:64px!important;padding-bottom:64px!important}
 footer.neko-footer-v2 .nf-main{padding-top:56px;padding-bottom:48px}
 footer.neko-footer-v2 .nf-rail{max-width:none;min-width:0}
 footer.neko-footer-v2 .nf-groups{column-gap:32px;row-gap:32px;padding-top:32px}
 footer.neko-footer-v2 .nf-social{gap:32px;padding-top:32px}
 footer.neko-footer-v2 .nf-legal .nf-rail{min-height:0;padding-top:20px;gap:20px}
 footer.neko-footer-v2 .nf-legal-links{line-height:24px}
}

/* Keep the supplied mobile reference consistent with legacy page overrides. */
@media(max-width:760px){
 #root footer.neko-footer-v2 :is(.nf-cta,.nf-main,.nf-legal){padding-left:24px!important;padding-right:24px!important}
 #root footer.neko-footer-v2 .nf-cta{padding-top:64px!important;padding-bottom:64px!important}
}

/* Legal links typography supplied by the user. */
footer.neko-footer-v2 .nf-legal-links{width:760px;max-width:100%;min-width:0;color:#565659;font-family:"Noto Sans JP",sans-serif;font-style:normal;font-weight:400;font-size:11px;line-height:18px;overflow-wrap:break-word;gap:0 22px}
@media(max-width:760px){footer.neko-footer-v2 .nf-legal-links{width:100%}}

/* Pin legal copy to the reference gray, independent of page theme and span rules. */
#root footer.neko-footer-v2 .nf-legal-links,#root footer.neko-footer-v2 .nf-legal-links :is(span,a){color:#565659!important;font-family:"Noto Sans JP",sans-serif;font-style:normal;font-weight:400;font-size:11px;line-height:18px}

/* Research desktop footer keeps navigation beside the brand on laptop widths. */
@media(min-width:1101px){
 .detail-page.rr-mounted>footer.neko-footer-v2 .nf-main-grid{grid-template-columns:minmax(0,0.9fr) minmax(0,1.5fr)!important;gap:28px!important;align-items:start}
 .detail-page.rr-mounted>footer.neko-footer-v2 .nf-groups{width:100%;max-width:none;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);gap:20px}
}
