/* ===========================================================================
   DC Reviews Premium (Orbit) — dc-reviews-orbit
   =========================================================================== */

.dc-reviews-orbit,
.dc-reviews-orbit *,
.dc-reviews-orbit *::before,
.dc-reviews-orbit *::after{
    font-family:'DM Sans','Poppins',system-ui,sans-serif;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    box-sizing:border-box;
}

.dc-reviews-orbit{
    --rv-primary:#a0c040;
    --rv-dark:#2b2926;
    --rv-bg:#ffffff;
    --rv-muted:#7a726a;
    --rv-surface:#faf7f4;
    --rv-border:rgba(43, 41, 38, 0.08);
    --rv-border-strong:rgba(43, 41, 38, 0.14);
}

/* ═════════ SECTION ═════════ */
.dc-reviews-orbit{
    background:var(--rv-bg);
    padding:0px 0px 120px 0px;
    position:relative;
    overflow:hidden;
}
.dc-reviews-orbit__container{
    max-width:1340px;
    margin:0 auto;
    padding:0 30px;
    position:relative;
}

/* ═════════ HEADER ═════════ */
.dc-reviews-orbit__header{
    text-align:center;
    max-width:640px;
    margin:0 auto 80px;
}
.dc-reviews-orbit__label{
    display:inline-block;
    padding:0 0 12px 0;
    margin:0 0 18px 0;
    font-family:'Playfair Display', Georgia, serif;
    font-style:italic;
    font-weight:500;
    font-size:clamp(18px, 1.6vw, 22px);
    line-height:1;
    color:var(--rv-primary);
    position:relative;
    letter-spacing:-0.3px;
}
.dc-reviews-orbit__label::after{
    content:'';
    position:absolute;
    left:50%; bottom:0;
    transform:translateX(-50%);
    width:56px;
    height:1.5px;
    background:var(--rv-primary);
    border-radius:2px;
}
.dc-reviews-orbit__title{
    font-size:clamp(28px, 3.6vw, 46px);
    font-weight:800;
    color:var(--rv-dark);
    line-height:1.1;
    margin:0 0 14px 0;
    letter-spacing:-0.8px;
}
.dc-reviews-orbit__desc{
    font-size:15px;
    line-height:1.7;
    color:var(--rv-muted);
    margin:0;
}

/* ═════════ ORBIT STAGE ═════════ */
.dc-reviews-orbit__stage{
    position:relative;
    width:100%;
    max-width:1100px;
    margin:0 auto;
    min-height:660px;
}

/* Decorative rings */
.dc-reviews-orbit__ring{
    position:absolute;
    top:50%;
    left:50%;
    border-radius:50%;
    border:1.5px dashed rgba(160, 192, 64, 0.3);
    transform:translate(-50%, -50%);
    pointer-events:none;
    opacity:0;
    transition:opacity 1.5s ease;
}
.dc-reviews-orbit.is-visible .dc-reviews-orbit__ring { opacity:1; }
.dc-reviews-orbit__ring--outer{
    width:440px;
    height:440px;
    animation:dc-rv-ring-rotate 40s linear infinite;
}
.dc-reviews-orbit__ring--inner{
    width:280px;
    height:280px;
    border-color:rgba(43, 41, 38, 0.08);
    animation:dc-rv-ring-rotate 30s linear infinite reverse;
}

/* SVG connector lines */
.dc-reviews-orbit__connectors{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    pointer-events:none;
    opacity:0;
    transition:opacity 1.2s ease .8s;
}
.dc-reviews-orbit.is-visible .dc-reviews-orbit__connectors { opacity:1; }
.dc-reviews-orbit__connectors path{
    fill:none;
    stroke:rgba(160, 192, 64, 0.35);
    stroke-width:1.5;
    stroke-dasharray:6 6;
    animation:dc-rv-dash-flow 30s linear infinite;
}
.dc-reviews-orbit__connectors circle{
    fill:var(--rv-primary);
    filter:drop-shadow(0 0 6px rgba(160, 192, 64, 0.5));
}

