.covenant-fabric-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.covenant-fabric { display: flex; flex-direction: column; color: inherit; text-decoration: none; }
.covenant-fabric h3 { font-size: 21px; letter-spacing: 0; }
.covenant-fabric .button { margin-top: auto; text-align: center; }
.covenant-fabric:hover, .covenant-fabric:focus-visible { border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 2px; }
.covenant-fabric .fabric-swatch { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; flex-shrink: 0; border: 1px solid rgba(255,255,255,.2); margin-bottom: 20px; }
.fabric-swatch.black { background: #17191c; }
.fabric-swatch.charcoal { background: #48494c; }
.fabric-swatch.dove { background: #a8a9ab; }
.fabric-swatch.navy { background: #202d44; }
.fabric-swatch.royal { background: #264d85; }
.fabric-swatch.sand { background: #c6b599; }
@media(max-width:700px) { .covenant-fabric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; } .covenant-fabric { padding: 14px; } .covenant-fabric h3 { font-size: 18px; overflow-wrap: anywhere; } }
.covenant-setup { max-width: 1040px; margin: auto; padding: 32px 24px; }
.covenant-setup-photo { width: 100%; height: auto; display: block; margin-bottom: 30px; }
.setup-heading h1 { font: 30px Cinzel, serif; letter-spacing: 0; margin: 0 0 6px; }
.setup-heading p { margin: 0 0 30px; }
.covenant-setup fieldset { border: 0; padding: 0; margin: 0 0 28px; min-width: 0; }
.covenant-setup legend { font-size: 18px; margin-bottom: 10px; }
.covenant-setup .covenant-fabric-grid { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; }
.fabric-option { position: relative; padding: 10px; border: 1px solid var(--line); border-radius: 4px; cursor: pointer; display: grid; gap: 5px; }
.fabric-option input { position: absolute; top: 12px; right: 12px; accent-color: var(--accent); }
.fabric-option .fabric-swatch { width: 100%; height: 56px; margin: 0 0 6px; }
.fabric-option strong { font-size: 14px; font-weight: 500; }
.fabric-option small { font-size: 12px; }
.fabric-option:has(:checked), .fit-options label:has(:checked) { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.fabric-option:focus-within, .fit-options label:focus-within { outline: 2px solid var(--accent); outline-offset: 2px; }
.swatch-note { font-size: 12px; margin: 6px 0 0; }
.fit-options { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.fit-options label { padding: 18px 12px; border: 1px solid var(--line); border-radius: 4px; cursor: pointer; font-size: 14px; }
.fit-options input, #accept-fit { accent-color: var(--accent); }
#setup-fit-note, #setup-responsibility { font-size: 14px; margin: 10px 0; }
.setup-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--bg, #203f5c); padding: 16px 0; border-top: 1px solid var(--line); }
.setup-actions small { display: block; font-size: 12px; }
@media(max-width:700px) { .covenant-setup { padding: 18px 16px; } .setup-heading h1 { font-size: 23px; } .covenant-setup .covenant-fabric-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; } .fabric-option { padding: 8px; } .fabric-option strong { font-size: 13px; } .fit-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; } .setup-actions .button { padding: 12px 16px; } }
