/* =========================================================
   ACT TAX SERVICES  REVIEWS CAROUSEL
   CLEAN V34
========================================================= */

#act-reviews,
#act-reviews *{
  box-sizing:border-box;
}


/* =========================================================
   SECTION
========================================================= */

#act-reviews{
  --review-navy:#082343;
  --review-gold:#d7a02b;
  --review-text:#263442;
  --review-muted:#7d8791;
  --review-star:#ffb900;
  --review-star-off:#cfd3d7;

  position:relative;
  width:100%;
  overflow:hidden;

  padding:
    90px
    0
    90px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafb 100%
    );
}


/* =========================================================
   HEADING
========================================================= */

#act-reviews .act-reviews__intro-wrap{
  width:min(calc(100% - 48px),1380px);

  margin:
    0
    auto
    58px;

  text-align:center;
}

#act-reviews .act-reviews__eyebrow{
  margin:0;

  color:var(--review-gold);

  font:
    500 16px/1.2
    Georgia,
    "Times New Roman",
    serif;
}

#act-reviews .act-reviews__title{
  margin:
    10px
    0
    0;

  color:#090909;

  font:
    400 clamp(42px,5vw,72px)/1.03
    Georgia,
    "Times New Roman",
    serif;

  letter-spacing:-.035em;
}

#act-reviews .act-reviews__title span{
  color:var(--review-gold);
}


/* =========================================================
   CAROUSEL STAGE
========================================================= */

#act-reviews .act-reviews-carousel{
  position:relative;
  width:100%;
}

#act-reviews .act-reviews-stage{
  position:relative;

  width:100%;
  overflow:hidden;

  /*
   * Plenty of room for avatar and card shadow.
   */
  padding:
    52px
    0
    34px;

  cursor:grab;

  touch-action:pan-y;
  user-select:none;

  outline:none;
}

#act-reviews .act-reviews-stage.is-dragging{
  cursor:grabbing;
}


/* =========================================================
   TRACK
========================================================= */

#act-reviews .act-reviews-track{
  display:flex;

  align-items:flex-start;

  gap:30px;

  width:max-content;

  padding:
    0
    28px;

  margin:0;

  will-change:transform;
}


/* =========================================================
   REVIEW CARD
   TRUE OUTER SIZE: 320  320
========================================================= */

#act-reviews .act-review-card{
  position:relative;

  flex:
    0
    0
    320px;

  width:290px;
  min-width:290px;
  max-width:290px;

  height:320px;
  min-height:320px;
  max-height:320px;

  margin:
    44px
    0
    0;

  padding:
    64px
    20px
    22px;

  display:flex;
  flex-direction:column;

  overflow:visible;

  background:
    rgba(255,255,255,.98);

  border:
    1px solid
    rgba(8,35,67,.10);

  border-radius:0;

  box-shadow:
    0 7px 15px
    rgba(8,35,67,.085);

  opacity:1;

  transform:none;

  transition:
    box-shadow .25s ease,
    border-color .25s ease;
}

#act-reviews .act-review-card:hover{
  border-color:
    rgba(215,160,43,.24);

  box-shadow:
    0 9px 18px
    rgba(8,35,67,.105);
}


/* =========================================================
   AVATAR
========================================================= */

#act-reviews .act-review-card__avatar{
  position:absolute;

  top:-44px;
  left:50%;

  width:88px;
  height:88px;

  transform:
    translateX(-50%);

  padding:4px;

  overflow:hidden;

  background:#fff;

  border:
    1px solid
    rgba(8,35,67,.09);

  border-radius:50%;

  box-shadow:
    0 6px 15px
    rgba(8,35,67,.16);

  z-index:3;
}

#act-reviews .act-review-card__avatar img{
  display:block;

  width:100%;
  height:100%;

  object-fit:cover;

  border-radius:50%;
}


/* =========================================================
   EXPERIENCE TITLE
========================================================= */

