/* Homepage testimonial feature */
.home-brief .hb-voices {
  position:relative;
  overflow:hidden;
  padding:clamp(78px,9vw,125px) 0;
  background:#D9D4CB;
  color:#29503D;
}
.home-brief .hb-voices-layout {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  align-items:center;
  gap:clamp(38px,7vw,110px);
}
.hb-voices-intro { position:relative;z-index:2; }
.hb-voices-kicker {
  display:inline-flex;align-items:center;gap:14px;
  margin:0 0 25px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
}
.hb-voices-kicker span {color:#CC3781;font-size:2rem;line-height:1}
.home-brief .hb-voices h2 {
  max-width:670px;margin:0 0 38px;
  font:800 clamp(2.4rem,4.8vw,5.4rem)/1.07 Manrope,sans-serif;
  letter-spacing:-.065em;
}
.hb-voices-link:focus-visible,.hb-voices-controls button:focus-visible {
  outline:3px solid #04A7B5;outline-offset:4px;
}
.hb-voices-feature {position:relative;min-width:0;padding:24px 0}
.hb-voices-orbit {
  position:absolute;inset:0 -30px;border:1px solid #29503D55;
  border-radius:50%;transform:rotate(-13deg);pointer-events:none;
}
.hb-voices-feature::before,.hb-voices-feature::after {
  content:"";position:absolute;border-radius:50%;pointer-events:none;
}
.hb-voices-feature::before {
  width:95px;height:95px;background:#CC3781;top:-24px;right:-27px;
}
.hb-voices-feature::after {
  width:58px;height:58px;background:#04A7B5;bottom:5px;left:-32px;
}
.hb-voices-slides {position:relative;z-index:1}
.hb-voice-card {
  box-sizing:border-box;min-height:330px;padding:clamp(28px,4vw,55px);
  border:2px solid #29503D;border-radius:46px 46px 105px 46px;
  background:#F7F6F2;box-shadow:14px 14px 0 #A9BBA9;
}
.hb-voice-card[hidden] {display:none!important}
.hb-voice-mark {
  display:block;height:52px;color:#CC3781;
  font:italic 700 6rem/1 Georgia,serif;
}
.hb-voice-card blockquote {
  margin:14px 0 30px;overflow-wrap:anywhere;
  font:italic 500 clamp(1.3rem,2vw,2rem)/1.37 'Source Serif 4',Georgia,serif;
}
.hb-voice-person {display:flex;align-items:center;gap:14px;min-width:0}
.hb-voice-headshot {
  width:54px;height:54px;flex:none;border-radius:50%;
  overflow:hidden;box-shadow:0 0 0 3px #A9BBA9;
}
.hb-voice-headshot img {display:block;width:100%;height:100%;object-fit:cover}
.hb-voice-person-copy {display:flex;flex-direction:column;gap:3px;min-width:0}
.hb-voice-person-copy strong {font-size:1rem}
.hb-voice-person-copy span {font-size:.86rem;line-height:1.35}
.hb-voice-logo {margin-left:auto;max-width:80px;flex:none}
.hb-voice-logo img {display:block;max-width:80px;max-height:42px;width:auto;height:auto;object-fit:contain}
.hb-voices-controls {
  position:relative;z-index:2;display:flex;align-items:center;
  justify-content:flex-end;gap:12px;margin:24px 5px 0;
}
.hb-voices-controls button {
  width:44px;height:44px;border:1px solid #29503D;border-radius:50%;
  background:transparent;color:#29503D;cursor:pointer;font-size:1.3rem;
}
.hb-voices-controls button:hover {background:#29503D;color:#fff}
.hb-voice-count {min-width:65px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
@media(max-width:850px) {
  .home-brief .hb-voices-layout {grid-template-columns:1fr;gap:30px}
  .hb-voices-feature {max-width:640px;width:100%;margin:auto}
}
@media(max-width:600px) {
  .hb-voice-card {min-height:0;border-radius:32px 32px 70px 32px}
  .hb-voices-feature::before {right:0}
  .hb-voices-feature::after {left:0}
  .hb-voice-logo {max-width:55px}
  .hb-voice-logo img {max-width:55px}
}
@media(prefers-reduced-motion:reduce) {
}


/* Home voices finishing pass */
/* Warm stone shows through the rounded corners instead of white. */
.home-brief { background:#D9D4CB; }
.home-brief .hb-voices { background:#D9D4CB; }
.home-brief .hb-voices-kicker { gap:0; }
.home-brief .hb-voice-logo {
  display:flex;
  align-items:center;
  justify-content:center;
  width:auto;
  max-width:min(110px,23%);
  min-width:0;
  margin-left:auto;
  flex:0 1 110px;
  overflow:visible;
}
.home-brief .hb-voice-logo img {
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:55px;
  object-fit:contain;
  object-position:center;
  border-radius:0;
  box-shadow:none;
}
.home-brief .hb-voices-controls {
  justify-content:flex-end;
  gap:13px;
}
.home-brief .hb-voices-progress {
  position:relative;
  display:block;
  width:clamp(55px,8vw,100px);
  height:3px;
  overflow:hidden;
  border-radius:99px;
  background:rgba(41,80,61,.24);
}
.home-brief .hb-voices-progress span {
  display:block;
  width:100%;
  height:100%;
  background:#29503D;
  transform:scaleX(0);
  transform-origin:left;
}
.home-brief .hb-voices-controls .hb-voice-pause {
  font-size:1rem;
  font-weight:800;
}
.home-brief .hb-voices-controls button:focus-visible,
.home-brief .hb-voices-link:focus-visible {
  outline:3px solid #04A7B5;
  outline-offset:4px;
}
@media(max-width:600px) {
  .home-brief .hb-voice-logo { max-width:64px; flex-basis:64px; }
  .home-brief .hb-voice-logo img { max-width:64px; max-height:42px; }
}
@media(prefers-reduced-motion:reduce) {
  .home-brief .hb-voices-progress span { transition:none; }
}

/* Shared homepage heading scale and CTA; do not duplicate button visuals here. */
.home-brief .hb-voices .hb-voices-intro h2 {
  font-size: var(--tlv-section-heading) !important;
  line-height: 1.05;
  text-wrap: balance;
}
.home-brief .hb-voices .hb-voices-link {
  margin-top: 1.5rem;
  max-width: 100%;
  white-space: normal;
}
.hb-voices-slides { position: relative; }


/* Directional carousel: contain motion before it can reach the heading.
   Extra right/bottom room preserves the existing card shadow. */
.home-brief .hb-voices-slides {
  touch-action: pan-y pinch-zoom;
  isolation: isolate;

}
.home-brief .hb-voices-slides > .hb-voice-card {
  transition: none;
  animation: none;
  backface-visibility: hidden;
}

/* Fade outside the resting card, never slice through its face or shadow. */
.home-brief .hb-voices-viewport {
  --voice-gutter: 80px;
  position: relative;
  z-index: 1;
  margin: -24px calc(-1 * var(--voice-gutter)) -28px;
  padding: 24px var(--voice-gutter) 28px;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 calc(var(--voice-gutter) - 16px), #000 calc(100% - var(--voice-gutter) + 16px), transparent);
  mask-image: linear-gradient(to right, transparent, #000 calc(var(--voice-gutter) - 16px), #000 calc(100% - var(--voice-gutter) + 16px), transparent);
}
@media (max-width: 850px) {
  .home-brief .hb-voices-viewport { --voice-gutter: 44px; }
}

/* Testimonial CTA: match the header Let's Talk gradient. */
.home-brief .hb-voices .hb-voices-link {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transition:transform .35s ease,color .35s ease;
}
.home-brief .hb-voices .hb-voices-link::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  width:100%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(105deg,#3B7A5C,#04A7B5,#70235C,#CC3781,#3B7A5C);
  background-size:185% 100%;
  opacity:0;
  animation:tlv-nav-flow 7.5s ease-in-out infinite alternate;
  transition:opacity .35s ease;
}
.home-brief .hb-voices .hb-voices-link:hover,
.home-brief .hb-voices .hb-voices-link:focus-visible {
  background:#29503D;
  color:#fff;
  transform:translateY(-2px);
}
.home-brief .hb-voices .hb-voices-link:hover::before,
.home-brief .hb-voices .hb-voices-link:focus-visible::before { opacity:1; }
/* Mobile/tablet: heading, quotes and controls, then CTA. */
@media(max-width:850px) {
  .home-brief .hb-voices-intro { display:contents; }
  .home-brief .hb-voices-intro h2 { order:1; margin-bottom:0; }
  .home-brief .hb-voices-feature { order:2; }
  .home-brief .hb-voices .hb-voices-link {
    order:3;
    justify-self:start;
    width:fit-content;
    margin:0;
  }
}
@media(prefers-reduced-motion:reduce) {
  .home-brief .hb-voices .hb-voices-link::before { animation:none; transition:none; }
  .home-brief .hb-voices .hb-voices-link { transition:none; }
}
