﻿@charset "UTF-8";

/* ===================== 1) Variables & Resets ===================== */
:root{
  /* Layout */
  --page-max: 1139px;
  --banner-max-width: var(--page-max);
  --gutter-desktop: 2px;
  --gutter-mobile: 7px;
  --nav-row-min: 2.75em;
  --dd-height: 56px;
  --dd-height-sm: 46px;
  --svc-caret-size: 10px;
  --radius-6: 6px;
  --radius-8: 8px;
  --radius-12: 12px;
  --nav-active-bg: #082378;
  --panel-tint: rgba(229,239,255,0.5);

  /* Palette */
  --brand-blue: #061C60;
  --nav-blue: #061C60;
  --link-blue: #0b31a8;
  --accent-blue: #37497f;
  --accent-orange: #e18700;
  --text: #061C60;

  /* Backgrounds */
  --bg-gradient: linear-gradient(90deg, #e3eafc 0%, #f7faff 100%);

  /* Borders & Shadows */
  --border: 1px solid #e0e6ed;
  --card-shadow: 0 2px 8px rgba(6,28,96,0.04);
  --card-shadow-lg: 0 4px 12px rgba(6,28,96,0.06);
  --shadow: 0 8px 16px rgba(0,0,0,.12);
  --backdrop: rgba(0,0,0,.45);

  /* Type helpers */
  --small-text: .85rem;
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  font-size:100%;
}
html[data-fs="large"]{ font-size:112.5%; }
html[data-fs="largest"]{ font-size:125%; }

html, body, button, input, select, textarea{
  font-family: "Franklin Gothic Book", Arial, sans-serif;
}
html{ margin:0; padding:0; color:var(--text); }
body{ width:100%; margin:0; padding:0 0 5px; color:var(--text); }

img{ border:0; max-width:100%; height:auto; }
ul{ margin:0; padding-left:1.25em; }
td{ font-size:1rem; }
.smallcontent{ font-size:0.6875rem; }

p{ margin:0 0 8px; font-size:1rem; line-height:1.5; }
a{ color:var(--link-blue);}

:focus-visible:not(.gradient-dropdown){
  outline:2px solid var(--link-blue);
  outline-offset:1px;
}
.sr-only{
  position:absolute;
  left:-10000px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  *{
    animation:none !important;
    transition:none !important;
    scroll-behavior:auto !important;
  }
}

/* ===================== 2) Fonts ===================== */
@font-face{
  font-family:"Franklin Gothic Book";
  src:url("/fonts/FranklinGothicBook.woff2") format("woff2"),
      url("/fonts/FranklinGothicBook.woff") format("woff");
  font-weight:normal;
  font-style:normal;
  font-display:swap;
}

/* ===================== 3) Typography ===================== */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.h7, .h8, .h9{
  color:var(--nav-blue);
}

h1, .h1{ font-size:clamp(1.15rem, 1.6vw + .45rem, 1.7rem); font-weight:800; }
h2, .h2{ font-size:clamp(1rem,1.3vw + .4rem,1.45rem); font-weight:700; margin: .5rem 0 0; }
h3, .h3{ font-size:clamp(1rem,1.3vw + .4rem,1.45rem); font-weight:700; margin: .5rem 0 0; color:#000; }
h4, .h4{ font-size:clamp(.95rem,1.3vw + .4rem,1.45rem); font-weight:500; margin: .4rem 0 0;}
h5, .h5{ font-size:clamp(.95rem,1.3vw + .4rem,1.45rem); color:#000; font-weight:500; margin: .4rem 0 0; }
h6, .h6{ font-size:clamp(.75rem,1.3vw + .4rem,0.9rem); font-weight:500; }

.h7{ font-size:clamp(.95rem,.9vw + .25rem,1.1rem); font-weight:400; margin: .4rem 0 ; }
.h8{ font-size:clamp(.85rem,.8vw + .25rem,1rem);  color:#000; font-weight:500;  }
.h9{ font-size:clamp(.75rem,.8vw + .25rem,1rem);  color:#666666; font-weight:200; font-style:italic; }
.styleurgent { color: #Ff0000; font-weight: bold;font-size: 1.10rem; margin-bottom:0.1em;text-align: center;}
.styleurgent2 { color: #000; font-size: 0.95rem; margin-top:0; margin-bottom:0.1em; text-align: center;}
.styleurgent3 {	color: #Ff0000; font-size: 1.10rem; margin-top:0.1em; margin-bottom:0.1em; text-align: center;}

/* Global title link styling */
.globalNavGrey{
  font-size:2.1rem;
  padding:0;
  margin:0;
  font-weight:700;
  color:var(--brand-blue);
}
h1.globalNavGrey{ margin:0; }
.globalNavGrey a{
  color:var(--brand-blue);
  text-decoration:none;
  font-weight:1000;
  font-size:2.5rem;
}
.globalNavGrey a:hover{ color:var(--link-blue); text-decoration:underline; }
.globalNavGrey a:active{ color:#082378; }

/* Top nav link styling */
.globalNavBlue{
  margin-top:0;
  padding-left: 2px;
  font-size:.875rem;
  font-weight:700;
  text-decoration:underline;
  text-align:center;
  vertical-align:bottom;
  color:#fff;
}
.globalNavBlue a{
  color:#fff;
  text-decoration:none;
  font-size:1rem;
  line-height:1.2;
}
.globalNavBlue a:hover{
  text-decoration:underline;
}

/* Secondary nav */
.globalNav{
  font-size:.75rem;
  padding:0;
  margin:0;
  font-weight:700;
  color:#0A1F62;
}
.globalNav a{
  color:#0A1F62;
  text-decoration:none;
}
.globalNav a:hover{
  color:#b2c7dd;
  text-decoration:underline;
}
.globalNav a:active{
  color:#c97962;
  font-size:.8125rem;
}

/* Special link */
.globalNavBlue a[href*="SpanishForms.htm"]{
  background:none;
  border:none;
  color:#fff;
  padding:0 10px;
  text-decoration:none;
}
.globalNavBlue a[href*="SpanishForms.htm"]:hover,
.globalNavBlue a[href*="SpanishForms.htm"]:focus{
  color:#fff;
  text-decoration:underline;
}
.globalNavBlue a[href*="SpanishForms.htm"]:focus-visible{
  outline:1px solid #fff;
  outline-offset:1px;
  text-decoration:underline;
}

/* Utility nav */
.utilityNav{
  margin:0;
  padding:2px;
  font-size:.625rem;
  font-weight:700;
  text-align:right;
  color:#687983;
}
.utilityNav a{
  color:#687983;
  text-decoration:none;
}
.utilityNav a:hover{
  text-decoration:underline;
}

/* JSSOR bullets/arrows (leave as-is if used elsewhere) */
.jssorb05{ position:absolute; }
.jssorb05 .av,.jssorb05 div:hover,.jssorb05 div{
  position:absolute;
  width:16px;
  height:16px;
  background:url('/images/slide/b05.png') no-repeat;
  overflow:hidden;
  cursor:pointer;
}
.jssorb05 div{ background-position:-7px -7px; }
.jssorb05 .av:hover{ background-position:-37px -7px; }
.jssorb05 div:hover{ background-position:-37px -7px; }
.jssorb05 .av{ background-position:-97px -7px; }
.jssorb05 .dn:hover,.jssorb05 .dn{ background-position:-97px -7px; }

.jssora12r,.jssora12l{
  display:block;
  position:absolute;
  width:30px;
  height:46px;
  cursor:pointer;
  background:url('/images/slide/a12.png') no-repeat;
  overflow:hidden;
}
.jssora12l{ background-position:-16px -37px; }
.jssora12r{ background-position:-75px -37px; }
.jssora12l:hover{ background-position:-136px -37px; }
.jssora12r:hover{ background-position:-195px -37px; }
.jssora12l.jssora12ldn{ background-position:-256px -37px; }
.jssora12r.jssora12rdn{ background-position:-315px -37px; }

/* ===================== 4) Header ===================== */

.dhsp-header{
  display:grid;
  grid-template-columns:auto 1fr auto;
  grid-template-areas:"left center right";
  align-items:center;
  gap:16px;
  padding:8px 0 10px;
  width:100%;
}

/* LEFT COLUMN: logo + search + social */
.dhsp-header__left{
  grid-area:left;
  display:grid;
  grid-template-rows:auto auto;
  gap:6px;
  align-items:center;
}

/* top row: logo + search side-by-side (desktop) */
.dhsp-header__left-top{
  display:flex;
  align-items:center;
  gap:12px;
}
.dhsp-header__left-top .dhsp-header__search{
  flex:1;
}

/* Logo */
.dhsp-header__logo{
  min-width:96px;
}
.dhsp-logo img{
  display:block;
}

.dhsp-header__search input[type="search"],
.dhsp-header__search input[type="text"]{
  width:100%;
  min-width:0;
  height:36px;
  line-height:36px;
  padding:0 10px;
}
.dhsp-header__search form{
  display:flex;
  align-items:center;
  gap:6px;
}
/* Shared search input base (header + nav) */
:where(.dhsp-header__search, #blue-search-col) input:is([type="search"],[type="text"]){
  border:1px solid #ccc;
  border-radius: var(--radius-8);
}
/* Shared mobile sizing for search inputs (header + nav) */
@media (max-width:900px){
  :where(.dhsp-header__search, #blue-search-col) input:is([type="search"],[type="text"]){
    height:44px;
    min-height:44px;
    line-height:44px;
    border-radius:10px;
  }
  .dhsp-header{
    align-items:start;
  }
}

/* Social icons row */
.dhsp-header__social{
  display:flex;
  align-items:center;
}
.dhsp-header__social .social{
  display:flex;
  align-items:center;
  gap:4px;
}

/* CENTER COLUMN: site title */
.dhsp-header__center{
  grid-area:center;
  text-align:center;
}
.dhsp-header__center .globalNavGrey{
  margin:0;
}
.dhsp-header__center .globalNavGrey a{
  font-size:2.1rem;
}

/* RIGHT COLUMN */
.dhsp-header__right{
  grid-area:right;
  display:grid;
  grid-template-rows:auto auto;
  gap:6px;
  justify-items:flex-start;
  align-self:flex-start;
}

/* Row 1: Translate button */
.dhsp-header__translate{
  display:flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}

/* Row 2: ADA area */
.dhsp-header__accessibility{
  display:flex;
  align-items:center;
  gap:10px;
  white-space:nowrap;
}

/* ADA icon alignment */
.dhsp-header__accessibility > a img{
  position:static;
  top:0;
  vertical-align:middle;
}

/* "Font Size" group next to icon */
.dhsp-header__font-size{
  display:flex;
  align-items:center;
  gap:6px;
}
.dhsp-header__font-size-label{
  display:inline-block;
  line-height:1.1;
  white-space:nowrap;
}
.dhsp-header__font-size-buttons{
  display:flex;
  align-items:baseline;
  gap:6px;
}
.dhsp-header__font-size-buttons a{
  display:inline-block;
  line-height:1;
  font-weight:600;
  text-decoration:none;
  vertical-align:baseline;
}
.dhsp-header__font-size-buttons a[aria-current="true"]{
  background:#ffffff;
  border-radius:6px;
  padding:4px;
  box-shadow:
    0 0 0 1px #061C60,
    0 0 6px rgba(6,28,96,.35);
}

/* Font-size controls */
#fs1{ font-size:.95rem; }
#fs2{ font-size:1rem; }
#fs3{ font-size:1.4rem; position:relative; top:0; }

/* Nudge desktop search upward to align with logo */
@media (min-width:901px){
  .dhsp-header__search { margin-top:-4px; }
}

/* ===================== 4a) Mobile Header ===================== */
@media (max-width:900px){
  .dhsp-header{
    grid-template-columns:auto auto;
    grid-template-areas:
      "left right"
      "center center";
    row-gap:10px;
    align-items:flex-start;
    text-align:left;
    position:relative;
    padding-bottom:52px; /* matches P-drive spacing */
  }

  /* Social icons centered at bottom of header */
  .dhsp-header__social{
    position:absolute;
    left:50%;
    bottom:8px;
    transform:translateX(-50%);
    display:flex;
    justify-content:center;
  }

  /* Make left stack vertically */
  .dhsp-header__left{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
  }

  .dhsp-header__left-top{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
  }

  .dhsp-header__search{
    max-width:100%;
    width:100%;
  }

  .dhsp-header__center{
    text-align:center;
  }

  .dhsp-header__right{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    margin-left:auto;
    padding-right:4px;
  }

  /* reserve space so icons never overlap the title */
  .dhsp-header__center{ padding-bottom: 40px; }

  .dhsp-header__center .globalNavGrey{ margin-bottom: 0; }
}

/* ===================== 4b) Mobile dropdown arrows ===================== */
@media (max-width:900px){

  .dhsp-nav__services > .globalNavBlue > a[aria-haspopup="true"],
  .dhsp-nav__report  > .globalNavBlue > a[aria-haspopup="true"]{
    width: 100%;              /* ✅ full row clickable */
    display: flex;
    justify-content: center;  /* ✅ centers text+chevron as a group */
    align-items: center;
    text-align: center;
    padding: 0.6em 1em;       /* ✅ bigger tap target */
  }

  .dhsp-nav__services > .globalNavBlue > a[aria-haspopup="true"]::after,
  .dhsp-nav__report  > .globalNavBlue > a[aria-haspopup="true"]::after{
    content:"";
    width: 16px;
    height: 16px;
    margin-left: 8px;         /* ✅ arrow sits right next to text */
    background: url("chevron-white.svg") no-repeat center;
    background-size: contain;
    transform: rotate(0deg);
    transition: transform .25s ease;
    pointer-events: none;
  }

  .dhsp-nav__services.open > .globalNavBlue > a[aria-haspopup="true"]::after,
  .dhsp-nav__report.open  > .globalNavBlue > a[aria-haspopup="true"]::after{
    transform: rotate(180deg);
  }
}

/* ===================== 5) Blue Nav Bar & Dropdowns ===================== */
.dhsp-nav{
  background:var(--nav-blue);
  color:#fff;
  max-width:var(--page-max);
  margin:0 auto;
  border-radius:var(--radius-8);
  padding:0;
  overflow:visible;
}

.dhsp-nav__row{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  padding:6px 0;
  position:relative;
}
.dhsp-nav__row .item a{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  width:100%;
  min-height:var(--nav-row-min);
  color:#fff;
  white-space:nowrap;
}
.dhsp-nav__row .item a:focus{
  outline:1px solid #fff;
  outline-offset:1px;
}
.dhsp-nav__row > .item > .globalNavBlue > a{
  min-height:var(--nav-row-min);
  padding:0.35em .75em;
}

/* Mobile toggles */
.dhsp-nav__toggle{
  display:none;
  background:transparent;
  border:0;
  width:44px;
  height:44px;
  cursor:pointer;
}
.dhsp-nav__toggle span{
  display:block;
  width:22px;
  height:2px;
  margin:5px auto;
  background:#fff;
}
.dhsp-nav__toggle:focus-visible,
.contact-close:focus-visible{
  outline:1px solid #fff;
  outline-offset:1px;
}

/* Dropdown menus are CLOSED by default (all viewports) */
.dhsp-nav__services > .services-menu,
.dhsp-nav__report  > .services-menu{
  display:none;
}

@media (max-width:900px){
  .dhsp-nav__toggle{ display:block; }
  .dhsp-nav__row{ gap:0; }
  .dhsp-nav__row .item{ text-decoration:none; }
  .dhsp-nav__row .item a{
    text-decoration:underline;
    justify-content:center;
    text-align:center;
  }

  /* Default: center ALL main menu options */
  .dhsp-nav__row .item{
    width:100%;
    border-top:1px solid rgba(255,255,255,.15);
    display:none;
  }

  /* Show items when menu is open */
  .dhsp-nav__row.open > .item{ display:block; }

  /* Mobile search row inside the opened menu */
  #blue-search-col{
    order:99;
    width:100%;
    display:none;
    border-top:1px solid rgba(255,255,255,.15);
    padding:6px 0;
  }
  .dhsp-nav__row.open #blue-search-col{ display:block; }

  /* Mobile: dropdown panels open only when selected (JS toggles .open) */
  .dhsp-nav__services.open > .services-menu,
  .dhsp-nav__report.open  > .services-menu{
    display:block;
  }

  /* Mobile dropdown list layout */
  .dhsp-nav__services > .services-menu,
  .dhsp-nav__report  > .services-menu{
    width:100%;
    margin:0;
    padding:0;
  }
    /* 1) Keep the trigger row the normal nav blue (NOT highlighted) */
  .dhsp-nav__services.open > .globalNavBlue > a,
  .dhsp-nav__report.open  > .globalNavBlue > a{
    background: var(--nav-blue); 
  }

  /* 2) Make the OPEN dropdown panel light blue */
  .dhsp-nav__services.open > .services-menu,
  .dhsp-nav__report.open  > .services-menu{
    background: var(--nav-active-bg);
    border-top: 1px solid rgba(255,255,255,.15);
    border-radius: 6px;
  }

  /* 3) Make the dropdown links readable on light blue */
  .dhsp-nav__services.open > .services-menu a,
  .dhsp-nav__report.open  > .services-menu a{
    color: #fff !important;
  }

  /* 4) Optional: hover/focus state on the light-blue panel */
  .dhsp-nav__services.open > .services-menu a:hover,
  .dhsp-nav__services.open > .services-menu a:focus-visible,
  .dhsp-nav__report.open  > .services-menu a:hover,
  .dhsp-nav__report.open  > .services-menu a:focus-visible{
    background: rgba(6,28,96,.08);
    border-radius: 6px;
  }
}

/* Desktop search in nav */
@media (min-width:901px){
  .dhsp-nav__row .item a{ text-decoration:none; }

  .dhsp-nav .dhsp-nav__row #blue-search-col{
    margin-left:auto !important;
    padding:6px;
    display:flex;
    align-items:center;
    min-height:var(--nav-row-min);
    line-height:normal;
  }
  .dhsp-nav .dhsp-nav__row #blue-search-col form{
    display:flex;
    align-items:center;
    min-height:var(--nav-row-min);
    margin:0;
  }
  .dhsp-nav .dhsp-nav__row #blue-search-col input[type="text"],
  .dhsp-nav .dhsp-nav__row #blue-search-col input[type="search"]{
    padding:0 10px;
    min-width:250px;
    background:#fff;
    min-height:var(--nav-row-min);
    height:auto;
  }
}

/* Mobile nav search full width */
@media (max-width:900px){
  .dhsp-nav #blue-search-col{ width:100%; }
  .dhsp-nav #blue-search-col form{
    display:flex;
    align-items:center;
    width:100%;
    gap:6px;
    margin:0;
  }
  .dhsp-nav #blue-search-col input[type="search"],
  .dhsp-nav #blue-search-col input[type="text"]{
    flex:1 1 auto;
    width:100%;
    min-width:0;
 }
}

/* Mobile header row within nav */
.dhsp-nav__mobile-label{
  display:none;
  color:#fff;
  font-weight:600;
  font-size:1.1rem;
  background:none;
  border:0;
  padding:0;
  cursor:pointer;
}
.dhsp-nav__mobile-label:hover{ text-decoration:underline; }
.dhsp-nav__mobile-header{ position:relative; }
.dhsp-nav__overlay{
  position:absolute;
  inset:0;
  background:transparent;
  border:0;
  cursor:pointer;
}
@media (min-width:901px){
  .dhsp-nav__overlay{ display:none !important; }
}
@media (max-width:900px){
  .dhsp-nav__mobile-header .dhsp-nav__toggle{ justify-self:start; }
  .dhsp-nav__mobile-label{ display:inline-block; }
  .dhsp-nav__mobile-header::after{
    content:"";
    width:44px;
    height:44px;
  }

  .dhsp-nav__row{ position:relative; }
  .dhsp-nav__mobile-header{
    flex:0 0 100%;
    width:100%;
    min-height:var(--nav-row-min);
    display:grid;
    grid-template-columns:44px 1fr 44px;
    align-items:center;
    justify-items:center;
  }
  .dhsp-nav__mobile-label{
    grid-column:2;
    justify-self:center;
    text-align:center;
  }
  .dhsp-nav__mobile-header .dhsp-nav__toggle{
    grid-column:1;
    justify-self:start;
  }
}

/* ===================== 5a) Blue Nav Bar & Dropdowns (Services & Reports) ===================== */
/* Shared menu link baseline (services-menu + report menu + submenu-right) */
.services-menu li a{
  display:flex;
  align-items:center;
  min-height:44px;
  color:#fff;
  text-decoration:none; /* default: no underline */
}

/* Mobile: underline dropdown items */
@media (max-width:900px){
  .services-menu li a{ text-decoration:underline; }
}

/* Kill bullets in dropdowns */
.dhsp-nav__services .services-menu,
.dhsp-nav__services .services-menu ul,
.dhsp-nav__report   .services-menu,
.dhsp-nav__report   .services-menu ul{
  list-style:none;
  margin:0;
  padding:0;
}

/* Top-level dropdown links styling (Report) */
.dhsp-nav__report .services-menu > li > a{
  display:block;
  padding:10px 14px;
  color:#fff !important;
}

/* Prevent hover-open on mobile (touch) unless .open is applied */
@media (max-width:900px){
  .dhsp-nav__services:hover:not(.open) > .services-menu,
  .dhsp-nav__services:focus-within:not(.open) > .services-menu,
  .dhsp-nav__report:hover:not(.open)  > .services-menu,
  .dhsp-nav__report:focus-within:not(.open) > .services-menu{
    display:none;
  }
}

@media (min-width:901px){
  /* Make both dropdown parents behave the same */
  .dhsp-nav__services,
  .dhsp-nav__report{
    position:relative;
  }

  /* Keep triggers above panels */
  .dhsp-nav__services > .globalNavBlue > a,
  .dhsp-nav__report  > .globalNavBlue > a{
    position:relative;
    z-index:6;
  }

  /* Shared dropdown panel styling */
  .dhsp-nav__services > .services-menu,
  .dhsp-nav__report  > .services-menu{
    position:absolute;
    top:calc(100% - 3px);
    left:0;

    width: max-content;
    min-width: max-content;
    max-width: none;
    margin:0;
    padding:0;

    background:var(--brand-blue);
    border-radius:var(--radius-8);
    color:#fff;

    box-shadow:0 4px 12px rgba(0,0,0,.15);
    z-index:5;

    display:none;
  }

  /* Open on hover OR keyboard focus */
  .dhsp-nav__services:hover > .services-menu,
  .dhsp-nav__services:focus-within > .services-menu,
  .dhsp-nav__report:hover  > .services-menu,
  .dhsp-nav__report:focus-within > .services-menu{
    display:block;
  }

  /* Highlight the trigger when open/hovered (same look for both) */
  .dhsp-nav__services:hover > .globalNavBlue > a,
  .dhsp-nav__services:focus-within > .globalNavBlue > a,
  .dhsp-nav__report:hover  > .globalNavBlue > a,
  .dhsp-nav__report:focus-within > .globalNavBlue > a{
    background-color:var(--nav-active-bg) !important;
    color:#fff !important;
    border-radius:8px;
    outline:1px solid #fff;
  }

  /* Dropdown item spacing (applies to BOTH menus) */
  .dhsp-nav__services > .services-menu li a,
  .dhsp-nav__report  > .services-menu li a{
    justify-content:flex-start;
    padding:10px 14px;
    box-sizing:border-box;
    text-decoration:none;
    font-size:.95rem;
    white-space:normal;
  }

  /* Dropdown item hover/focus (applies to BOTH menus) */
  .dhsp-nav__services > .services-menu li a:hover,
  .dhsp-nav__services > .services-menu li a:focus-visible,
  .dhsp-nav__report  > .services-menu li a:hover,
  .dhsp-nav__report  > .services-menu li a:focus-visible{
    background-color: var(--nav-active-bg);
    border-radius: 6px;
  }

  /* Keep highlight when submenu (right-side) is hovered/focused */
  .dhsp-nav__services .has-submenu:hover > a,
  .dhsp-nav__services .has-submenu:focus-within > a,
  .dhsp-nav__report  .has-submenu:hover > a,
  .dhsp-nav__report  .has-submenu:focus-within > a{
    background-color:var(--nav-active-bg) !important;
    color:#fff !important;
    border-radius:8px;
    outline:1px solid #fff;
  }
}

/* ===================== 5b) Contact Dropdown ===================== */
.dhsp-nav__contact{ position:relative; }
.dhsp-nav__contact-panel{
  display:none;
  min-width:360px;
  max-width:380px;
  background:var(--nav-blue);
  border-radius:var(--radius-8);
  color:#fff;
  outline:1px solid #fff;
  text-align:left;
  padding:12px 5px 12px 12px;
  border-bottom:3px solid var(--brand-blue);
  box-shadow:0 4px 12px rgba(0,0,0,.18);
  z-index:4;
}
.dhsp-nav__contact-panel a{
  color:#fff;
  text-decoration:underline;
  background:transparent;
}
.contact-heading{
  font-weight:700;
  font-size:1.05rem;
  text-align:center;
  color:#fff;
}
.contact-address{
  font-weight:500;
  margin-top:-10px;
  margin-bottom:-10px;
  margin-left:10px;
  text-align:left;
  color:#fff;
}
.contact-details{
  display:grid;
  grid-auto-rows:min-content;
  gap:10px;
  font-size:.95rem;
  line-height:1.5;
}
.contact-lines div{
  margin-top:2px;
  line-height:1.5;
  white-space:normal;
}
.contact-lines strong{
  margin-left:11px;
  display:inline-block;
  min-width:90px;
  font-weight:700;
  color:#fff;
}
.contact-lines .contact-text{
  display:inline-block;
  color:#fff;
}
.contact-lines a[href^="mailto:"]{
  display:inline;
  margin-left:2px;
  white-space:nowrap;
}

@media (min-width:901px){
  .dhsp-nav__contact > .globalNavBlue > a{
    position:relative;
    z-index:6;
    background:var(--nav-blue);
    border-radius:8px;
    
  }
  .dhsp-nav__contact-panel{
    display:none;
    position:absolute;
    left:0;
    top:calc(100% - 3px);
    z-index:4;
  }
  .dhsp-nav__contact:focus-within > .dhsp-nav__contact-panel,
  .dhsp-nav__contact:hover > .dhsp-nav__contact-panel{
    display:block;
  }
    .dhsp-nav__contact:hover > .globalNavBlue > a,
  .dhsp-nav__contact:focus-within > .globalNavBlue > a{
    background-color: var(--nav-active-bg) !important; /* lighter blue */
    color:#fff !important;
    border-radius: 8px;
    outline: 1px solid #fff;}
}

.dhsp-nav__contact-backdrop, .contact-backdrop{
  display:none;
  position:fixed;
  inset:0;
  background:var(--backdrop);
  z-index:3000;
}

@media (min-width:901px){
  .dhsp-nav__contact.force-open > .dhsp-nav__contact-panel{
    display:block;
  }
}
.dhsp-nav__contact.force-open > .globalNavBlue > a{
  background-color:#082378 !important;
  color:#fff !important;
  border-radius:var(--radius-8);
  outline:1px solid #fff;
}

@media (max-width:900px){
  .dhsp-nav__contact.open > .dhsp-nav__contact-panel{
    display:block;
    position:fixed;
    left:50%;
    top:12vh;
    transform:translateX(-50%);
    width:92vw;
    max-width:520px;
    max-height:76vh;
    overflow:auto;
    border-radius:14px;
    padding-right:56px;
    z-index:3001;
  }
  .dhsp-nav__contact-backdrop.show{ display:block; }
}

.contact-close{ display:none; }
@media (max-width:900px){
  .contact-close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    position:absolute;
    right:10px;
    top:10px;
    width:36px;
    height:36px;
    border-radius:var(--radius-8);
    border:1px solid #d6d6d6;
    background:#f7f7f7;
    cursor:pointer;
  }
  .contact-close:focus{
    outline:2px solid var(--brand-blue);
    outline-offset:1px;
  }
  .contact-close-icon{
    display:block;
    width:16px;
    height:16px;
    position:relative;
  }
  .contact-close-icon::after{
    content:"";
    position:absolute;
    inset:0;
    margin:auto;
    width:16px;
    height:2px;
    background:#333;
    transform:rotate(-45deg);
  }
  .contact-close-icon::before{
    content:"";
    position:absolute;
    inset:0;
    margin:auto;
    width:16px;
    height:2px;
    background:#333;
    transform:rotate(45deg);
  }
}
@media (max-width:900px){
  .contact-hours{
    padding-left:96px;
  }
  .contact-hours strong{
    display:block;
    margin-left:-85px;
    margin-bottom:2px;
  }
  .contact-hours .hours-text{
    display:block;
    margin-left:-85px;
    margin-bottom:2px;
  }
}

/* ===================== 5c)  Dropdowns (Page Title & Quick Links) ===================== */
.dhsp-toolbar{
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  gap:clamp(.25rem,2vw,.5rem);
  padding:10px 0;
  flex-wrap:nowrap;
}
.dhsp-toolbar__primary{
  flex:1 1 auto;
  min-width:0;
}
.dhsp-toolbar__secondary{
  flex:0 0 clamp(110px,16vw,160px);
  max-width:none;
}

.dhsp-dropdown__select{
  font-weight:700;
  font-size:clamp(1rem,1.3vw + .4rem,1.45rem);
  letter-spacing:.02em;
  color:var(--nav-blue);
  background:#e3eafc;
  border:0;
  border-radius:12px;
  box-shadow:0 2px 6px rgba(0,0,0,0.08);
  transition:background .25s,box-shadow .25s;
  width:auto;
  line-height:1.25;
  min-height:var(--dd-height);
  padding:.6em 3.2em .6em .75em;
  appearance:none;
  background-image:none;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  height:auto !important;
  position:relative;
  z-index:1;
  outline:2px solid var(--nav-blue);
  border-radius:var(--radius-8);

}

/* Scoped base style for the Report Case dropdown */
.gradientcontainer .dhsp-dropdown__select{
  border:1px solid var(--brand-blue);
}

.dhsp-dropdown__select:hover,
.dhsp-dropdown__select:focus{
  background:linear-gradient(to bottom right,#fff,#f4f7fb) !important;
  box-shadow:0 3px 10px rgba(0,0,0,0.1);
}
.dhsp-dropdown__select option{
  background:#fff;
  color:var(--text);
  line-height:1.25;
  font-size:clamp(1rem,1.3vw + .4rem,1.45rem);
  text-align:center;
}

.dhsp-dropdown{ position:relative; }

.dhsp-dropdown__button,
.ellipsis-trigger,
.dhsp-dropdown:focus-within .dhsp-dropdown__button,
.dhsp-dropdown:focus-within .ellipsis-trigger {
  position:absolute;
  right:.4em;
  top:0;
  bottom:0;
  width:3em;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:.3em;
  background:transparent !important;
  border:0;
  outline:none;
  cursor:pointer;
  z-index:2;
  pointer-events:auto;
}
.dhsp-dropdown__button span,
.ellipsis-trigger span{
  width:.28em;
  height:.28em;
  border-radius:12px;
  background:#061C60;
}
.dhsp-dropdown__button:hover span,
.ellipsis-trigger:hover span{ opacity:.8; }

.dhsp-dropdown__button:active span,
.ellipsis-trigger:active span{ transform:scale(.92); }
.dhsp-dropdown:focus-within .dhsp-dropdown__button,
.dhsp-dropdown:focus-within .ellipsis-trigger{
  flex-direction:row;
}

/* ===================== 5d) Title dropdown behavior only for PRIMARY title ===================== */
.dhsp-toolbar__primary #site-nav-select.dhsp-dropdown__select,
html[data-fs] .dhsp-toolbar__primary #site-nav-select.dhsp-dropdown__select{
  height:auto !important;
  min-height:var(--dd-height) !important;
  line-height:1.3;
  white-space:normal;
  background:#e3eafc;
  overflow:visible !important;
  text-overflow:clip !important;
  text-align:center;
}

/* Desktop toolbar layout (PRIMARY + SECONDARY) */
@media (min-width:901px){
  .dhsp-toolbar{
    display:flex;
    align-items:stretch;
    gap:8px;
  }

  .dhsp-toolbar__primary{
    flex:1 1 auto;
    min-width:0;
    align-self:stretch;
  }

  .dhsp-toolbar__secondary{
    flex:0 0 auto;
    width:max-content;
    max-width:none;
    align-self:stretch;
  }

  .dhsp-toolbar__primary .dhsp-dropdown,
  .dhsp-toolbar__secondary .dhsp-dropdown{
    position:relative;
    display:flex;
    align-items:stretch;
    height:100%;
  }

  .dhsp-toolbar__primary  #site-nav-select.dhsp-dropdown__select,
  .dhsp-toolbar__secondary #site-nav-select-2.dhsp-dropdown__select{
    height:100% !important;
    min-height:var(--dd-height) !important;
    line-height:1.3;
  }

  .dhsp-toolbar__secondary #site-nav-select-2.dhsp-dropdown__select{
    font-size:clamp(.9rem, .6vw + .55rem, 1.05rem);
    font-weight:600;
    border-radius:12px;
    background:var(--bg-gradient);
    box-shadow:0 1px 3px rgba(6,28,96,.15);
    width:auto;
  }

  .dhsp-toolbar__primary #site-nav-select.dhsp-dropdown__select{
    font-size:clamp(1.9rem,1.5vw + .5rem,2.4rem);
    font-weight:900;
    width:100%;
    padding:0;
  }
}