#act-reviews .act-review-card__experience{
  margin:
    0
    0
    17px;

  color:var(--review-navy);

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size:17px;
  font-weight:700;
  line-height:1.25;

  text-align:center;
}


/* =========================================================
   REVIEW TEXT
========================================================= */

#act-reviews .act-review-card__review{
  flex:1;

  margin:0;

  overflow:hidden;

  color:var(--review-text);

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size:14px;
  font-weight:400;
  line-height:1.55;

  text-align:center;
}


/* =========================================================
   NAME + DATE
========================================================= */

#act-reviews .act-review-card__meta{
  flex:0 0 auto;

  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:14px;

  width:100%;

  margin-top:17px;

  padding-top:14px;

  border-top:
    1px solid
    rgba(8,35,67,.09);

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size:11px;
  line-height:1.25;
}

#act-reviews .act-review-card__name{
  min-width:0;

  overflow:hidden;

  color:var(--review-navy);

  font-weight:400;

  text-align:left;

  white-space:nowrap;
  text-overflow:ellipsis;
}

#act-reviews .act-review-card__date{
  flex:0 0 auto;

  color:var(--review-muted);

  font-weight:400;

  text-align:right;

  white-space:nowrap;
}


/* =========================================================
   STARS
   ALWAYS SHOW FIVE
========================================================= */

#act-reviews .act-review-card__stars{
  flex:0 0 auto;

  display:flex;

  align-items:center;
  justify-content:center;

  gap:4px;

  width:100%;

  margin-top:16px;

  padding:0;

  font-size:20px;
  line-height:1;
}

#act-reviews .act-review-card__star{
  color:var(--review-star-off);
}

#act-reviews .act-review-card__star.is-active{
  color:var(--review-star);

  text-shadow:
    0 1px 4px
    rgba(174,119,0,.12);
}


/* =========================================================
   LOADING / EMPTY
========================================================= */

#act-reviews .act-review-card--loading,
#act-reviews .act-review-card--empty{
  align-items:center;
  justify-content:center;

  padding:30px;

  color:var(--review-muted);

  text-align:center;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:900px){

  #act-reviews{
    padding:
      80px
      0
      78px;
  }

  #act-reviews .act-reviews__intro-wrap{
    margin-bottom:48px;
  }

  #act-reviews .act-reviews-track{
    gap:24px;
  }
}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:600px){

  #act-reviews{
    padding:
      68px
      0
      68px;
  }

  #act-reviews .act-reviews__intro-wrap{
    width:
      calc(100% - 28px);

    margin-bottom:42px;
  }

  #act-reviews .act-reviews__title{
    font-size:42px;
  }

  #act-reviews .act-reviews-stage{
    padding-top:48px;
  }

  #act-reviews .act-reviews-track{
    gap:18px;

    padding:
      0
      18px;
  }

  /*
   * Desktop remains exactly 290320.
   * Only genuinely small screens shrink.
   */
  #act-reviews .act-review-card{
    flex-basis:
      min(290px,84vw);

    width:
      min(290px,84vw);

    min-width:
      min(290px,84vw);

    max-width:
      min(290px,84vw);

    height:320px;
    min-height:320px;
    max-height:320px;

    padding:
      62px
      21px
      20px;
  }

  #act-reviews .act-review-card__avatar{
    width:84px;
    height:84px;

    top:-42px;
  }

  #act-reviews .act-review-card__experience{
    font-size:16px;
  }

  #act-reviews .act-review-card__review{
    font-size:13px;
  }
}

/* V36  CAROUSEL EDGE FADE */
#act-reviews .act-reviews-stage{
  -webkit-mask-image:
    linear-gradient(
      to right,
      transparent 0%,
      rgba(0,0,0,.18) 3%,
      rgba(0,0,0,.65) 7%,
      #000 12%,
      #000 88%,
      rgba(0,0,0,.65) 93%,
      rgba(0,0,0,.18) 97%,
      transparent 100%
    );

  mask-image:
    linear-gradient(
      to right,
      transparent 0%,
      rgba(0,0,0,.18) 3%,
      rgba(0,0,0,.65) 7%,
      #000 12%,
      #000 88%,
      rgba(0,0,0,.65) 93%,
      rgba(0,0,0,.18) 97%,
      transparent 100%
    );
}


