/* BlueWood Studio — component interaction states.
   Hover/press/focus behaviour that inline styles can't express.
   Keyed off component classNames; ships to consumers via styles.css. */

/* ---- Links (define defaults so editor-added links aren't browser-blue) ---- */
a { color: var(--text-link); text-decoration: none; transition: color var(--duration-fast) var(--ease-standard); }
a:hover { color: var(--text-link-hover); }

/* ---- Button ---- */
.bw-btn:not(:disabled):hover { transform: translateY(var(--lift-hover)); }
.bw-btn:not(:disabled):active { transform: translateY(0); }
.bw-btn--primary:not(:disabled):hover { background: var(--action-primary-hover); border-color: var(--action-primary-hover); box-shadow: var(--shadow-sm); }
.bw-btn--primary:not(:disabled):active { background: var(--action-primary-active); border-color: var(--action-primary-active); }
.bw-btn--secondary:not(:disabled):hover { background: var(--surface-blue-tint); }
.bw-btn--secondary:not(:disabled):active { background: var(--bw-blue-100); }
.bw-btn--wood:not(:disabled):hover { background: var(--action-accent-hover); border-color: var(--action-accent-hover); box-shadow: var(--shadow-sm); }
.bw-btn--wood:not(:disabled):active { background: var(--action-accent-active); border-color: var(--action-accent-active); }
.bw-btn--ghost:not(:disabled):hover { background: var(--surface-blue-tint); }
.bw-btn:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

/* ---- IconButton ---- */
.bw-iconbtn:not(:disabled):hover { background: var(--surface-blue-tint); }
.bw-iconbtn:not(:disabled):active { transform: scale(0.94); }
.bw-iconbtn:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

/* ---- Inputs / Select ---- */
.bw-field:focus { outline: none; border-color: var(--bw-blue); box-shadow: var(--shadow-focus); }
.bw-field::placeholder { color: var(--text-faint); }

/* ---- Checkbox ---- */
.bw-check-box { transition: background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard); }
.bw-check-input:focus-visible + .bw-check-box { box-shadow: var(--shadow-focus); }

/* ---- Card (gentle elevate on hover for interactive cards) ---- */
.bw-card--interactive { transition: transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-standard); cursor: pointer; }
.bw-card--interactive:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.bw-card--interactive:hover .bw-card-media img { transform: scale(1.045); }

/* ---- Product card media (soft image zoom on hover) ---- */
.bw-card-media { overflow: hidden; }
.bw-card-media img { transition: transform var(--duration-slow) var(--ease-out); }