/* Mobile toolbar layout */
@media (max-width:900px){
  .dhsp-toolbar{ flex-wrap:wrap; }

  .dhsp-toolbar__secondary{ order:1; margin-top:0; }
  .dhsp-toolbar__primary{ order:2; margin-top:0; }

  #site-nav-select.dhsp-dropdown__select,
  html[data-fs] #site-nav-select.dhsp-dropdown__select{
    height:auto !important;
    min-height:var(--dd-height) !important;
    line-height:1.3;
    white-space:normal;
    background:var(--bg-gradient);
    overflow:visible !important;
    text-overflow:clip !important;
    padding-top:.6em !important;
    padding-bottom:.6em !important;
  }

  #site-nav-select-2.dhsp-dropdown__select,
  html[data-fs] #site-nav-select-2.dhsp-dropdown__select{
    height:auto !important;
    line-height:1.25;
    white-space:normal !important;

    background:#ffffff;
    box-shadow:0 1px 3px rgba(6,28,96,.15);

    overflow:visible !important;
    text-overflow:clip !important;

    font-size:clamp(.85rem,2.6vw,1rem);
    font-weight:600;
  }

  .dhsp-toolbar__primary{
    display:flex;
    justify-content:center;
  }

  #site-nav-select.dhsp-dropdown__select{
    font-size:clamp(1.5rem, 4vw, 2rem);
    font-weight:900;
    text-align:center;
    text-align-last:center;
    box-shadow:0 3px 10px rgba(6,28,96,.15);
  }

  .dhsp-toolbar__secondary,
  .dhsp-toolbar__primary{
    flex:1 1 100%;
    min-width:0 !important;
    max-width:100% !important;
  }

  .dhsp-dropdown select.dhsp-dropdown__select,
  .dhsp-toolbar__secondary .dhsp-dropdown__select,
  .dhsp-toolbar__primary .dhsp-dropdown__select{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box;
  }
}

