/* =====================================================================
   netracom98  —  HostBill client-area theme
   Header + footer restyled to match https://netracom.com.au
   Layered on top of nextgen (main.css); everything is scoped to
   body.tpl_netracom98 so it overrides the base template cleanly.
   ===================================================================== */

.tpl_netracom98 {
  --nc-blue: #2f89c4;
  --nc-blue-dark: #226b9c;
  --nc-blue-light: #eaf5fb;
  --nc-blue-logo: #47a7db;
  --nc-green: #16a34a;
  --nc-dark: #0f172a;
  --nc-mid: #374151;
  --nc-muted: #64748b;
  --nc-border: #e2e8f0;
  --nc-bg: #f8fafc;
  --nc-white: #ffffff;
  --nc-radius: 14px;
  --nc-radius-sm: 8px;
  --nc-shadow: 0 4px 24px rgba(0,0,0,.07);
  --nc-shadow-lg: 0 12px 40px rgba(0,0,0,.12);
  --nc-transition: .2s ease;
}

/* Reset the tiled nextgen background to the flat netracom canvas */
.tpl_netracom98 body,
body.tpl_netracom98 {
  background: var(--nc-bg) !important;
  font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: var(--nc-mid);
}
/* Guard the full-bleed bars against a stray horizontal scrollbar WITHOUT
   putting overflow on <body> — overflow on body would turn it into a scroll
   container and break `position: sticky` on the header. html is the document
   scroller, so overflow-x here is safe for sticky. */
html:has(body.tpl_netracom98) { overflow-x: hidden; }

/* nextgen wraps the whole portal in a fixed 960px .container; let it go
   fluid on smaller screens so nothing clips on tablet / mobile */
@media (max-width: 991px) {
  .tpl_netracom98 #wrapper > .container { width: auto; max-width: 100%; }
}

/* Kill the old nextgen head block; the brand header replaces it */
.tpl_netracom98 #headpart { display: none; }

/* =========================  BRAND HEADER  ========================= */
.tpl_netracom98 #site-header {
  position: sticky; top: 0; z-index: 999;
  background: var(--nc-white);
  border-bottom: 1px solid var(--nc-border);
  box-shadow: 0 2px 12px rgba(0,0,0,.05);
  /* full-bleed: break out of nextgen's fixed 960px container.
     width:auto + negative side margins expands to viewport width without a
     `width:100vw` (which would add a scrollbar) and without breaking sticky. */
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-bottom: 0;
}
/* inner rows: fluid but capped, centred, with breathing room */
.tpl_netracom98 #site-header > .container,
.tpl_netracom98 #site-footer .container {
  width: auto; max-width: 1180px; margin: 0 auto; padding: 0 24px;
}

.tpl_netracom98 .nav-inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 68px; gap: 24px;
}

.tpl_netracom98 .nav-logo { display: inline-flex; align-items: center; }
.tpl_netracom98 .nav-logo img { height: 40px; width: auto; display: block; }

.tpl_netracom98 .nav-menu {
  display: flex; align-items: center; gap: 4px;
  list-style: none; margin: 0; padding: 0; flex: 1;
}
.tpl_netracom98 .nav-menu > li { position: relative; }
.tpl_netracom98 .nav-menu > li > a {
  display: block; padding: 8px 14px;
  color: var(--nc-dark); font-weight: 500; font-size: .95rem;
  border-radius: var(--nc-radius-sm); text-decoration: none;
  transition: background var(--nc-transition), color var(--nc-transition);
}
.tpl_netracom98 .nav-menu > li > a:hover,
.tpl_netracom98 .nav-menu > li.active > a {
  color: var(--nc-blue); background: var(--nc-blue-light);
}

/* Nav dropdown (Hosting) */
.tpl_netracom98 .nav-dropdown {
  position: absolute; top: calc(100% + 8px); left: 0; min-width: 210px;
  background: var(--nc-white); border: 1px solid var(--nc-border);
  border-radius: var(--nc-radius-sm); box-shadow: var(--nc-shadow-lg);
  padding: 8px 0; list-style: none; margin: 0;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .2s, transform .2s, visibility .2s; z-index: 100;
}
.tpl_netracom98 .nav-menu > li:hover .nav-dropdown {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.tpl_netracom98 .nav-dropdown li a {
  display: block; padding: 9px 18px; text-decoration: none;
  color: var(--nc-mid); font-size: .9rem; font-weight: 500;
  transition: color var(--nc-transition), background var(--nc-transition);
}
.tpl_netracom98 .nav-dropdown li a:hover { color: var(--nc-blue); background: var(--nc-blue-light); }

/* Right-hand actions — wraps HostBill's account / cart / lang controls */
.tpl_netracom98 .nav-actions { display: flex; align-items: center; gap: 10px; }
.tpl_netracom98 .nav-actions .headersection { padding: 0; font-size: inherit; }

/* Re-skin the HostBill bootstrap-2 buttons that live in the header */
.tpl_netracom98 .nav-actions .btn,
.tpl_netracom98 .nav-actions .btn-group > .btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--nc-white); color: var(--nc-dark);
  border: 1px solid var(--nc-border); border-radius: var(--nc-radius-sm);
  padding: 7px 14px; font-weight: 600; font-size: .85rem;
  box-shadow: none; text-shadow: none; background-image: none;
  transition: background var(--nc-transition), color var(--nc-transition), border-color var(--nc-transition);
}
.tpl_netracom98 .nav-actions .btn:hover {
  background: var(--nc-blue-light); border-color: var(--nc-blue); color: var(--nc-blue);
}
.tpl_netracom98 .nav-actions .btn-primary,
.tpl_netracom98 .nav-actions .btn-success {
  background: var(--nc-blue); border-color: var(--nc-blue); color: var(--nc-white);
}
.tpl_netracom98 .nav-actions .btn-primary:hover,
.tpl_netracom98 .nav-actions .btn-success:hover {
  background: var(--nc-blue-dark); border-color: var(--nc-blue-dark); color: var(--nc-white);
}
.tpl_netracom98 .nav-actions .btn i { color: inherit; }

