section.numbered-steps{
    
}

section.numbered-steps h2.title{
    margin-bottom:30px;
}

section.numbered-steps .how-image {
    mix-blend-mode: multiply;
}

section.numbered-steps .how-image img {
    width: 100%;
    height: auto;
    border-radius: 30px 30px 200px 30px;
}

section.numbered-steps .steps{
    display: flex;
    flex-direction: column;
    gap: 20px;
    position:relative;
}

section.numbered-steps .step{
    width:100%;
    position:relative;
    display:flex;
}

section.numbered-steps .step .counter {
    position: absolute;
    color: #fff;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    box-shadow: 0 0 0 8px var(--body-color);
    border-radius: 50%;
}

section.numbered-steps .step .counter span {
    width: 40px;
    height: 40px;
    position: relative;
    background: var(--main-color);
    border-radius: 50%;
    box-shadow: 0 0 0 3px var(--body-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 1.5rem;
    outline: 2px dashed var(--main-color);
    outline-offset: 2px;
}

section.numbered-steps .step .image{
    flex:0 0 40px;
    position:relative;
}

section.numbered-steps .step .image:after {
    content: '';
    position: absolute;
    top: 40px;
    left: 50%;
    height: 100%;
    width: 2px;
    background: repeating-linear-gradient( to bottom, var(--main-color) 0, var(--main-color) 6px, transparent 6px, transparent 12px );
    transform: translate(-50%, 3px);
}

section.numbered-steps .step:last-of-type .image:after{
    display:none;
}

section.numbered-steps .step .description {
    padding: 0 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    position:relative;
}



section.numbered-steps .step .description h3 {
    margin: .375rem 0 0 0;
    color: var(--main-color);
    mix-blend-mode: multiply;
}

section.numbered-steps .step .description p {
    max-width: 480px;
    text-wrap: balance;
}


@media screen and (max-width:990px){
    section.numbered-steps .lhs{
        display:none;
    }
}

/* CAROUSEL VERSION */
section.ab-how{
    position:relative;
    overflow:hidden;
}

section.ab-how .title{
    color:#fff;
}



.ab-how .ab-how__stage {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    margin: 10vh 0;
    gap: 2rem;
}

/* Full-width image */
.ab-how .ab-how__bg{
  position:absolute;
  inset:0;
  background-size: cover;
  background-position: center;
  transform: scale(1.01);
}

/* Optional: soft wash over image for readability */
.ab-how .ab-how__bg:after{
  content:"";
  position:absolute;
  inset:0;
  background: var(--pink-blue-gradient);
}

/* Overlay container: keeps card aligned with your container padding */
.ab-how .ab-how__overlay{
  position: relative;
  z-index: 2;
  height: 100%;
  display:flex;
  justify-content: flex-end;
  align-items: center;
  padding: clamp(18px, 3vw, 36px);
}

/* Card itself */
.ab-how .ab-how__card {
    width: min(560px, 100%);
    border-radius: 12px;
    padding: 1.75rem;
    background: rgba(255,255,255,0.75);
    backdrop-filter: blur(10px);
    box-shadow: 0 18px 50px rgba(0,0,0,0.12);
    outline: 3px solid #fff;
    outline-offset: 3px;
}

/* Your existing carousel styles can stay as-is */
.ab-how .ab-how__tabs {
    display: flex;
    gap: 3px;
    flex-wrap: wrap;
    /* margin-bottom: 14px; */
    position: absolute;
    right: 1.75rem;
    top:1.75rem;
}

.ab-how .ab-how__tab {
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #fff;
    border: none;
    font-weight: 700;
    transition: transform .15s ease, background .15s ease, border-color .15s ease;
    color: var(--font-color);
}

.ab-how .ab-how__tab:hover{ transform: translateY(-1px); }

.ab-how .ab-how__tab.is-active {
    /* border-color: rgba(0,0,0,0.35); */
    background: var(--second-color);
    color: #fff;
}

.ab-how .ab-how__kicker{
    display:flex; 
    align-items:baseline;
    gap:.75rem;
}

.ab-how .ab-how__rte {
    min-height: 6rem;
}

.ab-how .ab-how__rte p{
    text-wrap: balance;
    font-size: 1.125rem;
}

.ab-how .ab-how__num {
    font-size: 4rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--second-color);
}

.ab-how .ab-how__label{ opacity:0.65; font-weight:600; }

.ab-how .ab-how__h{ margin: 0 0 10px; }

.ab-how .ab-how__controls {
    display: flex;
    justify-content: flex-start;
    gap: .375rem;
}


/* Mobile: make the stage shorter & stack card lower for breathing room */
@media (max-width: 991px){
  .ab-how .ab-how__stage{ min-height: 420px; }
  .ab-how .ab-how__overlay{ align-items: flex-end; }
  .ab-how .ab-how__card{ margin-top: 140px; }
  .ab-how .ab-how__bg:after{
    background: linear-gradient(180deg, rgba(245,242,238,0.10) 0%, rgba(245,242,238,0.55) 55%, rgba(245,242,238,0.90) 100%);
  }
}