/* Extracted from resources/views/front/pages/city_route_page.blade.php
 * Block #3. Content is verbatim - no rules were added,
 * removed or reordered, so rendering is unchanged.
 */

.yt-tst-section {
                /* ===== Yatayat brand tokens — tweak these to match the live site exactly ===== */
                --yt-primary: #0570f2;      /* taxi orange - swap for exact brand hex */
                --yt-primary-dark: #0570f2;
                --yt-dark: #0570f2;         /* headings / footer navy */
                --yt-star: #FFB100;         /* rating star colour */
                --yt-muted: #6B7280;
                --yt-bg-soft: #FFF7EF;      /* soft tint of primary for section bg */
                --yt-border: #F0E3D3;
                --yt-radius: 16px;

                background: linear-gradient(180deg, var(--yt-bg-soft) 0%, #ffffff 100%);
                padding: 70px 0;
            }

            .yt-tst-section .yt-tst-subtitle {
                display: inline-block;
                color: var(--yt-primary) !important;
                font-weight: 600;
                font-size: 14px;
                letter-spacing: 1px;
                text-transform: uppercase;
                margin-bottom: 8px;
            }

            .yt-tst-section .yt-tst-header h2 {
                color: var(--yt-dark) !important;
                font-weight: 700 !important;
            }

            .yt-tst-section .yt-tst-desc {
                color: var(--yt-muted) !important;
                font-size: 15px;
                margin-bottom: 0;
            }

            /* ---- carousel track needs visible height/overflow for cards to show ---- */
            .yt-tst-section .yt-tst-slider {
                padding: 10px 4px 40px;
            }

            /* Safety net: Owl Carousel's own CSS hides .owl-carousel until it adds
               .owl-loaded via JS. If that JS hasn't run yet (or fails to load on this
               page), force the cards to show as a plain responsive row instead of a
               blank gap. Once Owl initializes, .owl-loaded is added and this no
               longer matches, so normal carousel behaviour takes over. */
            .yt-tst-section .yt-tst-slider:not(.owl-loaded) {
                display: flex !important;
                flex-wrap: wrap;
                justify-content: center;
            }

            .yt-tst-section .yt-tst-slider:not(.owl-loaded) .yt-tst-card {
                width: 340px;
                max-width: 100%;
            }

            /* ---- Card ---- */
            .yt-tst-section .yt-tst-card {
                position: relative;
                background: #ffffff !important;
                border: 1px solid var(--yt-border) !important;
                border-radius: var(--yt-radius) !important;
                padding: 32px 28px 24px !important;
                margin: 10px;
                height: 100%;
                box-shadow: 0 4px 18px rgba(27, 31, 42, 0.08) !important;
                transition: transform 0.25s ease, box-shadow 0.25s ease;
            }

            .yt-tst-section .yt-tst-card:hover {
                transform: translateY(-6px);
                box-shadow: 0 14px 30px rgba(255, 122, 0, 0.18) !important;
            }

            .yt-tst-section .yt-tst-quote {
                position: absolute;
                top: 20px;
                right: 24px;
                font-size: 26px;
                color: var(--yt-primary) !important;
                opacity: 0.18;
                line-height: 1;
            }

            .yt-tst-section .yt-tst-rating {
                color: var(--yt-star) !important;
                font-size: 15px;
                margin-bottom: 14px;
                display: flex;
                align-items: center;
                gap: 3px;
            }

            .yt-tst-section .yt-tst-rating i {
                color: var(--yt-star) !important;
            }

            .yt-tst-section .yt-tst-rating .yt-tst-rating-value {
                color: var(--yt-dark) !important;
                font-weight: 600;
                font-size: 13px;
                margin-left: 6px;
            }

            .yt-tst-section .yt-tst-text {
                color: #3A3F4B !important;
                font-size: 15px;
                line-height: 1.7;
                min-height: 84px;
                margin-bottom: 22px;
            }

            .yt-tst-section .yt-tst-footer {
                display: flex;
                align-items: center;
                justify-content: space-between;
                border-top: 1px solid var(--yt-border);
                padding-top: 18px;
            }

            .yt-tst-section .yt-tst-user {
                display: flex;
                align-items: center;
                gap: 12px;
            }

            .yt-tst-section .yt-tst-avatar-img {
                width: 46px;
                height: 46px;
                border-radius: 50% !important;
                object-fit: cover;
                border: 2px solid var(--yt-bg-soft);
                flex-shrink: 0;
            }

            .yt-tst-section .yt-tst-avatar-initial {
                width: 46px;
                height: 46px;
                border-radius: 50%;
                background: linear-gradient(135deg, var(--yt-primary), var(--yt-primary-dark)) !important;
                color: #fff !important;
                display: flex;
                align-items: center;
                justify-content: center;
                font-weight: 700;
                font-size: 17px;
                flex-shrink: 0;
            }

            .yt-tst-section .yt-tst-name {
                color: var(--yt-dark) !important;
                font-size: 15px;
                font-weight: 600;
                margin: 0;
            }

            .yt-tst-section .yt-tst-location {
                display: block;
                color: var(--yt-muted) !important;
                font-size: 12px;
                margin-top: 2px;
            }

            .yt-tst-section .yt-tst-location i {
                color: var(--yt-primary) !important;
                font-size: 11px;
            }

            .yt-tst-section .yt-tst-source {
                display: inline-flex;
                align-items: center;
                gap: 5px;
                background: var(--yt-bg-soft) !important;
                color: var(--yt-primary-dark) !important;
                font-size: 11px;
                font-weight: 600;
                padding: 5px 10px;
                border-radius: 20px;
                white-space: nowrap;
            }

            /* ---- Owl dots ---- */
            .yt-tst-section .yt-tst-slider .owl-dots {
                text-align: center;
                margin-top: 10px;
            }

            .yt-tst-section .yt-tst-slider .owl-dot span {
                background: var(--yt-border) !important;
                width: 9px !important;
                height: 9px !important;
            }

            .yt-tst-section .yt-tst-slider .owl-dot.active span {
                background: var(--yt-primary) !important;
            }

            @media (max-width: 575px) {
                .yt-tst-section { padding: 45px 0; }
                .yt-tst-section .yt-tst-card { padding: 26px 20px 20px !important; }
            }
