.familyfares-module {
  padding: 20px 0;
  margin-bottom: 30px;
  position: relative;
  @media (max-width: $screen-md-max) {
    &:before, &:after {
      content: "";
      display: block;
      border-top: 1px solid $colorBordes;
      position: absolute;
      left: -15px;
      right: -15px;
    }
    &:before {
      top: 0;
      bottom: auto;
    }
    &:after {
      top: auto;
      bottom: 0;
    }
  }
  @media (min-width: $screen-lg-min) {
    border: 1px solid $colorBordes;
    border-radius: 6px;
    padding: 20px;
  }
  &-title {
    padding: 0;
    position: relative;
    @media (min-width: $screen-lg-min) {
      display: flex;
      align-items: flex-start;
    }
    &[role="button"] {
      padding: 0 30px 0 0;
      &:after {
        content: '';
        position: absolute;
        right: 0;
        top: 10px;
        display: block;
        height: 16px;
        width: 16px;
        background: url("https://eur1.otcdn.com/headers/svg/background/icon-ownfill-ui-chevron-up-74716e.svg") no-repeat;
        background-size: 16px 16px;
      }
      &.collapsed:after {
        transform: rotate(-180deg);
      }
    }

  }
}
.fare-label {
  border: 1px solid $brand-green;
  border-radius: 16px;
  padding: 5px 14px;
  display: inline-flex;
  gap: 0 5px;
  color: $brand-green;
  margin-top: 10px;
  @media (min-width: $screen-lg-min) {
    margin-top: 0;
    margin-left: auto;
  }
  &.fare-label--unselected {
    border-color: $colorBordes;
    color: $brand-grey-dark;
    background: $brand-grey-light;
  }
}
.fare-label-icon {
  flex: 0 0 auto;
  .icon {
    width: 16px;
    height: 16px;
    vertical-align: middle;
    &, & * {
      fill: $brand-green;
    }
  }
}
.fare-label-text {
  @include medium-weight;
  font-size: 16px;
  color: $brand-green;
  .fare-label--unselected & {
    color: $brand-grey-dark;
    font-weight: $roboto-light;
  }
}
.main-info {
  margin-top: 2px;
}
.main-info-line {
  font-size: 18px;
  @media (min-width: $screen-sm-min) {
    font-size: 22px;
    display: flex;
    align-items: center;
    gap: 0 10px;
  }
  & + .main-info-line {
    margin-top: 10px;
  }
}
.journey {
  @include medium-weight;
}
.fare-company {
  color: $brand-copy-light;
}
.module-content-scroll {
  display: flex;
  gap: 0 15px;
  padding: 20px 0 0;
  flex-wrap: nowrap;
  @media (max-width: 991px) {
    overflow-y: hidden;
    overflow-x: scroll;
    margin-right: -15px;
    padding-right: 15px;
  }
  @media (min-width: $screen-lg-min) {
    gap: 0 20px;
  }
}