@media (max-width:600px){
  #site-nav-select.dhsp-dropdown__select{
    height:auto !important;
    min-height:var(--dd-height-sm);
    white-space:normal;
    line-height:1.3;
    padding:.42em 2.6em .42em .75em;
    appearance:none;
    -webkit-appearance:none;
    box-sizing:border-box;
  }

  #site-nav-select-2.dhsp-dropdown__select{
    height:auto !important;
    min-height:var(--dd-height-sm);
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    line-height:1.25;
    padding:.42em 2.6em .42em .75em;
    appearance:none;
    -webkit-appearance:none;
    box-sizing:border-box;

    background:#ffffff;
    box-shadow:0 1px 3px rgba(6,28,96,.15);
  }
}

html[data-fs="largest"] .dhsp-dropdown__select{
  white-space:normal !important;
  overflow:visible;
  text-overflow:clip;
}

.dhsp-toolbar__primary .dhsp-dropdown__select{
  white-space:normal;
  overflow:visible;
}
html[data-fs="large"] .dhsp-toolbar__primary .dhsp-dropdown__select,
html[data-fs="largest"] .dhsp-toolbar__primary .dhsp-dropdown__select{
  white-space:normal !important;
  overflow:visible;
  text-overflow:clip;
}

/* ===================== 6) PowerBI ===================== */
.powerbi-section{
  width:var(--page-max);
  margin:16px auto;
  max-width:100%;
  box-sizing:border-box;
}
.pbi-shell{
  border-radius:var(--radius-8);
  padding:16px;
  text-align:left;
    background: #fff;
    /* add glow */
  box-shadow:
    0 0 6px rgba(6,28,96,.45),
    0 0 6px rgba(6,28,96,.25);

}
.pbi-responsive{
  position:relative;
  width:100%;
  border-radius:var(--radius-8);
  overflow:hidden;
  border:var(--border);
  background:#f4f7fb;
  height:600px;
}
.pbi-responsive iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
}
.pbi-caption{
  margin:8px 0 0;
  color:#666;
  font-size:.9rem;
  font-style:italic;
}
@media (max-width:640px){
  .powerbi-section{
    padding:0 var(--gutter-mobile);
    margin:10px auto 10px;
  }
}


