@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap');

/* --- Reset & Page Defaults --- */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
}

body {
  font-family: 'Outfit', sans-serif;
  background-color: #FFFFFF;
  color: #565D66;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  min-height: 100vh; /* Force body to take at least full viewport height */
}

/* --- Header System Styles (Sticky Pinning) --- */
app-header {
  position: sticky; /* Sticky header pinning always! */
  top: 0;
  z-index: 10000;
  width: 100%;
  display: block;
  background-color: #FFFFFF;
}

.header-wrapper {
  position: relative;
  width: 100%; /* Stretches 100% full width */
  background: #FFFFFF;
}

/* Top bar (Black Strip) - Stretches full-width */
.top-bar {
  background-color: #000000;
  height: 40px;
  width: 100%;
}

.top-bar-container {
  max-width: 1374px; /* Centered region max-width */
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
  height: 100%;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* Left Group (Important Links) */
.important-links {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  height: 13px;
}

.top-link {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-size: 13px; /* Increased font size for black top bar links */
  line-height: 13px;
  color: #FFFFFF;
  text-decoration: none;
  white-space: nowrap; /* Prevents text from breaking into 2 lines */
  transition: color 0.2s ease, opacity 0.2s ease;
  opacity: 0.85;
}

.top-link:hover, .top-link.active {
  color: #0052ED;
  opacity: 1;
}

.spacer-line {
  width: 1px;
  height: 12px;
  background: #64748B;
}

/* Right Group (Search, Sign In, Create Account) */
.top-right-group {
  display: flex;
  flex-direction: row;
  align-items: center;
  height: 100%;
}

.search-btn, .signin-btn {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.search-btn:hover, .signin-btn:hover {
  opacity: 0.75;
}

.search-btn {
  margin-right: 30px; /* Spacer gap between Search and Sign In (no hardcoded width) */
}

.signin-btn {
  margin-right: 30px; /* Spacer gap between Sign In and Create Account (no hardcoded width) */
}

.icon-search, .icon-user {
  width: 14px; /* Increased to 14px to align cleanly with 13px font */
  height: 14px;
  stroke: #FFFFFF;
  display: block;
}

.label-search, .label-signin {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-size: 13px; /* Increased font size for search and signin labels in black top bar */
  line-height: 13px;
  color: #FFFFFF;
  white-space: nowrap; /* Prevents text from breaking into 2 lines */
}

/* Create Account White Block Button */
.create-account-action {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  padding: 8px 10px 10px;
  gap: 5px;
  width: 134px;
  height: 40px;
  background: #FFFFFF;
  border: none;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.create-account-action:hover {
  background-color: #F1F7FF;
}

.create-account-text {
  width: 83px;
  height: 15px;
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-size: 12px;
  line-height: 15px;
  text-transform: capitalize;
  color: #0052ED;
  text-align: left;
  white-space: nowrap; /* Prevents text from breaking into 2 lines */
}

.icon-arrow-right {
  width: 14px;
  height: 14px;
  stroke: #0052ED;
}

/* --- Main Navigation Bar - Stretches full-width --- */
.main-navbar {
  width: 100%;
  height: 65px;
  background: #FFFFFF;
  box-shadow: 0px 3px 12px rgba(0, 0, 0, 0.1);
  position: relative; /* Relative parent for mega menu dropdown (stretches full screen width) */
}

.navbar-container {
  max-width: 1374px; /* Centered region max-width */
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
  height: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start; /* Flows content naturally from left to right */
}

/* Logo Image Container */
.usaii-logo {
  width: 210px;
  height: 42px;
  display: flex;
  align-items: center;
  text-decoration: none;
  cursor: pointer;
  margin-right: 32px; /* Small space: menu starts immediately next to it */
  flex-shrink: 0;
}

.logo-img {
  width: 210px;
  height: 42px;
  object-fit: contain; /* ensures logo scales nicely without distortion */
  display: block;
}

/* Fallback Logo Text layout if Usaii Logo.png image fails to load */
.logo-text-fallback {
  display: none; /* dynamically toggled to flex via JS onerror */
  align-items: center;
  color: #000000;
}

.logo-text {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 800;
  font-size: 24px;
  line-height: 1;
  color: #000000;
  letter-spacing: -0.5px;
}

.logo-text sup {
  font-size: 10px;
  vertical-align: super;
}

.logo-separator {
  width: 1px;
  height: 24px;
  background: #000000;
  margin: 0 12px;
}

.logo-desc {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-size: 9px;
  line-height: 11px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: #000000;
  max-width: 120px;
}

/* Nav Menu Container - Flows next to the logo */
.nav-menu-list {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px; /* space between menu item blocks */
  height: 100%; /* Stretches height to avoid hover gaps */
}

/* Standard Menu Item Frame */
.menu-item-frame {
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 8px 12px;
  gap: 4px;
  height: 39px;
  cursor: pointer;
  border-radius: 4px;
  background-color: transparent; /* Default transparent background */
  transition: background-color 0.2s ease, color 0.2s ease;
  white-space: nowrap; /* Prevents text from breaking into 2 lines */
}

/* 1. Hover state: JUST make text and icon blue (no background change) */
.menu-item-frame:hover {
  background-color: transparent;
}

.menu-item-frame:hover .menu-item-text {
  color: #0052ED;
}

.menu-item-frame:hover .chevron-icon {
  stroke: #0052ED;
}

/* 2. Active state: Add the blue button background highlight and blue text/icon */
.menu-item-frame.active {
  background-color: #F1F7FF; /* The blue button highlight */
}

.menu-item-frame.active .menu-item-text {
  color: #0052ED;
  font-weight: 500;
}

.menu-item-frame.active .chevron-icon {
  stroke: #0052ED;
}

/* Hovering on an already active item can deepen the highlight slightly */
.menu-item-frame.active:hover {
  background-color: #E2EEFF;
}

.menu-item-text {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-size: 13px;
  line-height: 15px;
  text-transform: capitalize;
  color: #090E1A;
  white-space: nowrap; /* Prevents text from breaking into 2 lines */
  transition: color 0.2s ease;
}

.chevron-icon {
  width: 14px;
  height: 14px;
  stroke: #090E1A;
  transition: stroke 0.2s ease;
}

/* About Us Highlight Dropdown wrapper - Stretches full-height to bridge hover gap */
.menu-item-dropdown-wrapper {
  height: 100%;
  display: flex;
  align-items: center;
}

/* Get Certified Button Container - Pushed to the far right of the bar */
.get-certified-wrapper {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 2px; /* Reduced padding from 4px to 2px for a tighter border-box look */
  width: 134px;
  height: 38px;
  border: 1px solid #0052ED; /* Border matches button color (#0052ED) instead of #11259D */
  margin-left: auto; /* Push Get Certified to the far right */
  flex-shrink: 0;
}

.get-certified-btn {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 10px;
  width: 100%; /* Spans 100% of wrapper width */
  height: 100%; /* Spans 100% of wrapper height */
  background: #0052ED;
  border: none;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.get-certified-btn:hover {
  background-color: #0652C0;
}

.get-certified-text {
  width: 70px;
  height: 15px;
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-size: 12px;
  line-height: 15px;
  text-transform: capitalize;
  color: #FFFFFF;
  white-space: nowrap; /* Prevents text from breaking into 2 lines */
}

.icon-shield-question {
  width: 16px;
  height: 16px;
  object-fit: contain;
  display: block;
}

/* --- Reusable Mega Menu Dropdown Panel --- */
.mega-menu-panel {
  position: absolute;
  width: 100%; /* Stretches to cover full screen width */
  left: 0; /* Aligns with the absolute left edge of full-screen main-navbar */
  top: 65px; /* exactly at the bottom of the main-navbar */
  height: calc(100vh - 105px); /* covers remaining viewport height! */
  min-height: 800px;
  
  /* Background Gradient + Background Image stretching full screen */
  background-image: linear-gradient(305.81deg, rgba(255, 255, 255, 0) 19.62%, #FFFFFF 60.23%), url('../../images/Menu_background_image.jpg');
  background-size: cover;
  background-position: right center;
  background-repeat: no-repeat;
  
  box-shadow: 0px 3px 12px rgba(0, 0, 0, 0.1);
  display: none; /* dynamically toggled via debounced hover JS listener */
  z-index: 999;
}

/* Mega Menu content structured inside the centered 1374px container */
.mega-menu-panel-content {
  position: relative;
  max-width: 1374px;
  width: 100%;
  height: 100%;
  margin: 0 auto;
}

/* Intro Paragraph & Action Button */
.mega-menu-intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0px;
  gap: 10px;
  position: absolute;
  width: 1023px;
  height: 128px;
  left: 0px;
  top: 34px; /* 139px relative top - 105px dropdown top */
}

.mega-menu-intro-text {
  width: 1023px;
  height: 80px;
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-size: 16px;
  line-height: 20px;
  color: #565D66;
}

.mega-menu-learn-more-btn {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  padding: 10px 14px;
  gap: 10px;
  width: 150px; /* Slightly widened to fit "About USAII®" perfectly */
  height: 38px;
  background: #0052ED;
  border: none;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.mega-menu-learn-more-btn:hover {
  background-color: #0652C0;
}

.learn-more-text {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-size: 14px;
  line-height: 18px;
  text-transform: capitalize;
  color: #FFFFFF;
}

/* Fix right arrow icon inside mega menu button: force it to white color */
.mega-menu-learn-more-btn .icon-arrow-right {
  stroke: #FFFFFF;
}

/* Divider Line */
.mega-menu-bottom-divider {
  position: absolute;
  width: 1023px;
  height: 1px;
  left: 0px;
  top: 225px; /* 330px divider top - 105px dropdown top */
  background: #D9D9D9;
}

/* Columns Section */
.mega-menu-cols {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  padding: 0px;
  gap: 29px; /* gap calculated from left position offsets in Figma */
  position: absolute;
  width: 672px;
  height: 306px;
  left: 1px; /* matches 214px left inside 213px container margins */
  top: 251px; /* 356px column top - 105px dropdown top */
}

.mega-menu-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0px;
  gap: 30px;
}

.mega-menu-col:nth-child(1) {
  width: 321px;
  height: 306px;
}

.mega-menu-col:nth-child(2) {
  width: 322px;
  height: 138px;
}

/* Single Link details */
.mega-menu-link-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0px;
  width: 100%;
  height: 54px;
}

.mega-menu-link-title {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-size: 14px;
  line-height: 18px;
  color: #0052ED;
  text-decoration: none;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

/* Hover over items inside the dropdown gets blue text and blue underline */
.mega-menu-link-title:hover {
  color: #0652C0;
  text-decoration: underline;
  text-decoration-color: #0052ED; /* blue underline on hover */
}

/* Underline on Who We Are removed initially ("in start"), only added on hover */
.who-we-are-link .mega-menu-link-title {
  text-decoration: none; /* No underline on start! */
  color: #0652C0;
}

.who-we-are-link .mega-menu-link-title:hover {
  color: #0052ED;
  text-decoration: underline;
  text-decoration-color: #0052ED; /* Underline only on hover! */
}

.mega-menu-link-desc {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-size: 14px;
  line-height: 18px;
  color: #64748B;
}

/* ==========================================
   USAII Responsive Hamburger & Mobile Layouts
   ========================================== */
.hamburger-toggle {
  display: none; /* Hidden on desktop viewports */
  flex-direction: column;
  justify-content: space-between;
  width: 24px;
  height: 18px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
}

.hamburger-bar {
  width: 100%;
  height: 2px;
  background-color: #FFFFFF; /* White bars for visibility inside the black top bar! */
  transition: transform 0.2s ease, opacity 0.2s ease;
  border-radius: 2px;
}

/* Full-Screen Mobile Menu Overlay */
.mobile-menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #FFFFFF;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  transform: translateX(-100%); /* Slide in from left */
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
}

.mobile-menu-overlay.open {
  transform: translateX(0); /* Opened state */
}

.mobile-menu-header {
  height: 65px;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px;
  border-bottom: 1px solid #E2E8F0;
  flex-shrink: 0;
  box-sizing: border-box;
}

.mobile-menu-close {
  background: transparent;
  border: none;
  cursor: pointer;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #090E1A;
}

.mobile-menu-close svg {
  width: 24px;
  height: 24px;
  stroke: currentColor;
}

.mobile-menu-body {
  flex-grow: 1;
  overflow-y: auto; /* Scroll navigation items if content overflows */
  padding: 24px 20px 40px;
  box-sizing: border-box;
}

/* Mobile Navigation List styling */
.mobile-nav-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.mobile-nav-item-wrapper {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.mobile-nav-trigger {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: 'Outfit';
  font-size: 18px; /* High legibility tap-targets */
  font-weight: 600;
  color: #090E1A;
  padding: 10px 0;
  text-align: left;
}

.mobile-nav-trigger span {
  transition: color 0.2s ease;
}

.mobile-nav-trigger:hover span {
  color: #0052ED;
}

.mobile-chevron {
  width: 16px;
  height: 16px;
  stroke: #090E1A;
  transition: transform 0.2s ease, stroke 0.2s ease;
}

.mobile-nav-trigger:hover .mobile-chevron {
  stroke: #0052ED;
}

.mobile-chevron.rotated {
  transform: rotate(180deg);
}

.mobile-nav-simple-link {
  font-family: 'Outfit';
  font-size: 18px;
  font-weight: 600;
  color: #090E1A;
  text-decoration: none;
  padding: 10px 0;
  display: block;
  width: 100%;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.mobile-nav-simple-link:hover {
  color: #0052ED;
  text-decoration: underline;
  text-decoration-color: #0052ED;
}

/* Accordion Collapsible Panels for mobile dropdown contents */
.mobile-sub-menu {
  width: 100%;
  padding-left: 16px;
  border-left: 2px solid #F1F5F9;
  margin-top: 8px;
  box-sizing: border-box;
  display: none; /* Controlled dynamically via JS click listeners */
}

.mobile-sub-menu-inner {
  width: 100%;
  display: flex;
  flex-direction: column;
}

/* Force inline slot structures inside accordion panels to flow vertically */
.mobile-sub-menu-inner .mega-menu-intro {
  position: static !important;
  width: 100% !important;
  height: auto !important;
  margin-bottom: 20px !important;
  gap: 15px !important;
}

.mobile-sub-menu-inner .mega-menu-intro-text {
  width: 100% !important;
  height: auto !important;
  font-size: 14px !important;
  line-height: 20px !important;
}

.mobile-sub-menu-inner .mega-menu-bottom-divider {
  display: none !important; /* Hide visual figma lines on mobile display */
}

.mobile-sub-menu-inner .mega-menu-cols {
  position: static !important;
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: auto !important;
  gap: 20px !important;
}

.mobile-sub-menu-inner .mega-menu-col {
  width: 100% !important;
  height: auto !important;
  gap: 15px !important;
  border-right: none !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
  min-height: auto !important;
}

.mobile-sub-menu-inner .mega-menu-link-block {
  width: 100% !important;
  height: auto !important;
  gap: 4px !important;
}

/* Mobile top links list formatting */
.mobile-menu-divider {
  height: 1px;
  width: 100%;
  background-color: #E2E8F0;
  margin: 16px 0;
}

.mobile-top-links-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

.mobile-top-bar-link {
  font-family: 'Outfit';
  font-size: 15px;
  font-weight: 500;
  color: #565D66;
  text-decoration: none;
  padding: 6px 0;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.mobile-top-bar-link:hover {
  color: #0052ED;
  text-decoration: underline;
  text-decoration-color: #0052ED;
}

/* --- USAII Hero Section & Slider Styles --- */
.hero-section {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  background-color: #000000; /* Dark background behind card overlaps */
  box-sizing: border-box;
}

.hero-slider {
  height: 480px; /* Reduced height from 550px for a tighter, cleaner display */
  width: 100%;
  position: relative;
  overflow: hidden;
}

.hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 0.8s ease-in-out;
  z-index: 1;
}

.hero-slide.active {
  opacity: 1;
  z-index: 2;
}

/* 
  Superimposed Overlay Card (Rectangle behind text)
  Centering inside 1374px width, pulled up -120px over the slider graphic 
*/
.hero-content-block {
  background-color: #000000; /* Solid black card color */
  max-width: 1374px; /* Centered width matches header bounds */
  width: 90%; /* Side margins on smaller screens */
  margin: -120px auto 40px; /* Pulls container card over the bottom of the image! */
  padding: 50px 40px; /* Increased vertical height/padding back to 50px for a spacious look */
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px; /* Increased item gap back to 24px to satisfy the user's height requirements */
  position: relative;
  z-index: 10; /* superimposes card on top of image slide */
  box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.5); /* subtle drop shadow for depth */
}

.hero-text-container {
  max-width: 1000px;
  width: 100%;
}

.hero-text {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400; /* Regular weight, matches mockup */
  font-size: 26px;
  line-height: 36px;
  text-align: center;
  color: #FFFFFF;
}

/* Action Buttons group */
.hero-buttons {
  display: flex;
  flex-direction: row;
  gap: 20px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

.btn-explore {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: #0052ED;
  color: #FFFFFF;
  border: none;
  font-family: 'Outfit';
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.btn-explore:hover {
  background: #0652C0;
}

.btn-start {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: #FFFFFF;
  color: #0052ED;
  border: 1px solid #FFFFFF;
  font-family: 'Outfit';
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.btn-start:hover {
  background: #E2EEFF;
}

/* Carousel Scroll Indicator bars */
.hero-indicators {
  display: flex;
  flex-direction: row;
  gap: 10px;
  justify-content: center;
  align-items: center;
}

.indicator-bar {
  width: 36px;
  height: 3px;
  background-color: #475569; /* Slate-600 muted color */
  cursor: pointer;
  transition: background-color 0.3s ease;
  border-radius: 2px;
}

.indicator-bar.active {
  background-color: #0052ED; /* Highlighted active bar */
}

/* Responsive configurations for Hero viewports */
@media (max-width: 1024px) {
  .hero-slider {
    height: 340px; /* Reduced graphic height on tablets from 400px */
  }
  .hero-content-block {
    margin-top: -60px; /* reduced overlap pull */
    padding: 30px 20px;
  }
}

@media (max-width: 768px) {
  .hero-slider {
    height: 260px; /* Reduced graphic height on mobile from 300px */
  }
  .hero-content-block {
    margin-top: -30px;
    width: 95%;
    padding: 24px 15px;
  }
  .hero-text {
    font-size: 18px;
    line-height: 26px;
  }
  .btn-explore, .btn-start {
    width: 100%; /* stack button blocks full width on smaller mobiles */
    justify-content: center;
  }
}

/* ==========================================
   Header Media Queries for Tablet & Mobile (width <= 1024px)
   ========================================== */
@media (max-width: 1024px) {
    /* Hide top bar links, leaving Search, Sign In, and Create Account visible */
    .important-links {
      display: none !important;
    }
    
    /* Arrange hamburger on the left, other actions on the right in top-bar */
    .top-bar-container {
      display: flex !important;
      justify-content: space-between !important;
      align-items: center !important;
    }
    
    /* Display the hamburger toggle in top bar */
    .hamburger-toggle {
      display: flex !important;
      margin-left: 0 !important;
    }
    
    /* Hide desktop menu items in main navbar */
    .nav-menu-list {
      display: none !important;
    }
    
    /* Space logo on the left, get certified wrapper on the right */
    .navbar-container {
      display: flex !important;
      justify-content: space-between !important;
      align-items: center !important;
    }
    
    .usaii-logo {
      margin-right: 0 !important; /* Reset desktop margin */
    }
    
    .get-certified-wrapper {
      margin-left: 0 !important;
    }

    /* Prevent body scrolling while full-screen mobile menu is open */
    body.no-scroll {
      overflow: hidden;
    }
  }

/* ==========================================
   USAII Footer System Styles
   ========================================== */
app-footer {
  margin-top: auto; /* PUSHES footer to the bottom of the flex body! */
  width: 100%;
}

.footer-wrapper {
  background-color: #F7F7F7;
  width: 100%;
  padding: 40px 0;
  box-sizing: border-box;
}

.footer-container {
  max-width: 1374px; /* Centered width aligns exactly with Header */
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

/* 1. Breadcrumbs */
.footer-breadcrumbs {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  font-family: 'Outfit';
  font-size: 14px;
  font-weight: 400;
  line-height: 18px;
  color: #565D66;
}

.breadcrumb-link {
  color: #565D66;
  text-decoration: none;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.breadcrumb-link:hover {
  color: #0052ED;
  text-decoration: underline;
  text-decoration-color: #0052ED; /* Blue color and blue underline on hover */
}

.breadcrumb-separator {
  color: #94A3B8;
  font-size: 12px;
}

.breadcrumb-current {
  color: #090E1A;
  font-weight: 500;
}

/* Footer Dividers */
.footer-divider {
  height: 1px;
  width: 100%;
  background-color: #D9D9D9;
  margin: 24px 0;
}

/* 2. Footer Columns */
.footer-columns {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: nowrap; /* FORCES all columns onto the same row on desktop! */
  width: 100%;
  gap: 20px; /* Space gap handled by Flexbox */
}

.footer-col {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  min-height: 520px;
  flex: 1 1 auto; /* Grow and shrink dynamically to fit container */
}

/* Set proportional figma max-widths to maintain ratios */
.col-about { max-width: 161px; }
.col-programs { max-width: 383px; }
.col-standards { max-width: 312px; }
.col-insights { max-width: 281px; }
.col-support { max-width: 255px; }

/* Grid divider borders between columns 1-4 */
.footer-col:not(:last-child) {
  border-right: 1px solid #D9D9D9;
  padding-right: 20px;
}

/* Column titles styling */
.footer-col-title {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-size: 16px;
  line-height: 20px;
  color: #000000;
  margin-bottom: 4px;
}

/* Spacers between stacked components inside columns */
.footer-col-spacer {
  height: 24px;
}

/* Group Headers inside columns (K-12 Certifications, etc.) */
.footer-group-header {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-size: 14px;
  line-height: 20px;
  color: #090E1A;
  margin-bottom: 6px;
  display: block;
}

.footer-link-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}

/* Column Links Styling */
.footer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}

.footer-links a {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 500;
  font-size: 14px;
  line-height: 20px;
  color: #565D66;
  text-decoration: none;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
  display: inline-block;
}

.footer-links a:hover {
  color: #0052ED;
  text-decoration: underline;
  text-decoration-color: #0052ED; /* Blue color and blue underline on hover */
}

/* Column specific overrides */
.col-about .footer-links a {
  font-weight: 500;
}

/* 3. Legal and Address block */
.footer-copyright-block {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-family: 'Outfit';
  font-size: 14px;
  line-height: 20px;
  color: #565D66;
}

.copyright-line {
  font-weight: 500;
}

.legal-desc, .address-line, .contact-line {
  font-weight: 400;
}

.email-link {
  color: #0052ED;
  text-decoration: none;
  transition: text-decoration 0.2s ease;
}

.email-link:hover {
  text-decoration: underline;
  text-decoration-color: #0052ED;
}

/* 4. Social Links & Partner Badges */
.footer-social-partner-row {
  display: flex;
  flex-direction: row;
  justify-content: flex-start; /* Keeps member images next to the contact / x.com logos */
  align-items: center;
  flex-wrap: wrap;
  gap: 40px; /* Explicit gap spacing separating social group and partner badges */
  width: 100%;
}

.footer-social-links {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 20px;
}

.social-link {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  color: #565D66;
  font-family: 'Outfit';
  font-size: 14px;
  font-weight: 500;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.social-link:hover {
  color: #0052ED;
  text-decoration: underline;
  text-decoration-color: #0052ED; /* Blue color and blue underline on hover */
}

.social-icon {
  width: 14px;
  height: 14px;
  object-fit: contain;
  display: block;
}

/* Member logos badges */
.footer-partner-badges {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}

.partner-badge-wrapper {
  background: #FFFFFF;
  border-radius: 6px;
  padding: 4px;
  box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.ice-badge {
  width: 95.05px;
  height: 32px;
}

.ansi-badge {
  width: 81px;
  height: 32px;
}

.partner-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 4px;
}

/* 5. Bottom Navigation links */
.footer-bottom-bar {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 8px 12px;
  width: 100%;
}

.footer-bottom-bar a {
  font-family: 'Outfit';
  font-size: 14px;
  font-weight: 400;
  color: #565D66;
  text-decoration: none;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.footer-bottom-bar a:hover {
  color: #0052ED;
  text-decoration: underline;
  text-decoration-color: #0052ED; /* Blue color and blue underline on hover */
}

.bottom-separator {
  color: #CBD5E1;
  font-size: 12px;
}

/* ==========================================
   Footer Media Queries for Tablet & Mobile
   ========================================== */
@media (max-width: 1280px) {
  .footer-columns {
    flex-wrap: wrap !important;
  }
  .footer-col {
    min-height: auto;
    border-right: none !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    max-width: 45% !important;
    width: 100%;
    margin-bottom: 30px;
  }
}

@media (max-width: 600px) {
  .footer-col {
    max-width: 100% !important;
  }
  .footer-social-partner-row {
    flex-direction: column;
    align-items: flex-start;
  }
}


