/* Shared header/footer spacing. Uses the category token roles. */
.cd-back-top { position:fixed; right:24px; bottom:24px; z-index:60; display:grid; place-items:center; width:48px; height:48px; border:1px solid var(--tfs-color-action-primary); border-radius:8px; background:var(--tfs-color-action-primary); color:#fff; box-shadow:0 8px 24px #0003; visibility:hidden; opacity:0; pointer-events:none; }
.cd-back-top[data-shown] { visibility:visible; opacity:1; pointer-events:auto; }
.cd-back-top svg { width:22px; height:22px; }
.cd-footer .cd-powered-by { padding-right:4rem; }
.cd-back-top:focus-visible { outline:3px solid var(--tfs-color-text-body); outline-offset:3px; }
@media(max-width:767px) { .cd-back-top { right:16px; bottom:16px; width:44px; height:44px; } }
.cd-has-submenu { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 36px; align-items:center; }
.cd-submenu-toggle { display:inline-grid; place-items:center; width:36px; height:40px; border:0; background:transparent; color:inherit; cursor:pointer; }
.cd-submenu-toggle[aria-expanded="true"]>span { transform:rotate(180deg); }
.cd-submenu-toggle:focus-visible { outline:2px solid var(--tfs-color-action-primary); outline-offset:1px; }
.cd-nav li>ul { grid-column:1/-1; margin:0; list-style:none; }
.cd-nav li>ul a { overflow-wrap:anywhere; }
.cd-nav li:not([data-open])>ul { display:none; }
.cd-nav li[data-open]>ul { display:block; }
@media(min-width:1200px) {
 .cd-nav li>ul { position:absolute; top:100%; left:0; padding:.5rem; width:230px; min-width:230px; max-width:230px; background:var(--tfs-color-surface-page); color:var(--tfs-color-text-body); border:1px solid var(--tfs-color-border-soft); box-shadow:0 15px 35px #0002; z-index:40; }
 .cd-nav li li>ul { position:absolute; top:-.5rem; left:100%; min-width:230px; border:1px solid var(--tfs-color-border-soft); }
 .cd-nav>ul>li:nth-last-child(-n+2) li>ul { left:auto; right:100%; }
 .cd-nav li>ul>li>a:hover { background:var(--tfs-color-surface-muted); }
}
@media(max-width:1199px) {
 .cd-nav li>ul { position:static; width:auto; min-width:0; max-width:none; padding:.25rem 0 .5rem 1rem; border-left:2px solid var(--tfs-color-border-soft); }
 .cd-nav li li>ul { margin-left:.5rem; }
 .cd-nav .cd-submenu-toggle { min-height:44px; }
}
@media(scripting:none) { .cd-nav li>ul { display:block!important; position:static; } .cd-submenu-toggle { display:none; } }
.cd-header-top>.cd-container { gap:1rem 2rem; padding-block:.65rem; }
.cd-header-contacts { align-items:center; gap:.6rem 1.75rem; }
.cd-header-contacts>a { display:inline-flex; flex-wrap:wrap; align-items:center; gap:.35rem; overflow-wrap:anywhere; }
.cd-header-contacts a span { margin:0; }
.cd-header-social,.cd-footer-social { display:flex; align-items:center; flex-wrap:wrap; gap:.6rem; }
.cd-social-link { width:36px; height:36px; border:1px solid currentColor; border-radius:50%; font-size:.9rem; flex-shrink:0; }
.cd-social-link:hover { color:var(--tfs-color-action-primary); }
.cd-social-link:focus-visible { outline:2px solid var(--tfs-color-action-primary); outline-offset:4px; }
.cd-header-row { column-gap:2rem; }
.cd-nav a { display:inline-flex; align-items:center; padding:.75rem .3rem; }
.cd-nav a:hover { color:var(--tfs-color-action-primary); }
.cd-nav li>ul a { display:flex; padding:.75rem; }
.cd-footer { padding-block:4.5rem 2rem; }
.cd-footer-grid { grid-template-columns:1.3fr 1.15fr .8fr .95fr; gap:3rem; }
.cd-footer h2 { margin-bottom:1.5rem; font-weight:700; }
.cd-footer h3 { margin-bottom:.75rem; font-size:.8rem; font-weight:600; }
.cd-footer-description { line-height:1.9; }
.cd-footer-social { margin-top:1.5rem; }
.cd-footer address { font-style:normal; line-height:1.9; margin-bottom:.9rem; }
.cd-footer p { line-height:1.9; }
.cd-footer ul { display:grid; gap:.75rem; }
.cd-footer .cd-text-link { margin:0; padding-block:.15rem; line-height:1.8; }
.cd-footer a { overflow-wrap:anywhere; }
.cd-footer-codes { margin-top:1.5rem; border-top:1px solid var(--tfs-color-border-soft); padding-top:1rem; font-size:.75rem; }
.cd-footer-codes>div { display:flex; flex-wrap:wrap; gap:.35rem .75rem; margin-top:.45rem; }
.cd-footer-codes dt { min-width:3rem; font-weight:700; }
.cd-footer-codes dd { margin:0; font-variant-numeric:tabular-nums; }
.cd-footer .cd-copyright { margin-top:3rem; padding-top:1.5rem; }
.cd-powered-by { margin-top:.5rem; }
@media(min-width:1200px) {
 .cd-nav>ul { gap:clamp(1rem,2vw,2.25rem); align-items:center; }
}
@media(max-width:1199px) {
 .cd-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem; }
 .cd-nav[data-open] { padding-block:.75rem; }
 .cd-nav>ul>li { border-bottom:1px solid var(--tfs-color-border-soft); }
 .cd-nav>ul>li>a { display:flex; padding:.9rem .25rem; }
}
@media(max-width:767px) {
 .cd-header-top>.cd-container { align-items:flex-start; gap:.75rem; padding-block:.9rem; }
 .cd-header-contacts { flex:1 1 100%; flex-direction:column; align-items:flex-start; gap:.55rem; }
 .cd-header-social { display:flex; gap:.6rem; }
 .cd-header-social .cd-social-link { width:32px; height:32px; }
 .cd-footer { padding-block:3rem 1.5rem; }
 .cd-footer-grid { grid-template-columns:1fr; gap:2.5rem; }
 .cd-footer h2 { margin-bottom:1rem; }
}
