$media-location-url:'/media/userfiles/subsite_57/images/layout-2026/groton2026/';:root{--body-font-family:'Poppins', sans-serif;--body-text-size:1rem;--h1-size:2.25rem;--eg-larger-text-size:1.375rem;--banner-text-size:1.25rem;--prose-h2-size:2rem;--prose-h3-size:1.75rem;--prose-h4-size:1.5rem;--prose-h5-size:1.25rem;--prose-h6-size:1.125rem;--main-text-size:1.125rem;--featured-mod-h2-size:3.25rem;--b-weight:bold;--ff-fa:'Font Awesome 7 Pro', sans-serif;--ff-fa-brands:'Font Awesome 7 Brands', sans-serif;--ff-fa-regular:'Font Awesome 7 Regular', sans-serif;--ff-fa-solid:'Font Awesome 7 Solid', sans-serif;--body-text-color:#000;--primary-color:#1a335f;--secondary-color:#91479b;--light-color:#fff;--contrast-color:#91479b;--accent-color:#f07622;--gc-base-color:#1a335f;--blue-base-color:var(--primary-color);--bg-color:#ebeae8;--bg-hover-color:#b0b1b1;--gray-100-color:#ebeae8;--gray-200-color:#b0b1b1;--blue-100-color:#115091;--blue-200-color:#1a335f;--orange-100-color:#f28941;--orange-200-color:#f07622;--purple-100-color:#91479b;--yellow-100-color:#f3ef71;--a-color:#15284b;--a-hover-color:#0a1323;--a-rgb-color:rgb(21,40,75);--a-hover-rgba-color:rgba(21,40,75, .9);--a-visited-color:#0f1d37;--a-active-color:#04080f;--a-color-light:#fff;--a-hover-color-light:#efefef;--a-active-color-light:#e5e5e5;--a-visited-color-light:#f9f9f9;--duration:0.4s;--container-fluid-padding-inline:2.625rem;--scale:scale(1.05);--logo-width:170px;--logo-height:92px;--white-arrow-up-bg:url('../../../../../releases/102/public/#{$media-location-url}arrow_up-white.svg');
  --white-arrow-right-bg: url('../../../../../releases/102/public/#{$media-location-url}arrow_right-white.svg');
  --white-arrow-down-bg: url('../../../../../releases/102/public/#{$media-location-url}arrow_down-white.svg');
  --white-arrow-left-bg: url('../../../../../releases/102/public/#{$media-location-url}arrow_left-white.svg');
  --blue-arrow-left-bg: url('../../../../../releases/102/public/#{$media-location-url}arrow_left-blue.svg');
  --blue-arrow-right-bg: url('../../../../../releases/102/public/#{$media-location-url}arrow_right-blue.svg');
  --white-swoosh-bg: url('../../../../../releases/102/public/#{$media-location-url}swoosh-white.svg');
  --blue-swoosh-bg: url('../../../../../releases/102/public/#{$media-location-url}swoosh-blue.svg');
  --flickity-prev-bg: url('../../../../../releases/102/public/#{$media-location-url}arrow_left-blue.svg');
  --flickity-next-bg: url('../../../../../releases/102/public/#{$media-location-url}arrow_right-blue.svg');







  --footer-bg-color: var(--bg-color);


  --pagination-a-color: var(--a-color);
  --pagination-a-hover-color: #fff;
  --pagination-default-bg-color: #fff;
  --pagination-default-bg-border-color: var(--a-color);
  --pagination-default-a-color: var(--a-color);
  --pagination-active-bg-color: var(--a-color);
  --pagination-active-hover-bg-color: #fff;
  --pagination-active-a-color: #fff;
  --pagination-active-hover-a-color: #337ab7;
  --pagination-text-transform: normal;


  --container-max-width: 100%;

  @media (width > 768px) {
    --container-max-width: 720px;
  }

  @media (width > 992px) {
    --container-max-width: 960px;
  }

  @media (width > 1200px) {
    --container-max-width: 1140px;
  }

  @media (width > 1400px) {
    --container-max-width: 1320px;
  }
}





body, html {
  @media print {
    overflow: visible;
  }


  @media (width > 992px) {
    overflow: visible;
  }
}








.tooltip {
  --bs-tooltip-bg: var(--purple-100-color);
}

.prose {
  font-size: 1.125rem;
}








.flickity-carousel {
  width: 100%;
  margin: 0 auto;

  &:not(.flickity-enabled) {
    display: flex;
    overflow: hidden;

    .carousel-cell:nth-child(n + 4) {
      display: none;
    }
  }

  .flickity-viewport[style*=height] .carousel-cell {
    height: inherit;
  }

  .carousel-cell {
    width: 100%;
    margin-bottom: 1.875rem;
  }

  img {
    width: 100%;
    height: auto;
  }

  .flickity-page-dots {
    position: static;
    display: none;

    li {
      width: 16px;
      height: 16px;
      background: transparent;
      border: 1px solid var(--blue-200-color);
      border-radius: 50%;
      opacity: 1;
      transition: background var(--duration), opacity var(--duration);

      &:first-child { margin-left: 0 }
      &:last-child { margin-right: 0 }

      &:hover, &.is-selected {
        background: var(--blue-200-color);
        opacity: 1;
      }
    }
  }

  .flickity-button {
    width: 34px;
    height: 34px;

    &.previous, &.next {
      inset: -90px 38px 0 auto;
    }

    &.previous {
      right: 86px;
      background: var(--flickity-prev-bg);
    }

    &.next {
      background: var(--flickity-next-bg);
    }

    svg {
      display: none;
    }
  }

  @media print {
    .flickity-page-dots {
      display: none;
    }
  }

  @media (width > 610px) {
    .carousel-cell {
      width: 50%;
    }
  }

  @media (width > 992px) {
    .carousel-cell {
      width: 33.3333%;
    }
  }

  @media (width <= 1199.98px) {
    .flickity-page-dots {
      display: block;
      margin: 1.25rem 0 0;
    }
  }
}








