/* Training Portal v29: mobile public navigation + public/internal footers.
   Deliberately scoped to shared masters; no course forms, controls or ticket logic touched. */

/* Public desktop: button is only needed on narrow screens. */
body.dga-lite-public .tp-public-header .tp-public-menu-toggle {
  display: none !important;
}

/* A compact dropdown below a stable header; it never increases the header height. */
@media (max-width: 991px) {
  body.dga-lite-public .tp-public-header {
    position: sticky !important;
    top: 0;
    z-index: 1050 !important;
    overflow: visible !important;
    background: #fff;
  }
  body.dga-lite-public .tp-public-header .tp-public-header-inner {
    width: 100%;
    max-width: 1440px;
    min-height: 64px !important;
    height: 64px;
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 42px auto;
    grid-template-areas: "brand menu actions";
    align-items: center;
    gap: 10px;
    padding: 0 16px !important;
    position: relative;
    flex-wrap: nowrap !important;
    overflow: visible !important;
  }
  body.dga-lite-public .tp-public-header .tp-public-brand {
    grid-area: brand;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    order: unset !important;
  }
  body.dga-lite-public .tp-public-header .tp-public-brand img {
    max-width: min(160px, 100%) !important;
    max-height: 40px;
    width: auto;
    height: auto;
  }
  body.dga-lite-public .tp-public-header .tp-public-menu-toggle {
    grid-area: menu;
    display: inline-flex !important;
    justify-content: center;
    align-items: center;
    width: 42px;
    height: 42px;
    min-height: 42px !important;
    padding: 0 !important;
    margin: 0 !important;
    order: unset !important;
    border: 1px solid #d3e5d9 !important;
    border-radius: 11px !important;
    background: #f5faf7 !important;
    color: #126744 !important;
    box-shadow: none !important;
    cursor: pointer;
  }
  body.dga-lite-public .tp-public-header .tp-public-menu-toggle[aria-expanded="true"] {
    background: #e7f5ed !important;
    border-color: #80b99b !important;
  }
  body.dga-lite-public .tp-public-header .tp-public-menu-toggle span {
    display: none !important;
  }
  body.dga-lite-public .tp-public-header .tp-public-actions {
    grid-area: actions;
    justify-self: end;
    display: flex !important;
    align-items: center;
    gap: 5px;
    min-width: 0;
    margin: 0 !important;
    order: unset !important;
  }
  body.dga-lite-public .tp-public-header .tp-public-actions .tp-surface-switch {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    white-space: nowrap;
    min-height: 40px !important;
    padding: 7px 11px !important;
    font-size: 13px !important;
    line-height: 1.2;
    border-radius: 9px !important;
  }
  body.dga-lite-public .tp-public-header #tpPublicNav {
    position: absolute !important;
    display: none !important;
    flex: none !important;
    width: min(320px, calc(100vw - 24px)) !important;
    max-width: none;
    min-width: 0;
    height: auto !important;
    max-height: min(290px, calc(100dvh - 85px));
    overflow-y: auto;
    inset: calc(100% + 8px) 12px auto auto;
    padding: 8px !important;
    margin: 0 !important;
    border: 1px solid #d9e8df !important;
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: 0 16px 36px rgba(14, 57, 39, .16) !important;
    z-index: 1100 !important;
    order: unset !important;
    flex-basis: auto !important;
    box-sizing: border-box;
    align-items: stretch !important;
    gap: 2px !important;
  }
  body.dga-lite-public .tp-public-header #tpPublicNav.tp-public-nav-open {
    display: flex !important;
    flex-direction: column !important;
  }
  body.dga-lite-public .tp-public-header #tpPublicNav a {
    width: 100% !important;
    min-height: 45px !important;
    height: auto !important;
    padding: 11px 13px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    border-radius: 9px;
    font-size: 15px !important;
    font-weight: 600;
    color: #24483b;
    text-align: right !important;
    line-height: 1.4 !important;
    background: transparent;
    text-decoration: none;
  }
  body.dga-lite-public .tp-public-header #tpPublicNav a:hover,
  body.dga-lite-public .tp-public-header #tpPublicNav a:focus-visible,
  body.dga-lite-public .tp-public-header #tpPublicNav a[aria-current="page"] {
    background: #e9f5ee !important;
    color: #126744;
  }
}
@media (max-width: 375px) {
  body.dga-lite-public .tp-public-header .tp-public-header-inner {
    gap: 7px;
    padding-inline: 10px !important;
    grid-template-columns: minmax(0, 1fr) 40px auto;
  }
  body.dga-lite-public .tp-public-header .tp-public-menu-toggle {width: 40px;height: 40px;min-height: 40px !important;}
  body.dga-lite-public .tp-public-header .tp-public-brand img {max-width: 112px !important;}
  body.dga-lite-public .tp-public-header .tp-public-actions .tp-surface-switch {
    font-size: 12px !important;
    padding-inline: 8px !important;
  }
}

