* {
      box-sizing: border-box;
    }

    html,
    body {
      margin: 0;
      min-width: 0;
      background: #fff;
    }

    .transport-grid {
      --card-gap: 30px;
      --accent: #00a3f5;
      width: 100%;
      margin-top: var(--margin_tb);
      margin-bottom: var(--margin_tb);
      color: #333;
      background-color: var(--setting-background-color);
      background-image: var(--setting-background-image);
      background-position: var(--setting-background-position);
      background-size: var(--setting-background-size);
      background-repeat: no-repeat;
    }

    .transport-grid__inner {
      box-sizing: border-box;
      width: 100%;
      max-width: var(--custom-content-max-width);
      margin-left: auto;
      margin-right: auto;
      padding-top: var(--padding_tb);
      padding-right: var(--padding_lr);
      padding-bottom: var(--padding_tb);
      padding-left: var(--padding_lr);
    }

    .transport-grid__list {
      display: grid;
      grid-template-columns: repeat(var(--setting-columns), minmax(0, 1fr));
      gap: var(--card-gap);
      width: 100%;
      position: relative;
      margin: 0;
      padding: 0;
    }

    .transport-grid .transport-grid__pagination {
      display: flex;
      grid-column: 1 / -1;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      order: 1;
      width: 100%;
      max-width: 100%;
      gap: 8px;
      margin-top: 30px;
    }

    .transport-grid .transport-grid__pagination[hidden] {
      display: none;
    }

    .transport-grid .transport-grid__pagination-item {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 34px;
      height: 34px;
      padding: 0 8px;
      border: 1px solid #efefef;
      background: #fff;
      color: #4b4b4b;
      font-size: 14px;
      line-height: 32px;
      text-align: center;
      text-decoration: none;
    }

    .transport-grid .transport-grid__pagination-item:is(a, button) {
      cursor: pointer;
    }

    .transport-grid .transport-grid__pagination-item[aria-current="page"],
    .transport-grid .transport-grid__pagination-item.is-active {
      border-color: var(--pagination-active-background-color, var(--themeColor1, #00a3f5));
      background: var(--pagination-active-background-color, var(--themeColor1, #00a3f5));
      color: #fff;
    }

    .transport-grid .transport-grid__pagination-item:is(a, button):not([aria-current="page"]):not(.is-active):not([aria-disabled="true"]):not(:disabled):hover {
      border-color: var(--pagination-hover-background-color, var(--themeColor1, #00a3f5));
      background: var(--pagination-hover-background-color, var(--themeColor1, #00a3f5));
      color: #fff;
    }

    .transport-grid .transport-grid__pagination-item.is-ellipsis {
      border-color: transparent;
      background: transparent;
    }

    .transport-grid .transport-grid__pagination-item:is(:disabled, [aria-disabled="true"], .is-disabled) {
      cursor: not-allowed;
      opacity: .4;
      pointer-events: none;
    }

    .transport-grid__item {
      min-width: 0;
      height: auto;
      margin: 0;
      overflow: visible;
      background: var(--setting-background-color, var(--setting-item-background-color, #ffffff));
      transition: box-shadow .5s ease, border-color .5s ease;
    }

    .transport-grid__item:focus-within {
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 22%, transparent);
    }

    .transport-grid__card {
      display: block;
      width: 100%;
      height: 100%;
      color: inherit;
      text-decoration: none;
      outline: none;
    }

    .transport-grid__media {
      position: relative;
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: var(--setting-image-ratio);
      overflow: hidden;
      border-radius: var(--setting-image-shape);
      background: #f4f4f4;
    }

    .transport-grid__image {
      position: absolute;
      inset: 0;
      display: block;
      width: 100%;
      height: 100%;
      object-fit: var(--setting-image-fit);
      transform: scale(1);
      transform-origin: center;
      transition: transform .5s ease;
    }

    .transport-grid__overlay {
      position: absolute;
      inset: 0;
      z-index: 2;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(0, 0, 0, .6);
      opacity: 0;
      pointer-events: none;
      transition: opacity .5s ease;
    }

    .transport-grid__overlay-title {
      position: relative;
      display: block;
      width: 60%;
      padding: .5rem 0;
      overflow: hidden;
      color: var(--setting-color);
      font-family: var(--setting-font-family);
      font-size: var(--setting-font-size);
      font-weight: var(--setting-font-weight);
      font-style: var(--setting-font-style);
      text-decoration: var(--setting-text-decoration);
      line-height: 1.45;
      text-align: center;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .transport-grid__overlay-title::before,
    .transport-grid__overlay-title::after {
      content: "";
      position: absolute;
      left: 50%;
      width: 60%;
      height: 1px;
      background: var(--setting-color);
      transform: translateX(-50%);
      transition: width .5s ease;
    }

    .transport-grid__overlay-title::before {
      top: 0;
    }

    .transport-grid__overlay-title::after {
      bottom: 0;
    }

    .transport-grid__body {
      display: block;
      height: 130px;
      padding: 20px 20px 10px;
      overflow: visible;
      border: 1px solid #f2f2f2;
      background: var(--setting-background-color, var(--setting-item-background-color, #ffffff));
    }

    .transport-grid__title {
      display: block;
      margin: 0;
      overflow: hidden;
      color: var(--setting-color);
      font-family: var(--setting-font-family);
      font-size: var(--setting-font-size);
      font-weight: var(--setting-font-weight);
      font-style: var(--setting-font-style);
      text-decoration: var(--setting-text-decoration);
      line-height: 24px;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .transport-grid__cta {
      position: relative;
      z-index: 0;
      display: inline-flex;
      align-items: center;
      max-width: 100%;
      height: 38px;
      margin-top: 10px;
      padding-left: 24px;
      color: var(--setting-cta-color);
      font-size: var(--setting-cta-font-size);
      font-weight: 400;
      line-height: 38px;
      transition: color .5s ease, padding-left .5s ease, padding-right .5s ease;
    }

    .transport-grid__cta-mark {
      position: absolute;
      top: 50%;
      left: 0;
      z-index: -1;
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: var(--setting-cta-background-color);
      transform: translateY(-50%);
      transition: width .5s ease, border-radius .5s ease;
    }

    .transport-grid__cta-text {
      position: relative;
      z-index: 1;
      display: block;
      min-width: 0;
      max-width: 100%;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .transport-grid__card:hover .transport-grid__image,
    .transport-grid__card:focus-visible .transport-grid__image {
      transform: scale(1.1);
    }

    .transport-grid__card:hover .transport-grid__overlay,
    .transport-grid__card:focus-visible .transport-grid__overlay {
      opacity: 1;
    }

    .transport-grid__card:hover .transport-grid__overlay-title::before,
    .transport-grid__card:hover .transport-grid__overlay-title::after,
    .transport-grid__card:focus-visible .transport-grid__overlay-title::before,
    .transport-grid__card:focus-visible .transport-grid__overlay-title::after {
      width: 1rem;
    }

    .transport-grid__cta:hover,
    .transport-grid__card:focus-visible .transport-grid__cta {
      padding-right: 24px;
      color: #fff;
    }

    .transport-grid__cta:hover .transport-grid__cta-mark,
    .transport-grid__card:focus-visible .transport-grid__cta-mark {
      width: 100%;
      border-radius: 25px;
    }

    .transport-grid__card:active .transport-grid__image {
      transform: scale(1.06);
    }

    @media (max-width: 1024px) {
      .transport-grid__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 767px) {
      .transport-grid__inner{
        max-width: 100%;
        padding-inline: 2rem;
      }
      .transport-grid {
        --padding_lr: 20px;
        --card-gap: 20px;
      }

      .transport-grid__list {
        grid-template-columns: repeat(var(--setting-columns-mobile), minmax(0, 1fr));
      }

      .transport-grid__item {
        height: auto;
      }

      .transport-grid__overlay-title,
      .transport-grid__title {
        font-size: var(--setting-mobile-font-size, var(--setting-font-size));
      }
    }