.bsc {
  &.life-banners {
    .carousel-inner > .item {
      transition: top .6s;
      will-change: transform;
    }

    .carousel-item-next.carousel-item-left,
    .carousel-item-prev.carousel-item-right {
      transform: translate3d(0, 0, 0);
    }

    .carousel-item-next,
    .active.carousel-item-right {
      transform: translate3d(0, 100%, 0);
    }

    .carousel-item-prev,
    .active.carousel-item-left {
      transform: translate3d(0, -100%, 0);
    }

    .active.carousel-item-start,
    .active.carousel-item-end {
      z-index: 1;
    }

    .carousel-item-next.carousel-item-start,
    .carousel-item-prev.carousel-item-end {
      transform: translate3d(0, 0, 0);
    }

    .active.carousel-item-start, .carousel-item-end {
      transform: translate3d(0, -100%, 0);
    }

    .active.carousel-item-end, .carousel-item-start {
      transform: translate3d(0, 100%, 0);
    }

    .carousel-caption {
      position: absolute;
      inset: auto 0 0;
      display: block;
      padding: 2.5rem 8.3333% 8.125rem;
      color: #fff;
      text-align: center;
      background: rgb(26 51 95 / 86%);
    }

    a {
      &:active, &:focus, &:link, &:visited {
        color: var(--a-color-light);
      }

      &:hover {
        color: var(--a-hover-color-light);
      }
    }

    [class^=carousel-control] {
      right: 42px;
    }

    .carousel-control-prev {
      top: calc(50% - 22px);
    }

    .carousel-control-next {
      top: calc(50% + 22px);
    }

    .carousel-control-next-icon {
      background: var(--white-arrow-down-bg);
      background-size: contain;
    }

    .carousel-control-prev-icon {
      background: var(--white-arrow-up-bg);
      background-size: contain;
    }
  }

  &.bsc-sub {
    position: relative;
    z-index: 1;
    overflow: hidden;
    color: var(--blue-200-color);

    &::after {
      position: absolute;
      inset: auto 0 0;
      z-index: 1;
      display: block;
      width: 102%;
      min-height: 73px;
      aspect-ratio: 20;
      margin-left: -0.625rem;
      pointer-events: none;
      content: '';
      background: var(--white-swoosh-bg) no-repeat;
      background-size: cover;
    }
  }

  h2, .carousel-indicators, .carousel-caption {
    display: none;
  }

  .carousel-control-prev, .carousel-control-next {
    inset: auto 28px 106px auto;
  }

  .carousel-control-prev {
    right: 74px;
  }

  [class^=carousel-control]:not(span) {
    width: 35px;
    height: 35px;
    border-radius: 50%;
    opacity: 1;
  }

  .carousel-control-next-icon {
    background: var(--white-arrow-right-bg);
    background-size: contain;
  }

  .carousel-control-prev-icon {
    background: var(--white-arrow-left-bg);
    background-size: contain;
  }

  .eg-larger-text, h3 {
    margin: 0 0 1rem;
    font-size: 2.25rem;
    font-weight: 800;
    color: #fff;
  }

  @media (width <= 1399.98px) {
    &.life-banners .carousel-caption {
      padding-bottom: 6.25rem;
    }
  }

  @media (width <= 767.98px) {
    &.life-banners {
      .carousel-caption {
        padding: 1rem 3.75rem 3.75rem 1rem;
      }

      [class^=carousel-control] {
        right: 16px;
      }
    }

    .carousel-control-prev, .carousel-control-next {
      inset: auto 28px 30px auto;
    }

    .carousel-control-next {
      right: 16px;
    }

    .carousel-control-prev {
      right: 54px;
    }
  }

  @media (width <= 609.98px) {
    &.life-banners {
      .carousel-caption {
        padding-bottom: 4.5rem;
      }

      p {
        display: none;
      }
    }

    .carousel-item, .eg-pulse.banner {
      height: 360px;
    }

    .eg-pulse.banner, video {
      width: auto;
    }

    &.bsc-sub::after {
      width: auto;
      height: 30px;
      min-height: auto;
      aspect-ratio: auto;
      margin-left: 0;
      background-size: cover;
    }
  }

  @media (width <= 399.98px) {
    &.life-banners h3 {
      font-size: 1.75rem;
    }
  }
}

body {
  &:has(.login-page), &:has(.error-page) {
    .bsc {
      position: relative;
      z-index: 1;
      color: var(--blue-200-color);

      &::after {
        position: absolute;
        inset: auto 0 0;
        z-index: 1;
        display: block;
        width: 100%;
        min-height: 73px;
        aspect-ratio: 20;
        pointer-events: none;
        content: '';
        background: var(--white-swoosh-bg) no-repeat;
        background-size: cover;
      }
    }
  }
}




$wave-offset: 75px;