/* Center logo */
.dc-reviews-orbit__center{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%, -50%) scale(0.7);
    width:180px;
    height:180px;
    border-radius:50%;
    background:#000000;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    color:#ffffff;
    box-shadow:
        0 24px 60px rgba(160, 192, 64, 0.35),
        0 0 0 10px rgba(160, 192, 64, 0.08),
        0 0 0 1px rgba(160, 192, 64, 0.2);
    z-index:3;
    overflow:hidden;
    padding:26px;
    opacity:0;
    transition:all 1s cubic-bezier(.22, 1, .36, 1);
}
.dc-reviews-orbit.is-visible .dc-reviews-orbit__center{
    transform:translate(-50%, -50%) scale(1);
    opacity:1;
}
.dc-reviews-orbit__center img{
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
}
.dc-reviews-orbit__center--default { padding:0; }
.dc-reviews-orbit__center-score{
    font-size:44px;
    font-weight:900;
    line-height:1;
    letter-spacing:-2px;
    font-variant-numeric:tabular-nums;
    margin-bottom:8px;
}
.dc-reviews-orbit__center-stars{
    display:flex;
    gap:2px;
    margin-bottom:6px;
}
.dc-reviews-orbit__center-stars svg{
    width:13px;
    height:13px;
    fill:#ffffff;
}
.dc-reviews-orbit__center-label{
    font-size:9px;
    font-weight:700;
    letter-spacing:1.5px;
    text-transform:uppercase;
    opacity:0.8;
}

/* ═════════ REVIEW CARDS ═════════ */
.dc-reviews-orbit__card{
    position:absolute;
    top:50%;
    left:50%;
    width:280px;
    padding:22px 24px;
    background:#ffffff;
    border:1px solid var(--rv-border);
    border-radius:18px;
    box-shadow:
        0 20px 50px rgba(43, 41, 38, 0.12),
        0 4px 12px rgba(43, 41, 38, 0.05);
    z-index:4;
    transform:translate(-50%, -50%) scale(0.15);
    opacity:0;
    transition:
        transform 1.1s cubic-bezier(.22, 1, .36, 1),
        opacity .9s ease;
}