/* ===================== 7) Containers ===================== */
.container{
  margin:10px auto 0;
  max-width:var(--page-max);
  padding:0 var(--gutter-desktop);
}
.container-edge{
  max-width:var(--banner-max-width);
  margin: 0.5rem auto .85rem;
  padding:0 var(--gutter-desktop);
}

.gradientcontainer{
  width:100%;
  max-width:var(--page-max);
  margin:0;
  padding:0;
}
.gradientcontainer-edge{
  width:100%;
  max-width:var(--banner-max-width);
  margin:.75rem 0 0;
  padding:0 var(--gutter-desktop);
}

@media (max-width:900px){
  .container-edge{
    padding:0 var(--gutter-mobile);
    margin:10px auto 10px;

  }
}
@media (max-width:640px){
  .container{
    padding:0 var(--gutter-mobile);
    margin:10px auto 10px;
  }
}

/* ===================== 8) Collapsibles & Cards ===================== */
.dhsp-collapsible summary{
  position: relative;
  z-index:2;
  list-style:none;
  cursor:pointer;
  margin:0;
  padding:0;
  display:block;
  max-width:var(--page-max);
}
.dhsp-collapsible summary::-webkit-details-marker{
  display:none;
}
.dhsp-collapsible .summary-row{
  position:relative;
  z-index:3;  
  display:flex;
  align-items:center;
  gap:12px;
  border-radius:var(--radius-8);
  padding:12px 8px;
  background:#ffff;
  outline:none;
  box-shadow:
    0 0 6px rgba(6,28,96,.45),
    0 0 4px rgba(6,28,96,.25);
   }
        