.fast-facts-basic-grid {
  color: var(--blue-200-color);

  #fast-facts {
    display: flex;
    flex-wrap: wrap;
  }

  .result {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 1.25rem 1.5rem;
    margin: 0 0 0.375rem;
    font-size: 1.75rem;
    font-weight: 900;
    line-height: 1.875rem;
    background: var(--gray-100-color);
    transition: background var(--duration), color var(--duration);

    &:nth-child(1) { border-bottom: 15px solid var(--orange-100-color) }
    &:nth-child(2) { border-bottom: 15px solid var(--purple-100-color) }
    &:nth-child(3) { border-bottom: 15px solid var(--yellow-100-color) }
    &:nth-child(4) { border-bottom: 15px solid var(--blue-200-color) }
  }

  a.result {
    padding-bottom: 3.75rem;

    &:hover {
      background: var(--gray-200-color);
    }

    p {
      &::before, &::after {
        position: absolute;
        inset: auto 0 20px;
        display: inline;
        padding-inline: 1.75rem;
        font-size: 1.125rem;
        line-height: 1.125rem;
        color: var(--blue-200-color);
        text-transform: uppercase;
      }

      &::before {
        font-weight: 900;
        content: 'Learn More';
      }

      &::after {
        left: 126px;
        font-family: var(--ff-fa);
        content: '\f178';
      }
    }
  }

  a {
    &:visited, &:active, &:focus, &:link, &:hover {
      color: var(--blue-200-color);
    }
  }

  img {
    margin: 0 0 1rem;
  }

  p {
    margin: 0;
  }

  @media print {
    .result {
      width: 25%;
    }
  }

  @media (width > 400px) {
    .result {
      width: 50%;
    }
  }

  @media (width > 768px) {
    position: relative;
    top: -$wave-offset;
    z-index: 2;
    margin-bottom: -$wave-offset;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1398 75.23'%3E%3Cpath d='M0,75.23 L0,75.23 L1398,75.23 L1398,0 C1344.7,14.9,1278.85,23.22,1222.49,29.35 C1073.6,45.56,933.76,48.52,785.02,29.22 C671.73,14.53,557.18-11.92,444.17-22.84 C437.83-23.45,397.03-25.11,337.03-25.09 C273.71-24.58,214.65-23.37,152.92-9.05 C128.37-4.58,102.76,1.39,79.03,6.99 C53.08,13.12,28,22,1.94,27.79 L0,75.23 Z'/%3E%3C/svg%3E"), linear-gradient(#000, #000);
    mask-mode: alpha, alpha;
    mask-repeat: no-repeat;
    mask-position: top center, center 70px;
    mask-size: 100% 40%, 100% 100%;
    mask-composite: add;

    .result {
      width: 25%;

      &:not(:last-child)::after {
        position: absolute;
        inset: 0 -4px 0 auto;
        display: block;
        width: 8px;
        height: calc(100% + 30px);
        content: '';
        background: #fff;
      }
    }
  }

  @media (width > 768px) {
    .result {
      padding-top: 4.75rem;
    }
  }

  @media (width > 1400px) {
    mask-position: top center, center 80px;
    mask-size: 100% 42%, 100% 100%;
  }

  @media (width > 2200px) {
    mask-size: 100% 51%, 100% 100%;
  }

  @media (400px < width <= 767.98px) {
    .result:nth-child(odd)::after {
      position: absolute;
      inset: 0 -4px 0 auto;
      display: block;
      width: 12px;
      height: calc(100% + 30px);
      content: '';
      background: #fff;
    }
  }

  @media (width <= 609.98px) {
    .result {
      margin: 0;
    }
  }
}




.home-page .interactive-tools .share-node {
  color: var(--blue-200-color);
  background: #fff;
}

.interactive-tools {
  position: sticky;
  top: 80px;
  z-index: 1;
  display: flex;
  flex-direction: row;
  height: 100%;
  transition: transform var(--duration);

  .share-node {
    display: flex;
    flex-wrap: wrap;
    place-content: center center;
    align-items: center;
    width: 32px;
    height: 32px;
    font-size: 1.75rem;
    color: #fff;
    text-align: center;
    background: var(--blue-200-color);
    border-radius: 50%;
    transition: transform var(--duration), background var(--duration);

    &::before {
      transition: transform var(--duration);
    }

    &:hover::before, &:focus::before {
      transform: scale(1.1);
    }

    &:link {
      display: flex;
      place-content: center center;
      align-items: center;
      text-align: center;
    }
  }

  .tools {
    position: relative;
    margin-right: 0.625rem;
    transition: transform var(--duration), background var(--duration);

    i, a[href='#'] {
      font-size: 1.25rem;

      &::before {
        display: inline-block;
        transition: color var(--duration), transform var(--duration);
      }

      &:hover::before, &:focus::before {
        transform: scale(1.1);
      }
    }

    li {
      margin: 0 0.5rem;

      &:first-child { margin-left: 0 }
      &:last-child { margin-right: 0 }
    }
  }

  .share-node:hover ~ .popout-trigger, .share-node:focus ~ .popout-trigger, .popout-trigger:hover,
  .popout-trigger:focus, .popout-trigger:focus-within {
    pointer-events: all;
    opacity: 1;
  }

  .share-node:hover ~ .share-links, .share-node:focus ~ .share-links, .share-links:hover,
  .share-links:focus, .share-links:focus-within {
    max-width: 270px;
  }

  .popout-trigger {
    position: absolute;
    inset: 100% auto auto 0;
    display: flex;
    max-width: 0;
    height: 30px;
    padding: 1.25rem 0.625rem;
    overflow: hidden;
    line-height: normal;
    color: #fff;
    pointer-events: none;
    background: var(--blue-200-color);
    border-radius: 20px;
    opacity: 0;
    transition: max-width var(--duration), opacity var(--duration);

    i {
      color: #fff;
    }

    a:active, a:link, a:visited {
      color: #fff;
    }
  }

  .search {
    color: #fff;
    background: var(--blue-200-color);

    &:hover > [class^=fa-], &:focus > [class^=fa-] {
      transform: rotate(0deg);
    }

    [class^=fa-] {
      transition: transform var(--duration);
    }
  }

  .translate .share-node {
    cursor: pointer;
  }

  @media (width > 992px) {
    flex-direction: column;
    padding-left: 1rem;

    .tools {
      margin-right: 0;
    }

    .popout-trigger {
      inset: 0 32px auto auto;
    }

    .share-node {
      margin-bottom: 0.5rem;
    }
  }
}




body:has(.gt_black_overlay[style='display:block;']) { /* stylelint-disable-line */
  header, header.shrink, .fast-facts-basic-grid {
    z-index: 1;
  }
}

.home-page .gtranslate_wrapper .gt_switcher-popup::before { /* stylelint-disable-line */
  color: var(--blue-200-color);
}

.gtranslate_wrapper { /* stylelint-disable-line */
  &, .gt_switcher-popup { /* stylelint-disable-line */
    align-content: center;
    align-items: center;
    height: 100%;
  }

  .gt_switcher-popup { /* stylelint-disable-line */
    display: flex;

    span, img {
      display: none;
    }

    &::before {
      display: inline-block;
      font-family: var(--ff-fa);
      font-size: 1rem;
      font-weight: normal;
      color: #fff;
      content: '\f1ab';
    }
  }
}

.gt_container-unisv1 a.glink span { /* stylelint-disable-line */
  font-size: 1rem !important;
}

/** END: component/google-widget **/








