/* Internal resources menu bar. */

.visually-hidden {
   position: absolute;
   width: 1px; height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   border: 0;
}

@media (max-width: 500px) {
   .hide-below-500 { display: none; }
}

#internal {
   font-family: 'National 2', 'Source Sans';
   font-weight: 400;
   width: auto;
   text-align: left;
   background-color: #3c3c3c;
   line-height: 150%;
   padding: 5px 0;
}

#internal-wrapper {
   margin-left: 20px;
   margin-right: 20px;
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: space-between;
   gap: 0.35rem 1rem;
}

.internal-links {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   column-gap: 1em;
   row-gap: 0.25rem;
}

.internal-links a {
   font-size: 100%;
   color: #c0c0c0;
   margin: 0;
}

.internal-links a:hover { color: white; }

.internal-social {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: calc(0.45em * 0.75);
}

.internal-social a {
   color: #c0c0c0;
   font-size: clamp(18px, 1.2vw, 20px);
   line-height: 1;
   text-decoration: none;
}

.internal-social a:hover { color: white; }

/* Utility bar only: on mobile show Instagram; footer #social keeps all four.
@media (max-width: 767px) {
   #internal .internal-social .chan-social-link:not(.chan-social-link--instagram) {
      display: none;
  }
}
*/

/* Match production #internal padding so utility links line up with #chan-identity-2line insets. */

@media (min-width: 768px) {
   #internal { padding: 0.3vw 0; }
   .internal-links a { font-size: clamp(12px, 1.25vw, 18px); }
   #internal-wrapper {
      margin: 0 50px;
      max-width: var(--Desktop-Container-Width);
   }
}

@media (min-width: 1348px) {
   #internal-wrapper { margin: 0 auto; }
}


/* USC and Chan identity. */

#identity { position: relative; margin: 20px 20px 0px 20px;
            max-width: var(--Desktop-Container-Width); }
@media (min-width: 768px) { #identity { margin: 25px 50px 20px 50px; } }
@media (min-width: 1348px) { #identity { margin: 25px auto 20px auto; } }


/* Chan logo. */

#chan-logo-mobile { display: block; margin-bottom: 10px; }
#chan-logo-mobile img { max-width: 100%; height: auto; }
#chan-logo-desktop-compact { display: none; }
#chan-logo-desktop { display: none; }

@media (min-width: 768px) {
   #chan-logo-desktop-compact { display: block; }
   #chan-logo-desktop img { width: 573px; height: auto; }
   #chan-logo-mobile { display: none; }
   #chan-logo-desktop { display: none; }
}

@media (min-width: 1044px) {
   #chan-logo-desktop { display: block; }
   #chan-logo-desktop img { width: 573px; height: auto; }
   #chan-logo-mobile { display: none; }
   #chan-logo-desktop-compact { display: none; }
}


/* USC logo. */

#usc-logo-mobile { display: block; position: absolute; right: 0px; top: 0px; }
#usc-logo-mobile img { width: 50px; height: auto; }
#usc-logo-desktop { display: none; }

@media (min-width: 768px) {
   #usc-logo-desktop { display: block; position: absolute; right: 0px; top: 0px; }
   #usc-logo-desktop img { width: 50px; height: auto; }
   #usc-logo-mobile { display: none; }
}


@media (min-width: 768px) {
   /*
    * Grid stacks Chan (left) vs USC + search (right column) so the search bar never
    * paints over the USC wordmark (absolute + width:100% on the form caused overlap).
    */
/*
   #identity {
     display: grid;
     grid-template-columns: minmax(0, 1fr) 18%;
     grid-template-rows: auto auto;
     row-gap: 0;
     column-gap: 0;
     align-items: start;
     padding-right: 10px;
   }

   #chan-identity-2line {
     grid-column: 1;
     grid-row: 1 / -1;
     align-self: start;
   }

   #usc-identity {
     display: block;
     position: relative;
     grid-column: 2;
     grid-row: 1;
     width: 100%;
     top: -16px;
     right: auto;
     justify-self: end;
     align-self: start;
     padding-top: 1em;
     box-sizing: border-box;
   }
   #usc-identity a { display: block; margin-bottom: 0; }
   #usc-identity img { width: 100%; height: auto; }
   #usc-identity-mobile { display: none; }
*/
}

/*
@media (min-width: 926px) {
   #identity { padding-right: 18px; }
}
*/

/* Search form. */

#search-form
   { float: right; text-align: right; margin: 10px 0 0 0;
     display: block; position: relative; }

#search-form input#keywords
   { font-size: 150%; font-family: 'National 2'; font-weight: 400;
     width: 100%; max-width: 150px; transition: max-width 0.28s ease;
     border: 1px solid #eeeeee; color: black; background-color: #EDEDED; padding: 4px 35px 4px 12px;
     border-radius: 3px; box-sizing: border-box; }

/* Match identity-css-2025: redraw clear control so it aligns with text and #submit (interior pages use this stylesheet). */
#search-form input#keywords::-webkit-search-cancel-button {
   -webkit-appearance: none;
   width: 18px; height: 18px;
   margin-right: 2px;
   cursor: pointer;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 2.5l7 7M9.5 2.5l-7 7' stroke='%232B5597' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
   background-repeat: no-repeat; background-position: 50% 50%; background-size: 11px 11px;
}

#search-form input#keywords::-moz-search-clear-button {
   appearance: none;
   width: 18px; height: 18px;
   margin-right: 2px;
   cursor: pointer;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 2.5l7 7M9.5 2.5l-7 7' stroke='%232B5597' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
   background-repeat: no-repeat; background-position: 50% 50%; background-size: 11px 11px;
}

