/* Standard course header, menu and footer. */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;padding:10px clamp(14px,4vw,52px);background:#fffffff5;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.course-home{font-size:14px;font-weight:850;text-decoration:none}.brand{margin-right:auto;width:52px;height:52px;display:block;border-radius:14px;overflow:hidden}.brand img{width:100%;height:100%;object-fit:cover}.course-menu{position:relative}.course-menu summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:14px;padding:10px 15px;font-weight:850;color:var(--blue)}.course-menu summary::-webkit-details-marker{display:none}.course-menu summary:before{content:'☰';margin-right:10px}.course-menu nav{position:absolute;right:0;top:calc(100% + 10px);background:white;border:1px solid var(--line);padding:9px;border-radius:18px;box-shadow:var(--shadow);width:min(390px,calc(100vw - 36px));max-height:75dvh;overflow:auto;display:grid}.course-menu nav a{padding:11px 13px;border-radius:10px;text-decoration:none;font-weight:750;font-size:14px}.course-menu nav a:hover,.course-menu nav a[aria-current]{background:#edf5ff}
.footer{
  padding:0;
  background:#04101f;
  color:#dbe8f7;
  text-align:left;
}
.footer-inner{
  width:min(1240px,100%);
  margin:0 auto;
  padding:clamp(38px,6vw,72px) clamp(18px,7vw,92px);
}
.footer-kicker{
  color:var(--orange);
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:clamp(14px,1.4vw,18px);
}
.footer-title{
  margin-top:10px;
  color:#fff;
  font-size:clamp(29px,4vw,52px);
  font-weight:950;
  line-height:1.05;
  letter-spacing:-.03em;
}
.footer-subtitle{
  margin-top:12px;
  color:#a9bfd8;
  font-size:clamp(17px,1.6vw,22px);
  max-width:780px;
}
.footer-contacts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
  margin-top:30px;
}
.contact-card{
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
  gap:8px;
  padding:20px;
  border-radius:22px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  text-decoration:none;
}
.contact-card:hover{
  background:rgba(255,255,255,.11);
  border-color:rgba(255,122,0,.6);
}
.contact-label{
  color:#8fb2d9;
  font-size:14px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.contact-name{
  color:#fff;
  font-size:clamp(18px,1.8vw,27px);
  font-weight:950;
  overflow-wrap:anywhere;
}
.contact-url{
  color:#ff9b33;
  font-size:clamp(15px,1.4vw,19px);
  font-weight:800;
  word-break:break-all;
}
.footer-bottom{
  margin-top:26px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.12);
  color:#7f9ab7;
  font-size:14px;
}
@media (max-width:900px){
  .footer-contacts{
    grid-template-columns:1fr;
  }
  .contact-name{
    white-space:normal;
  }
}
.topbar.course-topbar{display:flex;justify-content:flex-start;align-items:center;gap:clamp(12px,3vw,28px);padding:10px clamp(14px,4vw,52px);z-index:50}
.topbar .brand{width:52px;height:52px;display:block;flex:0 0 52px;margin-right:auto;border-radius:14px;overflow:hidden;background:#fff}
.topbar .brand img{display:block;width:100%;height:100%;object-fit:cover}
.topbar .course-home{white-space:nowrap;color:var(--blue);font-size:14px;font-weight:850;text-decoration:none}
.course-menu summary{display:flex;align-items:center;gap:10px;background:#fff;white-space:nowrap}
.course-menu summary:before{margin-right:0;font-size:20px;line-height:1}
.course-menu[open] summary:before{content:'×'}
.course-menu nav{z-index:80;max-height:75vh;overflow:auto;color:var(--ink);box-shadow:0 18px 50px #04244c26}
.course-menu nav a{color:var(--ink)}
.course-menu nav a[aria-current='page']{background:var(--blue);color:#fff}
.footer{padding:0;text-align:left}
.footer a.contact-card{color:#fff}
.footer .contact-url{color:#ff9b33}
@media(max-width:700px){.topbar.course-topbar{gap:12px;padding:8px 14px}.topbar .brand{width:44px;height:44px;flex-basis:44px}.topbar .course-home{font-size:13px}.footer-contacts{grid-template-columns:1fr}}