section:has(.stat) {
  position: relative;
  padding-block: 1rem 4.375rem;
  font-size: 1.25rem;
  color: #fff;
  text-align: center;
  background: var(--blue-200-color);

  h2, .eg-col-layout {
    max-width: var(--container-max-width);
    margin-inline: auto;
  }

  h2 {
    position: relative;
    padding-bottom: 1.5rem;
    margin-bottom: 3.75rem;
    font-size: 2.5rem;
    font-weight: 100;
    line-height: 2.5rem;
    color: #fff;

    &::after {
      position: absolute;
      inset: auto 0 0;
      width: 33.3333%;
      height: 7px;
      margin: 0 auto;
      pointer-events: none;
      content: '';
      background: var(--orange-100-color);
    }
  }

  .stat {
    margin: 0 0 1.25rem;
  }

  .stat-numbers {
    margin: 0 0 1.625rem;
    font-size: 3.125rem;
    font-weight: 700;
    line-height: 3.125rem;
  }

  a {
    &:link, &:visited, &:active, &:focus {
      color: var(--a-color-light);
    }

    &:hover {
      color: var(--a-hover-color-light);
    }
  }

  @media print {
    .stat {
      width: 25%;
    }
  }

  @media (width <= 767.98px) {
    padding-block: 1rem 2.5rem;
  }
}




.location-map {
  position: relative;
  width: 100%;
  min-width: auto;
  margin: 0;

  &::before {
    position: absolute;
    inset: 0 0 auto;
    display: block;
    width: 100%;
    aspect-ratio: 15;
    pointer-events: none;
    content: '';
    background: var(--blue-swoosh-bg) no-repeat;
    background-size: cover;
  }

  img {
    width: 100%;
  }
}




.news-flickity {
  background: var(--gray-100-color);

  h2 {
    position: relative;
    padding: 0 0 0.625rem 2.5rem;
    margin: 0 0 2.5rem;
    font-size: var(--featured-mod-h2-size);
    font-weight: 200;
    text-transform: uppercase;

    &::after {
      position: absolute;
      inset: auto auto 0 0;
      width: 426px;
      height: 8px;
      content: '';
      background: var(--orange-100-color);
    }
  }

  .view-all-outer {
    position: absolute;
    inset: 0 40px auto auto;
    display: block;
    text-transform: uppercase;
  }

  .featured-news {
    padding-inline: 3.75rem;
    margin: 0 auto 8.125rem;
  }

  .featured-carousel .carousel-cell {
    padding-inline: 0.75rem;
  }

  .featured-result {
    height: inherit;
    background: #fff;
  }

  .caption {
    display: flex;
    flex-wrap: wrap;

    > * {
      order: 2;
      width: 100%;
      padding-inline: 1.875rem;

      &.item-date {
        order: 1;
      }
    }
  }

  .img-container {
    display: inline-block;
    width: 100%;
    margin: 0 0 1.25rem;
  }

  img {
    width: 100%;
  }

  .item-date {
    margin: 0 0 1.25rem;
    font-weight: 800;
  }

  .item-title {
    margin: 0 0 1.875rem;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.75rem;
    color: var(--blue-100-color);
  }

  .read-more a {
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.25rem;
    text-transform: uppercase;
  }

  @media (width <= 1199.98px) {
    .featured-news {
      margin-bottom: 3.75rem;
    }
  }

  @media (width <= 767.98px) {
    h2 {
      padding-left: 1rem;

      &::after {
        width: 402px;
      }
    }

    .featured-news {
      padding-inline: 0;
    }

    .view-all-outer {
      inset: 76px auto auto 16px;
    }
  }

  @media (width <= 609.98px) {
    h2 {
      font-size: 1.875rem;

      &::after {
        width: 240px;
      }
    }

    .view-all-outer {
      top: 54px;
    }

    .caption > * {
      padding-inline: 1rem;
    }
  }
}




.fast-facts-flickity {
  padding: 6.875rem 0 0;
  font-size: 1.125rem;

  h2 {
    position: relative;
    padding: 0 0 0.625rem 2.5rem;
    margin: 0 0 2.5rem;
    font-size: var(--featured-mod-h2-size);
    font-weight: 200;
    text-transform: uppercase;

    &::after {
      position: absolute;
      inset: auto auto 0 0;
      width: 594px;
      height: 8px;
      content: '';
      background: var(--orange-100-color);
    }
  }

  .flickity-carousel .carousel-cell {
    width: 100%;
    margin: 0;
  }

  .cell {
    display: flex;
    flex-wrap: wrap;

    [class*=link] {
      order: 2;
    }
  }

  h3, h4 {
    margin: 0 0 1.25rem;
    font-weight: 700;
    color: var(--body-text-color);
  }

  h3 {
    font-size: 2rem;
  }

  h4 {
    margin-top: 2.5rem;
  }

  @media (width > 992px) {
    [class*=link], .ff-content-container {
      width: 50%;
      padding-inline: 1rem;
    }

    .ff-content-container {
      padding-left: 2.5rem;
    }
  }

  @media (width <= 1199.98px) {
    .cell {
      justify-content: center;
    }

    .ff-content-container {
      padding-inline: 1rem;
    }
  }

  @media (width <= 991.98px) {
    [class*=link] {
      display: block;
      min-height: 340px;
    }
  }

  @media (width <= 767.98px) {
    h2 {
      padding-left: 1rem;
      margin-bottom: 60px;

      &::after {
        width: 570px;
      }
    }

    .flickity-carousel {
      .flickity-button.next, .flickity-button.previous {
        inset: -34px auto 0 16px;
      }

      .flickity-button.next {
        left: 54px;
      }
    }
  }

  @media (width <= 609.98px) {
    h2 {
      font-size: 1.875rem;

      &::after {
        width: 340px;
      }
    }
  }
}




.breadcrumb-container {
  max-width: var(--container-max-width);
  padding: 0 1rem;
  margin: 0 auto;
  text-transform: uppercase;

  .breadcrumb>li+li::before {
    content: ' / ';
  }

  a, .breadcrumb>li+li::before {
    font-weight: 900;
  }
}




