.rfl-reviews{
    background:var(--rfl-cream);
    padding:140px 0;
    position:relative;
    overflow:hidden;
}
.rfl-reviews::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(60% 50% at 80% 20%, rgba(200,163,90,.10), transparent 70%),
        radial-gradient(40% 50% at 10% 90%, rgba(200,163,90,.06), transparent 70%);
    pointer-events:none;
}


.rfl-reviews__inner{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:80px;
    align-items:center;
}

.rfl-reviews__copy{display:flex;flex-direction:column;gap:0;}
.rfl-reviews__title{
    margin:24px 0 28px;
    max-width:18ch;
}
.rfl-reviews__title em{font-style:italic;color:var(--rfl-gold);}
.rfl-reviews__lead{margin:0 0 36px;}

.rfl-reviews__score{
    background:#fff;
    border-radius:var(--rfl-radius-l);
    padding:28px 32px;
    text-decoration:none;
    color:var(--rfl-ink);
    border:1px solid var(--rfl-line);
    display:flex;
    flex-direction:column;
    gap:14px;
    transition:transform .5s var(--rfl-ease),box-shadow .5s var(--rfl-ease);
    box-shadow:0 20px 40px -28px rgba(0,0,0,.18);
    align-self:flex-start;
}
.rfl-reviews__score:hover{transform:translateY(-4px);box-shadow:0 28px 50px -20px rgba(0,0,0,.22);}
.rfl-reviews__score-google{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-size:11px;
    letter-spacing:.28em;
    text-transform:uppercase;
    color:var(--rfl-ink-60);
    font-weight:600;
}
.rfl-reviews__score-value{display:flex;align-items:center;gap:18px;}
.rfl-reviews__score-value strong{
    font-family:var(--rfl-serif);
    font-size:54px;
    line-height:1;
    font-weight:500;
    letter-spacing:-.02em;
}
.rfl-reviews__stars{display:inline-flex;gap:3px;color:#dadada;font-size:20px;}
.rfl-reviews__star.is-on{color:var(--rfl-gold);}
.rfl-reviews__star.is-half{
    background:linear-gradient(90deg,var(--rfl-gold) 50%,#dadada 50%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}
.rfl-reviews__score-meta{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--rfl-ink-60);}
.rfl-reviews__actions{
    margin-top:50px;
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
}
.rfl-reviews__actions .rfl-btn{
    padding:18px 30px;
    font-size:12px;
}
.rfl-reviews__actions .rfl-btn--gold{
    box-shadow:0 18px 40px -18px rgba(200,163,90,.55);
}

/* The constellation stage */
.rfl-reviews__stage{
    position:relative;
    aspect-ratio:1/1;
    width:100%;
    max-width:680px;
    margin-left:auto;
}
.rfl-reviews__paths{
    position:absolute;
    inset:0;
    width:100%;height:100%;
    pointer-events:none;
}
.rfl-reviews__paths path{
    stroke-dasharray:600;
    stroke-dashoffset:600;
    animation:rflPathDraw 2s var(--rfl-ease) forwards;
}
.rfl-reviews__paths path:nth-of-type(1){animation-delay:.2s;}
.rfl-reviews__paths path:nth-of-type(2){animation-delay:.4s;}
.rfl-reviews__paths path:nth-of-type(3){animation-delay:.6s;}
.rfl-reviews__paths path:nth-of-type(4){animation-delay:.8s;}
.rfl-reviews__paths path:nth-of-type(5){animation-delay:1.0s;}
@keyframes rflPathDraw{
    to{stroke-dashoffset:0;}
}

/* Central Google hub */
.rfl-reviews__hub{
    position:absolute;
    top:50%;left:50%;
    transform:translate(-50%,-50%);
    z-index:2;
    display:grid;
    place-items:center;
    width:170px;height:170px;
}
.rfl-reviews__hub-ring{
    position:absolute;
    inset:0;
    border-radius:50%;
    border:1px dashed rgba(200,163,90,.4);
    animation:rflHubSpin 28s linear infinite;
}
.rfl-reviews__hub-ring--2{
    inset:18px;
    border-color:rgba(200,163,90,.25);
    border-style:solid;
    animation:rflHubSpin 22s linear infinite reverse;
}
@keyframes rflHubSpin{to{transform:rotate(360deg);}}
.rfl-reviews__hub-core{
    position:relative;
    width:96px;height:96px;
    border-radius:50%;
    background:#fff;
    display:grid;
    place-items:center;
    box-shadow:0 30px 50px -20px rgba(0,0,0,.25), 0 0 0 8px rgba(255,255,255,.6);
    z-index:2;
}
.rfl-reviews__hub-label{
    position:absolute;
    bottom:-46px;
    left:50%;
    transform:translateX(-50%);
    background:#111;
    color:#fff;
    padding:8px 16px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    gap:10px;
    white-space:nowrap;
}
.rfl-reviews__hub-label strong{
    font-family:var(--rfl-serif);
    font-style:italic;
    font-size:16px;
    color:var(--rfl-gold);
}
.rfl-reviews__hub-label span{
    font-size:10px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:rgba(255,255,255,.7);
}

/* Floating review cards */
.rfl-review{
    position:absolute;
    width:280px;
    background:#fff;
    border-radius:var(--rfl-radius-m);
    padding:18px 20px;
    box-shadow:0 24px 50px -22px rgba(0,0,0,.22);
    border:1px solid rgba(0,0,0,.04);
    display:flex;
    flex-direction:column;
    gap:12px;
    z-index:3;
    transition:transform .6s var(--rfl-ease),box-shadow .6s var(--rfl-ease);
    will-change:transform;
}
.rfl-review:hover{
    transform:translateY(-6px) scale(1.04);
    box-shadow:0 34px 60px -22px rgba(0,0,0,.28);
    z-index:4;
}

.rfl-review--pos-tl{top:0;       left:2%;   animation:rflFloatCard 7s ease-in-out infinite alternate;}
.rfl-review--pos-tr{top:4%;      right:2%;  animation:rflFloatCard 8s ease-in-out infinite alternate-reverse;}
.rfl-review--pos-ml{top:46%;     left:-3%;  transform:translateY(-50%); animation:rflFloatCardM 9s ease-in-out infinite alternate;}
.rfl-review--pos-bl{bottom:2%;   left:6%;   animation:rflFloatCard 10s ease-in-out infinite alternate;}
.rfl-review--pos-br{bottom:8%;   right:0;   animation:rflFloatCard 8.5s ease-in-out infinite alternate-reverse;}

@keyframes rflFloatCard{
    0%{transform:translate3d(0,0,0);}
    100%{transform:translate3d(0,-12px,0);}
}
@keyframes rflFloatCardM{
    0%{transform:translateY(-50%) translate3d(0,0,0);}
    100%{transform:translateY(-50%) translate3d(0,-10px,0);}
}

.rfl-review__head{
    display:grid;
    grid-template-columns:auto 1fr;
    align-items:center;
    gap:12px;
}
.rfl-review__avatar{
    width:42px;height:42px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff;
    border:1px solid rgba(0,0,0,.06);
    box-shadow:0 8px 14px -8px rgba(0,0,0,.18);
    flex-shrink:0;
}
.rfl-review__avatar svg{width:22px;height:22px;}

.rfl-review__id{min-width:0;}
.rfl-review__name{
    margin:0;
    font-family:var(--rfl-sans);
    font-size:13px;
    font-weight:600;
    color:var(--rfl-ink);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.rfl-review__when{
    margin:1px 0 0;
    font-size:11px;
    color:var(--rfl-ink-60);
}

.rfl-review__stars{display:flex;gap:2px;color:#dadada;font-size:14px;}
.rfl-review__stars .is-on{color:var(--rfl-gold);}

.rfl-review__text{
    margin:0;
    font-size:13px;
    line-height:1.6;
    color:var(--rfl-ink);
}

/* Decorative side chips */
.rfl-reviews__chip{
    position:absolute;
    background:#fff;
    border:1px solid var(--rfl-line);
    border-radius:999px;
    padding:8px 14px;
    font-size:10px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--rfl-ink);
    display:inline-flex;
    align-items:center;
    gap:8px;
    box-shadow:0 14px 30px -18px rgba(0,0,0,.18);
    z-index:3;
}
.rfl-reviews__chip-dot{
    width:8px;height:8px;
    border-radius:50%;
    background:#3aa663;
    box-shadow:0 0 0 0 rgba(58,166,99,.5);
    animation:rflChipPulse 2s ease-out infinite;
}
@keyframes rflChipPulse{
    0%{box-shadow:0 0 0 0 rgba(58,166,99,.55);}
    70%{box-shadow:0 0 0 10px rgba(58,166,99,0);}
    100%{box-shadow:0 0 0 0 rgba(58,166,99,0);}
}
.rfl-reviews__chip--1{top:42%;right:-8%;animation:rflFloatCard 6s ease-in-out infinite alternate;}
.rfl-reviews__chip--2{
    top:30%;left:48%;
    background:var(--rfl-gold);
    color:var(--rfl-ink);
    border-color:var(--rfl-gold);
    letter-spacing:.4em;
    animation:rflFloatCardM 7s ease-in-out infinite alternate-reverse;
    transform:translateX(-50%);
}

@media (max-width:1200px){
    .rfl-reviews__inner{grid-template-columns:1fr;gap:80px;}
    .rfl-reviews__stage{margin-inline:auto;max-width:560px;}
    .rfl-review{width:240px;padding:16px 18px;}
    .rfl-review__text{font-size:12px;}
    .rfl-reviews__chip--1{right:0;}
}
@media (max-width:760px){
    .rfl-reviews{padding:100px 0;}
    .rfl-reviews__stage{max-width:100%;aspect-ratio:auto;display:grid;grid-template-columns:1fr;gap:18px;}
    .rfl-reviews__paths,
    .rfl-reviews__chip{display:none;}
    .rfl-reviews__hub{position:relative;inset:auto;transform:none;margin:0 auto 24px;}
    .rfl-reviews__hub-label{position:relative;left:auto;bottom:auto;transform:none;margin-top:14px;display:inline-flex;}
    .rfl-review{
        position:relative;
        inset:auto;
        width:100%;
        animation:none !important;
        transform:none !important;
    }
}