#search-form input#keywords::placeholder {
   color: #000000;
   opacity: 1;
   text-transform: lowercase;
}

#search-form input#submit
   { height: 16px; width: 16px; position: absolute; right: 10px;
     top: 0; bottom: 0; margin: auto 0;
     opacity: 0.40; filter: alpha(opacity=40); }

#search-form input#submit:hover,
#search-form:focus-within input#submit,
#search-form input#keywords:not(:placeholder-shown) + input#submit
   { opacity: 1.0; filter: alpha(opacity=100); }

@media (min-width: 500px) {
   #search-form:focus-within input#keywords,
   #search-form input#keywords:not(:placeholder-shown) {
      max-width: 300px;
   }
}

/* Mobile: same band as #main-nav “menu” + search (matches identity-css-2025). Interior templates use
   SmartMenus 1.0.0 sm-core-showhide: .main-menu-btn margin-left 15px, width 90px. */

/*
@media (max-width: 767px) {
   #search-form {
      float: none;
      position: absolute;
      bottom: -58px; /* sm-1.0 interior: align search with #main-nav row (2025 uses -50px). 
      left: calc(15px + 90px + 12px);
      right: 10px;
      width: auto;
      max-width: none;
      margin: 0 0 3px 0;
      text-align: right;
   }

   #search-form input#keywords {
      display: block;
      margin-left: auto;
      width: 140px;
      max-width: 100%;
      transition: width 0.28s ease;
   }
}
*/

@media (min-width: 768px) {
   #search-form {
      display: block; position: absolute; top: 0px; right: 70px;
      width: 100%; max-width: 400px;
   }

#search-form input#keywords {
     display: block;
     width: 100%; max-width: 280px;
     margin-left: auto;
     font-size: clamp(14px, 1.8vw, 20px); font-weight: 400;
     line-height: 24px;
     min-height: 40px;
     padding: 6px 44px 6px 16px;
   }

   #search-form input#submit {
      height: 1.6vw; width: 1.6vw;
      max-height: 22px; max-width: 22px;
   }
}

@media (min-width: 1180px) {
   #search-form:focus-within input#keywords,
   #search-form input#keywords:not(:placeholder-shown) {
      max-width: min(100%, 400px);
   }
}