/* Testimonials section styles — isolated to this component */
.testimonial-section {
  padding: 48px 0 64px;
  background: transparent;
}
.testimonial-top {
  text-align: center;
  margin-bottom: 28px;
}
.testimonial-small {
  display: inline-block;
  color: #6c63ff;
  font-weight: 700;
  letter-spacing: .08em;
  font-size: 12px;
}
.testimonial-title {
  font-size: 48px; /* increased per request */
  font-weight: 800;
  margin: 12px 0 14px;
  color: #08102a; /* dark navy for the main title text */
  line-height: 1.02;
  letter-spacing: -0.5px;
  text-shadow: none; /* primary text doesn't need glow */
}

/* highlighted portion of the title */
.testimonial-title .highlight {
  background: linear-gradient(90deg, #1665ff 0%, #2fb0ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  text-shadow: 0 14px 36px rgba(47,176,255,0.08);
}

/* responsive sizes */
@media (max-width: 991px) {
  .testimonial-title { font-size: 34px; }
}
@media (max-width: 480px) {
  .testimonial-title { font-size: 22px; }
  .testimonial-title .highlight { text-shadow: 0 10px 24px rgba(47,176,255,0.06); }
}
.testimonial-subtitle {
  color: #586174;
  font-size: 16px;
  margin-bottom: 12px;
}
.testimonial-meta {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-bottom: 30px;
}
.testimonial-meta .rating {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:20px;
  color:#111;
}
.testimonial-meta .rating .stars { color:#FFB020; }
.testimonial-meta .trust { color:#64748b; font-size:16px; }

/* Slider */
.testimonial-slider {
  display:block;
}
.testimonial-card {
  background:#fff;
  border-radius:14px;
 padding:36px 34px; /* slightly larger, consistent padding */
  border: 1px solid #eef2f8;
 /* removed box-shadow for flat look */
 min-height: 260px; /* increased for better balance */
  display:flex;
  flex-direction:column;
 justify-content:flex-start; /* start content from top */
  position:relative;
 flex: 1 1 auto; /* allow the card to stretch to fill the slide */
 transition: transform 260ms cubic-bezier(.2,.9,.3,1);
 box-sizing: border-box;
}

/* hover effect retains slight uplift but no shadow */
@media (hover: hover) and (pointer: fine) {
 .testimonial-card:hover {
   transform: translateY(-6px) scale(1.01);
 }
}

/* ensure internal content doesn't overflow rounded corners */
.testimonial-card * { backface-visibility: hidden; }

/* author row separation */
.testimonial-author {
 display:flex;
 align-items:center;
 gap:14px;
 padding-top:18px;
 margin-top: auto; /* push author to the bottom */
 border-top: 1px solid #eef6fb; /* thin subtle divider */
}

.testimonial-author img {
 width:48px;
 height:48px;
 border-radius:50%;
 object-fit:cover;
}

.testimonial-author .meta { font-size:14px; color:#344054; }
.testimonial-author .meta .name { font-weight:700; color:#0f172a; }
.testimonial-author .meta .role { color:#6b7280; font-size:13px; }
.testimonial-quote {
  font-size:19px;
  color:#0f172a;
  line-height:1.72;
  margin-bottom:20px;
  text-align:left; /* ensure left alignment */
  padding-right:8px; /* keep contents from touching the right edge */
  padding-top:4px;
  flex: 1 1 auto; /* allow quote to take available space so author sits at bottom */
}
.testimonial-author {
  display:flex;
  align-items:center;
  gap:10px;
}
.testimonial-author img {
  width:44px;
  height:44px;
  border-radius:50%;
  object-fit:cover;
}
.testimonial-author .meta {
  font-size:14px;
  color:#344054;
}
.testimonial-author .meta .name { font-weight:700; color:#0f172a; }
.testimonial-author .meta .role { color:#6b7280; font-size:13px; }

/* Slick overrides */
.testimonial-slider { position: relative; padding: 22px 60px; }
/* ensure only the three slides are visible — prevent extras peeking in */
.testimonial-slider .slick-list { overflow: hidden; }
/* each slide acts as a flex container so cards match height; horizontal padding creates consistent gap */
/* set 24px each side => 48px total gap between cards */
.slick-slide { padding: 0 24px; box-sizing:border-box; display:flex; align-items:stretch; }
/* small horizontal gap between cards is 48px (24px each side) */
/* tighten outer slider padding so cards sit nicely within the container and accommodate arrows */
.testimonial-slider { position: relative; padding: 24px 56px; }
.slick-slide .testimonial-card { width: 100%; }
.slick-arrow { width:52px; height:52px; border-radius:50%; background: rgba(255,255,255,0.98); box-shadow:0 18px 40px rgba(9,19,55,0.06); display:flex; align-items:center; justify-content:center; border:1px solid rgba(9,19,55,0.06); }
.slick-prev:before, .slick-next:before { display:none; }
/* place arrows slightly outside the cards for the reference look */
.slick-prev, .testimonial-slider .slick-prev { position:absolute; left:-24px; top:50%; transform:translateY(-50%); z-index:8; }
.slick-next, .testimonial-slider .slick-next { position:absolute; right:-24px; top:50%; transform:translateY(-50%); z-index:8; }
/* arrow icon style (use a colored chevron or text) */
.slick-arrow span { font-size:20px; color:#2b3b83; font-weight:700; }
.slick-arrow:hover { transform:scale(1.03); box-shadow:0 22px 48px rgba(91,59,255,0.12); }
.slick-arrow:focus { outline:none; }
.slick-dots { display:none; }

/* responsive: bring arrows inward on small screens */
@media (max-width: 991px) {
  .testimonial-slider { padding: 10px 12px; }
  .slick-prev, .testimonial-slider .slick-prev { left:6px; }
  .slick-next, .testimonial-slider .slick-next { right:6px; }
}

/* ensure the card element fills the slide area so heights match */
.slick-slide .testimonial-card { width:100%; }

/* reduce gap slightly on small screens */
@media (max-width: 767px) {
  .slick-slide { padding: 8px; }
}

/* Responsive */
@media (max-width: 991px) {
  .testimonial-title { font-size:24px; }
  .testimonial-card { padding:18px; }
}

@media (max-width: 767px) {
  .testimonial-title { font-size:20px; }
  .testimonial-meta { flex-direction:column; gap:6px; }
}

/* Final carousel geometry: Slick owns slide widths, while the list clips only
   the off-screen slides so each visible card remains complete. */
.testimonial-section .testimonial-slider {
  width:100%;
  padding:0 12px !important;
  overflow:hidden;
}

.testimonial-section .testimonial-slider .slick-list {
  width:100%;
  margin:0;
  overflow:hidden !important;
}

.testimonial-section .testimonial-slider .slick-track {
  display:flex !important;
  align-items:stretch !important;
}

.testimonial-section .testimonial-slider .slick-slide {
  height:auto;
  padding:0 8px !important;
  flex:0 0 auto !important;
  max-width:none !important;
  box-sizing:border-box !important;
}

.testimonial-section .testimonial-slider .testimonial-card {
  min-width:0;
  min-height:260px !important;
  box-sizing:border-box !important;
}

@media (max-width:991px) {
  .testimonial-section .testimonial-slider { padding:0 8px !important; }
  .testimonial-section .testimonial-slider .slick-slide { padding:0 6px !important; }
}

@media (max-width:767px) {
  .testimonial-section .testimonial-slider .testimonial-card {
    min-height:230px !important;
  }
}

/* Slick adds the slide width inline. Keep that width instead of expanding a
   card to the entire track, especially at the one-card mobile breakpoint. */
.testimonial-section .testimonial-slider .slick-slide {
  flex:0 0 auto !important;
  max-width:none !important;
}

.testimonial-section .testimonial-slider .slick-slide {
  padding:0 !important;
}

.testimonial-section .testimonial-slider .testimonial-slide {
  width:100%;
  height:100%;
  padding:0 10px;
  box-sizing:border-box;
}

.testimonial-section .testimonial-slider .testimonial-slide .testimonial-card {
  width:100% !important;
}

/* Match the reference layout: three cards in one row, equal width, consistent small gap */
.testimonial-section { --testimonial-gap: 18px; }

.testimonial-section .testimonial-slider {
  position: relative;
  padding: 0 40px !important;
}

.testimonial-section .testimonial-slider .slick-list {
  overflow: hidden !important;
  padding: 0 !important;
}

.testimonial-section .testimonial-slider .slick-track {
  display: flex !important;
  align-items: stretch !important;
  gap: 0 !important; /* use slide padding and explicit widths instead of track gap */
}

.testimonial-section .testimonial-slider .slick-slide {
  /* Let Slick calculate widths so layout stays consistent */
  box-sizing: border-box !important;
  display: flex !important;
  align-items: stretch !important;
  padding: 0 12px !important;
  margin: 0 !important;
}

.testimonial-section .testimonial-slider .slick-slide .testimonial-card {
  width: 100% !important;
  min-height: 230px !important;
  padding: 18px 18px 0 !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,0.55) !important;
  border: 1px solid #dfe8f3 !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  box-sizing: border-box !important;
}

.testimonial-section .testimonial-slider .testimonial-card {
  justify-content: flex-start !important;
}

.testimonial-section .testimonial-slider .testimonial-quote {
  font-size: 17px !important;
  line-height: 1.5 !important;
  color: #1b2e4a !important;
  margin: 0 0 18px !important;
  text-align: left !important;
  flex: 1 1 auto !important;
  padding: 5px !important;
}

.testimonial-section .testimonial-slider .testimonial-author {
  margin-top: auto !important;
  padding-top: 0px !important;
  border-top: 1px solid #e5edf7 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.testimonial-section .testimonial-slider .testimonial-author img {
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  flex-shrink: 0 !important;
  margin-left:8px
}

.testimonial-section .testimonial-slider .testimonial-author .meta {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}

.testimonial-section .testimonial-slider .testimonial-author .meta .name {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #1a2b45 !important;
}

.testimonial-section .testimonial-slider .testimonial-author .meta .role {
  font-size: 13px !important;
  color: #6d7c93 !important;
}

/* Arrow buttons styled like the reference */
.testimonial-section .testimonial-slider .slick-arrow {
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,0.95) !important;
  border: 1px solid #dfe9f5 !important;
  box-shadow: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.testimonial-section .testimonial-slider .slick-arrow span {
  font-size: 20px !important;
  color: #1e2f5d !important;
  font-weight: 700 !important;
}

.testimonial-section .testimonial-slider .slick-prev {
  left: -12px !important;
}

.testimonial-section .testimonial-slider .slick-next {
  right: -12px !important;
}

/* Reference-style testimonial slider */
.testimonial-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 8% 0%, rgba(36, 107, 253, 0.1) 0%, transparent 38%),
    radial-gradient(ellipse at 92% 100%, rgba(32, 165, 255, 0.1) 0%, transparent 42%),
    linear-gradient(135deg, #f7faff 0%, #edf4ff 52%, #f8fbff 100%);
  padding: 72px 0 48px;
}

.testimonial-section::before,
.testimonial-section::after {
  position: absolute;
  width: 190px;
  height: 190px;
  border: 1px solid rgba(29, 114, 255, 0.12);
  border-radius: 28px;
  content: "";
  pointer-events: none;
  transform: rotate(45deg);
}

.testimonial-section::before {
  top: -128px;
  left: -92px;
  box-shadow: 0 0 0 12px rgba(29, 114, 255, 0.025);
}

.testimonial-section::after {
  right: -92px;
  bottom: -128px;
  box-shadow: 0 0 0 12px rgba(32, 165, 255, 0.025);
}

.testimonial-section > .container {
  position: relative;
  z-index: 1;
}

.testimonial-header {
  text-align: center;
  margin-bottom: 28px;
}

.testimonial-kicker {
  display: inline-block;
  position: relative;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #1d72ff;
  text-transform: uppercase;
  margin-bottom: 8px;
  padding: 0 18px;
}
.testimonial-kicker::before, .testimonial-kicker::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 46px;
  height: 2px;
  background: rgba(29,114,255,0.12);
}
.testimonial-kicker::before { left: -58px; transform: translateY(-50%); }
.testimonial-kicker::after { right: -58px; transform: translateY(-50%); }

.testimonial-title {
  font-size: 45px;
  line-height: 1.02;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #0d1a39;
  margin: 0;
}
.testimonial-title .highlight {
  color: #1d72ff;
  -webkit-text-stroke: 0.5px rgba(29,114,255,0.03);
}

.testimonial-subtitle {
  margin: 12px 0 0;
  font-size: 17px;
  color: #5c687b;
  line-height: 1.6;
}

.testimonial-slider {
  position: relative;
  margin-top: 18px;
}

.testimonial-slider .slick-list {
  overflow: hidden;
}

.testimonial-slider .slick-track {
  display: flex;
  align-items: stretch;
}

.testimonial-slider .slick-slide {
  padding: 0 12px;
  box-sizing: border-box;
}

.testimonial-card {
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid #dfe8f3;
  border-radius: 16px;
  min-height: 220px;
  padding: 18px 18px 14px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  box-sizing: border-box;
}

.testimonial-quote-wrap {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 16px;
}

.quote-mark {
  color: #0f6dff;
  font-size: 34px;
  line-height: 1;
  font-weight: 700;
  margin: 0;
}

.testimonial-text {
  color: #1a2f4f;
  font-size: 17px;
  line-height: 1.55;
  font-weight: 500;
  flex: 1 1 auto;
  margin: 0;
}

.testimonial-author {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid #e7edf8;
  padding-top: 14px;
  margin-top: auto;
}

.client-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.client-logo {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #eaf3ff, #d7e7ff);
  border: 1px solid #cfe0ff;
  color: #1d6dff;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-left:7px;
  padding: 5px;
  box-sizing: border-box;
  overflow: hidden;
}

.client-logo img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 0;
}

.client-info {
  min-width: 0;
}

.client-name {
  font-size: 14px;
  font-weight: 700;
  color: #111d35;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.client-role {
  font-size: 11px;
  color: #6a768c;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.stars {
  color: #ffb21f;
  font-size: 16px;
  letter-spacing: 0.12em;
  flex-shrink: 0;
}


.testimonial-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 18px;
}

.testimonial-dots .dot {
  width: 10px;
  height: 10px;
  border: none;
  border-radius: 50%;
  background: #d7dfe9;
  padding: 0;
  cursor: pointer;
  transition: all 0.25s ease;
}

.testimonial-dots .dot.active {
  width: 28px;
  border-radius: 999px;
  background: #1d72ff;
}

.testimonial-slider .slick-arrow {
  display: none !important;
}

/* Alignment enforcement: make slides and cards stretch to equal heights and remove offsets */
.testimonial-section .testimonial-slider .slick-list,
.testimonial-section .testimonial-slider .slick-track,
.testimonial-section .testimonial-slider .slick-slide {
box-sizing: border-box !important;
}

.testimonial-section .testimonial-slider .slick-slide {
display: flex !important;
align-items: stretch !important;
height: auto !important;
padding: 0 12px !important;
}

.testimonial-section .testimonial-slider .slick-slide > .testimonial-card {
display: flex !important;
flex-direction: column !important;
justify-content: space-between !important;
height: 100% !important;
box-sizing: border-box !important;
}

/* Reset possible global margins inside cards that shift vertical positions */
.testimonial-section .testimonial-slider .testimonial-card * {
margin: 0 !important;
padding: 0 !important;
}

/* Keep author row padding only where needed */
.testimonial-section .testimonial-slider .testimonial-author {
padding-top: 14px !important;
margin-top: auto !important;
}

@media (max-width: 991px) {
  .testimonial-title {
    font-size: 42px;
  }

  .testimonial-card {
    min-height: 200px;
  }
}

@media (max-width: 767px) {
  .testimonial-section {
    padding: 56px 0 40px;
  }

  .testimonial-title {
    font-size: 32px;
  }

  .testimonial-subtitle {
    font-size: 15px;
  }

  .testimonial-slider .slick-slide {
    padding: 0 8px;
  }

  .testimonial-card {
    min-height: 180px;
    padding: 16px 14px 12px;
  }

  .testimonial-text {
    font-size: 15px;
  }

  .client-name {
    font-size: 15px;
  }
}
