/* 06-components/_quote.css — .c-quote: the testimonial block. A surface with a rule-coloured left edge (a
   quote carries no state, so the edge is never a band colour), the quote in Sans at prose size, and the
   attribution in mono uppercase, which is the eyebrow treatment: it reads as a label, so a placeholder
   attribution ("Exempelcitat · produktionschef, hyvleri") is visibly a label and not a name. When a real
   quote arrives the text changes and the markup does not. */
.c-quote { position: relative; display: flex; flex-direction: column; gap: var(--space-md); padding: var(--space-lg); padding-inline-start: calc(var(--space-lg) + var(--stroke-edge)); background: var(--surface); border: var(--stroke) solid var(--rule); border-radius: var(--radius-md); }
.c-quote::before { content: ""; position: absolute; inset-block: -1px; inset-inline-start: -1px; width: var(--stroke-edge); background: var(--rule-strong); border-start-start-radius: var(--radius-md); border-end-start-radius: var(--radius-md); }
.c-quote__text { margin: 0; font-size: var(--text-lg); line-height: var(--leading-normal); color: var(--ink); text-wrap: pretty; }
.c-quote__text::before { content: "”"; color: var(--ink-faint); }
.c-quote__text::after { content: "”"; color: var(--ink-faint); }
.c-quote__by { font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--ink-faint); font-style: normal; }
.c-quote-row { display: grid; gap: var(--space-lg); grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr)); }
