/* PHF Testimonial — quote on top, logo / name / role-company centered beneath.
   All values overridable from the Style tab. */
.phf-tm { --phf-tm-align: center; margin: 0; text-align: center; display: flex; flex-direction: column; align-items: var(--phf-tm-align); }
.phf-tm-quote { margin: 0 0 28px; max-width: 100%;
	/* Hard reset: themes/kits style <blockquote> with a left border, italics and
	   padding — that's the "straight bar". Own the element fully. */
	border: 0 !important; padding: 0 !important; background: none !important;
	font-style: normal; quotes: none; box-shadow: none; }
.phf-tm-quote::before, .phf-tm-quote::after { content: none !important; display: none !important; }
.phf-tm-quote p { margin: 0; font-size: 1.35em; line-height: 1.5; font-weight: 500; }
.phf-tm--marks .phf-tm-quote p::before { content: "\201C"; }
.phf-tm--marks .phf-tm-quote p::after  { content: "\201D"; }
.phf-tm-meta { display: flex; flex-direction: column; align-items: var(--phf-tm-align); gap: 4px; }
.phf-tm-logo { margin-block: 12px; line-height: 0; }
.phf-tm-logo img { display: block; max-height: 32px; width: auto; height: auto; }
.phf-tm-avatar img { display: block; width: 64px; height: 64px; object-fit: cover; border-radius: 50%; }
.phf-tm-name { font-weight: 700; }
.phf-tm-role { opacity: .7; font-size: .9em; }
.phf-tm-company { }
@media (max-width: 767px) { .phf-tm-quote p { font-size: 1.1em; } }

/* ---- inline layout: logo in front of name & company ---- */
.phf-tm .phf-tm-meta--inline { display: flex; flex-direction: row; align-items: center; justify-content: var(--phf-tm-align); gap: 14px; text-align: start; }
.phf-tm .phf-tm-meta--inline > .phf-tm-logo { flex: 0 0 auto; }
.phf-tm-meta--inline .phf-tm-logo { margin-block: 0; }
.phf-tm-person { display: flex; flex-direction: column; gap: 2px; align-items: var(--phf-tm-align); }
.phf-tm-meta--inline .phf-tm-person { align-items: flex-start; }

/* ---- carousel wrapper ---- */
.phf-tm-carousel .carousel-item { width: 100%; }
.phf-tm-carousel .phf-tm { width: 100%; }

/* ---- logo frame (Style > Logo > Frame) ---- */
[class*="phf-tm-frame-"]:not(.phf-tm-frame-none) .phf-tm-logo { display: flex; align-items: center; justify-content: center; box-sizing: border-box; overflow: hidden; line-height: 0; }
[class*="phf-tm-frame-"]:not(.phf-tm-frame-none) .phf-tm-logo img { max-width: 100%; max-height: 100% !important; width: auto; height: auto; object-fit: contain; }
.phf-tm-frame-circle .phf-tm-logo { border-radius: 50%; }
.phf-tm-frame-square .phf-tm-logo { border-radius: 0; }
.phf-tm-frame-rounded .phf-tm-logo { border-radius: 12px; }

/* ---- carousel cells: one column by default; rows stack inside a cell ---- */
.phf-tm-carousel .carousel-item { width: 100%; flex: 0 0 100%; box-sizing: border-box; }
.phf-tm-cell { display: flex; flex-direction: column; gap: 24px; }
.phf-tm-cell .phf-tm { width: 100%; }
