/* =====================================================
   HOMEPAGE TESTIMONIALS
   Uses the same warm palette and typography as index.css.
===================================================== */

.testimonials-section {
    --testimonial-accent: #7A2638;
    --testimonial-gold: #C89B3C;
    --testimonial-gap: 28px;
    --testimonial-columns: 3;
    position: relative;
    padding: 110px 0;
    overflow: hidden;
    color: #1C1C1C;
    background:
        radial-gradient(circle at 15% 20%, rgba(190, 160, 130, .18), transparent 35%),
        radial-gradient(circle at 85% 80%, rgba(220, 190, 170, .18), transparent 40%),
        linear-gradient(135deg, #F6F3EE 0%, #EAE4DA 45%, #F2EDE5 100%);
}

.testimonials-section[hidden] { display: none; }
.testimonials-viewport[hidden],
.testimonial-arrow[hidden],
.testimonial-dots[hidden],
.testimonials-status[hidden] { display: none !important; }

.testimonials-header {
    position: relative;
    z-index: 1;
    max-width: 700px;
    margin: 0 auto 70px;
    padding: 0 25px;
    text-align: center;
}

.testimonials-header .section-label {
    margin: 0 0 25px;
    color: #77706A;
}

.testimonials-title {
    margin: 0 0 25px;
    font-family: 'Cormorant Garamond', serif;
    font-size: 52px;
    font-weight: 600;
    line-height: 1.15;
    color: #1C1C1C;
}

.testimonials-intro {
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    line-height: 1.8;
    color: #5F5A55;
}

.testimonials-shell {
    position: relative;
    z-index: 1;
    width: min(1280px, calc(100% - 120px));
    margin: 0 auto;
}

.testimonials-viewport {
    overflow: hidden;
    padding: 10px 4px 22px;
    touch-action: pan-y pinch-zoom;
}

.testimonials-track {
    display: flex;
    align-items: stretch;
    gap: var(--testimonial-gap);
    transform: translate3d(0, 0, 0);
    transition: transform .58s cubic-bezier(.22, .61, .36, 1);
    will-change: transform;
}

.testimonials-track.is-dragging { transition: none; }

.testimonial-card {
    flex: 0 0 calc((100% - (var(--testimonial-columns) - 1) * var(--testimonial-gap)) / var(--testimonial-columns));
    min-width: 0;
    display: flex;
}

.testimonial-card-inner {
    width: 100%;
    min-height: 320px;
    display: flex;
    flex-direction: column;
    padding: 27px 28px;
    overflow: hidden;
    border: 1px solid rgba(122, 38, 56, .07);
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255, 253, 251, .96), rgba(249, 246, 242, .96));
    box-shadow: 0 14px 36px rgba(42, 37, 33, .07);
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

@media (hover: hover) {
    .testimonial-card:not([aria-hidden="true"]) .testimonial-card-inner:hover {
        transform: translateY(-4px);
        border-color: rgba(122, 38, 56, .13);
        box-shadow: 0 22px 46px rgba(42, 37, 33, .10);
    }
}

.testimonial-top {
    min-height: 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.testimonial-stars { display: flex; gap: 3px; }

.testimonial-star {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    fill: var(--testimonial-gold);
}

.testimonial-rating-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.verified-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    font-family: 'Montserrat', sans-serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .04em;
    color: var(--testimonial-accent);
    white-space: nowrap;
}

.verified-badge svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
}

.testimonial-quote {
    height: 29px;
    margin-bottom: 5px;
    font-family: Georgia, serif;
    font-size: 43px;
    line-height: 1;
    color: rgba(122, 38, 56, .20);
    user-select: none;
}

.testimonial-review {
    flex: 0 1 auto;
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 1.68;
    color: #504A46;
}

.testimonial-divider {
    width: 56px;
    height: 1px;
    margin: 17px 0 15px;
    background: rgba(122, 38, 56, .22);
}

.testimonial-footer {
    min-height: 52px;
    display: flex;
    align-items: center;
    gap: 14px;
}

.testimonial-media {
    width: 82px;
    aspect-ratio: 4 / 3;
    align-self: flex-start;
    margin-top: 14px;
    padding: 0;
    overflow: hidden;
    border: 2px solid rgba(255, 255, 255, .9);
    border-radius: 10px;
    background: #EEE7DF;
    box-shadow: 0 3px 10px rgba(42, 37, 33, .12);
    cursor: zoom-in;
    transition: transform .22s ease, box-shadow .22s ease;
}

.testimonial-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.testimonial-media:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(42,37,33,.16); }
.testimonial-media:focus-visible { outline: 3px solid rgba(122,38,56,.3); outline-offset: 3px; }