.fare-module {
  border: 1px solid $input-border;
  border-radius: 6px;
  padding: 20px 15px;
  display: flex;
  flex-direction: column;
  flex: 1 1 25%;
  min-width: 226px;
  position: relative;
  &.fare-module--selected {
    border-color: $interactive-color;
  }
}
.fare-selected {
  border-radius: 15px;
  background: $interactive-color;
  color: #fff;
  display: inline-block;
  padding: 0 10px;
  line-height: 25px;
  align-self: center;
  position:absolute;
  top: -13px;
}
.fare-header {
  padding-bottom: 15px;
  margin-bottom: 15px;
  border-bottom: 1px dashed $colorBordes;
  display:flex;
  flex-wrap: nowrap;
  justify-content: space-between;
}
.fare-name {
  color: $brand-grey-dark;
  font-size: 18px;
  @include medium-weight;
}
.fare-price {
  .price {
    font-size: 18px;
    @include medium-weight;
    .symbol {
      font-size: 0.8em;
    }
  }
  .person {
    font-size: 14px;
  }
}
.fare-body {
  @media (min-width: $screen-lg-min) {
    display: flex;
    flex-wrap: wrap;
  }
}
.fare-info-block {
  display: flex;
  margin-bottom: 10px;
  .fare-body & {
    @media (min-width: $screen-lg-min) {
      flex: 1 0 50%;
      min-width: 235px;
    }
  }
  &.fare-info-more {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid $colorBordes;
  }
}
.fare-info-icon {
  flex: 0 0 auto;
  svg {
    width: 16px;
    height: 16px;
    vertical-align: middle;
    &, & * {
      fill: $brand-green;
    }
  }
  .fare-info-block.fare-info-more & {
    svg {
      &, & * {
        fill: $brand-grey-dark;
      }
    }
  }
}
.fare-info-text {
  padding: 0 10px;
  font-size: 16px;
}
.fare-info-main {
  @include medium-weight;
}
.fare-info-additional {
  font-weight: $roboto-light;
}
.fare-bottom {
  margin-top: auto;
  padding-top: 30px;
  .box-btn {
    .btn {
      width: 100%;
      border-radius: 10px;
      &.btn-link {
        padding: 9px 20px;
        line-height: 20px;
      }
    }
  }
}
.familyfares-error {
  padding: 15px 0 0 0;
  font-size: 16px;
  color: $brand-red;
  .icon {
    width:18px;
    height: 18px;
    vertical-align: text-top;
    &, & * {
      fill: $brand-red;
    }
  }
}
.family-fares-price {
  font-size: 22px;
  margin-bottom: 15px;
}
.fare-price-info {
  margin-left: 8px;
  display: inline-block;
  &:hover {
    cursor: pointer;
  }
  .icon-graph-info-circle {
    width: 20px;
    height: 20px;
    vertical-align: middle;
    &, & * {
      fill: $brand-brown-medium;
    }
  }
}
.family-fares-price-continue {
  margin-bottom: 30px;
  @media (min-width: $screen-sm-min) {
    display:flex;
    justify-content: flex-end;
    align-items: center;
    gap: 26px;
    .family-fares-price {
      flex: 0 0 auto;
      margin-bottom: 0;
    }
  }
  .btn-action {
    border-radius: 10px;
    min-width: 290px;
    @media (min-width: $screen-sm-min) {
      flex: 0 0 auto;
      width: auto;
    }
  }
}
.fare-solo {
  &-intro {
    font-size: 18px;
    padding: 10px 0 20px 0;
  }
  &-info {
    display: flex;
    flex-wrap: wrap;
    .fare-info-block.fare-info-more {
      flex: 1 0 100%;
    }
  }
}
.rate-price-breakdown-container {

}
.rate-breakdown-line {
  display:flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  border-top: 1px dashed $input-border;
  padding: 15px 0;
  font-size: 16px;
  color: $brand-grey-dark;
}
.rate-breakdown-line:first-child {
  border-top: 0;
}
.rate-breakdown-line.rate-breakdown-line-total {
  border-top: 1px solid $input-border;
}
.breakdown-concept {

}
.rate-breakdown-line.rate-breakdown-line-total .breakdown-amount {
  @include medium-weight;
}
.breakdown-description {
  text-align: left;
  font-size: 16px;
  color: $brand-grey-dark;
  margin: 0;
  line-height: normal;
}
/* Skeleton */
.familifares-skeleton {
  .skeleton__button,
  .skeleton__paragraph,
  .skeleton__price,
  .skeleton__title {
    overflow: hidden;
    position: relative;
  }

  .skeleton__button:after,
  .skeleton__paragraph:after,
  .skeleton__title:after,
  .skeleton__price:after {
    animation: shineanimation 2s infinite;
    background-image: linear-gradient(90deg, hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, 0) 25%, hsla(0, 0%, 100%, .5) 50%, hsla(0, 0%, 100%, 0) 75%, hsla(0, 0%, 100%, 0));
    background-position: 0 0;
    background-repeat: no-repeat;
    background-size: 50% 100%;
    bottom: 0;
    content: "";
    display: block;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 2;
  }

  .skeleton__button,
  .skeleton__title,
  .skeleton__price {
    background: #ededed;
  }

  .skeleton__title {
    height: 12px;
    margin: 9px 0;
    width: 100px;

    &.large {
      width: 100% !important;
    }

    &.double {
      width: 200px !important;
    }
  }

  .skeleton__paragraph {
    height: 90px;
    width: 100%;
    background-image: linear-gradient(90deg, #ededed, #ededed 60px, #fff 61px, #fff),
    linear-gradient(180deg, #ededed, #ededed 5px, #fff 6px, #fff 21px);
    background-position: 15px 15px, 15px 36px;
    background-repeat: no-repeat, repeat-y;
    background-size: 100% 6px, 88% 21px;
  }

  .skeleton__button {
    display: inline-block;
    height: 40px;
    width: 100px;
  }
  .skeleton__price {
    display: inline-block;
    height: 12px;
    width: 80px;
    margin: 9px 0;
  }
  .fare-info-icon .skeleton__button {
    width: 16px;
    height: 16px;
  }
  .main-info-line .skeleton__title {
    width: 300px
  }
  .fare-info-main .skeleton__title, .fare-info-additional .skeleton__title {
    margin-top: 0;
    width: 170px;
  }
  .module-content-scroll {
    @media (max-width: 991px) {
      overflow: hidden;
    }
  }
  .family-fares-price-continue {
    .skeleton__button.btn-block {
      min-width: 290px;
      display: block;
      width: 100%;
      @media (min-width: $screen-sm-min) {
        flex: 0 0 auto;
        width: auto;
      }
    }
  }
}

@keyframes shineanimation {
  0% {
    transform: translateX(-100%);
  }

  to {
    transform: translateX(100%);
  }
}