.dhsp-collapsible .grouped{
  position:relative;
  z-index:3;  
  display:flex;
  align-items:center;
  gap:12px;
  border-radius:var(--radius-8);
  padding:12px 8px;
  background:#ffff;
  outline:none;
  box-shadow:
    0 0 2px rgba(6,28,96,.45),
    0 0 8px rgba(6,28,96,.25);
   }

.dhsp-collapsible .summary-indicator{
  margin-left:auto;
  width:18px;
  height:18px;
  transform:rotate(0deg);
  transition:transform .18s ease;
}
.dhsp-collapsible[open] .summary-indicator{
  transform:rotate(90deg);
}
.dhsp-collapsible{
  margin-bottom:12px;
  max-width:var(--page-max);
  margin:0 auto;
  padding-top:10px;
  padding-bottom:10px;
}
/* Standard: remove the default disclosure triangle */
summary { 
  list-style: none;
}

/* Chrome/Safari: remove the marker */
summary::-webkit-details-marker {
  display: none;
}

/* Newer spec-compliant marker pseudo-element (supported in modern browsers) */
summary::marker {
  content: "";
}

.card,
.card-dd{
  max-width:var(--page-max);
  background: rgba(6,28,96,.03);
  border-radius:var(--radius-8);
  padding:12px 8px;
  box-shadow:var(--card-shadow);
  text-align:left;
  border:0;
  margin-top:-8px;
  position: relative;
  z-index: 1;           /* below the summary row */
  margin-top: -8px;  /* keeps the overlap effect */
}
.card--elevated{
  box-shadow:var(--card-shadow-lg);
  padding:10px;
  max-width:var(--page-max);
  margin:8px auto;
  background: #fff;
    /* add glow */
  box-shadow:
    0 0 6px rgba(6,28,96,.45),
    0 0 12px rgba(6,28,96,.25);

}
.card-white{
  background:#fff;
  border-radius:var(--radius-8);
  padding:12px 5px;
  text-align:left;
  border:0;
}
.card-white-elevated{
  box-shadow:var(--card-shadow-lg);
  padding:16px;
  max-width:var(--page-max);
  margin:0 auto;
}
.card-dd-elevated{
  box-shadow:var(--card-shadow-lg);
  max-width:var(--page-max);
  margin-top:-160px;
}
.about-group .dhsp-collapsible {
  padding-top: 6px;
  padding-bottom: 6px;
}

