/* ── Cards ──────────────────────────────────────────────────────── */
.card{display:block;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.2rem;box-shadow:var(--shadow-sm);transition:var(--transition);color:inherit}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);text-decoration:none}
.card-city{text-align:center}
.city-name{font-weight:700;font-size:1.15rem;color:var(--color-primary)}
.city-count{font-size:.85rem;color:var(--color-text-light);margin-top:.25rem}
.card-service{text-align:center}
.card-service h3{margin:.5rem 0 .35rem}
.card-service p{font-size:.85rem;color:var(--color-text-light)}
.card-compact p{display:none}
.card-icon svg{width:38px;height:38px;color:var(--color-primary);margin:0 auto}

/* ── Practice cards ─────────────────────────────────────────────── */
.practice-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:680px){.practice-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.practice-grid{grid-template-columns:repeat(3,1fr)}}
.practice-card{position:relative;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.1rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.6rem}
.practice-card.card-featured{border-color:#f5c542;background:var(--color-featured)}
.card-badge-promoted{position:absolute;top:-10px;right:12px;background:#f5a623;color:#fff;font-size:.7rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}
.card-head{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start}
.card-title{font-size:1.05rem;margin:0}
.card-title a{color:var(--color-text)}
.card-badges{display:flex;flex-direction:column;gap:.25rem;align-items:flex-end;flex-shrink:0}
.card-address{font-size:.85rem;color:var(--color-text-light)}
.card-rating{display:flex;align-items:center;gap:.4rem;font-size:.85rem}
.rating-value{font-weight:700}
.rating-count{color:var(--color-text-light)}
.card-tags{display:flex;flex-wrap:wrap;gap:.35rem}
.tag{background:var(--color-bg-alt);color:var(--color-text-light);font-size:.72rem;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--color-border)}
.card-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:auto;padding-top:.4rem}

