/*.timelapsewrapper {
    position: relative;
    width: 100%;
}
    */

.annual-report-video-feature{
            font-size: 1.125rem;
            box-sizing: border-box;
            position: relative;

}
.video{  
    font-size: 1.125rem;
    box-sizing: border-box;
    position: relative;
    background-color: #122743;}

.video::before {


    content: "";
    position: absolute;
    z-index: 1;
    left: 0;
    top: 0;
    width: 100%;
    height: 25%;
    background: linear-gradient(to bottom, #183257 2%, transparent);
}

.vid{  
    font-size: 1.125rem;
    box-sizing: border-box;
    position: relative;
    background-color: #122743;}



.vid::before {
   content: "";
    position: absolute;
    z-index: 1;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 25%;
    background: linear-gradient(to top, rgba(24, 50, 87, 1), rgba(24, 50, 87, 0) );
}

.aftervid{
    min-height:400px;
}




     .timelapsecontainer {

            font-size: 1.125rem;
            box-sizing: border-box;
            --bs-gutter-x: 20px;
            --bs-gutter-y: 0;
            width: 100%;
            margin-right: auto;
            margin-left: auto;
            max-width: 1240px;
            padding-left: 10px;
            padding-right: 10px;
            position: absolute;
            z-index: 2;
            left: 50%;
            top: 0;
            translate: none;
            rotate: none;
            scale: none;
            transform: translate(-50%, 0%);
            opacity: 1;
        }


        .fluid-width-video-wrapper-timelapse {

            font-size: 1.125rem;
            box-sizing: border-box;
            opacity: 1 !important;
            width: 100%;
            position: relative;
            padding: 0;
            padding-top: 56.25%;
        }










/* header video */

  .justify-content-center {


            font-size: 1.125rem;
            color: #fff;
            box-sizing: border-box;
            text-align: center !important;
            --bs-gutter-x: 20px;
            --bs-gutter-y: 0;
            display: flex;
            flex-wrap: wrap;
            margin-top: calc(-1 * var(--bs-gutter-y));
            margin-right: calc(-.5 * var(--bs-gutter-x));
            margin-left: calc(-.5 * var(--bs-gutter-x));
            justify-content: center !important;
        }

.top {


            font-size: 1.125rem;
            color: #fff;
            box-sizing: border-box;
            vertical-align: middle;
            max-width: 100%;
            position: absolute;
            left: 0;
            bottom: 100%;
            width: 100%;
            height: auto;
            transform: translateY(2px);
        }

.bottom {


            font-size: 1.125rem;
            color: #fff;
            box-sizing: border-box;
            vertical-align: middle;
            max-width: 100%;
            position: absolute;
            left: 0;
            top: 100%;
            width: 100%;
            height: auto;
            transform: translateY(-2px);
        }

        .container {


            font-size: 1.125rem;
            color: #fff;
            box-sizing: border-box;
            --bs-gutter-x: 20px;
            --bs-gutter-y: 0;
            width: 100%;
            margin-right: auto;
            margin-left: auto;
            max-width: 1240px;
            padding-left: 10px;
            padding-right: 10px;
            position: relative;
            z-index: 1;
            top: 4vw;
        }

         .lettercontainer {


            font-size: 1.125rem;
            box-sizing: border-box;
            --bs-gutter-x: 20px;
            --bs-gutter-y: 0;
            width: 100%;
            margin-right: auto;
            margin-left: auto;
            max-width: 1240px;
            padding-left: 10px;
            padding-right: 10px;
            padding-bottom: 30px;
            z-index: 1;
            top: 4vw;
        }

        .content {


            font-size: 1.125rem;
            box-sizing: border-box;
            position: relative;
            z-index: 1;
            background-color: #183257;
            color: #fff;
            margin-bottom: calc(12.5vw + 100px);
            padding: 0;
        }

        iframe {


            font-size: 1.125rem;
            box-sizing: border-box;
            border: 0;
            top: 0;
            height: 100%;
            position: absolute;
            left: 0;
            transform: none;
            width: 100%;
        }

        .fluid-width-video-wrapper {


            font-size: 1.125rem;
            box-sizing: border-box;
            opacity: 1 !important;
            padding: 0;
            left: -1px;
            max-width: none;
            width: calc(100% + 2px);
            height: calc(100% + 2px);
            object-fit: cover;
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            padding-top: 56.25%;
        }



        .aspect-landscape {


            font-size: 1.125rem;
            box-sizing: border-box;
            position: relative;
            display: block;
            overflow: hidden;
            background-color: #122743;
            padding-top: clamp(30%, 75vh, 50%);
        }

        .page-header-annual-report {


            font-size: 1.125rem;
            box-sizing: border-box;
            position: relative;
            background-color: #183257 !important;
            margin-top: 0;
        }






.grow { 
transition: all .2s ease-in-out; 
}

.grow:hover { 
transform: scale(1.1); 
}

















/*pricing cards*/

.pricing-sec .pricing-cards {
    font-family: Roboto, sans-serif;
    padding-top: 10px;
    text-align: center;
}

.pricing-sec .pricing-cards .pricing-box {
    box-shadow: 1px 1px 25px #e2e2e2;
}

.pricing-sec .pricing-cards .pricing-box .pricing-box-header .header-content {
    position: relative;
    z-index: 11;
}

.pricing-sec .pricing-cards .pricing-box .pricing-box-header {
    padding: 35px 15px;
    background-color: #FFFFFF;
}

.pricing-sec .pricing-cards .pricing-box .pricing-header-overlay {
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
    top: 100%;
    z-index: 1;
    background-color: #a01d29;
    display: block;
    transition: .3s ease;
}

.pricing-sec .pricing-cards .pricing-card:hover .pricing-box .pricing-header-overlay,
.pricing-sec .pricing-cards .pricing-card.active .pricing-box .pricing-header-overlay {
    top: 0;
}

.pricing-sec .pricing-cards .pricing-box .pricing-box-header .pricing-price {
    color: #575757;
    font-size: 48px;
    font-weight: 500;
    display: inline-block;
    /*align-items: center;*/
    margin-bottom: 8px;
    transition: .3s ease;
}

.pricing-sec .pricing-cards .pricing-card:hover .pricing-box .pricing-box-header .pricing-price,
.pricing-sec .pricing-cards .pricing-card:hover .pricing-box .pricing-box-header .sub-text {
    color: #FFFFFF !important;
}

.pricing-sec .pricing-cards .pricing-card.active .pricing-box .pricing-box-header .pricing-price,
.pricing-sec .pricing-cards .pricing-card.active .pricing-box .pricing-box-header .sub-text {
    color: #FFFFFF !important;
}

.pricing-sec .pricing-cards .pricing-box .pricing-box-header i.dollar {
    margin-left: 4px;
    font-size: 18px;
    position: absolute;
    top: 33%;
    display: inline-block;
    transform: translateY(-50%);
    color: #202020;
}

.pricing-sec .pricing-cards .pricing-box:hover .pricing-box-header i.dollar,
.pricing-sec .pricing-cards .pricing-card.active .pricing-box .pricing-box-header i.dollar {
    color: #FFFFFF;
}

.pricing-sec .pricing-cards .pricing-box .pricing-box-header .sub-text {
    color: #595f6f;
    font-size: 18px;
    font-weight: 400;
    transition: .3s ease;
}

.pricing-sec .pricing-cards .pricing-box .pricing-box-detail {
    /*padding: 35px 25px;*/
    background-color: white;
}

.pricing-sec .pricing-cards .pricing-box .pricing-detail-overlay {
    position: absolute;
    bottom: 100%;
    right: 0;
    left: 0;
    top: 0;
    z-index: 1;
    background-color: lightgray;
    display: block;
    transition: .3s ease;
}

.pricing-sec .pricing-card:hover {
    -webkit-transform: scale(1.5);
    /* or some other value */
    transform: scale(1.5);
    z-index: 15;
    transition: .3s ease;
}

.pricing-sec .pricing-cards .pricing-card:hover .pricing-box .pricing-detail-overlay,
.pricing-sec .pricing-cards .pricing-card.active .pricing-box .pricing-detail-overlay {
    bottom: 0;
}

.pricing-sec .pricing-cards .pricing-box .pricing-box-detail ul {
    padding-left: 0;
    position: relative;
    z-index: 11;
}

.pricing-sec .pricing-cards .pricing-box .pricing-box-detail ul li {
    list-style: none;
    font-size: 16px;
    color: #6a6a6a;
    font-weight: 300;
    margin-bottom: 10px;
    transition: .3s ease;
    display: inline-block;
}

.pricing-sec .pricing-cards .pricing-card:hover .pricing-box .pricing-box-detail ul li,
.pricing-sec .pricing-cards .pricing-card.active .pricing-box .pricing-box-detail ul li {
    color: #FFFFFF;
}

.pricing-sec .pricing-cards .pricing-box .pricing-box-detail ul li:last-child {
    margin-bottom: 10;
}



/*pricing cards*/

.pricing-sec .row {
    justify-content: center;
}

.contact-sec .pricing-cards {
    font-family: Roboto, sans-serif;
    padding-top: 100px;
}

.contact-sec .pricing-cards .pricing-box {
    box-shadow: 1px 1px 25px #e2e2e2;
}

.contact-sec .pricing-cards .pricing-box .pricing-box-header .header-content {
    position: relative;
    z-index: 11;
}

.contact-sec .pricing-cards .pricing-box .pricing-box-header {
    padding: 20px 2px;
    background-color: #FFFFFF;
}

.contact-sec .pricing-cards .pricing-box .pricing-header-overlay {
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
    top: 100%;
    z-index: 1;
    background-color: #a01d29;
    display: block;
    transition: .3s ease;
}

.contact-sec .pricing-cards .pricing-card:hover .pricing-box .pricing-header-overlay,
.contact-sec .pricing-cards .pricing-card.active .pricing-box .pricing-header-overlay {
    top: 0;
    padding-right:0;
}

.contact-sec .pricing-cards .pricing-box .pricing-box-header .pricing-price {
    color: #000000;
    font-size: 48px;
    font-weight: 500;
    display: inline-block;
    /*align-items: center;*/
    margin-bottom: 8px;
    transition: .3s ease;
}

.contact-sec .pricing-cards .pricing-card:hover .pricing-box .pricing-box-header .pricing-price,
.contact-sec .pricing-cards .pricing-card:hover .pricing-box .pricing-box-header .sub-text {
    color: #FFFFFF !important;
}

.contact-sec .pricing-cards .pricing-card.active .pricing-box .pricing-box-header .pricing-price,
.contact-sec .pricing-cards .pricing-card.active .pricing-box .pricing-box-header .sub-text {
    color: #FFFFFF !important;
}

.contact-sec .pricing-cards .pricing-box .pricing-box-header i.dollar {
    margin-left: 4px;
    font-size: 18px;
    position: absolute;
    top: 33%;
    display: inline-block;
    transform: translateY(-50%);
    color: #202020;
}

.contact-sec .pricing-cards .pricing-box:hover .pricing-box-header i.dollar,
.contact-sec .pricing-cards .pricing-card.active .pricing-box .pricing-box-header i.dollar {
    color: #FFFFFF;
}

.contact-sec .pricing-cards .pricing-box .pricing-box-header .sub-text {
    color: #000000;
    font-size: 18px;
    font-weight: 400;
    transition: .3s ease;
}

.contact-sec .pricing-cards .pricing-box .pricing-box-detail {
    padding: 35px 25px;
    background-color: white;
}

.contact-sec .pricing-cards .pricing-box .pricing-detail-overlay {
    position: absolute;
    bottom: 100%;
    right: 0;
    left: 0;
    top: 0;
    z-index: 1;
    background-color: darkgray;
    display: block;
    transition: .3s ease;
}

.contact-sec .pricing-cards .pricing-card:hover .pricing-box .pricing-detail-overlay,
.contact-sec .pricing-cards .pricing-card.active .pricing-box .pricing-detail-overlay {
    bottom: 0;
}

.contact-sec .pricing-cards .pricing-box .pricing-box-detail ul {
    padding-left: 0;
    position: relative;
    z-index: 11;
}

.contact-sec .pricing-cards .pricing-box .pricing-box-detail ul li {
    list-style: none;
    font-size: 16px;
    color: #000000;
    font-weight: 300;
    margin-bottom: 10px;
    transition: .3s ease;
    display: inline-block;
}

.contact-sec .pricing-cards .pricing-card:hover .pricing-box .pricing-box-detail ul li,
.contact-sec .pricing-cards .pricing-card.active .pricing-box .pricing-box-detail ul li {
    color: #FFFFFF;
}

.contact-sec .pricing-cards .pricing-box .pricing-box-detail ul li:last-child {
    margin-bottom: 0;
}



/*Pricing section*/
    .pricing-sec .pricing-heading-area .text {
        width: 100%;
    }
    .pricing-sec .pricing-cards {
        /*width: 90%;*/
        margin: 0 auto;
    }
    .pricing-sec .pricing-card {
      padding-right:0;
        /*margin-bottom: 30px;*/
    }





    /* NDPC Map Styles */
.ndpc-map-container {
  font-family: sans-serif;
  background: transparent;
  margin: 0;
  padding: 0;
}

/* US total section */
.ndpc-total-container {
  text-align: center;
  margin: 1rem auto;
  max-width: 600px;
}

.ndpc-total-heading {
  font-size: 1.5rem;
  margin: 0 0 0.5rem 0;
  color: #003366;
}

.ndpc-total-value {
  font-size: 2.25rem;
  font-weight: bold;
  color: #FF9800;
  margin: 0;
}

.ndpc-total-subtitle {
  font-size: 0.9rem;
  font-style: italic;
  color: #666;
  margin: 0.25rem 0 0 0;
}

/* State selector dropdown */
.ndpc-state-select { 
  width: 90%; 
  max-width: 300px; 
  margin: 1rem auto; 
  display: block; 
  padding: .5rem; 
  font-size: 1rem; 
  border: 1px solid #ccc;
  border-radius: 4px;
}

/* Map legend */
.ndpc-legend { 
  display: flex; 
  justify-content: center; 
  flex-wrap: wrap; 
  gap: 1rem; 
  margin: 0 1rem 1rem; 
  font-size: .9rem; 
  color: #000000; 
}
.ndpc-legend-item { 
  display: flex; 
  align-items: center; 
}
.ndpc-legend-color { 
  width: 16px; 
  height: 16px; 
  margin-right: 6px; 
  border: 1px solid #aaa; 
  display: inline-block; 
}

/* Map container */
.ndpc-map {
  width: 100%;
  aspect-ratio: 1000 / 589;
  max-height: 80vh;
  margin: 0 auto;
  touch-action: pan-y; /* Allow vertical scrolling by default */
  position: relative;
}

/* SVG map styling */
.ndpc-map svg { 
  width: 100%; 
  height: 100%; 
  touch-action: pinch-zoom;
  display: block; 
}
.ndpc-state-group { 
  transform-box: fill-box; 
  transform-origin: center; 
  transition: transform .3s, filter .3s; 
  cursor: pointer; 
  outline: none; 
}
.ndpc-state-group:hover .ndpc-state, 
.ndpc-state-group:focus-within .ndpc-state { 
  stroke: #000; 
  stroke-width: 1.5; 
}
.ndpc-state-group:hover, 
.ndpc-state-group:focus-within { 
  transform: scale(1.05); 
  filter: brightness(1.1) drop-shadow(0 0 3px rgba(0,0,0,0.3));
}
.ndpc-state-group:focus-within { 
  outline: 2px solid #003366; 
}
.ndpc-state { 
  stroke: #444; 
  stroke-width: 1; 
  fill: none; 
  transition: fill .2s; 
}
.ndpc-state-label { 
  font-family: sans-serif; 
  font-size: 10px; 
  font-weight: bold;
  fill: #000000; 
  stroke: none;
  text-shadow: white 1px 0 15px;
  text-anchor: middle; 
  dominant-baseline: central; 
  pointer-events: none; 
}


/* Custom Map Controls */
.ndpc-map-controls {
  position: absolute;
  bottom: 15px;
  right: 15px;
  display: flex;
  flex-direction: row;
  gap: 8px;
  z-index: 100;
  background-color: rgba(255, 255, 255, 0.9);
  padding: 8px;
  border-radius: 6px;
}

.ndpc-control-btn {
  font-family: sans-serif;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.1);
  color: #003366;
  font-size: 20px;
  font-weight: bold;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  line-height: 1;
}

.ndpc-reset-btn {
  font-size: 18px;
}



.ndpc-zoom-toggle.active {
  background-color: #fff;
  color: #FF9800;
  border-color: #003366;
}


/* Style for the toggle button for scrolling */
.ndpc-zoom-toggle {
  position: absolute;
  bottom: 15px;
  left: 15px;
  z-index: 100;
  font-family: sans-serif;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.1);
  color: #003366;
  padding: 6px 10px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
  font-weight: normal;
  line-height: 1.2;
  white-space: nowrap;
  text-align: center;
}

.ndpc-zoom-toggle:hover {
  background-color: #f5f5f5;
  color:#003366;
}

.ndpc-zoom-toggle:focus {
  outline: 2px solid #003366;
  outline-offset: 2px;
}


/* State details hint */
.ndpc-state-hint {
  position: absolute;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #fff;
  border-radius: 4px;
  padding: 6px 10px;
  font-size: 12px;
  font-family: sans-serif;
  color: #003366;
  pointer-events: none;
  z-index: 10;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.ndpc-map:hover .ndpc-state-hint {
  opacity: 0.9;
}


/* Zoom indicator for when zoom is enabled */
.zoom-indicator {
  position: absolute;
  top: 10px;
  right: 10px;
  background-color: rgba(255, 152, 0, 0.8);
  color: white;
  padding: 5px 10px;
  border-radius: 4px;
  font-size: 12px;
  pointer-events: none;
  z-index: 100;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

/* Style for when zoom is active */
.ndpc-map.zoom-active {
  border: 2px solid #FF9800;
}

/* Modal dialog */
.ndpc-modal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  box-sizing: border-box;
  z-index: 9999;
  background: rgba(0,0,0,0.5);
}

.ndpc-modal.active { 
  display: flex; 
}
.ndpc-modal-content { 
  background: #fff; 
  border-radius: .5rem; 
  max-width: 600px; 
  width: 100%; 
  max-height: 90vh; 
  overflow: auto; 
  box-shadow: 0 4px 15px rgba(0,0,0,0.3); 
  position: relative; 
  padding: 1.5rem; 
}
.ndpc-modal-close { 
  position: absolute; 
  top: .5rem; 
  right: .5rem; 
  background: none; 
  border: none; 
  font-size: 1.5rem; 
  cursor: pointer; 
  line-height: 1;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 4px;
  color: #000 !important;
}
.ndpc-modal-close:hover {
  background-color: rgba(0,0,0,0.05);
}
.ndpc-modal-intro { 
  text-align: center; 
  margin-bottom: 1rem; 
}
.ndpc-modal-intro h2 { 
  margin: 0; 
  font-size: 1.5rem; 
  color: #003366; 
}
.ndpc-modal-intro p { 
  margin: .25rem 0; 
  font-style: italic; 
  color: #003366; 
}

/* Table styling for NDPC data */
.ndpc-table { 
  width: 100%; 
  border-collapse: collapse; 
  margin-top: 1rem; 
  font-size: 0.9rem;
}
.ndpc-table thead th { 
  background: #003366; 
  color: #fff; 
  padding: .75rem; 
  border: 1px solid #fff; 
  text-align: right; 
  font-weight: bold;
}
.ndpc-table thead th:first-child { 
  text-align: left; 
}
.ndpc-table tbody tr:nth-child(odd) { 
  background: #f2f2f2; 
}
.ndpc-table tbody tr:nth-child(even) { 
  background: #fff; 
}
.ndpc-table tbody td { 
  padding: .75rem; 
  border: 1px solid #ddd; 
  vertical-align: top; 
}
.ndpc-table tbody td:nth-child(2), 
.ndpc-table tbody td:nth-child(3) { 
  text-align: right; 
}
.ndpc-table .total-row td { 
  background: #ddd; 
  font-weight: bold; 
}

/* Prevent Firefox from scrolling entire page when using mousewheel in map */
.ndpc-map {
  scrollbar-width: none; /* Firefox */
}

.ndpc-map::-webkit-scrollbar {
  width: 0;
  height: 0;
}




/* Special style to force wheel events to be captured properly */
.ndpc-map.zoom-active svg {
  pointer-events: auto !important; 
}

/* Responsive Adjustments */
@media (max-width: 768px) {
  .ndpc-total-container {
    margin: 0.75rem auto;
  }
  .ndpc-total-heading {
    font-size: 1.25rem;
  }
  .ndpc-total-value {
    font-size: 1.75rem;
  }
  .ndpc-map {
    max-height: 50vh;
  }
  .ndpc-state-label { 
    font-size: 8px; 
  }
  .ndpc-modal-content { 
    padding: 1rem; 
    max-width: 90vw; 
    max-height: 80vh; 
  }
  .ndpc-modal-intro h2 { 
    font-size: 1.25rem; 
  }
  .ndpc-modal-intro p { 
    font-size: .9rem; 
  }
  .ndpc-state-select { 
    font-size: .9rem; 
  }
  .svg-pan-zoom-control-group {
    margin: 8px;
  }
  .ndpc-zoom-toggle {
    font-size: 10px;
    padding: 4px 8px;
  }
  .zoom-indicator {
    font-size: 10px;
    padding: 3px 8px;
  }
  .ndpc-modal-close { 
    top: .5rem; 
    right: .5rem; 
    font-size: 1.25rem;
    z-index: 10; /* Ensure button is above other content */
    background: rgba(255,255,255,0.7); /* Semi-transparent background */
  }
  
  .ndpc-modal-intro {
    padding-top: 1.5rem; /* Add more padding at the top to avoid overlapping with close button */
    margin-top: 0.5rem;
  }
  .aftervid{
    min-height:400px;
  }
  .portfolio-sec
  {
    min-height: 2500px
  }
}
@media (max-width: 480px) {
  .ndpc-total-heading {
    font-size: 1.1rem;
  }
  .ndpc-total-value {
    font-size: 1.5rem;
  }
  .ndpc-total-subtitle {
    font-size: 0.8rem;
  }
  .ndpc-legend { 
    font-size: .8rem; 
    gap: .5rem; 
  }
  .ndpc-legend-color { 
    width: 12px; 
    height: 12px; 
  }
  .ndpc-state-select { 
    width: 95%; 
  }
  .ndpc-modal-content { 
    padding: .75rem; 
  }
  .aftervid{
    min-height:500px;
  }
  .portfolio-sec
  {
    min-height: 3000px
  }


  /* Smaller controls on mobile */
  .svg-pan-zoom-control {
    padding: 3px;
  }
  .svg-pan-zoom-control-group {
    margin: 6px;
  }
  .ndpc-modal-close { 
    top: .3rem; 
    right: .3rem; 
    font-size: 1.2rem;
  }
  
  .ndpc-modal-intro {
    padding-top: 2rem; /* More padding on very small screens */
  }


}