.circular-slider {
    --mobile-text-color: var(--dark-background-text-color);

    &:is([data-color-scheme="light-sunburst"]) {
      --mobile-text-color: var(--white-background-text-color);
    }

    padding: var(--block-margin) 0;
    overflow: hidden;
    position: relative;
    background-color: var(--color-white);
}

.circular-slider.animate__animated {
    animation-name: fadeIn;
    
}

.circular-slider.alignfull {
    width: 100%;
    max-width: 100%;
    height: 100%;
}

.circular-slider-content {
    position: relative;
    margin: 0 auto var(--item-row-gap);
}

.circular-slider-content-body {
    display: flex;
}

.circular-slider.alignfull .circular-slider-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    max-width: var(--wide-width);
    row-gap: var(--title-and-body-gap);
}

.swiper-slide-active .circular-slider-content.animate__animated {
    animation-name: fadeIn;
}

.circular-slider-content-heading {
    & h2 {
        margin-bottom: 0;
        color: var(--color-deepest-blue);
    }

    @media not all and (min-width: 992px) {
      margin-bottom: 2.4rem;
    }
}

.circular-slider-content-body {
  & p {
    font-size: 1.8rem;
    line-height: 1.5;
  }
}


h2.circular-slider-content-title,
.circular-slider-content-title p {
    margin-bottom: 0;
    color: var(--color-deepest-blue);
}

.circular-slider[data-color-scheme|="dark"] {
    --title-color: var(--light-background-title-color);
    --text-color: var(--light-background-text-color);
    --link-color: var(--light-background-link-color);
    --hover-link-color: var(--light-background-hover-link-color);
    --primary-button-background-color: var(--light-background-primary-button-background-color);
    --primary-button-border-color: var(--light-background-primary-button-border-color);
    --primary-button-text-color: var(--light-background-primary-button-text-color);
    --primary-button-hover-background-color: var(--light-background-primary-button-hover-background-color);
    --primary-button-hover-border-color: var(--light-background-primary-button-hover-border-color);
    --primary-button-hover-text-color: var(--light-background-primary-button-hover-text-color);
    --secondary-button-background-color: var(--light-background-secondary-button-background-color);
    --secondary-button-border-color: var(--light-background-secondary-button-border-color);
    --secondary-button-text-color: var(--light-background-secondary-button-text-color);
    --secondary-button-hover-background-color: var(--light-background-secondary-button-hover-background-color);
    --secondary-button-hover-border-color: var(--light-background-secondary-button-hover-border-color);
    --secondary-button-hover-text-color: var(--light-background-secondary-button-hover-text-color);
    --tertiary-button-text-color: var(--color-black);
    --tertiary-button-hover-text-color: var(--color-deepest-blue);
}

.circular-slider-slide-content p {
    color: var(--color-black);
    margin: 0;
}

.circular-slider-content-text {
    display: flex;
}

.circular-slider-content-text p {
    color: var(--color-black);
}

.circular-slider-content-text :is(h1, h2, h3, h4, h5, h6, p):last-child {
    margin-bottom: 0;
}

.circular-slider-slide {
    position: relative;
    height: 100%;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    justify-content: center;
}

.circular-slider-inner {
    display: flex;
    flex-direction: column;
    row-gap: var(--small-row-gap);
}

.circular-slider-title {
    color: var(--color-vibrant-blue);
    font: var(--font-headline-7);
    text-transform: uppercase;
    margin-bottom: 0;
}

.circular-slider-wrapper {
    width: 100%;
    position: relative;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    border-radius: 100%;
    border: 0.392rem solid;
    border-color: var(--background-color);
    padding: var(--row-gap);
    grid-row: 2;
    transition-delay: 0.3s;
}

.circular-slider-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--buttons-gap);
    align-items: center;
}

.circular-slider-buttons a.circular-slider-button::after {
    content: "";
    display: inline-block;
    width: 0.5em;
    height: 0.5em;
    border-right: 0.2rem solid;
    border-bottom: 0.2rem solid;
}