/* ── Badges ─────────────────────────────────────────────────────── */
.badge{display:inline-block;font-size:.72rem;font-weight:700;padding:.22rem .55rem;border-radius:999px;line-height:1.2;white-space:nowrap;text-decoration:none}
.badge-sector{background:#e6f0fb;color:#13559e}
.badge-nhs{background:#e6f0fb;color:#005eb8}
.badge-private{background:#eef4ee;color:#0b6e4f}
.badge-nhs-private{background:#f0ecfb;color:#5b3da8}
.badge-cat{background:var(--color-bg-alt);color:var(--color-text-light)}
.badge-cqc{color:#fff}
a.badge-cqc:hover{opacity:.9;text-decoration:none}
.cqc-outstanding{background:#0b8a6b}
.cqc-good{background:#1f8f4d}
.cqc-requires{background:#d9821a}
.cqc-inadequate{background:#c23131}
.cqc-none{background:#7a8a90}

/* ── Page with sidebar ──────────────────────────────────────────── */
.page-with-sidebar{display:grid;gap:2rem;grid-template-columns:1fr}
@media(min-width:960px){.page-with-sidebar{grid-template-columns:1fr 320px}}
.content-block{margin:1.6rem 0}
.content-block h2{margin:1.4rem 0 .6rem}
.page-main h2{margin-top:1.6rem}
.page-main p{margin-bottom:.9rem}
.page-main ul,.page-main ol{margin:0 0 1rem 1.3rem}
.page-main li{margin-bottom:.35rem}
.content-narrow{max-width:780px;margin:0 auto}
.content-narrow h2{margin:1.6rem 0 .6rem}
.content-narrow p{margin-bottom:1rem}
.sidebar-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.1rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}
.sidebar-card h3{margin-bottom:.6rem}
.sidebar-links{list-style:none}
.sidebar-links li{padding:.3rem 0;border-bottom:1px solid var(--color-border)}
.sidebar-links li:last-child{border:none}
.sidebar-cta{background:var(--color-bg-alt)}
.sidebar-note{font-size:.85rem;color:var(--color-text-light)}
.btn-block{width:100%}

/* ── Practice page hero ─────────────────────────────────────────── */
.practice-hero{background:var(--color-bg-alt);padding:2rem 0;border-bottom:1px solid var(--color-border)}
.practice-hero-head{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:space-between;align-items:flex-start}
.practice-location{color:var(--color-text-light);margin:.3rem 0 .6rem}
.practice-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}
.practice-hero-actions{display:flex;flex-direction:column;gap:.5rem;min-width:220px}
.hours-table{width:100%;font-size:.9rem;border-collapse:collapse}
.hours-table th{text-align:left;font-weight:600;padding:.3rem 0}
.hours-table td{text-align:right;color:var(--color-text-light)}

/* ── Steps / trust band ─────────────────────────────────────────── */
.steps-grid{display:grid;gap:1.4rem;grid-template-columns:1fr}
@media(min-width:768px){.steps-grid{grid-template-columns:repeat(3,1fr)}}
.step-item{text-align:center;padding:1rem}
.step-num{width:42px;height:42px;border-radius:50%;background:var(--color-primary);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto .8rem}
.trust-band{max-width:820px;margin:0 auto;text-align:center}

/* ── Filters ────────────────────────────────────────────────────── */
.filter-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.filter-bar-secondary{margin-bottom:1.6rem}
.filter-btn{background:#fff;border:1px solid var(--color-border);border-radius:999px;padding:.4rem .9rem;font-size:.85rem;font-weight:600;cursor:pointer;color:var(--color-text);transition:var(--transition)}
.filter-btn:hover{border-color:var(--color-primary)}
.filter-btn.is-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
.filter-empty,.empty-state{text-align:center;color:var(--color-text-light);padding:1.5rem}
.list-more{text-align:center;color:var(--color-text-light);background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;margin-top:1.2rem;font-size:.92rem}

/* ── FAQ ────────────────────────────────────────────────────────── */
.faq-section{margin-top:2rem}
.faq-item{border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:.6rem;overflow:hidden;background:#fff}
.faq-question{width:100%;text-align:left;background:none;border:none;padding:1rem;font-size:1rem;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--color-text);font-family:inherit}
.faq-icon{width:14px;height:14px;border-right:2px solid var(--color-primary);border-bottom:2px solid var(--color-primary);transform:rotate(45deg);transition:var(--transition);flex-shrink:0}
.faq-question[aria-expanded="true"] .faq-icon{transform:rotate(-135deg)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .25s ease}
.faq-answer-inner{padding:0 1rem 1rem}

/* ── Forms ──────────────────────────────────────────────────────── */
.form-row{margin-bottom:1rem;display:flex;flex-direction:column;gap:.35rem}
.form-row label{font-weight:600;font-size:.92rem}
input,select,textarea{font-family:inherit;font-size:1rem;padding:.65rem .8rem;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary-light);border-color:var(--color-primary)}
input.invalid,select.invalid,textarea.invalid{border-color:var(--color-error)}
.contact-form,.enquiry-form{max-width:640px;margin:1.5rem auto 0}
.form-step{display:none;border:none}
.form-step.is-active{display:block}
.form-step legend{font-size:1.2rem;font-weight:700;margin-bottom:1rem;padding:0}
.option-grid{display:grid;gap:.6rem;grid-template-columns:repeat(2,1fr);margin-bottom:1.2rem}
@media(min-width:640px){.option-grid{grid-template-columns:repeat(3,1fr)}.option-grid-2{grid-template-columns:repeat(2,1fr)}}
.option-card{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;border:2px solid var(--color-border);border-radius:var(--radius);padding:.9rem .6rem;cursor:pointer;transition:var(--transition);font-size:.9rem;font-weight:600}
.option-card:hover{border-color:var(--color-primary-light)}
.option-card input{position:absolute;opacity:0;width:0;height:0}
.option-card.selected{border-color:var(--color-primary);background:var(--color-bg-alt)}
.option-icon svg{width:30px;height:30px;color:var(--color-primary)}
.form-nav{display:flex;justify-content:space-between;gap:.6rem;margin-top:1rem}
.form-nav .js-next,.form-nav button[type=submit]{margin-left:auto}
.form-progress{height:6px;background:var(--color-border);border-radius:999px;margin-bottom:1.6rem;overflow:hidden}
.form-progress-bar{height:100%;background:var(--color-accent);width:20%;transition:width .3s ease}
.form-help{font-size:.85rem;color:var(--color-text-light);margin-top:.6rem}
.form-help-inline{font-weight:400;color:var(--color-text-light);font-size:.82rem}
.consent-row{display:flex;gap:.6rem;align-items:flex-start;font-size:.88rem;margin:1rem 0}
.consent-row input{width:auto;margin-top:.2rem}
.success-message{background:#eef7f0;border:1px solid var(--color-success);border-radius:var(--radius-lg);padding:1.6rem;text-align:center}
.error-actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1rem}

/* ── CTA block ──────────────────────────────────────────────────── */
.cta-block{background:linear-gradient(135deg,var(--color-primary-dark),var(--color-secondary));color:#fff;padding:2.6rem 0}
.cta-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem}
.cta-block h2{color:#fff}
.cta-block p{color:rgba(255,255,255,.9);max-width:560px}

/* ── Footer ─────────────────────────────────────────────────────── */
.site-footer{background:#0c2a30;color:#cdd9dc;margin-top:2rem}
.footer-grid{display:grid;gap:1.6rem;grid-template-columns:1fr;padding:2.6rem 1rem}
@media(min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}}
.footer-col h4{color:#fff;margin-bottom:.8rem;font-size:.95rem}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:.4rem}
.footer-col a{color:#cdd9dc;font-size:.9rem}
.footer-col a:hover{color:#fff}
.footer-brand p{font-size:.88rem;color:#9fb2b6;margin-top:.6rem}
.logo-footer{color:#fff}
.footer-disclaimer{background:#081f24;font-size:.82rem;color:#9fb2b6;padding:1.2rem 0}
.footer-disclaimer p{max-width:var(--max-width);margin:0 auto}
.footer-bar{background:#061a1e;padding:.9rem 0;font-size:.82rem;color:#7f9499}

/* ── Utilities ──────────────────────────────────────────────────── */
.mt-2{margin-top:1.2rem}
.last-updated{font-size:.8rem;color:var(--color-text-light);margin-top:1.4rem;font-style:italic}
.hidden{display:none}