/* ===================== 9)Reports page: single main card ===================== */
#dhsp-reports .dhsp-reports-card{ display:block; }
#dhsp-reports .dhsp-category-selection{ margin-top:14px; }
#dhsp-reports .dhsp-reports-results{
  padding:0 8px;
  margin-left:0;
  margin-right:0;
}
#CatText h3,
#CatText .h3{
  margin: .5rem 0 0; /* adjust to taste */
}
/* ===================== 10) Category: Selection ===================== */
.dhsp-category-selection{
  width:100%;
  display:block;
}
.dhsp-category-selection > label{
  display:block;
  margin-bottom:6px;
}
.dhsp-category-selection .dhsp-dropdown{ width:100%; }
.dhsp-category-selection .dhsp-dropdown__select{ width:100%; }

/* ===================== 11) Report: Mail & Fax card ===================== */
.report-contact-table{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  max-width:500px;
  width:100%;
  border:var(--border);
  border-radius:var(--radius-8);
  padding:.6em .5em;
  box-shadow:0 2px 6px rgba(0,0,0,0.05);
  background:#fff;
  box-sizing:border-box;
}
.report-column{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  text-align:left;
}
.report-column.left{
  flex:1 1 80%;
  align-items:flex-start;
  text-align:left;
  word-break:keep-all;
  white-space:normal;
  min-width:320px;
}
.report-column.right{
  flex:0 0 20%;
  align-items:flex-start;
  text-align:left;
  min-width:150px;
}
.report-column > :is(strong,a){
  display:block;
  color:var(--accent-blue);
  font-size:1rem;
  font-weight:700;
  text-decoration:underline;
  margin:0 0 .25em 0;
}
.report-column.left > :is(strong,a){
  width:100%;
  text-align:center;
}
.report-column.right > :is(strong,a){
  width:100%;
  text-align:left;
  margin-bottom:.25em;
}
.report-column span{
  display:block;
  line-height:1.4;
  color:#000;
  margin-left:0;
  white-space:nowrap;
}
@media (min-width:760px){
  .report-contact-table{ flex-wrap:nowrap; }
}
@media (max-width:640px){
  .report-contact-table{
    flex-direction:column;
    gap:.75rem;
    max-width:100%;
    padding:1em;
  }
  .report-column{
    flex:1 1 100%;
    min-width:100%;
    align-items:flex-start !important;
    text-align:left !important;
  }
  .report-column span{ white-space:normal; }
}
address{ font-style:normal; }