section:has(.additional-content) {
  padding-block: 3.125rem 8.125rem;
  background: var(--blue-200-color);

  .row {
    max-width: var(--container-max-width);
    margin: 0 auto;
  }

  &, h2, h3, h4 {
    color: #fff;
  }

  .eg-larger-text {
    margin: 0 0 1.5rem;
  }

  a {
    &:link, &:visited, &:active, &:focus {
      color: var(--a-color-light);
    }

    &:hover {
      color: var(--a-hover-color-light);
    }
  }
}




header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  transition: background var(--duration);

  &.shrink, &:has([aria-expanded=true]) {
    .navbar-collapse {
      background: var(--blue-200-color);
      opacity: 1;
    }

    ul.sitemap-menu li a {
      color: #fff;
    }
  }

  &.shrink {
    background: rgb(255 255 255 / 90%);
    border-bottom: 1px solid var(--blue-200-color);

    &::before {
      opacity: 0;
    }

    .header-logo {
      max-width: calc(var(--logo-width) / 2);
    }

    .logo-container, .menu-container {
      padding-inline: 1rem;
    }
  }

  &:has([aria-expanded=true]) {
    background: rgb(255 255 255 / 90%);
    border-bottom: 0;

    &::after {
      opacity: 0;
    }

    .navbar-collapse {
      border-bottom: 1px solid #fff;
    }

    .navbar-toggler {
      filter: brightness(1.5);
    }
  }

  > * {
    position: relative;
  }

  .logo-container, .menu-container {
    width: auto;
    transition: padding var(--duration);
  }

  .logo-container {
    padding: 1rem 1rem 1rem 2.625rem;
  }

  .menu-container {
    padding: 1rem 2.625rem 1rem 1rem;
  }

  @media print {
    &::before {
      display: none;
    }
  }

  @media (width > 610px) {
    position: fixed;
    inset: 0 0 auto;
    z-index: 3;

    &::before {
      position: absolute;
      inset: 0;
      display: block;
      height: 180px;
      pointer-events: none;
      content: '';
      background: linear-gradient(180deg, #fff, transparent);
      transition: opacity var(--duration);
    }
  }

  @media (width <= 767.98px) {
    align-items: center;

    .logo-container, .menu-container {
      padding: 1rem;
    }
  }
}

.header-logo {
  max-width: var(--logo-width);
  max-height: var(--logo-height);
  transition: transform var(--duration), max-width var(--duration), max-height var(--duration);

  &:hover {
    transform: scale(1.05);
  }
}




footer {
  position: relative;
  z-index: 1;
  overflow: hidden;
  color: var(--blue-200-color);

  &::before {
    position: absolute;
    inset: auto 0 100%;
    display: block;
    width: 100%;
    min-height: 73px;
    aspect-ratio: 20;
    pointer-events: none;
    content: '';
    background: var(--white-swoosh-bg) no-repeat;
    background-size: cover;
  }

  &.container-fluid {
    padding: 3.125rem 0 0;
  }

  &.row {
    width: auto;
  }

  > * {
    order: 4;

    &.top-container, &.logo-container, &.contact-info-container {
      order: 1;
    }

    &.footer-links-container {
      order: 2;
    }

    &.social-links {
      order: 3;
    }
  }

  h2 {
    display: none;
  }

  .logo-container {
    width: 25%;

    img {
      transition: transform var(--duration);

      &:hover {
        transform: var(--scale);
      }
    }
  }

  .top-container {
    position: absolute;
    inset: auto 36px 16px auto;
    display: flex;
    place-content: center center;
    align-items: center;
    width: auto;
    padding: 0;
    text-align: center;
    border: 3px solid #fff;
    border-radius: 50%;
  }

  .social-links {
    width: 25%;

    .title {
      display: none;
    }

    li {
      margin: 0 0.375rem 0.25rem;

      &:first-child { margin-left: 0 }
      &:last-child { margin-right: 0 }
    }

    a {
      display: flex;
      place-content: center center;
      align-items: center;
      width: 36px;
      height: 36px;
      font-size: 1.25rem;
      color: #fff;
      text-align: center;
      background: var(--blue-200-color);
      border-radius: 50%;
      transition: transform var(--duration);

      &:hover {
        transform: scale(1.05);
      }
    }
  }

  .back-to-top {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    font-size: 1.625rem;
    color: #fff;
  }

  @media print {
    &::before {
      display: none;
    }

    .logo-container {
      width: 33.3333%;
      padding: 1rem;
    }

    .contact-info-container {
      width: 66.6667%;
    }
  }

  @media (width > 768px) {
    .contact-info-container {
      padding-left: 1.875rem;
    }

    .contact-info-container, .social-links, .footer-links-container {
      padding-bottom: 3.125rem;
    }
  }

  @media (width > 992px) {
    .logo-container {
      padding: 0 3.125rem 3.125rem 2.25rem;
    }
  }

  @media (width <= 991.98px) {
    .logo-container {
      width: 100%;
      margin: 0 0 1.25rem;
      text-align: center;
    }

    .contact-info-container {
      width: 50%;
    }

    .social-links, .footer-links-container {
      width: 25%;
    }

    .top-container {
      inset: auto 16px 30px auto;
    }
  }

  @media (width <= 767.98px) {
    .contact-info-container, .social-links, .footer-links-container {
      width: 100%;
      margin: 0 0 0.625rem;
      text-align: center;
    }

    .footer-links-container {
      ul {
        justify-content: center;
      }

      li {
        display: inline-block;
        margin-inline: 0.25rem;

        &:first-child { margin-left: 0 }
        &:last-child { margin-right: 0 }
      }
    }

    .social-links ul {
      justify-content: center;
    }
  }

  @media (width <= 609.98px) {
    .top-container {
      inset: auto 45% 10px auto;
    }
  }
}

.contact-info-container {
  width: 33.3333%;

  > span {
    display: block;
    width: 100%;
    margin: 0 0 0.125rem;
  }

  a {
    font-weight: normal;
  }

  .phone, .fax, .email {
    span {
      display: none;
    }
  }
}

.footer-links-container {
  width: 16.6667%;

  @media (width > 992px) {
    li {
      margin: 0 0 0.5rem;
    }
  }
}

