/* ── SECTION ── */
.rc-section {
    padding: 82px 0;
    background: #000;
    overflow: hidden;
}

/* ── HEADER ── */
.rc-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 26px;
    margin-bottom: 53px;
    text-align: center;
}

/* ── EYEBROW ── */
.rc-eyebrow {
    display: block;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 700;
    line-height: 19.2px;
    letter-spacing: 0.96px;
    text-transform: uppercase;
    color: #03cfff;
}

/* ── HEADING ── */
.rc-heading {
    font-family: var(--font-main);
    font-size: 30px;
    font-weight: 700;
    line-height: 28.9px;
    color: #03cfff;
    margin-bottom: 0;
}

/* ── DIVIDER ── */
.rc-divider {
    display: block;
    width: 48px;
    height: 3px;
    background: #03cfff;
    border-radius: 2px;
}

/* ── CIRCLES ROW ── */
.rc-circles {
    --rc-circle-size: 286px;
    /* dot-pattern-3.svg is 597px wide — ratio 597/286 ≈ 2.087 */
    --rc-dot-ratio: 2.087;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 82px;
}

/* ── COLUMN CONSTRAINTS (2×286 + 1×82 = 654, 3×286 + 2×82 = 1022, 4×286 + 3×82 = 1390) ── */
.rc-circles--cols-2 { max-width: 654px;  margin-left: auto; margin-right: auto; }
.rc-circles--cols-3 { max-width: 1022px; margin-left: auto; margin-right: auto; }
.rc-circles--cols-4 { max-width: 1390px; margin-left: auto; margin-right: auto; }

/* ── CIRCLE WRAP ── */
.rc-circle-wrap {
    position: relative;
    width: var(--rc-circle-size);
    height: var(--rc-circle-size);
    flex-shrink: 0;
}

/* ── DOT PATTERN (blooms on hover) ── */
.rc-dot-bg {
    position: absolute;
    width: calc(var(--rc-circle-size) * var(--rc-dot-ratio));
    height: calc(var(--rc-circle-size) * var(--rc-dot-ratio));
    top: 50%;
    left: 50%;
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.82);
    transition:
        opacity   0.65s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
    pointer-events: none;
    z-index: 0;
}

.rc-dot-bg img {
    display: block;
    width: 100%;
    height: 100%;
}

.rc-circle-wrap:hover .rc-dot-bg {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

/* ── CIRCLE LINK ── */
.rc-circle {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--rc-circle-size);
    height: var(--rc-circle-size);
    border-radius: 50%;
    border: 2px solid #03cfff;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(5px);
    text-decoration: none;
    transition:
        background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        border-color     0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.rc-circle:hover {
    text-decoration: none;
}

.rc-circle-wrap:hover .rc-circle {
    background-color: #03cfff;
    border-color: #03cfff;
}

/* ── CIRCLE INNER ── */
.rc-circle-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    text-align: center;
    padding: 0 24px;
}

/* ── CIRCLE TITLE ── */
.rc-circle-title {
    display: block;
    font-family: var(--font-body);
    font-size: 30px;
    font-weight: 700;
    line-height: 28.9px;
    color: #03cfff;
    transition: color 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.rc-circle-wrap:hover .rc-circle-title {
    color: #000;
}

/* ── ARROW ICON ── */
.rc-link-icon {
    width: 19px;
    height: 19px;
    flex-shrink: 0;
    margin-top: -9px;
}

.rc-link-icon img {
    display: block;
    width: 100%;
    height: 100%;
    transition: filter 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Cyan arrow → black when circle fills on hover */
.rc-circle-wrap:hover .rc-link-icon img {
    filter: brightness(0);
}

/* ── EMPTY STATE ── */
.rc-empty {
    font-family: var(--font-body);
    font-size: 16px;
    color: #666;
    text-align: center;
    font-style: italic;
}

/* ── RESPONSIVE ── */

@media (max-width: 991.98px) {
    .rc-section { padding: 72px 0; }
    .rc-header { margin-bottom: 48px; gap: 20px; }
    .rc-circles { --rc-circle-size: 240px; gap: 60px; }
    .rc-circle-title { font-size: 24px; line-height: 1.2; }
}

@media (max-width: 767.98px) {
    .rc-section { padding: 56px 0; }
    .rc-header { margin-bottom: 40px; }
    .rc-heading { font-size: 26px; }
    .rc-circles { --rc-circle-size: 200px; gap: 40px; }
    .rc-circle-title { font-size: 20px; line-height: 1.2; }
    .rc-circle-inner { padding: 0 16px; gap: 10px; }
}

@media (max-width: 575.98px) {
    .rc-section { padding: 40px 0; }
    .rc-header { margin-bottom: 32px; }
    .rc-circles { --rc-circle-size: 160px; gap: 24px; }
    .rc-circle-title { font-size: 16px; line-height: 1.2; }
    .rc-circle-inner { padding: 0 12px; gap: 8px; }
    .rc-link-icon { width: 14px; height: 14px; }
}
