/* Which Dental — component styles. Relies on the token custom properties (tokens.css). */
.wd-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:10px 20px;border-radius:var(--radius-pill);border:2px solid transparent;font-family:var(--font-display);font-weight:700;font-size:16px;line-height:1;text-decoration:none;cursor:pointer;transition:transform .12s ease,background-color .12s ease}
.wd-btn:hover{transform:translateY(-1px)}
.wd-btn:focus-visible,.wd-chip:focus-visible,.wd-search input:focus-visible,.wd-card a:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.wd-btn--primary{background:var(--brand);color:var(--on-brand)}
.wd-btn--accent{background:var(--accent);color:#1d2524}
.wd-btn--ghost{background:transparent;color:var(--brand);border-color:var(--brand)}
.wd-btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}

.wd-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 14px;border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:var(--surface-card);color:var(--ink);font:400 14px/1.2 var(--font-body);cursor:pointer}
.wd-chip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.wd-chip--on-hero{background:transparent;color:var(--on-hero);border-color:rgba(244,239,231,.45)}

.wd-tag{display:inline-block;padding:4px 10px;border-radius:var(--radius-pill);background:var(--surface-clay);color:var(--brand);font:700 12px/1.3 var(--font-body);letter-spacing:.02em}

.wd-search{display:flex;align-items:center;background:var(--surface-card);border-radius:var(--radius-pill);padding:6px;max-width:640px;border:1px solid var(--line)}
.wd-search input{flex:1;min-width:0;border:0;background:transparent;padding:12px 16px;font:400 16px var(--font-body);color:var(--ink)}
.wd-search input::placeholder{color:var(--ink-muted)}
.wd-search button{border:0;background:var(--accent);color:#1d2524;padding:12px 22px;border-radius:var(--radius-pill);font:700 16px var(--font-display);cursor:pointer}

.wd-rating{display:inline-flex;align-items:center;gap:var(--space-2);font:400 14px var(--font-body);color:var(--ink-muted)}
.wd-rating__stars{position:relative;display:inline-block;font-size:16px;letter-spacing:2px;color:var(--line-strong);line-height:1}
.wd-rating__stars::before{content:"★★★★★"}
.wd-rating__stars span{position:absolute;inset:0 auto 0 0;overflow:hidden;white-space:nowrap;color:var(--accent)}
.wd-rating__stars span::before{content:"★★★★★"}
.wd-rating__score{font:700 16px var(--font-display);color:var(--ink)}
.wd-rating--none{font-style:italic}

.wd-cred{display:inline-flex;align-items:center;gap:6px;font:700 14px/1.3 var(--font-body)}
.wd-cred::before{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:12px;color:var(--surface-card)}
.wd-cred--verified{color:var(--status-verified)}.wd-cred--verified::before{content:"✓";background:var(--status-verified)}
.wd-cred--declared{color:var(--status-declared)}.wd-cred--declared::before{content:"i";background:var(--status-declared)}
.wd-cred--alert{color:var(--status-alert)}.wd-cred--alert::before{content:"!";background:var(--status-alert)}

.wd-card{display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-5);color:var(--ink);transition:box-shadow .15s ease}
.wd-card:hover{box-shadow:var(--shadow-card)}
.wd-card h3{font:700 19px/1.3 var(--font-display);margin:12px 0 6px}
.wd-card h3 a{color:inherit;text-decoration:none}
.wd-card h3 a:hover{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}
.wd-card p{font:400 14px/1.45 var(--font-body);color:var(--ink-muted);margin:0}
.wd-card__foot{margin-top:auto;padding-top:14px;display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;border-top:1px dashed var(--line);font:400 14px var(--font-body)}
.wd-card__body{margin-bottom:14px}

.wd-source{display:flex;flex-wrap:wrap;gap:4px 12px;padding:12px 16px;border-radius:var(--radius-sm);background:var(--surface-clay);font:400 14px/1.45 var(--font-body);color:var(--ink-muted)}
.wd-source a{color:var(--brand);font-weight:700}
.wd-source strong{color:var(--ink)}

.wd-callout{border-radius:var(--radius-md);padding:var(--space-5);background:var(--surface-clay);color:var(--ink);font:400 16px/1.6 var(--font-body)}
.wd-callout strong{font-family:var(--font-display)}
.wd-callout--alert{background:transparent;border:2px solid var(--status-declared)}
