.homecare-other-carousel{
    /* Ground colour. #bf4a92 = brand pink, white text at 4.56:1 (passes, no margin).
       #a83a7d = same hue, darker, white text at 5.9:1. */
    --hc-oc-ground:#bf4a92;
    --hc-oc-dim:#f0d3e4;      /* inactive dots — 3.29:1 on brand pink */
    --hc-oc-purple:#602276;
    --hc-oc-ink:#2b1633;
    --hc-oc-muted:#6b5673;
    position:relative;
    background:var(--hc-oc-ground);
    border-radius:14px;
    padding:26px 0 22px;
}
.homecare-oc-sr{
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;
    overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ---------- header (rendered once, outside the track) ---------- */
.homecare-other-header{
    display:flex;align-items:center;justify-content:space-between;
    gap:18px;padding:0 26px 22px;
}
.homecare-other-branch-name{
    margin:0 0 4px;font-size:1rem;font-weight:900;line-height:1.25;color:#fff;
}
.homecare-other-branch-source{
    /* solid #fff at 700 — never rgba, see note at top of file */
    margin:0;font-size:.875rem;font-weight:700;line-height:1.4;color:#fff;
}
.homecare-other-score{flex-shrink:0}
.homecare-other-score-visual{
    display:block;background:#fff;border-radius:10px;padding:9px 14px;
    text-align:center;line-height:1;color:var(--hc-oc-ground);
}
.homecare-other-score-n{font-size:1.55rem;font-weight:900;letter-spacing:-.03em}
.homecare-other-score-o{font-size:.8rem;font-weight:900}
.homecare-other-score-lbl{
    display:block;margin-top:4px;font-size:.58rem;font-weight:900;
    letter-spacing:.12em;text-transform:uppercase;color:var(--hc-oc-purple);
}

/* ---------- track ---------- */
.homecare-other-carousel-container{overflow:hidden;padding:0 26px}
.homecare-other-carousel-track{
    display:flex;gap:16px;
    transition:transform .45s cubic-bezier(.4,0,.2,1);
}
.homecare-other-review-slide{
    min-width:calc(88% - 8px);
    background:#fff;border-radius:12px;padding:26px 28px;
    box-sizing:border-box;
}
.homecare-other-review-text{
    margin:0;font-size:1.05rem;line-height:1.65;color:var(--hc-oc-ink);
    border:0;padding:0;quotes:none;
}
.homecare-other-review-text::before,
.homecare-other-review-text::after{content:none}
/* overrides the shared .homecare-read-more rule, which sets pink + inline-block */
.homecare-other-review-text .homecare-read-more{
    background:none;border:0;padding:0;margin:0;display:inline;
    font:inherit;font-weight:700;
    color:var(--hc-oc-purple);text-decoration:underline;text-underline-offset:3px;
    cursor:pointer;
}
.homecare-other-review-text .homecare-read-more:hover{text-decoration-thickness:2px}
.homecare-other-review-author{
    margin:18px 0 0;font-size:.95rem;font-weight:900;color:var(--hc-oc-purple);
}
.homecare-other-review-relationship{font-weight:400;color:var(--hc-oc-muted)}

/* ---------- controls ---------- */
.homecare-other-carousel-dots{
    display:flex;align-items:center;gap:8px;padding:22px 26px 0;
    background:none;border-radius:0;
}
.homecare-other-carousel-nav{
    width:40px;height:40px;border-radius:50%;border:0;
    background:#fff;color:var(--hc-oc-ground);
    display:grid;place-items:center;cursor:pointer;
    box-shadow:none;transition:transform .18s ease;
    flex-shrink:0;padding:0;
}
.homecare-other-carousel-nav svg{width:14px;height:14px;fill:currentColor}
.homecare-other-carousel-nav:hover{transform:scale(1.08);background:#fff}
.homecare-other-dots-container{display:flex;gap:2px;margin:0 auto}
.homecare-other-carousel-dot{
    width:24px;height:24px;              /* WCAG 2.5.8 target size */
    border:0;background:none;padding:0;cursor:pointer;
    display:grid;place-items:center;border-radius:50%;
    color:var(--hc-oc-dim);
}
.homecare-other-carousel-dot::before{
    content:"";width:9px;height:9px;border-radius:50%;
    background:currentColor;transition:transform .18s ease;
}
.homecare-other-carousel-dot:hover{color:#fff}
.homecare-other-carousel-dot[aria-current="true"]{color:#fff}
.homecare-other-carousel-dot[aria-current="true"]::before{transform:scale(1.5)}

/* focus: white ring on the pink, purple ring inside the white cards */
.homecare-other-carousel :focus-visible{
    outline:3px solid #fff;outline-offset:3px;border-radius:8px;
}
.homecare-other-review-slide :focus-visible{outline-color:var(--hc-oc-purple)}
/* the shared sheet puts a pink :focus outline on all buttons — invisible on pink */
.homecare-reviews .homecare-other-carousel button:focus{outline:none}
.homecare-reviews .homecare-other-carousel button:focus-visible{outline:3px solid #fff;outline-offset:3px}
.homecare-reviews .homecare-other-review-slide button:focus-visible{outline-color:var(--hc-oc-purple)}

/* ---------- Read more modal ----------
   Self-contained. The shared homecare-reviews.css is only enqueued when the
   shortcode is found in post_content, so on pages where the block is rendered
   from a template part / builder that scan misses, .homecare-modal has no
   styles at all and the modal renders as unstyled text at the foot of the
   page. Everything this template needs lives here instead. */
.hc-oc-modal{
    display:none;position:fixed;inset:0;z-index:100000;
    background:rgba(43,22,51,.72);
    padding:24px;overflow-y:auto;
}
.hc-oc-modal.is-open{display:flex;align-items:center;justify-content:center}
.hc-oc-modal-panel{
    position:relative;background:#fff;border-radius:14px;
    max-width:620px;width:100%;padding:38px 40px 34px;
    box-shadow:none;
}
.hc-oc-modal-close{
    position:absolute;top:12px;right:12px;
    width:40px;height:40px;border:0;border-radius:50%;
    background:#f4eef7;color:#602276;
    font-size:1.5rem;line-height:1;cursor:pointer;
    display:grid;place-items:center;padding:0;
}
.hc-oc-modal-close:hover{background:#602276;color:#fff}
.hc-oc-modal-stars{display:flex;gap:3px;margin-bottom:18px}
.hc-oc-modal-stars svg{width:20px;height:20px}
.hc-oc-modal-stars .on{fill:#bf4a92}
.hc-oc-modal-stars .off{fill:#e6d8ec}
.hc-oc-modal-text{
    font-size:1.08rem;line-height:1.7;color:#2b1633;margin:0;
    white-space:pre-line;
}
.hc-oc-modal-author{
    margin:22px 0 0;padding-top:18px;border-top:1px solid #e8dced;
    font-size:.95rem;font-weight:900;color:#602276;
}
.hc-oc-modal-author .rel{font-weight:400;color:#6b5673}
.hc-oc-modal :focus-visible{outline:3px solid #602276;outline-offset:3px}
@media (max-width:600px){
    .hc-oc-modal{padding:14px}
    .hc-oc-modal-panel{padding:30px 22px 26px}
    .hc-oc-modal-text{font-size:1rem}
}

@media (prefers-reduced-motion:reduce){
    .homecare-other-carousel-track{transition:none}
    .homecare-other-carousel-nav{transition:none}
    .homecare-other-carousel-dot::before{transition:none}
}

@media (max-width:768px){
    .homecare-other-header{padding:0 20px 18px}
    .homecare-other-carousel-container{padding:0 20px}
    .homecare-other-carousel-dots{padding:18px 20px 0}
    .homecare-other-review-slide{min-width:calc(92% - 8px);padding:22px}
    .homecare-other-review-text{font-size:1rem}
}

@media (max-width:480px){
    .homecare-other-header{flex-direction:column;align-items:flex-start;gap:14px}
    .homecare-other-score-visual{padding:8px 12px}
    .homecare-other-score-n{font-size:1.35rem}
}
