/* RB Testimonials — Frontend CSS */

/* Reset */
.rbtm-testimonials, .rbtm-testimonials *, .rbtm-testimonials *::before, .rbtm-testimonials *::after,
.rbtm-single, .rbtm-single *, .rbtm-single *::before, .rbtm-single *::after,
.rbtm-lightbox, .rbtm-lightbox *, .rbtm-lightbox *::before, .rbtm-lightbox *::after {
    box-sizing: border-box; margin: 0; padding: 0; border: 0; font: inherit; line-height: inherit;
}
.rbtm-testimonials a, .rbtm-single a { text-decoration: none; color: inherit; }
.rbtm-testimonials img, .rbtm-single img { display: block; max-width: 100%; height: auto; }

/* Variables */
.rbtm-testimonials, .rbtm-single {
    --rbtm-card-bg: var(--theme-palette-color-8, #ffffff); --rbtm-card-border: #e5e7eb; --rbtm-card-radius: 12px;
    --rbtm-card-shadow: 0 1px 3px rgba(0,0,0,.1); --rbtm-card-hover-shadow: 0 8px 24px rgba(0,0,0,.15);
    --rbtm-gap: 24px; --rbtm-overlay-bg: rgba(0,0,0,.4); --rbtm-overlay-color: #ffffff;
    --rbtm-lightbox-bg: rgba(0,0,0,.9); --rbtm-title-color: inherit; --rbtm-title-size: 1.1rem;
    --rbtm-date-color: #6b7280; --rbtm-issuer-color: var(--theme-palette-color-1, #2563eb);
    --rbtm-download-bg: var(--theme-palette-color-1, #2563eb); --rbtm-download-color: #ffffff;
    --rbtm-pill-bg: var(--theme-palette-color-5, #f3f4f6); --rbtm-pill-active-bg: var(--theme-palette-color-1, #3b82f6); --rbtm-pill-active-color: #ffffff;
}

/* Dark theme */
.rbtm-testimonials--theme-dark, .rbtm-single--theme-dark {
    --rbtm-card-bg: #1f2937; --rbtm-card-border: #374151; --rbtm-title-color: #f9fafb;
    --rbtm-pill-bg: #374151; --rbtm-date-color: #9ca3af; --rbtm-issuer-color: #60a5fa;
}

/* Filter */
.rbtm-testimonials__filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: var(--rbtm-gap); }
.rbtm-testimonials__pill { padding: 8px 16px; border-radius: 20px; background: var(--rbtm-pill-bg); font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color .2s, color .2s; -webkit-appearance: none; appearance: none; color: inherit; }
.rbtm-testimonials__pill--active { background: var(--rbtm-pill-active-bg); color: var(--rbtm-pill-active-color); }

/* Grid */
.rbtm-testimonials--grid .rbtm-testimonials__grid { display: grid; grid-template-columns: repeat(var(--rbtm-columns, 3), 1fr); gap: var(--rbtm-gap); }

/* List */
.rbtm-testimonials--list .rbtm-testimonials__grid { display: flex; flex-direction: column; gap: var(--rbtm-gap); }
.rbtm-testimonials--list .rbtm-card { display: flex; flex-direction: row; align-items: stretch; }
.rbtm-testimonials--list .rbtm-card__image { width: 200px; flex-shrink: 0; }
.rbtm-testimonials--list .rbtm-card__image img { width: 100%; height: 100%; object-fit: cover; }

/* Masonry */
.rbtm-testimonials--masonry .rbtm-testimonials__grid { columns: var(--rbtm-columns, 3); column-gap: var(--rbtm-gap); }
.rbtm-testimonials--masonry .rbtm-card { break-inside: avoid; margin-bottom: var(--rbtm-gap); }

/* Slider */
.rbtm-testimonials--slider .rbtm-testimonials__grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: var(--rbtm-gap); padding-bottom: 8px; }
.rbtm-testimonials--slider .rbtm-card { flex: 0 0 calc((100% - var(--rbtm-gap) * 2) / var(--rbtm-columns, 3)); scroll-snap-align: start; }

/* Card */
.rbtm-card { background: var(--rbtm-card-bg); border: 1px solid var(--rbtm-card-border); border-radius: var(--rbtm-card-radius); box-shadow: var(--rbtm-card-shadow); overflow: hidden; transition: box-shadow .2s, transform .2s; }
.rbtm-card:hover { box-shadow: var(--rbtm-card-hover-shadow); transform: translateY(-3px); }

/* Card image + overlay */
.rbtm-card__image { position: relative; overflow: hidden; }
.rbtm-card__image img { width: 100%; aspect-ratio: 3/4; object-fit: cover; transition: transform .3s; }
.rbtm-card:hover .rbtm-card__image img { transform: scale(1.05); }
.rbtm-card__overlay { position: absolute; inset: 0; background: var(--rbtm-overlay-bg); color: var(--rbtm-overlay-color); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .3s; }
.rbtm-card:hover .rbtm-card__overlay { opacity: 1; }
.rbtm-card__magnifier { stroke: var(--rbtm-overlay-color); }
.rbtm-card__link { display: block; cursor: pointer; }

/* Card body */
.rbtm-card__body { padding: 12px 16px; display: flex; flex-direction: column; gap: 6px; }
.rbtm-card__title { font-size: var(--rbtm-title-size); font-weight: 600; color: var(--rbtm-title-color); line-height: 1.3; }
.rbtm-card__date { font-size: 13px; color: var(--rbtm-date-color); }
.rbtm-card__issuer { font-size: 13px; font-weight: 500; color: var(--rbtm-issuer-color); }
.rbtm-card__excerpt { font-size: 14px; line-height: 1.5; color: #6b7280; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Download button */
.rbtm-card__download { margin-top: auto; padding-top: 8px; }
.rbtm-card__download-btn { display: inline-block; padding: 8px 20px; background: var(--rbtm-download-bg); color: var(--rbtm-download-color); border-radius: 8px; font-size: 13px; font-weight: 600; transition: opacity .2s; cursor: pointer; }
.rbtm-card__download-btn:hover { opacity: .9; }

/* Single */
.rbtm-single { background: var(--rbtm-card-bg); border: 1px solid var(--rbtm-card-border); border-radius: var(--rbtm-card-radius); overflow: hidden; }
.rbtm-single--card { max-width: 400px; }
.rbtm-single--compact { display: flex; flex-direction: row; max-width: 600px; }
.rbtm-single--compact .rbtm-single__image { width: 200px; flex-shrink: 0; }
.rbtm-single__image img { width: 100%; object-fit: cover; }
.rbtm-single__image .rbtm-card__link { display: block; cursor: pointer; }
.rbtm-single__body { padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.rbtm-single__title { font-size: 1.25rem; font-weight: 700; color: var(--rbtm-title-color); }
.rbtm-single__date { font-size: 14px; color: var(--rbtm-date-color); }
.rbtm-single__issuer { font-size: 14px; font-weight: 500; color: var(--rbtm-issuer-color); }
.rbtm-single__excerpt { font-size: 15px; line-height: 1.6; color: #6b7280; }
.rbtm-single__download { margin-top: auto; }

/* Lightbox */
.rbtm-lightbox { position: fixed; inset: 0; z-index: 99999; background: var(--rbtm-lightbox-bg); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .3s; }
.rbtm-lightbox--visible { opacity: 1; }
.rbtm-lightbox__close { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; background: rgba(255,255,255,.1); border-radius: 50%; color: #fff; font-size: 24px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s; -webkit-appearance: none; appearance: none; }
.rbtm-lightbox__close:hover { background: rgba(255,255,255,.2); }
.rbtm-lightbox__img { max-width: 90vw; max-height: 85vh; object-fit: contain; border-radius: 4px; }
.rbtm-lightbox__caption { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); color: #fff; font-size: 14px; text-align: center; max-width: 80vw; }
.rbtm-lightbox__counter { position: absolute; top: 20px; left: 20px; color: rgba(255,255,255,.7); font-size: 14px; }
.rbtm-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; background: rgba(255,255,255,.1); border-radius: 50%; color: #fff; font-size: 24px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s; -webkit-appearance: none; appearance: none; }
.rbtm-lightbox__nav:hover { background: rgba(255,255,255,.25); }
.rbtm-lightbox__nav--prev { left: 16px; }
.rbtm-lightbox__nav--next { right: 16px; }

/* Responsive */
@media (max-width: 1024px) {
    .rbtm-testimonials--grid .rbtm-testimonials__grid { grid-template-columns: repeat(min(var(--rbtm-columns, 3), 2), 1fr); }
    .rbtm-testimonials--masonry .rbtm-testimonials__grid { columns: 2; }
    .rbtm-testimonials--slider .rbtm-card { flex: 0 0 calc((100% - var(--rbtm-gap)) / 2); }
}
@media (max-width: 768px) {
    .rbtm-testimonials--grid .rbtm-testimonials__grid { grid-template-columns: 1fr; }
    .rbtm-testimonials--list .rbtm-card { flex-direction: column; }
    .rbtm-testimonials--list .rbtm-card__image { width: 100%; }
    .rbtm-testimonials--masonry .rbtm-testimonials__grid { columns: 1; }
    .rbtm-testimonials--slider .rbtm-card { flex: 0 0 100%; }
    .rbtm-single--compact { flex-direction: column; }
    .rbtm-single--compact .rbtm-single__image { width: 100%; }
    .rbtm-lightbox__nav { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .rbtm-card, .rbtm-card__image img, .rbtm-card__overlay, .rbtm-lightbox { transition: none; }
    .rbtm-card:hover { transform: none; }
    .rbtm-card:hover .rbtm-card__image img { transform: none; }
}