.testimonial-lightbox { position: fixed; inset: 0; z-index: 9000; display: grid; place-items: center; padding: 20px; opacity: 0; visibility: hidden; transition: .24s ease; }
.testimonial-lightbox.visible { opacity: 1; visibility: visible; }
.testimonial-lightbox-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(20,17,15,.82); backdrop-filter: blur(8px); cursor: zoom-out; }
.testimonial-lightbox-dialog { position: relative; z-index: 1; max-width: min(900px, 94vw); max-height: 90vh; }
.testimonial-lightbox-dialog img { display: block; max-width: 100%; max-height: 88vh; border-radius: 13px; object-fit: contain; box-shadow: 0 28px 80px rgba(0,0,0,.38); }
.testimonial-lightbox-close { position: absolute; top: -15px; right: -15px; z-index: 2; width: 42px; height: 42px; border: 0; border-radius: 50%; background: #FFF; color: #2A2521; cursor: pointer; font-size: 26px; line-height: 1; box-shadow: 0 8px 22px rgba(0,0,0,.2); }
body.testimonial-lightbox-open { overflow: hidden; }

.testimonial-name {
    margin: 0;
    font-family: 'Cormorant Garamond', serif;
    font-size: 23px;
    font-weight: 600;
    line-height: 1.1;
    color: #2A2521;
}

.testimonial-city {
    margin: 5px 0 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 10px;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: #817972;
}

.testimonial-arrow {
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(122, 38, 56, .10);
    border-radius: 50%;
    color: var(--testimonial-accent);
    background: rgba(255, 253, 251, .94);
    box-shadow: 0 8px 24px rgba(42, 37, 33, .10);
    cursor: pointer;
    transform: translateY(-50%);
    transition: color .25s ease, background .25s ease, transform .25s ease;
}

.testimonial-arrow svg { width: 20px; height: 20px; fill: currentColor; }
.testimonial-arrow--prev { left: -68px; }
.testimonial-arrow--next { right: -68px; }

.testimonial-arrow:hover {
    color: #FFF;
    background: var(--testimonial-accent);
    transform: translateY(-50%) scale(1.04);
}

.testimonial-arrow:focus-visible,
.testimonial-dot:focus-visible,
.testimonials-viewport:focus-visible {
    outline: 3px solid rgba(122, 38, 56, .32);
    outline-offset: 4px;
}

.testimonial-dots {
    min-height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-top: 25px;
}

.testimonial-dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(122, 38, 56, .23);
    cursor: pointer;
    transition: width .25s ease, background .25s ease;
}

.testimonial-dot[aria-current="true"] {
    width: 28px;
    background: var(--testimonial-accent);
}

.testimonials-status {
    width: min(720px, calc(100% - 40px));
    min-height: 210px;
    margin: 0 auto;
    display: grid;
    place-items: center;
    padding: 35px;
    border: 1px solid rgba(122, 38, 56, .08);
    border-radius: 24px;
    text-align: center;
    font: 14px/1.8 'Montserrat', sans-serif;
    color: #665F59;
    background: rgba(255, 253, 251, .66);
}

.testimonials-skeleton { width: 100%; }
.testimonials-skeleton-line {
    height: 13px;
    margin: 13px auto;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(122,38,56,.06), rgba(255,255,255,.55), rgba(122,38,56,.06));
    background-size: 220% 100%;
    animation: testimonial-shimmer 1.35s linear infinite;
}
.testimonials-skeleton-line:first-child { width: 35%; }
.testimonials-skeleton-line:nth-child(2) { width: 80%; }
.testimonials-skeleton-line:nth-child(3) { width: 64%; }

.testimonials-live {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

@keyframes testimonial-shimmer { to { background-position: -220% 0; } }

@media (min-width: 900px) {
    .testimonials-section { padding: 160px 0; }
    .testimonials-title { font-size: 68px; }
}

@media (max-width: 1050px) {
    .testimonials-section { --testimonial-columns: 2; }
    .testimonials-shell { width: min(860px, calc(100% - 100px)); }
    .testimonial-card-inner { min-height: 315px; }
}

@media (max-width: 700px) {
    .testimonials-section {
        --testimonial-columns: 1;
        --testimonial-gap: 18px;
        padding: 90px 0;
    }
    .testimonials-header { margin-bottom: 45px; padding: 0 20px; }
    .testimonials-header .section-label { margin-bottom: 16px; font-size: 10px; letter-spacing: 2px; }
    .testimonials-title { margin-bottom: 18px; font-size: 40px; line-height: 1.08; }
    .testimonials-intro { font-size: 14px; line-height: 1.75; }
    .testimonials-shell { width: calc(100% - 38px); }
    .testimonials-viewport { overflow: visible; padding-bottom: 15px; }
    .testimonial-card-inner { min-height: 285px; padding: 23px 21px; border-radius: 21px; }
    .testimonial-top { align-items: flex-start; margin-bottom: 12px; }
    .testimonial-review { font-size: 13px; line-height: 1.65; }
    .testimonial-arrow { display: none; }
    .testimonial-dots { margin-top: 18px; }
}

@media (max-width: 380px) {
    .verified-badge { font-size: 9px; }
    .testimonial-star { width: 15px; height: 15px; }
    .testimonial-card-inner { padding: 25px 21px; }
}

@media (prefers-reduced-motion: reduce) {
    .testimonials-track,
    .testimonial-card-inner,
    .testimonial-arrow,
    .testimonial-dot { transition-duration: .01ms !important; }
    .testimonials-skeleton-line { animation: none; }
}
