/* Quote fields use the shared visual system; delivery and validation remain native. */
.matrix-quote {
 min-inline-size: 0;
 margin-block-end: var(--matrix-space-64);
 container: matrix-quote / inline-size;
}
.matrix-quote > h2 { margin-block-start: 0; }
.matrix-quote__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--matrix-space-24); margin-block: var(--matrix-space-32); }
.matrix-quote__field { min-inline-size: 0; }
.matrix-quote label { display: block; margin-block-end: var(--matrix-space-8); color: var(--matrix-text); font-weight: 600; }
.matrix-quote label span { color: var(--matrix-text-muted); font-weight: 400; font-size: var(--matrix-type-small); }
.matrix-quote input:not([type="hidden"]), .matrix-quote select, .matrix-quote textarea {
 display: block;
 box-sizing: border-box;
 inline-size: 100%;
 max-inline-size: 100%;
 min-block-size: var(--matrix-control-height);
 padding: var(--matrix-space-12) var(--matrix-space-16);
 border: 1px solid var(--matrix-border-strong);
 border-radius: var(--matrix-radius-standard);
 background: var(--matrix-bg-soft);
 color: var(--matrix-text);
 font: inherit;
 font-size: var(--matrix-type-body);
 line-height: 1.5;
}
.matrix-quote textarea { min-block-size: 10rem; resize: vertical; }
.matrix-quote :is(input, select, textarea):focus {
 border-color: var(--matrix-focus);
 background-color: var(--matrix-surface);
}
.matrix-quote :is(input, select, textarea):focus-visible {
 outline: var(--matrix-focus-outline);
 outline-offset: var(--matrix-focus-offset);
 box-shadow: var(--matrix-focus-ring);
}
/* Native WebKit select chrome otherwise ignores the shared minimum height. */
.matrix-quote select {
 appearance: none;
 block-size: var(--matrix-control-height);
 padding-inline-end: var(--matrix-space-40);
 background-image: linear-gradient(45deg, transparent 50%, var(--matrix-text-muted) 50%), linear-gradient(135deg, var(--matrix-text-muted) 50%, transparent 50%);
 background-position: calc(100% - 20px) 50%, calc(100% - 16px) 50%;
 background-size: 4px 4px;
 background-repeat: no-repeat;
}
.matrix-quote .matrix-quote__hint { margin: var(--matrix-space-8) 0 0; color: var(--matrix-text-muted); font-size: var(--matrix-type-small); line-height: var(--matrix-leading-body); }
.matrix-quote__notice, .matrix-quote__status, .matrix-quote__errors {
 margin-block: var(--matrix-space-24);
 padding: var(--matrix-space-24);
 border: 1px solid var(--matrix-border);
 border-inline-start: 3px solid var(--matrix-green);
 border-radius: var(--matrix-radius-small);
 background: var(--matrix-bg-soft);
 color: var(--matrix-text);
}
.matrix-quote .matrix-quote__notice p, .matrix-quote .matrix-quote__status p { margin: 0; }
.matrix-quote__status { background: var(--matrix-bg-tint); }
.matrix-quote .matrix-quote__status h3, .matrix-quote .matrix-quote__errors h3 { margin: 0 0 var(--matrix-space-12); font-size: var(--matrix-type-body); font-weight: 600; }
.matrix-quote__errors { border-inline-start-color: var(--matrix-error-border); background: var(--matrix-error-bg); }
.matrix-quote__errors ul { margin-block-end: 0; padding-inline-start: var(--matrix-space-20); }
.matrix-quote .matrix-quote__errors a { color: var(--matrix-error); }
.matrix-quote .matrix-quote__field-error { margin: var(--matrix-space-8) 0 0; color: var(--matrix-error); font-size: var(--matrix-type-small); font-weight: 600; }
/* Preserve the same border width in valid/invalid states: errors never move controls. */
.matrix-quote :is(input, select, textarea)[aria-invalid="true"] {
 border-color: var(--matrix-error-border);
 background-color: var(--matrix-error-bg);
}
.matrix-quote [hidden] { display: none !important; }
.matrix-quote__trap { position: absolute; inline-size: 1px; block-size: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.matrix-quote__privacy { max-inline-size: 65ch; font-size: var(--matrix-type-small); color: var(--matrix-text-muted); }
.matrix-quote__errors:focus, .matrix-quote__status:focus { outline: var(--matrix-focus-outline); outline-offset: var(--matrix-focus-offset); box-shadow: var(--matrix-focus-ring); }
@media (prefers-reduced-motion: no-preference) {
 .matrix-quote :is(input, select, textarea) {
  transition: border-color var(--matrix-duration-fast) var(--matrix-ease), background-color var(--matrix-duration-fast) var(--matrix-ease);
 }
}
/* Layout follows available form width, including narrow tablet article columns. */
@container matrix-quote (min-width: 560px) {
 .matrix-quote__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .matrix-quote__field--wide { grid-column: 1 / -1; }
}
@container matrix-quote (max-width: 360px) {
 .matrix-quote__notice, .matrix-quote__status, .matrix-quote__errors { padding: var(--matrix-space-16); }
 .matrix-quote button[type="submit"] { inline-size: 100%; }
}
