/* Shared testimonial-carousel styling in Amira's palette.
   Applies on every page, replacing the per-page Elementor CSS that only
   existed for the Testimonials page (which left other pages with browser
   defaults: blue names, square photos, grey boxes). */

.tss-wrapper .single-item-wrapper{
  background:#fff;
  border:1.5px solid #e6d3cb;
  border-top:4px solid #d3a99d;
  border-radius:16px;
  padding:28px 24px 24px;
  margin:8px 10px 18px;
  box-shadow:0 3px 6px rgba(85,72,70,.05),0 14px 34px rgba(85,72,70,.10);
  text-align:center;
  height:auto;
}

/* round portraits */
.tss-wrapper .profile-img-wrapper{
  width:96px;height:96px;margin:0 auto 14px;border-radius:50%;
  overflow:hidden;background:#f4ead9;
  border:3px solid #fff;outline:2px solid #e6d3cb;
  box-shadow:0 4px 14px rgba(85,72,70,.18);
}
.tss-wrapper .profile-img-wrapper img{
  width:100%!important;height:100%!important;
  object-fit:cover;object-position:center top;
  border-radius:50%;display:block;
}

/* names and locations in brand colours, never blue */
.tss-wrapper .single-item-wrapper h3.author-name,
.tss-wrapper .single-item-wrapper h3.author-name a,
.tss-wrapper h3.author-name{
  color:#b07d74!important;
  font-family:'IBM Plex Serif',Georgia,serif;
  font-size:1.12rem;font-weight:600;font-style:italic;
  margin:0 0 2px;text-align:center;text-decoration:none;
}
.tss-wrapper .single-item-wrapper h4.author-bio,
.tss-wrapper h4.author-bio{
  color:#9a8a86!important;
  font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  margin:0 0 12px;text-align:center;font-weight:500;
}

/* the quote itself: cream, never blue-grey */
.tss-wrapper .item-content-wrapper,
.tss-wrapper .item-content{
  background:transparent!important;
  border:0!important;
  margin:0!important;
  padding:0!important;
}
.tss-wrapper .item-content p,
.tss-wrapper .item-content{
  color:#5d504d!important;
  font-family:'IBM Plex Serif',Georgia,serif;
  font-size:.9rem;line-height:1.7;text-align:center;font-style:italic;
}

/* stars */
.tss-wrapper .rating-wrapper,
.tss-wrapper .tss-rating{ color:#DCA54A; text-align:center; }

/* strip the plugin's decorative arrows/notches that assumed a boxed look */
.tss-wrapper .item-content-wrapper:before,
.tss-wrapper .item-content-wrapper:after,
.tss-wrapper .item-content:before,
.tss-wrapper .item-content:after{ display:none!important; }

/* loading overlay should never linger */
.tss-wrapper .rt-loading-overlay,
.tss-wrapper .rt-loading{ display:none!important; }
.tss-wrapper .tss-pre-loader{ opacity:1!important; }

/* section sits full width like the rest of the page */
.tss-wrapper{ width:100%; }

@media(max-width:900px){
  .tss-wrapper .single-item-wrapper{ padding:22px 18px 18px; margin:6px 6px 14px; }
  .tss-wrapper .profile-img-wrapper{ width:78px;height:78px; }
}

/* people who did not send a photo get Amira's mark rather than a blank grey person */
.tss-wrapper .profile-img-wrapper img[src*="testimonial-placeholder"]{
  object-fit:contain;
  padding:20%;
  background:#fdf7ee;
}

/* pagination dots: Swiper defaults to blue (#007aff) */
.tss-wrapper .swiper-pagination-bullet,
.carousel-wrapper .swiper-pagination-bullet{
  background:#d3a99d!important;
  opacity:.35;
  width:9px;height:9px;
  transition:opacity .2s ease,transform .2s ease;
}
.tss-wrapper .swiper-pagination-bullet-active,
.carousel-wrapper .swiper-pagination-bullet-active{
  background:#b07d74!important;
  opacity:1;
  transform:scale(1.25);
}
.tss-wrapper .swiper-pagination,
.carousel-wrapper .swiper-pagination{ position:relative; margin-top:10px; }

/* the CAROUSEL ONLY (not the submission form, which also uses .tss-wrapper)
   runs full-bleed edge to edge instead of being boxed in by Elementor's
   centered 1240px container, matching the other full-width bands.
   NOTE: the old width:100vw + negative-margin trick broke here because this
   widget sits inside an Elementor flex container (.e-con-inner, display:flex)
   -- negative margins on a flex item make it contribute ~0 to the parent's
   width calculation, which collapsed the whole chain and threw the centering
   math off (the carousel ended up flush against the left edge instead of
   centered, cutting off the right half of the screen). widening the actual
   flex ancestor instead avoids that collapse entirely. */
.e-con-inner:has(#tss-container-1506805106){
  max-width:100%!important;
}
#tss-container-1506805106{
  width:100%!important;max-width:100%!important;
  margin-left:0!important;margin-right:0!important;
  padding-left:32px;padding-right:32px;box-sizing:border-box;
}
@media(max-width:600px){
  #tss-container-1506805106{ padding-left:14px;padding-right:14px; }
}

/* each card hugs its own testimonial (no forced-equal-height boxes with a
   lot of blank space in the short ones). the row itself is still one fixed
   height across every page (set by the longest testimonial), so the nav
   arrows/dots directly under it never jump around as the slide changes. */
.tss-wrapper .swiper-wrapper{ align-items:flex-start; }
.tss-wrapper .swiper-slide{ height:auto!important; }

/* the rare testimonial that runs long (Kimchi, Lana, Michael...) scrolls
   inside its own card instead of stretching the whole row, same treatment
   as the "In Their Own Words" cards above this section */
.tss-wrapper .item-content-wrapper{
  max-height:320px;
  overflow-y:auto;
  padding-right:6px;
  scrollbar-width:thin;
  scrollbar-color:#d3a99d #f4ead9;
}
.tss-wrapper .item-content-wrapper::-webkit-scrollbar{ width:5px; }
.tss-wrapper .item-content-wrapper::-webkit-scrollbar-track{ background:#f4ead9;border-radius:8px; }
.tss-wrapper .item-content-wrapper::-webkit-scrollbar-thumb{ background:#d3a99d;border-radius:8px; }