/* V37  EXTENDED EDGE FADE */
#act-reviews .act-reviews-stage{
  -webkit-mask-image:
    linear-gradient(
      to right,
      transparent 0%,
      rgba(0,0,0,.12) 8%,
      rgba(0,0,0,.35) 18%,
      rgba(0,0,0,.68) 28%,
      #000 36%,
      #000 64%,
      rgba(0,0,0,.68) 72%,
      rgba(0,0,0,.35) 82%,
      rgba(0,0,0,.12) 92%,
      transparent 100%
    );

  mask-image:
    linear-gradient(
      to right,
      transparent 0%,
      rgba(0,0,0,.12) 8%,
      rgba(0,0,0,.35) 18%,
      rgba(0,0,0,.68) 28%,
      #000 36%,
      #000 64%,
      rgba(0,0,0,.68) 72%,
      rgba(0,0,0,.35) 82%,
      rgba(0,0,0,.12) 92%,
      transparent 100%
    );
}



/* =====================================================
   V38  REVIEW READ MORE
===================================================== */

#act-reviews .act-review-card__review{
  display:-webkit-box;

  -webkit-box-orient:vertical;
  -webkit-line-clamp:6;

  overflow:hidden;
}


#act-reviews .act-review-card__more{
  flex:0 0 auto;

  align-self:center;

  margin:
    8px
    0
    0;

  padding:0;

  border:0;
  background:none;

  color:#d7a02b;

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size:11px;
  font-weight:600;

  cursor:pointer;

  text-decoration:none;
}

#act-reviews .act-review-card__more:hover{
  text-decoration:underline;
}


/* =====================================================
   REVIEW MODAL
===================================================== */

.act-review-modal{
  position:fixed;

  inset:0;

  z-index:99999;

  display:flex;

  align-items:center;
  justify-content:center;

  padding:24px;

  visibility:hidden;
  opacity:0;

  transition:
    opacity .24s ease,
    visibility .24s ease;
}

.act-review-modal.is-open{
  visibility:visible;
  opacity:1;
}


.act-review-modal__backdrop{
  position:absolute;

  inset:0;

  background:
    rgba(8,35,67,.62);

  backdrop-filter:
    blur(5px);
}


.act-review-modal__dialog{
  position:relative;

  z-index:2;

  width:
    min(
      560px,
      calc(100vw - 40px)
    );

  max-height:
    min(
      680px,
      calc(100vh - 48px)
    );

  overflow:auto;

  padding:
    42px
    42px
    36px;

  background:#fff;

  border:
    1px solid
    rgba(8,35,67,.10);

  box-shadow:
    0 28px 80px
    rgba(3,20,39,.28);
}


.act-review-modal__close{
  position:absolute;

  top:15px;
  right:18px;

  width:34px;
  height:34px;

  border:0;

  background:none;

  color:#082343;

  font-size:28px;
  line-height:1;

  cursor:pointer;
}


.act-review-modal__title{
  margin:
    0
    0
    22px;

  color:#082343;

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size:21px;
  font-weight:700;

  text-align:center;
}


.act-review-modal__text{
  margin:0;

  color:#263442;

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size:15px;
  line-height:1.7;

  text-align:center;
}


.act-review-modal__client{
  margin-top:28px;

  padding-top:18px;

  border-top:
    1px solid
    rgba(8,35,67,.10);

  color:#082343;

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size:12px;
  font-weight:400;

  text-align:left;
}


body.act-review-modal-open{
  overflow:hidden;
}


@media(max-width:600px){

  .act-review-modal{
    padding:16px;
  }

  .act-review-modal__dialog{
    padding:
      38px
      24px
      28px;
  }

}
