.contracts-header { margin-bottom: 1.25rem; max-width: 920px; }
.contracts-header h1 { color: var(--text-main); font-size: clamp(1.75rem, 4vw, 2.45rem); letter-spacing: -.035em; margin: .35rem 0 .5rem; }
.contracts-header__lead { color: var(--text-muted); font-size: 1rem; line-height: 1.65; margin: 0; }
.contracts-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.contract-card { background: var(--surface); border: 1px solid var(--border); border-radius: 1rem; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; min-height: 260px; padding: 1.15rem; }
.contract-card__heading { align-items: flex-start; display: flex; gap: .8rem; }
.contract-card__icon { align-items: center; background: #eaf2ff; border-radius: .75rem; display: inline-flex; flex: 0 0 44px; font-size: 1.35rem; height: 44px; justify-content: center; }
.contract-card__number { color: var(--primary); display: block; font-size: .72rem; font-weight: 800; letter-spacing: .1em; margin-bottom: .22rem; }
.contract-card h2 { color: var(--text-main); font-size: 1rem; line-height: 1.35; margin: 0; text-transform: uppercase; }
.contract-card__description { color: var(--text-muted); flex: 1; font-size: .91rem; line-height: 1.55; margin: .95rem 0 1rem; }
.contract-card__actions { display: grid; gap: .65rem; grid-template-columns: 1fr 1fr; }
.contract-download { border: 1px solid transparent; border-radius: .7rem; cursor: pointer; font: inherit; font-size: .82rem; font-weight: 800; min-height: 44px; padding: .65rem .55rem; text-transform: uppercase; }
.contract-download--word { background: #eaf2ff; border-color: #b9d2fb; color: #174ea6; }
.contract-download--pdf { background: #fff0f0; border-color: #f3c0c0; color: #b42318; }
.contract-download:hover { filter: brightness(.97); transform: translateY(-1px); }
.contract-download:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 35%, transparent); outline-offset: 2px; }
.contracts-notice { background: #fff8e6; border: 1px solid #f3d38a; border-radius: 1rem; color: #654b12; margin-top: 1.25rem; padding: 1rem 1.1rem; }
.contracts-notice h2 { font-size: 1rem; margin: 0 0 .35rem; }
.contracts-notice p { font-size: .9rem; line-height: 1.55; margin: 0; }
.contract-modal { align-items: center; background: rgb(3 18 43 / 62%); display: flex; inset: 0; justify-content: center; padding: 1rem; position: fixed; z-index: 1000; }
.contract-modal[hidden] { display: none; }
.contract-modal__dialog { background: var(--surface); border-radius: 1rem; box-shadow: 0 24px 70px rgb(3 18 43 / 28%); max-width: 500px; padding: 1.3rem; width: 100%; }
.contract-modal__dialog h2 { font-size: 1.25rem; margin: 0 0 .65rem; }
.contract-modal__dialog p { color: var(--text-muted); line-height: 1.55; margin: 0 0 1rem; }
.contract-modal__check { align-items: flex-start; background: var(--surface-soft); border-radius: .75rem; cursor: pointer; display: flex; gap: .65rem; line-height: 1.45; padding: .85rem; }
.contract-modal__check input { height: 20px; margin: 0; width: 20px; }
.contract-modal__actions { display: flex; gap: .7rem; justify-content: flex-end; margin-top: 1rem; }
.contract-modal__actions .button { min-height: 44px; }

@media (min-width: 620px) {
  .contracts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1120px) {
  .contracts-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1500px) {
  .contracts-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 420px) {
  .contract-card { min-height: 0; padding: 1rem; }
  .contract-card__actions { grid-template-columns: 1fr; }
  .contract-modal__actions { display: grid; grid-template-columns: 1fr 1fr; }
}