/* ===================== 12) Reporting Assistance table ===================== */
.contact-table{
  width:100%;
  max-width:400px;
  border:1px solid #ccc;
  border-radius:var(--radius-8);
  border-collapse:separate;
  border-spacing:0;
  margin-top:5rem;
  overflow:hidden;
}
.contact-table caption{
  text-align:left;
  font-weight:600;
  padding:.45rem .5rem;
  background:#f8fafc;
  border-bottom:1px solid #ccc;
  margin:0;
}
.contact-table td{
  padding:.4rem .5rem;
  vertical-align:middle;
  border:0;
}
.contact-table td + td{
  border-left:1px solid #ccc;
  white-space:nowrap;
}
.contact-table a{
  text-decoration:none;
  border-bottom:1px dotted currentColor;
}
.contact-table a:hover{ text-decoration:underline; }

/* ===================== 13) Training Grid ===================== */
.reg-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  align-items:start;

  max-width:700px;
  margin:16px auto 0;     /* ✅ centers the grid block */
  justify-items:center;   /* ✅ centers the cards inside columns */
}

.reg-card{
  width:100%;
  max-width:320px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.reg-title{ margin: 0.50em; width:100%; text-align: center; }
.reg-title a{display:inline-block; text-align: center; }
.reg-title a:hover,
.reg-title a:focus-visible{ text-decoration:underline; }

.reg-qr img{
  display:block;
  margin:0 auto;
  max-width:220px;
  width:auto;   
  height:auto;
  background: #F5F5F5;
  border-radius: 14px;
  box-shadow: var(--card-shadow-lg);
  outline:2px solid var(--nav-blue);

}
.reg-qr {
  display:block;
  width:100%;
  text-align:center;
}

.reg-grid > h3{
  grid-column: 1 / -1;
  text-align: center; /* optional */
}

.steps{ margin: 8px 0 0; padding-left: 1.2rem; }
.steps li{ margin: 6px 0; }

/* ===================== 13a) Calendar Embed ===================== */
.calendar-actions{
  margin: 0 0 10px;
  display: flex;
  justify-content: flex-end;
  background: rgba(229,239,255,0.5);
}
.calendar-open{
  display: inline-block;
  padding: .55rem .8rem;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 700;
  background: #F5F5F5;
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.calendar-shell{
  margin-top: 12px;
  background: #F5F5F5;
  border-radius: 14px;
  box-shadow: var(--card-shadow-lg);
  overflow: hidden;}
@supports (overflow: clip){
  .calendar-shell{ overflow:clip; }
}
.calendar-shell iframe{
  width: 100%;
  height: clamp(420px, 75vh, 900px);
  min-height: 420px;
  border: 0;
  display: block;
  border-radius: 0;
}
@media (max-width: 900px){
  .calendar-shell iframe{
    height: 80vh;
    min-height: 520px;
  }
}

/* ===================== 14) Subtitle link bullets ===================== */
.subtitle{
  font-weight:700;
  font-size:.6rem;
  margin-top:12px;
}
.subtitle-bullet{
  margin-top:6px;
  margin-left:3px;
}

/* Make the bullet row behave like normal text flow (not flex) */
.subtitle-linkbullet{
  position:relative;
  display:block; /* was flex */
  width:100%;
  margin-bottom:.35em;
  line-height:1.4;
  pointer-events:none;

  /* room for the icon */
  padding-left: calc(14px + .5em);
}

/* icon sits to the left and does NOT affect line wrapping */
.subtitle-linkbullet::before{
  content:"";
  position:absolute;
  left:0;
  top:.30em;
  width:14px;
  height:14px;
  background:url("open-link-blue.svg") no-repeat center;
  background-size:contain;
}

/* video variant uses same positioning, just swaps art */
.subtitle-linkbullet--video::before{
  background:url("video-arrow.svg") no-repeat center;
  background-size:contain;
  transform: scale(1.2);
}

/* Link becomes normal inline text, so it wraps naturally */
.subtitle-linkbullet a{
  display:inline;
  white-space:normal;
  overflow-wrap:break-word;
  pointer-events:auto;
}

.subtitle-linkbullet a:hover{ text-decoration:underline; }

.subtitle-linkbullet:hover::before{
  transition:transform .2s ease;
  transform:translateX(3px);
}

.subtitle-linkbullet a:focus{ outline:none; }
.subtitle-linkbullet a:focus-visible{
  outline:4px solid var(--accent-orange);
  outline-offset:3px;
  border-radius:6px;
  box-shadow:0 0 0 3px rgba(255,255,255,.9);
  text-decoration:underline;
}
.subtitle-linkbullet a:focus:not(:focus-visible){
  outline:none;
  box-shadow:none;
}

/* Note is inline so it appears after the last word on each line */
.subtitle-linkbullet .link-note,
.subtitle-linkbullet .note,
.note{
  display:inline;
  font-size:.85em;
  font-style:italic;
  color:#666666;
  white-space:normal;
  overflow-wrap:anywhere;
}

/* ensure a space before the note text */
.subtitle-linkbullet .link-note::before,
.subtitle-linkbullet .note::before,
.note::before{
  content:"\00a0";
}

@media (max-width:640px){
  .subtitle-linkbullet{
    margin-bottom:.25em;
    font-size:.95em;
  }
}
/* ===================== 15) Footer ===================== */
#footer{
  width:100%;
  border-radius: 8px;
  font-size:.75rem;
  background:#fff;
  line-height:1.4;
  padding:0;
  position:relative;
  z-index:10;
}

#footer > .container{
  width:100%;
  max-width: var(--page-max);
  padding: 20px var(--gutter-desktop) 2em;
}