.copyright {
  width: 100%;
  padding: 30px 100px 30px 34px;
  color: #fff;
  background: var(--blue-200-color);

  a {
    font-weight: normal;

    &:link, &:visited, &:active, &:focus {
      color: #fff;
    }

    &:hover {
      color: var(--a-hover-color-light);
    }
  }

  @media (width <= 991.98px) {
    padding-inline: 1rem 4.125rem;
  }

  @media (width <= 609.98px) {
    padding: 1rem 1rem 4.75rem;
    text-align: center;
  }
}




.navbar-toggler {
  width: 40px;
  height: 40px;
  background-image: url('data:image/svg+xml;utf8,<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="25" cy="25" r="18" fill="%231D335E"/><circle cx="75" cy="25" r="18" fill="%231D335E"/><circle cx="25" cy="75" r="18" fill="%231D335E"/><circle cx="75" cy="75" r="18" fill="%231D335E"/></svg>');
  background-size: 40px 40px;
  transition: filter var(--duration);

  .icon-bar {
    display: none;
  }

  &:hover {
    filter: brightness(1.5);
  }
}

.navbar-collapse {
  width: 100%;
  opacity: 0;
  transition: background var(--duration), height var(--duration), opacity var(--duration);

  &.show, &.collapsing {
    position: relative;
  }
}

ul.sitemap-menu {
  display: inline-block;
  width: 100%;
  padding: 0;
  margin: 0;
  overflow: hidden;
  list-style: none;
  columns: 300px 3;

  &:first-child {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }


  ul ul {
    columns: auto 1;
  }

  li {
    margin-bottom: 0.875rem;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    break-inside: avoid;

    a {
      display: block;
      padding: 0.625rem;
      font-weight: normal;
      transition: background var(--duration), color var(--duration);

      &:first-child {
        width: 100%;
      }
    }

    ul li {
      padding-left: 6%;
      margin-bottom: 0;

      a {
        font-size: 0.9375rem;
        font-weight: 300;
      }
    }

    ul li ul li {
      padding-left: 5%;

      a {
        font-size: 0.875rem;
      }
    }
  }

  [class*=sub]:not(.sub-1) a {
    font-weight: normal;
  }

  @media (width > 1199.98px) {
    column-count: 4;
  }

  @media (width >= 991px) {
    li li a {
      padding: 0.25rem;
    }
  }

  @media (width <= 767.98px) {
    background: transparent;
    column-count: 1;
    columns: auto auto;
  }
}




body:has(.fast-facts-basic-grid) .page-content {
  display: flex;
  flex-wrap: wrap;
  width: 100%;

  > * {
    position: relative;
    order: 3;
    width: 100%;

    &:not(.home-page) { overflow: hidden }
    &.bsc.main { order: 1 }
    &.fast-facts-basic-grid { order: 2 }
  }
}

main.home-page {
  padding-block: 5rem 7.5rem;
  color: #fff;
  background: var(--blue-200-color);

  .main-content {
    display: flex;
    flex-wrap: wrap;
  }

  h1 {
    width: 100%;
    font-size: 3.25rem;
    font-weight: 300;
    line-height: 3.25rem;
    color: #fff;
    text-transform: uppercase;
  }

  a:not(.glink, .tools) {
    &:link, &:visited, &:active, &:focus {
      color: var(--a-color-light);
    }

    &:hover {
      color: var(--a-hover-color-light);
    }
  }

  @media (width > 992px) {
    .main-content {
      flex-wrap: nowrap;
    }

    h1, #maincontent_wrapper {
      width: 50%;
      padding-inline: 1rem;
    }

    h1 {
      padding-right: 8.3333%;
    }
  }

  @media (width <= 767.98px) {
    padding-block: 2.5rem 3.75rem;
  }

  @media (width <= 609.98px) {
    h1 {
      font-size: 2rem;
      line-height: 2rem;
    }
  }
}




main {
  padding-block: 3.125rem 4.375rem;

  .container-fluid {
    max-width: var(--container-max-width);
    padding: 0 1rem;
    margin: 0 auto;
  }

  h1 {
    margin: 0 0 30px;
  }

  p {
    margin: 0 0 1.875rem;

    &:last-child { margin: 0 }
  }

  @media (width > 992px) {
    .container-fluid:has(.interactive-tools) {
      display: flex;
      flex-wrap: nowrap;
    }
  }
}

.main-content {
  width: 100%;
}



main.sub-page #maincontent_wrapper p.eg-larger-text {
  font-size: var(--eg-larger-text-size);
  line-height: normal;
  color: var(--orange-100-color);
}

.prose {
  h2, h3, h4 {
    margin: 0 0 1rem;
  }

  p:not(.eg-larger-text) {
    margin: 0 0 1.25rem;

    ~ h2, ~ h3, ~ h4 {
      margin-top: 1.875rem;
    }
  }
}




.departments-faq-page .quick-search-container {
  display: none;
}




.directory-page {
  .module-search-form, .fa-star, .contact-info [class^=fa] {
    display: none;
  }
}




.incentives-expandable-page #incentives-expandable.search .form-container {
  display: none;
}




.resource-document-page #eg-resource-document {
  .quick-search-wrapper, .module-search-form {
    display: none;
  }
}

.table {
  table {
    border: 0;

    td, th {
      border: 0;
    }

    tr {
      background: var(--bg-color);
      transition: background .2s;

      @media screen and (min-width:768px) {
        &:hover {
          background: var(--bg-hover-color);
        }
      }
    }

    td {
      padding: .05em .5em;
      background: transparent;
      border-bottom: 1px solid var(--primary-color);
    }

    @media screen and (max-width:767.98px) {
      thead tr {
        display: none;
      }

      tr {
        padding: 0;
      }
    }
  }
}


/* Colored Text Formatting */
.colored-text-primary {
  color: var(--primary-color);
}

.colored-text-secondary {
  color: var(--a-color);
}


/* MODULES */
/* imap site customizations */
#info-window {
  font-family: "Poppins",sans-serif;
}

#info-window .imap-popup-content a:visited,
#info-window .imap-popup-content a {
  color: var(--a-color);
}

#info-window .imap-popup-content a.more-info {
  background: var(--a-color);
  font-weight: bold;
  transition:background .5s;
  color: var(--light-color);
}

