/* Blog and testimonial bodies from the admin's Quill editor (cleaned server-side). */
.rich-text { line-height: 1.75; color: #374151; overflow-wrap: anywhere; }
.rich-text h1, .rich-text h2, .rich-text h3 { color: #1f2937; font-weight: 700; margin: 1.75rem 0 0.75rem; }
.rich-text p { margin-bottom: 1rem; }
.rich-text img { max-width: 100%; height: auto; border-radius: 8px; }
.rich-text blockquote { border-left: 4px solid #6366f1; padding-left: 1rem; color: #4b5563; }
.rich-text pre { background: #f3f4f6; padding: 1rem; border-radius: 6px; overflow-x: auto; }
.rich-text a { color: #4f46e5; }
/* Quill 2 writes every list as <ol>; data-list says which kind it is. */
.rich-text ol li[data-list="bullet"] { list-style-type: disc; }
.rich-text ol li[data-list="ordered"] { list-style-type: decimal; }
.rich-text .ql-align-center { text-align: center; }
.rich-text .ql-align-right { text-align: right; }
.rich-text .ql-align-justify { text-align: justify; }
.rich-text .ql-indent-1 { padding-left: 3em; }
.rich-text .ql-indent-2 { padding-left: 6em; }
.rich-text .ql-indent-3 { padding-left: 9em; }
.rich-text .ql-indent-4 { padding-left: 12em; }
.rich-text .ql-indent-5 { padding-left: 15em; }
.rich-text .ql-indent-6 { padding-left: 18em; }
.rich-text .ql-indent-7 { padding-left: 21em; }
.rich-text .ql-indent-8 { padding-left: 24em; }

.blog-card { transition: transform .2s ease, box-shadow .2s ease; }
.blog-card:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0, 0, 0, .08); }
.blog-card-cover { width: 100%; height: auto; aspect-ratio: 1200 / 630; object-fit: cover; }
.blog-card-cover-empty { aspect-ratio: 1200 / 630; background: linear-gradient(135deg, #eef2ff, #e0e7ff); }

/* Brand-tinted band, distinct from both white and bg-light neighbours on the home page. */
.section-tint { background-color: #eef2ff; }

.testimonial-card { display: flex; flex-direction: column; }
.testimonial-quote, .testimonial-preview { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.testimonial-quote { -webkit-line-clamp: 3; line-clamp: 3; }
.testimonial-preview { -webkit-line-clamp: 4; line-clamp: 4; line-height: 1.5; }
/* Author pinned to the bottom under a hairline; spare height sits above it, not between lines. */
.testimonial-author { padding-top: 1rem; border-top: 1px solid #eef0f4; }
/* Testimonials page: one height for every card, roughly the tallest clamped card. */
.testimonial-card-full { min-height: 22rem; }
.testimonial-more { color: #4f46e5; }
.testimonial-card .min-w-0 { min-width: 0; }
.testimonial-stars { color: #f59e0b; letter-spacing: 2px; }
.testimonial-initials { width: 48px; height: 48px; background: #eef2ff; color: #4f46e5; }

/* Home sliders (blog, testimonials): a native scroll-snap track, so touch swipe,
   trackpads and keyboard scrolling work without JS; slider.js adds prev/next.
   1 card (+ a peek of the next) on phones, 2 from 576px, 3 from 992px. */
.slider-track {
    --slider-gap: 1.5rem;
    display: flex; gap: var(--slider-gap);
    overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scroll-behavior: smooth;
    scrollbar-width: none;
    /* room for card shadows and the hover lift, without shifting the layout */
    padding: .75rem .5rem 1.25rem; margin: -.75rem -.5rem -1.25rem;
    scroll-padding-inline: .5rem;
}
.slider-track::-webkit-scrollbar { display: none; }
.slider-track:focus-visible { outline: 2px solid #4f46e5; outline-offset: 2px; border-radius: 1rem; }
.slider-item { flex: 0 0 85%; min-width: 0; scroll-snap-align: start; display: flex; }
.slider-item > * { width: 100%; }
@media (min-width: 576px) { .slider-item { flex-basis: calc((100% - var(--slider-gap)) / 2); } }
@media (min-width: 992px) { .slider-item { flex-basis: calc((100% - 2 * var(--slider-gap)) / 3); } }
@media (prefers-reduced-motion: reduce) { .slider-track { scroll-behavior: auto; } }
.slider-btn {
    width: 44px; height: 44px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid #c7d2fe; background: #fff; color: #4f46e5;
    transition: background-color .15s ease, color .15s ease;
}
.slider-btn:hover:not(:disabled) { background: #4f46e5; color: #fff; }
.slider-btn:focus-visible { outline: 2px solid #4f46e5; outline-offset: 2px; }
.slider-btn:disabled { opacity: .4; cursor: default; }

/* Numbered pagination (blog lists, testimonials). */
.site-pagination .page-link { border-radius: .5rem; min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; color: #4f46e5; border-color: #e0e7ff; }
.site-pagination .page-link:hover { background: #eef2ff; color: #4338ca; }
.site-pagination .page-link:focus-visible { outline: 2px solid #4f46e5; outline-offset: 2px; box-shadow: none; }
.site-pagination .page-item.active .page-link { background: #4f46e5; border-color: #4f46e5; color: #fff; }
.site-pagination .page-item.disabled .page-link { color: #6b7280; background: transparent; border-color: transparent; }