.dc-reviews-orbit__card-quote{
    position:absolute;
    top:10px;
    right:18px;
    font-size:58px;
    line-height:1;
    color:var(--rv-primary);
    opacity:0.1;
    font-family:Georgia, serif;
    pointer-events:none;
}
.dc-reviews-orbit__card-stars{
    display:flex;
    gap:3px;
    margin-bottom:14px;
}
.dc-reviews-orbit__card-stars svg{
    width:14px;
    height:14px;
    fill:var(--rv-primary);
}
.dc-reviews-orbit__card-stars svg.empty{
    fill:none;
    stroke:var(--rv-border-strong);
    stroke-width:1.5;
}
.dc-reviews-orbit__card-text{
    font-size:13px;
    line-height:1.65;
    color:var(--rv-dark);
    margin:0 0 16px 0;
    font-style:italic;
    font-family:'Playfair Display', Georgia, serif;
    font-weight:400;
    display:-webkit-box;
    -webkit-line-clamp:4;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.dc-reviews-orbit__card-footer{
    display:flex;
    align-items:center;
    gap:12px;
    padding-top:14px;
    border-top:1px solid var(--rv-border);
}
.dc-reviews-orbit__card-avatar{
    flex-shrink:0;
    width:36px;
    height:36px;
    border-radius:50%;
    background:#ffffff;
    border:1px solid rgba(43, 41, 38, 0.08);
    box-shadow:0 4px 10px -4px rgba(43, 41, 38, 0.18);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:6px;
    box-sizing:border-box;
}
.dc-reviews-orbit__card-avatar svg{
    width:100%;
    height:100%;
    display:block;
}
.dc-reviews-orbit__card-author{
    flex:1;
    min-width:0;
}
.dc-reviews-orbit__card-name{
    font-size:13px;
    font-weight:800;
    color:var(--rv-dark);
    line-height:1.2;
    margin:0 0 1px 0;
    letter-spacing:-0.2px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.dc-reviews-orbit__card-location{
    font-size:11px;
    color:var(--rv-muted);
    margin:0;
}
.dc-reviews-orbit__card-service{
    flex-shrink:0;
    font-size:9px;
    font-weight:700;
    letter-spacing:0.8px;
    text-transform:uppercase;
    color:var(--rv-primary);
    padding:4px 8px;
    background:rgba(160, 192, 64, 0.08);
    border-radius:50px;
    white-space:nowrap;
}

/* VISIBLE STATE — cards waaieren uit vanaf het midden */
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card--top-left{
    transform:translate(-200%, -185%) scale(1);
    opacity:1;
    transition-delay:.2s;
}
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card--top-right{
    transform:translate(130%, -180%) scale(1);
    opacity:1;
    transition-delay:.3s;
}
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card--middle-left{
    transform:translate(-260%, -50%) scale(1);
    opacity:1;
    transition-delay:.45s;
}
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card--middle-right{
    transform:translate(160%, -50%) scale(1);
    opacity:1;
    transition-delay:.5s;
}
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card--bottom-left{
    transform:translate(-200%, 90%) scale(1);
    opacity:1;
    transition-delay:.65s;
}
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card--bottom-right{
    transform:translate(100%, 90%) scale(1);
    opacity:1;
    transition-delay:.7s;
}

/* Subtle float once positioned */
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card{
    animation:dc-rv-float 6s ease-in-out infinite;
    animation-delay:1.5s;
}
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card--top-right    { animation-delay:1.8s; }
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card--middle-left  { animation-delay:2.1s; }
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card--middle-right { animation-delay:2.4s; }
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card--bottom-left  { animation-delay:2.7s; }
.dc-reviews-orbit.is-visible .dc-reviews-orbit__card--bottom-right { animation-delay:3.0s; }

/* ═════════ ANIMATIONS ═════════ */
@keyframes dc-rv-ring-rotate{
    from { transform:translate(-50%, -50%) rotate(0deg); }
    to   { transform:translate(-50%, -50%) rotate(360deg); }
}
@keyframes dc-rv-dash-flow{
    from { stroke-dashoffset:0; }
    to   { stroke-dashoffset:-200; }
}
@keyframes dc-rv-float{
    0%, 100% { margin-top:0; }
    50%      { margin-top:-8px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
    .dc-reviews-orbit__card{
        transition:opacity .3s ease !important;
    }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card { animation:none !important; }
    .dc-reviews-orbit__ring { animation:none !important; }
}

/* Responsive */
@media (max-width: 1200px){
    .dc-reviews-orbit__card { width:240px; padding:18px 20px; }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--top-left    { transform:translate(-180%, -210%) scale(1); }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--top-right   { transform:translate(80%, -210%) scale(1); }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--middle-left { transform:translate(-230%, -50%) scale(1); }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--middle-right{ transform:translate(130%, -50%) scale(1); }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--bottom-left { transform:translate(-180%, 110%) scale(1); }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--bottom-right{ transform:translate(80%, 110%) scale(1); }
    .dc-reviews-orbit__ring--outer { width:380px; height:380px; }
    .dc-reviews-orbit__ring--inner { width:240px; height:240px; }
}

@media (max-width: 1024px){
    .dc-reviews-orbit { padding:80px 0; }
    .dc-reviews-orbit__stage{
        min-height:auto;
        display:grid;
        grid-template-columns:repeat(2, 1fr);
        gap:20px;
        max-width:720px;
    }
    .dc-reviews-orbit__center,
    .dc-reviews-orbit__ring,
    .dc-reviews-orbit__connectors{
        display:none;
    }
    .dc-reviews-orbit__card{
        position:relative;
        top:auto;
        left:auto;
        transform:translateY(30px) scale(1);
        opacity:0;
        width:100%;
        animation:none !important;
    }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card{
        transform:translateY(0) scale(1) !important;
        opacity:1 !important;
        animation:none !important;
    }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--top-left     { transition-delay:.1s; }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--top-right    { transition-delay:.15s; }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--middle-left  { transition-delay:.2s; }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--middle-right { transition-delay:.25s; }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--bottom-left  { transition-delay:.3s; }
    .dc-reviews-orbit.is-visible .dc-reviews-orbit__card--bottom-right { transition-delay:.35s; }
}

@media (max-width: 600px){
    .dc-reviews-orbit__stage { grid-template-columns:1fr; }
    .dc-reviews-orbit__header { margin-bottom:48px; }
    .dc-reviews-orbit__container { padding:0 20px; }
}