.circular-slider-buttons a.circular-slider-button:not(.tertiary-button)::after{
    margin: 0 0 0 0.7em;
    transform: rotateZ(-45deg) translate(-0.5rem, -0.7rem);
    transition: transform 0.3s ease;
}

.circular-slider-slide .circular-slider-wrapper.animate__animated {
    transition: transform 0.5s ease, opacity 0.3s ease;
}

.swiper-slide-active .circular-slider-slide .circular-slider-wrapper.animate__animated {
    opacity: 1;
    transition: transform 0.5s ease 0.5s, opacity 0.3s ease 0.5s;
}

.circular-slider .swiper-wrapper{
    transition-delay: 0.3s;
}

.circular-slider .circular-slider-media {
    pointer-events: none;
    width: 100%;
    transform: translateX(0%);
    z-index: 2;
    /* opacity: 0; */
    transition: transform 0.3s ease;
}

.swiper-slide-active .circular-slider-slide .circular-slider-media.animate__animated {
    opacity: 1;
    transform: translateX(0%);
    transition: transform 0.5s ease 0.5s, opacity 0.5s ease;
}

.circular-slider .circular-slider-image {
    width: 100%;
    height: 100%;
}

.circular-slider-image img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 100%;
}

.circular-slider-inner > *:last-child {
    margin-bottom: 0;
}

.circular-slider-navigation {
    display: flex;
    align-items: center;
    column-gap: var(--row-gap);
    position: absolute;
    z-index: 10;
    max-width: var(--wide-width);
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    margin: 0 auto;
    pointer-events: none;
}

.circular-slider-navigation-prev,
.circular-slider-navigation-next {
    position: absolute;
    z-index: 10;
    pointer-events: all;
}

:is(.circular-slider-navigation-prev, .circular-slider-navigation-next)[disabled]{
    opacity: 0;
    pointer-events: none;
}

.circular-slider-navigation-prev {
    left: 0;
}

.circular-slider-navigation-next {
    right: 0;
}

:is(.circular-slider-navigation-prev, .circular-slider-navigation-next) svg {
    height: auto;
}

:is(.circular-slider-navigation-prev, .circular-slider-navigation-next) svg * {
    transition: all 0.3s ease;
    stroke: transparent;
}

:is(.circular-slider-navigation-prev, .circular-slider-navigation-next):is(:active, :hover, :focus) svg rect {
    fill: var(--hover-link-color);
}

.circular-slider-tabs-wrapper{
    width: var(--wide-width);
    position: relative;
    margin: 0 auto;
}

.circular-slider-tabs-navigation{
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    z-index: 10;
    pointer-events: none;
}

.circular-slider-tabs-navigation button{
    pointer-events: all;
}

.circular-slider-tabs-navigation button svg{
    width: 3.5rem;
    height: auto;
}

.circular-slider-tabs {
    width: var(--wide-width);
    display: flex;
    justify-content: center;
}

.circular-slider-tabs .tab-buttons button {
    text-transform: uppercase;
    font-size: 1.6rem;
    font-weight: var(--secondary-font-weight);
    letter-spacing: 0.1rem;
    padding: 0 1rem;
}

.circular-slider-tabs .tab-buttons button:is(:hover, :focus, :active) {
    text-decoration: none;
}

.circular-slider-tabs .tab-buttons .swiper-slide:is(.swiper-slide-thumb-active) button {
    border-bottom-width: 0.3rem;
    outline: 0;
}

.circular-slider-tabs .tab-buttons .swiper-slide:is(.swiper-slide-thumb-active) button:is(:hover, :focus, :active) {
    outline: 0;
}

.circular-slider-tabs .tab-buttons .swiper-slide:is(.swiper-slide-thumb-active) button:is(:focus, :active) {
    color: var(--text-color);
}

.circular-slider-tabs .tab-buttons .swiper-slide:is(.swiper-slide-thumb-active) button::after {
    content: '';
    display: block;
    width: calc(100% + 2rem);
    margin-left: -1rem;
    height: 1.2rem;
    background: var(--color-vibrant-blue);
    mask: url(img/border-pattern.svg);
    flex-shrink: 0;
}