#info-window .imap-popup-content a.more-info:hover  {
  background: var(--a-hover-color);
  color:var(--light-color);
}



/* faq styles */
#departments-faq  {
  .departments-group-card .departments-information.show {
    padding: 0 2em 2em;
    max-height: none;
  }
}


/* responsive stripe bd  2 column styles */
.directory-page {
  #directory.landing {
    @media screen and (min-width:1200px) {
      .search-results, .compact-results {
        display: flex;
        flex-flow: row wrap;
      }

      .compact-results .search-result, .search-results .search-result {
        max-width: 48%;
        margin-right: 1%;
      }
    }
  }
}


/* event styles
.event-page .col-md-7, .event-page .col-md-5,
#wrap-page .container #events #event-search-form .col-md-1,
#events.list-view .search-result .date-container,
.event-page #content-main .col-md-5,
.event-page .main-content>.col-md-7 {
    width: 100%;
    max-width:100%;
    flex:0 0 100%;
}

@media screen and (min-width:992px) {
    .event-page #events.details .col-md-7 {
        width: 58.33333333%;
        max-width: 58.33333333%;
        flex: 0 0 58.33333333%;
    }

    .event-page #events.details .col-md-5 {
        width: 41.66666667%;
        max-width:41.66666667%;
        flex: 0 0 41.66666667%;
    }
} */


/* news grid styles */
#news.grid .result img.site-logo-fallback {
  width: 100%;
  background: var(--light-color);
  padding: 2.65rem 5rem;
}


/* responsive re styles */
.intl-address .region,
.intl-address .country {
  display: none;
}


/* bootstrap button styles */
a.btn-default, a.btn-primary, a.btn-success, a.btn-info, a.btn-warning, a.btn-danger, a.btn-link {
  border:0;
  background: var(--blue-base-color);

  &:hover {
    background: var(--a-color);
  }
}

a.btn-default {
  filter: hue-rotate(0deg);
}

a.btn-primary {
  filter: hue-rotate(10deg);
}

a.btn-success {
  filter: hue-rotate(250deg);
}

a.btn-info {
  filter: hue-rotate(30deg);
}

a.btn-warning {
  filter: hue-rotate(200deg);
}

a.btn-danger {
  filter: hue-rotate(150deg);
}

a.btn-link {
  background: var(--a-color);
}

a.btn-block {
  width: 100%;
}


/* general formatting */
figure.image.image-style-align-left, img.image-style-align-left,
figure.image.image-style-align-right, img.image-style-align-right {
  max-width: 50%;
  height: auto;
}

.main-content .embed-responsive.embed-responsive-16by9 {
  margin-bottom: 25px;
}

#wrap-page.sub-page #maincontent_wrapper .hover-div,
#wrap-page.sub-page #maincontent_wrapper .eg-callout-section {
  margin: 1rem;
  padding: 20px;
}

#wrap-page.sub-page #maincontent_wrapper .hover-div a,
#wrap-page.sub-page #maincontent_wrapper .eg-callout-section a {
  word-break:break-word;
}

/* mobile first */
.col-xl-6.hover-div,
.col-xl-4.hover-div,
.col-xl-3.hover-div,
.col-xl-8.hover-div,
.col-xl-9.hover-div,
.col-lg-6.hover-div,
.col-lg-4.hover-div,
.col-lg-3.hover-div,
.col-lg-8.hover-div,
.col-lg-9.hover-div,
.col-md-6.hover-div,
.col-md-4.hover-div,
.col-md-3.hover-div,
.col-md-8.hover-div,
.col-md-9.hover-div,
.col-sm-6.hover-div,
.col-sm-4.hover-div,
.col-sm-3.hover-div,
.col-sm-8.hover-div,
.col-sm-9.hover-div {
  flex: 0 0 90%;
}

/* small - above 480 */
@media screen and (min-width:480px) {
  .col-sm-6.hover-div {
    flex: 0 0 calc(50% - 2rem);
  }

  .col-sm-4.hover-div {
    flex: 0 0 calc(33.33333% - 2rem);
  }

  .col-sm-3.hover-div {
    flex: 0 0 calc(25% - 2rem);
  }

  .col-sm-8.hover-div {
    flex: 0 0 calc(66.66666% - 2rem);
  }

  .col-sm-9.hover-div {
    flex: 0 0 calc(75% - 2rem);
  }
}

/* md - above 768 */
@media screen and (min-width:768px) {
  .col-md-6.hover-div {
    flex: 0 0 calc(50% - 2rem);
  }

  .col-md-4.hover-div {
    flex: 0 0 calc(33.33333% - 2rem);
  }

  .col-md-3.hover-div {
    flex: 0 0 calc(25% - 2rem);
  }

  .col-md-8.hover-div {
    flex: 0 0 calc(66.66666% - 2rem);
  }

  .col-md-9.hover-div {
    flex: 0 0 calc(75% - 2rem);
  }
}

/* lg - above 992 */
@media screen and (min-width:992px) {
  .col-lg-6.hover-div {
    flex: 0 0 calc(50% - 2rem);
  }

  .col-lg-4.hover-div {
    flex: 0 0 calc(33.33333% - 2rem);
  }

  .col-lg-3.hover-div {
    flex: 0 0 calc(25% - 2rem);
  }

  .col-lg-8.hover-div {
    flex: 0 0 calc(66.66666% - 2rem);
  }

  .col-lg-9.hover-div {
    flex: 0 0 calc(75% - 2rem);
  }
}

/* xl - above 1200 */
@media screen and (min-width:1200px) {
  .col-xl-6.hover-div {
    flex: 0 0 calc(50% - 2rem)
  }

  .col-xl-4.hover-div {
    flex: 0 0 calc(33.33333% - 2rem)
  }

  .col-xl-3.hover-div {
    flex: 0 0 calc(25% - 2rem)
  }

  .col-xl-8.hover-div {
    flex: 0 0 calc(66.66666% - 2rem)
  }

  .col-xl-9.hover-div {
    flex: 0 0 calc(75% - 2rem)
  }
}

