width: 100% работает от ширины containing block'а, а не от ширины родителя