Un <div> è di sua natura un elemento "blocco" (display: block; in CSS), e quindi occupa tutta la larghezza disponibile. Se lo fissi come sopra, diventa più piccolo ma resta inflessibile.
Un modo per farlo adattare alla larghezza del suo contenuto è trasformarlo in un elemento "lineare" usando display: inline; oppure display: inline-block;. I due valori funzionano in modo leggermente diverso, e se intuisco correttamente quello che ti serve qua è inline-block ;)
Codice:
.archive-header {
border-radius: 15px;
display: inline-block;
/* ... */
}