/* Hamburger + mobile nav (mirrors the marketing site) */
.tpl_netracom98 .nav-toggler {
  display: none; background: none; border: none; padding: 6px;
  cursor: pointer; color: var(--nc-dark); font-size: 1.3rem; line-height: 1;
}
.tpl_netracom98 .mobile-nav {
  display: none; flex-direction: column;
  background: var(--nc-white); border-top: 1px solid var(--nc-border);
  padding: 12px 0 20px; margin: 0;
}
.tpl_netracom98 .mobile-nav.open { display: flex; }
.tpl_netracom98 .mobile-nav a {
  display: block; padding: 10px 24px; text-decoration: none;
  color: var(--nc-dark); font-weight: 500; font-size: .95rem;
}
.tpl_netracom98 .mobile-nav a:hover { color: var(--nc-blue); }
.tpl_netracom98 .mobile-nav .mobile-submenu { padding-left: 40px; font-size: .9rem; color: var(--nc-muted); }

/* =========================  FUNCTIONAL MENU  =====================
   HostBill's own client menu (#mainmenu) sits below the brand bar.
   Nudge its palette toward netracom blue so the two read as one. */
.tpl_netracom98 #mainmenu-container { margin-top: 4px; }
.tpl_netracom98 #mainmenu .nav-tabs > .active > a,
.tpl_netracom98 #mainmenu .nav-tabs > .active > a:hover,
.tpl_netracom98 #mainmenu .nav-tabs > li > a:hover,
.tpl_netracom98 #mainmenu .dropdown.open .dropdown-toggle {
  background: var(--nc-blue); color: var(--nc-white);
}

/* =========================  FOOTER  ============================== */
.tpl_netracom98 footer#site-footer {
  background: var(--nc-dark); color: rgba(255,255,255,.7);
  border: 0; text-shadow: none;
  /* full-bleed to match the header (width:auto + negative side margins) */
  margin: 40px calc(50% - 50vw) 0;
  padding: 56px 0 0;
}
.tpl_netracom98 #site-footer .footer-grid {
  display: flex; flex-wrap: wrap; gap: 40px 48px;
}
.tpl_netracom98 #site-footer .footer-about { flex: 1 1 260px; max-width: 340px; }
.tpl_netracom98 #site-footer .footer-col { flex: 1 1 150px; }

.tpl_netracom98 .footer-logo { margin-bottom: 16px; }
.tpl_netracom98 .footer-logo img { height: 36px; width: auto; }
.tpl_netracom98 .footer-tagline {
  font-size: .9rem; color: rgba(255,255,255,.55); line-height: 1.7; margin-bottom: 20px;
}
.tpl_netracom98 .footer-payments { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.tpl_netracom98 .payment-badge {
  background: rgba(255,255,255,.1); border-radius: 4px;
  padding: 4px 10px; font-size: .78rem; color: rgba(255,255,255,.6);
  font-weight: 600; letter-spacing: .04em;
}
.tpl_netracom98 .footer-heading {
  font-size: .78rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: rgba(255,255,255,.45); margin: 0 0 16px;
}
.tpl_netracom98 .footer-links { list-style: none; padding: 0; margin: 0; }
.tpl_netracom98 .footer-links li { margin-bottom: 10px; }
.tpl_netracom98 .footer-links a {
  color: rgba(255,255,255,.6); font-size: .9rem; text-decoration: none;
  text-shadow: none; transition: color .2s;
}
.tpl_netracom98 .footer-links a:hover { color: var(--nc-white); }

.tpl_netracom98 .footer-bottom {
  margin-top: 44px; border-top: 1px solid rgba(255,255,255,.08); padding: 18px 0;
}
.tpl_netracom98 .footer-bottom-inner {
  display: flex; flex-wrap: wrap; justify-content: space-between;
  align-items: center; gap: 14px;
}
.tpl_netracom98 .footer-bottom p { margin: 0; font-size: .85rem; color: rgba(255,255,255,.4); }
.tpl_netracom98 .footer-bottom-links { display: flex; gap: 20px; }
.tpl_netracom98 .footer-bottom-links a {
  font-size: .85rem; color: rgba(255,255,255,.4); text-decoration: none; transition: color .2s;
}
.tpl_netracom98 .footer-bottom-links a:hover { color: rgba(255,255,255,.8); }

/* =========================  RESPONSIVE  ========================== */
@media (max-width: 991px) {
  .tpl_netracom98 .nav-menu,
  .tpl_netracom98 .nav-actions .lang-btn-group { display: none; }
  .tpl_netracom98 .nav-toggler { display: inline-flex; }
}
@media (max-width: 640px) {
  .tpl_netracom98 #site-footer .footer-grid { gap: 32px; }
  .tpl_netracom98 .footer-bottom-inner { justify-content: center; text-align: center; }
}
