/* Shared footer; isolated from page, menu and player styles. */
.site-footer { position:relative; isolation:isolate; overflow:hidden; background:#002b3c; color:#f5fbff; padding:44px clamp(20px,3.7vw,80px) 14px; }
.sf-container { position:relative; max-width:1720px; margin-inline:auto; }
.sf-grid { display:grid; grid-template-columns:minmax(250px,.8fr) minmax(280px,1.2fr); gap:clamp(28px,7vw,140px); padding-bottom:28px; }
.site-footer :is(h2,h3) { margin:0 0 18px; font-family:var(--display); font-weight:600; font-size:12px; line-height:1.5; letter-spacing:-.02em; }
.site-footer a { text-decoration:none; border-radius:5px; transition:color .2s,background .2s,box-shadow .2s; }
.site-footer a:hover { color:#c5ecff; }
.site-footer :is(a,summary,button):focus-visible { box-shadow:0 0 22px #a4ddff77; }
.sf-brand { display:inline-flex; align-items:center; gap:10px; color:#fff; }
.sf-brand > img { flex:none; width:38px; height:38px; filter:brightness(0) invert(1); }
.sf-brand > span { font-family:var(--display); font-weight:600; font-size:25px; letter-spacing:-.04em; white-space:nowrap; }
.sf-brand b { display:inline-block; background:#f5fbff; color:#002b3c; font:inherit; padding:0 4px; margin-left:3px; }
.sf-tagline { max-width:280px; margin:16px 0 22px; font:14px/1.65 Arial,sans-serif; color:#b4ceda; }
.sf-address { display:grid; gap:2px; margin:0; font-style:normal; }
.sf-address a { display:flex; width:max-content; max-width:100%; gap:12px; align-items:center; min-height:38px; font-size:16px; line-height:1.5; overflow-wrap:anywhere; }
.sf-address svg { flex:none; width:20px; height:20px; color:#92b9cc; }
.sf-messengers { display:flex; flex-wrap:wrap; gap:16px; margin:5px 0 14px 32px; }
.sf-messengers a { display:inline-flex; align-items:center; min-height:32px; gap:6px; font-size:13px; color:#b4ceda; }
.sf-messengers svg { width:13px; height:13px; }
.sf-socials { display:flex; flex-wrap:wrap; gap:7px; }
.sf-socials a { display:grid; place-items:center; width:38px; height:38px; color:#d2e5ee; border-radius:10px; background:#ffffff09; }
.sf-socials svg { width:20px; height:20px; }
.sf-socials a:hover { background:#ffffff17; box-shadow:0 0 20px #81c7eb22; }
.sf-navigation ul,.sf-taxonomy ul { list-style:none; padding:0; margin:0; }
.sf-navigation nav > ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }
.sf-navigation > h2 { display:flex; align-items:center; min-height:30px; margin:0 0 10px; }
.sf-navigation li { min-width:0; }
.sf-navigation li a { display:flex; align-items:center; min-height:34px; padding-block:5px; font-size:14px; line-height:1.5; }
.sf-taxonomy { border-top:1px solid #8fc5db33; border-bottom:1px solid #8fc5db33; }
.sf-taxonomy > summary { display:flex; align-items:center; gap:20px; min-height:58px; cursor:pointer; list-style:none; font-family:var(--display); font-weight:600; font-size:12px; line-height:1.5; border-radius:8px; }
.site-footer summary::-webkit-details-marker { display:none; }
.sf-taxonomy summary > svg { flex:none; width:20px; height:20px; margin-left:auto; transition:transform .25s; }
.sf-summary-note { font:12px/1.5 Arial,sans-serif; color:#97b7c8; }
.sf-taxonomy-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 32px; padding:12px 0 28px; }
.sf-taxonomy-group h3 { margin-bottom:9px; color:#e0f1fa; font-size:11px; }
.sf-taxonomy-group li a { display:flex; align-items:center; width:fit-content; max-width:100%; min-height:30px; padding-block:4px; font:13px/1.6 Arial,sans-serif; color:#aecbd9; }
.sf-bottom { display:grid; gap:9px; padding-top:18px; font:11px/1.75 Arial,sans-serif; color:#a8c6d5; }
.sf-bottom > p { margin:0; }
.sf-usage-text { max-width:1500px; }
.sf-usage-text a { color:#e0f1fa; text-decoration:underline; text-underline-offset:3px; }
.sf-ambient { position:absolute; z-index:-1; inset:0; pointer-events:none; overflow:hidden; opacity:.65; }
.sf-ambient > span { position:absolute; right:0; bottom:-.2em; color:transparent; -webkit-text-stroke:1px #83badc35; font-family:var(--display); font-weight:600; font-size:clamp(92px,17vw,290px); line-height:1.2; letter-spacing:-.045em; white-space:nowrap; animation:sf-brand-drift 4.8s ease-in-out 1 both; animation-play-state:paused; }
.sf-ambient > img { position:absolute; right:24%; top:-130px; width:360px; height:360px; opacity:.035; filter:brightness(0) invert(1); animation:sf-mark-drift 4.6s ease-in-out 1 both; animation-play-state:paused; }
.site-footer.is-ambient-running .sf-ambient > * { animation-play-state:running; }
@keyframes sf-brand-drift { from{transform:translate3d(0,0,0)} to{transform:translate3d(-18px,-5px,0)} }
@keyframes sf-mark-drift { from{transform:translate3d(0,0,0) rotate(-7deg)} to{transform:translate3d(12px,9px,0) rotate(-4deg)} }
@media(min-width:1101px) {
 .sf-grid { grid-template-columns:minmax(260px,.85fr) minmax(0,2.15fr); gap:clamp(36px,4vw,80px); }
 .sf-navigation { min-width:0; }
 .sf-navigation nav > ul { display:block; column-count:3; column-gap:clamp(24px,3vw,64px); }
 .sf-navigation li { break-inside:avoid; }
 .sf-navigation li a { min-height:40px; padding-block:8px; }
}
@media(max-width:1100px) { .sf-grid { grid-template-columns:minmax(210px,1fr) minmax(230px,1.1fr); gap:30px; } }
@media(max-width:760px) {
 .site-footer { padding:32px 20px 16px; }
 .sf-grid { grid-template-columns:minmax(0,1fr); gap:28px; padding-bottom:22px; }
 .sf-brand > span { font-size:25px; }
 .sf-tagline { max-width:310px; margin:14px 0 15px; }
 .sf-address a { min-height:44px; }
 .sf-messengers a { min-height:40px; }
 .sf-socials a { width:42px; height:42px; }
 .sf-navigation > h2 { min-height:44px; margin-bottom:0; }
 .sf-navigation nav > ul { column-gap:22px; padding-top:8px; }
 .sf-navigation li a { min-height:42px; font-size:13px; }
 .sf-taxonomy > summary { min-height:60px; gap:10px; font-size:11px; }
 .sf-summary-note { display:none; }
 .sf-taxonomy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 20px; padding:10px 0 24px; }
 .sf-taxonomy-group li a { min-height:40px; font-size:13px; }
 .sf-taxonomy-group h3 { font-size:10px; line-height:1.6; }
 .sf-bottom { gap:10px; padding-top:18px; font-size:11px; }
 .sf-bottom > p { margin:0; }
 .sf-ambient > img { right:-150px; top:190px; }
}
@media(max-width:360px) { .sf-taxonomy-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .site-footer *,.site-footer *::after { animation:none!important; transition:none!important; } }
@media print { .site-footer { display:none; } }