#footer .links-wrap{
  position:relative;
  z-index:20;
}

#footer .links-list{
  list-style:none;
  display:flex;
  flex-wrap:wrap;              /* allow wrap always */
  justify-content:center;
  align-items:center;
  margin:2px 0 0;
  padding:0;
  column-gap:12px;             /* spacing that works when wrapping */
  row-gap:4px;
}

#footer .links-list > li{
  position:relative;
  display:flex;
  align-items:center;
}

/* Links/buttons */
#footer .links-list > li > a,
#footer .links-list > li > button{
  font-size:var(--small-text);
  padding:6px;
  border-radius:6px;
  white-space:normal;          /* allow wrapping */
  text-align:center;
  background:none;
  border:0;
  cursor:pointer;
  color:var(--text);
  transition:background .15s,color .15s;
  -webkit-tap-highlight-color:transparent;
}

#footer .links-list > li > a:hover,
#footer .links-list > li > button:hover{
  background:#f7faff;
  color:var(--nav-blue);
}

#footer .links-list > li > a:focus-visible,
#footer .links-list > li > button:focus-visible{
  outline:2px solid var(--nav-blue);
  outline-offset:1px;
  border-radius:6px;
}

/* Menu wrapper */
#footer .menu{ position:relative; }

/* Dropdown panel */
#footer .menu [role="menu"]{
  position:absolute;
  top:calc(100% + 4px);
  margin-top:-6px;

  left:50%;
  transform:translateX(-50%);

  list-style:none;
  padding:6px 4px 6px;

  inline-size:max-content;
  min-inline-size:6rem;

  /* keep menus inside the viewport */
  max-width:90vw;
  overflow-wrap:anywhere;

  background:#fff;
  border:1px solid #ccc;
  border-radius:var(--radius-8);
  box-shadow:var(--shadow);

  display:none;
  z-index:10;
}

#footer .menu.open [role="menu"]{ display:block; }

/* Click buffer above menu so pointer doesn't "fall off" */
#footer .menu [role="menu"]::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-8px;
  height:8px;
}

/* Register row */
.register-row{
  display:flex;
  justify-content:center;
  align-items:center;
  padding:.5em 0;
}
.register-row a{
  font-weight:600;
  text-decoration:underline;
}

/* Desktop menu positioning tweaks */
@media (min-width:901px){
  #footer .menu-home [role="menu"]{
    left:0;
    transform:none;
  }
  #footer .menu-privacy [role="menu"]{
    left:10% !important;
    right:0;
    transform:none;
    width:90% !important;
  }
  #footer .menu-employee [role="menu"]{
    left:auto !important;
    transform:none;
  }

  /* IMPORTANT: remove separators on desktop when wrapping */
  #footer .links-list > li + li::before{
    content:none !important;
  }
}

/* Large font sizes: ensure wrapping and no separators */
html[data-fs="large"] #footer .links-list,
html[data-fs="largest"] #footer .links-list{
  flex-wrap:wrap !important;
  justify-content:center;
}

html[data-fs="large"] #footer .links-list > li > a,
html[data-fs="large"] #footer .links-list > li > button,
html[data-fs="largest"] #footer .links-list > li > a,
html[data-fs="largest"] #footer .links-list > li > button{
  white-space:normal !important;
}

html[data-fs="large"] #footer .links-list > li + li::before,
html[data-fs="largest"] #footer .links-list > li + li::before{
  content:none !important;
}

/* Mobile: bigger tap targets + full-width menus */
@media (max-width:680px){
  #footer .links-list > li > button,
  #footer .links-list > li > a{
    padding:12px;
  }

  #footer .menu [role="menu"]{
    inline-size:auto;
    max-width:92vw;
  }

  #footer .menu [role="menuitem"]{
    white-space:normal;
  }

  #footer .menu-home [role="menu"],
  #footer .menu-privacy [role="menu"],
  #footer .menu-employee [role="menu"]{
    left:0 !important;
    right:0;
    transform:none;
    width:90% !important;
  }
}

/* Menu items */
#footer .menu [role="menuitem"]{
  display:flex;
  align-items:center;
  min-height:32px;
  line-height:1.3;
  padding:4px 5px;
  font-size:.75rem;
  text-decoration:underline;
  color:var(--text);
  border-radius:6px;
  white-space:nowrap; /* desktop can stay single-line; mobile overrides */
}

#footer .menu [role="menuitem"]:hover,
#footer .menu [role="menuitem"]:focus-visible{
  background:#f7faff;
  color:var(--nav-blue);
}

#footer .menu [role="menuitem"]:focus{ outline:none; }
#footer .menu [role="none"]{ border-bottom:1px solid #eee; }
#footer .menu [role="none"]:last-child{ border-bottom:none; }

/* Bottom row */
#footer .bottom-row{
  position:relative;
  z-index:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:0;
  padding-top:1em;
}

#footer .bottom-row .disclaimer{
  flex:1;
  font-size:.75rem;
  line-height:1.4;
  max-width:850px;
}

#footer .bottom-row .seal img{
  max-width:400px;
  height:auto;
}

/* Stack bottom row earlier (prevents tablet squish) */
@media (max-width:900px){
  #footer .bottom-row{
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:.5em;
  }
  #footer .bottom-row .seal{ margin-top:.5em; }
}

/* Container padding on narrow screens */
@media (max-width:640px){
  #footer{ padding-left:0; padding-right:0; }
  #footer > .container{
    padding-left: var(--gutter-mobile);
    padding-right: var(--gutter-mobile);
  }
}

/* ===================== 16) Google Translate ===================== */
.goog-tooltip,
.goog-tooltip:hover{
  display:none !important;
}
.goog-text-highlight{
  background-color:transparent !important;
  border:none !important;
  box-shadow:none !important;
}
#google_translate_wrapper{
  width:111px;
  position:relative;
}
#google_translate_wrapper h3{
  color:#4881c2;
  font-size:1.2em;
  margin-bottom:10px;
}
#google_translate_wrapper #google_translate_element{
  text-align:left;
}
#google_translate_wrapper #google_translate_element select{
  width:100%;
  padding:5px;
}
.opentranslate{
  display:none;
  z-index:2000;
  position:absolute;
  left:0;
  top:0;
  background:#fff;
  padding:0 10px 10px;
  font-weight:700;
  border:1px solid #000;
  width:200px;
}
.translateBtn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  text-decoration:none;
  color:var(--brand-blue);
  font-weight:700;
  font-size:.95rem;
  vertical-align:middle;
}
.translateBtn img{
  display:inline-block;
  vertical-align:middle;
}
.hidden{
  display:none !important;
}