.circular-slider-tabs .tab-buttons .tab-separator {
    width: 0.1rem;
    background: var(--color-black);
}

.circular-slider-tabs .tab-buttons .tab-separator:last-child {
    display: none;
}

@media (max-width: 991px) {
    .circular-slider-swiper {
        height: 100%;
        padding-bottom: var(--item-row-gap);
    }

    .circular-slider-slide {
        grid-template-columns: 1fr;
        row-gap: 0;
    }

    .circular-slider-wrapper {
        aspect-ratio: unset;
        border: none;
        padding: 0 var(--item-column-gap);
        margin: var(--item-row-gap) 0 0;
    }

    .circular-slider-tabs {
        height: 6.3rem;
        padding: 0;
        border: none;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .circular-slider-tabs .tab-buttons {
        width: 100%;
        padding: 0;
        border: none;
        display: flex;
        position: relative;
        margin: 0 var(--page-padding) var(--page-padding);
    }

    .circular-slider-tabs .tab-buttons .swiper-slide:not(.swiper-slide-thumb-active) {
        opacity: 0 !important;
        transition-duration: 0.3s !important;
    }

    .circular-slider-tabs .tab-buttons .swiper-slide:is(.swiper-slide-thumb-active) {
        opacity: 1 !important;
        transition-duration: 0.3s !important;
    }

    .circular-slider-tabs .tab-buttons .tab-separator {
        display: none;
    }

    .circular-slider-tabs .swiper-slide:last-child {
        border-right: 0;
    }

    .circular-slider-tabs .tab-buttons .swiper-slide button {
        display: flex;
        flex-direction: column;
        margin: var(--small-row-gap) auto 0;
    }

    .circular-slider-tabs .tab-buttons .swiper-slide button::after {
        display: none;
    }

    .circular-slider-tabs-navigation-next {
        display: block;
    }

    .circular-slider-tabs-navigation-next svg {
        width: 4.8rem;
        height: auto;
    }

    .circular-slider-inner{
        width: 100%;
    }

    .circular-slider-media{
        aspect-ratio: 1;
    }
}

@media (min-width: 992px) {
    .circular-slider-slide {
        max-width: 100%;
    }

    .circular-slider-wrapper {
        grid-row: 1;
        transform: translateX(50%);
        padding: var(--item-row-gap);
        opacity: 0;
    }

    .circular-slider-slide-content {
        font: var(--font-body-small);
    }

    .swiper-slide-active .circular-slider-wrapper.animate__animated {
        opacity: 1;
        transform: translateX(5%);
        transition: transform 0.5s ease 0.5s, opacity 0.3s ease 0.5s;
    }

    .circular-slider .circular-slider-media {
        pointer-events: none;
        width: 100%;
        transform: translateX(-50%);
        z-index: 2;
        /* opacity: 0; */
    }

    .swiper-slide-active .circular-slider-media.animate__animated {
        opacity: 1;
        transform: translateX(-5%);
        transition: transform 0.5s ease 0.5s, opacity 0.5s ease;
    }

    .circular-slider-tabs-wrapper{
        margin-top: var(--large-row-gap);
        border-top: 0.1rem solid;
    }

    .circular-slider-tabs .tab-buttons {
        justify-content: center;
        padding-top: var(--small-row-gap);
    }

    .circular-slider-tabs .tab-buttons .swiper-slide {
        display: flex;
        max-width: max-content;
        align-items: flex-start;
        justify-content: center;
        border-right: 0.1rem solid;
        padding: 0.6rem 2.4rem 0;
        min-height: 4rem;
        height: auto;
    }

    .circular-slider-tabs .tab-buttons .swiper-slide:first-child {
        padding-left: 0;
    }

    .circular-slider-tabs .tab-buttons .swiper-slide:last-child {
        border-right: 0;
        padding-right: 0;
    }

    .circular-slider-content-body {
        display: flex;
        justify-content: end;
    }

    .circular-slider.alignfull .circular-slider-content {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: var(--large-column-gap);
        row-gap: var(--row-gap);
    }
}

@media (min-width: 992px) {
    .swiper-slide-active .circular-slider-wrapper.animate__animated {
        transform: translateX(5%);
    }

    .swiper-slide-active .circular-slider-slide .circular-slider-media.animate__animated {
        transform: translateX(-5%);
    }
}

@media (min-width: 992px) and (max-width: 1199px) {
    .circular-slider-wrapper {
        padding: var(--row-gap) calc(var(--column-gap) + var(--column-gap)) var(--column-gap) var(--row-gap);
    }

    .circular-slider .swiper-wrapper:not(.tab-buttons) .swiper-slide .circular-slider-slide{
        max-width: calc(var(--wide-width));
        margin: 0 auto;
    }
}

@media (min-width: 1200px) {
    .circular-slider-content {
        margin: 0 auto var(--row-gap);
    }

    .circular-slider .swiper-wrapper:not(.tab-buttons) .swiper-slide{
        transition-delay: 0.3s;
    }

    .circular-slider .swiper-wrapper:not(.tab-buttons) .swiper-slide:is(.swiper-slide-prev) {
        transform: translateX(20%);
    }

    .circular-slider .swiper-wrapper:not(.tab-buttons) .swiper-slide:is(.swiper-slide-next) {
        transform: translateX(-20%);
    }

    .circular-slider .swiper-wrapper:not(.tab-buttons) .swiper-slide {
        max-width: calc(var(--wide-width) - 20rem);
    }

    .circular-slider-wrapper {
        grid-row: 1;
        padding: 0 var(--block-margin);
        transform: translateX(50%);
    }

    .circular-slider-slide-content {
        font: var(--font-body);
    }
}

@media not all and (min-width: 992px) {
  .circular-slider {
    display: flex; 
    flex-direction: column;
    row-gap: var(--item-row-gap);

    & > * {
      padding-bottom: 0;
      margin-bottom: 0;
    }

    .circular-slider-content {
      order: 1;
    }

    .circular-slider-tabs-navigation{
        display: none;
    }

    .circular-slider-tabs-wrapper {
      order: 2;
    }

    .circular-slider-swiper {
      order: 3;
      min-height: 0;
      min-width: 0;
      max-width: 100%;

      .circular-slider-navigation {
        top: 0;
        bottom: auto;
        left: 0;
        right: 0;
        width: auto;
        margin-top: 50%;
        transform: translateY(-75%);
        justify-content: space-between;
      }

      .circular-slider-navigation-prev {
        transform: translateX(-25%);
        position: static;
      }

      .circular-slider-navigation-next {
        transform: translateX(25%);
        position: static;
      }
    }

    .circular-slider-slide {
      max-width: calc(var(--wide-width) - 2rem);
      margin-left: auto;
      margin-right: auto;
      position: relative;

      .circular-slider-wrapper {
        position: static;

        .circular-slider-title {
          position: absolute;
          width: 1px;
          height: 1px;
          padding: 0;
          margin: -1px;
          overflow: hidden;
          clip: rect(0, 0, 0, 0);
          white-space: nowrap;
          border-width: 0;
        }

        .circular-slider-slide-content {
          padding: 4rem;
          position: absolute;
          width: 100%;
          aspect-ratio: 1 / 1;
          top: 0;
          left: 0;
          right: 0;
          z-index: 10;
          display: flex;
          align-items: center;
          justify-content: center; 
          background-color: color(from var(--background-color) srgb r g b / 0.7);
          border-radius: calc(infinity * 1px);
          
          & p {
            color: var(--mobile-text-color);
            font-size: 1.8rem;
            line-height: 1.5;
            font-weight: 500;
            text-align: center;

            & a {
                color: var(--color-white);
                text-decoration: underline;
            }
          }
        }

        .circular-slider-buttons {
          justify-content: center;
        }
      }
    }
  }
}