.ca-series {
    --ca-text: #2d2d2d;
    --ca-muted: #737373;
    --ca-border: #e6e2dc;
    --ca-bg: #f8f6f2;
    --ca-card: #ffffff;
    --ca-accent: #b79a68;
    color: var(--ca-text);
    box-sizing: border-box;
}

.ca-series *, .ca-series *::before, .ca-series *::after { box-sizing: border-box; }
.ca-series a { color: inherit; text-decoration: none; }

.ca-series--top {
    margin: 32px 0;
    padding: 18px 22px;
    border: 1px solid var(--ca-border);
    background: var(--ca-bg);
}
.ca-series__eyebrow {
    margin-bottom: 7px;
    color: var(--ca-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ca-series__top-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ca-series__position { font-size: 15px; }
.ca-series__progress { display: flex; align-items: center; gap: 4px; }
.ca-series__dot-link,
.ca-series__dot-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
}
.ca-series__dot-link { cursor: pointer; }
.ca-series__dot-link:focus-visible {
    outline: 2px solid var(--ca-accent);
    outline-offset: 2px;
}
.ca-series__dot {
    display: block;
    width: 10px;
    height: 10px;
    border: 1px solid #b9b5af;
    border-radius: 50%;
    background: #fff;
    transition: transform .18s ease, border-color .18s ease, background-color .18s ease;
}
.ca-series__dot.is-done { background: #b9b5af; }
.ca-series__dot.is-current { width: 13px; height: 13px; border-color: var(--ca-accent); background: var(--ca-accent); }
.ca-series__dot-link:hover .ca-series__dot { transform: scale(1.28); border-color: var(--ca-accent); }
.ca-series__dot-link[aria-current="page"] .ca-series__dot { transform: scale(1.08); }
.ca-series__dot-wrap.is-unavailable { cursor: default; opacity: .45; }

.ca-series--bottom {
    margin: 60px 0 20px;
    padding: 38px;
    border: 1px solid var(--ca-border);
    background: var(--ca-bg);
}
.ca-series__header { margin-bottom: 28px; }
.ca-series__heading { margin: 0 0 8px; padding: 0; font-size: clamp(25px, 4vw, 36px); line-height: 1.15; }
.ca-series__current { margin: 0; color: var(--ca-muted); }
.ca-series__all { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ca-series__item {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--ca-border);
    background: var(--ca-card);
    color: inherit;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ca-series__item[href]:hover { transform: translateY(-3px); border-color: #cdc5b8; box-shadow: 0 10px 25px rgba(0,0,0,.06); }
.ca-series__item.is-current { border: 2px solid var(--ca-accent); }
.ca-series__item.is-unavailable { opacity: .68; }
.ca-series__image { aspect-ratio: 16 / 10; overflow: hidden; background: #ece9e4; border-radius: 30px 0; }
.ca-series__image img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.ca-series__content { display: flex; flex: 1; flex-direction: column; padding: 15px; }
.ca-series__part { margin-bottom: 7px; color: var(--ca-accent); font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.ca-series__title { font-size: 14px; font-weight: 700; line-height: 1.4; }

.ca-series__nextprev { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--ca-border); }
.ca-series__nextprev a, .ca-series__next-unavailable { display: flex; flex-direction: column; }
.ca-series__nextprev span, .ca-series__next-unavailable span { margin-bottom: 5px; color: var(--ca-muted); font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.ca-series__nextprev strong, .ca-series__next-unavailable strong { font-size: 15px; line-height: 1.4; }
.ca-series__next-unavailable small { margin-top: 5px; color: var(--ca-muted); }
.ca-series__next { text-align: right; }

@media (max-width: 900px) {
    .ca-series__all { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .ca-series--bottom { margin-top: 40px; padding: 24px 18px; }
    .ca-series__top-row { align-items: flex-start; flex-direction: column; gap: 12px; }
    .ca-series__all { grid-template-columns: 1fr; }
    .ca-series__item { flex-direction: row; }
    .ca-series__image { width: 105px; min-width: 105px; aspect-ratio: 1 / 1; }
    .ca-series__nextprev { grid-template-columns: 1fr; }
    .ca-series__next { text-align: left; }
}