/* PUBLIC FOOTER: replace legacy template spacing/columns, preserve real links. */
body.dga-lite-public .tp-site-footer {
  background: #103d31 !important;
  background-image: radial-gradient(circle at 12% 0, rgba(46, 149, 104, .17), transparent 40%) !important;
  color: #f1f8f3 !important;
  border: 0 !important;
  border-top: 4px solid #1b8354 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box;
}
body.dga-lite-public .tp-site-footer-main {
  max-width: 1240px;
  margin: 0 auto;
  padding: 38px 24px 32px;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 4vw, 58px);
  align-items: start;
}
body.dga-lite-public .tp-site-footer-brand a {display: inline-flex;align-items: center;}
body.dga-lite-public .tp-site-footer-logo {
  display: block;
  max-width: 157px;
  max-height: 50px;
  width: auto;
  height: auto;
  background: #fff;
  border-radius: 11px;
  padding: 7px 11px;
}
body.dga-lite-public .tp-site-footer-brand p {
  margin: 12px 0 0;
  color: #c8dcd1 !important;
  font-size: 13px;
  line-height: 1.65;
}
body.dga-lite-public .tp-site-footer-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}
body.dga-lite-public .tp-site-footer-group h2 {
  margin: 1px 0 5px;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 700;
  line-height: 1.6;
}
body.dga-lite-public .tp-site-footer-group a {
  display: inline-flex;
  width: fit-content;
  min-height: 30px;
  align-items: center;
  color: #daeae1 !important;
  font-size: 15px !important;
  line-height: 1.5;
  text-decoration: none !important;
  transition: color .15s ease;
}
body.dga-lite-public .tp-site-footer-group a:hover,
body.dga-lite-public .tp-site-footer-group a:focus-visible {
  color: #fff !important;
  text-decoration: underline !important;
  text-underline-offset: 4px;
}
body.dga-lite-public .tp-site-footer-bottom {
  border-top: 1px solid rgba(221, 243, 230, .16);
}
body.dga-lite-public .tp-site-footer-bottom-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 17px 24px;
  color: #d5e6da;
  text-align: right;
  font-size: 13px;
  line-height: 1.7;
}
@media (max-width: 767px) {
  body.dga-lite-public .tp-site-footer-main {
    padding: 28px 19px 23px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 21px 14px;
  }
  body.dga-lite-public .tp-site-footer-brand {grid-column: 1 / -1;}
  body.dga-lite-public .tp-site-footer-logo {max-width: 143px;}
  body.dga-lite-public .tp-site-footer-group h2 {font-size: 15px !important;}
  body.dga-lite-public .tp-site-footer-group a {font-size: 14px !important;}
  body.dga-lite-public .tp-site-footer-bottom-inner {padding: 15px 19px;text-align: center;font-size: 12px;}
}

/* Internal dashboard copyright is part of its content flow, not an overlay. */
body.dga-lite-dashboard .dashboard-copyright-content {
  background: #fff;
  border: 1px solid #e0eae3;
  border-radius: 12px;
  margin-top: 22px !important;
  padding: 18px 20px !important;
  color: #52675a;
  row-gap: 8px;
}
body.dga-lite-dashboard .dashboard-copyright-content .copy-desc {
  font-size: 13px !important;
  color: #52675a !important;
  line-height: 1.7;
  margin: 0;
}
body.dga-lite-dashboard .dashboard-copyright-content a {
  color: #176d48 !important;
  font-size: 14px !important;
}
@media (max-width: 767px) {
  body.dga-lite-dashboard .dashboard-copyright-content {margin-inline: 0 !important;text-align: center;padding: 16px 10px !important;}
  body.dga-lite-dashboard .dashboard-copyright-content > [class*="col-"] {flex: 0 0 100%;max-width: 100%;text-align: center;}
  body.dga-lite-dashboard .dashboard-copyright-content ul {justify-content: center !important;}
}
@media print {
  body.dga-lite-public .tp-public-header,
  body.dga-lite-public .tp-site-footer,
  body.dga-lite-dashboard .dashboard-copyright-content {display:none !important;}
}
