:root {
    --st-bg: #0a0a0a;
    --st-card-bg: #141414;
    --st-gold: #d4af37;
    --st-gold-mute: #8c7630;
    --st-text: #e0e0e0;
    --st-font-title: 'Cinzel', serif;
    --st-font-body: 'Montserrat', sans-serif;
}

.royal-testimonial-section {
    background-color: #fff8ed;
    padding: 100px 0;
    font-family: var(--st-font-body);
    overflow: hidden;
    position: relative;
    background-image: radial-gradient(circle at 50% 50%, rgba(212, 175, 55, 0.05) 0%, transparent 60%);
}

.tm-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* HEADER */
.tm-header { text-align: center; margin-bottom: 60px; }
.tm-subtitle { color: var(--st-gold); letter-spacing: 4px; font-size: 12px; font-weight: 600; display: block; margin-bottom: 15px; text-transform: uppercase; }
.tm-title { 
    font-family: var(--st-font-title); font-size: 42px; color: rgb(212, 138, 34); margin: 0; 
    text-transform: uppercase; letter-spacing: 2px;
}
.gold-text {
    color: var(--st-gold);
    background: linear-gradient(to right, var(--st-gold), #f9f295, var(--st-gold));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.tm-divider { margin-top: 20px; color: var(--st-gold-mute); font-size: 14px; opacity: 0.6; }

/* STACK STAGE */
.tm-carousel-stage { position: relative; height: 450px; display: flex; justify-content: center; align-items: center; }

/* DESKTOP NAV */
.tm-nav {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 20;
    background: rgba(20, 20, 20, 0.8); border: 1px solid var(--st-gold-mute);
    color: var(--st-gold); width: 50px; height: 50px; border-radius: 50%;
    cursor: pointer; transition: 0.3s; backdrop-filter: blur(5px);
    display: none;
    align-items: center; justify-content: center; font-size: 18px;
}
@media (min-width: 769px) { .tm-nav { display: flex; } }
.tm-nav:hover { background: var(--st-gold); color: black; border-color: var(--st-gold); box-shadow: 0 0 20px rgba(212, 175, 55, 0.4); }
.tm-nav.prev { left: 0; }
.tm-nav.next { right: 0; }

/* CARD TRACK */
.tm-track-window {
    position: relative;
    width: 600px; /* Base width of active card */
    height: 380px;
    perspective: 1000px;
}

/* CARD DESIGN */
.tm-card {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: var(--st-card-bg);
    border-radius: 20px;
    padding: 40px;
    display: flex; flex-direction: column; justify-content: space-between;
    transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
    box-shadow: 0 15px 35px rgba(0,0,0,0.5);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.05);
}

.company-card {
    background: linear-gradient(145deg, #b37839, #0f172a);
    box-shadow: 0 20px 50px rgba(0,0,0,0.6);
    border: 1px solid rgba(212, 175, 55, 0.2);
}

/* Active State */
.tm-card.active {
    z-index: 10; opacity: 1; transform: translateX(0) scale(1);
    box-shadow: 0 25px 50px rgba(0,0,0,0.6), 0 0 0 1px rgba(212, 175, 55, 0.3);
}

/* Stacked State */
.tm-card.stacked {
    z-index: 5; opacity: 0.4; filter: blur(2px) grayscale(60%); pointer-events: none;
}

/* Content Styles */
.tm-quote-icon { font-size: 50px; color: var(--st-gold); opacity: 0.2; position: absolute; top: 30px; right: 30px; }
.tm-text { font-size: 18px; line-height: 1.7; color: var(--st-text); font-style: italic; position: relative; z-index: 2; margin-top: 10px; }

/* Video Thumbnail */
.video-thumbnail-wrapper {
    position: relative; width: 100%; height: 220px; cursor: pointer;
    border-radius: 12px; overflow: hidden; margin-bottom: 20px;
}
.vid-thumb { width: 100%; height: 100%; object-fit: cover; opacity: 0.8; transition: 0.3s; }
.video-thumbnail-wrapper:hover .vid-thumb { opacity: 0.6; transform: scale(1.05); }
.play-btn-overlay {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 50px; height: 50px; background: rgba(212, 175, 55, 0.9);
    border-radius: 50%; display: flex; align-items: center; justify-content: center;
    color: white; font-size: 20px; transition: 0.3s;
}

/* Footer (Avatar + Name) */
.tm-footer { display: flex; align-items: center; margin-top: 20px; }
.tm-avatar-box { width: 60px; height: 60px; border-radius: 50%; border: 2px solid var(--st-gold); padding: 3px; margin-right: 15px; }
.tm-avatar-box img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }

.tm-name { margin: 0; font-size: 16px; color: white; font-family: var(--st-font-title); letter-spacing: 1px; }
.tm-subtitle-company { font-size: 12px; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; }
.tm-stars { margin-top: 5px; color: var(--st-gold); font-size: 12px; }
.tm-stars .muted { color: #333; }

/* MOBILE CONTROLS */
.mobile-nav-area { text-align: center; margin-top: 30px; display: none; }
.btn-mobile-next {
    background: var(--st-gold); color: var(--st-bg); font-weight: 700;
    padding: 12px 30px; border-radius: 50px; border: none; cursor: pointer;
    font-size: 14px; display: inline-flex; align-items: center; gap: 10px;
    box-shadow: 0 5px 15px rgba(212, 175, 55, 0.3);
}

/* Dots */
.tm-dots { display: flex; justify-content: center; gap: 8px; margin-top: 30px; }
.dot { width: 8px; height: 8px; border-radius: 50%; border: 1px solid var(--st-gold); cursor: pointer; transition: 0.3s; }
.dot.active { background: var(--st-gold); transform: scale(1.2); }

/* RESPONSIVE */
@media (max-width: 768px) {
    .tm-header { margin-bottom: 40px; }
    .tm-title { font-size: 32px; }
    .tm-carousel-stage { height: 420px; }
    .tm-track-window { width: 90%; height: 100%; } 
    .tm-card { padding: 30px 25px; width: 100%; box-sizing: border-box; }
    .tm-text { font-size: 16px; }
    .stack-nav { display: none; }
    .mobile-nav-area { display: block; }
}