/* mobile first */
.col-xl-6.eg-callout-section,
.col-xl-5.eg-callout-section,
.col-xl-4.eg-callout-section,
.col-xl-3.eg-callout-section,
.col-xl-8.eg-callout-section,
.col-xl-9.eg-callout-section,
.col-lg-6.eg-callout-section,
.col-lg-5.eg-callout-section,
.col-lg-4.eg-callout-section,
.col-lg-3.eg-callout-section,
.col-lg-8.eg-callout-section,
.col-lg-9.eg-callout-section,
.col-md-6.eg-callout-section,
.col-md-5.eg-callout-section,
.col-md-4.eg-callout-section,
.col-md-3.eg-callout-section,
.col-md-8.eg-callout-section,
.col-md-9.eg-callout-section,
.col-sm-6.eg-callout-section,
.col-sm-5.eg-callout-section,
.col-sm-4.eg-callout-section,
.col-sm-3.eg-callout-section,
.col-sm-8.eg-callout-section,
.col-sm-9.eg-callout-section {
  flex: 0 0 90%;
}

/* small - above 480 */
@media screen and (min-width:480px) {
  .col-sm-6.eg-callout-section {
    flex: 0 0 calc(50% - 3rem);
  }

  .col-sm-5.eg-callout-section {
    flex: 0 0 calc(41.666667% - 3rem)
  }

  .col-sm-4.eg-callout-section {
    flex: 0 0 calc(33.33333% - 3rem);
  }

  .col-sm-3.eg-callout-section {
    flex: 0 0 calc(25% - 3rem);
  }

  .col-sm-8.eg-callout-section {
    flex: 0 0 calc(66.66666% - 3rem);
  }

  .col-sm-9.eg-callout-section {
    flex: 0 0 calc(75% - 3rem);
  }
}

/* md - above 768 */
@media screen and (min-width:768px) {
  .col-md-6.eg-callout-section {
    flex: 0 0 calc(50% - 3rem);
  }

  .col-md-5.eg-callout-section {
    flex: 0 0 calc(41.666667% - 3rem);
  }

  .col-md-4.eg-callout-section {
    flex: 0 0 calc(33.33333% - 3rem);
  }

  .col-md-3.eg-callout-section {
    flex: 0 0 calc(25% - 3rem);
  }

  .col-md-8.eg-callout-section {
    flex: 0 0 calc(66.66666% - 3rem);
  }

  .col-md-9.eg-callout-section {
    flex: 0 0 calc(75% - 3rem);
  }
}

/* lg - above 992 */
@media screen and (min-width:992px) {
  .col-lg-6.eg-callout-section {
    flex: 0 0 calc(50% - 3rem);
  }

  .col-lg-5.eg-callout-section {
    flex: 0 0 calc(41.666667% - 3rem)
  }

  .col-lg-4.eg-callout-section {
    flex: 0 0 calc(33.33333% - 3rem);
  }

  .col-lg-3.eg-callout-section {
    flex: 0 0 calc(25% - 3rem);
  }

  .col-lg-8.eg-callout-section {
    flex: 0 0 calc(66.66666% - 3rem);
  }

  .col-lg-9.eg-callout-section {
    flex: 0 0 calc(75% - 3rem);
  }
}

/* xl - above 1200 */
@media screen and (min-width:1200px) {
  .col-xl-6.eg-callout-section {
    flex: 0 0 calc(50% - 3rem)
  }

  .col-xl-5.eg-callout-section {
    flex: 0 0 calc(41.666667% - 3rem)
  }

  .col-xl-4.eg-callout-section {
    flex: 0 0 calc(33.33333% - 3rem)
  }

  .col-xl-3.eg-callout-section {
    flex: 0 0 calc(25% - 3rem)
  }

  .col-xl-8.eg-callout-section {
    flex: 0 0 calc(66.66666% - 3rem)
  }

  .col-xl-9.eg-callout-section {
    flex: 0 0 calc(75% - 3rem)
  }
}


/* menu column fix for Safari */
ul.sitemap-menu, ul.sitemap {
  transform: translate(0);
}


/* wide page embed fix */
.wide-page .raw-html-embed {
  flex: 0 0 100%;
}


/* targeted link header clearance */
@media screen and (min-width:768px) {
  :target {
    scroll-margin-top: 70px;
  }
}

/* new homepage fast facts */
.fast-facts-adaptive-link {
  #fast-facts {
    margin-top: .5rem;
    margin-bottom: .5rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    
  .result {
    position: relative;
    width: 100%;
    height: 250px;
    
    .content {
      justify-content: flex-end;
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 100%;
      display: flex;
      flex-direction: column;
      background: rgba(255, 255, 255, 0.65);
	  padding: 2rem;
      font-size: 1.75rem;
      color: var(--primary-color);
      font-weight: 900;
      line-height: 1.875rem;
      transition: background 0.3s ease-in-out, color 0.3s ease-in-out;
      
      a {
        font-size: 1.125rem;
        transition: color 0.3s ease-in-out;
      }
      
      a:after {
        content: "\f061";
        font-family: 'Font Awesome 7 Pro';margin-left:.5rem}}}.result:hover{.content{background:var(--accent-color);color:var(--light-color);a{color:var(--light-color)}}}.img-container{width:100%;height:100%;img{height:100%;width:100%;object-fit:cover}}@media screen and (min-width:576px){flex-direction:row;flex-wrap:wrap;.result{width:calc(50% - .25rem)}}@media screen and (min-width:992px){.result{width:calc(25% - .375rem)}}}}.life-banners .carousel-inner::after,.sub-page .editable:has(.additional-content):after{display:block;clear:both;content:"";width:100%;bottom:0;position:absolute;height:100px;background:url(/media/userfiles/subsite_315/images/groton2026/swoosh-white.svg);background-repeat:no-repeat;background-position:center bottom;background-size:100%}.sub-page .editable:has(.additional-content){position:relative}.home-page{.page-content{display:flex;flex-direction:column}.bsc.main{order:1}.fast-facts-adaptive-link{order:2}main.home-page{order:3}#section-groton-ct-by-the-numbers{order:4}#section-hidden-location-map{order:5}#section-featured-news{order:6;position:relative}#section-meet-your-neighbors{order:7}#section-hidden-quality-of-life{order:8}}